@base-web-kits/base-tools-ts 1.1.6 → 1.1.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"sources":["../../node_modules/.pnpm/dayjs@1.11.19/node_modules/dayjs/dayjs.min.js","../../node_modules/.pnpm/dayjs@1.11.19/node_modules/dayjs/plugin/customParseFormat.js","../../node_modules/.pnpm/dayjs@1.11.19/node_modules/dayjs/plugin/utc.js","../../node_modules/.pnpm/dayjs@1.11.19/node_modules/dayjs/plugin/timezone.js","../../node_modules/.pnpm/dayjs@1.11.19/node_modules/dayjs/plugin/relativeTime.js","../../node_modules/.pnpm/dayjs@1.11.19/node_modules/dayjs/plugin/advancedFormat.js","../../node_modules/.pnpm/dayjs@1.11.19/node_modules/dayjs/locale/zh-cn.js","../src/ts/index.ts","../src/ts/array/index.ts","../src/ts/async/index.ts","../../node_modules/.pnpm/mitt@3.0.1/node_modules/mitt/src/index.ts","../src/ts/bean/EventBus.ts","../src/ts/day/index.ts","../../node_modules/.pnpm/bignumber.js@9.3.1/node_modules/bignumber.js/bignumber.mjs","../src/ts/number/big.ts","../src/ts/number/format.ts","../src/ts/number/random.ts","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/at.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/chunk.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/compact.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/countBy.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/difference.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/differenceBy.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/differenceWith.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/drop.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/dropRight.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/dropRightWhile.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/dropWhile.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/fill.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/promise/semaphore.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/limitAsync.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/filterAsync.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/flatten.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/flatMap.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/flatMapAsync.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/flattenDeep.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/flatMapDeep.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/forEachAsync.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/forEachRight.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/groupBy.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/head.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/initial.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/intersection.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/intersectionBy.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/intersectionWith.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/isSubset.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/isSubsetWith.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/keyBy.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/last.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/mapAsync.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/maxBy.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/minBy.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/_internal/compareValues.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/orderBy.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/partition.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/pull.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/pullAt.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/reduceAsync.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/remove.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/sample.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/math/random.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/math/randomInt.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/sampleSize.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/shuffle.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/sortBy.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/tail.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/compat/predicate/isSymbol.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/compat/util/toNumber.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/compat/util/toFinite.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/compat/util/toInteger.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/take.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/takeRight.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/takeRightWhile.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/takeWhile.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/toFilled.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/uniq.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/union.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/uniqBy.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/unionBy.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/uniqWith.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/unionWith.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/unzip.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/unzipWith.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/windowed.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/without.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/xor.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/xorBy.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/xorWith.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/zip.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/zipObject.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/zipWith.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/error/AbortError.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/error/TimeoutError.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/function/after.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/function/ary.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/function/asyncNoop.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/function/before.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/function/curry.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/function/curryRight.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/function/debounce.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/function/flow.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/function/flowRight.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/function/identity.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/function/memoize.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/function/negate.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/function/noop.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/function/once.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/function/partial.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/function/partialRight.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/function/rest.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/promise/delay.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/function/retry.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/function/spread.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/function/throttle.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/function/unary.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/math/clamp.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/math/inRange.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/math/sum.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/math/mean.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/math/sumBy.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/math/meanBy.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/math/median.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/math/medianBy.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/math/range.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/math/rangeRight.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/math/round.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/predicate/isPrimitive.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/predicate/isTypedArray.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/object/clone.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/compat/_internal/getSymbols.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/compat/_internal/getTag.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/compat/_internal/tags.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/object/cloneDeepWith.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/object/cloneDeep.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/object/findKey.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/predicate/isPlainObject.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/object/flattenObject.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/object/invert.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/object/mapKeys.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/object/mapValues.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/_internal/isUnsafeProperty.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/object/merge.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/object/mergeWith.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/object/omit.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/object/omitBy.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/object/pick.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/object/pickBy.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/compat/predicate/isArray.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/string/capitalize.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/string/words.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/string/camelCase.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/object/toCamelCaseKeys.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/object/toMerged.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/compat/predicate/isPlainObject.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/string/snakeCase.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/object/toSnakeCaseKeys.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/predicate/isArrayBuffer.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/predicate/isBlob.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/predicate/isBoolean.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/predicate/isBrowser.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/predicate/isBuffer.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/predicate/isDate.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/compat/util/eq.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/predicate/isEqualWith.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/predicate/isEqual.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/predicate/isError.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/predicate/isFile.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/predicate/isFunction.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/predicate/isJSON.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/predicate/isJSONValue.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/predicate/isLength.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/predicate/isMap.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/predicate/isNil.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/predicate/isNode.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/predicate/isNotNil.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/predicate/isNull.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/predicate/isPromise.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/predicate/isRegExp.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/predicate/isSet.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/predicate/isString.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/predicate/isSymbol.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/predicate/isUndefined.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/predicate/isWeakMap.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/predicate/isWeakSet.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/promise/mutex.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/promise/timeout.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/promise/withTimeout.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/string/constantCase.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/string/deburr.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/string/escape.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/string/escapeRegExp.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/string/kebabCase.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/string/lowerCase.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/string/lowerFirst.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/string/pad.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/string/pascalCase.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/string/reverseString.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/string/startCase.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/string/trimEnd.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/string/trimStart.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/string/trim.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/string/unescape.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/string/upperCase.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/string/upperFirst.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/util/attempt.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/util/attemptAsync.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/util/invariant.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/compat/_internal/isDeepKey.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/compat/_internal/toKey.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/compat/util/toString.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/compat/util/toPath.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/compat/object/get.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/compat/predicate/isObject.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/compat/_internal/isIndex.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/compat/_internal/isKey.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/compat/_internal/assignValue.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/compat/object/updateWith.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/compat/object/set.mjs","../src/ts/object/index.ts","../src/ts/string/format.ts","../src/ts/string/random.ts","../src/ts/string/other.ts","../src/ts/url/file/index.ts","../src/ts/url/oss/index.ts","../src/ts/url/param/index.ts","../src/ts/url/qn/index.ts","../src/ts/validator/index.ts"],"sourcesContent":["!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",c=\"month\",f=\"quarter\",h=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()<n.date())return-t(n,e);var r=12*(n.year()-e.year())+(n.month()-e.month()),i=e.clone().add(r,c),s=n-i<0,u=e.clone().add(r+(s?-1:1),c);return+(-(r+(n-i)/(s?i-u:u-i))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return{M:c,y:h,w:o,d:a,D:d,h:u,m:s,s:i,ms:r,Q:f}[t]||String(t||\"\").toLowerCase().replace(/s$/,\"\")},u:function(t){return void 0===t}},g=\"en\",D={};D[g]=M;var p=\"$isDayjsObject\",S=function(t){return t instanceof _||!(!t||!t[p])},w=function t(e,n,r){var i;if(!e)return g;if(\"string\"==typeof e){var s=e.toLowerCase();D[s]&&(i=s),n&&(D[s]=n,i=s);var u=e.split(\"-\");if(!i&&u.length>1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t)<this.startOf(e)},m.isBefore=function(t,e){return this.endOf(e)<O(t)},m.$g=function(t,e,n){return b.u(t)?this[e]:this.set(n,t)},m.unix=function(){return Math.floor(this.valueOf()/1e3)},m.valueOf=function(){return this.$d.getTime()},m.startOf=function(t,e){var n=this,r=!!b.u(e)||e,f=b.p(t),l=function(t,e){var i=b.w(n.$u?Date.UTC(n.$y,e,t):new Date(n.$y,e,t),n);return r?i:i.endOf(a)},$=function(t,e){return b.w(n.toDate()[t].apply(n.toDate(\"s\"),(r?[0,0,0,0]:[23,59,59,999]).slice(e)),n)},y=this.$W,M=this.$M,m=this.$D,v=\"set\"+(this.$u?\"UTC\":\"\");switch(f){case h:return r?l(1,0):l(31,11);case c:return r?l(1,M):l(0,M+1);case o:var g=this.$locale().weekStart||0,D=(y<g?y+7:y)-g;return l(r?m-D:m+(6-D),M);case a:case d:return $(v+\"Hours\",0);case u:return $(v+\"Minutes\",1);case s:return $(v+\"Seconds\",2);case i:return $(v+\"Milliseconds\",3);default:return this.clone()}},m.endOf=function(t){return this.startOf(t,!1)},m.$set=function(t,e){var n,o=b.p(t),f=\"set\"+(this.$u?\"UTC\":\"\"),l=(n={},n[a]=f+\"Date\",n[d]=f+\"Date\",n[c]=f+\"Month\",n[h]=f+\"FullYear\",n[u]=f+\"Hours\",n[s]=f+\"Minutes\",n[i]=f+\"Seconds\",n[r]=f+\"Milliseconds\",n)[o],$=o===a?this.$D+(e-this.$W):e;if(o===c||o===h){var y=this.clone().set(d,1);y.$d[l]($),y.init(),this.$d=y.set(d,Math.min(this.$D,y.daysInMonth())).$d}else l&&this.$d[l]($);return this.init(),this},m.set=function(t,e){return this.clone().$set(t,e)},m.get=function(t){return this[b.p(t)]()},m.add=function(r,f){var d,l=this;r=Number(r);var $=b.p(f),y=function(t){var e=O(l);return b.w(e.date(e.date()+Math.round(t*r)),l)};if($===c)return this.set(c,this.$M+r);if($===h)return this.set(h,this.$y+r);if($===a)return y(1);if($===o)return y(7);var M=(d={},d[s]=e,d[u]=n,d[i]=t,d)[$]||1,m=this.$d.getTime()+r*M;return b.w(m,this)},m.subtract=function(t,e){return this.add(-1*t,e)},m.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return n.invalidDate||l;var r=t||\"YYYY-MM-DDTHH:mm:ssZ\",i=b.z(this),s=this.$H,u=this.$m,a=this.$M,o=n.weekdays,c=n.months,f=n.meridiem,h=function(t,n,i,s){return t&&(t[n]||t(e,r))||i[n].slice(0,s)},d=function(t){return b.s(s%12||12,t,\"0\")},$=f||function(t,e,n){var r=t<12?\"AM\":\"PM\";return n?r.toLowerCase():r};return r.replace(y,(function(t,r){return r||function(t){switch(t){case\"YY\":return String(e.$y).slice(-2);case\"YYYY\":return b.s(e.$y,4,\"0\");case\"M\":return a+1;case\"MM\":return b.s(a+1,2,\"0\");case\"MMM\":return h(n.monthsShort,a,c,3);case\"MMMM\":return h(c,a);case\"D\":return e.$D;case\"DD\":return b.s(e.$D,2,\"0\");case\"d\":return String(e.$W);case\"dd\":return h(n.weekdaysMin,e.$W,o,2);case\"ddd\":return h(n.weekdaysShort,e.$W,o,3);case\"dddd\":return o[e.$W];case\"H\":return String(s);case\"HH\":return b.s(s,2,\"0\");case\"h\":return d(1);case\"hh\":return d(2);case\"a\":return $(s,u,!0);case\"A\":return $(s,u,!1);case\"m\":return String(u);case\"mm\":return b.s(u,2,\"0\");case\"s\":return String(e.$s);case\"ss\":return b.s(e.$s,2,\"0\");case\"SSS\":return b.s(e.$ms,3,\"0\");case\"Z\":return i}return null}(t)||i.replace(\":\",\"\")}))},m.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},m.diff=function(r,d,l){var $,y=this,M=b.p(d),m=O(r),v=(m.utcOffset()-this.utcOffset())*e,g=this-m,D=function(){return b.m(y,m)};switch(M){case h:$=D()/12;break;case c:$=D();break;case f:$=D()/3;break;case o:$=(g-v)/6048e5;break;case a:$=(g-v)/864e5;break;case u:$=g/n;break;case s:$=g/e;break;case i:$=g/t;break;default:$=g}return l?$:b.a($)},m.daysInMonth=function(){return this.endOf(c).$D},m.$locale=function(){return D[this.$L]},m.locale=function(t,e){if(!t)return this.$L;var n=this.clone(),r=w(t,e,!0);return r&&(n.$L=r),n},m.clone=function(){return b.w(this.$d,this)},m.toDate=function(){return new Date(this.valueOf())},m.toJSON=function(){return this.isValid()?this.toISOString():null},m.toISOString=function(){return this.$d.toISOString()},m.toString=function(){return this.$d.toUTCString()},M}(),k=_.prototype;return O.prototype=k,[[\"$ms\",r],[\"$s\",i],[\"$m\",s],[\"$H\",u],[\"$W\",a],[\"$M\",c],[\"$y\",h],[\"$D\",d]].forEach((function(t){k[t[1]]=function(e){return this.$g(e,t[0],t[1])}})),O.extend=function(t,e){return t.$i||(t(e,_,O),t.$i=!0),O},O.locale=w,O.isDayjs=S,O.unix=function(t){return O(1e3*t)},O.en=D[g],O.Ls=D,O.p={},O}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_customParseFormat=t()}(this,(function(){\"use strict\";var e={LTS:\"h:mm:ss A\",LT:\"h:mm A\",L:\"MM/DD/YYYY\",LL:\"MMMM D, YYYY\",LLL:\"MMMM D, YYYY h:mm A\",LLLL:\"dddd, MMMM D, YYYY h:mm A\"},t=/(\\[[^[]*\\])|([-_:/.,()\\s]+)|(A|a|Q|YYYY|YY?|ww?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,n=/\\d/,r=/\\d\\d/,i=/\\d\\d?/,o=/\\d*[^-_:/,()\\s\\d]+/,s={},a=function(e){return(e=+e)+(e>68?1900:2e3)};var f=function(e){return function(t){this[e]=+t}},h=[/[+-]\\d\\d:?(\\d\\d)?|Z/,function(e){(this.zone||(this.zone={})).offset=function(e){if(!e)return 0;if(\"Z\"===e)return 0;var t=e.match(/([+-]|\\d\\d)/g),n=60*t[1]+(+t[2]||0);return 0===n?0:\"+\"===t[0]?-n:n}(e)}],u=function(e){var t=s[e];return t&&(t.indexOf?t:t.s.concat(t.f))},d=function(e,t){var n,r=s.meridiem;if(r){for(var i=1;i<=24;i+=1)if(e.indexOf(r(i,0,t))>-1){n=i>12;break}}else n=e===(t?\"pm\":\"PM\");return n},c={A:[o,function(e){this.afternoon=d(e,!1)}],a:[o,function(e){this.afternoon=d(e,!0)}],Q:[n,function(e){this.month=3*(e-1)+1}],S:[n,function(e){this.milliseconds=100*+e}],SS:[r,function(e){this.milliseconds=10*+e}],SSS:[/\\d{3}/,function(e){this.milliseconds=+e}],s:[i,f(\"seconds\")],ss:[i,f(\"seconds\")],m:[i,f(\"minutes\")],mm:[i,f(\"minutes\")],H:[i,f(\"hours\")],h:[i,f(\"hours\")],HH:[i,f(\"hours\")],hh:[i,f(\"hours\")],D:[i,f(\"day\")],DD:[r,f(\"day\")],Do:[o,function(e){var t=s.ordinal,n=e.match(/\\d+/);if(this.day=n[0],t)for(var r=1;r<=31;r+=1)t(r).replace(/\\[|\\]/g,\"\")===e&&(this.day=r)}],w:[i,f(\"week\")],ww:[r,f(\"week\")],M:[i,f(\"month\")],MM:[r,f(\"month\")],MMM:[o,function(e){var t=u(\"months\"),n=(u(\"monthsShort\")||t.map((function(e){return e.slice(0,3)}))).indexOf(e)+1;if(n<1)throw new Error;this.month=n%12||n}],MMMM:[o,function(e){var t=u(\"months\").indexOf(e)+1;if(t<1)throw new Error;this.month=t%12||t}],Y:[/[+-]?\\d+/,f(\"year\")],YY:[r,function(e){this.year=a(e)}],YYYY:[/\\d{4}/,f(\"year\")],Z:h,ZZ:h};function l(n){var r,i;r=n,i=s&&s.formats;for(var o=(n=r.replace(/(\\[[^\\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(t,n,r){var o=r&&r.toUpperCase();return n||i[r]||e[r]||i[o].replace(/(\\[[^\\]]+])|(MMMM|MM|DD|dddd)/g,(function(e,t,n){return t||n.slice(1)}))}))).match(t),a=o.length,f=0;f<a;f+=1){var h=o[f],u=c[h],d=u&&u[0],l=u&&u[1];o[f]=l?{regex:d,parser:l}:h.replace(/^\\[|\\]$/g,\"\")}return function(e){for(var t={},n=0,r=0;n<a;n+=1){var i=o[n];if(\"string\"==typeof i)r+=i.length;else{var s=i.regex,f=i.parser,h=e.slice(r),u=s.exec(h)[0];f.call(t,u),e=e.replace(u,\"\")}}return function(e){var t=e.afternoon;if(void 0!==t){var n=e.hours;t?n<12&&(e.hours+=12):12===n&&(e.hours=0),delete e.afternoon}}(t),t}}return function(e,t,n){n.p.customParseFormat=!0,e&&e.parseTwoDigitYear&&(a=e.parseTwoDigitYear);var r=t.prototype,i=r.parse;r.parse=function(e){var t=e.date,r=e.utc,o=e.args;this.$u=r;var a=o[1];if(\"string\"==typeof a){var f=!0===o[2],h=!0===o[3],u=f||h,d=o[2];h&&(d=o[2]),s=this.$locale(),!f&&d&&(s=n.Ls[d]),this.$d=function(e,t,n,r){try{if([\"x\",\"X\"].indexOf(t)>-1)return new Date((\"X\"===t?1e3:1)*e);var i=l(t)(e),o=i.year,s=i.month,a=i.day,f=i.hours,h=i.minutes,u=i.seconds,d=i.milliseconds,c=i.zone,m=i.week,M=new Date,Y=a||(o||s?1:M.getDate()),p=o||M.getFullYear(),v=0;o&&!s||(v=s>0?s-1:M.getMonth());var D,w=f||0,g=h||0,y=u||0,L=d||0;return c?new Date(Date.UTC(p,v,Y,w,g,y,L+60*c.offset*1e3)):n?new Date(Date.UTC(p,v,Y,w,g,y,L)):(D=new Date(p,v,Y,w,g,y,L),m&&(D=r(D).week(m).toDate()),D)}catch(e){return new Date(\"\")}}(t,a,r,n),this.init(),d&&!0!==d&&(this.$L=this.locale(d).$L),u&&t!=this.format(a)&&(this.$d=new Date(\"\")),s={}}else if(a instanceof Array)for(var c=a.length,m=1;m<=c;m+=1){o[1]=a[m-1];var M=n.apply(this,o);if(M.isValid()){this.$d=M.$d,this.$L=M.$L,this.init();break}m===c&&(this.$d=new Date(\"\"))}else i.call(this,e)}}}));","!function(t,i){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=i():\"function\"==typeof define&&define.amd?define(i):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_utc=i()}(this,(function(){\"use strict\";var t=\"minute\",i=/[+-]\\d\\d(?::?\\d\\d)?/g,e=/([+-]|\\d\\d)/g;return function(s,f,n){var u=f.prototype;n.utc=function(t){var i={date:t,utc:!0,args:arguments};return new f(i)},u.utc=function(i){var e=n(this.toDate(),{locale:this.$L,utc:!0});return i?e.add(this.utcOffset(),t):e},u.local=function(){return n(this.toDate(),{locale:this.$L,utc:!1})};var r=u.parse;u.parse=function(t){t.utc&&(this.$u=!0),this.$utils().u(t.$offset)||(this.$offset=t.$offset),r.call(this,t)};var o=u.init;u.init=function(){if(this.$u){var t=this.$d;this.$y=t.getUTCFullYear(),this.$M=t.getUTCMonth(),this.$D=t.getUTCDate(),this.$W=t.getUTCDay(),this.$H=t.getUTCHours(),this.$m=t.getUTCMinutes(),this.$s=t.getUTCSeconds(),this.$ms=t.getUTCMilliseconds()}else o.call(this)};var a=u.utcOffset;u.utcOffset=function(s,f){var n=this.$utils().u;if(n(s))return this.$u?0:n(this.$offset)?a.call(this):this.$offset;if(\"string\"==typeof s&&(s=function(t){void 0===t&&(t=\"\");var s=t.match(i);if(!s)return null;var f=(\"\"+s[0]).match(e)||[\"-\",0,0],n=f[0],u=60*+f[1]+ +f[2];return 0===u?0:\"+\"===n?u:-u}(s),null===s))return this;var u=Math.abs(s)<=16?60*s:s;if(0===u)return this.utc(f);var r=this.clone();if(f)return r.$offset=u,r.$u=!1,r;var o=this.$u?this.toDate().getTimezoneOffset():-1*this.utcOffset();return(r=this.local().add(u+o,t)).$offset=u,r.$x.$localOffset=o,r};var h=u.format;u.format=function(t){var i=t||(this.$u?\"YYYY-MM-DDTHH:mm:ss[Z]\":\"\");return h.call(this,i)},u.valueOf=function(){var t=this.$utils().u(this.$offset)?0:this.$offset+(this.$x.$localOffset||this.$d.getTimezoneOffset());return this.$d.valueOf()-6e4*t},u.isUTC=function(){return!!this.$u},u.toISOString=function(){return this.toDate().toISOString()},u.toString=function(){return this.toDate().toUTCString()};var l=u.toDate;u.toDate=function(t){return\"s\"===t&&this.$offset?n(this.format(\"YYYY-MM-DD HH:mm:ss:SSS\")).toDate():l.call(this)};var c=u.diff;u.diff=function(t,i,e){if(t&&this.$u===t.$u)return c.call(this,t,i,e);var s=this.local(),f=n(t).local();return c.call(s,f,i,e)}}}));","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_timezone=e()}(this,(function(){\"use strict\";var t={year:0,month:1,day:2,hour:3,minute:4,second:5},e={};return function(n,i,o){var r,a=function(t,n,i){void 0===i&&(i={});var o=new Date(t),r=function(t,n){void 0===n&&(n={});var i=n.timeZoneName||\"short\",o=t+\"|\"+i,r=e[o];return r||(r=new Intl.DateTimeFormat(\"en-US\",{hour12:!1,timeZone:t,year:\"numeric\",month:\"2-digit\",day:\"2-digit\",hour:\"2-digit\",minute:\"2-digit\",second:\"2-digit\",timeZoneName:i}),e[o]=r),r}(n,i);return r.formatToParts(o)},u=function(e,n){for(var i=a(e,n),r=[],u=0;u<i.length;u+=1){var f=i[u],s=f.type,m=f.value,c=t[s];c>=0&&(r[c]=parseInt(m,10))}var d=r[3],l=24===d?0:d,h=r[0]+\"-\"+r[1]+\"-\"+r[2]+\" \"+l+\":\"+r[4]+\":\"+r[5]+\":000\",v=+e;return(o.utc(h).valueOf()-(v-=v%1e3))/6e4},f=i.prototype;f.tz=function(t,e){void 0===t&&(t=r);var n,i=this.utcOffset(),a=this.toDate(),u=a.toLocaleString(\"en-US\",{timeZone:t}),f=Math.round((a-new Date(u))/1e3/60),s=15*-Math.round(a.getTimezoneOffset()/15)-f;if(!Number(s))n=this.utcOffset(0,e);else if(n=o(u,{locale:this.$L}).$set(\"millisecond\",this.$ms).utcOffset(s,!0),e){var m=n.utcOffset();n=n.add(i-m,\"minute\")}return n.$x.$timezone=t,n},f.offsetName=function(t){var e=this.$x.$timezone||o.tz.guess(),n=a(this.valueOf(),e,{timeZoneName:t}).find((function(t){return\"timezonename\"===t.type.toLowerCase()}));return n&&n.value};var s=f.startOf;f.startOf=function(t,e){if(!this.$x||!this.$x.$timezone)return s.call(this,t,e);var n=o(this.format(\"YYYY-MM-DD HH:mm:ss:SSS\"),{locale:this.$L});return s.call(n,t,e).tz(this.$x.$timezone,!0)},o.tz=function(t,e,n){var i=n&&e,a=n||e||r,f=u(+o(),a);if(\"string\"!=typeof t)return o(t).tz(a);var s=function(t,e,n){var i=t-60*e*1e3,o=u(i,n);if(e===o)return[i,e];var r=u(i-=60*(o-e)*1e3,n);return o===r?[i,o]:[t-60*Math.min(o,r)*1e3,Math.max(o,r)]}(o.utc(t,i).valueOf(),f,a),m=s[0],c=s[1],d=o(m).utcOffset(c);return d.$x.$timezone=a,d},o.tz.guess=function(){return Intl.DateTimeFormat().resolvedOptions().timeZone},o.tz.setDefault=function(t){r=t}}}));","!function(r,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(r=\"undefined\"!=typeof globalThis?globalThis:r||self).dayjs_plugin_relativeTime=e()}(this,(function(){\"use strict\";return function(r,e,t){r=r||{};var n=e.prototype,o={future:\"in %s\",past:\"%s ago\",s:\"a few seconds\",m:\"a minute\",mm:\"%d minutes\",h:\"an hour\",hh:\"%d hours\",d:\"a day\",dd:\"%d days\",M:\"a month\",MM:\"%d months\",y:\"a year\",yy:\"%d years\"};function i(r,e,t,o){return n.fromToBase(r,e,t,o)}t.en.relativeTime=o,n.fromToBase=function(e,n,i,d,u){for(var f,a,s,l=i.$locale().relativeTime||o,h=r.thresholds||[{l:\"s\",r:44,d:\"second\"},{l:\"m\",r:89},{l:\"mm\",r:44,d:\"minute\"},{l:\"h\",r:89},{l:\"hh\",r:21,d:\"hour\"},{l:\"d\",r:35},{l:\"dd\",r:25,d:\"day\"},{l:\"M\",r:45},{l:\"MM\",r:10,d:\"month\"},{l:\"y\",r:17},{l:\"yy\",d:\"year\"}],m=h.length,c=0;c<m;c+=1){var y=h[c];y.d&&(f=d?t(e).diff(i,y.d,!0):i.diff(e,y.d,!0));var p=(r.rounding||Math.round)(Math.abs(f));if(s=f>0,p<=y.r||!y.r){p<=1&&c>0&&(y=h[c-1]);var v=l[y.l];u&&(p=u(\"\"+p)),a=\"string\"==typeof v?v.replace(\"%d\",p):v(p,n,y.l,s);break}}if(n)return a;var M=s?l.future:l.past;return\"function\"==typeof M?M(a):M.replace(\"%s\",a)},n.to=function(r,e){return i(r,e,this,!0)},n.from=function(r,e){return i(r,e,this)};var d=function(r){return r.$u?t.utc():t()};n.toNow=function(r){return this.to(d(this),r)},n.fromNow=function(r){return this.from(d(this),r)}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_advancedFormat=t()}(this,(function(){\"use strict\";return function(e,t){var r=t.prototype,n=r.format;r.format=function(e){var t=this,r=this.$locale();if(!this.isValid())return n.bind(this)(e);var s=this.$utils(),a=(e||\"YYYY-MM-DDTHH:mm:ssZ\").replace(/\\[([^\\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g,(function(e){switch(e){case\"Q\":return Math.ceil((t.$M+1)/3);case\"Do\":return r.ordinal(t.$D);case\"gggg\":return t.weekYear();case\"GGGG\":return t.isoWeekYear();case\"wo\":return r.ordinal(t.week(),\"W\");case\"w\":case\"ww\":return s.s(t.week(),\"w\"===e?1:2,\"0\");case\"W\":case\"WW\":return s.s(t.isoWeek(),\"W\"===e?1:2,\"0\");case\"k\":case\"kk\":return s.s(String(0===t.$H?24:t.$H),\"k\"===e?1:2,\"0\");case\"X\":return Math.floor(t.$d.getTime()/1e3);case\"x\":return t.$d.getTime();case\"z\":return\"[\"+t.offsetName()+\"]\";case\"zzz\":return\"[\"+t.offsetName(\"long\")+\"]\";default:return e}}));return n.bind(this)(a)}}}));","!function(e,_){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=_(require(\"dayjs\")):\"function\"==typeof define&&define.amd?define([\"dayjs\"],_):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_locale_zh_cn=_(e.dayjs)}(this,(function(e){\"use strict\";function _(e){return e&&\"object\"==typeof e&&\"default\"in e?e:{default:e}}var t=_(e),d={name:\"zh-cn\",weekdays:\"星期日_星期一_星期二_星期三_星期四_星期五_星期六\".split(\"_\"),weekdaysShort:\"周日_周一_周二_周三_周四_周五_周六\".split(\"_\"),weekdaysMin:\"日_一_二_三_四_五_六\".split(\"_\"),months:\"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月\".split(\"_\"),monthsShort:\"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月\".split(\"_\"),ordinal:function(e,_){return\"W\"===_?e+\"周\":e+\"日\"},weekStart:1,yearStart:4,formats:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"YYYY/MM/DD\",LL:\"YYYY年M月D日\",LLL:\"YYYY年M月D日Ah点mm分\",LLLL:\"YYYY年M月D日ddddAh点mm分\",l:\"YYYY/M/D\",ll:\"YYYY年M月D日\",lll:\"YYYY年M月D日 HH:mm\",llll:\"YYYY年M月D日dddd HH:mm\"},relativeTime:{future:\"%s内\",past:\"%s前\",s:\"几秒\",m:\"1 分钟\",mm:\"%d 分钟\",h:\"1 小时\",hh:\"%d 小时\",d:\"1 天\",dd:\"%d 天\",M:\"1 个月\",MM:\"%d 个月\",y:\"1 年\",yy:\"%d 年\"},meridiem:function(e,_){var t=100*e+_;return t<600?\"凌晨\":t<900?\"早上\":t<1100?\"上午\":t<1300?\"中午\":t<1800?\"下午\":\"晚上\"}};return t.default.locale(d,null,!0),d}));","/**\r\n * 内部统一导出, 外部快捷引入: import {xx} from 'base-tools/ts'\r\n */\r\nexport * from './array';\r\nexport * from './async';\r\nexport * from './bean';\r\nexport * from './day';\r\nexport * from './es-toolkit';\r\nexport * from './number';\r\nexport * from './object';\r\nexport * from './string';\r\nexport * from './typing';\r\nexport * from './url';\r\nexport * from './validator';\r\n","/**\r\n * 拖拽排序 (不改变原数组)\r\n * @param list 原始数组\r\n * @param fromIndex 要移动的元素的原始索引\r\n * @param toIndex 要移动到的目标索引\r\n * @returns 移动元素后的新数组\r\n */\r\nexport function arrayMove<T>(list: T[], fromIndex: number, toIndex: number) {\r\n const newList = [...list]; // 创建新数组副本\r\n const [removed] = newList.splice(fromIndex, 1); // 移除 fromIndex 处的元素\r\n newList.splice(toIndex, 0, removed); // 插入到 toIndex 处\r\n return newList;\r\n}\r\n","/**\r\n * 将 Promise 包装为 [data, error] 形式, 减少 try-catch 代码量\r\n * @param p 要包装的 Promise\r\n * @returns 一个 Promise,其结果为 [data, error] 形式\r\n * @example\r\n * const [data, err] = await toAsync(fetch('https://api.example.com/data'));\r\n * if (err) {\r\n * console.error(err);\r\n * return;\r\n * }\r\n * console.log(data);\r\n */\r\nexport async function toAsync<T>(p: Promise<T>): Promise<[T | null, unknown]> {\r\n try {\r\n const data = await p;\r\n return [data, null];\r\n } catch (err) {\r\n return [null, err];\r\n }\r\n}\r\n","export type EventType = string | symbol;\n\n// An event handler can take an optional event argument\n// and should not return a value\nexport type Handler<T = unknown> = (event: T) => void;\nexport type WildcardHandler<T = Record<string, unknown>> = (\n\ttype: keyof T,\n\tevent: T[keyof T]\n) => void;\n\n// An array of all currently registered event handlers for a type\nexport type EventHandlerList<T = unknown> = Array<Handler<T>>;\nexport type WildCardEventHandlerList<T = Record<string, unknown>> = Array<\n\tWildcardHandler<T>\n>;\n\n// A map of event types and their corresponding event handlers.\nexport type EventHandlerMap<Events extends Record<EventType, unknown>> = Map<\n\tkeyof Events | '*',\n\tEventHandlerList<Events[keyof Events]> | WildCardEventHandlerList<Events>\n>;\n\nexport interface Emitter<Events extends Record<EventType, unknown>> {\n\tall: EventHandlerMap<Events>;\n\n\ton<Key extends keyof Events>(type: Key, handler: Handler<Events[Key]>): void;\n\ton(type: '*', handler: WildcardHandler<Events>): void;\n\n\toff<Key extends keyof Events>(\n\t\ttype: Key,\n\t\thandler?: Handler<Events[Key]>\n\t): void;\n\toff(type: '*', handler: WildcardHandler<Events>): void;\n\n\temit<Key extends keyof Events>(type: Key, event: Events[Key]): void;\n\temit<Key extends keyof Events>(\n\t\ttype: undefined extends Events[Key] ? Key : never\n\t): void;\n}\n\n/**\n * Mitt: Tiny (~200b) functional event emitter / pubsub.\n * @name mitt\n * @returns {Mitt}\n */\nexport default function mitt<Events extends Record<EventType, unknown>>(\n\tall?: EventHandlerMap<Events>\n): Emitter<Events> {\n\ttype GenericEventHandler =\n\t\t| Handler<Events[keyof Events]>\n\t\t| WildcardHandler<Events>;\n\tall = all || new Map();\n\n\treturn {\n\t\t/**\n\t\t * A Map of event names to registered handler functions.\n\t\t */\n\t\tall,\n\n\t\t/**\n\t\t * Register an event handler for the given type.\n\t\t * @param {string|symbol} type Type of event to listen for, or `'*'` for all events\n\t\t * @param {Function} handler Function to call in response to given event\n\t\t * @memberOf mitt\n\t\t */\n\t\ton<Key extends keyof Events>(type: Key, handler: GenericEventHandler) {\n\t\t\tconst handlers: Array<GenericEventHandler> | undefined = all!.get(type);\n\t\t\tif (handlers) {\n\t\t\t\thandlers.push(handler);\n\t\t\t} else {\n\t\t\t\tall!.set(type, [handler] as EventHandlerList<Events[keyof Events]>);\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Remove an event handler for the given type.\n\t\t * If `handler` is omitted, all handlers of the given type are removed.\n\t\t * @param {string|symbol} type Type of event to unregister `handler` from (`'*'` to remove a wildcard handler)\n\t\t * @param {Function} [handler] Handler function to remove\n\t\t * @memberOf mitt\n\t\t */\n\t\toff<Key extends keyof Events>(type: Key, handler?: GenericEventHandler) {\n\t\t\tconst handlers: Array<GenericEventHandler> | undefined = all!.get(type);\n\t\t\tif (handlers) {\n\t\t\t\tif (handler) {\n\t\t\t\t\thandlers.splice(handlers.indexOf(handler) >>> 0, 1);\n\t\t\t\t} else {\n\t\t\t\t\tall!.set(type, []);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Invoke all handlers for the given type.\n\t\t * If present, `'*'` handlers are invoked after type-matched handlers.\n\t\t *\n\t\t * Note: Manually firing '*' handlers is not supported.\n\t\t *\n\t\t * @param {string|symbol} type The event type to invoke\n\t\t * @param {Any} [evt] Any value (object is recommended and powerful), passed to each handler\n\t\t * @memberOf mitt\n\t\t */\n\t\temit<Key extends keyof Events>(type: Key, evt?: Events[Key]) {\n\t\t\tlet handlers = all!.get(type);\n\t\t\tif (handlers) {\n\t\t\t\t(handlers as EventHandlerList<Events[keyof Events]>)\n\t\t\t\t\t.slice()\n\t\t\t\t\t.map((handler) => {\n\t\t\t\t\t\thandler(evt!);\n\t\t\t\t\t});\n\t\t\t}\n\n\t\t\thandlers = all!.get('*');\n\t\t\tif (handlers) {\n\t\t\t\t(handlers as WildCardEventHandlerList<Events>)\n\t\t\t\t\t.slice()\n\t\t\t\t\t.map((handler) => {\n\t\t\t\t\t\thandler(type, evt!);\n\t\t\t\t\t});\n\t\t\t}\n\t\t}\n\t};\n}\n","import mitt, { type Emitter, type EventType } from 'mitt';\r\n\r\ntype Events = Record<EventType, unknown>;\r\n\r\n/**\r\n * 总线式发布订阅\r\n * @example\r\n * const emitter = new EventBus(); // 支持链式调用\r\n * emitter.on('xx', fn); // 订阅事件 xx\r\n * emitter.once('xx', fn); // 订阅事件 xx 一次\r\n * emitter.emit('xx', any); // 发布事件 xx,参数任意\r\n * emitter.off('xx'); // 移除事件 xx 下全部监听\r\n * emitter.off('xx', fn); // 移除事件 xx 下指定监听\r\n * emitter.clear(); // 移除所有事件\r\n *\r\n * @example 类型约束\r\n * type T = { a: number; b: string };\r\n * const emitter = new EventBus<{ xx: T; yy: void }>();\r\n * const fn = (arg: T) => {}\r\n * emitter.on('xx', fn);\r\n * emitter.off('xx', fn);\r\n * emitter.emit('xx', { a: 123, b: '123' });\r\n * emitter.emit('yy');\r\n */\r\nexport class EventBus<T extends Events = Events> {\r\n private readonly _emitter: Emitter<T> = mitt<T>();\r\n\r\n /** 订阅 */\r\n on<K extends keyof T>(type: K, fn: (event: T[K]) => void): this {\r\n this._emitter.on(type, fn);\r\n return this;\r\n }\r\n\r\n /** 订阅一次 */\r\n once<K extends keyof T>(type: K, fn: (event: T[K]) => void): this {\r\n const wrap = (event: T[K]) => {\r\n this._emitter.off(type, wrap);\r\n fn(event);\r\n };\r\n this._emitter.on(type, wrap);\r\n return this;\r\n }\r\n\r\n /** 发布 */\r\n emit<K extends keyof T>(type: K, event?: T[K]): this {\r\n this._emitter.emit(type, event as T[K]);\r\n return this;\r\n }\r\n\r\n /** 移除 */\r\n off<K extends keyof T>(type: K, fn?: (event: T[K]) => void): this {\r\n this._emitter.off(type, fn);\r\n return this;\r\n }\r\n\r\n /** 清空 */\r\n clear(): this {\r\n this._emitter.all.clear();\r\n return this;\r\n }\r\n}\r\n","import dayjs from 'dayjs';\r\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\r\nimport utc from 'dayjs/plugin/utc';\r\nimport timezone from 'dayjs/plugin/timezone';\r\nimport relativeTime from 'dayjs/plugin/relativeTime';\r\nimport advancedFormat from 'dayjs/plugin/advancedFormat';\r\nimport 'dayjs/locale/zh-cn';\r\nimport { zeroPad } from '../number';\r\n\r\ndayjs.extend(customParseFormat);\r\ndayjs.extend(utc);\r\ndayjs.extend(timezone);\r\ndayjs.extend(relativeTime);\r\ndayjs.extend(advancedFormat);\r\ndayjs.locale('zh-cn');\r\n\r\ntype BaseTime = number | string | Date | dayjs.Dayjs | null | undefined;\r\n\r\n/**\r\n * 创建 dayjs 实例\r\n * 文档: https://day.js.org/zh-CN/\r\n * @param t 各种规范或不规范的时间\r\n * @returns dayjs 实例\r\n * @example\r\n * const d = toDayjs('2021-01-01'); // dayjs 实例 (无参,则默认当前时间)\r\n * d.format('YYYY-MM-DD HH:mm:ss'); // \"2025-12-10 11:33:16\"\r\n * d.valueOf(); // 毫秒时间戳,如 1765337596913\r\n * d.unix(); // 秒时间戳,如 1765337596\r\n * d.millisecond(); // 毫秒 913\r\n * d.second(); // 秒 16\r\n * d.minute(); // 分 33\r\n * d.hour(); // 时 11\r\n * d.date(); // 日 10\r\n * d.day(); // 星期几 5(周日=0)\r\n * d.month() + 1; // 月 12\r\n * d.year(); // 年 2025\r\n * d.startOf('day').valueOf(); // 当日零点\r\n * d.startOf('month').format('YYYY-MM-DD HH:mm:ss'); // 月初 \"2025-12-01 00:00:00\"\r\n * d.endOf('month').format('YYYY-MM-DD HH:mm:ss'); // 月末 \"2025-12-31 23:59:59\"\r\n * d.fromNow(); // “刚刚”、“x分钟前/后”、“x小时前/后”、“x天前/后”、“x月前/后”、“x年前/后”\r\n * d.isSame(t, 'day'); // 是否与t在同一天\r\n * d.diff(); // 与当前时间相差的毫秒数\r\n * d.diff(t); // 与t相差的毫秒数\r\n * d.diff(t, 'second'); // 与t相差的秒数\r\n * d.diff(t, 'minute'); // 与t相差的分钟数\r\n * d.diff(t, 'hour'); // 与t相差的小时数\r\n * d.diff(t, 'day'); // 与t相差的天数\r\n * d.diff(t, 'week'); // 与t相差的周数\r\n * d.diff(t, 'month'); // 与t相差的月数\r\n * d.diff(t, 'quarter'); // 与t相差的季度数\r\n * d.diff(t, 'year'); // 与t相差的年数\r\n */\r\nexport function toDayjs(t?: BaseTime, fmt?: dayjs.OptionType) {\r\n if (t === null || t === undefined) return dayjs();\r\n if (typeof t === 'number') {\r\n const s = String(Math.trunc(t));\r\n return dayjs(s.length === 10 ? t * 1000 : t, fmt);\r\n }\r\n if (typeof t === 'string') {\r\n const s = t.trim();\r\n if (/^\\d{10}$/.test(s)) return dayjs(Number(s) * 1000, fmt);\r\n if (/^\\d{13}$/.test(s)) return dayjs(Number(s), fmt);\r\n if (/^\\d{4}-\\d{2}-\\d{2}$/.test(s)) return dayjs(s, fmt || 'YYYY-MM-DD');\r\n if (/^\\d{4}\\/\\d{2}\\/\\d{2}$/.test(s)) return dayjs(s, fmt || 'YYYY/MM/DD');\r\n if (/^\\d{4}-\\d{2}-\\d{2}\\s+\\d{2}:\\d{2}:\\d{2}$/.test(s))\r\n return dayjs(s, fmt || 'YYYY-MM-DD HH:mm:ss');\r\n if (/^\\d{4}\\/\\d{2}\\/\\d{2}\\s+\\d{2}:\\d{2}:\\d{2}$/.test(s))\r\n return dayjs(s, fmt || 'YYYY/MM/DD HH:mm:ss');\r\n return dayjs(s, fmt);\r\n }\r\n return dayjs(t, fmt);\r\n}\r\n\r\n/**\r\n * 获取“前几天”的日期范围\r\n * @param offset 正整数天数\r\n * @param fmt 日期格式,默认 `YYYY-MM-DD`\r\n * @returns `[start, end]` 日期字符串数组\r\n * @example\r\n * 若今天为 2025-11-19:\r\n * getDateRangeBefore(1) // ['2025-11-18', '2025-11-19']\r\n * getDateRangeBefore(1, 'YYYY-MM-DD HH:mm:ss') // ['2025-11-18 00:00:00', '2025-11-19 23:59:59']\r\n */\r\nexport function getDateRangeBefore(offset: number, fmt = 'YYYY-MM-DD') {\r\n const now = toDayjs(Date.now());\r\n const n = Math.max(0, Math.trunc(offset));\r\n const hasTime = /H|h|m|s|S|A|a|x|X/.test(fmt);\r\n const startDay = now.add(-n, 'day');\r\n const endDay = now;\r\n const start = (hasTime ? startDay.startOf('day') : startDay).format(fmt);\r\n const end = (hasTime ? endDay.endOf('day') : endDay).format(fmt);\r\n return [start, end];\r\n}\r\n\r\n/**\r\n * 获取“后几天”的日期范围\r\n * - 起点:今天;终点:`offset` 天后\r\n * - 若 `fmt` 含时间令牌(如 `HH:mm:ss`),则返回整日范围:起点为当日零点,终点为当日末尾\r\n * @param offset 正整数天数\r\n * @param fmt 日期格式,默认 `YYYY-MM-DD`\r\n * @returns `[start, end]` 日期字符串数组\r\n * @example\r\n * 若今天为 2025-11-19:\r\n * getDateRangeAfter(1) // ['2025-11-19', '2025-11-20']\r\n * getDateRangeAfter(1, 'YYYY-MM-DD HH:mm:ss') // ['2025-11-19 00:00:00', '2025-11-20 23:59:59']\r\n */\r\nexport function getDateRangeAfter(offset: number, fmt = 'YYYY-MM-DD') {\r\n const now = toDayjs(Date.now());\r\n const n = Math.max(0, Math.trunc(offset));\r\n const hasTime = /H|h|m|s|S|A|a|x|X/.test(fmt);\r\n const startDay = now;\r\n const endDay = now.add(n, 'day');\r\n const start = (hasTime ? startDay.startOf('day') : startDay).format(fmt);\r\n const end = (hasTime ? endDay.endOf('day') : endDay).format(fmt);\r\n return [start, end];\r\n}\r\n\r\n/**\r\n * 获取倒计时的时间分解(零填充字符串)\r\n * @param diff 毫秒差值(正数表示剩余时间,负数/0表示已到期)\r\n * @returns 包含天、时、分、秒、毫秒的零填充对象\r\n * @example\r\n * const diff = toDayjs(t).diff(); // 毫秒差值\r\n * const parts = getCountdownParts(diff); // { d: '00', h: '00', m: '00', s: '00', ms: '000' }\r\n */\r\nexport function getCountdownParts(diff: number) {\r\n if (diff <= 0) return { d: '00', h: '00', m: '00', s: '00', ms: '000' };\r\n\r\n const d = Math.floor(diff / (1000 * 60 * 60 * 24));\r\n const h = Math.floor((diff / (1000 * 60 * 60)) % 24);\r\n const m = Math.floor((diff / (1000 * 60)) % 60);\r\n const s = Math.floor((diff / 1000) % 60);\r\n const ms = diff % 1000;\r\n\r\n return {\r\n d: zeroPad(d),\r\n h: zeroPad(h),\r\n m: zeroPad(m),\r\n s: zeroPad(s),\r\n ms: zeroPad(ms, 3),\r\n };\r\n}\r\n\r\n/**\r\n * 通过出生日期计算年龄\r\n * @param birthdate 生日日期,支持多种格式(会被自动解析)\r\n * @returns 年龄对象,包含 `age`(年龄数值)和 `type`(年龄单位,'year' 表示年,'month' 表示月)\r\n * @example\r\n * // 假设当前日期为 2025-11-19\r\n * getAgeByBirthdate('2025-05-10'); // { age: 6, type: 'month' }\r\n * getAgeByBirthdate('2020-11-19'); // { age: 5, type: 'year' }\r\n * getAgeByBirthdate('2020-12-01'); // { age: 4, type: 'year' }(生日还没到, 所以年龄是4岁)\r\n */\r\nexport function getAgeByBirthdate(birthdate: string) {\r\n const birth = toDayjs(birthdate, 'YYYY-MM-DD');\r\n const now = toDayjs(Date.now());\r\n\r\n // 精确的月份计算\r\n const totalMonths = (now.year() - birth.year()) * 12 + (now.month() - birth.month());\r\n\r\n // 如果当前日期小于出生日期,月份减1\r\n const adjustedMonths = now.date() < birth.date() ? totalMonths - 1 : totalMonths;\r\n\r\n if (adjustedMonths >= 12) {\r\n let age = Math.floor(adjustedMonths / 12);\r\n // 检查生日是否已过\r\n const birthdayThisYear = birth.add(age, 'year');\r\n if (now.isBefore(birthdayThisYear)) {\r\n age--;\r\n }\r\n return { age, type: 'year' };\r\n }\r\n\r\n return { age: adjustedMonths, type: 'month' };\r\n}\r\n\r\n/**\r\n * 对外抛出 dayjs 以便全局配置\r\n * @example\r\n * 切换语言\r\n * dayjs.locale('en'); // 切换为英文\r\n * dayjs.locale('zh-cn'); // 切换为中文 (默认)\r\n */\r\nexport { dayjs };\r\n","/*\r\n * bignumber.js v9.3.1\r\n * A JavaScript library for arbitrary-precision arithmetic.\r\n * https://github.com/MikeMcl/bignumber.js\r\n * Copyright (c) 2025 Michael Mclaughlin <M8ch88l@gmail.com>\r\n * MIT Licensed.\r\n *\r\n * BigNumber.prototype methods | BigNumber methods\r\n * |\r\n * absoluteValue abs | clone\r\n * comparedTo | config set\r\n * decimalPlaces dp | DECIMAL_PLACES\r\n * dividedBy div | ROUNDING_MODE\r\n * dividedToIntegerBy idiv | EXPONENTIAL_AT\r\n * exponentiatedBy pow | RANGE\r\n * integerValue | CRYPTO\r\n * isEqualTo eq | MODULO_MODE\r\n * isFinite | POW_PRECISION\r\n * isGreaterThan gt | FORMAT\r\n * isGreaterThanOrEqualTo gte | ALPHABET\r\n * isInteger | isBigNumber\r\n * isLessThan lt | maximum max\r\n * isLessThanOrEqualTo lte | minimum min\r\n * isNaN | random\r\n * isNegative | sum\r\n * isPositive |\r\n * isZero |\r\n * minus |\r\n * modulo mod |\r\n * multipliedBy times |\r\n * negated |\r\n * plus |\r\n * precision sd |\r\n * shiftedBy |\r\n * squareRoot sqrt |\r\n * toExponential |\r\n * toFixed |\r\n * toFormat |\r\n * toFraction |\r\n * toJSON |\r\n * toNumber |\r\n * toPrecision |\r\n * toString |\r\n * valueOf |\r\n *\r\n */\r\n\r\n\r\nvar\r\n isNumeric = /^-?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?$/i,\r\n mathceil = Math.ceil,\r\n mathfloor = Math.floor,\r\n\r\n bignumberError = '[BigNumber Error] ',\r\n tooManyDigits = bignumberError + 'Number primitive has more than 15 significant digits: ',\r\n\r\n BASE = 1e14,\r\n LOG_BASE = 14,\r\n MAX_SAFE_INTEGER = 0x1fffffffffffff, // 2^53 - 1\r\n // MAX_INT32 = 0x7fffffff, // 2^31 - 1\r\n POWS_TEN = [1, 10, 100, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13],\r\n SQRT_BASE = 1e7,\r\n\r\n // EDITABLE\r\n // The limit on the value of DECIMAL_PLACES, TO_EXP_NEG, TO_EXP_POS, MIN_EXP, MAX_EXP, and\r\n // the arguments to toExponential, toFixed, toFormat, and toPrecision.\r\n MAX = 1E9; // 0 to MAX_INT32\r\n\r\n\r\n/*\r\n * Create and return a BigNumber constructor.\r\n */\r\nfunction clone(configObject) {\r\n var div, convertBase, parseNumeric,\r\n P = BigNumber.prototype = { constructor: BigNumber, toString: null, valueOf: null },\r\n ONE = new BigNumber(1),\r\n\r\n\r\n //----------------------------- EDITABLE CONFIG DEFAULTS -------------------------------\r\n\r\n\r\n // The default values below must be integers within the inclusive ranges stated.\r\n // The values can also be changed at run-time using BigNumber.set.\r\n\r\n // The maximum number of decimal places for operations involving division.\r\n DECIMAL_PLACES = 20, // 0 to MAX\r\n\r\n // The rounding mode used when rounding to the above decimal places, and when using\r\n // toExponential, toFixed, toFormat and toPrecision, and round (default value).\r\n // UP 0 Away from zero.\r\n // DOWN 1 Towards zero.\r\n // CEIL 2 Towards +Infinity.\r\n // FLOOR 3 Towards -Infinity.\r\n // HALF_UP 4 Towards nearest neighbour. If equidistant, up.\r\n // HALF_DOWN 5 Towards nearest neighbour. If equidistant, down.\r\n // HALF_EVEN 6 Towards nearest neighbour. If equidistant, towards even neighbour.\r\n // HALF_CEIL 7 Towards nearest neighbour. If equidistant, towards +Infinity.\r\n // HALF_FLOOR 8 Towards nearest neighbour. If equidistant, towards -Infinity.\r\n ROUNDING_MODE = 4, // 0 to 8\r\n\r\n // EXPONENTIAL_AT : [TO_EXP_NEG , TO_EXP_POS]\r\n\r\n // The exponent value at and beneath which toString returns exponential notation.\r\n // Number type: -7\r\n TO_EXP_NEG = -7, // 0 to -MAX\r\n\r\n // The exponent value at and above which toString returns exponential notation.\r\n // Number type: 21\r\n TO_EXP_POS = 21, // 0 to MAX\r\n\r\n // RANGE : [MIN_EXP, MAX_EXP]\r\n\r\n // The minimum exponent value, beneath which underflow to zero occurs.\r\n // Number type: -324 (5e-324)\r\n MIN_EXP = -1e7, // -1 to -MAX\r\n\r\n // The maximum exponent value, above which overflow to Infinity occurs.\r\n // Number type: 308 (1.7976931348623157e+308)\r\n // For MAX_EXP > 1e7, e.g. new BigNumber('1e100000000').plus(1) may be slow.\r\n MAX_EXP = 1e7, // 1 to MAX\r\n\r\n // Whether to use cryptographically-secure random number generation, if available.\r\n CRYPTO = false, // true or false\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.\r\n // This modulo mode is commonly known as 'truncated division' and is\r\n // equivalent to (a % n) in JavaScript.\r\n // FLOOR 3 The remainder has the same sign as the divisor (Python %).\r\n // HALF_EVEN 6 This modulo mode implements the IEEE 754 remainder function.\r\n // EUCLID 9 Euclidian division. q = sign(n) * floor(a / abs(n)).\r\n // The remainder is always positive.\r\n //\r\n // The truncated division, floored division, Euclidian division and IEEE 754 remainder\r\n // modes are commonly used for the modulus operation.\r\n // Although the other rounding modes can also be used, they may not give useful results.\r\n MODULO_MODE = 1, // 0 to 9\r\n\r\n // The maximum number of significant digits of the result of the exponentiatedBy operation.\r\n // If POW_PRECISION is 0, there will be unlimited significant digits.\r\n POW_PRECISION = 0, // 0 to MAX\r\n\r\n // The format specification used by the BigNumber.prototype.toFormat method.\r\n FORMAT = {\r\n prefix: '',\r\n groupSize: 3,\r\n secondaryGroupSize: 0,\r\n groupSeparator: ',',\r\n decimalSeparator: '.',\r\n fractionGroupSize: 0,\r\n fractionGroupSeparator: '\\xA0', // non-breaking space\r\n suffix: ''\r\n },\r\n\r\n // The alphabet used for base conversion. It must be at least 2 characters long, with no '+',\r\n // '-', '.', whitespace, or repeated character.\r\n // '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ$_'\r\n ALPHABET = '0123456789abcdefghijklmnopqrstuvwxyz',\r\n alphabetHasNormalDecimalDigits = true;\r\n\r\n\r\n //------------------------------------------------------------------------------------------\r\n\r\n\r\n // CONSTRUCTOR\r\n\r\n\r\n /*\r\n * The BigNumber constructor and exported function.\r\n * Create and return a new instance of a BigNumber object.\r\n *\r\n * v {number|string|BigNumber} A numeric value.\r\n * [b] {number} The base of v. Integer, 2 to ALPHABET.length inclusive.\r\n */\r\n function BigNumber(v, b) {\r\n var alphabet, c, caseChanged, e, i, isNum, len, str,\r\n x = this;\r\n\r\n // Enable constructor call without `new`.\r\n if (!(x instanceof BigNumber)) return new BigNumber(v, b);\r\n\r\n if (b == null) {\r\n\r\n if (v && v._isBigNumber === true) {\r\n x.s = v.s;\r\n\r\n if (!v.c || v.e > MAX_EXP) {\r\n x.c = x.e = null;\r\n } else if (v.e < MIN_EXP) {\r\n x.c = [x.e = 0];\r\n } else {\r\n x.e = v.e;\r\n x.c = v.c.slice();\r\n }\r\n\r\n return;\r\n }\r\n\r\n if ((isNum = typeof v == 'number') && v * 0 == 0) {\r\n\r\n // Use `1 / n` to handle minus zero also.\r\n x.s = 1 / v < 0 ? (v = -v, -1) : 1;\r\n\r\n // Fast path for integers, where n < 2147483648 (2**31).\r\n if (v === ~~v) {\r\n for (e = 0, i = v; i >= 10; i /= 10, e++);\r\n\r\n if (e > MAX_EXP) {\r\n x.c = x.e = null;\r\n } else {\r\n x.e = e;\r\n x.c = [v];\r\n }\r\n\r\n return;\r\n }\r\n\r\n str = String(v);\r\n } else {\r\n\r\n if (!isNumeric.test(str = String(v))) return parseNumeric(x, str, isNum);\r\n\r\n x.s = str.charCodeAt(0) == 45 ? (str = str.slice(1), -1) : 1;\r\n }\r\n\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 } else {\r\n\r\n // '[BigNumber Error] Base {not a primitive number|not an integer|out of range}: {b}'\r\n intCheck(b, 2, ALPHABET.length, 'Base');\r\n\r\n // Allow exponential notation to be used with base 10 argument, while\r\n // also rounding to DECIMAL_PLACES as with other bases.\r\n if (b == 10 && alphabetHasNormalDecimalDigits) {\r\n x = new BigNumber(v);\r\n return round(x, DECIMAL_PLACES + x.e + 1, ROUNDING_MODE);\r\n }\r\n\r\n str = String(v);\r\n\r\n if (isNum = typeof v == 'number') {\r\n\r\n // Avoid potential interpretation of Infinity and NaN as base 44+ values.\r\n if (v * 0 != 0) return parseNumeric(x, str, isNum, b);\r\n\r\n x.s = 1 / v < 0 ? (str = str.slice(1), -1) : 1;\r\n\r\n // '[BigNumber Error] Number primitive has more than 15 significant digits: {n}'\r\n if (BigNumber.DEBUG && str.replace(/^0\\.0*|\\./, '').length > 15) {\r\n throw Error\r\n (tooManyDigits + v);\r\n }\r\n } else {\r\n x.s = str.charCodeAt(0) === 45 ? (str = str.slice(1), -1) : 1;\r\n }\r\n\r\n alphabet = ALPHABET.slice(0, b);\r\n e = i = 0;\r\n\r\n // Check that str is a valid base b number.\r\n // Don't use RegExp, so alphabet can contain special characters.\r\n for (len = str.length; i < len; i++) {\r\n if (alphabet.indexOf(c = str.charAt(i)) < 0) {\r\n if (c == '.') {\r\n\r\n // If '.' is not the first character and it has not be found before.\r\n if (i > e) {\r\n e = len;\r\n continue;\r\n }\r\n } else if (!caseChanged) {\r\n\r\n // Allow e.g. hexadecimal 'FF' as well as 'ff'.\r\n if (str == str.toUpperCase() && (str = str.toLowerCase()) ||\r\n str == str.toLowerCase() && (str = str.toUpperCase())) {\r\n caseChanged = true;\r\n i = -1;\r\n e = 0;\r\n continue;\r\n }\r\n }\r\n\r\n return parseNumeric(x, String(v), isNum, b);\r\n }\r\n }\r\n\r\n // Prevent later check for length on converted number.\r\n isNum = false;\r\n str = convertBase(str, b, 10, x.s);\r\n\r\n // Decimal point?\r\n if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');\r\n else 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) === 48;);\r\n\r\n if (str = str.slice(i, ++len)) {\r\n len -= i;\r\n\r\n // '[BigNumber Error] Number primitive has more than 15 significant digits: {n}'\r\n if (isNum && BigNumber.DEBUG &&\r\n len > 15 && (v > MAX_SAFE_INTEGER || v !== mathfloor(v))) {\r\n throw Error\r\n (tooManyDigits + (x.s * v));\r\n }\r\n\r\n // Overflow?\r\n if ((e = e - i - 1) > MAX_EXP) {\r\n\r\n // Infinity.\r\n x.c = x.e = null;\r\n\r\n // Underflow?\r\n } else if (e < MIN_EXP) {\r\n\r\n // Zero.\r\n x.c = [x.e = 0];\r\n } else {\r\n x.e = e;\r\n x.c = [];\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 element of the coefficient array.\r\n i = (e + 1) % LOG_BASE;\r\n if (e < 0) i += LOG_BASE; // i < 1\r\n\r\n if (i < len) {\r\n if (i) x.c.push(+str.slice(0, i));\r\n\r\n for (len -= LOG_BASE; i < len;) {\r\n x.c.push(+str.slice(i, i += LOG_BASE));\r\n }\r\n\r\n i = LOG_BASE - (str = str.slice(i)).length;\r\n } else {\r\n i -= len;\r\n }\r\n\r\n for (; i--; str += '0');\r\n x.c.push(+str);\r\n }\r\n } else {\r\n\r\n // Zero.\r\n x.c = [x.e = 0];\r\n }\r\n }\r\n\r\n\r\n // CONSTRUCTOR PROPERTIES\r\n\r\n\r\n BigNumber.clone = clone;\r\n\r\n BigNumber.ROUND_UP = 0;\r\n BigNumber.ROUND_DOWN = 1;\r\n BigNumber.ROUND_CEIL = 2;\r\n BigNumber.ROUND_FLOOR = 3;\r\n BigNumber.ROUND_HALF_UP = 4;\r\n BigNumber.ROUND_HALF_DOWN = 5;\r\n BigNumber.ROUND_HALF_EVEN = 6;\r\n BigNumber.ROUND_HALF_CEIL = 7;\r\n BigNumber.ROUND_HALF_FLOOR = 8;\r\n BigNumber.EUCLID = 9;\r\n\r\n\r\n /*\r\n * Configure infrequently-changing library-wide settings.\r\n *\r\n * Accept an object with the following optional properties (if the value of a property is\r\n * a number, it must be an integer within the inclusive range stated):\r\n *\r\n * DECIMAL_PLACES {number} 0 to MAX\r\n * ROUNDING_MODE {number} 0 to 8\r\n * EXPONENTIAL_AT {number|number[]} -MAX to MAX or [-MAX to 0, 0 to MAX]\r\n * RANGE {number|number[]} -MAX to MAX (not zero) or [-MAX to -1, 1 to MAX]\r\n * CRYPTO {boolean} true or false\r\n * MODULO_MODE {number} 0 to 9\r\n * POW_PRECISION {number} 0 to MAX\r\n * ALPHABET {string} A string of two or more unique characters which does\r\n * not contain '.'.\r\n * FORMAT {object} An object with some of the following properties:\r\n * prefix {string}\r\n * groupSize {number}\r\n * secondaryGroupSize {number}\r\n * groupSeparator {string}\r\n * decimalSeparator {string}\r\n * fractionGroupSize {number}\r\n * fractionGroupSeparator {string}\r\n * suffix {string}\r\n *\r\n * (The values assigned to the above FORMAT object properties are not checked for validity.)\r\n *\r\n * E.g.\r\n * BigNumber.config({ DECIMAL_PLACES : 20, ROUNDING_MODE : 4 })\r\n *\r\n * Ignore properties/parameters set to null or undefined, except for ALPHABET.\r\n *\r\n * Return an object with the properties current values.\r\n */\r\n BigNumber.config = BigNumber.set = function (obj) {\r\n var p, v;\r\n\r\n if (obj != null) {\r\n\r\n if (typeof obj == 'object') {\r\n\r\n // DECIMAL_PLACES {number} Integer, 0 to MAX inclusive.\r\n // '[BigNumber Error] DECIMAL_PLACES {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'DECIMAL_PLACES')) {\r\n v = obj[p];\r\n intCheck(v, 0, MAX, p);\r\n DECIMAL_PLACES = v;\r\n }\r\n\r\n // ROUNDING_MODE {number} Integer, 0 to 8 inclusive.\r\n // '[BigNumber Error] ROUNDING_MODE {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'ROUNDING_MODE')) {\r\n v = obj[p];\r\n intCheck(v, 0, 8, p);\r\n ROUNDING_MODE = v;\r\n }\r\n\r\n // EXPONENTIAL_AT {number|number[]}\r\n // Integer, -MAX to MAX inclusive or\r\n // [integer -MAX to 0 inclusive, 0 to MAX inclusive].\r\n // '[BigNumber Error] EXPONENTIAL_AT {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'EXPONENTIAL_AT')) {\r\n v = obj[p];\r\n if (v && v.pop) {\r\n intCheck(v[0], -MAX, 0, p);\r\n intCheck(v[1], 0, MAX, p);\r\n TO_EXP_NEG = v[0];\r\n TO_EXP_POS = v[1];\r\n } else {\r\n intCheck(v, -MAX, MAX, p);\r\n TO_EXP_NEG = -(TO_EXP_POS = v < 0 ? -v : v);\r\n }\r\n }\r\n\r\n // RANGE {number|number[]} Non-zero integer, -MAX to MAX inclusive or\r\n // [integer -MAX to -1 inclusive, integer 1 to MAX inclusive].\r\n // '[BigNumber Error] RANGE {not a primitive number|not an integer|out of range|cannot be zero}: {v}'\r\n if (obj.hasOwnProperty(p = 'RANGE')) {\r\n v = obj[p];\r\n if (v && v.pop) {\r\n intCheck(v[0], -MAX, -1, p);\r\n intCheck(v[1], 1, MAX, p);\r\n MIN_EXP = v[0];\r\n MAX_EXP = v[1];\r\n } else {\r\n intCheck(v, -MAX, MAX, p);\r\n if (v) {\r\n MIN_EXP = -(MAX_EXP = v < 0 ? -v : v);\r\n } else {\r\n throw Error\r\n (bignumberError + p + ' cannot be zero: ' + v);\r\n }\r\n }\r\n }\r\n\r\n // CRYPTO {boolean} true or false.\r\n // '[BigNumber Error] CRYPTO not true or false: {v}'\r\n // '[BigNumber Error] crypto unavailable'\r\n if (obj.hasOwnProperty(p = 'CRYPTO')) {\r\n v = obj[p];\r\n if (v === !!v) {\r\n if (v) {\r\n if (typeof crypto != 'undefined' && crypto &&\r\n (crypto.getRandomValues || crypto.randomBytes)) {\r\n CRYPTO = v;\r\n } else {\r\n CRYPTO = !v;\r\n throw Error\r\n (bignumberError + 'crypto unavailable');\r\n }\r\n } else {\r\n CRYPTO = v;\r\n }\r\n } else {\r\n throw Error\r\n (bignumberError + p + ' not true or false: ' + v);\r\n }\r\n }\r\n\r\n // MODULO_MODE {number} Integer, 0 to 9 inclusive.\r\n // '[BigNumber Error] MODULO_MODE {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'MODULO_MODE')) {\r\n v = obj[p];\r\n intCheck(v, 0, 9, p);\r\n MODULO_MODE = v;\r\n }\r\n\r\n // POW_PRECISION {number} Integer, 0 to MAX inclusive.\r\n // '[BigNumber Error] POW_PRECISION {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'POW_PRECISION')) {\r\n v = obj[p];\r\n intCheck(v, 0, MAX, p);\r\n POW_PRECISION = v;\r\n }\r\n\r\n // FORMAT {object}\r\n // '[BigNumber Error] FORMAT not an object: {v}'\r\n if (obj.hasOwnProperty(p = 'FORMAT')) {\r\n v = obj[p];\r\n if (typeof v == 'object') FORMAT = v;\r\n else throw Error\r\n (bignumberError + p + ' not an object: ' + v);\r\n }\r\n\r\n // ALPHABET {string}\r\n // '[BigNumber Error] ALPHABET invalid: {v}'\r\n if (obj.hasOwnProperty(p = 'ALPHABET')) {\r\n v = obj[p];\r\n\r\n // Disallow if less than two characters,\r\n // or if it contains '+', '-', '.', whitespace, or a repeated character.\r\n if (typeof v == 'string' && !/^.?$|[+\\-.\\s]|(.).*\\1/.test(v)) {\r\n alphabetHasNormalDecimalDigits = v.slice(0, 10) == '0123456789';\r\n ALPHABET = v;\r\n } else {\r\n throw Error\r\n (bignumberError + p + ' invalid: ' + v);\r\n }\r\n }\r\n\r\n } else {\r\n\r\n // '[BigNumber Error] Object expected: {v}'\r\n throw Error\r\n (bignumberError + 'Object expected: ' + obj);\r\n }\r\n }\r\n\r\n return {\r\n DECIMAL_PLACES: DECIMAL_PLACES,\r\n ROUNDING_MODE: ROUNDING_MODE,\r\n EXPONENTIAL_AT: [TO_EXP_NEG, TO_EXP_POS],\r\n RANGE: [MIN_EXP, MAX_EXP],\r\n CRYPTO: CRYPTO,\r\n MODULO_MODE: MODULO_MODE,\r\n POW_PRECISION: POW_PRECISION,\r\n FORMAT: FORMAT,\r\n ALPHABET: ALPHABET\r\n };\r\n };\r\n\r\n\r\n /*\r\n * Return true if v is a BigNumber instance, otherwise return false.\r\n *\r\n * If BigNumber.DEBUG is true, throw if a BigNumber instance is not well-formed.\r\n *\r\n * v {any}\r\n *\r\n * '[BigNumber Error] Invalid BigNumber: {v}'\r\n */\r\n BigNumber.isBigNumber = function (v) {\r\n if (!v || v._isBigNumber !== true) return false;\r\n if (!BigNumber.DEBUG) return true;\r\n\r\n var i, n,\r\n c = v.c,\r\n e = v.e,\r\n s = v.s;\r\n\r\n out: if ({}.toString.call(c) == '[object Array]') {\r\n\r\n if ((s === 1 || s === -1) && e >= -MAX && e <= MAX && e === mathfloor(e)) {\r\n\r\n // If the first element is zero, the BigNumber value must be zero.\r\n if (c[0] === 0) {\r\n if (e === 0 && c.length === 1) return true;\r\n break out;\r\n }\r\n\r\n // Calculate number of digits that c[0] should have, based on the exponent.\r\n i = (e + 1) % LOG_BASE;\r\n if (i < 1) i += LOG_BASE;\r\n\r\n // Calculate number of digits of c[0].\r\n //if (Math.ceil(Math.log(c[0] + 1) / Math.LN10) == i) {\r\n if (String(c[0]).length == i) {\r\n\r\n for (i = 0; i < c.length; i++) {\r\n n = c[i];\r\n if (n < 0 || n >= BASE || n !== mathfloor(n)) break out;\r\n }\r\n\r\n // Last element cannot be zero, unless it is the only element.\r\n if (n !== 0) return true;\r\n }\r\n }\r\n\r\n // Infinity/NaN\r\n } else if (c === null && e === null && (s === null || s === 1 || s === -1)) {\r\n return true;\r\n }\r\n\r\n throw Error\r\n (bignumberError + 'Invalid BigNumber: ' + v);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the maximum of the arguments.\r\n *\r\n * arguments {number|string|BigNumber}\r\n */\r\n BigNumber.maximum = BigNumber.max = function () {\r\n return maxOrMin(arguments, -1);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the minimum of the arguments.\r\n *\r\n * arguments {number|string|BigNumber}\r\n */\r\n BigNumber.minimum = BigNumber.min = function () {\r\n return maxOrMin(arguments, 1);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber with a random value equal to or greater than 0 and less than 1,\r\n * and with dp, or DECIMAL_PLACES if dp is omitted, decimal places (or less if trailing\r\n * zeros are produced).\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp}'\r\n * '[BigNumber Error] crypto unavailable'\r\n */\r\n BigNumber.random = (function () {\r\n var pow2_53 = 0x20000000000000;\r\n\r\n // Return a 53 bit integer n, where 0 <= n < 9007199254740992.\r\n // Check if Math.random() produces more than 32 bits of randomness.\r\n // If it does, assume at least 53 bits are produced, otherwise assume at least 30 bits.\r\n // 0x40000000 is 2^30, 0x800000 is 2^23, 0x1fffff is 2^21 - 1.\r\n var random53bitInt = (Math.random() * pow2_53) & 0x1fffff\r\n ? function () { return mathfloor(Math.random() * pow2_53); }\r\n : function () { return ((Math.random() * 0x40000000 | 0) * 0x800000) +\r\n (Math.random() * 0x800000 | 0); };\r\n\r\n return function (dp) {\r\n var a, b, e, k, v,\r\n i = 0,\r\n c = [],\r\n rand = new BigNumber(ONE);\r\n\r\n if (dp == null) dp = DECIMAL_PLACES;\r\n else intCheck(dp, 0, MAX);\r\n\r\n k = mathceil(dp / LOG_BASE);\r\n\r\n if (CRYPTO) {\r\n\r\n // Browsers supporting crypto.getRandomValues.\r\n if (crypto.getRandomValues) {\r\n\r\n a = crypto.getRandomValues(new Uint32Array(k *= 2));\r\n\r\n for (; i < k;) {\r\n\r\n // 53 bits:\r\n // ((Math.pow(2, 32) - 1) * Math.pow(2, 21)).toString(2)\r\n // 11111 11111111 11111111 11111111 11100000 00000000 00000000\r\n // ((Math.pow(2, 32) - 1) >>> 11).toString(2)\r\n // 11111 11111111 11111111\r\n // 0x20000 is 2^21.\r\n v = a[i] * 0x20000 + (a[i + 1] >>> 11);\r\n\r\n // Rejection sampling:\r\n // 0 <= v < 9007199254740992\r\n // Probability that v >= 9e15, is\r\n // 7199254740992 / 9007199254740992 ~= 0.0008, i.e. 1 in 1251\r\n if (v >= 9e15) {\r\n b = crypto.getRandomValues(new Uint32Array(2));\r\n a[i] = b[0];\r\n a[i + 1] = b[1];\r\n } else {\r\n\r\n // 0 <= v <= 8999999999999999\r\n // 0 <= (v % 1e14) <= 99999999999999\r\n c.push(v % 1e14);\r\n i += 2;\r\n }\r\n }\r\n i = k / 2;\r\n\r\n // Node.js supporting crypto.randomBytes.\r\n } else if (crypto.randomBytes) {\r\n\r\n // buffer\r\n a = crypto.randomBytes(k *= 7);\r\n\r\n for (; i < k;) {\r\n\r\n // 0x1000000000000 is 2^48, 0x10000000000 is 2^40\r\n // 0x100000000 is 2^32, 0x1000000 is 2^24\r\n // 11111 11111111 11111111 11111111 11111111 11111111 11111111\r\n // 0 <= v < 9007199254740992\r\n v = ((a[i] & 31) * 0x1000000000000) + (a[i + 1] * 0x10000000000) +\r\n (a[i + 2] * 0x100000000) + (a[i + 3] * 0x1000000) +\r\n (a[i + 4] << 16) + (a[i + 5] << 8) + a[i + 6];\r\n\r\n if (v >= 9e15) {\r\n crypto.randomBytes(7).copy(a, i);\r\n } else {\r\n\r\n // 0 <= (v % 1e14) <= 99999999999999\r\n c.push(v % 1e14);\r\n i += 7;\r\n }\r\n }\r\n i = k / 7;\r\n } else {\r\n CRYPTO = false;\r\n throw Error\r\n (bignumberError + 'crypto unavailable');\r\n }\r\n }\r\n\r\n // Use Math.random.\r\n if (!CRYPTO) {\r\n\r\n for (; i < k;) {\r\n v = random53bitInt();\r\n if (v < 9e15) c[i++] = v % 1e14;\r\n }\r\n }\r\n\r\n k = c[--i];\r\n dp %= LOG_BASE;\r\n\r\n // Convert trailing digits to zeros according to dp.\r\n if (k && dp) {\r\n v = POWS_TEN[LOG_BASE - dp];\r\n c[i] = mathfloor(k / v) * v;\r\n }\r\n\r\n // Remove trailing elements which are zero.\r\n for (; c[i] === 0; c.pop(), i--);\r\n\r\n // Zero?\r\n if (i < 0) {\r\n c = [e = 0];\r\n } else {\r\n\r\n // Remove leading elements which are zero and adjust exponent accordingly.\r\n for (e = -1 ; c[0] === 0; c.splice(0, 1), e -= LOG_BASE);\r\n\r\n // Count the digits of the first element of c to determine leading zeros, and...\r\n for (i = 1, v = c[0]; v >= 10; v /= 10, i++);\r\n\r\n // adjust the exponent accordingly.\r\n if (i < LOG_BASE) e -= LOG_BASE - i;\r\n }\r\n\r\n rand.e = e;\r\n rand.c = c;\r\n return rand;\r\n };\r\n })();\r\n\r\n\r\n /*\r\n * Return a BigNumber whose value is the sum of the arguments.\r\n *\r\n * arguments {number|string|BigNumber}\r\n */\r\n BigNumber.sum = function () {\r\n var i = 1,\r\n args = arguments,\r\n sum = new BigNumber(args[0]);\r\n for (; i < args.length;) sum = sum.plus(args[i++]);\r\n return sum;\r\n };\r\n\r\n\r\n // PRIVATE FUNCTIONS\r\n\r\n\r\n // Called by BigNumber and BigNumber.prototype.toString.\r\n convertBase = (function () {\r\n var decimal = '0123456789';\r\n\r\n /*\r\n * Convert string of baseIn to an array of numbers of baseOut.\r\n * Eg. toBaseOut('255', 10, 16) returns [15, 15].\r\n * Eg. toBaseOut('ff', 16, 10) returns [2, 5, 5].\r\n */\r\n function toBaseOut(str, baseIn, baseOut, alphabet) {\r\n var j,\r\n arr = [0],\r\n arrL,\r\n i = 0,\r\n len = str.length;\r\n\r\n for (; i < len;) {\r\n for (arrL = arr.length; arrL--; arr[arrL] *= baseIn);\r\n\r\n arr[0] += alphabet.indexOf(str.charAt(i++));\r\n\r\n for (j = 0; j < arr.length; j++) {\r\n\r\n if (arr[j] > baseOut - 1) {\r\n if (arr[j + 1] == null) 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 // Convert a numeric string of baseIn to a numeric string of baseOut.\r\n // If the caller is toString, we are converting from base 10 to baseOut.\r\n // If the caller is BigNumber, we are converting from baseIn to base 10.\r\n return function (str, baseIn, baseOut, sign, callerIsToString) {\r\n var alphabet, d, e, k, r, x, xc, y,\r\n i = str.indexOf('.'),\r\n dp = DECIMAL_PLACES,\r\n rm = ROUNDING_MODE;\r\n\r\n // Non-integer.\r\n if (i >= 0) {\r\n k = POW_PRECISION;\r\n\r\n // Unlimited precision.\r\n POW_PRECISION = 0;\r\n str = str.replace('.', '');\r\n y = new BigNumber(baseIn);\r\n x = y.pow(str.length - i);\r\n POW_PRECISION = k;\r\n\r\n // Convert str as if an integer, then restore the fraction part by dividing the\r\n // result by its base raised to a power.\r\n\r\n y.c = toBaseOut(toFixedPoint(coeffToString(x.c), x.e, '0'),\r\n 10, baseOut, decimal);\r\n y.e = y.c.length;\r\n }\r\n\r\n // Convert the number as integer.\r\n\r\n xc = toBaseOut(str, baseIn, baseOut, callerIsToString\r\n ? (alphabet = ALPHABET, decimal)\r\n : (alphabet = decimal, ALPHABET));\r\n\r\n // xc now represents str as an integer and converted to baseOut. e is the exponent.\r\n e = k = xc.length;\r\n\r\n // Remove trailing zeros.\r\n for (; xc[--k] == 0; xc.pop());\r\n\r\n // Zero?\r\n if (!xc[0]) return alphabet.charAt(0);\r\n\r\n // Does str represent an integer? If so, no need for the division.\r\n if (i < 0) {\r\n --e;\r\n } else {\r\n x.c = xc;\r\n x.e = e;\r\n\r\n // The sign is needed for correct rounding.\r\n x.s = sign;\r\n x = div(x, y, dp, rm, baseOut);\r\n xc = x.c;\r\n r = x.r;\r\n e = x.e;\r\n }\r\n\r\n // xc now represents str converted to baseOut.\r\n\r\n // The index of the rounding digit.\r\n d = e + dp + 1;\r\n\r\n // The rounding digit: the digit to the right of the digit that may be rounded up.\r\n i = xc[d];\r\n\r\n // Look at the rounding digits and mode to determine whether to round up.\r\n\r\n k = baseOut / 2;\r\n r = r || d < 0 || xc[d + 1] != null;\r\n\r\n r = rm < 4 ? (i != null || r) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))\r\n : i > k || i == k &&(rm == 4 || r || rm == 6 && xc[d - 1] & 1 ||\r\n rm == (x.s < 0 ? 8 : 7));\r\n\r\n // If the index of the rounding digit is not greater than zero, or xc represents\r\n // zero, then the result of the base conversion is zero or, if rounding up, a value\r\n // such as 0.00001.\r\n if (d < 1 || !xc[0]) {\r\n\r\n // 1^-dp or 0\r\n str = r ? toFixedPoint(alphabet.charAt(1), -dp, alphabet.charAt(0)) : alphabet.charAt(0);\r\n } else {\r\n\r\n // Truncate xc to the required number of decimal places.\r\n xc.length = d;\r\n\r\n // Round up?\r\n if (r) {\r\n\r\n // Rounding up may mean the previous digit has to be rounded up and so on.\r\n for (--baseOut; ++xc[--d] > baseOut;) {\r\n xc[d] = 0;\r\n\r\n if (!d) {\r\n ++e;\r\n xc = [1].concat(xc);\r\n }\r\n }\r\n }\r\n\r\n // Determine trailing zeros.\r\n for (k = xc.length; !xc[--k];);\r\n\r\n // E.g. [4, 11, 15] becomes 4bf.\r\n for (i = 0, str = ''; i <= k; str += alphabet.charAt(xc[i++]));\r\n\r\n // Add leading zeros, decimal point and trailing zeros as required.\r\n str = toFixedPoint(str, e, alphabet.charAt(0));\r\n }\r\n\r\n // The caller will add the sign.\r\n return str;\r\n };\r\n })();\r\n\r\n\r\n // Perform division in the specified base. Called by div and convertBase.\r\n div = (function () {\r\n\r\n // Assume non-zero x and k.\r\n function multiply(x, k, base) {\r\n var m, temp, xlo, xhi,\r\n carry = 0,\r\n i = x.length,\r\n klo = k % SQRT_BASE,\r\n khi = k / SQRT_BASE | 0;\r\n\r\n for (x = x.slice(); i--;) {\r\n xlo = x[i] % SQRT_BASE;\r\n xhi = x[i] / SQRT_BASE | 0;\r\n m = khi * xlo + xhi * klo;\r\n temp = klo * xlo + ((m % SQRT_BASE) * SQRT_BASE) + carry;\r\n carry = (temp / base | 0) + (m / SQRT_BASE | 0) + khi * xhi;\r\n x[i] = temp % base;\r\n }\r\n\r\n if (carry) x = [carry].concat(x);\r\n\r\n return x;\r\n }\r\n\r\n function compare(a, b, aL, bL) {\r\n var i, cmp;\r\n\r\n if (aL != bL) {\r\n cmp = aL > bL ? 1 : -1;\r\n } else {\r\n\r\n for (i = cmp = 0; i < aL; i++) {\r\n\r\n if (a[i] != b[i]) {\r\n cmp = a[i] > b[i] ? 1 : -1;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return cmp;\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.splice(0, 1));\r\n }\r\n\r\n // x: dividend, y: divisor.\r\n return function (x, y, dp, rm, base) {\r\n var cmp, e, i, more, n, prod, prodL, q, qc, rem, remL, rem0, xi, xL, yc0,\r\n yL, yz,\r\n s = x.s == y.s ? 1 : -1,\r\n xc = x.c,\r\n yc = y.c;\r\n\r\n // Either NaN, Infinity or 0?\r\n if (!xc || !xc[0] || !yc || !yc[0]) {\r\n\r\n return new BigNumber(\r\n\r\n // Return NaN if either NaN, or both Infinity or 0.\r\n !x.s || !y.s || (xc ? yc && xc[0] == yc[0] : !yc) ? NaN :\r\n\r\n // Return ±0 if x is ±0 or y is ±Infinity, or return ±Infinity as y is ±0.\r\n xc && xc[0] == 0 || !yc ? s * 0 : s / 0\r\n );\r\n }\r\n\r\n q = new BigNumber(s);\r\n qc = q.c = [];\r\n e = x.e - y.e;\r\n s = dp + e + 1;\r\n\r\n if (!base) {\r\n base = BASE;\r\n e = bitFloor(x.e / LOG_BASE) - bitFloor(y.e / LOG_BASE);\r\n s = s / LOG_BASE | 0;\r\n }\r\n\r\n // Result exponent may be one less then the current value of e.\r\n // The coefficients of the BigNumbers from convertBase may have trailing zeros.\r\n for (i = 0; yc[i] == (xc[i] || 0); i++);\r\n\r\n if (yc[i] > (xc[i] || 0)) e--;\r\n\r\n if (s < 0) {\r\n qc.push(1);\r\n more = true;\r\n } else {\r\n xL = xc.length;\r\n yL = yc.length;\r\n i = 0;\r\n s += 2;\r\n\r\n // Normalise xc and yc so highest order digit of yc is >= base / 2.\r\n\r\n n = mathfloor(base / (yc[0] + 1));\r\n\r\n // Not necessary, but to handle odd bases where yc[0] == (base / 2) - 1.\r\n // if (n > 1 || n++ == 1 && yc[0] < base / 2) {\r\n if (n > 1) {\r\n yc = multiply(yc, n, base);\r\n xc = multiply(xc, n, base);\r\n yL = yc.length;\r\n xL = xc.length;\r\n }\r\n\r\n xi = yL;\r\n rem = xc.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 yz = yc.slice();\r\n yz = [0].concat(yz);\r\n yc0 = yc[0];\r\n if (yc[1] >= base / 2) yc0++;\r\n // Not necessary, but to prevent trial digit n > base, when using base 3.\r\n // else if (base == 3 && yc0 == 1) yc0 = 1 + 1e-15;\r\n\r\n do {\r\n n = 0;\r\n\r\n // Compare divisor and remainder.\r\n cmp = compare(yc, rem, yL, remL);\r\n\r\n // If divisor < remainder.\r\n if (cmp < 0) {\r\n\r\n // Calculate trial digit, n.\r\n\r\n rem0 = rem[0];\r\n if (yL != remL) rem0 = rem0 * base + (rem[1] || 0);\r\n\r\n // n is how many times the divisor goes into the current remainder.\r\n n = mathfloor(rem0 / yc0);\r\n\r\n // Algorithm:\r\n // product = divisor multiplied by trial digit (n).\r\n // Compare product and remainder.\r\n // If product is greater than remainder:\r\n // Subtract divisor from product, decrement trial digit.\r\n // Subtract product from remainder.\r\n // If product was less than remainder at the last compare:\r\n // Compare new remainder and divisor.\r\n // If remainder is greater than divisor:\r\n // Subtract divisor from remainder, increment trial digit.\r\n\r\n if (n > 1) {\r\n\r\n // n may be > base only when base is 3.\r\n if (n >= base) n = base - 1;\r\n\r\n // product = divisor * trial digit.\r\n prod = multiply(yc, n, base);\r\n prodL = prod.length;\r\n remL = rem.length;\r\n\r\n // Compare product and remainder.\r\n // If product > remainder then trial digit n too high.\r\n // n is 1 too high about 5% of the time, and is not known to have\r\n // ever been more than 1 too high.\r\n while (compare(prod, rem, prodL, remL) == 1) {\r\n n--;\r\n\r\n // Subtract divisor from product.\r\n subtract(prod, yL < prodL ? yz : yc, prodL, base);\r\n prodL = prod.length;\r\n cmp = 1;\r\n }\r\n } else {\r\n\r\n // n is 0 or 1, cmp is -1.\r\n // If n is 0, there is no need to compare yc and rem again below,\r\n // so change cmp to 1 to avoid it.\r\n // If n is 1, leave cmp as -1, so yc and rem are compared again.\r\n if (n == 0) {\r\n\r\n // divisor < remainder, so n must be at least 1.\r\n cmp = n = 1;\r\n }\r\n\r\n // product = divisor\r\n prod = yc.slice();\r\n prodL = prod.length;\r\n }\r\n\r\n if (prodL < remL) prod = [0].concat(prod);\r\n\r\n // Subtract product from remainder.\r\n subtract(rem, prod, remL, base);\r\n remL = rem.length;\r\n\r\n // If product was < remainder.\r\n if (cmp == -1) {\r\n\r\n // Compare divisor and new remainder.\r\n // If divisor < new remainder, subtract divisor from remainder.\r\n // Trial digit n too low.\r\n // n is 1 too low about 5% of the time, and very rarely 2 too low.\r\n while (compare(yc, rem, yL, remL) < 1) {\r\n n++;\r\n\r\n // Subtract divisor from remainder.\r\n subtract(rem, yL < remL ? yz : yc, remL, base);\r\n remL = rem.length;\r\n }\r\n }\r\n } else if (cmp === 0) {\r\n n++;\r\n rem = [0];\r\n } // else cmp === 1 and n will be 0\r\n\r\n // Add the next digit, n, to the result array.\r\n qc[i++] = n;\r\n\r\n // Update the remainder.\r\n if (rem[0]) {\r\n rem[remL++] = xc[xi] || 0;\r\n } else {\r\n rem = [xc[xi]];\r\n remL = 1;\r\n }\r\n } while ((xi++ < xL || rem[0] != null) && s--);\r\n\r\n more = rem[0] != null;\r\n\r\n // Leading zero?\r\n if (!qc[0]) qc.splice(0, 1);\r\n }\r\n\r\n if (base == BASE) {\r\n\r\n // To calculate q.e, first get the number of digits of qc[0].\r\n for (i = 1, s = qc[0]; s >= 10; s /= 10, i++);\r\n\r\n round(q, dp + (q.e = i + e * LOG_BASE - 1) + 1, rm, more);\r\n\r\n // Caller is convertBase.\r\n } else {\r\n q.e = e;\r\n q.r = +more;\r\n }\r\n\r\n return q;\r\n };\r\n })();\r\n\r\n\r\n /*\r\n * Return a string representing the value of BigNumber n in fixed-point or exponential\r\n * notation rounded to the specified decimal places or significant digits.\r\n *\r\n * n: a BigNumber.\r\n * i: the index of the last digit required (i.e. the digit that may be rounded up).\r\n * rm: the rounding mode.\r\n * id: 1 (toExponential) or 2 (toPrecision).\r\n */\r\n function format(n, i, rm, id) {\r\n var c0, e, ne, len, str;\r\n\r\n if (rm == null) rm = ROUNDING_MODE;\r\n else intCheck(rm, 0, 8);\r\n\r\n if (!n.c) return n.toString();\r\n\r\n c0 = n.c[0];\r\n ne = n.e;\r\n\r\n if (i == null) {\r\n str = coeffToString(n.c);\r\n str = id == 1 || id == 2 && (ne <= TO_EXP_NEG || ne >= TO_EXP_POS)\r\n ? toExponential(str, ne)\r\n : toFixedPoint(str, ne, '0');\r\n } else {\r\n n = round(new BigNumber(n), i, rm);\r\n\r\n // n.e may have changed if the value was rounded up.\r\n e = n.e;\r\n\r\n str = coeffToString(n.c);\r\n len = str.length;\r\n\r\n // toPrecision returns exponential notation if the number of significant digits\r\n // specified is less than the number of digits necessary to represent the integer\r\n // part of the value in fixed-point notation.\r\n\r\n // Exponential notation.\r\n if (id == 1 || id == 2 && (i <= e || e <= TO_EXP_NEG)) {\r\n\r\n // Append zeros?\r\n for (; len < i; str += '0', len++);\r\n str = toExponential(str, e);\r\n\r\n // Fixed-point notation.\r\n } else {\r\n i -= ne + (id === 2 && e > ne);\r\n str = toFixedPoint(str, e, '0');\r\n\r\n // Append zeros?\r\n if (e + 1 > len) {\r\n if (--i > 0) for (str += '.'; i--; str += '0');\r\n } else {\r\n i += e - len;\r\n if (i > 0) {\r\n if (e + 1 == len) str += '.';\r\n for (; i--; str += '0');\r\n }\r\n }\r\n }\r\n }\r\n\r\n return n.s < 0 && c0 ? '-' + str : str;\r\n }\r\n\r\n\r\n // Handle BigNumber.max and BigNumber.min.\r\n // If any number is NaN, return NaN.\r\n function maxOrMin(args, n) {\r\n var k, y,\r\n i = 1,\r\n x = new BigNumber(args[0]);\r\n\r\n for (; i < args.length; i++) {\r\n y = new BigNumber(args[i]);\r\n if (!y.s || (k = compare(x, y)) === 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 * Strip trailing zeros, calculate base 10 exponent and check against MIN_EXP and MAX_EXP.\r\n * Called by minus, plus and times.\r\n */\r\n function normalise(n, c, e) {\r\n var i = 1,\r\n j = c.length;\r\n\r\n // Remove trailing zeros.\r\n for (; !c[--j]; c.pop());\r\n\r\n // Calculate the base 10 exponent. First get the number of digits of c[0].\r\n for (j = c[0]; j >= 10; j /= 10, i++);\r\n\r\n // Overflow?\r\n if ((e = i + e * LOG_BASE - 1) > MAX_EXP) {\r\n\r\n // Infinity.\r\n n.c = n.e = null;\r\n\r\n // Underflow?\r\n } else if (e < MIN_EXP) {\r\n\r\n // Zero.\r\n n.c = [n.e = 0];\r\n } else {\r\n n.e = e;\r\n n.c = c;\r\n }\r\n\r\n return n;\r\n }\r\n\r\n\r\n // Handle values that fail the validity test in BigNumber.\r\n parseNumeric = (function () {\r\n var basePrefix = /^(-?)0([xbo])(?=\\w[\\w.]*$)/i,\r\n dotAfter = /^([^.]+)\\.$/,\r\n dotBefore = /^\\.([^.]+)$/,\r\n isInfinityOrNaN = /^-?(Infinity|NaN)$/,\r\n whitespaceOrPlus = /^\\s*\\+(?=[\\w.])|^\\s+|\\s+$/g;\r\n\r\n return function (x, str, isNum, b) {\r\n var base,\r\n s = isNum ? str : str.replace(whitespaceOrPlus, '');\r\n\r\n // No exception on ±Infinity or NaN.\r\n if (isInfinityOrNaN.test(s)) {\r\n x.s = isNaN(s) ? null : s < 0 ? -1 : 1;\r\n } else {\r\n if (!isNum) {\r\n\r\n // basePrefix = /^(-?)0([xbo])(?=\\w[\\w.]*$)/i\r\n s = s.replace(basePrefix, function (m, p1, p2) {\r\n base = (p2 = p2.toLowerCase()) == 'x' ? 16 : p2 == 'b' ? 2 : 8;\r\n return !b || b == base ? p1 : m;\r\n });\r\n\r\n if (b) {\r\n base = b;\r\n\r\n // E.g. '1.' to '1', '.1' to '0.1'\r\n s = s.replace(dotAfter, '$1').replace(dotBefore, '0.$1');\r\n }\r\n\r\n if (str != s) return new BigNumber(s, base);\r\n }\r\n\r\n // '[BigNumber Error] Not a number: {n}'\r\n // '[BigNumber Error] Not a base {b} number: {n}'\r\n if (BigNumber.DEBUG) {\r\n throw Error\r\n (bignumberError + 'Not a' + (b ? ' base ' + b : '') + ' number: ' + str);\r\n }\r\n\r\n // NaN\r\n x.s = null;\r\n }\r\n\r\n x.c = x.e = null;\r\n }\r\n })();\r\n\r\n\r\n /*\r\n * Round x to sd significant digits using rounding mode rm. Check for over/under-flow.\r\n * If r is truthy, it is known that there are more digits after the rounding digit.\r\n */\r\n function round(x, sd, rm, r) {\r\n var d, i, j, k, n, ni, rd,\r\n xc = x.c,\r\n pows10 = POWS_TEN;\r\n\r\n // if x is not Infinity or NaN...\r\n if (xc) {\r\n\r\n // rd is the rounding digit, i.e. the digit after the digit that may be rounded up.\r\n // n is a base 1e14 number, the value of the element of array x.c containing rd.\r\n // ni is the index of n within x.c.\r\n // d is the number of digits of n.\r\n // i is the index of rd within n including leading zeros.\r\n // j is the actual index of rd within n (if < 0, rd is a leading zero).\r\n out: {\r\n\r\n // Get the number of digits of the first element of xc.\r\n for (d = 1, k = xc[0]; k >= 10; k /= 10, d++);\r\n i = sd - d;\r\n\r\n // If the rounding digit is in the first element of xc...\r\n if (i < 0) {\r\n i += LOG_BASE;\r\n j = sd;\r\n n = xc[ni = 0];\r\n\r\n // Get the rounding digit at index j of n.\r\n rd = mathfloor(n / pows10[d - j - 1] % 10);\r\n } else {\r\n ni = mathceil((i + 1) / LOG_BASE);\r\n\r\n if (ni >= xc.length) {\r\n\r\n if (r) {\r\n\r\n // Needed by sqrt.\r\n for (; xc.length <= ni; xc.push(0));\r\n n = rd = 0;\r\n d = 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 n = k = xc[ni];\r\n\r\n // Get the number of digits of n.\r\n for (d = 1; k >= 10; k /= 10, d++);\r\n\r\n // Get the index of rd within n.\r\n i %= LOG_BASE;\r\n\r\n // Get the index of rd within n, adjusted for leading zeros.\r\n // The number of leading zeros of n is given by LOG_BASE - d.\r\n j = i - LOG_BASE + d;\r\n\r\n // Get the rounding digit at index j of n.\r\n rd = j < 0 ? 0 : mathfloor(n / pows10[d - j - 1] % 10);\r\n }\r\n }\r\n\r\n r = r || sd < 0 ||\r\n\r\n // Are there any non-zero digits after the rounding digit?\r\n // The expression n % pows10[d - j - 1] returns all digits of n to the right\r\n // of the digit at j, e.g. if n is 908714 and j is 2, the expression gives 714.\r\n xc[ni + 1] != null || (j < 0 ? n : n % pows10[d - j - 1]);\r\n\r\n r = rm < 4\r\n ? (rd || r) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))\r\n : rd > 5 || rd == 5 && (rm == 4 || r || 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 ? n / pows10[d - j] : 0 : xc[ni - 1]) % 10) & 1 ||\r\n rm == (x.s < 0 ? 8 : 7));\r\n\r\n if (sd < 1 || !xc[0]) {\r\n xc.length = 0;\r\n\r\n if (r) {\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 xc[0] = pows10[(LOG_BASE - sd % LOG_BASE) % LOG_BASE];\r\n x.e = -sd || 0;\r\n } else {\r\n\r\n // Zero.\r\n xc[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 xc.length = ni;\r\n k = 1;\r\n ni--;\r\n } else {\r\n xc.length = ni + 1;\r\n k = pows10[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 n.\r\n xc[ni] = j > 0 ? mathfloor(n / pows10[d - j] % pows10[j]) * k : 0;\r\n }\r\n\r\n // Round up?\r\n if (r) {\r\n\r\n for (; ;) {\r\n\r\n // If the digit to be rounded up is in the first element of xc...\r\n if (ni == 0) {\r\n\r\n // i will be the length of xc[0] before k is added.\r\n for (i = 1, j = xc[0]; j >= 10; j /= 10, i++);\r\n j = xc[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 (xc[0] == BASE) xc[0] = 1;\r\n }\r\n\r\n break;\r\n } else {\r\n xc[ni] += k;\r\n if (xc[ni] != BASE) break;\r\n xc[ni--] = 0;\r\n k = 1;\r\n }\r\n }\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (i = xc.length; xc[--i] === 0; xc.pop());\r\n }\r\n\r\n // Overflow? Infinity.\r\n if (x.e > MAX_EXP) {\r\n x.c = x.e = null;\r\n\r\n // Underflow? Zero.\r\n } else if (x.e < MIN_EXP) {\r\n x.c = [x.e = 0];\r\n }\r\n }\r\n\r\n return x;\r\n }\r\n\r\n\r\n function valueOf(n) {\r\n var str,\r\n e = n.e;\r\n\r\n if (e === null) return n.toString();\r\n\r\n str = coeffToString(n.c);\r\n\r\n str = e <= TO_EXP_NEG || e >= TO_EXP_POS\r\n ? toExponential(str, e)\r\n : toFixedPoint(str, e, '0');\r\n\r\n return n.s < 0 ? '-' + str : str;\r\n }\r\n\r\n\r\n // PROTOTYPE/INSTANCE METHODS\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the absolute value of this BigNumber.\r\n */\r\n P.absoluteValue = P.abs = function () {\r\n var x = new BigNumber(this);\r\n if (x.s < 0) x.s = 1;\r\n return x;\r\n };\r\n\r\n\r\n /*\r\n * Return\r\n * 1 if the value of this BigNumber is greater than the value of BigNumber(y, b),\r\n * -1 if the value of this BigNumber is less than the value of BigNumber(y, b),\r\n * 0 if they have the same value,\r\n * or null if the value of either is NaN.\r\n */\r\n P.comparedTo = function (y, b) {\r\n return compare(this, new BigNumber(y, b));\r\n };\r\n\r\n\r\n /*\r\n * If dp is undefined or null or true or false, return the number of decimal places of the\r\n * value of this BigNumber, or null if the value of this BigNumber is ±Infinity or NaN.\r\n *\r\n * Otherwise, if dp is a number, return a new BigNumber whose value is the value of this\r\n * BigNumber rounded to a maximum of dp decimal places using rounding mode rm, or\r\n * ROUNDING_MODE if rm is omitted.\r\n *\r\n * [dp] {number} Decimal places: integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n */\r\n P.decimalPlaces = P.dp = function (dp, rm) {\r\n var c, n, v,\r\n x = this;\r\n\r\n if (dp != null) {\r\n intCheck(dp, 0, MAX);\r\n if (rm == null) rm = ROUNDING_MODE;\r\n else intCheck(rm, 0, 8);\r\n\r\n return round(new BigNumber(x), dp + x.e + 1, rm);\r\n }\r\n\r\n if (!(c = x.c)) return null;\r\n n = ((v = c.length - 1) - bitFloor(this.e / LOG_BASE)) * LOG_BASE;\r\n\r\n // Subtract the number of trailing zeros of the last number.\r\n if (v = c[v]) for (; v % 10 == 0; v /= 10, n--);\r\n if (n < 0) n = 0;\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 BigNumber whose value is the value of this BigNumber divided by the value of\r\n * BigNumber(y, b), rounded according to DECIMAL_PLACES and ROUNDING_MODE.\r\n */\r\n P.dividedBy = P.div = function (y, b) {\r\n return div(this, new BigNumber(y, b), DECIMAL_PLACES, ROUNDING_MODE);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the integer part of dividing the value of this\r\n * BigNumber by the value of BigNumber(y, b).\r\n */\r\n P.dividedToIntegerBy = P.idiv = function (y, b) {\r\n return div(this, new BigNumber(y, b), 0, 1);\r\n };\r\n\r\n\r\n /*\r\n * Return a BigNumber whose value is the value of this BigNumber exponentiated by n.\r\n *\r\n * If m is present, return the result modulo m.\r\n * If n is negative round according to DECIMAL_PLACES and ROUNDING_MODE.\r\n * If POW_PRECISION is non-zero and m is not present, round to POW_PRECISION using ROUNDING_MODE.\r\n *\r\n * The modular power operation works efficiently when x, n, and m are integers, otherwise it\r\n * is equivalent to calculating x.exponentiatedBy(n).modulo(m) with a POW_PRECISION of 0.\r\n *\r\n * n {number|string|BigNumber} The exponent. An integer.\r\n * [m] {number|string|BigNumber} The modulus.\r\n *\r\n * '[BigNumber Error] Exponent not an integer: {n}'\r\n */\r\n P.exponentiatedBy = P.pow = function (n, m) {\r\n var half, isModExp, i, k, more, nIsBig, nIsNeg, nIsOdd, y,\r\n x = this;\r\n\r\n n = new BigNumber(n);\r\n\r\n // Allow NaN and ±Infinity, but not other non-integers.\r\n if (n.c && !n.isInteger()) {\r\n throw Error\r\n (bignumberError + 'Exponent not an integer: ' + valueOf(n));\r\n }\r\n\r\n if (m != null) m = new BigNumber(m);\r\n\r\n // Exponent of MAX_SAFE_INTEGER is 15.\r\n nIsBig = n.e > 14;\r\n\r\n // If x is NaN, ±Infinity, ±0 or ±1, or n is ±Infinity, NaN or ±0.\r\n if (!x.c || !x.c[0] || x.c[0] == 1 && !x.e && x.c.length == 1 || !n.c || !n.c[0]) {\r\n\r\n // The sign of the result of pow when x is negative depends on the evenness of n.\r\n // If +n overflows to ±Infinity, the evenness of n would be not be known.\r\n y = new BigNumber(Math.pow(+valueOf(x), nIsBig ? n.s * (2 - isOdd(n)) : +valueOf(n)));\r\n return m ? y.mod(m) : y;\r\n }\r\n\r\n nIsNeg = n.s < 0;\r\n\r\n if (m) {\r\n\r\n // x % m returns NaN if abs(m) is zero, or m is NaN.\r\n if (m.c ? !m.c[0] : !m.s) return new BigNumber(NaN);\r\n\r\n isModExp = !nIsNeg && x.isInteger() && m.isInteger();\r\n\r\n if (isModExp) x = x.mod(m);\r\n\r\n // Overflow to ±Infinity: >=2**1e10 or >=1.0000024**1e15.\r\n // Underflow to ±0: <=0.79**1e10 or <=0.9999975**1e15.\r\n } else if (n.e > 9 && (x.e > 0 || x.e < -1 || (x.e == 0\r\n // [1, 240000000]\r\n ? x.c[0] > 1 || nIsBig && x.c[1] >= 24e7\r\n // [80000000000000] [99999750000000]\r\n : x.c[0] < 8e13 || nIsBig && x.c[0] <= 9999975e7))) {\r\n\r\n // If x is negative and n is odd, k = -0, else k = 0.\r\n k = x.s < 0 && isOdd(n) ? -0 : 0;\r\n\r\n // If x >= 1, k = ±Infinity.\r\n if (x.e > -1) k = 1 / k;\r\n\r\n // If n is negative return ±0, else return ±Infinity.\r\n return new BigNumber(nIsNeg ? 1 / k : k);\r\n\r\n } else if (POW_PRECISION) {\r\n\r\n // Truncating each coefficient array to a length of k after each multiplication\r\n // equates to truncating significant digits to POW_PRECISION + [28, 41],\r\n // i.e. there will be a minimum of 28 guard digits retained.\r\n k = mathceil(POW_PRECISION / LOG_BASE + 2);\r\n }\r\n\r\n if (nIsBig) {\r\n half = new BigNumber(0.5);\r\n if (nIsNeg) n.s = 1;\r\n nIsOdd = isOdd(n);\r\n } else {\r\n i = Math.abs(+valueOf(n));\r\n nIsOdd = i % 2;\r\n }\r\n\r\n y = new BigNumber(ONE);\r\n\r\n // Performs 54 loop iterations for n of 9007199254740991.\r\n for (; ;) {\r\n\r\n if (nIsOdd) {\r\n y = y.times(x);\r\n if (!y.c) break;\r\n\r\n if (k) {\r\n if (y.c.length > k) y.c.length = k;\r\n } else if (isModExp) {\r\n y = y.mod(m); //y = y.minus(div(y, m, 0, MODULO_MODE).times(m));\r\n }\r\n }\r\n\r\n if (i) {\r\n i = mathfloor(i / 2);\r\n if (i === 0) break;\r\n nIsOdd = i % 2;\r\n } else {\r\n n = n.times(half);\r\n round(n, n.e + 1, 1);\r\n\r\n if (n.e > 14) {\r\n nIsOdd = isOdd(n);\r\n } else {\r\n i = +valueOf(n);\r\n if (i === 0) break;\r\n nIsOdd = i % 2;\r\n }\r\n }\r\n\r\n x = x.times(x);\r\n\r\n if (k) {\r\n if (x.c && x.c.length > k) x.c.length = k;\r\n } else if (isModExp) {\r\n x = x.mod(m); //x = x.minus(div(x, m, 0, MODULO_MODE).times(m));\r\n }\r\n }\r\n\r\n if (isModExp) return y;\r\n if (nIsNeg) y = ONE.div(y);\r\n\r\n return m ? y.mod(m) : k ? round(y, POW_PRECISION, ROUNDING_MODE, more) : y;\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the value of this BigNumber rounded to an integer\r\n * using rounding mode rm, or ROUNDING_MODE if rm is omitted.\r\n *\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {rm}'\r\n */\r\n P.integerValue = function (rm) {\r\n var n = new BigNumber(this);\r\n if (rm == null) rm = ROUNDING_MODE;\r\n else intCheck(rm, 0, 8);\r\n return round(n, n.e + 1, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is equal to the value of BigNumber(y, b),\r\n * otherwise return false.\r\n */\r\n P.isEqualTo = P.eq = function (y, b) {\r\n return compare(this, new BigNumber(y, b)) === 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is a finite number, otherwise return false.\r\n */\r\n P.isFinite = function () {\r\n return !!this.c;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is greater than the value of BigNumber(y, b),\r\n * otherwise return false.\r\n */\r\n P.isGreaterThan = P.gt = function (y, b) {\r\n return compare(this, new BigNumber(y, b)) > 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is greater than or equal to the value of\r\n * BigNumber(y, b), otherwise return false.\r\n */\r\n P.isGreaterThanOrEqualTo = P.gte = function (y, b) {\r\n return (b = compare(this, new BigNumber(y, b))) === 1 || b === 0;\r\n\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is an integer, otherwise return false.\r\n */\r\n P.isInteger = function () {\r\n return !!this.c && bitFloor(this.e / LOG_BASE) > this.c.length - 2;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is less than the value of BigNumber(y, b),\r\n * otherwise return false.\r\n */\r\n P.isLessThan = P.lt = function (y, b) {\r\n return compare(this, new BigNumber(y, b)) < 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is less than or equal to the value of\r\n * BigNumber(y, b), otherwise return false.\r\n */\r\n P.isLessThanOrEqualTo = P.lte = function (y, b) {\r\n return (b = compare(this, new BigNumber(y, b))) === -1 || b === 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is NaN, otherwise return false.\r\n */\r\n P.isNaN = function () {\r\n return !this.s;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is negative, otherwise return false.\r\n */\r\n P.isNegative = function () {\r\n return this.s < 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is positive, otherwise return false.\r\n */\r\n P.isPositive = function () {\r\n return this.s > 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is 0 or -0, otherwise return false.\r\n */\r\n P.isZero = function () {\r\n return !!this.c && this.c[0] == 0;\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 BigNumber whose value is the value of this BigNumber minus the value of\r\n * BigNumber(y, b).\r\n */\r\n P.minus = function (y, b) {\r\n var i, j, t, xLTy,\r\n x = this,\r\n a = x.s;\r\n\r\n y = new BigNumber(y, b);\r\n b = y.s;\r\n\r\n // Either NaN?\r\n if (!a || !b) return new BigNumber(NaN);\r\n\r\n // Signs differ?\r\n if (a != b) {\r\n y.s = -b;\r\n return x.plus(y);\r\n }\r\n\r\n var xe = x.e / LOG_BASE,\r\n ye = y.e / LOG_BASE,\r\n xc = x.c,\r\n yc = y.c;\r\n\r\n if (!xe || !ye) {\r\n\r\n // Either Infinity?\r\n if (!xc || !yc) return xc ? (y.s = -b, y) : new BigNumber(yc ? x : NaN);\r\n\r\n // Either zero?\r\n if (!xc[0] || !yc[0]) {\r\n\r\n // Return y if y is non-zero, x if x is non-zero, or zero if both are zero.\r\n return yc[0] ? (y.s = -b, y) : new BigNumber(xc[0] ? x :\r\n\r\n // IEEE 754 (2008) 6.3: n - n = -0 when rounding to -Infinity\r\n ROUNDING_MODE == 3 ? -0 : 0);\r\n }\r\n }\r\n\r\n xe = bitFloor(xe);\r\n ye = bitFloor(ye);\r\n xc = xc.slice();\r\n\r\n // Determine which is the bigger number.\r\n if (a = xe - ye) {\r\n\r\n if (xLTy = a < 0) {\r\n a = -a;\r\n t = xc;\r\n } else {\r\n ye = xe;\r\n t = yc;\r\n }\r\n\r\n t.reverse();\r\n\r\n // Prepend zeros to equalise exponents.\r\n for (b = a; b--; t.push(0));\r\n t.reverse();\r\n } else {\r\n\r\n // Exponents equal. Check digit by digit.\r\n j = (xLTy = (a = xc.length) < (b = yc.length)) ? a : b;\r\n\r\n for (a = b = 0; b < j; b++) {\r\n\r\n if (xc[b] != yc[b]) {\r\n xLTy = xc[b] < yc[b];\r\n break;\r\n }\r\n }\r\n }\r\n\r\n // x < y? Point xc to the array of the bigger number.\r\n if (xLTy) {\r\n t = xc;\r\n xc = yc;\r\n yc = t;\r\n y.s = -y.s;\r\n }\r\n\r\n b = (j = yc.length) - (i = xc.length);\r\n\r\n // Append zeros to xc if shorter.\r\n // No need to add zeros to yc if shorter as subtract only needs to start at yc.length.\r\n if (b > 0) for (; b--; xc[i++] = 0);\r\n b = BASE - 1;\r\n\r\n // Subtract yc from xc.\r\n for (; j > a;) {\r\n\r\n if (xc[--j] < yc[j]) {\r\n for (i = j; i && !xc[--i]; xc[i] = b);\r\n --xc[i];\r\n xc[j] += BASE;\r\n }\r\n\r\n xc[j] -= yc[j];\r\n }\r\n\r\n // Remove leading zeros and adjust exponent accordingly.\r\n for (; xc[0] == 0; xc.splice(0, 1), --ye);\r\n\r\n // Zero?\r\n if (!xc[0]) {\r\n\r\n // Following IEEE 754 (2008) 6.3,\r\n // n - n = +0 but n - n = -0 when rounding towards -Infinity.\r\n y.s = ROUNDING_MODE == 3 ? -1 : 1;\r\n y.c = [y.e = 0];\r\n return y;\r\n }\r\n\r\n // No need to check for Infinity as +x - +y != Infinity && -x - -y != Infinity\r\n // for finite x and y.\r\n return normalise(y, xc, ye);\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 BigNumber whose value is the value of this BigNumber modulo the value of\r\n * BigNumber(y, b). The result depends on the value of MODULO_MODE.\r\n */\r\n P.modulo = P.mod = function (y, b) {\r\n var q, s,\r\n x = this;\r\n\r\n y = new BigNumber(y, b);\r\n\r\n // Return NaN if x is Infinity or NaN, or y is NaN or zero.\r\n if (!x.c || !y.s || y.c && !y.c[0]) {\r\n return new BigNumber(NaN);\r\n\r\n // Return x if y is Infinity or x is zero.\r\n } else if (!y.c || x.c && !x.c[0]) {\r\n return new BigNumber(x);\r\n }\r\n\r\n if (MODULO_MODE == 9) {\r\n\r\n // Euclidian division: q = sign(y) * floor(x / abs(y))\r\n // r = x - qy where 0 <= r < abs(y)\r\n s = y.s;\r\n y.s = 1;\r\n q = div(x, y, 0, 3);\r\n y.s = s;\r\n q.s *= s;\r\n } else {\r\n q = div(x, y, 0, MODULO_MODE);\r\n }\r\n\r\n y = x.minus(q.times(y));\r\n\r\n // To match JavaScript %, ensure sign of zero is sign of dividend.\r\n if (!y.c[0] && MODULO_MODE == 1) y.s = x.s;\r\n\r\n return y;\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 BigNumber whose value is the value of this BigNumber multiplied by the value\r\n * of BigNumber(y, b).\r\n */\r\n P.multipliedBy = P.times = function (y, b) {\r\n var c, e, i, j, k, m, xcL, xlo, xhi, ycL, ylo, yhi, zc,\r\n base, sqrtBase,\r\n x = this,\r\n xc = x.c,\r\n yc = (y = new BigNumber(y, b)).c;\r\n\r\n // Either NaN, ±Infinity or ±0?\r\n if (!xc || !yc || !xc[0] || !yc[0]) {\r\n\r\n // Return NaN if either is NaN, or one is 0 and the other is Infinity.\r\n if (!x.s || !y.s || xc && !xc[0] && !yc || yc && !yc[0] && !xc) {\r\n y.c = y.e = y.s = null;\r\n } else {\r\n y.s *= x.s;\r\n\r\n // Return ±Infinity if either is ±Infinity.\r\n if (!xc || !yc) {\r\n y.c = y.e = null;\r\n\r\n // Return ±0 if either is ±0.\r\n } else {\r\n y.c = [0];\r\n y.e = 0;\r\n }\r\n }\r\n\r\n return y;\r\n }\r\n\r\n e = bitFloor(x.e / LOG_BASE) + bitFloor(y.e / LOG_BASE);\r\n y.s *= x.s;\r\n xcL = xc.length;\r\n ycL = yc.length;\r\n\r\n // Ensure xc points to longer array and xcL to its length.\r\n if (xcL < ycL) {\r\n zc = xc;\r\n xc = yc;\r\n yc = zc;\r\n i = xcL;\r\n xcL = ycL;\r\n ycL = i;\r\n }\r\n\r\n // Initialise the result array with zeros.\r\n for (i = xcL + ycL, zc = []; i--; zc.push(0));\r\n\r\n base = BASE;\r\n sqrtBase = SQRT_BASE;\r\n\r\n for (i = ycL; --i >= 0;) {\r\n c = 0;\r\n ylo = yc[i] % sqrtBase;\r\n yhi = yc[i] / sqrtBase | 0;\r\n\r\n for (k = xcL, j = i + k; j > i;) {\r\n xlo = xc[--k] % sqrtBase;\r\n xhi = xc[k] / sqrtBase | 0;\r\n m = yhi * xlo + xhi * ylo;\r\n xlo = ylo * xlo + ((m % sqrtBase) * sqrtBase) + zc[j] + c;\r\n c = (xlo / base | 0) + (m / sqrtBase | 0) + yhi * xhi;\r\n zc[j--] = xlo % base;\r\n }\r\n\r\n zc[j] = c;\r\n }\r\n\r\n if (c) {\r\n ++e;\r\n } else {\r\n zc.splice(0, 1);\r\n }\r\n\r\n return normalise(y, zc, e);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the value of this BigNumber negated,\r\n * i.e. multiplied by -1.\r\n */\r\n P.negated = function () {\r\n var x = new BigNumber(this);\r\n x.s = -x.s || null;\r\n return 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 BigNumber whose value is the value of this BigNumber plus the value of\r\n * BigNumber(y, b).\r\n */\r\n P.plus = function (y, b) {\r\n var t,\r\n x = this,\r\n a = x.s;\r\n\r\n y = new BigNumber(y, b);\r\n b = y.s;\r\n\r\n // Either NaN?\r\n if (!a || !b) return new BigNumber(NaN);\r\n\r\n // Signs differ?\r\n if (a != b) {\r\n y.s = -b;\r\n return x.minus(y);\r\n }\r\n\r\n var xe = x.e / LOG_BASE,\r\n ye = y.e / LOG_BASE,\r\n xc = x.c,\r\n yc = y.c;\r\n\r\n if (!xe || !ye) {\r\n\r\n // Return ±Infinity if either ±Infinity.\r\n if (!xc || !yc) return new BigNumber(a / 0);\r\n\r\n // Either zero?\r\n // Return y if y is non-zero, x if x is non-zero, or zero if both are zero.\r\n if (!xc[0] || !yc[0]) return yc[0] ? y : new BigNumber(xc[0] ? x : a * 0);\r\n }\r\n\r\n xe = bitFloor(xe);\r\n ye = bitFloor(ye);\r\n xc = xc.slice();\r\n\r\n // Prepend zeros to equalise exponents. Faster to use reverse then do unshifts.\r\n if (a = xe - ye) {\r\n if (a > 0) {\r\n ye = xe;\r\n t = yc;\r\n } else {\r\n a = -a;\r\n t = xc;\r\n }\r\n\r\n t.reverse();\r\n for (; a--; t.push(0));\r\n t.reverse();\r\n }\r\n\r\n a = xc.length;\r\n b = yc.length;\r\n\r\n // Point xc to the longer array, and b to the shorter length.\r\n if (a - b < 0) {\r\n t = yc;\r\n yc = xc;\r\n xc = t;\r\n b = a;\r\n }\r\n\r\n // Only start adding at yc.length - 1 as the further digits of xc can be ignored.\r\n for (a = 0; b;) {\r\n a = (xc[--b] = xc[b] + yc[b] + a) / BASE | 0;\r\n xc[b] = BASE === xc[b] ? 0 : xc[b] % BASE;\r\n }\r\n\r\n if (a) {\r\n xc = [a].concat(xc);\r\n ++ye;\r\n }\r\n\r\n // No need to check for zero, as +x + +y != 0 && -x + -y != 0\r\n // ye = MAX_EXP + 1 possible\r\n return normalise(y, xc, ye);\r\n };\r\n\r\n\r\n /*\r\n * If sd is undefined or null or true or false, return the number of significant digits of\r\n * the value of this BigNumber, or null if the value of this BigNumber is ±Infinity or NaN.\r\n * If sd is true include integer-part trailing zeros in the count.\r\n *\r\n * Otherwise, if sd is a number, return a new BigNumber whose value is the value of this\r\n * BigNumber rounded to a maximum of sd significant digits using rounding mode rm, or\r\n * ROUNDING_MODE if rm is omitted.\r\n *\r\n * sd {number|boolean} number: significant digits: integer, 1 to MAX inclusive.\r\n * boolean: whether to count integer-part trailing zeros: true or false.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {sd|rm}'\r\n */\r\n P.precision = P.sd = function (sd, rm) {\r\n var c, n, v,\r\n x = this;\r\n\r\n if (sd != null && sd !== !!sd) {\r\n intCheck(sd, 1, MAX);\r\n if (rm == null) rm = ROUNDING_MODE;\r\n else intCheck(rm, 0, 8);\r\n\r\n return round(new BigNumber(x), sd, rm);\r\n }\r\n\r\n if (!(c = x.c)) return null;\r\n v = c.length - 1;\r\n n = v * LOG_BASE + 1;\r\n\r\n if (v = c[v]) {\r\n\r\n // Subtract the number of trailing zeros of the last element.\r\n for (; v % 10 == 0; v /= 10, n--);\r\n\r\n // Add the number of digits of the first element.\r\n for (v = c[0]; v >= 10; v /= 10, n++);\r\n }\r\n\r\n if (sd && x.e + 1 > n) n = x.e + 1;\r\n\r\n return n;\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the value of this BigNumber shifted by k places\r\n * (powers of 10). Shift to the right if n > 0, and to the left if n < 0.\r\n *\r\n * k {number} Integer, -MAX_SAFE_INTEGER to MAX_SAFE_INTEGER inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {k}'\r\n */\r\n P.shiftedBy = function (k) {\r\n intCheck(k, -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER);\r\n return this.times('1e' + k);\r\n };\r\n\r\n\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 * Return a new BigNumber whose value is the square root of the value of this BigNumber,\r\n * rounded according to DECIMAL_PLACES and ROUNDING_MODE.\r\n */\r\n P.squareRoot = P.sqrt = function () {\r\n var m, n, r, rep, t,\r\n x = this,\r\n c = x.c,\r\n s = x.s,\r\n e = x.e,\r\n dp = DECIMAL_PLACES + 4,\r\n half = new BigNumber('0.5');\r\n\r\n // Negative/NaN/Infinity/zero?\r\n if (s !== 1 || !c || !c[0]) {\r\n return new BigNumber(!s || s < 0 && (!c || c[0]) ? NaN : c ? x : 1 / 0);\r\n }\r\n\r\n // Initial estimate.\r\n s = Math.sqrt(+valueOf(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 = coeffToString(c);\r\n if ((n.length + e) % 2 == 0) n += '0';\r\n s = Math.sqrt(+n);\r\n e = bitFloor((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 BigNumber(n);\r\n } else {\r\n r = new BigNumber(s + '');\r\n }\r\n\r\n // Check for zero.\r\n // r could be zero if MIN_EXP is changed after the this value was created.\r\n // This would cause a division by zero (x/t) and hence Infinity below, which would cause\r\n // coeffToString to throw.\r\n if (r.c[0]) {\r\n e = r.e;\r\n s = e + dp;\r\n if (s < 3) s = 0;\r\n\r\n // Newton-Raphson iteration.\r\n for (; ;) {\r\n t = r;\r\n r = half.times(t.plus(div(x, t, dp, 1)));\r\n\r\n if (coeffToString(t.c).slice(0, s) === (n = coeffToString(r.c)).slice(0, s)) {\r\n\r\n // The exponent of r may here be one less than the final result exponent,\r\n // e.g 0.0009999 (e-4) --> 0.001 (e-3), so adjust s so the rounding digits\r\n // are indexed correctly.\r\n if (r.e < e) --s;\r\n n = n.slice(s - 3, s + 1);\r\n\r\n // The 4th rounding digit may be in error by -1 so if the 4 rounding digits\r\n // are 9999 or 4999 (i.e. approaching a rounding boundary) continue the\r\n // 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\r\n // exact result as the nines may infinitely repeat.\r\n if (!rep) {\r\n round(t, t.e + DECIMAL_PLACES + 2, 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 dp += 4;\r\n s += 4;\r\n rep = 1;\r\n } else {\r\n\r\n // If rounding digits are null, 0{0,4} or 50{0,3}, check for exact\r\n // result. 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 round(r, r.e + DECIMAL_PLACES + 2, 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\r\n return round(r, r.e + DECIMAL_PLACES + 1, ROUNDING_MODE, m);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber in exponential notation and\r\n * rounded using ROUNDING_MODE to dp fixed decimal places.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n */\r\n P.toExponential = function (dp, rm) {\r\n if (dp != null) {\r\n intCheck(dp, 0, MAX);\r\n dp++;\r\n }\r\n return format(this, dp, rm, 1);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber in fixed-point notation rounding\r\n * to dp fixed decimal places using rounding mode rm, or ROUNDING_MODE if rm is omitted.\r\n *\r\n * Note: as with JavaScript's number type, (-0).toFixed(0) is '0',\r\n * but e.g. (-0.00001).toFixed(0) is '-0'.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n */\r\n P.toFixed = function (dp, rm) {\r\n if (dp != null) {\r\n intCheck(dp, 0, MAX);\r\n dp = dp + this.e + 1;\r\n }\r\n return format(this, dp, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber in fixed-point notation rounded\r\n * using rm or ROUNDING_MODE to dp decimal places, and formatted according to the properties\r\n * of the format or FORMAT object (see BigNumber.set).\r\n *\r\n * The formatting object may contain some or all of the properties shown below.\r\n *\r\n * FORMAT = {\r\n * prefix: '',\r\n * groupSize: 3,\r\n * secondaryGroupSize: 0,\r\n * groupSeparator: ',',\r\n * decimalSeparator: '.',\r\n * fractionGroupSize: 0,\r\n * fractionGroupSeparator: '\\xA0', // non-breaking space\r\n * suffix: ''\r\n * };\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n * [format] {object} Formatting options. See FORMAT pbject above.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n * '[BigNumber Error] Argument not an object: {format}'\r\n */\r\n P.toFormat = function (dp, rm, format) {\r\n var str,\r\n x = this;\r\n\r\n if (format == null) {\r\n if (dp != null && rm && typeof rm == 'object') {\r\n format = rm;\r\n rm = null;\r\n } else if (dp && typeof dp == 'object') {\r\n format = dp;\r\n dp = rm = null;\r\n } else {\r\n format = FORMAT;\r\n }\r\n } else if (typeof format != 'object') {\r\n throw Error\r\n (bignumberError + 'Argument not an object: ' + format);\r\n }\r\n\r\n str = x.toFixed(dp, rm);\r\n\r\n if (x.c) {\r\n var i,\r\n arr = str.split('.'),\r\n g1 = +format.groupSize,\r\n g2 = +format.secondaryGroupSize,\r\n groupSeparator = format.groupSeparator || '',\r\n intPart = arr[0],\r\n fractionPart = arr[1],\r\n isNeg = x.s < 0,\r\n intDigits = isNeg ? intPart.slice(1) : intPart,\r\n len = intDigits.length;\r\n\r\n if (g2) {\r\n i = g1;\r\n g1 = g2;\r\n g2 = i;\r\n len -= i;\r\n }\r\n\r\n if (g1 > 0 && len > 0) {\r\n i = len % g1 || g1;\r\n intPart = intDigits.substr(0, i);\r\n for (; i < len; i += g1) intPart += groupSeparator + intDigits.substr(i, g1);\r\n if (g2 > 0) intPart += groupSeparator + intDigits.slice(i);\r\n if (isNeg) intPart = '-' + intPart;\r\n }\r\n\r\n str = fractionPart\r\n ? intPart + (format.decimalSeparator || '') + ((g2 = +format.fractionGroupSize)\r\n ? fractionPart.replace(new RegExp('\\\\d{' + g2 + '}\\\\B', 'g'),\r\n '$&' + (format.fractionGroupSeparator || ''))\r\n : fractionPart)\r\n : intPart;\r\n }\r\n\r\n return (format.prefix || '') + str + (format.suffix || '');\r\n };\r\n\r\n\r\n /*\r\n * Return an array of two BigNumbers representing the value of this BigNumber as a simple\r\n * fraction with an integer numerator and an integer denominator.\r\n * The denominator will be a positive non-zero value less than or equal to the specified\r\n * maximum denominator. If a maximum denominator is not specified, the denominator will be\r\n * the lowest value necessary to represent the number exactly.\r\n *\r\n * [md] {number|string|BigNumber} Integer >= 1, or Infinity. The maximum denominator.\r\n *\r\n * '[BigNumber Error] Argument {not an integer|out of range} : {md}'\r\n */\r\n P.toFraction = function (md) {\r\n var d, d0, d1, d2, e, exp, n, n0, n1, q, r, s,\r\n x = this,\r\n xc = x.c;\r\n\r\n if (md != null) {\r\n n = new BigNumber(md);\r\n\r\n // Throw if md is less than one or is not an integer, unless it is Infinity.\r\n if (!n.isInteger() && (n.c || n.s !== 1) || n.lt(ONE)) {\r\n throw Error\r\n (bignumberError + 'Argument ' +\r\n (n.isInteger() ? 'out of range: ' : 'not an integer: ') + valueOf(n));\r\n }\r\n }\r\n\r\n if (!xc) return new BigNumber(x);\r\n\r\n d = new BigNumber(ONE);\r\n n1 = d0 = new BigNumber(ONE);\r\n d1 = n0 = new BigNumber(ONE);\r\n s = coeffToString(xc);\r\n\r\n // Determine initial denominator.\r\n // d is a power of 10 and the minimum max denominator that specifies the value exactly.\r\n e = d.e = s.length - x.e - 1;\r\n d.c[0] = POWS_TEN[(exp = e % LOG_BASE) < 0 ? LOG_BASE + exp : exp];\r\n md = !md || n.comparedTo(d) > 0 ? (e > 0 ? d : n1) : n;\r\n\r\n exp = MAX_EXP;\r\n MAX_EXP = 1 / 0;\r\n n = new BigNumber(s);\r\n\r\n // n0 = d1 = 0\r\n n0.c[0] = 0;\r\n\r\n for (; ;) {\r\n q = div(n, d, 0, 1);\r\n d2 = d0.plus(q.times(d1));\r\n if (d2.comparedTo(md) == 1) break;\r\n d0 = d1;\r\n d1 = d2;\r\n n1 = n0.plus(q.times(d2 = n1));\r\n n0 = d2;\r\n d = n.minus(q.times(d2 = d));\r\n n = d2;\r\n }\r\n\r\n d2 = div(md.minus(d0), d1, 0, 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 e = e * 2;\r\n\r\n // Determine which fraction is closer to x, n0/d0 or n1/d1\r\n r = div(n1, d1, e, ROUNDING_MODE).minus(x).abs().comparedTo(\r\n div(n0, d0, e, ROUNDING_MODE).minus(x).abs()) < 1 ? [n1, d1] : [n0, d0];\r\n\r\n MAX_EXP = exp;\r\n\r\n return r;\r\n };\r\n\r\n\r\n /*\r\n * Return the value of this BigNumber converted to a number primitive.\r\n */\r\n P.toNumber = function () {\r\n return +valueOf(this);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber rounded to sd significant digits\r\n * using rounding mode rm or ROUNDING_MODE. If sd is less than the number of digits\r\n * necessary to represent the integer part of the value in fixed-point notation, then use\r\n * exponential notation.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {sd|rm}'\r\n */\r\n P.toPrecision = function (sd, rm) {\r\n if (sd != null) intCheck(sd, 1, MAX);\r\n return format(this, sd, rm, 2);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber in base b, or base 10 if b is\r\n * omitted. If a base is specified, including base 10, round according to DECIMAL_PLACES and\r\n * ROUNDING_MODE. If a base is not specified, and this BigNumber has a positive exponent\r\n * that is equal to or greater than TO_EXP_POS, or a negative exponent equal to or less than\r\n * TO_EXP_NEG, return exponential notation.\r\n *\r\n * [b] {number} Integer, 2 to ALPHABET.length inclusive.\r\n *\r\n * '[BigNumber Error] Base {not a primitive number|not an integer|out of range}: {b}'\r\n */\r\n P.toString = function (b) {\r\n var str,\r\n n = this,\r\n s = n.s,\r\n e = n.e;\r\n\r\n // Infinity or NaN?\r\n if (e === null) {\r\n if (s) {\r\n str = 'Infinity';\r\n if (s < 0) str = '-' + str;\r\n } else {\r\n str = 'NaN';\r\n }\r\n } else {\r\n if (b == null) {\r\n str = e <= TO_EXP_NEG || e >= TO_EXP_POS\r\n ? toExponential(coeffToString(n.c), e)\r\n : toFixedPoint(coeffToString(n.c), e, '0');\r\n } else if (b === 10 && alphabetHasNormalDecimalDigits) {\r\n n = round(new BigNumber(n), DECIMAL_PLACES + e + 1, ROUNDING_MODE);\r\n str = toFixedPoint(coeffToString(n.c), n.e, '0');\r\n } else {\r\n intCheck(b, 2, ALPHABET.length, 'Base');\r\n str = convertBase(toFixedPoint(coeffToString(n.c), e, '0'), 10, b, s, true);\r\n }\r\n\r\n if (s < 0 && n.c[0]) str = '-' + str;\r\n }\r\n\r\n return str;\r\n };\r\n\r\n\r\n /*\r\n * Return as toString, but do not accept a base argument, and include the minus sign for\r\n * negative zero.\r\n */\r\n P.valueOf = P.toJSON = function () {\r\n return valueOf(this);\r\n };\r\n\r\n\r\n P._isBigNumber = true;\r\n\r\n P[Symbol.toStringTag] = 'BigNumber';\r\n\r\n // Node.js v10.12.0+\r\n P[Symbol.for('nodejs.util.inspect.custom')] = P.valueOf;\r\n\r\n if (configObject != null) BigNumber.set(configObject);\r\n\r\n return BigNumber;\r\n}\r\n\r\n\r\n// PRIVATE HELPER FUNCTIONS\r\n\r\n// These functions don't need access to variables,\r\n// e.g. DECIMAL_PLACES, in the scope of the `clone` function above.\r\n\r\n\r\nfunction bitFloor(n) {\r\n var i = n | 0;\r\n return n > 0 || n === i ? i : i - 1;\r\n}\r\n\r\n\r\n// Return a coefficient array as a string of base 10 digits.\r\nfunction coeffToString(a) {\r\n var s, z,\r\n i = 1,\r\n j = a.length,\r\n r = a[0] + '';\r\n\r\n for (; i < j;) {\r\n s = a[i++] + '';\r\n z = LOG_BASE - s.length;\r\n for (; z--; s = '0' + s);\r\n r += s;\r\n }\r\n\r\n // Determine trailing zeros.\r\n for (j = r.length; r.charCodeAt(--j) === 48;);\r\n\r\n return r.slice(0, j + 1 || 1);\r\n}\r\n\r\n\r\n// Compare the value of BigNumbers x and y.\r\nfunction compare(x, y) {\r\n var a, b,\r\n xc = x.c,\r\n yc = y.c,\r\n i = x.s,\r\n j = y.s,\r\n k = x.e,\r\n l = y.e;\r\n\r\n // Either NaN?\r\n if (!i || !j) return null;\r\n\r\n a = xc && !xc[0];\r\n b = yc && !yc[0];\r\n\r\n // Either zero?\r\n if (a || b) return a ? b ? 0 : -j : i;\r\n\r\n // Signs differ?\r\n if (i != j) return i;\r\n\r\n a = i < 0;\r\n b = k == l;\r\n\r\n // Either Infinity?\r\n if (!xc || !yc) return b ? 0 : !xc ^ a ? 1 : -1;\r\n\r\n // Compare exponents.\r\n if (!b) return k > l ^ a ? 1 : -1;\r\n\r\n j = (k = xc.length) < (l = yc.length) ? k : l;\r\n\r\n // Compare digit by digit.\r\n for (i = 0; i < j; i++) if (xc[i] != yc[i]) return xc[i] > yc[i] ^ a ? 1 : -1;\r\n\r\n // Compare lengths.\r\n return k == l ? 0 : k > l ^ a ? 1 : -1;\r\n}\r\n\r\n\r\n/*\r\n * Check that n is a primitive number, an integer, and in range, otherwise throw.\r\n */\r\nfunction intCheck(n, min, max, name) {\r\n if (n < min || n > max || n !== mathfloor(n)) {\r\n throw Error\r\n (bignumberError + (name || 'Argument') + (typeof n == 'number'\r\n ? n < min || n > max ? ' out of range: ' : ' not an integer: '\r\n : ' not a primitive number: ') + String(n));\r\n }\r\n}\r\n\r\n\r\n// Assumes finite n.\r\nfunction isOdd(n) {\r\n var k = n.c.length - 1;\r\n return bitFloor(n.e / LOG_BASE) == k && n.c[k] % 2 != 0;\r\n}\r\n\r\n\r\nfunction toExponential(str, e) {\r\n return (str.length > 1 ? str.charAt(0) + '.' + str.slice(1) : str) +\r\n (e < 0 ? 'e' : 'e+') + e;\r\n}\r\n\r\n\r\nfunction toFixedPoint(str, e, z) {\r\n var len, zs;\r\n\r\n // Negative exponent?\r\n if (e < 0) {\r\n\r\n // Prepend zeros.\r\n for (zs = z + '.'; ++e; zs += z);\r\n str = zs + str;\r\n\r\n // Positive exponent\r\n } else {\r\n len = str.length;\r\n\r\n // Append zeros.\r\n if (++e > len) {\r\n for (zs = z, e -= len; --e; zs += z);\r\n str += zs;\r\n } else if (e < len) {\r\n str = str.slice(0, e) + '.' + str.slice(e);\r\n }\r\n }\r\n\r\n return str;\r\n}\r\n\r\n\r\n// EXPORT\r\n\r\n\r\nexport var BigNumber = clone();\r\n\r\nexport default BigNumber;\r\n","import BigNumber from 'bignumber.js';\r\n\r\n/**\r\n * 数值入参类型。\r\n * 支持原生 `number`、`string`(包含小数、科学计数法等)以及 `BigNumber`。\r\n */\r\nexport type NumLike = string | number | BigNumber;\r\n\r\n/**\r\n * 将任意 `NumLike` 统一转换为 `BigNumber` 实例。\r\n * @param x 任意支持的数值入参。\r\n * @returns `BigNumber` 实例。\r\n * @example\r\n * big('0.1'); // => BigNumber\r\n * big(0.2); // => BigNumber\r\n */\r\nfunction big(x: NumLike): BigNumber {\r\n return x instanceof BigNumber ? x : new BigNumber(x);\r\n}\r\n\r\n/**\r\n * 高精度加法(支持多个参数连加)。\r\n * @example\r\n * mathPlus(0.1, 0.2); // => 0.3\r\n * mathPlus('0.1', '0.2'); // => 0.3\r\n * mathPlus(1, 2, 3, 4); // => 10 // 多参数连加: 1+2+3+4\r\n */\r\nexport function mathPlus(...rest: NumLike[]) {\r\n let acc = big(rest[0]);\r\n for (const x of rest.slice(1)) acc = acc.plus(big(x));\r\n return acc.toNumber();\r\n}\r\n\r\n/**\r\n * 高精度减法(支持多个参数连减)。\r\n * @example\r\n * mathMinus(1, 0.9); // => 0.1\r\n * mathMinus('1.1', '0.2'); // => 0.9\r\n * mathMinus(10, 1, 2, 3); // => 4 // 多参数连减: 10-1-2-3\r\n */\r\nexport function mathMinus(...rest: NumLike[]) {\r\n let acc = big(rest[0]);\r\n for (const x of rest.slice(1)) acc = acc.minus(big(x));\r\n return acc.toNumber();\r\n}\r\n\r\n/**\r\n * 高精度乘法(支持多个参数连乘)。\r\n * @example\r\n * mathTimes(0.1, 0.2); // => 0.02\r\n * mathTimes('1.5', '3'); // => 4.5\r\n * mathTimes(2, 3, 4); // => 24 // 多参数连乘: 2*3*4\r\n */\r\nexport function mathTimes(...rest: NumLike[]) {\r\n let acc = big(rest[0]);\r\n for (const x of rest.slice(1)) acc = acc.times(big(x));\r\n return acc.toNumber();\r\n}\r\n\r\n/**\r\n * 高精度除法(支持多个参数连除)。\r\n * @example\r\n * mathDiv(1, 3); // => 0.333333...\r\n * mathDiv('10', '4'); // => 2.5\r\n * mathDiv(100, 5, 2); // => 10 // 多参数连除: 100/5/2\r\n */\r\nexport function mathDiv(...rest: NumLike[]) {\r\n let acc = big(rest[0]);\r\n for (const x of rest.slice(1)) acc = acc.div(big(x));\r\n return acc.toNumber();\r\n}\r\n\r\n/**\r\n * 指数运算\r\n * @param x 底数。\r\n * @param y 指数。\r\n * @returns 计算结果。\r\n * @example\r\n * mathPow(2, 3); // => 8\r\n * mathPow('2.5', 2); // => 6.25\r\n */\r\nexport function mathPow(x: NumLike, y: NumLike) {\r\n return big(x).pow(big(y)).toNumber();\r\n}\r\n\r\n/**\r\n * 四舍五入到指定小数位数\r\n * @param x 需要舍入的数值。\r\n * @param dp 保留的小数位数,默认 `0`(取整)。\r\n * @param rm 舍入模式,默认 `ROUND_HALF_UP`(四舍五入)。\r\n * @returns 舍入后的数值。\r\n * @example\r\n * mathRound(1.6); // => 2\r\n * mathRound('1.234', 2); // => 1.23\r\n * mathRound('1.235', 2); // => 1.24\r\n * mathRound('1.299', 2, BigNumber.ROUND_DOWN); // => 1.29\r\n */\r\nexport function mathRound(\r\n x: NumLike,\r\n dp = 0,\r\n rm: BigNumber.RoundingMode = BigNumber.ROUND_HALF_UP,\r\n) {\r\n return big(x).decimalPlaces(dp, rm).toNumber();\r\n}\r\n\r\n/**\r\n * 将数值按指定位数格式化为字符串(保留小数位)。\r\n * @param x 需要格式化的数值。\r\n * @param dp 保留的小数位数,默认 `2`。\r\n * @param rm 舍入模式,默认 `ROUND_HALF_UP`(四舍五入)。\r\n * @returns 格式化后的字符串。\r\n * @example\r\n * mathFixed('1'); // => '1.00'\r\n * +mathFixed('1'); // => 1\r\n * mathFixed(1.2345); // => '1.23'\r\n * mathFixed(1.2345, 3); // => '1.235'\r\n * mathFixed('1.2345', 0, BigNumber.ROUND_UP); // => '2'\r\n */\r\nexport function mathFixed(\r\n x: NumLike,\r\n dp = 2,\r\n rm: BigNumber.RoundingMode = BigNumber.ROUND_HALF_UP,\r\n): string {\r\n return big(x).toFixed(dp, rm);\r\n}\r\n\r\n/**\r\n * 比较两个数值大小。\r\n * @example\r\n * mathCompare('2', '10'); // => -1\r\n * mathCompare(3, 3); // => 0\r\n * mathCompare('10', 2); // => 1\r\n */\r\nexport function mathCompare(a: NumLike, b: NumLike): -1 | 0 | 1 | null {\r\n return big(a).comparedTo(big(b));\r\n}\r\n\r\n/**\r\n * 判断两个数值是否相等。\r\n * @example\r\n * mathEqual('1.0', 1); // => true\r\n * mathEqual(2, 1); // => false\r\n */\r\nexport function mathEqual(a: NumLike, b: NumLike): boolean {\r\n return big(a).isEqualTo(big(b));\r\n}\r\n\r\n/**\r\n * 判断 a 是否大于 b。\r\n * @example\r\n * mathGreaterThan(2, 1); // => true\r\n * mathGreaterThan(1, 2); // => false\r\n */\r\nexport function mathGreaterThan(a: NumLike, b: NumLike): boolean {\r\n return big(a).isGreaterThan(big(b));\r\n}\r\n\r\n/**\r\n * 判断 a 是否大于等于 b。\r\n * @example\r\n * mathGreaterThanOrEqual(2, 2); // => true\r\n * mathGreaterThanOrEqual(1, 2); // => false\r\n */\r\nexport function mathGreaterThanOrEqual(a: NumLike, b: NumLike): boolean {\r\n return big(a).isGreaterThanOrEqualTo(big(b));\r\n}\r\n\r\n/**\r\n * 判断 a 是否小于 b。\r\n * @example\r\n * mathLessThan(1, 2); // => true\r\n * mathLessThan(2, 1); // => false\r\n */\r\nexport function mathLessThan(a: NumLike, b: NumLike): boolean {\r\n return big(a).isLessThan(big(b));\r\n}\r\n\r\n/**\r\n * 判断 a 是否小于等于 b。\r\n * @example\r\n * mathLessThanOrEqual(2, 2); // => true\r\n * mathLessThanOrEqual(1, 2); // => true\r\n * mathLessThanOrEqual(2, 1); // => false\r\n */\r\nexport function mathLessThanOrEqual(a: NumLike, b: NumLike): boolean {\r\n return big(a).isLessThanOrEqualTo(big(b));\r\n}\r\n\r\n/**\r\n * 导出 BigNumber 类\r\n * @example\r\n * BigNumber.ROUND_HALF_UP; // 使用类型\r\n * BigNumber.set(config); // 设置全局配置\r\n * const bn = new BigNumber('123456.789'); // 创建实例\r\n */\r\nexport { BigNumber };\r\n","import { BigNumber } from './big';\r\n\r\n/**\r\n * 开头补零\r\n * @param n 数字\r\n * @param len 总长度,默认 2\r\n * @returns 零填充后的字符串\r\n * @example\r\n * zeroPad(1) // '01'\r\n * zeroPad(12) // '12'\r\n * zeroPad(12, 4) // '0012'\r\n */\r\nexport function zeroPad(n: number | string, len = 2) {\r\n return String(n).padStart(len, '0');\r\n}\r\n\r\n/**\r\n * 给数字添加指定单位 (支持数字字符串,其他非法字符返回原值)\r\n * @param unit 单位\r\n * @param num 数字\r\n * @example\r\n * withUnit(0, 'px') // \"0px\"\r\n * withUnit(1, 'px') // \"1px\"\r\n * withUnit('1', 'rpx') // \"1rpx\"\r\n * withUnit('1', '%') // \"1%\"\r\n * withUnit('auto', 'px') // \"auto\"\r\n * withUnit(null | undefined | '') // \"\"\r\n */\r\nexport function withUnit(num?: number | string, unit = '') {\r\n if (num === null || num === undefined || num === '') return ''; // 注意不能排除0\r\n\r\n if (typeof num === 'number') return `${num}${unit}`;\r\n\r\n const str = String(num).trim();\r\n\r\n if (str === '') return '';\r\n\r\n return isNaN(+str) ? str : `${str}${unit}`;\r\n}\r\n\r\n/**\r\n * 给数字添加px单位 (支持数字字符串,其他非法字符返回原值)\r\n * @example\r\n * withUnitPx(10) // \"10px\"\r\n * withUnitPx('10') // \"10px\"\r\n * withUnitPx('10px') // \"10px\"\r\n * withUnitPx(\"auto\") // \"auto\"\r\n * withUnitPx(\"30%\") // \"30%\"\r\n * withUnitPx(null | undefined | '') // \"\"\r\n * withUnitPx(0) // \"0px\"\r\n */\r\nexport function withUnitPx(num?: string | number) {\r\n return withUnit(num, 'px');\r\n}\r\n\r\n/**\r\n * 给数字添加距离单位:当数值大于等于 1000m 时转换为 km,否则显示 m(最多两位小数、无无意义补零)\r\n * @example\r\n * withDistance(5); // => '5m'\r\n * withDistance(999.456); // => '999.46m'\r\n * withDistance(1000); // => '1km'\r\n * withDistance('1500'); // => '1.5km'\r\n * withDistance('1728'); // => '1.73km'\r\n */\r\nexport function withDistance(m: number | string): string {\r\n const n = Number(m ?? 0);\r\n if (!Number.isFinite(n)) return '0m';\r\n return n >= 1000 ? `${+(n / 1000).toFixed(2)}km` : `${+n.toFixed(2)}m`;\r\n}\r\n\r\n/**\r\n * 数字转千分位字符串(保留小数与符号)。\r\n * @example\r\n * toThousandth(1234567); // => '1,234,567'\r\n * toThousandth('1234567.89'); // => '1,234,567.89'\r\n * toThousandth('-987654'); // => '-987,654'\r\n */\r\nexport function toThousandth(str: number | string): string {\r\n const v = String(str ?? '').trim();\r\n if (v === '') return '';\r\n\r\n // 处理符号\r\n let sign = '';\r\n let num = v;\r\n if (num[0] === '-' || num[0] === '+') {\r\n sign = num[0];\r\n num = num.slice(1);\r\n }\r\n\r\n // 拆分整数与小数部分\r\n const [intPart, decPart] = num.split('.');\r\n\r\n // 仅对整数部分进行千分位分组\r\n const groupedInt = intPart.replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\r\n\r\n return decPart !== undefined && decPart !== ''\r\n ? `${sign}${groupedInt}.${decPart}`\r\n : `${sign}${groupedInt}`;\r\n}\r\n\r\n/**\r\n * 阿拉伯数字转中文整数(忽略小数;支持负数)。\r\n * @param num 输入的数字或数字字符串(小数部分将被丢弃)\r\n * @returns 中文数字字符串;非法输入返回空字符串\r\n * @example\r\n * toChineseNum(123456); // \"十二万三千四百五十六\"\r\n * toChineseNum(-10008); // \"负一万零八\"\r\n * `第${toChineseNum(123)}条` // \"第一百二十三条\"\r\n */\r\nexport function toChineseNum(num: number | string) {\r\n const numInt = Math.trunc(+num);\r\n if (numInt === 0) return '零';\r\n\r\n const digit = ['零', '一', '二', '三', '四', '五', '六', '七', '八', '九'];\r\n const unit = ['', '十', '百', '千'];\r\n const bigUnit = ['', '万', '亿', '兆'];\r\n\r\n const section4 = (n: number) => {\r\n let str = '',\r\n zeroFlag = false;\r\n for (let i = 0; i < 4; i++) {\r\n const d = n % 10;\r\n n = Math.floor(n / 10);\r\n if (d === 0) {\r\n zeroFlag = true;\r\n continue;\r\n }\r\n if (zeroFlag) str = digit[0] + str;\r\n str = digit[d] + unit[i] + str;\r\n zeroFlag = false;\r\n }\r\n return str;\r\n };\r\n\r\n let res = '';\r\n let sectionIndex = 0;\r\n let n = Math.abs(numInt);\r\n\r\n while (n > 0) {\r\n const seg = n % 10000;\r\n n = Math.floor(n / 10000);\r\n if (seg) {\r\n const segStr = section4(seg);\r\n res = segStr + (sectionIndex ? bigUnit[sectionIndex] : '') + res;\r\n } else if (res && !res.startsWith('零')) {\r\n res = `零${res}`;\r\n }\r\n sectionIndex++;\r\n }\r\n\r\n res = res.replace(/^一十/, '十');\r\n\r\n return numInt < 0 ? `负${res}` : res;\r\n}\r\n\r\n/**\r\n * 金额转中文大写(支持角/分/厘,精度控制)。\r\n * @param amount 金额(支持 number | string),非法或非有限数返回空串\r\n * @param opts 配置项\r\n * @param opts.precision 保留小数位(0~3),对应:0无小数、1角、2角分、3角分厘;默认 2\r\n * @param opts.rm 舍入模式,默认 `BigNumber.ROUND_HALF_UP`(四舍五入)\r\n * @param opts.yuanChar 元单位字符(`'元' | '圆'`),默认 `'元'`\r\n * @returns 中文大写金额字符串;示例:`壹佰贰拾叁元肆角伍分`\r\n * @example\r\n * toChineseCurrency(0) // '零元整'\r\n * toChineseCurrency(10) // '拾元整'\r\n * toChineseCurrency(101) // '壹佰零壹元整'\r\n * toChineseCurrency(1001000) // '壹佰万零壹仟元整'\r\n * toChineseCurrency(1001.01) // '壹仟零壹元壹分'\r\n * toChineseCurrency('1234.5679', { precision: 3 }) // '壹仟贰佰叁拾肆元伍角陆分捌厘'\r\n * toChineseCurrency(-1.2) // '负壹元贰角'\r\n */\r\nexport function toChineseCurrency(\r\n amount: number | string,\r\n opts: {\r\n precision?: 0 | 1 | 2 | 3;\r\n rm?: BigNumber.RoundingMode;\r\n yuanChar?: '元' | '圆';\r\n } = {},\r\n): string {\r\n const dp = opts.precision ?? 2;\r\n const rm = opts.rm ?? BigNumber.ROUND_HALF_UP;\r\n const yuan = opts.yuanChar ?? '元';\r\n\r\n // 1. 非法输入直接返回空串\r\n if (amount === null || amount === undefined) return '';\r\n const bn = new BigNumber(amount);\r\n if (!bn.isFinite()) return '';\r\n\r\n // 2. 转字符串并拆分整数/小数\r\n const s = bn.toFixed(dp, rm);\r\n const sign = s.startsWith('-') ? '负' : '';\r\n const [intStr, decStr = ''] = s.replace(/^-/, '').split('.');\r\n\r\n // 3. 数字与大写映射\r\n const digit = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖'];\r\n const unit = ['', '拾', '佰', '仟'];\r\n const bigUnit = ['', '万', '亿', '兆'];\r\n const smallUnit = ['角', '分', '厘'];\r\n\r\n // 4. 四位一段转换整数\r\n const section4 = (n: BigNumber): string => {\r\n let str = '';\r\n let zeroFlag = false;\r\n for (let i = 0; i < 4; i++) {\r\n const d = n.mod(10).toNumber();\r\n n = n.idiv(10);\r\n if (d === 0) {\r\n zeroFlag = true;\r\n continue;\r\n }\r\n if (zeroFlag) str = digit[0] + str;\r\n str = digit[d] + unit[i] + str;\r\n zeroFlag = false;\r\n }\r\n return str.replace(/零+$/g, '');\r\n };\r\n\r\n const intNum = new BigNumber(intStr);\r\n let res = '';\r\n if (intNum.isZero()) {\r\n res = digit[0];\r\n } else {\r\n let n = intNum.abs();\r\n let sectionIndex = 0;\r\n while (n.gt(0)) {\r\n const seg = n.mod(10000);\r\n n = n.idiv(10000);\r\n if (seg.gt(0)) {\r\n const segStr = section4(seg);\r\n const needZero =\r\n res && !res.startsWith(digit[0]) && (seg.lt(1000) || seg.mod(1000).isZero());\r\n const bu = sectionIndex ? bigUnit[sectionIndex] : '';\r\n res = segStr + bu + (needZero ? digit[0] : '') + res;\r\n } else if (res && !res.startsWith(digit[0])) {\r\n res = digit[0] + res;\r\n }\r\n sectionIndex++;\r\n }\r\n res = res.replace(/^壹拾/, '拾');\r\n }\r\n\r\n // 5. 小数部分(角分厘)\r\n let frac = '';\r\n for (let i = 0; i < Math.min(3, dp); i++) {\r\n const ch = decStr[i] || '0';\r\n const d = ch.charCodeAt(0) - 48;\r\n if (d > 0) frac += digit[d] + smallUnit[i];\r\n }\r\n\r\n // 6. 拼接\r\n return frac ? `${sign}${res}${yuan}${frac}` : `${sign}${res}${yuan}整`;\r\n}\r\n","/**\r\n * 随机生成一个布尔值。\r\n * @returns 随机布尔值。\r\n * @example\r\n * randomBoolean(); // => 随机返回 true 或 false\r\n */\r\nexport function randomBoolean(): boolean {\r\n return Math.random() < 0.5;\r\n}\r\n","function at(arr, indices) {\n const result = new Array(indices.length);\n const length = arr.length;\n for (let i = 0; i < indices.length; i++) {\n let index = indices[i];\n index = Number.isInteger(index) ? index : Math.trunc(index) || 0;\n if (index < 0) {\n index += length;\n }\n result[i] = arr[index];\n }\n return result;\n}\n\nexport { at };\n","function chunk(arr, size) {\n if (!Number.isInteger(size) || size <= 0) {\n throw new Error('Size must be an integer greater than zero.');\n }\n const chunkLength = Math.ceil(arr.length / size);\n const result = Array(chunkLength);\n for (let index = 0; index < chunkLength; index++) {\n const start = index * size;\n const end = start + size;\n result[index] = arr.slice(start, end);\n }\n return result;\n}\n\nexport { chunk };\n","function compact(arr) {\n const result = [];\n for (let i = 0; i < arr.length; i++) {\n const item = arr[i];\n if (item) {\n result.push(item);\n }\n }\n return result;\n}\n\nexport { compact };\n","function countBy(arr, mapper) {\n const result = {};\n for (let i = 0; i < arr.length; i++) {\n const item = arr[i];\n const key = mapper(item);\n result[key] = (result[key] ?? 0) + 1;\n }\n return result;\n}\n\nexport { countBy };\n","function difference(firstArr, secondArr) {\n const secondSet = new Set(secondArr);\n return firstArr.filter(item => !secondSet.has(item));\n}\n\nexport { difference };\n","function differenceBy(firstArr, secondArr, mapper) {\n const mappedSecondSet = new Set(secondArr.map(item => mapper(item)));\n return firstArr.filter(item => {\n return !mappedSecondSet.has(mapper(item));\n });\n}\n\nexport { differenceBy };\n","function differenceWith(firstArr, secondArr, areItemsEqual) {\n return firstArr.filter(firstItem => {\n return secondArr.every(secondItem => {\n return !areItemsEqual(firstItem, secondItem);\n });\n });\n}\n\nexport { differenceWith };\n","function drop(arr, itemsCount) {\n itemsCount = Math.max(itemsCount, 0);\n return arr.slice(itemsCount);\n}\n\nexport { drop };\n","function dropRight(arr, itemsCount) {\n itemsCount = Math.min(-itemsCount, 0);\n if (itemsCount === 0) {\n return arr.slice();\n }\n return arr.slice(0, itemsCount);\n}\n\nexport { dropRight };\n","function dropRightWhile(arr, canContinueDropping) {\n for (let i = arr.length - 1; i >= 0; i--) {\n if (!canContinueDropping(arr[i], i, arr)) {\n return arr.slice(0, i + 1);\n }\n }\n return [];\n}\n\nexport { dropRightWhile };\n","function dropWhile(arr, canContinueDropping) {\n const dropEndIndex = arr.findIndex((item, index, arr) => !canContinueDropping(item, index, arr));\n if (dropEndIndex === -1) {\n return [];\n }\n return arr.slice(dropEndIndex);\n}\n\nexport { dropWhile };\n","function fill(array, value, start = 0, end = array.length) {\n const length = array.length;\n const finalStart = Math.max(start >= 0 ? start : length + start, 0);\n const finalEnd = Math.min(end >= 0 ? end : length + end, length);\n for (let i = finalStart; i < finalEnd; i++) {\n array[i] = value;\n }\n return array;\n}\n\nexport { fill };\n","class Semaphore {\n capacity;\n available;\n deferredTasks = [];\n constructor(capacity) {\n this.capacity = capacity;\n this.available = capacity;\n }\n async acquire() {\n if (this.available > 0) {\n this.available--;\n return;\n }\n return new Promise(resolve => {\n this.deferredTasks.push(resolve);\n });\n }\n release() {\n const deferredTask = this.deferredTasks.shift();\n if (deferredTask != null) {\n deferredTask();\n return;\n }\n if (this.available < this.capacity) {\n this.available++;\n }\n }\n}\n\nexport { Semaphore };\n","import { Semaphore } from '../promise/semaphore.mjs';\n\nfunction limitAsync(callback, concurrency) {\n const semaphore = new Semaphore(concurrency);\n return async function (...args) {\n try {\n await semaphore.acquire();\n return await callback.apply(this, args);\n }\n finally {\n semaphore.release();\n }\n };\n}\n\nexport { limitAsync };\n","import { limitAsync } from './limitAsync.mjs';\n\nasync function filterAsync(array, predicate, options) {\n if (options?.concurrency != null) {\n predicate = limitAsync(predicate, options.concurrency);\n }\n const results = await Promise.all(array.map(predicate));\n return array.filter((_, index) => results[index]);\n}\n\nexport { filterAsync };\n","function flatten(arr, depth = 1) {\n const result = [];\n const flooredDepth = Math.floor(depth);\n const recursive = (arr, currentDepth) => {\n for (let i = 0; i < arr.length; i++) {\n const item = arr[i];\n if (Array.isArray(item) && currentDepth < flooredDepth) {\n recursive(item, currentDepth + 1);\n }\n else {\n result.push(item);\n }\n }\n };\n recursive(arr, 0);\n return result;\n}\n\nexport { flatten };\n","import { flatten } from './flatten.mjs';\n\nfunction flatMap(arr, iteratee, depth = 1) {\n return flatten(arr.map(item => iteratee(item)), depth);\n}\n\nexport { flatMap };\n","import { flatten } from './flatten.mjs';\nimport { limitAsync } from './limitAsync.mjs';\n\nasync function flatMapAsync(array, callback, options) {\n if (options?.concurrency != null) {\n callback = limitAsync(callback, options.concurrency);\n }\n const results = await Promise.all(array.map(callback));\n return flatten(results);\n}\n\nexport { flatMapAsync };\n","import { flatten } from './flatten.mjs';\n\nfunction flattenDeep(arr) {\n return flatten(arr, Infinity);\n}\n\nexport { flattenDeep };\n","import { flattenDeep } from './flattenDeep.mjs';\n\nfunction flatMapDeep(arr, iteratee) {\n return flattenDeep(arr.map((item) => iteratee(item)));\n}\n\nexport { flatMapDeep };\n","import { limitAsync } from './limitAsync.mjs';\n\nasync function forEachAsync(array, callback, options) {\n if (options?.concurrency != null) {\n callback = limitAsync(callback, options.concurrency);\n }\n await Promise.all(array.map(callback));\n}\n\nexport { forEachAsync };\n","function forEachRight(arr, callback) {\n for (let i = arr.length - 1; i >= 0; i--) {\n const element = arr[i];\n callback(element, i, arr);\n }\n}\n\nexport { forEachRight };\n","function groupBy(arr, getKeyFromItem) {\n const result = {};\n for (let i = 0; i < arr.length; i++) {\n const item = arr[i];\n const key = getKeyFromItem(item);\n if (!Object.hasOwn(result, key)) {\n result[key] = [];\n }\n result[key].push(item);\n }\n return result;\n}\n\nexport { groupBy };\n","function head(arr) {\n return arr[0];\n}\n\nexport { head };\n","function initial(arr) {\n return arr.slice(0, -1);\n}\n\nexport { initial };\n","function intersection(firstArr, secondArr) {\n const secondSet = new Set(secondArr);\n return firstArr.filter(item => {\n return secondSet.has(item);\n });\n}\n\nexport { intersection };\n","function intersectionBy(firstArr, secondArr, mapper) {\n const mappedSecondSet = new Set(secondArr.map(mapper));\n return firstArr.filter(item => mappedSecondSet.has(mapper(item)));\n}\n\nexport { intersectionBy };\n","function intersectionWith(firstArr, secondArr, areItemsEqual) {\n return firstArr.filter(firstItem => {\n return secondArr.some(secondItem => {\n return areItemsEqual(firstItem, secondItem);\n });\n });\n}\n\nexport { intersectionWith };\n","import { difference } from './difference.mjs';\n\nfunction isSubset(superset, subset) {\n return difference(subset, superset).length === 0;\n}\n\nexport { isSubset };\n","import { differenceWith } from './differenceWith.mjs';\n\nfunction isSubsetWith(superset, subset, areItemsEqual) {\n return differenceWith(subset, superset, areItemsEqual).length === 0;\n}\n\nexport { isSubsetWith };\n","function keyBy(arr, getKeyFromItem) {\n const result = {};\n for (let i = 0; i < arr.length; i++) {\n const item = arr[i];\n const key = getKeyFromItem(item);\n result[key] = item;\n }\n return result;\n}\n\nexport { keyBy };\n","function last(arr) {\n return arr[arr.length - 1];\n}\n\nexport { last };\n","import { limitAsync } from './limitAsync.mjs';\n\nfunction mapAsync(array, callback, options) {\n if (options?.concurrency != null) {\n callback = limitAsync(callback, options.concurrency);\n }\n return Promise.all(array.map(callback));\n}\n\nexport { mapAsync };\n","function maxBy(items, getValue) {\n if (items.length === 0) {\n return undefined;\n }\n let maxElement = items[0];\n let max = getValue(maxElement);\n for (let i = 1; i < items.length; i++) {\n const element = items[i];\n const value = getValue(element);\n if (value > max) {\n max = value;\n maxElement = element;\n }\n }\n return maxElement;\n}\n\nexport { maxBy };\n","function minBy(items, getValue) {\n if (items.length === 0) {\n return undefined;\n }\n let minElement = items[0];\n let min = getValue(minElement);\n for (let i = 1; i < items.length; i++) {\n const element = items[i];\n const value = getValue(element);\n if (value < min) {\n min = value;\n minElement = element;\n }\n }\n return minElement;\n}\n\nexport { minBy };\n","function compareValues(a, b, order) {\n if (a < b) {\n return order === 'asc' ? -1 : 1;\n }\n if (a > b) {\n return order === 'asc' ? 1 : -1;\n }\n return 0;\n}\n\nexport { compareValues };\n","import { compareValues } from '../_internal/compareValues.mjs';\n\nfunction orderBy(arr, criteria, orders) {\n return arr.slice().sort((a, b) => {\n const ordersLength = orders.length;\n for (let i = 0; i < criteria.length; i++) {\n const order = ordersLength > i ? orders[i] : orders[ordersLength - 1];\n const criterion = criteria[i];\n const criterionIsFunction = typeof criterion === 'function';\n const valueA = criterionIsFunction ? criterion(a) : a[criterion];\n const valueB = criterionIsFunction ? criterion(b) : b[criterion];\n const result = compareValues(valueA, valueB, order);\n if (result !== 0) {\n return result;\n }\n }\n return 0;\n });\n}\n\nexport { orderBy };\n","function partition(arr, isInTruthy) {\n const truthy = [];\n const falsy = [];\n for (let i = 0; i < arr.length; i++) {\n const item = arr[i];\n if (isInTruthy(item)) {\n truthy.push(item);\n }\n else {\n falsy.push(item);\n }\n }\n return [truthy, falsy];\n}\n\nexport { partition };\n","function pull(arr, valuesToRemove) {\n const valuesSet = new Set(valuesToRemove);\n let resultIndex = 0;\n for (let i = 0; i < arr.length; i++) {\n if (valuesSet.has(arr[i])) {\n continue;\n }\n if (!Object.hasOwn(arr, i)) {\n delete arr[resultIndex++];\n continue;\n }\n arr[resultIndex++] = arr[i];\n }\n arr.length = resultIndex;\n return arr;\n}\n\nexport { pull };\n","import { at } from './at.mjs';\n\nfunction pullAt(arr, indicesToRemove) {\n const removed = at(arr, indicesToRemove);\n const indices = new Set(indicesToRemove.slice().sort((x, y) => y - x));\n for (const index of indices) {\n arr.splice(index, 1);\n }\n return removed;\n}\n\nexport { pullAt };\n","async function reduceAsync(array, reducer, initialValue) {\n let startIndex = 0;\n if (initialValue == null) {\n initialValue = array[0];\n startIndex = 1;\n }\n let accumulator = initialValue;\n for (let i = startIndex; i < array.length; i++) {\n accumulator = await reducer(accumulator, array[i], i, array);\n }\n return accumulator;\n}\n\nexport { reduceAsync };\n","function remove(arr, shouldRemoveElement) {\n const originalArr = arr.slice();\n const removed = [];\n let resultIndex = 0;\n for (let i = 0; i < arr.length; i++) {\n if (shouldRemoveElement(arr[i], i, originalArr)) {\n removed.push(arr[i]);\n continue;\n }\n if (!Object.hasOwn(arr, i)) {\n delete arr[resultIndex++];\n continue;\n }\n arr[resultIndex++] = arr[i];\n }\n arr.length = resultIndex;\n return removed;\n}\n\nexport { remove };\n","function sample(arr) {\n const randomIndex = Math.floor(Math.random() * arr.length);\n return arr[randomIndex];\n}\n\nexport { sample };\n","function random(minimum, maximum) {\n if (maximum == null) {\n maximum = minimum;\n minimum = 0;\n }\n if (minimum >= maximum) {\n throw new Error('Invalid input: The maximum value must be greater than the minimum value.');\n }\n return Math.random() * (maximum - minimum) + minimum;\n}\n\nexport { random };\n","import { random } from './random.mjs';\n\nfunction randomInt(minimum, maximum) {\n return Math.floor(random(minimum, maximum));\n}\n\nexport { randomInt };\n","import { randomInt } from '../math/randomInt.mjs';\n\nfunction sampleSize(array, size) {\n if (size > array.length) {\n throw new Error('Size must be less than or equal to the length of array.');\n }\n const result = new Array(size);\n const selected = new Set();\n for (let step = array.length - size, resultIndex = 0; step < array.length; step++, resultIndex++) {\n let index = randomInt(0, step + 1);\n if (selected.has(index)) {\n index = step;\n }\n selected.add(index);\n result[resultIndex] = array[index];\n }\n return result;\n}\n\nexport { sampleSize };\n","function shuffle(arr) {\n const result = arr.slice();\n for (let i = result.length - 1; i >= 1; i--) {\n const j = Math.floor(Math.random() * (i + 1));\n [result[i], result[j]] = [result[j], result[i]];\n }\n return result;\n}\n\nexport { shuffle };\n","import { orderBy } from './orderBy.mjs';\n\nfunction sortBy(arr, criteria) {\n return orderBy(arr, criteria, ['asc']);\n}\n\nexport { sortBy };\n","function tail(arr) {\n return arr.slice(1);\n}\n\nexport { tail };\n","function isSymbol(value) {\n return typeof value === 'symbol' || value instanceof Symbol;\n}\n\nexport { isSymbol };\n","import { isSymbol } from '../predicate/isSymbol.mjs';\n\nfunction toNumber(value) {\n if (isSymbol(value)) {\n return NaN;\n }\n return Number(value);\n}\n\nexport { toNumber };\n","import { toNumber } from './toNumber.mjs';\n\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === Infinity || value === -Infinity) {\n const sign = value < 0 ? -1 : 1;\n return sign * Number.MAX_VALUE;\n }\n return value === value ? value : 0;\n}\n\nexport { toFinite };\n","import { toFinite } from './toFinite.mjs';\n\nfunction toInteger(value) {\n const finite = toFinite(value);\n const remainder = finite % 1;\n return remainder ? finite - remainder : finite;\n}\n\nexport { toInteger };\n","import { toInteger } from '../compat/util/toInteger.mjs';\n\nfunction take(arr, count, guard) {\n count = guard || count === undefined ? 1 : toInteger(count);\n return arr.slice(0, count);\n}\n\nexport { take };\n","import { toInteger } from '../compat/util/toInteger.mjs';\n\nfunction takeRight(arr, count, guard) {\n count = guard || count === undefined ? 1 : toInteger(count);\n if (count <= 0 || arr.length === 0) {\n return [];\n }\n return arr.slice(-count);\n}\n\nexport { takeRight };\n","function takeRightWhile(arr, shouldContinueTaking) {\n for (let i = arr.length - 1; i >= 0; i--) {\n if (!shouldContinueTaking(arr[i])) {\n return arr.slice(i + 1);\n }\n }\n return arr.slice();\n}\n\nexport { takeRightWhile };\n","function takeWhile(arr, shouldContinueTaking) {\n const result = [];\n for (let i = 0; i < arr.length; i++) {\n const item = arr[i];\n if (!shouldContinueTaking(item)) {\n break;\n }\n result.push(item);\n }\n return result;\n}\n\nexport { takeWhile };\n","function toFilled(arr, value, start = 0, end = arr.length) {\n const length = arr.length;\n const finalStart = Math.max(start >= 0 ? start : length + start, 0);\n const finalEnd = Math.min(end >= 0 ? end : length + end, length);\n const newArr = arr.slice();\n for (let i = finalStart; i < finalEnd; i++) {\n newArr[i] = value;\n }\n return newArr;\n}\n\nexport { toFilled };\n","function uniq(arr) {\n return [...new Set(arr)];\n}\n\nexport { uniq };\n","import { uniq } from './uniq.mjs';\n\nfunction union(arr1, arr2) {\n return uniq(arr1.concat(arr2));\n}\n\nexport { union };\n","function uniqBy(arr, mapper) {\n const map = new Map();\n for (let i = 0; i < arr.length; i++) {\n const item = arr[i];\n const key = mapper(item);\n if (!map.has(key)) {\n map.set(key, item);\n }\n }\n return Array.from(map.values());\n}\n\nexport { uniqBy };\n","import { uniqBy } from './uniqBy.mjs';\n\nfunction unionBy(arr1, arr2, mapper) {\n return uniqBy(arr1.concat(arr2), mapper);\n}\n\nexport { unionBy };\n","function uniqWith(arr, areItemsEqual) {\n const result = [];\n for (let i = 0; i < arr.length; i++) {\n const item = arr[i];\n const isUniq = result.every(v => !areItemsEqual(v, item));\n if (isUniq) {\n result.push(item);\n }\n }\n return result;\n}\n\nexport { uniqWith };\n","import { uniqWith } from './uniqWith.mjs';\n\nfunction unionWith(arr1, arr2, areItemsEqual) {\n return uniqWith(arr1.concat(arr2), areItemsEqual);\n}\n\nexport { unionWith };\n","function unzip(zipped) {\n let maxLen = 0;\n for (let i = 0; i < zipped.length; i++) {\n if (zipped[i].length > maxLen) {\n maxLen = zipped[i].length;\n }\n }\n const result = new Array(maxLen);\n for (let i = 0; i < maxLen; i++) {\n result[i] = new Array(zipped.length);\n for (let j = 0; j < zipped.length; j++) {\n result[i][j] = zipped[j][i];\n }\n }\n return result;\n}\n\nexport { unzip };\n","function unzipWith(target, iteratee) {\n const maxLength = Math.max(...target.map(innerArray => innerArray.length));\n const result = new Array(maxLength);\n for (let i = 0; i < maxLength; i++) {\n const group = new Array(target.length);\n for (let j = 0; j < target.length; j++) {\n group[j] = target[j][i];\n }\n result[i] = iteratee(...group);\n }\n return result;\n}\n\nexport { unzipWith };\n","function windowed(arr, size, step = 1, { partialWindows = false } = {}) {\n if (size <= 0 || !Number.isInteger(size)) {\n throw new Error('Size must be a positive integer.');\n }\n if (step <= 0 || !Number.isInteger(step)) {\n throw new Error('Step must be a positive integer.');\n }\n const result = [];\n const end = partialWindows ? arr.length : arr.length - size + 1;\n for (let i = 0; i < end; i += step) {\n result.push(arr.slice(i, i + size));\n }\n return result;\n}\n\nexport { windowed };\n","import { difference } from './difference.mjs';\n\nfunction without(array, ...values) {\n return difference(array, values);\n}\n\nexport { without };\n","import { difference } from './difference.mjs';\nimport { intersection } from './intersection.mjs';\nimport { union } from './union.mjs';\n\nfunction xor(arr1, arr2) {\n return difference(union(arr1, arr2), intersection(arr1, arr2));\n}\n\nexport { xor };\n","import { differenceBy } from './differenceBy.mjs';\nimport { intersectionBy } from './intersectionBy.mjs';\nimport { unionBy } from './unionBy.mjs';\n\nfunction xorBy(arr1, arr2, mapper) {\n const union = unionBy(arr1, arr2, mapper);\n const intersection = intersectionBy(arr1, arr2, mapper);\n return differenceBy(union, intersection, mapper);\n}\n\nexport { xorBy };\n","import { differenceWith } from './differenceWith.mjs';\nimport { intersectionWith } from './intersectionWith.mjs';\nimport { unionWith } from './unionWith.mjs';\n\nfunction xorWith(arr1, arr2, areElementsEqual) {\n const union = unionWith(arr1, arr2, areElementsEqual);\n const intersection = intersectionWith(arr1, arr2, areElementsEqual);\n return differenceWith(union, intersection, areElementsEqual);\n}\n\nexport { xorWith };\n","function zip(...arrs) {\n let rowCount = 0;\n for (let i = 0; i < arrs.length; i++) {\n if (arrs[i].length > rowCount) {\n rowCount = arrs[i].length;\n }\n }\n const columnCount = arrs.length;\n const result = Array(rowCount);\n for (let i = 0; i < rowCount; ++i) {\n const row = Array(columnCount);\n for (let j = 0; j < columnCount; ++j) {\n row[j] = arrs[j][i];\n }\n result[i] = row;\n }\n return result;\n}\n\nexport { zip };\n","function zipObject(keys, values) {\n const result = {};\n for (let i = 0; i < keys.length; i++) {\n result[keys[i]] = values[i];\n }\n return result;\n}\n\nexport { zipObject };\n","function zipWith(arr1, ...rest) {\n const arrs = [arr1, ...rest.slice(0, -1)];\n const combine = rest[rest.length - 1];\n const maxIndex = Math.max(...arrs.map(arr => arr.length));\n const result = Array(maxIndex);\n for (let i = 0; i < maxIndex; i++) {\n const elements = arrs.map(arr => arr[i]);\n result[i] = combine(...elements);\n }\n return result;\n}\n\nexport { zipWith };\n","class AbortError extends Error {\n constructor(message = 'The operation was aborted') {\n super(message);\n this.name = 'AbortError';\n }\n}\n\nexport { AbortError };\n","class TimeoutError extends Error {\n constructor(message = 'The operation was timed out') {\n super(message);\n this.name = 'TimeoutError';\n }\n}\n\nexport { TimeoutError };\n","function after(n, func) {\n if (!Number.isInteger(n) || n < 0) {\n throw new Error(`n must be a non-negative integer.`);\n }\n let counter = 0;\n return (...args) => {\n if (++counter >= n) {\n return func(...args);\n }\n return undefined;\n };\n}\n\nexport { after };\n","function ary(func, n) {\n return function (...args) {\n return func.apply(this, args.slice(0, n));\n };\n}\n\nexport { ary };\n","async function asyncNoop() { }\n\nexport { asyncNoop };\n","function before(n, func) {\n if (!Number.isInteger(n) || n < 0) {\n throw new Error('n must be a non-negative integer.');\n }\n let counter = 0;\n return (...args) => {\n if (++counter < n) {\n return func(...args);\n }\n return undefined;\n };\n}\n\nexport { before };\n","function curry(func) {\n if (func.length === 0 || func.length === 1) {\n return func;\n }\n return function (arg) {\n return makeCurry(func, func.length, [arg]);\n };\n}\nfunction makeCurry(origin, argsLength, args) {\n if (args.length === argsLength) {\n return origin(...args);\n }\n else {\n const next = function (arg) {\n return makeCurry(origin, argsLength, [...args, arg]);\n };\n return next;\n }\n}\n\nexport { curry };\n","function curryRight(func) {\n if (func.length === 0 || func.length === 1) {\n return func;\n }\n return function (arg) {\n return makeCurryRight(func, func.length, [arg]);\n };\n}\nfunction makeCurryRight(origin, argsLength, args) {\n if (args.length === argsLength) {\n return origin(...args);\n }\n else {\n const next = function (arg) {\n return makeCurryRight(origin, argsLength, [arg, ...args]);\n };\n return next;\n }\n}\n\nexport { curryRight };\n","function debounce(func, debounceMs, { signal, edges } = {}) {\n let pendingThis = undefined;\n let pendingArgs = null;\n const leading = edges != null && edges.includes('leading');\n const trailing = edges == null || edges.includes('trailing');\n const invoke = () => {\n if (pendingArgs !== null) {\n func.apply(pendingThis, pendingArgs);\n pendingThis = undefined;\n pendingArgs = null;\n }\n };\n const onTimerEnd = () => {\n if (trailing) {\n invoke();\n }\n cancel();\n };\n let timeoutId = null;\n const schedule = () => {\n if (timeoutId != null) {\n clearTimeout(timeoutId);\n }\n timeoutId = setTimeout(() => {\n timeoutId = null;\n onTimerEnd();\n }, debounceMs);\n };\n const cancelTimer = () => {\n if (timeoutId !== null) {\n clearTimeout(timeoutId);\n timeoutId = null;\n }\n };\n const cancel = () => {\n cancelTimer();\n pendingThis = undefined;\n pendingArgs = null;\n };\n const flush = () => {\n invoke();\n };\n const debounced = function (...args) {\n if (signal?.aborted) {\n return;\n }\n pendingThis = this;\n pendingArgs = args;\n const isFirstCall = timeoutId == null;\n schedule();\n if (leading && isFirstCall) {\n invoke();\n }\n };\n debounced.schedule = schedule;\n debounced.cancel = cancel;\n debounced.flush = flush;\n signal?.addEventListener('abort', cancel, { once: true });\n return debounced;\n}\n\nexport { debounce };\n","function flow(...funcs) {\n return function (...args) {\n let result = funcs.length ? funcs[0].apply(this, args) : args[0];\n for (let i = 1; i < funcs.length; i++) {\n result = funcs[i].call(this, result);\n }\n return result;\n };\n}\n\nexport { flow };\n","import { flow } from './flow.mjs';\n\nfunction flowRight(...funcs) {\n return flow(...funcs.reverse());\n}\n\nexport { flowRight };\n","function identity(x) {\n return x;\n}\n\nexport { identity };\n","function memoize(fn, options = {}) {\n const { cache = new Map(), getCacheKey } = options;\n const memoizedFn = function (arg) {\n const key = getCacheKey ? getCacheKey(arg) : arg;\n if (cache.has(key)) {\n return cache.get(key);\n }\n const result = fn.call(this, arg);\n cache.set(key, result);\n return result;\n };\n memoizedFn.cache = cache;\n return memoizedFn;\n}\n\nexport { memoize };\n","function negate(func) {\n return ((...args) => !func(...args));\n}\n\nexport { negate };\n","function noop() { }\n\nexport { noop };\n","function once(func) {\n let called = false;\n let cache;\n return function (...args) {\n if (!called) {\n called = true;\n cache = func(...args);\n }\n return cache;\n };\n}\n\nexport { once };\n","function partial(func, ...partialArgs) {\n return partialImpl(func, placeholderSymbol, ...partialArgs);\n}\nfunction partialImpl(func, placeholder, ...partialArgs) {\n const partialed = function (...providedArgs) {\n let providedArgsIndex = 0;\n const substitutedArgs = partialArgs\n .slice()\n .map(arg => (arg === placeholder ? providedArgs[providedArgsIndex++] : arg));\n const remainingArgs = providedArgs.slice(providedArgsIndex);\n return func.apply(this, substitutedArgs.concat(remainingArgs));\n };\n if (func.prototype) {\n partialed.prototype = Object.create(func.prototype);\n }\n return partialed;\n}\nconst placeholderSymbol = Symbol('partial.placeholder');\npartial.placeholder = placeholderSymbol;\n\nexport { partial, partialImpl };\n","function partialRight(func, ...partialArgs) {\n return partialRightImpl(func, placeholderSymbol, ...partialArgs);\n}\nfunction partialRightImpl(func, placeholder, ...partialArgs) {\n const partialedRight = function (...providedArgs) {\n const placeholderLength = partialArgs.filter(arg => arg === placeholder).length;\n const rangeLength = Math.max(providedArgs.length - placeholderLength, 0);\n const remainingArgs = providedArgs.slice(0, rangeLength);\n let providedArgsIndex = rangeLength;\n const substitutedArgs = partialArgs\n .slice()\n .map(arg => (arg === placeholder ? providedArgs[providedArgsIndex++] : arg));\n return func.apply(this, remainingArgs.concat(substitutedArgs));\n };\n if (func.prototype) {\n partialedRight.prototype = Object.create(func.prototype);\n }\n return partialedRight;\n}\nconst placeholderSymbol = Symbol('partialRight.placeholder');\npartialRight.placeholder = placeholderSymbol;\n\nexport { partialRight, partialRightImpl };\n","function rest(func, startIndex = func.length - 1) {\n return function (...args) {\n const rest = args.slice(startIndex);\n const params = args.slice(0, startIndex);\n while (params.length < startIndex) {\n params.push(undefined);\n }\n return func.apply(this, [...params, rest]);\n };\n}\n\nexport { rest };\n","import { AbortError } from '../error/AbortError.mjs';\n\nfunction delay(ms, { signal } = {}) {\n return new Promise((resolve, reject) => {\n const abortError = () => {\n reject(new AbortError());\n };\n const abortHandler = () => {\n clearTimeout(timeoutId);\n abortError();\n };\n if (signal?.aborted) {\n return abortError();\n }\n const timeoutId = setTimeout(() => {\n signal?.removeEventListener('abort', abortHandler);\n resolve();\n }, ms);\n signal?.addEventListener('abort', abortHandler, { once: true });\n });\n}\n\nexport { delay };\n","import { delay } from '../promise/delay.mjs';\n\nconst DEFAULT_DELAY = 0;\nconst DEFAULT_RETRIES = Number.POSITIVE_INFINITY;\nasync function retry(func, _options) {\n let delay$1;\n let retries;\n let signal;\n if (typeof _options === 'number') {\n delay$1 = DEFAULT_DELAY;\n retries = _options;\n signal = undefined;\n }\n else {\n delay$1 = _options?.delay ?? DEFAULT_DELAY;\n retries = _options?.retries ?? DEFAULT_RETRIES;\n signal = _options?.signal;\n }\n let error;\n for (let attempts = 0; attempts < retries; attempts++) {\n if (signal?.aborted) {\n throw error ?? new Error(`The retry operation was aborted due to an abort signal.`);\n }\n try {\n return await func();\n }\n catch (err) {\n error = err;\n const currentDelay = typeof delay$1 === 'function' ? delay$1(attempts) : delay$1;\n await delay(currentDelay);\n }\n }\n throw error;\n}\n\nexport { retry };\n","function spread(func) {\n return function (argsArr) {\n return func.apply(this, argsArr);\n };\n}\n\nexport { spread };\n","import { debounce } from './debounce.mjs';\n\nfunction throttle(func, throttleMs, { signal, edges = ['leading', 'trailing'] } = {}) {\n let pendingAt = null;\n const debounced = debounce(func, throttleMs, { signal, edges });\n const throttled = function (...args) {\n if (pendingAt == null) {\n pendingAt = Date.now();\n }\n else {\n if (Date.now() - pendingAt >= throttleMs) {\n pendingAt = Date.now();\n debounced.cancel();\n }\n }\n debounced.apply(this, args);\n };\n throttled.cancel = debounced.cancel;\n throttled.flush = debounced.flush;\n return throttled;\n}\n\nexport { throttle };\n","import { ary } from './ary.mjs';\n\nfunction unary(func) {\n return ary(func, 1);\n}\n\nexport { unary };\n","function clamp(value, bound1, bound2) {\n if (bound2 == null) {\n return Math.min(value, bound1);\n }\n return Math.min(Math.max(value, bound1), bound2);\n}\n\nexport { clamp };\n","function inRange(value, minimum, maximum) {\n if (maximum == null) {\n maximum = minimum;\n minimum = 0;\n }\n if (minimum >= maximum) {\n throw new Error('The maximum value must be greater than the minimum value.');\n }\n return minimum <= value && value < maximum;\n}\n\nexport { inRange };\n","function sum(nums) {\n let result = 0;\n for (let i = 0; i < nums.length; i++) {\n result += nums[i];\n }\n return result;\n}\n\nexport { sum };\n","import { sum } from './sum.mjs';\n\nfunction mean(nums) {\n return sum(nums) / nums.length;\n}\n\nexport { mean };\n","function sumBy(items, getValue) {\n let result = 0;\n for (let i = 0; i < items.length; i++) {\n result += getValue(items[i], i);\n }\n return result;\n}\n\nexport { sumBy };\n","import { sumBy } from './sumBy.mjs';\n\nfunction meanBy(items, getValue) {\n return sumBy(items, item => getValue(item)) / items.length;\n}\n\nexport { meanBy };\n","function median(nums) {\n if (nums.length === 0) {\n return NaN;\n }\n const sorted = nums.slice().sort((a, b) => a - b);\n const middleIndex = Math.floor(sorted.length / 2);\n if (sorted.length % 2 === 0) {\n return (sorted[middleIndex - 1] + sorted[middleIndex]) / 2;\n }\n else {\n return sorted[middleIndex];\n }\n}\n\nexport { median };\n","import { median } from './median.mjs';\n\nfunction medianBy(items, getValue) {\n const nums = items.map(x => getValue(x));\n return median(nums);\n}\n\nexport { medianBy };\n","function range(start, end, step = 1) {\n if (end == null) {\n end = start;\n start = 0;\n }\n if (!Number.isInteger(step) || step === 0) {\n throw new Error(`The step value must be a non-zero integer.`);\n }\n const length = Math.max(Math.ceil((end - start) / step), 0);\n const result = new Array(length);\n for (let i = 0; i < length; i++) {\n result[i] = start + i * step;\n }\n return result;\n}\n\nexport { range };\n","function rangeRight(start, end, step = 1) {\n if (end == null) {\n end = start;\n start = 0;\n }\n if (!Number.isInteger(step) || step === 0) {\n throw new Error(`The step value must be a non-zero integer.`);\n }\n const length = Math.max(Math.ceil((end - start) / step), 0);\n const result = new Array(length);\n for (let i = 0; i < length; i++) {\n result[i] = start + (length - i - 1) * step;\n }\n return result;\n}\n\nexport { rangeRight };\n","function round(value, precision = 0) {\n if (!Number.isInteger(precision)) {\n throw new Error('Precision must be an integer.');\n }\n const multiplier = Math.pow(10, precision);\n return Math.round(value * multiplier) / multiplier;\n}\n\nexport { round };\n","function isPrimitive(value) {\n return value == null || (typeof value !== 'object' && typeof value !== 'function');\n}\n\nexport { isPrimitive };\n","function isTypedArray(x) {\n return ArrayBuffer.isView(x) && !(x instanceof DataView);\n}\n\nexport { isTypedArray };\n","import { isPrimitive } from '../predicate/isPrimitive.mjs';\nimport { isTypedArray } from '../predicate/isTypedArray.mjs';\n\nfunction clone(obj) {\n if (isPrimitive(obj)) {\n return obj;\n }\n if (Array.isArray(obj) ||\n isTypedArray(obj) ||\n obj instanceof ArrayBuffer ||\n (typeof SharedArrayBuffer !== 'undefined' && obj instanceof SharedArrayBuffer)) {\n return obj.slice(0);\n }\n const prototype = Object.getPrototypeOf(obj);\n const Constructor = prototype.constructor;\n if (obj instanceof Date || obj instanceof Map || obj instanceof Set) {\n return new Constructor(obj);\n }\n if (obj instanceof RegExp) {\n const newRegExp = new Constructor(obj);\n newRegExp.lastIndex = obj.lastIndex;\n return newRegExp;\n }\n if (obj instanceof DataView) {\n return new Constructor(obj.buffer.slice(0));\n }\n if (obj instanceof Error) {\n const newError = new Constructor(obj.message);\n newError.stack = obj.stack;\n newError.name = obj.name;\n newError.cause = obj.cause;\n return newError;\n }\n if (typeof File !== 'undefined' && obj instanceof File) {\n const newFile = new Constructor([obj], obj.name, { type: obj.type, lastModified: obj.lastModified });\n return newFile;\n }\n if (typeof obj === 'object') {\n const newObject = Object.create(prototype);\n return Object.assign(newObject, obj);\n }\n return obj;\n}\n\nexport { clone };\n","function getSymbols(object) {\n return Object.getOwnPropertySymbols(object).filter(symbol => Object.prototype.propertyIsEnumerable.call(object, symbol));\n}\n\nexport { getSymbols };\n","function getTag(value) {\n if (value == null) {\n return value === undefined ? '[object Undefined]' : '[object Null]';\n }\n return Object.prototype.toString.call(value);\n}\n\nexport { getTag };\n","const regexpTag = '[object RegExp]';\nconst stringTag = '[object String]';\nconst numberTag = '[object Number]';\nconst booleanTag = '[object Boolean]';\nconst argumentsTag = '[object Arguments]';\nconst symbolTag = '[object Symbol]';\nconst dateTag = '[object Date]';\nconst mapTag = '[object Map]';\nconst setTag = '[object Set]';\nconst arrayTag = '[object Array]';\nconst functionTag = '[object Function]';\nconst arrayBufferTag = '[object ArrayBuffer]';\nconst objectTag = '[object Object]';\nconst errorTag = '[object Error]';\nconst dataViewTag = '[object DataView]';\nconst uint8ArrayTag = '[object Uint8Array]';\nconst uint8ClampedArrayTag = '[object Uint8ClampedArray]';\nconst uint16ArrayTag = '[object Uint16Array]';\nconst uint32ArrayTag = '[object Uint32Array]';\nconst bigUint64ArrayTag = '[object BigUint64Array]';\nconst int8ArrayTag = '[object Int8Array]';\nconst int16ArrayTag = '[object Int16Array]';\nconst int32ArrayTag = '[object Int32Array]';\nconst bigInt64ArrayTag = '[object BigInt64Array]';\nconst float32ArrayTag = '[object Float32Array]';\nconst float64ArrayTag = '[object Float64Array]';\n\nexport { argumentsTag, arrayBufferTag, arrayTag, bigInt64ArrayTag, bigUint64ArrayTag, booleanTag, dataViewTag, dateTag, errorTag, float32ArrayTag, float64ArrayTag, functionTag, int16ArrayTag, int32ArrayTag, int8ArrayTag, mapTag, numberTag, objectTag, regexpTag, setTag, stringTag, symbolTag, uint16ArrayTag, uint32ArrayTag, uint8ArrayTag, uint8ClampedArrayTag };\n","import { getSymbols } from '../compat/_internal/getSymbols.mjs';\nimport { getTag } from '../compat/_internal/getTag.mjs';\nimport { uint32ArrayTag, uint16ArrayTag, uint8ClampedArrayTag, uint8ArrayTag, symbolTag, stringTag, setTag, regexpTag, objectTag, numberTag, mapTag, int32ArrayTag, int16ArrayTag, int8ArrayTag, float64ArrayTag, float32ArrayTag, dateTag, booleanTag, dataViewTag, arrayBufferTag, arrayTag, argumentsTag } from '../compat/_internal/tags.mjs';\nimport { isPrimitive } from '../predicate/isPrimitive.mjs';\nimport { isTypedArray } from '../predicate/isTypedArray.mjs';\n\nfunction cloneDeepWith(obj, cloneValue) {\n return cloneDeepWithImpl(obj, undefined, obj, new Map(), cloneValue);\n}\nfunction cloneDeepWithImpl(valueToClone, keyToClone, objectToClone, stack = new Map(), cloneValue = undefined) {\n const cloned = cloneValue?.(valueToClone, keyToClone, objectToClone, stack);\n if (cloned !== undefined) {\n return cloned;\n }\n if (isPrimitive(valueToClone)) {\n return valueToClone;\n }\n if (stack.has(valueToClone)) {\n return stack.get(valueToClone);\n }\n if (Array.isArray(valueToClone)) {\n const result = new Array(valueToClone.length);\n stack.set(valueToClone, result);\n for (let i = 0; i < valueToClone.length; i++) {\n result[i] = cloneDeepWithImpl(valueToClone[i], i, objectToClone, stack, cloneValue);\n }\n if (Object.hasOwn(valueToClone, 'index')) {\n result.index = valueToClone.index;\n }\n if (Object.hasOwn(valueToClone, 'input')) {\n result.input = valueToClone.input;\n }\n return result;\n }\n if (valueToClone instanceof Date) {\n return new Date(valueToClone.getTime());\n }\n if (valueToClone instanceof RegExp) {\n const result = new RegExp(valueToClone.source, valueToClone.flags);\n result.lastIndex = valueToClone.lastIndex;\n return result;\n }\n if (valueToClone instanceof Map) {\n const result = new Map();\n stack.set(valueToClone, result);\n for (const [key, value] of valueToClone) {\n result.set(key, cloneDeepWithImpl(value, key, objectToClone, stack, cloneValue));\n }\n return result;\n }\n if (valueToClone instanceof Set) {\n const result = new Set();\n stack.set(valueToClone, result);\n for (const value of valueToClone) {\n result.add(cloneDeepWithImpl(value, undefined, objectToClone, stack, cloneValue));\n }\n return result;\n }\n if (typeof Buffer !== 'undefined' && Buffer.isBuffer(valueToClone)) {\n return valueToClone.subarray();\n }\n if (isTypedArray(valueToClone)) {\n const result = new (Object.getPrototypeOf(valueToClone).constructor)(valueToClone.length);\n stack.set(valueToClone, result);\n for (let i = 0; i < valueToClone.length; i++) {\n result[i] = cloneDeepWithImpl(valueToClone[i], i, objectToClone, stack, cloneValue);\n }\n return result;\n }\n if (valueToClone instanceof ArrayBuffer ||\n (typeof SharedArrayBuffer !== 'undefined' && valueToClone instanceof SharedArrayBuffer)) {\n return valueToClone.slice(0);\n }\n if (valueToClone instanceof DataView) {\n const result = new DataView(valueToClone.buffer.slice(0), valueToClone.byteOffset, valueToClone.byteLength);\n stack.set(valueToClone, result);\n copyProperties(result, valueToClone, objectToClone, stack, cloneValue);\n return result;\n }\n if (typeof File !== 'undefined' && valueToClone instanceof File) {\n const result = new File([valueToClone], valueToClone.name, {\n type: valueToClone.type,\n });\n stack.set(valueToClone, result);\n copyProperties(result, valueToClone, objectToClone, stack, cloneValue);\n return result;\n }\n if (typeof Blob !== 'undefined' && valueToClone instanceof Blob) {\n const result = new Blob([valueToClone], { type: valueToClone.type });\n stack.set(valueToClone, result);\n copyProperties(result, valueToClone, objectToClone, stack, cloneValue);\n return result;\n }\n if (valueToClone instanceof Error) {\n const result = new valueToClone.constructor();\n stack.set(valueToClone, result);\n result.message = valueToClone.message;\n result.name = valueToClone.name;\n result.stack = valueToClone.stack;\n result.cause = valueToClone.cause;\n copyProperties(result, valueToClone, objectToClone, stack, cloneValue);\n return result;\n }\n if (valueToClone instanceof Boolean) {\n const result = new Boolean(valueToClone.valueOf());\n stack.set(valueToClone, result);\n copyProperties(result, valueToClone, objectToClone, stack, cloneValue);\n return result;\n }\n if (valueToClone instanceof Number) {\n const result = new Number(valueToClone.valueOf());\n stack.set(valueToClone, result);\n copyProperties(result, valueToClone, objectToClone, stack, cloneValue);\n return result;\n }\n if (valueToClone instanceof String) {\n const result = new String(valueToClone.valueOf());\n stack.set(valueToClone, result);\n copyProperties(result, valueToClone, objectToClone, stack, cloneValue);\n return result;\n }\n if (typeof valueToClone === 'object' && isCloneableObject(valueToClone)) {\n const result = Object.create(Object.getPrototypeOf(valueToClone));\n stack.set(valueToClone, result);\n copyProperties(result, valueToClone, objectToClone, stack, cloneValue);\n return result;\n }\n return valueToClone;\n}\nfunction copyProperties(target, source, objectToClone = target, stack, cloneValue) {\n const keys = [...Object.keys(source), ...getSymbols(source)];\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n const descriptor = Object.getOwnPropertyDescriptor(target, key);\n if (descriptor == null || descriptor.writable) {\n target[key] = cloneDeepWithImpl(source[key], key, objectToClone, stack, cloneValue);\n }\n }\n}\nfunction isCloneableObject(object) {\n switch (getTag(object)) {\n case argumentsTag:\n case arrayTag:\n case arrayBufferTag:\n case dataViewTag:\n case booleanTag:\n case dateTag:\n case float32ArrayTag:\n case float64ArrayTag:\n case int8ArrayTag:\n case int16ArrayTag:\n case int32ArrayTag:\n case mapTag:\n case numberTag:\n case objectTag:\n case regexpTag:\n case setTag:\n case stringTag:\n case symbolTag:\n case uint8ArrayTag:\n case uint8ClampedArrayTag:\n case uint16ArrayTag:\n case uint32ArrayTag: {\n return true;\n }\n default: {\n return false;\n }\n }\n}\n\nexport { cloneDeepWith, cloneDeepWithImpl, copyProperties };\n","import { cloneDeepWithImpl } from './cloneDeepWith.mjs';\n\nfunction cloneDeep(obj) {\n return cloneDeepWithImpl(obj, undefined, obj, new Map(), undefined);\n}\n\nexport { cloneDeep };\n","function findKey(obj, predicate) {\n const keys = Object.keys(obj);\n return keys.find(key => predicate(obj[key], key, obj));\n}\n\nexport { findKey };\n","function isPlainObject(value) {\n if (!value || typeof value !== 'object') {\n return false;\n }\n const proto = Object.getPrototypeOf(value);\n const hasObjectPrototype = proto === null ||\n proto === Object.prototype ||\n Object.getPrototypeOf(proto) === null;\n if (!hasObjectPrototype) {\n return false;\n }\n return Object.prototype.toString.call(value) === '[object Object]';\n}\n\nexport { isPlainObject };\n","import { isPlainObject } from '../predicate/isPlainObject.mjs';\n\nfunction flattenObject(object, { delimiter = '.' } = {}) {\n return flattenObjectImpl(object, '', delimiter);\n}\nfunction flattenObjectImpl(object, prefix, delimiter) {\n const result = {};\n const keys = Object.keys(object);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n const value = object[key];\n const prefixedKey = prefix ? `${prefix}${delimiter}${key}` : key;\n if (isPlainObject(value) && Object.keys(value).length > 0) {\n Object.assign(result, flattenObjectImpl(value, prefixedKey, delimiter));\n continue;\n }\n if (Array.isArray(value)) {\n Object.assign(result, flattenObjectImpl(value, prefixedKey, delimiter));\n continue;\n }\n result[prefixedKey] = value;\n }\n return result;\n}\n\nexport { flattenObject };\n","function invert(obj) {\n const result = {};\n const keys = Object.keys(obj);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n const value = obj[key];\n result[value] = key;\n }\n return result;\n}\n\nexport { invert };\n","function mapKeys(object, getNewKey) {\n const result = {};\n const keys = Object.keys(object);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n const value = object[key];\n result[getNewKey(value, key, object)] = value;\n }\n return result;\n}\n\nexport { mapKeys };\n","function mapValues(object, getNewValue) {\n const result = {};\n const keys = Object.keys(object);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n const value = object[key];\n result[key] = getNewValue(value, key, object);\n }\n return result;\n}\n\nexport { mapValues };\n","function isUnsafeProperty(key) {\n return key === '__proto__';\n}\n\nexport { isUnsafeProperty };\n","import { isUnsafeProperty } from '../_internal/isUnsafeProperty.mjs';\nimport { isPlainObject } from '../predicate/isPlainObject.mjs';\n\nfunction merge(target, source) {\n const sourceKeys = Object.keys(source);\n for (let i = 0; i < sourceKeys.length; i++) {\n const key = sourceKeys[i];\n if (isUnsafeProperty(key)) {\n continue;\n }\n const sourceValue = source[key];\n const targetValue = target[key];\n if (Array.isArray(sourceValue)) {\n if (Array.isArray(targetValue)) {\n target[key] = merge(targetValue, sourceValue);\n }\n else {\n target[key] = merge([], sourceValue);\n }\n }\n else if (isPlainObject(sourceValue)) {\n if (isPlainObject(targetValue)) {\n target[key] = merge(targetValue, sourceValue);\n }\n else {\n target[key] = merge({}, sourceValue);\n }\n }\n else if (targetValue === undefined || sourceValue !== undefined) {\n target[key] = sourceValue;\n }\n }\n return target;\n}\n\nexport { merge };\n","import { isUnsafeProperty } from '../_internal/isUnsafeProperty.mjs';\nimport { isPlainObject } from '../predicate/isPlainObject.mjs';\n\nfunction mergeWith(target, source, merge) {\n const sourceKeys = Object.keys(source);\n for (let i = 0; i < sourceKeys.length; i++) {\n const key = sourceKeys[i];\n if (isUnsafeProperty(key)) {\n continue;\n }\n const sourceValue = source[key];\n const targetValue = target[key];\n const merged = merge(targetValue, sourceValue, key, target, source);\n if (merged !== undefined) {\n target[key] = merged;\n }\n else if (Array.isArray(sourceValue)) {\n if (Array.isArray(targetValue)) {\n target[key] = mergeWith(targetValue, sourceValue, merge);\n }\n else {\n target[key] = mergeWith([], sourceValue, merge);\n }\n }\n else if (isPlainObject(sourceValue)) {\n if (isPlainObject(targetValue)) {\n target[key] = mergeWith(targetValue, sourceValue, merge);\n }\n else {\n target[key] = mergeWith({}, sourceValue, merge);\n }\n }\n else if (targetValue === undefined || sourceValue !== undefined) {\n target[key] = sourceValue;\n }\n }\n return target;\n}\n\nexport { mergeWith };\n","function omit(obj, keys) {\n const result = { ...obj };\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n delete result[key];\n }\n return result;\n}\n\nexport { omit };\n","function omitBy(obj, shouldOmit) {\n const result = {};\n const keys = Object.keys(obj);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n const value = obj[key];\n if (!shouldOmit(value, key)) {\n result[key] = value;\n }\n }\n return result;\n}\n\nexport { omitBy };\n","function pick(obj, keys) {\n const result = {};\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n if (Object.hasOwn(obj, key)) {\n result[key] = obj[key];\n }\n }\n return result;\n}\n\nexport { pick };\n","function pickBy(obj, shouldPick) {\n const result = {};\n const keys = Object.keys(obj);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n const value = obj[key];\n if (shouldPick(value, key)) {\n result[key] = value;\n }\n }\n return result;\n}\n\nexport { pickBy };\n","function isArray(value) {\n return Array.isArray(value);\n}\n\nexport { isArray };\n","function capitalize(str) {\n return (str.charAt(0).toUpperCase() + str.slice(1).toLowerCase());\n}\n\nexport { capitalize };\n","const CASE_SPLIT_PATTERN = /\\p{Lu}?\\p{Ll}+|[0-9]+|\\p{Lu}+(?!\\p{Ll})|\\p{Emoji_Presentation}|\\p{Extended_Pictographic}|\\p{L}+/gu;\nfunction words(str) {\n return Array.from(str.match(CASE_SPLIT_PATTERN) ?? []);\n}\n\nexport { CASE_SPLIT_PATTERN, words };\n","import { capitalize } from './capitalize.mjs';\nimport { words } from './words.mjs';\n\nfunction camelCase(str) {\n const words$1 = words(str);\n if (words$1.length === 0) {\n return '';\n }\n const [first, ...rest] = words$1;\n return `${first.toLowerCase()}${rest.map(word => capitalize(word)).join('')}`;\n}\n\nexport { camelCase };\n","import { isArray } from '../compat/predicate/isArray.mjs';\nimport { isPlainObject } from '../predicate/isPlainObject.mjs';\nimport { camelCase } from '../string/camelCase.mjs';\n\nfunction toCamelCaseKeys(obj) {\n if (isArray(obj)) {\n return obj.map(item => toCamelCaseKeys(item));\n }\n if (isPlainObject(obj)) {\n const result = {};\n const keys = Object.keys(obj);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n const camelKey = camelCase(key);\n const convertedValue = toCamelCaseKeys(obj[key]);\n result[camelKey] = convertedValue;\n }\n return result;\n }\n return obj;\n}\n\nexport { toCamelCaseKeys };\n","import { clone } from './clone.mjs';\nimport { mergeWith } from './mergeWith.mjs';\nimport { isPlainObject } from '../predicate/isPlainObject.mjs';\n\nfunction toMerged(target, source) {\n return mergeWith(clone(target), source, function mergeRecursively(targetValue, sourceValue) {\n if (Array.isArray(sourceValue)) {\n if (Array.isArray(targetValue)) {\n return mergeWith(clone(targetValue), sourceValue, mergeRecursively);\n }\n else {\n return mergeWith([], sourceValue, mergeRecursively);\n }\n }\n else if (isPlainObject(sourceValue)) {\n if (isPlainObject(targetValue)) {\n return mergeWith(clone(targetValue), sourceValue, mergeRecursively);\n }\n else {\n return mergeWith({}, sourceValue, mergeRecursively);\n }\n }\n });\n}\n\nexport { toMerged };\n","function isPlainObject(object) {\n if (typeof object !== 'object') {\n return false;\n }\n if (object == null) {\n return false;\n }\n if (Object.getPrototypeOf(object) === null) {\n return true;\n }\n if (Object.prototype.toString.call(object) !== '[object Object]') {\n const tag = object[Symbol.toStringTag];\n if (tag == null) {\n return false;\n }\n const isTagReadonly = !Object.getOwnPropertyDescriptor(object, Symbol.toStringTag)?.writable;\n if (isTagReadonly) {\n return false;\n }\n return object.toString() === `[object ${tag}]`;\n }\n let proto = object;\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n return Object.getPrototypeOf(object) === proto;\n}\n\nexport { isPlainObject };\n","import { words } from './words.mjs';\n\nfunction snakeCase(str) {\n const words$1 = words(str);\n return words$1.map(word => word.toLowerCase()).join('_');\n}\n\nexport { snakeCase };\n","import { isArray } from '../compat/predicate/isArray.mjs';\nimport { isPlainObject } from '../compat/predicate/isPlainObject.mjs';\nimport { snakeCase } from '../string/snakeCase.mjs';\n\nfunction toSnakeCaseKeys(obj) {\n if (isArray(obj)) {\n return obj.map(item => toSnakeCaseKeys(item));\n }\n if (isPlainObject(obj)) {\n const result = {};\n const keys = Object.keys(obj);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n const snakeKey = snakeCase(key);\n const convertedValue = toSnakeCaseKeys(obj[key]);\n result[snakeKey] = convertedValue;\n }\n return result;\n }\n return obj;\n}\n\nexport { toSnakeCaseKeys };\n","function isArrayBuffer(value) {\n return value instanceof ArrayBuffer;\n}\n\nexport { isArrayBuffer };\n","function isBlob(x) {\n if (typeof Blob === 'undefined') {\n return false;\n }\n return x instanceof Blob;\n}\n\nexport { isBlob };\n","function isBoolean(x) {\n return typeof x === 'boolean';\n}\n\nexport { isBoolean };\n","function isBrowser() {\n return typeof window !== 'undefined' && window?.document != null;\n}\n\nexport { isBrowser };\n","function isBuffer(x) {\n return typeof Buffer !== 'undefined' && Buffer.isBuffer(x);\n}\n\nexport { isBuffer };\n","function isDate(value) {\n return value instanceof Date;\n}\n\nexport { isDate };\n","function eq(value, other) {\n return value === other || (Number.isNaN(value) && Number.isNaN(other));\n}\n\nexport { eq };\n","import { isPlainObject } from './isPlainObject.mjs';\nimport { getSymbols } from '../compat/_internal/getSymbols.mjs';\nimport { getTag } from '../compat/_internal/getTag.mjs';\nimport { functionTag, regexpTag, symbolTag, dateTag, booleanTag, numberTag, stringTag, objectTag, errorTag, dataViewTag, arrayBufferTag, float64ArrayTag, float32ArrayTag, bigInt64ArrayTag, int32ArrayTag, int16ArrayTag, int8ArrayTag, bigUint64ArrayTag, uint32ArrayTag, uint16ArrayTag, uint8ClampedArrayTag, uint8ArrayTag, arrayTag, setTag, mapTag, argumentsTag } from '../compat/_internal/tags.mjs';\nimport { eq } from '../compat/util/eq.mjs';\n\nfunction isEqualWith(a, b, areValuesEqual) {\n return isEqualWithImpl(a, b, undefined, undefined, undefined, undefined, areValuesEqual);\n}\nfunction isEqualWithImpl(a, b, property, aParent, bParent, stack, areValuesEqual) {\n const result = areValuesEqual(a, b, property, aParent, bParent, stack);\n if (result !== undefined) {\n return result;\n }\n if (typeof a === typeof b) {\n switch (typeof a) {\n case 'bigint':\n case 'string':\n case 'boolean':\n case 'symbol':\n case 'undefined': {\n return a === b;\n }\n case 'number': {\n return a === b || Object.is(a, b);\n }\n case 'function': {\n return a === b;\n }\n case 'object': {\n return areObjectsEqual(a, b, stack, areValuesEqual);\n }\n }\n }\n return areObjectsEqual(a, b, stack, areValuesEqual);\n}\nfunction areObjectsEqual(a, b, stack, areValuesEqual) {\n if (Object.is(a, b)) {\n return true;\n }\n let aTag = getTag(a);\n let bTag = getTag(b);\n if (aTag === argumentsTag) {\n aTag = objectTag;\n }\n if (bTag === argumentsTag) {\n bTag = objectTag;\n }\n if (aTag !== bTag) {\n return false;\n }\n switch (aTag) {\n case stringTag:\n return a.toString() === b.toString();\n case numberTag: {\n const x = a.valueOf();\n const y = b.valueOf();\n return eq(x, y);\n }\n case booleanTag:\n case dateTag:\n case symbolTag:\n return Object.is(a.valueOf(), b.valueOf());\n case regexpTag: {\n return a.source === b.source && a.flags === b.flags;\n }\n case functionTag: {\n return a === b;\n }\n }\n stack = stack ?? new Map();\n const aStack = stack.get(a);\n const bStack = stack.get(b);\n if (aStack != null && bStack != null) {\n return aStack === b;\n }\n stack.set(a, b);\n stack.set(b, a);\n try {\n switch (aTag) {\n case mapTag: {\n if (a.size !== b.size) {\n return false;\n }\n for (const [key, value] of a.entries()) {\n if (!b.has(key) || !isEqualWithImpl(value, b.get(key), key, a, b, stack, areValuesEqual)) {\n return false;\n }\n }\n return true;\n }\n case setTag: {\n if (a.size !== b.size) {\n return false;\n }\n const aValues = Array.from(a.values());\n const bValues = Array.from(b.values());\n for (let i = 0; i < aValues.length; i++) {\n const aValue = aValues[i];\n const index = bValues.findIndex(bValue => {\n return isEqualWithImpl(aValue, bValue, undefined, a, b, stack, areValuesEqual);\n });\n if (index === -1) {\n return false;\n }\n bValues.splice(index, 1);\n }\n return true;\n }\n case arrayTag:\n case uint8ArrayTag:\n case uint8ClampedArrayTag:\n case uint16ArrayTag:\n case uint32ArrayTag:\n case bigUint64ArrayTag:\n case int8ArrayTag:\n case int16ArrayTag:\n case int32ArrayTag:\n case bigInt64ArrayTag:\n case float32ArrayTag:\n case float64ArrayTag: {\n if (typeof Buffer !== 'undefined' && Buffer.isBuffer(a) !== Buffer.isBuffer(b)) {\n return false;\n }\n if (a.length !== b.length) {\n return false;\n }\n for (let i = 0; i < a.length; i++) {\n if (!isEqualWithImpl(a[i], b[i], i, a, b, stack, areValuesEqual)) {\n return false;\n }\n }\n return true;\n }\n case arrayBufferTag: {\n if (a.byteLength !== b.byteLength) {\n return false;\n }\n return areObjectsEqual(new Uint8Array(a), new Uint8Array(b), stack, areValuesEqual);\n }\n case dataViewTag: {\n if (a.byteLength !== b.byteLength || a.byteOffset !== b.byteOffset) {\n return false;\n }\n return areObjectsEqual(new Uint8Array(a), new Uint8Array(b), stack, areValuesEqual);\n }\n case errorTag: {\n return a.name === b.name && a.message === b.message;\n }\n case objectTag: {\n const areEqualInstances = areObjectsEqual(a.constructor, b.constructor, stack, areValuesEqual) ||\n (isPlainObject(a) && isPlainObject(b));\n if (!areEqualInstances) {\n return false;\n }\n const aKeys = [...Object.keys(a), ...getSymbols(a)];\n const bKeys = [...Object.keys(b), ...getSymbols(b)];\n if (aKeys.length !== bKeys.length) {\n return false;\n }\n for (let i = 0; i < aKeys.length; i++) {\n const propKey = aKeys[i];\n const aProp = a[propKey];\n if (!Object.hasOwn(b, propKey)) {\n return false;\n }\n const bProp = b[propKey];\n if (!isEqualWithImpl(aProp, bProp, propKey, a, b, stack, areValuesEqual)) {\n return false;\n }\n }\n return true;\n }\n default: {\n return false;\n }\n }\n }\n finally {\n stack.delete(a);\n stack.delete(b);\n }\n}\n\nexport { isEqualWith };\n","import { isEqualWith } from './isEqualWith.mjs';\nimport { noop } from '../function/noop.mjs';\n\nfunction isEqual(a, b) {\n return isEqualWith(a, b, noop);\n}\n\nexport { isEqual };\n","function isError(value) {\n return value instanceof Error;\n}\n\nexport { isError };\n","import { isBlob } from './isBlob.mjs';\n\nfunction isFile(x) {\n if (typeof File === 'undefined') {\n return false;\n }\n return isBlob(x) && x instanceof File;\n}\n\nexport { isFile };\n","function isFunction(value) {\n return typeof value === 'function';\n}\n\nexport { isFunction };\n","function isJSON(value) {\n if (typeof value !== 'string') {\n return false;\n }\n try {\n JSON.parse(value);\n return true;\n }\n catch {\n return false;\n }\n}\n\nexport { isJSON };\n","import { isPlainObject } from './isPlainObject.mjs';\n\nfunction isJSONValue(value) {\n switch (typeof value) {\n case 'object': {\n return value === null || isJSONArray(value) || isJSONObject(value);\n }\n case 'string':\n case 'number':\n case 'boolean': {\n return true;\n }\n default: {\n return false;\n }\n }\n}\nfunction isJSONArray(value) {\n if (!Array.isArray(value)) {\n return false;\n }\n return value.every(item => isJSONValue(item));\n}\nfunction isJSONObject(obj) {\n if (!isPlainObject(obj)) {\n return false;\n }\n const keys = Reflect.ownKeys(obj);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n const value = obj[key];\n if (typeof key !== 'string') {\n return false;\n }\n if (!isJSONValue(value)) {\n return false;\n }\n }\n return true;\n}\n\nexport { isJSONArray, isJSONObject, isJSONValue };\n","function isLength(value) {\n return Number.isSafeInteger(value) && value >= 0;\n}\n\nexport { isLength };\n","function isMap(value) {\n return value instanceof Map;\n}\n\nexport { isMap };\n","function isNil(x) {\n return x == null;\n}\n\nexport { isNil };\n","function isNode() {\n return typeof process !== 'undefined' && process?.versions?.node != null;\n}\n\nexport { isNode };\n","function isNotNil(x) {\n return x != null;\n}\n\nexport { isNotNil };\n","function isNull(x) {\n return x === null;\n}\n\nexport { isNull };\n","function isPromise(value) {\n return value instanceof Promise;\n}\n\nexport { isPromise };\n","function isRegExp(value) {\n return value instanceof RegExp;\n}\n\nexport { isRegExp };\n","function isSet(value) {\n return value instanceof Set;\n}\n\nexport { isSet };\n","function isString(value) {\n return typeof value === 'string';\n}\n\nexport { isString };\n","function isSymbol(value) {\n return typeof value === 'symbol';\n}\n\nexport { isSymbol };\n","function isUndefined(x) {\n return x === undefined;\n}\n\nexport { isUndefined };\n","function isWeakMap(value) {\n return value instanceof WeakMap;\n}\n\nexport { isWeakMap };\n","function isWeakSet(value) {\n return value instanceof WeakSet;\n}\n\nexport { isWeakSet };\n","import { Semaphore } from './semaphore.mjs';\n\nclass Mutex {\n semaphore = new Semaphore(1);\n get isLocked() {\n return this.semaphore.available === 0;\n }\n async acquire() {\n return this.semaphore.acquire();\n }\n release() {\n this.semaphore.release();\n }\n}\n\nexport { Mutex };\n","import { delay } from './delay.mjs';\nimport { TimeoutError } from '../error/TimeoutError.mjs';\n\nasync function timeout(ms) {\n await delay(ms);\n throw new TimeoutError();\n}\n\nexport { timeout };\n","import { timeout } from './timeout.mjs';\n\nasync function withTimeout(run, ms) {\n return Promise.race([run(), timeout(ms)]);\n}\n\nexport { withTimeout };\n","import { words } from './words.mjs';\n\nfunction constantCase(str) {\n const words$1 = words(str);\n return words$1.map(word => word.toUpperCase()).join('_');\n}\n\nexport { constantCase };\n","const deburrMap = new Map(Object.entries({\n Æ: 'Ae',\n Ð: 'D',\n Ø: 'O',\n Þ: 'Th',\n ß: 'ss',\n æ: 'ae',\n ð: 'd',\n ø: 'o',\n þ: 'th',\n Đ: 'D',\n đ: 'd',\n Ħ: 'H',\n ħ: 'h',\n ı: 'i',\n IJ: 'IJ',\n ij: 'ij',\n ĸ: 'k',\n Ŀ: 'L',\n ŀ: 'l',\n Ł: 'L',\n ł: 'l',\n ʼn: \"'n\",\n Ŋ: 'N',\n ŋ: 'n',\n Œ: 'Oe',\n œ: 'oe',\n Ŧ: 'T',\n ŧ: 't',\n ſ: 's',\n}));\nfunction deburr(str) {\n str = str.normalize('NFD');\n let result = '';\n for (let i = 0; i < str.length; i++) {\n const char = str[i];\n if ((char >= '\\u0300' && char <= '\\u036f') || (char >= '\\ufe20' && char <= '\\ufe23')) {\n continue;\n }\n result += deburrMap.get(char) ?? char;\n }\n return result;\n}\n\nexport { deburr };\n","const htmlEscapes = {\n '&': '&amp;',\n '<': '&lt;',\n '>': '&gt;',\n '\"': '&quot;',\n \"'\": '&#39;',\n};\nfunction escape(str) {\n return str.replace(/[&<>\"']/g, match => htmlEscapes[match]);\n}\n\nexport { escape };\n","function escapeRegExp(str) {\n return str.replace(/[\\\\^$.*+?()[\\]{}|]/g, '\\\\$&');\n}\n\nexport { escapeRegExp };\n","import { words } from './words.mjs';\n\nfunction kebabCase(str) {\n const words$1 = words(str);\n return words$1.map(word => word.toLowerCase()).join('-');\n}\n\nexport { kebabCase };\n","import { words } from './words.mjs';\n\nfunction lowerCase(str) {\n const words$1 = words(str);\n return words$1.map(word => word.toLowerCase()).join(' ');\n}\n\nexport { lowerCase };\n","function lowerFirst(str) {\n return str.substring(0, 1).toLowerCase() + str.substring(1);\n}\n\nexport { lowerFirst };\n","function pad(str, length, chars = ' ') {\n return str.padStart(Math.floor((length - str.length) / 2) + str.length, chars).padEnd(length, chars);\n}\n\nexport { pad };\n","import { capitalize } from './capitalize.mjs';\nimport { words } from './words.mjs';\n\nfunction pascalCase(str) {\n const words$1 = words(str);\n return words$1.map(word => capitalize(word)).join('');\n}\n\nexport { pascalCase };\n","function reverseString(value) {\n return [...value].reverse().join('');\n}\n\nexport { reverseString };\n","import { words } from './words.mjs';\n\nfunction startCase(str) {\n const words$1 = words(str.trim());\n let result = '';\n for (let i = 0; i < words$1.length; i++) {\n const word = words$1[i];\n if (result) {\n result += ' ';\n }\n result += word[0].toUpperCase() + word.slice(1).toLowerCase();\n }\n return result;\n}\n\nexport { startCase };\n","function trimEnd(str, chars) {\n if (chars === undefined) {\n return str.trimEnd();\n }\n let endIndex = str.length;\n switch (typeof chars) {\n case 'string': {\n if (chars.length !== 1) {\n throw new Error(`The 'chars' parameter should be a single character string.`);\n }\n while (endIndex > 0 && str[endIndex - 1] === chars) {\n endIndex--;\n }\n break;\n }\n case 'object': {\n while (endIndex > 0 && chars.includes(str[endIndex - 1])) {\n endIndex--;\n }\n }\n }\n return str.substring(0, endIndex);\n}\n\nexport { trimEnd };\n","function trimStart(str, chars) {\n if (chars === undefined) {\n return str.trimStart();\n }\n let startIndex = 0;\n switch (typeof chars) {\n case 'string': {\n while (startIndex < str.length && str[startIndex] === chars) {\n startIndex++;\n }\n break;\n }\n case 'object': {\n while (startIndex < str.length && chars.includes(str[startIndex])) {\n startIndex++;\n }\n }\n }\n return str.substring(startIndex);\n}\n\nexport { trimStart };\n","import { trimEnd } from './trimEnd.mjs';\nimport { trimStart } from './trimStart.mjs';\n\nfunction trim(str, chars) {\n if (chars === undefined) {\n return str.trim();\n }\n return trimStart(trimEnd(str, chars), chars);\n}\n\nexport { trim };\n","const htmlUnescapes = {\n '&amp;': '&',\n '&lt;': '<',\n '&gt;': '>',\n '&quot;': '\"',\n '&#39;': \"'\",\n};\nfunction unescape(str) {\n return str.replace(/&(?:amp|lt|gt|quot|#(0+)?39);/g, match => htmlUnescapes[match] || \"'\");\n}\n\nexport { unescape };\n","import { words } from './words.mjs';\n\nfunction upperCase(str) {\n const words$1 = words(str);\n let result = '';\n for (let i = 0; i < words$1.length; i++) {\n result += words$1[i].toUpperCase();\n if (i < words$1.length - 1) {\n result += ' ';\n }\n }\n return result;\n}\n\nexport { upperCase };\n","function upperFirst(str) {\n return str.substring(0, 1).toUpperCase() + str.substring(1);\n}\n\nexport { upperFirst };\n","function attempt(func) {\n try {\n return [null, func()];\n }\n catch (error) {\n return [error, null];\n }\n}\n\nexport { attempt };\n","async function attemptAsync(func) {\n try {\n const result = await func();\n return [null, result];\n }\n catch (error) {\n return [error, null];\n }\n}\n\nexport { attemptAsync };\n","function invariant(condition, message) {\n if (condition) {\n return;\n }\n if (typeof message === 'string') {\n throw new Error(message);\n }\n throw message;\n}\n\nexport { invariant };\n","function isDeepKey(key) {\n switch (typeof key) {\n case 'number':\n case 'symbol': {\n return false;\n }\n case 'string': {\n return key.includes('.') || key.includes('[') || key.includes(']');\n }\n }\n}\n\nexport { isDeepKey };\n","function toKey(value) {\n if (typeof value === 'string' || typeof value === 'symbol') {\n return value;\n }\n if (Object.is(value?.valueOf?.(), -0)) {\n return '-0';\n }\n return String(value);\n}\n\nexport { toKey };\n","function toString(value) {\n if (value == null) {\n return '';\n }\n if (typeof value === 'string') {\n return value;\n }\n if (Array.isArray(value)) {\n return value.map(toString).join(',');\n }\n const result = String(value);\n if (result === '0' && Object.is(Number(value), -0)) {\n return '-0';\n }\n return result;\n}\n\nexport { toString };\n","import { toString } from './toString.mjs';\nimport { toKey } from '../_internal/toKey.mjs';\n\nfunction toPath(deepKey) {\n if (Array.isArray(deepKey)) {\n return deepKey.map(toKey);\n }\n if (typeof deepKey === 'symbol') {\n return [deepKey];\n }\n deepKey = toString(deepKey);\n const result = [];\n const length = deepKey.length;\n if (length === 0) {\n return result;\n }\n let index = 0;\n let key = '';\n let quoteChar = '';\n let bracket = false;\n if (deepKey.charCodeAt(0) === 46) {\n result.push('');\n index++;\n }\n while (index < length) {\n const char = deepKey[index];\n if (quoteChar) {\n if (char === '\\\\' && index + 1 < length) {\n index++;\n key += deepKey[index];\n }\n else if (char === quoteChar) {\n quoteChar = '';\n }\n else {\n key += char;\n }\n }\n else if (bracket) {\n if (char === '\"' || char === \"'\") {\n quoteChar = char;\n }\n else if (char === ']') {\n bracket = false;\n result.push(key);\n key = '';\n }\n else {\n key += char;\n }\n }\n else {\n if (char === '[') {\n bracket = true;\n if (key) {\n result.push(key);\n key = '';\n }\n }\n else if (char === '.') {\n if (key) {\n result.push(key);\n key = '';\n }\n }\n else {\n key += char;\n }\n }\n index++;\n }\n if (key) {\n result.push(key);\n }\n return result;\n}\n\nexport { toPath };\n","import { isUnsafeProperty } from '../../_internal/isUnsafeProperty.mjs';\nimport { isDeepKey } from '../_internal/isDeepKey.mjs';\nimport { toKey } from '../_internal/toKey.mjs';\nimport { toPath } from '../util/toPath.mjs';\n\nfunction get(object, path, defaultValue) {\n if (object == null) {\n return defaultValue;\n }\n switch (typeof path) {\n case 'string': {\n if (isUnsafeProperty(path)) {\n return defaultValue;\n }\n const result = object[path];\n if (result === undefined) {\n if (isDeepKey(path)) {\n return get(object, toPath(path), defaultValue);\n }\n else {\n return defaultValue;\n }\n }\n return result;\n }\n case 'number':\n case 'symbol': {\n if (typeof path === 'number') {\n path = toKey(path);\n }\n const result = object[path];\n if (result === undefined) {\n return defaultValue;\n }\n return result;\n }\n default: {\n if (Array.isArray(path)) {\n return getWithPath(object, path, defaultValue);\n }\n if (Object.is(path?.valueOf(), -0)) {\n path = '-0';\n }\n else {\n path = String(path);\n }\n if (isUnsafeProperty(path)) {\n return defaultValue;\n }\n const result = object[path];\n if (result === undefined) {\n return defaultValue;\n }\n return result;\n }\n }\n}\nfunction getWithPath(object, path, defaultValue) {\n if (path.length === 0) {\n return defaultValue;\n }\n let current = object;\n for (let index = 0; index < path.length; index++) {\n if (current == null) {\n return defaultValue;\n }\n if (isUnsafeProperty(path[index])) {\n return defaultValue;\n }\n current = current[path[index]];\n }\n if (current === undefined) {\n return defaultValue;\n }\n return current;\n}\n\nexport { get };\n","function isObject(value) {\n return value !== null && (typeof value === 'object' || typeof value === 'function');\n}\n\nexport { isObject };\n","const IS_UNSIGNED_INTEGER = /^(?:0|[1-9]\\d*)$/;\nfunction isIndex(value, length = Number.MAX_SAFE_INTEGER) {\n switch (typeof value) {\n case 'number': {\n return Number.isInteger(value) && value >= 0 && value < length;\n }\n case 'symbol': {\n return false;\n }\n case 'string': {\n return IS_UNSIGNED_INTEGER.test(value);\n }\n }\n}\n\nexport { isIndex };\n","import { isSymbol } from '../predicate/isSymbol.mjs';\n\nconst regexIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/;\nconst regexIsPlainProp = /^\\w*$/;\nfunction isKey(value, object) {\n if (Array.isArray(value)) {\n return false;\n }\n if (typeof value === 'number' || typeof value === 'boolean' || value == null || isSymbol(value)) {\n return true;\n }\n return ((typeof value === 'string' && (regexIsPlainProp.test(value) || !regexIsDeepProp.test(value))) ||\n (object != null && Object.hasOwn(object, value)));\n}\n\nexport { isKey };\n","import { eq } from '../util/eq.mjs';\n\nconst assignValue = (object, key, value) => {\n const objValue = object[key];\n if (!(Object.hasOwn(object, key) && eq(objValue, value)) || (value === undefined && !(key in object))) {\n object[key] = value;\n }\n};\n\nexport { assignValue };\n","import { get } from './get.mjs';\nimport { isUnsafeProperty } from '../../_internal/isUnsafeProperty.mjs';\nimport { assignValue } from '../_internal/assignValue.mjs';\nimport { isIndex } from '../_internal/isIndex.mjs';\nimport { isKey } from '../_internal/isKey.mjs';\nimport { toKey } from '../_internal/toKey.mjs';\nimport { isObject } from '../predicate/isObject.mjs';\nimport { toPath } from '../util/toPath.mjs';\n\nfunction updateWith(obj, path, updater, customizer) {\n if (obj == null && !isObject(obj)) {\n return obj;\n }\n let resolvedPath;\n if (isKey(path, obj)) {\n resolvedPath = [path];\n }\n else if (Array.isArray(path)) {\n resolvedPath = path;\n }\n else {\n resolvedPath = toPath(path);\n }\n const updateValue = updater(get(obj, resolvedPath));\n let current = obj;\n for (let i = 0; i < resolvedPath.length && current != null; i++) {\n const key = toKey(resolvedPath[i]);\n if (isUnsafeProperty(key)) {\n continue;\n }\n let newValue;\n if (i === resolvedPath.length - 1) {\n newValue = updateValue;\n }\n else {\n const objValue = current[key];\n const customizerResult = customizer?.(objValue, key, obj);\n newValue =\n customizerResult !== undefined\n ? customizerResult\n : isObject(objValue)\n ? objValue\n : isIndex(resolvedPath[i + 1])\n ? []\n : {};\n }\n assignValue(current, key, newValue);\n current = current[key];\n }\n return obj;\n}\n\nexport { updateWith };\n","import { updateWith } from './updateWith.mjs';\n\nfunction set(obj, path, value) {\n return updateWith(obj, path, () => value, () => undefined);\n}\n\nexport { set };\n","import { get, set } from 'es-toolkit/compat';\r\n\r\n/**\r\n * 获取对象键名数组(类型安全)。\r\n * 注:内置 `Object.keys` 与 `es-toolkit` 的 `keys` 在 TS 中通常返回 `string[]`,无法精确到 `keyof T`。\r\n * @param obj 目标对象\r\n * @returns 类型精确的 `Array<keyof T>`\r\n * @example\r\n * const o = { a: 1, b: 'x' };\r\n * const keys = getObjectKeys(o); // type: ('a' | 'b')[], value: ['a','b']\r\n */\r\nexport function getObjectKeys<T extends object>(obj: T): Array<keyof T> {\r\n return Object.keys(obj) as (keyof T)[];\r\n}\r\n\r\n/**\r\n * 获取对象值。\r\n * @param obj 目标对象\r\n * @param path 路径。(点路径:'a.b'、'a[0].b';数组路径:['a',0,'b'])\r\n * @returns 值\r\n * @example\r\n * const o = { b: { c: 'x' }, users: [{ name: 'john' }, { name: 'jane' }] };\r\n * const c = getObjectValue(o, 'b.c'); // 点路径: 'x'\r\n * const name0 = getObjectValue(o, 'users[0].name'); // 数组字符: 'john'\r\n * const name1 = getObjectValue(o, ['users', 1, 'name']); // 数组路径: 'jane'\r\n */\r\nexport const getObjectValue = get;\r\n\r\n/**\r\n * 设置对象值。\r\n * @param obj 目标对象\r\n * @param path 路径。(点路径:'a.b'、'a[0].b';数组路径:['a',0,'b'])\r\n * @param value 值\r\n * @example\r\n * const o = { b: { c: 'x' }, users: [{ name: 'john' }, { name: 'jane' }] };\r\n * setObjectValue(o, 'b.c', 'y'); // 点路径\r\n * setObjectValue(o, ['users', 1, 'name'], 'jane-doe'); // 数组路径\r\n */\r\nexport const setObjectValue = set;\r\n","/**\r\n * 文本脱敏\r\n * @param s 原始文本\r\n * @param keepLeft 保留左侧字符数(默认 1)\r\n * @param keepRight 保留右侧字符数(默认 0)\r\n * @param maskChar 脱敏字符(默认 `*`)\r\n * @returns 脱敏文本\r\n * @example\r\n * toMaskText('王小明', 1, 0) // => '王*'\r\n * toMaskText('王小明', 1, 1) // => '王*明'\r\n * toMaskText('13800138000', 3, 4) // => '138****8000'\r\n */\r\nexport function toMaskText(s: string, keepLeft = 1, keepRight = 0, maskChar = '*') {\r\n if (!s) return '';\r\n const v = String(s);\r\n const l = Math.max(0, keepLeft);\r\n const r = Math.max(0, keepRight);\r\n const len = v.length;\r\n const left = Math.min(l, len);\r\n const right = Math.min(r, len - left);\r\n const mid = len - left - right;\r\n if (mid <= 0) return v;\r\n const m = maskChar && maskChar.length > 0 ? maskChar : '*';\r\n return v.slice(0, left) + m.repeat(mid) + v.slice(len - right);\r\n}\r\n\r\n/**\r\n * 手机号中间打星:保留前三位与后四位,中间打 `*`。\r\n * @param phone 手机号字符串\r\n * @returns 遮蔽后的手机号\r\n * @example\r\n * toMaskPhone('13800138000') // => '138****8000'\r\n */\r\nexport function toMaskPhone(phone: string) {\r\n return toMaskText(phone, 3, 4);\r\n}\r\n\r\n/**\r\n * 姓名打星:\r\n * - 长度 ≤ 2:保留首字,其余打 `*`\r\n * - 长度 ≥ 3:保留首尾,各打星中间\r\n * @param name 姓名字符串\r\n * @returns 遮蔽后的姓名\r\n * @example\r\n * toMaskName('张三') // => '张*'\r\n * toMaskName('王小明') // => '王*明'\r\n */\r\nexport function toMaskName(name: string) {\r\n if (!name) return '';\r\n const v = String(name);\r\n return v.length <= 2 ? toMaskText(v, 1, 0) : toMaskText(v, 1, 1);\r\n}\r\n","/**\r\n * 生成UUID\r\n * @returns UUID字符串\r\n * @example\r\n * const uuid = createUUID() // '7982fcfe-5721-4632-bede-6000885be57d'\r\n */\r\nexport function createUUID() {\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\r\n const r = (Math.random() * 16) | 0,\r\n v = c === 'x' ? r : (r & 0x3) | 0x8;\r\n return v.toString(16);\r\n });\r\n}\r\n\r\n/**\r\n * 生成随机字符串id\r\n * - 常用于生成元素标签的id (默认加上'id_'前缀, 避免小程序中数字开头的id导致查询节点信息失败)\r\n * @param prefix 前缀, 默认 'id_'\r\n * @returns 随机字符串\r\n * @example\r\n * const id = createViewRandId(); // 'id_0rjuuuqv60xi'\r\n * const id = createViewRandId('canvas_'); // 'canvas_v82a7ctm09q'\r\n */\r\nexport function createViewRandId(prefix = 'id_') {\r\n return `${prefix}${Math.random().toString(36).substring(2, 16)}`;\r\n}\r\n\r\n/**\r\n * 时间+固定位数的随机数字字符串\r\n * @param digits 随机部分的位数,默认 6\r\n * @returns 时间+随机数字字符串\r\n * @example\r\n * const traceId = createTimeRandId(); // '1763002648039123456'\r\n * const traceId = createTimeRandId(8); // '176300264803912345678'\r\n */\r\nexport function createTimeRandId(digits: number = 6) {\r\n const base = 10 ** (digits - 1);\r\n const range = 9 * base;\r\n const int = Math.floor(Math.random() * range) + base;\r\n\r\n return `${Date.now()}${int}`;\r\n}\r\n","/**\r\n * 获取字节长度 (支持字符串、Buffer/Uint8Array、File/Blob 等类型)\r\n * - 字符串按 UTF-8 编码计算字节长度(每个字符 1-4 字节)\r\n * - Buffer/Uint8Array 直接返回字节长度(每个元素 1 字节)\r\n * - File/Blob 返回文件/Blob 大小(字节数)\r\n * @param data 输入的数据\r\n * @returns 数据的字节长度\r\n * @example\r\n * getByteLength('abc') // 3\r\n * getByteLength('中文') // 6\r\n * getByteLength('😊') // 4\r\n * getByteLength(new Uint8Array([0x41, 0x42, 0x43])) // 3\r\n * getByteLength(new File(['abc'], 'test.txt')) // 3\r\n * getByteLength(new Blob(['中文'], { type: 'text/plain' })) // 6\r\n */\r\nexport function getByteLength(data: string | ArrayBuffer | ArrayBufferView | File | Blob): number {\r\n if (typeof data === 'string') {\r\n let byteLen = 0;\r\n\r\n for (let i = 0; i < data.length; i++) {\r\n const code = data.charCodeAt(i);\r\n\r\n if (code <= 0x7f) {\r\n byteLen += 1; // (ASCII 基本拉丁)→ 包含数字 0-9、英文字母 A-Z/a-z、常见符号\r\n } else if (code <= 0x7ff) {\r\n byteLen += 2; // (拉丁扩展)→ 包含拉丁字母(含变音符)、希腊文、俄文/西里尔文、希伯来文、阿拉伯文等\r\n } else if (code >= 0xd800 && code <= 0xdbff) {\r\n byteLen += 4; // (UTF-16 代理项)→ 包含 emoji、稀有汉字(扩展区)、音乐符号等\r\n i++;\r\n } else {\r\n byteLen += 3; // (BMP 绝大部分)→ 包含中文/日文/韩文的大多数字符(CJK 统一汉字)、以及大量其它脚本\r\n }\r\n }\r\n\r\n return byteLen;\r\n }\r\n\r\n // Buffer/Uint8Array\r\n if ('byteLength' in data) return data.byteLength;\r\n\r\n // File/Blob\r\n if ('size' in data) return data.size;\r\n\r\n throw new TypeError('getByteLength: Unsupported type');\r\n}\r\n","import { getObjectKeys } from '../../object';\r\n\r\n/**\r\n * 跨端 100% 原生可解码文件后缀表\r\n * 覆盖:iOS 14+ / Android 5+ WebView、Chrome/Edge/Safari/Firefox\r\n * 剔除:所有需要 polyfill 或转码的容器/编码\r\n */\r\nconst FILE_TYPE = {\r\n img: ['png', 'jpg', 'jpeg', 'gif', 'svg', 'webp'],\r\n video: ['mp4', 'mov', 'm4v'],\r\n voice: ['mp3', 'wav', 'm4a'],\r\n excel: ['csv', 'xls', 'xlsx', 'xlsm', 'ods'],\r\n word: ['txt', 'doc', 'docx', 'pdf', 'md', 'wps'],\r\n zip: ['zip', 'gz', 'tar', 'rar', '7z'],\r\n ppt: ['ppt', 'pptx', 'odp'],\r\n app: ['apk', 'ipa'],\r\n};\r\n\r\n/**\r\n * 获取文件后缀(不含点,返回小写)。\r\n * 当文件名不包含点('.')时,返回空字符串。\r\n * @param fileName 文件名,例如 `avatar.PNG`\r\n * @returns 后缀字符串,例如 `png`\r\n * @example getFileSuffix('avatar.PNG') // 'png'\r\n * @example getFileSuffix('a.tar.gz') // 'gz'\r\n * @example getFileSuffix('.ignore') // ''\r\n * @example getFileSuffix('abc') // ''\r\n */\r\nexport function getFileSuffix(fileName: string) {\r\n if (fileName.startsWith('.')) return ''; // 隐藏文件,返回空串\r\n\r\n const idx = fileName.lastIndexOf('.');\r\n return idx > 0 ? fileName.slice(idx + 1).toLowerCase() : '';\r\n}\r\n\r\n/**\r\n * 根据文件后缀判断文件类型。\r\n * 会将后缀转换为小写后与 `FILE_TYPE` 映射匹配;若未匹配到则返回 `'unknown'`。\r\n * @param fileName 文件名\r\n * @returns 文件类型字符串(如 'img' | 'video' | 'voice' | 'excel' | 'word' | 'zip' | 'ppt' | 'app' | 'unknown')\r\n * @example getFileType('avatar.PNG') // 'img'\r\n * @example getFileType('archive.tar') // 'zip'\r\n * @example getFileType('abc') // 'unknown'\r\n */\r\nexport function getFileType(fileName: string) {\r\n const suffix = getFileSuffix(fileName);\r\n if (!suffix) return 'unknown';\r\n\r\n const keys = getObjectKeys(FILE_TYPE);\r\n for (const key of keys) {\r\n if (FILE_TYPE[key].includes(suffix)) {\r\n return key;\r\n }\r\n }\r\n\r\n return 'unknown';\r\n}\r\n","import type {\r\n OSSOption,\r\n OSSAudioOption,\r\n OSSHlsOption,\r\n OSSImgOption,\r\n OSSVideoOption,\r\n OSSWatermarkOption,\r\n} from './index.d';\r\n\r\nexport * from './index.d';\r\n\r\n/**\r\n * oss图片处理\r\n * 参考官方文档: https://help.aliyun.com/zh/oss/user-guide/img-parameters/?spm=a2c4g.11186623.help-menu-31815.d_0_11_2_1.572824a1a1W5Pf&scm=20140722.H_144582._.OR_help-T_cn~zh-V_1\r\n * @param src 原始图片URL\r\n * @param option 图片处理选项\r\n * @returns 处理后的图片URL(格式: `{src}?x-oss-process=image/xx`)\r\n * @example\r\n * 缩放: getOSSImg('xx.jpg', { resize: { w: 100, h: 100 } })\r\n * 水印: getOSSImg('xx.jpg', { watermark: { text: '水印' } });\r\n * 翻转: getOSSImg('xx.jpg', { flip: 1 });\r\n * 裁剪: getOSSImg('xx.jpg', { crop: { w: 100, h: 100 } });\r\n * 质量: getOSSImg('xx.jpg', { quality: { q: 80 } });\r\n * 格式转换: getOSSImg('xx.jpg', { format: 'jpg' });\r\n * 获取信息: getOSSImg('xx.jpg', { info: true });\r\n * 自适应方向: getOSSImg('xx.jpg', { 'auto-orient': 1 });\r\n * 内切圆: getOSSImg('xx.jpg', { circle: { r: 100 } });\r\n * 索引切割: getOSSImg('xx.jpg', { indexcrop: { x: 100 } });\r\n * 圆角: getOSSImg('xx.jpg', { 'rounded-corners': { r: 10 } });\r\n * 模糊: getOSSImg('xx.jpg', { blur: { r: 10, s: 10 } });\r\n * 旋转: getOSSImg('xx.jpg', { rotate: 90 });\r\n * 渐进显示: getOSSImg('xx.jpg', { interlace: 1 });\r\n * 主色调: getOSSImg('xx.jpg', { 'average-hue': true });\r\n * 亮度: getOSSImg('xx.jpg', { bright: 10 });\r\n * 锐化: getOSSImg('xx.jpg', { sharpen: 100 });\r\n * 对比度: getOSSImg('xx.jpg', { contrast: 100 });\r\n */\r\nexport function getOSSImg(src: string, option: OSSImgOption) {\r\n return buildOSSUrl(src, 'image', option);\r\n}\r\n\r\n/**\r\n * oss视频处理\r\n * 参考官方文档: https://help.aliyun.com/zh/oss/user-guide/audio-and-video-processing/\r\n * @param src 原始视频URL\r\n * @param option 视频处理选项\r\n * @returns 处理后的URL(格式: `{src}?x-oss-process=video/xx`)\r\n * @example\r\n * 视频转码: getOSSVideo('xx.mp4', { convert: { format: 'mp4' } })\r\n * 转为动图: getOSSVideo('xx.mp4', { animation: { format: 'gif' } })\r\n * 雪碧图: getOSSVideo('xx.mp4', { sprite: { format: 'png' } })\r\n * 多帧截取: getOSSVideo('xx.mp4', { snapshots: { count: 3 } })\r\n * 视频拼接: getOSSVideo('xx.mp4', { concat: { list: 'a.mp4,b.mp4' } })\r\n * 信息查询: getOSSVideo('xx.mp4', { info: true })\r\n * 组合操作: getOSSVideo('xx.mp4', { convert: { format: 'mp4' }, snapshots: { count: 3 } })\r\n */\r\nexport function getOSSVideo(src: string, option: OSSVideoOption) {\r\n return buildOSSUrl(src, 'video', option);\r\n}\r\n\r\n/**\r\n * oss音频处理\r\n * 参考官方文档: https://help.aliyun.com/zh/oss/user-guide/audio-and-video-processing/\r\n * @param src 原始音频URL\r\n * @param option 音频处理选项\r\n * @returns 处理后的URL(格式: `{src}?x-oss-process=audio/xx`)\r\n * @example\r\n * 音频转码: getOSSAudio('xx.mp3', { 'convert': { format: 'mp3' } })\r\n * 音频拼接: getOSSAudio('xx.mp3', { 'concat': { list: 'a.mp3,b.mp3' } })\r\n * 信息查询: getOSSAudio('xx.mp3', { 'info': true })\r\n */\r\nexport function getOSSAudio(src: string, option: OSSAudioOption) {\r\n return buildOSSUrl(src, 'audio', option);\r\n}\r\n\r\n/**\r\n * oss直播处理(边转边播 HLS)\r\n * 参考官方文档: https://help.aliyun.com/zh/oss/user-guide/audio-and-video-processing/\r\n * @param src 原始视频URL\r\n * @param option HLS 选项(或布尔)\r\n * @returns 处理后的URL(格式: `{src}?x-oss-process=hls/xx`)\r\n * @example\r\n * 生成播放列表: getOSSHls('xx.mp4', { 'm3u8': true })\r\n * 配置参数: getOSSHls('xx.mp4', { 'm3u8': { playlist: 1, segtime: 6 } })\r\n */\r\nexport function getOSSHls(src: string, option: OSSHlsOption) {\r\n return buildOSSUrl(src, 'hls', option);\r\n}\r\n\r\n/**\r\n * 构造oss处理地址\r\n * @param src 原始地址\r\n * @param type oss处理类型,如`image`, `audio`, `video`, `hls`\r\n * @param option oss处理选项\r\n * @returns 处理后的URL(格式: `{src}?x-oss-process={type}/{segs.join('/')}`)\r\n */\r\nexport function buildOSSUrl(src: string, type: string, option: OSSOption) {\r\n if (!src || !option) return src;\r\n if (src.startsWith('blob:')) return src;\r\n if (src.includes('.svg')) return src;\r\n\r\n const segs: string[] = [];\r\n\r\n // 遍历选项,构造处理参数\r\n for (const [k, v] of Object.entries(option)) {\r\n const seg = k === 'watermark' ? getWatermark(v as OSSWatermarkOption) : getOSSSegs(k, v);\r\n if (seg) segs.push(seg);\r\n }\r\n\r\n if (!segs.length) return src;\r\n\r\n // 拼接处理参数(先移除查询参数,避免重复拼接)\r\n const base = src.split('?')[0];\r\n return `${base}?x-oss-process=${type}/${segs.join('/')}`;\r\n}\r\n\r\n/**\r\n * 构造图片处理参数\r\n * @param type 图片处理类型,如`resize`, `flip`, `format`, `info`\r\n * @param option 图片处理选项\r\n * @returns `object`返回格式为`resize,w_100,h_100`\r\n * @returns `number`返回格式为`flip,1`\r\n * @returns `string`返回格式为`format,jpg`\r\n * @returns `true`返回格式为`info`, `false`返回空字符串\r\n */\r\nfunction getOSSSegs(type: string, option?: Record<string, unknown> | number | string | boolean) {\r\n if (!option && option !== 0) return '';\r\n\r\n if (option === true) return type;\r\n\r\n if (typeof option === 'number' || typeof option === 'string') return `${type},${option}`;\r\n\r\n const segs = Object.entries(option)\r\n .map(([k, v]) => `${k}_${v}`)\r\n .join(',');\r\n\r\n return segs ? `${type},${segs}` : '';\r\n}\r\n\r\n/**\r\n * 图片水印 (文本和图片已Base64编码)\r\n * @returns 格式: `watermark,text_xxx`\r\n */\r\nfunction getWatermark(w?: OSSWatermarkOption) {\r\n if (!w) return '';\r\n if (w.image) w.image = toBase64Url(w.image);\r\n if (w.text) w.text = toBase64Url(w.text);\r\n if (w.type) w.type = toBase64Url(w.type);\r\n return getOSSSegs('watermark', w);\r\n}\r\n\r\n/**\r\n * Base64编码\r\n */\r\nfunction toBase64Url(s: string) {\r\n let b64 = '';\r\n if (typeof Buffer !== 'undefined') {\r\n const buf = Buffer.from(s, 'utf-8');\r\n b64 = buf.toString('base64');\r\n } else {\r\n try {\r\n b64 = btoa(unescape(encodeURIComponent(s)));\r\n } catch {\r\n b64 = '';\r\n }\r\n }\r\n return b64.replace(/=+$/g, '').replace(/\\+/g, '-').replace(/\\//g, '_');\r\n}\r\n","/**\r\n * 将对象参数拼接到 URL\r\n * - 采用纯JS拼接,因为小程序不支持URLSearchParams\r\n * @param url 基础地址\r\n * @param param 将要追加的参数对象;`null/undefined` 值会被忽略,Object 会使用 `JSON.stringify`\r\n * @returns 拼接后的完整 URL(保留原有哈希片段)\r\n * @example\r\n * const url = appendUrlParam('https://a.com', { q: '测试', list: [1, 2], a: null, b: undefined }); // 'https://a.com/?q=%E6%B5%8B%E8%AF%95&list=[1,2]'\r\n */\r\nexport function appendUrlParam(url: string, param: Record<string, unknown>) {\r\n if (!param || typeof param !== 'object') return url;\r\n\r\n const hashIndex = url.indexOf('#');\r\n const baseWithoutHash = hashIndex >= 0 ? url.slice(0, hashIndex) : url;\r\n const hash = hashIndex >= 0 ? url.slice(hashIndex) : '';\r\n\r\n const [base, existingQs] = baseWithoutHash.split('?');\r\n const parts: string[] = [];\r\n if (existingQs) parts.push(existingQs);\r\n for (const key in param) {\r\n const rawVal = param[key];\r\n if (rawVal === null || rawVal === undefined) continue;\r\n const val = typeof rawVal === 'object' ? JSON.stringify(rawVal) : String(rawVal);\r\n parts.push(`${encodeURIComponent(key)}=${encodeURIComponent(val)}`);\r\n }\r\n const qs = parts.filter(Boolean).join('&');\r\n return base + (qs ? `?${qs}` : '') + hash;\r\n}\r\n","import type { QnImgOption, QnMogr2Option, QnWatermarkOption, QnImageView2Option } from './index.d';\r\n\r\nexport * from './index.d';\r\n\r\n/**\r\n * qn图片处理\r\n * 参考官方文档: https://developer.qiniu.com/kodo/8623/dev-the-picture-style\r\n * @param src 原始图片URL\r\n * @param option 图片处理选项\r\n * @returns 处理后的图片URL(格式: `{src}?imageView2/...|imageMogr2/...|watermark/...|imageslim|imageInfo`)\r\n * @example\r\n * 缩略: getQnImg('xx.jpg', { imageView2: { mode: 2, w: 100, h: 100 } })\r\n * 高级缩放: getQnImg('xx.jpg', { thumbnail: '!50p' })\r\n * 裁剪: getQnImg('xx.jpg', { crop: '100x100' })\r\n * 旋转: getQnImg('xx.jpg', { rotate: 90 })\r\n * 自适应方向: getQnImg('xx.jpg', { 'auto-orient': true })\r\n * 格式转换: getQnImg('xx.jpg', { format: 'webp' })\r\n * 质量: getQnImg('xx.jpg', { q: 80 })\r\n * 渐进显示: getQnImg('xx.jpg', { interlace: 1 })\r\n * 背景色填充: getQnImg('xx.jpg', { background: 'white' })\r\n * 模糊: getQnImg('xx.jpg', { blur: { r: 10, s: 10 } })\r\n * GIF颜色控制: getQnImg('xx.jpg', { colors: 64 })\r\n * 图片瘦身: getQnImg('xx.jpg', { imageslim: true })\r\n * 图片信息: getQnImg('xx.jpg', { imageInfo: true })\r\n * 图片水印: getQnImg('xx.jpg', { watermark: { type: 'image', image: 'http://example.com/logo.png' } })\r\n * 文字水印: getQnImg('xx.jpg', { watermark: { type: 'text', text: '水印', fontsize: 18 } })\r\n */\r\nexport function getQnImg(src: string, option: QnImgOption) {\r\n if (!src || !option) return src;\r\n if (src.startsWith('blob:')) return src;\r\n if (src.includes('.svg')) return src;\r\n\r\n const segs: string[] = [];\r\n\r\n if (option.imageslim) segs.push('imageslim');\r\n\r\n if (option.imageView2) segs.push(getImageView2(option.imageView2));\r\n\r\n const mogr = getImageMogr2(option.imageMogr2 ?? option);\r\n if (mogr) segs.push(mogr);\r\n\r\n if (option.watermark) segs.push(getWatermark(option.watermark));\r\n\r\n if (option.imageInfo) segs.push('imageInfo');\r\n\r\n if (!segs.length) return src;\r\n\r\n const base = src.split('?')[0];\r\n return `${base}?${segs.join('|')}`;\r\n}\r\n\r\n/**\r\n * qn视频处理\r\n * 参考官方文档: https://developer.qiniu.com/kodo/12654/video-process\r\n * @param src 原始视频URL\r\n * @param option 视频处理选项(支持 avthumb、vframe)\r\n * @returns 处理后的URL(格式: `{src}?avthumb/...|vframe/...`)\r\n * @example\r\n * 视频转码: getQnVideo('xx.mp4', { avthumb: { format: 'mp4', s: '1280x720', vcodec: 'libx264', vb: '1.25m' } })\r\n * 截帧: getQnVideo('xx.mp4', { vframe: { format: 'jpg', offset: 3, w: 480, h: 360 } })\r\n */\r\nexport function getQnVideo(src: string, option: import('.').QnVideoOption) {\r\n if (!src || !option) return src;\r\n if (src.startsWith('blob:')) return src;\r\n if (src.includes('.svg')) return src;\r\n const segs: string[] = [];\r\n if (option.avthumb) segs.push(getAvthumb(option.avthumb));\r\n if (option.vframe) segs.push(getVframe(option.vframe));\r\n if (!segs.length) return src;\r\n const base = src.split('?')[0];\r\n return `${base}?${segs.join('|')}`;\r\n}\r\n\r\n/**\r\n * qn音频处理\r\n * 参考官方文档: https://developer.qiniu.com/kodo/12654/video-process\r\n * @param src 原始音频URL\r\n * @param option 音频处理选项(通过 avthumb 转码)\r\n * @returns 处理后的URL(格式: `{src}?avthumb/...`)\r\n * @example\r\n * 音频转码: getQnAudio('xx.aac', { avthumb: { format: 'mp3', ab: '128k', ar: 44100, acodec: 'libmp3lame' } })\r\n */\r\nexport function getQnAudio(src: string, option: import('.').QnAudioOption) {\r\n if (!src || !option) return src;\r\n if (src.startsWith('blob:')) return src;\r\n const segs: string[] = [];\r\n if (option.avthumb) segs.push(getAvthumb(option.avthumb));\r\n if (!segs.length) return src;\r\n const base = src.split('?')[0];\r\n return `${base}?${segs.join('|')}`;\r\n}\r\n\r\n/**\r\n * qn实时转码(HLS 边转边播)\r\n * 参考官方文档: https://developer.qiniu.com/kodo/12654/video-process、实时转码\r\n * @param src 原始视频URL\r\n * @param option HLS 选项\r\n * @returns 处理后的URL(格式: `{src}?avcvt/{level}/format/m3u8/...`)\r\n * @example\r\n * 720P HLS: getQnHls('xx.mp4', { level: 3, format: 'm3u8', segtime: 6 })\r\n */\r\nexport function getQnHls(src: string, option: import('.').QnHlsOption) {\r\n if (!src || !option) return src;\r\n if (src.startsWith('blob:')) return src;\r\n const seg = getAvcvt(option);\r\n if (!seg) return src;\r\n const base = src.split('?')[0];\r\n return `${base}?${seg}`;\r\n}\r\n\r\nfunction getImageView2(opt?: QnImageView2Option) {\r\n if (!opt) return '';\r\n const mode = typeof opt.mode === 'number' ? opt.mode : 0;\r\n const kv: string[] = [];\r\n for (const [k, v] of Object.entries(opt)) {\r\n if (k === 'mode') continue;\r\n if (typeof v === 'boolean') {\r\n if (v) kv.push(`${k}/1`);\r\n } else if (typeof v === 'number' || typeof v === 'string') {\r\n kv.push(`${k}/${v}`);\r\n }\r\n }\r\n return kv.length ? `imageView2/${mode}/${kv.join('/')}` : `imageView2/${mode}`;\r\n}\r\n\r\nfunction getImageMogr2(opt?: QnMogr2Option | QnImgOption) {\r\n if (!opt) return '';\r\n const parts: string[] = [];\r\n\r\n const tn = (opt as QnMogr2Option).thumbnail;\r\n if (typeof tn !== 'undefined') parts.push(`thumbnail/${tn}`);\r\n\r\n const cp = (opt as QnMogr2Option).crop;\r\n if (typeof cp !== 'undefined') parts.push(`crop/${cp}`);\r\n\r\n const rot = (opt as QnMogr2Option).rotate;\r\n if (typeof rot === 'number') parts.push(`rotate/${rot}`);\r\n\r\n const ao = (opt as QnMogr2Option)['auto-orient'];\r\n if (ao) parts.push('auto-orient');\r\n\r\n const fmt = (opt as QnMogr2Option).format;\r\n if (typeof fmt === 'string') parts.push(`format/${fmt}`);\r\n\r\n const il = (opt as QnMogr2Option).interlace;\r\n if (il === 0 || il === 1) parts.push(`interlace/${il}`);\r\n\r\n const bg = (opt as QnMogr2Option).background;\r\n if (typeof bg === 'string') parts.push(`background/${bg}`);\r\n\r\n const q = (opt as QnMogr2Option).q;\r\n if (typeof q === 'number') parts.push(`q/${q}`);\r\n\r\n const blur = (opt as QnMogr2Option).blur;\r\n if (typeof blur !== 'undefined') {\r\n if (typeof blur === 'string') parts.push(`blur/${blur}`);\r\n else parts.push(`blur/${blur.r}x${blur.s}`);\r\n }\r\n\r\n const colors = (opt as QnMogr2Option).colors;\r\n if (typeof colors === 'number') parts.push(`colors/${colors}`);\r\n\r\n return parts.length ? `imageMogr2/${parts.join('/')}` : '';\r\n}\r\n\r\nfunction getWatermark(w?: QnWatermarkOption) {\r\n if (!w) return '';\r\n const mode =\r\n w.type === 'image' ? 1 : w.type === 'text' ? 2 : typeof w.type === 'number' ? w.type : 2;\r\n const segs: string[] = [`watermark/${mode}`];\r\n if (mode === 1 && w.image) segs.push(`image/${toBase64Url(w.image)}`);\r\n if (mode === 2 && w.text) segs.push(`text/${toBase64Url(w.text)}`);\r\n if (w.font) segs.push(`font/${toBase64Url(w.font)}`);\r\n if (typeof w.fontsize === 'number') segs.push(`fontsize/${w.fontsize}`);\r\n if (w.fill) segs.push(`fill/${toBase64Url(w.fill)}`);\r\n if (w.gravity) segs.push(`gravity/${w.gravity}`);\r\n if (typeof w.dx === 'number') segs.push(`dx/${w.dx}`);\r\n if (typeof w.dy === 'number') segs.push(`dy/${w.dy}`);\r\n if (typeof w.dissolve === 'number') segs.push(`dissolve/${w.dissolve}`);\r\n return segs.join('/');\r\n}\r\n\r\nfunction toBase64Url(s: string) {\r\n let b64 = '';\r\n if (typeof Buffer !== 'undefined') {\r\n const buf = Buffer.from(s, 'utf-8');\r\n b64 = buf.toString('base64');\r\n } else {\r\n try {\r\n b64 = btoa(unescape(encodeURIComponent(s)));\r\n } catch {\r\n b64 = '';\r\n }\r\n }\r\n return b64.replace(/=+$/g, '').replace(/\\+/g, '-').replace(/\\//g, '_');\r\n}\r\n\r\nfunction getAvthumb(opt: import('.').QnAvthumbOption) {\r\n const parts: string[] = [];\r\n if (opt.format) parts.push(`avthumb/${opt.format}`);\r\n else parts.push('avthumb');\r\n if (opt.s) parts.push(`s/${opt.s}`);\r\n if (opt.vcodec) parts.push(`vcodec/${opt.vcodec}`);\r\n if (typeof opt.vb !== 'undefined') parts.push(`vb/${opt.vb}`);\r\n if (typeof opt.r === 'number') parts.push(`r/${opt.r}`);\r\n if (typeof opt.ab !== 'undefined') parts.push(`ab/${opt.ab}`);\r\n if (typeof opt.ar === 'number') parts.push(`ar/${opt.ar}`);\r\n if (opt.acodec) parts.push(`acodec/${opt.acodec}`);\r\n return parts.join('/');\r\n}\r\n\r\nfunction getVframe(opt: import('.').QnVframeOption) {\r\n const parts: string[] = [];\r\n parts.push(`vframe/${opt.format || 'jpg'}`);\r\n if (typeof opt.offset === 'number') parts.push(`offset/${opt.offset}`);\r\n if (typeof opt.w === 'number') parts.push(`w/${opt.w}`);\r\n if (typeof opt.h === 'number') parts.push(`h/${opt.h}`);\r\n return parts.join('/');\r\n}\r\n\r\nfunction getAvcvt(opt: import('.').QnHlsOption) {\r\n const parts: string[] = [];\r\n const level = typeof opt.level === 'number' ? `/${opt.level}` : '/3';\r\n parts.push(`avcvt${level}`);\r\n parts.push(`format/${opt.format || 'm3u8'}`);\r\n if (typeof opt.segtime === 'number') parts.push(`segtime/${opt.segtime}`);\r\n if (typeof opt.t === 'string') parts.push(`t/${opt.t}`);\r\n if (opt.vcodec) parts.push(`vcodec/${opt.vcodec}`);\r\n if (typeof opt.vb !== 'undefined') parts.push(`vb/${opt.vb}`);\r\n if (typeof opt.r === 'number') parts.push(`r/${opt.r}`);\r\n if (typeof opt.s === 'string') parts.push(`s/${opt.s}`);\r\n if (opt.acodec) parts.push(`acodec/${opt.acodec}`);\r\n if (typeof opt.ab !== 'undefined') parts.push(`ab/${opt.ab}`);\r\n if (typeof opt.ar === 'number') parts.push(`ar/${opt.ar}`);\r\n if (typeof opt.output === 'string') parts.push(`output/${toBase64Url(opt.output)}`);\r\n return parts.join('/');\r\n}\r\n","/**\r\n * 纯字母(不含空格与符号)。\r\n * @param s 字符串\r\n * @returns 是否为字母\r\n * @example\r\n * isLetter('abc') // true\r\n * isLetter('123') // false\r\n * isLetter('abc123') // false\r\n */\r\nexport function isLetter(s: string) {\r\n return /^[a-zA-Z]*$/.test(s);\r\n}\r\n\r\n/**\r\n * 纯中文(不含空格与符号)。\r\n * @param s 字符串\r\n * @returns 是否为纯中文\r\n * @example\r\n * isChinese('你好') // true\r\n */\r\nexport function isChinese(s: string) {\r\n const v = String(s ?? '').trim();\r\n return /^[\\u4E00-\\u9FA5]+$/.test(v);\r\n}\r\n\r\n/**\r\n * 纯数字(非负整数,不含空格与符号)。\r\n * @param s 字符串\r\n * @returns 是否为数字\r\n * @example\r\n * isDigits('12') // true\r\n * isDigits('1.2') // false\r\n * isDigits('-12') // false\r\n * isDigits('a12') // false\r\n */\r\nexport function isDigits(s: string) {\r\n return /^[0-9]+$/.test(s);\r\n}\r\n\r\n/**\r\n * 数字字符串格式校验\r\n * @param value 待验证值(字符串或数字)\r\n * @param options 可选项\r\n * @param options.negative 是否允许负数,默认 false\r\n * @param options.decimal 小数位数,默认 2(0 表示必须整数)\r\n * @param options.thousands 是否允许千分位逗号,默认 false\r\n * @param options.leadZero 是否允许整数部分出现多余前导0 (默认false, 即禁止'007',但允许'0.50')\r\n * @example\r\n * isNumeric('123.45'); // true\r\n * isNumeric('123.45', { decimal: 0 }); // false\r\n * isNumeric('-1,234.5', { negative: true, thousands: true }); // true\r\n * isNumeric('0123', { leadZero: true }); // true(现在允许)\r\n * isNumeric('0123'); // false(默认禁止)\r\n * isNumeric('0.50'); // true(始终允许)\r\n * isNumeric('.5'); // false(整数部分不能省)\r\n * isNumeric('123.'); // false(小数部分不能省)\r\n */\r\nexport function isNumeric(\r\n value: string | number,\r\n options?: {\r\n negative?: boolean;\r\n decimal?: number;\r\n thousands?: boolean;\r\n leadZero?: boolean;\r\n },\r\n): boolean {\r\n const { negative = false, decimal = 2, thousands = false, leadZero = false } = options || {};\r\n\r\n if (value === null || value === undefined || value === '') return false;\r\n const str = String(value).trim();\r\n\r\n const sign = negative && str.startsWith('-') ? '-' : '';\r\n const body = sign ? str.slice(1) : str;\r\n\r\n const thousandsPart = thousands ? '(?:[1-9]\\\\d{0,2}(,\\\\d{3})*|0)' : '(?:\\\\d+)';\r\n\r\n const intPart = thousands ? thousandsPart : leadZero ? '(?:\\\\d+)' : '(?:0|[1-9]\\\\d*)';\r\n\r\n const fracPart = decimal === 0 ? '' : `(\\\\.\\\\d{1,${decimal}})`;\r\n\r\n const pattern = `^${intPart}${fracPart}$`;\r\n const reg = new RegExp(pattern);\r\n return reg.test(body);\r\n}\r\n\r\n/**\r\n * 是否为中国大陆手机号(11 位,以 1 开头,第二位 3-9)。\r\n * @param s 待校验的号码\r\n * @returns 是否为合法手机号\r\n * @example\r\n * isMobilePhone('13800138000') // true\r\n * isMobilePhone('12800138000') // false\r\n */\r\nexport function isMobilePhone(s: string) {\r\n const v = String(s ?? '').trim();\r\n return /^1[3-9]\\d{9}$/.test(v);\r\n}\r\n\r\n/**\r\n * 是否为中国大陆座机号(区号-号码,可选分机)。\r\n * 格式:`0AA-BBBBBBBB(-EXT)`,其中区号 2-3 位、号码 7-8 位、分机 1-6 位。\r\n * @param s 待校验的号码\r\n * @returns 是否为合法座机号\r\n * @example\r\n * isLandline('010-88888888') // true\r\n * isLandline('0371-12345678-123') // true\r\n */\r\nexport function isLandline(s: string) {\r\n const v = String(s ?? '').trim();\r\n return /^0\\d{2,3}-?\\d{7,8}(?:-\\d{1,6})?$/.test(v);\r\n}\r\n\r\n/**\r\n * 联系电话:是否为中国大陆“手机号或座机号”。\r\n * @param s 待校验的号码\r\n * @returns 是否为合法的手机号或座机号\r\n * @example\r\n * isPhone('13800138000') // true\r\n * isPhone('010-88888888') // true\r\n */\r\nexport function isPhone(s: string) {\r\n return isMobilePhone(s) || isLandline(s);\r\n}\r\n\r\n/**\r\n * 校验邮箱地址(基于 RFC 5322 的常用子集)。\r\n * @param s 待校验的邮箱字符串\r\n * @returns 是否为合法邮箱\r\n * @example\r\n * isEmail('user@example.com') // true\r\n * isEmail('invalid@') // false\r\n */\r\nexport function isEmail(s: string) {\r\n const v = String(s ?? '').trim();\r\n if (v === '') return false;\r\n const emailRegex =\r\n /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?(?:\\.[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?)+$/;\r\n return emailRegex.test(v);\r\n}\r\n\r\n/**\r\n * 中文姓名(允许中间点 `·`),长度 2-20。\r\n * @param s 姓名\r\n * @returns 是否为合法中文姓名\r\n * @example\r\n * isChineseName('张三') // true\r\n * isChineseName('阿·娜') // true\r\n */\r\nexport function isChineseName(s: string) {\r\n const v = String(s ?? '').trim();\r\n return /^[\\u4E00-\\u9FA5·]{2,20}$/.test(v);\r\n}\r\n\r\n/**\r\n * 身份证校验(支持中国大陆严格校验;台湾/香港/澳门做格式校验)。\r\n * 规则:\r\n * - 中国大陆(严格):18 位校验位 + 出生日期合法性;兼容 15 位旧号(日期校验);\r\n * - 台湾(格式):`^[A-Z][12]\\d{8}$`(首字母 + 性别位 1/2 + 8 位数字);不含校验位算法;\r\n * - 香港(格式):`^[A-Z]{1,2}\\d{6}\\(?[0-9A]\\)?$`(1-2 字母 + 6 位数字 + 校验位,可带括号);\r\n * - 澳门(格式):常见为 `^[157]\\d{6}\\(?\\d\\)?$`(类别位 1/5/7 + 7 位数字 + 校验位,可带括号)。\r\n * @param code 身份证号码\r\n * @returns 是否为合法身份证号\r\n * @example\r\n * isIdentityCard('11010519491231002X') // true(大陆)\r\n * isIdentityCard('A123456789') // true(台湾格式)\r\n * isIdentityCard('A123456(3)') // true(香港格式)\r\n * isIdentityCard('1234567(8)') // true(澳门格式)\r\n */\r\nexport function isIdentityCard(code: string) {\r\n const v = String(code ?? '').trim();\r\n if (v === '') return false;\r\n\r\n const isValidDate = (yyyymmdd: string) => {\r\n const y = Number(yyyymmdd.slice(0, 4));\r\n const m = Number(yyyymmdd.slice(4, 6));\r\n const d = Number(yyyymmdd.slice(6, 8));\r\n if (y < 1900 || y > 2100) return false;\r\n const date = new Date(y, m - 1, d);\r\n return date.getFullYear() === y && date.getMonth() === m - 1 && date.getDate() === d;\r\n };\r\n\r\n // 18位校验\r\n if (/^\\d{17}[\\dXx]$/.test(v)) {\r\n const birth = v.slice(6, 14);\r\n if (!isValidDate(birth)) return false;\r\n const weights = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];\r\n const checkMap = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'];\r\n let sum = 0;\r\n for (let i = 0; i < 17; i++) sum += Number(v[i]) * weights[i];\r\n const mod = sum % 11;\r\n const code18 = v[17].toUpperCase();\r\n return checkMap[mod] === code18;\r\n }\r\n\r\n // 15位旧号:仅校验日期(第7~12位),不做校验位\r\n if (/^\\d{15}$/.test(v)) {\r\n const birth = v.slice(6, 12);\r\n const y = Number(`19${birth.slice(0, 2)}`);\r\n const m = Number(birth.slice(2, 4));\r\n const d = Number(birth.slice(4, 6));\r\n const date = new Date(y, m - 1, d);\r\n return date.getFullYear() === y && date.getMonth() === m - 1 && date.getDate() === d;\r\n }\r\n\r\n // 台湾(格式校验)\r\n if (/^[A-Za-z][12]\\d{8}$/.test(v)) return true;\r\n\r\n // 香港(格式校验):支持最后一位带括号与不带括号\r\n if (/^[A-Za-z]{1,2}\\d{6}\\(?[0-9A]\\)?$/.test(v)) return true;\r\n\r\n // 澳门(格式校验):常见 1/5/7 开头 + 7位数字 + 校验位,可带括号\r\n if (/^[157]\\d{6}\\(?\\d\\)?$/.test(v)) return true;\r\n\r\n return false;\r\n}\r\n\r\n/**\r\n * 护照号码校验(宽松通用格式,适合单输入框无法确认国家的场景)。\r\n * 说明:各国护照格式差异较大,此函数提供常见模式的格式校验;不做校验位算法。\r\n * 包含:\r\n * - 中国护照常见:`E/G` 开头 + 8 位数字;`D/P/S` 开头 + 7 位数字;\r\n * - 台湾护照常见:首字母 + 8 位数字;\r\n * - 通用兜底:6-9 位的字母数字组合;移除输入中的空格与 `-` 后再校验。\r\n * @param s 护照号码\r\n * @returns 是否匹配常见护照格式\r\n * @example\r\n * isPassport('E12345678') // true\r\n * isPassport('P1234567') // true\r\n * isPassport('A12345678') // true(台湾常见)\r\n * isPassport('AB-1234567') // true(移除分隔符后匹配)\r\n */\r\nexport function isPassport(s: string) {\r\n const t = String(s ?? '')\r\n .replace(/[-\\s]/g, '')\r\n .trim();\r\n if (t === '') return false;\r\n if (/^[EG]\\d{8}$/.test(t)) return true; // CN:E/G + 8 digits\r\n if (/^[DPS]\\d{7}$/.test(t)) return true; // CN:D/P/S + 7 digits\r\n if (/^[A-Za-z]\\d{8}$/.test(t)) return true; // TW:letter + 8 digits\r\n if (/^[A-Za-z0-9]{6,9}$/.test(t)) return true; // 通用宽松兜底\r\n return false;\r\n}\r\n\r\n/**\r\n * 港澳通行证(回乡证)号码校验。\r\n * 说明:常见为 `H/M` 开头 + 8~10 位数字;自动移除输入中的空格与 `-`。\r\n * @param s 证件号\r\n * @returns 是否为港澳通行证格式\r\n * @example\r\n * isHKMOPermit('H12345678') // true\r\n * isHKMOPermit('M1234567890') // true\r\n */\r\nexport function isHKMOPermit(s: string) {\r\n const t = String(s ?? '')\r\n .replace(/[-\\s]/g, '')\r\n .trim()\r\n .toUpperCase();\r\n return /^[HM]\\d{8,10}$/.test(t);\r\n}\r\n\r\n/**\r\n * 台湾居民来往大陆通行证(台胞证)号码校验。\r\n * 说明:常见为 8 位纯数字;或首字母 + 8 位数字;部分场景存在 10 位数字。\r\n * @param s 证件号\r\n * @returns 是否为台胞证格式\r\n * @example\r\n * isTaiwanPermit('12345678') // true\r\n * isTaiwanPermit('T12345678') // true\r\n * isTaiwanPermit('1234567890') // true\r\n */\r\nexport function isTaiwanPermit(s: string) {\r\n const t = String(s ?? '')\r\n .replace(/[-\\s]/g, '')\r\n .trim()\r\n .toUpperCase();\r\n if (/^\\d{8}$/.test(t)) return true;\r\n if (/^[A-Z]\\d{8}$/.test(t)) return true;\r\n if (/^\\d{10}$/.test(t)) return true;\r\n return false;\r\n}\r\n\r\n/**\r\n * 军官证号码校验:字母数字组合,长度 7-18。\r\n * @param s 证件号\r\n * @returns 是否为军官证宽松格式\r\n * @example\r\n * isOfficerIdLoose('JX1234567') // true\r\n */\r\nexport function isOfficerId(s: string) {\r\n const t = String(s ?? '')\r\n .replace(/[-\\s]/g, '')\r\n .trim()\r\n .toUpperCase();\r\n return /^[A-Z0-9]{7,18}$/.test(t);\r\n}\r\n\r\n/**\r\n * 士兵证号码校验:字母数字组合,长度 7-18。\r\n * @param s 证件号\r\n * @returns 是否为士兵证格式\r\n * @example\r\n * isSoldierId('SB12345678') // true\r\n */\r\nexport function isSoldierId(s: string) {\r\n const t = String(s ?? '')\r\n .replace(/[-\\s]/g, '')\r\n .trim()\r\n .toUpperCase();\r\n return /^[A-Z0-9]{7,18}$/.test(t);\r\n}\r\n\r\n/**\r\n * 中国军证(军官证/士兵证)组合校验。\r\n * @param s 证件号\r\n * @returns 是否为军官证或士兵证格式\r\n * @example\r\n * isCnMilitaryId('JX1234567') // true\r\n */\r\nexport function isMilitaryId(s: string) {\r\n return isOfficerId(s) || isSoldierId(s);\r\n}\r\n\r\n/**\r\n * 银行卡号校验(Luhn 校验)。\r\n * 说明:移除空格与 `-` 后进行 Luhn 校验;长度通常为 12-19 位。\r\n * @param s 银行卡号\r\n * @returns 是否通过 Luhn 校验\r\n * @example\r\n * isBankCard('6222 0201 2345 6789') // true\r\n */\r\nexport function isBankCard(s: string) {\r\n const t = String(s ?? '')\r\n .replace(/[-\\s]/g, '')\r\n .trim();\r\n if (!/^\\d{12,19}$/.test(t)) return false;\r\n let sum = 0;\r\n let shouldDouble = false;\r\n for (let i = t.length - 1; i >= 0; i--) {\r\n let digit = Number(t[i]);\r\n if (shouldDouble) {\r\n digit *= 2;\r\n if (digit > 9) digit -= 9;\r\n }\r\n sum += digit;\r\n shouldDouble = !shouldDouble;\r\n }\r\n return sum % 10 === 0;\r\n}\r\n\r\n/**\r\n * 中国车牌号校验(含普通与新能源)。\r\n * @param s 车牌号码\r\n * @returns 是否为合法中国车牌\r\n * @example\r\n * isLicensePlate('京A12345') // true\r\n * isLicensePlate('沪A12345D') // 新能源(末位 D/F)\r\n * isLicensePlate('粤BDF12345') // 新能源(第三位 D/F)\r\n */\r\nexport function isLicensePlate(s: string) {\r\n const v = String(s ?? '')\r\n .trim()\r\n .toUpperCase();\r\n const prov = '京沪津渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵青藏川宁琼粤';\r\n const std = new RegExp(`^[${prov}][A-HJ-NP-Z][A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9挂学警港澳]$`);\r\n const ne1 = new RegExp(`^[${prov}][A-HJ-NP-Z][DF][A-HJ-NP-Z0-9]{5}$`);\r\n const ne2 = new RegExp(`^[${prov}][A-HJ-NP-Z][A-HJ-NP-Z0-9]{5}[DF]$`);\r\n return std.test(v) || ne1.test(v) || ne2.test(v);\r\n}\r\n\r\n/**\r\n * 校验统一社会信用代码(中国税号常用:18 位,含校验位)。\r\n * 规则:\r\n * - 字符集:数字与大写字母(不含 I/O/Z/S/V),即 `[0-9A-HJ-NPQRTUWXY]`;\r\n * - 前 17 位参与加权求和,最后一位为校验码(取值 0-9 或 大写字母)。\r\n * @param code 税号/统一社会信用代码\r\n * @returns 是否为合法税号\r\n * @example\r\n * isTaxID('91350100M000100Y43') // true/false 取决于校验位\r\n */\r\nexport function isTaxID(code: string) {\r\n const v = String(code ?? '').trim();\r\n if (!/^[0-9A-HJ-NPQRTUWXY]{18}$/.test(v)) return false;\r\n const charset = '0123456789ABCDEFGHJKLMNPQRTUWXY'; // 31 字符集\r\n const weights = [1, 3, 9, 27, 19, 26, 16, 17, 20, 29, 25, 13, 8, 24, 10, 30, 28];\r\n const map: Record<string, number> = {};\r\n for (let i = 0; i < charset.length; i++) map[charset[i]] = i;\r\n let sum = 0;\r\n for (let i = 0; i < 17; i++) {\r\n sum += map[v[i]] * weights[i];\r\n }\r\n const logicCheck = (31 - (sum % 31)) % 31;\r\n const expected = charset[logicCheck];\r\n return v[17] === expected;\r\n}\r\n\r\n/**\r\n * HEX 颜色值(支持 `#RGB`、`#RRGGBB`、`#RRGGBBAA`)。\r\n * @param s 颜色字符串\r\n * @returns 是否为合法 HEX 颜色\r\n * @example\r\n * isHexColor('#fff') // true\r\n * isHexColor('#00ff00') // true\r\n * isHexColor('#11223344') // true\r\n */\r\nexport function isHexColor(s: string) {\r\n const v = String(s ?? '').trim();\r\n return /^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/.test(v);\r\n}\r\n\r\n/**\r\n * 校验 URL(要求含协议,支持 http/https/ftp)。\r\n * @param s 待校验的地址\r\n * @returns 是否为合法 URL\r\n * @example\r\n * isURL('https://example.com/path?a=1') // true\r\n * isURL('example.com') // false(缺少协议)\r\n */\r\nexport function isURL(s: string) {\r\n const v = String(s ?? '').trim();\r\n if (v === '') return false;\r\n try {\r\n const u = new URL(v);\r\n return ['http:', 'https:', 'ftp:'].includes(u.protocol) && !!u.hostname;\r\n } catch {\r\n return false;\r\n }\r\n}\r\n\r\n/**\r\n * 判断是否为合法 IPv4 地址。\r\n * @param s IP 字符串\r\n * @returns 是否为合法 IPv4\r\n * @example\r\n * isIPv4('192.168.0.1') // true\r\n * isIPv4('256.0.0.1') // false\r\n */\r\nfunction isIPv4(s: string) {\r\n const v = String(s ?? '').trim();\r\n if (v === '') return false;\r\n const parts = v.split('.');\r\n if (parts.length !== 4) return false;\r\n for (const p of parts) {\r\n if (!/^\\d+$/.test(p)) return false;\r\n if (p.length > 1 && p.startsWith('0')) return false;\r\n const n = Number(p);\r\n if (n < 0 || n > 255) return false;\r\n }\r\n return true;\r\n}\r\n\r\n/**\r\n * 判断是否为合法 IPv6 地址(支持压缩表示与 IPv4 映射)。\r\n * 规则:\r\n * - 由 8 组 1~4 位十六进制数组成,允许一次 `::` 压缩;\r\n * - 允许最后一组使用 IPv4 映射(如 `::ffff:192.168.0.1`)。\r\n * @param s IP 字符串\r\n * @returns 是否为合法 IPv6\r\n * @example\r\n * isIPv6('2001:0db8:85a3:0000:0000:8a2e:0370:7334') // true\r\n * isIPv6('2001:db8::8a2e:370:7334') // true\r\n * isIPv6('2001:::370:7334') // false\r\n */\r\nexport function isIPv6(s: string): boolean {\r\n const v = String(s ?? '').trim();\r\n if (v === '') return false;\r\n\r\n const lastColon = v.lastIndexOf(':');\r\n if (lastColon !== -1 && v.includes('.')) {\r\n const ipv6Part = v.slice(0, lastColon);\r\n const ipv4Part = v.slice(lastColon + 1);\r\n return isIPv6(ipv6Part) && isIPv4(ipv4Part);\r\n }\r\n\r\n const dblColonCount = (v.match(/::/g) || []).length;\r\n if (dblColonCount > 1) return false;\r\n\r\n const segments = v.split(':');\r\n if (v.startsWith('::')) segments.shift();\r\n if (v.endsWith('::')) segments.pop();\r\n const segmentsFiltered = segments.filter((seg) => seg !== '');\r\n\r\n if (dblColonCount === 0 && segmentsFiltered.length !== 8) return false;\r\n if (dblColonCount === 1 && segmentsFiltered.length >= 1 && segmentsFiltered.length <= 7) {\r\n // ok\r\n } else if (dblColonCount === 1 && segments.length === 0) {\r\n // :: 表示全部为 0\r\n return true;\r\n } else if (dblColonCount === 0 && segmentsFiltered.length === 8) {\r\n // ok\r\n } else {\r\n return false;\r\n }\r\n\r\n // 每段 1~4 位十六进制\r\n return segmentsFiltered.every(\r\n (seg) => seg.length >= 1 && seg.length <= 4 && /^[0-9a-fA-F]{1,4}$/.test(seg),\r\n );\r\n}\r\n\r\n/**\r\n * 校验 IP(支持 IPv4 与 IPv6)。\r\n * @param s IP 字符串\r\n * @param version 指定版本:传 `4` 仅校验 IPv4,传 `6` 仅校验 IPv6;缺省同时校验两者\r\n * @returns 是否为合法 IP\r\n * @example\r\n * isIP('127.0.0.1') // true\r\n * isIP('::1') // true\r\n * isIP('127.0.0.1', 6) // false\r\n */\r\nexport function isIP(s: string, version?: 4 | 6 | '4' | '6') {\r\n if (version === 4 || version === '4') return isIPv4(s);\r\n if (version === 6 || version === '6') return isIPv6(s);\r\n return isIPv4(s) || isIPv6(s);\r\n}\r\n\r\n/**\r\n * 校验 CIDR IP 段(支持 IPv4/IPv6),形如 `IP/前缀长度`。\r\n * @param s CIDR 字符串,如 `192.168.0.0/24`、`2001:db8::/32`\r\n * @returns 是否为合法 CIDR\r\n * @example\r\n * isIPRange('10.0.0.0/8') // true\r\n * isIPRange('2001:db8::/129') // false\r\n */\r\nexport function isIPRange(s: string) {\r\n const v = String(s ?? '').trim();\r\n if (v === '') return false;\r\n const parts = v.split('/');\r\n if (parts.length !== 2) return false;\r\n const [ip, prefixStr] = parts;\r\n if (!/^\\d+$/.test(prefixStr)) return false;\r\n const prefix = Number(prefixStr);\r\n if (ip.includes(':')) {\r\n if (!isIPv6(ip)) return false;\r\n return prefix >= 0 && prefix <= 128;\r\n }\r\n if (!isIPv4(ip)) return false;\r\n return prefix >= 0 && prefix <= 32;\r\n}\r\n\r\n/**\r\n * 端口号校验(0 ~ 65535,整数)。\r\n * @param s 端口(字符串或数字)\r\n * @returns 是否为合法端口范围\r\n * @example\r\n * isPortNumber(80) // true\r\n * isPortNumber('65535') // true\r\n * isPortNumber(70000) // false\r\n */\r\nexport function isPortNumber(s: string | number) {\r\n const v = typeof s === 'number' ? s : Number(String(s ?? '').trim());\r\n return Number.isInteger(v) && v >= 0 && v <= 65535;\r\n}\r\n\r\n/**\r\n * 纬度校验(-90 ~ 90)。\r\n * @param s 纬度值(字符串或数字)\r\n * @returns 是否为合法纬度\r\n * @example\r\n * isLatitude('31.2304') // true\r\n */\r\nexport function isLatitude(s: string | number) {\r\n const v = typeof s === 'number' ? s : Number(String(s ?? '').trim());\r\n return Number.isFinite(v) && v >= -90 && v <= 90;\r\n}\r\n\r\n/**\r\n * 经度校验(-180 ~ 180)。\r\n * @param s 经度值(字符串或数字)\r\n * @returns 是否为合法经度\r\n * @example\r\n * isLongitude('121.4737') // true\r\n */\r\nexport function isLongitude(s: string | number) {\r\n const v = typeof s === 'number' ? s : Number(String(s ?? '').trim());\r\n return Number.isFinite(v) && v >= -180 && v <= 180;\r\n}\r\n"],"mappings":"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AA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,8BAAAC;AAAA,IAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAAAC;AAAA,IAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAAC;AAAA,IAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAAC;AAAA,IAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA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","names":["t","e","n","r","i","s","u","a","M","m","f","l","$","y","v","g","D","o","d","c","h","e","t","n","r","i","o","a","f","h","u","d","l","s","c","m","M","t","i","e","s","f","n","u","r","o","t","n","i","o","r","e","u","f","s","a","r","e","t","o","n","i","d","e","t","r","e","_","t","clone","dayjs","isNumeric","isSymbol","unescape","all","Map","on","type","handler","handlers","get","push","set","off","splice","indexOf","emit","evt","slice","map","BigNumber","round","sum","compare","format","rest","n","dayjs","customParseFormat","utc","timezone","relativeTime","advancedFormat","arr","arr","union","intersection","union","intersection","rest","placeholderSymbol","rest","clone","merge","rest","clone","isPlainObject","isPlainObject","isSymbol","unescape","range","getWatermark","toBase64Url","isNumeric","sum"]}
1
+ {"version":3,"sources":["../../node_modules/.pnpm/dayjs@1.11.19/node_modules/dayjs/dayjs.min.js","../../node_modules/.pnpm/dayjs@1.11.19/node_modules/dayjs/plugin/customParseFormat.js","../../node_modules/.pnpm/dayjs@1.11.19/node_modules/dayjs/plugin/utc.js","../../node_modules/.pnpm/dayjs@1.11.19/node_modules/dayjs/plugin/timezone.js","../../node_modules/.pnpm/dayjs@1.11.19/node_modules/dayjs/plugin/relativeTime.js","../../node_modules/.pnpm/dayjs@1.11.19/node_modules/dayjs/plugin/advancedFormat.js","../../node_modules/.pnpm/dayjs@1.11.19/node_modules/dayjs/locale/zh-cn.js","../src/ts/index.ts","../src/ts/array/index.ts","../src/ts/async/index.ts","../../node_modules/.pnpm/mitt@3.0.1/node_modules/mitt/src/index.ts","../src/ts/bean/EventBus.ts","../src/ts/day/index.ts","../../node_modules/.pnpm/bignumber.js@9.3.1/node_modules/bignumber.js/bignumber.mjs","../src/ts/number/big.ts","../src/ts/number/format.ts","../src/ts/number/random.ts","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/at.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/chunk.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/compact.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/countBy.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/difference.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/differenceBy.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/differenceWith.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/drop.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/dropRight.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/dropRightWhile.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/dropWhile.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/fill.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/promise/semaphore.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/limitAsync.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/filterAsync.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/flatten.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/flatMap.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/flatMapAsync.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/flattenDeep.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/flatMapDeep.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/forEachAsync.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/forEachRight.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/groupBy.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/head.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/initial.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/intersection.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/intersectionBy.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/intersectionWith.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/isSubset.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/isSubsetWith.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/keyBy.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/last.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/mapAsync.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/maxBy.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/minBy.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/_internal/compareValues.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/orderBy.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/partition.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/pull.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/pullAt.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/reduceAsync.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/remove.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/sample.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/math/random.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/math/randomInt.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/sampleSize.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/shuffle.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/sortBy.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/tail.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/compat/predicate/isSymbol.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/compat/util/toNumber.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/compat/util/toFinite.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/compat/util/toInteger.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/take.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/takeRight.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/takeRightWhile.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/takeWhile.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/toFilled.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/uniq.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/union.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/uniqBy.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/unionBy.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/uniqWith.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/unionWith.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/unzip.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/unzipWith.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/windowed.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/without.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/xor.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/xorBy.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/xorWith.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/zip.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/zipObject.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/zipWith.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/error/AbortError.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/error/TimeoutError.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/function/after.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/function/ary.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/function/asyncNoop.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/function/before.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/function/curry.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/function/curryRight.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/function/debounce.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/function/flow.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/function/flowRight.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/function/identity.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/function/memoize.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/function/negate.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/function/noop.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/function/once.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/function/partial.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/function/partialRight.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/function/rest.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/promise/delay.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/function/retry.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/function/spread.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/function/throttle.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/function/unary.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/math/clamp.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/math/inRange.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/math/sum.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/math/mean.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/math/sumBy.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/math/meanBy.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/math/median.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/math/medianBy.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/math/range.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/math/rangeRight.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/math/round.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/predicate/isPrimitive.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/predicate/isTypedArray.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/object/clone.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/compat/_internal/getSymbols.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/compat/_internal/getTag.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/compat/_internal/tags.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/object/cloneDeepWith.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/object/cloneDeep.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/object/findKey.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/predicate/isPlainObject.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/object/flattenObject.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/object/invert.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/object/mapKeys.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/object/mapValues.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/_internal/isUnsafeProperty.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/object/merge.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/object/mergeWith.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/object/omit.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/object/omitBy.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/object/pick.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/object/pickBy.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/compat/predicate/isArray.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/string/capitalize.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/string/words.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/string/camelCase.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/object/toCamelCaseKeys.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/object/toMerged.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/compat/predicate/isPlainObject.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/string/snakeCase.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/object/toSnakeCaseKeys.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/predicate/isArrayBuffer.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/predicate/isBlob.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/predicate/isBoolean.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/predicate/isBrowser.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/predicate/isBuffer.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/predicate/isDate.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/compat/util/eq.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/predicate/isEqualWith.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/predicate/isEqual.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/predicate/isError.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/predicate/isFile.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/predicate/isFunction.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/predicate/isJSON.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/predicate/isJSONValue.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/predicate/isLength.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/predicate/isMap.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/predicate/isNil.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/predicate/isNode.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/predicate/isNotNil.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/predicate/isNull.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/predicate/isPromise.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/predicate/isRegExp.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/predicate/isSet.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/predicate/isString.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/predicate/isSymbol.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/predicate/isUndefined.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/predicate/isWeakMap.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/predicate/isWeakSet.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/promise/mutex.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/promise/timeout.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/promise/withTimeout.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/string/constantCase.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/string/deburr.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/string/escape.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/string/escapeRegExp.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/string/kebabCase.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/string/lowerCase.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/string/lowerFirst.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/string/pad.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/string/pascalCase.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/string/reverseString.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/string/startCase.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/string/trimEnd.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/string/trimStart.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/string/trim.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/string/unescape.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/string/upperCase.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/string/upperFirst.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/util/attempt.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/util/attemptAsync.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/util/invariant.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/compat/_internal/isDeepKey.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/compat/_internal/toKey.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/compat/util/toString.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/compat/util/toPath.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/compat/object/get.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/compat/predicate/isObject.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/compat/_internal/isIndex.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/compat/_internal/isKey.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/compat/_internal/assignValue.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/compat/object/updateWith.mjs","../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/compat/object/set.mjs","../src/ts/object/index.ts","../src/ts/string/format.ts","../src/ts/string/random.ts","../src/ts/string/other.ts","../src/ts/url/file/index.ts","../src/ts/url/oss/index.ts","../src/ts/url/param/index.ts","../src/ts/url/qn/index.ts","../src/ts/validator/index.ts"],"sourcesContent":["!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",c=\"month\",f=\"quarter\",h=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()<n.date())return-t(n,e);var r=12*(n.year()-e.year())+(n.month()-e.month()),i=e.clone().add(r,c),s=n-i<0,u=e.clone().add(r+(s?-1:1),c);return+(-(r+(n-i)/(s?i-u:u-i))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return{M:c,y:h,w:o,d:a,D:d,h:u,m:s,s:i,ms:r,Q:f}[t]||String(t||\"\").toLowerCase().replace(/s$/,\"\")},u:function(t){return void 0===t}},g=\"en\",D={};D[g]=M;var p=\"$isDayjsObject\",S=function(t){return t instanceof _||!(!t||!t[p])},w=function t(e,n,r){var i;if(!e)return g;if(\"string\"==typeof e){var s=e.toLowerCase();D[s]&&(i=s),n&&(D[s]=n,i=s);var u=e.split(\"-\");if(!i&&u.length>1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t)<this.startOf(e)},m.isBefore=function(t,e){return this.endOf(e)<O(t)},m.$g=function(t,e,n){return b.u(t)?this[e]:this.set(n,t)},m.unix=function(){return Math.floor(this.valueOf()/1e3)},m.valueOf=function(){return this.$d.getTime()},m.startOf=function(t,e){var n=this,r=!!b.u(e)||e,f=b.p(t),l=function(t,e){var i=b.w(n.$u?Date.UTC(n.$y,e,t):new Date(n.$y,e,t),n);return r?i:i.endOf(a)},$=function(t,e){return b.w(n.toDate()[t].apply(n.toDate(\"s\"),(r?[0,0,0,0]:[23,59,59,999]).slice(e)),n)},y=this.$W,M=this.$M,m=this.$D,v=\"set\"+(this.$u?\"UTC\":\"\");switch(f){case h:return r?l(1,0):l(31,11);case c:return r?l(1,M):l(0,M+1);case o:var g=this.$locale().weekStart||0,D=(y<g?y+7:y)-g;return l(r?m-D:m+(6-D),M);case a:case d:return $(v+\"Hours\",0);case u:return $(v+\"Minutes\",1);case s:return $(v+\"Seconds\",2);case i:return $(v+\"Milliseconds\",3);default:return this.clone()}},m.endOf=function(t){return this.startOf(t,!1)},m.$set=function(t,e){var n,o=b.p(t),f=\"set\"+(this.$u?\"UTC\":\"\"),l=(n={},n[a]=f+\"Date\",n[d]=f+\"Date\",n[c]=f+\"Month\",n[h]=f+\"FullYear\",n[u]=f+\"Hours\",n[s]=f+\"Minutes\",n[i]=f+\"Seconds\",n[r]=f+\"Milliseconds\",n)[o],$=o===a?this.$D+(e-this.$W):e;if(o===c||o===h){var y=this.clone().set(d,1);y.$d[l]($),y.init(),this.$d=y.set(d,Math.min(this.$D,y.daysInMonth())).$d}else l&&this.$d[l]($);return this.init(),this},m.set=function(t,e){return this.clone().$set(t,e)},m.get=function(t){return this[b.p(t)]()},m.add=function(r,f){var d,l=this;r=Number(r);var $=b.p(f),y=function(t){var e=O(l);return b.w(e.date(e.date()+Math.round(t*r)),l)};if($===c)return this.set(c,this.$M+r);if($===h)return this.set(h,this.$y+r);if($===a)return y(1);if($===o)return y(7);var M=(d={},d[s]=e,d[u]=n,d[i]=t,d)[$]||1,m=this.$d.getTime()+r*M;return b.w(m,this)},m.subtract=function(t,e){return this.add(-1*t,e)},m.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return n.invalidDate||l;var r=t||\"YYYY-MM-DDTHH:mm:ssZ\",i=b.z(this),s=this.$H,u=this.$m,a=this.$M,o=n.weekdays,c=n.months,f=n.meridiem,h=function(t,n,i,s){return t&&(t[n]||t(e,r))||i[n].slice(0,s)},d=function(t){return b.s(s%12||12,t,\"0\")},$=f||function(t,e,n){var r=t<12?\"AM\":\"PM\";return n?r.toLowerCase():r};return r.replace(y,(function(t,r){return r||function(t){switch(t){case\"YY\":return String(e.$y).slice(-2);case\"YYYY\":return b.s(e.$y,4,\"0\");case\"M\":return a+1;case\"MM\":return b.s(a+1,2,\"0\");case\"MMM\":return h(n.monthsShort,a,c,3);case\"MMMM\":return h(c,a);case\"D\":return e.$D;case\"DD\":return b.s(e.$D,2,\"0\");case\"d\":return String(e.$W);case\"dd\":return h(n.weekdaysMin,e.$W,o,2);case\"ddd\":return h(n.weekdaysShort,e.$W,o,3);case\"dddd\":return o[e.$W];case\"H\":return String(s);case\"HH\":return b.s(s,2,\"0\");case\"h\":return d(1);case\"hh\":return d(2);case\"a\":return $(s,u,!0);case\"A\":return $(s,u,!1);case\"m\":return String(u);case\"mm\":return b.s(u,2,\"0\");case\"s\":return String(e.$s);case\"ss\":return b.s(e.$s,2,\"0\");case\"SSS\":return b.s(e.$ms,3,\"0\");case\"Z\":return i}return null}(t)||i.replace(\":\",\"\")}))},m.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},m.diff=function(r,d,l){var $,y=this,M=b.p(d),m=O(r),v=(m.utcOffset()-this.utcOffset())*e,g=this-m,D=function(){return b.m(y,m)};switch(M){case h:$=D()/12;break;case c:$=D();break;case f:$=D()/3;break;case o:$=(g-v)/6048e5;break;case a:$=(g-v)/864e5;break;case u:$=g/n;break;case s:$=g/e;break;case i:$=g/t;break;default:$=g}return l?$:b.a($)},m.daysInMonth=function(){return this.endOf(c).$D},m.$locale=function(){return D[this.$L]},m.locale=function(t,e){if(!t)return this.$L;var n=this.clone(),r=w(t,e,!0);return r&&(n.$L=r),n},m.clone=function(){return b.w(this.$d,this)},m.toDate=function(){return new Date(this.valueOf())},m.toJSON=function(){return this.isValid()?this.toISOString():null},m.toISOString=function(){return this.$d.toISOString()},m.toString=function(){return this.$d.toUTCString()},M}(),k=_.prototype;return O.prototype=k,[[\"$ms\",r],[\"$s\",i],[\"$m\",s],[\"$H\",u],[\"$W\",a],[\"$M\",c],[\"$y\",h],[\"$D\",d]].forEach((function(t){k[t[1]]=function(e){return this.$g(e,t[0],t[1])}})),O.extend=function(t,e){return t.$i||(t(e,_,O),t.$i=!0),O},O.locale=w,O.isDayjs=S,O.unix=function(t){return O(1e3*t)},O.en=D[g],O.Ls=D,O.p={},O}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_customParseFormat=t()}(this,(function(){\"use strict\";var e={LTS:\"h:mm:ss A\",LT:\"h:mm A\",L:\"MM/DD/YYYY\",LL:\"MMMM D, YYYY\",LLL:\"MMMM D, YYYY h:mm A\",LLLL:\"dddd, MMMM D, YYYY h:mm A\"},t=/(\\[[^[]*\\])|([-_:/.,()\\s]+)|(A|a|Q|YYYY|YY?|ww?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,n=/\\d/,r=/\\d\\d/,i=/\\d\\d?/,o=/\\d*[^-_:/,()\\s\\d]+/,s={},a=function(e){return(e=+e)+(e>68?1900:2e3)};var f=function(e){return function(t){this[e]=+t}},h=[/[+-]\\d\\d:?(\\d\\d)?|Z/,function(e){(this.zone||(this.zone={})).offset=function(e){if(!e)return 0;if(\"Z\"===e)return 0;var t=e.match(/([+-]|\\d\\d)/g),n=60*t[1]+(+t[2]||0);return 0===n?0:\"+\"===t[0]?-n:n}(e)}],u=function(e){var t=s[e];return t&&(t.indexOf?t:t.s.concat(t.f))},d=function(e,t){var n,r=s.meridiem;if(r){for(var i=1;i<=24;i+=1)if(e.indexOf(r(i,0,t))>-1){n=i>12;break}}else n=e===(t?\"pm\":\"PM\");return n},c={A:[o,function(e){this.afternoon=d(e,!1)}],a:[o,function(e){this.afternoon=d(e,!0)}],Q:[n,function(e){this.month=3*(e-1)+1}],S:[n,function(e){this.milliseconds=100*+e}],SS:[r,function(e){this.milliseconds=10*+e}],SSS:[/\\d{3}/,function(e){this.milliseconds=+e}],s:[i,f(\"seconds\")],ss:[i,f(\"seconds\")],m:[i,f(\"minutes\")],mm:[i,f(\"minutes\")],H:[i,f(\"hours\")],h:[i,f(\"hours\")],HH:[i,f(\"hours\")],hh:[i,f(\"hours\")],D:[i,f(\"day\")],DD:[r,f(\"day\")],Do:[o,function(e){var t=s.ordinal,n=e.match(/\\d+/);if(this.day=n[0],t)for(var r=1;r<=31;r+=1)t(r).replace(/\\[|\\]/g,\"\")===e&&(this.day=r)}],w:[i,f(\"week\")],ww:[r,f(\"week\")],M:[i,f(\"month\")],MM:[r,f(\"month\")],MMM:[o,function(e){var t=u(\"months\"),n=(u(\"monthsShort\")||t.map((function(e){return e.slice(0,3)}))).indexOf(e)+1;if(n<1)throw new Error;this.month=n%12||n}],MMMM:[o,function(e){var t=u(\"months\").indexOf(e)+1;if(t<1)throw new Error;this.month=t%12||t}],Y:[/[+-]?\\d+/,f(\"year\")],YY:[r,function(e){this.year=a(e)}],YYYY:[/\\d{4}/,f(\"year\")],Z:h,ZZ:h};function l(n){var r,i;r=n,i=s&&s.formats;for(var o=(n=r.replace(/(\\[[^\\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(t,n,r){var o=r&&r.toUpperCase();return n||i[r]||e[r]||i[o].replace(/(\\[[^\\]]+])|(MMMM|MM|DD|dddd)/g,(function(e,t,n){return t||n.slice(1)}))}))).match(t),a=o.length,f=0;f<a;f+=1){var h=o[f],u=c[h],d=u&&u[0],l=u&&u[1];o[f]=l?{regex:d,parser:l}:h.replace(/^\\[|\\]$/g,\"\")}return function(e){for(var t={},n=0,r=0;n<a;n+=1){var i=o[n];if(\"string\"==typeof i)r+=i.length;else{var s=i.regex,f=i.parser,h=e.slice(r),u=s.exec(h)[0];f.call(t,u),e=e.replace(u,\"\")}}return function(e){var t=e.afternoon;if(void 0!==t){var n=e.hours;t?n<12&&(e.hours+=12):12===n&&(e.hours=0),delete e.afternoon}}(t),t}}return function(e,t,n){n.p.customParseFormat=!0,e&&e.parseTwoDigitYear&&(a=e.parseTwoDigitYear);var r=t.prototype,i=r.parse;r.parse=function(e){var t=e.date,r=e.utc,o=e.args;this.$u=r;var a=o[1];if(\"string\"==typeof a){var f=!0===o[2],h=!0===o[3],u=f||h,d=o[2];h&&(d=o[2]),s=this.$locale(),!f&&d&&(s=n.Ls[d]),this.$d=function(e,t,n,r){try{if([\"x\",\"X\"].indexOf(t)>-1)return new Date((\"X\"===t?1e3:1)*e);var i=l(t)(e),o=i.year,s=i.month,a=i.day,f=i.hours,h=i.minutes,u=i.seconds,d=i.milliseconds,c=i.zone,m=i.week,M=new Date,Y=a||(o||s?1:M.getDate()),p=o||M.getFullYear(),v=0;o&&!s||(v=s>0?s-1:M.getMonth());var D,w=f||0,g=h||0,y=u||0,L=d||0;return c?new Date(Date.UTC(p,v,Y,w,g,y,L+60*c.offset*1e3)):n?new Date(Date.UTC(p,v,Y,w,g,y,L)):(D=new Date(p,v,Y,w,g,y,L),m&&(D=r(D).week(m).toDate()),D)}catch(e){return new Date(\"\")}}(t,a,r,n),this.init(),d&&!0!==d&&(this.$L=this.locale(d).$L),u&&t!=this.format(a)&&(this.$d=new Date(\"\")),s={}}else if(a instanceof Array)for(var c=a.length,m=1;m<=c;m+=1){o[1]=a[m-1];var M=n.apply(this,o);if(M.isValid()){this.$d=M.$d,this.$L=M.$L,this.init();break}m===c&&(this.$d=new Date(\"\"))}else i.call(this,e)}}}));","!function(t,i){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=i():\"function\"==typeof define&&define.amd?define(i):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_utc=i()}(this,(function(){\"use strict\";var t=\"minute\",i=/[+-]\\d\\d(?::?\\d\\d)?/g,e=/([+-]|\\d\\d)/g;return function(s,f,n){var u=f.prototype;n.utc=function(t){var i={date:t,utc:!0,args:arguments};return new f(i)},u.utc=function(i){var e=n(this.toDate(),{locale:this.$L,utc:!0});return i?e.add(this.utcOffset(),t):e},u.local=function(){return n(this.toDate(),{locale:this.$L,utc:!1})};var r=u.parse;u.parse=function(t){t.utc&&(this.$u=!0),this.$utils().u(t.$offset)||(this.$offset=t.$offset),r.call(this,t)};var o=u.init;u.init=function(){if(this.$u){var t=this.$d;this.$y=t.getUTCFullYear(),this.$M=t.getUTCMonth(),this.$D=t.getUTCDate(),this.$W=t.getUTCDay(),this.$H=t.getUTCHours(),this.$m=t.getUTCMinutes(),this.$s=t.getUTCSeconds(),this.$ms=t.getUTCMilliseconds()}else o.call(this)};var a=u.utcOffset;u.utcOffset=function(s,f){var n=this.$utils().u;if(n(s))return this.$u?0:n(this.$offset)?a.call(this):this.$offset;if(\"string\"==typeof s&&(s=function(t){void 0===t&&(t=\"\");var s=t.match(i);if(!s)return null;var f=(\"\"+s[0]).match(e)||[\"-\",0,0],n=f[0],u=60*+f[1]+ +f[2];return 0===u?0:\"+\"===n?u:-u}(s),null===s))return this;var u=Math.abs(s)<=16?60*s:s;if(0===u)return this.utc(f);var r=this.clone();if(f)return r.$offset=u,r.$u=!1,r;var o=this.$u?this.toDate().getTimezoneOffset():-1*this.utcOffset();return(r=this.local().add(u+o,t)).$offset=u,r.$x.$localOffset=o,r};var h=u.format;u.format=function(t){var i=t||(this.$u?\"YYYY-MM-DDTHH:mm:ss[Z]\":\"\");return h.call(this,i)},u.valueOf=function(){var t=this.$utils().u(this.$offset)?0:this.$offset+(this.$x.$localOffset||this.$d.getTimezoneOffset());return this.$d.valueOf()-6e4*t},u.isUTC=function(){return!!this.$u},u.toISOString=function(){return this.toDate().toISOString()},u.toString=function(){return this.toDate().toUTCString()};var l=u.toDate;u.toDate=function(t){return\"s\"===t&&this.$offset?n(this.format(\"YYYY-MM-DD HH:mm:ss:SSS\")).toDate():l.call(this)};var c=u.diff;u.diff=function(t,i,e){if(t&&this.$u===t.$u)return c.call(this,t,i,e);var s=this.local(),f=n(t).local();return c.call(s,f,i,e)}}}));","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_timezone=e()}(this,(function(){\"use strict\";var t={year:0,month:1,day:2,hour:3,minute:4,second:5},e={};return function(n,i,o){var r,a=function(t,n,i){void 0===i&&(i={});var o=new Date(t),r=function(t,n){void 0===n&&(n={});var i=n.timeZoneName||\"short\",o=t+\"|\"+i,r=e[o];return r||(r=new Intl.DateTimeFormat(\"en-US\",{hour12:!1,timeZone:t,year:\"numeric\",month:\"2-digit\",day:\"2-digit\",hour:\"2-digit\",minute:\"2-digit\",second:\"2-digit\",timeZoneName:i}),e[o]=r),r}(n,i);return r.formatToParts(o)},u=function(e,n){for(var i=a(e,n),r=[],u=0;u<i.length;u+=1){var f=i[u],s=f.type,m=f.value,c=t[s];c>=0&&(r[c]=parseInt(m,10))}var d=r[3],l=24===d?0:d,h=r[0]+\"-\"+r[1]+\"-\"+r[2]+\" \"+l+\":\"+r[4]+\":\"+r[5]+\":000\",v=+e;return(o.utc(h).valueOf()-(v-=v%1e3))/6e4},f=i.prototype;f.tz=function(t,e){void 0===t&&(t=r);var n,i=this.utcOffset(),a=this.toDate(),u=a.toLocaleString(\"en-US\",{timeZone:t}),f=Math.round((a-new Date(u))/1e3/60),s=15*-Math.round(a.getTimezoneOffset()/15)-f;if(!Number(s))n=this.utcOffset(0,e);else if(n=o(u,{locale:this.$L}).$set(\"millisecond\",this.$ms).utcOffset(s,!0),e){var m=n.utcOffset();n=n.add(i-m,\"minute\")}return n.$x.$timezone=t,n},f.offsetName=function(t){var e=this.$x.$timezone||o.tz.guess(),n=a(this.valueOf(),e,{timeZoneName:t}).find((function(t){return\"timezonename\"===t.type.toLowerCase()}));return n&&n.value};var s=f.startOf;f.startOf=function(t,e){if(!this.$x||!this.$x.$timezone)return s.call(this,t,e);var n=o(this.format(\"YYYY-MM-DD HH:mm:ss:SSS\"),{locale:this.$L});return s.call(n,t,e).tz(this.$x.$timezone,!0)},o.tz=function(t,e,n){var i=n&&e,a=n||e||r,f=u(+o(),a);if(\"string\"!=typeof t)return o(t).tz(a);var s=function(t,e,n){var i=t-60*e*1e3,o=u(i,n);if(e===o)return[i,e];var r=u(i-=60*(o-e)*1e3,n);return o===r?[i,o]:[t-60*Math.min(o,r)*1e3,Math.max(o,r)]}(o.utc(t,i).valueOf(),f,a),m=s[0],c=s[1],d=o(m).utcOffset(c);return d.$x.$timezone=a,d},o.tz.guess=function(){return Intl.DateTimeFormat().resolvedOptions().timeZone},o.tz.setDefault=function(t){r=t}}}));","!function(r,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(r=\"undefined\"!=typeof globalThis?globalThis:r||self).dayjs_plugin_relativeTime=e()}(this,(function(){\"use strict\";return function(r,e,t){r=r||{};var n=e.prototype,o={future:\"in %s\",past:\"%s ago\",s:\"a few seconds\",m:\"a minute\",mm:\"%d minutes\",h:\"an hour\",hh:\"%d hours\",d:\"a day\",dd:\"%d days\",M:\"a month\",MM:\"%d months\",y:\"a year\",yy:\"%d years\"};function i(r,e,t,o){return n.fromToBase(r,e,t,o)}t.en.relativeTime=o,n.fromToBase=function(e,n,i,d,u){for(var f,a,s,l=i.$locale().relativeTime||o,h=r.thresholds||[{l:\"s\",r:44,d:\"second\"},{l:\"m\",r:89},{l:\"mm\",r:44,d:\"minute\"},{l:\"h\",r:89},{l:\"hh\",r:21,d:\"hour\"},{l:\"d\",r:35},{l:\"dd\",r:25,d:\"day\"},{l:\"M\",r:45},{l:\"MM\",r:10,d:\"month\"},{l:\"y\",r:17},{l:\"yy\",d:\"year\"}],m=h.length,c=0;c<m;c+=1){var y=h[c];y.d&&(f=d?t(e).diff(i,y.d,!0):i.diff(e,y.d,!0));var p=(r.rounding||Math.round)(Math.abs(f));if(s=f>0,p<=y.r||!y.r){p<=1&&c>0&&(y=h[c-1]);var v=l[y.l];u&&(p=u(\"\"+p)),a=\"string\"==typeof v?v.replace(\"%d\",p):v(p,n,y.l,s);break}}if(n)return a;var M=s?l.future:l.past;return\"function\"==typeof M?M(a):M.replace(\"%s\",a)},n.to=function(r,e){return i(r,e,this,!0)},n.from=function(r,e){return i(r,e,this)};var d=function(r){return r.$u?t.utc():t()};n.toNow=function(r){return this.to(d(this),r)},n.fromNow=function(r){return this.from(d(this),r)}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_advancedFormat=t()}(this,(function(){\"use strict\";return function(e,t){var r=t.prototype,n=r.format;r.format=function(e){var t=this,r=this.$locale();if(!this.isValid())return n.bind(this)(e);var s=this.$utils(),a=(e||\"YYYY-MM-DDTHH:mm:ssZ\").replace(/\\[([^\\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g,(function(e){switch(e){case\"Q\":return Math.ceil((t.$M+1)/3);case\"Do\":return r.ordinal(t.$D);case\"gggg\":return t.weekYear();case\"GGGG\":return t.isoWeekYear();case\"wo\":return r.ordinal(t.week(),\"W\");case\"w\":case\"ww\":return s.s(t.week(),\"w\"===e?1:2,\"0\");case\"W\":case\"WW\":return s.s(t.isoWeek(),\"W\"===e?1:2,\"0\");case\"k\":case\"kk\":return s.s(String(0===t.$H?24:t.$H),\"k\"===e?1:2,\"0\");case\"X\":return Math.floor(t.$d.getTime()/1e3);case\"x\":return t.$d.getTime();case\"z\":return\"[\"+t.offsetName()+\"]\";case\"zzz\":return\"[\"+t.offsetName(\"long\")+\"]\";default:return e}}));return n.bind(this)(a)}}}));","!function(e,_){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=_(require(\"dayjs\")):\"function\"==typeof define&&define.amd?define([\"dayjs\"],_):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_locale_zh_cn=_(e.dayjs)}(this,(function(e){\"use strict\";function _(e){return e&&\"object\"==typeof e&&\"default\"in e?e:{default:e}}var t=_(e),d={name:\"zh-cn\",weekdays:\"星期日_星期一_星期二_星期三_星期四_星期五_星期六\".split(\"_\"),weekdaysShort:\"周日_周一_周二_周三_周四_周五_周六\".split(\"_\"),weekdaysMin:\"日_一_二_三_四_五_六\".split(\"_\"),months:\"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月\".split(\"_\"),monthsShort:\"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月\".split(\"_\"),ordinal:function(e,_){return\"W\"===_?e+\"周\":e+\"日\"},weekStart:1,yearStart:4,formats:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"YYYY/MM/DD\",LL:\"YYYY年M月D日\",LLL:\"YYYY年M月D日Ah点mm分\",LLLL:\"YYYY年M月D日ddddAh点mm分\",l:\"YYYY/M/D\",ll:\"YYYY年M月D日\",lll:\"YYYY年M月D日 HH:mm\",llll:\"YYYY年M月D日dddd HH:mm\"},relativeTime:{future:\"%s内\",past:\"%s前\",s:\"几秒\",m:\"1 分钟\",mm:\"%d 分钟\",h:\"1 小时\",hh:\"%d 小时\",d:\"1 天\",dd:\"%d 天\",M:\"1 个月\",MM:\"%d 个月\",y:\"1 年\",yy:\"%d 年\"},meridiem:function(e,_){var t=100*e+_;return t<600?\"凌晨\":t<900?\"早上\":t<1100?\"上午\":t<1300?\"中午\":t<1800?\"下午\":\"晚上\"}};return t.default.locale(d,null,!0),d}));","/**\r\n * 内部统一导出, 外部快捷引入: import {xx} from 'base-tools/ts'\r\n */\r\nexport * from './array';\r\nexport * from './async';\r\nexport * from './bean';\r\nexport * from './day';\r\nexport * from './es-toolkit';\r\nexport * from './number';\r\nexport * from './object';\r\nexport * from './string';\r\nexport * from './typing';\r\nexport * from './url';\r\nexport * from './validator';\r\n","/**\r\n * 拖拽排序 (不改变原数组)\r\n * @param list 原始数组\r\n * @param fromIndex 要移动的元素的原始索引\r\n * @param toIndex 要移动到的目标索引\r\n * @returns 移动元素后的新数组\r\n */\r\nexport function arrayMove<T>(list: T[], fromIndex: number, toIndex: number) {\r\n const newList = [...list]; // 创建新数组副本\r\n const [removed] = newList.splice(fromIndex, 1); // 移除 fromIndex 处的元素\r\n newList.splice(toIndex, 0, removed); // 插入到 toIndex 处\r\n return newList;\r\n}\r\n","/**\r\n * 将 Promise 包装为 [data, error] 形式, 减少 try-catch 代码量\r\n * @param p 要包装的 Promise\r\n * @returns 一个 Promise,其结果为 [data, error] 形式\r\n * @example\r\n * const [data, err] = await toAsync(fetch('https://api.example.com/data'));\r\n * if (err) {\r\n * console.error(err);\r\n * return;\r\n * }\r\n * console.log(data);\r\n */\r\nexport async function toAsync<T>(p: Promise<T>): Promise<[T | null, unknown]> {\r\n try {\r\n const data = await p;\r\n return [data, null];\r\n } catch (err) {\r\n return [null, err];\r\n }\r\n}\r\n","export type EventType = string | symbol;\n\n// An event handler can take an optional event argument\n// and should not return a value\nexport type Handler<T = unknown> = (event: T) => void;\nexport type WildcardHandler<T = Record<string, unknown>> = (\n\ttype: keyof T,\n\tevent: T[keyof T]\n) => void;\n\n// An array of all currently registered event handlers for a type\nexport type EventHandlerList<T = unknown> = Array<Handler<T>>;\nexport type WildCardEventHandlerList<T = Record<string, unknown>> = Array<\n\tWildcardHandler<T>\n>;\n\n// A map of event types and their corresponding event handlers.\nexport type EventHandlerMap<Events extends Record<EventType, unknown>> = Map<\n\tkeyof Events | '*',\n\tEventHandlerList<Events[keyof Events]> | WildCardEventHandlerList<Events>\n>;\n\nexport interface Emitter<Events extends Record<EventType, unknown>> {\n\tall: EventHandlerMap<Events>;\n\n\ton<Key extends keyof Events>(type: Key, handler: Handler<Events[Key]>): void;\n\ton(type: '*', handler: WildcardHandler<Events>): void;\n\n\toff<Key extends keyof Events>(\n\t\ttype: Key,\n\t\thandler?: Handler<Events[Key]>\n\t): void;\n\toff(type: '*', handler: WildcardHandler<Events>): void;\n\n\temit<Key extends keyof Events>(type: Key, event: Events[Key]): void;\n\temit<Key extends keyof Events>(\n\t\ttype: undefined extends Events[Key] ? Key : never\n\t): void;\n}\n\n/**\n * Mitt: Tiny (~200b) functional event emitter / pubsub.\n * @name mitt\n * @returns {Mitt}\n */\nexport default function mitt<Events extends Record<EventType, unknown>>(\n\tall?: EventHandlerMap<Events>\n): Emitter<Events> {\n\ttype GenericEventHandler =\n\t\t| Handler<Events[keyof Events]>\n\t\t| WildcardHandler<Events>;\n\tall = all || new Map();\n\n\treturn {\n\t\t/**\n\t\t * A Map of event names to registered handler functions.\n\t\t */\n\t\tall,\n\n\t\t/**\n\t\t * Register an event handler for the given type.\n\t\t * @param {string|symbol} type Type of event to listen for, or `'*'` for all events\n\t\t * @param {Function} handler Function to call in response to given event\n\t\t * @memberOf mitt\n\t\t */\n\t\ton<Key extends keyof Events>(type: Key, handler: GenericEventHandler) {\n\t\t\tconst handlers: Array<GenericEventHandler> | undefined = all!.get(type);\n\t\t\tif (handlers) {\n\t\t\t\thandlers.push(handler);\n\t\t\t} else {\n\t\t\t\tall!.set(type, [handler] as EventHandlerList<Events[keyof Events]>);\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Remove an event handler for the given type.\n\t\t * If `handler` is omitted, all handlers of the given type are removed.\n\t\t * @param {string|symbol} type Type of event to unregister `handler` from (`'*'` to remove a wildcard handler)\n\t\t * @param {Function} [handler] Handler function to remove\n\t\t * @memberOf mitt\n\t\t */\n\t\toff<Key extends keyof Events>(type: Key, handler?: GenericEventHandler) {\n\t\t\tconst handlers: Array<GenericEventHandler> | undefined = all!.get(type);\n\t\t\tif (handlers) {\n\t\t\t\tif (handler) {\n\t\t\t\t\thandlers.splice(handlers.indexOf(handler) >>> 0, 1);\n\t\t\t\t} else {\n\t\t\t\t\tall!.set(type, []);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Invoke all handlers for the given type.\n\t\t * If present, `'*'` handlers are invoked after type-matched handlers.\n\t\t *\n\t\t * Note: Manually firing '*' handlers is not supported.\n\t\t *\n\t\t * @param {string|symbol} type The event type to invoke\n\t\t * @param {Any} [evt] Any value (object is recommended and powerful), passed to each handler\n\t\t * @memberOf mitt\n\t\t */\n\t\temit<Key extends keyof Events>(type: Key, evt?: Events[Key]) {\n\t\t\tlet handlers = all!.get(type);\n\t\t\tif (handlers) {\n\t\t\t\t(handlers as EventHandlerList<Events[keyof Events]>)\n\t\t\t\t\t.slice()\n\t\t\t\t\t.map((handler) => {\n\t\t\t\t\t\thandler(evt!);\n\t\t\t\t\t});\n\t\t\t}\n\n\t\t\thandlers = all!.get('*');\n\t\t\tif (handlers) {\n\t\t\t\t(handlers as WildCardEventHandlerList<Events>)\n\t\t\t\t\t.slice()\n\t\t\t\t\t.map((handler) => {\n\t\t\t\t\t\thandler(type, evt!);\n\t\t\t\t\t});\n\t\t\t}\n\t\t}\n\t};\n}\n","import mitt, { type Emitter, type EventType } from 'mitt';\r\n\r\ntype Events = Record<EventType, unknown>;\r\n\r\n/**\r\n * 总线式发布订阅\r\n * @example\r\n * const emitter = new EventBus(); // 支持链式调用\r\n * emitter.on('xx', fn); // 订阅事件 xx\r\n * emitter.once('xx', fn); // 订阅事件 xx 一次\r\n * emitter.emit('xx', any); // 发布事件 xx,参数任意\r\n * emitter.off('xx'); // 移除事件 xx 下全部监听\r\n * emitter.off('xx', fn); // 移除事件 xx 下指定监听\r\n * emitter.clear(); // 移除所有事件\r\n *\r\n * @example 类型约束\r\n * type T = { a: number; b: string };\r\n * const emitter = new EventBus<{ xx: T; yy: void }>();\r\n * const fn = (arg: T) => {}\r\n * emitter.on('xx', fn);\r\n * emitter.off('xx', fn);\r\n * emitter.emit('xx', { a: 123, b: '123' });\r\n * emitter.emit('yy');\r\n */\r\nexport class EventBus<T extends Events = Events> {\r\n private readonly _emitter: Emitter<T> = mitt<T>();\r\n\r\n /** 订阅 */\r\n on<K extends keyof T>(type: K, fn: (event: T[K]) => void): this {\r\n this._emitter.on(type, fn);\r\n return this;\r\n }\r\n\r\n /** 订阅一次 */\r\n once<K extends keyof T>(type: K, fn: (event: T[K]) => void): this {\r\n const wrap = (event: T[K]) => {\r\n this._emitter.off(type, wrap);\r\n fn(event);\r\n };\r\n this._emitter.on(type, wrap);\r\n return this;\r\n }\r\n\r\n /** 发布 */\r\n emit<K extends keyof T>(type: K, event?: T[K]): this {\r\n this._emitter.emit(type, event as T[K]);\r\n return this;\r\n }\r\n\r\n /** 移除 */\r\n off<K extends keyof T>(type: K, fn?: (event: T[K]) => void): this {\r\n this._emitter.off(type, fn);\r\n return this;\r\n }\r\n\r\n /** 清空 */\r\n clear(): this {\r\n this._emitter.all.clear();\r\n return this;\r\n }\r\n}\r\n","import dayjs from 'dayjs';\r\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\r\nimport utc from 'dayjs/plugin/utc';\r\nimport timezone from 'dayjs/plugin/timezone';\r\nimport relativeTime from 'dayjs/plugin/relativeTime';\r\nimport advancedFormat from 'dayjs/plugin/advancedFormat';\r\nimport 'dayjs/locale/zh-cn';\r\nimport { zeroPad } from '../number';\r\n\r\ndayjs.extend(customParseFormat);\r\ndayjs.extend(utc);\r\ndayjs.extend(timezone);\r\ndayjs.extend(relativeTime);\r\ndayjs.extend(advancedFormat);\r\ndayjs.locale('zh-cn');\r\n\r\ntype BaseTime = number | string | Date | dayjs.Dayjs | null | undefined;\r\n\r\n/**\r\n * 创建 dayjs 实例\r\n * 文档: https://day.js.org/zh-CN/\r\n * @param t 各种规范或不规范的时间\r\n * @returns dayjs 实例\r\n * @example\r\n * const d = toDayjs('2021-01-01'); // dayjs 实例 (无参,则默认当前时间)\r\n * d.format('YYYY-MM-DD HH:mm:ss'); // \"2025-12-10 11:33:16\"\r\n * d.valueOf(); // 毫秒时间戳,如 1765337596913\r\n * d.unix(); // 秒时间戳,如 1765337596\r\n * d.millisecond(); // 毫秒 913\r\n * d.second(); // 秒 16\r\n * d.minute(); // 分 33\r\n * d.hour(); // 时 11\r\n * d.date(); // 日 10\r\n * d.day(); // 星期几 5(周日=0)\r\n * d.month() + 1; // 月 12\r\n * d.year(); // 年 2025\r\n * d.startOf('day').valueOf(); // 当日零点\r\n * d.startOf('month').format('YYYY-MM-DD HH:mm:ss'); // 月初 \"2025-12-01 00:00:00\"\r\n * d.endOf('month').format('YYYY-MM-DD HH:mm:ss'); // 月末 \"2025-12-31 23:59:59\"\r\n * d.fromNow(); // “刚刚”、“x分钟前/后”、“x小时前/后”、“x天前/后”、“x月前/后”、“x年前/后”\r\n * d.isSame(t, 'day'); // 是否与t在同一天\r\n * d.diff(); // 与当前时间相差的毫秒数\r\n * d.diff(t); // 与t相差的毫秒数\r\n * d.diff(t, 'second'); // 与t相差的秒数\r\n * d.diff(t, 'minute'); // 与t相差的分钟数\r\n * d.diff(t, 'hour'); // 与t相差的小时数\r\n * d.diff(t, 'day'); // 与t相差的天数\r\n * d.diff(t, 'week'); // 与t相差的周数\r\n * d.diff(t, 'month'); // 与t相差的月数\r\n * d.diff(t, 'quarter'); // 与t相差的季度数\r\n * d.diff(t, 'year'); // 与t相差的年数\r\n */\r\nexport function toDayjs(t?: BaseTime, fmt?: dayjs.OptionType) {\r\n if (t === null || t === undefined) return dayjs();\r\n if (typeof t === 'number') {\r\n const s = String(Math.trunc(t));\r\n return dayjs(s.length === 10 ? t * 1000 : t, fmt);\r\n }\r\n if (typeof t === 'string') {\r\n const s = t.trim();\r\n if (/^\\d{10}$/.test(s)) return dayjs(Number(s) * 1000, fmt);\r\n if (/^\\d{13}$/.test(s)) return dayjs(Number(s), fmt);\r\n if (/^\\d{4}-\\d{2}-\\d{2}$/.test(s)) return dayjs(s, fmt || 'YYYY-MM-DD');\r\n if (/^\\d{4}\\/\\d{2}\\/\\d{2}$/.test(s)) return dayjs(s, fmt || 'YYYY/MM/DD');\r\n if (/^\\d{4}-\\d{2}-\\d{2}\\s+\\d{2}:\\d{2}:\\d{2}$/.test(s))\r\n return dayjs(s, fmt || 'YYYY-MM-DD HH:mm:ss');\r\n if (/^\\d{4}\\/\\d{2}\\/\\d{2}\\s+\\d{2}:\\d{2}:\\d{2}$/.test(s))\r\n return dayjs(s, fmt || 'YYYY/MM/DD HH:mm:ss');\r\n return dayjs(s, fmt);\r\n }\r\n return dayjs(t, fmt);\r\n}\r\n\r\n/**\r\n * 获取“前几天”的日期范围\r\n * @param offset 正整数天数\r\n * @param fmt 日期格式,默认 `YYYY-MM-DD`\r\n * @returns `[start, end]` 日期字符串数组\r\n * @example\r\n * 若今天为 2025-11-19:\r\n * getDateRangeBefore(1) // ['2025-11-18', '2025-11-19']\r\n * getDateRangeBefore(1, 'YYYY-MM-DD HH:mm:ss') // ['2025-11-18 00:00:00', '2025-11-19 23:59:59']\r\n */\r\nexport function getDateRangeBefore(offset: number, fmt = 'YYYY-MM-DD') {\r\n const now = toDayjs(Date.now());\r\n const n = Math.max(0, Math.trunc(offset));\r\n const hasTime = /H|h|m|s|S|A|a|x|X/.test(fmt);\r\n const startDay = now.add(-n, 'day');\r\n const endDay = now;\r\n const start = (hasTime ? startDay.startOf('day') : startDay).format(fmt);\r\n const end = (hasTime ? endDay.endOf('day') : endDay).format(fmt);\r\n return [start, end];\r\n}\r\n\r\n/**\r\n * 获取“后几天”的日期范围\r\n * - 起点:今天;终点:`offset` 天后\r\n * - 若 `fmt` 含时间令牌(如 `HH:mm:ss`),则返回整日范围:起点为当日零点,终点为当日末尾\r\n * @param offset 正整数天数\r\n * @param fmt 日期格式,默认 `YYYY-MM-DD`\r\n * @returns `[start, end]` 日期字符串数组\r\n * @example\r\n * 若今天为 2025-11-19:\r\n * getDateRangeAfter(1) // ['2025-11-19', '2025-11-20']\r\n * getDateRangeAfter(1, 'YYYY-MM-DD HH:mm:ss') // ['2025-11-19 00:00:00', '2025-11-20 23:59:59']\r\n */\r\nexport function getDateRangeAfter(offset: number, fmt = 'YYYY-MM-DD') {\r\n const now = toDayjs(Date.now());\r\n const n = Math.max(0, Math.trunc(offset));\r\n const hasTime = /H|h|m|s|S|A|a|x|X/.test(fmt);\r\n const startDay = now;\r\n const endDay = now.add(n, 'day');\r\n const start = (hasTime ? startDay.startOf('day') : startDay).format(fmt);\r\n const end = (hasTime ? endDay.endOf('day') : endDay).format(fmt);\r\n return [start, end];\r\n}\r\n\r\n/**\r\n * 获取倒计时的时间分解(零填充字符串)\r\n * @param diff 毫秒差值(正数表示剩余时间,负数/0表示已到期)\r\n * @returns 包含天、时、分、秒、毫秒的零填充对象\r\n * @example\r\n * const diff = toDayjs(t).diff(); // 毫秒差值\r\n * const parts = getCountdownParts(diff); // { d: '00', h: '00', m: '00', s: '00', ms: '000' }\r\n */\r\nexport function getCountdownParts(diff: number) {\r\n if (diff <= 0) return { d: '00', h: '00', m: '00', s: '00', ms: '000' };\r\n\r\n const d = Math.floor(diff / (1000 * 60 * 60 * 24));\r\n const h = Math.floor((diff / (1000 * 60 * 60)) % 24);\r\n const m = Math.floor((diff / (1000 * 60)) % 60);\r\n const s = Math.floor((diff / 1000) % 60);\r\n const ms = diff % 1000;\r\n\r\n return {\r\n d: zeroPad(d),\r\n h: zeroPad(h),\r\n m: zeroPad(m),\r\n s: zeroPad(s),\r\n ms: zeroPad(ms, 3),\r\n };\r\n}\r\n\r\n/**\r\n * 通过出生日期计算年龄\r\n * @param birthdate 生日日期,支持多种格式(会被自动解析)\r\n * @returns 年龄对象,包含 `age`(年龄数值)和 `type`(年龄单位,'year' 表示年,'month' 表示月)\r\n * @example\r\n * // 假设当前日期为 2025-11-19\r\n * getAgeByBirthdate('2025-05-10'); // { age: 6, type: 'month' }\r\n * getAgeByBirthdate('2020-11-19'); // { age: 5, type: 'year' }\r\n * getAgeByBirthdate('2020-12-01'); // { age: 4, type: 'year' }(生日还没到, 所以年龄是4岁)\r\n */\r\nexport function getAgeByBirthdate(birthdate: string) {\r\n const birth = toDayjs(birthdate, 'YYYY-MM-DD');\r\n const now = toDayjs(Date.now());\r\n\r\n // 精确的月份计算\r\n const totalMonths = (now.year() - birth.year()) * 12 + (now.month() - birth.month());\r\n\r\n // 如果当前日期小于出生日期,月份减1\r\n const adjustedMonths = now.date() < birth.date() ? totalMonths - 1 : totalMonths;\r\n\r\n if (adjustedMonths >= 12) {\r\n let age = Math.floor(adjustedMonths / 12);\r\n // 检查生日是否已过\r\n const birthdayThisYear = birth.add(age, 'year');\r\n if (now.isBefore(birthdayThisYear)) {\r\n age--;\r\n }\r\n return { age, type: 'year' };\r\n }\r\n\r\n return { age: adjustedMonths, type: 'month' };\r\n}\r\n\r\n/**\r\n * 对外抛出 dayjs 以便全局配置\r\n * @example\r\n * 切换语言\r\n * dayjs.locale('en'); // 切换为英文\r\n * dayjs.locale('zh-cn'); // 切换为中文 (默认)\r\n */\r\nexport { dayjs };\r\n","/*\r\n * bignumber.js v9.3.1\r\n * A JavaScript library for arbitrary-precision arithmetic.\r\n * https://github.com/MikeMcl/bignumber.js\r\n * Copyright (c) 2025 Michael Mclaughlin <M8ch88l@gmail.com>\r\n * MIT Licensed.\r\n *\r\n * BigNumber.prototype methods | BigNumber methods\r\n * |\r\n * absoluteValue abs | clone\r\n * comparedTo | config set\r\n * decimalPlaces dp | DECIMAL_PLACES\r\n * dividedBy div | ROUNDING_MODE\r\n * dividedToIntegerBy idiv | EXPONENTIAL_AT\r\n * exponentiatedBy pow | RANGE\r\n * integerValue | CRYPTO\r\n * isEqualTo eq | MODULO_MODE\r\n * isFinite | POW_PRECISION\r\n * isGreaterThan gt | FORMAT\r\n * isGreaterThanOrEqualTo gte | ALPHABET\r\n * isInteger | isBigNumber\r\n * isLessThan lt | maximum max\r\n * isLessThanOrEqualTo lte | minimum min\r\n * isNaN | random\r\n * isNegative | sum\r\n * isPositive |\r\n * isZero |\r\n * minus |\r\n * modulo mod |\r\n * multipliedBy times |\r\n * negated |\r\n * plus |\r\n * precision sd |\r\n * shiftedBy |\r\n * squareRoot sqrt |\r\n * toExponential |\r\n * toFixed |\r\n * toFormat |\r\n * toFraction |\r\n * toJSON |\r\n * toNumber |\r\n * toPrecision |\r\n * toString |\r\n * valueOf |\r\n *\r\n */\r\n\r\n\r\nvar\r\n isNumeric = /^-?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?$/i,\r\n mathceil = Math.ceil,\r\n mathfloor = Math.floor,\r\n\r\n bignumberError = '[BigNumber Error] ',\r\n tooManyDigits = bignumberError + 'Number primitive has more than 15 significant digits: ',\r\n\r\n BASE = 1e14,\r\n LOG_BASE = 14,\r\n MAX_SAFE_INTEGER = 0x1fffffffffffff, // 2^53 - 1\r\n // MAX_INT32 = 0x7fffffff, // 2^31 - 1\r\n POWS_TEN = [1, 10, 100, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13],\r\n SQRT_BASE = 1e7,\r\n\r\n // EDITABLE\r\n // The limit on the value of DECIMAL_PLACES, TO_EXP_NEG, TO_EXP_POS, MIN_EXP, MAX_EXP, and\r\n // the arguments to toExponential, toFixed, toFormat, and toPrecision.\r\n MAX = 1E9; // 0 to MAX_INT32\r\n\r\n\r\n/*\r\n * Create and return a BigNumber constructor.\r\n */\r\nfunction clone(configObject) {\r\n var div, convertBase, parseNumeric,\r\n P = BigNumber.prototype = { constructor: BigNumber, toString: null, valueOf: null },\r\n ONE = new BigNumber(1),\r\n\r\n\r\n //----------------------------- EDITABLE CONFIG DEFAULTS -------------------------------\r\n\r\n\r\n // The default values below must be integers within the inclusive ranges stated.\r\n // The values can also be changed at run-time using BigNumber.set.\r\n\r\n // The maximum number of decimal places for operations involving division.\r\n DECIMAL_PLACES = 20, // 0 to MAX\r\n\r\n // The rounding mode used when rounding to the above decimal places, and when using\r\n // toExponential, toFixed, toFormat and toPrecision, and round (default value).\r\n // UP 0 Away from zero.\r\n // DOWN 1 Towards zero.\r\n // CEIL 2 Towards +Infinity.\r\n // FLOOR 3 Towards -Infinity.\r\n // HALF_UP 4 Towards nearest neighbour. If equidistant, up.\r\n // HALF_DOWN 5 Towards nearest neighbour. If equidistant, down.\r\n // HALF_EVEN 6 Towards nearest neighbour. If equidistant, towards even neighbour.\r\n // HALF_CEIL 7 Towards nearest neighbour. If equidistant, towards +Infinity.\r\n // HALF_FLOOR 8 Towards nearest neighbour. If equidistant, towards -Infinity.\r\n ROUNDING_MODE = 4, // 0 to 8\r\n\r\n // EXPONENTIAL_AT : [TO_EXP_NEG , TO_EXP_POS]\r\n\r\n // The exponent value at and beneath which toString returns exponential notation.\r\n // Number type: -7\r\n TO_EXP_NEG = -7, // 0 to -MAX\r\n\r\n // The exponent value at and above which toString returns exponential notation.\r\n // Number type: 21\r\n TO_EXP_POS = 21, // 0 to MAX\r\n\r\n // RANGE : [MIN_EXP, MAX_EXP]\r\n\r\n // The minimum exponent value, beneath which underflow to zero occurs.\r\n // Number type: -324 (5e-324)\r\n MIN_EXP = -1e7, // -1 to -MAX\r\n\r\n // The maximum exponent value, above which overflow to Infinity occurs.\r\n // Number type: 308 (1.7976931348623157e+308)\r\n // For MAX_EXP > 1e7, e.g. new BigNumber('1e100000000').plus(1) may be slow.\r\n MAX_EXP = 1e7, // 1 to MAX\r\n\r\n // Whether to use cryptographically-secure random number generation, if available.\r\n CRYPTO = false, // true or false\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.\r\n // This modulo mode is commonly known as 'truncated division' and is\r\n // equivalent to (a % n) in JavaScript.\r\n // FLOOR 3 The remainder has the same sign as the divisor (Python %).\r\n // HALF_EVEN 6 This modulo mode implements the IEEE 754 remainder function.\r\n // EUCLID 9 Euclidian division. q = sign(n) * floor(a / abs(n)).\r\n // The remainder is always positive.\r\n //\r\n // The truncated division, floored division, Euclidian division and IEEE 754 remainder\r\n // modes are commonly used for the modulus operation.\r\n // Although the other rounding modes can also be used, they may not give useful results.\r\n MODULO_MODE = 1, // 0 to 9\r\n\r\n // The maximum number of significant digits of the result of the exponentiatedBy operation.\r\n // If POW_PRECISION is 0, there will be unlimited significant digits.\r\n POW_PRECISION = 0, // 0 to MAX\r\n\r\n // The format specification used by the BigNumber.prototype.toFormat method.\r\n FORMAT = {\r\n prefix: '',\r\n groupSize: 3,\r\n secondaryGroupSize: 0,\r\n groupSeparator: ',',\r\n decimalSeparator: '.',\r\n fractionGroupSize: 0,\r\n fractionGroupSeparator: '\\xA0', // non-breaking space\r\n suffix: ''\r\n },\r\n\r\n // The alphabet used for base conversion. It must be at least 2 characters long, with no '+',\r\n // '-', '.', whitespace, or repeated character.\r\n // '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ$_'\r\n ALPHABET = '0123456789abcdefghijklmnopqrstuvwxyz',\r\n alphabetHasNormalDecimalDigits = true;\r\n\r\n\r\n //------------------------------------------------------------------------------------------\r\n\r\n\r\n // CONSTRUCTOR\r\n\r\n\r\n /*\r\n * The BigNumber constructor and exported function.\r\n * Create and return a new instance of a BigNumber object.\r\n *\r\n * v {number|string|BigNumber} A numeric value.\r\n * [b] {number} The base of v. Integer, 2 to ALPHABET.length inclusive.\r\n */\r\n function BigNumber(v, b) {\r\n var alphabet, c, caseChanged, e, i, isNum, len, str,\r\n x = this;\r\n\r\n // Enable constructor call without `new`.\r\n if (!(x instanceof BigNumber)) return new BigNumber(v, b);\r\n\r\n if (b == null) {\r\n\r\n if (v && v._isBigNumber === true) {\r\n x.s = v.s;\r\n\r\n if (!v.c || v.e > MAX_EXP) {\r\n x.c = x.e = null;\r\n } else if (v.e < MIN_EXP) {\r\n x.c = [x.e = 0];\r\n } else {\r\n x.e = v.e;\r\n x.c = v.c.slice();\r\n }\r\n\r\n return;\r\n }\r\n\r\n if ((isNum = typeof v == 'number') && v * 0 == 0) {\r\n\r\n // Use `1 / n` to handle minus zero also.\r\n x.s = 1 / v < 0 ? (v = -v, -1) : 1;\r\n\r\n // Fast path for integers, where n < 2147483648 (2**31).\r\n if (v === ~~v) {\r\n for (e = 0, i = v; i >= 10; i /= 10, e++);\r\n\r\n if (e > MAX_EXP) {\r\n x.c = x.e = null;\r\n } else {\r\n x.e = e;\r\n x.c = [v];\r\n }\r\n\r\n return;\r\n }\r\n\r\n str = String(v);\r\n } else {\r\n\r\n if (!isNumeric.test(str = String(v))) return parseNumeric(x, str, isNum);\r\n\r\n x.s = str.charCodeAt(0) == 45 ? (str = str.slice(1), -1) : 1;\r\n }\r\n\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 } else {\r\n\r\n // '[BigNumber Error] Base {not a primitive number|not an integer|out of range}: {b}'\r\n intCheck(b, 2, ALPHABET.length, 'Base');\r\n\r\n // Allow exponential notation to be used with base 10 argument, while\r\n // also rounding to DECIMAL_PLACES as with other bases.\r\n if (b == 10 && alphabetHasNormalDecimalDigits) {\r\n x = new BigNumber(v);\r\n return round(x, DECIMAL_PLACES + x.e + 1, ROUNDING_MODE);\r\n }\r\n\r\n str = String(v);\r\n\r\n if (isNum = typeof v == 'number') {\r\n\r\n // Avoid potential interpretation of Infinity and NaN as base 44+ values.\r\n if (v * 0 != 0) return parseNumeric(x, str, isNum, b);\r\n\r\n x.s = 1 / v < 0 ? (str = str.slice(1), -1) : 1;\r\n\r\n // '[BigNumber Error] Number primitive has more than 15 significant digits: {n}'\r\n if (BigNumber.DEBUG && str.replace(/^0\\.0*|\\./, '').length > 15) {\r\n throw Error\r\n (tooManyDigits + v);\r\n }\r\n } else {\r\n x.s = str.charCodeAt(0) === 45 ? (str = str.slice(1), -1) : 1;\r\n }\r\n\r\n alphabet = ALPHABET.slice(0, b);\r\n e = i = 0;\r\n\r\n // Check that str is a valid base b number.\r\n // Don't use RegExp, so alphabet can contain special characters.\r\n for (len = str.length; i < len; i++) {\r\n if (alphabet.indexOf(c = str.charAt(i)) < 0) {\r\n if (c == '.') {\r\n\r\n // If '.' is not the first character and it has not be found before.\r\n if (i > e) {\r\n e = len;\r\n continue;\r\n }\r\n } else if (!caseChanged) {\r\n\r\n // Allow e.g. hexadecimal 'FF' as well as 'ff'.\r\n if (str == str.toUpperCase() && (str = str.toLowerCase()) ||\r\n str == str.toLowerCase() && (str = str.toUpperCase())) {\r\n caseChanged = true;\r\n i = -1;\r\n e = 0;\r\n continue;\r\n }\r\n }\r\n\r\n return parseNumeric(x, String(v), isNum, b);\r\n }\r\n }\r\n\r\n // Prevent later check for length on converted number.\r\n isNum = false;\r\n str = convertBase(str, b, 10, x.s);\r\n\r\n // Decimal point?\r\n if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');\r\n else 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) === 48;);\r\n\r\n if (str = str.slice(i, ++len)) {\r\n len -= i;\r\n\r\n // '[BigNumber Error] Number primitive has more than 15 significant digits: {n}'\r\n if (isNum && BigNumber.DEBUG &&\r\n len > 15 && (v > MAX_SAFE_INTEGER || v !== mathfloor(v))) {\r\n throw Error\r\n (tooManyDigits + (x.s * v));\r\n }\r\n\r\n // Overflow?\r\n if ((e = e - i - 1) > MAX_EXP) {\r\n\r\n // Infinity.\r\n x.c = x.e = null;\r\n\r\n // Underflow?\r\n } else if (e < MIN_EXP) {\r\n\r\n // Zero.\r\n x.c = [x.e = 0];\r\n } else {\r\n x.e = e;\r\n x.c = [];\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 element of the coefficient array.\r\n i = (e + 1) % LOG_BASE;\r\n if (e < 0) i += LOG_BASE; // i < 1\r\n\r\n if (i < len) {\r\n if (i) x.c.push(+str.slice(0, i));\r\n\r\n for (len -= LOG_BASE; i < len;) {\r\n x.c.push(+str.slice(i, i += LOG_BASE));\r\n }\r\n\r\n i = LOG_BASE - (str = str.slice(i)).length;\r\n } else {\r\n i -= len;\r\n }\r\n\r\n for (; i--; str += '0');\r\n x.c.push(+str);\r\n }\r\n } else {\r\n\r\n // Zero.\r\n x.c = [x.e = 0];\r\n }\r\n }\r\n\r\n\r\n // CONSTRUCTOR PROPERTIES\r\n\r\n\r\n BigNumber.clone = clone;\r\n\r\n BigNumber.ROUND_UP = 0;\r\n BigNumber.ROUND_DOWN = 1;\r\n BigNumber.ROUND_CEIL = 2;\r\n BigNumber.ROUND_FLOOR = 3;\r\n BigNumber.ROUND_HALF_UP = 4;\r\n BigNumber.ROUND_HALF_DOWN = 5;\r\n BigNumber.ROUND_HALF_EVEN = 6;\r\n BigNumber.ROUND_HALF_CEIL = 7;\r\n BigNumber.ROUND_HALF_FLOOR = 8;\r\n BigNumber.EUCLID = 9;\r\n\r\n\r\n /*\r\n * Configure infrequently-changing library-wide settings.\r\n *\r\n * Accept an object with the following optional properties (if the value of a property is\r\n * a number, it must be an integer within the inclusive range stated):\r\n *\r\n * DECIMAL_PLACES {number} 0 to MAX\r\n * ROUNDING_MODE {number} 0 to 8\r\n * EXPONENTIAL_AT {number|number[]} -MAX to MAX or [-MAX to 0, 0 to MAX]\r\n * RANGE {number|number[]} -MAX to MAX (not zero) or [-MAX to -1, 1 to MAX]\r\n * CRYPTO {boolean} true or false\r\n * MODULO_MODE {number} 0 to 9\r\n * POW_PRECISION {number} 0 to MAX\r\n * ALPHABET {string} A string of two or more unique characters which does\r\n * not contain '.'.\r\n * FORMAT {object} An object with some of the following properties:\r\n * prefix {string}\r\n * groupSize {number}\r\n * secondaryGroupSize {number}\r\n * groupSeparator {string}\r\n * decimalSeparator {string}\r\n * fractionGroupSize {number}\r\n * fractionGroupSeparator {string}\r\n * suffix {string}\r\n *\r\n * (The values assigned to the above FORMAT object properties are not checked for validity.)\r\n *\r\n * E.g.\r\n * BigNumber.config({ DECIMAL_PLACES : 20, ROUNDING_MODE : 4 })\r\n *\r\n * Ignore properties/parameters set to null or undefined, except for ALPHABET.\r\n *\r\n * Return an object with the properties current values.\r\n */\r\n BigNumber.config = BigNumber.set = function (obj) {\r\n var p, v;\r\n\r\n if (obj != null) {\r\n\r\n if (typeof obj == 'object') {\r\n\r\n // DECIMAL_PLACES {number} Integer, 0 to MAX inclusive.\r\n // '[BigNumber Error] DECIMAL_PLACES {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'DECIMAL_PLACES')) {\r\n v = obj[p];\r\n intCheck(v, 0, MAX, p);\r\n DECIMAL_PLACES = v;\r\n }\r\n\r\n // ROUNDING_MODE {number} Integer, 0 to 8 inclusive.\r\n // '[BigNumber Error] ROUNDING_MODE {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'ROUNDING_MODE')) {\r\n v = obj[p];\r\n intCheck(v, 0, 8, p);\r\n ROUNDING_MODE = v;\r\n }\r\n\r\n // EXPONENTIAL_AT {number|number[]}\r\n // Integer, -MAX to MAX inclusive or\r\n // [integer -MAX to 0 inclusive, 0 to MAX inclusive].\r\n // '[BigNumber Error] EXPONENTIAL_AT {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'EXPONENTIAL_AT')) {\r\n v = obj[p];\r\n if (v && v.pop) {\r\n intCheck(v[0], -MAX, 0, p);\r\n intCheck(v[1], 0, MAX, p);\r\n TO_EXP_NEG = v[0];\r\n TO_EXP_POS = v[1];\r\n } else {\r\n intCheck(v, -MAX, MAX, p);\r\n TO_EXP_NEG = -(TO_EXP_POS = v < 0 ? -v : v);\r\n }\r\n }\r\n\r\n // RANGE {number|number[]} Non-zero integer, -MAX to MAX inclusive or\r\n // [integer -MAX to -1 inclusive, integer 1 to MAX inclusive].\r\n // '[BigNumber Error] RANGE {not a primitive number|not an integer|out of range|cannot be zero}: {v}'\r\n if (obj.hasOwnProperty(p = 'RANGE')) {\r\n v = obj[p];\r\n if (v && v.pop) {\r\n intCheck(v[0], -MAX, -1, p);\r\n intCheck(v[1], 1, MAX, p);\r\n MIN_EXP = v[0];\r\n MAX_EXP = v[1];\r\n } else {\r\n intCheck(v, -MAX, MAX, p);\r\n if (v) {\r\n MIN_EXP = -(MAX_EXP = v < 0 ? -v : v);\r\n } else {\r\n throw Error\r\n (bignumberError + p + ' cannot be zero: ' + v);\r\n }\r\n }\r\n }\r\n\r\n // CRYPTO {boolean} true or false.\r\n // '[BigNumber Error] CRYPTO not true or false: {v}'\r\n // '[BigNumber Error] crypto unavailable'\r\n if (obj.hasOwnProperty(p = 'CRYPTO')) {\r\n v = obj[p];\r\n if (v === !!v) {\r\n if (v) {\r\n if (typeof crypto != 'undefined' && crypto &&\r\n (crypto.getRandomValues || crypto.randomBytes)) {\r\n CRYPTO = v;\r\n } else {\r\n CRYPTO = !v;\r\n throw Error\r\n (bignumberError + 'crypto unavailable');\r\n }\r\n } else {\r\n CRYPTO = v;\r\n }\r\n } else {\r\n throw Error\r\n (bignumberError + p + ' not true or false: ' + v);\r\n }\r\n }\r\n\r\n // MODULO_MODE {number} Integer, 0 to 9 inclusive.\r\n // '[BigNumber Error] MODULO_MODE {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'MODULO_MODE')) {\r\n v = obj[p];\r\n intCheck(v, 0, 9, p);\r\n MODULO_MODE = v;\r\n }\r\n\r\n // POW_PRECISION {number} Integer, 0 to MAX inclusive.\r\n // '[BigNumber Error] POW_PRECISION {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'POW_PRECISION')) {\r\n v = obj[p];\r\n intCheck(v, 0, MAX, p);\r\n POW_PRECISION = v;\r\n }\r\n\r\n // FORMAT {object}\r\n // '[BigNumber Error] FORMAT not an object: {v}'\r\n if (obj.hasOwnProperty(p = 'FORMAT')) {\r\n v = obj[p];\r\n if (typeof v == 'object') FORMAT = v;\r\n else throw Error\r\n (bignumberError + p + ' not an object: ' + v);\r\n }\r\n\r\n // ALPHABET {string}\r\n // '[BigNumber Error] ALPHABET invalid: {v}'\r\n if (obj.hasOwnProperty(p = 'ALPHABET')) {\r\n v = obj[p];\r\n\r\n // Disallow if less than two characters,\r\n // or if it contains '+', '-', '.', whitespace, or a repeated character.\r\n if (typeof v == 'string' && !/^.?$|[+\\-.\\s]|(.).*\\1/.test(v)) {\r\n alphabetHasNormalDecimalDigits = v.slice(0, 10) == '0123456789';\r\n ALPHABET = v;\r\n } else {\r\n throw Error\r\n (bignumberError + p + ' invalid: ' + v);\r\n }\r\n }\r\n\r\n } else {\r\n\r\n // '[BigNumber Error] Object expected: {v}'\r\n throw Error\r\n (bignumberError + 'Object expected: ' + obj);\r\n }\r\n }\r\n\r\n return {\r\n DECIMAL_PLACES: DECIMAL_PLACES,\r\n ROUNDING_MODE: ROUNDING_MODE,\r\n EXPONENTIAL_AT: [TO_EXP_NEG, TO_EXP_POS],\r\n RANGE: [MIN_EXP, MAX_EXP],\r\n CRYPTO: CRYPTO,\r\n MODULO_MODE: MODULO_MODE,\r\n POW_PRECISION: POW_PRECISION,\r\n FORMAT: FORMAT,\r\n ALPHABET: ALPHABET\r\n };\r\n };\r\n\r\n\r\n /*\r\n * Return true if v is a BigNumber instance, otherwise return false.\r\n *\r\n * If BigNumber.DEBUG is true, throw if a BigNumber instance is not well-formed.\r\n *\r\n * v {any}\r\n *\r\n * '[BigNumber Error] Invalid BigNumber: {v}'\r\n */\r\n BigNumber.isBigNumber = function (v) {\r\n if (!v || v._isBigNumber !== true) return false;\r\n if (!BigNumber.DEBUG) return true;\r\n\r\n var i, n,\r\n c = v.c,\r\n e = v.e,\r\n s = v.s;\r\n\r\n out: if ({}.toString.call(c) == '[object Array]') {\r\n\r\n if ((s === 1 || s === -1) && e >= -MAX && e <= MAX && e === mathfloor(e)) {\r\n\r\n // If the first element is zero, the BigNumber value must be zero.\r\n if (c[0] === 0) {\r\n if (e === 0 && c.length === 1) return true;\r\n break out;\r\n }\r\n\r\n // Calculate number of digits that c[0] should have, based on the exponent.\r\n i = (e + 1) % LOG_BASE;\r\n if (i < 1) i += LOG_BASE;\r\n\r\n // Calculate number of digits of c[0].\r\n //if (Math.ceil(Math.log(c[0] + 1) / Math.LN10) == i) {\r\n if (String(c[0]).length == i) {\r\n\r\n for (i = 0; i < c.length; i++) {\r\n n = c[i];\r\n if (n < 0 || n >= BASE || n !== mathfloor(n)) break out;\r\n }\r\n\r\n // Last element cannot be zero, unless it is the only element.\r\n if (n !== 0) return true;\r\n }\r\n }\r\n\r\n // Infinity/NaN\r\n } else if (c === null && e === null && (s === null || s === 1 || s === -1)) {\r\n return true;\r\n }\r\n\r\n throw Error\r\n (bignumberError + 'Invalid BigNumber: ' + v);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the maximum of the arguments.\r\n *\r\n * arguments {number|string|BigNumber}\r\n */\r\n BigNumber.maximum = BigNumber.max = function () {\r\n return maxOrMin(arguments, -1);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the minimum of the arguments.\r\n *\r\n * arguments {number|string|BigNumber}\r\n */\r\n BigNumber.minimum = BigNumber.min = function () {\r\n return maxOrMin(arguments, 1);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber with a random value equal to or greater than 0 and less than 1,\r\n * and with dp, or DECIMAL_PLACES if dp is omitted, decimal places (or less if trailing\r\n * zeros are produced).\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp}'\r\n * '[BigNumber Error] crypto unavailable'\r\n */\r\n BigNumber.random = (function () {\r\n var pow2_53 = 0x20000000000000;\r\n\r\n // Return a 53 bit integer n, where 0 <= n < 9007199254740992.\r\n // Check if Math.random() produces more than 32 bits of randomness.\r\n // If it does, assume at least 53 bits are produced, otherwise assume at least 30 bits.\r\n // 0x40000000 is 2^30, 0x800000 is 2^23, 0x1fffff is 2^21 - 1.\r\n var random53bitInt = (Math.random() * pow2_53) & 0x1fffff\r\n ? function () { return mathfloor(Math.random() * pow2_53); }\r\n : function () { return ((Math.random() * 0x40000000 | 0) * 0x800000) +\r\n (Math.random() * 0x800000 | 0); };\r\n\r\n return function (dp) {\r\n var a, b, e, k, v,\r\n i = 0,\r\n c = [],\r\n rand = new BigNumber(ONE);\r\n\r\n if (dp == null) dp = DECIMAL_PLACES;\r\n else intCheck(dp, 0, MAX);\r\n\r\n k = mathceil(dp / LOG_BASE);\r\n\r\n if (CRYPTO) {\r\n\r\n // Browsers supporting crypto.getRandomValues.\r\n if (crypto.getRandomValues) {\r\n\r\n a = crypto.getRandomValues(new Uint32Array(k *= 2));\r\n\r\n for (; i < k;) {\r\n\r\n // 53 bits:\r\n // ((Math.pow(2, 32) - 1) * Math.pow(2, 21)).toString(2)\r\n // 11111 11111111 11111111 11111111 11100000 00000000 00000000\r\n // ((Math.pow(2, 32) - 1) >>> 11).toString(2)\r\n // 11111 11111111 11111111\r\n // 0x20000 is 2^21.\r\n v = a[i] * 0x20000 + (a[i + 1] >>> 11);\r\n\r\n // Rejection sampling:\r\n // 0 <= v < 9007199254740992\r\n // Probability that v >= 9e15, is\r\n // 7199254740992 / 9007199254740992 ~= 0.0008, i.e. 1 in 1251\r\n if (v >= 9e15) {\r\n b = crypto.getRandomValues(new Uint32Array(2));\r\n a[i] = b[0];\r\n a[i + 1] = b[1];\r\n } else {\r\n\r\n // 0 <= v <= 8999999999999999\r\n // 0 <= (v % 1e14) <= 99999999999999\r\n c.push(v % 1e14);\r\n i += 2;\r\n }\r\n }\r\n i = k / 2;\r\n\r\n // Node.js supporting crypto.randomBytes.\r\n } else if (crypto.randomBytes) {\r\n\r\n // buffer\r\n a = crypto.randomBytes(k *= 7);\r\n\r\n for (; i < k;) {\r\n\r\n // 0x1000000000000 is 2^48, 0x10000000000 is 2^40\r\n // 0x100000000 is 2^32, 0x1000000 is 2^24\r\n // 11111 11111111 11111111 11111111 11111111 11111111 11111111\r\n // 0 <= v < 9007199254740992\r\n v = ((a[i] & 31) * 0x1000000000000) + (a[i + 1] * 0x10000000000) +\r\n (a[i + 2] * 0x100000000) + (a[i + 3] * 0x1000000) +\r\n (a[i + 4] << 16) + (a[i + 5] << 8) + a[i + 6];\r\n\r\n if (v >= 9e15) {\r\n crypto.randomBytes(7).copy(a, i);\r\n } else {\r\n\r\n // 0 <= (v % 1e14) <= 99999999999999\r\n c.push(v % 1e14);\r\n i += 7;\r\n }\r\n }\r\n i = k / 7;\r\n } else {\r\n CRYPTO = false;\r\n throw Error\r\n (bignumberError + 'crypto unavailable');\r\n }\r\n }\r\n\r\n // Use Math.random.\r\n if (!CRYPTO) {\r\n\r\n for (; i < k;) {\r\n v = random53bitInt();\r\n if (v < 9e15) c[i++] = v % 1e14;\r\n }\r\n }\r\n\r\n k = c[--i];\r\n dp %= LOG_BASE;\r\n\r\n // Convert trailing digits to zeros according to dp.\r\n if (k && dp) {\r\n v = POWS_TEN[LOG_BASE - dp];\r\n c[i] = mathfloor(k / v) * v;\r\n }\r\n\r\n // Remove trailing elements which are zero.\r\n for (; c[i] === 0; c.pop(), i--);\r\n\r\n // Zero?\r\n if (i < 0) {\r\n c = [e = 0];\r\n } else {\r\n\r\n // Remove leading elements which are zero and adjust exponent accordingly.\r\n for (e = -1 ; c[0] === 0; c.splice(0, 1), e -= LOG_BASE);\r\n\r\n // Count the digits of the first element of c to determine leading zeros, and...\r\n for (i = 1, v = c[0]; v >= 10; v /= 10, i++);\r\n\r\n // adjust the exponent accordingly.\r\n if (i < LOG_BASE) e -= LOG_BASE - i;\r\n }\r\n\r\n rand.e = e;\r\n rand.c = c;\r\n return rand;\r\n };\r\n })();\r\n\r\n\r\n /*\r\n * Return a BigNumber whose value is the sum of the arguments.\r\n *\r\n * arguments {number|string|BigNumber}\r\n */\r\n BigNumber.sum = function () {\r\n var i = 1,\r\n args = arguments,\r\n sum = new BigNumber(args[0]);\r\n for (; i < args.length;) sum = sum.plus(args[i++]);\r\n return sum;\r\n };\r\n\r\n\r\n // PRIVATE FUNCTIONS\r\n\r\n\r\n // Called by BigNumber and BigNumber.prototype.toString.\r\n convertBase = (function () {\r\n var decimal = '0123456789';\r\n\r\n /*\r\n * Convert string of baseIn to an array of numbers of baseOut.\r\n * Eg. toBaseOut('255', 10, 16) returns [15, 15].\r\n * Eg. toBaseOut('ff', 16, 10) returns [2, 5, 5].\r\n */\r\n function toBaseOut(str, baseIn, baseOut, alphabet) {\r\n var j,\r\n arr = [0],\r\n arrL,\r\n i = 0,\r\n len = str.length;\r\n\r\n for (; i < len;) {\r\n for (arrL = arr.length; arrL--; arr[arrL] *= baseIn);\r\n\r\n arr[0] += alphabet.indexOf(str.charAt(i++));\r\n\r\n for (j = 0; j < arr.length; j++) {\r\n\r\n if (arr[j] > baseOut - 1) {\r\n if (arr[j + 1] == null) 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 // Convert a numeric string of baseIn to a numeric string of baseOut.\r\n // If the caller is toString, we are converting from base 10 to baseOut.\r\n // If the caller is BigNumber, we are converting from baseIn to base 10.\r\n return function (str, baseIn, baseOut, sign, callerIsToString) {\r\n var alphabet, d, e, k, r, x, xc, y,\r\n i = str.indexOf('.'),\r\n dp = DECIMAL_PLACES,\r\n rm = ROUNDING_MODE;\r\n\r\n // Non-integer.\r\n if (i >= 0) {\r\n k = POW_PRECISION;\r\n\r\n // Unlimited precision.\r\n POW_PRECISION = 0;\r\n str = str.replace('.', '');\r\n y = new BigNumber(baseIn);\r\n x = y.pow(str.length - i);\r\n POW_PRECISION = k;\r\n\r\n // Convert str as if an integer, then restore the fraction part by dividing the\r\n // result by its base raised to a power.\r\n\r\n y.c = toBaseOut(toFixedPoint(coeffToString(x.c), x.e, '0'),\r\n 10, baseOut, decimal);\r\n y.e = y.c.length;\r\n }\r\n\r\n // Convert the number as integer.\r\n\r\n xc = toBaseOut(str, baseIn, baseOut, callerIsToString\r\n ? (alphabet = ALPHABET, decimal)\r\n : (alphabet = decimal, ALPHABET));\r\n\r\n // xc now represents str as an integer and converted to baseOut. e is the exponent.\r\n e = k = xc.length;\r\n\r\n // Remove trailing zeros.\r\n for (; xc[--k] == 0; xc.pop());\r\n\r\n // Zero?\r\n if (!xc[0]) return alphabet.charAt(0);\r\n\r\n // Does str represent an integer? If so, no need for the division.\r\n if (i < 0) {\r\n --e;\r\n } else {\r\n x.c = xc;\r\n x.e = e;\r\n\r\n // The sign is needed for correct rounding.\r\n x.s = sign;\r\n x = div(x, y, dp, rm, baseOut);\r\n xc = x.c;\r\n r = x.r;\r\n e = x.e;\r\n }\r\n\r\n // xc now represents str converted to baseOut.\r\n\r\n // The index of the rounding digit.\r\n d = e + dp + 1;\r\n\r\n // The rounding digit: the digit to the right of the digit that may be rounded up.\r\n i = xc[d];\r\n\r\n // Look at the rounding digits and mode to determine whether to round up.\r\n\r\n k = baseOut / 2;\r\n r = r || d < 0 || xc[d + 1] != null;\r\n\r\n r = rm < 4 ? (i != null || r) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))\r\n : i > k || i == k &&(rm == 4 || r || rm == 6 && xc[d - 1] & 1 ||\r\n rm == (x.s < 0 ? 8 : 7));\r\n\r\n // If the index of the rounding digit is not greater than zero, or xc represents\r\n // zero, then the result of the base conversion is zero or, if rounding up, a value\r\n // such as 0.00001.\r\n if (d < 1 || !xc[0]) {\r\n\r\n // 1^-dp or 0\r\n str = r ? toFixedPoint(alphabet.charAt(1), -dp, alphabet.charAt(0)) : alphabet.charAt(0);\r\n } else {\r\n\r\n // Truncate xc to the required number of decimal places.\r\n xc.length = d;\r\n\r\n // Round up?\r\n if (r) {\r\n\r\n // Rounding up may mean the previous digit has to be rounded up and so on.\r\n for (--baseOut; ++xc[--d] > baseOut;) {\r\n xc[d] = 0;\r\n\r\n if (!d) {\r\n ++e;\r\n xc = [1].concat(xc);\r\n }\r\n }\r\n }\r\n\r\n // Determine trailing zeros.\r\n for (k = xc.length; !xc[--k];);\r\n\r\n // E.g. [4, 11, 15] becomes 4bf.\r\n for (i = 0, str = ''; i <= k; str += alphabet.charAt(xc[i++]));\r\n\r\n // Add leading zeros, decimal point and trailing zeros as required.\r\n str = toFixedPoint(str, e, alphabet.charAt(0));\r\n }\r\n\r\n // The caller will add the sign.\r\n return str;\r\n };\r\n })();\r\n\r\n\r\n // Perform division in the specified base. Called by div and convertBase.\r\n div = (function () {\r\n\r\n // Assume non-zero x and k.\r\n function multiply(x, k, base) {\r\n var m, temp, xlo, xhi,\r\n carry = 0,\r\n i = x.length,\r\n klo = k % SQRT_BASE,\r\n khi = k / SQRT_BASE | 0;\r\n\r\n for (x = x.slice(); i--;) {\r\n xlo = x[i] % SQRT_BASE;\r\n xhi = x[i] / SQRT_BASE | 0;\r\n m = khi * xlo + xhi * klo;\r\n temp = klo * xlo + ((m % SQRT_BASE) * SQRT_BASE) + carry;\r\n carry = (temp / base | 0) + (m / SQRT_BASE | 0) + khi * xhi;\r\n x[i] = temp % base;\r\n }\r\n\r\n if (carry) x = [carry].concat(x);\r\n\r\n return x;\r\n }\r\n\r\n function compare(a, b, aL, bL) {\r\n var i, cmp;\r\n\r\n if (aL != bL) {\r\n cmp = aL > bL ? 1 : -1;\r\n } else {\r\n\r\n for (i = cmp = 0; i < aL; i++) {\r\n\r\n if (a[i] != b[i]) {\r\n cmp = a[i] > b[i] ? 1 : -1;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return cmp;\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.splice(0, 1));\r\n }\r\n\r\n // x: dividend, y: divisor.\r\n return function (x, y, dp, rm, base) {\r\n var cmp, e, i, more, n, prod, prodL, q, qc, rem, remL, rem0, xi, xL, yc0,\r\n yL, yz,\r\n s = x.s == y.s ? 1 : -1,\r\n xc = x.c,\r\n yc = y.c;\r\n\r\n // Either NaN, Infinity or 0?\r\n if (!xc || !xc[0] || !yc || !yc[0]) {\r\n\r\n return new BigNumber(\r\n\r\n // Return NaN if either NaN, or both Infinity or 0.\r\n !x.s || !y.s || (xc ? yc && xc[0] == yc[0] : !yc) ? NaN :\r\n\r\n // Return ±0 if x is ±0 or y is ±Infinity, or return ±Infinity as y is ±0.\r\n xc && xc[0] == 0 || !yc ? s * 0 : s / 0\r\n );\r\n }\r\n\r\n q = new BigNumber(s);\r\n qc = q.c = [];\r\n e = x.e - y.e;\r\n s = dp + e + 1;\r\n\r\n if (!base) {\r\n base = BASE;\r\n e = bitFloor(x.e / LOG_BASE) - bitFloor(y.e / LOG_BASE);\r\n s = s / LOG_BASE | 0;\r\n }\r\n\r\n // Result exponent may be one less then the current value of e.\r\n // The coefficients of the BigNumbers from convertBase may have trailing zeros.\r\n for (i = 0; yc[i] == (xc[i] || 0); i++);\r\n\r\n if (yc[i] > (xc[i] || 0)) e--;\r\n\r\n if (s < 0) {\r\n qc.push(1);\r\n more = true;\r\n } else {\r\n xL = xc.length;\r\n yL = yc.length;\r\n i = 0;\r\n s += 2;\r\n\r\n // Normalise xc and yc so highest order digit of yc is >= base / 2.\r\n\r\n n = mathfloor(base / (yc[0] + 1));\r\n\r\n // Not necessary, but to handle odd bases where yc[0] == (base / 2) - 1.\r\n // if (n > 1 || n++ == 1 && yc[0] < base / 2) {\r\n if (n > 1) {\r\n yc = multiply(yc, n, base);\r\n xc = multiply(xc, n, base);\r\n yL = yc.length;\r\n xL = xc.length;\r\n }\r\n\r\n xi = yL;\r\n rem = xc.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 yz = yc.slice();\r\n yz = [0].concat(yz);\r\n yc0 = yc[0];\r\n if (yc[1] >= base / 2) yc0++;\r\n // Not necessary, but to prevent trial digit n > base, when using base 3.\r\n // else if (base == 3 && yc0 == 1) yc0 = 1 + 1e-15;\r\n\r\n do {\r\n n = 0;\r\n\r\n // Compare divisor and remainder.\r\n cmp = compare(yc, rem, yL, remL);\r\n\r\n // If divisor < remainder.\r\n if (cmp < 0) {\r\n\r\n // Calculate trial digit, n.\r\n\r\n rem0 = rem[0];\r\n if (yL != remL) rem0 = rem0 * base + (rem[1] || 0);\r\n\r\n // n is how many times the divisor goes into the current remainder.\r\n n = mathfloor(rem0 / yc0);\r\n\r\n // Algorithm:\r\n // product = divisor multiplied by trial digit (n).\r\n // Compare product and remainder.\r\n // If product is greater than remainder:\r\n // Subtract divisor from product, decrement trial digit.\r\n // Subtract product from remainder.\r\n // If product was less than remainder at the last compare:\r\n // Compare new remainder and divisor.\r\n // If remainder is greater than divisor:\r\n // Subtract divisor from remainder, increment trial digit.\r\n\r\n if (n > 1) {\r\n\r\n // n may be > base only when base is 3.\r\n if (n >= base) n = base - 1;\r\n\r\n // product = divisor * trial digit.\r\n prod = multiply(yc, n, base);\r\n prodL = prod.length;\r\n remL = rem.length;\r\n\r\n // Compare product and remainder.\r\n // If product > remainder then trial digit n too high.\r\n // n is 1 too high about 5% of the time, and is not known to have\r\n // ever been more than 1 too high.\r\n while (compare(prod, rem, prodL, remL) == 1) {\r\n n--;\r\n\r\n // Subtract divisor from product.\r\n subtract(prod, yL < prodL ? yz : yc, prodL, base);\r\n prodL = prod.length;\r\n cmp = 1;\r\n }\r\n } else {\r\n\r\n // n is 0 or 1, cmp is -1.\r\n // If n is 0, there is no need to compare yc and rem again below,\r\n // so change cmp to 1 to avoid it.\r\n // If n is 1, leave cmp as -1, so yc and rem are compared again.\r\n if (n == 0) {\r\n\r\n // divisor < remainder, so n must be at least 1.\r\n cmp = n = 1;\r\n }\r\n\r\n // product = divisor\r\n prod = yc.slice();\r\n prodL = prod.length;\r\n }\r\n\r\n if (prodL < remL) prod = [0].concat(prod);\r\n\r\n // Subtract product from remainder.\r\n subtract(rem, prod, remL, base);\r\n remL = rem.length;\r\n\r\n // If product was < remainder.\r\n if (cmp == -1) {\r\n\r\n // Compare divisor and new remainder.\r\n // If divisor < new remainder, subtract divisor from remainder.\r\n // Trial digit n too low.\r\n // n is 1 too low about 5% of the time, and very rarely 2 too low.\r\n while (compare(yc, rem, yL, remL) < 1) {\r\n n++;\r\n\r\n // Subtract divisor from remainder.\r\n subtract(rem, yL < remL ? yz : yc, remL, base);\r\n remL = rem.length;\r\n }\r\n }\r\n } else if (cmp === 0) {\r\n n++;\r\n rem = [0];\r\n } // else cmp === 1 and n will be 0\r\n\r\n // Add the next digit, n, to the result array.\r\n qc[i++] = n;\r\n\r\n // Update the remainder.\r\n if (rem[0]) {\r\n rem[remL++] = xc[xi] || 0;\r\n } else {\r\n rem = [xc[xi]];\r\n remL = 1;\r\n }\r\n } while ((xi++ < xL || rem[0] != null) && s--);\r\n\r\n more = rem[0] != null;\r\n\r\n // Leading zero?\r\n if (!qc[0]) qc.splice(0, 1);\r\n }\r\n\r\n if (base == BASE) {\r\n\r\n // To calculate q.e, first get the number of digits of qc[0].\r\n for (i = 1, s = qc[0]; s >= 10; s /= 10, i++);\r\n\r\n round(q, dp + (q.e = i + e * LOG_BASE - 1) + 1, rm, more);\r\n\r\n // Caller is convertBase.\r\n } else {\r\n q.e = e;\r\n q.r = +more;\r\n }\r\n\r\n return q;\r\n };\r\n })();\r\n\r\n\r\n /*\r\n * Return a string representing the value of BigNumber n in fixed-point or exponential\r\n * notation rounded to the specified decimal places or significant digits.\r\n *\r\n * n: a BigNumber.\r\n * i: the index of the last digit required (i.e. the digit that may be rounded up).\r\n * rm: the rounding mode.\r\n * id: 1 (toExponential) or 2 (toPrecision).\r\n */\r\n function format(n, i, rm, id) {\r\n var c0, e, ne, len, str;\r\n\r\n if (rm == null) rm = ROUNDING_MODE;\r\n else intCheck(rm, 0, 8);\r\n\r\n if (!n.c) return n.toString();\r\n\r\n c0 = n.c[0];\r\n ne = n.e;\r\n\r\n if (i == null) {\r\n str = coeffToString(n.c);\r\n str = id == 1 || id == 2 && (ne <= TO_EXP_NEG || ne >= TO_EXP_POS)\r\n ? toExponential(str, ne)\r\n : toFixedPoint(str, ne, '0');\r\n } else {\r\n n = round(new BigNumber(n), i, rm);\r\n\r\n // n.e may have changed if the value was rounded up.\r\n e = n.e;\r\n\r\n str = coeffToString(n.c);\r\n len = str.length;\r\n\r\n // toPrecision returns exponential notation if the number of significant digits\r\n // specified is less than the number of digits necessary to represent the integer\r\n // part of the value in fixed-point notation.\r\n\r\n // Exponential notation.\r\n if (id == 1 || id == 2 && (i <= e || e <= TO_EXP_NEG)) {\r\n\r\n // Append zeros?\r\n for (; len < i; str += '0', len++);\r\n str = toExponential(str, e);\r\n\r\n // Fixed-point notation.\r\n } else {\r\n i -= ne + (id === 2 && e > ne);\r\n str = toFixedPoint(str, e, '0');\r\n\r\n // Append zeros?\r\n if (e + 1 > len) {\r\n if (--i > 0) for (str += '.'; i--; str += '0');\r\n } else {\r\n i += e - len;\r\n if (i > 0) {\r\n if (e + 1 == len) str += '.';\r\n for (; i--; str += '0');\r\n }\r\n }\r\n }\r\n }\r\n\r\n return n.s < 0 && c0 ? '-' + str : str;\r\n }\r\n\r\n\r\n // Handle BigNumber.max and BigNumber.min.\r\n // If any number is NaN, return NaN.\r\n function maxOrMin(args, n) {\r\n var k, y,\r\n i = 1,\r\n x = new BigNumber(args[0]);\r\n\r\n for (; i < args.length; i++) {\r\n y = new BigNumber(args[i]);\r\n if (!y.s || (k = compare(x, y)) === 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 * Strip trailing zeros, calculate base 10 exponent and check against MIN_EXP and MAX_EXP.\r\n * Called by minus, plus and times.\r\n */\r\n function normalise(n, c, e) {\r\n var i = 1,\r\n j = c.length;\r\n\r\n // Remove trailing zeros.\r\n for (; !c[--j]; c.pop());\r\n\r\n // Calculate the base 10 exponent. First get the number of digits of c[0].\r\n for (j = c[0]; j >= 10; j /= 10, i++);\r\n\r\n // Overflow?\r\n if ((e = i + e * LOG_BASE - 1) > MAX_EXP) {\r\n\r\n // Infinity.\r\n n.c = n.e = null;\r\n\r\n // Underflow?\r\n } else if (e < MIN_EXP) {\r\n\r\n // Zero.\r\n n.c = [n.e = 0];\r\n } else {\r\n n.e = e;\r\n n.c = c;\r\n }\r\n\r\n return n;\r\n }\r\n\r\n\r\n // Handle values that fail the validity test in BigNumber.\r\n parseNumeric = (function () {\r\n var basePrefix = /^(-?)0([xbo])(?=\\w[\\w.]*$)/i,\r\n dotAfter = /^([^.]+)\\.$/,\r\n dotBefore = /^\\.([^.]+)$/,\r\n isInfinityOrNaN = /^-?(Infinity|NaN)$/,\r\n whitespaceOrPlus = /^\\s*\\+(?=[\\w.])|^\\s+|\\s+$/g;\r\n\r\n return function (x, str, isNum, b) {\r\n var base,\r\n s = isNum ? str : str.replace(whitespaceOrPlus, '');\r\n\r\n // No exception on ±Infinity or NaN.\r\n if (isInfinityOrNaN.test(s)) {\r\n x.s = isNaN(s) ? null : s < 0 ? -1 : 1;\r\n } else {\r\n if (!isNum) {\r\n\r\n // basePrefix = /^(-?)0([xbo])(?=\\w[\\w.]*$)/i\r\n s = s.replace(basePrefix, function (m, p1, p2) {\r\n base = (p2 = p2.toLowerCase()) == 'x' ? 16 : p2 == 'b' ? 2 : 8;\r\n return !b || b == base ? p1 : m;\r\n });\r\n\r\n if (b) {\r\n base = b;\r\n\r\n // E.g. '1.' to '1', '.1' to '0.1'\r\n s = s.replace(dotAfter, '$1').replace(dotBefore, '0.$1');\r\n }\r\n\r\n if (str != s) return new BigNumber(s, base);\r\n }\r\n\r\n // '[BigNumber Error] Not a number: {n}'\r\n // '[BigNumber Error] Not a base {b} number: {n}'\r\n if (BigNumber.DEBUG) {\r\n throw Error\r\n (bignumberError + 'Not a' + (b ? ' base ' + b : '') + ' number: ' + str);\r\n }\r\n\r\n // NaN\r\n x.s = null;\r\n }\r\n\r\n x.c = x.e = null;\r\n }\r\n })();\r\n\r\n\r\n /*\r\n * Round x to sd significant digits using rounding mode rm. Check for over/under-flow.\r\n * If r is truthy, it is known that there are more digits after the rounding digit.\r\n */\r\n function round(x, sd, rm, r) {\r\n var d, i, j, k, n, ni, rd,\r\n xc = x.c,\r\n pows10 = POWS_TEN;\r\n\r\n // if x is not Infinity or NaN...\r\n if (xc) {\r\n\r\n // rd is the rounding digit, i.e. the digit after the digit that may be rounded up.\r\n // n is a base 1e14 number, the value of the element of array x.c containing rd.\r\n // ni is the index of n within x.c.\r\n // d is the number of digits of n.\r\n // i is the index of rd within n including leading zeros.\r\n // j is the actual index of rd within n (if < 0, rd is a leading zero).\r\n out: {\r\n\r\n // Get the number of digits of the first element of xc.\r\n for (d = 1, k = xc[0]; k >= 10; k /= 10, d++);\r\n i = sd - d;\r\n\r\n // If the rounding digit is in the first element of xc...\r\n if (i < 0) {\r\n i += LOG_BASE;\r\n j = sd;\r\n n = xc[ni = 0];\r\n\r\n // Get the rounding digit at index j of n.\r\n rd = mathfloor(n / pows10[d - j - 1] % 10);\r\n } else {\r\n ni = mathceil((i + 1) / LOG_BASE);\r\n\r\n if (ni >= xc.length) {\r\n\r\n if (r) {\r\n\r\n // Needed by sqrt.\r\n for (; xc.length <= ni; xc.push(0));\r\n n = rd = 0;\r\n d = 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 n = k = xc[ni];\r\n\r\n // Get the number of digits of n.\r\n for (d = 1; k >= 10; k /= 10, d++);\r\n\r\n // Get the index of rd within n.\r\n i %= LOG_BASE;\r\n\r\n // Get the index of rd within n, adjusted for leading zeros.\r\n // The number of leading zeros of n is given by LOG_BASE - d.\r\n j = i - LOG_BASE + d;\r\n\r\n // Get the rounding digit at index j of n.\r\n rd = j < 0 ? 0 : mathfloor(n / pows10[d - j - 1] % 10);\r\n }\r\n }\r\n\r\n r = r || sd < 0 ||\r\n\r\n // Are there any non-zero digits after the rounding digit?\r\n // The expression n % pows10[d - j - 1] returns all digits of n to the right\r\n // of the digit at j, e.g. if n is 908714 and j is 2, the expression gives 714.\r\n xc[ni + 1] != null || (j < 0 ? n : n % pows10[d - j - 1]);\r\n\r\n r = rm < 4\r\n ? (rd || r) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))\r\n : rd > 5 || rd == 5 && (rm == 4 || r || 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 ? n / pows10[d - j] : 0 : xc[ni - 1]) % 10) & 1 ||\r\n rm == (x.s < 0 ? 8 : 7));\r\n\r\n if (sd < 1 || !xc[0]) {\r\n xc.length = 0;\r\n\r\n if (r) {\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 xc[0] = pows10[(LOG_BASE - sd % LOG_BASE) % LOG_BASE];\r\n x.e = -sd || 0;\r\n } else {\r\n\r\n // Zero.\r\n xc[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 xc.length = ni;\r\n k = 1;\r\n ni--;\r\n } else {\r\n xc.length = ni + 1;\r\n k = pows10[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 n.\r\n xc[ni] = j > 0 ? mathfloor(n / pows10[d - j] % pows10[j]) * k : 0;\r\n }\r\n\r\n // Round up?\r\n if (r) {\r\n\r\n for (; ;) {\r\n\r\n // If the digit to be rounded up is in the first element of xc...\r\n if (ni == 0) {\r\n\r\n // i will be the length of xc[0] before k is added.\r\n for (i = 1, j = xc[0]; j >= 10; j /= 10, i++);\r\n j = xc[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 (xc[0] == BASE) xc[0] = 1;\r\n }\r\n\r\n break;\r\n } else {\r\n xc[ni] += k;\r\n if (xc[ni] != BASE) break;\r\n xc[ni--] = 0;\r\n k = 1;\r\n }\r\n }\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (i = xc.length; xc[--i] === 0; xc.pop());\r\n }\r\n\r\n // Overflow? Infinity.\r\n if (x.e > MAX_EXP) {\r\n x.c = x.e = null;\r\n\r\n // Underflow? Zero.\r\n } else if (x.e < MIN_EXP) {\r\n x.c = [x.e = 0];\r\n }\r\n }\r\n\r\n return x;\r\n }\r\n\r\n\r\n function valueOf(n) {\r\n var str,\r\n e = n.e;\r\n\r\n if (e === null) return n.toString();\r\n\r\n str = coeffToString(n.c);\r\n\r\n str = e <= TO_EXP_NEG || e >= TO_EXP_POS\r\n ? toExponential(str, e)\r\n : toFixedPoint(str, e, '0');\r\n\r\n return n.s < 0 ? '-' + str : str;\r\n }\r\n\r\n\r\n // PROTOTYPE/INSTANCE METHODS\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the absolute value of this BigNumber.\r\n */\r\n P.absoluteValue = P.abs = function () {\r\n var x = new BigNumber(this);\r\n if (x.s < 0) x.s = 1;\r\n return x;\r\n };\r\n\r\n\r\n /*\r\n * Return\r\n * 1 if the value of this BigNumber is greater than the value of BigNumber(y, b),\r\n * -1 if the value of this BigNumber is less than the value of BigNumber(y, b),\r\n * 0 if they have the same value,\r\n * or null if the value of either is NaN.\r\n */\r\n P.comparedTo = function (y, b) {\r\n return compare(this, new BigNumber(y, b));\r\n };\r\n\r\n\r\n /*\r\n * If dp is undefined or null or true or false, return the number of decimal places of the\r\n * value of this BigNumber, or null if the value of this BigNumber is ±Infinity or NaN.\r\n *\r\n * Otherwise, if dp is a number, return a new BigNumber whose value is the value of this\r\n * BigNumber rounded to a maximum of dp decimal places using rounding mode rm, or\r\n * ROUNDING_MODE if rm is omitted.\r\n *\r\n * [dp] {number} Decimal places: integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n */\r\n P.decimalPlaces = P.dp = function (dp, rm) {\r\n var c, n, v,\r\n x = this;\r\n\r\n if (dp != null) {\r\n intCheck(dp, 0, MAX);\r\n if (rm == null) rm = ROUNDING_MODE;\r\n else intCheck(rm, 0, 8);\r\n\r\n return round(new BigNumber(x), dp + x.e + 1, rm);\r\n }\r\n\r\n if (!(c = x.c)) return null;\r\n n = ((v = c.length - 1) - bitFloor(this.e / LOG_BASE)) * LOG_BASE;\r\n\r\n // Subtract the number of trailing zeros of the last number.\r\n if (v = c[v]) for (; v % 10 == 0; v /= 10, n--);\r\n if (n < 0) n = 0;\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 BigNumber whose value is the value of this BigNumber divided by the value of\r\n * BigNumber(y, b), rounded according to DECIMAL_PLACES and ROUNDING_MODE.\r\n */\r\n P.dividedBy = P.div = function (y, b) {\r\n return div(this, new BigNumber(y, b), DECIMAL_PLACES, ROUNDING_MODE);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the integer part of dividing the value of this\r\n * BigNumber by the value of BigNumber(y, b).\r\n */\r\n P.dividedToIntegerBy = P.idiv = function (y, b) {\r\n return div(this, new BigNumber(y, b), 0, 1);\r\n };\r\n\r\n\r\n /*\r\n * Return a BigNumber whose value is the value of this BigNumber exponentiated by n.\r\n *\r\n * If m is present, return the result modulo m.\r\n * If n is negative round according to DECIMAL_PLACES and ROUNDING_MODE.\r\n * If POW_PRECISION is non-zero and m is not present, round to POW_PRECISION using ROUNDING_MODE.\r\n *\r\n * The modular power operation works efficiently when x, n, and m are integers, otherwise it\r\n * is equivalent to calculating x.exponentiatedBy(n).modulo(m) with a POW_PRECISION of 0.\r\n *\r\n * n {number|string|BigNumber} The exponent. An integer.\r\n * [m] {number|string|BigNumber} The modulus.\r\n *\r\n * '[BigNumber Error] Exponent not an integer: {n}'\r\n */\r\n P.exponentiatedBy = P.pow = function (n, m) {\r\n var half, isModExp, i, k, more, nIsBig, nIsNeg, nIsOdd, y,\r\n x = this;\r\n\r\n n = new BigNumber(n);\r\n\r\n // Allow NaN and ±Infinity, but not other non-integers.\r\n if (n.c && !n.isInteger()) {\r\n throw Error\r\n (bignumberError + 'Exponent not an integer: ' + valueOf(n));\r\n }\r\n\r\n if (m != null) m = new BigNumber(m);\r\n\r\n // Exponent of MAX_SAFE_INTEGER is 15.\r\n nIsBig = n.e > 14;\r\n\r\n // If x is NaN, ±Infinity, ±0 or ±1, or n is ±Infinity, NaN or ±0.\r\n if (!x.c || !x.c[0] || x.c[0] == 1 && !x.e && x.c.length == 1 || !n.c || !n.c[0]) {\r\n\r\n // The sign of the result of pow when x is negative depends on the evenness of n.\r\n // If +n overflows to ±Infinity, the evenness of n would be not be known.\r\n y = new BigNumber(Math.pow(+valueOf(x), nIsBig ? n.s * (2 - isOdd(n)) : +valueOf(n)));\r\n return m ? y.mod(m) : y;\r\n }\r\n\r\n nIsNeg = n.s < 0;\r\n\r\n if (m) {\r\n\r\n // x % m returns NaN if abs(m) is zero, or m is NaN.\r\n if (m.c ? !m.c[0] : !m.s) return new BigNumber(NaN);\r\n\r\n isModExp = !nIsNeg && x.isInteger() && m.isInteger();\r\n\r\n if (isModExp) x = x.mod(m);\r\n\r\n // Overflow to ±Infinity: >=2**1e10 or >=1.0000024**1e15.\r\n // Underflow to ±0: <=0.79**1e10 or <=0.9999975**1e15.\r\n } else if (n.e > 9 && (x.e > 0 || x.e < -1 || (x.e == 0\r\n // [1, 240000000]\r\n ? x.c[0] > 1 || nIsBig && x.c[1] >= 24e7\r\n // [80000000000000] [99999750000000]\r\n : x.c[0] < 8e13 || nIsBig && x.c[0] <= 9999975e7))) {\r\n\r\n // If x is negative and n is odd, k = -0, else k = 0.\r\n k = x.s < 0 && isOdd(n) ? -0 : 0;\r\n\r\n // If x >= 1, k = ±Infinity.\r\n if (x.e > -1) k = 1 / k;\r\n\r\n // If n is negative return ±0, else return ±Infinity.\r\n return new BigNumber(nIsNeg ? 1 / k : k);\r\n\r\n } else if (POW_PRECISION) {\r\n\r\n // Truncating each coefficient array to a length of k after each multiplication\r\n // equates to truncating significant digits to POW_PRECISION + [28, 41],\r\n // i.e. there will be a minimum of 28 guard digits retained.\r\n k = mathceil(POW_PRECISION / LOG_BASE + 2);\r\n }\r\n\r\n if (nIsBig) {\r\n half = new BigNumber(0.5);\r\n if (nIsNeg) n.s = 1;\r\n nIsOdd = isOdd(n);\r\n } else {\r\n i = Math.abs(+valueOf(n));\r\n nIsOdd = i % 2;\r\n }\r\n\r\n y = new BigNumber(ONE);\r\n\r\n // Performs 54 loop iterations for n of 9007199254740991.\r\n for (; ;) {\r\n\r\n if (nIsOdd) {\r\n y = y.times(x);\r\n if (!y.c) break;\r\n\r\n if (k) {\r\n if (y.c.length > k) y.c.length = k;\r\n } else if (isModExp) {\r\n y = y.mod(m); //y = y.minus(div(y, m, 0, MODULO_MODE).times(m));\r\n }\r\n }\r\n\r\n if (i) {\r\n i = mathfloor(i / 2);\r\n if (i === 0) break;\r\n nIsOdd = i % 2;\r\n } else {\r\n n = n.times(half);\r\n round(n, n.e + 1, 1);\r\n\r\n if (n.e > 14) {\r\n nIsOdd = isOdd(n);\r\n } else {\r\n i = +valueOf(n);\r\n if (i === 0) break;\r\n nIsOdd = i % 2;\r\n }\r\n }\r\n\r\n x = x.times(x);\r\n\r\n if (k) {\r\n if (x.c && x.c.length > k) x.c.length = k;\r\n } else if (isModExp) {\r\n x = x.mod(m); //x = x.minus(div(x, m, 0, MODULO_MODE).times(m));\r\n }\r\n }\r\n\r\n if (isModExp) return y;\r\n if (nIsNeg) y = ONE.div(y);\r\n\r\n return m ? y.mod(m) : k ? round(y, POW_PRECISION, ROUNDING_MODE, more) : y;\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the value of this BigNumber rounded to an integer\r\n * using rounding mode rm, or ROUNDING_MODE if rm is omitted.\r\n *\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {rm}'\r\n */\r\n P.integerValue = function (rm) {\r\n var n = new BigNumber(this);\r\n if (rm == null) rm = ROUNDING_MODE;\r\n else intCheck(rm, 0, 8);\r\n return round(n, n.e + 1, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is equal to the value of BigNumber(y, b),\r\n * otherwise return false.\r\n */\r\n P.isEqualTo = P.eq = function (y, b) {\r\n return compare(this, new BigNumber(y, b)) === 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is a finite number, otherwise return false.\r\n */\r\n P.isFinite = function () {\r\n return !!this.c;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is greater than the value of BigNumber(y, b),\r\n * otherwise return false.\r\n */\r\n P.isGreaterThan = P.gt = function (y, b) {\r\n return compare(this, new BigNumber(y, b)) > 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is greater than or equal to the value of\r\n * BigNumber(y, b), otherwise return false.\r\n */\r\n P.isGreaterThanOrEqualTo = P.gte = function (y, b) {\r\n return (b = compare(this, new BigNumber(y, b))) === 1 || b === 0;\r\n\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is an integer, otherwise return false.\r\n */\r\n P.isInteger = function () {\r\n return !!this.c && bitFloor(this.e / LOG_BASE) > this.c.length - 2;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is less than the value of BigNumber(y, b),\r\n * otherwise return false.\r\n */\r\n P.isLessThan = P.lt = function (y, b) {\r\n return compare(this, new BigNumber(y, b)) < 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is less than or equal to the value of\r\n * BigNumber(y, b), otherwise return false.\r\n */\r\n P.isLessThanOrEqualTo = P.lte = function (y, b) {\r\n return (b = compare(this, new BigNumber(y, b))) === -1 || b === 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is NaN, otherwise return false.\r\n */\r\n P.isNaN = function () {\r\n return !this.s;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is negative, otherwise return false.\r\n */\r\n P.isNegative = function () {\r\n return this.s < 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is positive, otherwise return false.\r\n */\r\n P.isPositive = function () {\r\n return this.s > 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is 0 or -0, otherwise return false.\r\n */\r\n P.isZero = function () {\r\n return !!this.c && this.c[0] == 0;\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 BigNumber whose value is the value of this BigNumber minus the value of\r\n * BigNumber(y, b).\r\n */\r\n P.minus = function (y, b) {\r\n var i, j, t, xLTy,\r\n x = this,\r\n a = x.s;\r\n\r\n y = new BigNumber(y, b);\r\n b = y.s;\r\n\r\n // Either NaN?\r\n if (!a || !b) return new BigNumber(NaN);\r\n\r\n // Signs differ?\r\n if (a != b) {\r\n y.s = -b;\r\n return x.plus(y);\r\n }\r\n\r\n var xe = x.e / LOG_BASE,\r\n ye = y.e / LOG_BASE,\r\n xc = x.c,\r\n yc = y.c;\r\n\r\n if (!xe || !ye) {\r\n\r\n // Either Infinity?\r\n if (!xc || !yc) return xc ? (y.s = -b, y) : new BigNumber(yc ? x : NaN);\r\n\r\n // Either zero?\r\n if (!xc[0] || !yc[0]) {\r\n\r\n // Return y if y is non-zero, x if x is non-zero, or zero if both are zero.\r\n return yc[0] ? (y.s = -b, y) : new BigNumber(xc[0] ? x :\r\n\r\n // IEEE 754 (2008) 6.3: n - n = -0 when rounding to -Infinity\r\n ROUNDING_MODE == 3 ? -0 : 0);\r\n }\r\n }\r\n\r\n xe = bitFloor(xe);\r\n ye = bitFloor(ye);\r\n xc = xc.slice();\r\n\r\n // Determine which is the bigger number.\r\n if (a = xe - ye) {\r\n\r\n if (xLTy = a < 0) {\r\n a = -a;\r\n t = xc;\r\n } else {\r\n ye = xe;\r\n t = yc;\r\n }\r\n\r\n t.reverse();\r\n\r\n // Prepend zeros to equalise exponents.\r\n for (b = a; b--; t.push(0));\r\n t.reverse();\r\n } else {\r\n\r\n // Exponents equal. Check digit by digit.\r\n j = (xLTy = (a = xc.length) < (b = yc.length)) ? a : b;\r\n\r\n for (a = b = 0; b < j; b++) {\r\n\r\n if (xc[b] != yc[b]) {\r\n xLTy = xc[b] < yc[b];\r\n break;\r\n }\r\n }\r\n }\r\n\r\n // x < y? Point xc to the array of the bigger number.\r\n if (xLTy) {\r\n t = xc;\r\n xc = yc;\r\n yc = t;\r\n y.s = -y.s;\r\n }\r\n\r\n b = (j = yc.length) - (i = xc.length);\r\n\r\n // Append zeros to xc if shorter.\r\n // No need to add zeros to yc if shorter as subtract only needs to start at yc.length.\r\n if (b > 0) for (; b--; xc[i++] = 0);\r\n b = BASE - 1;\r\n\r\n // Subtract yc from xc.\r\n for (; j > a;) {\r\n\r\n if (xc[--j] < yc[j]) {\r\n for (i = j; i && !xc[--i]; xc[i] = b);\r\n --xc[i];\r\n xc[j] += BASE;\r\n }\r\n\r\n xc[j] -= yc[j];\r\n }\r\n\r\n // Remove leading zeros and adjust exponent accordingly.\r\n for (; xc[0] == 0; xc.splice(0, 1), --ye);\r\n\r\n // Zero?\r\n if (!xc[0]) {\r\n\r\n // Following IEEE 754 (2008) 6.3,\r\n // n - n = +0 but n - n = -0 when rounding towards -Infinity.\r\n y.s = ROUNDING_MODE == 3 ? -1 : 1;\r\n y.c = [y.e = 0];\r\n return y;\r\n }\r\n\r\n // No need to check for Infinity as +x - +y != Infinity && -x - -y != Infinity\r\n // for finite x and y.\r\n return normalise(y, xc, ye);\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 BigNumber whose value is the value of this BigNumber modulo the value of\r\n * BigNumber(y, b). The result depends on the value of MODULO_MODE.\r\n */\r\n P.modulo = P.mod = function (y, b) {\r\n var q, s,\r\n x = this;\r\n\r\n y = new BigNumber(y, b);\r\n\r\n // Return NaN if x is Infinity or NaN, or y is NaN or zero.\r\n if (!x.c || !y.s || y.c && !y.c[0]) {\r\n return new BigNumber(NaN);\r\n\r\n // Return x if y is Infinity or x is zero.\r\n } else if (!y.c || x.c && !x.c[0]) {\r\n return new BigNumber(x);\r\n }\r\n\r\n if (MODULO_MODE == 9) {\r\n\r\n // Euclidian division: q = sign(y) * floor(x / abs(y))\r\n // r = x - qy where 0 <= r < abs(y)\r\n s = y.s;\r\n y.s = 1;\r\n q = div(x, y, 0, 3);\r\n y.s = s;\r\n q.s *= s;\r\n } else {\r\n q = div(x, y, 0, MODULO_MODE);\r\n }\r\n\r\n y = x.minus(q.times(y));\r\n\r\n // To match JavaScript %, ensure sign of zero is sign of dividend.\r\n if (!y.c[0] && MODULO_MODE == 1) y.s = x.s;\r\n\r\n return y;\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 BigNumber whose value is the value of this BigNumber multiplied by the value\r\n * of BigNumber(y, b).\r\n */\r\n P.multipliedBy = P.times = function (y, b) {\r\n var c, e, i, j, k, m, xcL, xlo, xhi, ycL, ylo, yhi, zc,\r\n base, sqrtBase,\r\n x = this,\r\n xc = x.c,\r\n yc = (y = new BigNumber(y, b)).c;\r\n\r\n // Either NaN, ±Infinity or ±0?\r\n if (!xc || !yc || !xc[0] || !yc[0]) {\r\n\r\n // Return NaN if either is NaN, or one is 0 and the other is Infinity.\r\n if (!x.s || !y.s || xc && !xc[0] && !yc || yc && !yc[0] && !xc) {\r\n y.c = y.e = y.s = null;\r\n } else {\r\n y.s *= x.s;\r\n\r\n // Return ±Infinity if either is ±Infinity.\r\n if (!xc || !yc) {\r\n y.c = y.e = null;\r\n\r\n // Return ±0 if either is ±0.\r\n } else {\r\n y.c = [0];\r\n y.e = 0;\r\n }\r\n }\r\n\r\n return y;\r\n }\r\n\r\n e = bitFloor(x.e / LOG_BASE) + bitFloor(y.e / LOG_BASE);\r\n y.s *= x.s;\r\n xcL = xc.length;\r\n ycL = yc.length;\r\n\r\n // Ensure xc points to longer array and xcL to its length.\r\n if (xcL < ycL) {\r\n zc = xc;\r\n xc = yc;\r\n yc = zc;\r\n i = xcL;\r\n xcL = ycL;\r\n ycL = i;\r\n }\r\n\r\n // Initialise the result array with zeros.\r\n for (i = xcL + ycL, zc = []; i--; zc.push(0));\r\n\r\n base = BASE;\r\n sqrtBase = SQRT_BASE;\r\n\r\n for (i = ycL; --i >= 0;) {\r\n c = 0;\r\n ylo = yc[i] % sqrtBase;\r\n yhi = yc[i] / sqrtBase | 0;\r\n\r\n for (k = xcL, j = i + k; j > i;) {\r\n xlo = xc[--k] % sqrtBase;\r\n xhi = xc[k] / sqrtBase | 0;\r\n m = yhi * xlo + xhi * ylo;\r\n xlo = ylo * xlo + ((m % sqrtBase) * sqrtBase) + zc[j] + c;\r\n c = (xlo / base | 0) + (m / sqrtBase | 0) + yhi * xhi;\r\n zc[j--] = xlo % base;\r\n }\r\n\r\n zc[j] = c;\r\n }\r\n\r\n if (c) {\r\n ++e;\r\n } else {\r\n zc.splice(0, 1);\r\n }\r\n\r\n return normalise(y, zc, e);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the value of this BigNumber negated,\r\n * i.e. multiplied by -1.\r\n */\r\n P.negated = function () {\r\n var x = new BigNumber(this);\r\n x.s = -x.s || null;\r\n return 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 BigNumber whose value is the value of this BigNumber plus the value of\r\n * BigNumber(y, b).\r\n */\r\n P.plus = function (y, b) {\r\n var t,\r\n x = this,\r\n a = x.s;\r\n\r\n y = new BigNumber(y, b);\r\n b = y.s;\r\n\r\n // Either NaN?\r\n if (!a || !b) return new BigNumber(NaN);\r\n\r\n // Signs differ?\r\n if (a != b) {\r\n y.s = -b;\r\n return x.minus(y);\r\n }\r\n\r\n var xe = x.e / LOG_BASE,\r\n ye = y.e / LOG_BASE,\r\n xc = x.c,\r\n yc = y.c;\r\n\r\n if (!xe || !ye) {\r\n\r\n // Return ±Infinity if either ±Infinity.\r\n if (!xc || !yc) return new BigNumber(a / 0);\r\n\r\n // Either zero?\r\n // Return y if y is non-zero, x if x is non-zero, or zero if both are zero.\r\n if (!xc[0] || !yc[0]) return yc[0] ? y : new BigNumber(xc[0] ? x : a * 0);\r\n }\r\n\r\n xe = bitFloor(xe);\r\n ye = bitFloor(ye);\r\n xc = xc.slice();\r\n\r\n // Prepend zeros to equalise exponents. Faster to use reverse then do unshifts.\r\n if (a = xe - ye) {\r\n if (a > 0) {\r\n ye = xe;\r\n t = yc;\r\n } else {\r\n a = -a;\r\n t = xc;\r\n }\r\n\r\n t.reverse();\r\n for (; a--; t.push(0));\r\n t.reverse();\r\n }\r\n\r\n a = xc.length;\r\n b = yc.length;\r\n\r\n // Point xc to the longer array, and b to the shorter length.\r\n if (a - b < 0) {\r\n t = yc;\r\n yc = xc;\r\n xc = t;\r\n b = a;\r\n }\r\n\r\n // Only start adding at yc.length - 1 as the further digits of xc can be ignored.\r\n for (a = 0; b;) {\r\n a = (xc[--b] = xc[b] + yc[b] + a) / BASE | 0;\r\n xc[b] = BASE === xc[b] ? 0 : xc[b] % BASE;\r\n }\r\n\r\n if (a) {\r\n xc = [a].concat(xc);\r\n ++ye;\r\n }\r\n\r\n // No need to check for zero, as +x + +y != 0 && -x + -y != 0\r\n // ye = MAX_EXP + 1 possible\r\n return normalise(y, xc, ye);\r\n };\r\n\r\n\r\n /*\r\n * If sd is undefined or null or true or false, return the number of significant digits of\r\n * the value of this BigNumber, or null if the value of this BigNumber is ±Infinity or NaN.\r\n * If sd is true include integer-part trailing zeros in the count.\r\n *\r\n * Otherwise, if sd is a number, return a new BigNumber whose value is the value of this\r\n * BigNumber rounded to a maximum of sd significant digits using rounding mode rm, or\r\n * ROUNDING_MODE if rm is omitted.\r\n *\r\n * sd {number|boolean} number: significant digits: integer, 1 to MAX inclusive.\r\n * boolean: whether to count integer-part trailing zeros: true or false.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {sd|rm}'\r\n */\r\n P.precision = P.sd = function (sd, rm) {\r\n var c, n, v,\r\n x = this;\r\n\r\n if (sd != null && sd !== !!sd) {\r\n intCheck(sd, 1, MAX);\r\n if (rm == null) rm = ROUNDING_MODE;\r\n else intCheck(rm, 0, 8);\r\n\r\n return round(new BigNumber(x), sd, rm);\r\n }\r\n\r\n if (!(c = x.c)) return null;\r\n v = c.length - 1;\r\n n = v * LOG_BASE + 1;\r\n\r\n if (v = c[v]) {\r\n\r\n // Subtract the number of trailing zeros of the last element.\r\n for (; v % 10 == 0; v /= 10, n--);\r\n\r\n // Add the number of digits of the first element.\r\n for (v = c[0]; v >= 10; v /= 10, n++);\r\n }\r\n\r\n if (sd && x.e + 1 > n) n = x.e + 1;\r\n\r\n return n;\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the value of this BigNumber shifted by k places\r\n * (powers of 10). Shift to the right if n > 0, and to the left if n < 0.\r\n *\r\n * k {number} Integer, -MAX_SAFE_INTEGER to MAX_SAFE_INTEGER inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {k}'\r\n */\r\n P.shiftedBy = function (k) {\r\n intCheck(k, -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER);\r\n return this.times('1e' + k);\r\n };\r\n\r\n\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 * Return a new BigNumber whose value is the square root of the value of this BigNumber,\r\n * rounded according to DECIMAL_PLACES and ROUNDING_MODE.\r\n */\r\n P.squareRoot = P.sqrt = function () {\r\n var m, n, r, rep, t,\r\n x = this,\r\n c = x.c,\r\n s = x.s,\r\n e = x.e,\r\n dp = DECIMAL_PLACES + 4,\r\n half = new BigNumber('0.5');\r\n\r\n // Negative/NaN/Infinity/zero?\r\n if (s !== 1 || !c || !c[0]) {\r\n return new BigNumber(!s || s < 0 && (!c || c[0]) ? NaN : c ? x : 1 / 0);\r\n }\r\n\r\n // Initial estimate.\r\n s = Math.sqrt(+valueOf(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 = coeffToString(c);\r\n if ((n.length + e) % 2 == 0) n += '0';\r\n s = Math.sqrt(+n);\r\n e = bitFloor((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 BigNumber(n);\r\n } else {\r\n r = new BigNumber(s + '');\r\n }\r\n\r\n // Check for zero.\r\n // r could be zero if MIN_EXP is changed after the this value was created.\r\n // This would cause a division by zero (x/t) and hence Infinity below, which would cause\r\n // coeffToString to throw.\r\n if (r.c[0]) {\r\n e = r.e;\r\n s = e + dp;\r\n if (s < 3) s = 0;\r\n\r\n // Newton-Raphson iteration.\r\n for (; ;) {\r\n t = r;\r\n r = half.times(t.plus(div(x, t, dp, 1)));\r\n\r\n if (coeffToString(t.c).slice(0, s) === (n = coeffToString(r.c)).slice(0, s)) {\r\n\r\n // The exponent of r may here be one less than the final result exponent,\r\n // e.g 0.0009999 (e-4) --> 0.001 (e-3), so adjust s so the rounding digits\r\n // are indexed correctly.\r\n if (r.e < e) --s;\r\n n = n.slice(s - 3, s + 1);\r\n\r\n // The 4th rounding digit may be in error by -1 so if the 4 rounding digits\r\n // are 9999 or 4999 (i.e. approaching a rounding boundary) continue the\r\n // 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\r\n // exact result as the nines may infinitely repeat.\r\n if (!rep) {\r\n round(t, t.e + DECIMAL_PLACES + 2, 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 dp += 4;\r\n s += 4;\r\n rep = 1;\r\n } else {\r\n\r\n // If rounding digits are null, 0{0,4} or 50{0,3}, check for exact\r\n // result. 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 round(r, r.e + DECIMAL_PLACES + 2, 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\r\n return round(r, r.e + DECIMAL_PLACES + 1, ROUNDING_MODE, m);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber in exponential notation and\r\n * rounded using ROUNDING_MODE to dp fixed decimal places.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n */\r\n P.toExponential = function (dp, rm) {\r\n if (dp != null) {\r\n intCheck(dp, 0, MAX);\r\n dp++;\r\n }\r\n return format(this, dp, rm, 1);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber in fixed-point notation rounding\r\n * to dp fixed decimal places using rounding mode rm, or ROUNDING_MODE if rm is omitted.\r\n *\r\n * Note: as with JavaScript's number type, (-0).toFixed(0) is '0',\r\n * but e.g. (-0.00001).toFixed(0) is '-0'.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n */\r\n P.toFixed = function (dp, rm) {\r\n if (dp != null) {\r\n intCheck(dp, 0, MAX);\r\n dp = dp + this.e + 1;\r\n }\r\n return format(this, dp, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber in fixed-point notation rounded\r\n * using rm or ROUNDING_MODE to dp decimal places, and formatted according to the properties\r\n * of the format or FORMAT object (see BigNumber.set).\r\n *\r\n * The formatting object may contain some or all of the properties shown below.\r\n *\r\n * FORMAT = {\r\n * prefix: '',\r\n * groupSize: 3,\r\n * secondaryGroupSize: 0,\r\n * groupSeparator: ',',\r\n * decimalSeparator: '.',\r\n * fractionGroupSize: 0,\r\n * fractionGroupSeparator: '\\xA0', // non-breaking space\r\n * suffix: ''\r\n * };\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n * [format] {object} Formatting options. See FORMAT pbject above.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n * '[BigNumber Error] Argument not an object: {format}'\r\n */\r\n P.toFormat = function (dp, rm, format) {\r\n var str,\r\n x = this;\r\n\r\n if (format == null) {\r\n if (dp != null && rm && typeof rm == 'object') {\r\n format = rm;\r\n rm = null;\r\n } else if (dp && typeof dp == 'object') {\r\n format = dp;\r\n dp = rm = null;\r\n } else {\r\n format = FORMAT;\r\n }\r\n } else if (typeof format != 'object') {\r\n throw Error\r\n (bignumberError + 'Argument not an object: ' + format);\r\n }\r\n\r\n str = x.toFixed(dp, rm);\r\n\r\n if (x.c) {\r\n var i,\r\n arr = str.split('.'),\r\n g1 = +format.groupSize,\r\n g2 = +format.secondaryGroupSize,\r\n groupSeparator = format.groupSeparator || '',\r\n intPart = arr[0],\r\n fractionPart = arr[1],\r\n isNeg = x.s < 0,\r\n intDigits = isNeg ? intPart.slice(1) : intPart,\r\n len = intDigits.length;\r\n\r\n if (g2) {\r\n i = g1;\r\n g1 = g2;\r\n g2 = i;\r\n len -= i;\r\n }\r\n\r\n if (g1 > 0 && len > 0) {\r\n i = len % g1 || g1;\r\n intPart = intDigits.substr(0, i);\r\n for (; i < len; i += g1) intPart += groupSeparator + intDigits.substr(i, g1);\r\n if (g2 > 0) intPart += groupSeparator + intDigits.slice(i);\r\n if (isNeg) intPart = '-' + intPart;\r\n }\r\n\r\n str = fractionPart\r\n ? intPart + (format.decimalSeparator || '') + ((g2 = +format.fractionGroupSize)\r\n ? fractionPart.replace(new RegExp('\\\\d{' + g2 + '}\\\\B', 'g'),\r\n '$&' + (format.fractionGroupSeparator || ''))\r\n : fractionPart)\r\n : intPart;\r\n }\r\n\r\n return (format.prefix || '') + str + (format.suffix || '');\r\n };\r\n\r\n\r\n /*\r\n * Return an array of two BigNumbers representing the value of this BigNumber as a simple\r\n * fraction with an integer numerator and an integer denominator.\r\n * The denominator will be a positive non-zero value less than or equal to the specified\r\n * maximum denominator. If a maximum denominator is not specified, the denominator will be\r\n * the lowest value necessary to represent the number exactly.\r\n *\r\n * [md] {number|string|BigNumber} Integer >= 1, or Infinity. The maximum denominator.\r\n *\r\n * '[BigNumber Error] Argument {not an integer|out of range} : {md}'\r\n */\r\n P.toFraction = function (md) {\r\n var d, d0, d1, d2, e, exp, n, n0, n1, q, r, s,\r\n x = this,\r\n xc = x.c;\r\n\r\n if (md != null) {\r\n n = new BigNumber(md);\r\n\r\n // Throw if md is less than one or is not an integer, unless it is Infinity.\r\n if (!n.isInteger() && (n.c || n.s !== 1) || n.lt(ONE)) {\r\n throw Error\r\n (bignumberError + 'Argument ' +\r\n (n.isInteger() ? 'out of range: ' : 'not an integer: ') + valueOf(n));\r\n }\r\n }\r\n\r\n if (!xc) return new BigNumber(x);\r\n\r\n d = new BigNumber(ONE);\r\n n1 = d0 = new BigNumber(ONE);\r\n d1 = n0 = new BigNumber(ONE);\r\n s = coeffToString(xc);\r\n\r\n // Determine initial denominator.\r\n // d is a power of 10 and the minimum max denominator that specifies the value exactly.\r\n e = d.e = s.length - x.e - 1;\r\n d.c[0] = POWS_TEN[(exp = e % LOG_BASE) < 0 ? LOG_BASE + exp : exp];\r\n md = !md || n.comparedTo(d) > 0 ? (e > 0 ? d : n1) : n;\r\n\r\n exp = MAX_EXP;\r\n MAX_EXP = 1 / 0;\r\n n = new BigNumber(s);\r\n\r\n // n0 = d1 = 0\r\n n0.c[0] = 0;\r\n\r\n for (; ;) {\r\n q = div(n, d, 0, 1);\r\n d2 = d0.plus(q.times(d1));\r\n if (d2.comparedTo(md) == 1) break;\r\n d0 = d1;\r\n d1 = d2;\r\n n1 = n0.plus(q.times(d2 = n1));\r\n n0 = d2;\r\n d = n.minus(q.times(d2 = d));\r\n n = d2;\r\n }\r\n\r\n d2 = div(md.minus(d0), d1, 0, 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 e = e * 2;\r\n\r\n // Determine which fraction is closer to x, n0/d0 or n1/d1\r\n r = div(n1, d1, e, ROUNDING_MODE).minus(x).abs().comparedTo(\r\n div(n0, d0, e, ROUNDING_MODE).minus(x).abs()) < 1 ? [n1, d1] : [n0, d0];\r\n\r\n MAX_EXP = exp;\r\n\r\n return r;\r\n };\r\n\r\n\r\n /*\r\n * Return the value of this BigNumber converted to a number primitive.\r\n */\r\n P.toNumber = function () {\r\n return +valueOf(this);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber rounded to sd significant digits\r\n * using rounding mode rm or ROUNDING_MODE. If sd is less than the number of digits\r\n * necessary to represent the integer part of the value in fixed-point notation, then use\r\n * exponential notation.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {sd|rm}'\r\n */\r\n P.toPrecision = function (sd, rm) {\r\n if (sd != null) intCheck(sd, 1, MAX);\r\n return format(this, sd, rm, 2);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber in base b, or base 10 if b is\r\n * omitted. If a base is specified, including base 10, round according to DECIMAL_PLACES and\r\n * ROUNDING_MODE. If a base is not specified, and this BigNumber has a positive exponent\r\n * that is equal to or greater than TO_EXP_POS, or a negative exponent equal to or less than\r\n * TO_EXP_NEG, return exponential notation.\r\n *\r\n * [b] {number} Integer, 2 to ALPHABET.length inclusive.\r\n *\r\n * '[BigNumber Error] Base {not a primitive number|not an integer|out of range}: {b}'\r\n */\r\n P.toString = function (b) {\r\n var str,\r\n n = this,\r\n s = n.s,\r\n e = n.e;\r\n\r\n // Infinity or NaN?\r\n if (e === null) {\r\n if (s) {\r\n str = 'Infinity';\r\n if (s < 0) str = '-' + str;\r\n } else {\r\n str = 'NaN';\r\n }\r\n } else {\r\n if (b == null) {\r\n str = e <= TO_EXP_NEG || e >= TO_EXP_POS\r\n ? toExponential(coeffToString(n.c), e)\r\n : toFixedPoint(coeffToString(n.c), e, '0');\r\n } else if (b === 10 && alphabetHasNormalDecimalDigits) {\r\n n = round(new BigNumber(n), DECIMAL_PLACES + e + 1, ROUNDING_MODE);\r\n str = toFixedPoint(coeffToString(n.c), n.e, '0');\r\n } else {\r\n intCheck(b, 2, ALPHABET.length, 'Base');\r\n str = convertBase(toFixedPoint(coeffToString(n.c), e, '0'), 10, b, s, true);\r\n }\r\n\r\n if (s < 0 && n.c[0]) str = '-' + str;\r\n }\r\n\r\n return str;\r\n };\r\n\r\n\r\n /*\r\n * Return as toString, but do not accept a base argument, and include the minus sign for\r\n * negative zero.\r\n */\r\n P.valueOf = P.toJSON = function () {\r\n return valueOf(this);\r\n };\r\n\r\n\r\n P._isBigNumber = true;\r\n\r\n P[Symbol.toStringTag] = 'BigNumber';\r\n\r\n // Node.js v10.12.0+\r\n P[Symbol.for('nodejs.util.inspect.custom')] = P.valueOf;\r\n\r\n if (configObject != null) BigNumber.set(configObject);\r\n\r\n return BigNumber;\r\n}\r\n\r\n\r\n// PRIVATE HELPER FUNCTIONS\r\n\r\n// These functions don't need access to variables,\r\n// e.g. DECIMAL_PLACES, in the scope of the `clone` function above.\r\n\r\n\r\nfunction bitFloor(n) {\r\n var i = n | 0;\r\n return n > 0 || n === i ? i : i - 1;\r\n}\r\n\r\n\r\n// Return a coefficient array as a string of base 10 digits.\r\nfunction coeffToString(a) {\r\n var s, z,\r\n i = 1,\r\n j = a.length,\r\n r = a[0] + '';\r\n\r\n for (; i < j;) {\r\n s = a[i++] + '';\r\n z = LOG_BASE - s.length;\r\n for (; z--; s = '0' + s);\r\n r += s;\r\n }\r\n\r\n // Determine trailing zeros.\r\n for (j = r.length; r.charCodeAt(--j) === 48;);\r\n\r\n return r.slice(0, j + 1 || 1);\r\n}\r\n\r\n\r\n// Compare the value of BigNumbers x and y.\r\nfunction compare(x, y) {\r\n var a, b,\r\n xc = x.c,\r\n yc = y.c,\r\n i = x.s,\r\n j = y.s,\r\n k = x.e,\r\n l = y.e;\r\n\r\n // Either NaN?\r\n if (!i || !j) return null;\r\n\r\n a = xc && !xc[0];\r\n b = yc && !yc[0];\r\n\r\n // Either zero?\r\n if (a || b) return a ? b ? 0 : -j : i;\r\n\r\n // Signs differ?\r\n if (i != j) return i;\r\n\r\n a = i < 0;\r\n b = k == l;\r\n\r\n // Either Infinity?\r\n if (!xc || !yc) return b ? 0 : !xc ^ a ? 1 : -1;\r\n\r\n // Compare exponents.\r\n if (!b) return k > l ^ a ? 1 : -1;\r\n\r\n j = (k = xc.length) < (l = yc.length) ? k : l;\r\n\r\n // Compare digit by digit.\r\n for (i = 0; i < j; i++) if (xc[i] != yc[i]) return xc[i] > yc[i] ^ a ? 1 : -1;\r\n\r\n // Compare lengths.\r\n return k == l ? 0 : k > l ^ a ? 1 : -1;\r\n}\r\n\r\n\r\n/*\r\n * Check that n is a primitive number, an integer, and in range, otherwise throw.\r\n */\r\nfunction intCheck(n, min, max, name) {\r\n if (n < min || n > max || n !== mathfloor(n)) {\r\n throw Error\r\n (bignumberError + (name || 'Argument') + (typeof n == 'number'\r\n ? n < min || n > max ? ' out of range: ' : ' not an integer: '\r\n : ' not a primitive number: ') + String(n));\r\n }\r\n}\r\n\r\n\r\n// Assumes finite n.\r\nfunction isOdd(n) {\r\n var k = n.c.length - 1;\r\n return bitFloor(n.e / LOG_BASE) == k && n.c[k] % 2 != 0;\r\n}\r\n\r\n\r\nfunction toExponential(str, e) {\r\n return (str.length > 1 ? str.charAt(0) + '.' + str.slice(1) : str) +\r\n (e < 0 ? 'e' : 'e+') + e;\r\n}\r\n\r\n\r\nfunction toFixedPoint(str, e, z) {\r\n var len, zs;\r\n\r\n // Negative exponent?\r\n if (e < 0) {\r\n\r\n // Prepend zeros.\r\n for (zs = z + '.'; ++e; zs += z);\r\n str = zs + str;\r\n\r\n // Positive exponent\r\n } else {\r\n len = str.length;\r\n\r\n // Append zeros.\r\n if (++e > len) {\r\n for (zs = z, e -= len; --e; zs += z);\r\n str += zs;\r\n } else if (e < len) {\r\n str = str.slice(0, e) + '.' + str.slice(e);\r\n }\r\n }\r\n\r\n return str;\r\n}\r\n\r\n\r\n// EXPORT\r\n\r\n\r\nexport var BigNumber = clone();\r\n\r\nexport default BigNumber;\r\n","import BigNumber from 'bignumber.js';\r\n\r\n/**\r\n * 数值入参类型。\r\n * 支持原生 `number`、`string`(包含小数、科学计数法等)以及 `BigNumber`。\r\n */\r\nexport type NumLike = string | number | BigNumber;\r\n\r\n/**\r\n * 将任意 `NumLike` 统一转换为 `BigNumber` 实例。\r\n * @param x 任意支持的数值入参。\r\n * @returns `BigNumber` 实例。\r\n * @example\r\n * big('0.1'); // => BigNumber\r\n * big(0.2); // => BigNumber\r\n */\r\nfunction big(x: NumLike): BigNumber {\r\n return x instanceof BigNumber ? x : new BigNumber(x);\r\n}\r\n\r\n/**\r\n * 高精度加法(支持多个参数连加)。\r\n * @example\r\n * mathPlus(0.1, 0.2); // => 0.3\r\n * mathPlus('0.1', '0.2'); // => 0.3\r\n * mathPlus(1, 2, 3, 4); // => 10 // 多参数连加: 1+2+3+4\r\n */\r\nexport function mathPlus(...rest: NumLike[]) {\r\n let acc = big(rest[0]);\r\n for (const x of rest.slice(1)) acc = acc.plus(big(x));\r\n return acc.toNumber();\r\n}\r\n\r\n/**\r\n * 高精度减法(支持多个参数连减)。\r\n * @example\r\n * mathMinus(1, 0.9); // => 0.1\r\n * mathMinus('1.1', '0.2'); // => 0.9\r\n * mathMinus(10, 1, 2, 3); // => 4 // 多参数连减: 10-1-2-3\r\n */\r\nexport function mathMinus(...rest: NumLike[]) {\r\n let acc = big(rest[0]);\r\n for (const x of rest.slice(1)) acc = acc.minus(big(x));\r\n return acc.toNumber();\r\n}\r\n\r\n/**\r\n * 高精度乘法(支持多个参数连乘)。\r\n * @example\r\n * mathTimes(0.1, 0.2); // => 0.02\r\n * mathTimes('1.5', '3'); // => 4.5\r\n * mathTimes(2, 3, 4); // => 24 // 多参数连乘: 2*3*4\r\n */\r\nexport function mathTimes(...rest: NumLike[]) {\r\n let acc = big(rest[0]);\r\n for (const x of rest.slice(1)) acc = acc.times(big(x));\r\n return acc.toNumber();\r\n}\r\n\r\n/**\r\n * 高精度除法(支持多个参数连除)。\r\n * @example\r\n * mathDiv(1, 3); // => 0.333333...\r\n * mathDiv('10', '4'); // => 2.5\r\n * mathDiv(100, 5, 2); // => 10 // 多参数连除: 100/5/2\r\n */\r\nexport function mathDiv(...rest: NumLike[]) {\r\n let acc = big(rest[0]);\r\n for (const x of rest.slice(1)) acc = acc.div(big(x));\r\n return acc.toNumber();\r\n}\r\n\r\n/**\r\n * 指数运算\r\n * @param x 底数。\r\n * @param y 指数。\r\n * @returns 计算结果。\r\n * @example\r\n * mathPow(2, 3); // => 8\r\n * mathPow('2.5', 2); // => 6.25\r\n */\r\nexport function mathPow(x: NumLike, y: NumLike) {\r\n return big(x).pow(big(y)).toNumber();\r\n}\r\n\r\n/**\r\n * 四舍五入到指定小数位数\r\n * @param x 需要舍入的数值。\r\n * @param dp 保留的小数位数,默认 `0`(取整)。\r\n * @param rm 舍入模式,默认 `ROUND_HALF_UP`(四舍五入)。\r\n * @returns 舍入后的数值。\r\n * @example\r\n * mathRound(1.6); // => 2\r\n * mathRound('1.234', 2); // => 1.23\r\n * mathRound('1.235', 2); // => 1.24\r\n * mathRound('1.299', 2, BigNumber.ROUND_DOWN); // => 1.29\r\n */\r\nexport function mathRound(\r\n x: NumLike,\r\n dp = 0,\r\n rm: BigNumber.RoundingMode = BigNumber.ROUND_HALF_UP,\r\n) {\r\n return big(x).decimalPlaces(dp, rm).toNumber();\r\n}\r\n\r\n/**\r\n * 将数值按指定位数格式化为字符串(保留小数位)。\r\n * @param x 需要格式化的数值。\r\n * @param dp 保留的小数位数,默认 `2`。\r\n * @param rm 舍入模式,默认 `ROUND_HALF_UP`(四舍五入)。\r\n * @returns 格式化后的字符串。\r\n * @example\r\n * mathFixed('1'); // => '1.00'\r\n * +mathFixed('1'); // => 1\r\n * mathFixed(1.2345); // => '1.23'\r\n * mathFixed(1.2345, 3); // => '1.235'\r\n * mathFixed('1.2345', 0, BigNumber.ROUND_UP); // => '2'\r\n */\r\nexport function mathFixed(\r\n x: NumLike,\r\n dp = 2,\r\n rm: BigNumber.RoundingMode = BigNumber.ROUND_HALF_UP,\r\n): string {\r\n return big(x).toFixed(dp, rm);\r\n}\r\n\r\n/**\r\n * 比较两个数值大小。\r\n * @example\r\n * mathCompare('2', '10'); // => -1\r\n * mathCompare(3, 3); // => 0\r\n * mathCompare('10', 2); // => 1\r\n */\r\nexport function mathCompare(a: NumLike, b: NumLike): -1 | 0 | 1 | null {\r\n return big(a).comparedTo(big(b));\r\n}\r\n\r\n/**\r\n * 判断两个数值是否相等。\r\n * @example\r\n * mathEqual('1.0', 1); // => true\r\n * mathEqual(2, 1); // => false\r\n */\r\nexport function mathEqual(a: NumLike, b: NumLike): boolean {\r\n return big(a).isEqualTo(big(b));\r\n}\r\n\r\n/**\r\n * 判断 a 是否大于 b。\r\n * @example\r\n * mathGreaterThan(2, 1); // => true\r\n * mathGreaterThan(1, 2); // => false\r\n */\r\nexport function mathGreaterThan(a: NumLike, b: NumLike): boolean {\r\n return big(a).isGreaterThan(big(b));\r\n}\r\n\r\n/**\r\n * 判断 a 是否大于等于 b。\r\n * @example\r\n * mathGreaterThanOrEqual(2, 2); // => true\r\n * mathGreaterThanOrEqual(1, 2); // => false\r\n */\r\nexport function mathGreaterThanOrEqual(a: NumLike, b: NumLike): boolean {\r\n return big(a).isGreaterThanOrEqualTo(big(b));\r\n}\r\n\r\n/**\r\n * 判断 a 是否小于 b。\r\n * @example\r\n * mathLessThan(1, 2); // => true\r\n * mathLessThan(2, 1); // => false\r\n */\r\nexport function mathLessThan(a: NumLike, b: NumLike): boolean {\r\n return big(a).isLessThan(big(b));\r\n}\r\n\r\n/**\r\n * 判断 a 是否小于等于 b。\r\n * @example\r\n * mathLessThanOrEqual(2, 2); // => true\r\n * mathLessThanOrEqual(1, 2); // => true\r\n * mathLessThanOrEqual(2, 1); // => false\r\n */\r\nexport function mathLessThanOrEqual(a: NumLike, b: NumLike): boolean {\r\n return big(a).isLessThanOrEqualTo(big(b));\r\n}\r\n\r\n/**\r\n * 导出 BigNumber 类\r\n * @example\r\n * BigNumber.ROUND_HALF_UP; // 使用类型\r\n * BigNumber.set(config); // 设置全局配置\r\n * const bn = new BigNumber('123456.789'); // 创建实例\r\n */\r\nexport { BigNumber };\r\n","import { BigNumber } from './big';\r\n\r\n/**\r\n * 开头补零\r\n * @param n 数字\r\n * @param len 总长度,默认 2\r\n * @returns 零填充后的字符串\r\n * @example\r\n * zeroPad(1) // '01'\r\n * zeroPad(12) // '12'\r\n * zeroPad(12, 4) // '0012'\r\n */\r\nexport function zeroPad(n: number | string, len = 2) {\r\n return String(n).padStart(len, '0');\r\n}\r\n\r\n/**\r\n * 给数字添加指定单位 (支持数字字符串,其他非法字符返回原值)\r\n * @param unit 单位\r\n * @param num 数字\r\n * @example\r\n * withUnit(0, 'px') // \"0px\"\r\n * withUnit(1, 'px') // \"1px\"\r\n * withUnit('1', 'rpx') // \"1rpx\"\r\n * withUnit('1', '%') // \"1%\"\r\n * withUnit('auto', 'px') // \"auto\"\r\n * withUnit(null | undefined | '') // \"\"\r\n */\r\nexport function withUnit(num?: number | string, unit = '') {\r\n if (num === null || num === undefined || num === '') return ''; // 注意不能排除0\r\n\r\n if (typeof num === 'number') return `${num}${unit}`;\r\n\r\n const str = String(num).trim();\r\n\r\n if (str === '') return '';\r\n\r\n return isNaN(+str) ? str : `${str}${unit}`;\r\n}\r\n\r\n/**\r\n * 给数字添加px单位 (支持数字字符串,其他非法字符返回原值)\r\n * @example\r\n * withUnitPx(10) // \"10px\"\r\n * withUnitPx('10') // \"10px\"\r\n * withUnitPx('10px') // \"10px\"\r\n * withUnitPx(\"auto\") // \"auto\"\r\n * withUnitPx(\"30%\") // \"30%\"\r\n * withUnitPx(null | undefined | '') // \"\"\r\n * withUnitPx(0) // \"0px\"\r\n */\r\nexport function withUnitPx(num?: string | number) {\r\n return withUnit(num, 'px');\r\n}\r\n\r\n/**\r\n * 给数字添加距离单位:当数值大于等于 1000m 时转换为 km,否则显示 m(最多两位小数、无无意义补零)\r\n * @example\r\n * withDistance(5); // => '5m'\r\n * withDistance(999.456); // => '999.46m'\r\n * withDistance(1000); // => '1km'\r\n * withDistance('1500'); // => '1.5km'\r\n * withDistance('1728'); // => '1.73km'\r\n */\r\nexport function withDistance(m: number | string): string {\r\n const n = Number(m ?? 0);\r\n if (!Number.isFinite(n)) return '0m';\r\n return n >= 1000 ? `${+(n / 1000).toFixed(2)}km` : `${+n.toFixed(2)}m`;\r\n}\r\n\r\n/**\r\n * 数字转千分位字符串(保留小数与符号)。\r\n * @example\r\n * toThousandth(1234567); // => '1,234,567'\r\n * toThousandth('1234567.89'); // => '1,234,567.89'\r\n * toThousandth('-987654'); // => '-987,654'\r\n */\r\nexport function toThousandth(str: number | string): string {\r\n const v = String(str ?? '').trim();\r\n if (v === '') return '';\r\n\r\n // 处理符号\r\n let sign = '';\r\n let num = v;\r\n if (num[0] === '-' || num[0] === '+') {\r\n sign = num[0];\r\n num = num.slice(1);\r\n }\r\n\r\n // 拆分整数与小数部分\r\n const [intPart, decPart] = num.split('.');\r\n\r\n // 仅对整数部分进行千分位分组\r\n const groupedInt = intPart.replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\r\n\r\n return decPart !== undefined && decPart !== ''\r\n ? `${sign}${groupedInt}.${decPart}`\r\n : `${sign}${groupedInt}`;\r\n}\r\n\r\n/**\r\n * 阿拉伯数字转中文整数(忽略小数;支持负数)。\r\n * @param num 输入的数字或数字字符串(小数部分将被丢弃)\r\n * @returns 中文数字字符串;非法输入返回空字符串\r\n * @example\r\n * toChineseNum(123456); // \"十二万三千四百五十六\"\r\n * toChineseNum(-10008); // \"负一万零八\"\r\n * `第${toChineseNum(123)}条` // \"第一百二十三条\"\r\n */\r\nexport function toChineseNum(num: number | string) {\r\n const numInt = Math.trunc(+num);\r\n if (numInt === 0) return '零';\r\n\r\n const digit = ['零', '一', '二', '三', '四', '五', '六', '七', '八', '九'];\r\n const unit = ['', '十', '百', '千'];\r\n const bigUnit = ['', '万', '亿', '兆'];\r\n\r\n const section4 = (n: number) => {\r\n let str = '',\r\n zeroFlag = false;\r\n for (let i = 0; i < 4; i++) {\r\n const d = n % 10;\r\n n = Math.floor(n / 10);\r\n if (d === 0) {\r\n zeroFlag = true;\r\n continue;\r\n }\r\n if (zeroFlag) str = digit[0] + str;\r\n str = digit[d] + unit[i] + str;\r\n zeroFlag = false;\r\n }\r\n return str;\r\n };\r\n\r\n let res = '';\r\n let sectionIndex = 0;\r\n let n = Math.abs(numInt);\r\n\r\n while (n > 0) {\r\n const seg = n % 10000;\r\n n = Math.floor(n / 10000);\r\n if (seg) {\r\n const segStr = section4(seg);\r\n res = segStr + (sectionIndex ? bigUnit[sectionIndex] : '') + res;\r\n } else if (res && !res.startsWith('零')) {\r\n res = `零${res}`;\r\n }\r\n sectionIndex++;\r\n }\r\n\r\n res = res.replace(/^一十/, '十');\r\n\r\n return numInt < 0 ? `负${res}` : res;\r\n}\r\n\r\n/**\r\n * 金额转中文大写(支持角/分/厘,精度控制)。\r\n * @param amount 金额(支持 number | string),非法或非有限数返回空串\r\n * @param opts 配置项\r\n * @param opts.precision 保留小数位(0~3),对应:0无小数、1角、2角分、3角分厘;默认 2\r\n * @param opts.rm 舍入模式,默认 `BigNumber.ROUND_HALF_UP`(四舍五入)\r\n * @param opts.yuanChar 元单位字符(`'元' | '圆'`),默认 `'元'`\r\n * @returns 中文大写金额字符串;示例:`壹佰贰拾叁元肆角伍分`\r\n * @example\r\n * toChineseCurrency(0) // '零元整'\r\n * toChineseCurrency(10) // '拾元整'\r\n * toChineseCurrency(101) // '壹佰零壹元整'\r\n * toChineseCurrency(1001000) // '壹佰万零壹仟元整'\r\n * toChineseCurrency(1001.01) // '壹仟零壹元壹分'\r\n * toChineseCurrency('1234.5679', { precision: 3 }) // '壹仟贰佰叁拾肆元伍角陆分捌厘'\r\n * toChineseCurrency(-1.2) // '负壹元贰角'\r\n */\r\nexport function toChineseCurrency(\r\n amount: number | string,\r\n opts: {\r\n precision?: 0 | 1 | 2 | 3;\r\n rm?: BigNumber.RoundingMode;\r\n yuanChar?: '元' | '圆';\r\n } = {},\r\n): string {\r\n const dp = opts.precision ?? 2;\r\n const rm = opts.rm ?? BigNumber.ROUND_HALF_UP;\r\n const yuan = opts.yuanChar ?? '元';\r\n\r\n // 1. 非法输入直接返回空串\r\n if (amount === null || amount === undefined) return '';\r\n const bn = new BigNumber(amount);\r\n if (!bn.isFinite()) return '';\r\n\r\n // 2. 转字符串并拆分整数/小数\r\n const s = bn.toFixed(dp, rm);\r\n const sign = s.startsWith('-') ? '负' : '';\r\n const [intStr, decStr = ''] = s.replace(/^-/, '').split('.');\r\n\r\n // 3. 数字与大写映射\r\n const digit = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖'];\r\n const unit = ['', '拾', '佰', '仟'];\r\n const bigUnit = ['', '万', '亿', '兆'];\r\n const smallUnit = ['角', '分', '厘'];\r\n\r\n // 4. 四位一段转换整数\r\n const section4 = (n: BigNumber): string => {\r\n let str = '';\r\n let zeroFlag = false;\r\n for (let i = 0; i < 4; i++) {\r\n const d = n.mod(10).toNumber();\r\n n = n.idiv(10);\r\n if (d === 0) {\r\n zeroFlag = true;\r\n continue;\r\n }\r\n if (zeroFlag) str = digit[0] + str;\r\n str = digit[d] + unit[i] + str;\r\n zeroFlag = false;\r\n }\r\n return str.replace(/零+$/g, '');\r\n };\r\n\r\n const intNum = new BigNumber(intStr);\r\n let res = '';\r\n if (intNum.isZero()) {\r\n res = digit[0];\r\n } else {\r\n let n = intNum.abs();\r\n let sectionIndex = 0;\r\n while (n.gt(0)) {\r\n const seg = n.mod(10000);\r\n n = n.idiv(10000);\r\n if (seg.gt(0)) {\r\n const segStr = section4(seg);\r\n const needZero =\r\n res && !res.startsWith(digit[0]) && (seg.lt(1000) || seg.mod(1000).isZero());\r\n const bu = sectionIndex ? bigUnit[sectionIndex] : '';\r\n res = segStr + bu + (needZero ? digit[0] : '') + res;\r\n } else if (res && !res.startsWith(digit[0])) {\r\n res = digit[0] + res;\r\n }\r\n sectionIndex++;\r\n }\r\n res = res.replace(/^壹拾/, '拾');\r\n }\r\n\r\n // 5. 小数部分(角分厘)\r\n let frac = '';\r\n for (let i = 0; i < Math.min(3, dp); i++) {\r\n const ch = decStr[i] || '0';\r\n const d = ch.charCodeAt(0) - 48;\r\n if (d > 0) frac += digit[d] + smallUnit[i];\r\n }\r\n\r\n // 6. 拼接\r\n return frac ? `${sign}${res}${yuan}${frac}` : `${sign}${res}${yuan}整`;\r\n}\r\n","/**\r\n * 随机生成一个布尔值。\r\n * @returns 随机布尔值。\r\n * @example\r\n * randomBoolean(); // => 随机返回 true 或 false\r\n */\r\nexport function randomBoolean(): boolean {\r\n return Math.random() < 0.5;\r\n}\r\n","function at(arr, indices) {\n const result = new Array(indices.length);\n const length = arr.length;\n for (let i = 0; i < indices.length; i++) {\n let index = indices[i];\n index = Number.isInteger(index) ? index : Math.trunc(index) || 0;\n if (index < 0) {\n index += length;\n }\n result[i] = arr[index];\n }\n return result;\n}\n\nexport { at };\n","function chunk(arr, size) {\n if (!Number.isInteger(size) || size <= 0) {\n throw new Error('Size must be an integer greater than zero.');\n }\n const chunkLength = Math.ceil(arr.length / size);\n const result = Array(chunkLength);\n for (let index = 0; index < chunkLength; index++) {\n const start = index * size;\n const end = start + size;\n result[index] = arr.slice(start, end);\n }\n return result;\n}\n\nexport { chunk };\n","function compact(arr) {\n const result = [];\n for (let i = 0; i < arr.length; i++) {\n const item = arr[i];\n if (item) {\n result.push(item);\n }\n }\n return result;\n}\n\nexport { compact };\n","function countBy(arr, mapper) {\n const result = {};\n for (let i = 0; i < arr.length; i++) {\n const item = arr[i];\n const key = mapper(item);\n result[key] = (result[key] ?? 0) + 1;\n }\n return result;\n}\n\nexport { countBy };\n","function difference(firstArr, secondArr) {\n const secondSet = new Set(secondArr);\n return firstArr.filter(item => !secondSet.has(item));\n}\n\nexport { difference };\n","function differenceBy(firstArr, secondArr, mapper) {\n const mappedSecondSet = new Set(secondArr.map(item => mapper(item)));\n return firstArr.filter(item => {\n return !mappedSecondSet.has(mapper(item));\n });\n}\n\nexport { differenceBy };\n","function differenceWith(firstArr, secondArr, areItemsEqual) {\n return firstArr.filter(firstItem => {\n return secondArr.every(secondItem => {\n return !areItemsEqual(firstItem, secondItem);\n });\n });\n}\n\nexport { differenceWith };\n","function drop(arr, itemsCount) {\n itemsCount = Math.max(itemsCount, 0);\n return arr.slice(itemsCount);\n}\n\nexport { drop };\n","function dropRight(arr, itemsCount) {\n itemsCount = Math.min(-itemsCount, 0);\n if (itemsCount === 0) {\n return arr.slice();\n }\n return arr.slice(0, itemsCount);\n}\n\nexport { dropRight };\n","function dropRightWhile(arr, canContinueDropping) {\n for (let i = arr.length - 1; i >= 0; i--) {\n if (!canContinueDropping(arr[i], i, arr)) {\n return arr.slice(0, i + 1);\n }\n }\n return [];\n}\n\nexport { dropRightWhile };\n","function dropWhile(arr, canContinueDropping) {\n const dropEndIndex = arr.findIndex((item, index, arr) => !canContinueDropping(item, index, arr));\n if (dropEndIndex === -1) {\n return [];\n }\n return arr.slice(dropEndIndex);\n}\n\nexport { dropWhile };\n","function fill(array, value, start = 0, end = array.length) {\n const length = array.length;\n const finalStart = Math.max(start >= 0 ? start : length + start, 0);\n const finalEnd = Math.min(end >= 0 ? end : length + end, length);\n for (let i = finalStart; i < finalEnd; i++) {\n array[i] = value;\n }\n return array;\n}\n\nexport { fill };\n","class Semaphore {\n capacity;\n available;\n deferredTasks = [];\n constructor(capacity) {\n this.capacity = capacity;\n this.available = capacity;\n }\n async acquire() {\n if (this.available > 0) {\n this.available--;\n return;\n }\n return new Promise(resolve => {\n this.deferredTasks.push(resolve);\n });\n }\n release() {\n const deferredTask = this.deferredTasks.shift();\n if (deferredTask != null) {\n deferredTask();\n return;\n }\n if (this.available < this.capacity) {\n this.available++;\n }\n }\n}\n\nexport { Semaphore };\n","import { Semaphore } from '../promise/semaphore.mjs';\n\nfunction limitAsync(callback, concurrency) {\n const semaphore = new Semaphore(concurrency);\n return async function (...args) {\n try {\n await semaphore.acquire();\n return await callback.apply(this, args);\n }\n finally {\n semaphore.release();\n }\n };\n}\n\nexport { limitAsync };\n","import { limitAsync } from './limitAsync.mjs';\n\nasync function filterAsync(array, predicate, options) {\n if (options?.concurrency != null) {\n predicate = limitAsync(predicate, options.concurrency);\n }\n const results = await Promise.all(array.map(predicate));\n return array.filter((_, index) => results[index]);\n}\n\nexport { filterAsync };\n","function flatten(arr, depth = 1) {\n const result = [];\n const flooredDepth = Math.floor(depth);\n const recursive = (arr, currentDepth) => {\n for (let i = 0; i < arr.length; i++) {\n const item = arr[i];\n if (Array.isArray(item) && currentDepth < flooredDepth) {\n recursive(item, currentDepth + 1);\n }\n else {\n result.push(item);\n }\n }\n };\n recursive(arr, 0);\n return result;\n}\n\nexport { flatten };\n","import { flatten } from './flatten.mjs';\n\nfunction flatMap(arr, iteratee, depth = 1) {\n return flatten(arr.map(item => iteratee(item)), depth);\n}\n\nexport { flatMap };\n","import { flatten } from './flatten.mjs';\nimport { limitAsync } from './limitAsync.mjs';\n\nasync function flatMapAsync(array, callback, options) {\n if (options?.concurrency != null) {\n callback = limitAsync(callback, options.concurrency);\n }\n const results = await Promise.all(array.map(callback));\n return flatten(results);\n}\n\nexport { flatMapAsync };\n","import { flatten } from './flatten.mjs';\n\nfunction flattenDeep(arr) {\n return flatten(arr, Infinity);\n}\n\nexport { flattenDeep };\n","import { flattenDeep } from './flattenDeep.mjs';\n\nfunction flatMapDeep(arr, iteratee) {\n return flattenDeep(arr.map((item) => iteratee(item)));\n}\n\nexport { flatMapDeep };\n","import { limitAsync } from './limitAsync.mjs';\n\nasync function forEachAsync(array, callback, options) {\n if (options?.concurrency != null) {\n callback = limitAsync(callback, options.concurrency);\n }\n await Promise.all(array.map(callback));\n}\n\nexport { forEachAsync };\n","function forEachRight(arr, callback) {\n for (let i = arr.length - 1; i >= 0; i--) {\n const element = arr[i];\n callback(element, i, arr);\n }\n}\n\nexport { forEachRight };\n","function groupBy(arr, getKeyFromItem) {\n const result = {};\n for (let i = 0; i < arr.length; i++) {\n const item = arr[i];\n const key = getKeyFromItem(item);\n if (!Object.hasOwn(result, key)) {\n result[key] = [];\n }\n result[key].push(item);\n }\n return result;\n}\n\nexport { groupBy };\n","function head(arr) {\n return arr[0];\n}\n\nexport { head };\n","function initial(arr) {\n return arr.slice(0, -1);\n}\n\nexport { initial };\n","function intersection(firstArr, secondArr) {\n const secondSet = new Set(secondArr);\n return firstArr.filter(item => {\n return secondSet.has(item);\n });\n}\n\nexport { intersection };\n","function intersectionBy(firstArr, secondArr, mapper) {\n const mappedSecondSet = new Set(secondArr.map(mapper));\n return firstArr.filter(item => mappedSecondSet.has(mapper(item)));\n}\n\nexport { intersectionBy };\n","function intersectionWith(firstArr, secondArr, areItemsEqual) {\n return firstArr.filter(firstItem => {\n return secondArr.some(secondItem => {\n return areItemsEqual(firstItem, secondItem);\n });\n });\n}\n\nexport { intersectionWith };\n","import { difference } from './difference.mjs';\n\nfunction isSubset(superset, subset) {\n return difference(subset, superset).length === 0;\n}\n\nexport { isSubset };\n","import { differenceWith } from './differenceWith.mjs';\n\nfunction isSubsetWith(superset, subset, areItemsEqual) {\n return differenceWith(subset, superset, areItemsEqual).length === 0;\n}\n\nexport { isSubsetWith };\n","function keyBy(arr, getKeyFromItem) {\n const result = {};\n for (let i = 0; i < arr.length; i++) {\n const item = arr[i];\n const key = getKeyFromItem(item);\n result[key] = item;\n }\n return result;\n}\n\nexport { keyBy };\n","function last(arr) {\n return arr[arr.length - 1];\n}\n\nexport { last };\n","import { limitAsync } from './limitAsync.mjs';\n\nfunction mapAsync(array, callback, options) {\n if (options?.concurrency != null) {\n callback = limitAsync(callback, options.concurrency);\n }\n return Promise.all(array.map(callback));\n}\n\nexport { mapAsync };\n","function maxBy(items, getValue) {\n if (items.length === 0) {\n return undefined;\n }\n let maxElement = items[0];\n let max = getValue(maxElement);\n for (let i = 1; i < items.length; i++) {\n const element = items[i];\n const value = getValue(element);\n if (value > max) {\n max = value;\n maxElement = element;\n }\n }\n return maxElement;\n}\n\nexport { maxBy };\n","function minBy(items, getValue) {\n if (items.length === 0) {\n return undefined;\n }\n let minElement = items[0];\n let min = getValue(minElement);\n for (let i = 1; i < items.length; i++) {\n const element = items[i];\n const value = getValue(element);\n if (value < min) {\n min = value;\n minElement = element;\n }\n }\n return minElement;\n}\n\nexport { minBy };\n","function compareValues(a, b, order) {\n if (a < b) {\n return order === 'asc' ? -1 : 1;\n }\n if (a > b) {\n return order === 'asc' ? 1 : -1;\n }\n return 0;\n}\n\nexport { compareValues };\n","import { compareValues } from '../_internal/compareValues.mjs';\n\nfunction orderBy(arr, criteria, orders) {\n return arr.slice().sort((a, b) => {\n const ordersLength = orders.length;\n for (let i = 0; i < criteria.length; i++) {\n const order = ordersLength > i ? orders[i] : orders[ordersLength - 1];\n const criterion = criteria[i];\n const criterionIsFunction = typeof criterion === 'function';\n const valueA = criterionIsFunction ? criterion(a) : a[criterion];\n const valueB = criterionIsFunction ? criterion(b) : b[criterion];\n const result = compareValues(valueA, valueB, order);\n if (result !== 0) {\n return result;\n }\n }\n return 0;\n });\n}\n\nexport { orderBy };\n","function partition(arr, isInTruthy) {\n const truthy = [];\n const falsy = [];\n for (let i = 0; i < arr.length; i++) {\n const item = arr[i];\n if (isInTruthy(item)) {\n truthy.push(item);\n }\n else {\n falsy.push(item);\n }\n }\n return [truthy, falsy];\n}\n\nexport { partition };\n","function pull(arr, valuesToRemove) {\n const valuesSet = new Set(valuesToRemove);\n let resultIndex = 0;\n for (let i = 0; i < arr.length; i++) {\n if (valuesSet.has(arr[i])) {\n continue;\n }\n if (!Object.hasOwn(arr, i)) {\n delete arr[resultIndex++];\n continue;\n }\n arr[resultIndex++] = arr[i];\n }\n arr.length = resultIndex;\n return arr;\n}\n\nexport { pull };\n","import { at } from './at.mjs';\n\nfunction pullAt(arr, indicesToRemove) {\n const removed = at(arr, indicesToRemove);\n const indices = new Set(indicesToRemove.slice().sort((x, y) => y - x));\n for (const index of indices) {\n arr.splice(index, 1);\n }\n return removed;\n}\n\nexport { pullAt };\n","async function reduceAsync(array, reducer, initialValue) {\n let startIndex = 0;\n if (initialValue == null) {\n initialValue = array[0];\n startIndex = 1;\n }\n let accumulator = initialValue;\n for (let i = startIndex; i < array.length; i++) {\n accumulator = await reducer(accumulator, array[i], i, array);\n }\n return accumulator;\n}\n\nexport { reduceAsync };\n","function remove(arr, shouldRemoveElement) {\n const originalArr = arr.slice();\n const removed = [];\n let resultIndex = 0;\n for (let i = 0; i < arr.length; i++) {\n if (shouldRemoveElement(arr[i], i, originalArr)) {\n removed.push(arr[i]);\n continue;\n }\n if (!Object.hasOwn(arr, i)) {\n delete arr[resultIndex++];\n continue;\n }\n arr[resultIndex++] = arr[i];\n }\n arr.length = resultIndex;\n return removed;\n}\n\nexport { remove };\n","function sample(arr) {\n const randomIndex = Math.floor(Math.random() * arr.length);\n return arr[randomIndex];\n}\n\nexport { sample };\n","function random(minimum, maximum) {\n if (maximum == null) {\n maximum = minimum;\n minimum = 0;\n }\n if (minimum >= maximum) {\n throw new Error('Invalid input: The maximum value must be greater than the minimum value.');\n }\n return Math.random() * (maximum - minimum) + minimum;\n}\n\nexport { random };\n","import { random } from './random.mjs';\n\nfunction randomInt(minimum, maximum) {\n return Math.floor(random(minimum, maximum));\n}\n\nexport { randomInt };\n","import { randomInt } from '../math/randomInt.mjs';\n\nfunction sampleSize(array, size) {\n if (size > array.length) {\n throw new Error('Size must be less than or equal to the length of array.');\n }\n const result = new Array(size);\n const selected = new Set();\n for (let step = array.length - size, resultIndex = 0; step < array.length; step++, resultIndex++) {\n let index = randomInt(0, step + 1);\n if (selected.has(index)) {\n index = step;\n }\n selected.add(index);\n result[resultIndex] = array[index];\n }\n return result;\n}\n\nexport { sampleSize };\n","function shuffle(arr) {\n const result = arr.slice();\n for (let i = result.length - 1; i >= 1; i--) {\n const j = Math.floor(Math.random() * (i + 1));\n [result[i], result[j]] = [result[j], result[i]];\n }\n return result;\n}\n\nexport { shuffle };\n","import { orderBy } from './orderBy.mjs';\n\nfunction sortBy(arr, criteria) {\n return orderBy(arr, criteria, ['asc']);\n}\n\nexport { sortBy };\n","function tail(arr) {\n return arr.slice(1);\n}\n\nexport { tail };\n","function isSymbol(value) {\n return typeof value === 'symbol' || value instanceof Symbol;\n}\n\nexport { isSymbol };\n","import { isSymbol } from '../predicate/isSymbol.mjs';\n\nfunction toNumber(value) {\n if (isSymbol(value)) {\n return NaN;\n }\n return Number(value);\n}\n\nexport { toNumber };\n","import { toNumber } from './toNumber.mjs';\n\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === Infinity || value === -Infinity) {\n const sign = value < 0 ? -1 : 1;\n return sign * Number.MAX_VALUE;\n }\n return value === value ? value : 0;\n}\n\nexport { toFinite };\n","import { toFinite } from './toFinite.mjs';\n\nfunction toInteger(value) {\n const finite = toFinite(value);\n const remainder = finite % 1;\n return remainder ? finite - remainder : finite;\n}\n\nexport { toInteger };\n","import { toInteger } from '../compat/util/toInteger.mjs';\n\nfunction take(arr, count, guard) {\n count = guard || count === undefined ? 1 : toInteger(count);\n return arr.slice(0, count);\n}\n\nexport { take };\n","import { toInteger } from '../compat/util/toInteger.mjs';\n\nfunction takeRight(arr, count, guard) {\n count = guard || count === undefined ? 1 : toInteger(count);\n if (count <= 0 || arr.length === 0) {\n return [];\n }\n return arr.slice(-count);\n}\n\nexport { takeRight };\n","function takeRightWhile(arr, shouldContinueTaking) {\n for (let i = arr.length - 1; i >= 0; i--) {\n if (!shouldContinueTaking(arr[i])) {\n return arr.slice(i + 1);\n }\n }\n return arr.slice();\n}\n\nexport { takeRightWhile };\n","function takeWhile(arr, shouldContinueTaking) {\n const result = [];\n for (let i = 0; i < arr.length; i++) {\n const item = arr[i];\n if (!shouldContinueTaking(item)) {\n break;\n }\n result.push(item);\n }\n return result;\n}\n\nexport { takeWhile };\n","function toFilled(arr, value, start = 0, end = arr.length) {\n const length = arr.length;\n const finalStart = Math.max(start >= 0 ? start : length + start, 0);\n const finalEnd = Math.min(end >= 0 ? end : length + end, length);\n const newArr = arr.slice();\n for (let i = finalStart; i < finalEnd; i++) {\n newArr[i] = value;\n }\n return newArr;\n}\n\nexport { toFilled };\n","function uniq(arr) {\n return [...new Set(arr)];\n}\n\nexport { uniq };\n","import { uniq } from './uniq.mjs';\n\nfunction union(arr1, arr2) {\n return uniq(arr1.concat(arr2));\n}\n\nexport { union };\n","function uniqBy(arr, mapper) {\n const map = new Map();\n for (let i = 0; i < arr.length; i++) {\n const item = arr[i];\n const key = mapper(item);\n if (!map.has(key)) {\n map.set(key, item);\n }\n }\n return Array.from(map.values());\n}\n\nexport { uniqBy };\n","import { uniqBy } from './uniqBy.mjs';\n\nfunction unionBy(arr1, arr2, mapper) {\n return uniqBy(arr1.concat(arr2), mapper);\n}\n\nexport { unionBy };\n","function uniqWith(arr, areItemsEqual) {\n const result = [];\n for (let i = 0; i < arr.length; i++) {\n const item = arr[i];\n const isUniq = result.every(v => !areItemsEqual(v, item));\n if (isUniq) {\n result.push(item);\n }\n }\n return result;\n}\n\nexport { uniqWith };\n","import { uniqWith } from './uniqWith.mjs';\n\nfunction unionWith(arr1, arr2, areItemsEqual) {\n return uniqWith(arr1.concat(arr2), areItemsEqual);\n}\n\nexport { unionWith };\n","function unzip(zipped) {\n let maxLen = 0;\n for (let i = 0; i < zipped.length; i++) {\n if (zipped[i].length > maxLen) {\n maxLen = zipped[i].length;\n }\n }\n const result = new Array(maxLen);\n for (let i = 0; i < maxLen; i++) {\n result[i] = new Array(zipped.length);\n for (let j = 0; j < zipped.length; j++) {\n result[i][j] = zipped[j][i];\n }\n }\n return result;\n}\n\nexport { unzip };\n","function unzipWith(target, iteratee) {\n const maxLength = Math.max(...target.map(innerArray => innerArray.length));\n const result = new Array(maxLength);\n for (let i = 0; i < maxLength; i++) {\n const group = new Array(target.length);\n for (let j = 0; j < target.length; j++) {\n group[j] = target[j][i];\n }\n result[i] = iteratee(...group);\n }\n return result;\n}\n\nexport { unzipWith };\n","function windowed(arr, size, step = 1, { partialWindows = false } = {}) {\n if (size <= 0 || !Number.isInteger(size)) {\n throw new Error('Size must be a positive integer.');\n }\n if (step <= 0 || !Number.isInteger(step)) {\n throw new Error('Step must be a positive integer.');\n }\n const result = [];\n const end = partialWindows ? arr.length : arr.length - size + 1;\n for (let i = 0; i < end; i += step) {\n result.push(arr.slice(i, i + size));\n }\n return result;\n}\n\nexport { windowed };\n","import { difference } from './difference.mjs';\n\nfunction without(array, ...values) {\n return difference(array, values);\n}\n\nexport { without };\n","import { difference } from './difference.mjs';\nimport { intersection } from './intersection.mjs';\nimport { union } from './union.mjs';\n\nfunction xor(arr1, arr2) {\n return difference(union(arr1, arr2), intersection(arr1, arr2));\n}\n\nexport { xor };\n","import { differenceBy } from './differenceBy.mjs';\nimport { intersectionBy } from './intersectionBy.mjs';\nimport { unionBy } from './unionBy.mjs';\n\nfunction xorBy(arr1, arr2, mapper) {\n const union = unionBy(arr1, arr2, mapper);\n const intersection = intersectionBy(arr1, arr2, mapper);\n return differenceBy(union, intersection, mapper);\n}\n\nexport { xorBy };\n","import { differenceWith } from './differenceWith.mjs';\nimport { intersectionWith } from './intersectionWith.mjs';\nimport { unionWith } from './unionWith.mjs';\n\nfunction xorWith(arr1, arr2, areElementsEqual) {\n const union = unionWith(arr1, arr2, areElementsEqual);\n const intersection = intersectionWith(arr1, arr2, areElementsEqual);\n return differenceWith(union, intersection, areElementsEqual);\n}\n\nexport { xorWith };\n","function zip(...arrs) {\n let rowCount = 0;\n for (let i = 0; i < arrs.length; i++) {\n if (arrs[i].length > rowCount) {\n rowCount = arrs[i].length;\n }\n }\n const columnCount = arrs.length;\n const result = Array(rowCount);\n for (let i = 0; i < rowCount; ++i) {\n const row = Array(columnCount);\n for (let j = 0; j < columnCount; ++j) {\n row[j] = arrs[j][i];\n }\n result[i] = row;\n }\n return result;\n}\n\nexport { zip };\n","function zipObject(keys, values) {\n const result = {};\n for (let i = 0; i < keys.length; i++) {\n result[keys[i]] = values[i];\n }\n return result;\n}\n\nexport { zipObject };\n","function zipWith(arr1, ...rest) {\n const arrs = [arr1, ...rest.slice(0, -1)];\n const combine = rest[rest.length - 1];\n const maxIndex = Math.max(...arrs.map(arr => arr.length));\n const result = Array(maxIndex);\n for (let i = 0; i < maxIndex; i++) {\n const elements = arrs.map(arr => arr[i]);\n result[i] = combine(...elements);\n }\n return result;\n}\n\nexport { zipWith };\n","class AbortError extends Error {\n constructor(message = 'The operation was aborted') {\n super(message);\n this.name = 'AbortError';\n }\n}\n\nexport { AbortError };\n","class TimeoutError extends Error {\n constructor(message = 'The operation was timed out') {\n super(message);\n this.name = 'TimeoutError';\n }\n}\n\nexport { TimeoutError };\n","function after(n, func) {\n if (!Number.isInteger(n) || n < 0) {\n throw new Error(`n must be a non-negative integer.`);\n }\n let counter = 0;\n return (...args) => {\n if (++counter >= n) {\n return func(...args);\n }\n return undefined;\n };\n}\n\nexport { after };\n","function ary(func, n) {\n return function (...args) {\n return func.apply(this, args.slice(0, n));\n };\n}\n\nexport { ary };\n","async function asyncNoop() { }\n\nexport { asyncNoop };\n","function before(n, func) {\n if (!Number.isInteger(n) || n < 0) {\n throw new Error('n must be a non-negative integer.');\n }\n let counter = 0;\n return (...args) => {\n if (++counter < n) {\n return func(...args);\n }\n return undefined;\n };\n}\n\nexport { before };\n","function curry(func) {\n if (func.length === 0 || func.length === 1) {\n return func;\n }\n return function (arg) {\n return makeCurry(func, func.length, [arg]);\n };\n}\nfunction makeCurry(origin, argsLength, args) {\n if (args.length === argsLength) {\n return origin(...args);\n }\n else {\n const next = function (arg) {\n return makeCurry(origin, argsLength, [...args, arg]);\n };\n return next;\n }\n}\n\nexport { curry };\n","function curryRight(func) {\n if (func.length === 0 || func.length === 1) {\n return func;\n }\n return function (arg) {\n return makeCurryRight(func, func.length, [arg]);\n };\n}\nfunction makeCurryRight(origin, argsLength, args) {\n if (args.length === argsLength) {\n return origin(...args);\n }\n else {\n const next = function (arg) {\n return makeCurryRight(origin, argsLength, [arg, ...args]);\n };\n return next;\n }\n}\n\nexport { curryRight };\n","function debounce(func, debounceMs, { signal, edges } = {}) {\n let pendingThis = undefined;\n let pendingArgs = null;\n const leading = edges != null && edges.includes('leading');\n const trailing = edges == null || edges.includes('trailing');\n const invoke = () => {\n if (pendingArgs !== null) {\n func.apply(pendingThis, pendingArgs);\n pendingThis = undefined;\n pendingArgs = null;\n }\n };\n const onTimerEnd = () => {\n if (trailing) {\n invoke();\n }\n cancel();\n };\n let timeoutId = null;\n const schedule = () => {\n if (timeoutId != null) {\n clearTimeout(timeoutId);\n }\n timeoutId = setTimeout(() => {\n timeoutId = null;\n onTimerEnd();\n }, debounceMs);\n };\n const cancelTimer = () => {\n if (timeoutId !== null) {\n clearTimeout(timeoutId);\n timeoutId = null;\n }\n };\n const cancel = () => {\n cancelTimer();\n pendingThis = undefined;\n pendingArgs = null;\n };\n const flush = () => {\n invoke();\n };\n const debounced = function (...args) {\n if (signal?.aborted) {\n return;\n }\n pendingThis = this;\n pendingArgs = args;\n const isFirstCall = timeoutId == null;\n schedule();\n if (leading && isFirstCall) {\n invoke();\n }\n };\n debounced.schedule = schedule;\n debounced.cancel = cancel;\n debounced.flush = flush;\n signal?.addEventListener('abort', cancel, { once: true });\n return debounced;\n}\n\nexport { debounce };\n","function flow(...funcs) {\n return function (...args) {\n let result = funcs.length ? funcs[0].apply(this, args) : args[0];\n for (let i = 1; i < funcs.length; i++) {\n result = funcs[i].call(this, result);\n }\n return result;\n };\n}\n\nexport { flow };\n","import { flow } from './flow.mjs';\n\nfunction flowRight(...funcs) {\n return flow(...funcs.reverse());\n}\n\nexport { flowRight };\n","function identity(x) {\n return x;\n}\n\nexport { identity };\n","function memoize(fn, options = {}) {\n const { cache = new Map(), getCacheKey } = options;\n const memoizedFn = function (arg) {\n const key = getCacheKey ? getCacheKey(arg) : arg;\n if (cache.has(key)) {\n return cache.get(key);\n }\n const result = fn.call(this, arg);\n cache.set(key, result);\n return result;\n };\n memoizedFn.cache = cache;\n return memoizedFn;\n}\n\nexport { memoize };\n","function negate(func) {\n return ((...args) => !func(...args));\n}\n\nexport { negate };\n","function noop() { }\n\nexport { noop };\n","function once(func) {\n let called = false;\n let cache;\n return function (...args) {\n if (!called) {\n called = true;\n cache = func(...args);\n }\n return cache;\n };\n}\n\nexport { once };\n","function partial(func, ...partialArgs) {\n return partialImpl(func, placeholderSymbol, ...partialArgs);\n}\nfunction partialImpl(func, placeholder, ...partialArgs) {\n const partialed = function (...providedArgs) {\n let providedArgsIndex = 0;\n const substitutedArgs = partialArgs\n .slice()\n .map(arg => (arg === placeholder ? providedArgs[providedArgsIndex++] : arg));\n const remainingArgs = providedArgs.slice(providedArgsIndex);\n return func.apply(this, substitutedArgs.concat(remainingArgs));\n };\n if (func.prototype) {\n partialed.prototype = Object.create(func.prototype);\n }\n return partialed;\n}\nconst placeholderSymbol = Symbol('partial.placeholder');\npartial.placeholder = placeholderSymbol;\n\nexport { partial, partialImpl };\n","function partialRight(func, ...partialArgs) {\n return partialRightImpl(func, placeholderSymbol, ...partialArgs);\n}\nfunction partialRightImpl(func, placeholder, ...partialArgs) {\n const partialedRight = function (...providedArgs) {\n const placeholderLength = partialArgs.filter(arg => arg === placeholder).length;\n const rangeLength = Math.max(providedArgs.length - placeholderLength, 0);\n const remainingArgs = providedArgs.slice(0, rangeLength);\n let providedArgsIndex = rangeLength;\n const substitutedArgs = partialArgs\n .slice()\n .map(arg => (arg === placeholder ? providedArgs[providedArgsIndex++] : arg));\n return func.apply(this, remainingArgs.concat(substitutedArgs));\n };\n if (func.prototype) {\n partialedRight.prototype = Object.create(func.prototype);\n }\n return partialedRight;\n}\nconst placeholderSymbol = Symbol('partialRight.placeholder');\npartialRight.placeholder = placeholderSymbol;\n\nexport { partialRight, partialRightImpl };\n","function rest(func, startIndex = func.length - 1) {\n return function (...args) {\n const rest = args.slice(startIndex);\n const params = args.slice(0, startIndex);\n while (params.length < startIndex) {\n params.push(undefined);\n }\n return func.apply(this, [...params, rest]);\n };\n}\n\nexport { rest };\n","import { AbortError } from '../error/AbortError.mjs';\n\nfunction delay(ms, { signal } = {}) {\n return new Promise((resolve, reject) => {\n const abortError = () => {\n reject(new AbortError());\n };\n const abortHandler = () => {\n clearTimeout(timeoutId);\n abortError();\n };\n if (signal?.aborted) {\n return abortError();\n }\n const timeoutId = setTimeout(() => {\n signal?.removeEventListener('abort', abortHandler);\n resolve();\n }, ms);\n signal?.addEventListener('abort', abortHandler, { once: true });\n });\n}\n\nexport { delay };\n","import { delay } from '../promise/delay.mjs';\n\nconst DEFAULT_DELAY = 0;\nconst DEFAULT_RETRIES = Number.POSITIVE_INFINITY;\nasync function retry(func, _options) {\n let delay$1;\n let retries;\n let signal;\n if (typeof _options === 'number') {\n delay$1 = DEFAULT_DELAY;\n retries = _options;\n signal = undefined;\n }\n else {\n delay$1 = _options?.delay ?? DEFAULT_DELAY;\n retries = _options?.retries ?? DEFAULT_RETRIES;\n signal = _options?.signal;\n }\n let error;\n for (let attempts = 0; attempts < retries; attempts++) {\n if (signal?.aborted) {\n throw error ?? new Error(`The retry operation was aborted due to an abort signal.`);\n }\n try {\n return await func();\n }\n catch (err) {\n error = err;\n const currentDelay = typeof delay$1 === 'function' ? delay$1(attempts) : delay$1;\n await delay(currentDelay);\n }\n }\n throw error;\n}\n\nexport { retry };\n","function spread(func) {\n return function (argsArr) {\n return func.apply(this, argsArr);\n };\n}\n\nexport { spread };\n","import { debounce } from './debounce.mjs';\n\nfunction throttle(func, throttleMs, { signal, edges = ['leading', 'trailing'] } = {}) {\n let pendingAt = null;\n const debounced = debounce(func, throttleMs, { signal, edges });\n const throttled = function (...args) {\n if (pendingAt == null) {\n pendingAt = Date.now();\n }\n else {\n if (Date.now() - pendingAt >= throttleMs) {\n pendingAt = Date.now();\n debounced.cancel();\n }\n }\n debounced.apply(this, args);\n };\n throttled.cancel = debounced.cancel;\n throttled.flush = debounced.flush;\n return throttled;\n}\n\nexport { throttle };\n","import { ary } from './ary.mjs';\n\nfunction unary(func) {\n return ary(func, 1);\n}\n\nexport { unary };\n","function clamp(value, bound1, bound2) {\n if (bound2 == null) {\n return Math.min(value, bound1);\n }\n return Math.min(Math.max(value, bound1), bound2);\n}\n\nexport { clamp };\n","function inRange(value, minimum, maximum) {\n if (maximum == null) {\n maximum = minimum;\n minimum = 0;\n }\n if (minimum >= maximum) {\n throw new Error('The maximum value must be greater than the minimum value.');\n }\n return minimum <= value && value < maximum;\n}\n\nexport { inRange };\n","function sum(nums) {\n let result = 0;\n for (let i = 0; i < nums.length; i++) {\n result += nums[i];\n }\n return result;\n}\n\nexport { sum };\n","import { sum } from './sum.mjs';\n\nfunction mean(nums) {\n return sum(nums) / nums.length;\n}\n\nexport { mean };\n","function sumBy(items, getValue) {\n let result = 0;\n for (let i = 0; i < items.length; i++) {\n result += getValue(items[i], i);\n }\n return result;\n}\n\nexport { sumBy };\n","import { sumBy } from './sumBy.mjs';\n\nfunction meanBy(items, getValue) {\n return sumBy(items, item => getValue(item)) / items.length;\n}\n\nexport { meanBy };\n","function median(nums) {\n if (nums.length === 0) {\n return NaN;\n }\n const sorted = nums.slice().sort((a, b) => a - b);\n const middleIndex = Math.floor(sorted.length / 2);\n if (sorted.length % 2 === 0) {\n return (sorted[middleIndex - 1] + sorted[middleIndex]) / 2;\n }\n else {\n return sorted[middleIndex];\n }\n}\n\nexport { median };\n","import { median } from './median.mjs';\n\nfunction medianBy(items, getValue) {\n const nums = items.map(x => getValue(x));\n return median(nums);\n}\n\nexport { medianBy };\n","function range(start, end, step = 1) {\n if (end == null) {\n end = start;\n start = 0;\n }\n if (!Number.isInteger(step) || step === 0) {\n throw new Error(`The step value must be a non-zero integer.`);\n }\n const length = Math.max(Math.ceil((end - start) / step), 0);\n const result = new Array(length);\n for (let i = 0; i < length; i++) {\n result[i] = start + i * step;\n }\n return result;\n}\n\nexport { range };\n","function rangeRight(start, end, step = 1) {\n if (end == null) {\n end = start;\n start = 0;\n }\n if (!Number.isInteger(step) || step === 0) {\n throw new Error(`The step value must be a non-zero integer.`);\n }\n const length = Math.max(Math.ceil((end - start) / step), 0);\n const result = new Array(length);\n for (let i = 0; i < length; i++) {\n result[i] = start + (length - i - 1) * step;\n }\n return result;\n}\n\nexport { rangeRight };\n","function round(value, precision = 0) {\n if (!Number.isInteger(precision)) {\n throw new Error('Precision must be an integer.');\n }\n const multiplier = Math.pow(10, precision);\n return Math.round(value * multiplier) / multiplier;\n}\n\nexport { round };\n","function isPrimitive(value) {\n return value == null || (typeof value !== 'object' && typeof value !== 'function');\n}\n\nexport { isPrimitive };\n","function isTypedArray(x) {\n return ArrayBuffer.isView(x) && !(x instanceof DataView);\n}\n\nexport { isTypedArray };\n","import { isPrimitive } from '../predicate/isPrimitive.mjs';\nimport { isTypedArray } from '../predicate/isTypedArray.mjs';\n\nfunction clone(obj) {\n if (isPrimitive(obj)) {\n return obj;\n }\n if (Array.isArray(obj) ||\n isTypedArray(obj) ||\n obj instanceof ArrayBuffer ||\n (typeof SharedArrayBuffer !== 'undefined' && obj instanceof SharedArrayBuffer)) {\n return obj.slice(0);\n }\n const prototype = Object.getPrototypeOf(obj);\n const Constructor = prototype.constructor;\n if (obj instanceof Date || obj instanceof Map || obj instanceof Set) {\n return new Constructor(obj);\n }\n if (obj instanceof RegExp) {\n const newRegExp = new Constructor(obj);\n newRegExp.lastIndex = obj.lastIndex;\n return newRegExp;\n }\n if (obj instanceof DataView) {\n return new Constructor(obj.buffer.slice(0));\n }\n if (obj instanceof Error) {\n const newError = new Constructor(obj.message);\n newError.stack = obj.stack;\n newError.name = obj.name;\n newError.cause = obj.cause;\n return newError;\n }\n if (typeof File !== 'undefined' && obj instanceof File) {\n const newFile = new Constructor([obj], obj.name, { type: obj.type, lastModified: obj.lastModified });\n return newFile;\n }\n if (typeof obj === 'object') {\n const newObject = Object.create(prototype);\n return Object.assign(newObject, obj);\n }\n return obj;\n}\n\nexport { clone };\n","function getSymbols(object) {\n return Object.getOwnPropertySymbols(object).filter(symbol => Object.prototype.propertyIsEnumerable.call(object, symbol));\n}\n\nexport { getSymbols };\n","function getTag(value) {\n if (value == null) {\n return value === undefined ? '[object Undefined]' : '[object Null]';\n }\n return Object.prototype.toString.call(value);\n}\n\nexport { getTag };\n","const regexpTag = '[object RegExp]';\nconst stringTag = '[object String]';\nconst numberTag = '[object Number]';\nconst booleanTag = '[object Boolean]';\nconst argumentsTag = '[object Arguments]';\nconst symbolTag = '[object Symbol]';\nconst dateTag = '[object Date]';\nconst mapTag = '[object Map]';\nconst setTag = '[object Set]';\nconst arrayTag = '[object Array]';\nconst functionTag = '[object Function]';\nconst arrayBufferTag = '[object ArrayBuffer]';\nconst objectTag = '[object Object]';\nconst errorTag = '[object Error]';\nconst dataViewTag = '[object DataView]';\nconst uint8ArrayTag = '[object Uint8Array]';\nconst uint8ClampedArrayTag = '[object Uint8ClampedArray]';\nconst uint16ArrayTag = '[object Uint16Array]';\nconst uint32ArrayTag = '[object Uint32Array]';\nconst bigUint64ArrayTag = '[object BigUint64Array]';\nconst int8ArrayTag = '[object Int8Array]';\nconst int16ArrayTag = '[object Int16Array]';\nconst int32ArrayTag = '[object Int32Array]';\nconst bigInt64ArrayTag = '[object BigInt64Array]';\nconst float32ArrayTag = '[object Float32Array]';\nconst float64ArrayTag = '[object Float64Array]';\n\nexport { argumentsTag, arrayBufferTag, arrayTag, bigInt64ArrayTag, bigUint64ArrayTag, booleanTag, dataViewTag, dateTag, errorTag, float32ArrayTag, float64ArrayTag, functionTag, int16ArrayTag, int32ArrayTag, int8ArrayTag, mapTag, numberTag, objectTag, regexpTag, setTag, stringTag, symbolTag, uint16ArrayTag, uint32ArrayTag, uint8ArrayTag, uint8ClampedArrayTag };\n","import { getSymbols } from '../compat/_internal/getSymbols.mjs';\nimport { getTag } from '../compat/_internal/getTag.mjs';\nimport { uint32ArrayTag, uint16ArrayTag, uint8ClampedArrayTag, uint8ArrayTag, symbolTag, stringTag, setTag, regexpTag, objectTag, numberTag, mapTag, int32ArrayTag, int16ArrayTag, int8ArrayTag, float64ArrayTag, float32ArrayTag, dateTag, booleanTag, dataViewTag, arrayBufferTag, arrayTag, argumentsTag } from '../compat/_internal/tags.mjs';\nimport { isPrimitive } from '../predicate/isPrimitive.mjs';\nimport { isTypedArray } from '../predicate/isTypedArray.mjs';\n\nfunction cloneDeepWith(obj, cloneValue) {\n return cloneDeepWithImpl(obj, undefined, obj, new Map(), cloneValue);\n}\nfunction cloneDeepWithImpl(valueToClone, keyToClone, objectToClone, stack = new Map(), cloneValue = undefined) {\n const cloned = cloneValue?.(valueToClone, keyToClone, objectToClone, stack);\n if (cloned !== undefined) {\n return cloned;\n }\n if (isPrimitive(valueToClone)) {\n return valueToClone;\n }\n if (stack.has(valueToClone)) {\n return stack.get(valueToClone);\n }\n if (Array.isArray(valueToClone)) {\n const result = new Array(valueToClone.length);\n stack.set(valueToClone, result);\n for (let i = 0; i < valueToClone.length; i++) {\n result[i] = cloneDeepWithImpl(valueToClone[i], i, objectToClone, stack, cloneValue);\n }\n if (Object.hasOwn(valueToClone, 'index')) {\n result.index = valueToClone.index;\n }\n if (Object.hasOwn(valueToClone, 'input')) {\n result.input = valueToClone.input;\n }\n return result;\n }\n if (valueToClone instanceof Date) {\n return new Date(valueToClone.getTime());\n }\n if (valueToClone instanceof RegExp) {\n const result = new RegExp(valueToClone.source, valueToClone.flags);\n result.lastIndex = valueToClone.lastIndex;\n return result;\n }\n if (valueToClone instanceof Map) {\n const result = new Map();\n stack.set(valueToClone, result);\n for (const [key, value] of valueToClone) {\n result.set(key, cloneDeepWithImpl(value, key, objectToClone, stack, cloneValue));\n }\n return result;\n }\n if (valueToClone instanceof Set) {\n const result = new Set();\n stack.set(valueToClone, result);\n for (const value of valueToClone) {\n result.add(cloneDeepWithImpl(value, undefined, objectToClone, stack, cloneValue));\n }\n return result;\n }\n if (typeof Buffer !== 'undefined' && Buffer.isBuffer(valueToClone)) {\n return valueToClone.subarray();\n }\n if (isTypedArray(valueToClone)) {\n const result = new (Object.getPrototypeOf(valueToClone).constructor)(valueToClone.length);\n stack.set(valueToClone, result);\n for (let i = 0; i < valueToClone.length; i++) {\n result[i] = cloneDeepWithImpl(valueToClone[i], i, objectToClone, stack, cloneValue);\n }\n return result;\n }\n if (valueToClone instanceof ArrayBuffer ||\n (typeof SharedArrayBuffer !== 'undefined' && valueToClone instanceof SharedArrayBuffer)) {\n return valueToClone.slice(0);\n }\n if (valueToClone instanceof DataView) {\n const result = new DataView(valueToClone.buffer.slice(0), valueToClone.byteOffset, valueToClone.byteLength);\n stack.set(valueToClone, result);\n copyProperties(result, valueToClone, objectToClone, stack, cloneValue);\n return result;\n }\n if (typeof File !== 'undefined' && valueToClone instanceof File) {\n const result = new File([valueToClone], valueToClone.name, {\n type: valueToClone.type,\n });\n stack.set(valueToClone, result);\n copyProperties(result, valueToClone, objectToClone, stack, cloneValue);\n return result;\n }\n if (typeof Blob !== 'undefined' && valueToClone instanceof Blob) {\n const result = new Blob([valueToClone], { type: valueToClone.type });\n stack.set(valueToClone, result);\n copyProperties(result, valueToClone, objectToClone, stack, cloneValue);\n return result;\n }\n if (valueToClone instanceof Error) {\n const result = new valueToClone.constructor();\n stack.set(valueToClone, result);\n result.message = valueToClone.message;\n result.name = valueToClone.name;\n result.stack = valueToClone.stack;\n result.cause = valueToClone.cause;\n copyProperties(result, valueToClone, objectToClone, stack, cloneValue);\n return result;\n }\n if (valueToClone instanceof Boolean) {\n const result = new Boolean(valueToClone.valueOf());\n stack.set(valueToClone, result);\n copyProperties(result, valueToClone, objectToClone, stack, cloneValue);\n return result;\n }\n if (valueToClone instanceof Number) {\n const result = new Number(valueToClone.valueOf());\n stack.set(valueToClone, result);\n copyProperties(result, valueToClone, objectToClone, stack, cloneValue);\n return result;\n }\n if (valueToClone instanceof String) {\n const result = new String(valueToClone.valueOf());\n stack.set(valueToClone, result);\n copyProperties(result, valueToClone, objectToClone, stack, cloneValue);\n return result;\n }\n if (typeof valueToClone === 'object' && isCloneableObject(valueToClone)) {\n const result = Object.create(Object.getPrototypeOf(valueToClone));\n stack.set(valueToClone, result);\n copyProperties(result, valueToClone, objectToClone, stack, cloneValue);\n return result;\n }\n return valueToClone;\n}\nfunction copyProperties(target, source, objectToClone = target, stack, cloneValue) {\n const keys = [...Object.keys(source), ...getSymbols(source)];\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n const descriptor = Object.getOwnPropertyDescriptor(target, key);\n if (descriptor == null || descriptor.writable) {\n target[key] = cloneDeepWithImpl(source[key], key, objectToClone, stack, cloneValue);\n }\n }\n}\nfunction isCloneableObject(object) {\n switch (getTag(object)) {\n case argumentsTag:\n case arrayTag:\n case arrayBufferTag:\n case dataViewTag:\n case booleanTag:\n case dateTag:\n case float32ArrayTag:\n case float64ArrayTag:\n case int8ArrayTag:\n case int16ArrayTag:\n case int32ArrayTag:\n case mapTag:\n case numberTag:\n case objectTag:\n case regexpTag:\n case setTag:\n case stringTag:\n case symbolTag:\n case uint8ArrayTag:\n case uint8ClampedArrayTag:\n case uint16ArrayTag:\n case uint32ArrayTag: {\n return true;\n }\n default: {\n return false;\n }\n }\n}\n\nexport { cloneDeepWith, cloneDeepWithImpl, copyProperties };\n","import { cloneDeepWithImpl } from './cloneDeepWith.mjs';\n\nfunction cloneDeep(obj) {\n return cloneDeepWithImpl(obj, undefined, obj, new Map(), undefined);\n}\n\nexport { cloneDeep };\n","function findKey(obj, predicate) {\n const keys = Object.keys(obj);\n return keys.find(key => predicate(obj[key], key, obj));\n}\n\nexport { findKey };\n","function isPlainObject(value) {\n if (!value || typeof value !== 'object') {\n return false;\n }\n const proto = Object.getPrototypeOf(value);\n const hasObjectPrototype = proto === null ||\n proto === Object.prototype ||\n Object.getPrototypeOf(proto) === null;\n if (!hasObjectPrototype) {\n return false;\n }\n return Object.prototype.toString.call(value) === '[object Object]';\n}\n\nexport { isPlainObject };\n","import { isPlainObject } from '../predicate/isPlainObject.mjs';\n\nfunction flattenObject(object, { delimiter = '.' } = {}) {\n return flattenObjectImpl(object, '', delimiter);\n}\nfunction flattenObjectImpl(object, prefix, delimiter) {\n const result = {};\n const keys = Object.keys(object);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n const value = object[key];\n const prefixedKey = prefix ? `${prefix}${delimiter}${key}` : key;\n if (isPlainObject(value) && Object.keys(value).length > 0) {\n Object.assign(result, flattenObjectImpl(value, prefixedKey, delimiter));\n continue;\n }\n if (Array.isArray(value)) {\n Object.assign(result, flattenObjectImpl(value, prefixedKey, delimiter));\n continue;\n }\n result[prefixedKey] = value;\n }\n return result;\n}\n\nexport { flattenObject };\n","function invert(obj) {\n const result = {};\n const keys = Object.keys(obj);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n const value = obj[key];\n result[value] = key;\n }\n return result;\n}\n\nexport { invert };\n","function mapKeys(object, getNewKey) {\n const result = {};\n const keys = Object.keys(object);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n const value = object[key];\n result[getNewKey(value, key, object)] = value;\n }\n return result;\n}\n\nexport { mapKeys };\n","function mapValues(object, getNewValue) {\n const result = {};\n const keys = Object.keys(object);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n const value = object[key];\n result[key] = getNewValue(value, key, object);\n }\n return result;\n}\n\nexport { mapValues };\n","function isUnsafeProperty(key) {\n return key === '__proto__';\n}\n\nexport { isUnsafeProperty };\n","import { isUnsafeProperty } from '../_internal/isUnsafeProperty.mjs';\nimport { isPlainObject } from '../predicate/isPlainObject.mjs';\n\nfunction merge(target, source) {\n const sourceKeys = Object.keys(source);\n for (let i = 0; i < sourceKeys.length; i++) {\n const key = sourceKeys[i];\n if (isUnsafeProperty(key)) {\n continue;\n }\n const sourceValue = source[key];\n const targetValue = target[key];\n if (Array.isArray(sourceValue)) {\n if (Array.isArray(targetValue)) {\n target[key] = merge(targetValue, sourceValue);\n }\n else {\n target[key] = merge([], sourceValue);\n }\n }\n else if (isPlainObject(sourceValue)) {\n if (isPlainObject(targetValue)) {\n target[key] = merge(targetValue, sourceValue);\n }\n else {\n target[key] = merge({}, sourceValue);\n }\n }\n else if (targetValue === undefined || sourceValue !== undefined) {\n target[key] = sourceValue;\n }\n }\n return target;\n}\n\nexport { merge };\n","import { isUnsafeProperty } from '../_internal/isUnsafeProperty.mjs';\nimport { isPlainObject } from '../predicate/isPlainObject.mjs';\n\nfunction mergeWith(target, source, merge) {\n const sourceKeys = Object.keys(source);\n for (let i = 0; i < sourceKeys.length; i++) {\n const key = sourceKeys[i];\n if (isUnsafeProperty(key)) {\n continue;\n }\n const sourceValue = source[key];\n const targetValue = target[key];\n const merged = merge(targetValue, sourceValue, key, target, source);\n if (merged !== undefined) {\n target[key] = merged;\n }\n else if (Array.isArray(sourceValue)) {\n if (Array.isArray(targetValue)) {\n target[key] = mergeWith(targetValue, sourceValue, merge);\n }\n else {\n target[key] = mergeWith([], sourceValue, merge);\n }\n }\n else if (isPlainObject(sourceValue)) {\n if (isPlainObject(targetValue)) {\n target[key] = mergeWith(targetValue, sourceValue, merge);\n }\n else {\n target[key] = mergeWith({}, sourceValue, merge);\n }\n }\n else if (targetValue === undefined || sourceValue !== undefined) {\n target[key] = sourceValue;\n }\n }\n return target;\n}\n\nexport { mergeWith };\n","function omit(obj, keys) {\n const result = { ...obj };\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n delete result[key];\n }\n return result;\n}\n\nexport { omit };\n","function omitBy(obj, shouldOmit) {\n const result = {};\n const keys = Object.keys(obj);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n const value = obj[key];\n if (!shouldOmit(value, key)) {\n result[key] = value;\n }\n }\n return result;\n}\n\nexport { omitBy };\n","function pick(obj, keys) {\n const result = {};\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n if (Object.hasOwn(obj, key)) {\n result[key] = obj[key];\n }\n }\n return result;\n}\n\nexport { pick };\n","function pickBy(obj, shouldPick) {\n const result = {};\n const keys = Object.keys(obj);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n const value = obj[key];\n if (shouldPick(value, key)) {\n result[key] = value;\n }\n }\n return result;\n}\n\nexport { pickBy };\n","function isArray(value) {\n return Array.isArray(value);\n}\n\nexport { isArray };\n","function capitalize(str) {\n return (str.charAt(0).toUpperCase() + str.slice(1).toLowerCase());\n}\n\nexport { capitalize };\n","const CASE_SPLIT_PATTERN = /\\p{Lu}?\\p{Ll}+|[0-9]+|\\p{Lu}+(?!\\p{Ll})|\\p{Emoji_Presentation}|\\p{Extended_Pictographic}|\\p{L}+/gu;\nfunction words(str) {\n return Array.from(str.match(CASE_SPLIT_PATTERN) ?? []);\n}\n\nexport { CASE_SPLIT_PATTERN, words };\n","import { capitalize } from './capitalize.mjs';\nimport { words } from './words.mjs';\n\nfunction camelCase(str) {\n const words$1 = words(str);\n if (words$1.length === 0) {\n return '';\n }\n const [first, ...rest] = words$1;\n return `${first.toLowerCase()}${rest.map(word => capitalize(word)).join('')}`;\n}\n\nexport { camelCase };\n","import { isArray } from '../compat/predicate/isArray.mjs';\nimport { isPlainObject } from '../predicate/isPlainObject.mjs';\nimport { camelCase } from '../string/camelCase.mjs';\n\nfunction toCamelCaseKeys(obj) {\n if (isArray(obj)) {\n return obj.map(item => toCamelCaseKeys(item));\n }\n if (isPlainObject(obj)) {\n const result = {};\n const keys = Object.keys(obj);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n const camelKey = camelCase(key);\n const convertedValue = toCamelCaseKeys(obj[key]);\n result[camelKey] = convertedValue;\n }\n return result;\n }\n return obj;\n}\n\nexport { toCamelCaseKeys };\n","import { clone } from './clone.mjs';\nimport { mergeWith } from './mergeWith.mjs';\nimport { isPlainObject } from '../predicate/isPlainObject.mjs';\n\nfunction toMerged(target, source) {\n return mergeWith(clone(target), source, function mergeRecursively(targetValue, sourceValue) {\n if (Array.isArray(sourceValue)) {\n if (Array.isArray(targetValue)) {\n return mergeWith(clone(targetValue), sourceValue, mergeRecursively);\n }\n else {\n return mergeWith([], sourceValue, mergeRecursively);\n }\n }\n else if (isPlainObject(sourceValue)) {\n if (isPlainObject(targetValue)) {\n return mergeWith(clone(targetValue), sourceValue, mergeRecursively);\n }\n else {\n return mergeWith({}, sourceValue, mergeRecursively);\n }\n }\n });\n}\n\nexport { toMerged };\n","function isPlainObject(object) {\n if (typeof object !== 'object') {\n return false;\n }\n if (object == null) {\n return false;\n }\n if (Object.getPrototypeOf(object) === null) {\n return true;\n }\n if (Object.prototype.toString.call(object) !== '[object Object]') {\n const tag = object[Symbol.toStringTag];\n if (tag == null) {\n return false;\n }\n const isTagReadonly = !Object.getOwnPropertyDescriptor(object, Symbol.toStringTag)?.writable;\n if (isTagReadonly) {\n return false;\n }\n return object.toString() === `[object ${tag}]`;\n }\n let proto = object;\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n return Object.getPrototypeOf(object) === proto;\n}\n\nexport { isPlainObject };\n","import { words } from './words.mjs';\n\nfunction snakeCase(str) {\n const words$1 = words(str);\n return words$1.map(word => word.toLowerCase()).join('_');\n}\n\nexport { snakeCase };\n","import { isArray } from '../compat/predicate/isArray.mjs';\nimport { isPlainObject } from '../compat/predicate/isPlainObject.mjs';\nimport { snakeCase } from '../string/snakeCase.mjs';\n\nfunction toSnakeCaseKeys(obj) {\n if (isArray(obj)) {\n return obj.map(item => toSnakeCaseKeys(item));\n }\n if (isPlainObject(obj)) {\n const result = {};\n const keys = Object.keys(obj);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n const snakeKey = snakeCase(key);\n const convertedValue = toSnakeCaseKeys(obj[key]);\n result[snakeKey] = convertedValue;\n }\n return result;\n }\n return obj;\n}\n\nexport { toSnakeCaseKeys };\n","function isArrayBuffer(value) {\n return value instanceof ArrayBuffer;\n}\n\nexport { isArrayBuffer };\n","function isBlob(x) {\n if (typeof Blob === 'undefined') {\n return false;\n }\n return x instanceof Blob;\n}\n\nexport { isBlob };\n","function isBoolean(x) {\n return typeof x === 'boolean';\n}\n\nexport { isBoolean };\n","function isBrowser() {\n return typeof window !== 'undefined' && window?.document != null;\n}\n\nexport { isBrowser };\n","function isBuffer(x) {\n return typeof Buffer !== 'undefined' && Buffer.isBuffer(x);\n}\n\nexport { isBuffer };\n","function isDate(value) {\n return value instanceof Date;\n}\n\nexport { isDate };\n","function eq(value, other) {\n return value === other || (Number.isNaN(value) && Number.isNaN(other));\n}\n\nexport { eq };\n","import { isPlainObject } from './isPlainObject.mjs';\nimport { getSymbols } from '../compat/_internal/getSymbols.mjs';\nimport { getTag } from '../compat/_internal/getTag.mjs';\nimport { functionTag, regexpTag, symbolTag, dateTag, booleanTag, numberTag, stringTag, objectTag, errorTag, dataViewTag, arrayBufferTag, float64ArrayTag, float32ArrayTag, bigInt64ArrayTag, int32ArrayTag, int16ArrayTag, int8ArrayTag, bigUint64ArrayTag, uint32ArrayTag, uint16ArrayTag, uint8ClampedArrayTag, uint8ArrayTag, arrayTag, setTag, mapTag, argumentsTag } from '../compat/_internal/tags.mjs';\nimport { eq } from '../compat/util/eq.mjs';\n\nfunction isEqualWith(a, b, areValuesEqual) {\n return isEqualWithImpl(a, b, undefined, undefined, undefined, undefined, areValuesEqual);\n}\nfunction isEqualWithImpl(a, b, property, aParent, bParent, stack, areValuesEqual) {\n const result = areValuesEqual(a, b, property, aParent, bParent, stack);\n if (result !== undefined) {\n return result;\n }\n if (typeof a === typeof b) {\n switch (typeof a) {\n case 'bigint':\n case 'string':\n case 'boolean':\n case 'symbol':\n case 'undefined': {\n return a === b;\n }\n case 'number': {\n return a === b || Object.is(a, b);\n }\n case 'function': {\n return a === b;\n }\n case 'object': {\n return areObjectsEqual(a, b, stack, areValuesEqual);\n }\n }\n }\n return areObjectsEqual(a, b, stack, areValuesEqual);\n}\nfunction areObjectsEqual(a, b, stack, areValuesEqual) {\n if (Object.is(a, b)) {\n return true;\n }\n let aTag = getTag(a);\n let bTag = getTag(b);\n if (aTag === argumentsTag) {\n aTag = objectTag;\n }\n if (bTag === argumentsTag) {\n bTag = objectTag;\n }\n if (aTag !== bTag) {\n return false;\n }\n switch (aTag) {\n case stringTag:\n return a.toString() === b.toString();\n case numberTag: {\n const x = a.valueOf();\n const y = b.valueOf();\n return eq(x, y);\n }\n case booleanTag:\n case dateTag:\n case symbolTag:\n return Object.is(a.valueOf(), b.valueOf());\n case regexpTag: {\n return a.source === b.source && a.flags === b.flags;\n }\n case functionTag: {\n return a === b;\n }\n }\n stack = stack ?? new Map();\n const aStack = stack.get(a);\n const bStack = stack.get(b);\n if (aStack != null && bStack != null) {\n return aStack === b;\n }\n stack.set(a, b);\n stack.set(b, a);\n try {\n switch (aTag) {\n case mapTag: {\n if (a.size !== b.size) {\n return false;\n }\n for (const [key, value] of a.entries()) {\n if (!b.has(key) || !isEqualWithImpl(value, b.get(key), key, a, b, stack, areValuesEqual)) {\n return false;\n }\n }\n return true;\n }\n case setTag: {\n if (a.size !== b.size) {\n return false;\n }\n const aValues = Array.from(a.values());\n const bValues = Array.from(b.values());\n for (let i = 0; i < aValues.length; i++) {\n const aValue = aValues[i];\n const index = bValues.findIndex(bValue => {\n return isEqualWithImpl(aValue, bValue, undefined, a, b, stack, areValuesEqual);\n });\n if (index === -1) {\n return false;\n }\n bValues.splice(index, 1);\n }\n return true;\n }\n case arrayTag:\n case uint8ArrayTag:\n case uint8ClampedArrayTag:\n case uint16ArrayTag:\n case uint32ArrayTag:\n case bigUint64ArrayTag:\n case int8ArrayTag:\n case int16ArrayTag:\n case int32ArrayTag:\n case bigInt64ArrayTag:\n case float32ArrayTag:\n case float64ArrayTag: {\n if (typeof Buffer !== 'undefined' && Buffer.isBuffer(a) !== Buffer.isBuffer(b)) {\n return false;\n }\n if (a.length !== b.length) {\n return false;\n }\n for (let i = 0; i < a.length; i++) {\n if (!isEqualWithImpl(a[i], b[i], i, a, b, stack, areValuesEqual)) {\n return false;\n }\n }\n return true;\n }\n case arrayBufferTag: {\n if (a.byteLength !== b.byteLength) {\n return false;\n }\n return areObjectsEqual(new Uint8Array(a), new Uint8Array(b), stack, areValuesEqual);\n }\n case dataViewTag: {\n if (a.byteLength !== b.byteLength || a.byteOffset !== b.byteOffset) {\n return false;\n }\n return areObjectsEqual(new Uint8Array(a), new Uint8Array(b), stack, areValuesEqual);\n }\n case errorTag: {\n return a.name === b.name && a.message === b.message;\n }\n case objectTag: {\n const areEqualInstances = areObjectsEqual(a.constructor, b.constructor, stack, areValuesEqual) ||\n (isPlainObject(a) && isPlainObject(b));\n if (!areEqualInstances) {\n return false;\n }\n const aKeys = [...Object.keys(a), ...getSymbols(a)];\n const bKeys = [...Object.keys(b), ...getSymbols(b)];\n if (aKeys.length !== bKeys.length) {\n return false;\n }\n for (let i = 0; i < aKeys.length; i++) {\n const propKey = aKeys[i];\n const aProp = a[propKey];\n if (!Object.hasOwn(b, propKey)) {\n return false;\n }\n const bProp = b[propKey];\n if (!isEqualWithImpl(aProp, bProp, propKey, a, b, stack, areValuesEqual)) {\n return false;\n }\n }\n return true;\n }\n default: {\n return false;\n }\n }\n }\n finally {\n stack.delete(a);\n stack.delete(b);\n }\n}\n\nexport { isEqualWith };\n","import { isEqualWith } from './isEqualWith.mjs';\nimport { noop } from '../function/noop.mjs';\n\nfunction isEqual(a, b) {\n return isEqualWith(a, b, noop);\n}\n\nexport { isEqual };\n","function isError(value) {\n return value instanceof Error;\n}\n\nexport { isError };\n","import { isBlob } from './isBlob.mjs';\n\nfunction isFile(x) {\n if (typeof File === 'undefined') {\n return false;\n }\n return isBlob(x) && x instanceof File;\n}\n\nexport { isFile };\n","function isFunction(value) {\n return typeof value === 'function';\n}\n\nexport { isFunction };\n","function isJSON(value) {\n if (typeof value !== 'string') {\n return false;\n }\n try {\n JSON.parse(value);\n return true;\n }\n catch {\n return false;\n }\n}\n\nexport { isJSON };\n","import { isPlainObject } from './isPlainObject.mjs';\n\nfunction isJSONValue(value) {\n switch (typeof value) {\n case 'object': {\n return value === null || isJSONArray(value) || isJSONObject(value);\n }\n case 'string':\n case 'number':\n case 'boolean': {\n return true;\n }\n default: {\n return false;\n }\n }\n}\nfunction isJSONArray(value) {\n if (!Array.isArray(value)) {\n return false;\n }\n return value.every(item => isJSONValue(item));\n}\nfunction isJSONObject(obj) {\n if (!isPlainObject(obj)) {\n return false;\n }\n const keys = Reflect.ownKeys(obj);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n const value = obj[key];\n if (typeof key !== 'string') {\n return false;\n }\n if (!isJSONValue(value)) {\n return false;\n }\n }\n return true;\n}\n\nexport { isJSONArray, isJSONObject, isJSONValue };\n","function isLength(value) {\n return Number.isSafeInteger(value) && value >= 0;\n}\n\nexport { isLength };\n","function isMap(value) {\n return value instanceof Map;\n}\n\nexport { isMap };\n","function isNil(x) {\n return x == null;\n}\n\nexport { isNil };\n","function isNode() {\n return typeof process !== 'undefined' && process?.versions?.node != null;\n}\n\nexport { isNode };\n","function isNotNil(x) {\n return x != null;\n}\n\nexport { isNotNil };\n","function isNull(x) {\n return x === null;\n}\n\nexport { isNull };\n","function isPromise(value) {\n return value instanceof Promise;\n}\n\nexport { isPromise };\n","function isRegExp(value) {\n return value instanceof RegExp;\n}\n\nexport { isRegExp };\n","function isSet(value) {\n return value instanceof Set;\n}\n\nexport { isSet };\n","function isString(value) {\n return typeof value === 'string';\n}\n\nexport { isString };\n","function isSymbol(value) {\n return typeof value === 'symbol';\n}\n\nexport { isSymbol };\n","function isUndefined(x) {\n return x === undefined;\n}\n\nexport { isUndefined };\n","function isWeakMap(value) {\n return value instanceof WeakMap;\n}\n\nexport { isWeakMap };\n","function isWeakSet(value) {\n return value instanceof WeakSet;\n}\n\nexport { isWeakSet };\n","import { Semaphore } from './semaphore.mjs';\n\nclass Mutex {\n semaphore = new Semaphore(1);\n get isLocked() {\n return this.semaphore.available === 0;\n }\n async acquire() {\n return this.semaphore.acquire();\n }\n release() {\n this.semaphore.release();\n }\n}\n\nexport { Mutex };\n","import { delay } from './delay.mjs';\nimport { TimeoutError } from '../error/TimeoutError.mjs';\n\nasync function timeout(ms) {\n await delay(ms);\n throw new TimeoutError();\n}\n\nexport { timeout };\n","import { timeout } from './timeout.mjs';\n\nasync function withTimeout(run, ms) {\n return Promise.race([run(), timeout(ms)]);\n}\n\nexport { withTimeout };\n","import { words } from './words.mjs';\n\nfunction constantCase(str) {\n const words$1 = words(str);\n return words$1.map(word => word.toUpperCase()).join('_');\n}\n\nexport { constantCase };\n","const deburrMap = new Map(Object.entries({\n Æ: 'Ae',\n Ð: 'D',\n Ø: 'O',\n Þ: 'Th',\n ß: 'ss',\n æ: 'ae',\n ð: 'd',\n ø: 'o',\n þ: 'th',\n Đ: 'D',\n đ: 'd',\n Ħ: 'H',\n ħ: 'h',\n ı: 'i',\n IJ: 'IJ',\n ij: 'ij',\n ĸ: 'k',\n Ŀ: 'L',\n ŀ: 'l',\n Ł: 'L',\n ł: 'l',\n ʼn: \"'n\",\n Ŋ: 'N',\n ŋ: 'n',\n Œ: 'Oe',\n œ: 'oe',\n Ŧ: 'T',\n ŧ: 't',\n ſ: 's',\n}));\nfunction deburr(str) {\n str = str.normalize('NFD');\n let result = '';\n for (let i = 0; i < str.length; i++) {\n const char = str[i];\n if ((char >= '\\u0300' && char <= '\\u036f') || (char >= '\\ufe20' && char <= '\\ufe23')) {\n continue;\n }\n result += deburrMap.get(char) ?? char;\n }\n return result;\n}\n\nexport { deburr };\n","const htmlEscapes = {\n '&': '&amp;',\n '<': '&lt;',\n '>': '&gt;',\n '\"': '&quot;',\n \"'\": '&#39;',\n};\nfunction escape(str) {\n return str.replace(/[&<>\"']/g, match => htmlEscapes[match]);\n}\n\nexport { escape };\n","function escapeRegExp(str) {\n return str.replace(/[\\\\^$.*+?()[\\]{}|]/g, '\\\\$&');\n}\n\nexport { escapeRegExp };\n","import { words } from './words.mjs';\n\nfunction kebabCase(str) {\n const words$1 = words(str);\n return words$1.map(word => word.toLowerCase()).join('-');\n}\n\nexport { kebabCase };\n","import { words } from './words.mjs';\n\nfunction lowerCase(str) {\n const words$1 = words(str);\n return words$1.map(word => word.toLowerCase()).join(' ');\n}\n\nexport { lowerCase };\n","function lowerFirst(str) {\n return str.substring(0, 1).toLowerCase() + str.substring(1);\n}\n\nexport { lowerFirst };\n","function pad(str, length, chars = ' ') {\n return str.padStart(Math.floor((length - str.length) / 2) + str.length, chars).padEnd(length, chars);\n}\n\nexport { pad };\n","import { capitalize } from './capitalize.mjs';\nimport { words } from './words.mjs';\n\nfunction pascalCase(str) {\n const words$1 = words(str);\n return words$1.map(word => capitalize(word)).join('');\n}\n\nexport { pascalCase };\n","function reverseString(value) {\n return [...value].reverse().join('');\n}\n\nexport { reverseString };\n","import { words } from './words.mjs';\n\nfunction startCase(str) {\n const words$1 = words(str.trim());\n let result = '';\n for (let i = 0; i < words$1.length; i++) {\n const word = words$1[i];\n if (result) {\n result += ' ';\n }\n result += word[0].toUpperCase() + word.slice(1).toLowerCase();\n }\n return result;\n}\n\nexport { startCase };\n","function trimEnd(str, chars) {\n if (chars === undefined) {\n return str.trimEnd();\n }\n let endIndex = str.length;\n switch (typeof chars) {\n case 'string': {\n if (chars.length !== 1) {\n throw new Error(`The 'chars' parameter should be a single character string.`);\n }\n while (endIndex > 0 && str[endIndex - 1] === chars) {\n endIndex--;\n }\n break;\n }\n case 'object': {\n while (endIndex > 0 && chars.includes(str[endIndex - 1])) {\n endIndex--;\n }\n }\n }\n return str.substring(0, endIndex);\n}\n\nexport { trimEnd };\n","function trimStart(str, chars) {\n if (chars === undefined) {\n return str.trimStart();\n }\n let startIndex = 0;\n switch (typeof chars) {\n case 'string': {\n while (startIndex < str.length && str[startIndex] === chars) {\n startIndex++;\n }\n break;\n }\n case 'object': {\n while (startIndex < str.length && chars.includes(str[startIndex])) {\n startIndex++;\n }\n }\n }\n return str.substring(startIndex);\n}\n\nexport { trimStart };\n","import { trimEnd } from './trimEnd.mjs';\nimport { trimStart } from './trimStart.mjs';\n\nfunction trim(str, chars) {\n if (chars === undefined) {\n return str.trim();\n }\n return trimStart(trimEnd(str, chars), chars);\n}\n\nexport { trim };\n","const htmlUnescapes = {\n '&amp;': '&',\n '&lt;': '<',\n '&gt;': '>',\n '&quot;': '\"',\n '&#39;': \"'\",\n};\nfunction unescape(str) {\n return str.replace(/&(?:amp|lt|gt|quot|#(0+)?39);/g, match => htmlUnescapes[match] || \"'\");\n}\n\nexport { unescape };\n","import { words } from './words.mjs';\n\nfunction upperCase(str) {\n const words$1 = words(str);\n let result = '';\n for (let i = 0; i < words$1.length; i++) {\n result += words$1[i].toUpperCase();\n if (i < words$1.length - 1) {\n result += ' ';\n }\n }\n return result;\n}\n\nexport { upperCase };\n","function upperFirst(str) {\n return str.substring(0, 1).toUpperCase() + str.substring(1);\n}\n\nexport { upperFirst };\n","function attempt(func) {\n try {\n return [null, func()];\n }\n catch (error) {\n return [error, null];\n }\n}\n\nexport { attempt };\n","async function attemptAsync(func) {\n try {\n const result = await func();\n return [null, result];\n }\n catch (error) {\n return [error, null];\n }\n}\n\nexport { attemptAsync };\n","function invariant(condition, message) {\n if (condition) {\n return;\n }\n if (typeof message === 'string') {\n throw new Error(message);\n }\n throw message;\n}\n\nexport { invariant };\n","function isDeepKey(key) {\n switch (typeof key) {\n case 'number':\n case 'symbol': {\n return false;\n }\n case 'string': {\n return key.includes('.') || key.includes('[') || key.includes(']');\n }\n }\n}\n\nexport { isDeepKey };\n","function toKey(value) {\n if (typeof value === 'string' || typeof value === 'symbol') {\n return value;\n }\n if (Object.is(value?.valueOf?.(), -0)) {\n return '-0';\n }\n return String(value);\n}\n\nexport { toKey };\n","function toString(value) {\n if (value == null) {\n return '';\n }\n if (typeof value === 'string') {\n return value;\n }\n if (Array.isArray(value)) {\n return value.map(toString).join(',');\n }\n const result = String(value);\n if (result === '0' && Object.is(Number(value), -0)) {\n return '-0';\n }\n return result;\n}\n\nexport { toString };\n","import { toString } from './toString.mjs';\nimport { toKey } from '../_internal/toKey.mjs';\n\nfunction toPath(deepKey) {\n if (Array.isArray(deepKey)) {\n return deepKey.map(toKey);\n }\n if (typeof deepKey === 'symbol') {\n return [deepKey];\n }\n deepKey = toString(deepKey);\n const result = [];\n const length = deepKey.length;\n if (length === 0) {\n return result;\n }\n let index = 0;\n let key = '';\n let quoteChar = '';\n let bracket = false;\n if (deepKey.charCodeAt(0) === 46) {\n result.push('');\n index++;\n }\n while (index < length) {\n const char = deepKey[index];\n if (quoteChar) {\n if (char === '\\\\' && index + 1 < length) {\n index++;\n key += deepKey[index];\n }\n else if (char === quoteChar) {\n quoteChar = '';\n }\n else {\n key += char;\n }\n }\n else if (bracket) {\n if (char === '\"' || char === \"'\") {\n quoteChar = char;\n }\n else if (char === ']') {\n bracket = false;\n result.push(key);\n key = '';\n }\n else {\n key += char;\n }\n }\n else {\n if (char === '[') {\n bracket = true;\n if (key) {\n result.push(key);\n key = '';\n }\n }\n else if (char === '.') {\n if (key) {\n result.push(key);\n key = '';\n }\n }\n else {\n key += char;\n }\n }\n index++;\n }\n if (key) {\n result.push(key);\n }\n return result;\n}\n\nexport { toPath };\n","import { isUnsafeProperty } from '../../_internal/isUnsafeProperty.mjs';\nimport { isDeepKey } from '../_internal/isDeepKey.mjs';\nimport { toKey } from '../_internal/toKey.mjs';\nimport { toPath } from '../util/toPath.mjs';\n\nfunction get(object, path, defaultValue) {\n if (object == null) {\n return defaultValue;\n }\n switch (typeof path) {\n case 'string': {\n if (isUnsafeProperty(path)) {\n return defaultValue;\n }\n const result = object[path];\n if (result === undefined) {\n if (isDeepKey(path)) {\n return get(object, toPath(path), defaultValue);\n }\n else {\n return defaultValue;\n }\n }\n return result;\n }\n case 'number':\n case 'symbol': {\n if (typeof path === 'number') {\n path = toKey(path);\n }\n const result = object[path];\n if (result === undefined) {\n return defaultValue;\n }\n return result;\n }\n default: {\n if (Array.isArray(path)) {\n return getWithPath(object, path, defaultValue);\n }\n if (Object.is(path?.valueOf(), -0)) {\n path = '-0';\n }\n else {\n path = String(path);\n }\n if (isUnsafeProperty(path)) {\n return defaultValue;\n }\n const result = object[path];\n if (result === undefined) {\n return defaultValue;\n }\n return result;\n }\n }\n}\nfunction getWithPath(object, path, defaultValue) {\n if (path.length === 0) {\n return defaultValue;\n }\n let current = object;\n for (let index = 0; index < path.length; index++) {\n if (current == null) {\n return defaultValue;\n }\n if (isUnsafeProperty(path[index])) {\n return defaultValue;\n }\n current = current[path[index]];\n }\n if (current === undefined) {\n return defaultValue;\n }\n return current;\n}\n\nexport { get };\n","function isObject(value) {\n return value !== null && (typeof value === 'object' || typeof value === 'function');\n}\n\nexport { isObject };\n","const IS_UNSIGNED_INTEGER = /^(?:0|[1-9]\\d*)$/;\nfunction isIndex(value, length = Number.MAX_SAFE_INTEGER) {\n switch (typeof value) {\n case 'number': {\n return Number.isInteger(value) && value >= 0 && value < length;\n }\n case 'symbol': {\n return false;\n }\n case 'string': {\n return IS_UNSIGNED_INTEGER.test(value);\n }\n }\n}\n\nexport { isIndex };\n","import { isSymbol } from '../predicate/isSymbol.mjs';\n\nconst regexIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/;\nconst regexIsPlainProp = /^\\w*$/;\nfunction isKey(value, object) {\n if (Array.isArray(value)) {\n return false;\n }\n if (typeof value === 'number' || typeof value === 'boolean' || value == null || isSymbol(value)) {\n return true;\n }\n return ((typeof value === 'string' && (regexIsPlainProp.test(value) || !regexIsDeepProp.test(value))) ||\n (object != null && Object.hasOwn(object, value)));\n}\n\nexport { isKey };\n","import { eq } from '../util/eq.mjs';\n\nconst assignValue = (object, key, value) => {\n const objValue = object[key];\n if (!(Object.hasOwn(object, key) && eq(objValue, value)) || (value === undefined && !(key in object))) {\n object[key] = value;\n }\n};\n\nexport { assignValue };\n","import { get } from './get.mjs';\nimport { isUnsafeProperty } from '../../_internal/isUnsafeProperty.mjs';\nimport { assignValue } from '../_internal/assignValue.mjs';\nimport { isIndex } from '../_internal/isIndex.mjs';\nimport { isKey } from '../_internal/isKey.mjs';\nimport { toKey } from '../_internal/toKey.mjs';\nimport { isObject } from '../predicate/isObject.mjs';\nimport { toPath } from '../util/toPath.mjs';\n\nfunction updateWith(obj, path, updater, customizer) {\n if (obj == null && !isObject(obj)) {\n return obj;\n }\n let resolvedPath;\n if (isKey(path, obj)) {\n resolvedPath = [path];\n }\n else if (Array.isArray(path)) {\n resolvedPath = path;\n }\n else {\n resolvedPath = toPath(path);\n }\n const updateValue = updater(get(obj, resolvedPath));\n let current = obj;\n for (let i = 0; i < resolvedPath.length && current != null; i++) {\n const key = toKey(resolvedPath[i]);\n if (isUnsafeProperty(key)) {\n continue;\n }\n let newValue;\n if (i === resolvedPath.length - 1) {\n newValue = updateValue;\n }\n else {\n const objValue = current[key];\n const customizerResult = customizer?.(objValue, key, obj);\n newValue =\n customizerResult !== undefined\n ? customizerResult\n : isObject(objValue)\n ? objValue\n : isIndex(resolvedPath[i + 1])\n ? []\n : {};\n }\n assignValue(current, key, newValue);\n current = current[key];\n }\n return obj;\n}\n\nexport { updateWith };\n","import { updateWith } from './updateWith.mjs';\n\nfunction set(obj, path, value) {\n return updateWith(obj, path, () => value, () => undefined);\n}\n\nexport { set };\n","import { get, set } from 'es-toolkit/compat';\r\n\r\n/**\r\n * 获取对象键名数组(类型安全)。\r\n * 注:内置 `Object.keys` 与 `es-toolkit` 的 `keys` 在 TS 中通常返回 `string[]`,无法精确到 `keyof T`。\r\n * @param obj 目标对象\r\n * @returns 类型精确的 `Array<keyof T>`\r\n * @example\r\n * const o = { a: 1, b: 'x' };\r\n * const keys = getObjectKeys(o); // type: ('a' | 'b')[], value: ['a','b']\r\n */\r\nexport function getObjectKeys<T extends object>(obj: T): Array<keyof T> {\r\n return Object.keys(obj) as (keyof T)[];\r\n}\r\n\r\n/**\r\n * 获取对象值。\r\n * @param obj 目标对象\r\n * @param path 路径。(点路径:'a.b'、'a[0].b';数组路径:['a',0,'b'])\r\n * @returns 值\r\n * @example\r\n * const o = { b: { c: 'x' }, users: [{ name: 'john' }, { name: 'jane' }] };\r\n * const c = getObjectValue(o, 'b.c'); // 点路径: 'x'\r\n * const name0 = getObjectValue(o, 'users[0].name'); // 数组字符: 'john'\r\n * const name1 = getObjectValue(o, ['users', 1, 'name']); // 数组路径: 'jane'\r\n */\r\nexport const getObjectValue = get;\r\n\r\n/**\r\n * 设置对象值。\r\n * @param obj 目标对象\r\n * @param path 路径。(点路径:'a.b'、'a[0].b';数组路径:['a',0,'b'])\r\n * @param value 值\r\n * @example\r\n * const o = { b: { c: 'x' }, users: [{ name: 'john' }, { name: 'jane' }] };\r\n * setObjectValue(o, 'b.c', 'y'); // 点路径\r\n * setObjectValue(o, ['users', 1, 'name'], 'jane-doe'); // 数组路径\r\n */\r\nexport const setObjectValue = set;\r\n","/**\r\n * 文本脱敏\r\n * @param s 原始文本\r\n * @param keepLeft 保留左侧字符数(默认 1)\r\n * @param keepRight 保留右侧字符数(默认 0)\r\n * @param maskChar 脱敏字符(默认 `*`)\r\n * @returns 脱敏文本\r\n * @example\r\n * toMaskText('王小明', 1, 0) // => '王*'\r\n * toMaskText('王小明', 1, 1) // => '王*明'\r\n * toMaskText('13800138000', 3, 4) // => '138****8000'\r\n */\r\nexport function toMaskText(s: string, keepLeft = 1, keepRight = 0, maskChar = '*') {\r\n if (!s) return '';\r\n const v = String(s);\r\n const l = Math.max(0, keepLeft);\r\n const r = Math.max(0, keepRight);\r\n const len = v.length;\r\n const left = Math.min(l, len);\r\n const right = Math.min(r, len - left);\r\n const mid = len - left - right;\r\n if (mid <= 0) return v;\r\n const m = maskChar && maskChar.length > 0 ? maskChar : '*';\r\n return v.slice(0, left) + m.repeat(mid) + v.slice(len - right);\r\n}\r\n\r\n/**\r\n * 手机号中间打星:保留前三位与后四位,中间打 `*`。\r\n * @param phone 手机号字符串\r\n * @returns 遮蔽后的手机号\r\n * @example\r\n * toMaskPhone('13800138000') // => '138****8000'\r\n */\r\nexport function toMaskPhone(phone: string) {\r\n return toMaskText(phone, 3, 4);\r\n}\r\n\r\n/**\r\n * 姓名打星:\r\n * - 长度 ≤ 2:保留首字,其余打 `*`\r\n * - 长度 ≥ 3:保留首尾,各打星中间\r\n * @param name 姓名字符串\r\n * @returns 遮蔽后的姓名\r\n * @example\r\n * toMaskName('张三') // => '张*'\r\n * toMaskName('王小明') // => '王*明'\r\n */\r\nexport function toMaskName(name: string) {\r\n if (!name) return '';\r\n const v = String(name);\r\n return v.length <= 2 ? toMaskText(v, 1, 0) : toMaskText(v, 1, 1);\r\n}\r\n","/**\r\n * 生成UUID\r\n * @returns UUID字符串\r\n * @example\r\n * const uuid = createUUID() // '7982fcfe-5721-4632-bede-6000885be57d'\r\n */\r\nexport function createUUID() {\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\r\n const r = (Math.random() * 16) | 0,\r\n v = c === 'x' ? r : (r & 0x3) | 0x8;\r\n return v.toString(16);\r\n });\r\n}\r\n\r\n/**\r\n * 生成随机字符串id\r\n * - 常用于生成元素标签的id (默认加上'id_'前缀, 避免小程序中数字开头的id导致查询节点信息失败)\r\n * @param prefix 前缀, 默认 'id_'\r\n * @returns 随机字符串\r\n * @example\r\n * const id = createViewRandId(); // 'id_0rjuuuqv60xi'\r\n * const id = createViewRandId('canvas_'); // 'canvas_v82a7ctm09q'\r\n */\r\nexport function createViewRandId(prefix = 'id_') {\r\n return `${prefix}${Math.random().toString(36).substring(2, 16)}`;\r\n}\r\n\r\n/**\r\n * 时间+固定位数的随机数字字符串\r\n * @param digits 随机部分的位数,默认 6\r\n * @returns 时间+随机数字字符串\r\n * @example\r\n * const traceId = createTimeRandId(); // '1763002648039123456'\r\n * const traceId = createTimeRandId(8); // '176300264803912345678'\r\n */\r\nexport function createTimeRandId(digits: number = 6) {\r\n const base = 10 ** (digits - 1);\r\n const range = 9 * base;\r\n const int = Math.floor(Math.random() * range) + base;\r\n\r\n return `${Date.now()}${int}`;\r\n}\r\n","/**\r\n * 获取字节长度 (支持字符串、Buffer/Uint8Array、File/Blob 等类型)\r\n * - 字符串按 UTF-8 编码计算字节长度(每个字符 1-4 字节)\r\n * - Buffer/Uint8Array 直接返回字节长度(每个元素 1 字节)\r\n * - File/Blob 返回文件/Blob 大小(字节数)\r\n * @param data 输入的数据\r\n * @returns 数据的字节长度\r\n * @example\r\n * getByteLength('abc') // 3\r\n * getByteLength('中文') // 6\r\n * getByteLength('😊') // 4\r\n * getByteLength(new Uint8Array([0x41, 0x42, 0x43])) // 3\r\n * getByteLength(new File(['abc'], 'test.txt')) // 3\r\n * getByteLength(new Blob(['中文'], { type: 'text/plain' })) // 6\r\n */\r\nexport function getByteLength(data: string | ArrayBuffer | ArrayBufferView | File | Blob): number {\r\n if (typeof data === 'string') {\r\n let byteLen = 0;\r\n\r\n for (let i = 0; i < data.length; i++) {\r\n const code = data.charCodeAt(i);\r\n\r\n if (code <= 0x7f) {\r\n byteLen += 1; // (ASCII 基本拉丁)→ 包含数字 0-9、英文字母 A-Z/a-z、常见符号\r\n } else if (code <= 0x7ff) {\r\n byteLen += 2; // (拉丁扩展)→ 包含拉丁字母(含变音符)、希腊文、俄文/西里尔文、希伯来文、阿拉伯文等\r\n } else if (code >= 0xd800 && code <= 0xdbff) {\r\n byteLen += 4; // (UTF-16 代理项)→ 包含 emoji、稀有汉字(扩展区)、音乐符号等\r\n i++;\r\n } else {\r\n byteLen += 3; // (BMP 绝大部分)→ 包含中文/日文/韩文的大多数字符(CJK 统一汉字)、以及大量其它脚本\r\n }\r\n }\r\n\r\n return byteLen;\r\n }\r\n\r\n // Buffer/Uint8Array\r\n if ('byteLength' in data) return data.byteLength;\r\n\r\n // File/Blob\r\n if ('size' in data) return data.size;\r\n\r\n throw new TypeError('getByteLength: Unsupported type');\r\n}\r\n","import { getObjectKeys } from '../../object';\r\n\r\n/**\r\n * 跨端 100% 原生可解码文件后缀表\r\n * 覆盖:iOS 14+ / Android 5+ WebView、Chrome/Edge/Safari/Firefox\r\n * 剔除:所有需要 polyfill 或转码的容器/编码\r\n */\r\nconst FILE_TYPE = {\r\n img: ['png', 'jpg', 'jpeg', 'gif', 'svg', 'webp'],\r\n video: ['mp4', 'mov', 'm4v'],\r\n voice: ['mp3', 'wav', 'm4a'],\r\n excel: ['csv', 'xls', 'xlsx', 'xlsm', 'ods'],\r\n word: ['txt', 'doc', 'docx', 'pdf', 'md', 'wps'],\r\n zip: ['zip', 'gz', 'tar', 'rar', '7z'],\r\n ppt: ['ppt', 'pptx', 'odp'],\r\n app: ['apk', 'ipa'],\r\n};\r\n\r\n/**\r\n * 获取文件后缀(不含点,返回小写)。\r\n * 当文件名不包含点('.')时,返回空字符串。\r\n * @param fileName 文件名,例如 `avatar.PNG`\r\n * @returns 后缀字符串,例如 `png`\r\n * @example getFileSuffix('avatar.PNG') // 'png'\r\n * @example getFileSuffix('a.tar.gz') // 'gz'\r\n * @example getFileSuffix('.ignore') // ''\r\n * @example getFileSuffix('abc') // ''\r\n */\r\nexport function getFileSuffix(fileName: string) {\r\n if (fileName.startsWith('.')) return ''; // 隐藏文件,返回空串\r\n\r\n const idx = fileName.lastIndexOf('.');\r\n return idx > 0 ? fileName.slice(idx + 1).toLowerCase() : '';\r\n}\r\n\r\n/**\r\n * 根据文件后缀判断文件类型。\r\n * 会将后缀转换为小写后与 `FILE_TYPE` 映射匹配;若未匹配到则返回 `'unknown'`。\r\n * @param fileName 文件名\r\n * @returns 文件类型字符串(如 'img' | 'video' | 'voice' | 'excel' | 'word' | 'zip' | 'ppt' | 'app' | 'unknown')\r\n * @example getFileType('avatar.PNG') // 'img'\r\n * @example getFileType('archive.tar') // 'zip'\r\n * @example getFileType('abc') // 'unknown'\r\n */\r\nexport function getFileType(fileName: string) {\r\n const suffix = getFileSuffix(fileName);\r\n if (!suffix) return 'unknown';\r\n\r\n const keys = getObjectKeys(FILE_TYPE);\r\n for (const key of keys) {\r\n if (FILE_TYPE[key].includes(suffix)) {\r\n return key;\r\n }\r\n }\r\n\r\n return 'unknown';\r\n}\r\n","import type {\r\n OSSOption,\r\n OSSAudioOption,\r\n OSSHlsOption,\r\n OSSImgOption,\r\n OSSVideoOption,\r\n OSSWatermarkOption,\r\n} from './index.d';\r\n\r\nexport * from './index.d';\r\n\r\n/**\r\n * oss图片处理\r\n * 参考官方文档: https://help.aliyun.com/zh/oss/user-guide/img-parameters/?spm=a2c4g.11186623.help-menu-31815.d_0_11_2_1.572824a1a1W5Pf&scm=20140722.H_144582._.OR_help-T_cn~zh-V_1\r\n * @param src 原始图片URL\r\n * @param option 图片处理选项\r\n * @returns 处理后的图片URL(格式: `{src}?x-oss-process=image/xx`)\r\n * @example\r\n * 缩放: getOSSImg('xx.jpg', { resize: { w: 100, h: 100 } })\r\n * 水印: getOSSImg('xx.jpg', { watermark: { text: '水印' } });\r\n * 翻转: getOSSImg('xx.jpg', { flip: 1 });\r\n * 裁剪: getOSSImg('xx.jpg', { crop: { w: 100, h: 100 } });\r\n * 质量: getOSSImg('xx.jpg', { quality: { q: 80 } });\r\n * 格式转换: getOSSImg('xx.jpg', { format: 'jpg' });\r\n * 获取信息: getOSSImg('xx.jpg', { info: true });\r\n * 自适应方向: getOSSImg('xx.jpg', { 'auto-orient': 1 });\r\n * 内切圆: getOSSImg('xx.jpg', { circle: { r: 100 } });\r\n * 索引切割: getOSSImg('xx.jpg', { indexcrop: { x: 100 } });\r\n * 圆角: getOSSImg('xx.jpg', { 'rounded-corners': { r: 10 } });\r\n * 模糊: getOSSImg('xx.jpg', { blur: { r: 10, s: 10 } });\r\n * 旋转: getOSSImg('xx.jpg', { rotate: 90 });\r\n * 渐进显示: getOSSImg('xx.jpg', { interlace: 1 });\r\n * 主色调: getOSSImg('xx.jpg', { 'average-hue': true });\r\n * 亮度: getOSSImg('xx.jpg', { bright: 10 });\r\n * 锐化: getOSSImg('xx.jpg', { sharpen: 100 });\r\n * 对比度: getOSSImg('xx.jpg', { contrast: 100 });\r\n */\r\nexport function getOSSImg(src: string, option: OSSImgOption) {\r\n return buildOSSUrl(src, 'image', option);\r\n}\r\n\r\n/**\r\n * oss视频处理\r\n * 参考官方文档: https://help.aliyun.com/zh/oss/user-guide/audio-and-video-processing/\r\n * @param src 原始视频URL\r\n * @param option 视频处理选项\r\n * @returns 处理后的URL(格式: `{src}?x-oss-process=video/xx`)\r\n * @example\r\n * 视频转码: getOSSVideo('xx.mp4', { convert: { format: 'mp4' } })\r\n * 转为动图: getOSSVideo('xx.mp4', { animation: { format: 'gif' } })\r\n * 雪碧图: getOSSVideo('xx.mp4', { sprite: { format: 'png' } })\r\n * 多帧截取: getOSSVideo('xx.mp4', { snapshots: { count: 3 } })\r\n * 视频拼接: getOSSVideo('xx.mp4', { concat: { list: 'a.mp4,b.mp4' } })\r\n * 信息查询: getOSSVideo('xx.mp4', { info: true })\r\n * 组合操作: getOSSVideo('xx.mp4', { convert: { format: 'mp4' }, snapshots: { count: 3 } })\r\n */\r\nexport function getOSSVideo(src: string, option: OSSVideoOption) {\r\n return buildOSSUrl(src, 'video', option);\r\n}\r\n\r\n/**\r\n * oss音频处理\r\n * 参考官方文档: https://help.aliyun.com/zh/oss/user-guide/audio-and-video-processing/\r\n * @param src 原始音频URL\r\n * @param option 音频处理选项\r\n * @returns 处理后的URL(格式: `{src}?x-oss-process=audio/xx`)\r\n * @example\r\n * 音频转码: getOSSAudio('xx.mp3', { 'convert': { format: 'mp3' } })\r\n * 音频拼接: getOSSAudio('xx.mp3', { 'concat': { list: 'a.mp3,b.mp3' } })\r\n * 信息查询: getOSSAudio('xx.mp3', { 'info': true })\r\n */\r\nexport function getOSSAudio(src: string, option: OSSAudioOption) {\r\n return buildOSSUrl(src, 'audio', option);\r\n}\r\n\r\n/**\r\n * oss直播处理(边转边播 HLS)\r\n * 参考官方文档: https://help.aliyun.com/zh/oss/user-guide/audio-and-video-processing/\r\n * @param src 原始视频URL\r\n * @param option HLS 选项(或布尔)\r\n * @returns 处理后的URL(格式: `{src}?x-oss-process=hls/xx`)\r\n * @example\r\n * 生成播放列表: getOSSHls('xx.mp4', { 'm3u8': true })\r\n * 配置参数: getOSSHls('xx.mp4', { 'm3u8': { playlist: 1, segtime: 6 } })\r\n */\r\nexport function getOSSHls(src: string, option: OSSHlsOption) {\r\n return buildOSSUrl(src, 'hls', option);\r\n}\r\n\r\n/**\r\n * 构造oss处理地址\r\n * @param src 原始地址\r\n * @param type oss处理类型,如`image`, `audio`, `video`, `hls`\r\n * @param option oss处理选项\r\n * @returns 处理后的URL(格式: `{src}?x-oss-process={type}/{segs.join('/')}`)\r\n */\r\nexport function buildOSSUrl(src: string, type: string, option: OSSOption) {\r\n if (!src || !option) return src;\r\n if (src.startsWith('blob:')) return src;\r\n if (src.includes('.svg')) return src;\r\n\r\n const segs: string[] = [];\r\n\r\n // 遍历选项,构造处理参数\r\n for (const [k, v] of Object.entries(option)) {\r\n const seg = k === 'watermark' ? getWatermark(v as OSSWatermarkOption) : getOSSSegs(k, v);\r\n if (seg) segs.push(seg);\r\n }\r\n\r\n if (!segs.length) return src;\r\n\r\n // 拼接处理参数(先移除查询参数,避免重复拼接)\r\n const base = src.split('?')[0];\r\n return `${base}?x-oss-process=${type}/${segs.join('/')}`;\r\n}\r\n\r\n/**\r\n * 构造图片处理参数\r\n * @param type 图片处理类型,如`resize`, `flip`, `format`, `info`\r\n * @param option 图片处理选项\r\n * @returns `object`返回格式为`resize,w_100,h_100`\r\n * @returns `number`返回格式为`flip,1`\r\n * @returns `string`返回格式为`format,jpg`\r\n * @returns `true`返回格式为`info`, `false`返回空字符串\r\n */\r\nfunction getOSSSegs(type: string, option?: Record<string, unknown> | number | string | boolean) {\r\n if (!option && option !== 0) return '';\r\n\r\n if (option === true) return type;\r\n\r\n if (typeof option === 'number' || typeof option === 'string') return `${type},${option}`;\r\n\r\n const segs = Object.entries(option)\r\n .map(([k, v]) => `${k}_${v}`)\r\n .join(',');\r\n\r\n return segs ? `${type},${segs}` : '';\r\n}\r\n\r\n/**\r\n * 图片水印 (文本和图片已Base64编码)\r\n * @returns 格式: `watermark,text_xxx`\r\n */\r\nfunction getWatermark(w?: OSSWatermarkOption) {\r\n if (!w) return '';\r\n if (w.image) w.image = toBase64Url(w.image);\r\n if (w.text) w.text = toBase64Url(w.text);\r\n if (w.type) w.type = toBase64Url(w.type);\r\n return getOSSSegs('watermark', w);\r\n}\r\n\r\n/**\r\n * Base64编码\r\n */\r\nfunction toBase64Url(s: string) {\r\n let b64 = '';\r\n if (typeof Buffer !== 'undefined') {\r\n const buf = Buffer.from(s, 'utf-8');\r\n b64 = buf.toString('base64');\r\n } else {\r\n try {\r\n b64 = btoa(unescape(encodeURIComponent(s)));\r\n } catch {\r\n b64 = '';\r\n }\r\n }\r\n return b64.replace(/=+$/g, '').replace(/\\+/g, '-').replace(/\\//g, '_');\r\n}\r\n","/**\r\n * 将对象参数拼接到 URL\r\n * - 采用纯JS拼接,因为小程序不支持URLSearchParams\r\n * @param url 基础地址\r\n * @param param 将要追加的参数对象;`null/undefined` 值会被忽略,Object 会使用 `JSON.stringify`\r\n * @returns 拼接后的完整 URL(保留原有哈希片段)\r\n * @example\r\n * const url = appendUrlParam('https://a.com', { q: '测试', list: [1, 2], a: null, b: undefined }); // 'https://a.com/?q=%E6%B5%8B%E8%AF%95&list=[1,2]'\r\n */\r\nexport function appendUrlParam(url: string, param: Record<string, unknown>) {\r\n if (!param || typeof param !== 'object') return url;\r\n\r\n const hashIndex = url.indexOf('#');\r\n const baseWithoutHash = hashIndex >= 0 ? url.slice(0, hashIndex) : url;\r\n const hash = hashIndex >= 0 ? url.slice(hashIndex) : '';\r\n\r\n const [base, existingQs] = baseWithoutHash.split('?');\r\n const parts: string[] = [];\r\n if (existingQs) parts.push(existingQs);\r\n for (const key in param) {\r\n const rawVal = param[key];\r\n if (rawVal === null || rawVal === undefined) continue;\r\n const val = typeof rawVal === 'object' ? JSON.stringify(rawVal) : String(rawVal);\r\n parts.push(`${encodeURIComponent(key)}=${encodeURIComponent(val)}`);\r\n }\r\n const qs = parts.filter(Boolean).join('&');\r\n return base + (qs ? `?${qs}` : '') + hash;\r\n}\r\n","import type { QnImgOption, QnMogr2Option, QnWatermarkOption, QnImageView2Option } from './index.d';\r\n\r\nexport * from './index.d';\r\n\r\n/**\r\n * qn图片处理\r\n * 参考官方文档: https://developer.qiniu.com/kodo/8623/dev-the-picture-style\r\n * @param src 原始图片URL\r\n * @param option 图片处理选项\r\n * @returns 处理后的图片URL(格式: `{src}?imageView2/...|imageMogr2/...|watermark/...|imageslim|imageInfo`)\r\n * @example\r\n * 缩略: getQnImg('xx.jpg', { imageView2: { mode: 2, w: 100, h: 100 } })\r\n * 高级缩放: getQnImg('xx.jpg', { thumbnail: '!50p' })\r\n * 裁剪: getQnImg('xx.jpg', { crop: '100x100' })\r\n * 旋转: getQnImg('xx.jpg', { rotate: 90 })\r\n * 自适应方向: getQnImg('xx.jpg', { 'auto-orient': true })\r\n * 格式转换: getQnImg('xx.jpg', { format: 'webp' })\r\n * 质量: getQnImg('xx.jpg', { q: 80 })\r\n * 渐进显示: getQnImg('xx.jpg', { interlace: 1 })\r\n * 背景色填充: getQnImg('xx.jpg', { background: 'white' })\r\n * 模糊: getQnImg('xx.jpg', { blur: { r: 10, s: 10 } })\r\n * GIF颜色控制: getQnImg('xx.jpg', { colors: 64 })\r\n * 图片瘦身: getQnImg('xx.jpg', { imageslim: true })\r\n * 图片信息: getQnImg('xx.jpg', { imageInfo: true })\r\n * 图片水印: getQnImg('xx.jpg', { watermark: { type: 'image', image: 'http://example.com/logo.png' } })\r\n * 文字水印: getQnImg('xx.jpg', { watermark: { type: 'text', text: '水印', fontsize: 18 } })\r\n */\r\nexport function getQnImg(src: string, option: QnImgOption) {\r\n if (!src || !option) return src;\r\n if (src.startsWith('blob:')) return src;\r\n if (src.includes('.svg')) return src;\r\n\r\n const segs: string[] = [];\r\n\r\n if (option.imageslim) segs.push('imageslim');\r\n\r\n if (option.imageView2) segs.push(getImageView2(option.imageView2));\r\n\r\n const mogr = getImageMogr2(option.imageMogr2 ?? option);\r\n if (mogr) segs.push(mogr);\r\n\r\n if (option.watermark) segs.push(getWatermark(option.watermark));\r\n\r\n if (option.imageInfo) segs.push('imageInfo');\r\n\r\n if (!segs.length) return src;\r\n\r\n const base = src.split('?')[0];\r\n return `${base}?${segs.join('|')}`;\r\n}\r\n\r\n/**\r\n * qn视频处理\r\n * 参考官方文档: https://developer.qiniu.com/kodo/12654/video-process\r\n * @param src 原始视频URL\r\n * @param option 视频处理选项(支持 avthumb、vframe)\r\n * @returns 处理后的URL(格式: `{src}?avthumb/...|vframe/...`)\r\n * @example\r\n * 视频转码: getQnVideo('xx.mp4', { avthumb: { format: 'mp4', s: '1280x720', vcodec: 'libx264', vb: '1.25m' } })\r\n * 截帧: getQnVideo('xx.mp4', { vframe: { format: 'jpg', offset: 3, w: 480, h: 360 } })\r\n */\r\nexport function getQnVideo(src: string, option: import('.').QnVideoOption) {\r\n if (!src || !option) return src;\r\n if (src.startsWith('blob:')) return src;\r\n if (src.includes('.svg')) return src;\r\n const segs: string[] = [];\r\n if (option.avthumb) segs.push(getAvthumb(option.avthumb));\r\n if (option.vframe) segs.push(getVframe(option.vframe));\r\n if (!segs.length) return src;\r\n const base = src.split('?')[0];\r\n return `${base}?${segs.join('|')}`;\r\n}\r\n\r\n/**\r\n * qn音频处理\r\n * 参考官方文档: https://developer.qiniu.com/kodo/12654/video-process\r\n * @param src 原始音频URL\r\n * @param option 音频处理选项(通过 avthumb 转码)\r\n * @returns 处理后的URL(格式: `{src}?avthumb/...`)\r\n * @example\r\n * 音频转码: getQnAudio('xx.aac', { avthumb: { format: 'mp3', ab: '128k', ar: 44100, acodec: 'libmp3lame' } })\r\n */\r\nexport function getQnAudio(src: string, option: import('.').QnAudioOption) {\r\n if (!src || !option) return src;\r\n if (src.startsWith('blob:')) return src;\r\n const segs: string[] = [];\r\n if (option.avthumb) segs.push(getAvthumb(option.avthumb));\r\n if (!segs.length) return src;\r\n const base = src.split('?')[0];\r\n return `${base}?${segs.join('|')}`;\r\n}\r\n\r\n/**\r\n * qn实时转码(HLS 边转边播)\r\n * 参考官方文档: https://developer.qiniu.com/kodo/12654/video-process、实时转码\r\n * @param src 原始视频URL\r\n * @param option HLS 选项\r\n * @returns 处理后的URL(格式: `{src}?avcvt/{level}/format/m3u8/...`)\r\n * @example\r\n * 720P HLS: getQnHls('xx.mp4', { level: 3, format: 'm3u8', segtime: 6 })\r\n */\r\nexport function getQnHls(src: string, option: import('.').QnHlsOption) {\r\n if (!src || !option) return src;\r\n if (src.startsWith('blob:')) return src;\r\n const seg = getAvcvt(option);\r\n if (!seg) return src;\r\n const base = src.split('?')[0];\r\n return `${base}?${seg}`;\r\n}\r\n\r\nfunction getImageView2(opt?: QnImageView2Option) {\r\n if (!opt) return '';\r\n const mode = typeof opt.mode === 'number' ? opt.mode : 0;\r\n const kv: string[] = [];\r\n for (const [k, v] of Object.entries(opt)) {\r\n if (k === 'mode') continue;\r\n if (typeof v === 'boolean') {\r\n if (v) kv.push(`${k}/1`);\r\n } else if (typeof v === 'number' || typeof v === 'string') {\r\n kv.push(`${k}/${v}`);\r\n }\r\n }\r\n return kv.length ? `imageView2/${mode}/${kv.join('/')}` : `imageView2/${mode}`;\r\n}\r\n\r\nfunction getImageMogr2(opt?: QnMogr2Option | QnImgOption) {\r\n if (!opt) return '';\r\n const parts: string[] = [];\r\n\r\n const tn = (opt as QnMogr2Option).thumbnail;\r\n if (typeof tn !== 'undefined') parts.push(`thumbnail/${tn}`);\r\n\r\n const cp = (opt as QnMogr2Option).crop;\r\n if (typeof cp !== 'undefined') parts.push(`crop/${cp}`);\r\n\r\n const rot = (opt as QnMogr2Option).rotate;\r\n if (typeof rot === 'number') parts.push(`rotate/${rot}`);\r\n\r\n const ao = (opt as QnMogr2Option)['auto-orient'];\r\n if (ao) parts.push('auto-orient');\r\n\r\n const fmt = (opt as QnMogr2Option).format;\r\n if (typeof fmt === 'string') parts.push(`format/${fmt}`);\r\n\r\n const il = (opt as QnMogr2Option).interlace;\r\n if (il === 0 || il === 1) parts.push(`interlace/${il}`);\r\n\r\n const bg = (opt as QnMogr2Option).background;\r\n if (typeof bg === 'string') parts.push(`background/${bg}`);\r\n\r\n const q = (opt as QnMogr2Option).q;\r\n if (typeof q === 'number') parts.push(`q/${q}`);\r\n\r\n const blur = (opt as QnMogr2Option).blur;\r\n if (typeof blur !== 'undefined') {\r\n if (typeof blur === 'string') parts.push(`blur/${blur}`);\r\n else parts.push(`blur/${blur.r}x${blur.s}`);\r\n }\r\n\r\n const colors = (opt as QnMogr2Option).colors;\r\n if (typeof colors === 'number') parts.push(`colors/${colors}`);\r\n\r\n return parts.length ? `imageMogr2/${parts.join('/')}` : '';\r\n}\r\n\r\nfunction getWatermark(w?: QnWatermarkOption) {\r\n if (!w) return '';\r\n const mode =\r\n w.type === 'image' ? 1 : w.type === 'text' ? 2 : typeof w.type === 'number' ? w.type : 2;\r\n const segs: string[] = [`watermark/${mode}`];\r\n if (mode === 1 && w.image) segs.push(`image/${toBase64Url(w.image)}`);\r\n if (mode === 2 && w.text) segs.push(`text/${toBase64Url(w.text)}`);\r\n if (w.font) segs.push(`font/${toBase64Url(w.font)}`);\r\n if (typeof w.fontsize === 'number') segs.push(`fontsize/${w.fontsize}`);\r\n if (w.fill) segs.push(`fill/${toBase64Url(w.fill)}`);\r\n if (w.gravity) segs.push(`gravity/${w.gravity}`);\r\n if (typeof w.dx === 'number') segs.push(`dx/${w.dx}`);\r\n if (typeof w.dy === 'number') segs.push(`dy/${w.dy}`);\r\n if (typeof w.dissolve === 'number') segs.push(`dissolve/${w.dissolve}`);\r\n return segs.join('/');\r\n}\r\n\r\nfunction toBase64Url(s: string) {\r\n let b64 = '';\r\n if (typeof Buffer !== 'undefined') {\r\n const buf = Buffer.from(s, 'utf-8');\r\n b64 = buf.toString('base64');\r\n } else {\r\n try {\r\n b64 = btoa(unescape(encodeURIComponent(s)));\r\n } catch {\r\n b64 = '';\r\n }\r\n }\r\n return b64.replace(/=+$/g, '').replace(/\\+/g, '-').replace(/\\//g, '_');\r\n}\r\n\r\nfunction getAvthumb(opt: import('.').QnAvthumbOption) {\r\n const parts: string[] = [];\r\n if (opt.format) parts.push(`avthumb/${opt.format}`);\r\n else parts.push('avthumb');\r\n if (opt.s) parts.push(`s/${opt.s}`);\r\n if (opt.vcodec) parts.push(`vcodec/${opt.vcodec}`);\r\n if (typeof opt.vb !== 'undefined') parts.push(`vb/${opt.vb}`);\r\n if (typeof opt.r === 'number') parts.push(`r/${opt.r}`);\r\n if (typeof opt.ab !== 'undefined') parts.push(`ab/${opt.ab}`);\r\n if (typeof opt.ar === 'number') parts.push(`ar/${opt.ar}`);\r\n if (opt.acodec) parts.push(`acodec/${opt.acodec}`);\r\n return parts.join('/');\r\n}\r\n\r\nfunction getVframe(opt: import('.').QnVframeOption) {\r\n const parts: string[] = [];\r\n parts.push(`vframe/${opt.format || 'jpg'}`);\r\n if (typeof opt.offset === 'number') parts.push(`offset/${opt.offset}`);\r\n if (typeof opt.w === 'number') parts.push(`w/${opt.w}`);\r\n if (typeof opt.h === 'number') parts.push(`h/${opt.h}`);\r\n return parts.join('/');\r\n}\r\n\r\nfunction getAvcvt(opt: import('.').QnHlsOption) {\r\n const parts: string[] = [];\r\n const level = typeof opt.level === 'number' ? `/${opt.level}` : '/3';\r\n parts.push(`avcvt${level}`);\r\n parts.push(`format/${opt.format || 'm3u8'}`);\r\n if (typeof opt.segtime === 'number') parts.push(`segtime/${opt.segtime}`);\r\n if (typeof opt.t === 'string') parts.push(`t/${opt.t}`);\r\n if (opt.vcodec) parts.push(`vcodec/${opt.vcodec}`);\r\n if (typeof opt.vb !== 'undefined') parts.push(`vb/${opt.vb}`);\r\n if (typeof opt.r === 'number') parts.push(`r/${opt.r}`);\r\n if (typeof opt.s === 'string') parts.push(`s/${opt.s}`);\r\n if (opt.acodec) parts.push(`acodec/${opt.acodec}`);\r\n if (typeof opt.ab !== 'undefined') parts.push(`ab/${opt.ab}`);\r\n if (typeof opt.ar === 'number') parts.push(`ar/${opt.ar}`);\r\n if (typeof opt.output === 'string') parts.push(`output/${toBase64Url(opt.output)}`);\r\n return parts.join('/');\r\n}\r\n","/**\r\n * 纯字母(不含空格与符号)。\r\n * @param s 字符串\r\n * @returns 是否为字母\r\n * @example\r\n * isLetter('abc') // true\r\n * isLetter('123') // false\r\n * isLetter('abc123') // false\r\n */\r\nexport function isLetter(s: string) {\r\n return /^[a-zA-Z]*$/.test(s);\r\n}\r\n\r\n/**\r\n * 纯中文(不含空格与符号)。\r\n * @param s 字符串\r\n * @returns 是否为纯中文\r\n * @example\r\n * isChinese('你好') // true\r\n */\r\nexport function isChinese(s: string) {\r\n const v = String(s ?? '').trim();\r\n return /^[\\u4E00-\\u9FA5]+$/.test(v);\r\n}\r\n\r\n/**\r\n * 纯数字(非负整数,不含空格与符号)。\r\n * @param s 字符串\r\n * @returns 是否为数字\r\n * @example\r\n * isDigits('12') // true\r\n * isDigits('1.2') // false\r\n * isDigits('-12') // false\r\n * isDigits('a12') // false\r\n */\r\nexport function isDigits(s: string) {\r\n return /^[0-9]+$/.test(s);\r\n}\r\n\r\n/**\r\n * 数字字符串格式校验\r\n * @param value 待验证值(字符串或数字)\r\n * @param options 可选项\r\n * @param options.negative 是否允许负数,默认 false\r\n * @param options.decimal 小数位数,默认 2(0 表示必须整数)\r\n * @param options.thousands 是否允许千分位逗号,默认 false\r\n * @param options.leadZero 是否允许整数部分出现多余前导0 (默认false, 即禁止'007',但允许'0.50')\r\n * @example\r\n * isNumeric('123.45'); // true\r\n * isNumeric('123.45', { decimal: 0 }); // false\r\n * isNumeric('-1,234.5', { negative: true, thousands: true }); // true\r\n * isNumeric('0123', { leadZero: true }); // true(现在允许)\r\n * isNumeric('0123'); // false(默认禁止)\r\n * isNumeric('0.50'); // true(始终允许)\r\n * isNumeric('.5'); // false(整数部分不能省)\r\n * isNumeric('123.'); // false(小数部分不能省)\r\n */\r\nexport function isNumeric(\r\n value: string | number,\r\n options?: {\r\n negative?: boolean;\r\n decimal?: number;\r\n thousands?: boolean;\r\n leadZero?: boolean;\r\n },\r\n): boolean {\r\n const { negative = false, decimal = 2, thousands = false, leadZero = false } = options || {};\r\n\r\n if (value === null || value === undefined || value === '') return false;\r\n const str = String(value).trim();\r\n\r\n const sign = negative && str.startsWith('-') ? '-' : '';\r\n const body = sign ? str.slice(1) : str;\r\n\r\n const thousandsPart = thousands ? '(?:[1-9]\\\\d{0,2}(,\\\\d{3})*|0)' : '(?:\\\\d+)';\r\n\r\n const intPart = thousands ? thousandsPart : leadZero ? '(?:\\\\d+)' : '(?:0|[1-9]\\\\d*)';\r\n\r\n const fracPart = decimal === 0 ? '' : `(\\\\.\\\\d{1,${decimal}})`;\r\n\r\n const pattern = `^${intPart}${fracPart}$`;\r\n const reg = new RegExp(pattern);\r\n return reg.test(body);\r\n}\r\n\r\n/**\r\n * 是否为中国大陆手机号(11 位,以 1 开头,第二位 3-9)。\r\n * @param s 待校验的号码\r\n * @returns 是否为合法手机号\r\n * @example\r\n * isMobilePhone('13800138000') // true\r\n * isMobilePhone('12800138000') // false\r\n */\r\nexport function isMobilePhone(s: string) {\r\n const v = String(s ?? '').trim();\r\n return /^1[3-9]\\d{9}$/.test(v);\r\n}\r\n\r\n/**\r\n * 是否为中国大陆座机号(区号-号码,可选分机)。\r\n * 格式:`0AA-BBBBBBBB(-EXT)`,其中区号 2-3 位、号码 7-8 位、分机 1-6 位。\r\n * @param s 待校验的号码\r\n * @returns 是否为合法座机号\r\n * @example\r\n * isLandline('010-88888888') // true\r\n * isLandline('0371-12345678-123') // true\r\n */\r\nexport function isLandline(s: string) {\r\n const v = String(s ?? '').trim();\r\n return /^0\\d{2,3}-?\\d{7,8}(?:-\\d{1,6})?$/.test(v);\r\n}\r\n\r\n/**\r\n * 联系电话:是否为中国大陆“手机号或座机号”。\r\n * @param s 待校验的号码\r\n * @returns 是否为合法的手机号或座机号\r\n * @example\r\n * isPhone('13800138000') // true\r\n * isPhone('010-88888888') // true\r\n */\r\nexport function isPhone(s: string) {\r\n return isMobilePhone(s) || isLandline(s);\r\n}\r\n\r\n/**\r\n * 校验邮箱地址(基于 RFC 5322 的常用子集)。\r\n * @param s 待校验的邮箱字符串\r\n * @returns 是否为合法邮箱\r\n * @example\r\n * isEmail('user@example.com') // true\r\n * isEmail('invalid@') // false\r\n */\r\nexport function isEmail(s: string) {\r\n const v = String(s ?? '').trim();\r\n if (v === '') return false;\r\n const emailRegex =\r\n /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?(?:\\.[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?)+$/;\r\n return emailRegex.test(v);\r\n}\r\n\r\n/**\r\n * 中文姓名(允许中间点 `·`),长度 2-20。\r\n * @param s 姓名\r\n * @returns 是否为合法中文姓名\r\n * @example\r\n * isChineseName('张三') // true\r\n * isChineseName('阿·娜') // true\r\n */\r\nexport function isChineseName(s: string) {\r\n const v = String(s ?? '').trim();\r\n return /^[\\u4E00-\\u9FA5·]{2,20}$/.test(v);\r\n}\r\n\r\n/**\r\n * 身份证校验(支持中国大陆严格校验;台湾/香港/澳门做格式校验)。\r\n * 规则:\r\n * - 中国大陆(严格):18 位校验位 + 出生日期合法性;兼容 15 位旧号(日期校验);\r\n * - 台湾(格式):`^[A-Z][12]\\d{8}$`(首字母 + 性别位 1/2 + 8 位数字);不含校验位算法;\r\n * - 香港(格式):`^[A-Z]{1,2}\\d{6}\\(?[0-9A]\\)?$`(1-2 字母 + 6 位数字 + 校验位,可带括号);\r\n * - 澳门(格式):常见为 `^[157]\\d{6}\\(?\\d\\)?$`(类别位 1/5/7 + 7 位数字 + 校验位,可带括号)。\r\n * @param code 身份证号码\r\n * @returns 是否为合法身份证号\r\n * @example\r\n * isIdentityCard('11010519491231002X') // true(大陆)\r\n * isIdentityCard('A123456789') // true(台湾格式)\r\n * isIdentityCard('A123456(3)') // true(香港格式)\r\n * isIdentityCard('1234567(8)') // true(澳门格式)\r\n */\r\nexport function isIdentityCard(code: string) {\r\n const v = String(code ?? '').trim();\r\n if (v === '') return false;\r\n\r\n const isValidDate = (yyyymmdd: string) => {\r\n const y = Number(yyyymmdd.slice(0, 4));\r\n const m = Number(yyyymmdd.slice(4, 6));\r\n const d = Number(yyyymmdd.slice(6, 8));\r\n if (y < 1900 || y > 2100) return false;\r\n const date = new Date(y, m - 1, d);\r\n return date.getFullYear() === y && date.getMonth() === m - 1 && date.getDate() === d;\r\n };\r\n\r\n // 18位校验\r\n if (/^\\d{17}[\\dXx]$/.test(v)) {\r\n const birth = v.slice(6, 14);\r\n if (!isValidDate(birth)) return false;\r\n const weights = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];\r\n const checkMap = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'];\r\n let sum = 0;\r\n for (let i = 0; i < 17; i++) sum += Number(v[i]) * weights[i];\r\n const mod = sum % 11;\r\n const code18 = v[17].toUpperCase();\r\n return checkMap[mod] === code18;\r\n }\r\n\r\n // 15位旧号:仅校验日期(第7~12位),不做校验位\r\n if (/^\\d{15}$/.test(v)) {\r\n const birth = v.slice(6, 12);\r\n const y = Number(`19${birth.slice(0, 2)}`);\r\n const m = Number(birth.slice(2, 4));\r\n const d = Number(birth.slice(4, 6));\r\n const date = new Date(y, m - 1, d);\r\n return date.getFullYear() === y && date.getMonth() === m - 1 && date.getDate() === d;\r\n }\r\n\r\n // 台湾(格式校验)\r\n if (/^[A-Za-z][12]\\d{8}$/.test(v)) return true;\r\n\r\n // 香港(格式校验):支持最后一位带括号与不带括号\r\n if (/^[A-Za-z]{1,2}\\d{6}\\(?[0-9A]\\)?$/.test(v)) return true;\r\n\r\n // 澳门(格式校验):常见 1/5/7 开头 + 7位数字 + 校验位,可带括号\r\n if (/^[157]\\d{6}\\(?\\d\\)?$/.test(v)) return true;\r\n\r\n return false;\r\n}\r\n\r\n/**\r\n * 护照号码校验(宽松通用格式,适合单输入框无法确认国家的场景)。\r\n * 说明:各国护照格式差异较大,此函数提供常见模式的格式校验;不做校验位算法。\r\n * 包含:\r\n * - 中国护照常见:`E/G` 开头 + 8 位数字;`D/P/S` 开头 + 7 位数字;\r\n * - 台湾护照常见:首字母 + 8 位数字;\r\n * - 通用兜底:6-9 位的字母数字组合;移除输入中的空格与 `-` 后再校验。\r\n * @param s 护照号码\r\n * @returns 是否匹配常见护照格式\r\n * @example\r\n * isPassport('E12345678') // true\r\n * isPassport('P1234567') // true\r\n * isPassport('A12345678') // true(台湾常见)\r\n * isPassport('AB-1234567') // true(移除分隔符后匹配)\r\n */\r\nexport function isPassport(s: string) {\r\n const t = String(s ?? '')\r\n .replace(/[-\\s]/g, '')\r\n .trim();\r\n if (t === '') return false;\r\n if (/^[EG]\\d{8}$/.test(t)) return true; // CN:E/G + 8 digits\r\n if (/^[DPS]\\d{7}$/.test(t)) return true; // CN:D/P/S + 7 digits\r\n if (/^[A-Za-z]\\d{8}$/.test(t)) return true; // TW:letter + 8 digits\r\n if (/^[A-Za-z0-9]{6,9}$/.test(t)) return true; // 通用宽松兜底\r\n return false;\r\n}\r\n\r\n/**\r\n * 港澳通行证(回乡证)号码校验。\r\n * 说明:常见为 `H/M` 开头 + 8~10 位数字;自动移除输入中的空格与 `-`。\r\n * @param s 证件号\r\n * @returns 是否为港澳通行证格式\r\n * @example\r\n * isHKMOPermit('H12345678') // true\r\n * isHKMOPermit('M1234567890') // true\r\n */\r\nexport function isHKMOPermit(s: string) {\r\n const t = String(s ?? '')\r\n .replace(/[-\\s]/g, '')\r\n .trim()\r\n .toUpperCase();\r\n return /^[HM]\\d{8,10}$/.test(t);\r\n}\r\n\r\n/**\r\n * 台湾居民来往大陆通行证(台胞证)号码校验。\r\n * 说明:常见为 8 位纯数字;或首字母 + 8 位数字;部分场景存在 10 位数字。\r\n * @param s 证件号\r\n * @returns 是否为台胞证格式\r\n * @example\r\n * isTaiwanPermit('12345678') // true\r\n * isTaiwanPermit('T12345678') // true\r\n * isTaiwanPermit('1234567890') // true\r\n */\r\nexport function isTaiwanPermit(s: string) {\r\n const t = String(s ?? '')\r\n .replace(/[-\\s]/g, '')\r\n .trim()\r\n .toUpperCase();\r\n if (/^\\d{8}$/.test(t)) return true;\r\n if (/^[A-Z]\\d{8}$/.test(t)) return true;\r\n if (/^\\d{10}$/.test(t)) return true;\r\n return false;\r\n}\r\n\r\n/**\r\n * 军官证号码校验:字母数字组合,长度 7-18。\r\n * @param s 证件号\r\n * @returns 是否为军官证宽松格式\r\n * @example\r\n * isOfficerIdLoose('JX1234567') // true\r\n */\r\nexport function isOfficerId(s: string) {\r\n const t = String(s ?? '')\r\n .replace(/[-\\s]/g, '')\r\n .trim()\r\n .toUpperCase();\r\n return /^[A-Z0-9]{7,18}$/.test(t);\r\n}\r\n\r\n/**\r\n * 士兵证号码校验:字母数字组合,长度 7-18。\r\n * @param s 证件号\r\n * @returns 是否为士兵证格式\r\n * @example\r\n * isSoldierId('SB12345678') // true\r\n */\r\nexport function isSoldierId(s: string) {\r\n const t = String(s ?? '')\r\n .replace(/[-\\s]/g, '')\r\n .trim()\r\n .toUpperCase();\r\n return /^[A-Z0-9]{7,18}$/.test(t);\r\n}\r\n\r\n/**\r\n * 中国军证(军官证/士兵证)组合校验。\r\n * @param s 证件号\r\n * @returns 是否为军官证或士兵证格式\r\n * @example\r\n * isCnMilitaryId('JX1234567') // true\r\n */\r\nexport function isMilitaryId(s: string) {\r\n return isOfficerId(s) || isSoldierId(s);\r\n}\r\n\r\n/**\r\n * 银行卡号校验(Luhn 校验)。\r\n * 说明:移除空格与 `-` 后进行 Luhn 校验;长度通常为 12-19 位。\r\n * @param s 银行卡号\r\n * @returns 是否通过 Luhn 校验\r\n * @example\r\n * isBankCard('6222 0201 2345 6789') // true\r\n */\r\nexport function isBankCard(s: string) {\r\n const t = String(s ?? '')\r\n .replace(/[-\\s]/g, '')\r\n .trim();\r\n if (!/^\\d{12,19}$/.test(t)) return false;\r\n let sum = 0;\r\n let shouldDouble = false;\r\n for (let i = t.length - 1; i >= 0; i--) {\r\n let digit = Number(t[i]);\r\n if (shouldDouble) {\r\n digit *= 2;\r\n if (digit > 9) digit -= 9;\r\n }\r\n sum += digit;\r\n shouldDouble = !shouldDouble;\r\n }\r\n return sum % 10 === 0;\r\n}\r\n\r\n/**\r\n * 中国车牌号校验(含普通与新能源)。\r\n * @param s 车牌号码\r\n * @returns 是否为合法中国车牌\r\n * @example\r\n * isLicensePlate('京A12345') // true\r\n * isLicensePlate('沪A12345D') // 新能源(末位 D/F)\r\n * isLicensePlate('粤BDF12345') // 新能源(第三位 D/F)\r\n */\r\nexport function isLicensePlate(s: string) {\r\n const v = String(s ?? '')\r\n .trim()\r\n .toUpperCase();\r\n const prov = '京沪津渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵青藏川宁琼粤';\r\n const std = new RegExp(`^[${prov}][A-HJ-NP-Z][A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9挂学警港澳]$`);\r\n const ne1 = new RegExp(`^[${prov}][A-HJ-NP-Z][DF][A-HJ-NP-Z0-9]{5}$`);\r\n const ne2 = new RegExp(`^[${prov}][A-HJ-NP-Z][A-HJ-NP-Z0-9]{5}[DF]$`);\r\n return std.test(v) || ne1.test(v) || ne2.test(v);\r\n}\r\n\r\n/**\r\n * 校验统一社会信用代码(中国税号常用:18 位,含校验位)。\r\n * 规则:\r\n * - 字符集:数字与大写字母(不含 I/O/Z/S/V),即 `[0-9A-HJ-NPQRTUWXY]`;\r\n * - 前 17 位参与加权求和,最后一位为校验码(取值 0-9 或 大写字母)。\r\n * @param code 税号/统一社会信用代码\r\n * @returns 是否为合法税号\r\n * @example\r\n * isTaxID('91350100M000100Y43') // true/false 取决于校验位\r\n */\r\nexport function isTaxID(code: string) {\r\n const v = String(code ?? '').trim();\r\n if (!/^[0-9A-HJ-NPQRTUWXY]{18}$/.test(v)) return false;\r\n const charset = '0123456789ABCDEFGHJKLMNPQRTUWXY'; // 31 字符集\r\n const weights = [1, 3, 9, 27, 19, 26, 16, 17, 20, 29, 25, 13, 8, 24, 10, 30, 28];\r\n const map: Record<string, number> = {};\r\n for (let i = 0; i < charset.length; i++) map[charset[i]] = i;\r\n let sum = 0;\r\n for (let i = 0; i < 17; i++) {\r\n sum += map[v[i]] * weights[i];\r\n }\r\n const logicCheck = (31 - (sum % 31)) % 31;\r\n const expected = charset[logicCheck];\r\n return v[17] === expected;\r\n}\r\n\r\n/**\r\n * HEX 颜色值(支持 `#RGB`、`#RRGGBB`、`#RRGGBBAA`)。\r\n * @param s 颜色字符串\r\n * @returns 是否为合法 HEX 颜色\r\n * @example\r\n * isHexColor('#fff') // true\r\n * isHexColor('#00ff00') // true\r\n * isHexColor('#11223344') // true\r\n */\r\nexport function isHexColor(s: string) {\r\n const v = String(s ?? '').trim();\r\n return /^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/.test(v);\r\n}\r\n\r\n/**\r\n * 校验 URL(要求含协议,支持 http/https/ftp)。\r\n * @param s 待校验的地址\r\n * @returns 是否为合法 URL\r\n * @example\r\n * isURL('https://example.com/path?a=1') // true\r\n * isURL('example.com') // false(缺少协议)\r\n */\r\nexport function isURL(s: string) {\r\n const v = String(s ?? '').trim();\r\n if (v === '') return false;\r\n try {\r\n const u = new URL(v);\r\n return ['http:', 'https:', 'ftp:'].includes(u.protocol) && !!u.hostname;\r\n } catch {\r\n return false;\r\n }\r\n}\r\n\r\n/**\r\n * 判断是否为合法 IPv4 地址。\r\n * @param s IP 字符串\r\n * @returns 是否为合法 IPv4\r\n * @example\r\n * isIPv4('192.168.0.1') // true\r\n * isIPv4('256.0.0.1') // false\r\n */\r\nfunction isIPv4(s: string) {\r\n const v = String(s ?? '').trim();\r\n if (v === '') return false;\r\n const parts = v.split('.');\r\n if (parts.length !== 4) return false;\r\n for (const p of parts) {\r\n if (!/^\\d+$/.test(p)) return false;\r\n if (p.length > 1 && p.startsWith('0')) return false;\r\n const n = Number(p);\r\n if (n < 0 || n > 255) return false;\r\n }\r\n return true;\r\n}\r\n\r\n/**\r\n * 判断是否为合法 IPv6 地址(支持压缩表示与 IPv4 映射)。\r\n * 规则:\r\n * - 由 8 组 1~4 位十六进制数组成,允许一次 `::` 压缩;\r\n * - 允许最后一组使用 IPv4 映射(如 `::ffff:192.168.0.1`)。\r\n * @param s IP 字符串\r\n * @returns 是否为合法 IPv6\r\n * @example\r\n * isIPv6('2001:0db8:85a3:0000:0000:8a2e:0370:7334') // true\r\n * isIPv6('2001:db8::8a2e:370:7334') // true\r\n * isIPv6('2001:::370:7334') // false\r\n */\r\nexport function isIPv6(s: string): boolean {\r\n const v = String(s ?? '').trim();\r\n if (v === '') return false;\r\n\r\n const lastColon = v.lastIndexOf(':');\r\n if (lastColon !== -1 && v.includes('.')) {\r\n const ipv6Part = v.slice(0, lastColon);\r\n const ipv4Part = v.slice(lastColon + 1);\r\n return isIPv6(ipv6Part) && isIPv4(ipv4Part);\r\n }\r\n\r\n const dblColonCount = (v.match(/::/g) || []).length;\r\n if (dblColonCount > 1) return false;\r\n\r\n const segments = v.split(':');\r\n if (v.startsWith('::')) segments.shift();\r\n if (v.endsWith('::')) segments.pop();\r\n const segmentsFiltered = segments.filter((seg) => seg !== '');\r\n\r\n if (dblColonCount === 0 && segmentsFiltered.length !== 8) return false;\r\n if (dblColonCount === 1 && segmentsFiltered.length >= 1 && segmentsFiltered.length <= 7) {\r\n // ok\r\n } else if (dblColonCount === 1 && segments.length === 0) {\r\n // :: 表示全部为 0\r\n return true;\r\n } else if (dblColonCount === 0 && segmentsFiltered.length === 8) {\r\n // ok\r\n } else {\r\n return false;\r\n }\r\n\r\n // 每段 1~4 位十六进制\r\n return segmentsFiltered.every(\r\n (seg) => seg.length >= 1 && seg.length <= 4 && /^[0-9a-fA-F]{1,4}$/.test(seg),\r\n );\r\n}\r\n\r\n/**\r\n * 校验 IP(支持 IPv4 与 IPv6)。\r\n * @param s IP 字符串\r\n * @param version 指定版本:传 `4` 仅校验 IPv4,传 `6` 仅校验 IPv6;缺省同时校验两者\r\n * @returns 是否为合法 IP\r\n * @example\r\n * isIP('127.0.0.1') // true\r\n * isIP('::1') // true\r\n * isIP('127.0.0.1', 6) // false\r\n */\r\nexport function isIP(s: string, version?: 4 | 6 | '4' | '6') {\r\n if (version === 4 || version === '4') return isIPv4(s);\r\n if (version === 6 || version === '6') return isIPv6(s);\r\n return isIPv4(s) || isIPv6(s);\r\n}\r\n\r\n/**\r\n * 校验 CIDR IP 段(支持 IPv4/IPv6),形如 `IP/前缀长度`。\r\n * @param s CIDR 字符串,如 `192.168.0.0/24`、`2001:db8::/32`\r\n * @returns 是否为合法 CIDR\r\n * @example\r\n * isIPRange('10.0.0.0/8') // true\r\n * isIPRange('2001:db8::/129') // false\r\n */\r\nexport function isIPRange(s: string) {\r\n const v = String(s ?? '').trim();\r\n if (v === '') return false;\r\n const parts = v.split('/');\r\n if (parts.length !== 2) return false;\r\n const [ip, prefixStr] = parts;\r\n if (!/^\\d+$/.test(prefixStr)) return false;\r\n const prefix = Number(prefixStr);\r\n if (ip.includes(':')) {\r\n if (!isIPv6(ip)) return false;\r\n return prefix >= 0 && prefix <= 128;\r\n }\r\n if (!isIPv4(ip)) return false;\r\n return prefix >= 0 && prefix <= 32;\r\n}\r\n\r\n/**\r\n * 端口号校验(0 ~ 65535,整数)。\r\n * @param s 端口(字符串或数字)\r\n * @returns 是否为合法端口范围\r\n * @example\r\n * isPortNumber(80) // true\r\n * isPortNumber('65535') // true\r\n * isPortNumber(70000) // false\r\n */\r\nexport function isPortNumber(s: string | number) {\r\n const v = typeof s === 'number' ? s : Number(String(s ?? '').trim());\r\n return Number.isInteger(v) && v >= 0 && v <= 65535;\r\n}\r\n\r\n/**\r\n * 纬度校验(-90 ~ 90)。\r\n * @param s 纬度值(字符串或数字)\r\n * @returns 是否为合法纬度\r\n * @example\r\n * isLatitude('31.2304') // true\r\n */\r\nexport function isLatitude(s: string | number) {\r\n const v = typeof s === 'number' ? s : Number(String(s ?? '').trim());\r\n return Number.isFinite(v) && v >= -90 && v <= 90;\r\n}\r\n\r\n/**\r\n * 经度校验(-180 ~ 180)。\r\n * @param s 经度值(字符串或数字)\r\n * @returns 是否为合法经度\r\n * @example\r\n * isLongitude('121.4737') // true\r\n */\r\nexport function isLongitude(s: string | number) {\r\n const v = typeof s === 'number' ? s : Number(String(s ?? '').trim());\r\n return Number.isFinite(v) && v >= -180 && v <= 180;\r\n}\r\n"],"mappings":"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A;AAAA;AAAA;AAAA,iBAAAC;AAAA,IAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,8BAAAC;AAAA,IAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAAAC;AAAA,IAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAAC;AAAA,IAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAAC;AAAA,IAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACOO,WAAS,UAAa,MAAW,WAAmB,SAAiB;AAC1E,UAAM,UAAU,CAAC,GAAG,IAAI;AACxB,UAAM,CAAC,OAAO,IAAI,QAAQ,OAAO,WAAW,CAAC;AAC7C,YAAQ,OAAO,SAAS,GAAG,OAAO;AAClC,WAAO;AAAA,EACT;;;ACAA,WAAsB,QAAW,GAA6C;AAAA;AAC5E,UAAI;AACF,cAAM,OAAO,MAAM;AACnB,eAAO,CAAC,MAAM,IAAI;AAAA,MACpB,SAAS,KAAK;AACZ,eAAO,CAAC,MAAM,GAAG;AAAA,MACnB;AAAA,IACF;AAAA;;;wBC2BCC,GAAAA;AAOA,WAAO,EAINA,KANDA,IAAMA,KAAO,oBAAIC,OAchBC,IAAAA,SAA6BC,GAAWC,GAAAA;AACvC,UAAMC,IAAmDL,EAAKM,IAAIH,CAAAA;AAC9DE,UACHA,EAASE,KAAKH,CAAAA,IAEdJ,EAAKQ,IAAIL,GAAM,CAACC,CAAAA,CAAAA;IAAAA,GAWlBK,KAAAA,SAA8BN,GAAWC,GAAAA;AACxC,UAAMC,IAAmDL,EAAKM,IAAIH,CAAAA;AAC9DE,YACCD,IACHC,EAASK,OAAOL,EAASM,QAAQP,CAAAA,MAAa,GAAG,CAAA,IAEjDJ,EAAKQ,IAAIL,GAAM,CAAA,CAAA;IAAA,GAelBS,MAAAA,SAA+BT,GAAWU,GAAAA;AACzC,UAAIR,IAAWL,EAAKM,IAAIH,CAAAA;AACpBE,WACFA,EACCS,MAAAA,EACAC,IAAI,SAACX,IAAAA;AACLA,QAAAA,GAAQS,CAAAA;MAAAA,CAAAA,IAIXR,IAAWL,EAAKM,IAAI,GAAA,MAElBD,EACCS,MAAAA,EACAC,IAAI,SAACX,IAAAA;AACLA,QAAAA,GAAQD,GAAMU,CAAAA;MAAAA,CAAAA;IAAAA,EAAAA;EAAAA;;;AC7Fb,MAAM,WAAN,MAA0C;AAAA,IAA1C;AACL,0BAAiB,YAAuB,aAAQ;AAAA;AAAA;AAAA,IAGhD,GAAsB,MAAS,IAAiC;AAC9D,WAAK,SAAS,GAAG,MAAM,EAAE;AACzB,aAAO;AAAA,IACT;AAAA;AAAA,IAGA,KAAwB,MAAS,IAAiC;AAChE,YAAM,OAAO,CAAC,UAAgB;AAC5B,aAAK,SAAS,IAAI,MAAM,IAAI;AAC5B,WAAG,KAAK;AAAA,MACV;AACA,WAAK,SAAS,GAAG,MAAM,IAAI;AAC3B,aAAO;AAAA,IACT;AAAA;AAAA,IAGA,KAAwB,MAAS,OAAoB;AACnD,WAAK,SAAS,KAAK,MAAM,KAAa;AACtC,aAAO;AAAA,IACT;AAAA;AAAA,IAGA,IAAuB,MAAS,IAAkC;AAChE,WAAK,SAAS,IAAI,MAAM,EAAE;AAC1B,aAAO;AAAA,IACT;AAAA;AAAA,IAGA,QAAc;AACZ,WAAK,SAAS,IAAI,MAAM;AACxB,aAAO;AAAA,IACT;AAAA,EACF;;;AC5DA,qBAAkB;AAClB,iCAA8B;AAC9B,mBAAgB;AAChB,wBAAqB;AACrB,4BAAyB;AACzB,8BAA2B;AAC3B,qBAAO;;;AC0CP,MACE,YAAY;AADd,MAEE,WAAW,KAAK;AAFlB,MAGE,YAAY,KAAK;AAHnB,MAKE,iBAAiB;AALnB,MAME,gBAAgB,iBAAiB;AANnC,MAQE,OAAO;AART,MASE,WAAW;AATb,MAUE,mBAAmB;AAVrB,MAYE,WAAW,CAAC,GAAG,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,IAAI;AAZnF,MAaE,YAAY;AAbd,MAkBE,MAAM;AAMR,WAAS,MAAM,cAAc;AAC3B,QAAI,KAAK,aAAa,cACpB,IAAIG,WAAU,YAAY,EAAE,aAAaA,YAAW,UAAU,MAAM,SAAS,KAAK,GAClF,MAAM,IAAIA,WAAU,CAAC,GAUrB,iBAAiB,IAajB,gBAAgB,GAMhB,aAAa,IAIb,aAAa,IAMb,UAAU,MAKV,UAAU,KAGV,SAAS,OAkBT,cAAc,GAId,gBAAgB,GAGhB,SAAS;AAAA,MACP,QAAQ;AAAA,MACR,WAAW;AAAA,MACX,oBAAoB;AAAA,MACpB,gBAAgB;AAAA,MAChB,kBAAkB;AAAA,MAClB,mBAAmB;AAAA,MACnB,wBAAwB;AAAA;AAAA,MACxB,QAAQ;AAAA,IACV,GAKA,WAAW,wCACX,iCAAiC;AAgBnC,aAASA,WAAU,GAAG,GAAG;AACvB,UAAI,UAAU,GAAG,aAAa,GAAG,GAAG,OAAO,KAAK,KAC9C,IAAI;AAGN,UAAI,EAAE,aAAaA,YAAY,QAAO,IAAIA,WAAU,GAAG,CAAC;AAExD,UAAI,KAAK,MAAM;AAEb,YAAI,KAAK,EAAE,iBAAiB,MAAM;AAChC,YAAE,IAAI,EAAE;AAER,cAAI,CAAC,EAAE,KAAK,EAAE,IAAI,SAAS;AACzB,cAAE,IAAI,EAAE,IAAI;AAAA,UACd,WAAW,EAAE,IAAI,SAAS;AACxB,cAAE,IAAI,CAAC,EAAE,IAAI,CAAC;AAAA,UAChB,OAAO;AACL,cAAE,IAAI,EAAE;AACR,cAAE,IAAI,EAAE,EAAE,MAAM;AAAA,UAClB;AAEA;AAAA,QACF;AAEA,aAAK,QAAQ,OAAO,KAAK,aAAa,IAAI,KAAK,GAAG;AAGhD,YAAE,IAAI,IAAI,IAAI,KAAK,IAAI,CAAC,GAAG,MAAM;AAGjC,cAAI,MAAM,CAAC,CAAC,GAAG;AACb,iBAAK,IAAI,GAAG,IAAI,GAAG,KAAK,IAAI,KAAK,IAAI,IAAI;AAEzC,gBAAI,IAAI,SAAS;AACf,gBAAE,IAAI,EAAE,IAAI;AAAA,YACd,OAAO;AACL,gBAAE,IAAI;AACN,gBAAE,IAAI,CAAC,CAAC;AAAA,YACV;AAEA;AAAA,UACF;AAEA,gBAAM,OAAO,CAAC;AAAA,QAChB,OAAO;AAEL,cAAI,CAAC,UAAU,KAAK,MAAM,OAAO,CAAC,CAAC,EAAG,QAAO,aAAa,GAAG,KAAK,KAAK;AAEvE,YAAE,IAAI,IAAI,WAAW,CAAC,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,GAAG,MAAM;AAAA,QAC7D;AAGA,aAAK,IAAI,IAAI,QAAQ,GAAG,KAAK,GAAI,OAAM,IAAI,QAAQ,KAAK,EAAE;AAG1D,aAAK,IAAI,IAAI,OAAO,IAAI,KAAK,GAAG;AAG9B,cAAI,IAAI,EAAG,KAAI;AACf,eAAK,CAAC,IAAI,MAAM,IAAI,CAAC;AACrB,gBAAM,IAAI,UAAU,GAAG,CAAC;AAAA,QAC1B,WAAW,IAAI,GAAG;AAGhB,cAAI,IAAI;AAAA,QACV;AAAA,MAEF,OAAO;AAGL,iBAAS,GAAG,GAAG,SAAS,QAAQ,MAAM;AAItC,YAAI,KAAK,MAAM,gCAAgC;AAC7C,cAAI,IAAIA,WAAU,CAAC;AACnB,iBAAOC,OAAM,GAAG,iBAAiB,EAAE,IAAI,GAAG,aAAa;AAAA,QACzD;AAEA,cAAM,OAAO,CAAC;AAEd,YAAI,QAAQ,OAAO,KAAK,UAAU;AAGhC,cAAI,IAAI,KAAK,EAAG,QAAO,aAAa,GAAG,KAAK,OAAO,CAAC;AAEpD,YAAE,IAAI,IAAI,IAAI,KAAK,MAAM,IAAI,MAAM,CAAC,GAAG,MAAM;AAG7C,cAAID,WAAU,SAAS,IAAI,QAAQ,aAAa,EAAE,EAAE,SAAS,IAAI;AAC/D,kBAAM,MACJ,gBAAgB,CAAC;AAAA,UACrB;AAAA,QACF,OAAO;AACL,YAAE,IAAI,IAAI,WAAW,CAAC,MAAM,MAAM,MAAM,IAAI,MAAM,CAAC,GAAG,MAAM;AAAA,QAC9D;AAEA,mBAAW,SAAS,MAAM,GAAG,CAAC;AAC9B,YAAI,IAAI;AAIR,aAAK,MAAM,IAAI,QAAQ,IAAI,KAAK,KAAK;AACnC,cAAI,SAAS,QAAQ,IAAI,IAAI,OAAO,CAAC,CAAC,IAAI,GAAG;AAC3C,gBAAI,KAAK,KAAK;AAGZ,kBAAI,IAAI,GAAG;AACT,oBAAI;AACJ;AAAA,cACF;AAAA,YACF,WAAW,CAAC,aAAa;AAGvB,kBAAI,OAAO,IAAI,YAAY,MAAM,MAAM,IAAI,YAAY,MACnD,OAAO,IAAI,YAAY,MAAM,MAAM,IAAI,YAAY,IAAI;AACzD,8BAAc;AACd,oBAAI;AACJ,oBAAI;AACJ;AAAA,cACF;AAAA,YACF;AAEA,mBAAO,aAAa,GAAG,OAAO,CAAC,GAAG,OAAO,CAAC;AAAA,UAC5C;AAAA,QACF;AAGA,gBAAQ;AACR,cAAM,YAAY,KAAK,GAAG,IAAI,EAAE,CAAC;AAGjC,aAAK,IAAI,IAAI,QAAQ,GAAG,KAAK,GAAI,OAAM,IAAI,QAAQ,KAAK,EAAE;AAAA,YACrD,KAAI,IAAI;AAAA,MACf;AAGA,WAAK,IAAI,GAAG,IAAI,WAAW,CAAC,MAAM,IAAI,IAAI;AAG1C,WAAK,MAAM,IAAI,QAAQ,IAAI,WAAW,EAAE,GAAG,MAAM,KAAI;AAErD,UAAI,MAAM,IAAI,MAAM,GAAG,EAAE,GAAG,GAAG;AAC7B,eAAO;AAGP,YAAI,SAASA,WAAU,SACrB,MAAM,OAAO,IAAI,oBAAoB,MAAM,UAAU,CAAC,IAAI;AACxD,gBAAM,MACJ,gBAAiB,EAAE,IAAI,CAAE;AAAA,QAC/B;AAGA,aAAK,IAAI,IAAI,IAAI,KAAK,SAAS;AAG7B,YAAE,IAAI,EAAE,IAAI;AAAA,QAGd,WAAW,IAAI,SAAS;AAGtB,YAAE,IAAI,CAAC,EAAE,IAAI,CAAC;AAAA,QAChB,OAAO;AACL,YAAE,IAAI;AACN,YAAE,IAAI,CAAC;AAMP,eAAK,IAAI,KAAK;AACd,cAAI,IAAI,EAAG,MAAK;AAEhB,cAAI,IAAI,KAAK;AACX,gBAAI,EAAG,GAAE,EAAE,KAAK,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC;AAEhC,iBAAK,OAAO,UAAU,IAAI,OAAM;AAC9B,gBAAE,EAAE,KAAK,CAAC,IAAI,MAAM,GAAG,KAAK,QAAQ,CAAC;AAAA,YACvC;AAEA,gBAAI,YAAY,MAAM,IAAI,MAAM,CAAC,GAAG;AAAA,UACtC,OAAO;AACL,iBAAK;AAAA,UACP;AAEA,iBAAO,KAAK,OAAO,IAAI;AACvB,YAAE,EAAE,KAAK,CAAC,GAAG;AAAA,QACf;AAAA,MACF,OAAO;AAGL,UAAE,IAAI,CAAC,EAAE,IAAI,CAAC;AAAA,MAChB;AAAA,IACF;AAMA,IAAAA,WAAU,QAAQ;AAElB,IAAAA,WAAU,WAAW;AACrB,IAAAA,WAAU,aAAa;AACvB,IAAAA,WAAU,aAAa;AACvB,IAAAA,WAAU,cAAc;AACxB,IAAAA,WAAU,gBAAgB;AAC1B,IAAAA,WAAU,kBAAkB;AAC5B,IAAAA,WAAU,kBAAkB;AAC5B,IAAAA,WAAU,kBAAkB;AAC5B,IAAAA,WAAU,mBAAmB;AAC7B,IAAAA,WAAU,SAAS;AAqCnB,IAAAA,WAAU,SAASA,WAAU,MAAM,SAAU,KAAK;AAChD,UAAI,GAAG;AAEP,UAAI,OAAO,MAAM;AAEf,YAAI,OAAO,OAAO,UAAU;AAI1B,cAAI,IAAI,eAAe,IAAI,gBAAgB,GAAG;AAC5C,gBAAI,IAAI,CAAC;AACT,qBAAS,GAAG,GAAG,KAAK,CAAC;AACrB,6BAAiB;AAAA,UACnB;AAIA,cAAI,IAAI,eAAe,IAAI,eAAe,GAAG;AAC3C,gBAAI,IAAI,CAAC;AACT,qBAAS,GAAG,GAAG,GAAG,CAAC;AACnB,4BAAgB;AAAA,UAClB;AAMA,cAAI,IAAI,eAAe,IAAI,gBAAgB,GAAG;AAC5C,gBAAI,IAAI,CAAC;AACT,gBAAI,KAAK,EAAE,KAAK;AACd,uBAAS,EAAE,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC;AACzB,uBAAS,EAAE,CAAC,GAAG,GAAG,KAAK,CAAC;AACxB,2BAAa,EAAE,CAAC;AAChB,2BAAa,EAAE,CAAC;AAAA,YAClB,OAAO;AACL,uBAAS,GAAG,CAAC,KAAK,KAAK,CAAC;AACxB,2BAAa,EAAE,aAAa,IAAI,IAAI,CAAC,IAAI;AAAA,YAC3C;AAAA,UACF;AAKA,cAAI,IAAI,eAAe,IAAI,OAAO,GAAG;AACnC,gBAAI,IAAI,CAAC;AACT,gBAAI,KAAK,EAAE,KAAK;AACd,uBAAS,EAAE,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC;AAC1B,uBAAS,EAAE,CAAC,GAAG,GAAG,KAAK,CAAC;AACxB,wBAAU,EAAE,CAAC;AACb,wBAAU,EAAE,CAAC;AAAA,YACf,OAAO;AACL,uBAAS,GAAG,CAAC,KAAK,KAAK,CAAC;AACxB,kBAAI,GAAG;AACL,0BAAU,EAAE,UAAU,IAAI,IAAI,CAAC,IAAI;AAAA,cACrC,OAAO;AACL,sBAAM,MACJ,iBAAiB,IAAI,sBAAsB,CAAC;AAAA,cAChD;AAAA,YACF;AAAA,UACF;AAKA,cAAI,IAAI,eAAe,IAAI,QAAQ,GAAG;AACpC,gBAAI,IAAI,CAAC;AACT,gBAAI,MAAM,CAAC,CAAC,GAAG;AACb,kBAAI,GAAG;AACL,oBAAI,OAAO,UAAU,eAAe,WAClC,OAAO,mBAAmB,OAAO,cAAc;AAC/C,2BAAS;AAAA,gBACX,OAAO;AACL,2BAAS,CAAC;AACV,wBAAM,MACJ,iBAAiB,oBAAoB;AAAA,gBACzC;AAAA,cACF,OAAO;AACL,yBAAS;AAAA,cACX;AAAA,YACF,OAAO;AACL,oBAAM,MACJ,iBAAiB,IAAI,yBAAyB,CAAC;AAAA,YACnD;AAAA,UACF;AAIA,cAAI,IAAI,eAAe,IAAI,aAAa,GAAG;AACzC,gBAAI,IAAI,CAAC;AACT,qBAAS,GAAG,GAAG,GAAG,CAAC;AACnB,0BAAc;AAAA,UAChB;AAIA,cAAI,IAAI,eAAe,IAAI,eAAe,GAAG;AAC3C,gBAAI,IAAI,CAAC;AACT,qBAAS,GAAG,GAAG,KAAK,CAAC;AACrB,4BAAgB;AAAA,UAClB;AAIA,cAAI,IAAI,eAAe,IAAI,QAAQ,GAAG;AACpC,gBAAI,IAAI,CAAC;AACT,gBAAI,OAAO,KAAK,SAAU,UAAS;AAAA,gBAC9B,OAAM,MACT,iBAAiB,IAAI,qBAAqB,CAAC;AAAA,UAC/C;AAIA,cAAI,IAAI,eAAe,IAAI,UAAU,GAAG;AACtC,gBAAI,IAAI,CAAC;AAIT,gBAAI,OAAO,KAAK,YAAY,CAAC,wBAAwB,KAAK,CAAC,GAAG;AAC5D,+CAAiC,EAAE,MAAM,GAAG,EAAE,KAAK;AACnD,yBAAW;AAAA,YACb,OAAO;AACL,oBAAM,MACJ,iBAAiB,IAAI,eAAe,CAAC;AAAA,YACzC;AAAA,UACF;AAAA,QAEF,OAAO;AAGL,gBAAM,MACJ,iBAAiB,sBAAsB,GAAG;AAAA,QAC9C;AAAA,MACF;AAEA,aAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA,gBAAgB,CAAC,YAAY,UAAU;AAAA,QACvC,OAAO,CAAC,SAAS,OAAO;AAAA,QACxB;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAYA,IAAAA,WAAU,cAAc,SAAU,GAAG;AACnC,UAAI,CAAC,KAAK,EAAE,iBAAiB,KAAM,QAAO;AAC1C,UAAI,CAACA,WAAU,MAAO,QAAO;AAE7B,UAAI,GAAG,GACL,IAAI,EAAE,GACN,IAAI,EAAE,GACN,IAAI,EAAE;AAER,UAAK,KAAI,CAAC,EAAE,SAAS,KAAK,CAAC,KAAK,kBAAkB;AAEhD,aAAK,MAAM,KAAK,MAAM,OAAO,KAAK,CAAC,OAAO,KAAK,OAAO,MAAM,UAAU,CAAC,GAAG;AAGxE,cAAI,EAAE,CAAC,MAAM,GAAG;AACd,gBAAI,MAAM,KAAK,EAAE,WAAW,EAAG,QAAO;AACtC,kBAAM;AAAA,UACR;AAGA,eAAK,IAAI,KAAK;AACd,cAAI,IAAI,EAAG,MAAK;AAIhB,cAAI,OAAO,EAAE,CAAC,CAAC,EAAE,UAAU,GAAG;AAE5B,iBAAK,IAAI,GAAG,IAAI,EAAE,QAAQ,KAAK;AAC7B,kBAAI,EAAE,CAAC;AACP,kBAAI,IAAI,KAAK,KAAK,QAAQ,MAAM,UAAU,CAAC,EAAG,OAAM;AAAA,YACtD;AAGA,gBAAI,MAAM,EAAG,QAAO;AAAA,UACtB;AAAA,QACF;AAAA,MAGF,WAAW,MAAM,QAAQ,MAAM,SAAS,MAAM,QAAQ,MAAM,KAAK,MAAM,KAAK;AAC1E,eAAO;AAAA,MACT;AAEA,YAAM,MACH,iBAAiB,wBAAwB,CAAC;AAAA,IAC/C;AAQA,IAAAA,WAAU,UAAUA,WAAU,MAAM,WAAY;AAC9C,aAAO,SAAS,WAAW,EAAE;AAAA,IAC/B;AAQA,IAAAA,WAAU,UAAUA,WAAU,MAAM,WAAY;AAC9C,aAAO,SAAS,WAAW,CAAC;AAAA,IAC9B;AAaA,IAAAA,WAAU,UAAU,WAAY;AAC9B,UAAI,UAAU;AAMd,UAAI,iBAAkB,KAAK,OAAO,IAAI,UAAW,UAC9C,WAAY;AAAE,eAAO,UAAU,KAAK,OAAO,IAAI,OAAO;AAAA,MAAG,IACzD,WAAY;AAAE,gBAAS,KAAK,OAAO,IAAI,aAAa,KAAK,WACxD,KAAK,OAAO,IAAI,UAAW;AAAA,MAAI;AAEnC,aAAO,SAAU,IAAI;AACnB,YAAI,GAAG,GAAG,GAAG,GAAG,GACd,IAAI,GACJ,IAAI,CAAC,GACL,OAAO,IAAIA,WAAU,GAAG;AAE1B,YAAI,MAAM,KAAM,MAAK;AAAA,YAChB,UAAS,IAAI,GAAG,GAAG;AAExB,YAAI,SAAS,KAAK,QAAQ;AAE1B,YAAI,QAAQ;AAGV,cAAI,OAAO,iBAAiB;AAE1B,gBAAI,OAAO,gBAAgB,IAAI,YAAY,KAAK,CAAC,CAAC;AAElD,mBAAO,IAAI,KAAI;AAQb,kBAAI,EAAE,CAAC,IAAI,UAAW,EAAE,IAAI,CAAC,MAAM;AAMnC,kBAAI,KAAK,MAAM;AACb,oBAAI,OAAO,gBAAgB,IAAI,YAAY,CAAC,CAAC;AAC7C,kBAAE,CAAC,IAAI,EAAE,CAAC;AACV,kBAAE,IAAI,CAAC,IAAI,EAAE,CAAC;AAAA,cAChB,OAAO;AAIL,kBAAE,KAAK,IAAI,IAAI;AACf,qBAAK;AAAA,cACP;AAAA,YACF;AACA,gBAAI,IAAI;AAAA,UAGV,WAAW,OAAO,aAAa;AAG7B,gBAAI,OAAO,YAAY,KAAK,CAAC;AAE7B,mBAAO,IAAI,KAAI;AAMb,mBAAM,EAAE,CAAC,IAAI,MAAM,kBAAoB,EAAE,IAAI,CAAC,IAAI,gBAC9C,EAAE,IAAI,CAAC,IAAI,aAAgB,EAAE,IAAI,CAAC,IAAI,YACtC,EAAE,IAAI,CAAC,KAAK,OAAO,EAAE,IAAI,CAAC,KAAK,KAAK,EAAE,IAAI,CAAC;AAE/C,kBAAI,KAAK,MAAM;AACb,uBAAO,YAAY,CAAC,EAAE,KAAK,GAAG,CAAC;AAAA,cACjC,OAAO;AAGL,kBAAE,KAAK,IAAI,IAAI;AACf,qBAAK;AAAA,cACP;AAAA,YACF;AACA,gBAAI,IAAI;AAAA,UACV,OAAO;AACL,qBAAS;AACT,kBAAM,MACJ,iBAAiB,oBAAoB;AAAA,UACzC;AAAA,QACF;AAGA,YAAI,CAAC,QAAQ;AAEX,iBAAO,IAAI,KAAI;AACb,gBAAI,eAAe;AACnB,gBAAI,IAAI,KAAM,GAAE,GAAG,IAAI,IAAI;AAAA,UAC7B;AAAA,QACF;AAEA,YAAI,EAAE,EAAE,CAAC;AACT,cAAM;AAGN,YAAI,KAAK,IAAI;AACX,cAAI,SAAS,WAAW,EAAE;AAC1B,YAAE,CAAC,IAAI,UAAU,IAAI,CAAC,IAAI;AAAA,QAC5B;AAGA,eAAO,EAAE,CAAC,MAAM,GAAG,EAAE,IAAI,GAAG,IAAI;AAGhC,YAAI,IAAI,GAAG;AACT,cAAI,CAAC,IAAI,CAAC;AAAA,QACZ,OAAO;AAGL,eAAK,IAAI,IAAK,EAAE,CAAC,MAAM,GAAG,EAAE,OAAO,GAAG,CAAC,GAAG,KAAK,SAAS;AAGxD,eAAK,IAAI,GAAG,IAAI,EAAE,CAAC,GAAG,KAAK,IAAI,KAAK,IAAI,IAAI;AAG5C,cAAI,IAAI,SAAU,MAAK,WAAW;AAAA,QACpC;AAEA,aAAK,IAAI;AACT,aAAK,IAAI;AACT,eAAO;AAAA,MACT;AAAA,IACF,GAAG;AAQH,IAAAA,WAAU,MAAM,WAAY;AAC1B,UAAI,IAAI,GACN,OAAO,WACPE,OAAM,IAAIF,WAAU,KAAK,CAAC,CAAC;AAC7B,aAAO,IAAI,KAAK,SAAS,CAAAE,OAAMA,KAAI,KAAK,KAAK,GAAG,CAAC;AACjD,aAAOA;AAAA,IACT;AAOA,kBAAe,4BAAY;AACzB,UAAI,UAAU;AAOd,eAAS,UAAU,KAAK,QAAQ,SAAS,UAAU;AACjD,YAAI,GACF,MAAM,CAAC,CAAC,GACR,MACA,IAAI,GACJ,MAAM,IAAI;AAEZ,eAAO,IAAI,OAAM;AACf,eAAK,OAAO,IAAI,QAAQ,QAAQ,IAAI,IAAI,KAAK,OAAO;AAEpD,cAAI,CAAC,KAAK,SAAS,QAAQ,IAAI,OAAO,GAAG,CAAC;AAE1C,eAAK,IAAI,GAAG,IAAI,IAAI,QAAQ,KAAK;AAE/B,gBAAI,IAAI,CAAC,IAAI,UAAU,GAAG;AACxB,kBAAI,IAAI,IAAI,CAAC,KAAK,KAAM,KAAI,IAAI,CAAC,IAAI;AACrC,kBAAI,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,UAAU;AACjC,kBAAI,CAAC,KAAK;AAAA,YACZ;AAAA,UACF;AAAA,QACF;AAEA,eAAO,IAAI,QAAQ;AAAA,MACrB;AAKA,aAAO,SAAU,KAAK,QAAQ,SAAS,MAAM,kBAAkB;AAC7D,YAAI,UAAU,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAC/B,IAAI,IAAI,QAAQ,GAAG,GACnB,KAAK,gBACL,KAAK;AAGP,YAAI,KAAK,GAAG;AACV,cAAI;AAGJ,0BAAgB;AAChB,gBAAM,IAAI,QAAQ,KAAK,EAAE;AACzB,cAAI,IAAIF,WAAU,MAAM;AACxB,cAAI,EAAE,IAAI,IAAI,SAAS,CAAC;AACxB,0BAAgB;AAKhB,YAAE,IAAI;AAAA,YAAU,aAAa,cAAc,EAAE,CAAC,GAAG,EAAE,GAAG,GAAG;AAAA,YACxD;AAAA,YAAI;AAAA,YAAS;AAAA,UAAO;AACrB,YAAE,IAAI,EAAE,EAAE;AAAA,QACZ;AAIA,aAAK,UAAU,KAAK,QAAQ,SAAS,oBACjC,WAAW,UAAU,YACrB,WAAW,SAAS,SAAS;AAGjC,YAAI,IAAI,GAAG;AAGX,eAAO,GAAG,EAAE,CAAC,KAAK,GAAG,GAAG,IAAI,EAAE;AAG9B,YAAI,CAAC,GAAG,CAAC,EAAG,QAAO,SAAS,OAAO,CAAC;AAGpC,YAAI,IAAI,GAAG;AACT,YAAE;AAAA,QACJ,OAAO;AACL,YAAE,IAAI;AACN,YAAE,IAAI;AAGN,YAAE,IAAI;AACN,cAAI,IAAI,GAAG,GAAG,IAAI,IAAI,OAAO;AAC7B,eAAK,EAAE;AACP,cAAI,EAAE;AACN,cAAI,EAAE;AAAA,QACR;AAKA,YAAI,IAAI,KAAK;AAGb,YAAI,GAAG,CAAC;AAIR,YAAI,UAAU;AACd,YAAI,KAAK,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK;AAE/B,YAAI,KAAK,KAAK,KAAK,QAAQ,OAAO,MAAM,KAAK,OAAO,EAAE,IAAI,IAAI,IAAI,MAC1D,IAAI,KAAK,KAAK,MAAK,MAAM,KAAK,KAAK,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,KAC3D,OAAO,EAAE,IAAI,IAAI,IAAI;AAK5B,YAAI,IAAI,KAAK,CAAC,GAAG,CAAC,GAAG;AAGnB,gBAAM,IAAI,aAAa,SAAS,OAAO,CAAC,GAAG,CAAC,IAAI,SAAS,OAAO,CAAC,CAAC,IAAI,SAAS,OAAO,CAAC;AAAA,QACzF,OAAO;AAGL,aAAG,SAAS;AAGZ,cAAI,GAAG;AAGL,iBAAK,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,WAAU;AACpC,iBAAG,CAAC,IAAI;AAER,kBAAI,CAAC,GAAG;AACN,kBAAE;AACF,qBAAK,CAAC,CAAC,EAAE,OAAO,EAAE;AAAA,cACpB;AAAA,YACF;AAAA,UACF;AAGA,eAAK,IAAI,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAG;AAG9B,eAAK,IAAI,GAAG,MAAM,IAAI,KAAK,GAAG,OAAO,SAAS,OAAO,GAAG,GAAG,CAAC,EAAE;AAG9D,gBAAM,aAAa,KAAK,GAAG,SAAS,OAAO,CAAC,CAAC;AAAA,QAC/C;AAGA,eAAO;AAAA,MACT;AAAA,IACF,GAAG;AAIH,UAAO,4BAAY;AAGjB,eAAS,SAAS,GAAG,GAAG,MAAM;AAC5B,YAAI,GAAG,MAAM,KAAK,KAChB,QAAQ,GACR,IAAI,EAAE,QACN,MAAM,IAAI,WACV,MAAM,IAAI,YAAY;AAExB,aAAK,IAAI,EAAE,MAAM,GAAG,OAAM;AACxB,gBAAM,EAAE,CAAC,IAAI;AACb,gBAAM,EAAE,CAAC,IAAI,YAAY;AACzB,cAAI,MAAM,MAAM,MAAM;AACtB,iBAAO,MAAM,MAAQ,IAAI,YAAa,YAAa;AACnD,mBAAS,OAAO,OAAO,MAAM,IAAI,YAAY,KAAK,MAAM;AACxD,YAAE,CAAC,IAAI,OAAO;AAAA,QAChB;AAEA,YAAI,MAAO,KAAI,CAAC,KAAK,EAAE,OAAO,CAAC;AAE/B,eAAO;AAAA,MACT;AAEA,eAASG,SAAQ,GAAG,GAAG,IAAI,IAAI;AAC7B,YAAI,GAAG;AAEP,YAAI,MAAM,IAAI;AACZ,gBAAM,KAAK,KAAK,IAAI;AAAA,QACtB,OAAO;AAEL,eAAK,IAAI,MAAM,GAAG,IAAI,IAAI,KAAK;AAE7B,gBAAI,EAAE,CAAC,KAAK,EAAE,CAAC,GAAG;AAChB,oBAAM,EAAE,CAAC,IAAI,EAAE,CAAC,IAAI,IAAI;AACxB;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAEA,eAAO;AAAA,MACT;AAEA,eAAS,SAAS,GAAG,GAAG,IAAI,MAAM;AAChC,YAAI,IAAI;AAGR,eAAO,QAAO;AACZ,YAAE,EAAE,KAAK;AACT,cAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI;AACxB,YAAE,EAAE,IAAI,IAAI,OAAO,EAAE,EAAE,IAAI,EAAE,EAAE;AAAA,QACjC;AAGA,eAAO,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,GAAG,EAAE,OAAO,GAAG,CAAC,EAAE;AAAA,MAC/C;AAGA,aAAO,SAAU,GAAG,GAAG,IAAI,IAAI,MAAM;AACnC,YAAI,KAAK,GAAG,GAAG,MAAM,GAAG,MAAM,OAAO,GAAG,IAAI,KAAK,MAAM,MAAM,IAAI,IAAI,KACnE,IAAI,IACJ,IAAI,EAAE,KAAK,EAAE,IAAI,IAAI,IACrB,KAAK,EAAE,GACP,KAAK,EAAE;AAGT,YAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG;AAElC,iBAAO,IAAIH;AAAA;AAAA,YAGV,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,MAAM,GAAG,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,MAAM;AAAA;AAAA,cAGnD,MAAM,GAAG,CAAC,KAAK,KAAK,CAAC,KAAK,IAAI,IAAI,IAAI;AAAA;AAAA,UACzC;AAAA,QACD;AAEA,YAAI,IAAIA,WAAU,CAAC;AACnB,aAAK,EAAE,IAAI,CAAC;AACZ,YAAI,EAAE,IAAI,EAAE;AACZ,YAAI,KAAK,IAAI;AAEb,YAAI,CAAC,MAAM;AACT,iBAAO;AACP,cAAI,SAAS,EAAE,IAAI,QAAQ,IAAI,SAAS,EAAE,IAAI,QAAQ;AACtD,cAAI,IAAI,WAAW;AAAA,QACrB;AAIA,aAAK,IAAI,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,KAAK,IAAI,IAAI;AAEvC,YAAI,GAAG,CAAC,KAAK,GAAG,CAAC,KAAK,GAAI;AAE1B,YAAI,IAAI,GAAG;AACT,aAAG,KAAK,CAAC;AACT,iBAAO;AAAA,QACT,OAAO;AACL,eAAK,GAAG;AACR,eAAK,GAAG;AACR,cAAI;AACJ,eAAK;AAIL,cAAI,UAAU,QAAQ,GAAG,CAAC,IAAI,EAAE;AAIhC,cAAI,IAAI,GAAG;AACT,iBAAK,SAAS,IAAI,GAAG,IAAI;AACzB,iBAAK,SAAS,IAAI,GAAG,IAAI;AACzB,iBAAK,GAAG;AACR,iBAAK,GAAG;AAAA,UACV;AAEA,eAAK;AACL,gBAAM,GAAG,MAAM,GAAG,EAAE;AACpB,iBAAO,IAAI;AAGX,iBAAO,OAAO,IAAI,IAAI,MAAM,IAAI,EAAE;AAClC,eAAK,GAAG,MAAM;AACd,eAAK,CAAC,CAAC,EAAE,OAAO,EAAE;AAClB,gBAAM,GAAG,CAAC;AACV,cAAI,GAAG,CAAC,KAAK,OAAO,EAAG;AAIvB,aAAG;AACD,gBAAI;AAGJ,kBAAMG,SAAQ,IAAI,KAAK,IAAI,IAAI;AAG/B,gBAAI,MAAM,GAAG;AAIX,qBAAO,IAAI,CAAC;AACZ,kBAAI,MAAM,KAAM,QAAO,OAAO,QAAQ,IAAI,CAAC,KAAK;AAGhD,kBAAI,UAAU,OAAO,GAAG;AAaxB,kBAAI,IAAI,GAAG;AAGT,oBAAI,KAAK,KAAM,KAAI,OAAO;AAG1B,uBAAO,SAAS,IAAI,GAAG,IAAI;AAC3B,wBAAQ,KAAK;AACb,uBAAO,IAAI;AAMX,uBAAOA,SAAQ,MAAM,KAAK,OAAO,IAAI,KAAK,GAAG;AAC3C;AAGA,2BAAS,MAAM,KAAK,QAAQ,KAAK,IAAI,OAAO,IAAI;AAChD,0BAAQ,KAAK;AACb,wBAAM;AAAA,gBACR;AAAA,cACF,OAAO;AAML,oBAAI,KAAK,GAAG;AAGV,wBAAM,IAAI;AAAA,gBACZ;AAGA,uBAAO,GAAG,MAAM;AAChB,wBAAQ,KAAK;AAAA,cACf;AAEA,kBAAI,QAAQ,KAAM,QAAO,CAAC,CAAC,EAAE,OAAO,IAAI;AAGxC,uBAAS,KAAK,MAAM,MAAM,IAAI;AAC9B,qBAAO,IAAI;AAGX,kBAAI,OAAO,IAAI;AAMb,uBAAOA,SAAQ,IAAI,KAAK,IAAI,IAAI,IAAI,GAAG;AACrC;AAGA,2BAAS,KAAK,KAAK,OAAO,KAAK,IAAI,MAAM,IAAI;AAC7C,yBAAO,IAAI;AAAA,gBACb;AAAA,cACF;AAAA,YACF,WAAW,QAAQ,GAAG;AACpB;AACA,oBAAM,CAAC,CAAC;AAAA,YACV;AAGA,eAAG,GAAG,IAAI;AAGV,gBAAI,IAAI,CAAC,GAAG;AACV,kBAAI,MAAM,IAAI,GAAG,EAAE,KAAK;AAAA,YAC1B,OAAO;AACL,oBAAM,CAAC,GAAG,EAAE,CAAC;AACb,qBAAO;AAAA,YACT;AAAA,UACF,UAAU,OAAO,MAAM,IAAI,CAAC,KAAK,SAAS;AAE1C,iBAAO,IAAI,CAAC,KAAK;AAGjB,cAAI,CAAC,GAAG,CAAC,EAAG,IAAG,OAAO,GAAG,CAAC;AAAA,QAC5B;AAEA,YAAI,QAAQ,MAAM;AAGhB,eAAK,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,KAAK,IAAI,KAAK,IAAI,IAAI;AAE7C,UAAAF,OAAM,GAAG,MAAM,EAAE,IAAI,IAAI,IAAI,WAAW,KAAK,GAAG,IAAI,IAAI;AAAA,QAG1D,OAAO;AACL,YAAE,IAAI;AACN,YAAE,IAAI,CAAC;AAAA,QACT;AAEA,eAAO;AAAA,MACT;AAAA,IACF,GAAG;AAYH,aAAS,OAAO,GAAG,GAAG,IAAI,IAAI;AAC5B,UAAI,IAAI,GAAG,IAAI,KAAK;AAEpB,UAAI,MAAM,KAAM,MAAK;AAAA,UAChB,UAAS,IAAI,GAAG,CAAC;AAEtB,UAAI,CAAC,EAAE,EAAG,QAAO,EAAE,SAAS;AAE5B,WAAK,EAAE,EAAE,CAAC;AACV,WAAK,EAAE;AAEP,UAAI,KAAK,MAAM;AACb,cAAM,cAAc,EAAE,CAAC;AACvB,cAAM,MAAM,KAAK,MAAM,MAAM,MAAM,cAAc,MAAM,cACpD,cAAc,KAAK,EAAE,IACrB,aAAa,KAAK,IAAI,GAAG;AAAA,MAC9B,OAAO;AACL,YAAIA,OAAM,IAAID,WAAU,CAAC,GAAG,GAAG,EAAE;AAGjC,YAAI,EAAE;AAEN,cAAM,cAAc,EAAE,CAAC;AACvB,cAAM,IAAI;AAOV,YAAI,MAAM,KAAK,MAAM,MAAM,KAAK,KAAK,KAAK,aAAa;AAGrD,iBAAO,MAAM,GAAG,OAAO,KAAK,MAAM;AAClC,gBAAM,cAAc,KAAK,CAAC;AAAA,QAG5B,OAAO;AACL,eAAK,MAAM,OAAO,KAAK,IAAI;AAC3B,gBAAM,aAAa,KAAK,GAAG,GAAG;AAG9B,cAAI,IAAI,IAAI,KAAK;AACf,gBAAI,EAAE,IAAI,EAAG,MAAK,OAAO,KAAK,KAAK,OAAO,IAAI;AAAA,UAChD,OAAO;AACL,iBAAK,IAAI;AACT,gBAAI,IAAI,GAAG;AACT,kBAAI,IAAI,KAAK,IAAK,QAAO;AACzB,qBAAO,KAAK,OAAO,IAAI;AAAA,YACzB;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAEA,aAAO,EAAE,IAAI,KAAK,KAAK,MAAM,MAAM;AAAA,IACrC;AAKA,aAAS,SAAS,MAAM,GAAG;AACzB,UAAI,GAAG,GACL,IAAI,GACJ,IAAI,IAAIA,WAAU,KAAK,CAAC,CAAC;AAE3B,aAAO,IAAI,KAAK,QAAQ,KAAK;AAC3B,YAAI,IAAIA,WAAU,KAAK,CAAC,CAAC;AACzB,YAAI,CAAC,EAAE,MAAM,IAAI,QAAQ,GAAG,CAAC,OAAO,KAAK,MAAM,KAAK,EAAE,MAAM,GAAG;AAC7D,cAAI;AAAA,QACN;AAAA,MACF;AAEA,aAAO;AAAA,IACT;AAOA,aAAS,UAAU,GAAG,GAAG,GAAG;AAC1B,UAAI,IAAI,GACN,IAAI,EAAE;AAGR,aAAO,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE;AAGxB,WAAK,IAAI,EAAE,CAAC,GAAG,KAAK,IAAI,KAAK,IAAI,IAAI;AAGrC,WAAK,IAAI,IAAI,IAAI,WAAW,KAAK,SAAS;AAGxC,UAAE,IAAI,EAAE,IAAI;AAAA,MAGd,WAAW,IAAI,SAAS;AAGtB,UAAE,IAAI,CAAC,EAAE,IAAI,CAAC;AAAA,MAChB,OAAO;AACL,UAAE,IAAI;AACN,UAAE,IAAI;AAAA,MACR;AAEA,aAAO;AAAA,IACT;AAIA,mBAAgB,4BAAY;AAC1B,UAAI,aAAa,+BACf,WAAW,eACX,YAAY,eACZ,kBAAkB,sBAClB,mBAAmB;AAErB,aAAO,SAAU,GAAG,KAAK,OAAO,GAAG;AACjC,YAAI,MACF,IAAI,QAAQ,MAAM,IAAI,QAAQ,kBAAkB,EAAE;AAGpD,YAAI,gBAAgB,KAAK,CAAC,GAAG;AAC3B,YAAE,IAAI,MAAM,CAAC,IAAI,OAAO,IAAI,IAAI,KAAK;AAAA,QACvC,OAAO;AACL,cAAI,CAAC,OAAO;AAGV,gBAAI,EAAE,QAAQ,YAAY,SAAU,GAAG,IAAI,IAAI;AAC7C,sBAAQ,KAAK,GAAG,YAAY,MAAM,MAAM,KAAK,MAAM,MAAM,IAAI;AAC7D,qBAAO,CAAC,KAAK,KAAK,OAAO,KAAK;AAAA,YAChC,CAAC;AAED,gBAAI,GAAG;AACL,qBAAO;AAGP,kBAAI,EAAE,QAAQ,UAAU,IAAI,EAAE,QAAQ,WAAW,MAAM;AAAA,YACzD;AAEA,gBAAI,OAAO,EAAG,QAAO,IAAIA,WAAU,GAAG,IAAI;AAAA,UAC5C;AAIA,cAAIA,WAAU,OAAO;AACnB,kBAAM,MACH,iBAAiB,WAAW,IAAI,WAAW,IAAI,MAAM,cAAc,GAAG;AAAA,UAC3E;AAGA,YAAE,IAAI;AAAA,QACR;AAEA,UAAE,IAAI,EAAE,IAAI;AAAA,MACd;AAAA,IACF,GAAG;AAOH,aAASC,OAAM,GAAG,IAAI,IAAI,GAAG;AAC3B,UAAI,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IACrB,KAAK,EAAE,GACP,SAAS;AAGX,UAAI,IAAI;AAQN,aAAK;AAGH,eAAK,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,KAAK,IAAI,KAAK,IAAI,IAAI;AAC7C,cAAI,KAAK;AAGT,cAAI,IAAI,GAAG;AACT,iBAAK;AACL,gBAAI;AACJ,gBAAI,GAAG,KAAK,CAAC;AAGb,iBAAK,UAAU,IAAI,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE;AAAA,UAC3C,OAAO;AACL,iBAAK,UAAU,IAAI,KAAK,QAAQ;AAEhC,gBAAI,MAAM,GAAG,QAAQ;AAEnB,kBAAI,GAAG;AAGL,uBAAO,GAAG,UAAU,IAAI,GAAG,KAAK,CAAC,EAAE;AACnC,oBAAI,KAAK;AACT,oBAAI;AACJ,qBAAK;AACL,oBAAI,IAAI,WAAW;AAAA,cACrB,OAAO;AACL,sBAAM;AAAA,cACR;AAAA,YACF,OAAO;AACL,kBAAI,IAAI,GAAG,EAAE;AAGb,mBAAK,IAAI,GAAG,KAAK,IAAI,KAAK,IAAI,IAAI;AAGlC,mBAAK;AAIL,kBAAI,IAAI,WAAW;AAGnB,mBAAK,IAAI,IAAI,IAAI,UAAU,IAAI,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE;AAAA,YACvD;AAAA,UACF;AAEA,cAAI,KAAK,KAAK;AAAA;AAAA;AAAA,UAKb,GAAG,KAAK,CAAC,KAAK,SAAS,IAAI,IAAI,IAAI,IAAI,OAAO,IAAI,IAAI,CAAC;AAExD,cAAI,KAAK,KACL,MAAM,OAAO,MAAM,KAAK,OAAO,EAAE,IAAI,IAAI,IAAI,MAC9C,KAAK,KAAK,MAAM,MAAM,MAAM,KAAK,KAAK,MAAM;AAAA,WAG3C,IAAI,IAAI,IAAI,IAAI,IAAI,OAAO,IAAI,CAAC,IAAI,IAAI,GAAG,KAAK,CAAC,KAAK,KAAM,KAC7D,OAAO,EAAE,IAAI,IAAI,IAAI;AAExB,cAAI,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG;AACpB,eAAG,SAAS;AAEZ,gBAAI,GAAG;AAGL,oBAAM,EAAE,IAAI;AAGZ,iBAAG,CAAC,IAAI,QAAQ,WAAW,KAAK,YAAY,QAAQ;AACpD,gBAAE,IAAI,CAAC,MAAM;AAAA,YACf,OAAO;AAGL,iBAAG,CAAC,IAAI,EAAE,IAAI;AAAA,YAChB;AAEA,mBAAO;AAAA,UACT;AAGA,cAAI,KAAK,GAAG;AACV,eAAG,SAAS;AACZ,gBAAI;AACJ;AAAA,UACF,OAAO;AACL,eAAG,SAAS,KAAK;AACjB,gBAAI,OAAO,WAAW,CAAC;AAIvB,eAAG,EAAE,IAAI,IAAI,IAAI,UAAU,IAAI,OAAO,IAAI,CAAC,IAAI,OAAO,CAAC,CAAC,IAAI,IAAI;AAAA,UAClE;AAGA,cAAI,GAAG;AAEL,uBAAU;AAGR,kBAAI,MAAM,GAAG;AAGX,qBAAK,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,KAAK,IAAI,KAAK,IAAI,IAAI;AAC7C,oBAAI,GAAG,CAAC,KAAK;AACb,qBAAK,IAAI,GAAG,KAAK,IAAI,KAAK,IAAI,IAAI;AAGlC,oBAAI,KAAK,GAAG;AACV,oBAAE;AACF,sBAAI,GAAG,CAAC,KAAK,KAAM,IAAG,CAAC,IAAI;AAAA,gBAC7B;AAEA;AAAA,cACF,OAAO;AACL,mBAAG,EAAE,KAAK;AACV,oBAAI,GAAG,EAAE,KAAK,KAAM;AACpB,mBAAG,IAAI,IAAI;AACX,oBAAI;AAAA,cACN;AAAA,YACF;AAAA,UACF;AAGA,eAAK,IAAI,GAAG,QAAQ,GAAG,EAAE,CAAC,MAAM,GAAG,GAAG,IAAI,EAAE;AAAA,QAC9C;AAGA,YAAI,EAAE,IAAI,SAAS;AACjB,YAAE,IAAI,EAAE,IAAI;AAAA,QAGd,WAAW,EAAE,IAAI,SAAS;AACxB,YAAE,IAAI,CAAC,EAAE,IAAI,CAAC;AAAA,QAChB;AAAA,MACF;AAEA,aAAO;AAAA,IACT;AAGA,aAAS,QAAQ,GAAG;AAClB,UAAI,KACF,IAAI,EAAE;AAER,UAAI,MAAM,KAAM,QAAO,EAAE,SAAS;AAElC,YAAM,cAAc,EAAE,CAAC;AAEvB,YAAM,KAAK,cAAc,KAAK,aAC1B,cAAc,KAAK,CAAC,IACpB,aAAa,KAAK,GAAG,GAAG;AAE5B,aAAO,EAAE,IAAI,IAAI,MAAM,MAAM;AAAA,IAC/B;AASA,MAAE,gBAAgB,EAAE,MAAM,WAAY;AACpC,UAAI,IAAI,IAAID,WAAU,IAAI;AAC1B,UAAI,EAAE,IAAI,EAAG,GAAE,IAAI;AACnB,aAAO;AAAA,IACT;AAUA,MAAE,aAAa,SAAU,GAAG,GAAG;AAC7B,aAAO,QAAQ,MAAM,IAAIA,WAAU,GAAG,CAAC,CAAC;AAAA,IAC1C;AAgBA,MAAE,gBAAgB,EAAE,KAAK,SAAU,IAAI,IAAI;AACzC,UAAI,GAAG,GAAG,GACR,IAAI;AAEN,UAAI,MAAM,MAAM;AACd,iBAAS,IAAI,GAAG,GAAG;AACnB,YAAI,MAAM,KAAM,MAAK;AAAA,YAChB,UAAS,IAAI,GAAG,CAAC;AAEtB,eAAOC,OAAM,IAAID,WAAU,CAAC,GAAG,KAAK,EAAE,IAAI,GAAG,EAAE;AAAA,MACjD;AAEA,UAAI,EAAE,IAAI,EAAE,GAAI,QAAO;AACvB,YAAM,IAAI,EAAE,SAAS,KAAK,SAAS,KAAK,IAAI,QAAQ,KAAK;AAGzD,UAAI,IAAI,EAAE,CAAC,EAAG,QAAO,IAAI,MAAM,GAAG,KAAK,IAAI,IAAI;AAC/C,UAAI,IAAI,EAAG,KAAI;AAEf,aAAO;AAAA,IACT;AAuBA,MAAE,YAAY,EAAE,MAAM,SAAU,GAAG,GAAG;AACpC,aAAO,IAAI,MAAM,IAAIA,WAAU,GAAG,CAAC,GAAG,gBAAgB,aAAa;AAAA,IACrE;AAOA,MAAE,qBAAqB,EAAE,OAAO,SAAU,GAAG,GAAG;AAC9C,aAAO,IAAI,MAAM,IAAIA,WAAU,GAAG,CAAC,GAAG,GAAG,CAAC;AAAA,IAC5C;AAkBA,MAAE,kBAAkB,EAAE,MAAM,SAAU,GAAG,GAAG;AAC1C,UAAI,MAAM,UAAU,GAAG,GAAG,MAAM,QAAQ,QAAQ,QAAQ,GACtD,IAAI;AAEN,UAAI,IAAIA,WAAU,CAAC;AAGnB,UAAI,EAAE,KAAK,CAAC,EAAE,UAAU,GAAG;AACzB,cAAM,MACH,iBAAiB,8BAA8B,QAAQ,CAAC,CAAC;AAAA,MAC9D;AAEA,UAAI,KAAK,KAAM,KAAI,IAAIA,WAAU,CAAC;AAGlC,eAAS,EAAE,IAAI;AAGf,UAAI,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE,UAAU,KAAK,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG;AAIhF,YAAI,IAAIA,WAAU,KAAK,IAAI,CAAC,QAAQ,CAAC,GAAG,SAAS,EAAE,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;AACpF,eAAO,IAAI,EAAE,IAAI,CAAC,IAAI;AAAA,MACxB;AAEA,eAAS,EAAE,IAAI;AAEf,UAAI,GAAG;AAGL,YAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,EAAG,QAAO,IAAIA,WAAU,GAAG;AAElD,mBAAW,CAAC,UAAU,EAAE,UAAU,KAAK,EAAE,UAAU;AAEnD,YAAI,SAAU,KAAI,EAAE,IAAI,CAAC;AAAA,MAI3B,WAAW,EAAE,IAAI,MAAM,EAAE,IAAI,KAAK,EAAE,IAAI,OAAO,EAAE,KAAK,IAElD,EAAE,EAAE,CAAC,IAAI,KAAK,UAAU,EAAE,EAAE,CAAC,KAAK,OAElC,EAAE,EAAE,CAAC,IAAI,QAAQ,UAAU,EAAE,EAAE,CAAC,KAAK,aAAa;AAGpD,YAAI,EAAE,IAAI,KAAK,MAAM,CAAC,IAAI,KAAK;AAG/B,YAAI,EAAE,IAAI,GAAI,KAAI,IAAI;AAGtB,eAAO,IAAIA,WAAU,SAAS,IAAI,IAAI,CAAC;AAAA,MAEzC,WAAW,eAAe;AAKxB,YAAI,SAAS,gBAAgB,WAAW,CAAC;AAAA,MAC3C;AAEA,UAAI,QAAQ;AACV,eAAO,IAAIA,WAAU,GAAG;AACxB,YAAI,OAAQ,GAAE,IAAI;AAClB,iBAAS,MAAM,CAAC;AAAA,MAClB,OAAO;AACL,YAAI,KAAK,IAAI,CAAC,QAAQ,CAAC,CAAC;AACxB,iBAAS,IAAI;AAAA,MACf;AAEA,UAAI,IAAIA,WAAU,GAAG;AAGrB,iBAAU;AAER,YAAI,QAAQ;AACV,cAAI,EAAE,MAAM,CAAC;AACb,cAAI,CAAC,EAAE,EAAG;AAEV,cAAI,GAAG;AACL,gBAAI,EAAE,EAAE,SAAS,EAAG,GAAE,EAAE,SAAS;AAAA,UACnC,WAAW,UAAU;AACnB,gBAAI,EAAE,IAAI,CAAC;AAAA,UACb;AAAA,QACF;AAEA,YAAI,GAAG;AACL,cAAI,UAAU,IAAI,CAAC;AACnB,cAAI,MAAM,EAAG;AACb,mBAAS,IAAI;AAAA,QACf,OAAO;AACL,cAAI,EAAE,MAAM,IAAI;AAChB,UAAAC,OAAM,GAAG,EAAE,IAAI,GAAG,CAAC;AAEnB,cAAI,EAAE,IAAI,IAAI;AACZ,qBAAS,MAAM,CAAC;AAAA,UAClB,OAAO;AACL,gBAAI,CAAC,QAAQ,CAAC;AACd,gBAAI,MAAM,EAAG;AACb,qBAAS,IAAI;AAAA,UACf;AAAA,QACF;AAEA,YAAI,EAAE,MAAM,CAAC;AAEb,YAAI,GAAG;AACL,cAAI,EAAE,KAAK,EAAE,EAAE,SAAS,EAAG,GAAE,EAAE,SAAS;AAAA,QAC1C,WAAW,UAAU;AACnB,cAAI,EAAE,IAAI,CAAC;AAAA,QACb;AAAA,MACF;AAEA,UAAI,SAAU,QAAO;AACrB,UAAI,OAAQ,KAAI,IAAI,IAAI,CAAC;AAEzB,aAAO,IAAI,EAAE,IAAI,CAAC,IAAI,IAAIA,OAAM,GAAG,eAAe,eAAe,IAAI,IAAI;AAAA,IAC3E;AAWA,MAAE,eAAe,SAAU,IAAI;AAC7B,UAAI,IAAI,IAAID,WAAU,IAAI;AAC1B,UAAI,MAAM,KAAM,MAAK;AAAA,UAChB,UAAS,IAAI,GAAG,CAAC;AACtB,aAAOC,OAAM,GAAG,EAAE,IAAI,GAAG,EAAE;AAAA,IAC7B;AAOA,MAAE,YAAY,EAAE,KAAK,SAAU,GAAG,GAAG;AACnC,aAAO,QAAQ,MAAM,IAAID,WAAU,GAAG,CAAC,CAAC,MAAM;AAAA,IAChD;AAMA,MAAE,WAAW,WAAY;AACvB,aAAO,CAAC,CAAC,KAAK;AAAA,IAChB;AAOA,MAAE,gBAAgB,EAAE,KAAK,SAAU,GAAG,GAAG;AACvC,aAAO,QAAQ,MAAM,IAAIA,WAAU,GAAG,CAAC,CAAC,IAAI;AAAA,IAC9C;AAOA,MAAE,yBAAyB,EAAE,MAAM,SAAU,GAAG,GAAG;AACjD,cAAQ,IAAI,QAAQ,MAAM,IAAIA,WAAU,GAAG,CAAC,CAAC,OAAO,KAAK,MAAM;AAAA,IAEjE;AAMA,MAAE,YAAY,WAAY;AACxB,aAAO,CAAC,CAAC,KAAK,KAAK,SAAS,KAAK,IAAI,QAAQ,IAAI,KAAK,EAAE,SAAS;AAAA,IACnE;AAOA,MAAE,aAAa,EAAE,KAAK,SAAU,GAAG,GAAG;AACpC,aAAO,QAAQ,MAAM,IAAIA,WAAU,GAAG,CAAC,CAAC,IAAI;AAAA,IAC9C;AAOA,MAAE,sBAAsB,EAAE,MAAM,SAAU,GAAG,GAAG;AAC9C,cAAQ,IAAI,QAAQ,MAAM,IAAIA,WAAU,GAAG,CAAC,CAAC,OAAO,MAAM,MAAM;AAAA,IAClE;AAMA,MAAE,QAAQ,WAAY;AACpB,aAAO,CAAC,KAAK;AAAA,IACf;AAMA,MAAE,aAAa,WAAY;AACzB,aAAO,KAAK,IAAI;AAAA,IAClB;AAMA,MAAE,aAAa,WAAY;AACzB,aAAO,KAAK,IAAI;AAAA,IAClB;AAMA,MAAE,SAAS,WAAY;AACrB,aAAO,CAAC,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC,KAAK;AAAA,IAClC;AAuBA,MAAE,QAAQ,SAAU,GAAG,GAAG;AACxB,UAAI,GAAG,GAAG,GAAG,MACX,IAAI,MACJ,IAAI,EAAE;AAER,UAAI,IAAIA,WAAU,GAAG,CAAC;AACtB,UAAI,EAAE;AAGN,UAAI,CAAC,KAAK,CAAC,EAAG,QAAO,IAAIA,WAAU,GAAG;AAGtC,UAAI,KAAK,GAAG;AACV,UAAE,IAAI,CAAC;AACP,eAAO,EAAE,KAAK,CAAC;AAAA,MACjB;AAEA,UAAI,KAAK,EAAE,IAAI,UACb,KAAK,EAAE,IAAI,UACX,KAAK,EAAE,GACP,KAAK,EAAE;AAET,UAAI,CAAC,MAAM,CAAC,IAAI;AAGd,YAAI,CAAC,MAAM,CAAC,GAAI,QAAO,MAAM,EAAE,IAAI,CAAC,GAAG,KAAK,IAAIA,WAAU,KAAK,IAAI,GAAG;AAGtE,YAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG;AAGpB,iBAAO,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,KAAK,IAAIA,WAAU,GAAG,CAAC,IAAI;AAAA;AAAA,YAGpD,iBAAiB,IAAI,KAAK;AAAA,WAAC;AAAA,QAC9B;AAAA,MACF;AAEA,WAAK,SAAS,EAAE;AAChB,WAAK,SAAS,EAAE;AAChB,WAAK,GAAG,MAAM;AAGd,UAAI,IAAI,KAAK,IAAI;AAEf,YAAI,OAAO,IAAI,GAAG;AAChB,cAAI,CAAC;AACL,cAAI;AAAA,QACN,OAAO;AACL,eAAK;AACL,cAAI;AAAA,QACN;AAEA,UAAE,QAAQ;AAGV,aAAK,IAAI,GAAG,KAAK,EAAE,KAAK,CAAC,EAAE;AAC3B,UAAE,QAAQ;AAAA,MACZ,OAAO;AAGL,aAAK,QAAQ,IAAI,GAAG,WAAW,IAAI,GAAG,WAAW,IAAI;AAErD,aAAK,IAAI,IAAI,GAAG,IAAI,GAAG,KAAK;AAE1B,cAAI,GAAG,CAAC,KAAK,GAAG,CAAC,GAAG;AAClB,mBAAO,GAAG,CAAC,IAAI,GAAG,CAAC;AACnB;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAGA,UAAI,MAAM;AACR,YAAI;AACJ,aAAK;AACL,aAAK;AACL,UAAE,IAAI,CAAC,EAAE;AAAA,MACX;AAEA,WAAK,IAAI,GAAG,WAAW,IAAI,GAAG;AAI9B,UAAI,IAAI,EAAG,QAAO,KAAK,GAAG,GAAG,IAAI,EAAE;AACnC,UAAI,OAAO;AAGX,aAAO,IAAI,KAAI;AAEb,YAAI,GAAG,EAAE,CAAC,IAAI,GAAG,CAAC,GAAG;AACnB,eAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,EAAE;AACrC,YAAE,GAAG,CAAC;AACN,aAAG,CAAC,KAAK;AAAA,QACX;AAEA,WAAG,CAAC,KAAK,GAAG,CAAC;AAAA,MACf;AAGA,aAAO,GAAG,CAAC,KAAK,GAAG,GAAG,OAAO,GAAG,CAAC,GAAG,EAAE,GAAG;AAGzC,UAAI,CAAC,GAAG,CAAC,GAAG;AAIV,UAAE,IAAI,iBAAiB,IAAI,KAAK;AAChC,UAAE,IAAI,CAAC,EAAE,IAAI,CAAC;AACd,eAAO;AAAA,MACT;AAIA,aAAO,UAAU,GAAG,IAAI,EAAE;AAAA,IAC5B;AAwBA,MAAE,SAAS,EAAE,MAAM,SAAU,GAAG,GAAG;AACjC,UAAI,GAAG,GACL,IAAI;AAEN,UAAI,IAAIA,WAAU,GAAG,CAAC;AAGtB,UAAI,CAAC,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG;AAClC,eAAO,IAAIA,WAAU,GAAG;AAAA,MAG1B,WAAW,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG;AACjC,eAAO,IAAIA,WAAU,CAAC;AAAA,MACxB;AAEA,UAAI,eAAe,GAAG;AAIpB,YAAI,EAAE;AACN,UAAE,IAAI;AACN,YAAI,IAAI,GAAG,GAAG,GAAG,CAAC;AAClB,UAAE,IAAI;AACN,UAAE,KAAK;AAAA,MACT,OAAO;AACL,YAAI,IAAI,GAAG,GAAG,GAAG,WAAW;AAAA,MAC9B;AAEA,UAAI,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAGtB,UAAI,CAAC,EAAE,EAAE,CAAC,KAAK,eAAe,EAAG,GAAE,IAAI,EAAE;AAEzC,aAAO;AAAA,IACT;AAuBA,MAAE,eAAe,EAAE,QAAQ,SAAU,GAAG,GAAG;AACzC,UAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAClD,MAAM,UACN,IAAI,MACJ,KAAK,EAAE,GACP,MAAM,IAAI,IAAIA,WAAU,GAAG,CAAC,GAAG;AAGjC,UAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG;AAGlC,YAAI,CAAC,EAAE,KAAK,CAAC,EAAE,KAAK,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI;AAC9D,YAAE,IAAI,EAAE,IAAI,EAAE,IAAI;AAAA,QACpB,OAAO;AACL,YAAE,KAAK,EAAE;AAGT,cAAI,CAAC,MAAM,CAAC,IAAI;AACd,cAAE,IAAI,EAAE,IAAI;AAAA,UAGd,OAAO;AACL,cAAE,IAAI,CAAC,CAAC;AACR,cAAE,IAAI;AAAA,UACR;AAAA,QACF;AAEA,eAAO;AAAA,MACT;AAEA,UAAI,SAAS,EAAE,IAAI,QAAQ,IAAI,SAAS,EAAE,IAAI,QAAQ;AACtD,QAAE,KAAK,EAAE;AACT,YAAM,GAAG;AACT,YAAM,GAAG;AAGT,UAAI,MAAM,KAAK;AACb,aAAK;AACL,aAAK;AACL,aAAK;AACL,YAAI;AACJ,cAAM;AACN,cAAM;AAAA,MACR;AAGA,WAAK,IAAI,MAAM,KAAK,KAAK,CAAC,GAAG,KAAK,GAAG,KAAK,CAAC,EAAE;AAE7C,aAAO;AACP,iBAAW;AAEX,WAAK,IAAI,KAAK,EAAE,KAAK,KAAI;AACvB,YAAI;AACJ,cAAM,GAAG,CAAC,IAAI;AACd,cAAM,GAAG,CAAC,IAAI,WAAW;AAEzB,aAAK,IAAI,KAAK,IAAI,IAAI,GAAG,IAAI,KAAI;AAC/B,gBAAM,GAAG,EAAE,CAAC,IAAI;AAChB,gBAAM,GAAG,CAAC,IAAI,WAAW;AACzB,cAAI,MAAM,MAAM,MAAM;AACtB,gBAAM,MAAM,MAAQ,IAAI,WAAY,WAAY,GAAG,CAAC,IAAI;AACxD,eAAK,MAAM,OAAO,MAAM,IAAI,WAAW,KAAK,MAAM;AAClD,aAAG,GAAG,IAAI,MAAM;AAAA,QAClB;AAEA,WAAG,CAAC,IAAI;AAAA,MACV;AAEA,UAAI,GAAG;AACL,UAAE;AAAA,MACJ,OAAO;AACL,WAAG,OAAO,GAAG,CAAC;AAAA,MAChB;AAEA,aAAO,UAAU,GAAG,IAAI,CAAC;AAAA,IAC3B;AAOA,MAAE,UAAU,WAAY;AACtB,UAAI,IAAI,IAAIA,WAAU,IAAI;AAC1B,QAAE,IAAI,CAAC,EAAE,KAAK;AACd,aAAO;AAAA,IACT;AAuBA,MAAE,OAAO,SAAU,GAAG,GAAG;AACvB,UAAI,GACF,IAAI,MACJ,IAAI,EAAE;AAER,UAAI,IAAIA,WAAU,GAAG,CAAC;AACtB,UAAI,EAAE;AAGN,UAAI,CAAC,KAAK,CAAC,EAAG,QAAO,IAAIA,WAAU,GAAG;AAGrC,UAAI,KAAK,GAAG;AACX,UAAE,IAAI,CAAC;AACP,eAAO,EAAE,MAAM,CAAC;AAAA,MAClB;AAEA,UAAI,KAAK,EAAE,IAAI,UACb,KAAK,EAAE,IAAI,UACX,KAAK,EAAE,GACP,KAAK,EAAE;AAET,UAAI,CAAC,MAAM,CAAC,IAAI;AAGd,YAAI,CAAC,MAAM,CAAC,GAAI,QAAO,IAAIA,WAAU,IAAI,CAAC;AAI1C,YAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,EAAG,QAAO,GAAG,CAAC,IAAI,IAAI,IAAIA,WAAU,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC;AAAA,MAC1E;AAEA,WAAK,SAAS,EAAE;AAChB,WAAK,SAAS,EAAE;AAChB,WAAK,GAAG,MAAM;AAGd,UAAI,IAAI,KAAK,IAAI;AACf,YAAI,IAAI,GAAG;AACT,eAAK;AACL,cAAI;AAAA,QACN,OAAO;AACL,cAAI,CAAC;AACL,cAAI;AAAA,QACN;AAEA,UAAE,QAAQ;AACV,eAAO,KAAK,EAAE,KAAK,CAAC,EAAE;AACtB,UAAE,QAAQ;AAAA,MACZ;AAEA,UAAI,GAAG;AACP,UAAI,GAAG;AAGP,UAAI,IAAI,IAAI,GAAG;AACb,YAAI;AACJ,aAAK;AACL,aAAK;AACL,YAAI;AAAA,MACN;AAGA,WAAK,IAAI,GAAG,KAAI;AACd,aAAK,GAAG,EAAE,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO;AAC3C,WAAG,CAAC,IAAI,SAAS,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI;AAAA,MACvC;AAEA,UAAI,GAAG;AACL,aAAK,CAAC,CAAC,EAAE,OAAO,EAAE;AAClB,UAAE;AAAA,MACJ;AAIA,aAAO,UAAU,GAAG,IAAI,EAAE;AAAA,IAC5B;AAkBA,MAAE,YAAY,EAAE,KAAK,SAAU,IAAI,IAAI;AACrC,UAAI,GAAG,GAAG,GACR,IAAI;AAEN,UAAI,MAAM,QAAQ,OAAO,CAAC,CAAC,IAAI;AAC7B,iBAAS,IAAI,GAAG,GAAG;AACnB,YAAI,MAAM,KAAM,MAAK;AAAA,YAChB,UAAS,IAAI,GAAG,CAAC;AAEtB,eAAOC,OAAM,IAAID,WAAU,CAAC,GAAG,IAAI,EAAE;AAAA,MACvC;AAEA,UAAI,EAAE,IAAI,EAAE,GAAI,QAAO;AACvB,UAAI,EAAE,SAAS;AACf,UAAI,IAAI,WAAW;AAEnB,UAAI,IAAI,EAAE,CAAC,GAAG;AAGZ,eAAO,IAAI,MAAM,GAAG,KAAK,IAAI,IAAI;AAGjC,aAAK,IAAI,EAAE,CAAC,GAAG,KAAK,IAAI,KAAK,IAAI,IAAI;AAAA,MACvC;AAEA,UAAI,MAAM,EAAE,IAAI,IAAI,EAAG,KAAI,EAAE,IAAI;AAEjC,aAAO;AAAA,IACT;AAWA,MAAE,YAAY,SAAU,GAAG;AACzB,eAAS,GAAG,CAAC,kBAAkB,gBAAgB;AAC/C,aAAO,KAAK,MAAM,OAAO,CAAC;AAAA,IAC5B;AAcA,MAAE,aAAa,EAAE,OAAO,WAAY;AAClC,UAAI,GAAG,GAAG,GAAG,KAAK,GAChB,IAAI,MACJ,IAAI,EAAE,GACN,IAAI,EAAE,GACN,IAAI,EAAE,GACN,KAAK,iBAAiB,GACtB,OAAO,IAAIA,WAAU,KAAK;AAG5B,UAAI,MAAM,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG;AAC1B,eAAO,IAAIA,WAAU,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC;AAAA,MACxE;AAGA,UAAI,KAAK,KAAK,CAAC,QAAQ,CAAC,CAAC;AAIzB,UAAI,KAAK,KAAK,KAAK,IAAI,GAAG;AACxB,YAAI,cAAc,CAAC;AACnB,aAAK,EAAE,SAAS,KAAK,KAAK,EAAG,MAAK;AAClC,YAAI,KAAK,KAAK,CAAC,CAAC;AAChB,YAAI,UAAU,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,IAAI;AAE1C,YAAI,KAAK,IAAI,GAAG;AACd,cAAI,OAAO;AAAA,QACb,OAAO;AACL,cAAI,EAAE,cAAc;AACpB,cAAI,EAAE,MAAM,GAAG,EAAE,QAAQ,GAAG,IAAI,CAAC,IAAI;AAAA,QACvC;AAEA,YAAI,IAAIA,WAAU,CAAC;AAAA,MACrB,OAAO;AACL,YAAI,IAAIA,WAAU,IAAI,EAAE;AAAA,MAC1B;AAMA,UAAI,EAAE,EAAE,CAAC,GAAG;AACV,YAAI,EAAE;AACN,YAAI,IAAI;AACR,YAAI,IAAI,EAAG,KAAI;AAGf,mBAAU;AACR,cAAI;AACJ,cAAI,KAAK,MAAM,EAAE,KAAK,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;AAEvC,cAAI,cAAc,EAAE,CAAC,EAAE,MAAM,GAAG,CAAC,OAAO,IAAI,cAAc,EAAE,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG;AAK3E,gBAAI,EAAE,IAAI,EAAG,GAAE;AACf,gBAAI,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;AAKxB,gBAAI,KAAK,UAAU,CAAC,OAAO,KAAK,QAAQ;AAItC,kBAAI,CAAC,KAAK;AACR,gBAAAC,OAAM,GAAG,EAAE,IAAI,iBAAiB,GAAG,CAAC;AAEpC,oBAAI,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC,GAAG;AACpB,sBAAI;AACJ;AAAA,gBACF;AAAA,cACF;AAEA,oBAAM;AACN,mBAAK;AACL,oBAAM;AAAA,YACR,OAAO;AAIL,kBAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,KAAK;AAG7C,gBAAAA,OAAM,GAAG,EAAE,IAAI,iBAAiB,GAAG,CAAC;AACpC,oBAAI,CAAC,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC;AAAA,cACtB;AAEA;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAEA,aAAOA,OAAM,GAAG,EAAE,IAAI,iBAAiB,GAAG,eAAe,CAAC;AAAA,IAC5D;AAYA,MAAE,gBAAgB,SAAU,IAAI,IAAI;AAClC,UAAI,MAAM,MAAM;AACd,iBAAS,IAAI,GAAG,GAAG;AACnB;AAAA,MACF;AACA,aAAO,OAAO,MAAM,IAAI,IAAI,CAAC;AAAA,IAC/B;AAeA,MAAE,UAAU,SAAU,IAAI,IAAI;AAC5B,UAAI,MAAM,MAAM;AACd,iBAAS,IAAI,GAAG,GAAG;AACnB,aAAK,KAAK,KAAK,IAAI;AAAA,MACrB;AACA,aAAO,OAAO,MAAM,IAAI,EAAE;AAAA,IAC5B;AA4BA,MAAE,WAAW,SAAU,IAAI,IAAIG,SAAQ;AACrC,UAAI,KACF,IAAI;AAEN,UAAIA,WAAU,MAAM;AAClB,YAAI,MAAM,QAAQ,MAAM,OAAO,MAAM,UAAU;AAC7C,UAAAA,UAAS;AACT,eAAK;AAAA,QACP,WAAW,MAAM,OAAO,MAAM,UAAU;AACtC,UAAAA,UAAS;AACT,eAAK,KAAK;AAAA,QACZ,OAAO;AACL,UAAAA,UAAS;AAAA,QACX;AAAA,MACF,WAAW,OAAOA,WAAU,UAAU;AACpC,cAAM,MACH,iBAAiB,6BAA6BA,OAAM;AAAA,MACzD;AAEA,YAAM,EAAE,QAAQ,IAAI,EAAE;AAEtB,UAAI,EAAE,GAAG;AACP,YAAI,GACF,MAAM,IAAI,MAAM,GAAG,GACnB,KAAK,CAACA,QAAO,WACb,KAAK,CAACA,QAAO,oBACb,iBAAiBA,QAAO,kBAAkB,IAC1C,UAAU,IAAI,CAAC,GACf,eAAe,IAAI,CAAC,GACpB,QAAQ,EAAE,IAAI,GACd,YAAY,QAAQ,QAAQ,MAAM,CAAC,IAAI,SACvC,MAAM,UAAU;AAElB,YAAI,IAAI;AACN,cAAI;AACJ,eAAK;AACL,eAAK;AACL,iBAAO;AAAA,QACT;AAEA,YAAI,KAAK,KAAK,MAAM,GAAG;AACrB,cAAI,MAAM,MAAM;AAChB,oBAAU,UAAU,OAAO,GAAG,CAAC;AAC/B,iBAAO,IAAI,KAAK,KAAK,GAAI,YAAW,iBAAiB,UAAU,OAAO,GAAG,EAAE;AAC3E,cAAI,KAAK,EAAG,YAAW,iBAAiB,UAAU,MAAM,CAAC;AACzD,cAAI,MAAO,WAAU,MAAM;AAAA,QAC7B;AAEA,cAAM,eACH,WAAWA,QAAO,oBAAoB,QAAQ,KAAK,CAACA,QAAO,qBAC1D,aAAa;AAAA,UAAQ,IAAI,OAAO,SAAS,KAAK,QAAQ,GAAG;AAAA,UAC1D,QAAQA,QAAO,0BAA0B;AAAA,QAAG,IAC3C,gBACD;AAAA,MACL;AAEA,cAAQA,QAAO,UAAU,MAAM,OAAOA,QAAO,UAAU;AAAA,IACzD;AAcA,MAAE,aAAa,SAAU,IAAI;AAC3B,UAAI,GAAG,IAAI,IAAI,IAAI,GAAG,KAAK,GAAG,IAAI,IAAI,GAAG,GAAG,GAC1C,IAAI,MACJ,KAAK,EAAE;AAET,UAAI,MAAM,MAAM;AACd,YAAI,IAAIJ,WAAU,EAAE;AAGpB,YAAI,CAAC,EAAE,UAAU,MAAM,EAAE,KAAK,EAAE,MAAM,MAAM,EAAE,GAAG,GAAG,GAAG;AACrD,gBAAM,MACH,iBAAiB,eACf,EAAE,UAAU,IAAI,mBAAmB,sBAAsB,QAAQ,CAAC,CAAC;AAAA,QAC1E;AAAA,MACF;AAEA,UAAI,CAAC,GAAI,QAAO,IAAIA,WAAU,CAAC;AAE/B,UAAI,IAAIA,WAAU,GAAG;AACrB,WAAK,KAAK,IAAIA,WAAU,GAAG;AAC3B,WAAK,KAAK,IAAIA,WAAU,GAAG;AAC3B,UAAI,cAAc,EAAE;AAIpB,UAAI,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI;AAC3B,QAAE,EAAE,CAAC,IAAI,UAAU,MAAM,IAAI,YAAY,IAAI,WAAW,MAAM,GAAG;AACjE,WAAK,CAAC,MAAM,EAAE,WAAW,CAAC,IAAI,IAAK,IAAI,IAAI,IAAI,KAAM;AAErD,YAAM;AACN,gBAAU,IAAI;AACd,UAAI,IAAIA,WAAU,CAAC;AAGnB,SAAG,EAAE,CAAC,IAAI;AAEV,iBAAW;AACT,YAAI,IAAI,GAAG,GAAG,GAAG,CAAC;AAClB,aAAK,GAAG,KAAK,EAAE,MAAM,EAAE,CAAC;AACxB,YAAI,GAAG,WAAW,EAAE,KAAK,EAAG;AAC5B,aAAK;AACL,aAAK;AACL,aAAK,GAAG,KAAK,EAAE,MAAM,KAAK,EAAE,CAAC;AAC7B,aAAK;AACL,YAAI,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC,CAAC;AAC3B,YAAI;AAAA,MACN;AAEA,WAAK,IAAI,GAAG,MAAM,EAAE,GAAG,IAAI,GAAG,CAAC;AAC/B,WAAK,GAAG,KAAK,GAAG,MAAM,EAAE,CAAC;AACzB,WAAK,GAAG,KAAK,GAAG,MAAM,EAAE,CAAC;AACzB,SAAG,IAAI,GAAG,IAAI,EAAE;AAChB,UAAI,IAAI;AAGR,UAAI,IAAI,IAAI,IAAI,GAAG,aAAa,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE;AAAA,QAC7C,IAAI,IAAI,IAAI,GAAG,aAAa,EAAE,MAAM,CAAC,EAAE,IAAI;AAAA,MAAC,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;AAE1E,gBAAU;AAEV,aAAO;AAAA,IACT;AAMA,MAAE,WAAW,WAAY;AACvB,aAAO,CAAC,QAAQ,IAAI;AAAA,IACtB;AAcA,MAAE,cAAc,SAAU,IAAI,IAAI;AAChC,UAAI,MAAM,KAAM,UAAS,IAAI,GAAG,GAAG;AACnC,aAAO,OAAO,MAAM,IAAI,IAAI,CAAC;AAAA,IAC/B;AAcA,MAAE,WAAW,SAAU,GAAG;AACxB,UAAI,KACF,IAAI,MACJ,IAAI,EAAE,GACN,IAAI,EAAE;AAGR,UAAI,MAAM,MAAM;AACd,YAAI,GAAG;AACL,gBAAM;AACN,cAAI,IAAI,EAAG,OAAM,MAAM;AAAA,QACzB,OAAO;AACL,gBAAM;AAAA,QACR;AAAA,MACF,OAAO;AACL,YAAI,KAAK,MAAM;AACb,gBAAM,KAAK,cAAc,KAAK,aAC3B,cAAc,cAAc,EAAE,CAAC,GAAG,CAAC,IACnC,aAAa,cAAc,EAAE,CAAC,GAAG,GAAG,GAAG;AAAA,QAC5C,WAAW,MAAM,MAAM,gCAAgC;AACrD,cAAIC,OAAM,IAAID,WAAU,CAAC,GAAG,iBAAiB,IAAI,GAAG,aAAa;AACjE,gBAAM,aAAa,cAAc,EAAE,CAAC,GAAG,EAAE,GAAG,GAAG;AAAA,QACjD,OAAO;AACL,mBAAS,GAAG,GAAG,SAAS,QAAQ,MAAM;AACtC,gBAAM,YAAY,aAAa,cAAc,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI;AAAA,QAC5E;AAEA,YAAI,IAAI,KAAK,EAAE,EAAE,CAAC,EAAG,OAAM,MAAM;AAAA,MACnC;AAEA,aAAO;AAAA,IACT;AAOA,MAAE,UAAU,EAAE,SAAS,WAAY;AACjC,aAAO,QAAQ,IAAI;AAAA,IACrB;AAGA,MAAE,eAAe;AAEjB,MAAE,OAAO,WAAW,IAAI;AAGxB,MAAE,uBAAO,IAAI,4BAA4B,CAAC,IAAI,EAAE;AAEhD,QAAI,gBAAgB,KAAM,CAAAA,WAAU,IAAI,YAAY;AAEpD,WAAOA;AAAA,EACT;AASA,WAAS,SAAS,GAAG;AACnB,QAAI,IAAI,IAAI;AACZ,WAAO,IAAI,KAAK,MAAM,IAAI,IAAI,IAAI;AAAA,EACpC;AAIA,WAAS,cAAc,GAAG;AACxB,QAAI,GAAG,GACL,IAAI,GACJ,IAAI,EAAE,QACN,IAAI,EAAE,CAAC,IAAI;AAEb,WAAO,IAAI,KAAI;AACb,UAAI,EAAE,GAAG,IAAI;AACb,UAAI,WAAW,EAAE;AACjB,aAAO,KAAK,IAAI,MAAM,EAAE;AACxB,WAAK;AAAA,IACP;AAGA,SAAK,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,MAAM,KAAI;AAE7C,WAAO,EAAE,MAAM,GAAG,IAAI,KAAK,CAAC;AAAA,EAC9B;AAIA,WAAS,QAAQ,GAAG,GAAG;AACrB,QAAI,GAAG,GACL,KAAK,EAAE,GACP,KAAK,EAAE,GACP,IAAI,EAAE,GACN,IAAI,EAAE,GACN,IAAI,EAAE,GACN,IAAI,EAAE;AAGR,QAAI,CAAC,KAAK,CAAC,EAAG,QAAO;AAErB,QAAI,MAAM,CAAC,GAAG,CAAC;AACf,QAAI,MAAM,CAAC,GAAG,CAAC;AAGf,QAAI,KAAK,EAAG,QAAO,IAAI,IAAI,IAAI,CAAC,IAAI;AAGpC,QAAI,KAAK,EAAG,QAAO;AAEnB,QAAI,IAAI;AACR,QAAI,KAAK;AAGT,QAAI,CAAC,MAAM,CAAC,GAAI,QAAO,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI;AAG7C,QAAI,CAAC,EAAG,QAAO,IAAI,IAAI,IAAI,IAAI;AAE/B,SAAK,IAAI,GAAG,WAAW,IAAI,GAAG,UAAU,IAAI;AAG5C,SAAK,IAAI,GAAG,IAAI,GAAG,IAAK,KAAI,GAAG,CAAC,KAAK,GAAG,CAAC,EAAG,QAAO,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,IAAI,IAAI;AAG3E,WAAO,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI;AAAA,EACtC;AAMA,WAAS,SAAS,GAAG,KAAK,KAAK,MAAM;AACnC,QAAI,IAAI,OAAO,IAAI,OAAO,MAAM,UAAU,CAAC,GAAG;AAC5C,YAAM,MACJ,kBAAkB,QAAQ,eAAe,OAAO,KAAK,WAClD,IAAI,OAAO,IAAI,MAAM,oBAAoB,sBACzC,+BAA+B,OAAO,CAAC,CAAC;AAAA,IAC/C;AAAA,EACF;AAIA,WAAS,MAAM,GAAG;AAChB,QAAI,IAAI,EAAE,EAAE,SAAS;AACrB,WAAO,SAAS,EAAE,IAAI,QAAQ,KAAK,KAAK,EAAE,EAAE,CAAC,IAAI,KAAK;AAAA,EACxD;AAGA,WAAS,cAAc,KAAK,GAAG;AAC7B,YAAQ,IAAI,SAAS,IAAI,IAAI,OAAO,CAAC,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,QAC5D,IAAI,IAAI,MAAM,QAAQ;AAAA,EAC1B;AAGA,WAAS,aAAa,KAAK,GAAG,GAAG;AAC/B,QAAI,KAAK;AAGT,QAAI,IAAI,GAAG;AAGT,WAAK,KAAK,IAAI,KAAK,EAAE,GAAG,MAAM,EAAE;AAChC,YAAM,KAAK;AAAA,IAGb,OAAO;AACL,YAAM,IAAI;AAGV,UAAI,EAAE,IAAI,KAAK;AACb,aAAK,KAAK,GAAG,KAAK,KAAK,EAAE,GAAG,MAAM,EAAE;AACpC,eAAO;AAAA,MACT,WAAW,IAAI,KAAK;AAClB,cAAM,IAAI,MAAM,GAAG,CAAC,IAAI,MAAM,IAAI,MAAM,CAAC;AAAA,MAC3C;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAMO,MAAI,YAAY,MAAM;AAE7B,MAAO,oBAAQ;;;AC10Ff,WAAS,IAAI,GAAuB;AAClC,WAAO,aAAa,oBAAY,IAAI,IAAI,kBAAU,CAAC;AAAA,EACrD;AASO,WAAS,YAAYK,OAAiB;AAC3C,QAAI,MAAM,IAAIA,MAAK,CAAC,CAAC;AACrB,eAAW,KAAKA,MAAK,MAAM,CAAC,EAAG,OAAM,IAAI,KAAK,IAAI,CAAC,CAAC;AACpD,WAAO,IAAI,SAAS;AAAA,EACtB;AASO,WAAS,aAAaA,OAAiB;AAC5C,QAAI,MAAM,IAAIA,MAAK,CAAC,CAAC;AACrB,eAAW,KAAKA,MAAK,MAAM,CAAC,EAAG,OAAM,IAAI,MAAM,IAAI,CAAC,CAAC;AACrD,WAAO,IAAI,SAAS;AAAA,EACtB;AASO,WAAS,aAAaA,OAAiB;AAC5C,QAAI,MAAM,IAAIA,MAAK,CAAC,CAAC;AACrB,eAAW,KAAKA,MAAK,MAAM,CAAC,EAAG,OAAM,IAAI,MAAM,IAAI,CAAC,CAAC;AACrD,WAAO,IAAI,SAAS;AAAA,EACtB;AASO,WAAS,WAAWA,OAAiB;AAC1C,QAAI,MAAM,IAAIA,MAAK,CAAC,CAAC;AACrB,eAAW,KAAKA,MAAK,MAAM,CAAC,EAAG,OAAM,IAAI,IAAI,IAAI,CAAC,CAAC;AACnD,WAAO,IAAI,SAAS;AAAA,EACtB;AAWO,WAAS,QAAQ,GAAY,GAAY;AAC9C,WAAO,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,CAAC,EAAE,SAAS;AAAA,EACrC;AAcO,WAAS,UACd,GACA,KAAK,GACL,KAA6B,kBAAU,eACvC;AACA,WAAO,IAAI,CAAC,EAAE,cAAc,IAAI,EAAE,EAAE,SAAS;AAAA,EAC/C;AAeO,WAAS,UACd,GACA,KAAK,GACL,KAA6B,kBAAU,eAC/B;AACR,WAAO,IAAI,CAAC,EAAE,QAAQ,IAAI,EAAE;AAAA,EAC9B;AASO,WAAS,YAAY,GAAY,GAA+B;AACrE,WAAO,IAAI,CAAC,EAAE,WAAW,IAAI,CAAC,CAAC;AAAA,EACjC;AAQO,WAAS,UAAU,GAAY,GAAqB;AACzD,WAAO,IAAI,CAAC,EAAE,UAAU,IAAI,CAAC,CAAC;AAAA,EAChC;AAQO,WAAS,gBAAgB,GAAY,GAAqB;AAC/D,WAAO,IAAI,CAAC,EAAE,cAAc,IAAI,CAAC,CAAC;AAAA,EACpC;AAQO,WAAS,uBAAuB,GAAY,GAAqB;AACtE,WAAO,IAAI,CAAC,EAAE,uBAAuB,IAAI,CAAC,CAAC;AAAA,EAC7C;AAQO,WAAS,aAAa,GAAY,GAAqB;AAC5D,WAAO,IAAI,CAAC,EAAE,WAAW,IAAI,CAAC,CAAC;AAAA,EACjC;AASO,WAAS,oBAAoB,GAAY,GAAqB;AACnE,WAAO,IAAI,CAAC,EAAE,oBAAoB,IAAI,CAAC,CAAC;AAAA,EAC1C;;;AC9KO,WAAS,QAAQ,GAAoB,MAAM,GAAG;AACnD,WAAO,OAAO,CAAC,EAAE,SAAS,KAAK,GAAG;AAAA,EACpC;AAcO,WAAS,SAAS,KAAuB,OAAO,IAAI;AACzD,QAAI,QAAQ,QAAQ,QAAQ,UAAa,QAAQ,GAAI,QAAO;AAE5D,QAAI,OAAO,QAAQ,SAAU,QAAO,GAAG,GAAG,GAAG,IAAI;AAEjD,UAAM,MAAM,OAAO,GAAG,EAAE,KAAK;AAE7B,QAAI,QAAQ,GAAI,QAAO;AAEvB,WAAO,MAAM,CAAC,GAAG,IAAI,MAAM,GAAG,GAAG,GAAG,IAAI;AAAA,EAC1C;AAaO,WAAS,WAAW,KAAuB;AAChD,WAAO,SAAS,KAAK,IAAI;AAAA,EAC3B;AAWO,WAAS,aAAa,GAA4B;AACvD,UAAM,IAAI,OAAO,gBAAK,CAAC;AACvB,QAAI,CAAC,OAAO,SAAS,CAAC,EAAG,QAAO;AAChC,WAAO,KAAK,MAAO,GAAG,EAAE,IAAI,KAAM,QAAQ,CAAC,CAAC,OAAO,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC;AAAA,EACrE;AASO,WAAS,aAAa,KAA8B;AACzD,UAAM,IAAI,OAAO,oBAAO,EAAE,EAAE,KAAK;AACjC,QAAI,MAAM,GAAI,QAAO;AAGrB,QAAI,OAAO;AACX,QAAI,MAAM;AACV,QAAI,IAAI,CAAC,MAAM,OAAO,IAAI,CAAC,MAAM,KAAK;AACpC,aAAO,IAAI,CAAC;AACZ,YAAM,IAAI,MAAM,CAAC;AAAA,IACnB;AAGA,UAAM,CAAC,SAAS,OAAO,IAAI,IAAI,MAAM,GAAG;AAGxC,UAAM,aAAa,QAAQ,QAAQ,yBAAyB,GAAG;AAE/D,WAAO,YAAY,UAAa,YAAY,KACxC,GAAG,IAAI,GAAG,UAAU,IAAI,OAAO,KAC/B,GAAG,IAAI,GAAG,UAAU;AAAA,EAC1B;AAWO,WAAS,aAAa,KAAsB;AACjD,UAAM,SAAS,KAAK,MAAM,CAAC,GAAG;AAC9B,QAAI,WAAW,EAAG,QAAO;AAEzB,UAAM,QAAQ,CAAC,UAAK,UAAK,UAAK,UAAK,UAAK,UAAK,UAAK,UAAK,UAAK,QAAG;AAC/D,UAAM,OAAO,CAAC,IAAI,UAAK,UAAK,QAAG;AAC/B,UAAM,UAAU,CAAC,IAAI,UAAK,UAAK,QAAG;AAElC,UAAM,WAAW,CAACC,OAAc;AAC9B,UAAI,MAAM,IACR,WAAW;AACb,eAAS,IAAI,GAAG,IAAI,GAAG,KAAK;AAC1B,cAAM,IAAIA,KAAI;AACd,QAAAA,KAAI,KAAK,MAAMA,KAAI,EAAE;AACrB,YAAI,MAAM,GAAG;AACX,qBAAW;AACX;AAAA,QACF;AACA,YAAI,SAAU,OAAM,MAAM,CAAC,IAAI;AAC/B,cAAM,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI;AAC3B,mBAAW;AAAA,MACb;AACA,aAAO;AAAA,IACT;AAEA,QAAI,MAAM;AACV,QAAI,eAAe;AACnB,QAAI,IAAI,KAAK,IAAI,MAAM;AAEvB,WAAO,IAAI,GAAG;AACZ,YAAM,MAAM,IAAI;AAChB,UAAI,KAAK,MAAM,IAAI,GAAK;AACxB,UAAI,KAAK;AACP,cAAM,SAAS,SAAS,GAAG;AAC3B,cAAM,UAAU,eAAe,QAAQ,YAAY,IAAI,MAAM;AAAA,MAC/D,WAAW,OAAO,CAAC,IAAI,WAAW,QAAG,GAAG;AACtC,cAAM,SAAI,GAAG;AAAA,MACf;AACA;AAAA,IACF;AAEA,UAAM,IAAI,QAAQ,OAAO,QAAG;AAE5B,WAAO,SAAS,IAAI,SAAI,GAAG,KAAK;AAAA,EAClC;AAmBO,WAAS,kBACd,QACA,OAII,CAAC,GACG;AAnLV;AAoLE,UAAM,MAAK,UAAK,cAAL,YAAkB;AAC7B,UAAM,MAAK,UAAK,OAAL,YAAW,kBAAU;AAChC,UAAM,QAAO,UAAK,aAAL,YAAiB;AAG9B,QAAI,WAAW,QAAQ,WAAW,OAAW,QAAO;AACpD,UAAM,KAAK,IAAI,kBAAU,MAAM;AAC/B,QAAI,CAAC,GAAG,SAAS,EAAG,QAAO;AAG3B,UAAM,IAAI,GAAG,QAAQ,IAAI,EAAE;AAC3B,UAAM,OAAO,EAAE,WAAW,GAAG,IAAI,WAAM;AACvC,UAAM,CAAC,QAAQ,SAAS,EAAE,IAAI,EAAE,QAAQ,MAAM,EAAE,EAAE,MAAM,GAAG;AAG3D,UAAM,QAAQ,CAAC,UAAK,UAAK,UAAK,UAAK,UAAK,UAAK,UAAK,UAAK,UAAK,QAAG;AAC/D,UAAM,OAAO,CAAC,IAAI,UAAK,UAAK,QAAG;AAC/B,UAAM,UAAU,CAAC,IAAI,UAAK,UAAK,QAAG;AAClC,UAAM,YAAY,CAAC,UAAK,UAAK,QAAG;AAGhC,UAAM,WAAW,CAAC,MAAyB;AACzC,UAAI,MAAM;AACV,UAAI,WAAW;AACf,eAAS,IAAI,GAAG,IAAI,GAAG,KAAK;AAC1B,cAAM,IAAI,EAAE,IAAI,EAAE,EAAE,SAAS;AAC7B,YAAI,EAAE,KAAK,EAAE;AACb,YAAI,MAAM,GAAG;AACX,qBAAW;AACX;AAAA,QACF;AACA,YAAI,SAAU,OAAM,MAAM,CAAC,IAAI;AAC/B,cAAM,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI;AAC3B,mBAAW;AAAA,MACb;AACA,aAAO,IAAI,QAAQ,QAAQ,EAAE;AAAA,IAC/B;AAEA,UAAM,SAAS,IAAI,kBAAU,MAAM;AACnC,QAAI,MAAM;AACV,QAAI,OAAO,OAAO,GAAG;AACnB,YAAM,MAAM,CAAC;AAAA,IACf,OAAO;AACL,UAAI,IAAI,OAAO,IAAI;AACnB,UAAI,eAAe;AACnB,aAAO,EAAE,GAAG,CAAC,GAAG;AACd,cAAM,MAAM,EAAE,IAAI,GAAK;AACvB,YAAI,EAAE,KAAK,GAAK;AAChB,YAAI,IAAI,GAAG,CAAC,GAAG;AACb,gBAAM,SAAS,SAAS,GAAG;AAC3B,gBAAM,WACJ,OAAO,CAAC,IAAI,WAAW,MAAM,CAAC,CAAC,MAAM,IAAI,GAAG,GAAI,KAAK,IAAI,IAAI,GAAI,EAAE,OAAO;AAC5E,gBAAM,KAAK,eAAe,QAAQ,YAAY,IAAI;AAClD,gBAAM,SAAS,MAAM,WAAW,MAAM,CAAC,IAAI,MAAM;AAAA,QACnD,WAAW,OAAO,CAAC,IAAI,WAAW,MAAM,CAAC,CAAC,GAAG;AAC3C,gBAAM,MAAM,CAAC,IAAI;AAAA,QACnB;AACA;AAAA,MACF;AACA,YAAM,IAAI,QAAQ,OAAO,QAAG;AAAA,IAC9B;AAGA,QAAI,OAAO;AACX,aAAS,IAAI,GAAG,IAAI,KAAK,IAAI,GAAG,EAAE,GAAG,KAAK;AACxC,YAAM,KAAK,OAAO,CAAC,KAAK;AACxB,YAAM,IAAI,GAAG,WAAW,CAAC,IAAI;AAC7B,UAAI,IAAI,EAAG,SAAQ,MAAM,CAAC,IAAI,UAAU,CAAC;AAAA,IAC3C;AAGA,WAAO,OAAO,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,KAAK,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI;AAAA,EACpE;;;ACtPO,WAAS,gBAAyB;AACvC,WAAO,KAAK,OAAO,IAAI;AAAA,EACzB;;;AJCA,eAAAC,QAAM,OAAO,yBAAAC,OAAiB;AAC9B,eAAAD,QAAM,OAAO,WAAAE,OAAG;AAChB,eAAAF,QAAM,OAAO,gBAAAG,OAAQ;AACrB,eAAAH,QAAM,OAAO,oBAAAI,OAAY;AACzB,eAAAJ,QAAM,OAAO,sBAAAK,OAAc;AAC3B,eAAAL,QAAM,OAAO,OAAO;AAsCb,WAAS,QAAQ,GAAc,KAAwB;AAC5D,QAAI,MAAM,QAAQ,MAAM,OAAW,YAAO,aAAAA,SAAM;AAChD,QAAI,OAAO,MAAM,UAAU;AACzB,YAAM,IAAI,OAAO,KAAK,MAAM,CAAC,CAAC;AAC9B,iBAAO,aAAAA,SAAM,EAAE,WAAW,KAAK,IAAI,MAAO,GAAG,GAAG;AAAA,IAClD;AACA,QAAI,OAAO,MAAM,UAAU;AACzB,YAAM,IAAI,EAAE,KAAK;AACjB,UAAI,WAAW,KAAK,CAAC,EAAG,YAAO,aAAAA,SAAM,OAAO,CAAC,IAAI,KAAM,GAAG;AAC1D,UAAI,WAAW,KAAK,CAAC,EAAG,YAAO,aAAAA,SAAM,OAAO,CAAC,GAAG,GAAG;AACnD,UAAI,sBAAsB,KAAK,CAAC,EAAG,YAAO,aAAAA,SAAM,GAAG,OAAO,YAAY;AACtE,UAAI,wBAAwB,KAAK,CAAC,EAAG,YAAO,aAAAA,SAAM,GAAG,OAAO,YAAY;AACxE,UAAI,0CAA0C,KAAK,CAAC;AAClD,mBAAO,aAAAA,SAAM,GAAG,OAAO,qBAAqB;AAC9C,UAAI,4CAA4C,KAAK,CAAC;AACpD,mBAAO,aAAAA,SAAM,GAAG,OAAO,qBAAqB;AAC9C,iBAAO,aAAAA,SAAM,GAAG,GAAG;AAAA,IACrB;AACA,eAAO,aAAAA,SAAM,GAAG,GAAG;AAAA,EACrB;AAYO,WAAS,mBAAmB,QAAgB,MAAM,cAAc;AACrE,UAAM,MAAM,QAAQ,KAAK,IAAI,CAAC;AAC9B,UAAM,IAAI,KAAK,IAAI,GAAG,KAAK,MAAM,MAAM,CAAC;AACxC,UAAM,UAAU,oBAAoB,KAAK,GAAG;AAC5C,UAAM,WAAW,IAAI,IAAI,CAAC,GAAG,KAAK;AAClC,UAAM,SAAS;AACf,UAAM,SAAS,UAAU,SAAS,QAAQ,KAAK,IAAI,UAAU,OAAO,GAAG;AACvE,UAAM,OAAO,UAAU,OAAO,MAAM,KAAK,IAAI,QAAQ,OAAO,GAAG;AAC/D,WAAO,CAAC,OAAO,GAAG;AAAA,EACpB;AAcO,WAAS,kBAAkB,QAAgB,MAAM,cAAc;AACpE,UAAM,MAAM,QAAQ,KAAK,IAAI,CAAC;AAC9B,UAAM,IAAI,KAAK,IAAI,GAAG,KAAK,MAAM,MAAM,CAAC;AACxC,UAAM,UAAU,oBAAoB,KAAK,GAAG;AAC5C,UAAM,WAAW;AACjB,UAAM,SAAS,IAAI,IAAI,GAAG,KAAK;AAC/B,UAAM,SAAS,UAAU,SAAS,QAAQ,KAAK,IAAI,UAAU,OAAO,GAAG;AACvE,UAAM,OAAO,UAAU,OAAO,MAAM,KAAK,IAAI,QAAQ,OAAO,GAAG;AAC/D,WAAO,CAAC,OAAO,GAAG;AAAA,EACpB;AAUO,WAAS,kBAAkB,MAAc;AAC9C,QAAI,QAAQ,EAAG,QAAO,EAAE,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,IAAI,MAAM;AAEtE,UAAM,IAAI,KAAK,MAAM,QAAQ,MAAO,KAAK,KAAK,GAAG;AACjD,UAAM,IAAI,KAAK,MAAO,QAAQ,MAAO,KAAK,MAAO,EAAE;AACnD,UAAM,IAAI,KAAK,MAAO,QAAQ,MAAO,MAAO,EAAE;AAC9C,UAAM,IAAI,KAAK,MAAO,OAAO,MAAQ,EAAE;AACvC,UAAM,KAAK,OAAO;AAElB,WAAO;AAAA,MACL,GAAG,QAAQ,CAAC;AAAA,MACZ,GAAG,QAAQ,CAAC;AAAA,MACZ,GAAG,QAAQ,CAAC;AAAA,MACZ,GAAG,QAAQ,CAAC;AAAA,MACZ,IAAI,QAAQ,IAAI,CAAC;AAAA,IACnB;AAAA,EACF;AAYO,WAAS,kBAAkB,WAAmB;AACnD,UAAM,QAAQ,QAAQ,WAAW,YAAY;AAC7C,UAAM,MAAM,QAAQ,KAAK,IAAI,CAAC;AAG9B,UAAM,eAAe,IAAI,KAAK,IAAI,MAAM,KAAK,KAAK,MAAM,IAAI,MAAM,IAAI,MAAM,MAAM;AAGlF,UAAM,iBAAiB,IAAI,KAAK,IAAI,MAAM,KAAK,IAAI,cAAc,IAAI;AAErE,QAAI,kBAAkB,IAAI;AACxB,UAAI,MAAM,KAAK,MAAM,iBAAiB,EAAE;AAExC,YAAM,mBAAmB,MAAM,IAAI,KAAK,MAAM;AAC9C,UAAI,IAAI,SAAS,gBAAgB,GAAG;AAClC;AAAA,MACF;AACA,aAAO,EAAE,KAAK,MAAM,OAAO;AAAA,IAC7B;AAEA,WAAO,EAAE,KAAK,gBAAgB,MAAM,QAAQ;AAAA,EAC9C;;;AK9KA,WAAS,GAAG,KAAK,SAAS;AACtB,UAAM,SAAS,IAAI,MAAM,QAAQ,MAAM;AACvC,UAAM,SAAS,IAAI;AACnB,aAAS,IAAI,GAAG,IAAI,QAAQ,QAAQ,KAAK;AACrC,UAAI,QAAQ,QAAQ,CAAC;AACrB,cAAQ,OAAO,UAAU,KAAK,IAAI,QAAQ,KAAK,MAAM,KAAK,KAAK;AAC/D,UAAI,QAAQ,GAAG;AACX,iBAAS;AAAA,MACb;AACA,aAAO,CAAC,IAAI,IAAI,KAAK;AAAA,IACzB;AACA,WAAO;AAAA,EACX;;;ACZA,WAAS,MAAM,KAAK,MAAM;AACtB,QAAI,CAAC,OAAO,UAAU,IAAI,KAAK,QAAQ,GAAG;AACtC,YAAM,IAAI,MAAM,4CAA4C;AAAA,IAChE;AACA,UAAM,cAAc,KAAK,KAAK,IAAI,SAAS,IAAI;AAC/C,UAAM,SAAS,MAAM,WAAW;AAChC,aAAS,QAAQ,GAAG,QAAQ,aAAa,SAAS;AAC9C,YAAM,QAAQ,QAAQ;AACtB,YAAM,MAAM,QAAQ;AACpB,aAAO,KAAK,IAAI,IAAI,MAAM,OAAO,GAAG;AAAA,IACxC;AACA,WAAO;AAAA,EACX;;;ACZA,WAAS,QAAQ,KAAK;AAClB,UAAM,SAAS,CAAC;AAChB,aAAS,IAAI,GAAG,IAAI,IAAI,QAAQ,KAAK;AACjC,YAAM,OAAO,IAAI,CAAC;AAClB,UAAI,MAAM;AACN,eAAO,KAAK,IAAI;AAAA,MACpB;AAAA,IACJ;AACA,WAAO;AAAA,EACX;;;ACTA,WAAS,QAAQ,KAAK,QAAQ;AAA9B;AACI,UAAM,SAAS,CAAC;AAChB,aAAS,IAAI,GAAG,IAAI,IAAI,QAAQ,KAAK;AACjC,YAAM,OAAO,IAAI,CAAC;AAClB,YAAM,MAAM,OAAO,IAAI;AACvB,aAAO,GAAG,MAAK,YAAO,GAAG,MAAV,YAAe,KAAK;AAAA,IACvC;AACA,WAAO;AAAA,EACX;;;ACRA,WAAS,WAAW,UAAU,WAAW;AACrC,UAAM,YAAY,IAAI,IAAI,SAAS;AACnC,WAAO,SAAS,OAAO,UAAQ,CAAC,UAAU,IAAI,IAAI,CAAC;AAAA,EACvD;;;ACHA,WAAS,aAAa,UAAU,WAAW,QAAQ;AAC/C,UAAM,kBAAkB,IAAI,IAAI,UAAU,IAAI,UAAQ,OAAO,IAAI,CAAC,CAAC;AACnE,WAAO,SAAS,OAAO,UAAQ;AAC3B,aAAO,CAAC,gBAAgB,IAAI,OAAO,IAAI,CAAC;AAAA,IAC5C,CAAC;AAAA,EACL;;;ACLA,WAAS,eAAe,UAAU,WAAW,eAAe;AACxD,WAAO,SAAS,OAAO,eAAa;AAChC,aAAO,UAAU,MAAM,gBAAc;AACjC,eAAO,CAAC,cAAc,WAAW,UAAU;AAAA,MAC/C,CAAC;AAAA,IACL,CAAC;AAAA,EACL;;;ACNA,WAAS,KAAK,KAAK,YAAY;AAC3B,iBAAa,KAAK,IAAI,YAAY,CAAC;AACnC,WAAO,IAAI,MAAM,UAAU;AAAA,EAC/B;;;ACHA,WAAS,UAAU,KAAK,YAAY;AAChC,iBAAa,KAAK,IAAI,CAAC,YAAY,CAAC;AACpC,QAAI,eAAe,GAAG;AAClB,aAAO,IAAI,MAAM;AAAA,IACrB;AACA,WAAO,IAAI,MAAM,GAAG,UAAU;AAAA,EAClC;;;ACNA,WAAS,eAAe,KAAK,qBAAqB;AAC9C,aAAS,IAAI,IAAI,SAAS,GAAG,KAAK,GAAG,KAAK;AACtC,UAAI,CAAC,oBAAoB,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG;AACtC,eAAO,IAAI,MAAM,GAAG,IAAI,CAAC;AAAA,MAC7B;AAAA,IACJ;AACA,WAAO,CAAC;AAAA,EACZ;;;ACPA,WAAS,UAAU,KAAK,qBAAqB;AACzC,UAAM,eAAe,IAAI,UAAU,CAAC,MAAM,OAAOM,SAAQ,CAAC,oBAAoB,MAAM,OAAOA,IAAG,CAAC;AAC/F,QAAI,iBAAiB,IAAI;AACrB,aAAO,CAAC;AAAA,IACZ;AACA,WAAO,IAAI,MAAM,YAAY;AAAA,EACjC;;;ACNA,WAAS,KAAK,OAAO,OAAO,QAAQ,GAAG,MAAM,MAAM,QAAQ;AACvD,UAAM,SAAS,MAAM;AACrB,UAAM,aAAa,KAAK,IAAI,SAAS,IAAI,QAAQ,SAAS,OAAO,CAAC;AAClE,UAAM,WAAW,KAAK,IAAI,OAAO,IAAI,MAAM,SAAS,KAAK,MAAM;AAC/D,aAAS,IAAI,YAAY,IAAI,UAAU,KAAK;AACxC,YAAM,CAAC,IAAI;AAAA,IACf;AACA,WAAO;AAAA,EACX;;;ACRA,MAAM,YAAN,MAAgB;AAAA,IAIZ,YAAY,UAAU;AAHtB;AACA;AACA,2CAAgB,CAAC;AAEb,WAAK,WAAW;AAChB,WAAK,YAAY;AAAA,IACrB;AAAA,IACM,UAAU;AAAA;AACZ,YAAI,KAAK,YAAY,GAAG;AACpB,eAAK;AACL;AAAA,QACJ;AACA,eAAO,IAAI,QAAQ,aAAW;AAC1B,eAAK,cAAc,KAAK,OAAO;AAAA,QACnC,CAAC;AAAA,MACL;AAAA;AAAA,IACA,UAAU;AACN,YAAM,eAAe,KAAK,cAAc,MAAM;AAC9C,UAAI,gBAAgB,MAAM;AACtB,qBAAa;AACb;AAAA,MACJ;AACA,UAAI,KAAK,YAAY,KAAK,UAAU;AAChC,aAAK;AAAA,MACT;AAAA,IACJ;AAAA,EACJ;;;ACzBA,WAAS,WAAW,UAAU,aAAa;AACvC,UAAM,YAAY,IAAI,UAAU,WAAW;AAC3C,WAAO,YAAmB,MAAM;AAAA;AAC5B,YAAI;AACA,gBAAM,UAAU,QAAQ;AACxB,iBAAO,MAAM,SAAS,MAAM,MAAM,IAAI;AAAA,QAC1C,UACA;AACI,oBAAU,QAAQ;AAAA,QACtB;AAAA,MACJ;AAAA;AAAA,EACJ;;;ACXA,WAAe,YAAY,OAAO,WAAW,SAAS;AAAA;AAClD,WAAI,mCAAS,gBAAe,MAAM;AAC9B,oBAAY,WAAW,WAAW,QAAQ,WAAW;AAAA,MACzD;AACA,YAAM,UAAU,MAAM,QAAQ,IAAI,MAAM,IAAI,SAAS,CAAC;AACtD,aAAO,MAAM,OAAO,CAAC,GAAG,UAAU,QAAQ,KAAK,CAAC;AAAA,IACpD;AAAA;;;ACRA,WAAS,QAAQ,KAAK,QAAQ,GAAG;AAC7B,UAAM,SAAS,CAAC;AAChB,UAAM,eAAe,KAAK,MAAM,KAAK;AACrC,UAAM,YAAY,CAACC,MAAK,iBAAiB;AACrC,eAAS,IAAI,GAAG,IAAIA,KAAI,QAAQ,KAAK;AACjC,cAAM,OAAOA,KAAI,CAAC;AAClB,YAAI,MAAM,QAAQ,IAAI,KAAK,eAAe,cAAc;AACpD,oBAAU,MAAM,eAAe,CAAC;AAAA,QACpC,OACK;AACD,iBAAO,KAAK,IAAI;AAAA,QACpB;AAAA,MACJ;AAAA,IACJ;AACA,cAAU,KAAK,CAAC;AAChB,WAAO;AAAA,EACX;;;ACdA,WAAS,QAAQ,KAAK,UAAU,QAAQ,GAAG;AACvC,WAAO,QAAQ,IAAI,IAAI,UAAQ,SAAS,IAAI,CAAC,GAAG,KAAK;AAAA,EACzD;;;ACDA,WAAe,aAAa,OAAO,UAAU,SAAS;AAAA;AAClD,WAAI,mCAAS,gBAAe,MAAM;AAC9B,mBAAW,WAAW,UAAU,QAAQ,WAAW;AAAA,MACvD;AACA,YAAM,UAAU,MAAM,QAAQ,IAAI,MAAM,IAAI,QAAQ,CAAC;AACrD,aAAO,QAAQ,OAAO;AAAA,IAC1B;AAAA;;;ACPA,WAAS,YAAY,KAAK;AACtB,WAAO,QAAQ,KAAK,QAAQ;AAAA,EAChC;;;ACFA,WAAS,YAAY,KAAK,UAAU;AAChC,WAAO,YAAY,IAAI,IAAI,CAAC,SAAS,SAAS,IAAI,CAAC,CAAC;AAAA,EACxD;;;ACFA,WAAe,aAAa,OAAO,UAAU,SAAS;AAAA;AAClD,WAAI,mCAAS,gBAAe,MAAM;AAC9B,mBAAW,WAAW,UAAU,QAAQ,WAAW;AAAA,MACvD;AACA,YAAM,QAAQ,IAAI,MAAM,IAAI,QAAQ,CAAC;AAAA,IACzC;AAAA;;;ACPA,WAAS,aAAa,KAAK,UAAU;AACjC,aAAS,IAAI,IAAI,SAAS,GAAG,KAAK,GAAG,KAAK;AACtC,YAAM,UAAU,IAAI,CAAC;AACrB,eAAS,SAAS,GAAG,GAAG;AAAA,IAC5B;AAAA,EACJ;;;ACLA,WAAS,QAAQ,KAAK,gBAAgB;AAClC,UAAM,SAAS,CAAC;AAChB,aAAS,IAAI,GAAG,IAAI,IAAI,QAAQ,KAAK;AACjC,YAAM,OAAO,IAAI,CAAC;AAClB,YAAM,MAAM,eAAe,IAAI;AAC/B,UAAI,CAAC,OAAO,OAAO,QAAQ,GAAG,GAAG;AAC7B,eAAO,GAAG,IAAI,CAAC;AAAA,MACnB;AACA,aAAO,GAAG,EAAE,KAAK,IAAI;AAAA,IACzB;AACA,WAAO;AAAA,EACX;;;ACXA,WAAS,KAAK,KAAK;AACf,WAAO,IAAI,CAAC;AAAA,EAChB;;;ACFA,WAAS,QAAQ,KAAK;AAClB,WAAO,IAAI,MAAM,GAAG,EAAE;AAAA,EAC1B;;;ACFA,WAAS,aAAa,UAAU,WAAW;AACvC,UAAM,YAAY,IAAI,IAAI,SAAS;AACnC,WAAO,SAAS,OAAO,UAAQ;AAC3B,aAAO,UAAU,IAAI,IAAI;AAAA,IAC7B,CAAC;AAAA,EACL;;;ACLA,WAAS,eAAe,UAAU,WAAW,QAAQ;AACjD,UAAM,kBAAkB,IAAI,IAAI,UAAU,IAAI,MAAM,CAAC;AACrD,WAAO,SAAS,OAAO,UAAQ,gBAAgB,IAAI,OAAO,IAAI,CAAC,CAAC;AAAA,EACpE;;;ACHA,WAAS,iBAAiB,UAAU,WAAW,eAAe;AAC1D,WAAO,SAAS,OAAO,eAAa;AAChC,aAAO,UAAU,KAAK,gBAAc;AAChC,eAAO,cAAc,WAAW,UAAU;AAAA,MAC9C,CAAC;AAAA,IACL,CAAC;AAAA,EACL;;;ACJA,WAAS,SAAS,UAAU,QAAQ;AAChC,WAAO,WAAW,QAAQ,QAAQ,EAAE,WAAW;AAAA,EACnD;;;ACFA,WAAS,aAAa,UAAU,QAAQ,eAAe;AACnD,WAAO,eAAe,QAAQ,UAAU,aAAa,EAAE,WAAW;AAAA,EACtE;;;ACJA,WAAS,MAAM,KAAK,gBAAgB;AAChC,UAAM,SAAS,CAAC;AAChB,aAAS,IAAI,GAAG,IAAI,IAAI,QAAQ,KAAK;AACjC,YAAM,OAAO,IAAI,CAAC;AAClB,YAAM,MAAM,eAAe,IAAI;AAC/B,aAAO,GAAG,IAAI;AAAA,IAClB;AACA,WAAO;AAAA,EACX;;;ACRA,WAAS,KAAK,KAAK;AACf,WAAO,IAAI,IAAI,SAAS,CAAC;AAAA,EAC7B;;;ACAA,WAAS,SAAS,OAAO,UAAU,SAAS;AACxC,SAAI,mCAAS,gBAAe,MAAM;AAC9B,iBAAW,WAAW,UAAU,QAAQ,WAAW;AAAA,IACvD;AACA,WAAO,QAAQ,IAAI,MAAM,IAAI,QAAQ,CAAC;AAAA,EAC1C;;;ACPA,WAAS,MAAM,OAAO,UAAU;AAC5B,QAAI,MAAM,WAAW,GAAG;AACpB,aAAO;AAAA,IACX;AACA,QAAI,aAAa,MAAM,CAAC;AACxB,QAAI,MAAM,SAAS,UAAU;AAC7B,aAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;AACnC,YAAM,UAAU,MAAM,CAAC;AACvB,YAAM,QAAQ,SAAS,OAAO;AAC9B,UAAI,QAAQ,KAAK;AACb,cAAM;AACN,qBAAa;AAAA,MACjB;AAAA,IACJ;AACA,WAAO;AAAA,EACX;;;ACfA,WAAS,MAAM,OAAO,UAAU;AAC5B,QAAI,MAAM,WAAW,GAAG;AACpB,aAAO;AAAA,IACX;AACA,QAAI,aAAa,MAAM,CAAC;AACxB,QAAI,MAAM,SAAS,UAAU;AAC7B,aAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;AACnC,YAAM,UAAU,MAAM,CAAC;AACvB,YAAM,QAAQ,SAAS,OAAO;AAC9B,UAAI,QAAQ,KAAK;AACb,cAAM;AACN,qBAAa;AAAA,MACjB;AAAA,IACJ;AACA,WAAO;AAAA,EACX;;;ACfA,WAAS,cAAc,GAAG,GAAG,OAAO;AAChC,QAAI,IAAI,GAAG;AACP,aAAO,UAAU,QAAQ,KAAK;AAAA,IAClC;AACA,QAAI,IAAI,GAAG;AACP,aAAO,UAAU,QAAQ,IAAI;AAAA,IACjC;AACA,WAAO;AAAA,EACX;;;ACNA,WAAS,QAAQ,KAAK,UAAU,QAAQ;AACpC,WAAO,IAAI,MAAM,EAAE,KAAK,CAAC,GAAG,MAAM;AAC9B,YAAM,eAAe,OAAO;AAC5B,eAAS,IAAI,GAAG,IAAI,SAAS,QAAQ,KAAK;AACtC,cAAM,QAAQ,eAAe,IAAI,OAAO,CAAC,IAAI,OAAO,eAAe,CAAC;AACpE,cAAM,YAAY,SAAS,CAAC;AAC5B,cAAM,sBAAsB,OAAO,cAAc;AACjD,cAAM,SAAS,sBAAsB,UAAU,CAAC,IAAI,EAAE,SAAS;AAC/D,cAAM,SAAS,sBAAsB,UAAU,CAAC,IAAI,EAAE,SAAS;AAC/D,cAAM,SAAS,cAAc,QAAQ,QAAQ,KAAK;AAClD,YAAI,WAAW,GAAG;AACd,iBAAO;AAAA,QACX;AAAA,MACJ;AACA,aAAO;AAAA,IACX,CAAC;AAAA,EACL;;;AClBA,WAAS,UAAU,KAAK,YAAY;AAChC,UAAM,SAAS,CAAC;AAChB,UAAM,QAAQ,CAAC;AACf,aAAS,IAAI,GAAG,IAAI,IAAI,QAAQ,KAAK;AACjC,YAAM,OAAO,IAAI,CAAC;AAClB,UAAI,WAAW,IAAI,GAAG;AAClB,eAAO,KAAK,IAAI;AAAA,MACpB,OACK;AACD,cAAM,KAAK,IAAI;AAAA,MACnB;AAAA,IACJ;AACA,WAAO,CAAC,QAAQ,KAAK;AAAA,EACzB;;;ACbA,WAAS,KAAK,KAAK,gBAAgB;AAC/B,UAAM,YAAY,IAAI,IAAI,cAAc;AACxC,QAAI,cAAc;AAClB,aAAS,IAAI,GAAG,IAAI,IAAI,QAAQ,KAAK;AACjC,UAAI,UAAU,IAAI,IAAI,CAAC,CAAC,GAAG;AACvB;AAAA,MACJ;AACA,UAAI,CAAC,OAAO,OAAO,KAAK,CAAC,GAAG;AACxB,eAAO,IAAI,aAAa;AACxB;AAAA,MACJ;AACA,UAAI,aAAa,IAAI,IAAI,CAAC;AAAA,IAC9B;AACA,QAAI,SAAS;AACb,WAAO;AAAA,EACX;;;ACbA,WAAS,OAAO,KAAK,iBAAiB;AAClC,UAAM,UAAU,GAAG,KAAK,eAAe;AACvC,UAAM,UAAU,IAAI,IAAI,gBAAgB,MAAM,EAAE,KAAK,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC;AACrE,eAAW,SAAS,SAAS;AACzB,UAAI,OAAO,OAAO,CAAC;AAAA,IACvB;AACA,WAAO;AAAA,EACX;;;ACTA,WAAe,YAAY,OAAO,SAAS,cAAc;AAAA;AACrD,UAAI,aAAa;AACjB,UAAI,gBAAgB,MAAM;AACtB,uBAAe,MAAM,CAAC;AACtB,qBAAa;AAAA,MACjB;AACA,UAAI,cAAc;AAClB,eAAS,IAAI,YAAY,IAAI,MAAM,QAAQ,KAAK;AAC5C,sBAAc,MAAM,QAAQ,aAAa,MAAM,CAAC,GAAG,GAAG,KAAK;AAAA,MAC/D;AACA,aAAO;AAAA,IACX;AAAA;;;ACXA,WAAS,OAAO,KAAK,qBAAqB;AACtC,UAAM,cAAc,IAAI,MAAM;AAC9B,UAAM,UAAU,CAAC;AACjB,QAAI,cAAc;AAClB,aAAS,IAAI,GAAG,IAAI,IAAI,QAAQ,KAAK;AACjC,UAAI,oBAAoB,IAAI,CAAC,GAAG,GAAG,WAAW,GAAG;AAC7C,gBAAQ,KAAK,IAAI,CAAC,CAAC;AACnB;AAAA,MACJ;AACA,UAAI,CAAC,OAAO,OAAO,KAAK,CAAC,GAAG;AACxB,eAAO,IAAI,aAAa;AACxB;AAAA,MACJ;AACA,UAAI,aAAa,IAAI,IAAI,CAAC;AAAA,IAC9B;AACA,QAAI,SAAS;AACb,WAAO;AAAA,EACX;;;ACjBA,WAAS,OAAO,KAAK;AACjB,UAAM,cAAc,KAAK,MAAM,KAAK,OAAO,IAAI,IAAI,MAAM;AACzD,WAAO,IAAI,WAAW;AAAA,EAC1B;;;ACHA,WAAS,OAAO,SAAS,SAAS;AAC9B,QAAI,WAAW,MAAM;AACjB,gBAAU;AACV,gBAAU;AAAA,IACd;AACA,QAAI,WAAW,SAAS;AACpB,YAAM,IAAI,MAAM,0EAA0E;AAAA,IAC9F;AACA,WAAO,KAAK,OAAO,KAAK,UAAU,WAAW;AAAA,EACjD;;;ACPA,WAAS,UAAU,SAAS,SAAS;AACjC,WAAO,KAAK,MAAM,OAAO,SAAS,OAAO,CAAC;AAAA,EAC9C;;;ACFA,WAAS,WAAW,OAAO,MAAM;AAC7B,QAAI,OAAO,MAAM,QAAQ;AACrB,YAAM,IAAI,MAAM,yDAAyD;AAAA,IAC7E;AACA,UAAM,SAAS,IAAI,MAAM,IAAI;AAC7B,UAAM,WAAW,oBAAI,IAAI;AACzB,aAAS,OAAO,MAAM,SAAS,MAAM,cAAc,GAAG,OAAO,MAAM,QAAQ,QAAQ,eAAe;AAC9F,UAAI,QAAQ,UAAU,GAAG,OAAO,CAAC;AACjC,UAAI,SAAS,IAAI,KAAK,GAAG;AACrB,gBAAQ;AAAA,MACZ;AACA,eAAS,IAAI,KAAK;AAClB,aAAO,WAAW,IAAI,MAAM,KAAK;AAAA,IACrC;AACA,WAAO;AAAA,EACX;;;ACjBA,WAAS,QAAQ,KAAK;AAClB,UAAM,SAAS,IAAI,MAAM;AACzB,aAAS,IAAI,OAAO,SAAS,GAAG,KAAK,GAAG,KAAK;AACzC,YAAM,IAAI,KAAK,MAAM,KAAK,OAAO,KAAK,IAAI,EAAE;AAC5C,OAAC,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC;AAAA,IAClD;AACA,WAAO;AAAA,EACX;;;ACLA,WAAS,OAAO,KAAK,UAAU;AAC3B,WAAO,QAAQ,KAAK,UAAU,CAAC,KAAK,CAAC;AAAA,EACzC;;;ACJA,WAAS,KAAK,KAAK;AACf,WAAO,IAAI,MAAM,CAAC;AAAA,EACtB;;;ACFA,WAAS,SAAS,OAAO;AACrB,WAAO,OAAO,UAAU,YAAY,iBAAiB;AAAA,EACzD;;;ACAA,WAAS,SAAS,OAAO;AACrB,QAAI,SAAS,KAAK,GAAG;AACjB,aAAO;AAAA,IACX;AACA,WAAO,OAAO,KAAK;AAAA,EACvB;;;ACLA,WAAS,SAAS,OAAO;AACrB,QAAI,CAAC,OAAO;AACR,aAAO,UAAU,IAAI,QAAQ;AAAA,IACjC;AACA,YAAQ,SAAS,KAAK;AACtB,QAAI,UAAU,YAAY,UAAU,WAAW;AAC3C,YAAM,OAAO,QAAQ,IAAI,KAAK;AAC9B,aAAO,OAAO,OAAO;AAAA,IACzB;AACA,WAAO,UAAU,QAAQ,QAAQ;AAAA,EACrC;;;ACVA,WAAS,UAAU,OAAO;AACtB,UAAM,SAAS,SAAS,KAAK;AAC7B,UAAM,YAAY,SAAS;AAC3B,WAAO,YAAY,SAAS,YAAY;AAAA,EAC5C;;;ACJA,WAAS,KAAK,KAAK,OAAO,OAAO;AAC7B,YAAQ,SAAS,UAAU,SAAY,IAAI,UAAU,KAAK;AAC1D,WAAO,IAAI,MAAM,GAAG,KAAK;AAAA,EAC7B;;;ACHA,WAAS,UAAU,KAAK,OAAO,OAAO;AAClC,YAAQ,SAAS,UAAU,SAAY,IAAI,UAAU,KAAK;AAC1D,QAAI,SAAS,KAAK,IAAI,WAAW,GAAG;AAChC,aAAO,CAAC;AAAA,IACZ;AACA,WAAO,IAAI,MAAM,CAAC,KAAK;AAAA,EAC3B;;;ACRA,WAAS,eAAe,KAAK,sBAAsB;AAC/C,aAAS,IAAI,IAAI,SAAS,GAAG,KAAK,GAAG,KAAK;AACtC,UAAI,CAAC,qBAAqB,IAAI,CAAC,CAAC,GAAG;AAC/B,eAAO,IAAI,MAAM,IAAI,CAAC;AAAA,MAC1B;AAAA,IACJ;AACA,WAAO,IAAI,MAAM;AAAA,EACrB;;;ACPA,WAAS,UAAU,KAAK,sBAAsB;AAC1C,UAAM,SAAS,CAAC;AAChB,aAAS,IAAI,GAAG,IAAI,IAAI,QAAQ,KAAK;AACjC,YAAM,OAAO,IAAI,CAAC;AAClB,UAAI,CAAC,qBAAqB,IAAI,GAAG;AAC7B;AAAA,MACJ;AACA,aAAO,KAAK,IAAI;AAAA,IACpB;AACA,WAAO;AAAA,EACX;;;ACVA,WAAS,SAAS,KAAK,OAAO,QAAQ,GAAG,MAAM,IAAI,QAAQ;AACvD,UAAM,SAAS,IAAI;AACnB,UAAM,aAAa,KAAK,IAAI,SAAS,IAAI,QAAQ,SAAS,OAAO,CAAC;AAClE,UAAM,WAAW,KAAK,IAAI,OAAO,IAAI,MAAM,SAAS,KAAK,MAAM;AAC/D,UAAM,SAAS,IAAI,MAAM;AACzB,aAAS,IAAI,YAAY,IAAI,UAAU,KAAK;AACxC,aAAO,CAAC,IAAI;AAAA,IAChB;AACA,WAAO;AAAA,EACX;;;ACTA,WAAS,KAAK,KAAK;AACf,WAAO,CAAC,GAAG,IAAI,IAAI,GAAG,CAAC;AAAA,EAC3B;;;ACAA,WAAS,MAAM,MAAM,MAAM;AACvB,WAAO,KAAK,KAAK,OAAO,IAAI,CAAC;AAAA,EACjC;;;ACJA,WAAS,OAAO,KAAK,QAAQ;AACzB,UAAM,MAAM,oBAAI,IAAI;AACpB,aAAS,IAAI,GAAG,IAAI,IAAI,QAAQ,KAAK;AACjC,YAAM,OAAO,IAAI,CAAC;AAClB,YAAM,MAAM,OAAO,IAAI;AACvB,UAAI,CAAC,IAAI,IAAI,GAAG,GAAG;AACf,YAAI,IAAI,KAAK,IAAI;AAAA,MACrB;AAAA,IACJ;AACA,WAAO,MAAM,KAAK,IAAI,OAAO,CAAC;AAAA,EAClC;;;ACRA,WAAS,QAAQ,MAAM,MAAM,QAAQ;AACjC,WAAO,OAAO,KAAK,OAAO,IAAI,GAAG,MAAM;AAAA,EAC3C;;;ACJA,WAAS,SAAS,KAAK,eAAe;AAClC,UAAM,SAAS,CAAC;AAChB,aAAS,IAAI,GAAG,IAAI,IAAI,QAAQ,KAAK;AACjC,YAAM,OAAO,IAAI,CAAC;AAClB,YAAM,SAAS,OAAO,MAAM,OAAK,CAAC,cAAc,GAAG,IAAI,CAAC;AACxD,UAAI,QAAQ;AACR,eAAO,KAAK,IAAI;AAAA,MACpB;AAAA,IACJ;AACA,WAAO;AAAA,EACX;;;ACRA,WAAS,UAAU,MAAM,MAAM,eAAe;AAC1C,WAAO,SAAS,KAAK,OAAO,IAAI,GAAG,aAAa;AAAA,EACpD;;;ACJA,WAAS,MAAM,QAAQ;AACnB,QAAI,SAAS;AACb,aAAS,IAAI,GAAG,IAAI,OAAO,QAAQ,KAAK;AACpC,UAAI,OAAO,CAAC,EAAE,SAAS,QAAQ;AAC3B,iBAAS,OAAO,CAAC,EAAE;AAAA,MACvB;AAAA,IACJ;AACA,UAAM,SAAS,IAAI,MAAM,MAAM;AAC/B,aAAS,IAAI,GAAG,IAAI,QAAQ,KAAK;AAC7B,aAAO,CAAC,IAAI,IAAI,MAAM,OAAO,MAAM;AACnC,eAAS,IAAI,GAAG,IAAI,OAAO,QAAQ,KAAK;AACpC,eAAO,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,EAAE,CAAC;AAAA,MAC9B;AAAA,IACJ;AACA,WAAO;AAAA,EACX;;;ACfA,WAAS,UAAU,QAAQ,UAAU;AACjC,UAAM,YAAY,KAAK,IAAI,GAAG,OAAO,IAAI,gBAAc,WAAW,MAAM,CAAC;AACzE,UAAM,SAAS,IAAI,MAAM,SAAS;AAClC,aAAS,IAAI,GAAG,IAAI,WAAW,KAAK;AAChC,YAAM,QAAQ,IAAI,MAAM,OAAO,MAAM;AACrC,eAAS,IAAI,GAAG,IAAI,OAAO,QAAQ,KAAK;AACpC,cAAM,CAAC,IAAI,OAAO,CAAC,EAAE,CAAC;AAAA,MAC1B;AACA,aAAO,CAAC,IAAI,SAAS,GAAG,KAAK;AAAA,IACjC;AACA,WAAO;AAAA,EACX;;;ACXA,WAAS,SAAS,KAAK,MAAM,OAAO,GAAG,EAAE,iBAAiB,MAAM,IAAI,CAAC,GAAG;AACpE,QAAI,QAAQ,KAAK,CAAC,OAAO,UAAU,IAAI,GAAG;AACtC,YAAM,IAAI,MAAM,kCAAkC;AAAA,IACtD;AACA,QAAI,QAAQ,KAAK,CAAC,OAAO,UAAU,IAAI,GAAG;AACtC,YAAM,IAAI,MAAM,kCAAkC;AAAA,IACtD;AACA,UAAM,SAAS,CAAC;AAChB,UAAM,MAAM,iBAAiB,IAAI,SAAS,IAAI,SAAS,OAAO;AAC9D,aAAS,IAAI,GAAG,IAAI,KAAK,KAAK,MAAM;AAChC,aAAO,KAAK,IAAI,MAAM,GAAG,IAAI,IAAI,CAAC;AAAA,IACtC;AACA,WAAO;AAAA,EACX;;;ACXA,WAAS,QAAQ,UAAU,QAAQ;AAC/B,WAAO,WAAW,OAAO,MAAM;AAAA,EACnC;;;ACAA,WAAS,IAAI,MAAM,MAAM;AACrB,WAAO,WAAW,MAAM,MAAM,IAAI,GAAG,aAAa,MAAM,IAAI,CAAC;AAAA,EACjE;;;ACFA,WAAS,MAAM,MAAM,MAAM,QAAQ;AAC/B,UAAMC,SAAQ,QAAQ,MAAM,MAAM,MAAM;AACxC,UAAMC,gBAAe,eAAe,MAAM,MAAM,MAAM;AACtD,WAAO,aAAaD,QAAOC,eAAc,MAAM;AAAA,EACnD;;;ACJA,WAAS,QAAQ,MAAM,MAAM,kBAAkB;AAC3C,UAAMC,SAAQ,UAAU,MAAM,MAAM,gBAAgB;AACpD,UAAMC,gBAAe,iBAAiB,MAAM,MAAM,gBAAgB;AAClE,WAAO,eAAeD,QAAOC,eAAc,gBAAgB;AAAA,EAC/D;;;ACRA,WAAS,OAAO,MAAM;AAClB,QAAI,WAAW;AACf,aAAS,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;AAClC,UAAI,KAAK,CAAC,EAAE,SAAS,UAAU;AAC3B,mBAAW,KAAK,CAAC,EAAE;AAAA,MACvB;AAAA,IACJ;AACA,UAAM,cAAc,KAAK;AACzB,UAAM,SAAS,MAAM,QAAQ;AAC7B,aAAS,IAAI,GAAG,IAAI,UAAU,EAAE,GAAG;AAC/B,YAAM,MAAM,MAAM,WAAW;AAC7B,eAAS,IAAI,GAAG,IAAI,aAAa,EAAE,GAAG;AAClC,YAAI,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;AAAA,MACtB;AACA,aAAO,CAAC,IAAI;AAAA,IAChB;AACA,WAAO;AAAA,EACX;;;ACjBA,WAAS,UAAU,MAAM,QAAQ;AAC7B,UAAM,SAAS,CAAC;AAChB,aAAS,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;AAClC,aAAO,KAAK,CAAC,CAAC,IAAI,OAAO,CAAC;AAAA,IAC9B;AACA,WAAO;AAAA,EACX;;;ACNA,WAAS,QAAQ,SAASC,OAAM;AAC5B,UAAM,OAAO,CAAC,MAAM,GAAGA,MAAK,MAAM,GAAG,EAAE,CAAC;AACxC,UAAM,UAAUA,MAAKA,MAAK,SAAS,CAAC;AACpC,UAAM,WAAW,KAAK,IAAI,GAAG,KAAK,IAAI,SAAO,IAAI,MAAM,CAAC;AACxD,UAAM,SAAS,MAAM,QAAQ;AAC7B,aAAS,IAAI,GAAG,IAAI,UAAU,KAAK;AAC/B,YAAM,WAAW,KAAK,IAAI,SAAO,IAAI,CAAC,CAAC;AACvC,aAAO,CAAC,IAAI,QAAQ,GAAG,QAAQ;AAAA,IACnC;AACA,WAAO;AAAA,EACX;;;ACVA,MAAM,aAAN,cAAyB,MAAM;AAAA,IAC3B,YAAY,UAAU,6BAA6B;AAC/C,YAAM,OAAO;AACb,WAAK,OAAO;AAAA,IAChB;AAAA,EACJ;;;ACLA,MAAM,eAAN,cAA2B,MAAM;AAAA,IAC7B,YAAY,UAAU,+BAA+B;AACjD,YAAM,OAAO;AACb,WAAK,OAAO;AAAA,IAChB;AAAA,EACJ;;;ACLA,WAAS,MAAM,GAAG,MAAM;AACpB,QAAI,CAAC,OAAO,UAAU,CAAC,KAAK,IAAI,GAAG;AAC/B,YAAM,IAAI,MAAM,mCAAmC;AAAA,IACvD;AACA,QAAI,UAAU;AACd,WAAO,IAAI,SAAS;AAChB,UAAI,EAAE,WAAW,GAAG;AAChB,eAAO,KAAK,GAAG,IAAI;AAAA,MACvB;AACA,aAAO;AAAA,IACX;AAAA,EACJ;;;ACXA,WAAS,IAAI,MAAM,GAAG;AAClB,WAAO,YAAa,MAAM;AACtB,aAAO,KAAK,MAAM,MAAM,KAAK,MAAM,GAAG,CAAC,CAAC;AAAA,IAC5C;AAAA,EACJ;;;ACJA,WAAe,YAAY;AAAA;AAAA,IAAE;AAAA;;;ACA7B,WAAS,OAAO,GAAG,MAAM;AACrB,QAAI,CAAC,OAAO,UAAU,CAAC,KAAK,IAAI,GAAG;AAC/B,YAAM,IAAI,MAAM,mCAAmC;AAAA,IACvD;AACA,QAAI,UAAU;AACd,WAAO,IAAI,SAAS;AAChB,UAAI,EAAE,UAAU,GAAG;AACf,eAAO,KAAK,GAAG,IAAI;AAAA,MACvB;AACA,aAAO;AAAA,IACX;AAAA,EACJ;;;ACXA,WAAS,MAAM,MAAM;AACjB,QAAI,KAAK,WAAW,KAAK,KAAK,WAAW,GAAG;AACxC,aAAO;AAAA,IACX;AACA,WAAO,SAAU,KAAK;AAClB,aAAO,UAAU,MAAM,KAAK,QAAQ,CAAC,GAAG,CAAC;AAAA,IAC7C;AAAA,EACJ;AACA,WAAS,UAAU,QAAQ,YAAY,MAAM;AACzC,QAAI,KAAK,WAAW,YAAY;AAC5B,aAAO,OAAO,GAAG,IAAI;AAAA,IACzB,OACK;AACD,YAAM,OAAO,SAAU,KAAK;AACxB,eAAO,UAAU,QAAQ,YAAY,CAAC,GAAG,MAAM,GAAG,CAAC;AAAA,MACvD;AACA,aAAO;AAAA,IACX;AAAA,EACJ;;;AClBA,WAAS,WAAW,MAAM;AACtB,QAAI,KAAK,WAAW,KAAK,KAAK,WAAW,GAAG;AACxC,aAAO;AAAA,IACX;AACA,WAAO,SAAU,KAAK;AAClB,aAAO,eAAe,MAAM,KAAK,QAAQ,CAAC,GAAG,CAAC;AAAA,IAClD;AAAA,EACJ;AACA,WAAS,eAAe,QAAQ,YAAY,MAAM;AAC9C,QAAI,KAAK,WAAW,YAAY;AAC5B,aAAO,OAAO,GAAG,IAAI;AAAA,IACzB,OACK;AACD,YAAM,OAAO,SAAU,KAAK;AACxB,eAAO,eAAe,QAAQ,YAAY,CAAC,KAAK,GAAG,IAAI,CAAC;AAAA,MAC5D;AACA,aAAO;AAAA,IACX;AAAA,EACJ;;;AClBA,WAAS,SAAS,MAAM,YAAY,EAAE,QAAQ,MAAM,IAAI,CAAC,GAAG;AACxD,QAAI,cAAc;AAClB,QAAI,cAAc;AAClB,UAAM,UAAU,SAAS,QAAQ,MAAM,SAAS,SAAS;AACzD,UAAM,WAAW,SAAS,QAAQ,MAAM,SAAS,UAAU;AAC3D,UAAM,SAAS,MAAM;AACjB,UAAI,gBAAgB,MAAM;AACtB,aAAK,MAAM,aAAa,WAAW;AACnC,sBAAc;AACd,sBAAc;AAAA,MAClB;AAAA,IACJ;AACA,UAAM,aAAa,MAAM;AACrB,UAAI,UAAU;AACV,eAAO;AAAA,MACX;AACA,aAAO;AAAA,IACX;AACA,QAAI,YAAY;AAChB,UAAM,WAAW,MAAM;AACnB,UAAI,aAAa,MAAM;AACnB,qBAAa,SAAS;AAAA,MAC1B;AACA,kBAAY,WAAW,MAAM;AACzB,oBAAY;AACZ,mBAAW;AAAA,MACf,GAAG,UAAU;AAAA,IACjB;AACA,UAAM,cAAc,MAAM;AACtB,UAAI,cAAc,MAAM;AACpB,qBAAa,SAAS;AACtB,oBAAY;AAAA,MAChB;AAAA,IACJ;AACA,UAAM,SAAS,MAAM;AACjB,kBAAY;AACZ,oBAAc;AACd,oBAAc;AAAA,IAClB;AACA,UAAM,QAAQ,MAAM;AAChB,aAAO;AAAA,IACX;AACA,UAAM,YAAY,YAAa,MAAM;AACjC,UAAI,iCAAQ,SAAS;AACjB;AAAA,MACJ;AACA,oBAAc;AACd,oBAAc;AACd,YAAM,cAAc,aAAa;AACjC,eAAS;AACT,UAAI,WAAW,aAAa;AACxB,eAAO;AAAA,MACX;AAAA,IACJ;AACA,cAAU,WAAW;AACrB,cAAU,SAAS;AACnB,cAAU,QAAQ;AAClB,qCAAQ,iBAAiB,SAAS,QAAQ,EAAE,MAAM,KAAK;AACvD,WAAO;AAAA,EACX;;;AC3DA,WAAS,QAAQ,OAAO;AACpB,WAAO,YAAa,MAAM;AACtB,UAAI,SAAS,MAAM,SAAS,MAAM,CAAC,EAAE,MAAM,MAAM,IAAI,IAAI,KAAK,CAAC;AAC/D,eAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;AACnC,iBAAS,MAAM,CAAC,EAAE,KAAK,MAAM,MAAM;AAAA,MACvC;AACA,aAAO;AAAA,IACX;AAAA,EACJ;;;ACNA,WAAS,aAAa,OAAO;AACzB,WAAO,KAAK,GAAG,MAAM,QAAQ,CAAC;AAAA,EAClC;;;ACJA,WAAS,SAAS,GAAG;AACjB,WAAO;AAAA,EACX;;;ACFA,WAAS,QAAQ,IAAI,UAAU,CAAC,GAAG;AAC/B,UAAM,EAAE,QAAQ,oBAAI,IAAI,GAAG,YAAY,IAAI;AAC3C,UAAM,aAAa,SAAU,KAAK;AAC9B,YAAM,MAAM,cAAc,YAAY,GAAG,IAAI;AAC7C,UAAI,MAAM,IAAI,GAAG,GAAG;AAChB,eAAO,MAAM,IAAI,GAAG;AAAA,MACxB;AACA,YAAM,SAAS,GAAG,KAAK,MAAM,GAAG;AAChC,YAAM,IAAI,KAAK,MAAM;AACrB,aAAO;AAAA,IACX;AACA,eAAW,QAAQ;AACnB,WAAO;AAAA,EACX;;;ACbA,WAAS,OAAO,MAAM;AAClB,YAAQ,IAAI,SAAS,CAAC,KAAK,GAAG,IAAI;AAAA,EACtC;;;ACFA,WAAS,OAAO;AAAA,EAAE;;;ACAlB,WAAS,KAAK,MAAM;AAChB,QAAI,SAAS;AACb,QAAI;AACJ,WAAO,YAAa,MAAM;AACtB,UAAI,CAAC,QAAQ;AACT,iBAAS;AACT,gBAAQ,KAAK,GAAG,IAAI;AAAA,MACxB;AACA,aAAO;AAAA,IACX;AAAA,EACJ;;;ACVA,WAAS,QAAQ,SAAS,aAAa;AACnC,WAAO,YAAY,MAAM,mBAAmB,GAAG,WAAW;AAAA,EAC9D;AACA,WAAS,YAAY,MAAM,gBAAgB,aAAa;AACpD,UAAM,YAAY,YAAa,cAAc;AACzC,UAAI,oBAAoB;AACxB,YAAM,kBAAkB,YACnB,MAAM,EACN,IAAI,SAAQ,QAAQ,cAAc,aAAa,mBAAmB,IAAI,GAAI;AAC/E,YAAM,gBAAgB,aAAa,MAAM,iBAAiB;AAC1D,aAAO,KAAK,MAAM,MAAM,gBAAgB,OAAO,aAAa,CAAC;AAAA,IACjE;AACA,QAAI,KAAK,WAAW;AAChB,gBAAU,YAAY,OAAO,OAAO,KAAK,SAAS;AAAA,IACtD;AACA,WAAO;AAAA,EACX;AACA,MAAM,oBAAoB,uBAAO,qBAAqB;AACtD,UAAQ,cAAc;;;AClBtB,WAAS,aAAa,SAAS,aAAa;AACxC,WAAO,iBAAiB,MAAMC,oBAAmB,GAAG,WAAW;AAAA,EACnE;AACA,WAAS,iBAAiB,MAAM,gBAAgB,aAAa;AACzD,UAAM,iBAAiB,YAAa,cAAc;AAC9C,YAAM,oBAAoB,YAAY,OAAO,SAAO,QAAQ,WAAW,EAAE;AACzE,YAAM,cAAc,KAAK,IAAI,aAAa,SAAS,mBAAmB,CAAC;AACvE,YAAM,gBAAgB,aAAa,MAAM,GAAG,WAAW;AACvD,UAAI,oBAAoB;AACxB,YAAM,kBAAkB,YACnB,MAAM,EACN,IAAI,SAAQ,QAAQ,cAAc,aAAa,mBAAmB,IAAI,GAAI;AAC/E,aAAO,KAAK,MAAM,MAAM,cAAc,OAAO,eAAe,CAAC;AAAA,IACjE;AACA,QAAI,KAAK,WAAW;AAChB,qBAAe,YAAY,OAAO,OAAO,KAAK,SAAS;AAAA,IAC3D;AACA,WAAO;AAAA,EACX;AACA,MAAMA,qBAAoB,uBAAO,0BAA0B;AAC3D,eAAa,cAAcA;;;ACpB3B,WAAS,KAAK,MAAM,aAAa,KAAK,SAAS,GAAG;AAC9C,WAAO,YAAa,MAAM;AACtB,YAAMC,QAAO,KAAK,MAAM,UAAU;AAClC,YAAM,SAAS,KAAK,MAAM,GAAG,UAAU;AACvC,aAAO,OAAO,SAAS,YAAY;AAC/B,eAAO,KAAK,MAAS;AAAA,MACzB;AACA,aAAO,KAAK,MAAM,MAAM,CAAC,GAAG,QAAQA,KAAI,CAAC;AAAA,IAC7C;AAAA,EACJ;;;ACPA,WAAS,MAAM,IAAI,EAAE,OAAO,IAAI,CAAC,GAAG;AAChC,WAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACpC,YAAM,aAAa,MAAM;AACrB,eAAO,IAAI,WAAW,CAAC;AAAA,MAC3B;AACA,YAAM,eAAe,MAAM;AACvB,qBAAa,SAAS;AACtB,mBAAW;AAAA,MACf;AACA,UAAI,iCAAQ,SAAS;AACjB,eAAO,WAAW;AAAA,MACtB;AACA,YAAM,YAAY,WAAW,MAAM;AAC/B,yCAAQ,oBAAoB,SAAS;AACrC,gBAAQ;AAAA,MACZ,GAAG,EAAE;AACL,uCAAQ,iBAAiB,SAAS,cAAc,EAAE,MAAM,KAAK;AAAA,IACjE,CAAC;AAAA,EACL;;;AClBA,MAAM,gBAAgB;AACtB,MAAM,kBAAkB,OAAO;AAC/B,WAAe,MAAM,MAAM,UAAU;AAAA;AAJrC;AAKI,UAAI;AACJ,UAAI;AACJ,UAAI;AACJ,UAAI,OAAO,aAAa,UAAU;AAC9B,kBAAU;AACV,kBAAU;AACV,iBAAS;AAAA,MACb,OACK;AACD,mBAAU,0CAAU,UAAV,YAAmB;AAC7B,mBAAU,0CAAU,YAAV,YAAqB;AAC/B,iBAAS,qCAAU;AAAA,MACvB;AACA,UAAI;AACJ,eAAS,WAAW,GAAG,WAAW,SAAS,YAAY;AACnD,YAAI,iCAAQ,SAAS;AACjB,gBAAM,wBAAS,IAAI,MAAM,yDAAyD;AAAA,QACtF;AACA,YAAI;AACA,iBAAO,MAAM,KAAK;AAAA,QACtB,SACO,KAAK;AACR,kBAAQ;AACR,gBAAM,eAAe,OAAO,YAAY,aAAa,QAAQ,QAAQ,IAAI;AACzE,gBAAM,MAAM,YAAY;AAAA,QAC5B;AAAA,MACJ;AACA,YAAM;AAAA,IACV;AAAA;;;ACjCA,WAAS,OAAO,MAAM;AAClB,WAAO,SAAU,SAAS;AACtB,aAAO,KAAK,MAAM,MAAM,OAAO;AAAA,IACnC;AAAA,EACJ;;;ACFA,WAAS,SAAS,MAAM,YAAY,EAAE,QAAQ,QAAQ,CAAC,WAAW,UAAU,EAAE,IAAI,CAAC,GAAG;AAClF,QAAI,YAAY;AAChB,UAAM,YAAY,SAAS,MAAM,YAAY,EAAE,QAAQ,MAAM,CAAC;AAC9D,UAAM,YAAY,YAAa,MAAM;AACjC,UAAI,aAAa,MAAM;AACnB,oBAAY,KAAK,IAAI;AAAA,MACzB,OACK;AACD,YAAI,KAAK,IAAI,IAAI,aAAa,YAAY;AACtC,sBAAY,KAAK,IAAI;AACrB,oBAAU,OAAO;AAAA,QACrB;AAAA,MACJ;AACA,gBAAU,MAAM,MAAM,IAAI;AAAA,IAC9B;AACA,cAAU,SAAS,UAAU;AAC7B,cAAU,QAAQ,UAAU;AAC5B,WAAO;AAAA,EACX;;;AClBA,WAAS,MAAM,MAAM;AACjB,WAAO,IAAI,MAAM,CAAC;AAAA,EACtB;;;ACJA,WAAS,MAAM,OAAO,QAAQ,QAAQ;AAClC,QAAI,UAAU,MAAM;AAChB,aAAO,KAAK,IAAI,OAAO,MAAM;AAAA,IACjC;AACA,WAAO,KAAK,IAAI,KAAK,IAAI,OAAO,MAAM,GAAG,MAAM;AAAA,EACnD;;;ACLA,WAAS,QAAQ,OAAO,SAAS,SAAS;AACtC,QAAI,WAAW,MAAM;AACjB,gBAAU;AACV,gBAAU;AAAA,IACd;AACA,QAAI,WAAW,SAAS;AACpB,YAAM,IAAI,MAAM,2DAA2D;AAAA,IAC/E;AACA,WAAO,WAAW,SAAS,QAAQ;AAAA,EACvC;;;ACTA,WAAS,IAAI,MAAM;AACf,QAAI,SAAS;AACb,aAAS,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;AAClC,gBAAU,KAAK,CAAC;AAAA,IACpB;AACA,WAAO;AAAA,EACX;;;ACJA,WAAS,KAAK,MAAM;AAChB,WAAO,IAAI,IAAI,IAAI,KAAK;AAAA,EAC5B;;;ACJA,WAAS,MAAM,OAAO,UAAU;AAC5B,QAAI,SAAS;AACb,aAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;AACnC,gBAAU,SAAS,MAAM,CAAC,GAAG,CAAC;AAAA,IAClC;AACA,WAAO;AAAA,EACX;;;ACJA,WAAS,OAAO,OAAO,UAAU;AAC7B,WAAO,MAAM,OAAO,UAAQ,SAAS,IAAI,CAAC,IAAI,MAAM;AAAA,EACxD;;;ACJA,WAAS,OAAO,MAAM;AAClB,QAAI,KAAK,WAAW,GAAG;AACnB,aAAO;AAAA,IACX;AACA,UAAM,SAAS,KAAK,MAAM,EAAE,KAAK,CAAC,GAAG,MAAM,IAAI,CAAC;AAChD,UAAM,cAAc,KAAK,MAAM,OAAO,SAAS,CAAC;AAChD,QAAI,OAAO,SAAS,MAAM,GAAG;AACzB,cAAQ,OAAO,cAAc,CAAC,IAAI,OAAO,WAAW,KAAK;AAAA,IAC7D,OACK;AACD,aAAO,OAAO,WAAW;AAAA,IAC7B;AAAA,EACJ;;;ACVA,WAAS,SAAS,OAAO,UAAU;AAC/B,UAAM,OAAO,MAAM,IAAI,OAAK,SAAS,CAAC,CAAC;AACvC,WAAO,OAAO,IAAI;AAAA,EACtB;;;ACLA,WAAS,MAAM,OAAO,KAAK,OAAO,GAAG;AACjC,QAAI,OAAO,MAAM;AACb,YAAM;AACN,cAAQ;AAAA,IACZ;AACA,QAAI,CAAC,OAAO,UAAU,IAAI,KAAK,SAAS,GAAG;AACvC,YAAM,IAAI,MAAM,4CAA4C;AAAA,IAChE;AACA,UAAM,SAAS,KAAK,IAAI,KAAK,MAAM,MAAM,SAAS,IAAI,GAAG,CAAC;AAC1D,UAAM,SAAS,IAAI,MAAM,MAAM;AAC/B,aAAS,IAAI,GAAG,IAAI,QAAQ,KAAK;AAC7B,aAAO,CAAC,IAAI,QAAQ,IAAI;AAAA,IAC5B;AACA,WAAO;AAAA,EACX;;;ACdA,WAAS,WAAW,OAAO,KAAK,OAAO,GAAG;AACtC,QAAI,OAAO,MAAM;AACb,YAAM;AACN,cAAQ;AAAA,IACZ;AACA,QAAI,CAAC,OAAO,UAAU,IAAI,KAAK,SAAS,GAAG;AACvC,YAAM,IAAI,MAAM,4CAA4C;AAAA,IAChE;AACA,UAAM,SAAS,KAAK,IAAI,KAAK,MAAM,MAAM,SAAS,IAAI,GAAG,CAAC;AAC1D,UAAM,SAAS,IAAI,MAAM,MAAM;AAC/B,aAAS,IAAI,GAAG,IAAI,QAAQ,KAAK;AAC7B,aAAO,CAAC,IAAI,SAAS,SAAS,IAAI,KAAK;AAAA,IAC3C;AACA,WAAO;AAAA,EACX;;;ACdA,WAAS,MAAM,OAAO,YAAY,GAAG;AACjC,QAAI,CAAC,OAAO,UAAU,SAAS,GAAG;AAC9B,YAAM,IAAI,MAAM,+BAA+B;AAAA,IACnD;AACA,UAAM,aAAa,KAAK,IAAI,IAAI,SAAS;AACzC,WAAO,KAAK,MAAM,QAAQ,UAAU,IAAI;AAAA,EAC5C;;;ACNA,WAAS,YAAY,OAAO;AACxB,WAAO,SAAS,QAAS,OAAO,UAAU,YAAY,OAAO,UAAU;AAAA,EAC3E;;;ACFA,WAAS,aAAa,GAAG;AACrB,WAAO,YAAY,OAAO,CAAC,KAAK,EAAE,aAAa;AAAA,EACnD;;;ACCA,WAASC,OAAM,KAAK;AAChB,QAAI,YAAY,GAAG,GAAG;AAClB,aAAO;AAAA,IACX;AACA,QAAI,MAAM,QAAQ,GAAG,KACjB,aAAa,GAAG,KAChB,eAAe,eACd,OAAO,sBAAsB,eAAe,eAAe,mBAAoB;AAChF,aAAO,IAAI,MAAM,CAAC;AAAA,IACtB;AACA,UAAM,YAAY,OAAO,eAAe,GAAG;AAC3C,UAAM,cAAc,UAAU;AAC9B,QAAI,eAAe,QAAQ,eAAe,OAAO,eAAe,KAAK;AACjE,aAAO,IAAI,YAAY,GAAG;AAAA,IAC9B;AACA,QAAI,eAAe,QAAQ;AACvB,YAAM,YAAY,IAAI,YAAY,GAAG;AACrC,gBAAU,YAAY,IAAI;AAC1B,aAAO;AAAA,IACX;AACA,QAAI,eAAe,UAAU;AACzB,aAAO,IAAI,YAAY,IAAI,OAAO,MAAM,CAAC,CAAC;AAAA,IAC9C;AACA,QAAI,eAAe,OAAO;AACtB,YAAM,WAAW,IAAI,YAAY,IAAI,OAAO;AAC5C,eAAS,QAAQ,IAAI;AACrB,eAAS,OAAO,IAAI;AACpB,eAAS,QAAQ,IAAI;AACrB,aAAO;AAAA,IACX;AACA,QAAI,OAAO,SAAS,eAAe,eAAe,MAAM;AACpD,YAAM,UAAU,IAAI,YAAY,CAAC,GAAG,GAAG,IAAI,MAAM,EAAE,MAAM,IAAI,MAAM,cAAc,IAAI,aAAa,CAAC;AACnG,aAAO;AAAA,IACX;AACA,QAAI,OAAO,QAAQ,UAAU;AACzB,YAAM,YAAY,OAAO,OAAO,SAAS;AACzC,aAAO,OAAO,OAAO,WAAW,GAAG;AAAA,IACvC;AACA,WAAO;AAAA,EACX;;;AC1CA,WAAS,WAAW,QAAQ;AACxB,WAAO,OAAO,sBAAsB,MAAM,EAAE,OAAO,YAAU,OAAO,UAAU,qBAAqB,KAAK,QAAQ,MAAM,CAAC;AAAA,EAC3H;;;ACFA,WAAS,OAAO,OAAO;AACnB,QAAI,SAAS,MAAM;AACf,aAAO,UAAU,SAAY,uBAAuB;AAAA,IACxD;AACA,WAAO,OAAO,UAAU,SAAS,KAAK,KAAK;AAAA,EAC/C;;;ACLA,MAAM,YAAY;AAClB,MAAM,YAAY;AAClB,MAAM,YAAY;AAClB,MAAM,aAAa;AACnB,MAAM,eAAe;AACrB,MAAM,YAAY;AAClB,MAAM,UAAU;AAChB,MAAM,SAAS;AACf,MAAM,SAAS;AACf,MAAM,WAAW;AACjB,MAAM,cAAc;AACpB,MAAM,iBAAiB;AACvB,MAAM,YAAY;AAClB,MAAM,WAAW;AACjB,MAAM,cAAc;AACpB,MAAM,gBAAgB;AACtB,MAAM,uBAAuB;AAC7B,MAAM,iBAAiB;AACvB,MAAM,iBAAiB;AACvB,MAAM,oBAAoB;AAC1B,MAAM,eAAe;AACrB,MAAM,gBAAgB;AACtB,MAAM,gBAAgB;AACtB,MAAM,mBAAmB;AACzB,MAAM,kBAAkB;AACxB,MAAM,kBAAkB;;;ACnBxB,WAAS,cAAc,KAAK,YAAY;AACpC,WAAO,kBAAkB,KAAK,QAAW,KAAK,oBAAI,IAAI,GAAG,UAAU;AAAA,EACvE;AACA,WAAS,kBAAkB,cAAc,YAAY,eAAe,QAAQ,oBAAI,IAAI,GAAG,aAAa,QAAW;AAC3G,UAAM,SAAS,yCAAa,cAAc,YAAY,eAAe;AACrE,QAAI,WAAW,QAAW;AACtB,aAAO;AAAA,IACX;AACA,QAAI,YAAY,YAAY,GAAG;AAC3B,aAAO;AAAA,IACX;AACA,QAAI,MAAM,IAAI,YAAY,GAAG;AACzB,aAAO,MAAM,IAAI,YAAY;AAAA,IACjC;AACA,QAAI,MAAM,QAAQ,YAAY,GAAG;AAC7B,YAAM,SAAS,IAAI,MAAM,aAAa,MAAM;AAC5C,YAAM,IAAI,cAAc,MAAM;AAC9B,eAAS,IAAI,GAAG,IAAI,aAAa,QAAQ,KAAK;AAC1C,eAAO,CAAC,IAAI,kBAAkB,aAAa,CAAC,GAAG,GAAG,eAAe,OAAO,UAAU;AAAA,MACtF;AACA,UAAI,OAAO,OAAO,cAAc,OAAO,GAAG;AACtC,eAAO,QAAQ,aAAa;AAAA,MAChC;AACA,UAAI,OAAO,OAAO,cAAc,OAAO,GAAG;AACtC,eAAO,QAAQ,aAAa;AAAA,MAChC;AACA,aAAO;AAAA,IACX;AACA,QAAI,wBAAwB,MAAM;AAC9B,aAAO,IAAI,KAAK,aAAa,QAAQ,CAAC;AAAA,IAC1C;AACA,QAAI,wBAAwB,QAAQ;AAChC,YAAM,SAAS,IAAI,OAAO,aAAa,QAAQ,aAAa,KAAK;AACjE,aAAO,YAAY,aAAa;AAChC,aAAO;AAAA,IACX;AACA,QAAI,wBAAwB,KAAK;AAC7B,YAAM,SAAS,oBAAI,IAAI;AACvB,YAAM,IAAI,cAAc,MAAM;AAC9B,iBAAW,CAAC,KAAK,KAAK,KAAK,cAAc;AACrC,eAAO,IAAI,KAAK,kBAAkB,OAAO,KAAK,eAAe,OAAO,UAAU,CAAC;AAAA,MACnF;AACA,aAAO;AAAA,IACX;AACA,QAAI,wBAAwB,KAAK;AAC7B,YAAM,SAAS,oBAAI,IAAI;AACvB,YAAM,IAAI,cAAc,MAAM;AAC9B,iBAAW,SAAS,cAAc;AAC9B,eAAO,IAAI,kBAAkB,OAAO,QAAW,eAAe,OAAO,UAAU,CAAC;AAAA,MACpF;AACA,aAAO;AAAA,IACX;AACA,QAAI,OAAO,WAAW,eAAe,OAAO,SAAS,YAAY,GAAG;AAChE,aAAO,aAAa,SAAS;AAAA,IACjC;AACA,QAAI,aAAa,YAAY,GAAG;AAC5B,YAAM,SAAS,KAAK,OAAO,eAAe,YAAY,GAAE,YAAa,aAAa,MAAM;AACxF,YAAM,IAAI,cAAc,MAAM;AAC9B,eAAS,IAAI,GAAG,IAAI,aAAa,QAAQ,KAAK;AAC1C,eAAO,CAAC,IAAI,kBAAkB,aAAa,CAAC,GAAG,GAAG,eAAe,OAAO,UAAU;AAAA,MACtF;AACA,aAAO;AAAA,IACX;AACA,QAAI,wBAAwB,eACvB,OAAO,sBAAsB,eAAe,wBAAwB,mBAAoB;AACzF,aAAO,aAAa,MAAM,CAAC;AAAA,IAC/B;AACA,QAAI,wBAAwB,UAAU;AAClC,YAAM,SAAS,IAAI,SAAS,aAAa,OAAO,MAAM,CAAC,GAAG,aAAa,YAAY,aAAa,UAAU;AAC1G,YAAM,IAAI,cAAc,MAAM;AAC9B,qBAAe,QAAQ,cAAc,eAAe,OAAO,UAAU;AACrE,aAAO;AAAA,IACX;AACA,QAAI,OAAO,SAAS,eAAe,wBAAwB,MAAM;AAC7D,YAAM,SAAS,IAAI,KAAK,CAAC,YAAY,GAAG,aAAa,MAAM;AAAA,QACvD,MAAM,aAAa;AAAA,MACvB,CAAC;AACD,YAAM,IAAI,cAAc,MAAM;AAC9B,qBAAe,QAAQ,cAAc,eAAe,OAAO,UAAU;AACrE,aAAO;AAAA,IACX;AACA,QAAI,OAAO,SAAS,eAAe,wBAAwB,MAAM;AAC7D,YAAM,SAAS,IAAI,KAAK,CAAC,YAAY,GAAG,EAAE,MAAM,aAAa,KAAK,CAAC;AACnE,YAAM,IAAI,cAAc,MAAM;AAC9B,qBAAe,QAAQ,cAAc,eAAe,OAAO,UAAU;AACrE,aAAO;AAAA,IACX;AACA,QAAI,wBAAwB,OAAO;AAC/B,YAAM,SAAS,IAAI,aAAa,YAAY;AAC5C,YAAM,IAAI,cAAc,MAAM;AAC9B,aAAO,UAAU,aAAa;AAC9B,aAAO,OAAO,aAAa;AAC3B,aAAO,QAAQ,aAAa;AAC5B,aAAO,QAAQ,aAAa;AAC5B,qBAAe,QAAQ,cAAc,eAAe,OAAO,UAAU;AACrE,aAAO;AAAA,IACX;AACA,QAAI,wBAAwB,SAAS;AACjC,YAAM,SAAS,IAAI,QAAQ,aAAa,QAAQ,CAAC;AACjD,YAAM,IAAI,cAAc,MAAM;AAC9B,qBAAe,QAAQ,cAAc,eAAe,OAAO,UAAU;AACrE,aAAO;AAAA,IACX;AACA,QAAI,wBAAwB,QAAQ;AAChC,YAAM,SAAS,IAAI,OAAO,aAAa,QAAQ,CAAC;AAChD,YAAM,IAAI,cAAc,MAAM;AAC9B,qBAAe,QAAQ,cAAc,eAAe,OAAO,UAAU;AACrE,aAAO;AAAA,IACX;AACA,QAAI,wBAAwB,QAAQ;AAChC,YAAM,SAAS,IAAI,OAAO,aAAa,QAAQ,CAAC;AAChD,YAAM,IAAI,cAAc,MAAM;AAC9B,qBAAe,QAAQ,cAAc,eAAe,OAAO,UAAU;AACrE,aAAO;AAAA,IACX;AACA,QAAI,OAAO,iBAAiB,YAAY,kBAAkB,YAAY,GAAG;AACrE,YAAM,SAAS,OAAO,OAAO,OAAO,eAAe,YAAY,CAAC;AAChE,YAAM,IAAI,cAAc,MAAM;AAC9B,qBAAe,QAAQ,cAAc,eAAe,OAAO,UAAU;AACrE,aAAO;AAAA,IACX;AACA,WAAO;AAAA,EACX;AACA,WAAS,eAAe,QAAQ,QAAQ,gBAAgB,QAAQ,OAAO,YAAY;AAC/E,UAAM,OAAO,CAAC,GAAG,OAAO,KAAK,MAAM,GAAG,GAAG,WAAW,MAAM,CAAC;AAC3D,aAAS,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;AAClC,YAAM,MAAM,KAAK,CAAC;AAClB,YAAM,aAAa,OAAO,yBAAyB,QAAQ,GAAG;AAC9D,UAAI,cAAc,QAAQ,WAAW,UAAU;AAC3C,eAAO,GAAG,IAAI,kBAAkB,OAAO,GAAG,GAAG,KAAK,eAAe,OAAO,UAAU;AAAA,MACtF;AAAA,IACJ;AAAA,EACJ;AACA,WAAS,kBAAkB,QAAQ;AAC/B,YAAQ,OAAO,MAAM,GAAG;AAAA,MACpB,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK,gBAAgB;AACjB,eAAO;AAAA,MACX;AAAA,MACA,SAAS;AACL,eAAO;AAAA,MACX;AAAA,IACJ;AAAA,EACJ;;;ACvKA,WAAS,UAAU,KAAK;AACpB,WAAO,kBAAkB,KAAK,QAAW,KAAK,oBAAI,IAAI,GAAG,MAAS;AAAA,EACtE;;;ACJA,WAAS,QAAQ,KAAK,WAAW;AAC7B,UAAM,OAAO,OAAO,KAAK,GAAG;AAC5B,WAAO,KAAK,KAAK,SAAO,UAAU,IAAI,GAAG,GAAG,KAAK,GAAG,CAAC;AAAA,EACzD;;;ACHA,WAAS,cAAc,OAAO;AAC1B,QAAI,CAAC,SAAS,OAAO,UAAU,UAAU;AACrC,aAAO;AAAA,IACX;AACA,UAAM,QAAQ,OAAO,eAAe,KAAK;AACzC,UAAM,qBAAqB,UAAU,QACjC,UAAU,OAAO,aACjB,OAAO,eAAe,KAAK,MAAM;AACrC,QAAI,CAAC,oBAAoB;AACrB,aAAO;AAAA,IACX;AACA,WAAO,OAAO,UAAU,SAAS,KAAK,KAAK,MAAM;AAAA,EACrD;;;ACVA,WAAS,cAAc,QAAQ,EAAE,YAAY,IAAI,IAAI,CAAC,GAAG;AACrD,WAAO,kBAAkB,QAAQ,IAAI,SAAS;AAAA,EAClD;AACA,WAAS,kBAAkB,QAAQ,QAAQ,WAAW;AAClD,UAAM,SAAS,CAAC;AAChB,UAAM,OAAO,OAAO,KAAK,MAAM;AAC/B,aAAS,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;AAClC,YAAM,MAAM,KAAK,CAAC;AAClB,YAAM,QAAQ,OAAO,GAAG;AACxB,YAAM,cAAc,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,GAAG,KAAK;AAC7D,UAAI,cAAc,KAAK,KAAK,OAAO,KAAK,KAAK,EAAE,SAAS,GAAG;AACvD,eAAO,OAAO,QAAQ,kBAAkB,OAAO,aAAa,SAAS,CAAC;AACtE;AAAA,MACJ;AACA,UAAI,MAAM,QAAQ,KAAK,GAAG;AACtB,eAAO,OAAO,QAAQ,kBAAkB,OAAO,aAAa,SAAS,CAAC;AACtE;AAAA,MACJ;AACA,aAAO,WAAW,IAAI;AAAA,IAC1B;AACA,WAAO;AAAA,EACX;;;ACvBA,WAAS,OAAO,KAAK;AACjB,UAAM,SAAS,CAAC;AAChB,UAAM,OAAO,OAAO,KAAK,GAAG;AAC5B,aAAS,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;AAClC,YAAM,MAAM,KAAK,CAAC;AAClB,YAAM,QAAQ,IAAI,GAAG;AACrB,aAAO,KAAK,IAAI;AAAA,IACpB;AACA,WAAO;AAAA,EACX;;;ACTA,WAAS,QAAQ,QAAQ,WAAW;AAChC,UAAM,SAAS,CAAC;AAChB,UAAM,OAAO,OAAO,KAAK,MAAM;AAC/B,aAAS,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;AAClC,YAAM,MAAM,KAAK,CAAC;AAClB,YAAM,QAAQ,OAAO,GAAG;AACxB,aAAO,UAAU,OAAO,KAAK,MAAM,CAAC,IAAI;AAAA,IAC5C;AACA,WAAO;AAAA,EACX;;;ACTA,WAAS,UAAU,QAAQ,aAAa;AACpC,UAAM,SAAS,CAAC;AAChB,UAAM,OAAO,OAAO,KAAK,MAAM;AAC/B,aAAS,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;AAClC,YAAM,MAAM,KAAK,CAAC;AAClB,YAAM,QAAQ,OAAO,GAAG;AACxB,aAAO,GAAG,IAAI,YAAY,OAAO,KAAK,MAAM;AAAA,IAChD;AACA,WAAO;AAAA,EACX;;;ACTA,WAAS,iBAAiB,KAAK;AAC3B,WAAO,QAAQ;AAAA,EACnB;;;ACCA,WAAS,MAAM,QAAQ,QAAQ;AAC3B,UAAM,aAAa,OAAO,KAAK,MAAM;AACrC,aAAS,IAAI,GAAG,IAAI,WAAW,QAAQ,KAAK;AACxC,YAAM,MAAM,WAAW,CAAC;AACxB,UAAI,iBAAiB,GAAG,GAAG;AACvB;AAAA,MACJ;AACA,YAAM,cAAc,OAAO,GAAG;AAC9B,YAAM,cAAc,OAAO,GAAG;AAC9B,UAAI,MAAM,QAAQ,WAAW,GAAG;AAC5B,YAAI,MAAM,QAAQ,WAAW,GAAG;AAC5B,iBAAO,GAAG,IAAI,MAAM,aAAa,WAAW;AAAA,QAChD,OACK;AACD,iBAAO,GAAG,IAAI,MAAM,CAAC,GAAG,WAAW;AAAA,QACvC;AAAA,MACJ,WACS,cAAc,WAAW,GAAG;AACjC,YAAI,cAAc,WAAW,GAAG;AAC5B,iBAAO,GAAG,IAAI,MAAM,aAAa,WAAW;AAAA,QAChD,OACK;AACD,iBAAO,GAAG,IAAI,MAAM,CAAC,GAAG,WAAW;AAAA,QACvC;AAAA,MACJ,WACS,gBAAgB,UAAa,gBAAgB,QAAW;AAC7D,eAAO,GAAG,IAAI;AAAA,MAClB;AAAA,IACJ;AACA,WAAO;AAAA,EACX;;;AC9BA,WAAS,UAAU,QAAQ,QAAQC,QAAO;AACtC,UAAM,aAAa,OAAO,KAAK,MAAM;AACrC,aAAS,IAAI,GAAG,IAAI,WAAW,QAAQ,KAAK;AACxC,YAAM,MAAM,WAAW,CAAC;AACxB,UAAI,iBAAiB,GAAG,GAAG;AACvB;AAAA,MACJ;AACA,YAAM,cAAc,OAAO,GAAG;AAC9B,YAAM,cAAc,OAAO,GAAG;AAC9B,YAAM,SAASA,OAAM,aAAa,aAAa,KAAK,QAAQ,MAAM;AAClE,UAAI,WAAW,QAAW;AACtB,eAAO,GAAG,IAAI;AAAA,MAClB,WACS,MAAM,QAAQ,WAAW,GAAG;AACjC,YAAI,MAAM,QAAQ,WAAW,GAAG;AAC5B,iBAAO,GAAG,IAAI,UAAU,aAAa,aAAaA,MAAK;AAAA,QAC3D,OACK;AACD,iBAAO,GAAG,IAAI,UAAU,CAAC,GAAG,aAAaA,MAAK;AAAA,QAClD;AAAA,MACJ,WACS,cAAc,WAAW,GAAG;AACjC,YAAI,cAAc,WAAW,GAAG;AAC5B,iBAAO,GAAG,IAAI,UAAU,aAAa,aAAaA,MAAK;AAAA,QAC3D,OACK;AACD,iBAAO,GAAG,IAAI,UAAU,CAAC,GAAG,aAAaA,MAAK;AAAA,QAClD;AAAA,MACJ,WACS,gBAAgB,UAAa,gBAAgB,QAAW;AAC7D,eAAO,GAAG,IAAI;AAAA,MAClB;AAAA,IACJ;AACA,WAAO;AAAA,EACX;;;ACrCA,WAAS,KAAK,KAAK,MAAM;AACrB,UAAM,SAAS,mBAAK;AACpB,aAAS,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;AAClC,YAAM,MAAM,KAAK,CAAC;AAClB,aAAO,OAAO,GAAG;AAAA,IACrB;AACA,WAAO;AAAA,EACX;;;ACPA,WAAS,OAAO,KAAK,YAAY;AAC7B,UAAM,SAAS,CAAC;AAChB,UAAM,OAAO,OAAO,KAAK,GAAG;AAC5B,aAAS,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;AAClC,YAAM,MAAM,KAAK,CAAC;AAClB,YAAM,QAAQ,IAAI,GAAG;AACrB,UAAI,CAAC,WAAW,OAAO,GAAG,GAAG;AACzB,eAAO,GAAG,IAAI;AAAA,MAClB;AAAA,IACJ;AACA,WAAO;AAAA,EACX;;;ACXA,WAAS,KAAK,KAAK,MAAM;AACrB,UAAM,SAAS,CAAC;AAChB,aAAS,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;AAClC,YAAM,MAAM,KAAK,CAAC;AAClB,UAAI,OAAO,OAAO,KAAK,GAAG,GAAG;AACzB,eAAO,GAAG,IAAI,IAAI,GAAG;AAAA,MACzB;AAAA,IACJ;AACA,WAAO;AAAA,EACX;;;ACTA,WAAS,OAAO,KAAK,YAAY;AAC7B,UAAM,SAAS,CAAC;AAChB,UAAM,OAAO,OAAO,KAAK,GAAG;AAC5B,aAAS,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;AAClC,YAAM,MAAM,KAAK,CAAC;AAClB,YAAM,QAAQ,IAAI,GAAG;AACrB,UAAI,WAAW,OAAO,GAAG,GAAG;AACxB,eAAO,GAAG,IAAI;AAAA,MAClB;AAAA,IACJ;AACA,WAAO;AAAA,EACX;;;ACXA,WAAS,QAAQ,OAAO;AACpB,WAAO,MAAM,QAAQ,KAAK;AAAA,EAC9B;;;ACFA,WAAS,WAAW,KAAK;AACrB,WAAQ,IAAI,OAAO,CAAC,EAAE,YAAY,IAAI,IAAI,MAAM,CAAC,EAAE,YAAY;AAAA,EACnE;;;ACFA,MAAM,qBAAqB,WAAC,0GAAgG,IAAE;AAC9H,WAAS,MAAM,KAAK;AADpB;AAEI,WAAO,MAAM,MAAK,SAAI,MAAM,kBAAkB,MAA5B,YAAiC,CAAC,CAAC;AAAA,EACzD;;;ACAA,WAAS,UAAU,KAAK;AACpB,UAAM,UAAU,MAAM,GAAG;AACzB,QAAI,QAAQ,WAAW,GAAG;AACtB,aAAO;AAAA,IACX;AACA,UAAM,CAAC,OAAO,GAAGC,KAAI,IAAI;AACzB,WAAO,GAAG,MAAM,YAAY,CAAC,GAAGA,MAAK,IAAI,UAAQ,WAAW,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC;AAAA,EAC/E;;;ACNA,WAAS,gBAAgB,KAAK;AAC1B,QAAI,QAAQ,GAAG,GAAG;AACd,aAAO,IAAI,IAAI,UAAQ,gBAAgB,IAAI,CAAC;AAAA,IAChD;AACA,QAAI,cAAc,GAAG,GAAG;AACpB,YAAM,SAAS,CAAC;AAChB,YAAM,OAAO,OAAO,KAAK,GAAG;AAC5B,eAAS,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;AAClC,cAAM,MAAM,KAAK,CAAC;AAClB,cAAM,WAAW,UAAU,GAAG;AAC9B,cAAM,iBAAiB,gBAAgB,IAAI,GAAG,CAAC;AAC/C,eAAO,QAAQ,IAAI;AAAA,MACvB;AACA,aAAO;AAAA,IACX;AACA,WAAO;AAAA,EACX;;;AChBA,WAAS,SAAS,QAAQ,QAAQ;AAC9B,WAAO,UAAUC,OAAM,MAAM,GAAG,QAAQ,SAAS,iBAAiB,aAAa,aAAa;AACxF,UAAI,MAAM,QAAQ,WAAW,GAAG;AAC5B,YAAI,MAAM,QAAQ,WAAW,GAAG;AAC5B,iBAAO,UAAUA,OAAM,WAAW,GAAG,aAAa,gBAAgB;AAAA,QACtE,OACK;AACD,iBAAO,UAAU,CAAC,GAAG,aAAa,gBAAgB;AAAA,QACtD;AAAA,MACJ,WACS,cAAc,WAAW,GAAG;AACjC,YAAI,cAAc,WAAW,GAAG;AAC5B,iBAAO,UAAUA,OAAM,WAAW,GAAG,aAAa,gBAAgB;AAAA,QACtE,OACK;AACD,iBAAO,UAAU,CAAC,GAAG,aAAa,gBAAgB;AAAA,QACtD;AAAA,MACJ;AAAA,IACJ,CAAC;AAAA,EACL;;;ACvBA,WAASC,eAAc,QAAQ;AAA/B;AACI,QAAI,OAAO,WAAW,UAAU;AAC5B,aAAO;AAAA,IACX;AACA,QAAI,UAAU,MAAM;AAChB,aAAO;AAAA,IACX;AACA,QAAI,OAAO,eAAe,MAAM,MAAM,MAAM;AACxC,aAAO;AAAA,IACX;AACA,QAAI,OAAO,UAAU,SAAS,KAAK,MAAM,MAAM,mBAAmB;AAC9D,YAAM,MAAM,OAAO,OAAO,WAAW;AACrC,UAAI,OAAO,MAAM;AACb,eAAO;AAAA,MACX;AACA,YAAM,gBAAgB,GAAC,YAAO,yBAAyB,QAAQ,OAAO,WAAW,MAA1D,mBAA6D;AACpF,UAAI,eAAe;AACf,eAAO;AAAA,MACX;AACA,aAAO,OAAO,SAAS,MAAM,WAAW,GAAG;AAAA,IAC/C;AACA,QAAI,QAAQ;AACZ,WAAO,OAAO,eAAe,KAAK,MAAM,MAAM;AAC1C,cAAQ,OAAO,eAAe,KAAK;AAAA,IACvC;AACA,WAAO,OAAO,eAAe,MAAM,MAAM;AAAA,EAC7C;;;ACxBA,WAAS,UAAU,KAAK;AACpB,UAAM,UAAU,MAAM,GAAG;AACzB,WAAO,QAAQ,IAAI,UAAQ,KAAK,YAAY,CAAC,EAAE,KAAK,GAAG;AAAA,EAC3D;;;ACDA,WAAS,gBAAgB,KAAK;AAC1B,QAAI,QAAQ,GAAG,GAAG;AACd,aAAO,IAAI,IAAI,UAAQ,gBAAgB,IAAI,CAAC;AAAA,IAChD;AACA,QAAIC,eAAc,GAAG,GAAG;AACpB,YAAM,SAAS,CAAC;AAChB,YAAM,OAAO,OAAO,KAAK,GAAG;AAC5B,eAAS,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;AAClC,cAAM,MAAM,KAAK,CAAC;AAClB,cAAM,WAAW,UAAU,GAAG;AAC9B,cAAM,iBAAiB,gBAAgB,IAAI,GAAG,CAAC;AAC/C,eAAO,QAAQ,IAAI;AAAA,MACvB;AACA,aAAO;AAAA,IACX;AACA,WAAO;AAAA,EACX;;;ACpBA,WAAS,cAAc,OAAO;AAC1B,WAAO,iBAAiB;AAAA,EAC5B;;;ACFA,WAAS,OAAO,GAAG;AACf,QAAI,OAAO,SAAS,aAAa;AAC7B,aAAO;AAAA,IACX;AACA,WAAO,aAAa;AAAA,EACxB;;;ACLA,WAAS,UAAU,GAAG;AAClB,WAAO,OAAO,MAAM;AAAA,EACxB;;;ACFA,WAAS,YAAY;AACjB,WAAO,OAAO,WAAW,gBAAe,iCAAQ,aAAY;AAAA,EAChE;;;ACFA,WAAS,SAAS,GAAG;AACjB,WAAO,OAAO,WAAW,eAAe,OAAO,SAAS,CAAC;AAAA,EAC7D;;;ACFA,WAAS,OAAO,OAAO;AACnB,WAAO,iBAAiB;AAAA,EAC5B;;;ACFA,WAAS,GAAG,OAAO,OAAO;AACtB,WAAO,UAAU,SAAU,OAAO,MAAM,KAAK,KAAK,OAAO,MAAM,KAAK;AAAA,EACxE;;;ACIA,WAAS,YAAY,GAAG,GAAG,gBAAgB;AACvC,WAAO,gBAAgB,GAAG,GAAG,QAAW,QAAW,QAAW,QAAW,cAAc;AAAA,EAC3F;AACA,WAAS,gBAAgB,GAAG,GAAG,UAAU,SAAS,SAAS,OAAO,gBAAgB;AAC9E,UAAM,SAAS,eAAe,GAAG,GAAG,UAAU,SAAS,SAAS,KAAK;AACrE,QAAI,WAAW,QAAW;AACtB,aAAO;AAAA,IACX;AACA,QAAI,OAAO,MAAM,OAAO,GAAG;AACvB,cAAQ,OAAO,GAAG;AAAA,QACd,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK,aAAa;AACd,iBAAO,MAAM;AAAA,QACjB;AAAA,QACA,KAAK,UAAU;AACX,iBAAO,MAAM,KAAK,OAAO,GAAG,GAAG,CAAC;AAAA,QACpC;AAAA,QACA,KAAK,YAAY;AACb,iBAAO,MAAM;AAAA,QACjB;AAAA,QACA,KAAK,UAAU;AACX,iBAAO,gBAAgB,GAAG,GAAG,OAAO,cAAc;AAAA,QACtD;AAAA,MACJ;AAAA,IACJ;AACA,WAAO,gBAAgB,GAAG,GAAG,OAAO,cAAc;AAAA,EACtD;AACA,WAAS,gBAAgB,GAAG,GAAG,OAAO,gBAAgB;AAClD,QAAI,OAAO,GAAG,GAAG,CAAC,GAAG;AACjB,aAAO;AAAA,IACX;AACA,QAAI,OAAO,OAAO,CAAC;AACnB,QAAI,OAAO,OAAO,CAAC;AACnB,QAAI,SAAS,cAAc;AACvB,aAAO;AAAA,IACX;AACA,QAAI,SAAS,cAAc;AACvB,aAAO;AAAA,IACX;AACA,QAAI,SAAS,MAAM;AACf,aAAO;AAAA,IACX;AACA,YAAQ,MAAM;AAAA,MACV,KAAK;AACD,eAAO,EAAE,SAAS,MAAM,EAAE,SAAS;AAAA,MACvC,KAAK,WAAW;AACZ,cAAM,IAAI,EAAE,QAAQ;AACpB,cAAM,IAAI,EAAE,QAAQ;AACpB,eAAO,GAAG,GAAG,CAAC;AAAA,MAClB;AAAA,MACA,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AACD,eAAO,OAAO,GAAG,EAAE,QAAQ,GAAG,EAAE,QAAQ,CAAC;AAAA,MAC7C,KAAK,WAAW;AACZ,eAAO,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE;AAAA,MAClD;AAAA,MACA,KAAK,aAAa;AACd,eAAO,MAAM;AAAA,MACjB;AAAA,IACJ;AACA,YAAQ,wBAAS,oBAAI,IAAI;AACzB,UAAM,SAAS,MAAM,IAAI,CAAC;AAC1B,UAAM,SAAS,MAAM,IAAI,CAAC;AAC1B,QAAI,UAAU,QAAQ,UAAU,MAAM;AAClC,aAAO,WAAW;AAAA,IACtB;AACA,UAAM,IAAI,GAAG,CAAC;AACd,UAAM,IAAI,GAAG,CAAC;AACd,QAAI;AACA,cAAQ,MAAM;AAAA,QACV,KAAK,QAAQ;AACT,cAAI,EAAE,SAAS,EAAE,MAAM;AACnB,mBAAO;AAAA,UACX;AACA,qBAAW,CAAC,KAAK,KAAK,KAAK,EAAE,QAAQ,GAAG;AACpC,gBAAI,CAAC,EAAE,IAAI,GAAG,KAAK,CAAC,gBAAgB,OAAO,EAAE,IAAI,GAAG,GAAG,KAAK,GAAG,GAAG,OAAO,cAAc,GAAG;AACtF,qBAAO;AAAA,YACX;AAAA,UACJ;AACA,iBAAO;AAAA,QACX;AAAA,QACA,KAAK,QAAQ;AACT,cAAI,EAAE,SAAS,EAAE,MAAM;AACnB,mBAAO;AAAA,UACX;AACA,gBAAM,UAAU,MAAM,KAAK,EAAE,OAAO,CAAC;AACrC,gBAAM,UAAU,MAAM,KAAK,EAAE,OAAO,CAAC;AACrC,mBAAS,IAAI,GAAG,IAAI,QAAQ,QAAQ,KAAK;AACrC,kBAAM,SAAS,QAAQ,CAAC;AACxB,kBAAM,QAAQ,QAAQ,UAAU,YAAU;AACtC,qBAAO,gBAAgB,QAAQ,QAAQ,QAAW,GAAG,GAAG,OAAO,cAAc;AAAA,YACjF,CAAC;AACD,gBAAI,UAAU,IAAI;AACd,qBAAO;AAAA,YACX;AACA,oBAAQ,OAAO,OAAO,CAAC;AAAA,UAC3B;AACA,iBAAO;AAAA,QACX;AAAA,QACA,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK,iBAAiB;AAClB,cAAI,OAAO,WAAW,eAAe,OAAO,SAAS,CAAC,MAAM,OAAO,SAAS,CAAC,GAAG;AAC5E,mBAAO;AAAA,UACX;AACA,cAAI,EAAE,WAAW,EAAE,QAAQ;AACvB,mBAAO;AAAA,UACX;AACA,mBAAS,IAAI,GAAG,IAAI,EAAE,QAAQ,KAAK;AAC/B,gBAAI,CAAC,gBAAgB,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,OAAO,cAAc,GAAG;AAC9D,qBAAO;AAAA,YACX;AAAA,UACJ;AACA,iBAAO;AAAA,QACX;AAAA,QACA,KAAK,gBAAgB;AACjB,cAAI,EAAE,eAAe,EAAE,YAAY;AAC/B,mBAAO;AAAA,UACX;AACA,iBAAO,gBAAgB,IAAI,WAAW,CAAC,GAAG,IAAI,WAAW,CAAC,GAAG,OAAO,cAAc;AAAA,QACtF;AAAA,QACA,KAAK,aAAa;AACd,cAAI,EAAE,eAAe,EAAE,cAAc,EAAE,eAAe,EAAE,YAAY;AAChE,mBAAO;AAAA,UACX;AACA,iBAAO,gBAAgB,IAAI,WAAW,CAAC,GAAG,IAAI,WAAW,CAAC,GAAG,OAAO,cAAc;AAAA,QACtF;AAAA,QACA,KAAK,UAAU;AACX,iBAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE;AAAA,QAChD;AAAA,QACA,KAAK,WAAW;AACZ,gBAAM,oBAAoB,gBAAgB,EAAE,aAAa,EAAE,aAAa,OAAO,cAAc,KACxF,cAAc,CAAC,KAAK,cAAc,CAAC;AACxC,cAAI,CAAC,mBAAmB;AACpB,mBAAO;AAAA,UACX;AACA,gBAAM,QAAQ,CAAC,GAAG,OAAO,KAAK,CAAC,GAAG,GAAG,WAAW,CAAC,CAAC;AAClD,gBAAM,QAAQ,CAAC,GAAG,OAAO,KAAK,CAAC,GAAG,GAAG,WAAW,CAAC,CAAC;AAClD,cAAI,MAAM,WAAW,MAAM,QAAQ;AAC/B,mBAAO;AAAA,UACX;AACA,mBAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;AACnC,kBAAM,UAAU,MAAM,CAAC;AACvB,kBAAM,QAAQ,EAAE,OAAO;AACvB,gBAAI,CAAC,OAAO,OAAO,GAAG,OAAO,GAAG;AAC5B,qBAAO;AAAA,YACX;AACA,kBAAM,QAAQ,EAAE,OAAO;AACvB,gBAAI,CAAC,gBAAgB,OAAO,OAAO,SAAS,GAAG,GAAG,OAAO,cAAc,GAAG;AACtE,qBAAO;AAAA,YACX;AAAA,UACJ;AACA,iBAAO;AAAA,QACX;AAAA,QACA,SAAS;AACL,iBAAO;AAAA,QACX;AAAA,MACJ;AAAA,IACJ,UACA;AACI,YAAM,OAAO,CAAC;AACd,YAAM,OAAO,CAAC;AAAA,IAClB;AAAA,EACJ;;;ACnLA,WAAS,QAAQ,GAAG,GAAG;AACnB,WAAO,YAAY,GAAG,GAAG,IAAI;AAAA,EACjC;;;ACLA,WAAS,QAAQ,OAAO;AACpB,WAAO,iBAAiB;AAAA,EAC5B;;;ACAA,WAAS,OAAO,GAAG;AACf,QAAI,OAAO,SAAS,aAAa;AAC7B,aAAO;AAAA,IACX;AACA,WAAO,OAAO,CAAC,KAAK,aAAa;AAAA,EACrC;;;ACPA,WAAS,WAAW,OAAO;AACvB,WAAO,OAAO,UAAU;AAAA,EAC5B;;;ACFA,WAAS,OAAO,OAAO;AACnB,QAAI,OAAO,UAAU,UAAU;AAC3B,aAAO;AAAA,IACX;AACA,QAAI;AACA,WAAK,MAAM,KAAK;AAChB,aAAO;AAAA,IACX,SACM;AACF,aAAO;AAAA,IACX;AAAA,EACJ;;;ACTA,WAAS,YAAY,OAAO;AACxB,YAAQ,OAAO,OAAO;AAAA,MAClB,KAAK,UAAU;AACX,eAAO,UAAU,QAAQ,YAAY,KAAK,KAAK,aAAa,KAAK;AAAA,MACrE;AAAA,MACA,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK,WAAW;AACZ,eAAO;AAAA,MACX;AAAA,MACA,SAAS;AACL,eAAO;AAAA,MACX;AAAA,IACJ;AAAA,EACJ;AACA,WAAS,YAAY,OAAO;AACxB,QAAI,CAAC,MAAM,QAAQ,KAAK,GAAG;AACvB,aAAO;AAAA,IACX;AACA,WAAO,MAAM,MAAM,UAAQ,YAAY,IAAI,CAAC;AAAA,EAChD;AACA,WAAS,aAAa,KAAK;AACvB,QAAI,CAAC,cAAc,GAAG,GAAG;AACrB,aAAO;AAAA,IACX;AACA,UAAM,OAAO,QAAQ,QAAQ,GAAG;AAChC,aAAS,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;AAClC,YAAM,MAAM,KAAK,CAAC;AAClB,YAAM,QAAQ,IAAI,GAAG;AACrB,UAAI,OAAO,QAAQ,UAAU;AACzB,eAAO;AAAA,MACX;AACA,UAAI,CAAC,YAAY,KAAK,GAAG;AACrB,eAAO;AAAA,MACX;AAAA,IACJ;AACA,WAAO;AAAA,EACX;;;ACvCA,WAAS,SAAS,OAAO;AACrB,WAAO,OAAO,cAAc,KAAK,KAAK,SAAS;AAAA,EACnD;;;ACFA,WAAS,MAAM,OAAO;AAClB,WAAO,iBAAiB;AAAA,EAC5B;;;ACFA,WAAS,MAAM,GAAG;AACd,WAAO,KAAK;AAAA,EAChB;;;ACFA,WAAS,SAAS;AAAlB;AACI,WAAO,OAAO,YAAY,iBAAe,wCAAS,aAAT,mBAAmB,SAAQ;AAAA,EACxE;;;ACFA,WAAS,SAAS,GAAG;AACjB,WAAO,KAAK;AAAA,EAChB;;;ACFA,WAAS,OAAO,GAAG;AACf,WAAO,MAAM;AAAA,EACjB;;;ACFA,WAAS,UAAU,OAAO;AACtB,WAAO,iBAAiB;AAAA,EAC5B;;;ACFA,WAAS,SAAS,OAAO;AACrB,WAAO,iBAAiB;AAAA,EAC5B;;;ACFA,WAAS,MAAM,OAAO;AAClB,WAAO,iBAAiB;AAAA,EAC5B;;;ACFA,WAAS,SAAS,OAAO;AACrB,WAAO,OAAO,UAAU;AAAA,EAC5B;;;ACFA,WAASC,UAAS,OAAO;AACrB,WAAO,OAAO,UAAU;AAAA,EAC5B;;;ACFA,WAAS,YAAY,GAAG;AACpB,WAAO,MAAM;AAAA,EACjB;;;ACFA,WAAS,UAAU,OAAO;AACtB,WAAO,iBAAiB;AAAA,EAC5B;;;ACFA,WAAS,UAAU,OAAO;AACtB,WAAO,iBAAiB;AAAA,EAC5B;;;ACAA,MAAM,QAAN,MAAY;AAAA,IAAZ;AACI,uCAAY,IAAI,UAAU,CAAC;AAAA;AAAA,IAC3B,IAAI,WAAW;AACX,aAAO,KAAK,UAAU,cAAc;AAAA,IACxC;AAAA,IACM,UAAU;AAAA;AACZ,eAAO,KAAK,UAAU,QAAQ;AAAA,MAClC;AAAA;AAAA,IACA,UAAU;AACN,WAAK,UAAU,QAAQ;AAAA,IAC3B;AAAA,EACJ;;;ACVA,WAAe,QAAQ,IAAI;AAAA;AACvB,YAAM,MAAM,EAAE;AACd,YAAM,IAAI,aAAa;AAAA,IAC3B;AAAA;;;ACJA,WAAe,YAAY,KAAK,IAAI;AAAA;AAChC,aAAO,QAAQ,KAAK,CAAC,IAAI,GAAG,QAAQ,EAAE,CAAC,CAAC;AAAA,IAC5C;AAAA;;;ACFA,WAAS,aAAa,KAAK;AACvB,UAAM,UAAU,MAAM,GAAG;AACzB,WAAO,QAAQ,IAAI,UAAQ,KAAK,YAAY,CAAC,EAAE,KAAK,GAAG;AAAA,EAC3D;;;ACLA,MAAM,YAAY,IAAI,IAAI,OAAO,QAAQ;AAAA,IACrC,QAAG;AAAA,IACH,QAAG;AAAA,IACH,QAAG;AAAA,IACH,QAAG;AAAA,IACH,QAAG;AAAA,IACH,QAAG;AAAA,IACH,QAAG;AAAA,IACH,QAAG;AAAA,IACH,QAAG;AAAA,IACH,QAAG;AAAA,IACH,QAAG;AAAA,IACH,QAAG;AAAA,IACH,QAAG;AAAA,IACH,QAAG;AAAA,IACH,QAAG;AAAA,IACH,QAAG;AAAA,IACH,QAAG;AAAA,IACH,QAAG;AAAA,IACH,QAAG;AAAA,IACH,QAAG;AAAA,IACH,QAAG;AAAA,IACH,QAAG;AAAA,IACH,QAAG;AAAA,IACH,QAAG;AAAA,IACH,QAAG;AAAA,IACH,QAAG;AAAA,IACH,QAAG;AAAA,IACH,QAAG;AAAA,IACH,QAAG;AAAA,EACP,CAAC,CAAC;AACF,WAAS,OAAO,KAAK;AA/BrB;AAgCI,UAAM,IAAI,UAAU,KAAK;AACzB,QAAI,SAAS;AACb,aAAS,IAAI,GAAG,IAAI,IAAI,QAAQ,KAAK;AACjC,YAAM,OAAO,IAAI,CAAC;AAClB,UAAK,QAAQ,YAAY,QAAQ,YAAc,QAAQ,YAAY,QAAQ,UAAW;AAClF;AAAA,MACJ;AACA,iBAAU,eAAU,IAAI,IAAI,MAAlB,YAAuB;AAAA,IACrC;AACA,WAAO;AAAA,EACX;;;AC1CA,MAAM,cAAc;AAAA,IAChB,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,EACT;AACA,WAAS,OAAO,KAAK;AACjB,WAAO,IAAI,QAAQ,YAAY,WAAS,YAAY,KAAK,CAAC;AAAA,EAC9D;;;ACTA,WAAS,aAAa,KAAK;AACvB,WAAO,IAAI,QAAQ,uBAAuB,MAAM;AAAA,EACpD;;;ACAA,WAAS,UAAU,KAAK;AACpB,UAAM,UAAU,MAAM,GAAG;AACzB,WAAO,QAAQ,IAAI,UAAQ,KAAK,YAAY,CAAC,EAAE,KAAK,GAAG;AAAA,EAC3D;;;ACHA,WAAS,UAAU,KAAK;AACpB,UAAM,UAAU,MAAM,GAAG;AACzB,WAAO,QAAQ,IAAI,UAAQ,KAAK,YAAY,CAAC,EAAE,KAAK,GAAG;AAAA,EAC3D;;;ACLA,WAAS,WAAW,KAAK;AACrB,WAAO,IAAI,UAAU,GAAG,CAAC,EAAE,YAAY,IAAI,IAAI,UAAU,CAAC;AAAA,EAC9D;;;ACFA,WAAS,IAAI,KAAK,QAAQ,QAAQ,KAAK;AACnC,WAAO,IAAI,SAAS,KAAK,OAAO,SAAS,IAAI,UAAU,CAAC,IAAI,IAAI,QAAQ,KAAK,EAAE,OAAO,QAAQ,KAAK;AAAA,EACvG;;;ACCA,WAAS,WAAW,KAAK;AACrB,UAAM,UAAU,MAAM,GAAG;AACzB,WAAO,QAAQ,IAAI,UAAQ,WAAW,IAAI,CAAC,EAAE,KAAK,EAAE;AAAA,EACxD;;;ACNA,WAAS,cAAc,OAAO;AAC1B,WAAO,CAAC,GAAG,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;AAAA,EACvC;;;ACAA,WAAS,UAAU,KAAK;AACpB,UAAM,UAAU,MAAM,IAAI,KAAK,CAAC;AAChC,QAAI,SAAS;AACb,aAAS,IAAI,GAAG,IAAI,QAAQ,QAAQ,KAAK;AACrC,YAAM,OAAO,QAAQ,CAAC;AACtB,UAAI,QAAQ;AACR,kBAAU;AAAA,MACd;AACA,gBAAU,KAAK,CAAC,EAAE,YAAY,IAAI,KAAK,MAAM,CAAC,EAAE,YAAY;AAAA,IAChE;AACA,WAAO;AAAA,EACX;;;ACbA,WAAS,QAAQ,KAAK,OAAO;AACzB,QAAI,UAAU,QAAW;AACrB,aAAO,IAAI,QAAQ;AAAA,IACvB;AACA,QAAI,WAAW,IAAI;AACnB,YAAQ,OAAO,OAAO;AAAA,MAClB,KAAK,UAAU;AACX,YAAI,MAAM,WAAW,GAAG;AACpB,gBAAM,IAAI,MAAM,4DAA4D;AAAA,QAChF;AACA,eAAO,WAAW,KAAK,IAAI,WAAW,CAAC,MAAM,OAAO;AAChD;AAAA,QACJ;AACA;AAAA,MACJ;AAAA,MACA,KAAK,UAAU;AACX,eAAO,WAAW,KAAK,MAAM,SAAS,IAAI,WAAW,CAAC,CAAC,GAAG;AACtD;AAAA,QACJ;AAAA,MACJ;AAAA,IACJ;AACA,WAAO,IAAI,UAAU,GAAG,QAAQ;AAAA,EACpC;;;ACtBA,WAAS,UAAU,KAAK,OAAO;AAC3B,QAAI,UAAU,QAAW;AACrB,aAAO,IAAI,UAAU;AAAA,IACzB;AACA,QAAI,aAAa;AACjB,YAAQ,OAAO,OAAO;AAAA,MAClB,KAAK,UAAU;AACX,eAAO,aAAa,IAAI,UAAU,IAAI,UAAU,MAAM,OAAO;AACzD;AAAA,QACJ;AACA;AAAA,MACJ;AAAA,MACA,KAAK,UAAU;AACX,eAAO,aAAa,IAAI,UAAU,MAAM,SAAS,IAAI,UAAU,CAAC,GAAG;AAC/D;AAAA,QACJ;AAAA,MACJ;AAAA,IACJ;AACA,WAAO,IAAI,UAAU,UAAU;AAAA,EACnC;;;AChBA,WAAS,KAAK,KAAK,OAAO;AACtB,QAAI,UAAU,QAAW;AACrB,aAAO,IAAI,KAAK;AAAA,IACpB;AACA,WAAO,UAAU,QAAQ,KAAK,KAAK,GAAG,KAAK;AAAA,EAC/C;;;ACRA,MAAM,gBAAgB;AAAA,IAClB,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,SAAS;AAAA,EACb;AACA,WAASC,UAAS,KAAK;AACnB,WAAO,IAAI,QAAQ,kCAAkC,WAAS,cAAc,KAAK,KAAK,GAAG;AAAA,EAC7F;;;ACPA,WAAS,UAAU,KAAK;AACpB,UAAM,UAAU,MAAM,GAAG;AACzB,QAAI,SAAS;AACb,aAAS,IAAI,GAAG,IAAI,QAAQ,QAAQ,KAAK;AACrC,gBAAU,QAAQ,CAAC,EAAE,YAAY;AACjC,UAAI,IAAI,QAAQ,SAAS,GAAG;AACxB,kBAAU;AAAA,MACd;AAAA,IACJ;AACA,WAAO;AAAA,EACX;;;ACZA,WAAS,WAAW,KAAK;AACrB,WAAO,IAAI,UAAU,GAAG,CAAC,EAAE,YAAY,IAAI,IAAI,UAAU,CAAC;AAAA,EAC9D;;;ACFA,WAAS,QAAQ,MAAM;AACnB,QAAI;AACA,aAAO,CAAC,MAAM,KAAK,CAAC;AAAA,IACxB,SACO,OAAO;AACV,aAAO,CAAC,OAAO,IAAI;AAAA,IACvB;AAAA,EACJ;;;ACPA,WAAe,aAAa,MAAM;AAAA;AAC9B,UAAI;AACA,cAAM,SAAS,MAAM,KAAK;AAC1B,eAAO,CAAC,MAAM,MAAM;AAAA,MACxB,SACO,OAAO;AACV,eAAO,CAAC,OAAO,IAAI;AAAA,MACvB;AAAA,IACJ;AAAA;;;ACRA,WAAS,UAAU,WAAW,SAAS;AACnC,QAAI,WAAW;AACX;AAAA,IACJ;AACA,QAAI,OAAO,YAAY,UAAU;AAC7B,YAAM,IAAI,MAAM,OAAO;AAAA,IAC3B;AACA,UAAM;AAAA,EACV;;;ACRA,WAAS,UAAU,KAAK;AACpB,YAAQ,OAAO,KAAK;AAAA,MAChB,KAAK;AAAA,MACL,KAAK,UAAU;AACX,eAAO;AAAA,MACX;AAAA,MACA,KAAK,UAAU;AACX,eAAO,IAAI,SAAS,GAAG,KAAK,IAAI,SAAS,GAAG,KAAK,IAAI,SAAS,GAAG;AAAA,MACrE;AAAA,IACJ;AAAA,EACJ;;;ACVA,WAAS,MAAM,OAAO;AAAtB;AACI,QAAI,OAAO,UAAU,YAAY,OAAO,UAAU,UAAU;AACxD,aAAO;AAAA,IACX;AACA,QAAI,OAAO,IAAG,oCAAO,YAAP,gCAAoB,EAAE,GAAG;AACnC,aAAO;AAAA,IACX;AACA,WAAO,OAAO,KAAK;AAAA,EACvB;;;ACRA,WAAS,SAAS,OAAO;AACrB,QAAI,SAAS,MAAM;AACf,aAAO;AAAA,IACX;AACA,QAAI,OAAO,UAAU,UAAU;AAC3B,aAAO;AAAA,IACX;AACA,QAAI,MAAM,QAAQ,KAAK,GAAG;AACtB,aAAO,MAAM,IAAI,QAAQ,EAAE,KAAK,GAAG;AAAA,IACvC;AACA,UAAM,SAAS,OAAO,KAAK;AAC3B,QAAI,WAAW,OAAO,OAAO,GAAG,OAAO,KAAK,GAAG,EAAE,GAAG;AAChD,aAAO;AAAA,IACX;AACA,WAAO;AAAA,EACX;;;ACZA,WAAS,OAAO,SAAS;AACrB,QAAI,MAAM,QAAQ,OAAO,GAAG;AACxB,aAAO,QAAQ,IAAI,KAAK;AAAA,IAC5B;AACA,QAAI,OAAO,YAAY,UAAU;AAC7B,aAAO,CAAC,OAAO;AAAA,IACnB;AACA,cAAU,SAAS,OAAO;AAC1B,UAAM,SAAS,CAAC;AAChB,UAAM,SAAS,QAAQ;AACvB,QAAI,WAAW,GAAG;AACd,aAAO;AAAA,IACX;AACA,QAAI,QAAQ;AACZ,QAAI,MAAM;AACV,QAAI,YAAY;AAChB,QAAI,UAAU;AACd,QAAI,QAAQ,WAAW,CAAC,MAAM,IAAI;AAC9B,aAAO,KAAK,EAAE;AACd;AAAA,IACJ;AACA,WAAO,QAAQ,QAAQ;AACnB,YAAM,OAAO,QAAQ,KAAK;AAC1B,UAAI,WAAW;AACX,YAAI,SAAS,QAAQ,QAAQ,IAAI,QAAQ;AACrC;AACA,iBAAO,QAAQ,KAAK;AAAA,QACxB,WACS,SAAS,WAAW;AACzB,sBAAY;AAAA,QAChB,OACK;AACD,iBAAO;AAAA,QACX;AAAA,MACJ,WACS,SAAS;AACd,YAAI,SAAS,OAAO,SAAS,KAAK;AAC9B,sBAAY;AAAA,QAChB,WACS,SAAS,KAAK;AACnB,oBAAU;AACV,iBAAO,KAAK,GAAG;AACf,gBAAM;AAAA,QACV,OACK;AACD,iBAAO;AAAA,QACX;AAAA,MACJ,OACK;AACD,YAAI,SAAS,KAAK;AACd,oBAAU;AACV,cAAI,KAAK;AACL,mBAAO,KAAK,GAAG;AACf,kBAAM;AAAA,UACV;AAAA,QACJ,WACS,SAAS,KAAK;AACnB,cAAI,KAAK;AACL,mBAAO,KAAK,GAAG;AACf,kBAAM;AAAA,UACV;AAAA,QACJ,OACK;AACD,iBAAO;AAAA,QACX;AAAA,MACJ;AACA;AAAA,IACJ;AACA,QAAI,KAAK;AACL,aAAO,KAAK,GAAG;AAAA,IACnB;AACA,WAAO;AAAA,EACX;;;ACtEA,WAAS,IAAI,QAAQ,MAAM,cAAc;AACrC,QAAI,UAAU,MAAM;AAChB,aAAO;AAAA,IACX;AACA,YAAQ,OAAO,MAAM;AAAA,MACjB,KAAK,UAAU;AACX,YAAI,iBAAiB,IAAI,GAAG;AACxB,iBAAO;AAAA,QACX;AACA,cAAM,SAAS,OAAO,IAAI;AAC1B,YAAI,WAAW,QAAW;AACtB,cAAI,UAAU,IAAI,GAAG;AACjB,mBAAO,IAAI,QAAQ,OAAO,IAAI,GAAG,YAAY;AAAA,UACjD,OACK;AACD,mBAAO;AAAA,UACX;AAAA,QACJ;AACA,eAAO;AAAA,MACX;AAAA,MACA,KAAK;AAAA,MACL,KAAK,UAAU;AACX,YAAI,OAAO,SAAS,UAAU;AAC1B,iBAAO,MAAM,IAAI;AAAA,QACrB;AACA,cAAM,SAAS,OAAO,IAAI;AAC1B,YAAI,WAAW,QAAW;AACtB,iBAAO;AAAA,QACX;AACA,eAAO;AAAA,MACX;AAAA,MACA,SAAS;AACL,YAAI,MAAM,QAAQ,IAAI,GAAG;AACrB,iBAAO,YAAY,QAAQ,MAAM,YAAY;AAAA,QACjD;AACA,YAAI,OAAO,GAAG,6BAAM,WAAW,EAAE,GAAG;AAChC,iBAAO;AAAA,QACX,OACK;AACD,iBAAO,OAAO,IAAI;AAAA,QACtB;AACA,YAAI,iBAAiB,IAAI,GAAG;AACxB,iBAAO;AAAA,QACX;AACA,cAAM,SAAS,OAAO,IAAI;AAC1B,YAAI,WAAW,QAAW;AACtB,iBAAO;AAAA,QACX;AACA,eAAO;AAAA,MACX;AAAA,IACJ;AAAA,EACJ;AACA,WAAS,YAAY,QAAQ,MAAM,cAAc;AAC7C,QAAI,KAAK,WAAW,GAAG;AACnB,aAAO;AAAA,IACX;AACA,QAAI,UAAU;AACd,aAAS,QAAQ,GAAG,QAAQ,KAAK,QAAQ,SAAS;AAC9C,UAAI,WAAW,MAAM;AACjB,eAAO;AAAA,MACX;AACA,UAAI,iBAAiB,KAAK,KAAK,CAAC,GAAG;AAC/B,eAAO;AAAA,MACX;AACA,gBAAU,QAAQ,KAAK,KAAK,CAAC;AAAA,IACjC;AACA,QAAI,YAAY,QAAW;AACvB,aAAO;AAAA,IACX;AACA,WAAO;AAAA,EACX;;;AC3EA,WAAS,SAAS,OAAO;AACrB,WAAO,UAAU,SAAS,OAAO,UAAU,YAAY,OAAO,UAAU;AAAA,EAC5E;;;ACFA,MAAM,sBAAsB;AAC5B,WAAS,QAAQ,OAAO,SAAS,OAAO,kBAAkB;AACtD,YAAQ,OAAO,OAAO;AAAA,MAClB,KAAK,UAAU;AACX,eAAO,OAAO,UAAU,KAAK,KAAK,SAAS,KAAK,QAAQ;AAAA,MAC5D;AAAA,MACA,KAAK,UAAU;AACX,eAAO;AAAA,MACX;AAAA,MACA,KAAK,UAAU;AACX,eAAO,oBAAoB,KAAK,KAAK;AAAA,MACzC;AAAA,IACJ;AAAA,EACJ;;;ACXA,MAAM,kBAAkB;AACxB,MAAM,mBAAmB;AACzB,WAAS,MAAM,OAAO,QAAQ;AAC1B,QAAI,MAAM,QAAQ,KAAK,GAAG;AACtB,aAAO;AAAA,IACX;AACA,QAAI,OAAO,UAAU,YAAY,OAAO,UAAU,aAAa,SAAS,QAAQ,SAAS,KAAK,GAAG;AAC7F,aAAO;AAAA,IACX;AACA,WAAS,OAAO,UAAU,aAAa,iBAAiB,KAAK,KAAK,KAAK,CAAC,gBAAgB,KAAK,KAAK,MAC7F,UAAU,QAAQ,OAAO,OAAO,QAAQ,KAAK;AAAA,EACtD;;;ACXA,MAAM,cAAc,CAAC,QAAQ,KAAK,UAAU;AACxC,UAAM,WAAW,OAAO,GAAG;AAC3B,QAAI,EAAE,OAAO,OAAO,QAAQ,GAAG,KAAK,GAAG,UAAU,KAAK,MAAO,UAAU,UAAa,EAAE,OAAO,SAAU;AACnG,aAAO,GAAG,IAAI;AAAA,IAClB;AAAA,EACJ;;;ACEA,WAAS,WAAW,KAAK,MAAM,SAAS,YAAY;AAChD,QAAI,OAAO,QAAQ,CAAC,SAAS,GAAG,GAAG;AAC/B,aAAO;AAAA,IACX;AACA,QAAI;AACJ,QAAI,MAAM,MAAM,GAAG,GAAG;AAClB,qBAAe,CAAC,IAAI;AAAA,IACxB,WACS,MAAM,QAAQ,IAAI,GAAG;AAC1B,qBAAe;AAAA,IACnB,OACK;AACD,qBAAe,OAAO,IAAI;AAAA,IAC9B;AACA,UAAM,cAAc,QAAQ,IAAI,KAAK,YAAY,CAAC;AAClD,QAAI,UAAU;AACd,aAAS,IAAI,GAAG,IAAI,aAAa,UAAU,WAAW,MAAM,KAAK;AAC7D,YAAM,MAAM,MAAM,aAAa,CAAC,CAAC;AACjC,UAAI,iBAAiB,GAAG,GAAG;AACvB;AAAA,MACJ;AACA,UAAI;AACJ,UAAI,MAAM,aAAa,SAAS,GAAG;AAC/B,mBAAW;AAAA,MACf,OACK;AACD,cAAM,WAAW,QAAQ,GAAG;AAC5B,cAAM,mBAAmB,yCAAa,UAAU,KAAK;AACrD,mBACI,qBAAqB,SACf,mBACA,SAAS,QAAQ,IACb,WACA,QAAQ,aAAa,IAAI,CAAC,CAAC,IACvB,CAAC,IACD,CAAC;AAAA,MACvB;AACA,kBAAY,SAAS,KAAK,QAAQ;AAClC,gBAAU,QAAQ,GAAG;AAAA,IACzB;AACA,WAAO;AAAA,EACX;;;AChDA,WAAS,IAAI,KAAK,MAAM,OAAO;AAC3B,WAAO,WAAW,KAAK,MAAM,MAAM,OAAO,MAAM,MAAS;AAAA,EAC7D;;;ACOO,WAAS,cAAgC,KAAwB;AACtE,WAAO,OAAO,KAAK,GAAG;AAAA,EACxB;AAaO,MAAM,iBAAiB;AAYvB,MAAM,iBAAiB;;;AC1BvB,WAAS,WAAW,GAAW,WAAW,GAAG,YAAY,GAAG,WAAW,KAAK;AACjF,QAAI,CAAC,EAAG,QAAO;AACf,UAAM,IAAI,OAAO,CAAC;AAClB,UAAM,IAAI,KAAK,IAAI,GAAG,QAAQ;AAC9B,UAAM,IAAI,KAAK,IAAI,GAAG,SAAS;AAC/B,UAAM,MAAM,EAAE;AACd,UAAM,OAAO,KAAK,IAAI,GAAG,GAAG;AAC5B,UAAM,QAAQ,KAAK,IAAI,GAAG,MAAM,IAAI;AACpC,UAAM,MAAM,MAAM,OAAO;AACzB,QAAI,OAAO,EAAG,QAAO;AACrB,UAAM,IAAI,YAAY,SAAS,SAAS,IAAI,WAAW;AACvD,WAAO,EAAE,MAAM,GAAG,IAAI,IAAI,EAAE,OAAO,GAAG,IAAI,EAAE,MAAM,MAAM,KAAK;AAAA,EAC/D;AASO,WAAS,YAAY,OAAe;AACzC,WAAO,WAAW,OAAO,GAAG,CAAC;AAAA,EAC/B;AAYO,WAAS,WAAW,MAAc;AACvC,QAAI,CAAC,KAAM,QAAO;AAClB,UAAM,IAAI,OAAO,IAAI;AACrB,WAAO,EAAE,UAAU,IAAI,WAAW,GAAG,GAAG,CAAC,IAAI,WAAW,GAAG,GAAG,CAAC;AAAA,EACjE;;;AC7CO,WAAS,aAAa;AAC3B,WAAO,uCAAuC,QAAQ,SAAS,SAAU,GAAG;AAC1E,YAAM,IAAK,KAAK,OAAO,IAAI,KAAM,GAC/B,IAAI,MAAM,MAAM,IAAK,IAAI,IAAO;AAClC,aAAO,EAAE,SAAS,EAAE;AAAA,IACtB,CAAC;AAAA,EACH;AAWO,WAAS,iBAAiB,SAAS,OAAO;AAC/C,WAAO,GAAG,MAAM,GAAG,KAAK,OAAO,EAAE,SAAS,EAAE,EAAE,UAAU,GAAG,EAAE,CAAC;AAAA,EAChE;AAUO,WAAS,iBAAiB,SAAiB,GAAG;AACnD,UAAM,OAAO,UAAO,SAAS;AAC7B,UAAMC,SAAQ,IAAI;AAClB,UAAM,MAAM,KAAK,MAAM,KAAK,OAAO,IAAIA,MAAK,IAAI;AAEhD,WAAO,GAAG,KAAK,IAAI,CAAC,GAAG,GAAG;AAAA,EAC5B;;;AC1BO,WAAS,cAAc,MAAoE;AAChG,QAAI,OAAO,SAAS,UAAU;AAC5B,UAAI,UAAU;AAEd,eAAS,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;AACpC,cAAM,OAAO,KAAK,WAAW,CAAC;AAE9B,YAAI,QAAQ,KAAM;AAChB,qBAAW;AAAA,QACb,WAAW,QAAQ,MAAO;AACxB,qBAAW;AAAA,QACb,WAAW,QAAQ,SAAU,QAAQ,OAAQ;AAC3C,qBAAW;AACX;AAAA,QACF,OAAO;AACL,qBAAW;AAAA,QACb;AAAA,MACF;AAEA,aAAO;AAAA,IACT;AAGA,QAAI,gBAAgB,KAAM,QAAO,KAAK;AAGtC,QAAI,UAAU,KAAM,QAAO,KAAK;AAEhC,UAAM,IAAI,UAAU,iCAAiC;AAAA,EACvD;;;ACrCA,MAAM,YAAY;AAAA,IAChB,KAAK,CAAC,OAAO,OAAO,QAAQ,OAAO,OAAO,MAAM;AAAA,IAChD,OAAO,CAAC,OAAO,OAAO,KAAK;AAAA,IAC3B,OAAO,CAAC,OAAO,OAAO,KAAK;AAAA,IAC3B,OAAO,CAAC,OAAO,OAAO,QAAQ,QAAQ,KAAK;AAAA,IAC3C,MAAM,CAAC,OAAO,OAAO,QAAQ,OAAO,MAAM,KAAK;AAAA,IAC/C,KAAK,CAAC,OAAO,MAAM,OAAO,OAAO,IAAI;AAAA,IACrC,KAAK,CAAC,OAAO,QAAQ,KAAK;AAAA,IAC1B,KAAK,CAAC,OAAO,KAAK;AAAA,EACpB;AAYO,WAAS,cAAc,UAAkB;AAC9C,QAAI,SAAS,WAAW,GAAG,EAAG,QAAO;AAErC,UAAM,MAAM,SAAS,YAAY,GAAG;AACpC,WAAO,MAAM,IAAI,SAAS,MAAM,MAAM,CAAC,EAAE,YAAY,IAAI;AAAA,EAC3D;AAWO,WAAS,YAAY,UAAkB;AAC5C,UAAM,SAAS,cAAc,QAAQ;AACrC,QAAI,CAAC,OAAQ,QAAO;AAEpB,UAAM,OAAO,cAAc,SAAS;AACpC,eAAW,OAAO,MAAM;AACtB,UAAI,UAAU,GAAG,EAAE,SAAS,MAAM,GAAG;AACnC,eAAO;AAAA,MACT;AAAA,IACF;AAEA,WAAO;AAAA,EACT;;;ACnBO,WAAS,UAAU,KAAa,QAAsB;AAC3D,WAAO,YAAY,KAAK,SAAS,MAAM;AAAA,EACzC;AAiBO,WAAS,YAAY,KAAa,QAAwB;AAC/D,WAAO,YAAY,KAAK,SAAS,MAAM;AAAA,EACzC;AAaO,WAAS,YAAY,KAAa,QAAwB;AAC/D,WAAO,YAAY,KAAK,SAAS,MAAM;AAAA,EACzC;AAYO,WAAS,UAAU,KAAa,QAAsB;AAC3D,WAAO,YAAY,KAAK,OAAO,MAAM;AAAA,EACvC;AASO,WAAS,YAAY,KAAa,MAAc,QAAmB;AACxE,QAAI,CAAC,OAAO,CAAC,OAAQ,QAAO;AAC5B,QAAI,IAAI,WAAW,OAAO,EAAG,QAAO;AACpC,QAAI,IAAI,SAAS,MAAM,EAAG,QAAO;AAEjC,UAAM,OAAiB,CAAC;AAGxB,eAAW,CAAC,GAAG,CAAC,KAAK,OAAO,QAAQ,MAAM,GAAG;AAC3C,YAAM,MAAM,MAAM,cAAc,aAAa,CAAuB,IAAI,WAAW,GAAG,CAAC;AACvF,UAAI,IAAK,MAAK,KAAK,GAAG;AAAA,IACxB;AAEA,QAAI,CAAC,KAAK,OAAQ,QAAO;AAGzB,UAAM,OAAO,IAAI,MAAM,GAAG,EAAE,CAAC;AAC7B,WAAO,GAAG,IAAI,kBAAkB,IAAI,IAAI,KAAK,KAAK,GAAG,CAAC;AAAA,EACxD;AAWA,WAAS,WAAW,MAAc,QAA8D;AAC9F,QAAI,CAAC,UAAU,WAAW,EAAG,QAAO;AAEpC,QAAI,WAAW,KAAM,QAAO;AAE5B,QAAI,OAAO,WAAW,YAAY,OAAO,WAAW,SAAU,QAAO,GAAG,IAAI,IAAI,MAAM;AAEtF,UAAM,OAAO,OAAO,QAAQ,MAAM,EAC/B,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,EAAE,EAC3B,KAAK,GAAG;AAEX,WAAO,OAAO,GAAG,IAAI,IAAI,IAAI,KAAK;AAAA,EACpC;AAMA,WAAS,aAAa,GAAwB;AAC5C,QAAI,CAAC,EAAG,QAAO;AACf,QAAI,EAAE,MAAO,GAAE,QAAQ,YAAY,EAAE,KAAK;AAC1C,QAAI,EAAE,KAAM,GAAE,OAAO,YAAY,EAAE,IAAI;AACvC,QAAI,EAAE,KAAM,GAAE,OAAO,YAAY,EAAE,IAAI;AACvC,WAAO,WAAW,aAAa,CAAC;AAAA,EAClC;AAKA,WAAS,YAAY,GAAW;AAC9B,QAAI,MAAM;AACV,QAAI,OAAO,WAAW,aAAa;AACjC,YAAM,MAAM,OAAO,KAAK,GAAG,OAAO;AAClC,YAAM,IAAI,SAAS,QAAQ;AAAA,IAC7B,OAAO;AACL,UAAI;AACF,cAAM,KAAK,SAAS,mBAAmB,CAAC,CAAC,CAAC;AAAA,MAC5C,SAAQ;AACN,cAAM;AAAA,MACR;AAAA,IACF;AACA,WAAO,IAAI,QAAQ,QAAQ,EAAE,EAAE,QAAQ,OAAO,GAAG,EAAE,QAAQ,OAAO,GAAG;AAAA,EACvE;;;AC9JO,WAAS,eAAe,KAAa,OAAgC;AAC1E,QAAI,CAAC,SAAS,OAAO,UAAU,SAAU,QAAO;AAEhD,UAAM,YAAY,IAAI,QAAQ,GAAG;AACjC,UAAM,kBAAkB,aAAa,IAAI,IAAI,MAAM,GAAG,SAAS,IAAI;AACnE,UAAM,OAAO,aAAa,IAAI,IAAI,MAAM,SAAS,IAAI;AAErD,UAAM,CAAC,MAAM,UAAU,IAAI,gBAAgB,MAAM,GAAG;AACpD,UAAM,QAAkB,CAAC;AACzB,QAAI,WAAY,OAAM,KAAK,UAAU;AACrC,eAAW,OAAO,OAAO;AACvB,YAAM,SAAS,MAAM,GAAG;AACxB,UAAI,WAAW,QAAQ,WAAW,OAAW;AAC7C,YAAM,MAAM,OAAO,WAAW,WAAW,KAAK,UAAU,MAAM,IAAI,OAAO,MAAM;AAC/E,YAAM,KAAK,GAAG,mBAAmB,GAAG,CAAC,IAAI,mBAAmB,GAAG,CAAC,EAAE;AAAA,IACpE;AACA,UAAM,KAAK,MAAM,OAAO,OAAO,EAAE,KAAK,GAAG;AACzC,WAAO,QAAQ,KAAK,IAAI,EAAE,KAAK,MAAM;AAAA,EACvC;;;ACAO,WAAS,SAAS,KAAa,QAAqB;AA3B3D;AA4BE,QAAI,CAAC,OAAO,CAAC,OAAQ,QAAO;AAC5B,QAAI,IAAI,WAAW,OAAO,EAAG,QAAO;AACpC,QAAI,IAAI,SAAS,MAAM,EAAG,QAAO;AAEjC,UAAM,OAAiB,CAAC;AAExB,QAAI,OAAO,UAAW,MAAK,KAAK,WAAW;AAE3C,QAAI,OAAO,WAAY,MAAK,KAAK,cAAc,OAAO,UAAU,CAAC;AAEjE,UAAM,OAAO,eAAc,YAAO,eAAP,YAAqB,MAAM;AACtD,QAAI,KAAM,MAAK,KAAK,IAAI;AAExB,QAAI,OAAO,UAAW,MAAK,KAAKC,cAAa,OAAO,SAAS,CAAC;AAE9D,QAAI,OAAO,UAAW,MAAK,KAAK,WAAW;AAE3C,QAAI,CAAC,KAAK,OAAQ,QAAO;AAEzB,UAAM,OAAO,IAAI,MAAM,GAAG,EAAE,CAAC;AAC7B,WAAO,GAAG,IAAI,IAAI,KAAK,KAAK,GAAG,CAAC;AAAA,EAClC;AAYO,WAAS,WAAW,KAAa,QAAmC;AACzE,QAAI,CAAC,OAAO,CAAC,OAAQ,QAAO;AAC5B,QAAI,IAAI,WAAW,OAAO,EAAG,QAAO;AACpC,QAAI,IAAI,SAAS,MAAM,EAAG,QAAO;AACjC,UAAM,OAAiB,CAAC;AACxB,QAAI,OAAO,QAAS,MAAK,KAAK,WAAW,OAAO,OAAO,CAAC;AACxD,QAAI,OAAO,OAAQ,MAAK,KAAK,UAAU,OAAO,MAAM,CAAC;AACrD,QAAI,CAAC,KAAK,OAAQ,QAAO;AACzB,UAAM,OAAO,IAAI,MAAM,GAAG,EAAE,CAAC;AAC7B,WAAO,GAAG,IAAI,IAAI,KAAK,KAAK,GAAG,CAAC;AAAA,EAClC;AAWO,WAAS,WAAW,KAAa,QAAmC;AACzE,QAAI,CAAC,OAAO,CAAC,OAAQ,QAAO;AAC5B,QAAI,IAAI,WAAW,OAAO,EAAG,QAAO;AACpC,UAAM,OAAiB,CAAC;AACxB,QAAI,OAAO,QAAS,MAAK,KAAK,WAAW,OAAO,OAAO,CAAC;AACxD,QAAI,CAAC,KAAK,OAAQ,QAAO;AACzB,UAAM,OAAO,IAAI,MAAM,GAAG,EAAE,CAAC;AAC7B,WAAO,GAAG,IAAI,IAAI,KAAK,KAAK,GAAG,CAAC;AAAA,EAClC;AAWO,WAAS,SAAS,KAAa,QAAiC;AACrE,QAAI,CAAC,OAAO,CAAC,OAAQ,QAAO;AAC5B,QAAI,IAAI,WAAW,OAAO,EAAG,QAAO;AACpC,UAAM,MAAM,SAAS,MAAM;AAC3B,QAAI,CAAC,IAAK,QAAO;AACjB,UAAM,OAAO,IAAI,MAAM,GAAG,EAAE,CAAC;AAC7B,WAAO,GAAG,IAAI,IAAI,GAAG;AAAA,EACvB;AAEA,WAAS,cAAc,KAA0B;AAC/C,QAAI,CAAC,IAAK,QAAO;AACjB,UAAM,OAAO,OAAO,IAAI,SAAS,WAAW,IAAI,OAAO;AACvD,UAAM,KAAe,CAAC;AACtB,eAAW,CAAC,GAAG,CAAC,KAAK,OAAO,QAAQ,GAAG,GAAG;AACxC,UAAI,MAAM,OAAQ;AAClB,UAAI,OAAO,MAAM,WAAW;AAC1B,YAAI,EAAG,IAAG,KAAK,GAAG,CAAC,IAAI;AAAA,MACzB,WAAW,OAAO,MAAM,YAAY,OAAO,MAAM,UAAU;AACzD,WAAG,KAAK,GAAG,CAAC,IAAI,CAAC,EAAE;AAAA,MACrB;AAAA,IACF;AACA,WAAO,GAAG,SAAS,cAAc,IAAI,IAAI,GAAG,KAAK,GAAG,CAAC,KAAK,cAAc,IAAI;AAAA,EAC9E;AAEA,WAAS,cAAc,KAAmC;AACxD,QAAI,CAAC,IAAK,QAAO;AACjB,UAAM,QAAkB,CAAC;AAEzB,UAAM,KAAM,IAAsB;AAClC,QAAI,OAAO,OAAO,YAAa,OAAM,KAAK,aAAa,EAAE,EAAE;AAE3D,UAAM,KAAM,IAAsB;AAClC,QAAI,OAAO,OAAO,YAAa,OAAM,KAAK,QAAQ,EAAE,EAAE;AAEtD,UAAM,MAAO,IAAsB;AACnC,QAAI,OAAO,QAAQ,SAAU,OAAM,KAAK,UAAU,GAAG,EAAE;AAEvD,UAAM,KAAM,IAAsB,aAAa;AAC/C,QAAI,GAAI,OAAM,KAAK,aAAa;AAEhC,UAAM,MAAO,IAAsB;AACnC,QAAI,OAAO,QAAQ,SAAU,OAAM,KAAK,UAAU,GAAG,EAAE;AAEvD,UAAM,KAAM,IAAsB;AAClC,QAAI,OAAO,KAAK,OAAO,EAAG,OAAM,KAAK,aAAa,EAAE,EAAE;AAEtD,UAAM,KAAM,IAAsB;AAClC,QAAI,OAAO,OAAO,SAAU,OAAM,KAAK,cAAc,EAAE,EAAE;AAEzD,UAAM,IAAK,IAAsB;AACjC,QAAI,OAAO,MAAM,SAAU,OAAM,KAAK,KAAK,CAAC,EAAE;AAE9C,UAAM,OAAQ,IAAsB;AACpC,QAAI,OAAO,SAAS,aAAa;AAC/B,UAAI,OAAO,SAAS,SAAU,OAAM,KAAK,QAAQ,IAAI,EAAE;AAAA,UAClD,OAAM,KAAK,QAAQ,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE;AAAA,IAC5C;AAEA,UAAM,SAAU,IAAsB;AACtC,QAAI,OAAO,WAAW,SAAU,OAAM,KAAK,UAAU,MAAM,EAAE;AAE7D,WAAO,MAAM,SAAS,cAAc,MAAM,KAAK,GAAG,CAAC,KAAK;AAAA,EAC1D;AAEA,WAASA,cAAa,GAAuB;AAC3C,QAAI,CAAC,EAAG,QAAO;AACf,UAAM,OACJ,EAAE,SAAS,UAAU,IAAI,EAAE,SAAS,SAAS,IAAI,OAAO,EAAE,SAAS,WAAW,EAAE,OAAO;AACzF,UAAM,OAAiB,CAAC,aAAa,IAAI,EAAE;AAC3C,QAAI,SAAS,KAAK,EAAE,MAAO,MAAK,KAAK,SAASC,aAAY,EAAE,KAAK,CAAC,EAAE;AACpE,QAAI,SAAS,KAAK,EAAE,KAAM,MAAK,KAAK,QAAQA,aAAY,EAAE,IAAI,CAAC,EAAE;AACjE,QAAI,EAAE,KAAM,MAAK,KAAK,QAAQA,aAAY,EAAE,IAAI,CAAC,EAAE;AACnD,QAAI,OAAO,EAAE,aAAa,SAAU,MAAK,KAAK,YAAY,EAAE,QAAQ,EAAE;AACtE,QAAI,EAAE,KAAM,MAAK,KAAK,QAAQA,aAAY,EAAE,IAAI,CAAC,EAAE;AACnD,QAAI,EAAE,QAAS,MAAK,KAAK,WAAW,EAAE,OAAO,EAAE;AAC/C,QAAI,OAAO,EAAE,OAAO,SAAU,MAAK,KAAK,MAAM,EAAE,EAAE,EAAE;AACpD,QAAI,OAAO,EAAE,OAAO,SAAU,MAAK,KAAK,MAAM,EAAE,EAAE,EAAE;AACpD,QAAI,OAAO,EAAE,aAAa,SAAU,MAAK,KAAK,YAAY,EAAE,QAAQ,EAAE;AACtE,WAAO,KAAK,KAAK,GAAG;AAAA,EACtB;AAEA,WAASA,aAAY,GAAW;AAC9B,QAAI,MAAM;AACV,QAAI,OAAO,WAAW,aAAa;AACjC,YAAM,MAAM,OAAO,KAAK,GAAG,OAAO;AAClC,YAAM,IAAI,SAAS,QAAQ;AAAA,IAC7B,OAAO;AACL,UAAI;AACF,cAAM,KAAK,SAAS,mBAAmB,CAAC,CAAC,CAAC;AAAA,MAC5C,SAAQ;AACN,cAAM;AAAA,MACR;AAAA,IACF;AACA,WAAO,IAAI,QAAQ,QAAQ,EAAE,EAAE,QAAQ,OAAO,GAAG,EAAE,QAAQ,OAAO,GAAG;AAAA,EACvE;AAEA,WAAS,WAAW,KAAkC;AACpD,UAAM,QAAkB,CAAC;AACzB,QAAI,IAAI,OAAQ,OAAM,KAAK,WAAW,IAAI,MAAM,EAAE;AAAA,QAC7C,OAAM,KAAK,SAAS;AACzB,QAAI,IAAI,EAAG,OAAM,KAAK,KAAK,IAAI,CAAC,EAAE;AAClC,QAAI,IAAI,OAAQ,OAAM,KAAK,UAAU,IAAI,MAAM,EAAE;AACjD,QAAI,OAAO,IAAI,OAAO,YAAa,OAAM,KAAK,MAAM,IAAI,EAAE,EAAE;AAC5D,QAAI,OAAO,IAAI,MAAM,SAAU,OAAM,KAAK,KAAK,IAAI,CAAC,EAAE;AACtD,QAAI,OAAO,IAAI,OAAO,YAAa,OAAM,KAAK,MAAM,IAAI,EAAE,EAAE;AAC5D,QAAI,OAAO,IAAI,OAAO,SAAU,OAAM,KAAK,MAAM,IAAI,EAAE,EAAE;AACzD,QAAI,IAAI,OAAQ,OAAM,KAAK,UAAU,IAAI,MAAM,EAAE;AACjD,WAAO,MAAM,KAAK,GAAG;AAAA,EACvB;AAEA,WAAS,UAAU,KAAiC;AAClD,UAAM,QAAkB,CAAC;AACzB,UAAM,KAAK,UAAU,IAAI,UAAU,KAAK,EAAE;AAC1C,QAAI,OAAO,IAAI,WAAW,SAAU,OAAM,KAAK,UAAU,IAAI,MAAM,EAAE;AACrE,QAAI,OAAO,IAAI,MAAM,SAAU,OAAM,KAAK,KAAK,IAAI,CAAC,EAAE;AACtD,QAAI,OAAO,IAAI,MAAM,SAAU,OAAM,KAAK,KAAK,IAAI,CAAC,EAAE;AACtD,WAAO,MAAM,KAAK,GAAG;AAAA,EACvB;AAEA,WAAS,SAAS,KAA8B;AAC9C,UAAM,QAAkB,CAAC;AACzB,UAAM,QAAQ,OAAO,IAAI,UAAU,WAAW,IAAI,IAAI,KAAK,KAAK;AAChE,UAAM,KAAK,QAAQ,KAAK,EAAE;AAC1B,UAAM,KAAK,UAAU,IAAI,UAAU,MAAM,EAAE;AAC3C,QAAI,OAAO,IAAI,YAAY,SAAU,OAAM,KAAK,WAAW,IAAI,OAAO,EAAE;AACxE,QAAI,OAAO,IAAI,MAAM,SAAU,OAAM,KAAK,KAAK,IAAI,CAAC,EAAE;AACtD,QAAI,IAAI,OAAQ,OAAM,KAAK,UAAU,IAAI,MAAM,EAAE;AACjD,QAAI,OAAO,IAAI,OAAO,YAAa,OAAM,KAAK,MAAM,IAAI,EAAE,EAAE;AAC5D,QAAI,OAAO,IAAI,MAAM,SAAU,OAAM,KAAK,KAAK,IAAI,CAAC,EAAE;AACtD,QAAI,OAAO,IAAI,MAAM,SAAU,OAAM,KAAK,KAAK,IAAI,CAAC,EAAE;AACtD,QAAI,IAAI,OAAQ,OAAM,KAAK,UAAU,IAAI,MAAM,EAAE;AACjD,QAAI,OAAO,IAAI,OAAO,YAAa,OAAM,KAAK,MAAM,IAAI,EAAE,EAAE;AAC5D,QAAI,OAAO,IAAI,OAAO,SAAU,OAAM,KAAK,MAAM,IAAI,EAAE,EAAE;AACzD,QAAI,OAAO,IAAI,WAAW,SAAU,OAAM,KAAK,UAAUA,aAAY,IAAI,MAAM,CAAC,EAAE;AAClF,WAAO,MAAM,KAAK,GAAG;AAAA,EACvB;;;ACnOO,WAAS,SAAS,GAAW;AAClC,WAAO,cAAc,KAAK,CAAC;AAAA,EAC7B;AASO,WAAS,UAAU,GAAW;AACnC,UAAM,IAAI,OAAO,gBAAK,EAAE,EAAE,KAAK;AAC/B,WAAO,qBAAqB,KAAK,CAAC;AAAA,EACpC;AAYO,WAAS,SAAS,GAAW;AAClC,WAAO,WAAW,KAAK,CAAC;AAAA,EAC1B;AAoBO,WAASC,WACd,OACA,SAMS;AACT,UAAM,EAAE,WAAW,OAAO,UAAU,GAAG,YAAY,OAAO,WAAW,MAAM,IAAI,WAAW,CAAC;AAE3F,QAAI,UAAU,QAAQ,UAAU,UAAa,UAAU,GAAI,QAAO;AAClE,UAAM,MAAM,OAAO,KAAK,EAAE,KAAK;AAE/B,UAAM,OAAO,YAAY,IAAI,WAAW,GAAG,IAAI,MAAM;AACrD,UAAM,OAAO,OAAO,IAAI,MAAM,CAAC,IAAI;AAEnC,UAAM,gBAAgB,YAAY,kCAAkC;AAEpE,UAAM,UAAU,YAAY,gBAAgB,WAAW,aAAa;AAEpE,UAAM,WAAW,YAAY,IAAI,KAAK,aAAa,OAAO;AAE1D,UAAM,UAAU,IAAI,OAAO,GAAG,QAAQ;AACtC,UAAM,MAAM,IAAI,OAAO,OAAO;AAC9B,WAAO,IAAI,KAAK,IAAI;AAAA,EACtB;AAUO,WAAS,cAAc,GAAW;AACvC,UAAM,IAAI,OAAO,gBAAK,EAAE,EAAE,KAAK;AAC/B,WAAO,gBAAgB,KAAK,CAAC;AAAA,EAC/B;AAWO,WAAS,WAAW,GAAW;AACpC,UAAM,IAAI,OAAO,gBAAK,EAAE,EAAE,KAAK;AAC/B,WAAO,mCAAmC,KAAK,CAAC;AAAA,EAClD;AAUO,WAAS,QAAQ,GAAW;AACjC,WAAO,cAAc,CAAC,KAAK,WAAW,CAAC;AAAA,EACzC;AAUO,WAAS,QAAQ,GAAW;AACjC,UAAM,IAAI,OAAO,gBAAK,EAAE,EAAE,KAAK;AAC/B,QAAI,MAAM,GAAI,QAAO;AACrB,UAAM,aACJ;AACF,WAAO,WAAW,KAAK,CAAC;AAAA,EAC1B;AAUO,WAAS,cAAc,GAAW;AACvC,UAAM,IAAI,OAAO,gBAAK,EAAE,EAAE,KAAK;AAC/B,WAAO,2BAA2B,KAAK,CAAC;AAAA,EAC1C;AAiBO,WAAS,eAAe,MAAc;AAC3C,UAAM,IAAI,OAAO,sBAAQ,EAAE,EAAE,KAAK;AAClC,QAAI,MAAM,GAAI,QAAO;AAErB,UAAM,cAAc,CAAC,aAAqB;AACxC,YAAM,IAAI,OAAO,SAAS,MAAM,GAAG,CAAC,CAAC;AACrC,YAAM,IAAI,OAAO,SAAS,MAAM,GAAG,CAAC,CAAC;AACrC,YAAM,IAAI,OAAO,SAAS,MAAM,GAAG,CAAC,CAAC;AACrC,UAAI,IAAI,QAAQ,IAAI,KAAM,QAAO;AACjC,YAAM,OAAO,IAAI,KAAK,GAAG,IAAI,GAAG,CAAC;AACjC,aAAO,KAAK,YAAY,MAAM,KAAK,KAAK,SAAS,MAAM,IAAI,KAAK,KAAK,QAAQ,MAAM;AAAA,IACrF;AAGA,QAAI,iBAAiB,KAAK,CAAC,GAAG;AAC5B,YAAM,QAAQ,EAAE,MAAM,GAAG,EAAE;AAC3B,UAAI,CAAC,YAAY,KAAK,EAAG,QAAO;AAChC,YAAM,UAAU,CAAC,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,CAAC;AACpE,YAAM,WAAW,CAAC,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG;AACvE,UAAIC,OAAM;AACV,eAAS,IAAI,GAAG,IAAI,IAAI,IAAK,CAAAA,QAAO,OAAO,EAAE,CAAC,CAAC,IAAI,QAAQ,CAAC;AAC5D,YAAM,MAAMA,OAAM;AAClB,YAAM,SAAS,EAAE,EAAE,EAAE,YAAY;AACjC,aAAO,SAAS,GAAG,MAAM;AAAA,IAC3B;AAGA,QAAI,WAAW,KAAK,CAAC,GAAG;AACtB,YAAM,QAAQ,EAAE,MAAM,GAAG,EAAE;AAC3B,YAAM,IAAI,OAAO,KAAK,MAAM,MAAM,GAAG,CAAC,CAAC,EAAE;AACzC,YAAM,IAAI,OAAO,MAAM,MAAM,GAAG,CAAC,CAAC;AAClC,YAAM,IAAI,OAAO,MAAM,MAAM,GAAG,CAAC,CAAC;AAClC,YAAM,OAAO,IAAI,KAAK,GAAG,IAAI,GAAG,CAAC;AACjC,aAAO,KAAK,YAAY,MAAM,KAAK,KAAK,SAAS,MAAM,IAAI,KAAK,KAAK,QAAQ,MAAM;AAAA,IACrF;AAGA,QAAI,sBAAsB,KAAK,CAAC,EAAG,QAAO;AAG1C,QAAI,mCAAmC,KAAK,CAAC,EAAG,QAAO;AAGvD,QAAI,uBAAuB,KAAK,CAAC,EAAG,QAAO;AAE3C,WAAO;AAAA,EACT;AAiBO,WAAS,WAAW,GAAW;AACpC,UAAM,IAAI,OAAO,gBAAK,EAAE,EACrB,QAAQ,UAAU,EAAE,EACpB,KAAK;AACR,QAAI,MAAM,GAAI,QAAO;AACrB,QAAI,cAAc,KAAK,CAAC,EAAG,QAAO;AAClC,QAAI,eAAe,KAAK,CAAC,EAAG,QAAO;AACnC,QAAI,kBAAkB,KAAK,CAAC,EAAG,QAAO;AACtC,QAAI,qBAAqB,KAAK,CAAC,EAAG,QAAO;AACzC,WAAO;AAAA,EACT;AAWO,WAAS,aAAa,GAAW;AACtC,UAAM,IAAI,OAAO,gBAAK,EAAE,EACrB,QAAQ,UAAU,EAAE,EACpB,KAAK,EACL,YAAY;AACf,WAAO,iBAAiB,KAAK,CAAC;AAAA,EAChC;AAYO,WAAS,eAAe,GAAW;AACxC,UAAM,IAAI,OAAO,gBAAK,EAAE,EACrB,QAAQ,UAAU,EAAE,EACpB,KAAK,EACL,YAAY;AACf,QAAI,UAAU,KAAK,CAAC,EAAG,QAAO;AAC9B,QAAI,eAAe,KAAK,CAAC,EAAG,QAAO;AACnC,QAAI,WAAW,KAAK,CAAC,EAAG,QAAO;AAC/B,WAAO;AAAA,EACT;AASO,WAAS,YAAY,GAAW;AACrC,UAAM,IAAI,OAAO,gBAAK,EAAE,EACrB,QAAQ,UAAU,EAAE,EACpB,KAAK,EACL,YAAY;AACf,WAAO,mBAAmB,KAAK,CAAC;AAAA,EAClC;AASO,WAAS,YAAY,GAAW;AACrC,UAAM,IAAI,OAAO,gBAAK,EAAE,EACrB,QAAQ,UAAU,EAAE,EACpB,KAAK,EACL,YAAY;AACf,WAAO,mBAAmB,KAAK,CAAC;AAAA,EAClC;AASO,WAAS,aAAa,GAAW;AACtC,WAAO,YAAY,CAAC,KAAK,YAAY,CAAC;AAAA,EACxC;AAUO,WAAS,WAAW,GAAW;AACpC,UAAM,IAAI,OAAO,gBAAK,EAAE,EACrB,QAAQ,UAAU,EAAE,EACpB,KAAK;AACR,QAAI,CAAC,cAAc,KAAK,CAAC,EAAG,QAAO;AACnC,QAAIA,OAAM;AACV,QAAI,eAAe;AACnB,aAAS,IAAI,EAAE,SAAS,GAAG,KAAK,GAAG,KAAK;AACtC,UAAI,QAAQ,OAAO,EAAE,CAAC,CAAC;AACvB,UAAI,cAAc;AAChB,iBAAS;AACT,YAAI,QAAQ,EAAG,UAAS;AAAA,MAC1B;AACA,MAAAA,QAAO;AACP,qBAAe,CAAC;AAAA,IAClB;AACA,WAAOA,OAAM,OAAO;AAAA,EACtB;AAWO,WAAS,eAAe,GAAW;AACxC,UAAM,IAAI,OAAO,gBAAK,EAAE,EACrB,KAAK,EACL,YAAY;AACf,UAAM,OAAO;AACb,UAAM,MAAM,IAAI,OAAO,KAAK,IAAI,4EAAmD;AACnF,UAAM,MAAM,IAAI,OAAO,KAAK,IAAI,oCAAoC;AACpE,UAAM,MAAM,IAAI,OAAO,KAAK,IAAI,oCAAoC;AACpE,WAAO,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC;AAAA,EACjD;AAYO,WAAS,QAAQ,MAAc;AACpC,UAAM,IAAI,OAAO,sBAAQ,EAAE,EAAE,KAAK;AAClC,QAAI,CAAC,4BAA4B,KAAK,CAAC,EAAG,QAAO;AACjD,UAAM,UAAU;AAChB,UAAM,UAAU,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE;AAC/E,UAAM,MAA8B,CAAC;AACrC,aAAS,IAAI,GAAG,IAAI,QAAQ,QAAQ,IAAK,KAAI,QAAQ,CAAC,CAAC,IAAI;AAC3D,QAAIA,OAAM;AACV,aAAS,IAAI,GAAG,IAAI,IAAI,KAAK;AAC3B,MAAAA,QAAO,IAAI,EAAE,CAAC,CAAC,IAAI,QAAQ,CAAC;AAAA,IAC9B;AACA,UAAM,cAAc,KAAMA,OAAM,MAAO;AACvC,UAAM,WAAW,QAAQ,UAAU;AACnC,WAAO,EAAE,EAAE,MAAM;AAAA,EACnB;AAWO,WAAS,WAAW,GAAW;AACpC,UAAM,IAAI,OAAO,gBAAK,EAAE,EAAE,KAAK;AAC/B,WAAO,sDAAsD,KAAK,CAAC;AAAA,EACrE;AAUO,WAAS,MAAM,GAAW;AAC/B,UAAM,IAAI,OAAO,gBAAK,EAAE,EAAE,KAAK;AAC/B,QAAI,MAAM,GAAI,QAAO;AACrB,QAAI;AACF,YAAM,IAAI,IAAI,IAAI,CAAC;AACnB,aAAO,CAAC,SAAS,UAAU,MAAM,EAAE,SAAS,EAAE,QAAQ,KAAK,CAAC,CAAC,EAAE;AAAA,IACjE,SAAQ;AACN,aAAO;AAAA,IACT;AAAA,EACF;AAUA,WAAS,OAAO,GAAW;AACzB,UAAM,IAAI,OAAO,gBAAK,EAAE,EAAE,KAAK;AAC/B,QAAI,MAAM,GAAI,QAAO;AACrB,UAAM,QAAQ,EAAE,MAAM,GAAG;AACzB,QAAI,MAAM,WAAW,EAAG,QAAO;AAC/B,eAAW,KAAK,OAAO;AACrB,UAAI,CAAC,QAAQ,KAAK,CAAC,EAAG,QAAO;AAC7B,UAAI,EAAE,SAAS,KAAK,EAAE,WAAW,GAAG,EAAG,QAAO;AAC9C,YAAM,IAAI,OAAO,CAAC;AAClB,UAAI,IAAI,KAAK,IAAI,IAAK,QAAO;AAAA,IAC/B;AACA,WAAO;AAAA,EACT;AAcO,WAAS,OAAO,GAAoB;AACzC,UAAM,IAAI,OAAO,gBAAK,EAAE,EAAE,KAAK;AAC/B,QAAI,MAAM,GAAI,QAAO;AAErB,UAAM,YAAY,EAAE,YAAY,GAAG;AACnC,QAAI,cAAc,MAAM,EAAE,SAAS,GAAG,GAAG;AACvC,YAAM,WAAW,EAAE,MAAM,GAAG,SAAS;AACrC,YAAM,WAAW,EAAE,MAAM,YAAY,CAAC;AACtC,aAAO,OAAO,QAAQ,KAAK,OAAO,QAAQ;AAAA,IAC5C;AAEA,UAAM,iBAAiB,EAAE,MAAM,KAAK,KAAK,CAAC,GAAG;AAC7C,QAAI,gBAAgB,EAAG,QAAO;AAE9B,UAAM,WAAW,EAAE,MAAM,GAAG;AAC5B,QAAI,EAAE,WAAW,IAAI,EAAG,UAAS,MAAM;AACvC,QAAI,EAAE,SAAS,IAAI,EAAG,UAAS,IAAI;AACnC,UAAM,mBAAmB,SAAS,OAAO,CAAC,QAAQ,QAAQ,EAAE;AAE5D,QAAI,kBAAkB,KAAK,iBAAiB,WAAW,EAAG,QAAO;AACjE,QAAI,kBAAkB,KAAK,iBAAiB,UAAU,KAAK,iBAAiB,UAAU,GAAG;AAAA,IAEzF,WAAW,kBAAkB,KAAK,SAAS,WAAW,GAAG;AAEvD,aAAO;AAAA,IACT,WAAW,kBAAkB,KAAK,iBAAiB,WAAW,GAAG;AAAA,IAEjE,OAAO;AACL,aAAO;AAAA,IACT;AAGA,WAAO,iBAAiB;AAAA,MACtB,CAAC,QAAQ,IAAI,UAAU,KAAK,IAAI,UAAU,KAAK,qBAAqB,KAAK,GAAG;AAAA,IAC9E;AAAA,EACF;AAYO,WAAS,KAAK,GAAW,SAA6B;AAC3D,QAAI,YAAY,KAAK,YAAY,IAAK,QAAO,OAAO,CAAC;AACrD,QAAI,YAAY,KAAK,YAAY,IAAK,QAAO,OAAO,CAAC;AACrD,WAAO,OAAO,CAAC,KAAK,OAAO,CAAC;AAAA,EAC9B;AAUO,WAAS,UAAU,GAAW;AACnC,UAAM,IAAI,OAAO,gBAAK,EAAE,EAAE,KAAK;AAC/B,QAAI,MAAM,GAAI,QAAO;AACrB,UAAM,QAAQ,EAAE,MAAM,GAAG;AACzB,QAAI,MAAM,WAAW,EAAG,QAAO;AAC/B,UAAM,CAAC,IAAI,SAAS,IAAI;AACxB,QAAI,CAAC,QAAQ,KAAK,SAAS,EAAG,QAAO;AACrC,UAAM,SAAS,OAAO,SAAS;AAC/B,QAAI,GAAG,SAAS,GAAG,GAAG;AACpB,UAAI,CAAC,OAAO,EAAE,EAAG,QAAO;AACxB,aAAO,UAAU,KAAK,UAAU;AAAA,IAClC;AACA,QAAI,CAAC,OAAO,EAAE,EAAG,QAAO;AACxB,WAAO,UAAU,KAAK,UAAU;AAAA,EAClC;AAWO,WAAS,aAAa,GAAoB;AAC/C,UAAM,IAAI,OAAO,MAAM,WAAW,IAAI,OAAO,OAAO,gBAAK,EAAE,EAAE,KAAK,CAAC;AACnE,WAAO,OAAO,UAAU,CAAC,KAAK,KAAK,KAAK,KAAK;AAAA,EAC/C;AASO,WAAS,WAAW,GAAoB;AAC7C,UAAM,IAAI,OAAO,MAAM,WAAW,IAAI,OAAO,OAAO,gBAAK,EAAE,EAAE,KAAK,CAAC;AACnE,WAAO,OAAO,SAAS,CAAC,KAAK,KAAK,OAAO,KAAK;AAAA,EAChD;AASO,WAAS,YAAY,GAAoB;AAC9C,UAAM,IAAI,OAAO,MAAM,WAAW,IAAI,OAAO,OAAO,gBAAK,EAAE,EAAE,KAAK,CAAC;AACnE,WAAO,OAAO,SAAS,CAAC,KAAK,KAAK,QAAQ,KAAK;AAAA,EACjD;","names":["t","e","n","r","i","s","u","a","M","m","f","l","$","y","v","g","D","o","d","c","h","e","t","n","r","i","o","a","f","h","u","d","l","s","c","m","M","t","i","e","s","f","n","u","r","o","t","n","i","o","r","e","u","f","s","a","r","e","t","o","n","i","d","e","t","r","e","_","t","clone","dayjs","isNumeric","isSymbol","unescape","all","Map","on","type","handler","handlers","get","push","set","off","splice","indexOf","emit","evt","slice","map","BigNumber","round","sum","compare","format","rest","n","dayjs","customParseFormat","utc","timezone","relativeTime","advancedFormat","arr","arr","union","intersection","union","intersection","rest","placeholderSymbol","rest","clone","merge","rest","clone","isPlainObject","isPlainObject","isSymbol","unescape","range","getWatermark","toBase64Url","isNumeric","sum"]}