acdr-ui/dist/dev/mp-weixin/common/vendor.js.map

1 line
2.3 MiB
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{"version":3,"file":"vendor.js","sources":["../../../../node_modules/.pnpm/@vue+shared@3.4.21/node_modules/@vue/shared/dist/shared.esm-bundler.js","../../../../node_modules/.pnpm/@dcloudio+uni-shared@3.0.0-alpha-4010520240507001/node_modules/@dcloudio/uni-shared/dist/uni-shared.es.js","../../../../node_modules/.pnpm/@dcloudio+uni-i18n@3.0.0-alpha-4010520240507001/node_modules/@dcloudio/uni-i18n/dist/uni-i18n.es.js","../../../../node_modules/.pnpm/@dcloudio+uni-mp-weixin@3.0.0-alpha-4010520240507001_postcss@8.4.38_vue@3.4.21/node_modules/@dcloudio/uni-mp-weixin/dist/uni.api.esm.js","../../../../node_modules/.pnpm/@dcloudio+uni-mp-vue@3.0.0-alpha-4010520240507001/node_modules/@dcloudio/uni-mp-vue/dist/vue.runtime.esm.js","../../../../node_modules/.pnpm/@dcloudio+uni-mp-weixin@3.0.0-alpha-4010520240507001_postcss@8.4.38_vue@3.4.21/node_modules/@dcloudio/uni-mp-weixin/dist/uni.mp.esm.js","../../../../node_modules/.pnpm/@dcloudio+uni-app@3.0.0-alpha-4010520240507001_@dcloudio+types@3.4.8_postcss@8.4.38_vue@3.4.21/node_modules/@dcloudio/uni-app/dist/uni-app.es.js","../../../../node_modules/.pnpm/pinia@2.0.36_typescript@4.9.5_vue@3.4.21/node_modules/vue-demi/lib/index.mjs","../../../../node_modules/.pnpm/pinia@2.0.36_typescript@4.9.5_vue@3.4.21/node_modules/pinia/dist/pinia.mjs","../../../../node_modules/luch-request/src/lib/utils.js","../../../../node_modules/luch-request/src/lib/helpers/buildURL.js","../../../../node_modules/luch-request/src/lib/helpers/isAbsoluteURL.js","../../../../node_modules/luch-request/src/lib/helpers/combineURLs.js","../../../../node_modules/luch-request/src/lib/core/buildFullPath.js","../../../../node_modules/luch-request/src/lib/core/settle.js","../../../../node_modules/luch-request/src/lib/adapters/index.js","../../../../node_modules/luch-request/src/lib/core/dispatchRequest.js","../../../../node_modules/luch-request/src/lib/core/InterceptorManager.js","../../../../node_modules/luch-request/src/lib/core/mergeConfig.js","../../../../node_modules/luch-request/src/lib/core/defaults.js","../../../../node_modules/luch-request/src/lib/utils/clone.js","../../../../node_modules/luch-request/src/lib/core/Request.js","../../../../node_modules/lodash-es/_freeGlobal.js","../../../../node_modules/lodash-es/_root.js","../../../../node_modules/lodash-es/_Symbol.js","../../../../node_modules/lodash-es/_getRawTag.js","../../../../node_modules/lodash-es/_objectToString.js","../../../../node_modules/lodash-es/_baseGetTag.js","../../../../node_modules/lodash-es/isObjectLike.js","../../../../node_modules/lodash-es/isSymbol.js","../../../../node_modules/lodash-es/_baseToNumber.js","../../../../node_modules/lodash-es/_arrayMap.js","../../../../node_modules/lodash-es/isArray.js","../../../../node_modules/lodash-es/_baseToString.js","../../../../node_modules/lodash-es/_createMathOperation.js","../../../../node_modules/lodash-es/add.js","../../../../node_modules/lodash-es/_trimmedEndIndex.js","../../../../node_modules/lodash-es/_baseTrim.js","../../../../node_modules/lodash-es/isObject.js","../../../../node_modules/lodash-es/toNumber.js","../../../../node_modules/lodash-es/toFinite.js","../../../../node_modules/lodash-es/toInteger.js","../../../../node_modules/lodash-es/after.js","../../../../node_modules/lodash-es/identity.js","../../../../node_modules/lodash-es/isFunction.js","../../../../node_modules/lodash-es/_coreJsData.js","../../../../node_modules/lodash-es/_isMasked.js","../../../../node_modules/lodash-es/_toSource.js","../../../../node_modules/lodash-es/_baseIsNative.js","../../../../node_modules/lodash-es/_getValue.js","../../../../node_modules/lodash-es/_getNative.js","../../../../node_modules/lodash-es/_WeakMap.js","../../../../node_modules/lodash-es/_metaMap.js","../../../../node_modules/lodash-es/_baseSetData.js","../../../../node_modules/lodash-es/_baseCreate.js","../../../../node_modules/lodash-es/_createCtor.js","../../../../node_modules/lodash-es/_createBind.js","../../../../node_modules/lodash-es/_apply.js","../../../../node_modules/lodash-es/_composeArgs.js","../../../../node_modules/lodash-es/_composeArgsRight.js","../../../../node_modules/lodash-es/_countHolders.js","../../../../node_modules/lodash-es/_baseLodash.js","../../../../node_modules/lodash-es/_LazyWrapper.js","../../../../node_modules/lodash-es/noop.js","../../../../node_modules/lodash-es/_getData.js","../../../../node_modules/lodash-es/_realNames.js","../../../../node_modules/lodash-es/_getFuncName.js","../../../../node_modules/lodash-es/_LodashWrapper.js","../../../../node_modules/lodash-es/_copyArray.js","../../../../node_modules/lodash-es/_wrapperClone.js","../../../../node_modules/lodash-es/wrapperLodash.js","../../../../node_modules/lodash-es/_isLaziable.js","../../../../node_modules/lodash-es/_shortOut.js","../../../../node_modules/lodash-es/_setData.js","../../../../node_modules/lodash-es/_getWrapDetails.js","../../../../node_modules/lodash-es/_insertWrapDetails.js","../../../../node_modules/lodash-es/constant.js","../../../../node_modules/lodash-es/_defineProperty.js","../../../../node_modules/lodash-es/_baseSetToString.js","../../../../node_modules/lodash-es/_setToString.js","../../../../node_modules/lodash-es/_arrayEach.js","../../../../node_modules/lodash-es/_baseFindIndex.js","../../../../node_modules/lodash-es/_baseIsNaN.js","../../../../node_modules/lodash-es/_strictIndexOf.js","../../../../node_modules/lodash-es/_baseIndexOf.js","../../../../node_modules/lodash-es/_arrayIncludes.js","../../../../node_modules/lodash-es/_updateWrapDetails.js","../../../../node_modules/lodash-es/_setWrapToString.js","../../../../node_modules/lodash-es/_createRecurry.js","../../../../node_modules/lodash-es/_getHolder.js","../../../../node_modules/lodash-es/_isIndex.js","../../../../node_modules/lodash-es/_reorder.js","../../../../node_modules/lodash-es/_replaceHolders.js","../../../../node_modules/lodash-es/_createHybrid.js","../../../../node_modules/lodash-es/_createCurry.js","../../../../node_modules/lodash-es/_createPartial.js","../../../../node_modules/lodash-es/_mergeData.js","../../../../node_modules/lodash-es/_createWrap.js","../../../../node_modules/lodash-es/ary.js","../../../../node_modules/lodash-es/_baseAssignValue.js","../../../../node_modules/lodash-es/eq.js","../../../../node_modules/lodash-es/_assignValue.js","../../../../node_modules/lodash-es/_copyObject.js","../../../../node_modules/lodash-es/_overRest.js","../../../../node_modules/lodash-es/_baseRest.js","../../../../node_modules/lodash-es/isLength.js","../../../../node_modules/lodash-es/isArrayLike.js","../../../../node_modules/lodash-es/_isIterateeCall.js","../../../../node_modules/lodash-es/_createAssigner.js","../../../../node_modules/lodash-es/_isPrototype.js","../../../../node_modules/lodash-es/_baseTimes.js","../../../../node_modules/lodash-es/_baseIsArguments.js","../../../../node_modules/lodash-es/isArguments.js","../../../../node_modules/lodash-es/stubFalse.js","../../../../node_modules/lodash-es/isBuffer.js","../../../../node_modules/lodash-es/_baseIsTypedArray.js","../../../../node_modules/lodash-es/_baseUnary.js","../../../../node_modules/lodash-es/_nodeUtil.js","../../../../node_modules/lodash-es/isTypedArray.js","../../../../node_modules/lodash-es/_arrayLikeKeys.js","../../../../node_modules/lodash-es/_overArg.js","../../../../node_modules/lodash-es/_nativeKeys.js","../../../../node_modules/lodash-es/_baseKeys.js","../../../../node_modules/lodash-es/keys.js","../../../../node_modules/lodash-es/assign.js","../../../../node_modules/lodash-es/_nativeKeysIn.js","../../../../node_modules/lodash-es/_baseKeysIn.js","../../../../node_modules/lodash-es/keysIn.js","../../../../node_modules/lodash-es/assignIn.js","../../../../node_modules/lodash-es/assignInWith.js","../../../../node_modules/lodash-es/assignWith.js","../../../../node_modules/lodash-es/_isKey.js","../../../../node_modules/lodash-es/_nativeCreate.js","../../../../node_modules/lodash-es/_hashClear.js","../../../../node_modules/lodash-es/_hashDelete.js","../../../../node_modules/lodash-es/_hashGet.js","../../../../node_modules/lodash-es/_hashHas.js","../../../../node_modules/lodash-es/_hashSet.js","../../../../node_modules/lodash-es/_Hash.js","../../../../node_modules/lodash-es/_listCacheClear.js","../../../../node_modules/lodash-es/_assocIndexOf.js","../../../../node_modules/lodash-es/_listCacheDelete.js","../../../../node_modules/lodash-es/_listCacheGet.js","../../../../node_modules/lodash-es/_listCacheHas.js","../../../../node_modules/lodash-es/_listCacheSet.js","../../../../node_modules/lodash-es/_ListCache.js","../../../../node_modules/lodash-es/_Map.js","../../../../node_modules/lodash-es/_mapCacheClear.js","../../../../node_modules/lodash-es/_isKeyable.js","../../../../node_modules/lodash-es/_getMapData.js","../../../../node_modules/lodash-es/_mapCacheDelete.js","../../../../node_modules/lodash-es/_mapCacheGet.js","../../../../node_modules/lodash-es/_mapCacheHas.js","../../../../node_modules/lodash-es/_mapCacheSet.js","../../../../node_modules/lodash-es/_MapCache.js","../../../../node_modules/lodash-es/memoize.js","../../../../node_modules/lodash-es/_memoizeCapped.js","../../../../node_modules/lodash-es/_stringToPath.js","../../../../node_modules/lodash-es/toString.js","../../../../node_modules/lodash-es/_castPath.js","../../../../node_modules/lodash-es/_toKey.js","../../../../node_modules/lodash-es/_baseGet.js","../../../../node_modules/lodash-es/get.js","../../../../node_modules/lodash-es/_baseAt.js","../../../../node_modules/lodash-es/_arrayPush.js","../../../../node_modules/lodash-es/_isFlattenable.js","../../../../node_modules/lodash-es/_baseFlatten.js","../../../../node_modules/lodash-es/flatten.js","../../../../node_modules/lodash-es/_flatRest.js","../../../../node_modules/lodash-es/at.js","../../../../node_modules/lodash-es/_getPrototype.js","../../../../node_modules/lodash-es/isPlainObject.js","../../../../node_modules/lodash-es/isError.js","../../../../node_modules/lodash-es/attempt.js","../../../../node_modules/lodash-es/before.js","../../../../node_modules/lodash-es/bind.js","../../../../node_modules/lodash-es/bindAll.js","../../../../node_modules/lodash-es/bindKey.js","../../../../node_modules/lodash-es/_baseSlice.js","../../../../node_modules/lodash-es/_castSlice.js","../../../../node_modules/lodash-es/_hasUnicode.js","../../../../node_modules/lodash-es/_asciiToArray.js","../../../../node_modules/lodash-es/_unicodeToArray.js","../../../../node_modules/lodash-es/_stringToArray.js","../../../../node_modules/lodash-es/_createCaseFirst.js","../../../../node_modules/lodash-es/upperFirst.js","../../../../node_modules/lodash-es/capitalize.js","../../../../node_modules/lodash-es/_arrayReduce.js","../../../../node_modules/lodash-es/_basePropertyOf.js","../../../../node_modules/lodash-es/_deburrLetter.js","../../../../node_modules/lodash-es/deburr.js","../../../../node_modules/lodash-es/_asciiWords.js","../../../../node_modules/lodash-es/_hasUnicodeWord.js","../../../../node_modules/lodash-es/_unicodeWords.js","../../../../node_modules/lodash-es/words.js","../../../../node_modules/lodash-es/_createCompounder.js","../../../../node_modules/lodash-es/camelCase.js","../../../../node_modules/lodash-es/castArray.js","../../../../node_modules/lodash-es/_createRound.js","../../../../node_modules/lodash-es/ceil.js","../../../../node_modules/lodash-es/chain.js","../../../../node_modules/lodash-es/chunk.js","../../../../node_modules/lodash-es/_baseClamp.js","../../../../node_modules/lodash-es/clamp.js","../../../../node_modules/lodash-es/_stackClear.js","../../../../node_modules/lodash-es/_stackDelete.js","../../../../node_modules/lodash-es/_stackGet.js","../../../../node_modules/lodash-es/_stackHas.js","../../../../node_modules/lodash-es/_stackSet.js","../../../../node_modules/lodash-es/_Stack.js","../../../../node_modules/lodash-es/_baseAssign.js","../../../../node_modules/lodash-es/_baseAssignIn.js","../../../../node_modules/lodash-es/_cloneBuffer.js","../../../../node_modules/lodash-es/_arrayFilter.js","../../../../node_modules/lodash-es/stubArray.js","../../../../node_modules/lodash-es/_getSymbols.js","../../../../node_modules/lodash-es/_copySymbols.js","../../../../node_modules/lodash-es/_getSymbolsIn.js","../../../../node_modules/lodash-es/_copySymbolsIn.js","../../../../node_modules/lodash-es/_baseGetAllKeys.js","../../../../node_modules/lodash-es/_getAllKeys.js","../../../../node_modules/lodash-es/_getAllKeysIn.js","../../../../node_modules/lodash-es/_DataView.js","../../../../node_modules/lodash-es/_Promise.js","../../../../node_modules/lodash-es/_Set.js","../../../../node_modules/lodash-es/_getTag.js","../../../../node_modules/lodash-es/_initCloneArray.js","../../../../node_modules/lodash-es/_Uint8Array.js","../../../../node_modules/lodash-es/_cloneArrayBuffer.js","../../../../node_modules/lodash-es/_cloneDataView.js","../../../../node_modules/lodash-es/_cloneRegExp.js","../../../../node_modules/lodash-es/_cloneSymbol.js","../../../../node_modules/lodash-es/_cloneTypedArray.js","../../../../node_modules/lodash-es/_initCloneByTag.js","../../../../node_modules/lodash-es/_initCloneObject.js","../../../../node_modules/lodash-es/_baseIsMap.js","../../../../node_modules/lodash-es/isMap.js","../../../../node_modules/lodash-es/_baseIsSet.js","../../../../node_modules/lodash-es/isSet.js","../../../../node_modules/lodash-es/_baseClone.js","../../../../node_modules/lodash-es/clone.js","../../../../node_modules/lodash-es/cloneDeep.js","../../../../node_modules/lodash-es/cloneDeepWith.js","../../../../node_modules/lodash-es/cloneWith.js","../../../../node_modules/lodash-es/commit.js","../../../../node_modules/lodash-es/compact.js","../../../../node_modules/lodash-es/concat.js","../../../../node_modules/lodash-es/_setCacheAdd.js","../../../../node_modules/lodash-es/_setCacheHas.js","../../../../node_modules/lodash-es/_SetCache.js","../../../../node_modules/lodash-es/_arraySome.js","../../../../node_modules/lodash-es/_cacheHas.js","../../../../node_modules/lodash-es/_equalArrays.js","../../../../node_modules/lodash-es/_mapToArray.js","../../../../node_modules/lodash-es/_setToArray.js","../../../../node_modules/lodash-es/_equalByTag.js","../../../../node_modules/lodash-es/_equalObjects.js","../../../../node_modules/lodash-es/_baseIsEqualDeep.js","../../../../node_modules/lodash-es/_baseIsEqual.js","../../../../node_modules/lodash-es/_baseIsMatch.js","../../../../node_modules/lodash-es/_isStrictComparable.js","../../../../node_modules/lodash-es/_getMatchData.js","../../../../node_modules/lodash-es/_matchesStrictComparable.js","../../../../node_modules/lodash-es/_baseMatches.js","../../../../node_modules/lodash-es/_baseHasIn.js","../../../../node_modules/lodash-es/_hasPath.js","../../../../node_modules/lodash-es/hasIn.js","../../../../node_modules/lodash-es/_baseMatchesProperty.js","../../../../node_modules/lodash-es/_baseProperty.js","../../../../node_modules/lodash-es/_basePropertyDeep.js","../../../../node_modules/lodash-es/property.js","../../../../node_modules/lodash-es/_baseIteratee.js","../../../../node_modules/lodash-es/cond.js","../../../../node_modules/lodash-es/_baseConformsTo.js","../../../../node_modules/lodash-es/_baseConforms.js","../../../../node_modules/lodash-es/conforms.js","../../../../node_modules/lodash-es/conformsTo.js","../../../../node_modules/lodash-es/_arrayAggregator.js","../../../../node_modules/lodash-es/_createBaseFor.js","../../../../node_modules/lodash-es/_baseFor.js","../../../../node_modules/lodash-es/_baseForOwn.js","../../../../node_modules/lodash-es/_createBaseEach.js","../../../../node_modules/lodash-es/_baseEach.js","../../../../node_modules/lodash-es/_baseAggregator.js","../../../../node_modules/lodash-es/_createAggregator.js","../../../../node_modules/lodash-es/countBy.js","../../../../node_modules/lodash-es/create.js","../../../../node_modules/lodash-es/curry.js","../../../../node_modules/lodash-es/curryRight.js","../../../../node_modules/lodash-es/now.js","../../../../node_modules/lodash-es/debounce.js","../../../../node_modules/lodash-es/defaultTo.js","../../../../node_modules/lodash-es/defaults.js","../../../../node_modules/lodash-es/_assignMergeValue.js","../../../../node_modules/lodash-es/isArrayLikeObject.js","../../../../node_modules/lodash-es/_safeGet.js","../../../../node_modules/lodash-es/toPlainObject.js","../../../../node_modules/lodash-es/_baseMergeDeep.js","../../../../node_modules/lodash-es/_baseMerge.js","../../../../node_modules/lodash-es/_customDefaultsMerge.js","../../../../node_modules/lodash-es/mergeWith.js","../../../../node_modules/lodash-es/defaultsDeep.js","../../../../node_modules/lodash-es/_baseDelay.js","../../../../node_modules/lodash-es/defer.js","../../../../node_modules/lodash-es/delay.js","../../../../node_modules/lodash-es/_arrayIncludesWith.js","../../../../node_modules/lodash-es/_baseDifference.js","../../../../node_modules/lodash-es/difference.js","../../../../node_modules/lodash-es/last.js","../../../../node_modules/lodash-es/differenceBy.js","../../../../node_modules/lodash-es/differenceWith.js","../../../../node_modules/lodash-es/divide.js","../../../../node_modules/lodash-es/drop.js","../../../../node_modules/lodash-es/dropRight.js","../../../../node_modules/lodash-es/_baseWhile.js","../../../../node_modules/lodash-es/dropRightWhile.js","../../../../node_modules/lodash-es/dropWhile.js","../../../../node_modules/lodash-es/_castFunction.js","../../../../node_modules/lodash-es/forEach.js","../../../../node_modules/lodash-es/_arrayEachRight.js","../../../../node_modules/lodash-es/_baseForRight.js","../../../../node_modules/lodash-es/_baseForOwnRight.js","../../../../node_modules/lodash-es/_baseEachRight.js","../../../../node_modules/lodash-es/forEachRight.js","../../../../node_modules/lodash-es/endsWith.js","../../../../node_modules/lodash-es/_baseToPairs.js","../../../../node_modules/lodash-es/_setToPairs.js","../../../../node_modules/lodash-es/_createToPairs.js","../../../../node_modules/lodash-es/toPairs.js","../../../../node_modules/lodash-es/toPairsIn.js","../../../../node_modules/lodash-es/_escapeHtmlChar.js","../../../../node_modules/lodash-es/escape.js","../../../../node_modules/lodash-es/escapeRegExp.js","../../../../node_modules/lodash-es/_arrayEvery.js","../../../../node_modules/lodash-es/_baseEvery.js","../../../../node_modules/lodash-es/every.js","../../../../node_modules/lodash-es/toLength.js","../../../../node_modules/lodash-es/_baseFill.js","../../../../node_modules/lodash-es/fill.js","../../../../node_modules/lodash-es/_baseFilter.js","../../../../node_modules/lodash-es/filter.js","../../../../node_modules/lodash-es/_createFind.js","../../../../node_modules/lodash-es/findIndex.js","../../../../node_modules/lodash-es/find.js","../../../../node_modules/lodash-es/_baseFindKey.js","../../../../node_modules/lodash-es/findKey.js","../../../../node_modules/lodash-es/findLastIndex.js","../../../../node_modules/lodash-es/findLast.js","../../../../node_modules/lodash-es/findLastKey.js","../../../../node_modules/lodash-es/head.js","../../../../node_modules/lodash-es/_baseMap.js","../../../../node_modules/lodash-es/map.js","../../../../node_modules/lodash-es/flatMap.js","../../../../node_modules/lodash-es/flatMapDeep.js","../../../../node_modules/lodash-es/flatMapDepth.js","../../../../node_modules/lodash-es/flattenDeep.js","../../../../node_modules/lodash-es/flattenDepth.js","../../../../node_modules/lodash-es/flip.js","../../../../node_modules/lodash-es/floor.js","../../../../node_modules/lodash-es/_createFlow.js","../../../../node_modules/lodash-es/flow.js","../../../../node_modules/lodash-es/flowRight.js","../../../../node_modules/lodash-es/forIn.js","../../../../node_modules/lodash-es/forInRight.js","../../../../node_modules/lodash-es/forOwn.js","../../../../node_modules/lodash-es/forOwnRight.js","../../../../node_modules/lodash-es/fromPairs.js","../../../../node_modules/lodash-es/_baseFunctions.js","../../../../node_modules/lodash-es/functions.js","../../../../node_modules/lodash-es/functionsIn.js","../../../../node_modules/lodash-es/groupBy.js","../../../../node_modules/lodash-es/_baseGt.js","../../../../node_modules/lodash-es/_createRelationalOperation.js","../../../../node_modules/lodash-es/gt.js","../../../../node_modules/lodash-es/gte.js","../../../../node_modules/lodash-es/_baseHas.js","../../../../node_modules/lodash-es/has.js","../../../../node_modules/lodash-es/_baseInRange.js","../../../../node_modules/lodash-es/inRange.js","../../../../node_modules/lodash-es/isString.js","../../../../node_modules/lodash-es/_baseValues.js","../../../../node_modules/lodash-es/values.js","../../../../node_modules/lodash-es/includes.js","../../../../node_modules/lodash-es/indexOf.js","../../../../node_modules/lodash-es/initial.js","../../../../node_modules/lodash-es/_baseIntersection.js","../../../../node_modules/lodash-es/_castArrayLikeObject.js","../../../../node_modules/lodash-es/intersection.js","../../../../node_modules/lodash-es/intersectionBy.js","../../../../node_modules/lodash-es/intersectionWith.js","../../../../node_modules/lodash-es/_baseInverter.js","../../../../node_modules/lodash-es/_createInverter.js","../../../../node_modules/lodash-es/invert.js","../../../../node_modules/lodash-es/invertBy.js","../../../../node_modules/lodash-es/_parent.js","../../../../node_modules/lodash-es/_baseInvoke.js","../../../../node_modules/lodash-es/invoke.js","../../../../node_modules/lodash-es/invokeMap.js","../../../../node_modules/lodash-es/_baseIsArrayBuffer.js","../../../../node_modules/lodash-es/isArrayBuffer.js","../../../../node_modules/lodash-es/isBoolean.js","../../../../node_modules/lodash-es/_baseIsDate.js","../../../../node_modules/lodash-es/isDate.js","../../../../node_modules/lodash-es/isElement.js","../../../../node_modules/lodash-es/isEmpty.js","../../../../node_modules/lodash-es/isEqual.js","../../../../node_modules/lodash-es/isEqualWith.js","../../../../node_modules/lodash-es/isFinite.js","../../../../node_modules/lodash-es/isInteger.js","../../../../node_modules/lodash-es/isMatch.js","../../../../node_modules/lodash-es/isMatchWith.js","../../../../node_modules/lodash-es/isNumber.js","../../../../node_modules/lodash-es/isNaN.js","../../../../node_modules/lodash-es/_isMaskable.js","../../../../node_modules/lodash-es/isNative.js","../../../../node_modules/lodash-es/isNil.js","../../../../node_modules/lodash-es/isNull.js","../../../../node_modules/lodash-es/_baseIsRegExp.js","../../../../node_modules/lodash-es/isRegExp.js","../../../../node_modules/lodash-es/isSafeInteger.js","../../../../node_modules/lodash-es/isUndefined.js","../../../../node_modules/lodash-es/isWeakMap.js","../../../../node_modules/lodash-es/isWeakSet.js","../../../../node_modules/lodash-es/iteratee.js","../../../../node_modules/lodash-es/join.js","../../../../node_modules/lodash-es/kebabCase.js","../../../../node_modules/lodash-es/keyBy.js","../../../../node_modules/lodash-es/_strictLastIndexOf.js","../../../../node_modules/lodash-es/lastIndexOf.js","../../../../node_modules/lodash-es/lowerCase.js","../../../../node_modules/lodash-es/lowerFirst.js","../../../../node_modules/lodash-es/_baseLt.js","../../../../node_modules/lodash-es/lt.js","../../../../node_modules/lodash-es/lte.js","../../../../node_modules/lodash-es/mapKeys.js","../../../../node_modules/lodash-es/mapValues.js","../../../../node_modules/lodash-es/matches.js","../../../../node_modules/lodash-es/matchesProperty.js","../../../../node_modules/lodash-es/_baseExtremum.js","../../../../node_modules/lodash-es/max.js","../../../../node_modules/lodash-es/maxBy.js","../../../../node_modules/lodash-es/_baseSum.js","../../../../node_modules/lodash-es/_baseMean.js","../../../../node_modules/lodash-es/mean.js","../../../../node_modules/lodash-es/meanBy.js","../../../../node_modules/lodash-es/merge.js","../../../../node_modules/lodash-es/method.js","../../../../node_modules/lodash-es/methodOf.js","../../../../node_modules/lodash-es/min.js","../../../../node_modules/lodash-es/minBy.js","../../../../node_modules/lodash-es/mixin.js","../../../../node_modules/lodash-es/multiply.js","../../../../node_modules/lodash-es/negate.js","../../../../node_modules/lodash-es/_iteratorToArray.js","../../../../node_modules/lodash-es/toArray.js","../../../../node_modules/lodash-es/next.js","../../../../node_modules/lodash-es/_baseNth.js","../../../../node_modules/lodash-es/nth.js","../../../../node_modules/lodash-es/nthArg.js","../../../../node_modules/lodash-es/_baseUnset.js","../../../../node_modules/lodash-es/_customOmitClone.js","../../../../node_modules/lodash-es/omit.js","../../../../node_modules/lodash-es/_baseSet.js","../../../../node_modules/lodash-es/_basePickBy.js","../../../../node_modules/lodash-es/pickBy.js","../../../../node_modules/lodash-es/omitBy.js","../../../../node_modules/lodash-es/once.js","../../../../node_modules/lodash-es/_baseSortBy.js","../../../../node_modules/lodash-es/_compareAscending.js","../../../../node_modules/lodash-es/_compareMultiple.js","../../../../node_modules/lodash-es/_baseOrderBy.js","../../../../node_modules/lodash-es/orderBy.js","../../../../node_modules/lodash-es/_createOver.js","../../../../node_modules/lodash-es/over.js","../../../../node_modules/lodash-es/_castRest.js","../../../../node_modules/lodash-es/overArgs.js","../../../../node_modules/lodash-es/overEvery.js","../../../../node_modules/lodash-es/overSome.js","../../../../node_modules/lodash-es/_baseRepeat.js","../../../../node_modules/lodash-es/_asciiSize.js","../../../../node_modules/lodash-es/_unicodeSize.js","../../../../node_modules/lodash-es/_stringSize.js","../../../../node_modules/lodash-es/_createPadding.js","../../../../node_modules/lodash-es/pad.js","../../../../node_modules/lodash-es/padEnd.js","../../../../node_modules/lodash-es/padStart.js","../../../../node_modules/lodash-es/parseInt.js","../../../../node_modules/lodash-es/partial.js","../../../../node_modules/lodash-es/partialRight.js","../../../../node_modules/lodash-es/partition.js","../../../../node_modules/lodash-es/_basePick.js","../../../../node_modules/lodash-es/pick.js","../../../../node_modules/lodash-es/plant.js","../../../../node_modules/lodash-es/propertyOf.js","../../../../node_modules/lodash-es/_baseIndexOfWith.js","../../../../node_modules/lodash-es/_basePullAll.js","../../../../node_modules/lodash-es/pullAll.js","../../../../node_modules/lodash-es/pull.js","../../../../node_modules/lodash-es/pullAllBy.js","../../../../node_modules/lodash-es/pullAllWith.js","../../../../node_modules/lodash-es/_basePullAt.js","../../../../node_modules/lodash-es/pullAt.js","../../../../node_modules/lodash-es/_baseRandom.js","../../../../node_modules/lodash-es/random.js","../../../../node_modules/lodash-es/_baseRange.js","../../../../node_modules/lodash-es/_createRange.js","../../../../node_modules/lodash-es/range.js","../../../../node_modules/lodash-es/rangeRight.js","../../../../node_modules/lodash-es/rearg.js","../../../../node_modules/lodash-es/_baseReduce.js","../../../../node_modules/lodash-es/reduce.js","../../../../node_modules/lodash-es/_arrayReduceRight.js","../../../../node_modules/lodash-es/reduceRight.js","../../../../node_modules/lodash-es/reject.js","../../../../node_modules/lodash-es/remove.js","../../../../node_modules/lodash-es/repeat.js","../../../../node_modules/lodash-es/replace.js","../../../../node_modules/lodash-es/rest.js","../../../../node_modules/lodash-es/result.js","../../../../node_modules/lodash-es/reverse.js","../../../../node_modules/lodash-es/round.js","../../../../node_modules/lodash-es/_arraySample.js","../../../../node_modules/lodash-es/_baseSample.js","../../../../node_modules/lodash-es/sample.js","../../../../node_modules/lodash-es/_shuffleSelf.js","../../../../node_modules/lodash-es/_arraySampleSize.js","../../../../node_modules/lodash-es/_baseSampleSize.js","../../../../node_modules/lodash-es/sampleSize.js","../../../../node_modules/lodash-es/set.js","../../../../node_modules/lodash-es/setWith.js","../../../../node_modules/lodash-es/_arrayShuffle.js","../../../../node_modules/lodash-es/_baseShuffle.js","../../../../node_modules/lodash-es/shuffle.js","../../../../node_modules/lodash-es/size.js","../../../../node_modules/lodash-es/slice.js","../../../../node_modules/lodash-es/snakeCase.js","../../../../node_modules/lodash-es/_baseSome.js","../../../../node_modules/lodash-es/some.js","../../../../node_modules/lodash-es/sortBy.js","../../../../node_modules/lodash-es/_baseSortedIndexBy.js","../../../../node_modules/lodash-es/_baseSortedIndex.js","../../../../node_modules/lodash-es/sortedIndex.js","../../../../node_modules/lodash-es/sortedIndexBy.js","../../../../node_modules/lodash-es/sortedIndexOf.js","../../../../node_modules/lodash-es/sortedLastIndex.js","../../../../node_modules/lodash-es/sortedLastIndexBy.js","../../../../node_modules/lodash-es/sortedLastIndexOf.js","../../../../node_modules/lodash-es/_baseSortedUniq.js","../../../../node_modules/lodash-es/sortedUniq.js","../../../../node_modules/lodash-es/sortedUniqBy.js","../../../../node_modules/lodash-es/split.js","../../../../node_modules/lodash-es/spread.js","../../../../node_modules/lodash-es/startCase.js","../../../../node_modules/lodash-es/startsWith.js","../../../../node_modules/lodash-es/stubObject.js","../../../../node_modules/lodash-es/stubString.js","../../../../node_modules/lodash-es/stubTrue.js","../../../../node_modules/lodash-es/subtract.js","../../../../node_modules/lodash-es/sum.js","../../../../node_modules/lodash-es/sumBy.js","../../../../node_modules/lodash-es/tail.js","../../../../node_modules/lodash-es/take.js","../../../../node_modules/lodash-es/takeRight.js","../../../../node_modules/lodash-es/takeRightWhile.js","../../../../node_modules/lodash-es/takeWhile.js","../../../../node_modules/lodash-es/tap.js","../../../../node_modules/lodash-es/_customDefaultsAssignIn.js","../../../../node_modules/lodash-es/_escapeStringChar.js","../../../../node_modules/lodash-es/_reInterpolate.js","../../../../node_modules/lodash-es/_reEscape.js","../../../../node_modules/lodash-es/_reEvaluate.js","../../../../node_modules/lodash-es/templateSettings.js","../../../../node_modules/lodash-es/template.js","../../../../node_modules/lodash-es/throttle.js","../../../../node_modules/lodash-es/thru.js","../../../../node_modules/lodash-es/times.js","../../../../node_modules/lodash-es/toIterator.js","../../../../node_modules/lodash-es/_baseWrapperValue.js","../../../../node_modules/lodash-es/wrapperValue.js","../../../../node_modules/lodash-es/toLower.js","../../../../node_modules/lodash-es/toPath.js","../../../../node_modules/lodash-es/toSafeInteger.js","../../../../node_modules/lodash-es/toUpper.js","../../../../node_modules/lodash-es/transform.js","../../../../node_modules/lodash-es/_charsEndIndex.js","../../../../node_modules/lodash-es/_charsStartIndex.js","../../../../node_modules/lodash-es/trim.js","../../../../node_modules/lodash-es/trimEnd.js","../../../../node_modules/lodash-es/trimStart.js","../../../../node_modules/lodash-es/truncate.js","../../../../node_modules/lodash-es/unary.js","../../../../node_modules/lodash-es/_unescapeHtmlChar.js","../../../../node_modules/lodash-es/unescape.js","../../../../node_modules/lodash-es/_createSet.js","../../../../node_modules/lodash-es/_baseUniq.js","../../../../node_modules/lodash-es/union.js","../../../../node_modules/lodash-es/unionBy.js","../../../../node_modules/lodash-es/unionWith.js","../../../../node_modules/lodash-es/uniq.js","../../../../node_modules/lodash-es/uniqBy.js","../../../../node_modules/lodash-es/uniqWith.js","../../../../node_modules/lodash-es/uniqueId.js","../../../../node_modules/lodash-es/unset.js","../../../../node_modules/lodash-es/unzip.js","../../../../node_modules/lodash-es/unzipWith.js","../../../../node_modules/lodash-es/_baseUpdate.js","../../../../node_modules/lodash-es/update.js","../../../../node_modules/lodash-es/updateWith.js","../../../../node_modules/lodash-es/upperCase.js","../../../../node_modules/lodash-es/valuesIn.js","../../../../node_modules/lodash-es/without.js","../../../../node_modules/lodash-es/wrap.js","../../../../node_modules/lodash-es/wrapperAt.js","../../../../node_modules/lodash-es/wrapperChain.js","../../../../node_modules/lodash-es/wrapperReverse.js","../../../../node_modules/lodash-es/_baseXor.js","../../../../node_modules/lodash-es/xor.js","../../../../node_modules/lodash-es/xorBy.js","../../../../node_modules/lodash-es/xorWith.js","../../../../node_modules/lodash-es/zip.js","../../../../node_modules/lodash-es/_baseZipObject.js","../../../../node_modules/lodash-es/zipObject.js","../../../../node_modules/lodash-es/zipObjectDeep.js","../../../../node_modules/lodash-es/zipWith.js","../../../../node_modules/lodash-es/array.default.js","../../../../node_modules/lodash-es/collection.default.js","../../../../node_modules/lodash-es/date.default.js","../../../../node_modules/lodash-es/function.default.js","../../../../node_modules/lodash-es/lang.default.js","../../../../node_modules/lodash-es/math.default.js","../../../../node_modules/lodash-es/number.default.js","../../../../node_modules/lodash-es/object.default.js","../../../../node_modules/lodash-es/seq.default.js","../../../../node_modules/lodash-es/string.default.js","../../../../node_modules/lodash-es/util.default.js","../../../../node_modules/lodash-es/_lazyClone.js","../../../../node_modules/lodash-es/_lazyReverse.js","../../../../node_modules/lodash-es/_getView.js","../../../../node_modules/lodash-es/_lazyValue.js","../../../../node_modules/lodash-es/lodash.default.js","../../../../node_modules/dayjs/dayjs.min.js","../../../../node_modules/pinia-plugin-persist-uni/dist/pinia-persist-uni.es.js","../../../../node_modules/dayjs/plugin/relativeTime.js","../../../../node_modules/dayjs/plugin/duration.js","../../../../node_modules/dayjs/locale/zh-cn.js","../../../../node_modules/pinia-plugin-persistedstate/dist/index.mjs","../../../../node_modules/.pnpm/@dcloudio+uni-cli-shared@3.0.0-alpha-4010520240507001_postcss@8.4.38_vue@3.4.21/node_modules/@intlify/shared/dist/shared.esm-bundler.js","../../../../node_modules/@intlify/message-resolver/dist/message-resolver.esm-bundler.js","../../../../node_modules/@intlify/shared/dist/shared.esm-bundler.js","../../../../node_modules/@intlify/runtime/dist/runtime.esm-bundler.js","../../../../node_modules/@intlify/message-compiler/dist/message-compiler.esm-bundler.js","../../../../node_modules/@intlify/devtools-if/dist/devtools-if.esm-bundler.js","../../../../node_modules/.pnpm/@dcloudio+uni-cli-shared@3.0.0-alpha-4010520240507001_postcss@8.4.38_vue@3.4.21/node_modules/@intlify/core-base/dist/core-base.esm-bundler.js","../../../../node_modules/.pnpm/@dcloudio+uni-cli-shared@3.0.0-alpha-4010520240507001_postcss@8.4.38_vue@3.4.21/node_modules/@intlify/vue-devtools/dist/vue-devtools.esm-bundler.js","../../../../node_modules/.pnpm/@dcloudio+uni-cli-shared@3.0.0-alpha-4010520240507001_postcss@8.4.38_vue@3.4.21/node_modules/@dcloudio/uni-cli-shared/lib/vue-i18n/dist/vue-i18n.runtime.esm-bundler.js","../../../../node_modules/qs/lib/utils.js","../../../../node_modules/qs/lib/formats.js","../../../../node_modules/qs/lib/stringify.js","../../../../node_modules/qs/lib/parse.js","../../../../node_modules/qs/lib/index.js","../../../../node_modules/wot-design-uni/components/common/AbortablePromise.ts","../../../../node_modules/wot-design-uni/components/common/util.ts","../../../../node_modules/wot-design-uni/components/common/props.ts","../../../../node_modules/wot-design-uni/components/wd-icon/types.ts","../../../../node_modules/wot-design-uni/components/wd-status-tip/types.ts","../../../../node_modules/wot-design-uni/components/wd-popup/types.ts","../../../../node_modules/@vant/area-data/dist/index.esm.mjs","../../../../node_modules/wot-design-uni/components/composables/useParent.ts","../../../../node_modules/wot-design-uni/components/wd-checkbox-group/types.ts","../../../../node_modules/wot-design-uni/components/wd-checkbox/types.ts","../../../../node_modules/wot-design-uni/components/wd-img/types.ts","../../../../node_modules/wot-design-uni/components/wd-cell-group/types.ts","../../../../node_modules/wot-design-uni/components/composables/useCell.ts","../../../../node_modules/wot-design-uni/components/wd-picker-view/types.ts","../../../../node_modules/wot-design-uni/components/wd-form/types.ts","../../../../node_modules/wot-design-uni/locale/lang/zh-CN.ts","../../../../node_modules/wot-design-uni/locale/index.ts","../../../../node_modules/wot-design-uni/components/composables/useTranslate.ts","../../../../node_modules/wot-design-uni/components/wd-picker/types.ts","../../../../node_modules/wot-design-uni/components/wd-input-number/types.ts","../../../../node_modules/wot-design-uni/components/wd-loadmore/types.ts","../../../../node_modules/.pnpm/@dcloudio+uni-cloud@3.0.0-alpha-4010520240507001_postcss@8.4.38_vue@3.4.21/node_modules/@dcloudio/uni-cloud/dist/uni-cloud.es.js","../../../../node_modules/wot-design-uni/components/common/base64.ts","../../../../node_modules/wot-design-uni/components/wd-toast/index.ts","../../../../node_modules/wot-design-uni/components/wd-toast/types.ts","../../../../node_modules/wot-design-uni/components/wd-message-box/types.ts","../../../../node_modules/wot-design-uni/components/wd-message-box/index.ts","../../../../node_modules/wot-design-uni/components/wd-config-provider/types.ts","../../../../node_modules/wot-design-uni/components/wd-overlay/types.ts","../../../../node_modules/wot-design-uni/components/composables/usePopover.ts","../../../../node_modules/wot-design-uni/components/common/clickoutside.ts","../../../../node_modules/wot-design-uni/components/composables/useQueue.ts","../../../../node_modules/wot-design-uni/components/wd-popover/types.ts","../../../../node_modules/wot-design-uni/components/wd-search/types.ts","../../../../node_modules/wot-design-uni/components/wd-input/types.ts","../../../../node_modules/wot-design-uni/components/wd-col-picker/types.ts","../../../../node_modules/wot-design-uni/components/composables/useChildren.ts","../../../../node_modules/wot-design-uni/components/wd-divider/types.ts","../../../../node_modules/wot-design-uni/components/wd-loading/types.ts","../../../../node_modules/wot-design-uni/components/wd-transition/types.ts","../../../../node_modules/wot-design-uni/components/wd-button/types.ts","../../../../node_modules/wot-design-uni/components/wd-action-sheet/types.ts"],"sourcesContent":["/**\n* @vue/shared v3.4.21\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nfunction makeMap(str, expectsLowerCase) {\n const set = new Set(str.split(\",\"));\n return expectsLowerCase ? (val) => set.has(val.toLowerCase()) : (val) => set.has(val);\n}\n\nconst EMPTY_OBJ = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze({}) : {};\nconst EMPTY_ARR = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze([]) : [];\nconst NOOP = () => {\n};\nconst NO = () => false;\nconst isOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // uppercase letter\n(key.charCodeAt(2) > 122 || key.charCodeAt(2) < 97);\nconst isModelListener = (key) => key.startsWith(\"onUpdate:\");\nconst extend = Object.assign;\nconst remove = (arr, el) => {\n const i = arr.indexOf(el);\n if (i > -1) {\n arr.splice(i, 1);\n }\n};\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\nconst hasOwn = (val, key) => hasOwnProperty.call(val, key);\nconst isArray = Array.isArray;\nconst isMap = (val) => toTypeString(val) === \"[object Map]\";\nconst isSet = (val) => toTypeString(val) === \"[object Set]\";\nconst isDate = (val) => toTypeString(val) === \"[object Date]\";\nconst isRegExp = (val) => toTypeString(val) === \"[object RegExp]\";\nconst isFunction = (val) => typeof val === \"function\";\nconst isString = (val) => typeof val === \"string\";\nconst isSymbol = (val) => typeof val === \"symbol\";\nconst isObject = (val) => val !== null && typeof val === \"object\";\nconst isPromise = (val) => {\n return (isObject(val) || isFunction(val)) && isFunction(val.then) && isFunction(val.catch);\n};\nconst objectToString = Object.prototype.toString;\nconst toTypeString = (value) => objectToString.call(value);\nconst toRawType = (value) => {\n return toTypeString(value).slice(8, -1);\n};\nconst isPlainObject = (val) => toTypeString(val) === \"[object Object]\";\nconst isIntegerKey = (key) => isString(key) && key !== \"NaN\" && key[0] !== \"-\" && \"\" + parseInt(key, 10) === key;\nconst isReservedProp = /* @__PURE__ */ makeMap(\n // the leading comma is intentional so empty string \"\" is also included\n \",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted\"\n);\nconst isBuiltInDirective = /* @__PURE__ */ makeMap(\n \"bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo\"\n);\nconst cacheStringFunction = (fn) => {\n const cache = /* @__PURE__ */ Object.create(null);\n return (str) => {\n const hit = cache[str];\n return hit || (cache[str] = fn(str));\n };\n};\nconst camelizeRE = /-(\\w)/g;\nconst camelize = cacheStringFunction((str) => {\n return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : \"\");\n});\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = cacheStringFunction(\n (str) => str.replace(hyphenateRE, \"-$1\").toLowerCase()\n);\nconst capitalize = cacheStringFunction((str) => {\n return str.charAt(0).toUpperCase() + str.slice(1);\n});\nconst toHandlerKey = cacheStringFunction((str) => {\n const s = str ? `on${capitalize(str)}` : ``;\n return s;\n});\nconst hasChanged = (value, oldValue) => !Object.is(value, oldValue);\nconst invokeArrayFns = (fns, arg) => {\n for (let i = 0; i < fns.length; i++) {\n fns[i](arg);\n }\n};\nconst def = (obj, key, value) => {\n Object.defineProperty(obj, key, {\n configurable: true,\n enumerable: false,\n value\n });\n};\nconst looseToNumber = (val) => {\n const n = parseFloat(val);\n return isNaN(n) ? val : n;\n};\nconst toNumber = (val) => {\n const n = isString(val) ? Number(val) : NaN;\n return isNaN(n) ? val : n;\n};\nlet _globalThis;\nconst getGlobalThis = () => {\n return _globalThis || (_globalThis = typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : {});\n};\nconst identRE = /^[_$a-zA-Z\\xA0-\\uFFFF][_$a-zA-Z0-9\\xA0-\\uFFFF]*$/;\nfunction genPropsAccessExp(name) {\n return identRE.test(name) ? `__props.${name}` : `__props[${JSON.stringify(name)}]`;\n}\n\nconst PatchFlags = {\n \"TEXT\": 1,\n \"1\": \"TEXT\",\n \"CLASS\": 2,\n \"2\": \"CLASS\",\n \"STYLE\": 4,\n \"4\": \"STYLE\",\n \"PROPS\": 8,\n \"8\": \"PROPS\",\n \"FULL_PROPS\": 16,\n \"16\": \"FULL_PROPS\",\n \"NEED_HYDRATION\": 32,\n \"32\": \"NEED_HYDRATION\",\n \"STABLE_FRAGMENT\": 64,\n \"64\": \"STABLE_FRAGMENT\",\n \"KEYED_FRAGMENT\": 128,\n \"128\": \"KEYED_FRAGMENT\",\n \"UNKEYED_FRAGMENT\": 256,\n \"256\": \"UNKEYED_FRAGMENT\",\n \"NEED_PATCH\": 512,\n \"512\": \"NEED_PATCH\",\n \"DYNAMIC_SLOTS\": 1024,\n \"1024\": \"DYNAMIC_SLOTS\",\n \"DEV_ROOT_FRAGMENT\": 2048,\n \"2048\": \"DEV_ROOT_FRAGMENT\",\n \"HOISTED\": -1,\n \"-1\": \"HOISTED\",\n \"BAIL\": -2,\n \"-2\": \"BAIL\"\n};\nconst PatchFlagNames = {\n [1]: `TEXT`,\n [2]: `CLASS`,\n [4]: `STYLE`,\n [8]: `PROPS`,\n [16]: `FULL_PROPS`,\n [32]: `NEED_HYDRATION`,\n [64]: `STABLE_FRAGMENT`,\n [128]: `KEYED_FRAGMENT`,\n [256]: `UNKEYED_FRAGMENT`,\n [512]: `NEED_PATCH`,\n [1024]: `DYNAMIC_SLOTS`,\n [2048]: `DEV_ROOT_FRAGMENT`,\n [-1]: `HOISTED`,\n [-2]: `BAIL`\n};\n\nconst ShapeFlags = {\n \"ELEMENT\": 1,\n \"1\": \"ELEMENT\",\n \"FUNCTIONAL_COMPONENT\": 2,\n \"2\": \"FUNCTIONAL_COMPONENT\",\n \"STATEFUL_COMPONENT\": 4,\n \"4\": \"STATEFUL_COMPONENT\",\n \"TEXT_CHILDREN\": 8,\n \"8\": \"TEXT_CHILDREN\",\n \"ARRAY_CHILDREN\": 16,\n \"16\": \"ARRAY_CHILDREN\",\n \"SLOTS_CHILDREN\": 32,\n \"32\": \"SLOTS_CHILDREN\",\n \"TELEPORT\": 64,\n \"64\": \"TELEPORT\",\n \"SUSPENSE\": 128,\n \"128\": \"SUSPENSE\",\n \"COMPONENT_SHOULD_KEEP_ALIVE\": 256,\n \"256\": \"COMPONENT_SHOULD_KEEP_ALIVE\",\n \"COMPONENT_KEPT_ALIVE\": 512,\n \"512\": \"COMPONENT_KEPT_ALIVE\",\n \"COMPONENT\": 6,\n \"6\": \"COMPONENT\"\n};\n\nconst SlotFlags = {\n \"STABLE\": 1,\n \"1\": \"STABLE\",\n \"DYNAMIC\": 2,\n \"2\": \"DYNAMIC\",\n \"FORWARDED\": 3,\n \"3\": \"FORWARDED\"\n};\nconst slotFlagsText = {\n [1]: \"STABLE\",\n [2]: \"DYNAMIC\",\n [3]: \"FORWARDED\"\n};\n\nconst GLOBALS_ALLOWED = \"Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error\";\nconst isGloballyAllowed = /* @__PURE__ */ makeMap(GLOBALS_ALLOWED);\nconst isGloballyWhitelisted = isGloballyAllowed;\n\nconst range = 2;\nfunction generateCodeFrame(source, start = 0, end = source.length) {\n let lines = source.split(/(\\r?\\n)/);\n const newlineSequences = lines.filter((_, idx) => idx % 2 === 1);\n lines = lines.filter((_, idx) => idx % 2 === 0);\n let count = 0;\n const res = [];\n for (let i = 0; i < lines.length; i++) {\n count += lines[i].length + (newlineSequences[i] && newlineSequences[i].length || 0);\n if (count >= start) {\n for (let j = i - range; j <= i + range || end > count; j++) {\n if (j < 0 || j >= lines.length)\n continue;\n const line = j + 1;\n res.push(\n `${line}${\" \".repeat(Math.max(3 - String(line).length, 0))}| ${lines[j]}`\n );\n const lineLength = lines[j].length;\n const newLineSeqLength = newlineSequences[j] && newlineSequences[j].length || 0;\n if (j === i) {\n const pad = start - (count - (lineLength + newLineSeqLength));\n const length = Math.max(\n 1,\n end > count ? lineLength - pad : end - start\n );\n res.push(` | ` + \" \".repeat(pad) + \"^\".repeat(length));\n } else if (j > i) {\n if (end > count) {\n const length = Math.max(Math.min(end - count, lineLength), 1);\n res.push(` | ` + \"^\".repeat(length));\n }\n count += lineLength + newLineSeqLength;\n }\n }\n break;\n }\n }\n return res.join(\"\\n\");\n}\n\nfunction normalizeStyle(value) {\n if (isArray(value)) {\n const res = {};\n for (let i = 0; i < value.length; i++) {\n const item = value[i];\n const normalized = isString(item) ? parseStringStyle(item) : normalizeStyle(item);\n if (normalized) {\n for (const key in normalized) {\n res[key] = normalized[key];\n }\n }\n }\n return res;\n } else if (isString(value) || isObject(value)) {\n return value;\n }\n}\nconst listDelimiterRE = /;(?![^(]*\\))/g;\nconst propertyDelimiterRE = /:([^]+)/;\nconst styleCommentRE = /\\/\\*[^]*?\\*\\//g;\nfunction parseStringStyle(cssText) {\n const ret = {};\n cssText.replace(styleCommentRE, \"\").split(listDelimiterRE).forEach((item) => {\n if (item) {\n const tmp = item.split(propertyDelimiterRE);\n tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());\n }\n });\n return ret;\n}\nfunction stringifyStyle(styles) {\n let ret = \"\";\n if (!styles || isString(styles)) {\n return ret;\n }\n for (const key in styles) {\n const value = styles[key];\n const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key);\n if (isString(value) || typeof value === \"number\") {\n ret += `${normalizedKey}:${value};`;\n }\n }\n return ret;\n}\nfunction normalizeClass(value) {\n let res = \"\";\n if (isString(value)) {\n res = value;\n } else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n const normalized = normalizeClass(value[i]);\n if (normalized) {\n res += normalized + \" \";\n }\n }\n } else if (isObject(value)) {\n for (const name in value) {\n if (value[name]) {\n res += name + \" \";\n }\n }\n }\n return res.trim();\n}\nfunction normalizeProps(props) {\n if (!props)\n return null;\n let { class: klass, style } = props;\n if (klass && !isString(klass)) {\n props.class = normalizeClass(klass);\n }\n if (style) {\n props.style = normalizeStyle(style);\n }\n return props;\n}\n\nconst HTML_TAGS = \"html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot\";\nconst SVG_TAGS = \"svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view\";\nconst MATH_TAGS = \"annotation,annotation-xml,maction,maligngroup,malignmark,math,menclose,merror,mfenced,mfrac,mfraction,mglyph,mi,mlabeledtr,mlongdiv,mmultiscripts,mn,mo,mover,mpadded,mphantom,mprescripts,mroot,mrow,ms,mscarries,mscarry,msgroup,msline,mspace,msqrt,msrow,mstack,mstyle,msub,msubsup,msup,mtable,mtd,mtext,mtr,munder,munderover,none,semantics\";\nconst VOID_TAGS = \"area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr\";\nconst isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS);\nconst isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS);\nconst isMathMLTag = /* @__PURE__ */ makeMap(MATH_TAGS);\nconst isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS);\n\nconst specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;\nconst isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs);\nconst isBooleanAttr = /* @__PURE__ */ makeMap(\n specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected`\n);\nfunction includeBooleanAttr(value) {\n return !!value || value === \"\";\n}\nconst unsafeAttrCharRE = /[>/=\"'\\u0009\\u000a\\u000c\\u0020]/;\nconst attrValidationCache = {};\nfunction isSSRSafeAttrName(name) {\n if (attrValidationCache.hasOwnProperty(name)) {\n return attrValidationCache[name];\n }\n const isUnsafe = unsafeAttrCharRE.test(name);\n if (isUnsafe) {\n console.error(`unsafe attribute name: ${name}`);\n }\n return attrValidationCache[name] = !isUnsafe;\n}\nconst propsToAttrMap = {\n acceptCharset: \"accept-charset\",\n className: \"class\",\n htmlFor: \"for\",\n httpEquiv: \"http-equiv\"\n};\nconst isKnownHtmlAttr = /* @__PURE__ */ makeMap(\n `accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,inert,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap`\n);\nconst isKnownSvgAttr = /* @__PURE__ */ makeMap(\n `xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan`\n);\nfunction isRenderableAttrValue(value) {\n if (value == null) {\n return false;\n }\n const type = typeof value;\n return type === \"string\" || type === \"number\" || type === \"boolean\";\n}\n\nconst escapeRE = /[\"'&<>]/;\nfunction escapeHtml(string) {\n const str = \"\" + string;\n const match = escapeRE.exec(str);\n if (!match) {\n return str;\n }\n let html = \"\";\n let escaped;\n let index;\n let lastIndex = 0;\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34:\n escaped = \"&quot;\";\n break;\n case 38:\n escaped = \"&amp;\";\n break;\n case 39:\n escaped = \"&#39;\";\n break;\n case 60:\n escaped = \"&lt;\";\n break;\n case 62:\n escaped = \"&gt;\";\n break;\n default:\n continue;\n }\n if (lastIndex !== index) {\n html += str.slice(lastIndex, index);\n }\n lastIndex = index + 1;\n html += escaped;\n }\n return lastIndex !== index ? html + str.slice(lastIndex, index) : html;\n}\nconst commentStripRE = /^-?>|<!--|-->|--!>|<!-$/g;\nfunction escapeHtmlComment(src) {\n return src.replace(commentStripRE, \"\");\n}\n\nfunction looseCompareArrays(a, b) {\n if (a.length !== b.length)\n return false;\n let equal = true;\n for (let i = 0; equal && i < a.length; i++) {\n equal = looseEqual(a[i], b[i]);\n }\n return equal;\n}\nfunction looseEqual(a, b) {\n if (a === b)\n return true;\n let aValidType = isDate(a);\n let bValidType = isDate(b);\n if (aValidType || bValidType) {\n return aValidType && bValidType ? a.getTime() === b.getTime() : false;\n }\n aValidType = isSymbol(a);\n bValidType = isSymbol(b);\n if (aValidType || bValidType) {\n return a === b;\n }\n aValidType = isArray(a);\n bValidType = isArray(b);\n if (aValidType || bValidType) {\n return aValidType && bValidType ? looseCompareArrays(a, b) : false;\n }\n aValidType = isObject(a);\n bValidType = isObject(b);\n if (aValidType || bValidType) {\n if (!aValidType || !bValidType) {\n return false;\n }\n const aKeysCount = Object.keys(a).length;\n const bKeysCount = Object.keys(b).length;\n if (aKeysCount !== bKeysCount) {\n return false;\n }\n for (const key in a) {\n const aHasKey = a.hasOwnProperty(key);\n const bHasKey = b.hasOwnProperty(key);\n if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) {\n return false;\n }\n }\n }\n return String(a) === String(b);\n}\nfunction looseIndexOf(arr, val) {\n return arr.findIndex((item) => looseEqual(item, val));\n}\n\nconst toDisplayString = (val) => {\n return isString(val) ? val : val == null ? \"\" : isArray(val) || isObject(val) && (val.toString === objectToString || !isFunction(val.toString)) ? JSON.stringify(val, replacer, 2) : String(val);\n};\nconst replacer = (_key, val) => {\n if (val && val.__v_isRef) {\n return replacer(_key, val.value);\n } else if (isMap(val)) {\n return {\n [`Map(${val.size})`]: [...val.entries()].reduce(\n (entries, [key, val2], i) => {\n entries[stringifySymbol(key, i) + \" =>\"] = val2;\n return entries;\n },\n {}\n )\n };\n } else if (isSet(val)) {\n return {\n [`Set(${val.size})`]: [...val.values()].map((v) => stringifySymbol(v))\n };\n } else if (isSymbol(val)) {\n return stringifySymbol(val);\n } else if (isObject(val) && !isArray(val) && !isPlainObject(val)) {\n return String(val);\n }\n return val;\n};\nconst stringifySymbol = (v, i = \"\") => {\n var _a;\n return isSymbol(v) ? `Symbol(${(_a = v.description) != null ? _a : i})` : v;\n};\n\nexport { EMPTY_ARR, EMPTY_OBJ, NO, NOOP, PatchFlagNames, PatchFlags, ShapeFlags, SlotFlags, camelize, capitalize, def, escapeHtml, escapeHtmlComment, extend, genPropsAccessExp, generateCodeFrame, getGlobalThis, hasChanged, hasOwn, hyphenate, includeBooleanAttr, invokeArrayFns, isArray, isBooleanAttr, isBuiltInDirective, isDate, isFunction, isGloballyAllowed, isGloballyWhitelisted, isHTMLTag, isIntegerKey, isKnownHtmlAttr, isKnownSvgAttr, isMap, isMathMLTag, isModelListener, isObject, isOn, isPlainObject, isPromise, isRegExp, isRenderableAttrValue, isReservedProp, isSSRSafeAttrName, isSVGTag, isSet, isSpecialBooleanAttr, isString, isSymbol, isVoidTag, looseEqual, looseIndexOf, looseToNumber, makeMap, normalizeClass, normalizeProps, normalizeStyle, objectToString, parseStringStyle, propsToAttrMap, remove, slotFlagsText, stringifyStyle, toDisplayString, toHandlerKey, toNumber, toRawType, toTypeString };\n","import { isHTMLTag, isSVGTag, hyphenate, camelize, normalizeStyle as normalizeStyle$1, isString, parseStringStyle, isArray, normalizeClass as normalizeClass$1, isFunction, isPlainObject, extend, capitalize } from '@vue/shared';\n\nconst BUILT_IN_TAG_NAMES = [\n 'ad',\n 'ad-content-page',\n 'ad-draw',\n 'audio',\n 'button',\n 'camera',\n 'canvas',\n 'checkbox',\n 'checkbox-group',\n 'cover-image',\n 'cover-view',\n 'editor',\n 'form',\n 'functional-page-navigator',\n 'icon',\n 'image',\n 'input',\n 'label',\n 'live-player',\n 'live-pusher',\n 'map',\n 'movable-area',\n 'movable-view',\n 'navigator',\n 'official-account',\n 'open-data',\n 'picker',\n 'picker-view',\n 'picker-view-column',\n 'progress',\n 'radio',\n 'radio-group',\n 'rich-text',\n 'scroll-view',\n 'slider',\n 'swiper',\n 'swiper-item',\n 'switch',\n 'text',\n 'textarea',\n 'video',\n 'view',\n 'web-view',\n];\nconst BUILT_IN_TAGS = BUILT_IN_TAG_NAMES.map((tag) => 'uni-' + tag);\nconst TAGS = [\n 'app',\n 'layout',\n 'content',\n 'main',\n 'top-window',\n 'left-window',\n 'right-window',\n 'tabbar',\n 'page',\n 'page-head',\n 'page-wrapper',\n 'page-body',\n 'page-refresh',\n 'actionsheet',\n 'modal',\n 'toast',\n 'resize-sensor',\n 'shadow-root',\n].map((tag) => 'uni-' + tag);\nconst NVUE_BUILT_IN_TAGS = [\n 'svg',\n 'view',\n 'a',\n 'div',\n 'img',\n 'image',\n 'text',\n 'span',\n 'input',\n 'textarea',\n 'spinner',\n 'select',\n // slider 被自定义 u-slider 替代\n // 'slider',\n 'slider-neighbor',\n 'indicator',\n 'canvas',\n 'list',\n 'cell',\n 'header',\n 'loading',\n 'loading-indicator',\n 'refresh',\n 'scrollable',\n 'scroller',\n 'video',\n 'web',\n 'embed',\n 'tabbar',\n 'tabheader',\n 'datepicker',\n 'timepicker',\n 'marquee',\n 'countdown',\n 'dc-switch',\n 'waterfall',\n 'richtext',\n 'recycle-list',\n 'u-scalable',\n 'barcode',\n 'gcanvas',\n];\nconst UVUE_BUILT_IN_TAGS = [\n 'loading-indicator',\n 'list-view',\n 'list-item',\n 'swiper',\n 'swiper-item',\n 'rich-text',\n 'sticky-view',\n 'sticky-header',\n 'sticky-section',\n // 自定义\n 'uni-slider',\n // 原生实现\n 'button',\n 'nested-scroll-header',\n 'nested-scroll-body',\n];\nconst UVUE_WEB_BUILT_IN_TAGS = [\n 'list-view',\n 'list-item',\n 'sticky-section',\n 'sticky-header',\n 'cloud-db-element',\n].map((tag) => 'uni-' + tag);\nconst UVUE_IOS_BUILT_IN_TAGS = [\n 'scroll-view',\n 'web-view',\n 'slider',\n 'form',\n 'switch',\n];\nconst NVUE_U_BUILT_IN_TAGS = [\n 'u-text',\n 'u-image',\n 'u-input',\n 'u-textarea',\n 'u-video',\n 'u-web-view',\n 'u-slider',\n 'u-ad',\n 'u-ad-draw',\n 'u-rich-text',\n];\nconst UNI_UI_CONFLICT_TAGS = ['list-item'].map((tag) => 'uni-' + tag);\nfunction isBuiltInComponent(tag) {\n if (UNI_UI_CONFLICT_TAGS.indexOf(tag) !== -1) {\n return false;\n }\n // h5 平台会被转换为 v-uni-\n const realTag = 'uni-' + tag.replace('v-uni-', '');\n // TODO 区分x和非x\n return (BUILT_IN_TAGS.indexOf(realTag) !== -1 ||\n UVUE_WEB_BUILT_IN_TAGS.indexOf(realTag) !== -1);\n}\nfunction isH5CustomElement(tag, isX = false) {\n if (isX && UVUE_WEB_BUILT_IN_TAGS.indexOf(tag) !== -1) {\n return true;\n }\n return TAGS.indexOf(tag) !== -1 || BUILT_IN_TAGS.indexOf(tag) !== -1;\n}\nfunction isUniXElement(name) {\n return /^I?Uni.*Element(?:Impl)?$/.test(name);\n}\nfunction isH5NativeTag(tag) {\n return (tag !== 'head' &&\n (isHTMLTag(tag) || isSVGTag(tag)) &&\n !isBuiltInComponent(tag));\n}\nfunction isAppNativeTag(tag) {\n return isHTMLTag(tag) || isSVGTag(tag) || isBuiltInComponent(tag);\n}\nconst NVUE_CUSTOM_COMPONENTS = [\n 'ad',\n 'ad-draw',\n 'button',\n 'checkbox-group',\n 'checkbox',\n 'form',\n 'icon',\n 'label',\n 'movable-area',\n 'movable-view',\n 'navigator',\n 'picker',\n 'progress',\n 'radio-group',\n 'radio',\n 'rich-text',\n 'swiper-item',\n 'swiper',\n 'switch',\n 'slider',\n 'picker-view',\n 'picker-view-column',\n];\nfunction isAppUVueNativeTag(tag) {\n // 前端实现的内置组件都会注册一个根组件\n if (tag.startsWith('uni-') && tag.endsWith('-element')) {\n return true;\n }\n if (UVUE_BUILT_IN_TAGS.includes(tag)) {\n return true;\n }\n if (NVUE_CUSTOM_COMPONENTS.includes(tag)) {\n return false;\n }\n if (isBuiltInComponent(tag)) {\n return true;\n }\n // u-text,u-video...\n if (NVUE_U_BUILT_IN_TAGS.includes(tag)) {\n return true;\n }\n return false;\n}\nfunction isAppIOSUVueNativeTag(tag) {\n // 前端实现的内置组件都会注册一个根组件\n if (tag.startsWith('uni-') && tag.endsWith('-element')) {\n return true;\n }\n if (NVUE_BUILT_IN_TAGS.includes(tag)) {\n return true;\n }\n if (UVUE_BUILT_IN_TAGS.includes(tag)) {\n return true;\n }\n if (UVUE_IOS_BUILT_IN_TAGS.includes(tag)) {\n return true;\n }\n return false;\n}\nfunction isAppNVueNativeTag(tag) {\n if (NVUE_BUILT_IN_TAGS.includes(tag)) {\n return true;\n }\n if (NVUE_CUSTOM_COMPONENTS.includes(tag)) {\n return false;\n }\n if (isBuiltInComponent(tag)) {\n return true;\n }\n // u-text,u-video...\n if (NVUE_U_BUILT_IN_TAGS.includes(tag)) {\n return true;\n }\n return false;\n}\nfunction isMiniProgramNativeTag(tag) {\n return isBuiltInComponent(tag);\n}\nfunction createIsCustomElement(tags = []) {\n return function isCustomElement(tag) {\n return tags.includes(tag);\n };\n}\nfunction isComponentTag(tag) {\n return tag[0].toLowerCase() + tag.slice(1) === 'component';\n}\nconst COMPONENT_SELECTOR_PREFIX = 'uni-';\nconst COMPONENT_PREFIX = 'v-' + COMPONENT_SELECTOR_PREFIX;\n\nconst LINEFEED = '\\n';\nconst NAVBAR_HEIGHT = 44;\nconst TABBAR_HEIGHT = 50;\nconst ON_REACH_BOTTOM_DISTANCE = 50;\nconst RESPONSIVE_MIN_WIDTH = 768;\nconst UNI_STORAGE_LOCALE = 'UNI_LOCALE';\n// quickapp-webview 不能使用 default 作为插槽名称\nconst SLOT_DEFAULT_NAME = 'd';\nconst COMPONENT_NAME_PREFIX = 'VUni';\nconst I18N_JSON_DELIMITERS = ['%', '%'];\nconst PRIMARY_COLOR = '#007aff';\nconst SELECTED_COLOR = '#0062cc'; // 选中的颜色,如选项卡默认的选中颜色\nconst BACKGROUND_COLOR = '#f7f7f7'; // 背景色,如标题栏默认背景色\nconst UNI_SSR = '__uniSSR';\nconst UNI_SSR_TITLE = 'title';\nconst UNI_SSR_STORE = 'store';\nconst UNI_SSR_DATA = 'data';\nconst UNI_SSR_GLOBAL_DATA = 'globalData';\nconst SCHEME_RE = /^([a-z-]+:)?\\/\\//i;\nconst DATA_RE = /^data:.*,.*/;\nconst WEB_INVOKE_APPSERVICE = 'WEB_INVOKE_APPSERVICE';\nconst WXS_PROTOCOL = 'wxs://';\nconst JSON_PROTOCOL = 'json://';\nconst WXS_MODULES = 'wxsModules';\nconst RENDERJS_MODULES = 'renderjsModules';\n// lifecycle\n// App and Page\nconst ON_SHOW = 'onShow';\nconst ON_HIDE = 'onHide';\n//App\nconst ON_LAUNCH = 'onLaunch';\nconst ON_ERROR = 'onError';\nconst ON_THEME_CHANGE = 'onThemeChange';\nconst OFF_THEME_CHANGE = 'offThemeChange';\nconst ON_KEYBOARD_HEIGHT_CHANGE = 'onKeyboardHeightChange';\nconst ON_PAGE_NOT_FOUND = 'onPageNotFound';\nconst ON_UNHANDLE_REJECTION = 'onUnhandledRejection';\nconst ON_EXIT = 'onExit';\n//Page\nconst ON_LOAD = 'onLoad';\nconst ON_READY = 'onReady';\nconst ON_UNLOAD = 'onUnload';\n// 百度特有\nconst ON_INIT = 'onInit';\n// 微信特有\nconst ON_SAVE_EXIT_STATE = 'onSaveExitState';\nconst ON_RESIZE = 'onResize';\nconst ON_BACK_PRESS = 'onBackPress';\nconst ON_PAGE_SCROLL = 'onPageScroll';\nconst ON_TAB_ITEM_TAP = 'onTabItemTap';\nconst ON_REACH_BOTTOM = 'onReachBottom';\nconst ON_PULL_DOWN_REFRESH = 'onPullDownRefresh';\nconst ON_SHARE_TIMELINE = 'onShareTimeline';\nconst ON_ADD_TO_FAVORITES = 'onAddToFavorites';\nconst ON_SHARE_APP_MESSAGE = 'onShareAppMessage';\n// navigationBar\nconst ON_NAVIGATION_BAR_BUTTON_TAP = 'onNavigationBarButtonTap';\nconst ON_NAVIGATION_BAR_CHANGE = 'onNavigationBarChange';\nconst ON_NAVIGATION_BAR_SEARCH_INPUT_CLICKED = 'onNavigationBarSearchInputClicked';\nconst ON_NAVIGATION_BAR_SEARCH_INPUT_CHANGED = 'onNavigationBarSearchInputChanged';\nconst ON_NAVIGATION_BAR_SEARCH_INPUT_CONFIRMED = 'onNavigationBarSearchInputConfirmed';\nconst ON_NAVIGATION_BAR_SEARCH_INPUT_FOCUS_CHANGED = 'onNavigationBarSearchInputFocusChanged';\n// framework\nconst ON_APP_ENTER_FOREGROUND = 'onAppEnterForeground';\nconst ON_APP_ENTER_BACKGROUND = 'onAppEnterBackground';\nconst ON_WEB_INVOKE_APP_SERVICE = 'onWebInvokeAppService';\nconst ON_WXS_INVOKE_CALL_METHOD = 'onWxsInvokeCallMethod';\n\nfunction isComponentInternalInstance(vm) {\n return !!vm.appContext;\n}\nfunction resolveComponentInstance(instance) {\n return (instance &&\n (isComponentInternalInstance(instance) ? instance.proxy : instance));\n}\nfunction resolveOwnerVm(vm) {\n if (!vm) {\n return;\n }\n let componentName = vm.type.name;\n while (componentName && isBuiltInComponent(hyphenate(componentName))) {\n // ownerInstance 内置组件需要使用父 vm\n vm = vm.parent;\n componentName = vm.type.name;\n }\n return vm.proxy;\n}\nfunction isElement(el) {\n // Element\n return el.nodeType === 1;\n}\nfunction resolveOwnerEl(instance, multi = false) {\n const { vnode } = instance;\n if (isElement(vnode.el)) {\n return multi ? (vnode.el ? [vnode.el] : []) : vnode.el;\n }\n const { subTree } = instance;\n // ShapeFlags.ARRAY_CHILDREN = 1<<4\n if (subTree.shapeFlag & 16) {\n const elemVNodes = subTree.children.filter((vnode) => vnode.el && isElement(vnode.el));\n if (elemVNodes.length > 0) {\n if (multi) {\n return elemVNodes.map((node) => node.el);\n }\n return elemVNodes[0].el;\n }\n }\n return multi ? (vnode.el ? [vnode.el] : []) : vnode.el;\n}\nfunction dynamicSlotName(name) {\n return name === 'default' ? SLOT_DEFAULT_NAME : name;\n}\nconst customizeRE = /:/g;\nfunction customizeEvent(str) {\n return camelize(str.replace(customizeRE, '-'));\n}\nfunction normalizeStyle(value) {\n if (value instanceof Map) {\n const styleObject = {};\n value.forEach((value, key) => {\n styleObject[key] = value;\n });\n return normalizeStyle$1(styleObject);\n }\n else if (isString(value)) {\n return parseStringStyle(value);\n }\n else if (isArray(value)) {\n const res = {};\n for (let i = 0; i < value.length; i++) {\n const item = value[i];\n const normalized = isString(item)\n ? parseStringStyle(item)\n : normalizeStyle(item);\n if (normalized) {\n for (const key in normalized) {\n res[key] = normalized[key];\n }\n }\n }\n return res;\n }\n else {\n return normalizeStyle$1(value);\n }\n}\nfunction normalizeClass(value) {\n let res = '';\n if (value instanceof Map) {\n value.forEach((value, key) => {\n if (value) {\n res += key + ' ';\n }\n });\n }\n else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n const normalized = normalizeClass(value[i]);\n if (normalized) {\n res += normalized + ' ';\n }\n }\n }\n else {\n res = normalizeClass$1(value);\n }\n return res.trim();\n}\nfunction normalizeProps(props) {\n if (!props)\n return null;\n let { class: klass, style } = props;\n if (klass && !isString(klass)) {\n props.class = normalizeClass(klass);\n }\n if (style) {\n props.style = normalizeStyle(style);\n }\n return props;\n}\n\nlet lastLogTime = 0;\nfunction formatLog(module, ...args) {\n const now = Date.now();\n const diff = lastLogTime ? now - lastLogTime : 0;\n lastLogTime = now;\n return `[${now}][${diff}ms][${module}]${args\n .map((arg) => JSON.stringify(arg))\n .join(' ')}`;\n}\n\nfunction cache(fn) {\n const cache = Object.create(null);\n return (str) => {\n const hit = cache[str];\n return hit || (cache[str] = fn(str));\n };\n}\nfunction cacheStringFunction(fn) {\n return cache(fn);\n}\nfunction getLen(str = '') {\n return ('' + str).replace(/[^\\x00-\\xff]/g, '**').length;\n}\nfunction hasLeadingSlash(str) {\n return str.indexOf('/') === 0;\n}\nfunction addLeadingSlash(str) {\n return hasLeadingSlash(str) ? str : '/' + str;\n}\nfunction removeLeadingSlash(str) {\n return hasLeadingSlash(str) ? str.slice(1) : str;\n}\nconst invokeArrayFns = (fns, arg) => {\n let ret;\n for (let i = 0; i < fns.length; i++) {\n ret = fns[i](arg);\n }\n return ret;\n};\nfunction updateElementStyle(element, styles) {\n for (const attrName in styles) {\n element.style[attrName] = styles[attrName];\n }\n}\nfunction once(fn, ctx = null) {\n let res;\n return ((...args) => {\n if (fn) {\n res = fn.apply(ctx, args);\n fn = null;\n }\n return res;\n });\n}\nconst sanitise = (val) => (val && JSON.parse(JSON.stringify(val))) || val;\nconst _completeValue = (value) => (value > 9 ? value : '0' + value);\nfunction formatDateTime({ date = new Date(), mode = 'date' }) {\n if (mode === 'time') {\n return (_completeValue(date.getHours()) + ':' + _completeValue(date.getMinutes()));\n }\n else {\n return (date.getFullYear() +\n '-' +\n _completeValue(date.getMonth() + 1) +\n '-' +\n _completeValue(date.getDate()));\n }\n}\nfunction callOptions(options, data) {\n options = options || {};\n if (isString(data)) {\n data = {\n errMsg: data,\n };\n }\n if (/:ok$/.test(data.errMsg)) {\n if (isFunction(options.success)) {\n options.success(data);\n }\n }\n else {\n if (isFunction(options.fail)) {\n options.fail(data);\n }\n }\n if (isFunction(options.complete)) {\n options.complete(data);\n }\n}\nfunction getValueByDataPath(obj, path) {\n if (!isString(path)) {\n return;\n }\n path = path.replace(/\\[(\\d+)\\]/g, '.$1');\n const parts = path.split('.');\n let key = parts[0];\n if (!obj) {\n obj = {};\n }\n if (parts.length === 1) {\n return obj[key];\n }\n return getValueByDataPath(obj[key], parts.slice(1).join('.'));\n}\nfunction sortObject(obj) {\n let sortObj = {};\n if (isPlainObject(obj)) {\n Object.keys(obj)\n .sort()\n .forEach((key) => {\n const _key = key;\n sortObj[_key] = obj[_key];\n });\n }\n return !Object.keys(sortObj) ? obj : sortObj;\n}\n\nfunction formatKey(key) {\n return camelize(key.substring(5));\n}\n// question/139181增加副作用避免 initCustomDataset 在 build 下被 tree-shaking\nconst initCustomDatasetOnce = /*#__PURE__*/ once(() => {\n const prototype = HTMLElement.prototype;\n const setAttribute = prototype.setAttribute;\n prototype.setAttribute = function (key, value) {\n if (key.startsWith('data-') && this.tagName.startsWith('UNI-')) {\n const dataset = this.__uniDataset ||\n (this.__uniDataset = {});\n dataset[formatKey(key)] = value;\n }\n setAttribute.call(this, key, value);\n };\n const removeAttribute = prototype.removeAttribute;\n prototype.removeAttribute = function (key) {\n if (this.__uniDataset &&\n key.startsWith('data-') &&\n this.tagName.startsWith('UNI-')) {\n delete this.__uniDataset[formatKey(key)];\n }\n removeAttribute.call(this, key);\n };\n});\nfunction getCustomDataset(el) {\n return extend({}, el.dataset, el.__uniDataset);\n}\n\nconst unitRE = new RegExp(`\"[^\"]+\"|'[^']+'|url\\\\([^)]+\\\\)|(\\\\d*\\\\.?\\\\d+)[r|u]px`, 'g');\nfunction toFixed(number, precision) {\n const multiplier = Math.pow(10, precision + 1);\n const wholeNumber = Math.floor(number * multiplier);\n return (Math.round(wholeNumber / 10) * 10) / multiplier;\n}\nconst defaultRpx2Unit = {\n unit: 'rem',\n unitRatio: 10 / 320,\n unitPrecision: 5,\n};\nconst defaultMiniProgramRpx2Unit = {\n unit: 'rpx',\n unitRatio: 1,\n unitPrecision: 1,\n};\nconst defaultNVueRpx2Unit = defaultMiniProgramRpx2Unit;\nfunction createRpx2Unit(unit, unitRatio, unitPrecision) {\n // ignore: rpxCalcIncludeWidth\n return (val) => val.replace(unitRE, (m, $1) => {\n if (!$1) {\n return m;\n }\n if (unitRatio === 1) {\n return `${$1}${unit}`;\n }\n const value = toFixed(parseFloat($1) * unitRatio, unitPrecision);\n return value === 0 ? '0' : `${value}${unit}`;\n });\n}\n\nfunction passive(passive) {\n return { passive };\n}\nfunction normalizeDataset(el) {\n // TODO\n return JSON.parse(JSON.stringify(el.dataset || {}));\n}\nfunction normalizeTarget(el) {\n const { id, offsetTop, offsetLeft } = el;\n return {\n id,\n dataset: getCustomDataset(el),\n offsetTop,\n offsetLeft,\n };\n}\nfunction addFont(family, source, desc) {\n const fonts = document.fonts;\n if (fonts) {\n const fontFace = new FontFace(family, source, desc);\n return fontFace.load().then(() => {\n fonts.add && fonts.add(fontFace);\n });\n }\n return new Promise((resolve) => {\n const style = document.createElement('style');\n const values = [];\n if (desc) {\n const { style, weight, stretch, unicodeRange, variant, featureSettings } = desc;\n style && values.push(`font-style:${style}`);\n weight && values.push(`font-weight:${weight}`);\n stretch && values.push(`font-stretch:${stretch}`);\n unicodeRange && values.push(`unicode-range:${unicodeRange}`);\n variant && values.push(`font-variant:${variant}`);\n featureSettings && values.push(`font-feature-settings:${featureSettings}`);\n }\n style.innerText = `@font-face{font-family:\"${family}\";src:${source};${values.join(';')}}`;\n document.head.appendChild(style);\n resolve();\n });\n}\nfunction scrollTo(scrollTop, duration, isH5) {\n if (isString(scrollTop)) {\n const el = document.querySelector(scrollTop);\n if (el) {\n const { top } = el.getBoundingClientRect();\n scrollTop = top + window.pageYOffset;\n // 如果存在,减去 <uni-page-head> 高度\n const pageHeader = document.querySelector('uni-page-head');\n if (pageHeader) {\n scrollTop -= pageHeader.offsetHeight;\n }\n }\n }\n if (scrollTop < 0) {\n scrollTop = 0;\n }\n const documentElement = document.documentElement;\n const { clientHeight, scrollHeight } = documentElement;\n scrollTop = Math.min(scrollTop, scrollHeight - clientHeight);\n if (duration === 0) {\n // 部分浏览器(比如微信)中 scrollTop 的值需要通过 document.body 来控制\n documentElement.scrollTop = document.body.scrollTop = scrollTop;\n return;\n }\n if (window.scrollY === scrollTop) {\n return;\n }\n const scrollTo = (duration) => {\n if (duration <= 0) {\n window.scrollTo(0, scrollTop);\n return;\n }\n const distaince = scrollTop - window.scrollY;\n requestAnimationFrame(function () {\n window.scrollTo(0, window.scrollY + (distaince / duration) * 10);\n scrollTo(duration - 10);\n });\n };\n scrollTo(duration);\n}\n\nconst encode = encodeURIComponent;\nfunction stringifyQuery(obj, encodeStr = encode) {\n const res = obj\n ? Object.keys(obj)\n .map((key) => {\n let val = obj[key];\n if (typeof val === undefined || val === null) {\n val = '';\n }\n else if (isPlainObject(val)) {\n val = JSON.stringify(val);\n }\n return encodeStr(key) + '=' + encodeStr(val);\n })\n .filter((x) => x.length > 0)\n .join('&')\n : null;\n return res ? `?${res}` : '';\n}\n/**\n * Decode text using `decodeURIComponent`. Returns the original text if it\n * fails.\n *\n * @param text - string to decode\n * @returns decoded string\n */\nfunction decode(text) {\n try {\n return decodeURIComponent('' + text);\n }\n catch (err) { }\n return '' + text;\n}\nfunction decodedQuery(query = {}) {\n const decodedQuery = {};\n Object.keys(query).forEach((name) => {\n try {\n decodedQuery[name] = decode(query[name]);\n }\n catch (e) {\n decodedQuery[name] = query[name];\n }\n });\n return decodedQuery;\n}\nconst PLUS_RE = /\\+/g; // %2B\n/**\n * https://github.com/vuejs/vue-router-next/blob/master/src/query.ts\n * @internal\n *\n * @param search - search string to parse\n * @returns a query object\n */\nfunction parseQuery(search) {\n const query = {};\n // avoid creating an object with an empty key and empty value\n // because of split('&')\n if (search === '' || search === '?')\n return query;\n const hasLeadingIM = search[0] === '?';\n const searchParams = (hasLeadingIM ? search.slice(1) : search).split('&');\n for (let i = 0; i < searchParams.length; ++i) {\n // pre decode the + into space\n const searchParam = searchParams[i].replace(PLUS_RE, ' ');\n // allow the = character\n let eqPos = searchParam.indexOf('=');\n let key = decode(eqPos < 0 ? searchParam : searchParam.slice(0, eqPos));\n let value = eqPos < 0 ? null : decode(searchParam.slice(eqPos + 1));\n if (key in query) {\n // an extra variable for ts types\n let currentValue = query[key];\n if (!isArray(currentValue)) {\n currentValue = query[key] = [currentValue];\n }\n currentValue.push(value);\n }\n else {\n query[key] = value;\n }\n }\n return query;\n}\n\nfunction parseUrl(url) {\n const [path, querystring] = url.split('?', 2);\n return {\n path,\n query: parseQuery(querystring || ''),\n };\n}\n\nfunction parseNVueDataset(attr) {\n const dataset = {};\n if (attr) {\n Object.keys(attr).forEach((key) => {\n if (key.indexOf('data-') === 0) {\n dataset[key.replace('data-', '')] = attr[key];\n }\n });\n }\n return dataset;\n}\n\nfunction plusReady(callback) {\n if (!isFunction(callback)) {\n return;\n }\n if (window.plus) {\n return callback();\n }\n document.addEventListener('plusready', callback);\n}\n\nclass DOMException extends Error {\n constructor(message) {\n super(message);\n this.name = 'DOMException';\n }\n}\n\nfunction normalizeEventType(type, options) {\n if (options) {\n if (options.capture) {\n type += 'Capture';\n }\n if (options.once) {\n type += 'Once';\n }\n if (options.passive) {\n type += 'Passive';\n }\n }\n return `on${capitalize(camelize(type))}`;\n}\nclass UniEvent {\n constructor(type, opts) {\n this.defaultPrevented = false;\n this.timeStamp = Date.now();\n this._stop = false;\n this._end = false;\n this.type = type;\n this.bubbles = !!opts.bubbles;\n this.cancelable = !!opts.cancelable;\n }\n preventDefault() {\n this.defaultPrevented = true;\n }\n stopImmediatePropagation() {\n this._end = this._stop = true;\n }\n stopPropagation() {\n this._stop = true;\n }\n}\nfunction createUniEvent(evt) {\n if (evt instanceof UniEvent) {\n return evt;\n }\n const [type] = parseEventName(evt.type);\n const uniEvent = new UniEvent(type, {\n bubbles: false,\n cancelable: false,\n });\n extend(uniEvent, evt);\n return uniEvent;\n}\nclass UniEventTarget {\n constructor() {\n this.listeners = Object.create(null);\n }\n dispatchEvent(evt) {\n const listeners = this.listeners[evt.type];\n if (!listeners) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.error(formatLog('dispatchEvent', this.nodeId), evt.type, 'not found');\n }\n return false;\n }\n // 格式化事件类型\n const event = createUniEvent(evt);\n const len = listeners.length;\n for (let i = 0; i < len; i++) {\n listeners[i].call(this, event);\n if (event._end) {\n break;\n }\n }\n return event.cancelable && event.defaultPrevented;\n }\n addEventListener(type, listener, options) {\n type = normalizeEventType(type, options);\n (this.listeners[type] || (this.listeners[type] = [])).push(listener);\n }\n removeEventListener(type, callback, options) {\n type = normalizeEventType(type, options);\n const listeners = this.listeners[type];\n if (!listeners) {\n return;\n }\n const index = listeners.indexOf(callback);\n if (index > -1) {\n listeners.splice(index, 1);\n }\n }\n}\nconst optionsModifierRE = /(?:Once|Passive|Capture)$/;\nfunction parseEventName(name) {\n let options;\n if (optionsModifierRE.test(name)) {\n options = {};\n let m;\n while ((m = name.match(optionsModifierRE))) {\n name = name.slice(0, name.length - m[0].length);\n options[m[0].toLowerCase()] = true;\n }\n }\n return [hyphenate(name.slice(2)), options];\n}\n\nconst EventModifierFlags = /*#__PURE__*/ (() => {\n return {\n stop: 1,\n prevent: 1 << 1,\n self: 1 << 2,\n };\n})();\nfunction encodeModifier(modifiers) {\n let flag = 0;\n if (modifiers.includes('stop')) {\n flag |= EventModifierFlags.stop;\n }\n if (modifiers.includes('prevent')) {\n flag |= EventModifierFlags.prevent;\n }\n if (modifiers.includes('self')) {\n flag |= EventModifierFlags.self;\n }\n return flag;\n}\n\nconst NODE_TYPE_PAGE = 0;\nconst NODE_TYPE_ELEMENT = 1;\nconst NODE_TYPE_TEXT = 3;\nconst NODE_TYPE_COMMENT = 8;\nfunction sibling(node, type) {\n const { parentNode } = node;\n if (!parentNode) {\n return null;\n }\n const { childNodes } = parentNode;\n return childNodes[childNodes.indexOf(node) + (type === 'n' ? 1 : -1)] || null;\n}\nfunction removeNode(node) {\n const { parentNode } = node;\n if (parentNode) {\n const { childNodes } = parentNode;\n const index = childNodes.indexOf(node);\n if (index > -1) {\n node.parentNode = null;\n childNodes.splice(index, 1);\n }\n }\n}\nfunction checkNodeId(node) {\n if (!node.nodeId && node.pageNode) {\n node.nodeId = node.pageNode.genId();\n }\n}\n// 为优化性能各平台不使用proxy来实现node的操作拦截而是直接通过pageNode定制\nclass UniNode extends UniEventTarget {\n constructor(nodeType, nodeName, container) {\n super();\n this.pageNode = null;\n this.parentNode = null;\n this._text = null;\n if (container) {\n const { pageNode } = container;\n if (pageNode) {\n this.pageNode = pageNode;\n this.nodeId = pageNode.genId();\n !pageNode.isUnmounted && pageNode.onCreate(this, nodeName);\n }\n }\n this.nodeType = nodeType;\n this.nodeName = nodeName;\n this.childNodes = [];\n }\n get firstChild() {\n return this.childNodes[0] || null;\n }\n get lastChild() {\n const { childNodes } = this;\n const length = childNodes.length;\n return length ? childNodes[length - 1] : null;\n }\n get nextSibling() {\n return sibling(this, 'n');\n }\n get nodeValue() {\n return null;\n }\n set nodeValue(_val) { }\n get textContent() {\n return this._text || '';\n }\n set textContent(text) {\n this._text = text;\n if (this.pageNode && !this.pageNode.isUnmounted) {\n this.pageNode.onTextContent(this, text);\n }\n }\n get parentElement() {\n const { parentNode } = this;\n if (parentNode && parentNode.nodeType === NODE_TYPE_ELEMENT) {\n return parentNode;\n }\n return null;\n }\n get previousSibling() {\n return sibling(this, 'p');\n }\n appendChild(newChild) {\n return this.insertBefore(newChild, null);\n }\n cloneNode(deep) {\n const cloned = extend(Object.create(Object.getPrototypeOf(this)), this);\n const { attributes } = cloned;\n if (attributes) {\n cloned.attributes = extend({}, attributes);\n }\n if (deep) {\n cloned.childNodes = cloned.childNodes.map((childNode) => childNode.cloneNode(true));\n }\n return cloned;\n }\n insertBefore(newChild, refChild) {\n // 先从现在的父节点移除注意不能触发onRemoveChild否则会生成先remove该 id再 insert\n removeNode(newChild);\n newChild.pageNode = this.pageNode;\n newChild.parentNode = this;\n checkNodeId(newChild);\n const { childNodes } = this;\n if (refChild) {\n const index = childNodes.indexOf(refChild);\n if (index === -1) {\n throw new DOMException(`Failed to execute 'insertBefore' on 'Node': The node before which the new node is to be inserted is not a child of this node.`);\n }\n childNodes.splice(index, 0, newChild);\n }\n else {\n childNodes.push(newChild);\n }\n return this.pageNode && !this.pageNode.isUnmounted\n ? this.pageNode.onInsertBefore(this, newChild, refChild)\n : newChild;\n }\n removeChild(oldChild) {\n const { childNodes } = this;\n const index = childNodes.indexOf(oldChild);\n if (index === -1) {\n throw new DOMException(`Failed to execute 'removeChild' on 'Node': The node to be removed is not a child of this node.`);\n }\n oldChild.parentNode = null;\n childNodes.splice(index, 1);\n return this.pageNode && !this.pageNode.isUnmounted\n ? this.pageNode.onRemoveChild(oldChild)\n : oldChild;\n }\n}\nconst ATTR_CLASS = 'class';\nconst ATTR_STYLE = 'style';\nconst ATTR_INNER_HTML = 'innerHTML';\nconst ATTR_TEXT_CONTENT = 'textContent';\nconst ATTR_V_SHOW = '.vShow';\nconst ATTR_V_OWNER_ID = '.vOwnerId';\nconst ATTR_V_RENDERJS = '.vRenderjs';\nconst ATTR_CHANGE_PREFIX = 'change:';\nclass UniBaseNode extends UniNode {\n constructor(nodeType, nodeName, container) {\n super(nodeType, nodeName, container);\n this.attributes = Object.create(null);\n this.style = null;\n this.vShow = null;\n this._html = null;\n }\n get className() {\n return (this.attributes[ATTR_CLASS] || '');\n }\n set className(val) {\n this.setAttribute(ATTR_CLASS, val);\n }\n get innerHTML() {\n return '';\n }\n set innerHTML(html) {\n this._html = html;\n }\n addEventListener(type, listener, options) {\n super.addEventListener(type, listener, options);\n if (this.pageNode && !this.pageNode.isUnmounted) {\n if (listener.wxsEvent) {\n this.pageNode.onAddWxsEvent(this, normalizeEventType(type, options), listener.wxsEvent, encodeModifier(listener.modifiers || []));\n }\n else {\n this.pageNode.onAddEvent(this, normalizeEventType(type, options), encodeModifier(listener.modifiers || []));\n }\n }\n }\n removeEventListener(type, callback, options) {\n super.removeEventListener(type, callback, options);\n if (this.pageNode && !this.pageNode.isUnmounted) {\n this.pageNode.onRemoveEvent(this, normalizeEventType(type, options));\n }\n }\n getAttribute(qualifiedName) {\n if (qualifiedName === ATTR_STYLE) {\n return this.style;\n }\n return this.attributes[qualifiedName];\n }\n removeAttribute(qualifiedName) {\n if (qualifiedName == ATTR_STYLE) {\n this.style = null;\n }\n else {\n delete this.attributes[qualifiedName];\n }\n if (this.pageNode && !this.pageNode.isUnmounted) {\n this.pageNode.onRemoveAttribute(this, qualifiedName);\n }\n }\n setAttribute(qualifiedName, value) {\n if (qualifiedName === ATTR_STYLE) {\n this.style = value;\n }\n else {\n this.attributes[qualifiedName] = value;\n }\n if (this.pageNode && !this.pageNode.isUnmounted) {\n this.pageNode.onSetAttribute(this, qualifiedName, value);\n }\n }\n toJSON({ attr, normalize, } = {}) {\n const { attributes, style, listeners, _text } = this;\n const res = {};\n if (Object.keys(attributes).length) {\n res.a = normalize ? normalize(attributes) : attributes;\n }\n const events = Object.keys(listeners);\n if (events.length) {\n let w = undefined;\n const e = {};\n events.forEach((name) => {\n const handlers = listeners[name];\n if (handlers.length) {\n // 可能存在多个 handler 且不同 modifiers 吗?\n const { wxsEvent, modifiers } = handlers[0];\n const modifier = encodeModifier(modifiers || []);\n if (!wxsEvent) {\n e[name] = modifier;\n }\n else {\n if (!w) {\n w = {};\n }\n w[name] = [normalize ? normalize(wxsEvent) : wxsEvent, modifier];\n }\n }\n });\n res.e = normalize ? normalize(e, false) : e;\n if (w) {\n res.w = normalize ? normalize(w, false) : w;\n }\n }\n if (style !== null) {\n res.s = normalize ? normalize(style) : style;\n }\n if (!attr) {\n res.i = this.nodeId;\n res.n = this.nodeName;\n }\n if (_text !== null) {\n res.t = normalize ? normalize(_text) : _text;\n }\n return res;\n }\n}\n\nclass UniCommentNode extends UniNode {\n constructor(text, container) {\n super(NODE_TYPE_COMMENT, '#comment', container);\n this._text = (process.env.NODE_ENV !== 'production') ? text : '';\n }\n toJSON(opts = {}) {\n // 暂时不传递 text 到 view 层,没啥意义,节省点数据量\n return opts.attr\n ? {}\n : {\n i: this.nodeId,\n };\n // return opts.attr\n // ? { t: this._text as string }\n // : {\n // i: this.nodeId!,\n // t: this._text as string,\n // }\n }\n}\n\nclass UniElement extends UniBaseNode {\n constructor(nodeName, container) {\n super(NODE_TYPE_ELEMENT, nodeName.toUpperCase(), container);\n this.tagName = this.nodeName;\n }\n}\nclass UniInputElement extends UniElement {\n get value() {\n return this.getAttribute('value');\n }\n set value(val) {\n this.setAttribute('value', val);\n }\n}\nclass UniTextAreaElement extends UniInputElement {\n}\n\nclass UniTextNode extends UniBaseNode {\n constructor(text, container) {\n super(NODE_TYPE_TEXT, '#text', container);\n this._text = text;\n }\n get nodeValue() {\n return this._text || '';\n }\n set nodeValue(text) {\n this._text = text;\n if (this.pageNode && !this.pageNode.isUnmounted) {\n this.pageNode.onNodeValue(this, text);\n }\n }\n}\n\nconst forcePatchProps = {\n AD: ['data'],\n 'AD-DRAW': ['data'],\n 'LIVE-PLAYER': ['picture-in-picture-mode'],\n MAP: [\n 'markers',\n 'polyline',\n 'circles',\n 'controls',\n 'include-points',\n 'polygons',\n ],\n PICKER: ['range', 'value'],\n 'PICKER-VIEW': ['value'],\n 'RICH-TEXT': ['nodes'],\n VIDEO: ['danmu-list', 'header'],\n 'WEB-VIEW': ['webview-styles'],\n};\nconst forcePatchPropKeys = ['animation'];\n\nconst forcePatchProp = (el, key) => {\n if (forcePatchPropKeys.indexOf(key) > -1) {\n return true;\n }\n const keys = forcePatchProps[el.nodeName];\n if (keys && keys.indexOf(key) > -1) {\n return true;\n }\n return false;\n};\n\nconst ACTION_TYPE_PAGE_CREATE = 1;\nconst ACTION_TYPE_PAGE_CREATED = 2;\nconst ACTION_TYPE_CREATE = 3;\nconst ACTION_TYPE_INSERT = 4;\nconst ACTION_TYPE_REMOVE = 5;\nconst ACTION_TYPE_SET_ATTRIBUTE = 6;\nconst ACTION_TYPE_REMOVE_ATTRIBUTE = 7;\nconst ACTION_TYPE_ADD_EVENT = 8;\nconst ACTION_TYPE_REMOVE_EVENT = 9;\nconst ACTION_TYPE_SET_TEXT = 10;\nconst ACTION_TYPE_ADD_WXS_EVENT = 12;\nconst ACTION_TYPE_PAGE_SCROLL = 15;\nconst ACTION_TYPE_EVENT = 20;\n\n/**\n * 需要手动传入 timer,主要是解决 App 平台的定制 timer\n */\nfunction debounce(fn, delay, { clearTimeout, setTimeout }) {\n let timeout;\n const newFn = function () {\n clearTimeout(timeout);\n const timerFn = () => fn.apply(this, arguments);\n timeout = setTimeout(timerFn, delay);\n };\n newFn.cancel = function () {\n clearTimeout(timeout);\n };\n return newFn;\n}\n\nclass EventChannel {\n constructor(id, events) {\n this.id = id;\n this.listener = {};\n this.emitCache = [];\n if (events) {\n Object.keys(events).forEach((name) => {\n this.on(name, events[name]);\n });\n }\n }\n emit(eventName, ...args) {\n const fns = this.listener[eventName];\n if (!fns) {\n return this.emitCache.push({\n eventName,\n args,\n });\n }\n fns.forEach((opt) => {\n opt.fn.apply(opt.fn, args);\n });\n this.listener[eventName] = fns.filter((opt) => opt.type !== 'once');\n }\n on(eventName, fn) {\n this._addListener(eventName, 'on', fn);\n this._clearCache(eventName);\n }\n once(eventName, fn) {\n this._addListener(eventName, 'once', fn);\n this._clearCache(eventName);\n }\n off(eventName, fn) {\n const fns = this.listener[eventName];\n if (!fns) {\n return;\n }\n if (fn) {\n for (let i = 0; i < fns.length;) {\n if (fns[i].fn === fn) {\n fns.splice(i, 1);\n i--;\n }\n i++;\n }\n }\n else {\n delete this.listener[eventName];\n }\n }\n _clearCache(eventName) {\n for (let index = 0; index < this.emitCache.length; index++) {\n const cache = this.emitCache[index];\n const _name = eventName\n ? cache.eventName === eventName\n ? eventName\n : null\n : cache.eventName;\n if (!_name)\n continue;\n const location = this.emit.apply(this, [_name, ...cache.args]);\n if (typeof location === 'number') {\n this.emitCache.pop();\n continue;\n }\n this.emitCache.splice(index, 1);\n index--;\n }\n }\n _addListener(eventName, type, fn) {\n (this.listener[eventName] || (this.listener[eventName] = [])).push({\n fn,\n type,\n });\n }\n}\n\nconst PAGE_HOOKS = [\n ON_INIT,\n ON_LOAD,\n ON_SHOW,\n ON_HIDE,\n ON_UNLOAD,\n ON_BACK_PRESS,\n ON_PAGE_SCROLL,\n ON_TAB_ITEM_TAP,\n ON_REACH_BOTTOM,\n ON_PULL_DOWN_REFRESH,\n ON_SHARE_TIMELINE,\n ON_SHARE_APP_MESSAGE,\n ON_ADD_TO_FAVORITES,\n ON_SAVE_EXIT_STATE,\n ON_NAVIGATION_BAR_BUTTON_TAP,\n ON_NAVIGATION_BAR_SEARCH_INPUT_CLICKED,\n ON_NAVIGATION_BAR_SEARCH_INPUT_CHANGED,\n ON_NAVIGATION_BAR_SEARCH_INPUT_CONFIRMED,\n ON_NAVIGATION_BAR_SEARCH_INPUT_FOCUS_CHANGED,\n];\nfunction isRootImmediateHook(name) {\n const PAGE_SYNC_HOOKS = [ON_LOAD, ON_SHOW];\n return PAGE_SYNC_HOOKS.indexOf(name) > -1;\n}\n// iOS-X 和安卓一致on_show 不参与判断,避免引入新的运行时判断,导出两份\nfunction isRootImmediateHookX(name) {\n const PAGE_SYNC_HOOKS = [ON_LOAD];\n return PAGE_SYNC_HOOKS.indexOf(name) > -1;\n}\nfunction isRootHook(name) {\n return PAGE_HOOKS.indexOf(name) > -1;\n}\nconst UniLifecycleHooks = [\n ON_SHOW,\n ON_HIDE,\n ON_LAUNCH,\n ON_ERROR,\n ON_THEME_CHANGE,\n ON_PAGE_NOT_FOUND,\n ON_UNHANDLE_REJECTION,\n ON_EXIT,\n ON_INIT,\n ON_LOAD,\n ON_READY,\n ON_UNLOAD,\n ON_RESIZE,\n ON_BACK_PRESS,\n ON_PAGE_SCROLL,\n ON_TAB_ITEM_TAP,\n ON_REACH_BOTTOM,\n ON_PULL_DOWN_REFRESH,\n ON_SHARE_TIMELINE,\n ON_ADD_TO_FAVORITES,\n ON_SHARE_APP_MESSAGE,\n ON_SAVE_EXIT_STATE,\n ON_NAVIGATION_BAR_BUTTON_TAP,\n ON_NAVIGATION_BAR_SEARCH_INPUT_CLICKED,\n ON_NAVIGATION_BAR_SEARCH_INPUT_CHANGED,\n ON_NAVIGATION_BAR_SEARCH_INPUT_CONFIRMED,\n ON_NAVIGATION_BAR_SEARCH_INPUT_FOCUS_CHANGED,\n];\nconst MINI_PROGRAM_PAGE_RUNTIME_HOOKS = /*#__PURE__*/ (() => {\n return {\n onPageScroll: 1,\n onShareAppMessage: 1 << 1,\n onShareTimeline: 1 << 2,\n };\n})();\nfunction isUniLifecycleHook(name, value, checkType = true) {\n // 检查类型\n if (checkType && !isFunction(value)) {\n return false;\n }\n if (UniLifecycleHooks.indexOf(name) > -1) {\n // 已预定义\n return true;\n }\n else if (name.indexOf('on') === 0) {\n // 以 on 开头\n return true;\n }\n return false;\n}\n\nlet vueApp;\nconst createVueAppHooks = [];\n/**\n * 提供 createApp 的回调事件,方便三方插件接收 App 对象,处理挂靠全局 mixin 之类的逻辑\n */\nfunction onCreateVueApp(hook) {\n // TODO 每个 nvue 页面都会触发\n if (vueApp) {\n return hook(vueApp);\n }\n createVueAppHooks.push(hook);\n}\nfunction invokeCreateVueAppHook(app) {\n vueApp = app;\n createVueAppHooks.forEach((hook) => hook(app));\n}\nconst invokeCreateErrorHandler = once((app, createErrorHandler) => {\n if (isFunction(app._component.onError)) {\n return createErrorHandler(app);\n }\n});\n\nconst E = function () {\n // Keep this empty so it's easier to inherit from\n // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)\n};\nE.prototype = {\n on: function (name, callback, ctx) {\n var e = this.e || (this.e = {});\n (e[name] || (e[name] = [])).push({\n fn: callback,\n ctx: ctx,\n });\n return this;\n },\n once: function (name, callback, ctx) {\n var self = this;\n function listener() {\n self.off(name, listener);\n callback.apply(ctx, arguments);\n }\n listener._ = callback;\n return this.on(name, listener, ctx);\n },\n emit: function (name) {\n var data = [].slice.call(arguments, 1);\n var evtArr = ((this.e || (this.e = {}))[name] || []).slice();\n var i = 0;\n var len = evtArr.length;\n for (i; i < len; i++) {\n evtArr[i].fn.apply(evtArr[i].ctx, data);\n }\n return this;\n },\n off: function (name, callback) {\n var e = this.e || (this.e = {});\n var evts = e[name];\n var liveEvents = [];\n if (evts && callback) {\n for (var i = evts.length - 1; i >= 0; i--) {\n if (evts[i].fn === callback || evts[i].fn._ === callback) {\n evts.splice(i, 1);\n break;\n }\n }\n liveEvents = evts;\n }\n // Remove event from queue to prevent memory leak\n // Suggested by https://github.com/lazd\n // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910\n liveEvents.length ? (e[name] = liveEvents) : delete e[name];\n return this;\n },\n};\nvar E$1 = E;\n\nconst borderStyles = {\n black: 'rgba(0,0,0,0.4)',\n white: 'rgba(255,255,255,0.4)',\n};\nfunction normalizeTabBarStyles(borderStyle) {\n if (borderStyle && borderStyle in borderStyles) {\n return borderStyles[borderStyle];\n }\n return borderStyle;\n}\nfunction normalizeTitleColor(titleColor) {\n return titleColor === 'black' ? '#000000' : '#ffffff';\n}\nfunction normalizeStyles(pageStyle, themeConfig = {}, mode = 'light') {\n const modeStyle = themeConfig[mode];\n const styles = {};\n if (!modeStyle) {\n return pageStyle;\n }\n Object.keys(pageStyle).forEach((key) => {\n let styleItem = pageStyle[key] // Object Array String\n ;\n styles[key] = (() => {\n if (isPlainObject(styleItem)) {\n return normalizeStyles(styleItem, themeConfig, mode);\n }\n else if (isArray(styleItem)) {\n return styleItem.map((item) => isPlainObject(item)\n ? normalizeStyles(item, themeConfig, mode)\n : item);\n }\n else if (isString(styleItem) && styleItem.startsWith('@')) {\n const _key = styleItem.replace('@', '');\n let _styleItem = modeStyle[_key] || styleItem;\n switch (key) {\n case 'titleColor':\n _styleItem = normalizeTitleColor(_styleItem);\n break;\n case 'borderStyle':\n _styleItem = normalizeTabBarStyles(_styleItem);\n break;\n }\n return _styleItem;\n }\n return styleItem;\n })();\n });\n return styles;\n}\n\nfunction getEnvLocale() {\n const { env } = process;\n const lang = env.LC_ALL || env.LC_MESSAGES || env.LANG || env.LANGUAGE;\n return (lang && lang.replace(/[.:].*/, '')) || 'en';\n}\n\nexport { ACTION_TYPE_ADD_EVENT, ACTION_TYPE_ADD_WXS_EVENT, ACTION_TYPE_CREATE, ACTION_TYPE_EVENT, ACTION_TYPE_INSERT, ACTION_TYPE_PAGE_CREATE, ACTION_TYPE_PAGE_CREATED, ACTION_TYPE_PAGE_SCROLL, ACTION_TYPE_REMOVE, ACTION_TYPE_REMOVE_ATTRIBUTE, ACTION_TYPE_REMOVE_EVENT, ACTION_TYPE_SET_ATTRIBUTE, ACTION_TYPE_SET_TEXT, ATTR_CHANGE_PREFIX, ATTR_CLASS, ATTR_INNER_HTML, ATTR_STYLE, ATTR_TEXT_CONTENT, ATTR_V_OWNER_ID, ATTR_V_RENDERJS, ATTR_V_SHOW, BACKGROUND_COLOR, BUILT_IN_TAGS, BUILT_IN_TAG_NAMES, COMPONENT_NAME_PREFIX, COMPONENT_PREFIX, COMPONENT_SELECTOR_PREFIX, DATA_RE, E$1 as Emitter, EventChannel, EventModifierFlags, I18N_JSON_DELIMITERS, JSON_PROTOCOL, LINEFEED, MINI_PROGRAM_PAGE_RUNTIME_HOOKS, NAVBAR_HEIGHT, NODE_TYPE_COMMENT, NODE_TYPE_ELEMENT, NODE_TYPE_PAGE, NODE_TYPE_TEXT, NVUE_BUILT_IN_TAGS, NVUE_U_BUILT_IN_TAGS, OFF_THEME_CHANGE, ON_ADD_TO_FAVORITES, ON_APP_ENTER_BACKGROUND, ON_APP_ENTER_FOREGROUND, ON_BACK_PRESS, ON_ERROR, ON_EXIT, ON_HIDE, ON_INIT, ON_KEYBOARD_HEIGHT_CHANGE, ON_LAUNCH, ON_LOAD, ON_NAVIGATION_BAR_BUTTON_TAP, ON_NAVIGATION_BAR_CHANGE, ON_NAVIGATION_BAR_SEARCH_INPUT_CHANGED, ON_NAVIGATION_BAR_SEARCH_INPUT_CLICKED, ON_NAVIGATION_BAR_SEARCH_INPUT_CONFIRMED, ON_NAVIGATION_BAR_SEARCH_INPUT_FOCUS_CHANGED, ON_PAGE_NOT_FOUND, ON_PAGE_SCROLL, ON_PULL_DOWN_REFRESH, ON_REACH_BOTTOM, ON_REACH_BOTTOM_DISTANCE, ON_READY, ON_RESIZE, ON_SAVE_EXIT_STATE, ON_SHARE_APP_MESSAGE, ON_SHARE_TIMELINE, ON_SHOW, ON_TAB_ITEM_TAP, ON_THEME_CHANGE, ON_UNHANDLE_REJECTION, ON_UNLOAD, ON_WEB_INVOKE_APP_SERVICE, ON_WXS_INVOKE_CALL_METHOD, PLUS_RE, PRIMARY_COLOR, RENDERJS_MODULES, RESPONSIVE_MIN_WIDTH, SCHEME_RE, SELECTED_COLOR, SLOT_DEFAULT_NAME, TABBAR_HEIGHT, TAGS, UNI_SSR, UNI_SSR_DATA, UNI_SSR_GLOBAL_DATA, UNI_SSR_STORE, UNI_SSR_TITLE, UNI_STORAGE_LOCALE, UNI_UI_CONFLICT_TAGS, UVUE_BUILT_IN_TAGS, UVUE_IOS_BUILT_IN_TAGS, UVUE_WEB_BUILT_IN_TAGS, UniBaseNode, UniCommentNode, UniElement, UniEvent, UniInputElement, UniLifecycleHooks, UniNode, UniTextAreaElement, UniTextNode, WEB_INVOKE_APPSERVICE, WXS_MODULES, WXS_PROTOCOL, addFont, addLeadingSlash, borderStyles, cache, cacheStringFunction, callOptions, createIsCustomElement, createRpx2Unit, createUniEvent, customizeEvent, debounce, decode, decodedQuery, defaultMiniProgramRpx2Unit, defaultNVueRpx2Unit, defaultRpx2Unit, dynamicSlotName, forcePatchProp, formatDateTime, formatLog, getCustomDataset, getEnvLocale, getLen, getValueByDataPath, initCustomDatasetOnce, invokeArrayFns, invokeCreateErrorHandler, invokeCreateVueAppHook, isAppIOSUVueNativeTag, isAppNVueNativeTag, isAppNativeTag, isAppUVueNativeTag, isBuiltInComponent, isComponentInternalInstance, isComponentTag, isH5CustomElement, isH5NativeTag, isMiniProgramNativeTag, isRootHook, isRootImmediateHook, isRootImmediateHookX, isUniLifecycleHook, isUniXElement, normalizeClass, normalizeDataset, normalizeEventType, normalizeProps, normalizeStyle, normalizeStyles, normalizeTabBarStyles, normalizeTarget, normalizeTitleColor, onCreateVueApp, once, parseEventName, parseNVueDataset, parseQuery, parseUrl, passive, plusReady, removeLeadingSlash, resolveComponentInstance, resolveOwnerEl, resolveOwnerVm, sanitise, scrollTo, sortObject, stringifyQuery, updateElementStyle };\n","const isObject = (val) => val !== null && typeof val === 'object';\nconst defaultDelimiters = ['{', '}'];\nclass BaseFormatter {\n constructor() {\n this._caches = Object.create(null);\n }\n interpolate(message, values, delimiters = defaultDelimiters) {\n if (!values) {\n return [message];\n }\n let tokens = this._caches[message];\n if (!tokens) {\n tokens = parse(message, delimiters);\n this._caches[message] = tokens;\n }\n return compile(tokens, values);\n }\n}\nconst RE_TOKEN_LIST_VALUE = /^(?:\\d)+/;\nconst RE_TOKEN_NAMED_VALUE = /^(?:\\w)+/;\nfunction parse(format, [startDelimiter, endDelimiter]) {\n const tokens = [];\n let position = 0;\n let text = '';\n while (position < format.length) {\n let char = format[position++];\n if (char === startDelimiter) {\n if (text) {\n tokens.push({ type: 'text', value: text });\n }\n text = '';\n let sub = '';\n char = format[position++];\n while (char !== undefined && char !== endDelimiter) {\n sub += char;\n char = format[position++];\n }\n const isClosed = char === endDelimiter;\n const type = RE_TOKEN_LIST_VALUE.test(sub)\n ? 'list'\n : isClosed && RE_TOKEN_NAMED_VALUE.test(sub)\n ? 'named'\n : 'unknown';\n tokens.push({ value: sub, type });\n }\n // else if (char === '%') {\n // // when found rails i18n syntax, skip text capture\n // if (format[position] !== '{') {\n // text += char\n // }\n // }\n else {\n text += char;\n }\n }\n text && tokens.push({ type: 'text', value: text });\n return tokens;\n}\nfunction compile(tokens, values) {\n const compiled = [];\n let index = 0;\n const mode = Array.isArray(values)\n ? 'list'\n : isObject(values)\n ? 'named'\n : 'unknown';\n if (mode === 'unknown') {\n return compiled;\n }\n while (index < tokens.length) {\n const token = tokens[index];\n switch (token.type) {\n case 'text':\n compiled.push(token.value);\n break;\n case 'list':\n compiled.push(values[parseInt(token.value, 10)]);\n break;\n case 'named':\n if (mode === 'named') {\n compiled.push(values[token.value]);\n }\n else {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(`Type of token '${token.type}' and format of value '${mode}' don't match!`);\n }\n }\n break;\n case 'unknown':\n if (process.env.NODE_ENV !== 'production') {\n console.warn(`Detect 'unknown' type of token!`);\n }\n break;\n }\n index++;\n }\n return compiled;\n}\n\nconst LOCALE_ZH_HANS = 'zh-Hans';\nconst LOCALE_ZH_HANT = 'zh-Hant';\nconst LOCALE_EN = 'en';\nconst LOCALE_FR = 'fr';\nconst LOCALE_ES = 'es';\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\nconst hasOwn = (val, key) => hasOwnProperty.call(val, key);\nconst defaultFormatter = new BaseFormatter();\nfunction include(str, parts) {\n return !!parts.find((part) => str.indexOf(part) !== -1);\n}\nfunction startsWith(str, parts) {\n return parts.find((part) => str.indexOf(part) === 0);\n}\nfunction normalizeLocale(locale, messages) {\n if (!locale) {\n return;\n }\n locale = locale.trim().replace(/_/g, '-');\n if (messages && messages[locale]) {\n return locale;\n }\n locale = locale.toLowerCase();\n if (locale === 'chinese') {\n // 支付宝\n return LOCALE_ZH_HANS;\n }\n if (locale.indexOf('zh') === 0) {\n if (locale.indexOf('-hans') > -1) {\n return LOCALE_ZH_HANS;\n }\n if (locale.indexOf('-hant') > -1) {\n return LOCALE_ZH_HANT;\n }\n if (include(locale, ['-tw', '-hk', '-mo', '-cht'])) {\n return LOCALE_ZH_HANT;\n }\n return LOCALE_ZH_HANS;\n }\n let locales = [LOCALE_EN, LOCALE_FR, LOCALE_ES];\n if (messages && Object.keys(messages).length > 0) {\n locales = Object.keys(messages);\n }\n const lang = startsWith(locale, locales);\n if (lang) {\n return lang;\n }\n}\nclass I18n {\n constructor({ locale, fallbackLocale, messages, watcher, formater, }) {\n this.locale = LOCALE_EN;\n this.fallbackLocale = LOCALE_EN;\n this.message = {};\n this.messages = {};\n this.watchers = [];\n if (fallbackLocale) {\n this.fallbackLocale = fallbackLocale;\n }\n this.formater = formater || defaultFormatter;\n this.messages = messages || {};\n this.setLocale(locale || LOCALE_EN);\n if (watcher) {\n this.watchLocale(watcher);\n }\n }\n setLocale(locale) {\n const oldLocale = this.locale;\n this.locale = normalizeLocale(locale, this.messages) || this.fallbackLocale;\n if (!this.messages[this.locale]) {\n // 可能初始化时不存在\n this.messages[this.locale] = {};\n }\n this.message = this.messages[this.locale];\n // 仅发生变化时,通知\n if (oldLocale !== this.locale) {\n this.watchers.forEach((watcher) => {\n watcher(this.locale, oldLocale);\n });\n }\n }\n getLocale() {\n return this.locale;\n }\n watchLocale(fn) {\n const index = this.watchers.push(fn) - 1;\n return () => {\n this.watchers.splice(index, 1);\n };\n }\n add(locale, message, override = true) {\n const curMessages = this.messages[locale];\n if (curMessages) {\n if (override) {\n Object.assign(curMessages, message);\n }\n else {\n Object.keys(message).forEach((key) => {\n if (!hasOwn(curMessages, key)) {\n curMessages[key] = message[key];\n }\n });\n }\n }\n else {\n this.messages[locale] = message;\n }\n }\n f(message, values, delimiters) {\n return this.formater.interpolate(message, values, delimiters).join('');\n }\n t(key, locale, values) {\n let message = this.message;\n if (typeof locale === 'string') {\n locale = normalizeLocale(locale, this.messages);\n locale && (message = this.messages[locale]);\n }\n else {\n values = locale;\n }\n if (!hasOwn(message, key)) {\n console.warn(`Cannot translate the value of keypath ${key}. Use the value of keypath as default.`);\n return key;\n }\n return this.formater.interpolate(message[key], values).join('');\n }\n}\n\nfunction watchAppLocale(appVm, i18n) {\n // 需要保证 watch 的触发在组件渲染之前\n if (appVm.$watchLocale) {\n // vue2\n appVm.$watchLocale((newLocale) => {\n i18n.setLocale(newLocale);\n });\n }\n else {\n appVm.$watch(() => appVm.$locale, (newLocale) => {\n i18n.setLocale(newLocale);\n });\n }\n}\nfunction getDefaultLocale() {\n if (typeof uni !== 'undefined' && uni.getLocale) {\n return uni.getLocale();\n }\n // 小程序平台uni 和 uni-i18n 互相引用,导致访问不到 uni故在 global 上挂了 getLocale\n if (typeof global !== 'undefined' && global.getLocale) {\n return global.getLocale();\n }\n return LOCALE_EN;\n}\nfunction initVueI18n(locale, messages = {}, fallbackLocale, watcher) {\n // 兼容旧版本入参\n if (typeof locale !== 'string') {\n [locale, messages] = [\n messages,\n locale,\n ];\n }\n if (typeof locale !== 'string') {\n // 因为小程序平台uni-i18n 和 uni 互相引用,导致此时访问 uni 时,为 undefined\n locale = getDefaultLocale();\n }\n if (typeof fallbackLocale !== 'string') {\n fallbackLocale =\n (typeof __uniConfig !== 'undefined' && __uniConfig.fallbackLocale) ||\n LOCALE_EN;\n }\n const i18n = new I18n({\n locale,\n fallbackLocale,\n messages,\n watcher,\n });\n let t = (key, values) => {\n if (typeof getApp !== 'function') {\n // app view\n /* eslint-disable no-func-assign */\n t = function (key, values) {\n return i18n.t(key, values);\n };\n }\n else {\n let isWatchedAppLocale = false;\n t = function (key, values) {\n const appVm = getApp().$vm;\n // 可能$vm还不存在比如在支付宝小程序中组件定义较早在props的default里使用了t()函数如uni-goods-nav此时app还未初始化\n // options: {\n // \ttype: Array,\n // \tdefault () {\n // \t\treturn [{\n // \t\t\ticon: 'shop',\n // \t\t\ttext: t(\"uni-goods-nav.options.shop\"),\n // \t\t}, {\n // \t\t\ticon: 'cart',\n // \t\t\ttext: t(\"uni-goods-nav.options.cart\")\n // \t\t}]\n // \t}\n // },\n if (appVm) {\n // 触发响应式\n appVm.$locale;\n if (!isWatchedAppLocale) {\n isWatchedAppLocale = true;\n watchAppLocale(appVm, i18n);\n }\n }\n return i18n.t(key, values);\n };\n }\n return t(key, values);\n };\n return {\n i18n,\n f(message, values, delimiters) {\n return i18n.f(message, values, delimiters);\n },\n t(key, values) {\n return t(key, values);\n },\n add(locale, message, override = true) {\n return i18n.add(locale, message, override);\n },\n watch(fn) {\n return i18n.watchLocale(fn);\n },\n getLocale() {\n return i18n.getLocale();\n },\n setLocale(newLocale) {\n return i18n.setLocale(newLocale);\n },\n };\n}\n\nconst isString = (val) => typeof val === 'string';\nlet formater;\nfunction hasI18nJson(jsonObj, delimiters) {\n if (!formater) {\n formater = new BaseFormatter();\n }\n return walkJsonObj(jsonObj, (jsonObj, key) => {\n const value = jsonObj[key];\n if (isString(value)) {\n if (isI18nStr(value, delimiters)) {\n return true;\n }\n }\n else {\n return hasI18nJson(value, delimiters);\n }\n });\n}\nfunction parseI18nJson(jsonObj, values, delimiters) {\n if (!formater) {\n formater = new BaseFormatter();\n }\n walkJsonObj(jsonObj, (jsonObj, key) => {\n const value = jsonObj[key];\n if (isString(value)) {\n if (isI18nStr(value, delimiters)) {\n jsonObj[key] = compileStr(value, values, delimiters);\n }\n }\n else {\n parseI18nJson(value, values, delimiters);\n }\n });\n return jsonObj;\n}\nfunction compileI18nJsonStr(jsonStr, { locale, locales, delimiters, }) {\n if (!isI18nStr(jsonStr, delimiters)) {\n return jsonStr;\n }\n if (!formater) {\n formater = new BaseFormatter();\n }\n const localeValues = [];\n Object.keys(locales).forEach((name) => {\n if (name !== locale) {\n localeValues.push({\n locale: name,\n values: locales[name],\n });\n }\n });\n localeValues.unshift({ locale, values: locales[locale] });\n try {\n return JSON.stringify(compileJsonObj(JSON.parse(jsonStr), localeValues, delimiters), null, 2);\n }\n catch (e) { }\n return jsonStr;\n}\nfunction isI18nStr(value, delimiters) {\n return value.indexOf(delimiters[0]) > -1;\n}\nfunction compileStr(value, values, delimiters) {\n return formater.interpolate(value, values, delimiters).join('');\n}\nfunction compileValue(jsonObj, key, localeValues, delimiters) {\n const value = jsonObj[key];\n if (isString(value)) {\n // 存在国际化\n if (isI18nStr(value, delimiters)) {\n jsonObj[key] = compileStr(value, localeValues[0].values, delimiters);\n if (localeValues.length > 1) {\n // 格式化国际化语言\n const valueLocales = (jsonObj[key + 'Locales'] = {});\n localeValues.forEach((localValue) => {\n valueLocales[localValue.locale] = compileStr(value, localValue.values, delimiters);\n });\n }\n }\n }\n else {\n compileJsonObj(value, localeValues, delimiters);\n }\n}\nfunction compileJsonObj(jsonObj, localeValues, delimiters) {\n walkJsonObj(jsonObj, (jsonObj, key) => {\n compileValue(jsonObj, key, localeValues, delimiters);\n });\n return jsonObj;\n}\nfunction walkJsonObj(jsonObj, walk) {\n if (Array.isArray(jsonObj)) {\n for (let i = 0; i < jsonObj.length; i++) {\n if (walk(jsonObj, i)) {\n return true;\n }\n }\n }\n else if (isObject(jsonObj)) {\n for (const key in jsonObj) {\n if (walk(jsonObj, key)) {\n return true;\n }\n }\n }\n return false;\n}\n\nfunction resolveLocale(locales) {\n return (locale) => {\n if (!locale) {\n return locale;\n }\n locale = normalizeLocale(locale) || locale;\n return resolveLocaleChain(locale).find((locale) => locales.indexOf(locale) > -1);\n };\n}\nfunction resolveLocaleChain(locale) {\n const chain = [];\n const tokens = locale.split('-');\n while (tokens.length) {\n chain.push(tokens.join('-'));\n tokens.pop();\n }\n return chain;\n}\n\nexport { BaseFormatter as Formatter, I18n, LOCALE_EN, LOCALE_ES, LOCALE_FR, LOCALE_ZH_HANS, LOCALE_ZH_HANT, compileI18nJsonStr, hasI18nJson, initVueI18n, isI18nStr, isString, normalizeLocale, parseI18nJson, resolveLocale };\n","import { isArray, hasOwn, isString, isPlainObject, isObject, capitalize, toRawType, makeMap, isFunction, isPromise, extend, remove } from '@vue/shared';\nimport { normalizeLocale, LOCALE_EN } from '@dcloudio/uni-i18n';\nimport { LINEFEED, Emitter, sortObject, onCreateVueApp, invokeCreateVueAppHook } from '@dcloudio/uni-shared';\n\nfunction getBaseSystemInfo() {\n return wx.getSystemInfoSync();\n}\n\nfunction validateProtocolFail(name, msg) {\n console.warn(`${name}: ${msg}`);\n}\nfunction validateProtocol(name, data, protocol, onFail) {\n if (!onFail) {\n onFail = validateProtocolFail;\n }\n for (const key in protocol) {\n const errMsg = validateProp(key, data[key], protocol[key], !hasOwn(data, key));\n if (isString(errMsg)) {\n onFail(name, errMsg);\n }\n }\n}\nfunction validateProtocols(name, args, protocol, onFail) {\n if (!protocol) {\n return;\n }\n if (!isArray(protocol)) {\n return validateProtocol(name, args[0] || Object.create(null), protocol, onFail);\n }\n const len = protocol.length;\n const argsLen = args.length;\n for (let i = 0; i < len; i++) {\n const opts = protocol[i];\n const data = Object.create(null);\n if (argsLen > i) {\n data[opts.name] = args[i];\n }\n validateProtocol(name, data, { [opts.name]: opts }, onFail);\n }\n}\nfunction validateProp(name, value, prop, isAbsent) {\n if (!isPlainObject(prop)) {\n prop = { type: prop };\n }\n const { type, required, validator } = prop;\n // required!\n if (required && isAbsent) {\n return 'Missing required args: \"' + name + '\"';\n }\n // missing but optional\n if (value == null && !required) {\n return;\n }\n // type check\n if (type != null) {\n let isValid = false;\n const types = isArray(type) ? type : [type];\n const expectedTypes = [];\n // value is valid as long as one of the specified types match\n for (let i = 0; i < types.length && !isValid; i++) {\n const { valid, expectedType } = assertType(value, types[i]);\n expectedTypes.push(expectedType || '');\n isValid = valid;\n }\n if (!isValid) {\n return getInvalidTypeMessage(name, value, expectedTypes);\n }\n }\n // custom validator\n if (validator) {\n return validator(value);\n }\n}\nconst isSimpleType = /*#__PURE__*/ makeMap('String,Number,Boolean,Function,Symbol');\nfunction assertType(value, type) {\n let valid;\n const expectedType = getType(type);\n if (isSimpleType(expectedType)) {\n const t = typeof value;\n valid = t === expectedType.toLowerCase();\n // for primitive wrapper objects\n if (!valid && t === 'object') {\n valid = value instanceof type;\n }\n }\n else if (expectedType === 'Object') {\n valid = isObject(value);\n }\n else if (expectedType === 'Array') {\n valid = isArray(value);\n }\n else {\n {\n valid = value instanceof type;\n }\n }\n return {\n valid,\n expectedType,\n };\n}\nfunction getInvalidTypeMessage(name, value, expectedTypes) {\n let message = `Invalid args: type check failed for args \"${name}\".` +\n ` Expected ${expectedTypes.map(capitalize).join(', ')}`;\n const expectedType = expectedTypes[0];\n const receivedType = toRawType(value);\n const expectedValue = styleValue(value, expectedType);\n const receivedValue = styleValue(value, receivedType);\n // check if we need to specify expected value\n if (expectedTypes.length === 1 &&\n isExplicable(expectedType) &&\n !isBoolean(expectedType, receivedType)) {\n message += ` with value ${expectedValue}`;\n }\n message += `, got ${receivedType} `;\n // check if we need to specify received value\n if (isExplicable(receivedType)) {\n message += `with value ${receivedValue}.`;\n }\n return message;\n}\nfunction getType(ctor) {\n const match = ctor && ctor.toString().match(/^\\s*function (\\w+)/);\n return match ? match[1] : '';\n}\nfunction styleValue(value, type) {\n if (type === 'String') {\n return `\"${value}\"`;\n }\n else if (type === 'Number') {\n return `${Number(value)}`;\n }\n else {\n return `${value}`;\n }\n}\nfunction isExplicable(type) {\n const explicitTypes = ['string', 'number', 'boolean'];\n return explicitTypes.some((elem) => type.toLowerCase() === elem);\n}\nfunction isBoolean(...args) {\n return args.some((elem) => elem.toLowerCase() === 'boolean');\n}\n\nfunction tryCatch(fn) {\n return function () {\n try {\n return fn.apply(fn, arguments);\n }\n catch (e) {\n // TODO\n console.error(e);\n }\n };\n}\n\nlet invokeCallbackId = 1;\nconst invokeCallbacks = {};\nfunction addInvokeCallback(id, name, callback, keepAlive = false) {\n invokeCallbacks[id] = {\n name,\n keepAlive,\n callback,\n };\n return id;\n}\n// onNativeEventReceive((event,data)=>{}) 需要两个参数,目前写死最多两个参数\nfunction invokeCallback(id, res, extras) {\n if (typeof id === 'number') {\n const opts = invokeCallbacks[id];\n if (opts) {\n if (!opts.keepAlive) {\n delete invokeCallbacks[id];\n }\n return opts.callback(res, extras);\n }\n }\n return res;\n}\nconst API_SUCCESS = 'success';\nconst API_FAIL = 'fail';\nconst API_COMPLETE = 'complete';\nfunction getApiCallbacks(args) {\n const apiCallbacks = {};\n for (const name in args) {\n const fn = args[name];\n if (isFunction(fn)) {\n apiCallbacks[name] = tryCatch(fn);\n delete args[name];\n }\n }\n return apiCallbacks;\n}\nfunction normalizeErrMsg$1(errMsg, name) {\n if (!errMsg || errMsg.indexOf(':fail') === -1) {\n return name + ':ok';\n }\n return name + errMsg.substring(errMsg.indexOf(':fail'));\n}\nfunction createAsyncApiCallback(name, args = {}, { beforeAll, beforeSuccess } = {}) {\n if (!isPlainObject(args)) {\n args = {};\n }\n const { success, fail, complete } = getApiCallbacks(args);\n const hasSuccess = isFunction(success);\n const hasFail = isFunction(fail);\n const hasComplete = isFunction(complete);\n const callbackId = invokeCallbackId++;\n addInvokeCallback(callbackId, name, (res) => {\n res = res || {};\n res.errMsg = normalizeErrMsg$1(res.errMsg, name);\n isFunction(beforeAll) && beforeAll(res);\n if (res.errMsg === name + ':ok') {\n isFunction(beforeSuccess) && beforeSuccess(res, args);\n hasSuccess && success(res);\n }\n else {\n hasFail && fail(res);\n }\n hasComplete && complete(res);\n });\n return callbackId;\n}\n\nconst HOOK_SUCCESS = 'success';\nconst HOOK_FAIL = 'fail';\nconst HOOK_COMPLETE = 'complete';\nconst globalInterceptors = {};\nconst scopedInterceptors = {};\nfunction wrapperHook(hook, params) {\n return function (data) {\n return hook(data, params) || data;\n };\n}\nfunction queue(hooks, data, params) {\n let promise = false;\n for (let i = 0; i < hooks.length; i++) {\n const hook = hooks[i];\n if (promise) {\n promise = Promise.resolve(wrapperHook(hook, params));\n }\n else {\n const res = hook(data, params);\n if (isPromise(res)) {\n promise = Promise.resolve(res);\n }\n if (res === false) {\n return {\n then() { },\n catch() { },\n };\n }\n }\n }\n return (promise || {\n then(callback) {\n return callback(data);\n },\n catch() { },\n });\n}\nfunction wrapperOptions(interceptors, options = {}) {\n [HOOK_SUCCESS, HOOK_FAIL, HOOK_COMPLETE].forEach((name) => {\n const hooks = interceptors[name];\n if (!isArray(hooks)) {\n return;\n }\n const oldCallback = options[name];\n options[name] = function callbackInterceptor(res) {\n queue(hooks, res, options).then((res) => {\n return (isFunction(oldCallback) && oldCallback(res)) || res;\n });\n };\n });\n return options;\n}\nfunction wrapperReturnValue(method, returnValue) {\n const returnValueHooks = [];\n if (isArray(globalInterceptors.returnValue)) {\n returnValueHooks.push(...globalInterceptors.returnValue);\n }\n const interceptor = scopedInterceptors[method];\n if (interceptor && isArray(interceptor.returnValue)) {\n returnValueHooks.push(...interceptor.returnValue);\n }\n returnValueHooks.forEach((hook) => {\n returnValue = hook(returnValue) || returnValue;\n });\n return returnValue;\n}\nfunction getApiInterceptorHooks(method) {\n const interceptor = Object.create(null);\n Object.keys(globalInterceptors).forEach((hook) => {\n if (hook !== 'returnValue') {\n interceptor[hook] = globalInterceptors[hook].slice();\n }\n });\n const scopedInterceptor = scopedInterceptors[method];\n if (scopedInterceptor) {\n Object.keys(scopedInterceptor).forEach((hook) => {\n if (hook !== 'returnValue') {\n interceptor[hook] = (interceptor[hook] || []).concat(scopedInterceptor[hook]);\n }\n });\n }\n return interceptor;\n}\nfunction invokeApi(method, api, options, params) {\n const interceptor = getApiInterceptorHooks(method);\n if (interceptor && Object.keys(interceptor).length) {\n if (isArray(interceptor.invoke)) {\n const res = queue(interceptor.invoke, options);\n return res.then((options) => {\n // 重新访问 getApiInterceptorHooks, 允许 invoke 中再次调用 addInterceptor,removeInterceptor\n return api(wrapperOptions(getApiInterceptorHooks(method), options), ...params);\n });\n }\n else {\n return api(wrapperOptions(interceptor, options), ...params);\n }\n }\n return api(options, ...params);\n}\n\nfunction hasCallback(args) {\n if (isPlainObject(args) &&\n [API_SUCCESS, API_FAIL, API_COMPLETE].find((cb) => isFunction(args[cb]))) {\n return true;\n }\n return false;\n}\nfunction handlePromise(promise) {\n // if (__UNI_FEATURE_PROMISE__) {\n // return promise\n // .then((data) => {\n // return [null, data]\n // })\n // .catch((err) => [err])\n // }\n return promise;\n}\nfunction promisify$1(name, fn) {\n return (args = {}, ...rest) => {\n if (hasCallback(args)) {\n return wrapperReturnValue(name, invokeApi(name, fn, args, rest));\n }\n return wrapperReturnValue(name, handlePromise(new Promise((resolve, reject) => {\n invokeApi(name, fn, extend(args, { success: resolve, fail: reject }), rest);\n })));\n };\n}\n\nfunction formatApiArgs(args, options) {\n const params = args[0];\n if (!options ||\n (!isPlainObject(options.formatArgs) && isPlainObject(params))) {\n return;\n }\n const formatArgs = options.formatArgs;\n const keys = Object.keys(formatArgs);\n for (let i = 0; i < keys.length; i++) {\n const name = keys[i];\n const formatterOrDefaultValue = formatArgs[name];\n if (isFunction(formatterOrDefaultValue)) {\n const errMsg = formatterOrDefaultValue(args[0][name], params);\n if (isString(errMsg)) {\n return errMsg;\n }\n }\n else {\n // defaultValue\n if (!hasOwn(params, name)) {\n params[name] = formatterOrDefaultValue;\n }\n }\n }\n}\nfunction invokeSuccess(id, name, res) {\n const result = {\n errMsg: name + ':ok',\n };\n return invokeCallback(id, extend((res || {}), result));\n}\nfunction invokeFail(id, name, errMsg, errRes = {}) {\n const apiErrMsg = name + ':fail' + (errMsg ? ' ' + errMsg : '');\n delete errRes.errCode;\n let res = extend({ errMsg: apiErrMsg }, errRes);\n return invokeCallback(id, res);\n}\nfunction beforeInvokeApi(name, args, protocol, options) {\n if ((process.env.NODE_ENV !== 'production')) {\n validateProtocols(name, args, protocol);\n }\n if (options && options.beforeInvoke) {\n const errMsg = options.beforeInvoke(args);\n if (isString(errMsg)) {\n return errMsg;\n }\n }\n const errMsg = formatApiArgs(args, options);\n if (errMsg) {\n return errMsg;\n }\n}\nfunction normalizeErrMsg(errMsg) {\n if (!errMsg || isString(errMsg)) {\n return errMsg;\n }\n if (errMsg.stack) {\n console.error(errMsg.message + LINEFEED + errMsg.stack);\n return errMsg.message;\n }\n return errMsg;\n}\nfunction wrapperTaskApi(name, fn, protocol, options) {\n return (args) => {\n const id = createAsyncApiCallback(name, args, options);\n const errMsg = beforeInvokeApi(name, [args], protocol, options);\n if (errMsg) {\n return invokeFail(id, name, errMsg);\n }\n return fn(args, {\n resolve: (res) => invokeSuccess(id, name, res),\n reject: (errMsg, errRes) => invokeFail(id, name, normalizeErrMsg(errMsg), errRes),\n });\n };\n}\nfunction wrapperSyncApi(name, fn, protocol, options) {\n return (...args) => {\n const errMsg = beforeInvokeApi(name, args, protocol, options);\n if (errMsg) {\n throw new Error(errMsg);\n }\n return fn.apply(null, args);\n };\n}\nfunction wrapperAsyncApi(name, fn, protocol, options) {\n return wrapperTaskApi(name, fn, protocol, options);\n}\nfunction defineSyncApi(name, fn, protocol, options) {\n return wrapperSyncApi(name, fn, (process.env.NODE_ENV !== 'production') ? protocol : undefined, options);\n}\nfunction defineAsyncApi(name, fn, protocol, options) {\n return promisify$1(name, wrapperAsyncApi(name, fn, (process.env.NODE_ENV !== 'production') ? protocol : undefined, options));\n}\n\nconst API_UPX2PX = 'upx2px';\nconst Upx2pxProtocol = [\n {\n name: 'upx',\n type: [Number, String],\n required: true,\n },\n];\n\nconst EPS = 1e-4;\nconst BASE_DEVICE_WIDTH = 750;\nlet isIOS = false;\nlet deviceWidth = 0;\nlet deviceDPR = 0;\nfunction checkDeviceWidth() {\n const { platform, pixelRatio, windowWidth } = getBaseSystemInfo();\n deviceWidth = windowWidth;\n deviceDPR = pixelRatio;\n isIOS = platform === 'ios';\n}\nconst upx2px = defineSyncApi(API_UPX2PX, (number, newDeviceWidth) => {\n if (deviceWidth === 0) {\n checkDeviceWidth();\n }\n number = Number(number);\n if (number === 0) {\n return 0;\n }\n let width = newDeviceWidth || deviceWidth;\n let result = (number / BASE_DEVICE_WIDTH) * width;\n if (result < 0) {\n result = -result;\n }\n result = Math.floor(result + EPS);\n if (result === 0) {\n if (deviceDPR === 1 || !isIOS) {\n result = 1;\n }\n else {\n result = 0.5;\n }\n }\n return number < 0 ? -result : result;\n}, Upx2pxProtocol);\n\nconst API_ADD_INTERCEPTOR = 'addInterceptor';\nconst API_REMOVE_INTERCEPTOR = 'removeInterceptor';\nconst AddInterceptorProtocol = [\n {\n name: 'method',\n type: [String, Object],\n required: true,\n },\n];\nconst RemoveInterceptorProtocol = AddInterceptorProtocol;\n\nfunction mergeInterceptorHook(interceptors, interceptor) {\n Object.keys(interceptor).forEach((hook) => {\n if (isFunction(interceptor[hook])) {\n interceptors[hook] = mergeHook(interceptors[hook], interceptor[hook]);\n }\n });\n}\nfunction removeInterceptorHook(interceptors, interceptor) {\n if (!interceptors || !interceptor) {\n return;\n }\n Object.keys(interceptor).forEach((name) => {\n const hooks = interceptors[name];\n const hook = interceptor[name];\n if (isArray(hooks) && isFunction(hook)) {\n remove(hooks, hook);\n }\n });\n}\nfunction mergeHook(parentVal, childVal) {\n const res = childVal\n ? parentVal\n ? parentVal.concat(childVal)\n : isArray(childVal)\n ? childVal\n : [childVal]\n : parentVal;\n return res ? dedupeHooks(res) : res;\n}\nfunction dedupeHooks(hooks) {\n const res = [];\n for (let i = 0; i < hooks.length; i++) {\n if (res.indexOf(hooks[i]) === -1) {\n res.push(hooks[i]);\n }\n }\n return res;\n}\nconst addInterceptor = defineSyncApi(API_ADD_INTERCEPTOR, (method, interceptor) => {\n if (isString(method) && isPlainObject(interceptor)) {\n mergeInterceptorHook(scopedInterceptors[method] || (scopedInterceptors[method] = {}), interceptor);\n }\n else if (isPlainObject(method)) {\n mergeInterceptorHook(globalInterceptors, method);\n }\n}, AddInterceptorProtocol);\nconst removeInterceptor = defineSyncApi(API_REMOVE_INTERCEPTOR, (method, interceptor) => {\n if (isString(method)) {\n if (isPlainObject(interceptor)) {\n removeInterceptorHook(scopedInterceptors[method], interceptor);\n }\n else {\n delete scopedInterceptors[method];\n }\n }\n else if (isPlainObject(method)) {\n removeInterceptorHook(globalInterceptors, method);\n }\n}, RemoveInterceptorProtocol);\nconst interceptors = {};\n\nconst API_ON = '$on';\nconst OnProtocol = [\n {\n name: 'event',\n type: String,\n required: true,\n },\n {\n name: 'callback',\n type: Function,\n required: true,\n },\n];\nconst API_ONCE = '$once';\nconst OnceProtocol = OnProtocol;\nconst API_OFF = '$off';\nconst OffProtocol = [\n {\n name: 'event',\n type: [String, Array],\n },\n {\n name: 'callback',\n type: Function,\n },\n];\nconst API_EMIT = '$emit';\nconst EmitProtocol = [\n {\n name: 'event',\n type: String,\n required: true,\n },\n];\n\nconst emitter = new Emitter();\nconst $on = defineSyncApi(API_ON, (name, callback) => {\n emitter.on(name, callback);\n return () => emitter.off(name, callback);\n}, OnProtocol);\nconst $once = defineSyncApi(API_ONCE, (name, callback) => {\n emitter.once(name, callback);\n return () => emitter.off(name, callback);\n}, OnceProtocol);\nconst $off = defineSyncApi(API_OFF, (name, callback) => {\n if (!name) {\n emitter.e = {};\n return;\n }\n if (!isArray(name))\n name = [name];\n name.forEach((n) => emitter.off(n, callback));\n}, OffProtocol);\nconst $emit = defineSyncApi(API_EMIT, (name, ...args) => {\n emitter.emit(name, ...args);\n}, EmitProtocol);\n\nlet cid;\nlet cidErrMsg;\nlet enabled;\nfunction normalizePushMessage(message) {\n try {\n return JSON.parse(message);\n }\n catch (e) { }\n return message;\n}\n/**\n * @private\n * @param args\n */\nfunction invokePushCallback(args) {\n if (args.type === 'enabled') {\n enabled = true;\n }\n else if (args.type === 'clientId') {\n cid = args.cid;\n cidErrMsg = args.errMsg;\n invokeGetPushCidCallbacks(cid, args.errMsg);\n }\n else if (args.type === 'pushMsg') {\n const message = {\n type: 'receive',\n data: normalizePushMessage(args.message),\n };\n for (let i = 0; i < onPushMessageCallbacks.length; i++) {\n const callback = onPushMessageCallbacks[i];\n callback(message);\n // 该消息已被阻止\n if (message.stopped) {\n break;\n }\n }\n }\n else if (args.type === 'click') {\n onPushMessageCallbacks.forEach((callback) => {\n callback({\n type: 'click',\n data: normalizePushMessage(args.message),\n });\n });\n }\n}\nconst getPushCidCallbacks = [];\nfunction invokeGetPushCidCallbacks(cid, errMsg) {\n getPushCidCallbacks.forEach((callback) => {\n callback(cid, errMsg);\n });\n getPushCidCallbacks.length = 0;\n}\nconst API_GET_PUSH_CLIENT_ID = 'getPushClientId';\nconst getPushClientId = defineAsyncApi(API_GET_PUSH_CLIENT_ID, (_, { resolve, reject }) => {\n Promise.resolve().then(() => {\n if (typeof enabled === 'undefined') {\n enabled = false;\n cid = '';\n cidErrMsg = 'uniPush is not enabled';\n }\n getPushCidCallbacks.push((cid, errMsg) => {\n if (cid) {\n resolve({ cid });\n }\n else {\n reject(errMsg);\n }\n });\n if (typeof cid !== 'undefined') {\n invokeGetPushCidCallbacks(cid, cidErrMsg);\n }\n });\n});\nconst onPushMessageCallbacks = [];\n// 不使用 defineOnApi 实现,是因为 defineOnApi 依赖 UniServiceJSBridge ,该对象目前在小程序上未提供,故简单实现\nconst onPushMessage = (fn) => {\n if (onPushMessageCallbacks.indexOf(fn) === -1) {\n onPushMessageCallbacks.push(fn);\n }\n};\nconst offPushMessage = (fn) => {\n if (!fn) {\n onPushMessageCallbacks.length = 0;\n }\n else {\n const index = onPushMessageCallbacks.indexOf(fn);\n if (index > -1) {\n onPushMessageCallbacks.splice(index, 1);\n }\n }\n};\n\nconst SYNC_API_RE = /^\\$|getLocale|setLocale|sendNativeEvent|restoreGlobal|requireGlobal|getCurrentSubNVue|getMenuButtonBoundingClientRect|^report|interceptors|Interceptor$|getSubNVueById|requireNativePlugin|upx2px|hideKeyboard|canIUse|^create|Sync$|Manager$|base64ToArrayBuffer|arrayBufferToBase64|getDeviceInfo|getAppBaseInfo|getWindowInfo|getSystemSetting|getAppAuthorizeSetting/;\nconst CONTEXT_API_RE = /^create|Manager$/;\n// Context例外情况\nconst CONTEXT_API_RE_EXC = ['createBLEConnection'];\n// 同步例外情况\nconst ASYNC_API = ['createBLEConnection'];\nconst CALLBACK_API_RE = /^on|^off/;\nfunction isContextApi(name) {\n return CONTEXT_API_RE.test(name) && CONTEXT_API_RE_EXC.indexOf(name) === -1;\n}\nfunction isSyncApi(name) {\n return SYNC_API_RE.test(name) && ASYNC_API.indexOf(name) === -1;\n}\nfunction isCallbackApi(name) {\n return CALLBACK_API_RE.test(name) && name !== 'onPush';\n}\nfunction shouldPromise(name) {\n if (isContextApi(name) || isSyncApi(name) || isCallbackApi(name)) {\n return false;\n }\n return true;\n}\n/* eslint-disable no-extend-native */\nif (!Promise.prototype.finally) {\n Promise.prototype.finally = function (onfinally) {\n const promise = this.constructor;\n return this.then((value) => promise.resolve(onfinally && onfinally()).then(() => value), (reason) => promise.resolve(onfinally && onfinally()).then(() => {\n throw reason;\n }));\n };\n}\nfunction promisify(name, api) {\n if (!shouldPromise(name)) {\n return api;\n }\n if (!isFunction(api)) {\n return api;\n }\n return function promiseApi(options = {}, ...rest) {\n if (isFunction(options.success) ||\n isFunction(options.fail) ||\n isFunction(options.complete)) {\n return wrapperReturnValue(name, invokeApi(name, api, options, rest));\n }\n return wrapperReturnValue(name, handlePromise(new Promise((resolve, reject) => {\n invokeApi(name, api, extend({}, options, {\n success: resolve,\n fail: reject,\n }), rest);\n })));\n };\n}\n\nconst CALLBACKS = ['success', 'fail', 'cancel', 'complete'];\nfunction initWrapper(protocols) {\n function processCallback(methodName, method, returnValue) {\n return function (res) {\n return method(processReturnValue(methodName, res, returnValue));\n };\n }\n function processArgs(methodName, fromArgs, argsOption = {}, returnValue = {}, keepFromArgs = false) {\n if (isPlainObject(fromArgs)) {\n // 一般 api 的参数解析\n const toArgs = (keepFromArgs === true ? fromArgs : {}); // returnValue 为 false 时,说明是格式化返回值,直接在返回值对象上修改赋值\n if (isFunction(argsOption)) {\n argsOption = argsOption(fromArgs, toArgs) || {};\n }\n for (const key in fromArgs) {\n if (hasOwn(argsOption, key)) {\n let keyOption = argsOption[key];\n if (isFunction(keyOption)) {\n keyOption = keyOption(fromArgs[key], fromArgs, toArgs);\n }\n if (!keyOption) {\n // 不支持的参数\n console.warn(`微信小程序 ${methodName} 暂不支持 ${key}`);\n }\n else if (isString(keyOption)) {\n // 重写参数 key\n toArgs[keyOption] = fromArgs[key];\n }\n else if (isPlainObject(keyOption)) {\n // {name:newName,value:value}可重新指定参数 key:value\n toArgs[keyOption.name ? keyOption.name : key] = keyOption.value;\n }\n }\n else if (CALLBACKS.indexOf(key) !== -1) {\n const callback = fromArgs[key];\n if (isFunction(callback)) {\n toArgs[key] = processCallback(methodName, callback, returnValue);\n }\n }\n else {\n if (!keepFromArgs && !hasOwn(toArgs, key)) {\n toArgs[key] = fromArgs[key];\n }\n }\n }\n return toArgs;\n }\n else if (isFunction(fromArgs)) {\n fromArgs = processCallback(methodName, fromArgs, returnValue);\n }\n return fromArgs;\n }\n function processReturnValue(methodName, res, returnValue, keepReturnValue = false) {\n if (isFunction(protocols.returnValue)) {\n // 处理通用 returnValue\n res = protocols.returnValue(methodName, res);\n }\n return processArgs(methodName, res, returnValue, {}, keepReturnValue);\n }\n return function wrapper(methodName, method) {\n if (!hasOwn(protocols, methodName)) {\n return method;\n }\n const protocol = protocols[methodName];\n if (!protocol) {\n // 暂不支持的 api\n return function () {\n console.error(`微信小程序 暂不支持${methodName}`);\n };\n }\n return function (arg1, arg2) {\n // 目前 api 最多两个参数\n let options = protocol;\n if (isFunction(protocol)) {\n options = protocol(arg1);\n }\n arg1 = processArgs(methodName, arg1, options.args, options.returnValue);\n const args = [arg1];\n if (typeof arg2 !== 'undefined') {\n args.push(arg2);\n }\n const returnValue = wx[options.name || methodName].apply(wx, args);\n if (isSyncApi(methodName)) {\n // 同步 api\n return processReturnValue(methodName, returnValue, options.returnValue, isContextApi(methodName));\n }\n return returnValue;\n };\n };\n}\n\nconst getLocale = () => {\n // 优先使用 $locale\n const app = isFunction(getApp) && getApp({ allowDefault: true });\n if (app && app.$vm) {\n return app.$vm.$locale;\n }\n return normalizeLocale(wx.getSystemInfoSync().language) || LOCALE_EN;\n};\nconst setLocale = (locale) => {\n const app = isFunction(getApp) && getApp();\n if (!app) {\n return false;\n }\n const oldLocale = app.$vm.$locale;\n if (oldLocale !== locale) {\n app.$vm.$locale = locale;\n onLocaleChangeCallbacks.forEach((fn) => fn({ locale }));\n return true;\n }\n return false;\n};\nconst onLocaleChangeCallbacks = [];\nconst onLocaleChange = (fn) => {\n if (onLocaleChangeCallbacks.indexOf(fn) === -1) {\n onLocaleChangeCallbacks.push(fn);\n }\n};\nif (typeof global !== 'undefined') {\n global.getLocale = getLocale;\n}\n\nconst UUID_KEY = '__DC_STAT_UUID';\nlet deviceId;\nfunction useDeviceId(global = wx) {\n return function addDeviceId(_, toRes) {\n deviceId = deviceId || global.getStorageSync(UUID_KEY);\n if (!deviceId) {\n deviceId = Date.now() + '' + Math.floor(Math.random() * 1e7);\n wx.setStorage({\n key: UUID_KEY,\n data: deviceId,\n });\n }\n toRes.deviceId = deviceId;\n };\n}\nfunction addSafeAreaInsets(fromRes, toRes) {\n if (fromRes.safeArea) {\n const safeArea = fromRes.safeArea;\n toRes.safeAreaInsets = {\n top: safeArea.top,\n left: safeArea.left,\n right: fromRes.windowWidth - safeArea.right,\n bottom: fromRes.screenHeight - safeArea.bottom,\n };\n }\n}\nfunction populateParameters(fromRes, toRes) {\n const { brand = '', model = '', system = '', language = '', theme, version, platform, fontSizeSetting, SDKVersion, pixelRatio, deviceOrientation, } = fromRes;\n // const isQuickApp = \"mp-weixin\".indexOf('quickapp-webview') !== -1\n // osName osVersion\n let osName = '';\n let osVersion = '';\n {\n osName = system.split(' ')[0] || '';\n osVersion = system.split(' ')[1] || '';\n }\n let hostVersion = version;\n // deviceType\n let deviceType = getGetDeviceType(fromRes, model);\n // deviceModel\n let deviceBrand = getDeviceBrand(brand);\n // hostName\n let _hostName = getHostName(fromRes);\n // deviceOrientation\n let _deviceOrientation = deviceOrientation; // 仅 微信 百度 支持\n // devicePixelRatio\n let _devicePixelRatio = pixelRatio;\n // SDKVersion\n let _SDKVersion = SDKVersion;\n // hostLanguage\n const hostLanguage = language.replace(/_/g, '-');\n // wx.getAccountInfoSync\n const parameters = {\n appId: process.env.UNI_APP_ID,\n appName: process.env.UNI_APP_NAME,\n appVersion: process.env.UNI_APP_VERSION_NAME,\n appVersionCode: process.env.UNI_APP_VERSION_CODE,\n appLanguage: getAppLanguage(hostLanguage),\n uniCompileVersion: process.env.UNI_COMPILER_VERSION,\n uniRuntimeVersion: process.env.UNI_COMPILER_VERSION,\n uniPlatform: process.env.UNI_SUB_PLATFORM || process.env.UNI_PLATFORM,\n deviceBrand,\n deviceModel: model,\n deviceType,\n devicePixelRatio: _devicePixelRatio,\n deviceOrientation: _deviceOrientation,\n osName: osName.toLocaleLowerCase(),\n osVersion,\n hostTheme: theme,\n hostVersion,\n hostLanguage,\n hostName: _hostName,\n hostSDKVersion: _SDKVersion,\n hostFontSizeSetting: fontSizeSetting,\n windowTop: 0,\n windowBottom: 0,\n // TODO\n osLanguage: undefined,\n osTheme: undefined,\n ua: undefined,\n hostPackageName: undefined,\n browserName: undefined,\n browserVersion: undefined,\n };\n extend(toRes, parameters);\n}\nfunction getGetDeviceType(fromRes, model) {\n // deviceType\n let deviceType = fromRes.deviceType || 'phone';\n {\n const deviceTypeMaps = {\n ipad: 'pad',\n windows: 'pc',\n mac: 'pc',\n };\n const deviceTypeMapsKeys = Object.keys(deviceTypeMaps);\n const _model = model.toLocaleLowerCase();\n for (let index = 0; index < deviceTypeMapsKeys.length; index++) {\n const _m = deviceTypeMapsKeys[index];\n if (_model.indexOf(_m) !== -1) {\n deviceType = deviceTypeMaps[_m];\n break;\n }\n }\n }\n return deviceType;\n}\nfunction getDeviceBrand(brand) {\n // deviceModel\n let deviceBrand = brand;\n if (deviceBrand) {\n deviceBrand = deviceBrand.toLocaleLowerCase();\n }\n return deviceBrand;\n}\nfunction getAppLanguage(defaultLanguage) {\n return getLocale ? getLocale() : defaultLanguage;\n}\nfunction getHostName(fromRes) {\n const _platform = 'WeChat' ;\n let _hostName = fromRes.hostName || _platform; // mp-jd\n {\n if (fromRes.environment) {\n _hostName = fromRes.environment;\n }\n else if (fromRes.host && fromRes.host.env) {\n _hostName = fromRes.host.env;\n }\n }\n return _hostName;\n}\n\nconst getSystemInfo = {\n returnValue: (fromRes, toRes) => {\n addSafeAreaInsets(fromRes, toRes);\n useDeviceId()(fromRes, toRes);\n populateParameters(fromRes, toRes);\n },\n};\n\nconst getSystemInfoSync = getSystemInfo;\n\nconst redirectTo = {};\n\nconst previewImage = {\n args(fromArgs, toArgs) {\n let currentIndex = parseInt(fromArgs.current);\n if (isNaN(currentIndex)) {\n return;\n }\n const urls = fromArgs.urls;\n if (!isArray(urls)) {\n return;\n }\n const len = urls.length;\n if (!len) {\n return;\n }\n if (currentIndex < 0) {\n currentIndex = 0;\n }\n else if (currentIndex >= len) {\n currentIndex = len - 1;\n }\n if (currentIndex > 0) {\n toArgs.current = urls[currentIndex];\n toArgs.urls = urls.filter((item, index) => index < currentIndex ? item !== urls[currentIndex] : true);\n }\n else {\n toArgs.current = urls[0];\n }\n return {\n indicator: false,\n loop: false,\n };\n },\n};\n\nconst showActionSheet = {\n args(fromArgs, toArgs) {\n toArgs.alertText = fromArgs.title;\n },\n};\n\nconst getDeviceInfo = {\n returnValue: (fromRes, toRes) => {\n const { brand, model } = fromRes;\n let deviceType = getGetDeviceType(fromRes, model);\n let deviceBrand = getDeviceBrand(brand);\n useDeviceId()(fromRes, toRes);\n toRes = sortObject(extend(toRes, {\n deviceType,\n deviceBrand,\n deviceModel: model,\n }));\n },\n};\n\nconst getAppBaseInfo = {\n returnValue: (fromRes, toRes) => {\n const { version, language, SDKVersion, theme } = fromRes;\n let _hostName = getHostName(fromRes);\n let hostLanguage = language.replace(/_/g, '-');\n toRes = sortObject(extend(toRes, {\n hostVersion: version,\n hostLanguage,\n hostName: _hostName,\n hostSDKVersion: SDKVersion,\n hostTheme: theme,\n appId: process.env.UNI_APP_ID,\n appName: process.env.UNI_APP_NAME,\n appVersion: process.env.UNI_APP_VERSION_NAME,\n appVersionCode: process.env.UNI_APP_VERSION_CODE,\n appLanguage: getAppLanguage(hostLanguage),\n }));\n },\n};\n\nconst getWindowInfo = {\n returnValue: (fromRes, toRes) => {\n addSafeAreaInsets(fromRes, toRes);\n toRes = sortObject(extend(toRes, {\n windowTop: 0,\n windowBottom: 0,\n }));\n },\n};\n\nconst getAppAuthorizeSetting = {\n returnValue: function (fromRes, toRes) {\n const { locationReducedAccuracy } = fromRes;\n toRes.locationAccuracy = 'unsupported';\n if (locationReducedAccuracy === true) {\n toRes.locationAccuracy = 'reduced';\n }\n else if (locationReducedAccuracy === false) {\n toRes.locationAccuracy = 'full';\n }\n },\n};\n\nconst baseApis = {\n $on,\n $off,\n $once,\n $emit,\n upx2px,\n interceptors,\n addInterceptor,\n removeInterceptor,\n onCreateVueApp,\n invokeCreateVueAppHook,\n getLocale,\n setLocale,\n onLocaleChange,\n getPushClientId,\n onPushMessage,\n offPushMessage,\n invokePushCallback,\n};\nfunction initUni(api, protocols, platform = wx) {\n const wrapper = initWrapper(protocols);\n const UniProxyHandlers = {\n get(target, key) {\n if (hasOwn(target, key)) {\n return target[key];\n }\n if (hasOwn(api, key)) {\n return promisify(key, api[key]);\n }\n if (hasOwn(baseApis, key)) {\n return promisify(key, baseApis[key]);\n }\n // event-api\n // provider-api?\n return promisify(key, wrapper(key, platform[key]));\n },\n };\n return new Proxy({}, UniProxyHandlers);\n}\n\nfunction initGetProvider(providers) {\n return function getProvider({ service, success, fail, complete, }) {\n let res;\n if (providers[service]) {\n res = {\n errMsg: 'getProvider:ok',\n service,\n provider: providers[service],\n };\n isFunction(success) && success(res);\n }\n else {\n res = {\n errMsg: 'getProvider:fail:服务[' + service + ']不存在',\n };\n isFunction(fail) && fail(res);\n }\n isFunction(complete) && complete(res);\n };\n}\n\nconst objectKeys = [\n 'qy',\n 'env',\n 'error',\n 'version',\n 'lanDebug',\n 'cloud',\n 'serviceMarket',\n 'router',\n 'worklet',\n '__webpack_require_UNI_MP_PLUGIN__',\n];\nconst singlePageDisableKey = ['lanDebug', 'router', 'worklet'];\nconst launchOption = wx.getLaunchOptionsSync\n ? wx.getLaunchOptionsSync()\n : null;\nfunction isWxKey(key) {\n if (launchOption &&\n launchOption.scene === 1154 &&\n singlePageDisableKey.includes(key)) {\n return false;\n }\n return objectKeys.indexOf(key) > -1 || typeof wx[key] === 'function';\n}\nfunction initWx() {\n const newWx = {};\n for (const key in wx) {\n if (isWxKey(key)) {\n // TODO wrapper function\n newWx[key] = wx[key];\n }\n }\n if (typeof globalThis !== 'undefined' &&\n typeof requireMiniProgram === 'undefined') {\n globalThis.wx = newWx;\n }\n return newWx;\n}\n\nconst mocks = ['__route__', '__wxExparserNodeId__', '__wxWebviewId__'];\n\nconst getProvider = initGetProvider({\n oauth: ['weixin'],\n share: ['weixin'],\n payment: ['wxpay'],\n push: ['weixin'],\n});\nfunction initComponentMocks(component) {\n const res = Object.create(null);\n mocks.forEach((name) => {\n res[name] = component[name];\n });\n return res;\n}\n/**\n * 微信小程序内部会 Object.keys(vm),导致告警\n * Avoid app logic that relies on enumerating keys on a component instance. The keys will be empty in production mode to avoid performance overhead.\n * @returns\n */\nfunction createSelectorQuery() {\n const query = wx$2.createSelectorQuery();\n const oldIn = query.in;\n query.in = function newIn(component) {\n return oldIn.call(this, initComponentMocks(component));\n };\n return query;\n}\nconst wx$2 = initWx();\nlet baseInfo = wx$2.getAppBaseInfo && wx$2.getAppBaseInfo();\nif (!baseInfo) {\n baseInfo = wx$2.getSystemInfoSync();\n}\nconst host = baseInfo ? baseInfo.host : null;\nconst shareVideoMessage = host && host.env === 'SAAASDK'\n ? wx$2.miniapp.shareVideoMessage\n : wx$2.shareVideoMessage;\n\nvar shims = /*#__PURE__*/Object.freeze({\n __proto__: null,\n createSelectorQuery: createSelectorQuery,\n getProvider: getProvider,\n shareVideoMessage: shareVideoMessage\n});\n\nconst compressImage = {\n args(fromArgs, toArgs) {\n // https://developers.weixin.qq.com/community/develop/doc/000c08940c865011298e0a43256800?highLine=compressHeight\n // @ts-expect-error\n if (fromArgs.compressedHeight && !toArgs.compressHeight) {\n // @ts-expect-error\n toArgs.compressHeight = fromArgs.compressedHeight;\n }\n // @ts-expect-error\n if (fromArgs.compressedWidth && !toArgs.compressWidth) {\n // @ts-expect-error\n toArgs.compressWidth = fromArgs.compressedWidth;\n }\n },\n};\n\nvar protocols = /*#__PURE__*/Object.freeze({\n __proto__: null,\n compressImage: compressImage,\n getAppAuthorizeSetting: getAppAuthorizeSetting,\n getAppBaseInfo: getAppBaseInfo,\n getDeviceInfo: getDeviceInfo,\n getSystemInfo: getSystemInfo,\n getSystemInfoSync: getSystemInfoSync,\n getWindowInfo: getWindowInfo,\n previewImage: previewImage,\n redirectTo: redirectTo,\n showActionSheet: showActionSheet\n});\n\nconst wx$1 = initWx();\nvar index = initUni(shims, protocols, wx$1);\n\nexport { index as default, wx$1 as wx };\n","import { isRootHook, getValueByDataPath, isUniLifecycleHook, ON_ERROR, UniLifecycleHooks, invokeCreateErrorHandler, dynamicSlotName } from '@dcloudio/uni-shared';\nimport { isSymbol, extend, isObject, toRawType, def, hasOwn, isArray, isIntegerKey, makeMap, hasChanged, isMap, capitalize, getGlobalThis, isString, normalizeClass, normalizeStyle, isFunction, isOn, NOOP, EMPTY_OBJ, isPromise, isSet, isPlainObject, camelize, remove, toHandlerKey, hyphenate, isReservedProp, toTypeString, invokeArrayFns, isBuiltInDirective, looseToNumber, NO, EMPTY_ARR, isModelListener, toNumber, toDisplayString } from '@vue/shared';\nexport { EMPTY_OBJ, camelize, normalizeClass, normalizeProps, normalizeStyle, toDisplayString, toHandlerKey } from '@vue/shared';\n\n/**\n* @vue/reactivity v3.4.21\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\n\nfunction warn$4(msg, ...args) {\n console.warn(`[Vue warn] ${msg}`, ...args);\n}\n\nlet activeEffectScope$1;\nfunction recordEffectScope$1(effect, scope = activeEffectScope$1) {\n if (scope && scope.active) {\n scope.effects.push(effect);\n }\n}\n\nlet activeEffect$1;\nlet ReactiveEffect$1 = class ReactiveEffect {\n constructor(fn, trigger, scheduler, scope) {\n this.fn = fn;\n this.trigger = trigger;\n this.scheduler = scheduler;\n this.active = true;\n this.deps = [];\n /**\n * @internal\n */\n this._dirtyLevel = 4;\n /**\n * @internal\n */\n this._trackId = 0;\n /**\n * @internal\n */\n this._runnings = 0;\n /**\n * @internal\n */\n this._shouldSchedule = false;\n /**\n * @internal\n */\n this._depsLength = 0;\n recordEffectScope$1(this, scope);\n }\n get dirty() {\n if (this._dirtyLevel === 2 || this._dirtyLevel === 3) {\n this._dirtyLevel = 1;\n pauseTracking$1();\n for (let i = 0; i < this._depsLength; i++) {\n const dep = this.deps[i];\n if (dep.computed) {\n triggerComputed$1(dep.computed);\n if (this._dirtyLevel >= 4) {\n break;\n }\n }\n }\n if (this._dirtyLevel === 1) {\n this._dirtyLevel = 0;\n }\n resetTracking$1();\n }\n return this._dirtyLevel >= 4;\n }\n set dirty(v) {\n this._dirtyLevel = v ? 4 : 0;\n }\n run() {\n this._dirtyLevel = 0;\n if (!this.active) {\n return this.fn();\n }\n let lastShouldTrack = shouldTrack$1;\n let lastEffect = activeEffect$1;\n try {\n shouldTrack$1 = true;\n activeEffect$1 = this;\n this._runnings++;\n preCleanupEffect$1(this);\n return this.fn();\n } finally {\n postCleanupEffect$1(this);\n this._runnings--;\n activeEffect$1 = lastEffect;\n shouldTrack$1 = lastShouldTrack;\n }\n }\n stop() {\n var _a;\n if (this.active) {\n preCleanupEffect$1(this);\n postCleanupEffect$1(this);\n (_a = this.onStop) == null ? void 0 : _a.call(this);\n this.active = false;\n }\n }\n};\nfunction triggerComputed$1(computed) {\n return computed.value;\n}\nfunction preCleanupEffect$1(effect2) {\n effect2._trackId++;\n effect2._depsLength = 0;\n}\nfunction postCleanupEffect$1(effect2) {\n if (effect2.deps.length > effect2._depsLength) {\n for (let i = effect2._depsLength; i < effect2.deps.length; i++) {\n cleanupDepEffect$1(effect2.deps[i], effect2);\n }\n effect2.deps.length = effect2._depsLength;\n }\n}\nfunction cleanupDepEffect$1(dep, effect2) {\n const trackId = dep.get(effect2);\n if (trackId !== void 0 && effect2._trackId !== trackId) {\n dep.delete(effect2);\n if (dep.size === 0) {\n dep.cleanup();\n }\n }\n}\nlet shouldTrack$1 = true;\nlet pauseScheduleStack$1 = 0;\nconst trackStack$1 = [];\nfunction pauseTracking$1() {\n trackStack$1.push(shouldTrack$1);\n shouldTrack$1 = false;\n}\nfunction resetTracking$1() {\n const last = trackStack$1.pop();\n shouldTrack$1 = last === void 0 ? true : last;\n}\nfunction pauseScheduling$1() {\n pauseScheduleStack$1++;\n}\nfunction resetScheduling$1() {\n pauseScheduleStack$1--;\n while (!pauseScheduleStack$1 && queueEffectSchedulers$1.length) {\n queueEffectSchedulers$1.shift()();\n }\n}\nfunction trackEffect$1(effect2, dep, debuggerEventExtraInfo) {\n var _a;\n if (dep.get(effect2) !== effect2._trackId) {\n dep.set(effect2, effect2._trackId);\n const oldDep = effect2.deps[effect2._depsLength];\n if (oldDep !== dep) {\n if (oldDep) {\n cleanupDepEffect$1(oldDep, effect2);\n }\n effect2.deps[effect2._depsLength++] = dep;\n } else {\n effect2._depsLength++;\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n (_a = effect2.onTrack) == null ? void 0 : _a.call(effect2, extend({ effect: effect2 }, debuggerEventExtraInfo));\n }\n }\n}\nconst queueEffectSchedulers$1 = [];\nfunction triggerEffects$1(dep, dirtyLevel, debuggerEventExtraInfo) {\n var _a;\n pauseScheduling$1();\n for (const effect2 of dep.keys()) {\n let tracking;\n if (effect2._dirtyLevel < dirtyLevel && (tracking != null ? tracking : tracking = dep.get(effect2) === effect2._trackId)) {\n effect2._shouldSchedule || (effect2._shouldSchedule = effect2._dirtyLevel === 0);\n effect2._dirtyLevel = dirtyLevel;\n }\n if (effect2._shouldSchedule && (tracking != null ? tracking : tracking = dep.get(effect2) === effect2._trackId)) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n (_a = effect2.onTrigger) == null ? void 0 : _a.call(effect2, extend({ effect: effect2 }, debuggerEventExtraInfo));\n }\n effect2.trigger();\n if ((!effect2._runnings || effect2.allowRecurse) && effect2._dirtyLevel !== 2) {\n effect2._shouldSchedule = false;\n if (effect2.scheduler) {\n queueEffectSchedulers$1.push(effect2.scheduler);\n }\n }\n }\n }\n resetScheduling$1();\n}\n\nconst createDep$1 = (cleanup, computed) => {\n const dep = /* @__PURE__ */ new Map();\n dep.cleanup = cleanup;\n dep.computed = computed;\n return dep;\n};\n\nconst targetMap$1 = /* @__PURE__ */ new WeakMap();\nconst ITERATE_KEY$1 = Symbol(!!(process.env.NODE_ENV !== \"production\") ? \"iterate\" : \"\");\nconst MAP_KEY_ITERATE_KEY$1 = Symbol(!!(process.env.NODE_ENV !== \"production\") ? \"Map key iterate\" : \"\");\nfunction track$1(target, type, key) {\n if (shouldTrack$1 && activeEffect$1) {\n let depsMap = targetMap$1.get(target);\n if (!depsMap) {\n targetMap$1.set(target, depsMap = /* @__PURE__ */ new Map());\n }\n let dep = depsMap.get(key);\n if (!dep) {\n depsMap.set(key, dep = createDep$1(() => depsMap.delete(key)));\n }\n trackEffect$1(\n activeEffect$1,\n dep,\n !!(process.env.NODE_ENV !== \"production\") ? {\n target,\n type,\n key\n } : void 0\n );\n }\n}\nfunction trigger$1(target, type, key, newValue, oldValue, oldTarget) {\n const depsMap = targetMap$1.get(target);\n if (!depsMap) {\n return;\n }\n let deps = [];\n if (type === \"clear\") {\n deps = [...depsMap.values()];\n } else if (key === \"length\" && isArray(target)) {\n const newLength = Number(newValue);\n depsMap.forEach((dep, key2) => {\n if (key2 === \"length\" || !isSymbol(key2) && key2 >= newLength) {\n deps.push(dep);\n }\n });\n } else {\n if (key !== void 0) {\n deps.push(depsMap.get(key));\n }\n switch (type) {\n case \"add\":\n if (!isArray(target)) {\n deps.push(depsMap.get(ITERATE_KEY$1));\n if (isMap(target)) {\n deps.push(depsMap.get(MAP_KEY_ITERATE_KEY$1));\n }\n } else if (isIntegerKey(key)) {\n deps.push(depsMap.get(\"length\"));\n }\n break;\n case \"delete\":\n if (!isArray(target)) {\n deps.push(depsMap.get(ITERATE_KEY$1));\n if (isMap(target)) {\n deps.push(depsMap.get(MAP_KEY_ITERATE_KEY$1));\n }\n }\n break;\n case \"set\":\n if (isMap(target)) {\n deps.push(depsMap.get(ITERATE_KEY$1));\n }\n break;\n }\n }\n pauseScheduling$1();\n for (const dep of deps) {\n if (dep) {\n triggerEffects$1(\n dep,\n 4,\n !!(process.env.NODE_ENV !== \"production\") ? {\n target,\n type,\n key,\n newValue,\n oldValue,\n oldTarget\n } : void 0\n );\n }\n }\n resetScheduling$1();\n}\n\nconst isNonTrackableKeys$1 = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`);\nconst builtInSymbols$1 = new Set(\n /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== \"arguments\" && key !== \"caller\").map((key) => Symbol[key]).filter(isSymbol)\n);\nconst arrayInstrumentations$1 = /* @__PURE__ */ createArrayInstrumentations$1();\nfunction createArrayInstrumentations$1() {\n const instrumentations = {};\n [\"includes\", \"indexOf\", \"lastIndexOf\"].forEach((key) => {\n instrumentations[key] = function(...args) {\n const arr = toRaw$1(this);\n for (let i = 0, l = this.length; i < l; i++) {\n track$1(arr, \"get\", i + \"\");\n }\n const res = arr[key](...args);\n if (res === -1 || res === false) {\n return arr[key](...args.map(toRaw$1));\n } else {\n return res;\n }\n };\n });\n [\"push\", \"pop\", \"shift\", \"unshift\", \"splice\"].forEach((key) => {\n instrumentations[key] = function(...args) {\n pauseTracking$1();\n pauseScheduling$1();\n const res = toRaw$1(this)[key].apply(this, args);\n resetScheduling$1();\n resetTracking$1();\n return res;\n };\n });\n return instrumentations;\n}\nfunction hasOwnProperty$1(key) {\n const obj = toRaw$1(this);\n track$1(obj, \"has\", key);\n return obj.hasOwnProperty(key);\n}\nlet BaseReactiveHandler$1 = class BaseReactiveHandler {\n constructor(_isReadonly = false, _isShallow = false) {\n this._isReadonly = _isReadonly;\n this._isShallow = _isShallow;\n }\n get(target, key, receiver) {\n const isReadonly2 = this._isReadonly, isShallow2 = this._isShallow;\n if (key === \"__v_isReactive\") {\n return !isReadonly2;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly2;\n } else if (key === \"__v_isShallow\") {\n return isShallow2;\n } else if (key === \"__v_raw\") {\n if (receiver === (isReadonly2 ? isShallow2 ? shallowReadonlyMap$1 : readonlyMap$1 : isShallow2 ? shallowReactiveMap$1 : reactiveMap$1).get(target) || // receiver is not the reactive proxy, but has the same prototype\n // this means the reciever is a user proxy of the reactive proxy\n Object.getPrototypeOf(target) === Object.getPrototypeOf(receiver)) {\n return target;\n }\n return;\n }\n const targetIsArray = isArray(target);\n if (!isReadonly2) {\n if (targetIsArray && hasOwn(arrayInstrumentations$1, key)) {\n return Reflect.get(arrayInstrumentations$1, key, receiver);\n }\n if (key === \"hasOwnProperty\") {\n return hasOwnProperty$1;\n }\n }\n const res = Reflect.get(target, key, receiver);\n if (isSymbol(key) ? builtInSymbols$1.has(key) : isNonTrackableKeys$1(key)) {\n return res;\n }\n if (!isReadonly2) {\n track$1(target, \"get\", key);\n }\n if (isShallow2) {\n return res;\n }\n if (isRef$1(res)) {\n return targetIsArray && isIntegerKey(key) ? res : res.value;\n }\n if (isObject(res)) {\n return isReadonly2 ? readonly$1(res) : reactive$1(res);\n }\n return res;\n }\n};\nlet MutableReactiveHandler$1 = class MutableReactiveHandler extends BaseReactiveHandler$1 {\n constructor(isShallow2 = false) {\n super(false, isShallow2);\n }\n set(target, key, value, receiver) {\n let oldValue = target[key];\n if (!this._isShallow) {\n const isOldValueReadonly = isReadonly$1(oldValue);\n if (!isShallow$1(value) && !isReadonly$1(value)) {\n oldValue = toRaw$1(oldValue);\n value = toRaw$1(value);\n }\n if (!isArray(target) && isRef$1(oldValue) && !isRef$1(value)) {\n if (isOldValueReadonly) {\n return false;\n } else {\n oldValue.value = value;\n return true;\n }\n }\n }\n const hadKey = isArray(target) && isIntegerKey(key) ? Number(key) < target.length : hasOwn(target, key);\n const result = Reflect.set(target, key, value, receiver);\n if (target === toRaw$1(receiver)) {\n if (!hadKey) {\n trigger$1(target, \"add\", key, value);\n } else if (hasChanged(value, oldValue)) {\n trigger$1(target, \"set\", key, value, oldValue);\n }\n }\n return result;\n }\n deleteProperty(target, key) {\n const hadKey = hasOwn(target, key);\n const oldValue = target[key];\n const result = Reflect.deleteProperty(target, key);\n if (result && hadKey) {\n trigger$1(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n }\n has(target, key) {\n const result = Reflect.has(target, key);\n if (!isSymbol(key) || !builtInSymbols$1.has(key)) {\n track$1(target, \"has\", key);\n }\n return result;\n }\n ownKeys(target) {\n track$1(\n target,\n \"iterate\",\n isArray(target) ? \"length\" : ITERATE_KEY$1\n );\n return Reflect.ownKeys(target);\n }\n};\nlet ReadonlyReactiveHandler$1 = class ReadonlyReactiveHandler extends BaseReactiveHandler$1 {\n constructor(isShallow2 = false) {\n super(true, isShallow2);\n }\n set(target, key) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$4(\n `Set operation on key \"${String(key)}\" failed: target is readonly.`,\n target\n );\n }\n return true;\n }\n deleteProperty(target, key) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$4(\n `Delete operation on key \"${String(key)}\" failed: target is readonly.`,\n target\n );\n }\n return true;\n }\n};\nconst mutableHandlers$1 = /* @__PURE__ */ new MutableReactiveHandler$1();\nconst readonlyHandlers$1 = /* @__PURE__ */ new ReadonlyReactiveHandler$1();\nconst shallowReadonlyHandlers$1 = /* @__PURE__ */ new ReadonlyReactiveHandler$1(true);\n\nconst toShallow$1 = (value) => value;\nconst getProto$1 = (v) => Reflect.getPrototypeOf(v);\nfunction get$1(target, key, isReadonly = false, isShallow = false) {\n target = target[\"__v_raw\"];\n const rawTarget = toRaw$1(target);\n const rawKey = toRaw$1(key);\n if (!isReadonly) {\n if (hasChanged(key, rawKey)) {\n track$1(rawTarget, \"get\", key);\n }\n track$1(rawTarget, \"get\", rawKey);\n }\n const { has: has2 } = getProto$1(rawTarget);\n const wrap = isShallow ? toShallow$1 : isReadonly ? toReadonly$1 : toReactive$1;\n if (has2.call(rawTarget, key)) {\n return wrap(target.get(key));\n } else if (has2.call(rawTarget, rawKey)) {\n return wrap(target.get(rawKey));\n } else if (target !== rawTarget) {\n target.get(key);\n }\n}\nfunction has$1(key, isReadonly = false) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw$1(target);\n const rawKey = toRaw$1(key);\n if (!isReadonly) {\n if (hasChanged(key, rawKey)) {\n track$1(rawTarget, \"has\", key);\n }\n track$1(rawTarget, \"has\", rawKey);\n }\n return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey);\n}\nfunction size$1(target, isReadonly = false) {\n target = target[\"__v_raw\"];\n !isReadonly && track$1(toRaw$1(target), \"iterate\", ITERATE_KEY$1);\n return Reflect.get(target, \"size\", target);\n}\nfunction add$1(value) {\n value = toRaw$1(value);\n const target = toRaw$1(this);\n const proto = getProto$1(target);\n const hadKey = proto.has.call(target, value);\n if (!hadKey) {\n target.add(value);\n trigger$1(target, \"add\", value, value);\n }\n return this;\n}\nfunction set$2(key, value) {\n value = toRaw$1(value);\n const target = toRaw$1(this);\n const { has: has2, get: get2 } = getProto$1(target);\n let hadKey = has2.call(target, key);\n if (!hadKey) {\n key = toRaw$1(key);\n hadKey = has2.call(target, key);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n checkIdentityKeys$1(target, has2, key);\n }\n const oldValue = get2.call(target, key);\n target.set(key, value);\n if (!hadKey) {\n trigger$1(target, \"add\", key, value);\n } else if (hasChanged(value, oldValue)) {\n trigger$1(target, \"set\", key, value, oldValue);\n }\n return this;\n}\nfunction deleteEntry$1(key) {\n const target = toRaw$1(this);\n const { has: has2, get: get2 } = getProto$1(target);\n let hadKey = has2.call(target, key);\n if (!hadKey) {\n key = toRaw$1(key);\n hadKey = has2.call(target, key);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n checkIdentityKeys$1(target, has2, key);\n }\n const oldValue = get2 ? get2.call(target, key) : void 0;\n const result = target.delete(key);\n if (hadKey) {\n trigger$1(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n}\nfunction clear$1() {\n const target = toRaw$1(this);\n const hadItems = target.size !== 0;\n const oldTarget = !!(process.env.NODE_ENV !== \"production\") ? isMap(target) ? new Map(target) : new Set(target) : void 0;\n const result = target.clear();\n if (hadItems) {\n trigger$1(target, \"clear\", void 0, void 0, oldTarget);\n }\n return result;\n}\nfunction createForEach$1(isReadonly, isShallow) {\n return function forEach(callback, thisArg) {\n const observed = this;\n const target = observed[\"__v_raw\"];\n const rawTarget = toRaw$1(target);\n const wrap = isShallow ? toShallow$1 : isReadonly ? toReadonly$1 : toReactive$1;\n !isReadonly && track$1(rawTarget, \"iterate\", ITERATE_KEY$1);\n return target.forEach((value, key) => {\n return callback.call(thisArg, wrap(value), wrap(key), observed);\n });\n };\n}\nfunction createIterableMethod$1(method, isReadonly, isShallow) {\n return function(...args) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw$1(target);\n const targetIsMap = isMap(rawTarget);\n const isPair = method === \"entries\" || method === Symbol.iterator && targetIsMap;\n const isKeyOnly = method === \"keys\" && targetIsMap;\n const innerIterator = target[method](...args);\n const wrap = isShallow ? toShallow$1 : isReadonly ? toReadonly$1 : toReactive$1;\n !isReadonly && track$1(\n rawTarget,\n \"iterate\",\n isKeyOnly ? MAP_KEY_ITERATE_KEY$1 : ITERATE_KEY$1\n );\n return {\n // iterator protocol\n next() {\n const { value, done } = innerIterator.next();\n return done ? { value, done } : {\n value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value),\n done\n };\n },\n // iterable protocol\n [Symbol.iterator]() {\n return this;\n }\n };\n };\n}\nfunction createReadonlyMethod$1(type) {\n return function(...args) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const key = args[0] ? `on key \"${args[0]}\" ` : ``;\n warn$4(\n `${capitalize(type)} operation ${key}failed: target is readonly.`,\n toRaw$1(this)\n );\n }\n return type === \"delete\" ? false : type === \"clear\" ? void 0 : this;\n };\n}\nfunction createInstrumentations$1() {\n const mutableInstrumentations2 = {\n get(key) {\n return get$1(this, key);\n },\n get size() {\n return size$1(this);\n },\n has: has$1,\n add: add$1,\n set: set$2,\n delete: deleteEntry$1,\n clear: clear$1,\n forEach: createForEach$1(false, false)\n };\n const shallowInstrumentations2 = {\n get(key) {\n return get$1(this, key, false, true);\n },\n get size() {\n return size$1(this);\n },\n has: has$1,\n add: add$1,\n set: set$2,\n delete: deleteEntry$1,\n clear: clear$1,\n forEach: createForEach$1(false, true)\n };\n const readonlyInstrumentations2 = {\n get(key) {\n return get$1(this, key, true);\n },\n get size() {\n return size$1(this, true);\n },\n has(key) {\n return has$1.call(this, key, true);\n },\n add: createReadonlyMethod$1(\"add\"),\n set: createReadonlyMethod$1(\"set\"),\n delete: createReadonlyMethod$1(\"delete\"),\n clear: createReadonlyMethod$1(\"clear\"),\n forEach: createForEach$1(true, false)\n };\n const shallowReadonlyInstrumentations2 = {\n get(key) {\n return get$1(this, key, true, true);\n },\n get size() {\n return size$1(this, true);\n },\n has(key) {\n return has$1.call(this, key, true);\n },\n add: createReadonlyMethod$1(\"add\"),\n set: createReadonlyMethod$1(\"set\"),\n delete: createReadonlyMethod$1(\"delete\"),\n clear: createReadonlyMethod$1(\"clear\"),\n forEach: createForEach$1(true, true)\n };\n const iteratorMethods = [\"keys\", \"values\", \"entries\", Symbol.iterator];\n iteratorMethods.forEach((method) => {\n mutableInstrumentations2[method] = createIterableMethod$1(\n method,\n false,\n false\n );\n readonlyInstrumentations2[method] = createIterableMethod$1(\n method,\n true,\n false\n );\n shallowInstrumentations2[method] = createIterableMethod$1(\n method,\n false,\n true\n );\n shallowReadonlyInstrumentations2[method] = createIterableMethod$1(\n method,\n true,\n true\n );\n });\n return [\n mutableInstrumentations2,\n readonlyInstrumentations2,\n shallowInstrumentations2,\n shallowReadonlyInstrumentations2\n ];\n}\nconst [\n mutableInstrumentations$1,\n readonlyInstrumentations$1,\n shallowInstrumentations$1,\n shallowReadonlyInstrumentations$1\n] = /* @__PURE__ */ createInstrumentations$1();\nfunction createInstrumentationGetter$1(isReadonly, shallow) {\n const instrumentations = shallow ? isReadonly ? shallowReadonlyInstrumentations$1 : shallowInstrumentations$1 : isReadonly ? readonlyInstrumentations$1 : mutableInstrumentations$1;\n return (target, key, receiver) => {\n if (key === \"__v_isReactive\") {\n return !isReadonly;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly;\n } else if (key === \"__v_raw\") {\n return target;\n }\n return Reflect.get(\n hasOwn(instrumentations, key) && key in target ? instrumentations : target,\n key,\n receiver\n );\n };\n}\nconst mutableCollectionHandlers$1 = {\n get: /* @__PURE__ */ createInstrumentationGetter$1(false, false)\n};\nconst readonlyCollectionHandlers$1 = {\n get: /* @__PURE__ */ createInstrumentationGetter$1(true, false)\n};\nconst shallowReadonlyCollectionHandlers$1 = {\n get: /* @__PURE__ */ createInstrumentationGetter$1(true, true)\n};\nfunction checkIdentityKeys$1(target, has2, key) {\n const rawKey = toRaw$1(key);\n if (rawKey !== key && has2.call(target, rawKey)) {\n const type = toRawType(target);\n warn$4(\n `Reactive ${type} contains both the raw and reactive versions of the same object${type === `Map` ? ` as keys` : ``}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.`\n );\n }\n}\n\nconst reactiveMap$1 = /* @__PURE__ */ new WeakMap();\nconst shallowReactiveMap$1 = /* @__PURE__ */ new WeakMap();\nconst readonlyMap$1 = /* @__PURE__ */ new WeakMap();\nconst shallowReadonlyMap$1 = /* @__PURE__ */ new WeakMap();\nfunction targetTypeMap$1(rawType) {\n switch (rawType) {\n case \"Object\":\n case \"Array\":\n return 1 /* COMMON */;\n case \"Map\":\n case \"Set\":\n case \"WeakMap\":\n case \"WeakSet\":\n return 2 /* COLLECTION */;\n default:\n return 0 /* INVALID */;\n }\n}\nfunction getTargetType$1(value) {\n return value[\"__v_skip\"] || !Object.isExtensible(value) ? 0 /* INVALID */ : targetTypeMap$1(toRawType(value));\n}\nfunction reactive$1(target) {\n if (isReadonly$1(target)) {\n return target;\n }\n return createReactiveObject$1(\n target,\n false,\n mutableHandlers$1,\n mutableCollectionHandlers$1,\n reactiveMap$1\n );\n}\nfunction readonly$1(target) {\n return createReactiveObject$1(\n target,\n true,\n readonlyHandlers$1,\n readonlyCollectionHandlers$1,\n readonlyMap$1\n );\n}\nfunction shallowReadonly$1(target) {\n return createReactiveObject$1(\n target,\n true,\n shallowReadonlyHandlers$1,\n shallowReadonlyCollectionHandlers$1,\n shallowReadonlyMap$1\n );\n}\nfunction createReactiveObject$1(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) {\n if (!isObject(target)) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$4(`value cannot be made reactive: ${String(target)}`);\n }\n return target;\n }\n if (target[\"__v_raw\"] && !(isReadonly2 && target[\"__v_isReactive\"])) {\n return target;\n }\n const existingProxy = proxyMap.get(target);\n if (existingProxy) {\n return existingProxy;\n }\n const targetType = getTargetType$1(target);\n if (targetType === 0 /* INVALID */) {\n return target;\n }\n const proxy = new Proxy(\n target,\n targetType === 2 /* COLLECTION */ ? collectionHandlers : baseHandlers\n );\n proxyMap.set(target, proxy);\n return proxy;\n}\nfunction isReactive$1(value) {\n if (isReadonly$1(value)) {\n return isReactive$1(value[\"__v_raw\"]);\n }\n return !!(value && value[\"__v_isReactive\"]);\n}\nfunction isReadonly$1(value) {\n return !!(value && value[\"__v_isReadonly\"]);\n}\nfunction isShallow$1(value) {\n return !!(value && value[\"__v_isShallow\"]);\n}\nfunction isProxy$1(value) {\n return isReactive$1(value) || isReadonly$1(value);\n}\nfunction toRaw$1(observed) {\n const raw = observed && observed[\"__v_raw\"];\n return raw ? toRaw$1(raw) : observed;\n}\nfunction markRaw$1(value) {\n if (Object.isExtensible(value)) {\n def(value, \"__v_skip\", true);\n }\n return value;\n}\nconst toReactive$1 = (value) => isObject(value) ? reactive$1(value) : value;\nconst toReadonly$1 = (value) => isObject(value) ? readonly$1(value) : value;\nfunction isRef$1(r) {\n return !!(r && r.__v_isRef === true);\n}\nfunction unref$1(ref2) {\n return isRef$1(ref2) ? ref2.value : ref2;\n}\nconst shallowUnwrapHandlers$1 = {\n get: (target, key, receiver) => unref$1(Reflect.get(target, key, receiver)),\n set: (target, key, value, receiver) => {\n const oldValue = target[key];\n if (isRef$1(oldValue) && !isRef$1(value)) {\n oldValue.value = value;\n return true;\n } else {\n return Reflect.set(target, key, value, receiver);\n }\n }\n};\nfunction proxyRefs$1(objectWithRefs) {\n return isReactive$1(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers$1);\n}\n\n/**\n* @vue/runtime-core v3.4.21\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\n\nconst stack$1 = [];\nfunction pushWarningContext$1(vnode) {\n stack$1.push(vnode);\n}\nfunction popWarningContext$1() {\n stack$1.pop();\n}\nfunction warn$1$1(msg, ...args) {\n pauseTracking$1();\n const instance = stack$1.length ? stack$1[stack$1.length - 1].component : null;\n const appWarnHandler = instance && instance.appContext.config.warnHandler;\n const trace = getComponentTrace$1();\n if (appWarnHandler) {\n callWithErrorHandling$1(\n appWarnHandler,\n instance,\n 11,\n [\n msg + args.map((a) => {\n var _a, _b;\n return (_b = (_a = a.toString) == null ? void 0 : _a.call(a)) != null ? _b : JSON.stringify(a);\n }).join(\"\"),\n instance && instance.proxy,\n trace.map(\n ({ vnode }) => `at <${formatComponentName$1(instance, vnode.type)}>`\n ).join(\"\\n\"),\n trace\n ]\n );\n } else {\n const warnArgs = [`[Vue warn]: ${msg}`, ...args];\n if (trace.length && // avoid spamming console during tests\n true) {\n warnArgs.push(`\n`, ...formatTrace$1(trace));\n }\n console.warn(...warnArgs);\n }\n resetTracking$1();\n}\nfunction getComponentTrace$1() {\n let currentVNode = stack$1[stack$1.length - 1];\n if (!currentVNode) {\n return [];\n }\n const normalizedStack = [];\n while (currentVNode) {\n const last = normalizedStack[0];\n if (last && last.vnode === currentVNode) {\n last.recurseCount++;\n } else {\n normalizedStack.push({\n vnode: currentVNode,\n recurseCount: 0\n });\n }\n const parentInstance = currentVNode.component && currentVNode.component.parent;\n currentVNode = parentInstance && parentInstance.vnode;\n }\n return normalizedStack;\n}\nfunction formatTrace$1(trace) {\n const logs = [];\n trace.forEach((entry, i) => {\n logs.push(...i === 0 ? [] : [`\n`], ...formatTraceEntry$1(entry));\n });\n return logs;\n}\nfunction formatTraceEntry$1({ vnode, recurseCount }) {\n const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``;\n const isRoot = vnode.component ? vnode.component.parent == null : false;\n const open = ` at <${formatComponentName$1(\n vnode.component,\n vnode.type,\n isRoot\n )}`;\n const close = `>` + postfix;\n return vnode.props ? [open, ...formatProps$1(vnode.props), close] : [open + close];\n}\nfunction formatProps$1(props) {\n const res = [];\n const keys = Object.keys(props);\n keys.slice(0, 3).forEach((key) => {\n res.push(...formatProp$1(key, props[key]));\n });\n if (keys.length > 3) {\n res.push(` ...`);\n }\n return res;\n}\nfunction formatProp$1(key, value, raw) {\n if (isString(value)) {\n value = JSON.stringify(value);\n return raw ? value : [`${key}=${value}`];\n } else if (typeof value === \"number\" || typeof value === \"boolean\" || value == null) {\n return raw ? value : [`${key}=${value}`];\n } else if (isRef$1(value)) {\n value = formatProp$1(key, toRaw$1(value.value), true);\n return raw ? value : [`${key}=Ref<`, value, `>`];\n } else if (isFunction(value)) {\n return [`${key}=fn${value.name ? `<${value.name}>` : ``}`];\n } else {\n value = toRaw$1(value);\n return raw ? value : [`${key}=`, value];\n }\n}\nconst ErrorTypeStrings$1 = {\n [\"sp\"]: \"serverPrefetch hook\",\n [\"bc\"]: \"beforeCreate hook\",\n [\"c\"]: \"created hook\",\n [\"bm\"]: \"beforeMount hook\",\n [\"m\"]: \"mounted hook\",\n [\"bu\"]: \"beforeUpdate hook\",\n [\"u\"]: \"updated\",\n [\"bum\"]: \"beforeUnmount hook\",\n [\"um\"]: \"unmounted hook\",\n [\"a\"]: \"activated hook\",\n [\"da\"]: \"deactivated hook\",\n [\"ec\"]: \"errorCaptured hook\",\n [\"rtc\"]: \"renderTracked hook\",\n [\"rtg\"]: \"renderTriggered hook\",\n [0]: \"setup function\",\n [1]: \"render function\",\n [2]: \"watcher getter\",\n [3]: \"watcher callback\",\n [4]: \"watcher cleanup function\",\n [5]: \"native event handler\",\n [6]: \"component event handler\",\n [7]: \"vnode hook\",\n [8]: \"directive hook\",\n [9]: \"transition hook\",\n [10]: \"app errorHandler\",\n [11]: \"app warnHandler\",\n [12]: \"ref function\",\n [13]: \"async component loader\",\n [14]: \"scheduler flush. This is likely a Vue internals bug. Please open an issue at https://github.com/vuejs/core .\"\n};\nfunction callWithErrorHandling$1(fn, instance, type, args) {\n try {\n return args ? fn(...args) : fn();\n } catch (err) {\n handleError$1(err, instance, type);\n }\n}\nfunction callWithAsyncErrorHandling$1(fn, instance, type, args) {\n if (isFunction(fn)) {\n const res = callWithErrorHandling$1(fn, instance, type, args);\n if (res && isPromise(res)) {\n res.catch((err) => {\n handleError$1(err, instance, type);\n });\n }\n return res;\n }\n const values = [];\n for (let i = 0; i < fn.length; i++) {\n values.push(callWithAsyncErrorHandling$1(fn[i], instance, type, args));\n }\n return values;\n}\nfunction handleError$1(err, instance, type, throwInDev = true) {\n const contextVNode = instance ? instance.vnode : null;\n if (instance) {\n let cur = instance.parent;\n const exposedInstance = instance.proxy;\n const errorInfo = !!(process.env.NODE_ENV !== \"production\") ? ErrorTypeStrings$1[type] : `https://vuejs.org/error-reference/#runtime-${type}`;\n while (cur) {\n const errorCapturedHooks = cur.ec;\n if (errorCapturedHooks) {\n for (let i = 0; i < errorCapturedHooks.length; i++) {\n if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) {\n return;\n }\n }\n }\n cur = cur.parent;\n }\n const appErrorHandler = instance.appContext.config.errorHandler;\n if (appErrorHandler) {\n callWithErrorHandling$1(\n appErrorHandler,\n null,\n 10,\n [err, exposedInstance, errorInfo]\n );\n return;\n }\n }\n logError$1(err, type, contextVNode, throwInDev);\n}\nfunction logError$1(err, type, contextVNode, throwInDev = true) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const info = ErrorTypeStrings$1[type];\n if (contextVNode) {\n pushWarningContext$1(contextVNode);\n }\n warn$1$1(`Unhandled error${info ? ` during execution of ${info}` : ``}`);\n if (contextVNode) {\n popWarningContext$1();\n }\n if (throwInDev) {\n throw err;\n } else {\n console.error(err);\n }\n } else {\n console.error(err);\n }\n}\n\nlet isFlushing$1 = false;\nlet isFlushPending$1 = false;\nconst queue$1 = [];\nlet flushIndex$1 = 0;\nconst pendingPostFlushCbs$1 = [];\nlet activePostFlushCbs$1 = null;\nlet postFlushIndex$1 = 0;\nconst resolvedPromise$1 = /* @__PURE__ */ Promise.resolve();\nlet currentFlushPromise$1 = null;\nconst RECURSION_LIMIT$1 = 100;\nfunction nextTick$2(fn) {\n const p = currentFlushPromise$1 || resolvedPromise$1;\n return fn ? p.then(this ? fn.bind(this) : fn) : p;\n}\nfunction findInsertionIndex$1(id) {\n let start = flushIndex$1 + 1;\n let end = queue$1.length;\n while (start < end) {\n const middle = start + end >>> 1;\n const middleJob = queue$1[middle];\n const middleJobId = getId$1(middleJob);\n if (middleJobId < id || middleJobId === id && middleJob.pre) {\n start = middle + 1;\n } else {\n end = middle;\n }\n }\n return start;\n}\nfunction queueJob$1(job) {\n if (!queue$1.length || !queue$1.includes(\n job,\n isFlushing$1 && job.allowRecurse ? flushIndex$1 + 1 : flushIndex$1\n )) {\n if (job.id == null) {\n queue$1.push(job);\n } else {\n queue$1.splice(findInsertionIndex$1(job.id), 0, job);\n }\n queueFlush$1();\n }\n}\nfunction queueFlush$1() {\n if (!isFlushing$1 && !isFlushPending$1) {\n isFlushPending$1 = true;\n currentFlushPromise$1 = resolvedPromise$1.then(flushJobs$1);\n }\n}\nfunction queuePostFlushCb$1(cb) {\n if (!isArray(cb)) {\n if (!activePostFlushCbs$1 || !activePostFlushCbs$1.includes(\n cb,\n cb.allowRecurse ? postFlushIndex$1 + 1 : postFlushIndex$1\n )) {\n pendingPostFlushCbs$1.push(cb);\n }\n } else {\n pendingPostFlushCbs$1.push(...cb);\n }\n queueFlush$1();\n}\nfunction flushPostFlushCbs$1(seen) {\n if (pendingPostFlushCbs$1.length) {\n const deduped = [...new Set(pendingPostFlushCbs$1)].sort(\n (a, b) => getId$1(a) - getId$1(b)\n );\n pendingPostFlushCbs$1.length = 0;\n if (activePostFlushCbs$1) {\n activePostFlushCbs$1.push(...deduped);\n return;\n }\n activePostFlushCbs$1 = deduped;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n for (postFlushIndex$1 = 0; postFlushIndex$1 < activePostFlushCbs$1.length; postFlushIndex$1++) {\n if (!!(process.env.NODE_ENV !== \"production\") && checkRecursiveUpdates$1(seen, activePostFlushCbs$1[postFlushIndex$1])) {\n continue;\n }\n activePostFlushCbs$1[postFlushIndex$1]();\n }\n activePostFlushCbs$1 = null;\n postFlushIndex$1 = 0;\n }\n}\nconst getId$1 = (job) => job.id == null ? Infinity : job.id;\nconst comparator$1 = (a, b) => {\n const diff = getId$1(a) - getId$1(b);\n if (diff === 0) {\n if (a.pre && !b.pre)\n return -1;\n if (b.pre && !a.pre)\n return 1;\n }\n return diff;\n};\nfunction flushJobs$1(seen) {\n isFlushPending$1 = false;\n isFlushing$1 = true;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n queue$1.sort(comparator$1);\n const check = !!(process.env.NODE_ENV !== \"production\") ? (job) => checkRecursiveUpdates$1(seen, job) : NOOP;\n try {\n for (flushIndex$1 = 0; flushIndex$1 < queue$1.length; flushIndex$1++) {\n const job = queue$1[flushIndex$1];\n if (job && job.active !== false) {\n if (!!(process.env.NODE_ENV !== \"production\") && check(job)) {\n continue;\n }\n callWithErrorHandling$1(job, null, 14);\n }\n }\n } finally {\n flushIndex$1 = 0;\n queue$1.length = 0;\n flushPostFlushCbs$1(seen);\n isFlushing$1 = false;\n currentFlushPromise$1 = null;\n if (queue$1.length || pendingPostFlushCbs$1.length) {\n flushJobs$1(seen);\n }\n }\n}\nfunction checkRecursiveUpdates$1(seen, fn) {\n if (!seen.has(fn)) {\n seen.set(fn, 1);\n } else {\n const count = seen.get(fn);\n if (count > RECURSION_LIMIT$1) {\n const instance = fn.ownerInstance;\n const componentName = instance && getComponentName$1(instance.type);\n handleError$1(\n `Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`,\n null,\n 10\n );\n return true;\n } else {\n seen.set(fn, count + 1);\n }\n }\n}\nconst hmrDirtyComponents = /* @__PURE__ */ new Set();\nif (!!(process.env.NODE_ENV !== \"production\")) {\n getGlobalThis().__VUE_HMR_RUNTIME__ = {\n createRecord: tryWrap(createRecord),\n rerender: tryWrap(rerender),\n reload: tryWrap(reload)\n };\n}\nconst map = /* @__PURE__ */ new Map();\nfunction createRecord(id, initialDef) {\n if (map.has(id)) {\n return false;\n }\n map.set(id, {\n initialDef: normalizeClassComponent(initialDef),\n instances: /* @__PURE__ */ new Set()\n });\n return true;\n}\nfunction normalizeClassComponent(component) {\n return isClassComponent$1(component) ? component.__vccOpts : component;\n}\nfunction rerender(id, newRender) {\n const record = map.get(id);\n if (!record) {\n return;\n }\n record.initialDef.render = newRender;\n [...record.instances].forEach((instance) => {\n if (newRender) {\n instance.render = newRender;\n normalizeClassComponent(instance.type).render = newRender;\n }\n instance.renderCache = [];\n instance.effect.dirty = true;\n instance.update();\n });\n}\nfunction reload(id, newComp) {\n const record = map.get(id);\n if (!record)\n return;\n newComp = normalizeClassComponent(newComp);\n updateComponentDef(record.initialDef, newComp);\n const instances = [...record.instances];\n for (const instance of instances) {\n const oldComp = normalizeClassComponent(instance.type);\n if (!hmrDirtyComponents.has(oldComp)) {\n if (oldComp !== record.initialDef) {\n updateComponentDef(oldComp, newComp);\n }\n hmrDirtyComponents.add(oldComp);\n }\n instance.appContext.propsCache.delete(instance.type);\n instance.appContext.emitsCache.delete(instance.type);\n instance.appContext.optionsCache.delete(instance.type);\n if (instance.ceReload) {\n hmrDirtyComponents.add(oldComp);\n instance.ceReload(newComp.styles);\n hmrDirtyComponents.delete(oldComp);\n } else if (instance.parent) {\n instance.parent.effect.dirty = true;\n queueJob$1(instance.parent.update);\n } else if (instance.appContext.reload) {\n instance.appContext.reload();\n } else if (typeof window !== \"undefined\") {\n window.location.reload();\n } else {\n console.warn(\n \"[HMR] Root or manually mounted instance modified. Full reload required.\"\n );\n }\n }\n queuePostFlushCb$1(() => {\n for (const instance of instances) {\n hmrDirtyComponents.delete(\n normalizeClassComponent(instance.type)\n );\n }\n });\n}\nfunction updateComponentDef(oldComp, newComp) {\n extend(oldComp, newComp);\n for (const key in oldComp) {\n if (key !== \"__file\" && !(key in newComp)) {\n delete oldComp[key];\n }\n }\n}\nfunction tryWrap(fn) {\n return (id, arg) => {\n try {\n return fn(id, arg);\n } catch (e) {\n console.error(e);\n console.warn(\n `[HMR] Something went wrong during Vue component hot-reload. Full reload required.`\n );\n }\n };\n}\n\nlet devtools$1;\nlet buffer$1 = [];\nfunction setDevtoolsHook$1(hook, target) {\n var _a, _b;\n devtools$1 = hook;\n if (devtools$1) {\n devtools$1.enabled = true;\n buffer$1.forEach(({ event, args }) => devtools$1.emit(event, ...args));\n buffer$1 = [];\n } else if (\n // handle late devtools injection - only do this if we are in an actual\n // browser environment to avoid the timer handle stalling test runner exit\n // (#4815)\n typeof window !== \"undefined\" && // some envs mock window but not fully\n window.HTMLElement && // also exclude jsdom\n !((_b = (_a = window.navigator) == null ? void 0 : _a.userAgent) == null ? void 0 : _b.includes(\"jsdom\"))\n ) {\n const replay = target.__VUE_DEVTOOLS_HOOK_REPLAY__ = target.__VUE_DEVTOOLS_HOOK_REPLAY__ || [];\n replay.push((newHook) => {\n setDevtoolsHook$1(newHook, target);\n });\n setTimeout(() => {\n if (!devtools$1) {\n target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null;\n buffer$1 = [];\n }\n }, 3e3);\n } else {\n buffer$1 = [];\n }\n}\n\nlet currentRenderingInstance$1 = null;\nlet currentScopeId$1 = null;\nfunction markAttrsAccessed$1() {\n}\nconst NULL_DYNAMIC_COMPONENT$1 = Symbol.for(\"v-ndc\");\n\nconst isSuspense = (type) => type.__isSuspense;\nfunction queueEffectWithSuspense(fn, suspense) {\n if (suspense && suspense.pendingBranch) {\n if (isArray(fn)) {\n suspense.effects.push(...fn);\n } else {\n suspense.effects.push(fn);\n }\n } else {\n queuePostFlushCb$1(fn);\n }\n}\n\nconst ssrContextKey$1 = Symbol.for(\"v-scx\");\nconst useSSRContext$1 = () => {\n {\n const ctx = inject$1(ssrContextKey$1);\n if (!ctx) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1$1(\n `Server rendering context not provided. Make sure to only call useSSRContext() conditionally in the server build.`\n );\n }\n return ctx;\n }\n};\nconst INITIAL_WATCHER_VALUE$1 = {};\nfunction doWatch$1(source, cb, {\n immediate,\n deep,\n flush,\n once,\n onTrack,\n onTrigger\n} = EMPTY_OBJ) {\n if (cb && once) {\n const _cb = cb;\n cb = (...args) => {\n _cb(...args);\n unwatch();\n };\n }\n if (!!(process.env.NODE_ENV !== \"production\") && deep !== void 0 && typeof deep === \"number\") {\n warn$1$1(\n `watch() \"deep\" option with number value will be used as watch depth in future versions. Please use a boolean instead to avoid potential breakage.`\n );\n }\n if (!!(process.env.NODE_ENV !== \"production\") && !cb) {\n if (immediate !== void 0) {\n warn$1$1(\n `watch() \"immediate\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n if (deep !== void 0) {\n warn$1$1(\n `watch() \"deep\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n if (once !== void 0) {\n warn$1$1(\n `watch() \"once\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n }\n const warnInvalidSource = (s) => {\n warn$1$1(\n `Invalid watch source: `,\n s,\n `A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.`\n );\n };\n const instance = currentInstance$1;\n const reactiveGetter = (source2) => deep === true ? source2 : (\n // for deep: false, only traverse root-level properties\n traverse$1(source2, deep === false ? 1 : void 0)\n );\n let getter;\n let forceTrigger = false;\n let isMultiSource = false;\n if (isRef$1(source)) {\n getter = () => source.value;\n forceTrigger = isShallow$1(source);\n } else if (isReactive$1(source)) {\n getter = () => reactiveGetter(source);\n forceTrigger = true;\n } else if (isArray(source)) {\n isMultiSource = true;\n forceTrigger = source.some((s) => isReactive$1(s) || isShallow$1(s));\n getter = () => source.map((s) => {\n if (isRef$1(s)) {\n return s.value;\n } else if (isReactive$1(s)) {\n return reactiveGetter(s);\n } else if (isFunction(s)) {\n return callWithErrorHandling$1(s, instance, 2);\n } else {\n !!(process.env.NODE_ENV !== \"production\") && warnInvalidSource(s);\n }\n });\n } else if (isFunction(source)) {\n if (cb) {\n getter = () => callWithErrorHandling$1(source, instance, 2);\n } else {\n getter = () => {\n if (cleanup) {\n cleanup();\n }\n return callWithAsyncErrorHandling$1(\n source,\n instance,\n 3,\n [onCleanup]\n );\n };\n }\n } else {\n getter = NOOP;\n !!(process.env.NODE_ENV !== \"production\") && warnInvalidSource(source);\n }\n if (cb && deep) {\n const baseGetter = getter;\n getter = () => traverse$1(baseGetter());\n }\n let cleanup;\n let onCleanup = (fn) => {\n cleanup = effect.onStop = () => {\n callWithErrorHandling$1(fn, instance, 4);\n cleanup = effect.onStop = void 0;\n };\n };\n let ssrCleanup;\n if (isInSSRComponentSetup$1) {\n onCleanup = NOOP;\n if (!cb) {\n getter();\n } else if (immediate) {\n callWithAsyncErrorHandling$1(cb, instance, 3, [\n getter(),\n isMultiSource ? [] : void 0,\n onCleanup\n ]);\n }\n if (flush === \"sync\") {\n const ctx = useSSRContext$1();\n ssrCleanup = ctx.__watcherHandles || (ctx.__watcherHandles = []);\n } else {\n return NOOP;\n }\n }\n let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE$1) : INITIAL_WATCHER_VALUE$1;\n const job = () => {\n if (!effect.active || !effect.dirty) {\n return;\n }\n if (cb) {\n const newValue = effect.run();\n if (deep || forceTrigger || (isMultiSource ? newValue.some((v, i) => hasChanged(v, oldValue[i])) : hasChanged(newValue, oldValue)) || false) {\n if (cleanup) {\n cleanup();\n }\n callWithAsyncErrorHandling$1(cb, instance, 3, [\n newValue,\n // pass undefined as the old value when it's changed for the first time\n oldValue === INITIAL_WATCHER_VALUE$1 ? void 0 : isMultiSource && oldValue[0] === INITIAL_WATCHER_VALUE$1 ? [] : oldValue,\n onCleanup\n ]);\n oldValue = newValue;\n }\n } else {\n effect.run();\n }\n };\n job.allowRecurse = !!cb;\n let scheduler;\n if (flush === \"sync\") {\n scheduler = job;\n } else if (flush === \"post\") {\n scheduler = () => queuePostRenderEffect$2(job, instance && instance.suspense);\n } else {\n job.pre = true;\n if (instance)\n job.id = instance.uid;\n scheduler = () => queueJob$1(job);\n }\n const effect = new ReactiveEffect$1(getter, NOOP, scheduler);\n const unwatch = () => {\n effect.stop();\n };\n if (!!(process.env.NODE_ENV !== \"production\")) {\n effect.onTrack = onTrack;\n effect.onTrigger = onTrigger;\n }\n if (cb) {\n if (immediate) {\n job();\n } else {\n oldValue = effect.run();\n }\n } else if (flush === \"post\") {\n queuePostRenderEffect$2(\n effect.run.bind(effect),\n instance && instance.suspense\n );\n } else {\n effect.run();\n }\n if (ssrCleanup)\n ssrCleanup.push(unwatch);\n return unwatch;\n}\nfunction instanceWatch$1(source, value, options) {\n const publicThis = this.proxy;\n const getter = isString(source) ? source.includes(\".\") ? createPathGetter$1(publicThis, source) : () => publicThis[source] : source.bind(publicThis, publicThis);\n let cb;\n if (isFunction(value)) {\n cb = value;\n } else {\n cb = value.handler;\n options = value;\n }\n const reset = setCurrentInstance$1(this);\n const res = doWatch$1(getter, cb.bind(publicThis), options);\n reset();\n return res;\n}\nfunction createPathGetter$1(ctx, path) {\n const segments = path.split(\".\");\n return () => {\n let cur = ctx;\n for (let i = 0; i < segments.length && cur; i++) {\n cur = cur[segments[i]];\n }\n return cur;\n };\n}\nfunction traverse$1(value, depth, currentDepth = 0, seen) {\n if (!isObject(value) || value[\"__v_skip\"]) {\n return value;\n }\n if (depth && depth > 0) {\n if (currentDepth >= depth) {\n return value;\n }\n currentDepth++;\n }\n seen = seen || /* @__PURE__ */ new Set();\n if (seen.has(value)) {\n return value;\n }\n seen.add(value);\n if (isRef$1(value)) {\n traverse$1(value.value, depth, currentDepth, seen);\n } else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n traverse$1(value[i], depth, currentDepth, seen);\n }\n } else if (isSet(value) || isMap(value)) {\n value.forEach((v) => {\n traverse$1(v, depth, currentDepth, seen);\n });\n } else if (isPlainObject(value)) {\n for (const key in value) {\n traverse$1(value[key], depth, currentDepth, seen);\n }\n }\n return value;\n}\n\nconst getPublicInstance$1 = (i) => {\n if (!i)\n return null;\n if (isStatefulComponent$1(i))\n return getExposeProxy$1(i) || i.proxy;\n return getPublicInstance$1(i.parent);\n};\nconst publicPropertiesMap$1 = (\n // Move PURE marker to new line to workaround compiler discarding it\n // due to type annotation\n /* @__PURE__ */ extend(/* @__PURE__ */ Object.create(null), {\n $: (i) => i,\n $el: (i) => i.vnode.el,\n $data: (i) => i.data,\n $props: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly$1(i.props) : i.props,\n $attrs: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly$1(i.attrs) : i.attrs,\n $slots: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly$1(i.slots) : i.slots,\n $refs: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly$1(i.refs) : i.refs,\n $parent: (i) => getPublicInstance$1(i.parent),\n $root: (i) => getPublicInstance$1(i.root),\n $emit: (i) => i.emit,\n $options: (i) => __VUE_OPTIONS_API__ ? resolveMergedOptions$1(i) : i.type,\n $forceUpdate: (i) => i.f || (i.f = () => {\n i.effect.dirty = true;\n queueJob$1(i.update);\n }),\n $nextTick: (i) => i.n || (i.n = nextTick$2.bind(i.proxy)),\n $watch: (i) => __VUE_OPTIONS_API__ ? instanceWatch$1.bind(i) : NOOP\n })\n);\nconst isReservedPrefix$1 = (key) => key === \"_\" || key === \"$\";\nconst hasSetupBinding$1 = (state, key) => state !== EMPTY_OBJ && !state.__isScriptSetup && hasOwn(state, key);\nconst PublicInstanceProxyHandlers$1 = {\n get({ _: instance }, key) {\n const { ctx, setupState, data, props, accessCache, type, appContext } = instance;\n if (!!(process.env.NODE_ENV !== \"production\") && key === \"__isVue\") {\n return true;\n }\n let normalizedProps;\n if (key[0] !== \"$\") {\n const n = accessCache[key];\n if (n !== void 0) {\n switch (n) {\n case 1 /* SETUP */:\n return setupState[key];\n case 2 /* DATA */:\n return data[key];\n case 4 /* CONTEXT */:\n return ctx[key];\n case 3 /* PROPS */:\n return props[key];\n }\n } else if (hasSetupBinding$1(setupState, key)) {\n accessCache[key] = 1 /* SETUP */;\n return setupState[key];\n } else if (data !== EMPTY_OBJ && hasOwn(data, key)) {\n accessCache[key] = 2 /* DATA */;\n return data[key];\n } else if (\n // only cache other properties when instance has declared (thus stable)\n // props\n (normalizedProps = instance.propsOptions[0]) && hasOwn(normalizedProps, key)\n ) {\n accessCache[key] = 3 /* PROPS */;\n return props[key];\n } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4 /* CONTEXT */;\n return ctx[key];\n } else if (!__VUE_OPTIONS_API__ || shouldCacheAccess$1) {\n accessCache[key] = 0 /* OTHER */;\n }\n }\n const publicGetter = publicPropertiesMap$1[key];\n let cssModule, globalProperties;\n if (publicGetter) {\n if (key === \"$attrs\") {\n track$1(instance, \"get\", key);\n !!(process.env.NODE_ENV !== \"production\") && markAttrsAccessed$1();\n } else if (!!(process.env.NODE_ENV !== \"production\") && key === \"$slots\") {\n track$1(instance, \"get\", key);\n }\n return publicGetter(instance);\n } else if (\n // css module (injected by vue-loader)\n (cssModule = type.__cssModules) && (cssModule = cssModule[key])\n ) {\n return cssModule;\n } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4 /* CONTEXT */;\n return ctx[key];\n } else if (\n // global properties\n globalProperties = appContext.config.globalProperties, hasOwn(globalProperties, key)\n ) {\n {\n return globalProperties[key];\n }\n } else if (!!(process.env.NODE_ENV !== \"production\") && currentRenderingInstance$1 && (!isString(key) || // #1091 avoid internal isRef/isVNode checks on component instance leading\n // to infinite warning loop\n key.indexOf(\"__v\") !== 0)) {\n if (data !== EMPTY_OBJ && isReservedPrefix$1(key[0]) && hasOwn(data, key)) {\n warn$1$1(\n `Property ${JSON.stringify(\n key\n )} must be accessed via $data because it starts with a reserved character (\"$\" or \"_\") and is not proxied on the render context.`\n );\n } else if (instance === currentRenderingInstance$1) {\n warn$1$1(\n `Property ${JSON.stringify(key)} was accessed during render but is not defined on instance.`\n );\n }\n }\n },\n set({ _: instance }, key, value) {\n const { data, setupState, ctx } = instance;\n if (hasSetupBinding$1(setupState, key)) {\n setupState[key] = value;\n return true;\n } else if (!!(process.env.NODE_ENV !== \"production\") && setupState.__isScriptSetup && hasOwn(setupState, key)) {\n warn$1$1(`Cannot mutate <script setup> binding \"${key}\" from Options API.`);\n return false;\n } else if (data !== EMPTY_OBJ && hasOwn(data, key)) {\n data[key] = value;\n return true;\n } else if (hasOwn(instance.props, key)) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1$1(`Attempting to mutate prop \"${key}\". Props are readonly.`);\n return false;\n }\n if (key[0] === \"$\" && key.slice(1) in instance) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1$1(\n `Attempting to mutate public property \"${key}\". Properties starting with $ are reserved and readonly.`\n );\n return false;\n } else {\n if (!!(process.env.NODE_ENV !== \"production\") && key in instance.appContext.config.globalProperties) {\n Object.defineProperty(ctx, key, {\n enumerable: true,\n configurable: true,\n value\n });\n } else {\n ctx[key] = value;\n }\n }\n return true;\n },\n has({\n _: { data, setupState, accessCache, ctx, appContext, propsOptions }\n }, key) {\n let normalizedProps;\n return !!accessCache[key] || data !== EMPTY_OBJ && hasOwn(data, key) || hasSetupBinding$1(setupState, key) || (normalizedProps = propsOptions[0]) && hasOwn(normalizedProps, key) || hasOwn(ctx, key) || hasOwn(publicPropertiesMap$1, key) || hasOwn(appContext.config.globalProperties, key);\n },\n defineProperty(target, key, descriptor) {\n if (descriptor.get != null) {\n target._.accessCache[key] = 0;\n } else if (hasOwn(descriptor, \"value\")) {\n this.set(target, key, descriptor.value, null);\n }\n return Reflect.defineProperty(target, key, descriptor);\n }\n};\nif (!!(process.env.NODE_ENV !== \"production\") && true) {\n PublicInstanceProxyHandlers$1.ownKeys = (target) => {\n warn$1$1(\n `Avoid app logic that relies on enumerating keys on a component instance. The keys will be empty in production mode to avoid performance overhead.`\n );\n return Reflect.ownKeys(target);\n };\n}\nfunction normalizePropsOrEmits$1(props) {\n return isArray(props) ? props.reduce(\n (normalized, p) => (normalized[p] = null, normalized),\n {}\n ) : props;\n}\nlet shouldCacheAccess$1 = true;\nfunction resolveMergedOptions$1(instance) {\n const base = instance.type;\n const { mixins, extends: extendsOptions } = base;\n const {\n mixins: globalMixins,\n optionsCache: cache,\n config: { optionMergeStrategies }\n } = instance.appContext;\n const cached = cache.get(base);\n let resolved;\n if (cached) {\n resolved = cached;\n } else if (!globalMixins.length && !mixins && !extendsOptions) {\n {\n resolved = base;\n }\n } else {\n resolved = {};\n if (globalMixins.length) {\n globalMixins.forEach(\n (m) => mergeOptions$1(resolved, m, optionMergeStrategies, true)\n );\n }\n mergeOptions$1(resolved, base, optionMergeStrategies);\n }\n if (isObject(base)) {\n cache.set(base, resolved);\n }\n return resolved;\n}\nfunction mergeOptions$1(to, from, strats, asMixin = false) {\n const { mixins, extends: extendsOptions } = from;\n if (extendsOptions) {\n mergeOptions$1(to, extendsOptions, strats, true);\n }\n if (mixins) {\n mixins.forEach(\n (m) => mergeOptions$1(to, m, strats, true)\n );\n }\n for (const key in from) {\n if (asMixin && key === \"expose\") {\n !!(process.env.NODE_ENV !== \"production\") && warn$1$1(\n `\"expose\" option is ignored when declared in mixins or extends. It should only be declared in the base component itself.`\n );\n } else {\n const strat = internalOptionMergeStrats$1[key] || strats && strats[key];\n to[key] = strat ? strat(to[key], from[key]) : from[key];\n }\n }\n return to;\n}\nconst internalOptionMergeStrats$1 = {\n data: mergeDataFn$1,\n props: mergeEmitsOrPropsOptions$1,\n emits: mergeEmitsOrPropsOptions$1,\n // objects\n methods: mergeObjectOptions$1,\n computed: mergeObjectOptions$1,\n // lifecycle\n beforeCreate: mergeAsArray$2,\n created: mergeAsArray$2,\n beforeMount: mergeAsArray$2,\n mounted: mergeAsArray$2,\n beforeUpdate: mergeAsArray$2,\n updated: mergeAsArray$2,\n beforeDestroy: mergeAsArray$2,\n beforeUnmount: mergeAsArray$2,\n destroyed: mergeAsArray$2,\n unmounted: mergeAsArray$2,\n activated: mergeAsArray$2,\n deactivated: mergeAsArray$2,\n errorCaptured: mergeAsArray$2,\n serverPrefetch: mergeAsArray$2,\n // assets\n components: mergeObjectOptions$1,\n directives: mergeObjectOptions$1,\n // watch\n watch: mergeWatchOptions$1,\n // provide / inject\n provide: mergeDataFn$1,\n inject: mergeInject$1\n};\nfunction mergeDataFn$1(to, from) {\n if (!from) {\n return to;\n }\n if (!to) {\n return from;\n }\n return function mergedDataFn() {\n return (extend)(\n isFunction(to) ? to.call(this, this) : to,\n isFunction(from) ? from.call(this, this) : from\n );\n };\n}\nfunction mergeInject$1(to, from) {\n return mergeObjectOptions$1(normalizeInject$1(to), normalizeInject$1(from));\n}\nfunction normalizeInject$1(raw) {\n if (isArray(raw)) {\n const res = {};\n for (let i = 0; i < raw.length; i++) {\n res[raw[i]] = raw[i];\n }\n return res;\n }\n return raw;\n}\nfunction mergeAsArray$2(to, from) {\n return to ? [...new Set([].concat(to, from))] : from;\n}\nfunction mergeObjectOptions$1(to, from) {\n return to ? extend(/* @__PURE__ */ Object.create(null), to, from) : from;\n}\nfunction mergeEmitsOrPropsOptions$1(to, from) {\n if (to) {\n if (isArray(to) && isArray(from)) {\n return [.../* @__PURE__ */ new Set([...to, ...from])];\n }\n return extend(\n /* @__PURE__ */ Object.create(null),\n normalizePropsOrEmits$1(to),\n normalizePropsOrEmits$1(from != null ? from : {})\n );\n } else {\n return from;\n }\n}\nfunction mergeWatchOptions$1(to, from) {\n if (!to)\n return from;\n if (!from)\n return to;\n const merged = extend(/* @__PURE__ */ Object.create(null), to);\n for (const key in from) {\n merged[key] = mergeAsArray$2(to[key], from[key]);\n }\n return merged;\n}\nlet currentApp$1 = null;\nfunction inject$1(key, defaultValue, treatDefaultAsFactory = false) {\n const instance = currentInstance$1 || currentRenderingInstance$1;\n if (instance || currentApp$1) {\n const provides = instance ? instance.parent == null ? instance.vnode.appContext && instance.vnode.appContext.provides : instance.parent.provides : currentApp$1._context.provides;\n if (provides && key in provides) {\n return provides[key];\n } else if (arguments.length > 1) {\n return treatDefaultAsFactory && isFunction(defaultValue) ? defaultValue.call(instance && instance.proxy) : defaultValue;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1$1(`injection \"${String(key)}\" not found.`);\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1$1(`inject() can only be used inside setup() or functional components.`);\n }\n}\n\nconst queuePostRenderEffect$2 = queueEffectWithSuspense ;\n\nconst isTeleport$1 = (type) => type.__isTeleport;\n\nconst Fragment$1 = Symbol.for(\"v-fgt\");\nconst Text$1 = Symbol.for(\"v-txt\");\nconst Comment$1 = Symbol.for(\"v-cmt\");\nlet currentBlock$1 = null;\nfunction isVNode$1(value) {\n return value ? value.__v_isVNode === true : false;\n}\nconst createVNodeWithArgsTransform$1 = (...args) => {\n return _createVNode$1(\n ...args\n );\n};\nconst InternalObjectKey$1 = `__vInternal`;\nconst normalizeKey$1 = ({ key }) => key != null ? key : null;\nconst normalizeRef$1 = ({\n ref,\n ref_key,\n ref_for\n}) => {\n if (typeof ref === \"number\") {\n ref = \"\" + ref;\n }\n return ref != null ? isString(ref) || isRef$1(ref) || isFunction(ref) ? { i: currentRenderingInstance$1, r: ref, k: ref_key, f: !!ref_for } : ref : null;\n};\nfunction createBaseVNode$1(type, props = null, children = null, patchFlag = 0, dynamicProps = null, shapeFlag = type === Fragment$1 ? 0 : 1, isBlockNode = false, needFullChildrenNormalization = false) {\n const vnode = {\n __v_isVNode: true,\n __v_skip: true,\n type,\n props,\n key: props && normalizeKey$1(props),\n ref: props && normalizeRef$1(props),\n scopeId: currentScopeId$1,\n slotScopeIds: null,\n children,\n component: null,\n suspense: null,\n ssContent: null,\n ssFallback: null,\n dirs: null,\n transition: null,\n el: null,\n anchor: null,\n target: null,\n targetAnchor: null,\n staticCount: 0,\n shapeFlag,\n patchFlag,\n dynamicProps,\n dynamicChildren: null,\n appContext: null,\n ctx: currentRenderingInstance$1\n };\n if (needFullChildrenNormalization) {\n normalizeChildren$1(vnode, children);\n if (shapeFlag & 128) {\n type.normalize(vnode);\n }\n } else if (children) {\n vnode.shapeFlag |= isString(children) ? 8 : 16;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && vnode.key !== vnode.key) {\n warn$1$1(`VNode created with invalid key (NaN). VNode type:`, vnode.type);\n }\n if (// avoid a block node from tracking itself\n !isBlockNode && // has current parent block\n currentBlock$1 && // presence of a patch flag indicates this node needs patching on updates.\n // component nodes also should always be patched, because even if the\n // component doesn't need to update, it needs to persist the instance on to\n // the next vnode so that it can be properly unmounted later.\n (vnode.patchFlag > 0 || shapeFlag & 6) && // the EVENTS flag is only for hydration and if it is the only flag, the\n // vnode should not be considered dynamic due to handler caching.\n vnode.patchFlag !== 32) {\n currentBlock$1.push(vnode);\n }\n return vnode;\n}\nconst createVNode$2 = !!(process.env.NODE_ENV !== \"production\") ? createVNodeWithArgsTransform$1 : _createVNode$1;\nfunction _createVNode$1(type, props = null, children = null, patchFlag = 0, dynamicProps = null, isBlockNode = false) {\n if (!type || type === NULL_DYNAMIC_COMPONENT$1) {\n if (!!(process.env.NODE_ENV !== \"production\") && !type) {\n warn$1$1(`Invalid vnode type when creating vnode: ${type}.`);\n }\n type = Comment$1;\n }\n if (isVNode$1(type)) {\n const cloned = cloneVNode$1(\n type,\n props,\n true\n /* mergeRef: true */\n );\n if (children) {\n normalizeChildren$1(cloned, children);\n }\n if (!isBlockNode && currentBlock$1) {\n if (cloned.shapeFlag & 6) {\n currentBlock$1[currentBlock$1.indexOf(type)] = cloned;\n } else {\n currentBlock$1.push(cloned);\n }\n }\n cloned.patchFlag |= -2;\n return cloned;\n }\n if (isClassComponent$1(type)) {\n type = type.__vccOpts;\n }\n if (props) {\n props = guardReactiveProps$1(props);\n let { class: klass, style } = props;\n if (klass && !isString(klass)) {\n props.class = normalizeClass(klass);\n }\n if (isObject(style)) {\n if (isProxy$1(style) && !isArray(style)) {\n style = extend({}, style);\n }\n props.style = normalizeStyle(style);\n }\n }\n const shapeFlag = isString(type) ? 1 : isSuspense(type) ? 128 : isTeleport$1(type) ? 64 : isObject(type) ? 4 : isFunction(type) ? 2 : 0;\n if (!!(process.env.NODE_ENV !== \"production\") && shapeFlag & 4 && isProxy$1(type)) {\n type = toRaw$1(type);\n warn$1$1(\n `Vue received a Component that was made a reactive object. This can lead to unnecessary performance overhead and should be avoided by marking the component with \\`markRaw\\` or using \\`shallowRef\\` instead of \\`ref\\`.`,\n `\nComponent that was made reactive: `,\n type\n );\n }\n return createBaseVNode$1(\n type,\n props,\n children,\n patchFlag,\n dynamicProps,\n shapeFlag,\n isBlockNode,\n true\n );\n}\nfunction guardReactiveProps$1(props) {\n if (!props)\n return null;\n return isProxy$1(props) || InternalObjectKey$1 in props ? extend({}, props) : props;\n}\nfunction cloneVNode$1(vnode, extraProps, mergeRef = false) {\n const { props, ref, patchFlag, children } = vnode;\n const mergedProps = extraProps ? mergeProps$1(props || {}, extraProps) : props;\n const cloned = {\n __v_isVNode: true,\n __v_skip: true,\n type: vnode.type,\n props: mergedProps,\n key: mergedProps && normalizeKey$1(mergedProps),\n ref: extraProps && extraProps.ref ? (\n // #2078 in the case of <component :is=\"vnode\" ref=\"extra\"/>\n // if the vnode itself already has a ref, cloneVNode will need to merge\n // the refs so the single vnode can be set on multiple refs\n mergeRef && ref ? isArray(ref) ? ref.concat(normalizeRef$1(extraProps)) : [ref, normalizeRef$1(extraProps)] : normalizeRef$1(extraProps)\n ) : ref,\n scopeId: vnode.scopeId,\n slotScopeIds: vnode.slotScopeIds,\n children: !!(process.env.NODE_ENV !== \"production\") && patchFlag === -1 && isArray(children) ? children.map(deepCloneVNode$1) : children,\n target: vnode.target,\n targetAnchor: vnode.targetAnchor,\n staticCount: vnode.staticCount,\n shapeFlag: vnode.shapeFlag,\n // if the vnode is cloned with extra props, we can no longer assume its\n // existing patch flag to be reliable and need to add the FULL_PROPS flag.\n // note: preserve flag for fragments since they use the flag for children\n // fast paths only.\n patchFlag: extraProps && vnode.type !== Fragment$1 ? patchFlag === -1 ? 16 : patchFlag | 16 : patchFlag,\n dynamicProps: vnode.dynamicProps,\n dynamicChildren: vnode.dynamicChildren,\n appContext: vnode.appContext,\n dirs: vnode.dirs,\n transition: vnode.transition,\n // These should technically only be non-null on mounted VNodes. However,\n // they *should* be copied for kept-alive vnodes. So we just always copy\n // them since them being non-null during a mount doesn't affect the logic as\n // they will simply be overwritten.\n component: vnode.component,\n suspense: vnode.suspense,\n ssContent: vnode.ssContent && cloneVNode$1(vnode.ssContent),\n ssFallback: vnode.ssFallback && cloneVNode$1(vnode.ssFallback),\n el: vnode.el,\n anchor: vnode.anchor,\n ctx: vnode.ctx,\n ce: vnode.ce\n };\n return cloned;\n}\nfunction deepCloneVNode$1(vnode) {\n const cloned = cloneVNode$1(vnode);\n if (isArray(vnode.children)) {\n cloned.children = vnode.children.map(deepCloneVNode$1);\n }\n return cloned;\n}\nfunction createTextVNode$1(text = \" \", flag = 0) {\n return createVNode$2(Text$1, null, text, flag);\n}\nfunction normalizeChildren$1(vnode, children) {\n let type = 0;\n const { shapeFlag } = vnode;\n if (children == null) {\n children = null;\n } else if (isArray(children)) {\n type = 16;\n } else if (typeof children === \"object\") {\n if (shapeFlag & (1 | 64)) {\n const slot = children.default;\n if (slot) {\n slot._c && (slot._d = false);\n normalizeChildren$1(vnode, slot());\n slot._c && (slot._d = true);\n }\n return;\n } else {\n type = 32;\n const slotFlag = children._;\n if (!slotFlag && !(InternalObjectKey$1 in children)) {\n children._ctx = currentRenderingInstance$1;\n } else if (slotFlag === 3 && currentRenderingInstance$1) {\n if (currentRenderingInstance$1.slots._ === 1) {\n children._ = 1;\n } else {\n children._ = 2;\n vnode.patchFlag |= 1024;\n }\n }\n }\n } else if (isFunction(children)) {\n children = { default: children, _ctx: currentRenderingInstance$1 };\n type = 32;\n } else {\n children = String(children);\n if (shapeFlag & 64) {\n type = 16;\n children = [createTextVNode$1(children)];\n } else {\n type = 8;\n }\n }\n vnode.children = children;\n vnode.shapeFlag |= type;\n}\nfunction mergeProps$1(...args) {\n const ret = {};\n for (let i = 0; i < args.length; i++) {\n const toMerge = args[i];\n for (const key in toMerge) {\n if (key === \"class\") {\n if (ret.class !== toMerge.class) {\n ret.class = normalizeClass([ret.class, toMerge.class]);\n }\n } else if (key === \"style\") {\n ret.style = normalizeStyle([ret.style, toMerge.style]);\n } else if (isOn(key)) {\n const existing = ret[key];\n const incoming = toMerge[key];\n if (incoming && existing !== incoming && !(isArray(existing) && existing.includes(incoming))) {\n ret[key] = existing ? [].concat(existing, incoming) : incoming;\n }\n } else if (key !== \"\") {\n ret[key] = toMerge[key];\n }\n }\n }\n return ret;\n}\nlet currentInstance$1 = null;\nconst getCurrentInstance$1 = () => currentInstance$1 || currentRenderingInstance$1;\nlet internalSetCurrentInstance$1;\n{\n const g = getGlobalThis();\n const registerGlobalSetter = (key, setter) => {\n let setters;\n if (!(setters = g[key]))\n setters = g[key] = [];\n setters.push(setter);\n return (v) => {\n if (setters.length > 1)\n setters.forEach((set) => set(v));\n else\n setters[0](v);\n };\n };\n internalSetCurrentInstance$1 = registerGlobalSetter(\n `__VUE_INSTANCE_SETTERS__`,\n (v) => currentInstance$1 = v\n );\n registerGlobalSetter(\n `__VUE_SSR_SETTERS__`,\n (v) => isInSSRComponentSetup$1 = v\n );\n}\nconst setCurrentInstance$1 = (instance) => {\n const prev = currentInstance$1;\n internalSetCurrentInstance$1(instance);\n instance.scope.on();\n return () => {\n instance.scope.off();\n internalSetCurrentInstance$1(prev);\n };\n};\nfunction isStatefulComponent$1(instance) {\n return instance.vnode.shapeFlag & 4;\n}\nlet isInSSRComponentSetup$1 = false;\nfunction getExposeProxy$1(instance) {\n if (instance.exposed) {\n return instance.exposeProxy || (instance.exposeProxy = new Proxy(proxyRefs$1(markRaw$1(instance.exposed)), {\n get(target, key) {\n if (key in target) {\n return target[key];\n } else if (key in publicPropertiesMap$1) {\n return publicPropertiesMap$1[key](instance);\n }\n },\n has(target, key) {\n return key in target || key in publicPropertiesMap$1;\n }\n }));\n }\n}\nconst classifyRE$1 = /(?:^|[-_])(\\w)/g;\nconst classify$1 = (str) => str.replace(classifyRE$1, (c) => c.toUpperCase()).replace(/[-_]/g, \"\");\nfunction getComponentName$1(Component, includeInferred = true) {\n return isFunction(Component) ? Component.displayName || Component.name : Component.name || includeInferred && Component.__name;\n}\nfunction formatComponentName$1(instance, Component, isRoot = false) {\n let name = getComponentName$1(Component);\n if (!name && Component.__file) {\n const match = Component.__file.match(/([^/\\\\]+)\\.\\w+$/);\n if (match) {\n name = match[1];\n }\n }\n if (!name && instance && instance.parent) {\n const inferFromRegistry = (registry) => {\n for (const key in registry) {\n if (registry[key] === Component) {\n return key;\n }\n }\n };\n name = inferFromRegistry(\n instance.components || instance.parent.type.components\n ) || inferFromRegistry(instance.appContext.components);\n }\n return name ? classify$1(name) : isRoot ? `App` : `Anonymous`;\n}\nfunction isClassComponent$1(value) {\n return isFunction(value) && \"__vccOpts\" in value;\n}\nconst warn$3 = !!(process.env.NODE_ENV !== \"production\") ? warn$1$1 : NOOP;\n!!(process.env.NODE_ENV !== \"production\") || true ? devtools$1 : void 0;\n!!(process.env.NODE_ENV !== \"production\") || true ? setDevtoolsHook$1 : NOOP;\n\n/**\n* @vue/runtime-dom v3.4.21\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nif (!!(process.env.NODE_ENV !== \"production\")) ;\n\nSymbol(!!(process.env.NODE_ENV !== \"production\") ? \"CSS_VAR_TEXT\" : \"\");\n\nfunction useCssModule(name = \"$style\") {\n {\n const instance = getCurrentInstance$1();\n if (!instance) {\n !!(process.env.NODE_ENV !== \"production\") && warn$3(`useCssModule must be called inside setup()`);\n return EMPTY_OBJ;\n }\n const modules = instance.type.__cssModules;\n if (!modules) {\n !!(process.env.NODE_ENV !== \"production\") && warn$3(`Current instance does not have CSS modules injected.`);\n return EMPTY_OBJ;\n }\n const mod = modules[name];\n if (!mod) {\n !!(process.env.NODE_ENV !== \"production\") && warn$3(`Current instance does not have CSS module named \"${name}\".`);\n return EMPTY_OBJ;\n }\n return mod;\n }\n}\n\n/**\n* @dcloudio/uni-mp-vue v3.4.21\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\n\nfunction warn$2(msg, ...args) {\n console.warn(`[Vue warn] ${msg}`, ...args);\n}\n\nlet activeEffectScope;\nclass EffectScope {\n constructor(detached = false) {\n this.detached = detached;\n /**\n * @internal\n */\n this._active = true;\n /**\n * @internal\n */\n this.effects = [];\n /**\n * @internal\n */\n this.cleanups = [];\n this.parent = activeEffectScope;\n if (!detached && activeEffectScope) {\n this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(\n this\n ) - 1;\n }\n }\n get active() {\n return this._active;\n }\n run(fn) {\n if (this._active) {\n const currentEffectScope = activeEffectScope;\n try {\n activeEffectScope = this;\n return fn();\n } finally {\n activeEffectScope = currentEffectScope;\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$2(`cannot run an inactive effect scope.`);\n }\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n on() {\n activeEffectScope = this;\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n off() {\n activeEffectScope = this.parent;\n }\n stop(fromParent) {\n if (this._active) {\n let i, l;\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].stop();\n }\n for (i = 0, l = this.cleanups.length; i < l; i++) {\n this.cleanups[i]();\n }\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].stop(true);\n }\n }\n if (!this.detached && this.parent && !fromParent) {\n const last = this.parent.scopes.pop();\n if (last && last !== this) {\n this.parent.scopes[this.index] = last;\n last.index = this.index;\n }\n }\n this.parent = void 0;\n this._active = false;\n }\n }\n}\nfunction effectScope(detached) {\n return new EffectScope(detached);\n}\nfunction recordEffectScope(effect, scope = activeEffectScope) {\n if (scope && scope.active) {\n scope.effects.push(effect);\n }\n}\nfunction getCurrentScope() {\n return activeEffectScope;\n}\nfunction onScopeDispose(fn) {\n if (activeEffectScope) {\n activeEffectScope.cleanups.push(fn);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$2(\n `onScopeDispose() is called when there is no active effect scope to be associated with.`\n );\n }\n}\n\nlet activeEffect;\nclass ReactiveEffect {\n constructor(fn, trigger, scheduler, scope) {\n this.fn = fn;\n this.trigger = trigger;\n this.scheduler = scheduler;\n this.active = true;\n this.deps = [];\n /**\n * @internal\n */\n this._dirtyLevel = 4;\n /**\n * @internal\n */\n this._trackId = 0;\n /**\n * @internal\n */\n this._runnings = 0;\n /**\n * @internal\n */\n this._shouldSchedule = false;\n /**\n * @internal\n */\n this._depsLength = 0;\n recordEffectScope(this, scope);\n }\n get dirty() {\n if (this._dirtyLevel === 2 || this._dirtyLevel === 3) {\n this._dirtyLevel = 1;\n pauseTracking();\n for (let i = 0; i < this._depsLength; i++) {\n const dep = this.deps[i];\n if (dep.computed) {\n triggerComputed(dep.computed);\n if (this._dirtyLevel >= 4) {\n break;\n }\n }\n }\n if (this._dirtyLevel === 1) {\n this._dirtyLevel = 0;\n }\n resetTracking();\n }\n return this._dirtyLevel >= 4;\n }\n set dirty(v) {\n this._dirtyLevel = v ? 4 : 0;\n }\n run() {\n this._dirtyLevel = 0;\n if (!this.active) {\n return this.fn();\n }\n let lastShouldTrack = shouldTrack;\n let lastEffect = activeEffect;\n try {\n shouldTrack = true;\n activeEffect = this;\n this._runnings++;\n preCleanupEffect(this);\n return this.fn();\n } finally {\n postCleanupEffect(this);\n this._runnings--;\n activeEffect = lastEffect;\n shouldTrack = lastShouldTrack;\n }\n }\n stop() {\n var _a;\n if (this.active) {\n preCleanupEffect(this);\n postCleanupEffect(this);\n (_a = this.onStop) == null ? void 0 : _a.call(this);\n this.active = false;\n }\n }\n}\nfunction triggerComputed(computed) {\n return computed.value;\n}\nfunction preCleanupEffect(effect2) {\n effect2._trackId++;\n effect2._depsLength = 0;\n}\nfunction postCleanupEffect(effect2) {\n if (effect2.deps.length > effect2._depsLength) {\n for (let i = effect2._depsLength; i < effect2.deps.length; i++) {\n cleanupDepEffect(effect2.deps[i], effect2);\n }\n effect2.deps.length = effect2._depsLength;\n }\n}\nfunction cleanupDepEffect(dep, effect2) {\n const trackId = dep.get(effect2);\n if (trackId !== void 0 && effect2._trackId !== trackId) {\n dep.delete(effect2);\n if (dep.size === 0) {\n dep.cleanup();\n }\n }\n}\nfunction effect(fn, options) {\n if (fn.effect instanceof ReactiveEffect) {\n fn = fn.effect.fn;\n }\n const _effect = new ReactiveEffect(fn, NOOP, () => {\n if (_effect.dirty) {\n _effect.run();\n }\n });\n if (options) {\n extend(_effect, options);\n if (options.scope)\n recordEffectScope(_effect, options.scope);\n }\n if (!options || !options.lazy) {\n _effect.run();\n }\n const runner = _effect.run.bind(_effect);\n runner.effect = _effect;\n return runner;\n}\nfunction stop(runner) {\n runner.effect.stop();\n}\nlet shouldTrack = true;\nlet pauseScheduleStack = 0;\nconst trackStack = [];\nfunction pauseTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = false;\n}\nfunction resetTracking() {\n const last = trackStack.pop();\n shouldTrack = last === void 0 ? true : last;\n}\nfunction pauseScheduling() {\n pauseScheduleStack++;\n}\nfunction resetScheduling() {\n pauseScheduleStack--;\n while (!pauseScheduleStack && queueEffectSchedulers.length) {\n queueEffectSchedulers.shift()();\n }\n}\nfunction trackEffect(effect2, dep, debuggerEventExtraInfo) {\n var _a;\n if (dep.get(effect2) !== effect2._trackId) {\n dep.set(effect2, effect2._trackId);\n const oldDep = effect2.deps[effect2._depsLength];\n if (oldDep !== dep) {\n if (oldDep) {\n cleanupDepEffect(oldDep, effect2);\n }\n effect2.deps[effect2._depsLength++] = dep;\n } else {\n effect2._depsLength++;\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n (_a = effect2.onTrack) == null ? void 0 : _a.call(effect2, extend({ effect: effect2 }, debuggerEventExtraInfo));\n }\n }\n}\nconst queueEffectSchedulers = [];\nfunction triggerEffects(dep, dirtyLevel, debuggerEventExtraInfo) {\n var _a;\n pauseScheduling();\n for (const effect2 of dep.keys()) {\n let tracking;\n if (effect2._dirtyLevel < dirtyLevel && (tracking != null ? tracking : tracking = dep.get(effect2) === effect2._trackId)) {\n effect2._shouldSchedule || (effect2._shouldSchedule = effect2._dirtyLevel === 0);\n effect2._dirtyLevel = dirtyLevel;\n }\n if (effect2._shouldSchedule && (tracking != null ? tracking : tracking = dep.get(effect2) === effect2._trackId)) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n (_a = effect2.onTrigger) == null ? void 0 : _a.call(effect2, extend({ effect: effect2 }, debuggerEventExtraInfo));\n }\n effect2.trigger();\n if ((!effect2._runnings || effect2.allowRecurse) && effect2._dirtyLevel !== 2) {\n effect2._shouldSchedule = false;\n if (effect2.scheduler) {\n queueEffectSchedulers.push(effect2.scheduler);\n }\n }\n }\n }\n resetScheduling();\n}\n\nconst createDep = (cleanup, computed) => {\n const dep = /* @__PURE__ */ new Map();\n dep.cleanup = cleanup;\n dep.computed = computed;\n return dep;\n};\n\nconst targetMap = /* @__PURE__ */ new WeakMap();\nconst ITERATE_KEY = Symbol(!!(process.env.NODE_ENV !== \"production\") ? \"iterate\" : \"\");\nconst MAP_KEY_ITERATE_KEY = Symbol(!!(process.env.NODE_ENV !== \"production\") ? \"Map key iterate\" : \"\");\nfunction track(target, type, key) {\n if (shouldTrack && activeEffect) {\n let depsMap = targetMap.get(target);\n if (!depsMap) {\n targetMap.set(target, depsMap = /* @__PURE__ */ new Map());\n }\n let dep = depsMap.get(key);\n if (!dep) {\n depsMap.set(key, dep = createDep(() => depsMap.delete(key)));\n }\n trackEffect(\n activeEffect,\n dep,\n !!(process.env.NODE_ENV !== \"production\") ? {\n target,\n type,\n key\n } : void 0\n );\n }\n}\nfunction trigger(target, type, key, newValue, oldValue, oldTarget) {\n const depsMap = targetMap.get(target);\n if (!depsMap) {\n return;\n }\n let deps = [];\n if (type === \"clear\") {\n deps = [...depsMap.values()];\n } else if (key === \"length\" && isArray(target)) {\n const newLength = Number(newValue);\n depsMap.forEach((dep, key2) => {\n if (key2 === \"length\" || !isSymbol(key2) && key2 >= newLength) {\n deps.push(dep);\n }\n });\n } else {\n if (key !== void 0) {\n deps.push(depsMap.get(key));\n }\n switch (type) {\n case \"add\":\n if (!isArray(target)) {\n deps.push(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n } else if (isIntegerKey(key)) {\n deps.push(depsMap.get(\"length\"));\n }\n break;\n case \"delete\":\n if (!isArray(target)) {\n deps.push(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n }\n break;\n case \"set\":\n if (isMap(target)) {\n deps.push(depsMap.get(ITERATE_KEY));\n }\n break;\n }\n }\n pauseScheduling();\n for (const dep of deps) {\n if (dep) {\n triggerEffects(\n dep,\n 4,\n !!(process.env.NODE_ENV !== \"production\") ? {\n target,\n type,\n key,\n newValue,\n oldValue,\n oldTarget\n } : void 0\n );\n }\n }\n resetScheduling();\n}\nfunction getDepFromReactive(object, key) {\n var _a;\n return (_a = targetMap.get(object)) == null ? void 0 : _a.get(key);\n}\n\nconst isNonTrackableKeys = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`);\nconst builtInSymbols = new Set(\n /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== \"arguments\" && key !== \"caller\").map((key) => Symbol[key]).filter(isSymbol)\n);\nconst arrayInstrumentations = /* @__PURE__ */ createArrayInstrumentations();\nfunction createArrayInstrumentations() {\n const instrumentations = {};\n [\"includes\", \"indexOf\", \"lastIndexOf\"].forEach((key) => {\n instrumentations[key] = function(...args) {\n const arr = toRaw(this);\n for (let i = 0, l = this.length; i < l; i++) {\n track(arr, \"get\", i + \"\");\n }\n const res = arr[key](...args);\n if (res === -1 || res === false) {\n return arr[key](...args.map(toRaw));\n } else {\n return res;\n }\n };\n });\n [\"push\", \"pop\", \"shift\", \"unshift\", \"splice\"].forEach((key) => {\n instrumentations[key] = function(...args) {\n pauseTracking();\n pauseScheduling();\n const res = toRaw(this)[key].apply(this, args);\n resetScheduling();\n resetTracking();\n return res;\n };\n });\n return instrumentations;\n}\nfunction hasOwnProperty(key) {\n const obj = toRaw(this);\n track(obj, \"has\", key);\n return obj.hasOwnProperty(key);\n}\nclass BaseReactiveHandler {\n constructor(_isReadonly = false, _isShallow = false) {\n this._isReadonly = _isReadonly;\n this._isShallow = _isShallow;\n }\n get(target, key, receiver) {\n const isReadonly2 = this._isReadonly, isShallow2 = this._isShallow;\n if (key === \"__v_isReactive\") {\n return !isReadonly2;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly2;\n } else if (key === \"__v_isShallow\") {\n return isShallow2;\n } else if (key === \"__v_raw\") {\n if (receiver === (isReadonly2 ? isShallow2 ? shallowReadonlyMap : readonlyMap : isShallow2 ? shallowReactiveMap : reactiveMap).get(target) || // receiver is not the reactive proxy, but has the same prototype\n // this means the reciever is a user proxy of the reactive proxy\n Object.getPrototypeOf(target) === Object.getPrototypeOf(receiver)) {\n return target;\n }\n return;\n }\n const targetIsArray = isArray(target);\n if (!isReadonly2) {\n if (targetIsArray && hasOwn(arrayInstrumentations, key)) {\n return Reflect.get(arrayInstrumentations, key, receiver);\n }\n if (key === \"hasOwnProperty\") {\n return hasOwnProperty;\n }\n }\n const res = Reflect.get(target, key, receiver);\n if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) {\n return res;\n }\n if (!isReadonly2) {\n track(target, \"get\", key);\n }\n if (isShallow2) {\n return res;\n }\n if (isRef(res)) {\n return targetIsArray && isIntegerKey(key) ? res : res.value;\n }\n if (isObject(res)) {\n return isReadonly2 ? readonly(res) : reactive(res);\n }\n return res;\n }\n}\nclass MutableReactiveHandler extends BaseReactiveHandler {\n constructor(isShallow2 = false) {\n super(false, isShallow2);\n }\n set(target, key, value, receiver) {\n let oldValue = target[key];\n if (!this._isShallow) {\n const isOldValueReadonly = isReadonly(oldValue);\n if (!isShallow(value) && !isReadonly(value)) {\n oldValue = toRaw(oldValue);\n value = toRaw(value);\n }\n if (!isArray(target) && isRef(oldValue) && !isRef(value)) {\n if (isOldValueReadonly) {\n return false;\n } else {\n oldValue.value = value;\n return true;\n }\n }\n }\n const hadKey = isArray(target) && isIntegerKey(key) ? Number(key) < target.length : hasOwn(target, key);\n const result = Reflect.set(target, key, value, receiver);\n if (target === toRaw(receiver)) {\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\", key, value, oldValue);\n }\n }\n return result;\n }\n deleteProperty(target, key) {\n const hadKey = hasOwn(target, key);\n const oldValue = target[key];\n const result = Reflect.deleteProperty(target, key);\n if (result && hadKey) {\n trigger(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n }\n has(target, key) {\n const result = Reflect.has(target, key);\n if (!isSymbol(key) || !builtInSymbols.has(key)) {\n track(target, \"has\", key);\n }\n return result;\n }\n ownKeys(target) {\n track(\n target,\n \"iterate\",\n isArray(target) ? \"length\" : ITERATE_KEY\n );\n return Reflect.ownKeys(target);\n }\n}\nclass ReadonlyReactiveHandler extends BaseReactiveHandler {\n constructor(isShallow2 = false) {\n super(true, isShallow2);\n }\n set(target, key) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$2(\n `Set operation on key \"${String(key)}\" failed: target is readonly.`,\n target\n );\n }\n return true;\n }\n deleteProperty(target, key) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$2(\n `Delete operation on key \"${String(key)}\" failed: target is readonly.`,\n target\n );\n }\n return true;\n }\n}\nconst mutableHandlers = /* @__PURE__ */ new MutableReactiveHandler();\nconst readonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler();\nconst shallowReactiveHandlers = /* @__PURE__ */ new MutableReactiveHandler(\n true\n);\nconst shallowReadonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(true);\n\nconst toShallow = (value) => value;\nconst getProto = (v) => Reflect.getPrototypeOf(v);\nfunction get(target, key, isReadonly = false, isShallow = false) {\n target = target[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!isReadonly) {\n if (hasChanged(key, rawKey)) {\n track(rawTarget, \"get\", key);\n }\n track(rawTarget, \"get\", rawKey);\n }\n const { has: has2 } = getProto(rawTarget);\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n if (has2.call(rawTarget, key)) {\n return wrap(target.get(key));\n } else if (has2.call(rawTarget, rawKey)) {\n return wrap(target.get(rawKey));\n } else if (target !== rawTarget) {\n target.get(key);\n }\n}\nfunction has(key, isReadonly = false) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!isReadonly) {\n if (hasChanged(key, rawKey)) {\n track(rawTarget, \"has\", key);\n }\n track(rawTarget, \"has\", rawKey);\n }\n return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey);\n}\nfunction size(target, isReadonly = false) {\n target = target[\"__v_raw\"];\n !isReadonly && track(toRaw(target), \"iterate\", ITERATE_KEY);\n return Reflect.get(target, \"size\", target);\n}\nfunction add(value) {\n value = toRaw(value);\n const target = toRaw(this);\n const proto = getProto(target);\n const hadKey = proto.has.call(target, value);\n if (!hadKey) {\n target.add(value);\n trigger(target, \"add\", value, value);\n }\n return this;\n}\nfunction set$1(key, value) {\n value = toRaw(value);\n const target = toRaw(this);\n const { has: has2, get: get2 } = getProto(target);\n let hadKey = has2.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has2.call(target, key);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n checkIdentityKeys(target, has2, key);\n }\n const oldValue = get2.call(target, key);\n target.set(key, value);\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\", key, value, oldValue);\n }\n return this;\n}\nfunction deleteEntry(key) {\n const target = toRaw(this);\n const { has: has2, get: get2 } = getProto(target);\n let hadKey = has2.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has2.call(target, key);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n checkIdentityKeys(target, has2, key);\n }\n const oldValue = get2 ? get2.call(target, key) : void 0;\n const result = target.delete(key);\n if (hadKey) {\n trigger(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n}\nfunction clear() {\n const target = toRaw(this);\n const hadItems = target.size !== 0;\n const oldTarget = !!(process.env.NODE_ENV !== \"production\") ? isMap(target) ? new Map(target) : new Set(target) : void 0;\n const result = target.clear();\n if (hadItems) {\n trigger(target, \"clear\", void 0, void 0, oldTarget);\n }\n return result;\n}\nfunction createForEach(isReadonly, isShallow) {\n return function forEach(callback, thisArg) {\n const observed = this;\n const target = observed[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n !isReadonly && track(rawTarget, \"iterate\", ITERATE_KEY);\n return target.forEach((value, key) => {\n return callback.call(thisArg, wrap(value), wrap(key), observed);\n });\n };\n}\nfunction createIterableMethod(method, isReadonly, isShallow) {\n return function(...args) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const targetIsMap = isMap(rawTarget);\n const isPair = method === \"entries\" || method === Symbol.iterator && targetIsMap;\n const isKeyOnly = method === \"keys\" && targetIsMap;\n const innerIterator = target[method](...args);\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n !isReadonly && track(\n rawTarget,\n \"iterate\",\n isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY\n );\n return {\n // iterator protocol\n next() {\n const { value, done } = innerIterator.next();\n return done ? { value, done } : {\n value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value),\n done\n };\n },\n // iterable protocol\n [Symbol.iterator]() {\n return this;\n }\n };\n };\n}\nfunction createReadonlyMethod(type) {\n return function(...args) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const key = args[0] ? `on key \"${args[0]}\" ` : ``;\n warn$2(\n `${capitalize(type)} operation ${key}failed: target is readonly.`,\n toRaw(this)\n );\n }\n return type === \"delete\" ? false : type === \"clear\" ? void 0 : this;\n };\n}\nfunction createInstrumentations() {\n const mutableInstrumentations2 = {\n get(key) {\n return get(this, key);\n },\n get size() {\n return size(this);\n },\n has,\n add,\n set: set$1,\n delete: deleteEntry,\n clear,\n forEach: createForEach(false, false)\n };\n const shallowInstrumentations2 = {\n get(key) {\n return get(this, key, false, true);\n },\n get size() {\n return size(this);\n },\n has,\n add,\n set: set$1,\n delete: deleteEntry,\n clear,\n forEach: createForEach(false, true)\n };\n const readonlyInstrumentations2 = {\n get(key) {\n return get(this, key, true);\n },\n get size() {\n return size(this, true);\n },\n has(key) {\n return has.call(this, key, true);\n },\n add: createReadonlyMethod(\"add\"),\n set: createReadonlyMethod(\"set\"),\n delete: createReadonlyMethod(\"delete\"),\n clear: createReadonlyMethod(\"clear\"),\n forEach: createForEach(true, false)\n };\n const shallowReadonlyInstrumentations2 = {\n get(key) {\n return get(this, key, true, true);\n },\n get size() {\n return size(this, true);\n },\n has(key) {\n return has.call(this, key, true);\n },\n add: createReadonlyMethod(\"add\"),\n set: createReadonlyMethod(\"set\"),\n delete: createReadonlyMethod(\"delete\"),\n clear: createReadonlyMethod(\"clear\"),\n forEach: createForEach(true, true)\n };\n const iteratorMethods = [\n \"keys\",\n \"values\",\n \"entries\",\n Symbol.iterator\n ];\n iteratorMethods.forEach((method) => {\n mutableInstrumentations2[method] = createIterableMethod(method, false, false);\n readonlyInstrumentations2[method] = createIterableMethod(method, true, false);\n shallowInstrumentations2[method] = createIterableMethod(method, false, true);\n shallowReadonlyInstrumentations2[method] = createIterableMethod(\n method,\n true,\n true\n );\n });\n return [\n mutableInstrumentations2,\n readonlyInstrumentations2,\n shallowInstrumentations2,\n shallowReadonlyInstrumentations2\n ];\n}\nconst [\n mutableInstrumentations,\n readonlyInstrumentations,\n shallowInstrumentations,\n shallowReadonlyInstrumentations\n] = /* @__PURE__ */ createInstrumentations();\nfunction createInstrumentationGetter(isReadonly, shallow) {\n const instrumentations = shallow ? isReadonly ? shallowReadonlyInstrumentations : shallowInstrumentations : isReadonly ? readonlyInstrumentations : mutableInstrumentations;\n return (target, key, receiver) => {\n if (key === \"__v_isReactive\") {\n return !isReadonly;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly;\n } else if (key === \"__v_raw\") {\n return target;\n }\n return Reflect.get(\n hasOwn(instrumentations, key) && key in target ? instrumentations : target,\n key,\n receiver\n );\n };\n}\nconst mutableCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(false, false)\n};\nconst shallowCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(false, true)\n};\nconst readonlyCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(true, false)\n};\nconst shallowReadonlyCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(true, true)\n};\nfunction checkIdentityKeys(target, has2, key) {\n const rawKey = toRaw(key);\n if (rawKey !== key && has2.call(target, rawKey)) {\n const type = toRawType(target);\n warn$2(\n `Reactive ${type} contains both the raw and reactive versions of the same object${type === `Map` ? ` as keys` : ``}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.`\n );\n }\n}\n\nconst reactiveMap = /* @__PURE__ */ new WeakMap();\nconst shallowReactiveMap = /* @__PURE__ */ new WeakMap();\nconst readonlyMap = /* @__PURE__ */ new WeakMap();\nconst shallowReadonlyMap = /* @__PURE__ */ new WeakMap();\nfunction targetTypeMap(rawType) {\n switch (rawType) {\n case \"Object\":\n case \"Array\":\n return 1 /* COMMON */;\n case \"Map\":\n case \"Set\":\n case \"WeakMap\":\n case \"WeakSet\":\n return 2 /* COLLECTION */;\n default:\n return 0 /* INVALID */;\n }\n}\nfunction getTargetType(value) {\n return value[\"__v_skip\"] || !Object.isExtensible(value) ? 0 /* INVALID */ : targetTypeMap(toRawType(value));\n}\nfunction reactive(target) {\n if (isReadonly(target)) {\n return target;\n }\n return createReactiveObject(\n target,\n false,\n mutableHandlers,\n mutableCollectionHandlers,\n reactiveMap\n );\n}\nfunction shallowReactive(target) {\n return createReactiveObject(\n target,\n false,\n shallowReactiveHandlers,\n shallowCollectionHandlers,\n shallowReactiveMap\n );\n}\nfunction readonly(target) {\n return createReactiveObject(\n target,\n true,\n readonlyHandlers,\n readonlyCollectionHandlers,\n readonlyMap\n );\n}\nfunction shallowReadonly(target) {\n return createReactiveObject(\n target,\n true,\n shallowReadonlyHandlers,\n shallowReadonlyCollectionHandlers,\n shallowReadonlyMap\n );\n}\nfunction createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) {\n if (!isObject(target)) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$2(`value cannot be made reactive: ${String(target)}`);\n }\n return target;\n }\n if (target[\"__v_raw\"] && !(isReadonly2 && target[\"__v_isReactive\"])) {\n return target;\n }\n const existingProxy = proxyMap.get(target);\n if (existingProxy) {\n return existingProxy;\n }\n const targetType = getTargetType(target);\n if (targetType === 0 /* INVALID */) {\n return target;\n }\n const proxy = new Proxy(\n target,\n targetType === 2 /* COLLECTION */ ? collectionHandlers : baseHandlers\n );\n proxyMap.set(target, proxy);\n return proxy;\n}\nfunction isReactive(value) {\n if (isReadonly(value)) {\n return isReactive(value[\"__v_raw\"]);\n }\n return !!(value && value[\"__v_isReactive\"]);\n}\nfunction isReadonly(value) {\n return !!(value && value[\"__v_isReadonly\"]);\n}\nfunction isShallow(value) {\n return !!(value && value[\"__v_isShallow\"]);\n}\nfunction isProxy(value) {\n return isReactive(value) || isReadonly(value);\n}\nfunction toRaw(observed) {\n const raw = observed && observed[\"__v_raw\"];\n return raw ? toRaw(raw) : observed;\n}\nfunction markRaw(value) {\n if (Object.isExtensible(value)) {\n def(value, \"__v_skip\", true);\n }\n return value;\n}\nconst toReactive = (value) => isObject(value) ? reactive(value) : value;\nconst toReadonly = (value) => isObject(value) ? readonly(value) : value;\n\nconst COMPUTED_SIDE_EFFECT_WARN = `Computed is still dirty after getter evaluation, likely because a computed is mutating its own dependency in its getter. State mutations in computed getters should be avoided. Check the docs for more details: https://vuejs.org/guide/essentials/computed.html#getters-should-be-side-effect-free`;\nclass ComputedRefImpl {\n constructor(getter, _setter, isReadonly, isSSR) {\n this.getter = getter;\n this._setter = _setter;\n this.dep = void 0;\n this.__v_isRef = true;\n this[\"__v_isReadonly\"] = false;\n this.effect = new ReactiveEffect(\n () => getter(this._value),\n () => triggerRefValue(\n this,\n this.effect._dirtyLevel === 2 ? 2 : 3\n )\n );\n this.effect.computed = this;\n this.effect.active = this._cacheable = !isSSR;\n this[\"__v_isReadonly\"] = isReadonly;\n }\n get value() {\n const self = toRaw(this);\n if ((!self._cacheable || self.effect.dirty) && hasChanged(self._value, self._value = self.effect.run())) {\n triggerRefValue(self, 4);\n }\n trackRefValue(self);\n if (self.effect._dirtyLevel >= 2) {\n if (!!(process.env.NODE_ENV !== \"production\") && this._warnRecursive) {\n warn$2(COMPUTED_SIDE_EFFECT_WARN, `\n\ngetter: `, this.getter);\n }\n triggerRefValue(self, 2);\n }\n return self._value;\n }\n set value(newValue) {\n this._setter(newValue);\n }\n // #region polyfill _dirty for backward compatibility third party code for Vue <= 3.3.x\n get _dirty() {\n return this.effect.dirty;\n }\n set _dirty(v) {\n this.effect.dirty = v;\n }\n // #endregion\n}\nfunction computed$1(getterOrOptions, debugOptions, isSSR = false) {\n let getter;\n let setter;\n const onlyGetter = isFunction(getterOrOptions);\n if (onlyGetter) {\n getter = getterOrOptions;\n setter = !!(process.env.NODE_ENV !== \"production\") ? () => {\n warn$2(\"Write operation failed: computed value is readonly\");\n } : NOOP;\n } else {\n getter = getterOrOptions.get;\n setter = getterOrOptions.set;\n }\n const cRef = new ComputedRefImpl(getter, setter, onlyGetter || !setter, isSSR);\n if (!!(process.env.NODE_ENV !== \"production\") && debugOptions && !isSSR) {\n cRef.effect.onTrack = debugOptions.onTrack;\n cRef.effect.onTrigger = debugOptions.onTrigger;\n }\n return cRef;\n}\n\nfunction trackRefValue(ref2) {\n var _a;\n if (shouldTrack && activeEffect) {\n ref2 = toRaw(ref2);\n trackEffect(\n activeEffect,\n (_a = ref2.dep) != null ? _a : ref2.dep = createDep(\n () => ref2.dep = void 0,\n ref2 instanceof ComputedRefImpl ? ref2 : void 0\n ),\n !!(process.env.NODE_ENV !== \"production\") ? {\n target: ref2,\n type: \"get\",\n key: \"value\"\n } : void 0\n );\n }\n}\nfunction triggerRefValue(ref2, dirtyLevel = 4, newVal) {\n ref2 = toRaw(ref2);\n const dep = ref2.dep;\n if (dep) {\n triggerEffects(\n dep,\n dirtyLevel,\n !!(process.env.NODE_ENV !== \"production\") ? {\n target: ref2,\n type: \"set\",\n key: \"value\",\n newValue: newVal\n } : void 0\n );\n }\n}\nfunction isRef(r) {\n return !!(r && r.__v_isRef === true);\n}\nfunction ref(value) {\n return createRef(value, false);\n}\nfunction shallowRef(value) {\n return createRef(value, true);\n}\nfunction createRef(rawValue, shallow) {\n if (isRef(rawValue)) {\n return rawValue;\n }\n return new RefImpl(rawValue, shallow);\n}\nclass RefImpl {\n constructor(value, __v_isShallow) {\n this.__v_isShallow = __v_isShallow;\n this.dep = void 0;\n this.__v_isRef = true;\n this._rawValue = __v_isShallow ? value : toRaw(value);\n this._value = __v_isShallow ? value : toReactive(value);\n }\n get value() {\n trackRefValue(this);\n return this._value;\n }\n set value(newVal) {\n const useDirectValue = this.__v_isShallow || isShallow(newVal) || isReadonly(newVal);\n newVal = useDirectValue ? newVal : toRaw(newVal);\n if (hasChanged(newVal, this._rawValue)) {\n this._rawValue = newVal;\n this._value = useDirectValue ? newVal : toReactive(newVal);\n triggerRefValue(this, 4, newVal);\n }\n }\n}\nfunction triggerRef(ref2) {\n triggerRefValue(ref2, 4, !!(process.env.NODE_ENV !== \"production\") ? ref2.value : void 0);\n}\nfunction unref(ref2) {\n return isRef(ref2) ? ref2.value : ref2;\n}\nconst shallowUnwrapHandlers = {\n get: (target, key, receiver) => unref(Reflect.get(target, key, receiver)),\n set: (target, key, value, receiver) => {\n const oldValue = target[key];\n if (isRef(oldValue) && !isRef(value)) {\n oldValue.value = value;\n return true;\n } else {\n return Reflect.set(target, key, value, receiver);\n }\n }\n};\nfunction proxyRefs(objectWithRefs) {\n return isReactive(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers);\n}\nclass CustomRefImpl {\n constructor(factory) {\n this.dep = void 0;\n this.__v_isRef = true;\n const { get, set } = factory(\n () => trackRefValue(this),\n () => triggerRefValue(this)\n );\n this._get = get;\n this._set = set;\n }\n get value() {\n return this._get();\n }\n set value(newVal) {\n this._set(newVal);\n }\n}\nfunction customRef(factory) {\n return new CustomRefImpl(factory);\n}\nfunction toRefs(object) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isProxy(object)) {\n warn$2(`toRefs() expects a reactive object but received a plain one.`);\n }\n const ret = isArray(object) ? new Array(object.length) : {};\n for (const key in object) {\n ret[key] = propertyToRef(object, key);\n }\n return ret;\n}\nclass ObjectRefImpl {\n constructor(_object, _key, _defaultValue) {\n this._object = _object;\n this._key = _key;\n this._defaultValue = _defaultValue;\n this.__v_isRef = true;\n }\n get value() {\n const val = this._object[this._key];\n return val === void 0 ? this._defaultValue : val;\n }\n set value(newVal) {\n this._object[this._key] = newVal;\n }\n get dep() {\n return getDepFromReactive(toRaw(this._object), this._key);\n }\n}\nclass GetterRefImpl {\n constructor(_getter) {\n this._getter = _getter;\n this.__v_isRef = true;\n this.__v_isReadonly = true;\n }\n get value() {\n return this._getter();\n }\n}\nfunction toRef(source, key, defaultValue) {\n if (isRef(source)) {\n return source;\n } else if (isFunction(source)) {\n return new GetterRefImpl(source);\n } else if (isObject(source) && arguments.length > 1) {\n return propertyToRef(source, key, defaultValue);\n } else {\n return ref(source);\n }\n}\nfunction propertyToRef(source, key, defaultValue) {\n const val = source[key];\n return isRef(val) ? val : new ObjectRefImpl(source, key, defaultValue);\n}\n\nconst stack = [];\nfunction pushWarningContext(vnode) {\n stack.push(vnode);\n}\nfunction popWarningContext() {\n stack.pop();\n}\nfunction warn$1(msg, ...args) {\n pauseTracking();\n const instance = stack.length ? stack[stack.length - 1].component : null;\n const appWarnHandler = instance && instance.appContext.config.warnHandler;\n const trace = getComponentTrace();\n if (appWarnHandler) {\n callWithErrorHandling(\n appWarnHandler,\n instance,\n 11,\n [\n msg + args.map((a) => {\n var _a, _b;\n return (_b = (_a = a.toString) == null ? void 0 : _a.call(a)) != null ? _b : JSON.stringify(a);\n }).join(\"\"),\n instance && instance.proxy,\n trace.map(\n ({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>`\n ).join(\"\\n\"),\n trace\n ]\n );\n } else {\n const warnArgs = [`[Vue warn]: ${msg}`, ...args];\n if (trace.length && // avoid spamming console during tests\n true) {\n warnArgs.push(`\n`, ...formatTrace(trace));\n }\n console.warn(...warnArgs);\n }\n resetTracking();\n}\nfunction getComponentTrace() {\n let currentVNode = stack[stack.length - 1];\n if (!currentVNode) {\n return [];\n }\n const normalizedStack = [];\n while (currentVNode) {\n const last = normalizedStack[0];\n if (last && last.vnode === currentVNode) {\n last.recurseCount++;\n } else {\n normalizedStack.push({\n vnode: currentVNode,\n recurseCount: 0\n });\n }\n const parentInstance = currentVNode.component && currentVNode.component.parent;\n currentVNode = parentInstance && parentInstance.vnode;\n }\n return normalizedStack;\n}\nfunction formatTrace(trace) {\n const logs = [];\n trace.forEach((entry, i) => {\n logs.push(...i === 0 ? [] : [`\n`], ...formatTraceEntry(entry));\n });\n return logs;\n}\nfunction formatTraceEntry({ vnode, recurseCount }) {\n const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``;\n const isRoot = vnode.component ? vnode.component.parent == null : false;\n const open = ` at <${formatComponentName(\n vnode.component,\n vnode.type,\n isRoot\n )}`;\n const close = `>` + postfix;\n return vnode.props ? [open, ...formatProps(vnode.props), close] : [open + close];\n}\nfunction formatProps(props) {\n const res = [];\n const keys = Object.keys(props);\n keys.slice(0, 3).forEach((key) => {\n res.push(...formatProp(key, props[key]));\n });\n if (keys.length > 3) {\n res.push(` ...`);\n }\n return res;\n}\nfunction formatProp(key, value, raw) {\n if (isString(value)) {\n value = JSON.stringify(value);\n return raw ? value : [`${key}=${value}`];\n } else if (typeof value === \"number\" || typeof value === \"boolean\" || value == null) {\n return raw ? value : [`${key}=${value}`];\n } else if (isRef(value)) {\n value = formatProp(key, toRaw(value.value), true);\n return raw ? value : [`${key}=Ref<`, value, `>`];\n } else if (isFunction(value)) {\n return [`${key}=fn${value.name ? `<${value.name}>` : ``}`];\n } else {\n value = toRaw(value);\n return raw ? value : [`${key}=`, value];\n }\n}\n\nconst ErrorTypeStrings = {\n [\"sp\"]: \"serverPrefetch hook\",\n [\"bc\"]: \"beforeCreate hook\",\n [\"c\"]: \"created hook\",\n [\"bm\"]: \"beforeMount hook\",\n [\"m\"]: \"mounted hook\",\n [\"bu\"]: \"beforeUpdate hook\",\n [\"u\"]: \"updated\",\n [\"bum\"]: \"beforeUnmount hook\",\n [\"um\"]: \"unmounted hook\",\n [\"a\"]: \"activated hook\",\n [\"da\"]: \"deactivated hook\",\n [\"ec\"]: \"errorCaptured hook\",\n [\"rtc\"]: \"renderTracked hook\",\n [\"rtg\"]: \"renderTriggered hook\",\n [0]: \"setup function\",\n [1]: \"render function\",\n [2]: \"watcher getter\",\n [3]: \"watcher callback\",\n [4]: \"watcher cleanup function\",\n [5]: \"native event handler\",\n [6]: \"component event handler\",\n [7]: \"vnode hook\",\n [8]: \"directive hook\",\n [9]: \"transition hook\",\n [10]: \"app errorHandler\",\n [11]: \"app warnHandler\",\n [12]: \"ref function\",\n [13]: \"async component loader\",\n [14]: \"scheduler flush. This is likely a Vue internals bug. Please open an issue at https://github.com/vuejs/core .\"\n};\nfunction callWithErrorHandling(fn, instance, type, args) {\n try {\n return args ? fn(...args) : fn();\n } catch (err) {\n handleError(err, instance, type);\n }\n}\nfunction callWithAsyncErrorHandling(fn, instance, type, args) {\n if (isFunction(fn)) {\n const res = callWithErrorHandling(fn, instance, type, args);\n if (res && isPromise(res)) {\n res.catch((err) => {\n handleError(err, instance, type);\n });\n }\n return res;\n }\n const values = [];\n for (let i = 0; i < fn.length; i++) {\n values.push(callWithAsyncErrorHandling(fn[i], instance, type, args));\n }\n return values;\n}\nfunction handleError(err, instance, type, throwInDev = true) {\n const contextVNode = instance ? instance.vnode : null;\n if (instance) {\n let cur = instance.parent;\n const exposedInstance = instance.proxy;\n const errorInfo = !!(process.env.NODE_ENV !== \"production\") ? ErrorTypeStrings[type] || type : `https://vuejs.org/error-reference/#runtime-${type}`;\n while (cur) {\n const errorCapturedHooks = cur.ec;\n if (errorCapturedHooks) {\n for (let i = 0; i < errorCapturedHooks.length; i++) {\n if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) {\n return;\n }\n }\n }\n cur = cur.parent;\n }\n const appErrorHandler = instance.appContext.config.errorHandler;\n if (appErrorHandler) {\n callWithErrorHandling(\n appErrorHandler,\n null,\n 10,\n [err, exposedInstance, errorInfo]\n );\n return;\n }\n }\n logError(err, type, contextVNode, throwInDev);\n}\nfunction logError(err, type, contextVNode, throwInDev = true) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const info = ErrorTypeStrings[type] || type;\n if (contextVNode) {\n pushWarningContext(contextVNode);\n }\n warn$1(`Unhandled error${info ? ` during execution of ${info}` : ``}`);\n if (contextVNode) {\n popWarningContext();\n }\n if (throwInDev) {\n console.error(err);\n } else {\n console.error(err);\n }\n } else {\n console.error(err);\n }\n}\n\nlet isFlushing = false;\nlet isFlushPending = false;\nconst queue = [];\nlet flushIndex = 0;\nconst pendingPostFlushCbs = [];\nlet activePostFlushCbs = null;\nlet postFlushIndex = 0;\nconst resolvedPromise = /* @__PURE__ */ Promise.resolve();\nlet currentFlushPromise = null;\nconst RECURSION_LIMIT = 100;\nfunction nextTick$1(fn) {\n const p = currentFlushPromise || resolvedPromise;\n return fn ? p.then(this ? fn.bind(this) : fn) : p;\n}\nfunction findInsertionIndex(id) {\n let start = flushIndex + 1;\n let end = queue.length;\n while (start < end) {\n const middle = start + end >>> 1;\n const middleJob = queue[middle];\n const middleJobId = getId(middleJob);\n if (middleJobId < id || middleJobId === id && middleJob.pre) {\n start = middle + 1;\n } else {\n end = middle;\n }\n }\n return start;\n}\nfunction queueJob(job) {\n if (!queue.length || !queue.includes(\n job,\n isFlushing && job.allowRecurse ? flushIndex + 1 : flushIndex\n )) {\n if (job.id == null) {\n queue.push(job);\n } else {\n queue.splice(findInsertionIndex(job.id), 0, job);\n }\n queueFlush();\n }\n}\nfunction queueFlush() {\n if (!isFlushing && !isFlushPending) {\n isFlushPending = true;\n currentFlushPromise = resolvedPromise.then(flushJobs);\n }\n}\nfunction hasQueueJob(job) {\n return queue.indexOf(job) > -1;\n}\nfunction invalidateJob(job) {\n const i = queue.indexOf(job);\n if (i > flushIndex) {\n queue.splice(i, 1);\n }\n}\nfunction queuePostFlushCb(cb) {\n if (!isArray(cb)) {\n if (!activePostFlushCbs || !activePostFlushCbs.includes(\n cb,\n cb.allowRecurse ? postFlushIndex + 1 : postFlushIndex\n )) {\n pendingPostFlushCbs.push(cb);\n }\n } else {\n pendingPostFlushCbs.push(...cb);\n }\n queueFlush();\n}\nfunction flushPreFlushCbs(instance, seen, i = isFlushing ? flushIndex + 1 : 0) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n for (; i < queue.length; i++) {\n const cb = queue[i];\n if (cb && cb.pre) {\n if (instance && cb.id !== instance.uid) {\n continue;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && checkRecursiveUpdates(seen, cb)) {\n continue;\n }\n queue.splice(i, 1);\n i--;\n cb();\n }\n }\n}\nfunction flushPostFlushCbs(seen) {\n if (pendingPostFlushCbs.length) {\n const deduped = [...new Set(pendingPostFlushCbs)].sort(\n (a, b) => getId(a) - getId(b)\n );\n pendingPostFlushCbs.length = 0;\n if (activePostFlushCbs) {\n activePostFlushCbs.push(...deduped);\n return;\n }\n activePostFlushCbs = deduped;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) {\n if (!!(process.env.NODE_ENV !== \"production\") && checkRecursiveUpdates(seen, activePostFlushCbs[postFlushIndex])) {\n continue;\n }\n activePostFlushCbs[postFlushIndex]();\n }\n activePostFlushCbs = null;\n postFlushIndex = 0;\n }\n}\nconst getId = (job) => job.id == null ? Infinity : job.id;\nconst comparator = (a, b) => {\n const diff = getId(a) - getId(b);\n if (diff === 0) {\n if (a.pre && !b.pre)\n return -1;\n if (b.pre && !a.pre)\n return 1;\n }\n return diff;\n};\nfunction flushJobs(seen) {\n isFlushPending = false;\n isFlushing = true;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n queue.sort(comparator);\n const check = !!(process.env.NODE_ENV !== \"production\") ? (job) => checkRecursiveUpdates(seen, job) : NOOP;\n try {\n for (flushIndex = 0; flushIndex < queue.length; flushIndex++) {\n const job = queue[flushIndex];\n if (job && job.active !== false) {\n if (!!(process.env.NODE_ENV !== \"production\") && check(job)) {\n continue;\n }\n callWithErrorHandling(job, null, 14);\n }\n }\n } finally {\n flushIndex = 0;\n queue.length = 0;\n flushPostFlushCbs(seen);\n isFlushing = false;\n currentFlushPromise = null;\n if (queue.length || pendingPostFlushCbs.length) {\n flushJobs(seen);\n }\n }\n}\nfunction checkRecursiveUpdates(seen, fn) {\n if (!seen.has(fn)) {\n seen.set(fn, 1);\n } else {\n const count = seen.get(fn);\n if (count > RECURSION_LIMIT) {\n const instance = fn.ownerInstance;\n const componentName = instance && getComponentName(instance.type);\n handleError(\n `Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`,\n null,\n 10\n );\n return true;\n } else {\n seen.set(fn, count + 1);\n }\n }\n}\n\nlet devtools;\nlet buffer = [];\nlet devtoolsNotInstalled = false;\nfunction emit$1(event, ...args) {\n if (devtools) {\n devtools.emit(event, ...args);\n } else if (!devtoolsNotInstalled) {\n buffer.push({ event, args });\n }\n}\nfunction setDevtoolsHook(hook, target) {\n var _a, _b;\n devtools = hook;\n if (devtools) {\n devtools.enabled = true;\n buffer.forEach(({ event, args }) => devtools.emit(event, ...args));\n buffer = [];\n } else if (\n // handle late devtools injection - only do this if we are in an actual\n // browser environment to avoid the timer handle stalling test runner exit\n // (#4815)\n typeof window !== \"undefined\" && // some envs mock window but not fully\n window.HTMLElement && // also exclude jsdom\n !((_b = (_a = window.navigator) == null ? void 0 : _a.userAgent) == null ? void 0 : _b.includes(\"jsdom\"))\n ) {\n const replay = target.__VUE_DEVTOOLS_HOOK_REPLAY__ = target.__VUE_DEVTOOLS_HOOK_REPLAY__ || [];\n replay.push((newHook) => {\n setDevtoolsHook(newHook, target);\n });\n setTimeout(() => {\n if (!devtools) {\n target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null;\n devtoolsNotInstalled = true;\n buffer = [];\n }\n }, 3e3);\n } else {\n devtoolsNotInstalled = true;\n buffer = [];\n }\n}\nfunction devtoolsInitApp(app, version) {\n emit$1(\"app:init\" /* APP_INIT */, app, version, {\n Fragment,\n Text,\n Comment,\n Static\n });\n}\nconst devtoolsComponentAdded = /* @__PURE__ */ createDevtoolsComponentHook(\n \"component:added\" /* COMPONENT_ADDED */\n);\nconst devtoolsComponentUpdated = /* @__PURE__ */ createDevtoolsComponentHook(\"component:updated\" /* COMPONENT_UPDATED */);\nconst _devtoolsComponentRemoved = /* @__PURE__ */ createDevtoolsComponentHook(\n \"component:removed\" /* COMPONENT_REMOVED */\n);\nconst devtoolsComponentRemoved = (component) => {\n if (devtools && typeof devtools.cleanupBuffer === \"function\" && // remove the component if it wasn't buffered\n !devtools.cleanupBuffer(component)) {\n _devtoolsComponentRemoved(component);\n }\n};\n/*! #__NO_SIDE_EFFECTS__ */\n// @__NO_SIDE_EFFECTS__\nfunction createDevtoolsComponentHook(hook) {\n return (component) => {\n emit$1(\n hook,\n component.appContext.app,\n component.uid,\n // fixed by xxxxxx\n // 为 0 是 App无 parent 是 Page 指向 App\n component.uid === 0 ? void 0 : component.parent ? component.parent.uid : 0,\n component\n );\n };\n}\nconst devtoolsPerfStart = /* @__PURE__ */ createDevtoolsPerformanceHook(\n \"perf:start\" /* PERFORMANCE_START */\n);\nconst devtoolsPerfEnd = /* @__PURE__ */ createDevtoolsPerformanceHook(\n \"perf:end\" /* PERFORMANCE_END */\n);\nfunction createDevtoolsPerformanceHook(hook) {\n return (component, type, time) => {\n emit$1(hook, component.appContext.app, component.uid, component, type, time);\n };\n}\nfunction devtoolsComponentEmit(component, event, params) {\n emit$1(\n \"component:emit\" /* COMPONENT_EMIT */,\n component.appContext.app,\n component,\n event,\n params\n );\n}\n\nfunction emit(instance, event, ...rawArgs) {\n if (instance.isUnmounted)\n return;\n const props = instance.vnode.props || EMPTY_OBJ;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const {\n emitsOptions,\n propsOptions: [propsOptions]\n } = instance;\n if (emitsOptions) {\n if (!(event in emitsOptions) && true) {\n if (!propsOptions || !(toHandlerKey(event) in propsOptions)) {\n warn$1(\n `Component emitted event \"${event}\" but it is neither declared in the emits option nor as an \"${toHandlerKey(event)}\" prop.`\n );\n }\n } else {\n const validator = emitsOptions[event];\n if (isFunction(validator)) {\n const isValid = validator(...rawArgs);\n if (!isValid) {\n warn$1(\n `Invalid event arguments: event validation failed for event \"${event}\".`\n );\n }\n }\n }\n }\n }\n let args = rawArgs;\n const isModelListener = event.startsWith(\"update:\");\n const modelArg = isModelListener && event.slice(7);\n if (modelArg && modelArg in props) {\n const modifiersKey = `${modelArg === \"modelValue\" ? \"model\" : modelArg}Modifiers`;\n const { number, trim } = props[modifiersKey] || EMPTY_OBJ;\n if (trim) {\n args = rawArgs.map((a) => isString(a) ? a.trim() : a);\n }\n if (number) {\n args = rawArgs.map(looseToNumber);\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentEmit(instance, event, args);\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const lowerCaseEvent = event.toLowerCase();\n if (lowerCaseEvent !== event && props[toHandlerKey(lowerCaseEvent)]) {\n warn$1(\n `Event \"${lowerCaseEvent}\" is emitted in component ${formatComponentName(\n instance,\n instance.type\n )} but the handler is registered for \"${event}\". Note that HTML attributes are case-insensitive and you cannot use v-on to listen to camelCase events when using in-DOM templates. You should probably use \"${hyphenate(\n event\n )}\" instead of \"${event}\".`\n );\n }\n }\n let handlerName;\n let handler = props[handlerName = toHandlerKey(event)] || // also try camelCase event handler (#2249)\n props[handlerName = toHandlerKey(camelize(event))];\n if (!handler && isModelListener) {\n handler = props[handlerName = toHandlerKey(hyphenate(event))];\n }\n if (handler) {\n callWithAsyncErrorHandling(\n handler,\n instance,\n 6,\n args\n );\n }\n const onceHandler = props[handlerName + `Once`];\n if (onceHandler) {\n if (!instance.emitted) {\n instance.emitted = {};\n } else if (instance.emitted[handlerName]) {\n return;\n }\n instance.emitted[handlerName] = true;\n callWithAsyncErrorHandling(\n onceHandler,\n instance,\n 6,\n args\n );\n }\n}\nfunction normalizeEmitsOptions(comp, appContext, asMixin = false) {\n const cache = appContext.emitsCache;\n const cached = cache.get(comp);\n if (cached !== void 0) {\n return cached;\n }\n const raw = comp.emits;\n let normalized = {};\n let hasExtends = false;\n if (__VUE_OPTIONS_API__ && !isFunction(comp)) {\n const extendEmits = (raw2) => {\n const normalizedFromExtend = normalizeEmitsOptions(raw2, appContext, true);\n if (normalizedFromExtend) {\n hasExtends = true;\n extend(normalized, normalizedFromExtend);\n }\n };\n if (!asMixin && appContext.mixins.length) {\n appContext.mixins.forEach(extendEmits);\n }\n if (comp.extends) {\n extendEmits(comp.extends);\n }\n if (comp.mixins) {\n comp.mixins.forEach(extendEmits);\n }\n }\n if (!raw && !hasExtends) {\n if (isObject(comp)) {\n cache.set(comp, null);\n }\n return null;\n }\n if (isArray(raw)) {\n raw.forEach((key) => normalized[key] = null);\n } else {\n extend(normalized, raw);\n }\n if (isObject(comp)) {\n cache.set(comp, normalized);\n }\n return normalized;\n}\nfunction isEmitListener(options, key) {\n if (!options || !isOn(key)) {\n return false;\n }\n key = key.slice(2).replace(/Once$/, \"\");\n return hasOwn(options, key[0].toLowerCase() + key.slice(1)) || hasOwn(options, hyphenate(key)) || hasOwn(options, key);\n}\n\nlet currentRenderingInstance = null;\nlet currentScopeId = null;\nfunction setCurrentRenderingInstance(instance) {\n const prev = currentRenderingInstance;\n currentRenderingInstance = instance;\n currentScopeId = instance && instance.type.__scopeId || null;\n return prev;\n}\nconst withScopeId = (_id) => withCtx;\nfunction withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot) {\n if (!ctx)\n return fn;\n if (fn._n) {\n return fn;\n }\n const renderFnWithContext = (...args) => {\n if (renderFnWithContext._d) {\n setBlockTracking(-1);\n }\n const prevInstance = setCurrentRenderingInstance(ctx);\n let res;\n try {\n res = fn(...args);\n } finally {\n setCurrentRenderingInstance(prevInstance);\n if (renderFnWithContext._d) {\n setBlockTracking(1);\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentUpdated(ctx);\n }\n return res;\n };\n renderFnWithContext._n = true;\n renderFnWithContext._c = true;\n renderFnWithContext._d = true;\n return renderFnWithContext;\n}\n\nfunction markAttrsAccessed() {\n}\n\nconst COMPONENTS = \"components\";\nconst DIRECTIVES = \"directives\";\nfunction resolveComponent(name, maybeSelfReference) {\n return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name;\n}\nconst NULL_DYNAMIC_COMPONENT = Symbol.for(\"v-ndc\");\nfunction resolveDirective(name) {\n return resolveAsset(DIRECTIVES, name);\n}\nfunction resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) {\n const instance = currentRenderingInstance || currentInstance;\n if (instance) {\n const Component = instance.type;\n if (type === COMPONENTS) {\n const selfName = getComponentName(\n Component,\n false\n );\n if (selfName && (selfName === name || selfName === camelize(name) || selfName === capitalize(camelize(name)))) {\n return Component;\n }\n }\n const res = (\n // local registration\n // check instance[type] first which is resolved for options API\n resolve(instance[type] || Component[type], name) || // global registration\n resolve(instance.appContext[type], name)\n );\n if (!res && maybeSelfReference) {\n return Component;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && warnMissing && !res) {\n const extra = type === COMPONENTS ? `\nIf this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.` : ``;\n warn$1(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`);\n }\n return res;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `resolve${capitalize(type.slice(0, -1))} can only be used in render() or setup().`\n );\n }\n}\nfunction resolve(registry, name) {\n return registry && (registry[name] || registry[camelize(name)] || registry[capitalize(camelize(name))]);\n}\n\nconst ssrContextKey = Symbol.for(\"v-scx\");\nconst useSSRContext = () => {\n {\n const ctx = inject(ssrContextKey);\n if (!ctx) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(\n `Server rendering context not provided. Make sure to only call useSSRContext() conditionally in the server build.`\n );\n }\n return ctx;\n }\n};\n\nfunction watchEffect(effect, options) {\n return doWatch(effect, null, options);\n}\nfunction watchPostEffect(effect, options) {\n return doWatch(\n effect,\n null,\n !!(process.env.NODE_ENV !== \"production\") ? extend({}, options, { flush: \"post\" }) : { flush: \"post\" }\n );\n}\nfunction watchSyncEffect(effect, options) {\n return doWatch(\n effect,\n null,\n !!(process.env.NODE_ENV !== \"production\") ? extend({}, options, { flush: \"sync\" }) : { flush: \"sync\" }\n );\n}\nconst INITIAL_WATCHER_VALUE = {};\nfunction watch(source, cb, options) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isFunction(cb)) {\n warn$1(\n `\\`watch(fn, options?)\\` signature has been moved to a separate API. Use \\`watchEffect(fn, options?)\\` instead. \\`watch\\` now only supports \\`watch(source, cb, options?) signature.`\n );\n }\n return doWatch(source, cb, options);\n}\nfunction doWatch(source, cb, {\n immediate,\n deep,\n flush,\n once,\n onTrack,\n onTrigger\n} = EMPTY_OBJ) {\n if (cb && once) {\n const _cb = cb;\n cb = (...args) => {\n _cb(...args);\n unwatch();\n };\n }\n if (!!(process.env.NODE_ENV !== \"production\") && deep !== void 0 && typeof deep === \"number\") {\n warn$1(\n `watch() \"deep\" option with number value will be used as watch depth in future versions. Please use a boolean instead to avoid potential breakage.`\n );\n }\n if (!!(process.env.NODE_ENV !== \"production\") && !cb) {\n if (immediate !== void 0) {\n warn$1(\n `watch() \"immediate\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n if (deep !== void 0) {\n warn$1(\n `watch() \"deep\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n if (once !== void 0) {\n warn$1(\n `watch() \"once\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n }\n const warnInvalidSource = (s) => {\n warn$1(\n `Invalid watch source: `,\n s,\n `A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.`\n );\n };\n const instance = currentInstance;\n const reactiveGetter = (source2) => deep === true ? source2 : (\n // for deep: false, only traverse root-level properties\n traverse(source2, deep === false ? 1 : void 0)\n );\n let getter;\n let forceTrigger = false;\n let isMultiSource = false;\n if (isRef(source)) {\n getter = () => source.value;\n forceTrigger = isShallow(source);\n } else if (isReactive(source)) {\n getter = () => reactiveGetter(source);\n forceTrigger = true;\n } else if (isArray(source)) {\n isMultiSource = true;\n forceTrigger = source.some((s) => isReactive(s) || isShallow(s));\n getter = () => source.map((s) => {\n if (isRef(s)) {\n return s.value;\n } else if (isReactive(s)) {\n return reactiveGetter(s);\n } else if (isFunction(s)) {\n return callWithErrorHandling(s, instance, 2);\n } else {\n !!(process.env.NODE_ENV !== \"production\") && warnInvalidSource(s);\n }\n });\n } else if (isFunction(source)) {\n if (cb) {\n getter = () => callWithErrorHandling(source, instance, 2);\n } else {\n getter = () => {\n if (cleanup) {\n cleanup();\n }\n return callWithAsyncErrorHandling(\n source,\n instance,\n 3,\n [onCleanup]\n );\n };\n }\n } else {\n getter = NOOP;\n !!(process.env.NODE_ENV !== \"production\") && warnInvalidSource(source);\n }\n if (cb && deep) {\n const baseGetter = getter;\n getter = () => traverse(baseGetter());\n }\n let cleanup;\n let onCleanup = (fn) => {\n cleanup = effect.onStop = () => {\n callWithErrorHandling(fn, instance, 4);\n cleanup = effect.onStop = void 0;\n };\n };\n let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE;\n const job = () => {\n if (!effect.active || !effect.dirty) {\n return;\n }\n if (cb) {\n const newValue = effect.run();\n if (deep || forceTrigger || (isMultiSource ? newValue.some((v, i) => hasChanged(v, oldValue[i])) : hasChanged(newValue, oldValue)) || false) {\n if (cleanup) {\n cleanup();\n }\n callWithAsyncErrorHandling(cb, instance, 3, [\n newValue,\n // pass undefined as the old value when it's changed for the first time\n oldValue === INITIAL_WATCHER_VALUE ? void 0 : isMultiSource && oldValue[0] === INITIAL_WATCHER_VALUE ? [] : oldValue,\n onCleanup\n ]);\n oldValue = newValue;\n }\n } else {\n effect.run();\n }\n };\n job.allowRecurse = !!cb;\n let scheduler;\n if (flush === \"sync\") {\n scheduler = job;\n } else if (flush === \"post\") {\n scheduler = () => queuePostRenderEffect$1(job, instance && instance.suspense);\n } else {\n job.pre = true;\n if (instance)\n job.id = instance.uid;\n scheduler = () => queueJob(job);\n }\n const effect = new ReactiveEffect(getter, NOOP, scheduler);\n const scope = getCurrentScope();\n const unwatch = () => {\n effect.stop();\n if (scope) {\n remove(scope.effects, effect);\n }\n };\n if (!!(process.env.NODE_ENV !== \"production\")) {\n effect.onTrack = onTrack;\n effect.onTrigger = onTrigger;\n }\n if (cb) {\n if (immediate) {\n job();\n } else {\n oldValue = effect.run();\n }\n } else if (flush === \"post\") {\n queuePostRenderEffect$1(\n effect.run.bind(effect),\n instance && instance.suspense\n );\n } else {\n effect.run();\n }\n return unwatch;\n}\nfunction instanceWatch(source, value, options) {\n const publicThis = this.proxy;\n const getter = isString(source) ? source.includes(\".\") ? createPathGetter(publicThis, source) : () => publicThis[source] : source.bind(publicThis, publicThis);\n let cb;\n if (isFunction(value)) {\n cb = value;\n } else {\n cb = value.handler;\n options = value;\n }\n const reset = setCurrentInstance(this);\n const res = doWatch(getter, cb.bind(publicThis), options);\n reset();\n return res;\n}\nfunction createPathGetter(ctx, path) {\n const segments = path.split(\".\");\n return () => {\n let cur = ctx;\n for (let i = 0; i < segments.length && cur; i++) {\n cur = cur[segments[i]];\n }\n return cur;\n };\n}\nfunction traverse(value, depth, currentDepth = 0, seen) {\n if (!isObject(value) || value[\"__v_skip\"]) {\n return value;\n }\n if (depth && depth > 0) {\n if (currentDepth >= depth) {\n return value;\n }\n currentDepth++;\n }\n seen = seen || /* @__PURE__ */ new Set();\n if (seen.has(value)) {\n return value;\n }\n seen.add(value);\n if (isRef(value)) {\n traverse(value.value, depth, currentDepth, seen);\n } else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n traverse(value[i], depth, currentDepth, seen);\n }\n } else if (isSet(value) || isMap(value)) {\n value.forEach((v) => {\n traverse(v, depth, currentDepth, seen);\n });\n } else if (isPlainObject(value)) {\n for (const key in value) {\n traverse(value[key], depth, currentDepth, seen);\n }\n }\n return value;\n}\n\nfunction validateDirectiveName(name) {\n if (isBuiltInDirective(name)) {\n warn$1(\"Do not use built-in directive ids as custom directive id: \" + name);\n }\n}\nfunction withDirectives(vnode, directives) {\n if (currentRenderingInstance === null) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(`withDirectives can only be used inside render functions.`);\n return vnode;\n }\n const instance = getExposeProxy(currentRenderingInstance) || currentRenderingInstance.proxy;\n const bindings = vnode.dirs || (vnode.dirs = []);\n for (let i = 0; i < directives.length; i++) {\n let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i];\n if (dir) {\n if (isFunction(dir)) {\n dir = {\n mounted: dir,\n updated: dir\n };\n }\n if (dir.deep) {\n traverse(value);\n }\n bindings.push({\n dir,\n instance,\n value,\n oldValue: void 0,\n arg,\n modifiers\n });\n }\n }\n return vnode;\n}\n\nfunction createAppContext() {\n return {\n app: null,\n config: {\n isNativeTag: NO,\n performance: false,\n globalProperties: {},\n optionMergeStrategies: {},\n errorHandler: void 0,\n warnHandler: void 0,\n compilerOptions: {}\n },\n mixins: [],\n components: {},\n directives: {},\n provides: /* @__PURE__ */ Object.create(null),\n optionsCache: /* @__PURE__ */ new WeakMap(),\n propsCache: /* @__PURE__ */ new WeakMap(),\n emitsCache: /* @__PURE__ */ new WeakMap()\n };\n}\nlet uid$1 = 0;\nfunction createAppAPI(render, hydrate) {\n return function createApp(rootComponent, rootProps = null) {\n if (!isFunction(rootComponent)) {\n rootComponent = extend({}, rootComponent);\n }\n if (rootProps != null && !isObject(rootProps)) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(`root props passed to app.mount() must be an object.`);\n rootProps = null;\n }\n const context = createAppContext();\n const installedPlugins = /* @__PURE__ */ new WeakSet();\n const app = context.app = {\n _uid: uid$1++,\n _component: rootComponent,\n _props: rootProps,\n _container: null,\n _context: context,\n _instance: null,\n version,\n get config() {\n return context.config;\n },\n set config(v) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `app.config cannot be replaced. Modify individual options instead.`\n );\n }\n },\n use(plugin, ...options) {\n if (installedPlugins.has(plugin)) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(`Plugin has already been applied to target app.`);\n } else if (plugin && isFunction(plugin.install)) {\n installedPlugins.add(plugin);\n plugin.install(app, ...options);\n } else if (isFunction(plugin)) {\n installedPlugins.add(plugin);\n plugin(app, ...options);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `A plugin must either be a function or an object with an \"install\" function.`\n );\n }\n return app;\n },\n mixin(mixin) {\n if (__VUE_OPTIONS_API__) {\n if (!context.mixins.includes(mixin)) {\n context.mixins.push(mixin);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n \"Mixin has already been applied to target app\" + (mixin.name ? `: ${mixin.name}` : \"\")\n );\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\"Mixins are only available in builds supporting Options API\");\n }\n return app;\n },\n component(name, component) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n validateComponentName(name, context.config);\n }\n if (!component) {\n return context.components[name];\n }\n if (!!(process.env.NODE_ENV !== \"production\") && context.components[name]) {\n warn$1(`Component \"${name}\" has already been registered in target app.`);\n }\n context.components[name] = component;\n return app;\n },\n directive(name, directive) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n validateDirectiveName(name);\n }\n if (!directive) {\n return context.directives[name];\n }\n if (!!(process.env.NODE_ENV !== \"production\") && context.directives[name]) {\n warn$1(`Directive \"${name}\" has already been registered in target app.`);\n }\n context.directives[name] = directive;\n return app;\n },\n // fixed by xxxxxx\n mount() {\n },\n // fixed by xxxxxx\n unmount() {\n },\n provide(key, value) {\n if (!!(process.env.NODE_ENV !== \"production\") && key in context.provides) {\n warn$1(\n `App already provides property with key \"${String(key)}\". It will be overwritten with the new value.`\n );\n }\n context.provides[key] = value;\n return app;\n },\n runWithContext(fn) {\n const lastApp = currentApp;\n currentApp = app;\n try {\n return fn();\n } finally {\n currentApp = lastApp;\n }\n }\n };\n return app;\n };\n}\nlet currentApp = null;\n\nfunction provide(key, value) {\n if (!currentInstance) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`provide() can only be used inside setup().`);\n }\n } else {\n let provides = currentInstance.provides;\n const parentProvides = currentInstance.parent && currentInstance.parent.provides;\n if (parentProvides === provides) {\n provides = currentInstance.provides = Object.create(parentProvides);\n }\n provides[key] = value;\n if (currentInstance.type.mpType === \"app\") {\n currentInstance.appContext.app.provide(key, value);\n }\n }\n}\nfunction inject(key, defaultValue, treatDefaultAsFactory = false) {\n const instance = currentInstance || currentRenderingInstance;\n if (instance || currentApp) {\n const provides = instance ? instance.parent == null ? instance.vnode.appContext && instance.vnode.appContext.provides : instance.parent.provides : currentApp._context.provides;\n if (provides && key in provides) {\n return provides[key];\n } else if (arguments.length > 1) {\n return treatDefaultAsFactory && isFunction(defaultValue) ? defaultValue.call(instance && instance.proxy) : defaultValue;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`injection \"${String(key)}\" not found.`);\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`inject() can only be used inside setup() or functional components.`);\n }\n}\nfunction hasInjectionContext() {\n return !!(currentInstance || currentRenderingInstance || currentApp);\n}\n\n/*! #__NO_SIDE_EFFECTS__ */\n// @__NO_SIDE_EFFECTS__\nfunction defineComponent(options, extraOptions) {\n return isFunction(options) ? (\n // #8326: extend call and options.name access are considered side-effects\n // by Rollup, so we have to wrap it in a pure-annotated IIFE.\n /* @__PURE__ */ (() => extend({ name: options.name }, extraOptions, { setup: options }))()\n ) : options;\n}\n\nconst isKeepAlive = (vnode) => vnode.type.__isKeepAlive;\nfunction onActivated(hook, target) {\n registerKeepAliveHook(hook, \"a\", target);\n}\nfunction onDeactivated(hook, target) {\n registerKeepAliveHook(hook, \"da\", target);\n}\nfunction registerKeepAliveHook(hook, type, target = currentInstance) {\n const wrappedHook = hook.__wdc || (hook.__wdc = () => {\n let current = target;\n while (current) {\n if (current.isDeactivated) {\n return;\n }\n current = current.parent;\n }\n return hook();\n });\n injectHook(type, wrappedHook, target);\n if (target) {\n let current = target.parent;\n while (current && current.parent) {\n if (isKeepAlive(current.parent.vnode)) {\n injectToKeepAliveRoot(wrappedHook, type, target, current);\n }\n current = current.parent;\n }\n }\n}\nfunction injectToKeepAliveRoot(hook, type, target, keepAliveRoot) {\n const injected = injectHook(\n type,\n hook,\n keepAliveRoot,\n true\n /* prepend */\n );\n onUnmounted(() => {\n remove(keepAliveRoot[type], injected);\n }, target);\n}\n\nfunction injectHook(type, hook, target = currentInstance, prepend = false) {\n if (target) {\n if (isRootHook(type)) {\n target = target.root;\n }\n const hooks = target[type] || (target[type] = []);\n const wrappedHook = hook.__weh || (hook.__weh = (...args) => {\n if (target.isUnmounted) {\n return;\n }\n pauseTracking();\n const reset = setCurrentInstance(target);\n const res = callWithAsyncErrorHandling(hook, target, type, args);\n reset();\n resetTracking();\n return res;\n });\n if (prepend) {\n hooks.unshift(wrappedHook);\n } else {\n hooks.push(wrappedHook);\n }\n return wrappedHook;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n const apiName = toHandlerKey(\n (ErrorTypeStrings[type] || type.replace(/^on/, \"\")).replace(/ hook$/, \"\")\n );\n warn$1(\n `${apiName} is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup().` + (``)\n );\n }\n}\nconst createHook = (lifecycle) => (hook, target = currentInstance) => (\n // post-create lifecycle registrations are noops during SSR (except for serverPrefetch)\n (!isInSSRComponentSetup || lifecycle === \"sp\") && injectHook(lifecycle, (...args) => hook(...args), target)\n);\nconst onBeforeMount = createHook(\"bm\");\nconst onMounted = createHook(\"m\");\nconst onBeforeUpdate = createHook(\"bu\");\nconst onUpdated = createHook(\"u\");\nconst onBeforeUnmount = createHook(\"bum\");\nconst onUnmounted = createHook(\"um\");\nconst onServerPrefetch = createHook(\"sp\");\nconst onRenderTriggered = createHook(\n \"rtg\"\n);\nconst onRenderTracked = createHook(\n \"rtc\"\n);\nfunction onErrorCaptured(hook, target = currentInstance) {\n injectHook(\"ec\", hook, target);\n}\n\nfunction toHandlers(obj, preserveCaseIfNecessary) {\n const ret = {};\n if (!!(process.env.NODE_ENV !== \"production\") && !isObject(obj)) {\n warn$1(`v-on with no argument expects an object value.`);\n return ret;\n }\n for (const key in obj) {\n ret[preserveCaseIfNecessary && /[A-Z]/.test(key) ? `on:${key}` : toHandlerKey(key)] = obj[key];\n }\n return ret;\n}\n\nconst getPublicInstance = (i) => {\n if (!i)\n return null;\n if (isStatefulComponent(i))\n return getExposeProxy(i) || i.proxy;\n return getPublicInstance(i.parent);\n};\nconst publicPropertiesMap = (\n // Move PURE marker to new line to workaround compiler discarding it\n // due to type annotation\n /* @__PURE__ */ extend(/* @__PURE__ */ Object.create(null), {\n $: (i) => i,\n // fixed by xxxxxx vue-i18n 在 dev 模式,访问了 $el故模拟一个假的\n // $el: i => i.vnode.el,\n $el: (i) => i.__$el || (i.__$el = {}),\n $data: (i) => i.data,\n $props: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.props) : i.props,\n $attrs: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.attrs) : i.attrs,\n $slots: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.slots) : i.slots,\n $refs: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.refs) : i.refs,\n $parent: (i) => getPublicInstance(i.parent),\n $root: (i) => getPublicInstance(i.root),\n $emit: (i) => i.emit,\n $options: (i) => __VUE_OPTIONS_API__ ? resolveMergedOptions(i) : i.type,\n $forceUpdate: (i) => i.f || (i.f = () => {\n i.effect.dirty = true;\n queueJob(i.update);\n }),\n // $nextTick: i => i.n || (i.n = nextTick.bind(i.proxy!)),// fixed by xxxxxx\n $watch: (i) => __VUE_OPTIONS_API__ ? instanceWatch.bind(i) : NOOP\n })\n);\nconst isReservedPrefix = (key) => key === \"_\" || key === \"$\";\nconst hasSetupBinding = (state, key) => state !== EMPTY_OBJ && !state.__isScriptSetup && hasOwn(state, key);\nconst PublicInstanceProxyHandlers = {\n get({ _: instance }, key) {\n const { ctx, setupState, data, props, accessCache, type, appContext } = instance;\n if (!!(process.env.NODE_ENV !== \"production\") && key === \"__isVue\") {\n return true;\n }\n let normalizedProps;\n if (key[0] !== \"$\") {\n const n = accessCache[key];\n if (n !== void 0) {\n switch (n) {\n case 1 /* SETUP */:\n return setupState[key];\n case 2 /* DATA */:\n return data[key];\n case 4 /* CONTEXT */:\n return ctx[key];\n case 3 /* PROPS */:\n return props[key];\n }\n } else if (hasSetupBinding(setupState, key)) {\n accessCache[key] = 1 /* SETUP */;\n return setupState[key];\n } else if (data !== EMPTY_OBJ && hasOwn(data, key)) {\n accessCache[key] = 2 /* DATA */;\n return data[key];\n } else if (\n // only cache other properties when instance has declared (thus stable)\n // props\n (normalizedProps = instance.propsOptions[0]) && hasOwn(normalizedProps, key)\n ) {\n accessCache[key] = 3 /* PROPS */;\n return props[key];\n } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4 /* CONTEXT */;\n return ctx[key];\n } else if (!__VUE_OPTIONS_API__ || shouldCacheAccess) {\n accessCache[key] = 0 /* OTHER */;\n }\n }\n const publicGetter = publicPropertiesMap[key];\n let cssModule, globalProperties;\n if (publicGetter) {\n if (key === \"$attrs\") {\n track(instance, \"get\", key);\n !!(process.env.NODE_ENV !== \"production\") && markAttrsAccessed();\n } else if (!!(process.env.NODE_ENV !== \"production\") && key === \"$slots\") {\n track(instance, \"get\", key);\n }\n return publicGetter(instance);\n } else if (\n // css module (injected by vue-loader)\n (cssModule = type.__cssModules) && (cssModule = cssModule[key])\n ) {\n return cssModule;\n } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4 /* CONTEXT */;\n return ctx[key];\n } else if (\n // global properties\n globalProperties = appContext.config.globalProperties, hasOwn(globalProperties, key)\n ) {\n {\n return globalProperties[key];\n }\n } else if (!!(process.env.NODE_ENV !== \"production\") && currentRenderingInstance && (!isString(key) || // #1091 avoid internal isRef/isVNode checks on component instance leading\n // to infinite warning loop\n key.indexOf(\"__v\") !== 0)) {\n if (data !== EMPTY_OBJ && isReservedPrefix(key[0]) && hasOwn(data, key)) {\n warn$1(\n `Property ${JSON.stringify(\n key\n )} must be accessed via $data because it starts with a reserved character (\"$\" or \"_\") and is not proxied on the render context.`\n );\n } else if (instance === currentRenderingInstance) {\n warn$1(\n `Property ${JSON.stringify(key)} was accessed during render but is not defined on instance.`\n );\n }\n }\n },\n set({ _: instance }, key, value) {\n const { data, setupState, ctx } = instance;\n if (hasSetupBinding(setupState, key)) {\n setupState[key] = value;\n return true;\n } else if (!!(process.env.NODE_ENV !== \"production\") && setupState.__isScriptSetup && hasOwn(setupState, key)) {\n warn$1(`Cannot mutate <script setup> binding \"${key}\" from Options API.`);\n return false;\n } else if (data !== EMPTY_OBJ && hasOwn(data, key)) {\n data[key] = value;\n return true;\n } else if (hasOwn(instance.props, key)) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(`Attempting to mutate prop \"${key}\". Props are readonly.`);\n return false;\n }\n if (key[0] === \"$\" && key.slice(1) in instance) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(\n `Attempting to mutate public property \"${key}\". Properties starting with $ are reserved and readonly.`\n );\n return false;\n } else {\n if (!!(process.env.NODE_ENV !== \"production\") && key in instance.appContext.config.globalProperties) {\n Object.defineProperty(ctx, key, {\n enumerable: true,\n configurable: true,\n value\n });\n } else {\n ctx[key] = value;\n }\n }\n return true;\n },\n has({\n _: { data, setupState, accessCache, ctx, appContext, propsOptions }\n }, key) {\n let normalizedProps;\n return !!accessCache[key] || data !== EMPTY_OBJ && hasOwn(data, key) || hasSetupBinding(setupState, key) || (normalizedProps = propsOptions[0]) && hasOwn(normalizedProps, key) || hasOwn(ctx, key) || hasOwn(publicPropertiesMap, key) || hasOwn(appContext.config.globalProperties, key);\n },\n defineProperty(target, key, descriptor) {\n if (descriptor.get != null) {\n target._.accessCache[key] = 0;\n } else if (hasOwn(descriptor, \"value\")) {\n this.set(target, key, descriptor.value, null);\n }\n return Reflect.defineProperty(target, key, descriptor);\n }\n};\nif (!!(process.env.NODE_ENV !== \"production\") && true) {\n PublicInstanceProxyHandlers.ownKeys = (target) => {\n warn$1(\n `Avoid app logic that relies on enumerating keys on a component instance. The keys will be empty in production mode to avoid performance overhead.`\n );\n return Reflect.ownKeys(target);\n };\n}\nfunction createDevRenderContext(instance) {\n const target = {};\n Object.defineProperty(target, `_`, {\n configurable: true,\n enumerable: false,\n get: () => instance\n });\n Object.keys(publicPropertiesMap).forEach((key) => {\n Object.defineProperty(target, key, {\n configurable: true,\n enumerable: false,\n get: () => publicPropertiesMap[key](instance),\n // intercepted by the proxy so no need for implementation,\n // but needed to prevent set errors\n set: NOOP\n });\n });\n return target;\n}\nfunction exposePropsOnRenderContext(instance) {\n const {\n ctx,\n propsOptions: [propsOptions]\n } = instance;\n if (propsOptions) {\n Object.keys(propsOptions).forEach((key) => {\n Object.defineProperty(ctx, key, {\n enumerable: true,\n configurable: true,\n get: () => instance.props[key],\n set: NOOP\n });\n });\n }\n}\nfunction exposeSetupStateOnRenderContext(instance) {\n const { ctx, setupState } = instance;\n Object.keys(toRaw(setupState)).forEach((key) => {\n if (!setupState.__isScriptSetup) {\n if (isReservedPrefix(key[0])) {\n warn$1(\n `setup() return property ${JSON.stringify(\n key\n )} should not start with \"$\" or \"_\" which are reserved prefixes for Vue internals.`\n );\n return;\n }\n Object.defineProperty(ctx, key, {\n enumerable: true,\n configurable: true,\n get: () => setupState[key],\n set: NOOP\n });\n }\n });\n}\n\nconst warnRuntimeUsage = (method) => warn$1(\n `${method}() is a compiler-hint helper that is only usable inside <script setup> of a single file component. Its arguments should be compiled away and passing it at runtime has no effect.`\n);\nfunction defineProps() {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warnRuntimeUsage(`defineProps`);\n }\n return null;\n}\nfunction defineEmits() {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warnRuntimeUsage(`defineEmits`);\n }\n return null;\n}\nfunction defineExpose(exposed) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warnRuntimeUsage(`defineExpose`);\n }\n}\nfunction withDefaults(props, defaults) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warnRuntimeUsage(`withDefaults`);\n }\n return null;\n}\nfunction useSlots() {\n return getContext().slots;\n}\nfunction useAttrs() {\n return getContext().attrs;\n}\nfunction getContext() {\n const i = getCurrentInstance();\n if (!!(process.env.NODE_ENV !== \"production\") && !i) {\n warn$1(`useContext() called without active instance.`);\n }\n return i.setupContext || (i.setupContext = createSetupContext(i));\n}\nfunction normalizePropsOrEmits(props) {\n return isArray(props) ? props.reduce(\n (normalized, p) => (normalized[p] = null, normalized),\n {}\n ) : props;\n}\nfunction mergeDefaults(raw, defaults) {\n const props = normalizePropsOrEmits(raw);\n for (const key in defaults) {\n if (key.startsWith(\"__skip\"))\n continue;\n let opt = props[key];\n if (opt) {\n if (isArray(opt) || isFunction(opt)) {\n opt = props[key] = { type: opt, default: defaults[key] };\n } else {\n opt.default = defaults[key];\n }\n } else if (opt === null) {\n opt = props[key] = { default: defaults[key] };\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`props default key \"${key}\" has no corresponding declaration.`);\n }\n if (opt && defaults[`__skip_${key}`]) {\n opt.skipFactory = true;\n }\n }\n return props;\n}\nfunction withAsyncContext(getAwaitable) {\n const ctx = getCurrentInstance();\n if (!!(process.env.NODE_ENV !== \"production\") && !ctx) {\n warn$1(\n `withAsyncContext called without active current instance. This is likely a bug.`\n );\n }\n let awaitable = getAwaitable();\n unsetCurrentInstance();\n if (isPromise(awaitable)) {\n awaitable = awaitable.catch((e) => {\n setCurrentInstance(ctx);\n throw e;\n });\n }\n return [awaitable, () => setCurrentInstance(ctx)];\n}\n\nfunction createDuplicateChecker() {\n const cache = /* @__PURE__ */ Object.create(null);\n return (type, key) => {\n if (cache[key]) {\n warn$1(`${type} property \"${key}\" is already defined in ${cache[key]}.`);\n } else {\n cache[key] = type;\n }\n };\n}\nlet shouldCacheAccess = true;\nfunction applyOptions$1(instance) {\n const options = resolveMergedOptions(instance);\n const publicThis = instance.proxy;\n const ctx = instance.ctx;\n shouldCacheAccess = false;\n if (options.beforeCreate) {\n callHook(options.beforeCreate, instance, \"bc\");\n }\n const {\n // state\n data: dataOptions,\n computed: computedOptions,\n methods,\n watch: watchOptions,\n provide: provideOptions,\n inject: injectOptions,\n // lifecycle\n created,\n beforeMount,\n mounted,\n beforeUpdate,\n updated,\n activated,\n deactivated,\n beforeDestroy,\n beforeUnmount,\n destroyed,\n unmounted,\n render,\n renderTracked,\n renderTriggered,\n errorCaptured,\n serverPrefetch,\n // public API\n expose,\n inheritAttrs,\n // assets\n components,\n directives,\n filters\n } = options;\n const checkDuplicateProperties = !!(process.env.NODE_ENV !== \"production\") ? createDuplicateChecker() : null;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const [propsOptions] = instance.propsOptions;\n if (propsOptions) {\n for (const key in propsOptions) {\n checkDuplicateProperties(\"Props\" /* PROPS */, key);\n }\n }\n }\n if (!__VUE_CREATED_DEFERRED__ && injectOptions) {\n resolveInjections(injectOptions, ctx, checkDuplicateProperties);\n }\n if (methods) {\n for (const key in methods) {\n const methodHandler = methods[key];\n if (isFunction(methodHandler)) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n Object.defineProperty(ctx, key, {\n value: methodHandler.bind(publicThis),\n configurable: true,\n enumerable: true,\n writable: true\n });\n } else {\n ctx[key] = methodHandler.bind(publicThis);\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n checkDuplicateProperties(\"Methods\" /* METHODS */, key);\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `Method \"${key}\" has type \"${typeof methodHandler}\" in the component definition. Did you reference the function correctly?`\n );\n }\n }\n }\n if (dataOptions) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isFunction(dataOptions)) {\n warn$1(\n `The data option must be a function. Plain object usage is no longer supported.`\n );\n }\n const data = dataOptions.call(publicThis, publicThis);\n if (!!(process.env.NODE_ENV !== \"production\") && isPromise(data)) {\n warn$1(\n `data() returned a Promise - note data() cannot be async; If you intend to perform data fetching before component renders, use async setup() + <Suspense>.`\n );\n }\n if (!isObject(data)) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(`data() should return an object.`);\n } else {\n instance.data = reactive(data);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n for (const key in data) {\n checkDuplicateProperties(\"Data\" /* DATA */, key);\n if (!isReservedPrefix(key[0])) {\n Object.defineProperty(ctx, key, {\n configurable: true,\n enumerable: true,\n get: () => data[key],\n set: NOOP\n });\n }\n }\n }\n }\n }\n shouldCacheAccess = true;\n if (computedOptions) {\n for (const key in computedOptions) {\n const opt = computedOptions[key];\n const get = isFunction(opt) ? opt.bind(publicThis, publicThis) : isFunction(opt.get) ? opt.get.bind(publicThis, publicThis) : NOOP;\n if (!!(process.env.NODE_ENV !== \"production\") && get === NOOP) {\n warn$1(`Computed property \"${key}\" has no getter.`);\n }\n const set = !isFunction(opt) && isFunction(opt.set) ? opt.set.bind(publicThis) : !!(process.env.NODE_ENV !== \"production\") ? () => {\n warn$1(\n `Write operation failed: computed property \"${key}\" is readonly.`\n );\n } : NOOP;\n const c = computed({\n get,\n set\n });\n Object.defineProperty(ctx, key, {\n enumerable: true,\n configurable: true,\n get: () => c.value,\n set: (v) => c.value = v\n });\n if (!!(process.env.NODE_ENV !== \"production\")) {\n checkDuplicateProperties(\"Computed\" /* COMPUTED */, key);\n }\n }\n }\n if (watchOptions) {\n for (const key in watchOptions) {\n createWatcher(watchOptions[key], ctx, publicThis, key);\n }\n }\n if (!__VUE_CREATED_DEFERRED__) {\n if (provideOptions) {\n const provides = isFunction(provideOptions) ? provideOptions.call(publicThis) : provideOptions;\n Reflect.ownKeys(provides).forEach((key) => {\n provide(key, provides[key]);\n });\n }\n }\n if (__VUE_CREATED_DEFERRED__) {\n ctx.$callCreatedHook = function(name) {\n if (created) {\n return callHook(created, instance, \"c\");\n }\n };\n } else {\n if (created) {\n callHook(created, instance, \"c\");\n }\n }\n function registerLifecycleHook(register, hook) {\n if (isArray(hook)) {\n hook.forEach((_hook) => register(_hook.bind(publicThis)));\n } else if (hook) {\n register(hook.bind(publicThis));\n }\n }\n registerLifecycleHook(onBeforeMount, beforeMount);\n registerLifecycleHook(onMounted, mounted);\n registerLifecycleHook(onBeforeUpdate, beforeUpdate);\n registerLifecycleHook(onUpdated, updated);\n registerLifecycleHook(onActivated, activated);\n registerLifecycleHook(onDeactivated, deactivated);\n registerLifecycleHook(onErrorCaptured, errorCaptured);\n registerLifecycleHook(onRenderTracked, renderTracked);\n registerLifecycleHook(onRenderTriggered, renderTriggered);\n registerLifecycleHook(onBeforeUnmount, beforeUnmount);\n registerLifecycleHook(onUnmounted, unmounted);\n registerLifecycleHook(onServerPrefetch, serverPrefetch);\n if (isArray(expose)) {\n if (expose.length) {\n const exposed = instance.exposed || (instance.exposed = {});\n expose.forEach((key) => {\n Object.defineProperty(exposed, key, {\n get: () => publicThis[key],\n set: (val) => publicThis[key] = val\n });\n });\n } else if (!instance.exposed) {\n instance.exposed = {};\n }\n }\n if (render && instance.render === NOOP) {\n instance.render = render;\n }\n if (inheritAttrs != null) {\n instance.inheritAttrs = inheritAttrs;\n }\n if (components)\n instance.components = components;\n if (directives)\n instance.directives = directives;\n if (instance.ctx.$onApplyOptions) {\n instance.ctx.$onApplyOptions(options, instance, publicThis);\n }\n}\nfunction resolveInjections(injectOptions, ctx, checkDuplicateProperties = NOOP) {\n if (isArray(injectOptions)) {\n injectOptions = normalizeInject(injectOptions);\n }\n for (const key in injectOptions) {\n const opt = injectOptions[key];\n let injected;\n if (isObject(opt)) {\n if (\"default\" in opt) {\n injected = inject(\n opt.from || key,\n opt.default,\n true\n );\n } else {\n injected = inject(opt.from || key);\n }\n } else {\n injected = inject(opt);\n }\n if (isRef(injected)) {\n Object.defineProperty(ctx, key, {\n enumerable: true,\n configurable: true,\n get: () => injected.value,\n set: (v) => injected.value = v\n });\n } else {\n ctx[key] = injected;\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n checkDuplicateProperties(\"Inject\" /* INJECT */, key);\n }\n }\n}\nfunction callHook(hook, instance, type) {\n callWithAsyncErrorHandling(\n isArray(hook) ? hook.map((h) => h.bind(instance.proxy)) : hook.bind(instance.proxy),\n instance,\n type\n );\n}\nfunction createWatcher(raw, ctx, publicThis, key) {\n const getter = key.includes(\".\") ? createPathGetter(publicThis, key) : () => publicThis[key];\n if (isString(raw)) {\n const handler = ctx[raw];\n if (isFunction(handler)) {\n watch(getter, handler);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`Invalid watch handler specified by key \"${raw}\"`, handler);\n }\n } else if (isFunction(raw)) {\n watch(getter, raw.bind(publicThis));\n } else if (isObject(raw)) {\n if (isArray(raw)) {\n raw.forEach((r) => createWatcher(r, ctx, publicThis, key));\n } else {\n const handler = isFunction(raw.handler) ? raw.handler.bind(publicThis) : ctx[raw.handler];\n if (isFunction(handler)) {\n watch(getter, handler, raw);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`Invalid watch handler specified by key \"${raw.handler}\"`, handler);\n }\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`Invalid watch option: \"${key}\"`, raw);\n }\n}\nfunction resolveMergedOptions(instance) {\n const base = instance.type;\n const { mixins, extends: extendsOptions } = base;\n const {\n mixins: globalMixins,\n optionsCache: cache,\n config: { optionMergeStrategies }\n } = instance.appContext;\n const cached = cache.get(base);\n let resolved;\n if (cached) {\n resolved = cached;\n } else if (!globalMixins.length && !mixins && !extendsOptions) {\n {\n resolved = base;\n }\n } else {\n resolved = {};\n if (globalMixins.length) {\n globalMixins.forEach(\n (m) => mergeOptions(resolved, m, optionMergeStrategies, true)\n );\n }\n mergeOptions(resolved, base, optionMergeStrategies);\n }\n if (isObject(base)) {\n cache.set(base, resolved);\n }\n return resolved;\n}\nfunction mergeOptions(to, from, strats, asMixin = false) {\n const { mixins, extends: extendsOptions } = from;\n if (extendsOptions) {\n mergeOptions(to, extendsOptions, strats, true);\n }\n if (mixins) {\n mixins.forEach(\n (m) => mergeOptions(to, m, strats, true)\n );\n }\n for (const key in from) {\n if (asMixin && key === \"expose\") {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(\n `\"expose\" option is ignored when declared in mixins or extends. It should only be declared in the base component itself.`\n );\n } else {\n const strat = internalOptionMergeStrats[key] || strats && strats[key];\n to[key] = strat ? strat(to[key], from[key]) : from[key];\n }\n }\n return to;\n}\nconst internalOptionMergeStrats = {\n data: mergeDataFn,\n props: mergeEmitsOrPropsOptions,\n emits: mergeEmitsOrPropsOptions,\n // objects\n methods: mergeObjectOptions,\n computed: mergeObjectOptions,\n // lifecycle\n beforeCreate: mergeAsArray$1,\n created: mergeAsArray$1,\n beforeMount: mergeAsArray$1,\n mounted: mergeAsArray$1,\n beforeUpdate: mergeAsArray$1,\n updated: mergeAsArray$1,\n beforeDestroy: mergeAsArray$1,\n beforeUnmount: mergeAsArray$1,\n destroyed: mergeAsArray$1,\n unmounted: mergeAsArray$1,\n activated: mergeAsArray$1,\n deactivated: mergeAsArray$1,\n errorCaptured: mergeAsArray$1,\n serverPrefetch: mergeAsArray$1,\n // assets\n components: mergeObjectOptions,\n directives: mergeObjectOptions,\n // watch\n watch: mergeWatchOptions,\n // provide / inject\n provide: mergeDataFn,\n inject: mergeInject\n};\nfunction mergeDataFn(to, from) {\n if (!from) {\n return to;\n }\n if (!to) {\n return from;\n }\n return function mergedDataFn() {\n return (extend)(\n isFunction(to) ? to.call(this, this) : to,\n isFunction(from) ? from.call(this, this) : from\n );\n };\n}\nfunction mergeInject(to, from) {\n return mergeObjectOptions(normalizeInject(to), normalizeInject(from));\n}\nfunction normalizeInject(raw) {\n if (isArray(raw)) {\n const res = {};\n for (let i = 0; i < raw.length; i++) {\n res[raw[i]] = raw[i];\n }\n return res;\n }\n return raw;\n}\nfunction mergeAsArray$1(to, from) {\n return to ? [...new Set([].concat(to, from))] : from;\n}\nfunction mergeObjectOptions(to, from) {\n return to ? extend(/* @__PURE__ */ Object.create(null), to, from) : from;\n}\nfunction mergeEmitsOrPropsOptions(to, from) {\n if (to) {\n if (isArray(to) && isArray(from)) {\n return [.../* @__PURE__ */ new Set([...to, ...from])];\n }\n return extend(\n /* @__PURE__ */ Object.create(null),\n normalizePropsOrEmits(to),\n normalizePropsOrEmits(from != null ? from : {})\n );\n } else {\n return from;\n }\n}\nfunction mergeWatchOptions(to, from) {\n if (!to)\n return from;\n if (!from)\n return to;\n const merged = extend(/* @__PURE__ */ Object.create(null), to);\n for (const key in from) {\n merged[key] = mergeAsArray$1(to[key], from[key]);\n }\n return merged;\n}\n\nfunction initProps(instance, rawProps, isStateful, isSSR = false) {\n const props = {};\n const attrs = {};\n instance.propsDefaults = /* @__PURE__ */ Object.create(null);\n setFullProps(instance, rawProps, props, attrs);\n for (const key in instance.propsOptions[0]) {\n if (!(key in props)) {\n props[key] = void 0;\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n validateProps(rawProps || {}, props, instance);\n }\n if (isStateful) {\n instance.props = isSSR ? props : shallowReactive(props);\n } else {\n if (!instance.type.props) {\n instance.props = attrs;\n } else {\n instance.props = props;\n }\n }\n instance.attrs = attrs;\n}\nfunction isInHmrContext(instance) {\n while (instance) {\n if (instance.type.__hmrId)\n return true;\n instance = instance.parent;\n }\n}\nfunction updateProps(instance, rawProps, rawPrevProps, optimized) {\n const {\n props,\n attrs,\n vnode: { patchFlag }\n } = instance;\n const rawCurrentProps = toRaw(props);\n const [options] = instance.propsOptions;\n let hasAttrsChanged = false;\n if (\n // always force full diff in dev\n // - #1942 if hmr is enabled with sfc component\n // - vite#872 non-sfc component used by sfc component\n !(!!(process.env.NODE_ENV !== \"production\") && isInHmrContext(instance)) && (optimized || patchFlag > 0) && !(patchFlag & 16)\n ) {\n if (patchFlag & 8) {\n const propsToUpdate = instance.vnode.dynamicProps;\n for (let i = 0; i < propsToUpdate.length; i++) {\n let key = propsToUpdate[i];\n if (isEmitListener(instance.emitsOptions, key)) {\n continue;\n }\n const value = rawProps[key];\n if (options) {\n if (hasOwn(attrs, key)) {\n if (value !== attrs[key]) {\n attrs[key] = value;\n hasAttrsChanged = true;\n }\n } else {\n const camelizedKey = camelize(key);\n props[camelizedKey] = resolvePropValue(\n options,\n rawCurrentProps,\n camelizedKey,\n value,\n instance,\n false\n );\n }\n } else {\n if (value !== attrs[key]) {\n attrs[key] = value;\n hasAttrsChanged = true;\n }\n }\n }\n }\n } else {\n if (setFullProps(instance, rawProps, props, attrs)) {\n hasAttrsChanged = true;\n }\n let kebabKey;\n for (const key in rawCurrentProps) {\n if (!rawProps || // for camelCase\n !hasOwn(rawProps, key) && // it's possible the original props was passed in as kebab-case\n // and converted to camelCase (#955)\n ((kebabKey = hyphenate(key)) === key || !hasOwn(rawProps, kebabKey))) {\n if (options) {\n if (rawPrevProps && // for camelCase\n (rawPrevProps[key] !== void 0 || // for kebab-case\n rawPrevProps[kebabKey] !== void 0)) {\n props[key] = resolvePropValue(\n options,\n rawCurrentProps,\n key,\n void 0,\n instance,\n true\n );\n }\n } else {\n delete props[key];\n }\n }\n }\n if (attrs !== rawCurrentProps) {\n for (const key in attrs) {\n if (!rawProps || !hasOwn(rawProps, key) && true) {\n delete attrs[key];\n hasAttrsChanged = true;\n }\n }\n }\n }\n if (hasAttrsChanged) {\n trigger(instance, \"set\", \"$attrs\");\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n validateProps(rawProps || {}, props, instance);\n }\n}\nfunction setFullProps(instance, rawProps, props, attrs) {\n const [options, needCastKeys] = instance.propsOptions;\n let hasAttrsChanged = false;\n let rawCastValues;\n if (rawProps) {\n for (let key in rawProps) {\n if (isReservedProp(key)) {\n continue;\n }\n const value = rawProps[key];\n let camelKey;\n if (options && hasOwn(options, camelKey = camelize(key))) {\n if (!needCastKeys || !needCastKeys.includes(camelKey)) {\n props[camelKey] = value;\n } else {\n (rawCastValues || (rawCastValues = {}))[camelKey] = value;\n }\n } else if (!isEmitListener(instance.emitsOptions, key)) {\n if (!(key in attrs) || value !== attrs[key]) {\n attrs[key] = value;\n hasAttrsChanged = true;\n }\n }\n }\n }\n if (needCastKeys) {\n const rawCurrentProps = toRaw(props);\n const castValues = rawCastValues || EMPTY_OBJ;\n for (let i = 0; i < needCastKeys.length; i++) {\n const key = needCastKeys[i];\n props[key] = resolvePropValue(\n options,\n rawCurrentProps,\n key,\n castValues[key],\n instance,\n !hasOwn(castValues, key)\n );\n }\n }\n return hasAttrsChanged;\n}\nfunction resolvePropValue(options, props, key, value, instance, isAbsent) {\n const opt = options[key];\n if (opt != null) {\n const hasDefault = hasOwn(opt, \"default\");\n if (hasDefault && value === void 0) {\n const defaultValue = opt.default;\n if (opt.type !== Function && !opt.skipFactory && isFunction(defaultValue)) {\n const { propsDefaults } = instance;\n if (key in propsDefaults) {\n value = propsDefaults[key];\n } else {\n const reset = setCurrentInstance(instance);\n value = propsDefaults[key] = defaultValue.call(\n null,\n props\n );\n reset();\n }\n } else {\n value = defaultValue;\n }\n }\n if (opt[0 /* shouldCast */]) {\n if (isAbsent && !hasDefault) {\n value = false;\n } else if (opt[1 /* shouldCastTrue */] && (value === \"\" || value === hyphenate(key))) {\n value = true;\n }\n }\n }\n return value;\n}\nfunction normalizePropsOptions(comp, appContext, asMixin = false) {\n const cache = appContext.propsCache;\n const cached = cache.get(comp);\n if (cached) {\n return cached;\n }\n const raw = comp.props;\n const normalized = {};\n const needCastKeys = [];\n let hasExtends = false;\n if (__VUE_OPTIONS_API__ && !isFunction(comp)) {\n const extendProps = (raw2) => {\n hasExtends = true;\n const [props, keys] = normalizePropsOptions(raw2, appContext, true);\n extend(normalized, props);\n if (keys)\n needCastKeys.push(...keys);\n };\n if (!asMixin && appContext.mixins.length) {\n appContext.mixins.forEach(extendProps);\n }\n if (comp.extends) {\n extendProps(comp.extends);\n }\n if (comp.mixins) {\n comp.mixins.forEach(extendProps);\n }\n }\n if (!raw && !hasExtends) {\n if (isObject(comp)) {\n cache.set(comp, EMPTY_ARR);\n }\n return EMPTY_ARR;\n }\n if (isArray(raw)) {\n for (let i = 0; i < raw.length; i++) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isString(raw[i])) {\n warn$1(`props must be strings when using array syntax.`, raw[i]);\n }\n const normalizedKey = camelize(raw[i]);\n if (validatePropName(normalizedKey)) {\n normalized[normalizedKey] = EMPTY_OBJ;\n }\n }\n } else if (raw) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isObject(raw)) {\n warn$1(`invalid props options`, raw);\n }\n for (const key in raw) {\n const normalizedKey = camelize(key);\n if (validatePropName(normalizedKey)) {\n const opt = raw[key];\n const prop = normalized[normalizedKey] = isArray(opt) || isFunction(opt) ? { type: opt } : extend({}, opt);\n if (prop) {\n const booleanIndex = getTypeIndex(Boolean, prop.type);\n const stringIndex = getTypeIndex(String, prop.type);\n prop[0 /* shouldCast */] = booleanIndex > -1;\n prop[1 /* shouldCastTrue */] = stringIndex < 0 || booleanIndex < stringIndex;\n if (booleanIndex > -1 || hasOwn(prop, \"default\")) {\n needCastKeys.push(normalizedKey);\n }\n }\n }\n }\n }\n const res = [normalized, needCastKeys];\n if (isObject(comp)) {\n cache.set(comp, res);\n }\n return res;\n}\nfunction validatePropName(key) {\n if (key[0] !== \"$\" && !isReservedProp(key)) {\n return true;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`Invalid prop name: \"${key}\" is a reserved property.`);\n }\n return false;\n}\nfunction getType(ctor) {\n if (ctor === null) {\n return \"null\";\n }\n if (typeof ctor === \"function\") {\n return ctor.name || \"\";\n } else if (typeof ctor === \"object\") {\n const name = ctor.constructor && ctor.constructor.name;\n return name || \"\";\n }\n return \"\";\n}\nfunction isSameType(a, b) {\n return getType(a) === getType(b);\n}\nfunction getTypeIndex(type, expectedTypes) {\n if (isArray(expectedTypes)) {\n return expectedTypes.findIndex((t) => isSameType(t, type));\n } else if (isFunction(expectedTypes)) {\n return isSameType(expectedTypes, type) ? 0 : -1;\n }\n return -1;\n}\nfunction validateProps(rawProps, props, instance) {\n const resolvedValues = toRaw(props);\n const options = instance.propsOptions[0];\n for (const key in options) {\n let opt = options[key];\n if (opt == null)\n continue;\n validateProp(\n key,\n resolvedValues[key],\n opt,\n !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(resolvedValues) : resolvedValues,\n !hasOwn(rawProps, key) && !hasOwn(rawProps, hyphenate(key))\n );\n }\n}\nfunction validateProp(name, value, prop, props, isAbsent) {\n const { type, required, validator, skipCheck } = prop;\n if (required && isAbsent) {\n warn$1('Missing required prop: \"' + name + '\"');\n return;\n }\n if (value == null && !required) {\n return;\n }\n if (type != null && type !== true && !skipCheck) {\n let isValid = false;\n const types = isArray(type) ? type : [type];\n const expectedTypes = [];\n for (let i = 0; i < types.length && !isValid; i++) {\n const { valid, expectedType } = assertType(value, types[i]);\n expectedTypes.push(expectedType || \"\");\n isValid = valid;\n }\n if (!isValid) {\n warn$1(getInvalidTypeMessage(name, value, expectedTypes));\n return;\n }\n }\n if (validator && !validator(value, props)) {\n warn$1('Invalid prop: custom validator check failed for prop \"' + name + '\".');\n }\n}\nconst isSimpleType = /* @__PURE__ */ makeMap(\n \"String,Number,Boolean,Function,Symbol,BigInt\"\n);\nfunction assertType(value, type) {\n let valid;\n const expectedType = getType(type);\n if (isSimpleType(expectedType)) {\n const t = typeof value;\n valid = t === expectedType.toLowerCase();\n if (!valid && t === \"object\") {\n valid = value instanceof type;\n }\n } else if (expectedType === \"Object\") {\n valid = isObject(value);\n } else if (expectedType === \"Array\") {\n valid = isArray(value);\n } else if (expectedType === \"null\") {\n valid = value === null;\n } else {\n valid = value instanceof type;\n }\n return {\n valid,\n expectedType\n };\n}\nfunction getInvalidTypeMessage(name, value, expectedTypes) {\n if (expectedTypes.length === 0) {\n return `Prop type [] for prop \"${name}\" won't match anything. Did you mean to use type Array instead?`;\n }\n let message = `Invalid prop: type check failed for prop \"${name}\". Expected ${expectedTypes.map(capitalize).join(\" | \")}`;\n const expectedType = expectedTypes[0];\n const receivedType = toRawType(value);\n const expectedValue = styleValue(value, expectedType);\n const receivedValue = styleValue(value, receivedType);\n if (expectedTypes.length === 1 && isExplicable(expectedType) && !isBoolean(expectedType, receivedType)) {\n message += ` with value ${expectedValue}`;\n }\n message += `, got ${receivedType} `;\n if (isExplicable(receivedType)) {\n message += `with value ${receivedValue}.`;\n }\n return message;\n}\nfunction styleValue(value, type) {\n if (type === \"String\") {\n return `\"${value}\"`;\n } else if (type === \"Number\") {\n return `${Number(value)}`;\n } else {\n return `${value}`;\n }\n}\nfunction isExplicable(type) {\n const explicitTypes = [\"string\", \"number\", \"boolean\"];\n return explicitTypes.some((elem) => type.toLowerCase() === elem);\n}\nfunction isBoolean(...args) {\n return args.some((elem) => elem.toLowerCase() === \"boolean\");\n}\n\nlet supported;\nlet perf;\nfunction startMeasure(instance, type) {\n if (instance.appContext.config.performance && isSupported()) {\n perf.mark(`vue-${type}-${instance.uid}`);\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsPerfStart(instance, type, isSupported() ? perf.now() : Date.now());\n }\n}\nfunction endMeasure(instance, type) {\n if (instance.appContext.config.performance && isSupported()) {\n const startTag = `vue-${type}-${instance.uid}`;\n const endTag = startTag + `:end`;\n perf.mark(endTag);\n perf.measure(\n `<${formatComponentName(instance, instance.type)}> ${type}`,\n startTag,\n endTag\n );\n perf.clearMarks(startTag);\n perf.clearMarks(endTag);\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsPerfEnd(instance, type, isSupported() ? perf.now() : Date.now());\n }\n}\nfunction isSupported() {\n if (supported !== void 0) {\n return supported;\n }\n if (typeof window !== \"undefined\" && window.performance) {\n supported = true;\n perf = window.performance;\n } else {\n supported = false;\n }\n return supported;\n}\n\nconst queuePostRenderEffect$1 = queuePostFlushCb;\n\nconst isTeleport = (type) => type.__isTeleport;\n\nconst Fragment = Symbol.for(\"v-fgt\");\nconst Text = Symbol.for(\"v-txt\");\nconst Comment = Symbol.for(\"v-cmt\");\nconst Static = Symbol.for(\"v-stc\");\nlet currentBlock = null;\nlet isBlockTreeEnabled = 1;\nfunction setBlockTracking(value) {\n isBlockTreeEnabled += value;\n}\nfunction isVNode(value) {\n return value ? value.__v_isVNode === true : false;\n}\nconst createVNodeWithArgsTransform = (...args) => {\n return _createVNode(\n ...args\n );\n};\nconst InternalObjectKey = `__vInternal`;\nconst normalizeKey = ({ key }) => key != null ? key : null;\nconst normalizeRef = ({\n ref,\n ref_key,\n ref_for\n}) => {\n if (typeof ref === \"number\") {\n ref = \"\" + ref;\n }\n return ref != null ? isString(ref) || isRef(ref) || isFunction(ref) ? { i: currentRenderingInstance, r: ref, k: ref_key, f: !!ref_for } : ref : null;\n};\nfunction createBaseVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, shapeFlag = type === Fragment ? 0 : 1, isBlockNode = false, needFullChildrenNormalization = false) {\n const vnode = {\n __v_isVNode: true,\n __v_skip: true,\n type,\n props,\n key: props && normalizeKey(props),\n ref: props && normalizeRef(props),\n scopeId: currentScopeId,\n slotScopeIds: null,\n children,\n component: null,\n suspense: null,\n ssContent: null,\n ssFallback: null,\n dirs: null,\n transition: null,\n el: null,\n anchor: null,\n target: null,\n targetAnchor: null,\n staticCount: 0,\n shapeFlag,\n patchFlag,\n dynamicProps,\n dynamicChildren: null,\n appContext: null,\n ctx: currentRenderingInstance\n };\n if (needFullChildrenNormalization) {\n normalizeChildren(vnode, children);\n } else if (children) {\n vnode.shapeFlag |= isString(children) ? 8 : 16;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && vnode.key !== vnode.key) {\n warn$1(`VNode created with invalid key (NaN). VNode type:`, vnode.type);\n }\n if (isBlockTreeEnabled > 0 && // avoid a block node from tracking itself\n !isBlockNode && // has current parent block\n currentBlock && // presence of a patch flag indicates this node needs patching on updates.\n // component nodes also should always be patched, because even if the\n // component doesn't need to update, it needs to persist the instance on to\n // the next vnode so that it can be properly unmounted later.\n (vnode.patchFlag > 0 || shapeFlag & 6) && // the EVENTS flag is only for hydration and if it is the only flag, the\n // vnode should not be considered dynamic due to handler caching.\n vnode.patchFlag !== 32) {\n currentBlock.push(vnode);\n }\n return vnode;\n}\nconst createVNode$1 = !!(process.env.NODE_ENV !== \"production\") ? createVNodeWithArgsTransform : _createVNode;\nfunction _createVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, isBlockNode = false) {\n if (!type || type === NULL_DYNAMIC_COMPONENT) {\n if (!!(process.env.NODE_ENV !== \"production\") && !type) {\n warn$1(`Invalid vnode type when creating vnode: ${type}.`);\n }\n type = Comment;\n }\n if (isVNode(type)) {\n const cloned = cloneVNode(\n type,\n props,\n true\n /* mergeRef: true */\n );\n if (children) {\n normalizeChildren(cloned, children);\n }\n if (isBlockTreeEnabled > 0 && !isBlockNode && currentBlock) {\n if (cloned.shapeFlag & 6) {\n currentBlock[currentBlock.indexOf(type)] = cloned;\n } else {\n currentBlock.push(cloned);\n }\n }\n cloned.patchFlag |= -2;\n return cloned;\n }\n if (isClassComponent(type)) {\n type = type.__vccOpts;\n }\n if (props) {\n props = guardReactiveProps(props);\n let { class: klass, style } = props;\n if (klass && !isString(klass)) {\n props.class = normalizeClass(klass);\n }\n if (isObject(style)) {\n if (isProxy(style) && !isArray(style)) {\n style = extend({}, style);\n }\n props.style = normalizeStyle(style);\n }\n }\n const shapeFlag = isString(type) ? 1 : isTeleport(type) ? 64 : isObject(type) ? 4 : isFunction(type) ? 2 : 0;\n if (!!(process.env.NODE_ENV !== \"production\") && shapeFlag & 4 && isProxy(type)) {\n type = toRaw(type);\n warn$1(\n `Vue received a Component that was made a reactive object. This can lead to unnecessary performance overhead and should be avoided by marking the component with \\`markRaw\\` or using \\`shallowRef\\` instead of \\`ref\\`.`,\n `\nComponent that was made reactive: `,\n type\n );\n }\n return createBaseVNode(\n type,\n props,\n children,\n patchFlag,\n dynamicProps,\n shapeFlag,\n isBlockNode,\n true\n );\n}\nfunction guardReactiveProps(props) {\n if (!props)\n return null;\n return isProxy(props) || InternalObjectKey in props ? extend({}, props) : props;\n}\nfunction cloneVNode(vnode, extraProps, mergeRef = false) {\n const { props, ref, patchFlag, children } = vnode;\n const mergedProps = extraProps ? mergeProps(props || {}, extraProps) : props;\n const cloned = {\n __v_isVNode: true,\n __v_skip: true,\n type: vnode.type,\n props: mergedProps,\n key: mergedProps && normalizeKey(mergedProps),\n ref: extraProps && extraProps.ref ? (\n // #2078 in the case of <component :is=\"vnode\" ref=\"extra\"/>\n // if the vnode itself already has a ref, cloneVNode will need to merge\n // the refs so the single vnode can be set on multiple refs\n mergeRef && ref ? isArray(ref) ? ref.concat(normalizeRef(extraProps)) : [ref, normalizeRef(extraProps)] : normalizeRef(extraProps)\n ) : ref,\n scopeId: vnode.scopeId,\n slotScopeIds: vnode.slotScopeIds,\n children: !!(process.env.NODE_ENV !== \"production\") && patchFlag === -1 && isArray(children) ? children.map(deepCloneVNode) : children,\n target: vnode.target,\n targetAnchor: vnode.targetAnchor,\n staticCount: vnode.staticCount,\n shapeFlag: vnode.shapeFlag,\n // if the vnode is cloned with extra props, we can no longer assume its\n // existing patch flag to be reliable and need to add the FULL_PROPS flag.\n // note: preserve flag for fragments since they use the flag for children\n // fast paths only.\n patchFlag: extraProps && vnode.type !== Fragment ? patchFlag === -1 ? 16 : patchFlag | 16 : patchFlag,\n dynamicProps: vnode.dynamicProps,\n dynamicChildren: vnode.dynamicChildren,\n appContext: vnode.appContext,\n dirs: vnode.dirs,\n transition: vnode.transition,\n // These should technically only be non-null on mounted VNodes. However,\n // they *should* be copied for kept-alive vnodes. So we just always copy\n // them since them being non-null during a mount doesn't affect the logic as\n // they will simply be overwritten.\n component: vnode.component,\n suspense: vnode.suspense,\n ssContent: vnode.ssContent && cloneVNode(vnode.ssContent),\n ssFallback: vnode.ssFallback && cloneVNode(vnode.ssFallback),\n el: vnode.el,\n anchor: vnode.anchor,\n ctx: vnode.ctx,\n ce: vnode.ce\n };\n return cloned;\n}\nfunction deepCloneVNode(vnode) {\n const cloned = cloneVNode(vnode);\n if (isArray(vnode.children)) {\n cloned.children = vnode.children.map(deepCloneVNode);\n }\n return cloned;\n}\nfunction createTextVNode(text = \" \", flag = 0) {\n return createVNode$1(Text, null, text, flag);\n}\nfunction normalizeChildren(vnode, children) {\n let type = 0;\n const { shapeFlag } = vnode;\n if (children == null) {\n children = null;\n } else if (isArray(children)) {\n type = 16;\n } else if (typeof children === \"object\") {\n if (shapeFlag & (1 | 64)) {\n const slot = children.default;\n if (slot) {\n slot._c && (slot._d = false);\n normalizeChildren(vnode, slot());\n slot._c && (slot._d = true);\n }\n return;\n } else {\n type = 32;\n const slotFlag = children._;\n if (!slotFlag && !(InternalObjectKey in children)) {\n children._ctx = currentRenderingInstance;\n } else if (slotFlag === 3 && currentRenderingInstance) {\n if (currentRenderingInstance.slots._ === 1) {\n children._ = 1;\n } else {\n children._ = 2;\n vnode.patchFlag |= 1024;\n }\n }\n }\n } else if (isFunction(children)) {\n children = { default: children, _ctx: currentRenderingInstance };\n type = 32;\n } else {\n children = String(children);\n if (shapeFlag & 64) {\n type = 16;\n children = [createTextVNode(children)];\n } else {\n type = 8;\n }\n }\n vnode.children = children;\n vnode.shapeFlag |= type;\n}\nfunction mergeProps(...args) {\n const ret = {};\n for (let i = 0; i < args.length; i++) {\n const toMerge = args[i];\n for (const key in toMerge) {\n if (key === \"class\") {\n if (ret.class !== toMerge.class) {\n ret.class = normalizeClass([ret.class, toMerge.class]);\n }\n } else if (key === \"style\") {\n ret.style = normalizeStyle([ret.style, toMerge.style]);\n } else if (isOn(key)) {\n const existing = ret[key];\n const incoming = toMerge[key];\n if (incoming && existing !== incoming && !(isArray(existing) && existing.includes(incoming))) {\n ret[key] = existing ? [].concat(existing, incoming) : incoming;\n }\n } else if (key !== \"\") {\n ret[key] = toMerge[key];\n }\n }\n }\n return ret;\n}\n\nconst emptyAppContext = createAppContext();\nlet uid = 0;\nfunction createComponentInstance(vnode, parent, suspense) {\n const type = vnode.type;\n const appContext = (parent ? parent.appContext : vnode.appContext) || emptyAppContext;\n const instance = {\n uid: uid++,\n vnode,\n type,\n parent,\n appContext,\n root: null,\n // to be immediately set\n next: null,\n subTree: null,\n // will be set synchronously right after creation\n effect: null,\n update: null,\n // will be set synchronously right after creation\n scope: new EffectScope(\n true\n /* detached */\n ),\n render: null,\n proxy: null,\n exposed: null,\n exposeProxy: null,\n withProxy: null,\n provides: parent ? parent.provides : Object.create(appContext.provides),\n accessCache: null,\n renderCache: [],\n // local resolved assets\n components: null,\n directives: null,\n // resolved props and emits options\n propsOptions: normalizePropsOptions(type, appContext),\n emitsOptions: normalizeEmitsOptions(type, appContext),\n // emit\n emit: null,\n // to be set immediately\n emitted: null,\n // props default value\n propsDefaults: EMPTY_OBJ,\n // inheritAttrs\n inheritAttrs: type.inheritAttrs,\n // state\n ctx: EMPTY_OBJ,\n data: EMPTY_OBJ,\n props: EMPTY_OBJ,\n attrs: EMPTY_OBJ,\n slots: EMPTY_OBJ,\n refs: EMPTY_OBJ,\n setupState: EMPTY_OBJ,\n setupContext: null,\n attrsProxy: null,\n slotsProxy: null,\n // suspense related\n suspense,\n suspenseId: suspense ? suspense.pendingId : 0,\n asyncDep: null,\n asyncResolved: false,\n // lifecycle hooks\n // not using enums here because it results in computed properties\n isMounted: false,\n isUnmounted: false,\n isDeactivated: false,\n bc: null,\n c: null,\n bm: null,\n m: null,\n bu: null,\n u: null,\n um: null,\n bum: null,\n da: null,\n a: null,\n rtg: null,\n rtc: null,\n ec: null,\n sp: null\n };\n if (!!(process.env.NODE_ENV !== \"production\")) {\n instance.ctx = createDevRenderContext(instance);\n } else {\n instance.ctx = { _: instance };\n }\n instance.root = parent ? parent.root : instance;\n instance.emit = emit.bind(null, instance);\n if (vnode.ce) {\n vnode.ce(instance);\n }\n return instance;\n}\nlet currentInstance = null;\nconst getCurrentInstance = () => currentInstance || currentRenderingInstance;\nlet internalSetCurrentInstance;\nlet setInSSRSetupState;\n{\n internalSetCurrentInstance = (i) => {\n currentInstance = i;\n };\n setInSSRSetupState = (v) => {\n isInSSRComponentSetup = v;\n };\n}\nconst setCurrentInstance = (instance) => {\n const prev = currentInstance;\n internalSetCurrentInstance(instance);\n instance.scope.on();\n return () => {\n instance.scope.off();\n internalSetCurrentInstance(prev);\n };\n};\nconst unsetCurrentInstance = () => {\n currentInstance && currentInstance.scope.off();\n internalSetCurrentInstance(null);\n};\nconst isBuiltInTag = /* @__PURE__ */ makeMap(\"slot,component\");\nfunction validateComponentName(name, { isNativeTag }) {\n if (isBuiltInTag(name) || isNativeTag(name)) {\n warn$1(\n \"Do not use built-in or reserved HTML elements as component id: \" + name\n );\n }\n}\nfunction isStatefulComponent(instance) {\n return instance.vnode.shapeFlag & 4;\n}\nlet isInSSRComponentSetup = false;\nfunction setupComponent(instance, isSSR = false) {\n isSSR && setInSSRSetupState(isSSR);\n const {\n props\n /*, children*/\n } = instance.vnode;\n const isStateful = isStatefulComponent(instance);\n initProps(instance, props, isStateful, isSSR);\n const setupResult = isStateful ? setupStatefulComponent(instance, isSSR) : void 0;\n isSSR && setInSSRSetupState(false);\n return setupResult;\n}\nfunction setupStatefulComponent(instance, isSSR) {\n const Component = instance.type;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n if (Component.name) {\n validateComponentName(Component.name, instance.appContext.config);\n }\n if (Component.components) {\n const names = Object.keys(Component.components);\n for (let i = 0; i < names.length; i++) {\n validateComponentName(names[i], instance.appContext.config);\n }\n }\n if (Component.directives) {\n const names = Object.keys(Component.directives);\n for (let i = 0; i < names.length; i++) {\n validateDirectiveName(names[i]);\n }\n }\n if (Component.compilerOptions && isRuntimeOnly()) {\n warn$1(\n `\"compilerOptions\" is only supported when using a build of Vue that includes the runtime compiler. Since you are using a runtime-only build, the options should be passed via your build tool config instead.`\n );\n }\n }\n instance.accessCache = /* @__PURE__ */ Object.create(null);\n instance.proxy = markRaw(new Proxy(instance.ctx, PublicInstanceProxyHandlers));\n if (!!(process.env.NODE_ENV !== \"production\")) {\n exposePropsOnRenderContext(instance);\n }\n const { setup } = Component;\n if (setup) {\n const setupContext = instance.setupContext = setup.length > 1 ? createSetupContext(instance) : null;\n const reset = setCurrentInstance(instance);\n pauseTracking();\n const setupResult = callWithErrorHandling(\n setup,\n instance,\n 0,\n [\n !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(instance.props) : instance.props,\n setupContext\n ]\n );\n resetTracking();\n reset();\n if (isPromise(setupResult)) {\n setupResult.then(unsetCurrentInstance, unsetCurrentInstance);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `setup() returned a Promise, but the version of Vue you are using does not support it yet.`\n );\n }\n } else {\n handleSetupResult(instance, setupResult, isSSR);\n }\n } else {\n finishComponentSetup(instance, isSSR);\n }\n}\nfunction handleSetupResult(instance, setupResult, isSSR) {\n if (isFunction(setupResult)) {\n {\n instance.render = setupResult;\n }\n } else if (isObject(setupResult)) {\n if (!!(process.env.NODE_ENV !== \"production\") && isVNode(setupResult)) {\n warn$1(\n `setup() should not return VNodes directly - return a render function instead.`\n );\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n instance.devtoolsRawSetupState = setupResult;\n }\n instance.setupState = proxyRefs(setupResult);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n exposeSetupStateOnRenderContext(instance);\n }\n } else if (!!(process.env.NODE_ENV !== \"production\") && setupResult !== void 0) {\n warn$1(\n `setup() should return an object. Received: ${setupResult === null ? \"null\" : typeof setupResult}`\n );\n }\n finishComponentSetup(instance, isSSR);\n}\nlet compile;\nconst isRuntimeOnly = () => !compile;\nfunction finishComponentSetup(instance, isSSR, skipOptions) {\n const Component = instance.type;\n if (!instance.render) {\n instance.render = Component.render || NOOP;\n }\n if (__VUE_OPTIONS_API__ && true) {\n const reset = setCurrentInstance(instance);\n pauseTracking();\n try {\n applyOptions$1(instance);\n } finally {\n resetTracking();\n reset();\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") && !Component.render && instance.render === NOOP && !isSSR) {\n if (Component.template) {\n warn$1(\n `Component provided template option but runtime compilation is not supported in this build of Vue.` + (` Configure your bundler to alias \"vue\" to \"vue/dist/vue.esm-bundler.js\".` )\n );\n } else {\n warn$1(`Component is missing template or render function.`);\n }\n }\n}\nfunction getAttrsProxy(instance) {\n return instance.attrsProxy || (instance.attrsProxy = new Proxy(\n instance.attrs,\n !!(process.env.NODE_ENV !== \"production\") ? {\n get(target, key) {\n track(instance, \"get\", \"$attrs\");\n return target[key];\n },\n set() {\n warn$1(`setupContext.attrs is readonly.`);\n return false;\n },\n deleteProperty() {\n warn$1(`setupContext.attrs is readonly.`);\n return false;\n }\n } : {\n get(target, key) {\n track(instance, \"get\", \"$attrs\");\n return target[key];\n }\n }\n ));\n}\nfunction getSlotsProxy(instance) {\n return instance.slotsProxy || (instance.slotsProxy = new Proxy(instance.slots, {\n get(target, key) {\n track(instance, \"get\", \"$slots\");\n return target[key];\n }\n }));\n}\nfunction createSetupContext(instance) {\n const expose = (exposed) => {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n if (instance.exposed) {\n warn$1(`expose() should be called only once per setup().`);\n }\n if (exposed != null) {\n let exposedType = typeof exposed;\n if (exposedType === \"object\") {\n if (isArray(exposed)) {\n exposedType = \"array\";\n } else if (isRef(exposed)) {\n exposedType = \"ref\";\n }\n }\n if (exposedType !== \"object\") {\n warn$1(\n `expose() should be passed a plain object, received ${exposedType}.`\n );\n }\n }\n }\n instance.exposed = exposed || {};\n };\n if (!!(process.env.NODE_ENV !== \"production\")) {\n return Object.freeze({\n get attrs() {\n return getAttrsProxy(instance);\n },\n get slots() {\n return getSlotsProxy(instance);\n },\n get emit() {\n return (event, ...args) => instance.emit(event, ...args);\n },\n expose\n });\n } else {\n return {\n get attrs() {\n return getAttrsProxy(instance);\n },\n slots: instance.slots,\n emit: instance.emit,\n expose\n };\n }\n}\nfunction getExposeProxy(instance) {\n if (instance.exposed) {\n return instance.exposeProxy || (instance.exposeProxy = new Proxy(proxyRefs(markRaw(instance.exposed)), {\n get(target, key) {\n if (key in target) {\n return target[key];\n }\n return instance.proxy[key];\n },\n has(target, key) {\n return key in target || key in publicPropertiesMap;\n }\n }));\n }\n}\nconst classifyRE = /(?:^|[-_])(\\w)/g;\nconst classify = (str) => str.replace(classifyRE, (c) => c.toUpperCase()).replace(/[-_]/g, \"\");\nfunction getComponentName(Component, includeInferred = true) {\n return isFunction(Component) ? Component.displayName || Component.name : Component.name || includeInferred && Component.__name;\n}\nfunction formatComponentName(instance, Component, isRoot = false) {\n let name = getComponentName(Component);\n if (!name && Component.__file) {\n const match = Component.__file.match(/([^/\\\\]+)\\.\\w+$/);\n if (match) {\n name = match[1];\n }\n }\n if (!name && instance && instance.parent) {\n const inferFromRegistry = (registry) => {\n for (const key in registry) {\n if (registry[key] === Component) {\n return key;\n }\n }\n };\n name = inferFromRegistry(\n instance.components || instance.parent.type.components\n ) || inferFromRegistry(instance.appContext.components);\n }\n return name ? classify(name) : isRoot ? `App` : `Anonymous`;\n}\nfunction isClassComponent(value) {\n return isFunction(value) && \"__vccOpts\" in value;\n}\n\nconst computed = (getterOrOptions, debugOptions) => {\n const c = computed$1(getterOrOptions, debugOptions, isInSSRComponentSetup);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const i = getCurrentInstance();\n if (i && i.appContext.config.warnRecursiveComputed) {\n c._warnRecursive = true;\n }\n }\n return c;\n};\n\nconst version = \"3.4.21\";\nconst warn = !!(process.env.NODE_ENV !== \"production\") ? warn$1 : NOOP;\nconst resolveFilter = null;\n\nfunction unwrapper(target) {\n return unref(target);\n}\nfunction defineAsyncComponent(source) {\n console.error(\"defineAsyncComponent is unsupported\");\n}\n\nconst ARRAYTYPE = \"[object Array]\";\nconst OBJECTTYPE = \"[object Object]\";\nfunction diff(current, pre) {\n const result = {};\n syncKeys(current, pre);\n _diff(current, pre, \"\", result);\n return result;\n}\nfunction syncKeys(current, pre) {\n current = unwrapper(current);\n if (current === pre)\n return;\n const rootCurrentType = toTypeString(current);\n const rootPreType = toTypeString(pre);\n if (rootCurrentType == OBJECTTYPE && rootPreType == OBJECTTYPE) {\n for (let key in pre) {\n const currentValue = current[key];\n if (currentValue === void 0) {\n current[key] = null;\n } else {\n syncKeys(currentValue, pre[key]);\n }\n }\n } else if (rootCurrentType == ARRAYTYPE && rootPreType == ARRAYTYPE) {\n if (current.length >= pre.length) {\n pre.forEach((item, index) => {\n syncKeys(current[index], item);\n });\n }\n }\n}\nfunction _diff(current, pre, path, result) {\n current = unwrapper(current);\n if (current === pre)\n return;\n const rootCurrentType = toTypeString(current);\n const rootPreType = toTypeString(pre);\n if (rootCurrentType == OBJECTTYPE) {\n if (rootPreType != OBJECTTYPE || Object.keys(current).length < Object.keys(pre).length) {\n setResult(result, path, current);\n } else {\n for (let key in current) {\n const currentValue = unwrapper(current[key]);\n const preValue = pre[key];\n const currentType = toTypeString(currentValue);\n const preType = toTypeString(preValue);\n if (currentType != ARRAYTYPE && currentType != OBJECTTYPE) {\n if (currentValue != preValue) {\n setResult(\n result,\n (path == \"\" ? \"\" : path + \".\") + key,\n currentValue\n );\n }\n } else if (currentType == ARRAYTYPE) {\n if (preType != ARRAYTYPE) {\n setResult(\n result,\n (path == \"\" ? \"\" : path + \".\") + key,\n currentValue\n );\n } else {\n if (currentValue.length < preValue.length) {\n setResult(\n result,\n (path == \"\" ? \"\" : path + \".\") + key,\n currentValue\n );\n } else {\n currentValue.forEach((item, index) => {\n _diff(\n item,\n preValue[index],\n (path == \"\" ? \"\" : path + \".\") + key + \"[\" + index + \"]\",\n result\n );\n });\n }\n }\n } else if (currentType == OBJECTTYPE) {\n if (preType != OBJECTTYPE || Object.keys(currentValue).length < Object.keys(preValue).length) {\n setResult(\n result,\n (path == \"\" ? \"\" : path + \".\") + key,\n currentValue\n );\n } else {\n for (let subKey in currentValue) {\n _diff(\n currentValue[subKey],\n preValue[subKey],\n (path == \"\" ? \"\" : path + \".\") + key + \".\" + subKey,\n result\n );\n }\n }\n }\n }\n }\n } else if (rootCurrentType == ARRAYTYPE) {\n if (rootPreType != ARRAYTYPE) {\n setResult(result, path, current);\n } else {\n if (current.length < pre.length) {\n setResult(result, path, current);\n } else {\n current.forEach((item, index) => {\n _diff(item, pre[index], path + \"[\" + index + \"]\", result);\n });\n }\n }\n } else {\n setResult(result, path, current);\n }\n}\nfunction setResult(result, k, v) {\n result[k] = v;\n}\n\nfunction hasComponentEffect(instance) {\n return queue.includes(instance.update);\n}\nfunction flushCallbacks(instance) {\n const ctx = instance.ctx;\n const callbacks = ctx.__next_tick_callbacks;\n if (callbacks && callbacks.length) {\n if (process.env.UNI_DEBUG) {\n const mpInstance = ctx.$scope;\n console.log(\n \"[\" + +/* @__PURE__ */ new Date() + \"][\" + (mpInstance.is || mpInstance.route) + \"][\" + instance.uid + \"]:flushCallbacks[\" + callbacks.length + \"]\"\n );\n }\n const copies = callbacks.slice(0);\n callbacks.length = 0;\n for (let i = 0; i < copies.length; i++) {\n copies[i]();\n }\n }\n}\nfunction nextTick(instance, fn) {\n const ctx = instance.ctx;\n if (!ctx.__next_tick_pending && !hasComponentEffect(instance)) {\n if (process.env.UNI_DEBUG) {\n const mpInstance = ctx.$scope;\n console.log(\n \"[\" + +/* @__PURE__ */ new Date() + \"][\" + (mpInstance.is || mpInstance.route) + \"][\" + instance.uid + \"]:nextVueTick\"\n );\n }\n return nextTick$1(fn && fn.bind(instance.proxy));\n }\n if (process.env.UNI_DEBUG) {\n const mpInstance = ctx.$scope;\n console.log(\n \"[\" + +/* @__PURE__ */ new Date() + \"][\" + (mpInstance.is || mpInstance.route) + \"][\" + instance.uid + \"]:nextMPTick\"\n );\n }\n let _resolve;\n if (!ctx.__next_tick_callbacks) {\n ctx.__next_tick_callbacks = [];\n }\n ctx.__next_tick_callbacks.push(() => {\n if (fn) {\n callWithErrorHandling(\n fn.bind(instance.proxy),\n instance,\n 14\n );\n } else if (_resolve) {\n _resolve(instance.proxy);\n }\n });\n return new Promise((resolve) => {\n _resolve = resolve;\n });\n}\n\nfunction clone(src, seen) {\n src = unwrapper(src);\n const type = typeof src;\n if (type === \"object\" && src !== null) {\n let copy = seen.get(src);\n if (typeof copy !== \"undefined\") {\n return copy;\n }\n if (isArray(src)) {\n const len = src.length;\n copy = new Array(len);\n seen.set(src, copy);\n for (let i = 0; i < len; i++) {\n copy[i] = clone(src[i], seen);\n }\n } else {\n copy = {};\n seen.set(src, copy);\n for (const name in src) {\n if (hasOwn(src, name)) {\n copy[name] = clone(src[name], seen);\n }\n }\n }\n return copy;\n }\n if (type !== \"symbol\") {\n return src;\n }\n}\nfunction deepCopy(src) {\n return clone(src, typeof WeakMap !== \"undefined\" ? /* @__PURE__ */ new WeakMap() : /* @__PURE__ */ new Map());\n}\n\nfunction getMPInstanceData(instance, keys) {\n const data = instance.data;\n const ret = /* @__PURE__ */ Object.create(null);\n keys.forEach((key) => {\n ret[key] = data[key];\n });\n return ret;\n}\nfunction patch(instance, data, oldData) {\n if (!data) {\n return;\n }\n data = deepCopy(data);\n const ctx = instance.ctx;\n const mpType = ctx.mpType;\n if (mpType === \"page\" || mpType === \"component\") {\n data.r0 = 1;\n const start = Date.now();\n const mpInstance = ctx.$scope;\n const keys = Object.keys(data);\n const diffData = diff(data, oldData || getMPInstanceData(mpInstance, keys));\n if (Object.keys(diffData).length) {\n if (process.env.UNI_DEBUG) {\n console.log(\n \"[\" + +/* @__PURE__ */ new Date() + \"][\" + (mpInstance.is || mpInstance.route) + \"][\" + instance.uid + \"][\\u8017\\u65F6\" + (Date.now() - start) + \"]\\u5DEE\\u91CF\\u66F4\\u65B0\",\n JSON.stringify(diffData)\n );\n }\n ctx.__next_tick_pending = true;\n mpInstance.setData(diffData, () => {\n ctx.__next_tick_pending = false;\n flushCallbacks(instance);\n });\n flushPreFlushCbs();\n } else {\n flushCallbacks(instance);\n }\n }\n}\n\nfunction initAppConfig(appConfig) {\n appConfig.globalProperties.$nextTick = function $nextTick(fn) {\n return nextTick(this.$, fn);\n };\n}\n\nfunction onApplyOptions(options, instance, publicThis) {\n instance.appContext.config.globalProperties.$applyOptions(\n options,\n instance,\n publicThis\n );\n const computedOptions = options.computed;\n if (computedOptions) {\n const keys = Object.keys(computedOptions);\n if (keys.length) {\n const ctx = instance.ctx;\n if (!ctx.$computedKeys) {\n ctx.$computedKeys = [];\n }\n ctx.$computedKeys.push(...keys);\n }\n }\n delete instance.ctx.$onApplyOptions;\n}\n\nfunction setRef$1(instance, isUnmount = false) {\n const {\n setupState,\n $templateRefs,\n ctx: { $scope, $mpPlatform }\n } = instance;\n if ($mpPlatform === \"mp-alipay\") {\n return;\n }\n if (!$templateRefs || !$scope) {\n return;\n }\n if (isUnmount) {\n return $templateRefs.forEach(\n (templateRef) => setTemplateRef(templateRef, null, setupState)\n );\n }\n const check = $mpPlatform === \"mp-baidu\" || $mpPlatform === \"mp-toutiao\";\n const doSetByRefs = (refs) => {\n const mpComponents = (\n // 字节小程序 selectAllComponents 可能返回 null\n // https://github.com/dcloudio/uni-app/issues/3954\n ($scope.selectAllComponents(\".r\") || []).concat(\n $scope.selectAllComponents(\".r-i-f\") || []\n )\n );\n return refs.filter((templateRef) => {\n const refValue = findComponentPublicInstance(mpComponents, templateRef.i);\n if (check && refValue === null) {\n return true;\n }\n setTemplateRef(templateRef, refValue, setupState);\n return false;\n });\n };\n const doSet = () => {\n const refs = doSetByRefs($templateRefs);\n if (refs.length && instance.proxy && instance.proxy.$scope) {\n instance.proxy.$scope.setData({ r1: 1 }, () => {\n doSetByRefs(refs);\n });\n }\n };\n if ($scope._$setRef) {\n $scope._$setRef(doSet);\n } else {\n nextTick(instance, doSet);\n }\n}\nfunction toSkip(value) {\n if (isObject(value)) {\n markRaw(value);\n }\n return value;\n}\nfunction findComponentPublicInstance(mpComponents, id) {\n const mpInstance = mpComponents.find(\n (com) => com && (com.properties || com.props).uI === id\n );\n if (mpInstance) {\n const vm = mpInstance.$vm;\n if (vm) {\n return getExposeProxy(vm.$) || vm;\n }\n return toSkip(mpInstance);\n }\n return null;\n}\nfunction setTemplateRef({ r, f }, refValue, setupState) {\n if (isFunction(r)) {\n r(refValue, {});\n } else {\n const _isString = isString(r);\n const _isRef = isRef(r);\n if (_isString || _isRef) {\n if (f) {\n if (!_isRef) {\n return;\n }\n if (!isArray(r.value)) {\n r.value = [];\n }\n const existing = r.value;\n if (existing.indexOf(refValue) === -1) {\n existing.push(refValue);\n if (!refValue) {\n return;\n }\n onBeforeUnmount(() => remove(existing, refValue), refValue.$);\n }\n } else if (_isString) {\n if (hasOwn(setupState, r)) {\n setupState[r] = refValue;\n }\n } else if (isRef(r)) {\n r.value = refValue;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warnRef(r);\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warnRef(r);\n }\n }\n}\nfunction warnRef(ref) {\n warn(\"Invalid template ref type:\", ref, `(${typeof ref})`);\n}\n\nconst queuePostRenderEffect = queuePostFlushCb;\nfunction mountComponent(initialVNode, options) {\n const instance = initialVNode.component = createComponentInstance(initialVNode, options.parentComponent, null);\n if (__VUE_OPTIONS_API__) {\n instance.ctx.$onApplyOptions = onApplyOptions;\n instance.ctx.$children = [];\n }\n if (options.mpType === \"app\") {\n instance.render = NOOP;\n }\n if (options.onBeforeSetup) {\n options.onBeforeSetup(instance, options);\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n pushWarningContext(initialVNode);\n startMeasure(instance, `mount`);\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n startMeasure(instance, `init`);\n }\n setupComponent(instance);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n endMeasure(instance, `init`);\n }\n if (__VUE_OPTIONS_API__) {\n if (options.parentComponent && instance.proxy) {\n options.parentComponent.ctx.$children.push(getExposeProxy(instance) || instance.proxy);\n }\n }\n setupRenderEffect(instance);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n popWarningContext();\n endMeasure(instance, `mount`);\n }\n return instance.proxy;\n}\nconst getFunctionalFallthrough = (attrs) => {\n let res;\n for (const key in attrs) {\n if (key === \"class\" || key === \"style\" || isOn(key)) {\n (res || (res = {}))[key] = attrs[key];\n }\n }\n return res;\n};\nfunction renderComponentRoot(instance) {\n const {\n type: Component,\n vnode,\n proxy,\n withProxy,\n props,\n propsOptions: [propsOptions],\n slots,\n attrs,\n emit,\n render,\n renderCache,\n data,\n setupState,\n ctx,\n uid,\n appContext: {\n app: {\n config: {\n globalProperties: { pruneComponentPropsCache }\n }\n }\n },\n inheritAttrs\n } = instance;\n instance.$templateRefs = [];\n instance.$ei = 0;\n pruneComponentPropsCache(uid);\n instance.__counter = instance.__counter === 0 ? 1 : 0;\n let result;\n const prev = setCurrentRenderingInstance(instance);\n try {\n if (vnode.shapeFlag & 4) {\n fallthroughAttrs(inheritAttrs, props, propsOptions, attrs);\n const proxyToUse = withProxy || proxy;\n result = render.call(\n proxyToUse,\n proxyToUse,\n renderCache,\n props,\n setupState,\n data,\n ctx\n );\n } else {\n fallthroughAttrs(\n inheritAttrs,\n props,\n propsOptions,\n Component.props ? attrs : getFunctionalFallthrough(attrs)\n );\n const render2 = Component;\n result = render2.length > 1 ? render2(props, { attrs, slots, emit }) : render2(\n props,\n null\n /* we know it doesn't need it */\n );\n }\n } catch (err) {\n handleError(err, instance, 1);\n result = false;\n }\n setRef$1(instance);\n setCurrentRenderingInstance(prev);\n return result;\n}\nfunction fallthroughAttrs(inheritAttrs, props, propsOptions, fallthroughAttrs2) {\n if (props && fallthroughAttrs2 && inheritAttrs !== false) {\n const keys = Object.keys(fallthroughAttrs2).filter(\n (key) => key !== \"class\" && key !== \"style\"\n );\n if (!keys.length) {\n return;\n }\n if (propsOptions && keys.some(isModelListener)) {\n keys.forEach((key) => {\n if (!isModelListener(key) || !(key.slice(9) in propsOptions)) {\n props[key] = fallthroughAttrs2[key];\n }\n });\n } else {\n keys.forEach((key) => props[key] = fallthroughAttrs2[key]);\n }\n }\n}\nconst updateComponentPreRender = (instance) => {\n pauseTracking();\n flushPreFlushCbs();\n resetTracking();\n};\nfunction componentUpdateScopedSlotsFn() {\n const scopedSlotsData = this.$scopedSlotsData;\n if (!scopedSlotsData || scopedSlotsData.length === 0) {\n return;\n }\n const start = Date.now();\n const mpInstance = this.ctx.$scope;\n const oldData = mpInstance.data;\n const diffData = /* @__PURE__ */ Object.create(null);\n scopedSlotsData.forEach(({ path, index, data }) => {\n const oldScopedSlotData = getValueByDataPath(oldData, path);\n const diffPath = isString(index) ? `${path}.${index}` : `${path}[${index}]`;\n if (typeof oldScopedSlotData === \"undefined\" || typeof oldScopedSlotData[index] === \"undefined\") {\n diffData[diffPath] = data;\n } else {\n const diffScopedSlotData = diff(\n data,\n oldScopedSlotData[index]\n );\n Object.keys(diffScopedSlotData).forEach((name) => {\n diffData[diffPath + \".\" + name] = diffScopedSlotData[name];\n });\n }\n });\n scopedSlotsData.length = 0;\n if (Object.keys(diffData).length) {\n if (process.env.UNI_DEBUG) {\n console.log(\n \"[\" + +/* @__PURE__ */ new Date() + \"][\" + (mpInstance.is || mpInstance.route) + \"][\" + this.uid + \"][\\u8017\\u65F6\" + (Date.now() - start) + \"]\\u4F5C\\u7528\\u57DF\\u63D2\\u69FD\\u5DEE\\u91CF\\u66F4\\u65B0\",\n JSON.stringify(diffData)\n );\n }\n mpInstance.setData(diffData);\n }\n}\nfunction toggleRecurse({ effect, update }, allowed) {\n effect.allowRecurse = update.allowRecurse = allowed;\n}\nfunction setupRenderEffect(instance) {\n const updateScopedSlots = componentUpdateScopedSlotsFn.bind(\n instance\n );\n instance.$updateScopedSlots = () => nextTick$1(() => queueJob(updateScopedSlots));\n const componentUpdateFn = () => {\n if (!instance.isMounted) {\n onBeforeUnmount(() => {\n setRef$1(instance, true);\n }, instance);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n startMeasure(instance, `patch`);\n }\n patch(instance, renderComponentRoot(instance));\n if (!!(process.env.NODE_ENV !== \"production\")) {\n endMeasure(instance, `patch`);\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentAdded(instance);\n }\n } else {\n const { next, bu, u } = instance;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n pushWarningContext(next || instance.vnode);\n }\n toggleRecurse(instance, false);\n updateComponentPreRender();\n if (bu) {\n invokeArrayFns(bu);\n }\n toggleRecurse(instance, true);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n startMeasure(instance, `patch`);\n }\n patch(instance, renderComponentRoot(instance));\n if (!!(process.env.NODE_ENV !== \"production\")) {\n endMeasure(instance, `patch`);\n }\n if (u) {\n queuePostRenderEffect(u);\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentUpdated(instance);\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n popWarningContext();\n }\n }\n };\n const effect = instance.effect = new ReactiveEffect(\n componentUpdateFn,\n NOOP,\n () => queueJob(update),\n instance.scope\n // track it in component's effect scope\n );\n const update = instance.update = () => {\n if (effect.dirty) {\n effect.run();\n }\n };\n update.id = instance.uid;\n toggleRecurse(instance, true);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n effect.onTrack = instance.rtc ? (e) => invokeArrayFns(instance.rtc, e) : void 0;\n effect.onTrigger = instance.rtg ? (e) => invokeArrayFns(instance.rtg, e) : void 0;\n update.ownerInstance = instance;\n }\n update();\n}\nfunction unmountComponent(instance) {\n const { bum, scope, update, um } = instance;\n if (bum) {\n invokeArrayFns(bum);\n }\n scope.stop();\n if (update) {\n update.active = false;\n }\n if (um) {\n queuePostRenderEffect(um);\n }\n queuePostRenderEffect(() => {\n instance.isUnmounted = true;\n });\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentRemoved(instance);\n }\n}\nconst oldCreateApp = createAppAPI();\nfunction getTarget() {\n if (typeof window !== \"undefined\") {\n return window;\n }\n if (typeof globalThis !== \"undefined\") {\n return globalThis;\n }\n if (typeof global !== \"undefined\") {\n return global;\n }\n if (typeof my !== \"undefined\") {\n return my;\n }\n}\nfunction createVueApp(rootComponent, rootProps = null) {\n const target = getTarget();\n target.__VUE__ = true;\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n setDevtoolsHook(target.__VUE_DEVTOOLS_GLOBAL_HOOK__, target);\n }\n const app = oldCreateApp(rootComponent, rootProps);\n const appContext = app._context;\n initAppConfig(appContext.config);\n const createVNode = (initialVNode) => {\n initialVNode.appContext = appContext;\n initialVNode.shapeFlag = 6;\n return initialVNode;\n };\n const createComponent = function createComponent2(initialVNode, options) {\n return mountComponent(createVNode(initialVNode), options);\n };\n const destroyComponent = function destroyComponent2(component) {\n return component && unmountComponent(component.$);\n };\n app.mount = function mount() {\n rootComponent.render = NOOP;\n const instance = mountComponent(\n createVNode({ type: rootComponent }),\n {\n mpType: \"app\",\n mpInstance: null,\n parentComponent: null,\n slots: [],\n props: null\n }\n );\n app._instance = instance.$;\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsInitApp(app, version);\n }\n instance.$app = app;\n instance.$createComponent = createComponent;\n instance.$destroyComponent = destroyComponent;\n appContext.$appInstance = instance;\n return instance;\n };\n app.unmount = function unmount() {\n warn(`Cannot unmount an app.`);\n };\n return app;\n}\n\nfunction useCssVars(getter) {\n const instance = getCurrentInstance();\n if (!instance) {\n !!(process.env.NODE_ENV !== \"production\") && warn(`useCssVars is called without current active component instance.`);\n return;\n }\n initCssVarsRender(instance, getter);\n}\nfunction initCssVarsRender(instance, getter) {\n instance.ctx.__cssVars = () => {\n const vars = getter(instance.proxy);\n const cssVars = {};\n for (const key in vars) {\n cssVars[`--${key}`] = vars[key];\n }\n return cssVars;\n };\n}\n\nfunction withModifiers() {\n}\nfunction createVNode() {\n}\n\nfunction injectLifecycleHook(name, hook, publicThis, instance) {\n if (isFunction(hook)) {\n injectHook(name, hook.bind(publicThis), instance);\n }\n}\nfunction initHooks(options, instance, publicThis) {\n const mpType = options.mpType || publicThis.$mpType;\n if (!mpType || mpType === 'component') {\n // 仅 App,Page 类型支持在 options 中配置 on 生命周期,组件可以使用组合式 API 定义页面生命周期\n return;\n }\n Object.keys(options).forEach((name) => {\n if (isUniLifecycleHook(name, options[name], false)) {\n const hooks = options[name];\n if (isArray(hooks)) {\n hooks.forEach((hook) => injectLifecycleHook(name, hook, publicThis, instance));\n }\n else {\n injectLifecycleHook(name, hooks, publicThis, instance);\n }\n }\n });\n}\n\nfunction applyOptions(options, instance, publicThis) {\n initHooks(options, instance, publicThis);\n}\n\nfunction set(target, key, val) {\n return (target[key] = val);\n}\nfunction $callMethod(method, ...args) {\n const fn = this[method];\n if (fn) {\n return fn(...args);\n }\n console.error(`method ${method} not found`);\n return null;\n}\n\nfunction createErrorHandler(app) {\n return function errorHandler(err, instance, _info) {\n if (!instance) {\n throw err;\n }\n const appInstance = app._instance;\n if (!appInstance || !appInstance.proxy) {\n throw err;\n }\n {\n appInstance.proxy.$callHook(ON_ERROR, err);\n }\n };\n}\nfunction mergeAsArray(to, from) {\n return to ? [...new Set([].concat(to, from))] : from;\n}\nfunction initOptionMergeStrategies(optionMergeStrategies) {\n UniLifecycleHooks.forEach((name) => {\n optionMergeStrategies[name] = mergeAsArray;\n });\n}\n\nlet realAtob;\nconst b64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\nconst b64re = /^(?:[A-Za-z\\d+/]{4})*?(?:[A-Za-z\\d+/]{2}(?:==)?|[A-Za-z\\d+/]{3}=?)?$/;\nif (typeof atob !== 'function') {\n realAtob = function (str) {\n str = String(str).replace(/[\\t\\n\\f\\r ]+/g, '');\n if (!b64re.test(str)) {\n throw new Error(\"Failed to execute 'atob' on 'Window': The string to be decoded is not correctly encoded.\");\n }\n // Adding the padding if missing, for semplicity\n str += '=='.slice(2 - (str.length & 3));\n var bitmap;\n var result = '';\n var r1;\n var r2;\n var i = 0;\n for (; i < str.length;) {\n bitmap =\n (b64.indexOf(str.charAt(i++)) << 18) |\n (b64.indexOf(str.charAt(i++)) << 12) |\n ((r1 = b64.indexOf(str.charAt(i++))) << 6) |\n (r2 = b64.indexOf(str.charAt(i++)));\n result +=\n r1 === 64\n ? String.fromCharCode((bitmap >> 16) & 255)\n : r2 === 64\n ? String.fromCharCode((bitmap >> 16) & 255, (bitmap >> 8) & 255)\n : String.fromCharCode((bitmap >> 16) & 255, (bitmap >> 8) & 255, bitmap & 255);\n }\n return result;\n };\n}\nelse {\n // 注意atob只能在全局对象上调用例如`const Base64 = {atob};Base64.atob('xxxx')`是错误的用法\n realAtob = atob;\n}\nfunction b64DecodeUnicode(str) {\n return decodeURIComponent(realAtob(str)\n .split('')\n .map(function (c) {\n return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);\n })\n .join(''));\n}\nfunction getCurrentUserInfo() {\n const token = uni.getStorageSync('uni_id_token') || '';\n const tokenArr = token.split('.');\n if (!token || tokenArr.length !== 3) {\n return {\n uid: null,\n role: [],\n permission: [],\n tokenExpired: 0,\n };\n }\n let userInfo;\n try {\n userInfo = JSON.parse(b64DecodeUnicode(tokenArr[1]));\n }\n catch (error) {\n throw new Error('获取当前用户信息出错,详细错误信息为:' + error.message);\n }\n userInfo.tokenExpired = userInfo.exp * 1000;\n delete userInfo.exp;\n delete userInfo.iat;\n return userInfo;\n}\nfunction uniIdMixin(globalProperties) {\n globalProperties.uniIDHasRole = function (roleId) {\n const { role } = getCurrentUserInfo();\n return role.indexOf(roleId) > -1;\n };\n globalProperties.uniIDHasPermission = function (permissionId) {\n const { permission } = getCurrentUserInfo();\n return this.uniIDHasRole('admin') || permission.indexOf(permissionId) > -1;\n };\n globalProperties.uniIDTokenValid = function () {\n const { tokenExpired } = getCurrentUserInfo();\n return tokenExpired > Date.now();\n };\n}\n\nfunction initApp(app) {\n const appConfig = app._context.config;\n appConfig.errorHandler = invokeCreateErrorHandler(app, createErrorHandler);\n initOptionMergeStrategies(appConfig.optionMergeStrategies);\n const globalProperties = appConfig.globalProperties;\n {\n uniIdMixin(globalProperties);\n }\n if (__VUE_OPTIONS_API__) {\n globalProperties.$set = set;\n globalProperties.$applyOptions = applyOptions;\n globalProperties.$callMethod = $callMethod;\n }\n {\n uni.invokeCreateVueAppHook(app);\n }\n}\n\nconst propsCaches = Object.create(null);\nfunction renderProps(props) {\n const { uid, __counter } = getCurrentInstance();\n const propsId = (propsCaches[uid] || (propsCaches[uid] = [])).push(guardReactiveProps(props)) - 1;\n // 强制每次更新\n return uid + ',' + propsId + ',' + __counter;\n}\nfunction pruneComponentPropsCache(uid) {\n delete propsCaches[uid];\n}\nfunction findComponentPropsData(up) {\n if (!up) {\n return;\n }\n const [uid, propsId] = up.split(',');\n if (!propsCaches[uid]) {\n return;\n }\n return propsCaches[uid][parseInt(propsId)];\n}\n\nvar plugin = {\n install(app) {\n initApp(app);\n app.config.globalProperties.pruneComponentPropsCache =\n pruneComponentPropsCache;\n const oldMount = app.mount;\n app.mount = function mount(rootContainer) {\n const instance = oldMount.call(app, rootContainer);\n const createApp = getCreateApp();\n if (createApp) {\n createApp(instance);\n }\n else {\n // @ts-expect-error 旧编译器\n if (typeof createMiniProgramApp !== 'undefined') {\n // @ts-expect-error\n createMiniProgramApp(instance);\n }\n }\n return instance;\n };\n },\n};\nfunction getCreateApp() {\n const method = process.env.UNI_MP_PLUGIN\n ? 'createPluginApp'\n : process.env.UNI_SUBPACKAGE\n ? 'createSubpackageApp'\n : 'createApp';\n if (typeof global !== 'undefined' &&\n typeof global[method] !== 'undefined') {\n return global[method];\n }\n else if (typeof my !== 'undefined') {\n // 支付宝小程序开启globalObjectMode配置后才会有global\n return my[method];\n }\n}\n\nfunction vOn(value, key) {\n const instance = getCurrentInstance();\n const ctx = instance.ctx;\n // 微信小程序QQ小程序当 setData diff 的时候若事件不主动同步过去会导致事件绑定不更新question/137217\n const extraKey = typeof key !== 'undefined' &&\n (ctx.$mpPlatform === 'mp-weixin' ||\n ctx.$mpPlatform === 'mp-qq' ||\n ctx.$mpPlatform === 'mp-xhs') &&\n (isString(key) || typeof key === 'number')\n ? '_' + key\n : '';\n const name = 'e' + instance.$ei++ + extraKey;\n const mpInstance = ctx.$scope;\n if (!value) {\n // remove\n delete mpInstance[name];\n return name;\n }\n const existingInvoker = mpInstance[name];\n if (existingInvoker) {\n // patch\n existingInvoker.value = value;\n }\n else {\n // add\n mpInstance[name] = createInvoker(value, instance);\n }\n return name;\n}\nfunction createInvoker(initialValue, instance) {\n const invoker = (e) => {\n patchMPEvent(e);\n let args = [e];\n if (e.detail && e.detail.__args__) {\n args = e.detail.__args__;\n }\n const eventValue = invoker.value;\n const invoke = () => callWithAsyncErrorHandling(patchStopImmediatePropagation(e, eventValue), instance, 5 /* ErrorCodes.NATIVE_EVENT_HANDLER */, args);\n // 冒泡事件触发时,启用延迟策略,避免同一批次的事件执行时机不正确,对性能可能有略微影响 https://github.com/dcloudio/uni-app/issues/3228\n const eventTarget = e.target;\n const eventSync = eventTarget\n ? eventTarget.dataset\n ? String(eventTarget.dataset.eventsync) === 'true'\n : false\n : false;\n if (bubbles.includes(e.type) && !eventSync) {\n setTimeout(invoke);\n }\n else {\n const res = invoke();\n if (e.type === 'input' && (isArray(res) || isPromise(res))) {\n return;\n }\n return res;\n }\n };\n invoker.value = initialValue;\n return invoker;\n}\n// 冒泡事件列表\nconst bubbles = [\n // touch事件暂不做延迟否则在 Android 上会影响性能,比如一些拖拽跟手手势等\n // 'touchstart',\n // 'touchmove',\n // 'touchcancel',\n // 'touchend',\n 'tap',\n 'longpress',\n 'longtap',\n 'transitionend',\n 'animationstart',\n 'animationiteration',\n 'animationend',\n 'touchforcechange',\n];\nfunction patchMPEvent(event) {\n if (event.type && event.target) {\n event.preventDefault = NOOP;\n event.stopPropagation = NOOP;\n event.stopImmediatePropagation = NOOP;\n if (!hasOwn(event, 'detail')) {\n event.detail = {};\n }\n if (hasOwn(event, 'markerId')) {\n event.detail = typeof event.detail === 'object' ? event.detail : {};\n event.detail.markerId = event.markerId;\n }\n // mp-baiduchecked=>value\n if (isPlainObject(event.detail) &&\n hasOwn(event.detail, 'checked') &&\n !hasOwn(event.detail, 'value')) {\n event.detail.value = event.detail.checked;\n }\n if (isPlainObject(event.detail)) {\n event.target = extend({}, event.target, event.detail);\n }\n }\n}\nfunction patchStopImmediatePropagation(e, value) {\n if (isArray(value)) {\n const originalStop = e.stopImmediatePropagation;\n e.stopImmediatePropagation = () => {\n originalStop && originalStop.call(e);\n e._stopped = true;\n };\n return value.map((fn) => (e) => !e._stopped && fn(e));\n }\n else {\n return value;\n }\n}\n\n/**\n * Actual implementation\n */\nfunction vFor(source, renderItem) {\n let ret;\n if (isArray(source) || isString(source)) {\n ret = new Array(source.length);\n for (let i = 0, l = source.length; i < l; i++) {\n ret[i] = renderItem(source[i], i, i);\n }\n }\n else if (typeof source === 'number') {\n if ((process.env.NODE_ENV !== 'production') && !Number.isInteger(source)) {\n warn(`The v-for range expect an integer value but got ${source}.`);\n return [];\n }\n ret = new Array(source);\n for (let i = 0; i < source; i++) {\n ret[i] = renderItem(i + 1, i, i);\n }\n }\n else if (isObject(source)) {\n if (source[Symbol.iterator]) {\n ret = Array.from(source, (item, i) => renderItem(item, i, i));\n }\n else {\n const keys = Object.keys(source);\n ret = new Array(keys.length);\n for (let i = 0, l = keys.length; i < l; i++) {\n const key = keys[i];\n ret[i] = renderItem(source[key], key, i);\n }\n }\n }\n else {\n ret = [];\n }\n return ret;\n}\n\nfunction renderSlot(name, props = {}, key) {\n const instance = getCurrentInstance();\n const { parent, isMounted, ctx: { $scope }, } = instance;\n // mp-alipay 为 props\n const vueIds = ($scope.properties || $scope.props).uI;\n if (!vueIds) {\n return;\n }\n if (!parent && !isMounted) {\n // 头条小程序首次 render 时,还没有 parent\n onMounted(() => {\n renderSlot(name, props, key);\n }, instance);\n return;\n }\n const invoker = findScopedSlotInvoker(vueIds, instance);\n // 可能不存在,因为插槽不是必需的\n if (invoker) {\n invoker(name, props, key);\n }\n}\nfunction findScopedSlotInvoker(vueId, instance) {\n let parent = instance.parent;\n while (parent) {\n const invokers = parent.$ssi;\n if (invokers && invokers[vueId]) {\n return invokers[vueId];\n }\n parent = parent.parent;\n }\n}\n\nfunction withScopedSlot(fn, { name, path, vueId, }) {\n const instance = getCurrentInstance();\n fn.path = path;\n const scopedSlots = (instance.$ssi ||\n (instance.$ssi = {}));\n const invoker = scopedSlots[vueId] ||\n (scopedSlots[vueId] = createScopedSlotInvoker(instance));\n if (!invoker.slots[name]) {\n invoker.slots[name] = {\n fn,\n };\n }\n else {\n invoker.slots[name].fn = fn;\n }\n return getValueByDataPath(instance.ctx.$scope.data, path);\n}\nfunction createScopedSlotInvoker(instance) {\n const invoker = (slotName, args, index) => {\n const slot = invoker.slots[slotName];\n if (!slot) {\n // slot 可能不存在 https://github.com/dcloudio/uni-app/issues/3346\n return;\n }\n const hasIndex = typeof index !== 'undefined';\n index = index || 0;\n // 确保当前 slot 的上下文,类似 withCtx\n const prevInstance = setCurrentRenderingInstance(instance);\n const data = slot.fn(args, slotName + (hasIndex ? '-' + index : ''), index);\n const path = slot.fn.path;\n setCurrentRenderingInstance(prevInstance);\n (instance.$scopedSlotsData || (instance.$scopedSlotsData = [])).push({\n path,\n index,\n data,\n });\n instance.$updateScopedSlots();\n };\n invoker.slots = {};\n return invoker;\n}\n\nfunction stringifyStyle(value) {\n if (isString(value)) {\n return value;\n }\n return stringify(normalizeStyle(value));\n}\nfunction stringify(styles) {\n let ret = '';\n if (!styles || isString(styles)) {\n return ret;\n }\n for (const key in styles) {\n ret += `${key.startsWith(`--`) ? key : hyphenate(key)}:${styles[key]};`;\n }\n return ret;\n}\n\n/**\n * quickapp-webview 不能使用 default 作为插槽名称,故统一转换 default 为 d\n * @param names\n * @returns\n */\nfunction dynamicSlot(names) {\n if (isString(names)) {\n return dynamicSlotName(names);\n }\n return names.map((name) => dynamicSlotName(name));\n}\n\nfunction setRef(ref, id, opts = {}) {\n const { $templateRefs } = getCurrentInstance();\n $templateRefs.push({ i: id, r: ref, k: opts.k, f: opts.f });\n}\n\nfunction withModelModifiers(fn, { number, trim }, isComponent = false) {\n if (isComponent) {\n return (...args) => {\n if (trim) {\n args = args.map((a) => a.trim());\n }\n else if (number) {\n args = args.map(toNumber);\n }\n return fn(...args);\n };\n }\n return (event) => {\n const value = event.detail.value;\n if (trim) {\n event.detail.value = value.trim();\n }\n else if (number) {\n event.detail.value = toNumber(value);\n }\n return fn(event);\n };\n}\n\nfunction setupDevtoolsPlugin() {\n // noop\n}\n\nconst o = (value, key) => vOn(value, key);\nconst f = (source, renderItem) => vFor(source, renderItem);\nconst d = (names) => dynamicSlot(names);\nconst r = (name, props, key) => renderSlot(name, props, key);\nconst w = (fn, options) => withScopedSlot(fn, options);\nconst s = (value) => stringifyStyle(value);\nconst c = (str) => camelize(str);\nconst e = (target, ...sources) => extend(target, ...sources);\nconst h = (str) => hyphenate(str);\nconst n = (value) => normalizeClass(value);\nconst t = (val) => toDisplayString(val);\nconst p = (props) => renderProps(props);\nconst sr = (ref, id, opts) => setRef(ref, id, opts);\nconst m = (fn, modifiers, isComponent = false) => withModelModifiers(fn, modifiers, isComponent);\nconst j = (obj) => JSON.stringify(obj);\n\nfunction createApp(rootComponent, rootProps = null) {\n rootComponent && (rootComponent.mpType = 'app');\n return createVueApp(rootComponent, rootProps).use(plugin);\n}\nconst createSSRApp = createApp;\n\nexport { EffectScope, Fragment, ReactiveEffect, Text, c, callWithAsyncErrorHandling, callWithErrorHandling, computed, createApp, createSSRApp, createVNode, createVueApp, customRef, d, defineAsyncComponent, defineComponent, defineEmits, defineExpose, defineProps, devtoolsComponentAdded, devtoolsComponentRemoved, devtoolsComponentUpdated, diff, e, effect, effectScope, f, findComponentPropsData, getCurrentInstance, getCurrentScope, getExposeProxy, guardReactiveProps, h, hasInjectionContext, hasQueueJob, inject, injectHook, invalidateJob, isInSSRComponentSetup, isProxy, isReactive, isReadonly, isRef, j, logError, m, markRaw, mergeDefaults, mergeProps, n, nextTick$1 as nextTick, o, onActivated, onBeforeMount, onBeforeUnmount, onBeforeUpdate, onDeactivated, onErrorCaptured, onMounted, onRenderTracked, onRenderTriggered, onScopeDispose, onServerPrefetch, onUnmounted, onUpdated, p, patch, provide, proxyRefs, pruneComponentPropsCache, queuePostFlushCb, r, reactive, readonly, ref, resolveComponent, resolveDirective, resolveFilter, s, setCurrentRenderingInstance, setTemplateRef, setupDevtoolsPlugin, shallowReactive, shallowReadonly, shallowRef, sr, stop, t, toHandlers, toRaw, toRef, toRefs, triggerRef, unref, updateProps, useAttrs, useCssModule, useCssVars, useSSRContext, useSlots, version, w, warn, watch, watchEffect, watchPostEffect, watchSyncEffect, withAsyncContext, withCtx, withDefaults, withDirectives, withModifiers, withScopeId };\n","import { SLOT_DEFAULT_NAME, invokeArrayFns, MINI_PROGRAM_PAGE_RUNTIME_HOOKS, ON_LOAD, ON_SHOW, ON_HIDE, ON_UNLOAD, ON_RESIZE, ON_TAB_ITEM_TAP, ON_REACH_BOTTOM, ON_PULL_DOWN_REFRESH, ON_ADD_TO_FAVORITES, isUniLifecycleHook, ON_READY, once, ON_LAUNCH, ON_ERROR, ON_THEME_CHANGE, ON_PAGE_NOT_FOUND, ON_UNHANDLE_REJECTION, addLeadingSlash, stringifyQuery, customizeEvent } from '@dcloudio/uni-shared';\nimport { isArray, hasOwn, isFunction, extend, isPlainObject, isObject } from '@vue/shared';\nimport { ref, findComponentPropsData, toRaw, updateProps, hasQueueJob, invalidateJob, devtoolsComponentAdded, getExposeProxy, pruneComponentPropsCache } from 'vue';\nimport { normalizeLocale, LOCALE_EN } from '@dcloudio/uni-i18n';\n\nconst MP_METHODS = [\n 'createSelectorQuery',\n 'createIntersectionObserver',\n 'selectAllComponents',\n 'selectComponent',\n];\nfunction createEmitFn(oldEmit, ctx) {\n return function emit(event, ...args) {\n const scope = ctx.$scope;\n if (scope && event) {\n const detail = { __args__: args };\n {\n scope.triggerEvent(event, detail);\n }\n }\n return oldEmit.apply(this, [event, ...args]);\n };\n}\nfunction initBaseInstance(instance, options) {\n const ctx = instance.ctx;\n // mp\n ctx.mpType = options.mpType; // @deprecated\n ctx.$mpType = options.mpType;\n ctx.$mpPlatform = \"mp-weixin\";\n ctx.$scope = options.mpInstance;\n // TODO @deprecated\n ctx.$mp = {};\n if (__VUE_OPTIONS_API__) {\n ctx._self = {};\n }\n // slots\n instance.slots = {};\n if (isArray(options.slots) && options.slots.length) {\n options.slots.forEach((name) => {\n instance.slots[name] = true;\n });\n if (instance.slots[SLOT_DEFAULT_NAME]) {\n instance.slots.default = true;\n }\n }\n ctx.getOpenerEventChannel = function () {\n // 微信小程序使用自身getOpenerEventChannel\n {\n return options.mpInstance.getOpenerEventChannel();\n }\n };\n ctx.$hasHook = hasHook;\n ctx.$callHook = callHook;\n // $emit\n instance.emit = createEmitFn(instance.emit, ctx);\n}\nfunction initComponentInstance(instance, options) {\n initBaseInstance(instance, options);\n const ctx = instance.ctx;\n MP_METHODS.forEach((method) => {\n ctx[method] = function (...args) {\n const mpInstance = ctx.$scope;\n if (mpInstance && mpInstance[method]) {\n return mpInstance[method].apply(mpInstance, args);\n }\n };\n });\n}\nfunction initMocks(instance, mpInstance, mocks) {\n const ctx = instance.ctx;\n mocks.forEach((mock) => {\n if (hasOwn(mpInstance, mock)) {\n instance[mock] = ctx[mock] = mpInstance[mock];\n }\n });\n}\nfunction hasHook(name) {\n const hooks = this.$[name];\n if (hooks && hooks.length) {\n return true;\n }\n return false;\n}\nfunction callHook(name, args) {\n if (name === 'mounted') {\n callHook.call(this, 'bm'); // beforeMount\n this.$.isMounted = true;\n name = 'm';\n }\n const hooks = this.$[name];\n return hooks && invokeArrayFns(hooks, args);\n}\n\nconst PAGE_INIT_HOOKS = [\n ON_LOAD,\n ON_SHOW,\n ON_HIDE,\n ON_UNLOAD,\n ON_RESIZE,\n ON_TAB_ITEM_TAP,\n ON_REACH_BOTTOM,\n ON_PULL_DOWN_REFRESH,\n ON_ADD_TO_FAVORITES,\n // 'onReady', // lifetimes.ready\n // 'onPageScroll', // 影响性能,开发者手动注册\n // 'onShareTimeline', // 右上角菜单,开发者手动注册\n // 'onShareAppMessage' // 右上角菜单,开发者手动注册\n];\nfunction findHooks(vueOptions, hooks = new Set()) {\n if (vueOptions) {\n Object.keys(vueOptions).forEach((name) => {\n if (isUniLifecycleHook(name, vueOptions[name])) {\n hooks.add(name);\n }\n });\n if (__VUE_OPTIONS_API__) {\n const { extends: extendsOptions, mixins } = vueOptions;\n if (mixins) {\n mixins.forEach((mixin) => findHooks(mixin, hooks));\n }\n if (extendsOptions) {\n findHooks(extendsOptions, hooks);\n }\n }\n }\n return hooks;\n}\nfunction initHook(mpOptions, hook, excludes) {\n if (excludes.indexOf(hook) === -1 && !hasOwn(mpOptions, hook)) {\n mpOptions[hook] = function (args) {\n return this.$vm && this.$vm.$callHook(hook, args);\n };\n }\n}\nconst EXCLUDE_HOOKS = [ON_READY];\nfunction initHooks(mpOptions, hooks, excludes = EXCLUDE_HOOKS) {\n hooks.forEach((hook) => initHook(mpOptions, hook, excludes));\n}\nfunction initUnknownHooks(mpOptions, vueOptions, excludes = EXCLUDE_HOOKS) {\n findHooks(vueOptions).forEach((hook) => initHook(mpOptions, hook, excludes));\n}\nfunction initRuntimeHooks(mpOptions, runtimeHooks) {\n if (!runtimeHooks) {\n return;\n }\n const hooks = Object.keys(MINI_PROGRAM_PAGE_RUNTIME_HOOKS);\n hooks.forEach((hook) => {\n if (runtimeHooks & MINI_PROGRAM_PAGE_RUNTIME_HOOKS[hook]) {\n initHook(mpOptions, hook, []);\n }\n });\n}\nconst findMixinRuntimeHooks = /*#__PURE__*/ once(() => {\n const runtimeHooks = [];\n const app = isFunction(getApp) && getApp({ allowDefault: true });\n if (app && app.$vm && app.$vm.$) {\n const mixins = app.$vm.$.appContext.mixins;\n if (isArray(mixins)) {\n const hooks = Object.keys(MINI_PROGRAM_PAGE_RUNTIME_HOOKS);\n mixins.forEach((mixin) => {\n hooks.forEach((hook) => {\n if (hasOwn(mixin, hook) && !runtimeHooks.includes(hook)) {\n runtimeHooks.push(hook);\n }\n });\n });\n }\n }\n return runtimeHooks;\n});\nfunction initMixinRuntimeHooks(mpOptions) {\n initHooks(mpOptions, findMixinRuntimeHooks());\n}\n\nconst HOOKS = [\n ON_SHOW,\n ON_HIDE,\n ON_ERROR,\n ON_THEME_CHANGE,\n ON_PAGE_NOT_FOUND,\n ON_UNHANDLE_REJECTION,\n];\nfunction parseApp(instance, parseAppOptions) {\n const internalInstance = instance.$;\n if (__VUE_PROD_DEVTOOLS__) {\n // 定制 App 的 $children\n Object.defineProperty(internalInstance.ctx, '$children', {\n get() {\n return getCurrentPages().map((page) => page.$vm);\n },\n });\n }\n const appOptions = {\n globalData: (instance.$options && instance.$options.globalData) || {},\n $vm: instance, // mp-alipay 组件 data 初始化比 onLaunch 早,提前挂载\n onLaunch(options) {\n this.$vm = instance; // 飞书小程序可能会把 AppOptions 序列化,导致 $vm 对象部分属性丢失\n const ctx = internalInstance.ctx;\n if (this.$vm && ctx.$scope) {\n // 已经初始化过了,主要是为了百度,百度 onShow 在 onLaunch 之前\n return;\n }\n initBaseInstance(internalInstance, {\n mpType: 'app',\n mpInstance: this,\n slots: [],\n });\n ctx.globalData = this.globalData;\n instance.$callHook(ON_LAUNCH, options);\n },\n };\n const { onError } = internalInstance;\n if (onError) {\n internalInstance.appContext.config.errorHandler = (err) => {\n instance.$callHook(ON_ERROR, err);\n };\n }\n initLocale(instance);\n const vueOptions = instance.$.type;\n initHooks(appOptions, HOOKS);\n initUnknownHooks(appOptions, vueOptions);\n if (__VUE_OPTIONS_API__) {\n const methods = vueOptions.methods;\n methods && extend(appOptions, methods);\n }\n if (parseAppOptions) {\n parseAppOptions.parse(appOptions);\n }\n return appOptions;\n}\nfunction initCreateApp(parseAppOptions) {\n return function createApp(vm) {\n return App(parseApp(vm, parseAppOptions));\n };\n}\nfunction initCreateSubpackageApp(parseAppOptions) {\n return function createApp(vm) {\n const appOptions = parseApp(vm, parseAppOptions);\n const app = isFunction(getApp) &&\n getApp({\n allowDefault: true,\n });\n if (!app)\n return;\n vm.$.ctx.$scope = app;\n const globalData = app.globalData;\n if (globalData) {\n Object.keys(appOptions.globalData).forEach((name) => {\n if (!hasOwn(globalData, name)) {\n globalData[name] = appOptions.globalData[name];\n }\n });\n }\n Object.keys(appOptions).forEach((name) => {\n if (!hasOwn(app, name)) {\n app[name] = appOptions[name];\n }\n });\n initAppLifecycle(appOptions, vm);\n if (process.env.UNI_SUBPACKAGE) {\n (wx.$subpackages || (wx.$subpackages = {}))[process.env.UNI_SUBPACKAGE] = {\n $vm: vm,\n };\n }\n };\n}\nfunction initAppLifecycle(appOptions, vm) {\n if (isFunction(appOptions.onLaunch)) {\n const args = wx.getLaunchOptionsSync && wx.getLaunchOptionsSync();\n appOptions.onLaunch(args);\n }\n if (isFunction(appOptions.onShow) && wx.onAppShow) {\n wx.onAppShow((args) => {\n vm.$callHook('onShow', args);\n });\n }\n if (isFunction(appOptions.onHide) && wx.onAppHide) {\n wx.onAppHide((args) => {\n vm.$callHook('onHide', args);\n });\n }\n}\nfunction initLocale(appVm) {\n const locale = ref(normalizeLocale(wx.getSystemInfoSync().language) || LOCALE_EN);\n Object.defineProperty(appVm, '$locale', {\n get() {\n return locale.value;\n },\n set(v) {\n locale.value = v;\n },\n });\n}\n\nfunction initVueIds(vueIds, mpInstance) {\n if (!vueIds) {\n return;\n }\n const ids = vueIds.split(',');\n const len = ids.length;\n if (len === 1) {\n mpInstance._$vueId = ids[0];\n }\n else if (len === 2) {\n mpInstance._$vueId = ids[0];\n mpInstance._$vuePid = ids[1];\n }\n}\nconst EXTRAS = ['externalClasses'];\nfunction initExtraOptions(miniProgramComponentOptions, vueOptions) {\n EXTRAS.forEach((name) => {\n if (hasOwn(vueOptions, name)) {\n miniProgramComponentOptions[name] = vueOptions[name];\n }\n });\n}\nconst WORKLET_RE = /_(.*)_worklet_factory_/;\nfunction initWorkletMethods(mpMethods, vueMethods) {\n if (vueMethods) {\n Object.keys(vueMethods).forEach((name) => {\n const matches = name.match(WORKLET_RE);\n if (matches) {\n const workletName = matches[1];\n mpMethods[name] = vueMethods[name];\n mpMethods[workletName] = vueMethods[workletName];\n }\n });\n }\n}\nfunction initWxsCallMethods(methods, wxsCallMethods) {\n if (!isArray(wxsCallMethods)) {\n return;\n }\n wxsCallMethods.forEach((callMethod) => {\n methods[callMethod] = function (args) {\n return this.$vm[callMethod](args);\n };\n });\n}\nfunction selectAllComponents(mpInstance, selector, $refs) {\n const components = mpInstance.selectAllComponents(selector);\n components.forEach((component) => {\n const ref = component.properties.uR;\n $refs[ref] = component.$vm || component;\n });\n}\nfunction initRefs(instance, mpInstance) {\n Object.defineProperty(instance, 'refs', {\n get() {\n const $refs = {};\n selectAllComponents(mpInstance, '.r', $refs);\n const forComponents = mpInstance.selectAllComponents('.r-i-f');\n forComponents.forEach((component) => {\n const ref = component.properties.uR;\n if (!ref) {\n return;\n }\n if (!$refs[ref]) {\n $refs[ref] = [];\n }\n $refs[ref].push(component.$vm || component);\n });\n return $refs;\n },\n });\n}\nfunction findVmByVueId(instance, vuePid) {\n // 标准 vue3 中 没有 $children定制了内核\n const $children = instance.$children;\n // 优先查找直属(反向查找:https://github.com/dcloudio/uni-app/issues/1200)\n for (let i = $children.length - 1; i >= 0; i--) {\n const childVm = $children[i];\n if (childVm.$scope._$vueId === vuePid) {\n return childVm;\n }\n }\n // 反向递归查找\n let parentVm;\n for (let i = $children.length - 1; i >= 0; i--) {\n parentVm = findVmByVueId($children[i], vuePid);\n if (parentVm) {\n return parentVm;\n }\n }\n}\n\nconst builtInProps = [\n // 百度小程序,快手小程序自定义组件不支持绑定动态事件动态dataset故通过props传递事件信息\n // event-opts\n 'eO',\n // 组件 ref\n 'uR',\n // 组件 ref-in-for\n 'uRIF',\n // 组件 id\n 'uI',\n // 组件类型 m: 小程序组件\n 'uT',\n // 组件 props\n 'uP',\n // 小程序不能直接定义 $slots 的 props所以通过 vueSlots 转换到 $slots\n 'uS',\n];\nfunction initDefaultProps(options, isBehavior = false) {\n const properties = {};\n if (!isBehavior) {\n // 均不指定类型,避免微信小程序 property received type-uncompatible value 警告\n builtInProps.forEach((name) => {\n properties[name] = {\n type: null,\n value: '',\n };\n });\n // 小程序不能直接定义 $slots 的 props所以通过 vueSlots 转换到 $slots\n properties.uS = {\n type: null,\n value: [],\n observer: function (newVal) {\n const $slots = Object.create(null);\n newVal &&\n newVal.forEach((slotName) => {\n $slots[slotName] = true;\n });\n this.setData({\n $slots,\n });\n },\n };\n }\n if (options.behaviors) {\n // wx://form-field\n if (options.behaviors.includes('__GLOBAL__://form-field')) {\n if (!options.properties || !options.properties.name) {\n properties.name = {\n type: null,\n value: '',\n };\n }\n if (!options.properties || !options.properties.value) {\n properties.value = {\n type: null,\n value: '',\n };\n }\n }\n }\n return properties;\n}\nfunction initVirtualHostProps(options) {\n const properties = {};\n {\n if ((options && options.virtualHost)) {\n properties.virtualHostStyle = {\n type: null,\n value: '',\n };\n properties.virtualHostClass = {\n type: null,\n value: '',\n };\n }\n }\n return properties;\n}\n/**\n *\n * @param mpComponentOptions\n * @param isBehavior\n */\nfunction initProps(mpComponentOptions) {\n if (!mpComponentOptions.properties) {\n mpComponentOptions.properties = {};\n }\n extend(mpComponentOptions.properties, initDefaultProps(mpComponentOptions), initVirtualHostProps(mpComponentOptions.options));\n}\nconst PROP_TYPES = [String, Number, Boolean, Object, Array, null];\nfunction parsePropType(type, defaultValue) {\n // [String]=>String\n if (isArray(type) && type.length === 1) {\n return type[0];\n }\n return type;\n}\nfunction normalizePropType(type, defaultValue) {\n const res = parsePropType(type);\n return PROP_TYPES.indexOf(res) !== -1 ? res : null;\n}\n/**\n * 初始化页面 props方便接收页面参数类型均为String默认值均为''\n * @param param\n * @param rawProps\n */\nfunction initPageProps({ properties }, rawProps) {\n if (isArray(rawProps)) {\n rawProps.forEach((key) => {\n properties[key] = {\n type: String,\n value: '',\n };\n });\n }\n else if (isPlainObject(rawProps)) {\n Object.keys(rawProps).forEach((key) => {\n const opts = rawProps[key];\n if (isPlainObject(opts)) {\n // title:{type:String,default:''}\n let value = opts.default;\n if (isFunction(value)) {\n value = value();\n }\n const type = opts.type;\n opts.type = normalizePropType(type);\n properties[key] = {\n type: opts.type,\n value,\n };\n }\n else {\n // content:String\n properties[key] = {\n type: normalizePropType(opts),\n };\n }\n });\n }\n}\nfunction findPropsData(properties, isPage) {\n return ((isPage\n ? findPagePropsData(properties)\n : findComponentPropsData(properties.uP)) || {});\n}\nfunction findPagePropsData(properties) {\n const propsData = {};\n if (isPlainObject(properties)) {\n Object.keys(properties).forEach((name) => {\n if (builtInProps.indexOf(name) === -1) {\n propsData[name] = properties[name];\n }\n });\n }\n return propsData;\n}\nfunction initFormField(vm) {\n // 同步 form-field 的 name,value 值\n const vueOptions = vm.$options;\n if (isArray(vueOptions.behaviors) &&\n vueOptions.behaviors.includes('uni://form-field')) {\n vm.$watch('modelValue', () => {\n vm.$scope &&\n vm.$scope.setData({\n name: vm.name,\n value: vm.modelValue,\n });\n }, {\n immediate: true,\n });\n }\n}\n\nfunction initData(_) {\n return {};\n}\nfunction initPropsObserver(componentOptions) {\n const observe = function observe() {\n const up = this.properties.uP;\n if (!up) {\n return;\n }\n if (this.$vm) {\n updateComponentProps(up, this.$vm.$);\n }\n else if (this.properties.uT === 'm') {\n // 小程序组件\n updateMiniProgramComponentProperties(up, this);\n }\n };\n {\n if (!componentOptions.observers) {\n componentOptions.observers = {};\n }\n componentOptions.observers.uP = observe;\n }\n}\nfunction updateMiniProgramComponentProperties(up, mpInstance) {\n const prevProps = mpInstance.properties;\n const nextProps = findComponentPropsData(up) || {};\n if (hasPropsChanged(prevProps, nextProps, false)) {\n mpInstance.setData(nextProps);\n }\n}\nfunction updateComponentProps(up, instance) {\n const prevProps = toRaw(instance.props);\n const nextProps = findComponentPropsData(up) || {};\n if (hasPropsChanged(prevProps, nextProps)) {\n updateProps(instance, nextProps, prevProps, false);\n if (hasQueueJob(instance.update)) {\n invalidateJob(instance.update);\n }\n {\n instance.update();\n }\n }\n}\nfunction hasPropsChanged(prevProps, nextProps, checkLen = true) {\n const nextKeys = Object.keys(nextProps);\n if (checkLen && nextKeys.length !== Object.keys(prevProps).length) {\n return true;\n }\n for (let i = 0; i < nextKeys.length; i++) {\n const key = nextKeys[i];\n if (nextProps[key] !== prevProps[key]) {\n return true;\n }\n }\n return false;\n}\nfunction initBehaviors(vueOptions) {\n const vueBehaviors = vueOptions.behaviors;\n let vueProps = vueOptions.props;\n if (!vueProps) {\n vueOptions.props = vueProps = [];\n }\n const behaviors = [];\n if (isArray(vueBehaviors)) {\n vueBehaviors.forEach((behavior) => {\n behaviors.push(behavior.replace('uni://', '__GLOBAL__://'));\n if (behavior === 'uni://form-field') {\n if (isArray(vueProps)) {\n vueProps.push('name');\n vueProps.push('modelValue');\n }\n else {\n vueProps.name = {\n type: String,\n default: '',\n };\n vueProps.modelValue = {\n type: [String, Number, Boolean, Array, Object, Date],\n default: '',\n };\n }\n }\n });\n }\n return behaviors;\n}\nfunction applyOptions(componentOptions, vueOptions) {\n componentOptions.data = initData();\n componentOptions.behaviors = initBehaviors(vueOptions);\n}\n\nfunction parseComponent(vueOptions, { parse, mocks, isPage, initRelation, handleLink, initLifetimes, }) {\n vueOptions = vueOptions.default || vueOptions;\n const options = {\n multipleSlots: true,\n // styleIsolation: 'apply-shared',\n addGlobalClass: true,\n pureDataPattern: /^uP$/,\n };\n if (isArray(vueOptions.mixins)) {\n vueOptions.mixins.forEach((item) => {\n if (isObject(item.options)) {\n extend(options, item.options);\n }\n });\n }\n if (vueOptions.options) {\n extend(options, vueOptions.options);\n }\n const mpComponentOptions = {\n options,\n lifetimes: initLifetimes({ mocks, isPage, initRelation, vueOptions }),\n pageLifetimes: {\n show() {\n if (__VUE_PROD_DEVTOOLS__) {\n devtoolsComponentAdded(this.$vm.$);\n }\n this.$vm && this.$vm.$callHook('onPageShow');\n },\n hide() {\n this.$vm && this.$vm.$callHook('onPageHide');\n },\n resize(size) {\n this.$vm && this.$vm.$callHook('onPageResize', size);\n },\n },\n methods: {\n __l: handleLink,\n },\n };\n if (__VUE_OPTIONS_API__) {\n applyOptions(mpComponentOptions, vueOptions);\n }\n initProps(mpComponentOptions);\n initPropsObserver(mpComponentOptions);\n initExtraOptions(mpComponentOptions, vueOptions);\n initWxsCallMethods(mpComponentOptions.methods, vueOptions.wxsCallMethods);\n {\n initWorkletMethods(mpComponentOptions.methods, vueOptions.methods);\n }\n if (parse) {\n parse(mpComponentOptions, { handleLink });\n }\n return mpComponentOptions;\n}\nfunction initCreateComponent(parseOptions) {\n return function createComponent(vueComponentOptions) {\n return Component(parseComponent(vueComponentOptions, parseOptions));\n };\n}\nlet $createComponentFn;\nlet $destroyComponentFn;\nfunction getAppVm() {\n if (process.env.UNI_MP_PLUGIN) {\n return wx.$vm;\n }\n if (process.env.UNI_SUBPACKAGE) {\n return wx.$subpackages[process.env.UNI_SUBPACKAGE].$vm;\n }\n return getApp().$vm;\n}\nfunction $createComponent(initialVNode, options) {\n if (!$createComponentFn) {\n $createComponentFn = getAppVm().$createComponent;\n }\n const proxy = $createComponentFn(initialVNode, options);\n return getExposeProxy(proxy.$) || proxy;\n}\nfunction $destroyComponent(instance) {\n if (!$destroyComponentFn) {\n $destroyComponentFn = getAppVm().$destroyComponent;\n }\n return $destroyComponentFn(instance);\n}\n\nfunction parsePage(vueOptions, parseOptions) {\n const { parse, mocks, isPage, initRelation, handleLink, initLifetimes } = parseOptions;\n const miniProgramPageOptions = parseComponent(vueOptions, {\n mocks,\n isPage,\n initRelation,\n handleLink,\n initLifetimes,\n });\n initPageProps(miniProgramPageOptions, (vueOptions.default || vueOptions).props);\n const methods = miniProgramPageOptions.methods;\n methods.onLoad = function (query) {\n this.options = query;\n this.$page = {\n fullPath: addLeadingSlash(this.route + stringifyQuery(query)),\n };\n return this.$vm && this.$vm.$callHook(ON_LOAD, query);\n };\n initHooks(methods, PAGE_INIT_HOOKS);\n {\n initUnknownHooks(methods, vueOptions);\n }\n initRuntimeHooks(methods, vueOptions.__runtimeHooks);\n initMixinRuntimeHooks(methods);\n parse && parse(miniProgramPageOptions, { handleLink });\n return miniProgramPageOptions;\n}\nfunction initCreatePage(parseOptions) {\n return function createPage(vuePageOptions) {\n return Component(parsePage(vuePageOptions, parseOptions));\n };\n}\n\nfunction initCreatePluginApp(parseAppOptions) {\n return function createApp(vm) {\n initAppLifecycle(parseApp(vm, parseAppOptions), vm);\n if (process.env.UNI_MP_PLUGIN) {\n wx.$vm = vm;\n }\n };\n}\n\nconst MPPage = Page;\nconst MPComponent = Component;\nfunction initTriggerEvent(mpInstance) {\n const oldTriggerEvent = mpInstance.triggerEvent;\n const newTriggerEvent = function (event, ...args) {\n return oldTriggerEvent.apply(mpInstance, [customizeEvent(event), ...args]);\n };\n // 京东小程序triggerEvent为只读属性\n try {\n mpInstance.triggerEvent = newTriggerEvent;\n }\n catch (error) {\n mpInstance._triggerEvent = newTriggerEvent;\n }\n}\nfunction initMiniProgramHook(name, options, isComponent) {\n const oldHook = options[name];\n if (!oldHook) {\n options[name] = function () {\n initTriggerEvent(this);\n };\n }\n else {\n options[name] = function (...args) {\n initTriggerEvent(this);\n return oldHook.apply(this, args);\n };\n }\n}\nPage = function (options) {\n initMiniProgramHook(ON_LOAD, options);\n return MPPage(options);\n};\nComponent = function (options) {\n initMiniProgramHook('created', options);\n // 小程序组件\n const isVueComponent = options.properties && options.properties.uP;\n if (!isVueComponent) {\n initProps(options);\n initPropsObserver(options);\n }\n return MPComponent(options);\n};\n\n// @ts-expect-error\nfunction initLifetimes({ mocks, isPage, initRelation, vueOptions, }) {\n return {\n attached() {\n let properties = this.properties;\n initVueIds(properties.uI, this);\n const relationOptions = {\n vuePid: this._$vuePid,\n };\n // 处理父子关系\n initRelation(this, relationOptions);\n // 初始化 vue 实例\n const mpInstance = this;\n const isMiniProgramPage = isPage(mpInstance);\n let propsData = properties;\n this.$vm = $createComponent({\n type: vueOptions,\n props: findPropsData(propsData, isMiniProgramPage),\n }, {\n mpType: isMiniProgramPage ? 'page' : 'component',\n mpInstance,\n slots: properties.uS || {}, // vueSlots\n parentComponent: relationOptions.parent && relationOptions.parent.$,\n onBeforeSetup(instance, options) {\n initRefs(instance, mpInstance);\n initMocks(instance, mpInstance, mocks);\n initComponentInstance(instance, options);\n },\n });\n if (!isMiniProgramPage) {\n initFormField(this.$vm);\n }\n },\n ready() {\n // 当组件 props 默认值为 true初始化时传入 false 会导致 created,ready 触发, 但 attached 不触发\n // https://developers.weixin.qq.com/community/develop/doc/00066ae2844cc0f8eb883e2a557800\n if (this.$vm) {\n {\n this.$vm.$callHook('mounted');\n this.$vm.$callHook(ON_READY);\n }\n }\n },\n detached() {\n if (this.$vm) {\n pruneComponentPropsCache(this.$vm.$.uid);\n $destroyComponent(this.$vm);\n }\n },\n };\n}\n\nconst mocks = ['__route__', '__wxExparserNodeId__', '__wxWebviewId__'];\nfunction isPage(mpInstance) {\n return !!mpInstance.route;\n}\nfunction initRelation(mpInstance, detail) {\n mpInstance.triggerEvent('__l', detail);\n}\nfunction handleLink(event) {\n // detail 是微信,value 是百度(dipatch)\n const detail = (event.detail ||\n event.value);\n const vuePid = detail.vuePid;\n let parentVm;\n if (vuePid) {\n parentVm = findVmByVueId(this.$vm, vuePid);\n }\n if (!parentVm) {\n parentVm = this.$vm;\n }\n detail.parent = parentVm;\n}\n\nvar parseOptions = /*#__PURE__*/Object.freeze({\n __proto__: null,\n handleLink: handleLink,\n initLifetimes: initLifetimes,\n initRelation: initRelation,\n isPage: isPage,\n mocks: mocks\n});\n\nconst createApp = initCreateApp();\nconst createPage = initCreatePage(parseOptions);\nconst createComponent = initCreateComponent(parseOptions);\nconst createPluginApp = initCreatePluginApp();\nconst createSubpackageApp = initCreateSubpackageApp();\n{\n wx.createApp = global.createApp = createApp;\n wx.createPage = createPage;\n wx.createComponent = createComponent;\n wx.createPluginApp = global.createPluginApp =\n createPluginApp;\n wx.createSubpackageApp = global.createSubpackageApp =\n createSubpackageApp;\n}\n\nexport { createApp, createComponent, createPage, createPluginApp, createSubpackageApp };\n","import { shallowRef, ref, getCurrentInstance, isInSSRComponentSetup, injectHook } from 'vue';\nimport { hasOwn } from '@vue/shared';\nexport { capitalize, extend, hasOwn, isPlainObject } from '@vue/shared';\nimport { sanitise, UNI_SSR_DATA, UNI_SSR_GLOBAL_DATA, UNI_SSR, ON_SHOW, ON_HIDE, ON_LAUNCH, ON_ERROR, ON_THEME_CHANGE, ON_PAGE_NOT_FOUND, ON_UNHANDLE_REJECTION, ON_EXIT, ON_INIT, ON_LOAD, ON_READY, ON_UNLOAD, ON_RESIZE, ON_BACK_PRESS, ON_PAGE_SCROLL, ON_TAB_ITEM_TAP, ON_REACH_BOTTOM, ON_PULL_DOWN_REFRESH, ON_SAVE_EXIT_STATE, ON_SHARE_TIMELINE, ON_ADD_TO_FAVORITES, ON_SHARE_APP_MESSAGE, ON_NAVIGATION_BAR_BUTTON_TAP, ON_NAVIGATION_BAR_SEARCH_INPUT_CHANGED, ON_NAVIGATION_BAR_SEARCH_INPUT_CLICKED, ON_NAVIGATION_BAR_SEARCH_INPUT_CONFIRMED, ON_NAVIGATION_BAR_SEARCH_INPUT_FOCUS_CHANGED } from '@dcloudio/uni-shared';\n\nfunction getSSRDataType() {\n return getCurrentInstance() ? UNI_SSR_DATA : UNI_SSR_GLOBAL_DATA;\n}\nfunction assertKey(key, shallow = false) {\n if (!key) {\n throw new Error(`${shallow ? 'shallowSsrRef' : 'ssrRef'}: You must provide a key.`);\n }\n}\nconst ssrClientRef = (value, key, shallow = false) => {\n const valRef = shallow ? shallowRef(value) : ref(value);\n // 非 h5 平台\n if (typeof window === 'undefined') {\n return valRef;\n }\n const __uniSSR = window[UNI_SSR];\n if (!__uniSSR) {\n return valRef;\n }\n const type = getSSRDataType();\n assertKey(key, shallow);\n if (hasOwn(__uniSSR[type], key)) {\n valRef.value = __uniSSR[type][key];\n if (type === UNI_SSR_DATA) {\n delete __uniSSR[type][key]; // TODO 非全局数据仅使用一次?否则下次还会再次使用该数据\n }\n }\n return valRef;\n};\nconst globalData = {};\nconst ssrRef = (value, key) => {\n return ssrClientRef(value, key);\n};\nconst shallowSsrRef = (value, key) => {\n return ssrClientRef(value, key, true);\n};\nfunction getSsrGlobalData() {\n return sanitise(globalData);\n}\n\n/**\n * uni 对象是跨实例的,而此处列的 API 均是需要跟当前实例关联的,比如 requireNativePlugin 获取 dom 时,依赖当前 weex 实例\n */\nfunction getCurrentSubNVue() {\n return uni.getSubNVueById(plus.webview.currentWebview().id);\n}\nfunction requireNativePlugin(name) {\n return weex.requireModule(name);\n}\n\nfunction formatAppLog(type, filename, ...args) {\n // @ts-expect-error\n if (uni.__log__) {\n // @ts-expect-error\n uni.__log__(type, filename, ...args);\n }\n else {\n console[type].apply(console, [...args, filename]);\n }\n}\nfunction formatH5Log(type, filename, ...args) {\n console[type].apply(console, [...args, filename]);\n}\n\nfunction resolveEasycom(component, easycom) {\n return typeof component === 'string' ? easycom : component;\n}\n\n/// <reference types=\"@dcloudio/types\" />\nconst createHook = (lifecycle) => (hook, target = getCurrentInstance()) => {\n // post-create lifecycle registrations are noops during SSR\n !isInSSRComponentSetup && injectHook(lifecycle, hook, target);\n};\nconst onShow = /*#__PURE__*/ createHook(ON_SHOW);\nconst onHide = /*#__PURE__*/ createHook(ON_HIDE);\nconst onLaunch = \n/*#__PURE__*/ createHook(ON_LAUNCH);\nconst onError = \n/*#__PURE__*/ createHook(ON_ERROR);\nconst onThemeChange = \n/*#__PURE__*/ createHook(ON_THEME_CHANGE);\nconst onPageNotFound = \n/*#__PURE__*/ createHook(ON_PAGE_NOT_FOUND);\nconst onUnhandledRejection = /*#__PURE__*/ createHook(ON_UNHANDLE_REJECTION);\nconst onExit = /*#__PURE__*/ createHook(ON_EXIT);\nconst onInit = \n/*#__PURE__*/ createHook(ON_INIT);\n// 小程序如果想在 setup 的 props 传递页面参数,需要定义 props故同时暴露 onLoad 吧\nconst onLoad = \n/*#__PURE__*/ createHook(ON_LOAD);\nconst onReady = /*#__PURE__*/ createHook(ON_READY);\nconst onUnload = /*#__PURE__*/ createHook(ON_UNLOAD);\nconst onResize = \n/*#__PURE__*/ createHook(ON_RESIZE);\nconst onBackPress = \n/*#__PURE__*/ createHook(ON_BACK_PRESS);\nconst onPageScroll = \n/*#__PURE__*/ createHook(ON_PAGE_SCROLL);\nconst onTabItemTap = \n/*#__PURE__*/ createHook(ON_TAB_ITEM_TAP);\nconst onReachBottom = /*#__PURE__*/ createHook(ON_REACH_BOTTOM);\nconst onPullDownRefresh = /*#__PURE__*/ createHook(ON_PULL_DOWN_REFRESH);\nconst onSaveExitState = \n/*#__PURE__*/ createHook(ON_SAVE_EXIT_STATE);\nconst onShareTimeline = \n/*#__PURE__*/ createHook(ON_SHARE_TIMELINE);\nconst onAddToFavorites = \n/*#__PURE__*/ createHook(ON_ADD_TO_FAVORITES);\nconst onShareAppMessage = \n/*#__PURE__*/ createHook(ON_SHARE_APP_MESSAGE);\nconst onNavigationBarButtonTap = /*#__PURE__*/ createHook(ON_NAVIGATION_BAR_BUTTON_TAP);\nconst onNavigationBarSearchInputChanged = /*#__PURE__*/ createHook(ON_NAVIGATION_BAR_SEARCH_INPUT_CHANGED);\nconst onNavigationBarSearchInputClicked = /*#__PURE__*/ createHook(ON_NAVIGATION_BAR_SEARCH_INPUT_CLICKED);\nconst onNavigationBarSearchInputConfirmed = /*#__PURE__*/ createHook(ON_NAVIGATION_BAR_SEARCH_INPUT_CONFIRMED);\nconst onNavigationBarSearchInputFocusChanged = \n/*#__PURE__*/ createHook(ON_NAVIGATION_BAR_SEARCH_INPUT_FOCUS_CHANGED);\n// for uni-app-x web\nconst onPageHide = onHide;\nconst onPageShow = onShow;\n\nfunction renderComponentSlot(slots, name, props = null) {\n if (slots[name]) {\n return slots[name](props);\n }\n return null;\n}\n\nexport { formatAppLog, formatH5Log, getCurrentSubNVue, getSsrGlobalData, onAddToFavorites, onBackPress, onError, onExit, onHide, onInit, onLaunch, onLoad, onNavigationBarButtonTap, onNavigationBarSearchInputChanged, onNavigationBarSearchInputClicked, onNavigationBarSearchInputConfirmed, onNavigationBarSearchInputFocusChanged, onPageHide, onPageNotFound, onPageScroll, onPageShow, onPullDownRefresh, onReachBottom, onReady, onResize, onSaveExitState, onShareAppMessage, onShareTimeline, onShow, onTabItemTap, onThemeChange, onUnhandledRejection, onUnload, renderComponentSlot, requireNativePlugin, resolveEasycom, shallowSsrRef, ssrRef };\n","import * as Vue from 'vue'\n\nvar isVue2 = false\nvar isVue3 = true\nvar Vue2 = undefined\n\nfunction install() {}\n\nexport function set(target, key, val) {\n if (Array.isArray(target)) {\n target.length = Math.max(target.length, key)\n target.splice(key, 1, val)\n return val\n }\n target[key] = val\n return val\n}\n\nexport function del(target, key) {\n if (Array.isArray(target)) {\n target.splice(key, 1)\n return\n }\n delete target[key]\n}\n\nexport * from 'vue'\nexport {\n Vue,\n Vue2,\n isVue2,\n isVue3,\n install,\n}\n","/*!\n * pinia v2.0.36\n * (c) 2023 Eduardo San Martin Morote\n * @license MIT\n */\nimport { getCurrentInstance, inject, toRaw, watch, unref, markRaw, effectScope, ref, isVue2, isRef, isReactive, set, getCurrentScope, onScopeDispose, reactive, toRef, del, nextTick, computed, toRefs } from 'vue-demi';\nimport { setupDevtoolsPlugin } from '@vue/devtools-api';\n\n/**\n * setActivePinia must be called to handle SSR at the top of functions like\n * `fetch`, `setup`, `serverPrefetch` and others\n */\nlet activePinia;\n/**\n * Sets or unsets the active pinia. Used in SSR and internally when calling\n * actions and getters\n *\n * @param pinia - Pinia instance\n */\n// @ts-expect-error: cannot constrain the type of the return\nconst setActivePinia = (pinia) => (activePinia = pinia);\n/**\n * Get the currently active pinia if there is any.\n */\nconst getActivePinia = () => (getCurrentInstance() && inject(piniaSymbol)) || activePinia;\nconst piniaSymbol = ((process.env.NODE_ENV !== 'production') ? Symbol('pinia') : /* istanbul ignore next */ Symbol());\n\nfunction isPlainObject(\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\no) {\n return (o &&\n typeof o === 'object' &&\n Object.prototype.toString.call(o) === '[object Object]' &&\n typeof o.toJSON !== 'function');\n}\n// type DeepReadonly<T> = { readonly [P in keyof T]: DeepReadonly<T[P]> }\n// TODO: can we change these to numbers?\n/**\n * Possible types for SubscriptionCallback\n */\nvar MutationType;\n(function (MutationType) {\n /**\n * Direct mutation of the state:\n *\n * - `store.name = 'new name'`\n * - `store.$state.name = 'new name'`\n * - `store.list.push('new item')`\n */\n MutationType[\"direct\"] = \"direct\";\n /**\n * Mutated the state with `$patch` and an object\n *\n * - `store.$patch({ name: 'newName' })`\n */\n MutationType[\"patchObject\"] = \"patch object\";\n /**\n * Mutated the state with `$patch` and a function\n *\n * - `store.$patch(state => state.name = 'newName')`\n */\n MutationType[\"patchFunction\"] = \"patch function\";\n // maybe reset? for $state = {} and $reset\n})(MutationType || (MutationType = {}));\n\nconst IS_CLIENT = typeof window !== 'undefined';\n/**\n * Should we add the devtools plugins.\n * - only if dev mode or forced through the prod devtools flag\n * - not in test\n * - only if window exists (could change in the future)\n */\nconst USE_DEVTOOLS = ((process.env.NODE_ENV !== 'production') || (typeof __VUE_PROD_DEVTOOLS__ !== 'undefined' && __VUE_PROD_DEVTOOLS__)) && !(process.env.NODE_ENV === 'test') && IS_CLIENT;\n\n/*\n * FileSaver.js A saveAs() FileSaver implementation.\n *\n * Originally by Eli Grey, adapted as an ESM module by Eduardo San Martin\n * Morote.\n *\n * License : MIT\n */\n// The one and only way of getting global scope in all environments\n// https://stackoverflow.com/q/3277182/1008999\nconst _global = /*#__PURE__*/ (() => typeof window === 'object' && window.window === window\n ? window\n : typeof self === 'object' && self.self === self\n ? self\n : typeof global === 'object' && global.global === global\n ? global\n : typeof globalThis === 'object'\n ? globalThis\n : { HTMLElement: null })();\nfunction bom(blob, { autoBom = false } = {}) {\n // prepend BOM for UTF-8 XML and text/* types (including HTML)\n // note: your browser will automatically convert UTF-16 U+FEFF to EF BB BF\n if (autoBom &&\n /^\\s*(?:text\\/\\S*|application\\/xml|\\S*\\/\\S*\\+xml)\\s*;.*charset\\s*=\\s*utf-8/i.test(blob.type)) {\n return new Blob([String.fromCharCode(0xfeff), blob], { type: blob.type });\n }\n return blob;\n}\nfunction download(url, name, opts) {\n const xhr = new XMLHttpRequest();\n xhr.open('GET', url);\n xhr.responseType = 'blob';\n xhr.onload = function () {\n saveAs(xhr.response, name, opts);\n };\n xhr.onerror = function () {\n console.error('could not download file');\n };\n xhr.send();\n}\nfunction corsEnabled(url) {\n const xhr = new XMLHttpRequest();\n // use sync to avoid popup blocker\n xhr.open('HEAD', url, false);\n try {\n xhr.send();\n }\n catch (e) { }\n return xhr.status >= 200 && xhr.status <= 299;\n}\n// `a.click()` doesn't work for all browsers (#465)\nfunction click(node) {\n try {\n node.dispatchEvent(new MouseEvent('click'));\n }\n catch (e) {\n const evt = document.createEvent('MouseEvents');\n evt.initMouseEvent('click', true, true, window, 0, 0, 0, 80, 20, false, false, false, false, 0, null);\n node.dispatchEvent(evt);\n }\n}\nconst _navigator = \n typeof navigator === 'object' ? navigator : { userAgent: '' };\n// Detect WebView inside a native macOS app by ruling out all browsers\n// We just need to check for 'Safari' because all other browsers (besides Firefox) include that too\n// https://www.whatismybrowser.com/guides/the-latest-user-agent/macos\nconst isMacOSWebView = /*#__PURE__*/ (() => /Macintosh/.test(_navigator.userAgent) &&\n /AppleWebKit/.test(_navigator.userAgent) &&\n !/Safari/.test(_navigator.userAgent))();\nconst saveAs = !IS_CLIENT\n ? () => { } // noop\n : // Use download attribute first if possible (#193 Lumia mobile) unless this is a macOS WebView or mini program\n typeof HTMLAnchorElement !== 'undefined' &&\n 'download' in HTMLAnchorElement.prototype &&\n !isMacOSWebView\n ? downloadSaveAs\n : // Use msSaveOrOpenBlob as a second approach\n 'msSaveOrOpenBlob' in _navigator\n ? msSaveAs\n : // Fallback to using FileReader and a popup\n fileSaverSaveAs;\nfunction downloadSaveAs(blob, name = 'download', opts) {\n const a = document.createElement('a');\n a.download = name;\n a.rel = 'noopener'; // tabnabbing\n // TODO: detect chrome extensions & packaged apps\n // a.target = '_blank'\n if (typeof blob === 'string') {\n // Support regular links\n a.href = blob;\n if (a.origin !== location.origin) {\n if (corsEnabled(a.href)) {\n download(blob, name, opts);\n }\n else {\n a.target = '_blank';\n click(a);\n }\n }\n else {\n click(a);\n }\n }\n else {\n // Support blobs\n a.href = URL.createObjectURL(blob);\n setTimeout(function () {\n URL.revokeObjectURL(a.href);\n }, 4e4); // 40s\n setTimeout(function () {\n click(a);\n }, 0);\n }\n}\nfunction msSaveAs(blob, name = 'download', opts) {\n if (typeof blob === 'string') {\n if (corsEnabled(blob)) {\n download(blob, name, opts);\n }\n else {\n const a = document.createElement('a');\n a.href = blob;\n a.target = '_blank';\n setTimeout(function () {\n click(a);\n });\n }\n }\n else {\n // @ts-ignore: works on windows\n navigator.msSaveOrOpenBlob(bom(blob, opts), name);\n }\n}\nfunction fileSaverSaveAs(blob, name, opts, popup) {\n // Open a popup immediately do go around popup blocker\n // Mostly only available on user interaction and the fileReader is async so...\n popup = popup || open('', '_blank');\n if (popup) {\n popup.document.title = popup.document.body.innerText = 'downloading...';\n }\n if (typeof blob === 'string')\n return download(blob, name, opts);\n const force = blob.type === 'application/octet-stream';\n const isSafari = /constructor/i.test(String(_global.HTMLElement)) || 'safari' in _global;\n const isChromeIOS = /CriOS\\/[\\d]+/.test(navigator.userAgent);\n if ((isChromeIOS || (force && isSafari) || isMacOSWebView) &&\n typeof FileReader !== 'undefined') {\n // Safari doesn't allow downloading of blob URLs\n const reader = new FileReader();\n reader.onloadend = function () {\n let url = reader.result;\n if (typeof url !== 'string') {\n popup = null;\n throw new Error('Wrong reader.result type');\n }\n url = isChromeIOS\n ? url\n : url.replace(/^data:[^;]*;/, 'data:attachment/file;');\n if (popup) {\n popup.location.href = url;\n }\n else {\n location.assign(url);\n }\n popup = null; // reverse-tabnabbing #460\n };\n reader.readAsDataURL(blob);\n }\n else {\n const url = URL.createObjectURL(blob);\n if (popup)\n popup.location.assign(url);\n else\n location.href = url;\n popup = null; // reverse-tabnabbing #460\n setTimeout(function () {\n URL.revokeObjectURL(url);\n }, 4e4); // 40s\n }\n}\n\n/**\n * Shows a toast or console.log\n *\n * @param message - message to log\n * @param type - different color of the tooltip\n */\nfunction toastMessage(message, type) {\n const piniaMessage = '🍍 ' + message;\n if (typeof __VUE_DEVTOOLS_TOAST__ === 'function') {\n __VUE_DEVTOOLS_TOAST__(piniaMessage, type);\n }\n else if (type === 'error') {\n console.error(piniaMessage);\n }\n else if (type === 'warn') {\n console.warn(piniaMessage);\n }\n else {\n console.log(piniaMessage);\n }\n}\nfunction isPinia(o) {\n return '_a' in o && 'install' in o;\n}\n\nfunction checkClipboardAccess() {\n if (!('clipboard' in navigator)) {\n toastMessage(`Your browser doesn't support the Clipboard API`, 'error');\n return true;\n }\n}\nfunction checkNotFocusedError(error) {\n if (error instanceof Error &&\n error.message.toLowerCase().includes('document is not focused')) {\n toastMessage('You need to activate the \"Emulate a focused page\" setting in the \"Rendering\" panel of devtools.', 'warn');\n return true;\n }\n return false;\n}\nasync function actionGlobalCopyState(pinia) {\n if (checkClipboardAccess())\n return;\n try {\n await navigator.clipboard.writeText(JSON.stringify(pinia.state.value));\n toastMessage('Global state copied to clipboard.');\n }\n catch (error) {\n if (checkNotFocusedError(error))\n return;\n toastMessage(`Failed to serialize the state. Check the console for more details.`, 'error');\n console.error(error);\n }\n}\nasync function actionGlobalPasteState(pinia) {\n if (checkClipboardAccess())\n return;\n try {\n pinia.state.value = JSON.parse(await navigator.clipboard.readText());\n toastMessage('Global state pasted from clipboard.');\n }\n catch (error) {\n if (checkNotFocusedError(error))\n return;\n toastMessage(`Failed to deserialize the state from clipboard. Check the console for more details.`, 'error');\n console.error(error);\n }\n}\nasync function actionGlobalSaveState(pinia) {\n try {\n saveAs(new Blob([JSON.stringify(pinia.state.value)], {\n type: 'text/plain;charset=utf-8',\n }), 'pinia-state.json');\n }\n catch (error) {\n toastMessage(`Failed to export the state as JSON. Check the console for more details.`, 'error');\n console.error(error);\n }\n}\nlet fileInput;\nfunction getFileOpener() {\n if (!fileInput) {\n fileInput = document.createElement('input');\n fileInput.type = 'file';\n fileInput.accept = '.json';\n }\n function openFile() {\n return new Promise((resolve, reject) => {\n fileInput.onchange = async () => {\n const files = fileInput.files;\n if (!files)\n return resolve(null);\n const file = files.item(0);\n if (!file)\n return resolve(null);\n return resolve({ text: await file.text(), file });\n };\n // @ts-ignore: TODO: changed from 4.3 to 4.4\n fileInput.oncancel = () => resolve(null);\n fileInput.onerror = reject;\n fileInput.click();\n });\n }\n return openFile;\n}\nasync function actionGlobalOpenStateFile(pinia) {\n try {\n const open = await getFileOpener();\n const result = await open();\n if (!result)\n return;\n const { text, file } = result;\n pinia.state.value = JSON.parse(text);\n toastMessage(`Global state imported from \"${file.name}\".`);\n }\n catch (error) {\n toastMessage(`Failed to export the state as JSON. Check the console for more details.`, 'error');\n console.error(error);\n }\n}\n\nfunction formatDisplay(display) {\n return {\n _custom: {\n display,\n },\n };\n}\nconst PINIA_ROOT_LABEL = '🍍 Pinia (root)';\nconst PINIA_ROOT_ID = '_root';\nfunction formatStoreForInspectorTree(store) {\n return isPinia(store)\n ? {\n id: PINIA_ROOT_ID,\n label: PINIA_ROOT_LABEL,\n }\n : {\n id: store.$id,\n label: store.$id,\n };\n}\nfunction formatStoreForInspectorState(store) {\n if (isPinia(store)) {\n const storeNames = Array.from(store._s.keys());\n const storeMap = store._s;\n const state = {\n state: storeNames.map((storeId) => ({\n editable: true,\n key: storeId,\n value: store.state.value[storeId],\n })),\n getters: storeNames\n .filter((id) => storeMap.get(id)._getters)\n .map((id) => {\n const store = storeMap.get(id);\n return {\n editable: false,\n key: id,\n value: store._getters.reduce((getters, key) => {\n getters[key] = store[key];\n return getters;\n }, {}),\n };\n }),\n };\n return state;\n }\n const state = {\n state: Object.keys(store.$state).map((key) => ({\n editable: true,\n key,\n value: store.$state[key],\n })),\n };\n // avoid adding empty getters\n if (store._getters && store._getters.length) {\n state.getters = store._getters.map((getterName) => ({\n editable: false,\n key: getterName,\n value: store[getterName],\n }));\n }\n if (store._customProperties.size) {\n state.customProperties = Array.from(store._customProperties).map((key) => ({\n editable: true,\n key,\n value: store[key],\n }));\n }\n return state;\n}\nfunction formatEventData(events) {\n if (!events)\n return {};\n if (Array.isArray(events)) {\n // TODO: handle add and delete for arrays and objects\n return events.reduce((data, event) => {\n data.keys.push(event.key);\n data.operations.push(event.type);\n data.oldValue[event.key] = event.oldValue;\n data.newValue[event.key] = event.newValue;\n return data;\n }, {\n oldValue: {},\n keys: [],\n operations: [],\n newValue: {},\n });\n }\n else {\n return {\n operation: formatDisplay(events.type),\n key: formatDisplay(events.key),\n oldValue: events.oldValue,\n newValue: events.newValue,\n };\n }\n}\nfunction formatMutationType(type) {\n switch (type) {\n case MutationType.direct:\n return 'mutation';\n case MutationType.patchFunction:\n return '$patch';\n case MutationType.patchObject:\n return '$patch';\n default:\n return 'unknown';\n }\n}\n\n// timeline can be paused when directly changing the state\nlet isTimelineActive = true;\nconst componentStateTypes = [];\nconst MUTATIONS_LAYER_ID = 'pinia:mutations';\nconst INSPECTOR_ID = 'pinia';\nconst { assign: assign$1 } = Object;\n/**\n * Gets the displayed name of a store in devtools\n *\n * @param id - id of the store\n * @returns a formatted string\n */\nconst getStoreType = (id) => '🍍 ' + id;\n/**\n * Add the pinia plugin without any store. Allows displaying a Pinia plugin tab\n * as soon as it is added to the application.\n *\n * @param app - Vue application\n * @param pinia - pinia instance\n */\nfunction registerPiniaDevtools(app, pinia) {\n setupDevtoolsPlugin({\n id: 'dev.esm.pinia',\n label: 'Pinia 🍍',\n logo: 'https://pinia.vuejs.org/logo.svg',\n packageName: 'pinia',\n homepage: 'https://pinia.vuejs.org',\n componentStateTypes,\n app,\n }, (api) => {\n if (typeof api.now !== 'function') {\n toastMessage('You seem to be using an outdated version of Vue Devtools. Are you still using the Beta release instead of the stable one? You can find the links at https://devtools.vuejs.org/guide/installation.html.');\n }\n api.addTimelineLayer({\n id: MUTATIONS_LAYER_ID,\n label: `Pinia 🍍`,\n color: 0xe5df88,\n });\n api.addInspector({\n id: INSPECTOR_ID,\n label: 'Pinia 🍍',\n icon: 'storage',\n treeFilterPlaceholder: 'Search stores',\n actions: [\n {\n icon: 'content_copy',\n action: () => {\n actionGlobalCopyState(pinia);\n },\n tooltip: 'Serialize and copy the state',\n },\n {\n icon: 'content_paste',\n action: async () => {\n await actionGlobalPasteState(pinia);\n api.sendInspectorTree(INSPECTOR_ID);\n api.sendInspectorState(INSPECTOR_ID);\n },\n tooltip: 'Replace the state with the content of your clipboard',\n },\n {\n icon: 'save',\n action: () => {\n actionGlobalSaveState(pinia);\n },\n tooltip: 'Save the state as a JSON file',\n },\n {\n icon: 'folder_open',\n action: async () => {\n await actionGlobalOpenStateFile(pinia);\n api.sendInspectorTree(INSPECTOR_ID);\n api.sendInspectorState(INSPECTOR_ID);\n },\n tooltip: 'Import the state from a JSON file',\n },\n ],\n nodeActions: [\n {\n icon: 'restore',\n tooltip: 'Reset the state (option store only)',\n action: (nodeId) => {\n const store = pinia._s.get(nodeId);\n if (!store) {\n toastMessage(`Cannot reset \"${nodeId}\" store because it wasn't found.`, 'warn');\n }\n else if (!store._isOptionsAPI) {\n toastMessage(`Cannot reset \"${nodeId}\" store because it's a setup store.`, 'warn');\n }\n else {\n store.$reset();\n toastMessage(`Store \"${nodeId}\" reset.`);\n }\n },\n },\n ],\n });\n api.on.inspectComponent((payload, ctx) => {\n const proxy = (payload.componentInstance &&\n payload.componentInstance.proxy);\n if (proxy && proxy._pStores) {\n const piniaStores = payload.componentInstance.proxy._pStores;\n Object.values(piniaStores).forEach((store) => {\n payload.instanceData.state.push({\n type: getStoreType(store.$id),\n key: 'state',\n editable: true,\n value: store._isOptionsAPI\n ? {\n _custom: {\n value: toRaw(store.$state),\n actions: [\n {\n icon: 'restore',\n tooltip: 'Reset the state of this store',\n action: () => store.$reset(),\n },\n ],\n },\n }\n : // NOTE: workaround to unwrap transferred refs\n Object.keys(store.$state).reduce((state, key) => {\n state[key] = store.$state[key];\n return state;\n }, {}),\n });\n if (store._getters && store._getters.length) {\n payload.instanceData.state.push({\n type: getStoreType(store.$id),\n key: 'getters',\n editable: false,\n value: store._getters.reduce((getters, key) => {\n try {\n getters[key] = store[key];\n }\n catch (error) {\n // @ts-expect-error: we just want to show it in devtools\n getters[key] = error;\n }\n return getters;\n }, {}),\n });\n }\n });\n }\n });\n api.on.getInspectorTree((payload) => {\n if (payload.app === app && payload.inspectorId === INSPECTOR_ID) {\n let stores = [pinia];\n stores = stores.concat(Array.from(pinia._s.values()));\n payload.rootNodes = (payload.filter\n ? stores.filter((store) => '$id' in store\n ? store.$id\n .toLowerCase()\n .includes(payload.filter.toLowerCase())\n : PINIA_ROOT_LABEL.toLowerCase().includes(payload.filter.toLowerCase()))\n : stores).map(formatStoreForInspectorTree);\n }\n });\n api.on.getInspectorState((payload) => {\n if (payload.app === app && payload.inspectorId === INSPECTOR_ID) {\n const inspectedStore = payload.nodeId === PINIA_ROOT_ID\n ? pinia\n : pinia._s.get(payload.nodeId);\n if (!inspectedStore) {\n // this could be the selected store restored for a different project\n // so it's better not to say anything here\n return;\n }\n if (inspectedStore) {\n payload.state = formatStoreForInspectorState(inspectedStore);\n }\n }\n });\n api.on.editInspectorState((payload, ctx) => {\n if (payload.app === app && payload.inspectorId === INSPECTOR_ID) {\n const inspectedStore = payload.nodeId === PINIA_ROOT_ID\n ? pinia\n : pinia._s.get(payload.nodeId);\n if (!inspectedStore) {\n return toastMessage(`store \"${payload.nodeId}\" not found`, 'error');\n }\n const { path } = payload;\n if (!isPinia(inspectedStore)) {\n // access only the state\n if (path.length !== 1 ||\n !inspectedStore._customProperties.has(path[0]) ||\n path[0] in inspectedStore.$state) {\n path.unshift('$state');\n }\n }\n else {\n // Root access, we can omit the `.value` because the devtools API does it for us\n path.unshift('state');\n }\n isTimelineActive = false;\n payload.set(inspectedStore, path, payload.state.value);\n isTimelineActive = true;\n }\n });\n api.on.editComponentState((payload) => {\n if (payload.type.startsWith('🍍')) {\n const storeId = payload.type.replace(/^🍍\\s*/, '');\n const store = pinia._s.get(storeId);\n if (!store) {\n return toastMessage(`store \"${storeId}\" not found`, 'error');\n }\n const { path } = payload;\n if (path[0] !== 'state') {\n return toastMessage(`Invalid path for store \"${storeId}\":\\n${path}\\nOnly state can be modified.`);\n }\n // rewrite the first entry to be able to directly set the state as\n // well as any other path\n path[0] = '$state';\n isTimelineActive = false;\n payload.set(store, path, payload.state.value);\n isTimelineActive = true;\n }\n });\n });\n}\nfunction addStoreToDevtools(app, store) {\n if (!componentStateTypes.includes(getStoreType(store.$id))) {\n componentStateTypes.push(getStoreType(store.$id));\n }\n setupDevtoolsPlugin({\n id: 'dev.esm.pinia',\n label: 'Pinia 🍍',\n logo: 'https://pinia.vuejs.org/logo.svg',\n packageName: 'pinia',\n homepage: 'https://pinia.vuejs.org',\n componentStateTypes,\n app,\n settings: {\n logStoreChanges: {\n label: 'Notify about new/deleted stores',\n type: 'boolean',\n defaultValue: true,\n },\n // useEmojis: {\n // label: 'Use emojis in messages ⚡️',\n // type: 'boolean',\n // defaultValue: true,\n // },\n },\n }, (api) => {\n // gracefully handle errors\n const now = typeof api.now === 'function' ? api.now.bind(api) : Date.now;\n store.$onAction(({ after, onError, name, args }) => {\n const groupId = runningActionId++;\n api.addTimelineEvent({\n layerId: MUTATIONS_LAYER_ID,\n event: {\n time: now(),\n title: '🛫 ' + name,\n subtitle: 'start',\n data: {\n store: formatDisplay(store.$id),\n action: formatDisplay(name),\n args,\n },\n groupId,\n },\n });\n after((result) => {\n activeAction = undefined;\n api.addTimelineEvent({\n layerId: MUTATIONS_LAYER_ID,\n event: {\n time: now(),\n title: '🛬 ' + name,\n subtitle: 'end',\n data: {\n store: formatDisplay(store.$id),\n action: formatDisplay(name),\n args,\n result,\n },\n groupId,\n },\n });\n });\n onError((error) => {\n activeAction = undefined;\n api.addTimelineEvent({\n layerId: MUTATIONS_LAYER_ID,\n event: {\n time: now(),\n logType: 'error',\n title: '💥 ' + name,\n subtitle: 'end',\n data: {\n store: formatDisplay(store.$id),\n action: formatDisplay(name),\n args,\n error,\n },\n groupId,\n },\n });\n });\n }, true);\n store._customProperties.forEach((name) => {\n watch(() => unref(store[name]), (newValue, oldValue) => {\n api.notifyComponentUpdate();\n api.sendInspectorState(INSPECTOR_ID);\n if (isTimelineActive) {\n api.addTimelineEvent({\n layerId: MUTATIONS_LAYER_ID,\n event: {\n time: now(),\n title: 'Change',\n subtitle: name,\n data: {\n newValue,\n oldValue,\n },\n groupId: activeAction,\n },\n });\n }\n }, { deep: true });\n });\n store.$subscribe(({ events, type }, state) => {\n api.notifyComponentUpdate();\n api.sendInspectorState(INSPECTOR_ID);\n if (!isTimelineActive)\n return;\n // rootStore.state[store.id] = state\n const eventData = {\n time: now(),\n title: formatMutationType(type),\n data: assign$1({ store: formatDisplay(store.$id) }, formatEventData(events)),\n groupId: activeAction,\n };\n // reset for the next mutation\n activeAction = undefined;\n if (type === MutationType.patchFunction) {\n eventData.subtitle = '⤵️';\n }\n else if (type === MutationType.patchObject) {\n eventData.subtitle = '🧩';\n }\n else if (events && !Array.isArray(events)) {\n eventData.subtitle = events.type;\n }\n if (events) {\n eventData.data['rawEvent(s)'] = {\n _custom: {\n display: 'DebuggerEvent',\n type: 'object',\n tooltip: 'raw DebuggerEvent[]',\n value: events,\n },\n };\n }\n api.addTimelineEvent({\n layerId: MUTATIONS_LAYER_ID,\n event: eventData,\n });\n }, { detached: true, flush: 'sync' });\n const hotUpdate = store._hotUpdate;\n store._hotUpdate = markRaw((newStore) => {\n hotUpdate(newStore);\n api.addTimelineEvent({\n layerId: MUTATIONS_LAYER_ID,\n event: {\n time: now(),\n title: '🔥 ' + store.$id,\n subtitle: 'HMR update',\n data: {\n store: formatDisplay(store.$id),\n info: formatDisplay(`HMR update`),\n },\n },\n });\n // update the devtools too\n api.notifyComponentUpdate();\n api.sendInspectorTree(INSPECTOR_ID);\n api.sendInspectorState(INSPECTOR_ID);\n });\n const { $dispose } = store;\n store.$dispose = () => {\n $dispose();\n api.notifyComponentUpdate();\n api.sendInspectorTree(INSPECTOR_ID);\n api.sendInspectorState(INSPECTOR_ID);\n api.getSettings().logStoreChanges &&\n toastMessage(`Disposed \"${store.$id}\" store 🗑`);\n };\n // trigger an update so it can display new registered stores\n api.notifyComponentUpdate();\n api.sendInspectorTree(INSPECTOR_ID);\n api.sendInspectorState(INSPECTOR_ID);\n api.getSettings().logStoreChanges &&\n toastMessage(`\"${store.$id}\" store installed 🆕`);\n });\n}\nlet runningActionId = 0;\nlet activeAction;\n/**\n * Patches a store to enable action grouping in devtools by wrapping the store with a Proxy that is passed as the\n * context of all actions, allowing us to set `runningAction` on each access and effectively associating any state\n * mutation to the action.\n *\n * @param store - store to patch\n * @param actionNames - list of actionst to patch\n */\nfunction patchActionForGrouping(store, actionNames) {\n // original actions of the store as they are given by pinia. We are going to override them\n const actions = actionNames.reduce((storeActions, actionName) => {\n // use toRaw to avoid tracking #541\n storeActions[actionName] = toRaw(store)[actionName];\n return storeActions;\n }, {});\n for (const actionName in actions) {\n store[actionName] = function () {\n // setActivePinia(store._p)\n // the running action id is incremented in a before action hook\n const _actionId = runningActionId;\n const trackedStore = new Proxy(store, {\n get(...args) {\n activeAction = _actionId;\n return Reflect.get(...args);\n },\n set(...args) {\n activeAction = _actionId;\n return Reflect.set(...args);\n },\n });\n return actions[actionName].apply(trackedStore, arguments);\n };\n }\n}\n/**\n * pinia.use(devtoolsPlugin)\n */\nfunction devtoolsPlugin({ app, store, options }) {\n // HMR module\n if (store.$id.startsWith('__hot:')) {\n return;\n }\n // detect option api vs setup api\n if (options.state) {\n store._isOptionsAPI = true;\n }\n // only wrap actions in option-defined stores as this technique relies on\n // wrapping the context of the action with a proxy\n if (typeof options.state === 'function') {\n patchActionForGrouping(\n // @ts-expect-error: can cast the store...\n store, Object.keys(options.actions));\n const originalHotUpdate = store._hotUpdate;\n // Upgrade the HMR to also update the new actions\n toRaw(store)._hotUpdate = function (newStore) {\n originalHotUpdate.apply(this, arguments);\n patchActionForGrouping(store, Object.keys(newStore._hmrPayload.actions));\n };\n }\n addStoreToDevtools(app, \n // FIXME: is there a way to allow the assignment from Store<Id, S, G, A> to StoreGeneric?\n store);\n}\n\n/**\n * Creates a Pinia instance to be used by the application\n */\nfunction createPinia() {\n const scope = effectScope(true);\n // NOTE: here we could check the window object for a state and directly set it\n // if there is anything like it with Vue 3 SSR\n const state = scope.run(() => ref({}));\n let _p = [];\n // plugins added before calling app.use(pinia)\n let toBeInstalled = [];\n const pinia = markRaw({\n install(app) {\n // this allows calling useStore() outside of a component setup after\n // installing pinia's plugin\n setActivePinia(pinia);\n if (!isVue2) {\n pinia._a = app;\n app.provide(piniaSymbol, pinia);\n app.config.globalProperties.$pinia = pinia;\n /* istanbul ignore else */\n if (USE_DEVTOOLS) {\n registerPiniaDevtools(app, pinia);\n }\n toBeInstalled.forEach((plugin) => _p.push(plugin));\n toBeInstalled = [];\n }\n },\n use(plugin) {\n if (!this._a && !isVue2) {\n toBeInstalled.push(plugin);\n }\n else {\n _p.push(plugin);\n }\n return this;\n },\n _p,\n // it's actually undefined here\n // @ts-expect-error\n _a: null,\n _e: scope,\n _s: new Map(),\n state,\n });\n // pinia devtools rely on dev only features so they cannot be forced unless\n // the dev build of Vue is used. Avoid old browsers like IE11.\n if (USE_DEVTOOLS && typeof Proxy !== 'undefined') {\n pinia.use(devtoolsPlugin);\n }\n return pinia;\n}\n\n/**\n * Checks if a function is a `StoreDefinition`.\n *\n * @param fn - object to test\n * @returns true if `fn` is a StoreDefinition\n */\nconst isUseStore = (fn) => {\n return typeof fn === 'function' && typeof fn.$id === 'string';\n};\n/**\n * Mutates in place `newState` with `oldState` to _hot update_ it. It will\n * remove any key not existing in `newState` and recursively merge plain\n * objects.\n *\n * @param newState - new state object to be patched\n * @param oldState - old state that should be used to patch newState\n * @returns - newState\n */\nfunction patchObject(newState, oldState) {\n // no need to go through symbols because they cannot be serialized anyway\n for (const key in oldState) {\n const subPatch = oldState[key];\n // skip the whole sub tree\n if (!(key in newState)) {\n continue;\n }\n const targetValue = newState[key];\n if (isPlainObject(targetValue) &&\n isPlainObject(subPatch) &&\n !isRef(subPatch) &&\n !isReactive(subPatch)) {\n newState[key] = patchObject(targetValue, subPatch);\n }\n else {\n // objects are either a bit more complex (e.g. refs) or primitives, so we\n // just set the whole thing\n if (isVue2) {\n set(newState, key, subPatch);\n }\n else {\n newState[key] = subPatch;\n }\n }\n }\n return newState;\n}\n/**\n * Creates an _accept_ function to pass to `import.meta.hot` in Vite applications.\n *\n * @example\n * ```js\n * const useUser = defineStore(...)\n * if (import.meta.hot) {\n * import.meta.hot.accept(acceptHMRUpdate(useUser, import.meta.hot))\n * }\n * ```\n *\n * @param initialUseStore - return of the defineStore to hot update\n * @param hot - `import.meta.hot`\n */\nfunction acceptHMRUpdate(initialUseStore, hot) {\n // strip as much as possible from iife.prod\n if (!(process.env.NODE_ENV !== 'production')) {\n return () => { };\n }\n return (newModule) => {\n const pinia = hot.data.pinia || initialUseStore._pinia;\n if (!pinia) {\n // this store is still not used\n return;\n }\n // preserve the pinia instance across loads\n hot.data.pinia = pinia;\n // console.log('got data', newStore)\n for (const exportName in newModule) {\n const useStore = newModule[exportName];\n // console.log('checking for', exportName)\n if (isUseStore(useStore) && pinia._s.has(useStore.$id)) {\n // console.log('Accepting update for', useStore.$id)\n const id = useStore.$id;\n if (id !== initialUseStore.$id) {\n console.warn(`The id of the store changed from \"${initialUseStore.$id}\" to \"${id}\". Reloading.`);\n // return import.meta.hot.invalidate()\n return hot.invalidate();\n }\n const existingStore = pinia._s.get(id);\n if (!existingStore) {\n console.log(`[Pinia]: skipping hmr because store doesn't exist yet`);\n return;\n }\n useStore(pinia, existingStore);\n }\n }\n };\n}\n\nconst noop = () => { };\nfunction addSubscription(subscriptions, callback, detached, onCleanup = noop) {\n subscriptions.push(callback);\n const removeSubscription = () => {\n const idx = subscriptions.indexOf(callback);\n if (idx > -1) {\n subscriptions.splice(idx, 1);\n onCleanup();\n }\n };\n if (!detached && getCurrentScope()) {\n onScopeDispose(removeSubscription);\n }\n return removeSubscription;\n}\nfunction triggerSubscriptions(subscriptions, ...args) {\n subscriptions.slice().forEach((callback) => {\n callback(...args);\n });\n}\n\nfunction mergeReactiveObjects(target, patchToApply) {\n // Handle Map instances\n if (target instanceof Map && patchToApply instanceof Map) {\n patchToApply.forEach((value, key) => target.set(key, value));\n }\n // Handle Set instances\n if (target instanceof Set && patchToApply instanceof Set) {\n patchToApply.forEach(target.add, target);\n }\n // no need to go through symbols because they cannot be serialized anyway\n for (const key in patchToApply) {\n if (!patchToApply.hasOwnProperty(key))\n continue;\n const subPatch = patchToApply[key];\n const targetValue = target[key];\n if (isPlainObject(targetValue) &&\n isPlainObject(subPatch) &&\n target.hasOwnProperty(key) &&\n !isRef(subPatch) &&\n !isReactive(subPatch)) {\n // NOTE: here I wanted to warn about inconsistent types but it's not possible because in setup stores one might\n // start the value of a property as a certain type e.g. a Map, and then for some reason, during SSR, change that\n // to `undefined`. When trying to hydrate, we want to override the Map with `undefined`.\n target[key] = mergeReactiveObjects(targetValue, subPatch);\n }\n else {\n // @ts-expect-error: subPatch is a valid value\n target[key] = subPatch;\n }\n }\n return target;\n}\nconst skipHydrateSymbol = (process.env.NODE_ENV !== 'production')\n ? Symbol('pinia:skipHydration')\n : /* istanbul ignore next */ Symbol();\nconst skipHydrateMap = /*#__PURE__*/ new WeakMap();\n/**\n * Tells Pinia to skip the hydration process of a given object. This is useful in setup stores (only) when you return a\n * stateful object in the store but it isn't really state. e.g. returning a router instance in a setup store.\n *\n * @param obj - target object\n * @returns obj\n */\nfunction skipHydrate(obj) {\n return isVue2\n ? // in @vue/composition-api, the refs are sealed so defineProperty doesn't work...\n /* istanbul ignore next */ skipHydrateMap.set(obj, 1) && obj\n : Object.defineProperty(obj, skipHydrateSymbol, {});\n}\n/**\n * Returns whether a value should be hydrated\n *\n * @param obj - target variable\n * @returns true if `obj` should be hydrated\n */\nfunction shouldHydrate(obj) {\n return isVue2\n ? /* istanbul ignore next */ !skipHydrateMap.has(obj)\n : !isPlainObject(obj) || !obj.hasOwnProperty(skipHydrateSymbol);\n}\nconst { assign } = Object;\nfunction isComputed(o) {\n return !!(isRef(o) && o.effect);\n}\nfunction createOptionsStore(id, options, pinia, hot) {\n const { state, actions, getters } = options;\n const initialState = pinia.state.value[id];\n let store;\n function setup() {\n if (!initialState && (!(process.env.NODE_ENV !== 'production') || !hot)) {\n /* istanbul ignore if */\n if (isVue2) {\n set(pinia.state.value, id, state ? state() : {});\n }\n else {\n pinia.state.value[id] = state ? state() : {};\n }\n }\n // avoid creating a state in pinia.state.value\n const localState = (process.env.NODE_ENV !== 'production') && hot\n ? // use ref() to unwrap refs inside state TODO: check if this is still necessary\n toRefs(ref(state ? state() : {}).value)\n : toRefs(pinia.state.value[id]);\n return assign(localState, actions, Object.keys(getters || {}).reduce((computedGetters, name) => {\n if ((process.env.NODE_ENV !== 'production') && name in localState) {\n console.warn(`[🍍]: A getter cannot have the same name as another state property. Rename one of them. Found with \"${name}\" in store \"${id}\".`);\n }\n computedGetters[name] = markRaw(computed(() => {\n setActivePinia(pinia);\n // it was created just before\n const store = pinia._s.get(id);\n // allow cross using stores\n /* istanbul ignore next */\n if (isVue2 && !store._r)\n return;\n // @ts-expect-error\n // return getters![name].call(context, context)\n // TODO: avoid reading the getter while assigning with a global variable\n return getters[name].call(store, store);\n }));\n return computedGetters;\n }, {}));\n }\n store = createSetupStore(id, setup, options, pinia, hot, true);\n return store;\n}\nfunction createSetupStore($id, setup, options = {}, pinia, hot, isOptionsStore) {\n let scope;\n const optionsForPlugin = assign({ actions: {} }, options);\n /* istanbul ignore if */\n if ((process.env.NODE_ENV !== 'production') && !pinia._e.active) {\n throw new Error('Pinia destroyed');\n }\n // watcher options for $subscribe\n const $subscribeOptions = {\n deep: true,\n // flush: 'post',\n };\n /* istanbul ignore else */\n if ((process.env.NODE_ENV !== 'production') && !isVue2) {\n $subscribeOptions.onTrigger = (event) => {\n /* istanbul ignore else */\n if (isListening) {\n debuggerEvents = event;\n // avoid triggering this while the store is being built and the state is being set in pinia\n }\n else if (isListening == false && !store._hotUpdating) {\n // let patch send all the events together later\n /* istanbul ignore else */\n if (Array.isArray(debuggerEvents)) {\n debuggerEvents.push(event);\n }\n else {\n console.error('🍍 debuggerEvents should be an array. This is most likely an internal Pinia bug.');\n }\n }\n };\n }\n // internal state\n let isListening; // set to true at the end\n let isSyncListening; // set to true at the end\n let subscriptions = markRaw([]);\n let actionSubscriptions = markRaw([]);\n let debuggerEvents;\n const initialState = pinia.state.value[$id];\n // avoid setting the state for option stores if it is set\n // by the setup\n if (!isOptionsStore && !initialState && (!(process.env.NODE_ENV !== 'production') || !hot)) {\n /* istanbul ignore if */\n if (isVue2) {\n set(pinia.state.value, $id, {});\n }\n else {\n pinia.state.value[$id] = {};\n }\n }\n const hotState = ref({});\n // avoid triggering too many listeners\n // https://github.com/vuejs/pinia/issues/1129\n let activeListener;\n function $patch(partialStateOrMutator) {\n let subscriptionMutation;\n isListening = isSyncListening = false;\n // reset the debugger events since patches are sync\n /* istanbul ignore else */\n if ((process.env.NODE_ENV !== 'production')) {\n debuggerEvents = [];\n }\n if (typeof partialStateOrMutator === 'function') {\n partialStateOrMutator(pinia.state.value[$id]);\n subscriptionMutation = {\n type: MutationType.patchFunction,\n storeId: $id,\n events: debuggerEvents,\n };\n }\n else {\n mergeReactiveObjects(pinia.state.value[$id], partialStateOrMutator);\n subscriptionMutation = {\n type: MutationType.patchObject,\n payload: partialStateOrMutator,\n storeId: $id,\n events: debuggerEvents,\n };\n }\n const myListenerId = (activeListener = Symbol());\n nextTick().then(() => {\n if (activeListener === myListenerId) {\n isListening = true;\n }\n });\n isSyncListening = true;\n // because we paused the watcher, we need to manually call the subscriptions\n triggerSubscriptions(subscriptions, subscriptionMutation, pinia.state.value[$id]);\n }\n const $reset = isOptionsStore\n ? function $reset() {\n const { state } = options;\n const newState = state ? state() : {};\n // we use a patch to group all changes into one single subscription\n this.$patch(($state) => {\n assign($state, newState);\n });\n }\n : /* istanbul ignore next */\n (process.env.NODE_ENV !== 'production')\n ? () => {\n throw new Error(`🍍: Store \"${$id}\" is built using the setup syntax and does not implement $reset().`);\n }\n : noop;\n function $dispose() {\n scope.stop();\n subscriptions = [];\n actionSubscriptions = [];\n pinia._s.delete($id);\n }\n /**\n * Wraps an action to handle subscriptions.\n *\n * @param name - name of the action\n * @param action - action to wrap\n * @returns a wrapped action to handle subscriptions\n */\n function wrapAction(name, action) {\n return function () {\n setActivePinia(pinia);\n const args = Array.from(arguments);\n const afterCallbackList = [];\n const onErrorCallbackList = [];\n function after(callback) {\n afterCallbackList.push(callback);\n }\n function onError(callback) {\n onErrorCallbackList.push(callback);\n }\n // @ts-expect-error\n triggerSubscriptions(actionSubscriptions, {\n args,\n name,\n store,\n after,\n onError,\n });\n let ret;\n try {\n ret = action.apply(this && this.$id === $id ? this : store, args);\n // handle sync errors\n }\n catch (error) {\n triggerSubscriptions(onErrorCallbackList, error);\n throw error;\n }\n if (ret instanceof Promise) {\n return ret\n .then((value) => {\n triggerSubscriptions(afterCallbackList, value);\n return value;\n })\n .catch((error) => {\n triggerSubscriptions(onErrorCallbackList, error);\n return Promise.reject(error);\n });\n }\n // trigger after callbacks\n triggerSubscriptions(afterCallbackList, ret);\n return ret;\n };\n }\n const _hmrPayload = /*#__PURE__*/ markRaw({\n actions: {},\n getters: {},\n state: [],\n hotState,\n });\n const partialStore = {\n _p: pinia,\n // _s: scope,\n $id,\n $onAction: addSubscription.bind(null, actionSubscriptions),\n $patch,\n $reset,\n $subscribe(callback, options = {}) {\n const removeSubscription = addSubscription(subscriptions, callback, options.detached, () => stopWatcher());\n const stopWatcher = scope.run(() => watch(() => pinia.state.value[$id], (state) => {\n if (options.flush === 'sync' ? isSyncListening : isListening) {\n callback({\n storeId: $id,\n type: MutationType.direct,\n events: debuggerEvents,\n }, state);\n }\n }, assign({}, $subscribeOptions, options)));\n return removeSubscription;\n },\n $dispose,\n };\n /* istanbul ignore if */\n if (isVue2) {\n // start as non ready\n partialStore._r = false;\n }\n const store = reactive((process.env.NODE_ENV !== 'production') || USE_DEVTOOLS\n ? assign({\n _hmrPayload,\n _customProperties: markRaw(new Set()), // devtools custom properties\n }, partialStore\n // must be added later\n // setupStore\n )\n : partialStore);\n // store the partial store now so the setup of stores can instantiate each other before they are finished without\n // creating infinite loops.\n pinia._s.set($id, store);\n // TODO: idea create skipSerialize that marks properties as non serializable and they are skipped\n const setupStore = pinia._e.run(() => {\n scope = effectScope();\n return scope.run(() => setup());\n });\n // overwrite existing actions to support $onAction\n for (const key in setupStore) {\n const prop = setupStore[key];\n if ((isRef(prop) && !isComputed(prop)) || isReactive(prop)) {\n // mark it as a piece of state to be serialized\n if ((process.env.NODE_ENV !== 'production') && hot) {\n set(hotState.value, key, toRef(setupStore, key));\n // createOptionStore directly sets the state in pinia.state.value so we\n // can just skip that\n }\n else if (!isOptionsStore) {\n // in setup stores we must hydrate the state and sync pinia state tree with the refs the user just created\n if (initialState && shouldHydrate(prop)) {\n if (isRef(prop)) {\n prop.value = initialState[key];\n }\n else {\n // probably a reactive object, lets recursively assign\n // @ts-expect-error: prop is unknown\n mergeReactiveObjects(prop, initialState[key]);\n }\n }\n // transfer the ref to the pinia state to keep everything in sync\n /* istanbul ignore if */\n if (isVue2) {\n set(pinia.state.value[$id], key, prop);\n }\n else {\n pinia.state.value[$id][key] = prop;\n }\n }\n /* istanbul ignore else */\n if ((process.env.NODE_ENV !== 'production')) {\n _hmrPayload.state.push(key);\n }\n // action\n }\n else if (typeof prop === 'function') {\n // @ts-expect-error: we are overriding the function we avoid wrapping if\n const actionValue = (process.env.NODE_ENV !== 'production') && hot ? prop : wrapAction(key, prop);\n // this a hot module replacement store because the hotUpdate method needs\n // to do it with the right context\n /* istanbul ignore if */\n if (isVue2) {\n set(setupStore, key, actionValue);\n }\n else {\n // @ts-expect-error\n setupStore[key] = actionValue;\n }\n /* istanbul ignore else */\n if ((process.env.NODE_ENV !== 'production')) {\n _hmrPayload.actions[key] = prop;\n }\n // list actions so they can be used in plugins\n // @ts-expect-error\n optionsForPlugin.actions[key] = prop;\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n // add getters for devtools\n if (isComputed(prop)) {\n _hmrPayload.getters[key] = isOptionsStore\n ? // @ts-expect-error\n options.getters[key]\n : prop;\n if (IS_CLIENT) {\n const getters = setupStore._getters ||\n // @ts-expect-error: same\n (setupStore._getters = markRaw([]));\n getters.push(key);\n }\n }\n }\n }\n // add the state, getters, and action properties\n /* istanbul ignore if */\n if (isVue2) {\n Object.keys(setupStore).forEach((key) => {\n set(store, key, setupStore[key]);\n });\n }\n else {\n assign(store, setupStore);\n // allows retrieving reactive objects with `storeToRefs()`. Must be called after assigning to the reactive object.\n // Make `storeToRefs()` work with `reactive()` #799\n assign(toRaw(store), setupStore);\n }\n // use this instead of a computed with setter to be able to create it anywhere\n // without linking the computed lifespan to wherever the store is first\n // created.\n Object.defineProperty(store, '$state', {\n get: () => ((process.env.NODE_ENV !== 'production') && hot ? hotState.value : pinia.state.value[$id]),\n set: (state) => {\n /* istanbul ignore if */\n if ((process.env.NODE_ENV !== 'production') && hot) {\n throw new Error('cannot set hotState');\n }\n $patch(($state) => {\n assign($state, state);\n });\n },\n });\n // add the hotUpdate before plugins to allow them to override it\n /* istanbul ignore else */\n if ((process.env.NODE_ENV !== 'production')) {\n store._hotUpdate = markRaw((newStore) => {\n store._hotUpdating = true;\n newStore._hmrPayload.state.forEach((stateKey) => {\n if (stateKey in store.$state) {\n const newStateTarget = newStore.$state[stateKey];\n const oldStateSource = store.$state[stateKey];\n if (typeof newStateTarget === 'object' &&\n isPlainObject(newStateTarget) &&\n isPlainObject(oldStateSource)) {\n patchObject(newStateTarget, oldStateSource);\n }\n else {\n // transfer the ref\n newStore.$state[stateKey] = oldStateSource;\n }\n }\n // patch direct access properties to allow store.stateProperty to work as\n // store.$state.stateProperty\n set(store, stateKey, toRef(newStore.$state, stateKey));\n });\n // remove deleted state properties\n Object.keys(store.$state).forEach((stateKey) => {\n if (!(stateKey in newStore.$state)) {\n del(store, stateKey);\n }\n });\n // avoid devtools logging this as a mutation\n isListening = false;\n isSyncListening = false;\n pinia.state.value[$id] = toRef(newStore._hmrPayload, 'hotState');\n isSyncListening = true;\n nextTick().then(() => {\n isListening = true;\n });\n for (const actionName in newStore._hmrPayload.actions) {\n const action = newStore[actionName];\n set(store, actionName, wrapAction(actionName, action));\n }\n // TODO: does this work in both setup and option store?\n for (const getterName in newStore._hmrPayload.getters) {\n const getter = newStore._hmrPayload.getters[getterName];\n const getterValue = isOptionsStore\n ? // special handling of options api\n computed(() => {\n setActivePinia(pinia);\n return getter.call(store, store);\n })\n : getter;\n set(store, getterName, getterValue);\n }\n // remove deleted getters\n Object.keys(store._hmrPayload.getters).forEach((key) => {\n if (!(key in newStore._hmrPayload.getters)) {\n del(store, key);\n }\n });\n // remove old actions\n Object.keys(store._hmrPayload.actions).forEach((key) => {\n if (!(key in newStore._hmrPayload.actions)) {\n del(store, key);\n }\n });\n // update the values used in devtools and to allow deleting new properties later on\n store._hmrPayload = newStore._hmrPayload;\n store._getters = newStore._getters;\n store._hotUpdating = false;\n });\n }\n if (USE_DEVTOOLS) {\n const nonEnumerable = {\n writable: true,\n configurable: true,\n // avoid warning on devtools trying to display this property\n enumerable: false,\n };\n ['_p', '_hmrPayload', '_getters', '_customProperties'].forEach((p) => {\n Object.defineProperty(store, p, assign({ value: store[p] }, nonEnumerable));\n });\n }\n /* istanbul ignore if */\n if (isVue2) {\n // mark the store as ready before plugins\n store._r = true;\n }\n // apply all plugins\n pinia._p.forEach((extender) => {\n /* istanbul ignore else */\n if (USE_DEVTOOLS) {\n const extensions = scope.run(() => extender({\n store,\n app: pinia._a,\n pinia,\n options: optionsForPlugin,\n }));\n Object.keys(extensions || {}).forEach((key) => store._customProperties.add(key));\n assign(store, extensions);\n }\n else {\n assign(store, scope.run(() => extender({\n store,\n app: pinia._a,\n pinia,\n options: optionsForPlugin,\n })));\n }\n });\n if ((process.env.NODE_ENV !== 'production') &&\n store.$state &&\n typeof store.$state === 'object' &&\n typeof store.$state.constructor === 'function' &&\n !store.$state.constructor.toString().includes('[native code]')) {\n console.warn(`[🍍]: The \"state\" must be a plain object. It cannot be\\n` +\n `\\tstate: () => new MyClass()\\n` +\n `Found in store \"${store.$id}\".`);\n }\n // only apply hydrate to option stores with an initial state in pinia\n if (initialState &&\n isOptionsStore &&\n options.hydrate) {\n options.hydrate(store.$state, initialState);\n }\n isListening = true;\n isSyncListening = true;\n return store;\n}\nfunction defineStore(\n// TODO: add proper types from above\nidOrOptions, setup, setupOptions) {\n let id;\n let options;\n const isSetupStore = typeof setup === 'function';\n if (typeof idOrOptions === 'string') {\n id = idOrOptions;\n // the option store setup will contain the actual options in this case\n options = isSetupStore ? setupOptions : setup;\n }\n else {\n options = idOrOptions;\n id = idOrOptions.id;\n if ((process.env.NODE_ENV !== 'production') && typeof id !== 'string') {\n throw new Error(`[🍍]: \"defineStore()\" must be passed a store id as its first argument.`);\n }\n }\n function useStore(pinia, hot) {\n const currentInstance = getCurrentInstance();\n pinia =\n // in test mode, ignore the argument provided as we can always retrieve a\n // pinia instance with getActivePinia()\n ((process.env.NODE_ENV === 'test') && activePinia && activePinia._testing ? null : pinia) ||\n (currentInstance && inject(piniaSymbol, null));\n if (pinia)\n setActivePinia(pinia);\n if ((process.env.NODE_ENV !== 'production') && !activePinia) {\n throw new Error(`[🍍]: \"getActivePinia()\" was called but there was no active Pinia. Did you forget to install pinia?\\n` +\n `\\tconst pinia = createPinia()\\n` +\n `\\tapp.use(pinia)\\n` +\n `This will fail in production.`);\n }\n pinia = activePinia;\n if (!pinia._s.has(id)) {\n // creating the store registers it in `pinia._s`\n if (isSetupStore) {\n createSetupStore(id, setup, options, pinia);\n }\n else {\n createOptionsStore(id, options, pinia);\n }\n /* istanbul ignore else */\n if ((process.env.NODE_ENV !== 'production')) {\n // @ts-expect-error: not the right inferred type\n useStore._pinia = pinia;\n }\n }\n const store = pinia._s.get(id);\n if ((process.env.NODE_ENV !== 'production') && hot) {\n const hotId = '__hot:' + id;\n const newStore = isSetupStore\n ? createSetupStore(hotId, setup, options, pinia, true)\n : createOptionsStore(hotId, assign({}, options), pinia, true);\n hot._hotUpdate(newStore);\n // cleanup the state properties and the store from the cache\n delete pinia.state.value[hotId];\n pinia._s.delete(hotId);\n }\n // save stores in instances to access them devtools\n if ((process.env.NODE_ENV !== 'production') &&\n IS_CLIENT &&\n currentInstance &&\n currentInstance.proxy &&\n // avoid adding stores that are just built for hot module replacement\n !hot) {\n const vm = currentInstance.proxy;\n const cache = '_pStores' in vm ? vm._pStores : (vm._pStores = {});\n cache[id] = store;\n }\n // StoreGeneric cannot be casted towards Store\n return store;\n }\n useStore.$id = id;\n return useStore;\n}\n\nlet mapStoreSuffix = 'Store';\n/**\n * Changes the suffix added by `mapStores()`. Can be set to an empty string.\n * Defaults to `\"Store\"`. Make sure to extend the MapStoresCustomization\n * interface if you are using TypeScript.\n *\n * @param suffix - new suffix\n */\nfunction setMapStoreSuffix(suffix // could be 'Store' but that would be annoying for JS\n) {\n mapStoreSuffix = suffix;\n}\n/**\n * Allows using stores without the composition API (`setup()`) by generating an\n * object to be spread in the `computed` field of a component. It accepts a list\n * of store definitions.\n *\n * @example\n * ```js\n * export default {\n * computed: {\n * // other computed properties\n * ...mapStores(useUserStore, useCartStore)\n * },\n *\n * created() {\n * this.userStore // store with id \"user\"\n * this.cartStore // store with id \"cart\"\n * }\n * }\n * ```\n *\n * @param stores - list of stores to map to an object\n */\nfunction mapStores(...stores) {\n if ((process.env.NODE_ENV !== 'production') && Array.isArray(stores[0])) {\n console.warn(`[🍍]: Directly pass all stores to \"mapStores()\" without putting them in an array:\\n` +\n `Replace\\n` +\n `\\tmapStores([useAuthStore, useCartStore])\\n` +\n `with\\n` +\n `\\tmapStores(useAuthStore, useCartStore)\\n` +\n `This will fail in production if not fixed.`);\n stores = stores[0];\n }\n return stores.reduce((reduced, useStore) => {\n // @ts-expect-error: $id is added by defineStore\n reduced[useStore.$id + mapStoreSuffix] = function () {\n return useStore(this.$pinia);\n };\n return reduced;\n }, {});\n}\n/**\n * Allows using state and getters from one store without using the composition\n * API (`setup()`) by generating an object to be spread in the `computed` field\n * of a component.\n *\n * @param useStore - store to map from\n * @param keysOrMapper - array or object\n */\nfunction mapState(useStore, keysOrMapper) {\n return Array.isArray(keysOrMapper)\n ? keysOrMapper.reduce((reduced, key) => {\n reduced[key] = function () {\n return useStore(this.$pinia)[key];\n };\n return reduced;\n }, {})\n : Object.keys(keysOrMapper).reduce((reduced, key) => {\n // @ts-expect-error\n reduced[key] = function () {\n const store = useStore(this.$pinia);\n const storeKey = keysOrMapper[key];\n // for some reason TS is unable to infer the type of storeKey to be a\n // function\n return typeof storeKey === 'function'\n ? storeKey.call(this, store)\n : store[storeKey];\n };\n return reduced;\n }, {});\n}\n/**\n * Alias for `mapState()`. You should use `mapState()` instead.\n * @deprecated use `mapState()` instead.\n */\nconst mapGetters = mapState;\n/**\n * Allows directly using actions from your store without using the composition\n * API (`setup()`) by generating an object to be spread in the `methods` field\n * of a component.\n *\n * @param useStore - store to map from\n * @param keysOrMapper - array or object\n */\nfunction mapActions(useStore, keysOrMapper) {\n return Array.isArray(keysOrMapper)\n ? keysOrMapper.reduce((reduced, key) => {\n // @ts-expect-error\n reduced[key] = function (...args) {\n return useStore(this.$pinia)[key](...args);\n };\n return reduced;\n }, {})\n : Object.keys(keysOrMapper).reduce((reduced, key) => {\n // @ts-expect-error\n reduced[key] = function (...args) {\n return useStore(this.$pinia)[keysOrMapper[key]](...args);\n };\n return reduced;\n }, {});\n}\n/**\n * Allows using state and getters from one store without using the composition\n * API (`setup()`) by generating an object to be spread in the `computed` field\n * of a component.\n *\n * @param useStore - store to map from\n * @param keysOrMapper - array or object\n */\nfunction mapWritableState(useStore, keysOrMapper) {\n return Array.isArray(keysOrMapper)\n ? keysOrMapper.reduce((reduced, key) => {\n // @ts-ignore\n reduced[key] = {\n get() {\n return useStore(this.$pinia)[key];\n },\n set(value) {\n // it's easier to type it here as any\n return (useStore(this.$pinia)[key] = value);\n },\n };\n return reduced;\n }, {})\n : Object.keys(keysOrMapper).reduce((reduced, key) => {\n // @ts-ignore\n reduced[key] = {\n get() {\n return useStore(this.$pinia)[keysOrMapper[key]];\n },\n set(value) {\n // it's easier to type it here as any\n return (useStore(this.$pinia)[keysOrMapper[key]] = value);\n },\n };\n return reduced;\n }, {});\n}\n\n/**\n * Creates an object of references with all the state, getters, and plugin-added\n * state properties of the store. Similar to `toRefs()` but specifically\n * designed for Pinia stores so methods and non reactive properties are\n * completely ignored.\n *\n * @param store - store to extract the refs from\n */\nfunction storeToRefs(store) {\n // See https://github.com/vuejs/pinia/issues/852\n // It's easier to just use toRefs() even if it includes more stuff\n if (isVue2) {\n // @ts-expect-error: toRefs include methods and others\n return toRefs(store);\n }\n else {\n store = toRaw(store);\n const refs = {};\n for (const key in store) {\n const value = store[key];\n if (isRef(value) || isReactive(value)) {\n // @ts-expect-error: the key is state or getter\n refs[key] =\n // ---\n toRef(store, key);\n }\n }\n return refs;\n }\n}\n\n/**\n * Vue 2 Plugin that must be installed for pinia to work. Note **you don't need\n * this plugin if you are using Nuxt.js**. Use the `buildModule` instead:\n * https://pinia.vuejs.org/ssr/nuxt.html.\n *\n * @example\n * ```js\n * import Vue from 'vue'\n * import { PiniaVuePlugin, createPinia } from 'pinia'\n *\n * Vue.use(PiniaVuePlugin)\n * const pinia = createPinia()\n *\n * new Vue({\n * el: '#app',\n * // ...\n * pinia,\n * })\n * ```\n *\n * @param _Vue - `Vue` imported from 'vue'.\n */\nconst PiniaVuePlugin = function (_Vue) {\n // Equivalent of\n // app.config.globalProperties.$pinia = pinia\n _Vue.mixin({\n beforeCreate() {\n const options = this.$options;\n if (options.pinia) {\n const pinia = options.pinia;\n // HACK: taken from provide(): https://github.com/vuejs/composition-api/blob/main/src/apis/inject.ts#L31\n /* istanbul ignore else */\n if (!this._provided) {\n const provideCache = {};\n Object.defineProperty(this, '_provided', {\n get: () => provideCache,\n set: (v) => Object.assign(provideCache, v),\n });\n }\n this._provided[piniaSymbol] = pinia;\n // propagate the pinia instance in an SSR friendly way\n // avoid adding it to nuxt twice\n /* istanbul ignore else */\n if (!this.$pinia) {\n this.$pinia = pinia;\n }\n pinia._a = this;\n if (IS_CLIENT) {\n // this allows calling useStore() outside of a component setup after\n // installing pinia's plugin\n setActivePinia(pinia);\n }\n if (USE_DEVTOOLS) {\n registerPiniaDevtools(pinia._a, pinia);\n }\n }\n else if (!this.$pinia && options.parent && options.parent.$pinia) {\n this.$pinia = options.parent.$pinia;\n }\n },\n destroyed() {\n delete this._pStores;\n },\n });\n};\n\nexport { MutationType, PiniaVuePlugin, acceptHMRUpdate, createPinia, defineStore, getActivePinia, mapActions, mapGetters, mapState, mapStores, mapWritableState, setActivePinia, setMapStoreSuffix, skipHydrate, storeToRefs };\n","'use strict'\r\n\r\n// utils is a library of generic helper functions non-specific to axios\r\n\r\nvar toString = Object.prototype.toString\r\n\r\n/**\r\n * Determine if a value is an Array\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is an Array, otherwise false\r\n */\r\nexport function isArray (val) {\r\n return toString.call(val) === '[object Array]'\r\n}\r\n\r\n\r\n/**\r\n * Determine if a value is an Object\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is an Object, otherwise false\r\n */\r\nexport function isObject (val) {\r\n return val !== null && typeof val === 'object'\r\n}\r\n\r\n/**\r\n * Determine if a value is a Date\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is a Date, otherwise false\r\n */\r\nexport function isDate (val) {\r\n return toString.call(val) === '[object Date]'\r\n}\r\n\r\n/**\r\n * Determine if a value is a URLSearchParams object\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\r\n */\r\nexport function isURLSearchParams (val) {\r\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams\r\n}\r\n\r\n\r\n/**\r\n * Iterate over an Array or an Object invoking a function for each item.\r\n *\r\n * If `obj` is an Array callback will be called passing\r\n * the value, index, and complete array for each item.\r\n *\r\n * If 'obj' is an Object callback will be called passing\r\n * the value, key, and complete object for each property.\r\n *\r\n * @param {Object|Array} obj The object to iterate\r\n * @param {Function} fn The callback to invoke for each item\r\n */\r\nexport function forEach (obj, fn) {\r\n // Don't bother if no value provided\r\n if (obj === null || typeof obj === 'undefined') {\r\n return\r\n }\r\n\r\n // Force an array if not already something iterable\r\n if (typeof obj !== 'object') {\r\n /*eslint no-param-reassign:0*/\r\n obj = [obj]\r\n }\r\n\r\n if (isArray(obj)) {\r\n // Iterate over array values\r\n for (var i = 0, l = obj.length; i < l; i++) {\r\n fn.call(null, obj[i], i, obj)\r\n }\r\n } else {\r\n // Iterate over object keys\r\n for (var key in obj) {\r\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\r\n fn.call(null, obj[key], key, obj)\r\n }\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * 是否为boolean 值\r\n * @param val\r\n * @returns {boolean}\r\n */\r\nexport function isBoolean(val) {\r\n return typeof val === 'boolean'\r\n}\r\n\r\n/**\r\n * 是否为真正的对象{} new Object\r\n * @param {any} obj - 检测的对象\r\n * @returns {boolean}\r\n */\r\nexport function isPlainObject(obj) {\r\n return Object.prototype.toString.call(obj) === '[object Object]'\r\n}\r\n\r\n\r\n\r\n/**\r\n * Function equal to merge with the difference being that no reference\r\n * to original objects is kept.\r\n *\r\n * @see merge\r\n * @param {Object} obj1 Object to merge\r\n * @returns {Object} Result of all merge properties\r\n */\r\nexport function deepMerge(/* obj1, obj2, obj3, ... */) {\r\n let result = {}\r\n function assignValue(val, key) {\r\n if (typeof result[key] === 'object' && typeof val === 'object') {\r\n result[key] = deepMerge(result[key], val)\r\n } else if (typeof val === 'object') {\r\n result[key] = deepMerge({}, val)\r\n } else {\r\n result[key] = val\r\n }\r\n }\r\n for (let i = 0, l = arguments.length; i < l; i++) {\r\n forEach(arguments[i], assignValue)\r\n }\r\n return result\r\n}\r\n\r\nexport function isUndefined (val) {\r\n return typeof val === 'undefined'\r\n}\r\n","'use strict'\r\n\r\nimport * as utils from './../utils'\r\n\r\nfunction encode(val) {\r\n return encodeURIComponent(val).replace(/%40/gi, '@').replace(/%3A/gi, ':').replace(/%24/g, '$').replace(/%2C/gi, ',').replace(/%20/g, '+').replace(/%5B/gi, '[').replace(/%5D/gi, ']')\r\n}\r\n\r\n/**\r\n * Build a URL by appending params to the end\r\n *\r\n * @param {string} url The base of the url (e.g., http://www.google.com)\r\n * @param {object} [params] The params to be appended\r\n * @returns {string} The formatted url\r\n */\r\nexport default function buildURL(url, params, paramsSerializer) {\r\n /*eslint no-param-reassign:0*/\r\n if (!params) {\r\n return url\r\n }\r\n\r\n var serializedParams\r\n if (paramsSerializer) {\r\n serializedParams = paramsSerializer(params)\r\n } else if (utils.isURLSearchParams(params)) {\r\n serializedParams = params.toString()\r\n } else {\r\n var parts = []\r\n\r\n utils.forEach(params, function serialize(val, key) {\r\n if (val === null || typeof val === 'undefined') {\r\n return\r\n }\r\n\r\n if (utils.isArray(val)) {\r\n key = key + '[]'\r\n } else {\r\n val = [val]\r\n }\r\n\r\n utils.forEach(val, function parseValue(v) {\r\n if (utils.isDate(v)) {\r\n v = v.toISOString()\r\n } else if (utils.isObject(v)) {\r\n v = JSON.stringify(v)\r\n }\r\n parts.push(encode(key) + '=' + encode(v))\r\n })\r\n })\r\n\r\n serializedParams = parts.join('&')\r\n }\r\n\r\n if (serializedParams) {\r\n var hashmarkIndex = url.indexOf('#')\r\n if (hashmarkIndex !== -1) {\r\n url = url.slice(0, hashmarkIndex)\r\n }\r\n\r\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams\r\n }\r\n\r\n return url\r\n}\r\n","'use strict'\r\n\r\n/**\r\n * Determines whether the specified URL is absolute\r\n *\r\n * @param {string} url The URL to test\r\n * @returns {boolean} True if the specified URL is absolute, otherwise false\r\n */\r\nexport default function isAbsoluteURL(url) {\r\n // A URL is considered absolute if it begins with \"<scheme>://\" or \"//\" (protocol-relative URL).\r\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\r\n // by any combination of letters, digits, plus, period, or hyphen.\r\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url)\r\n}\r\n","'use strict'\r\n\r\n/**\r\n * Creates a new URL by combining the specified URLs\r\n *\r\n * @param {string} baseURL The base URL\r\n * @param {string} relativeURL The relative URL\r\n * @returns {string} The combined URL\r\n */\r\nexport default function combineURLs(baseURL, relativeURL) {\r\n return relativeURL\r\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\r\n : baseURL\r\n}\r\n","'use strict'\r\n\r\nimport isAbsoluteURL from '../helpers/isAbsoluteURL'\r\nimport combineURLs from '../helpers/combineURLs'\r\n\r\n/**\r\n * Creates a new URL by combining the baseURL with the requestedURL,\r\n * only when the requestedURL is not already an absolute URL.\r\n * If the requestURL is absolute, this function returns the requestedURL untouched.\r\n *\r\n * @param {string} baseURL The base URL\r\n * @param {string} requestedURL Absolute or relative URL to combine\r\n * @returns {string} The combined full path\r\n */\r\nexport default function buildFullPath(baseURL, requestedURL) {\r\n if (baseURL && !isAbsoluteURL(requestedURL)) {\r\n return combineURLs(baseURL, requestedURL)\r\n }\r\n return requestedURL\r\n}\r\n","/**\r\n * Resolve or reject a Promise based on response status.\r\n *\r\n * @param {Function} resolve A function that resolves the promise.\r\n * @param {Function} reject A function that rejects the promise.\r\n * @param {object} response The response.\r\n */\r\nexport default function settle(resolve, reject, response) {\r\n const validateStatus = response.config.validateStatus\r\n const status = response.statusCode\r\n if (status && (!validateStatus || validateStatus(status))) {\r\n resolve(response)\r\n } else {\r\n reject(response)\r\n }\r\n}\r\n","import buildURL from '../helpers/buildURL'\r\nimport buildFullPath from '../core/buildFullPath'\r\nimport settle from '../core/settle'\r\nimport {isUndefined} from \"../utils\"\r\n\r\n/**\r\n * 返回可选值存在的配置\r\n * @param {Array} keys - 可选值数组\r\n * @param {Object} config2 - 配置\r\n * @return {{}} - 存在的配置项\r\n */\r\nconst mergeKeys = (keys, config2) => {\r\n let config = {}\r\n keys.forEach(prop => {\r\n if (!isUndefined(config2[prop])) {\r\n config[prop] = config2[prop]\r\n }\r\n })\r\n return config\r\n}\r\nexport default (config) => {\r\n return new Promise((resolve, reject) => {\r\n let fullPath = buildURL(buildFullPath(config.baseURL, config.url), config.params, config.paramsSerializer)\r\n const _config = {\r\n url: fullPath,\r\n header: config.header,\r\n complete: (response) => {\r\n config.fullPath = fullPath\r\n response.config = config\r\n response.rawData = response.data\r\n try {\r\n // 对可能字符串不是json 的情况容错\r\n if (typeof response.data === 'string') {\r\n response.data = JSON.parse(response.data)\r\n }\r\n // eslint-disable-next-line no-empty\r\n } catch (e) {\r\n }\r\n settle(resolve, reject, response)\r\n }\r\n }\r\n let requestTask\r\n if (config.method === 'UPLOAD') {\r\n delete _config.header['content-type']\r\n delete _config.header['Content-Type']\r\n let otherConfig = {\r\n // #ifdef MP-ALIPAY\r\n fileType: config.fileType,\r\n // #endif\r\n filePath: config.filePath,\r\n name: config.name\r\n }\r\n const optionalKeys = [\r\n // #ifdef APP-PLUS || H5\r\n 'files',\r\n // #endif\r\n // #ifdef H5\r\n 'file',\r\n // #endif\r\n // #ifdef H5 || APP-PLUS\r\n 'timeout',\r\n // #endif\r\n 'formData'\r\n ]\r\n requestTask = uni.uploadFile({..._config, ...otherConfig, ...mergeKeys(optionalKeys, config)})\r\n } else if (config.method === 'DOWNLOAD') {\r\n // #ifdef H5 || APP-PLUS\r\n if (!isUndefined(config['timeout'])) {\r\n _config['timeout'] = config['timeout']\r\n }\r\n // #endif\r\n requestTask = uni.downloadFile(_config)\r\n } else {\r\n const optionalKeys = [\r\n 'data',\r\n 'method',\r\n // #ifdef H5 || APP-PLUS || MP-ALIPAY || MP-WEIXIN\r\n 'timeout',\r\n // #endif\r\n 'dataType',\r\n // #ifndef MP-ALIPAY\r\n 'responseType',\r\n // #endif\r\n // #ifdef APP-PLUS\r\n 'sslVerify',\r\n // #endif\r\n // #ifdef H5\r\n 'withCredentials',\r\n // #endif\r\n // #ifdef APP-PLUS\r\n 'firstIpv4',\r\n // #endif\r\n ]\r\n requestTask = uni.request({..._config, ...mergeKeys(optionalKeys, config)})\r\n }\r\n if (config.getTask) {\r\n config.getTask(requestTask, config)\r\n }\r\n })\r\n}\r\n","import adapter from '../adapters/index'\r\n\r\n\r\nexport default (config) => {\r\n return adapter(config)\r\n}\r\n","'use strict'\r\n\r\n\r\nfunction InterceptorManager() {\r\n this.handlers = []\r\n}\r\n\r\n/**\r\n * Add a new interceptor to the stack\r\n *\r\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\r\n * @param {Function} rejected The function to handle `reject` for a `Promise`\r\n *\r\n * @return {Number} An ID used to remove interceptor later\r\n */\r\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\r\n this.handlers.push({\r\n fulfilled: fulfilled,\r\n rejected: rejected\r\n })\r\n return this.handlers.length - 1\r\n}\r\n\r\n/**\r\n * Remove an interceptor from the stack\r\n *\r\n * @param {Number} id The ID that was returned by `use`\r\n */\r\nInterceptorManager.prototype.eject = function eject(id) {\r\n if (this.handlers[id]) {\r\n this.handlers[id] = null\r\n }\r\n}\r\n\r\n/**\r\n * Iterate over all the registered interceptors\r\n *\r\n * This method is particularly useful for skipping over any\r\n * interceptors that may have become `null` calling `eject`.\r\n *\r\n * @param {Function} fn The function to call for each interceptor\r\n */\r\nInterceptorManager.prototype.forEach = function forEach(fn) {\r\n this.handlers.forEach(h => {\r\n if (h !== null) {\r\n fn(h)\r\n }\r\n })\r\n}\r\n\r\nexport default InterceptorManager\r\n","import {deepMerge, isUndefined} from '../utils'\r\n\r\n/**\r\n * 合并局部配置优先的配置,如果局部有该配置项则用局部,如果全局有该配置项则用全局\r\n * @param {Array} keys - 配置项\r\n * @param {Object} globalsConfig - 当前的全局配置\r\n * @param {Object} config2 - 局部配置\r\n * @return {{}}\r\n */\r\nconst mergeKeys = (keys, globalsConfig, config2) => {\r\n let config = {}\r\n keys.forEach(prop => {\r\n if (!isUndefined(config2[prop])) {\r\n config[prop] = config2[prop]\r\n } else if (!isUndefined(globalsConfig[prop])) {\r\n config[prop] = globalsConfig[prop]\r\n }\r\n })\r\n return config\r\n}\r\n/**\r\n *\r\n * @param globalsConfig - 当前实例的全局配置\r\n * @param config2 - 当前的局部配置\r\n * @return - 合并后的配置\r\n */\r\nexport default (globalsConfig, config2 = {}) => {\r\n const method = config2.method || globalsConfig.method || 'GET'\r\n let config = {\r\n baseURL: config2.baseURL || globalsConfig.baseURL || '',\r\n method: method,\r\n url: config2.url || '',\r\n params: config2.params || {},\r\n custom: {...(globalsConfig.custom || {}), ...(config2.custom || {})},\r\n header: deepMerge(globalsConfig.header || {}, config2.header || {})\r\n }\r\n const defaultToConfig2Keys = ['getTask', 'validateStatus', 'paramsSerializer']\r\n config = {...config, ...mergeKeys(defaultToConfig2Keys, globalsConfig, config2)}\r\n\r\n // eslint-disable-next-line no-empty\r\n if (method === 'DOWNLOAD') {\r\n // #ifdef H5 || APP-PLUS\r\n if (!isUndefined(config2.timeout)) {\r\n config['timeout'] = config2['timeout']\r\n } else if (!isUndefined(globalsConfig.timeout)) {\r\n config['timeout'] = globalsConfig['timeout']\r\n }\r\n // #endif\r\n } else if (method === 'UPLOAD') {\r\n delete config.header['content-type']\r\n delete config.header['Content-Type']\r\n const uploadKeys = [\r\n // #ifdef APP-PLUS || H5\r\n 'files',\r\n // #endif\r\n // #ifdef MP-ALIPAY\r\n 'fileType',\r\n // #endif\r\n // #ifdef H5\r\n 'file',\r\n // #endif\r\n 'filePath',\r\n 'name',\r\n // #ifdef H5 || APP-PLUS\r\n 'timeout',\r\n // #endif\r\n 'formData',\r\n ]\r\n uploadKeys.forEach(prop => {\r\n if (!isUndefined(config2[prop])) {\r\n config[prop] = config2[prop]\r\n }\r\n })\r\n // #ifdef H5 || APP-PLUS\r\n if (isUndefined(config.timeout) && !isUndefined(globalsConfig.timeout)) {\r\n config['timeout'] = globalsConfig['timeout']\r\n }\r\n // #endif\r\n } else {\r\n const defaultsKeys = [\r\n 'data',\r\n // #ifdef H5 || APP-PLUS || MP-ALIPAY || MP-WEIXIN\r\n 'timeout',\r\n // #endif\r\n 'dataType',\r\n // #ifndef MP-ALIPAY\r\n 'responseType',\r\n // #endif\r\n // #ifdef APP-PLUS\r\n 'sslVerify',\r\n // #endif\r\n // #ifdef H5\r\n 'withCredentials',\r\n // #endif\r\n // #ifdef APP-PLUS\r\n 'firstIpv4',\r\n // #endif\r\n ]\r\n config = {...config, ...mergeKeys(defaultsKeys, globalsConfig, config2)}\r\n }\r\n\r\n return config\r\n}\r\n","/**\r\n * 默认的全局配置\r\n */\r\n\r\n\r\nexport default {\r\n baseURL: '',\r\n header: {},\r\n method: 'GET',\r\n dataType: 'json',\r\n paramsSerializer: null,\r\n // #ifndef MP-ALIPAY\r\n responseType: 'text',\r\n // #endif\r\n custom: {},\r\n // #ifdef H5 || APP-PLUS || MP-ALIPAY || MP-WEIXIN\r\n timeout: 60000,\r\n // #endif\r\n // #ifdef APP-PLUS\r\n sslVerify: true,\r\n // #endif\r\n // #ifdef H5\r\n withCredentials: false,\r\n // #endif\r\n // #ifdef APP-PLUS\r\n firstIpv4: false,\r\n // #endif\r\n validateStatus: function validateStatus(status) {\r\n return status >= 200 && status < 300\r\n }\r\n}\r\n","/* eslint-disable */\r\nvar clone = (function() {\r\n 'use strict';\r\n\r\n function _instanceof(obj, type) {\r\n return type != null && obj instanceof type;\r\n }\r\n\r\n var nativeMap;\r\n try {\r\n nativeMap = Map;\r\n } catch(_) {\r\n // maybe a reference error because no `Map`. Give it a dummy value that no\r\n // value will ever be an instanceof.\r\n nativeMap = function() {};\r\n }\r\n\r\n var nativeSet;\r\n try {\r\n nativeSet = Set;\r\n } catch(_) {\r\n nativeSet = function() {};\r\n }\r\n\r\n var nativePromise;\r\n try {\r\n nativePromise = Promise;\r\n } catch(_) {\r\n nativePromise = function() {};\r\n }\r\n\r\n /**\r\n * Clones (copies) an Object using deep copying.\r\n *\r\n * This function supports circular references by default, but if you are certain\r\n * there are no circular references in your object, you can save some CPU time\r\n * by calling clone(obj, false).\r\n *\r\n * Caution: if `circular` is false and `parent` contains circular references,\r\n * your program may enter an infinite loop and crash.\r\n *\r\n * @param `parent` - the object to be cloned\r\n * @param `circular` - set to true if the object to be cloned may contain\r\n * circular references. (optional - true by default)\r\n * @param `depth` - set to a number if the object is only to be cloned to\r\n * a particular depth. (optional - defaults to Infinity)\r\n * @param `prototype` - sets the prototype to be used when cloning an object.\r\n * (optional - defaults to parent prototype).\r\n * @param `includeNonEnumerable` - set to true if the non-enumerable properties\r\n * should be cloned as well. Non-enumerable properties on the prototype\r\n * chain will be ignored. (optional - false by default)\r\n */\r\n function clone(parent, circular, depth, prototype, includeNonEnumerable) {\r\n if (typeof circular === 'object') {\r\n depth = circular.depth;\r\n prototype = circular.prototype;\r\n includeNonEnumerable = circular.includeNonEnumerable;\r\n circular = circular.circular;\r\n }\r\n // maintain two arrays for circular references, where corresponding parents\r\n // and children have the same index\r\n var allParents = [];\r\n var allChildren = [];\r\n\r\n var useBuffer = typeof Buffer != 'undefined';\r\n\r\n if (typeof circular == 'undefined')\r\n circular = true;\r\n\r\n if (typeof depth == 'undefined')\r\n depth = Infinity;\r\n\r\n // recurse this function so we don't reset allParents and allChildren\r\n function _clone(parent, depth) {\r\n // cloning null always returns null\r\n if (parent === null)\r\n return null;\r\n\r\n if (depth === 0)\r\n return parent;\r\n\r\n var child;\r\n var proto;\r\n if (typeof parent != 'object') {\r\n return parent;\r\n }\r\n\r\n if (_instanceof(parent, nativeMap)) {\r\n child = new nativeMap();\r\n } else if (_instanceof(parent, nativeSet)) {\r\n child = new nativeSet();\r\n } else if (_instanceof(parent, nativePromise)) {\r\n child = new nativePromise(function (resolve, reject) {\r\n parent.then(function(value) {\r\n resolve(_clone(value, depth - 1));\r\n }, function(err) {\r\n reject(_clone(err, depth - 1));\r\n });\r\n });\r\n } else if (clone.__isArray(parent)) {\r\n child = [];\r\n } else if (clone.__isRegExp(parent)) {\r\n child = new RegExp(parent.source, __getRegExpFlags(parent));\r\n if (parent.lastIndex) child.lastIndex = parent.lastIndex;\r\n } else if (clone.__isDate(parent)) {\r\n child = new Date(parent.getTime());\r\n } else if (useBuffer && Buffer.isBuffer(parent)) {\r\n if (Buffer.from) {\r\n // Node.js >= 5.10.0\r\n child = Buffer.from(parent);\r\n } else {\r\n // Older Node.js versions\r\n child = new Buffer(parent.length);\r\n parent.copy(child);\r\n }\r\n return child;\r\n } else if (_instanceof(parent, Error)) {\r\n child = Object.create(parent);\r\n } else {\r\n if (typeof prototype == 'undefined') {\r\n proto = Object.getPrototypeOf(parent);\r\n child = Object.create(proto);\r\n }\r\n else {\r\n child = Object.create(prototype);\r\n proto = prototype;\r\n }\r\n }\r\n\r\n if (circular) {\r\n var index = allParents.indexOf(parent);\r\n\r\n if (index != -1) {\r\n return allChildren[index];\r\n }\r\n allParents.push(parent);\r\n allChildren.push(child);\r\n }\r\n\r\n if (_instanceof(parent, nativeMap)) {\r\n parent.forEach(function(value, key) {\r\n var keyChild = _clone(key, depth - 1);\r\n var valueChild = _clone(value, depth - 1);\r\n child.set(keyChild, valueChild);\r\n });\r\n }\r\n if (_instanceof(parent, nativeSet)) {\r\n parent.forEach(function(value) {\r\n var entryChild = _clone(value, depth - 1);\r\n child.add(entryChild);\r\n });\r\n }\r\n\r\n for (var i in parent) {\r\n var attrs = Object.getOwnPropertyDescriptor(parent, i);\r\n if (attrs) {\r\n child[i] = _clone(parent[i], depth - 1);\r\n }\r\n\r\n try {\r\n var objProperty = Object.getOwnPropertyDescriptor(parent, i);\r\n if (objProperty.set === 'undefined') {\r\n // no setter defined. Skip cloning this property\r\n continue;\r\n }\r\n child[i] = _clone(parent[i], depth - 1);\r\n } catch(e){\r\n if (e instanceof TypeError) {\r\n // when in strict mode, TypeError will be thrown if child[i] property only has a getter\r\n // we can't do anything about this, other than inform the user that this property cannot be set.\r\n continue\r\n } else if (e instanceof ReferenceError) {\r\n //this may happen in non strict mode\r\n continue\r\n }\r\n }\r\n\r\n }\r\n\r\n if (Object.getOwnPropertySymbols) {\r\n var symbols = Object.getOwnPropertySymbols(parent);\r\n for (var i = 0; i < symbols.length; i++) {\r\n // Don't need to worry about cloning a symbol because it is a primitive,\r\n // like a number or string.\r\n var symbol = symbols[i];\r\n var descriptor = Object.getOwnPropertyDescriptor(parent, symbol);\r\n if (descriptor && !descriptor.enumerable && !includeNonEnumerable) {\r\n continue;\r\n }\r\n child[symbol] = _clone(parent[symbol], depth - 1);\r\n Object.defineProperty(child, symbol, descriptor);\r\n }\r\n }\r\n\r\n if (includeNonEnumerable) {\r\n var allPropertyNames = Object.getOwnPropertyNames(parent);\r\n for (var i = 0; i < allPropertyNames.length; i++) {\r\n var propertyName = allPropertyNames[i];\r\n var descriptor = Object.getOwnPropertyDescriptor(parent, propertyName);\r\n if (descriptor && descriptor.enumerable) {\r\n continue;\r\n }\r\n child[propertyName] = _clone(parent[propertyName], depth - 1);\r\n Object.defineProperty(child, propertyName, descriptor);\r\n }\r\n }\r\n\r\n return child;\r\n }\r\n\r\n return _clone(parent, depth);\r\n }\r\n\r\n /**\r\n * Simple flat clone using prototype, accepts only objects, usefull for property\r\n * override on FLAT configuration object (no nested props).\r\n *\r\n * USE WITH CAUTION! This may not behave as you wish if you do not know how this\r\n * works.\r\n */\r\n clone.clonePrototype = function clonePrototype(parent) {\r\n if (parent === null)\r\n return null;\r\n\r\n var c = function () {};\r\n c.prototype = parent;\r\n return new c();\r\n };\r\n\r\n// private utility functions\r\n\r\n function __objToStr(o) {\r\n return Object.prototype.toString.call(o);\r\n }\r\n clone.__objToStr = __objToStr;\r\n\r\n function __isDate(o) {\r\n return typeof o === 'object' && __objToStr(o) === '[object Date]';\r\n }\r\n clone.__isDate = __isDate;\r\n\r\n function __isArray(o) {\r\n return typeof o === 'object' && __objToStr(o) === '[object Array]';\r\n }\r\n clone.__isArray = __isArray;\r\n\r\n function __isRegExp(o) {\r\n return typeof o === 'object' && __objToStr(o) === '[object RegExp]';\r\n }\r\n clone.__isRegExp = __isRegExp;\r\n\r\n function __getRegExpFlags(re) {\r\n var flags = '';\r\n if (re.global) flags += 'g';\r\n if (re.ignoreCase) flags += 'i';\r\n if (re.multiline) flags += 'm';\r\n return flags;\r\n }\r\n clone.__getRegExpFlags = __getRegExpFlags;\r\n\r\n return clone;\r\n})();\r\n\r\nexport default clone\r\n","/**\r\n * @Class Request\r\n * @description luch-request http请求插件\r\n * @Author lu-ch\r\n * @Email webwork.s@qq.com\r\n * 文档: https://www.quanzhan.co/luch-request/\r\n * github: https://github.com/lei-mu/luch-request\r\n * DCloud: http://ext.dcloud.net.cn/plugin?id=392\r\n */\r\n\r\n\r\nimport dispatchRequest from './dispatchRequest'\r\nimport InterceptorManager from './InterceptorManager'\r\nimport mergeConfig from './mergeConfig'\r\nimport defaults from './defaults'\r\nimport { isPlainObject } from '../utils'\r\nimport clone from '../utils/clone'\r\n\r\nexport default class Request {\r\n /**\r\n * @param {Object} arg - 全局配置\r\n * @param {String} arg.baseURL - 全局根路径\r\n * @param {Object} arg.header - 全局header\r\n * @param {String} arg.method = [GET|POST|PUT|DELETE|CONNECT|HEAD|OPTIONS|TRACE] - 全局默认请求方式\r\n * @param {String} arg.dataType = [json] - 全局默认的dataType\r\n * @param {String} arg.responseType = [text|arraybuffer] - 全局默认的responseType。支付宝小程序不支持\r\n * @param {Object} arg.custom - 全局默认的自定义参数\r\n * @param {Number} arg.timeout - 全局默认的超时时间,单位 ms。默认60000。H5(HBuilderX 2.9.9+)、APP(HBuilderX 2.9.9+)、微信小程序2.10.0)、支付宝小程序\r\n * @param {Boolean} arg.sslVerify - 全局默认的是否验证 ssl 证书。默认true.仅App安卓端支持HBuilderX 2.3.3+\r\n * @param {Boolean} arg.withCredentials - 全局默认的跨域请求时是否携带凭证cookies。默认false。仅H5支持HBuilderX 2.6.15+\r\n * @param {Boolean} arg.firstIpv4 - 全DNS解析时优先使用ipv4。默认false。仅 App-Android 支持 (HBuilderX 2.8.0+)\r\n * @param {Function(statusCode):Boolean} arg.validateStatus - 全局默认的自定义验证器。默认statusCode >= 200 && statusCode < 300\r\n */\r\n constructor(arg = {}) {\r\n if (!isPlainObject(arg)) {\r\n arg = {}\r\n console.warn('设置全局参数必须接收一个Object')\r\n }\r\n this.config = clone({...defaults, ...arg})\r\n this.interceptors = {\r\n request: new InterceptorManager(),\r\n response: new InterceptorManager()\r\n }\r\n }\r\n\r\n /**\r\n * @Function\r\n * @param {Request~setConfigCallback} f - 设置全局默认配置\r\n */\r\n setConfig(f) {\r\n this.config = f(this.config)\r\n }\r\n\r\n middleware(config) {\r\n config = mergeConfig(this.config, config)\r\n let chain = [dispatchRequest, undefined]\r\n let promise = Promise.resolve(config)\r\n\r\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\r\n chain.unshift(interceptor.fulfilled, interceptor.rejected)\r\n })\r\n\r\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\r\n chain.push(interceptor.fulfilled, interceptor.rejected)\r\n })\r\n\r\n while (chain.length) {\r\n promise = promise.then(chain.shift(), chain.shift())\r\n }\r\n\r\n return promise\r\n }\r\n\r\n /**\r\n * @Function\r\n * @param {Object} config - 请求配置项\r\n * @prop {String} options.url - 请求路径\r\n * @prop {Object} options.data - 请求参数\r\n * @prop {Object} [options.responseType = config.responseType] [text|arraybuffer] - 响应的数据类型\r\n * @prop {Object} [options.dataType = config.dataType] - 如果设为 json会尝试对返回的数据做一次 JSON.parse\r\n * @prop {Object} [options.header = config.header] - 请求header\r\n * @prop {Object} [options.method = config.method] - 请求方法\r\n * @returns {Promise<unknown>}\r\n */\r\n request(config = {}) {\r\n return this.middleware(config)\r\n }\r\n\r\n get(url, options = {}) {\r\n return this.middleware({\r\n url,\r\n method: 'GET',\r\n ...options\r\n })\r\n }\r\n\r\n post(url, data, options = {}) {\r\n return this.middleware({\r\n url,\r\n data,\r\n method: 'POST',\r\n ...options\r\n })\r\n }\r\n\r\n // #ifndef MP-ALIPAY || MP-KUAISHOU || MP-JD\r\n put(url, data, options = {}) {\r\n return this.middleware({\r\n url,\r\n data,\r\n method: 'PUT',\r\n ...options\r\n })\r\n }\r\n\r\n // #endif\r\n\r\n // #ifdef APP-PLUS || H5 || MP-WEIXIN || MP-BAIDU\r\n delete(url, data, options = {}) {\r\n return this.middleware({\r\n url,\r\n data,\r\n method: 'DELETE',\r\n ...options\r\n })\r\n }\r\n\r\n // #endif\r\n\r\n // #ifdef H5 || MP-WEIXIN\r\n connect(url, data, options = {}) {\r\n return this.middleware({\r\n url,\r\n data,\r\n method: 'CONNECT',\r\n ...options\r\n })\r\n }\r\n\r\n // #endif\r\n\r\n // #ifdef H5 || MP-WEIXIN || MP-BAIDU\r\n head(url, data, options = {}) {\r\n return this.middleware({\r\n url,\r\n data,\r\n method: 'HEAD',\r\n ...options\r\n })\r\n }\r\n\r\n // #endif\r\n\r\n // #ifdef APP-PLUS || H5 || MP-WEIXIN || MP-BAIDU\r\n options(url, data, options = {}) {\r\n return this.middleware({\r\n url,\r\n data,\r\n method: 'OPTIONS',\r\n ...options\r\n })\r\n }\r\n\r\n // #endif\r\n\r\n // #ifdef H5 || MP-WEIXIN\r\n trace(url, data, options = {}) {\r\n return this.middleware({\r\n url,\r\n data,\r\n method: 'TRACE',\r\n ...options\r\n })\r\n }\r\n\r\n // #endif\r\n\r\n upload(url, config = {}) {\r\n config.url = url\r\n config.method = 'UPLOAD'\r\n return this.middleware(config)\r\n }\r\n\r\n download(url, config = {}) {\r\n config.url = url\r\n config.method = 'DOWNLOAD'\r\n return this.middleware(config)\r\n }\r\n}\r\n\r\n\r\n/**\r\n * setConfig回调\r\n * @return {Object} - 返回操作后的config\r\n * @callback Request~setConfigCallback\r\n * @param {Object} config - 全局默认config\r\n */\r\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nexport default freeGlobal;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nexport default root;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nexport default Symbol;\n","import Symbol from './_Symbol.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nexport default getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nexport default objectToString;\n","import Symbol from './_Symbol.js';\nimport getRawTag from './_getRawTag.js';\nimport objectToString from './_objectToString.js';\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nexport default baseGetTag;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nexport default isObjectLike;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nexport default isSymbol;\n","import isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/**\n * The base implementation of `_.toNumber` which doesn't ensure correct\n * conversions of binary, hexadecimal, or octal string values.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n */\nfunction baseToNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n return +value;\n}\n\nexport default baseToNumber;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nexport default arrayMap;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nexport default isArray;\n","import Symbol from './_Symbol.js';\nimport arrayMap from './_arrayMap.js';\nimport isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default baseToString;\n","import baseToNumber from './_baseToNumber.js';\nimport baseToString from './_baseToString.js';\n\n/**\n * Creates a function that performs a mathematical operation on two values.\n *\n * @private\n * @param {Function} operator The function to perform the operation.\n * @param {number} [defaultValue] The value used for `undefined` arguments.\n * @returns {Function} Returns the new mathematical operation function.\n */\nfunction createMathOperation(operator, defaultValue) {\n return function(value, other) {\n var result;\n if (value === undefined && other === undefined) {\n return defaultValue;\n }\n if (value !== undefined) {\n result = value;\n }\n if (other !== undefined) {\n if (result === undefined) {\n return other;\n }\n if (typeof value == 'string' || typeof other == 'string') {\n value = baseToString(value);\n other = baseToString(other);\n } else {\n value = baseToNumber(value);\n other = baseToNumber(other);\n }\n result = operator(value, other);\n }\n return result;\n };\n}\n\nexport default createMathOperation;\n","import createMathOperation from './_createMathOperation.js';\n\n/**\n * Adds two numbers.\n *\n * @static\n * @memberOf _\n * @since 3.4.0\n * @category Math\n * @param {number} augend The first number in an addition.\n * @param {number} addend The second number in an addition.\n * @returns {number} Returns the total.\n * @example\n *\n * _.add(6, 4);\n * // => 10\n */\nvar add = createMathOperation(function(augend, addend) {\n return augend + addend;\n}, 0);\n\nexport default add;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nexport default trimmedEndIndex;\n","import trimmedEndIndex from './_trimmedEndIndex.js';\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nexport default baseTrim;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nexport default isObject;\n","import baseTrim from './_baseTrim.js';\nimport isObject from './isObject.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nexport default toNumber;\n","import toNumber from './toNumber.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308;\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\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 var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\nexport default toFinite;\n","import toFinite from './toFinite.js';\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\nexport default toInteger;\n","import toInteger from './toInteger.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * The opposite of `_.before`; this method creates a function that invokes\n * `func` once it's called `n` or more times.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {number} n The number of calls before `func` is invoked.\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * var saves = ['profile', 'settings'];\n *\n * var done = _.after(saves.length, function() {\n * console.log('done saving!');\n * });\n *\n * _.forEach(saves, function(type) {\n * asyncSave({ 'type': type, 'complete': done });\n * });\n * // => Logs 'done saving!' after the two async saves have completed.\n */\nfunction after(n, func) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n n = toInteger(n);\n return function() {\n if (--n < 1) {\n return func.apply(this, arguments);\n }\n };\n}\n\nexport default after;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nexport default identity;\n","import baseGetTag from './_baseGetTag.js';\nimport isObject from './isObject.js';\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nexport default isFunction;\n","import root from './_root.js';\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nexport default coreJsData;\n","import coreJsData from './_coreJsData.js';\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nexport default isMasked;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nexport default toSource;\n","import isFunction from './isFunction.js';\nimport isMasked from './_isMasked.js';\nimport isObject from './isObject.js';\nimport toSource from './_toSource.js';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nexport default baseIsNative;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nexport default getValue;\n","import baseIsNative from './_baseIsNative.js';\nimport getValue from './_getValue.js';\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nexport default getNative;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nexport default WeakMap;\n","import WeakMap from './_WeakMap.js';\n\n/** Used to store function metadata. */\nvar metaMap = WeakMap && new WeakMap;\n\nexport default metaMap;\n","import identity from './identity.js';\nimport metaMap from './_metaMap.js';\n\n/**\n * The base implementation of `setData` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to associate metadata with.\n * @param {*} data The metadata.\n * @returns {Function} Returns `func`.\n */\nvar baseSetData = !metaMap ? identity : function(func, data) {\n metaMap.set(func, data);\n return func;\n};\n\nexport default baseSetData;\n","import isObject from './isObject.js';\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\nexport default baseCreate;\n","import baseCreate from './_baseCreate.js';\nimport isObject from './isObject.js';\n\n/**\n * Creates a function that produces an instance of `Ctor` regardless of\n * whether it was invoked as part of a `new` expression or by `call` or `apply`.\n *\n * @private\n * @param {Function} Ctor The constructor to wrap.\n * @returns {Function} Returns the new wrapped function.\n */\nfunction createCtor(Ctor) {\n return function() {\n // Use a `switch` statement to work with class constructors. See\n // http://ecma-international.org/ecma-262/7.0/#sec-ecmascript-function-objects-call-thisargument-argumentslist\n // for more details.\n var args = arguments;\n switch (args.length) {\n case 0: return new Ctor;\n case 1: return new Ctor(args[0]);\n case 2: return new Ctor(args[0], args[1]);\n case 3: return new Ctor(args[0], args[1], args[2]);\n case 4: return new Ctor(args[0], args[1], args[2], args[3]);\n case 5: return new Ctor(args[0], args[1], args[2], args[3], args[4]);\n case 6: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5]);\n case 7: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5], args[6]);\n }\n var thisBinding = baseCreate(Ctor.prototype),\n result = Ctor.apply(thisBinding, args);\n\n // Mimic the constructor's `return` behavior.\n // See https://es5.github.io/#x13.2.2 for more details.\n return isObject(result) ? result : thisBinding;\n };\n}\n\nexport default createCtor;\n","import createCtor from './_createCtor.js';\nimport root from './_root.js';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1;\n\n/**\n * Creates a function that wraps `func` to invoke it with the optional `this`\n * binding of `thisArg`.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\nfunction createBind(func, bitmask, thisArg) {\n var isBind = bitmask & WRAP_BIND_FLAG,\n Ctor = createCtor(func);\n\n function wrapper() {\n var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n return fn.apply(isBind ? thisArg : this, arguments);\n }\n return wrapper;\n}\n\nexport default createBind;\n","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nexport default apply;\n","/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * Creates an array that is the composition of partially applied arguments,\n * placeholders, and provided arguments into a single array of arguments.\n *\n * @private\n * @param {Array} args The provided arguments.\n * @param {Array} partials The arguments to prepend to those provided.\n * @param {Array} holders The `partials` placeholder indexes.\n * @params {boolean} [isCurried] Specify composing for a curried function.\n * @returns {Array} Returns the new array of composed arguments.\n */\nfunction composeArgs(args, partials, holders, isCurried) {\n var argsIndex = -1,\n argsLength = args.length,\n holdersLength = holders.length,\n leftIndex = -1,\n leftLength = partials.length,\n rangeLength = nativeMax(argsLength - holdersLength, 0),\n result = Array(leftLength + rangeLength),\n isUncurried = !isCurried;\n\n while (++leftIndex < leftLength) {\n result[leftIndex] = partials[leftIndex];\n }\n while (++argsIndex < holdersLength) {\n if (isUncurried || argsIndex < argsLength) {\n result[holders[argsIndex]] = args[argsIndex];\n }\n }\n while (rangeLength--) {\n result[leftIndex++] = args[argsIndex++];\n }\n return result;\n}\n\nexport default composeArgs;\n","/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * This function is like `composeArgs` except that the arguments composition\n * is tailored for `_.partialRight`.\n *\n * @private\n * @param {Array} args The provided arguments.\n * @param {Array} partials The arguments to append to those provided.\n * @param {Array} holders The `partials` placeholder indexes.\n * @params {boolean} [isCurried] Specify composing for a curried function.\n * @returns {Array} Returns the new array of composed arguments.\n */\nfunction composeArgsRight(args, partials, holders, isCurried) {\n var argsIndex = -1,\n argsLength = args.length,\n holdersIndex = -1,\n holdersLength = holders.length,\n rightIndex = -1,\n rightLength = partials.length,\n rangeLength = nativeMax(argsLength - holdersLength, 0),\n result = Array(rangeLength + rightLength),\n isUncurried = !isCurried;\n\n while (++argsIndex < rangeLength) {\n result[argsIndex] = args[argsIndex];\n }\n var offset = argsIndex;\n while (++rightIndex < rightLength) {\n result[offset + rightIndex] = partials[rightIndex];\n }\n while (++holdersIndex < holdersLength) {\n if (isUncurried || argsIndex < argsLength) {\n result[offset + holders[holdersIndex]] = args[argsIndex++];\n }\n }\n return result;\n}\n\nexport default composeArgsRight;\n","/**\n * Gets the number of `placeholder` occurrences in `array`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} placeholder The placeholder to search for.\n * @returns {number} Returns the placeholder count.\n */\nfunction countHolders(array, placeholder) {\n var length = array.length,\n result = 0;\n\n while (length--) {\n if (array[length] === placeholder) {\n ++result;\n }\n }\n return result;\n}\n\nexport default countHolders;\n","/**\n * The function whose prototype chain sequence wrappers inherit from.\n *\n * @private\n */\nfunction baseLodash() {\n // No operation performed.\n}\n\nexport default baseLodash;\n","import baseCreate from './_baseCreate.js';\nimport baseLodash from './_baseLodash.js';\n\n/** Used as references for the maximum length and index of an array. */\nvar MAX_ARRAY_LENGTH = 4294967295;\n\n/**\n * Creates a lazy wrapper object which wraps `value` to enable lazy evaluation.\n *\n * @private\n * @constructor\n * @param {*} value The value to wrap.\n */\nfunction LazyWrapper(value) {\n this.__wrapped__ = value;\n this.__actions__ = [];\n this.__dir__ = 1;\n this.__filtered__ = false;\n this.__iteratees__ = [];\n this.__takeCount__ = MAX_ARRAY_LENGTH;\n this.__views__ = [];\n}\n\n// Ensure `LazyWrapper` is an instance of `baseLodash`.\nLazyWrapper.prototype = baseCreate(baseLodash.prototype);\nLazyWrapper.prototype.constructor = LazyWrapper;\n\nexport default LazyWrapper;\n","/**\n * This method returns `undefined`.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Util\n * @example\n *\n * _.times(2, _.noop);\n * // => [undefined, undefined]\n */\nfunction noop() {\n // No operation performed.\n}\n\nexport default noop;\n","import metaMap from './_metaMap.js';\nimport noop from './noop.js';\n\n/**\n * Gets metadata for `func`.\n *\n * @private\n * @param {Function} func The function to query.\n * @returns {*} Returns the metadata for `func`.\n */\nvar getData = !metaMap ? noop : function(func) {\n return metaMap.get(func);\n};\n\nexport default getData;\n","/** Used to lookup unminified function names. */\nvar realNames = {};\n\nexport default realNames;\n","import realNames from './_realNames.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the name of `func`.\n *\n * @private\n * @param {Function} func The function to query.\n * @returns {string} Returns the function name.\n */\nfunction getFuncName(func) {\n var result = (func.name + ''),\n array = realNames[result],\n length = hasOwnProperty.call(realNames, result) ? array.length : 0;\n\n while (length--) {\n var data = array[length],\n otherFunc = data.func;\n if (otherFunc == null || otherFunc == func) {\n return data.name;\n }\n }\n return result;\n}\n\nexport default getFuncName;\n","import baseCreate from './_baseCreate.js';\nimport baseLodash from './_baseLodash.js';\n\n/**\n * The base constructor for creating `lodash` wrapper objects.\n *\n * @private\n * @param {*} value The value to wrap.\n * @param {boolean} [chainAll] Enable explicit method chain sequences.\n */\nfunction LodashWrapper(value, chainAll) {\n this.__wrapped__ = value;\n this.__actions__ = [];\n this.__chain__ = !!chainAll;\n this.__index__ = 0;\n this.__values__ = undefined;\n}\n\nLodashWrapper.prototype = baseCreate(baseLodash.prototype);\nLodashWrapper.prototype.constructor = LodashWrapper;\n\nexport default LodashWrapper;\n","/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nexport default copyArray;\n","import LazyWrapper from './_LazyWrapper.js';\nimport LodashWrapper from './_LodashWrapper.js';\nimport copyArray from './_copyArray.js';\n\n/**\n * Creates a clone of `wrapper`.\n *\n * @private\n * @param {Object} wrapper The wrapper to clone.\n * @returns {Object} Returns the cloned wrapper.\n */\nfunction wrapperClone(wrapper) {\n if (wrapper instanceof LazyWrapper) {\n return wrapper.clone();\n }\n var result = new LodashWrapper(wrapper.__wrapped__, wrapper.__chain__);\n result.__actions__ = copyArray(wrapper.__actions__);\n result.__index__ = wrapper.__index__;\n result.__values__ = wrapper.__values__;\n return result;\n}\n\nexport default wrapperClone;\n","import LazyWrapper from './_LazyWrapper.js';\nimport LodashWrapper from './_LodashWrapper.js';\nimport baseLodash from './_baseLodash.js';\nimport isArray from './isArray.js';\nimport isObjectLike from './isObjectLike.js';\nimport wrapperClone from './_wrapperClone.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates a `lodash` object which wraps `value` to enable implicit method\n * chain sequences. Methods that operate on and return arrays, collections,\n * and functions can be chained together. Methods that retrieve a single value\n * or may return a primitive value will automatically end the chain sequence\n * and return the unwrapped value. Otherwise, the value must be unwrapped\n * with `_#value`.\n *\n * Explicit chain sequences, which must be unwrapped with `_#value`, may be\n * enabled using `_.chain`.\n *\n * The execution of chained methods is lazy, that is, it's deferred until\n * `_#value` is implicitly or explicitly called.\n *\n * Lazy evaluation allows several methods to support shortcut fusion.\n * Shortcut fusion is an optimization to merge iteratee calls; this avoids\n * the creation of intermediate arrays and can greatly reduce the number of\n * iteratee executions. Sections of a chain sequence qualify for shortcut\n * fusion if the section is applied to an array and iteratees accept only\n * one argument. The heuristic for whether a section qualifies for shortcut\n * fusion is subject to change.\n *\n * Chaining is supported in custom builds as long as the `_#value` method is\n * directly or indirectly included in the build.\n *\n * In addition to lodash methods, wrappers have `Array` and `String` methods.\n *\n * The wrapper `Array` methods are:\n * `concat`, `join`, `pop`, `push`, `shift`, `sort`, `splice`, and `unshift`\n *\n * The wrapper `String` methods are:\n * `replace` and `split`\n *\n * The wrapper methods that support shortcut fusion are:\n * `at`, `compact`, `drop`, `dropRight`, `dropWhile`, `filter`, `find`,\n * `findLast`, `head`, `initial`, `last`, `map`, `reject`, `reverse`, `slice`,\n * `tail`, `take`, `takeRight`, `takeRightWhile`, `takeWhile`, and `toArray`\n *\n * The chainable wrapper methods are:\n * `after`, `ary`, `assign`, `assignIn`, `assignInWith`, `assignWith`, `at`,\n * `before`, `bind`, `bindAll`, `bindKey`, `castArray`, `chain`, `chunk`,\n * `commit`, `compact`, `concat`, `conforms`, `constant`, `countBy`, `create`,\n * `curry`, `debounce`, `defaults`, `defaultsDeep`, `defer`, `delay`,\n * `difference`, `differenceBy`, `differenceWith`, `drop`, `dropRight`,\n * `dropRightWhile`, `dropWhile`, `extend`, `extendWith`, `fill`, `filter`,\n * `flatMap`, `flatMapDeep`, `flatMapDepth`, `flatten`, `flattenDeep`,\n * `flattenDepth`, `flip`, `flow`, `flowRight`, `fromPairs`, `functions`,\n * `functionsIn`, `groupBy`, `initial`, `intersection`, `intersectionBy`,\n * `intersectionWith`, `invert`, `invertBy`, `invokeMap`, `iteratee`, `keyBy`,\n * `keys`, `keysIn`, `map`, `mapKeys`, `mapValues`, `matches`, `matchesProperty`,\n * `memoize`, `merge`, `mergeWith`, `method`, `methodOf`, `mixin`, `negate`,\n * `nthArg`, `omit`, `omitBy`, `once`, `orderBy`, `over`, `overArgs`,\n * `overEvery`, `overSome`, `partial`, `partialRight`, `partition`, `pick`,\n * `pickBy`, `plant`, `property`, `propertyOf`, `pull`, `pullAll`, `pullAllBy`,\n * `pullAllWith`, `pullAt`, `push`, `range`, `rangeRight`, `rearg`, `reject`,\n * `remove`, `rest`, `reverse`, `sampleSize`, `set`, `setWith`, `shuffle`,\n * `slice`, `sort`, `sortBy`, `splice`, `spread`, `tail`, `take`, `takeRight`,\n * `takeRightWhile`, `takeWhile`, `tap`, `throttle`, `thru`, `toArray`,\n * `toPairs`, `toPairsIn`, `toPath`, `toPlainObject`, `transform`, `unary`,\n * `union`, `unionBy`, `unionWith`, `uniq`, `uniqBy`, `uniqWith`, `unset`,\n * `unshift`, `unzip`, `unzipWith`, `update`, `updateWith`, `values`,\n * `valuesIn`, `without`, `wrap`, `xor`, `xorBy`, `xorWith`, `zip`,\n * `zipObject`, `zipObjectDeep`, and `zipWith`\n *\n * The wrapper methods that are **not** chainable by default are:\n * `add`, `attempt`, `camelCase`, `capitalize`, `ceil`, `clamp`, `clone`,\n * `cloneDeep`, `cloneDeepWith`, `cloneWith`, `conformsTo`, `deburr`,\n * `defaultTo`, `divide`, `each`, `eachRight`, `endsWith`, `eq`, `escape`,\n * `escapeRegExp`, `every`, `find`, `findIndex`, `findKey`, `findLast`,\n * `findLastIndex`, `findLastKey`, `first`, `floor`, `forEach`, `forEachRight`,\n * `forIn`, `forInRight`, `forOwn`, `forOwnRight`, `get`, `gt`, `gte`, `has`,\n * `hasIn`, `head`, `identity`, `includes`, `indexOf`, `inRange`, `invoke`,\n * `isArguments`, `isArray`, `isArrayBuffer`, `isArrayLike`, `isArrayLikeObject`,\n * `isBoolean`, `isBuffer`, `isDate`, `isElement`, `isEmpty`, `isEqual`,\n * `isEqualWith`, `isError`, `isFinite`, `isFunction`, `isInteger`, `isLength`,\n * `isMap`, `isMatch`, `isMatchWith`, `isNaN`, `isNative`, `isNil`, `isNull`,\n * `isNumber`, `isObject`, `isObjectLike`, `isPlainObject`, `isRegExp`,\n * `isSafeInteger`, `isSet`, `isString`, `isUndefined`, `isTypedArray`,\n * `isWeakMap`, `isWeakSet`, `join`, `kebabCase`, `last`, `lastIndexOf`,\n * `lowerCase`, `lowerFirst`, `lt`, `lte`, `max`, `maxBy`, `mean`, `meanBy`,\n * `min`, `minBy`, `multiply`, `noConflict`, `noop`, `now`, `nth`, `pad`,\n * `padEnd`, `padStart`, `parseInt`, `pop`, `random`, `reduce`, `reduceRight`,\n * `repeat`, `result`, `round`, `runInContext`, `sample`, `shift`, `size`,\n * `snakeCase`, `some`, `sortedIndex`, `sortedIndexBy`, `sortedLastIndex`,\n * `sortedLastIndexBy`, `startCase`, `startsWith`, `stubArray`, `stubFalse`,\n * `stubObject`, `stubString`, `stubTrue`, `subtract`, `sum`, `sumBy`,\n * `template`, `times`, `toFinite`, `toInteger`, `toJSON`, `toLength`,\n * `toLower`, `toNumber`, `toSafeInteger`, `toString`, `toUpper`, `trim`,\n * `trimEnd`, `trimStart`, `truncate`, `unescape`, `uniqueId`, `upperCase`,\n * `upperFirst`, `value`, and `words`\n *\n * @name _\n * @constructor\n * @category Seq\n * @param {*} value The value to wrap in a `lodash` instance.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var wrapped = _([1, 2, 3]);\n *\n * // Returns an unwrapped value.\n * wrapped.reduce(_.add);\n * // => 6\n *\n * // Returns a wrapped value.\n * var squares = wrapped.map(square);\n *\n * _.isArray(squares);\n * // => false\n *\n * _.isArray(squares.value());\n * // => true\n */\nfunction lodash(value) {\n if (isObjectLike(value) && !isArray(value) && !(value instanceof LazyWrapper)) {\n if (value instanceof LodashWrapper) {\n return value;\n }\n if (hasOwnProperty.call(value, '__wrapped__')) {\n return wrapperClone(value);\n }\n }\n return new LodashWrapper(value);\n}\n\n// Ensure wrappers are instances of `baseLodash`.\nlodash.prototype = baseLodash.prototype;\nlodash.prototype.constructor = lodash;\n\nexport default lodash;\n","import LazyWrapper from './_LazyWrapper.js';\nimport getData from './_getData.js';\nimport getFuncName from './_getFuncName.js';\nimport lodash from './wrapperLodash.js';\n\n/**\n * Checks if `func` has a lazy counterpart.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` has a lazy counterpart,\n * else `false`.\n */\nfunction isLaziable(func) {\n var funcName = getFuncName(func),\n other = lodash[funcName];\n\n if (typeof other != 'function' || !(funcName in LazyWrapper.prototype)) {\n return false;\n }\n if (func === other) {\n return true;\n }\n var data = getData(other);\n return !!data && func === data[0];\n}\n\nexport default isLaziable;\n","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nexport default shortOut;\n","import baseSetData from './_baseSetData.js';\nimport shortOut from './_shortOut.js';\n\n/**\n * Sets metadata for `func`.\n *\n * **Note:** If this function becomes hot, i.e. is invoked a lot in a short\n * period of time, it will trip its breaker and transition to an identity\n * function to avoid garbage collection pauses in V8. See\n * [V8 issue 2070](https://bugs.chromium.org/p/v8/issues/detail?id=2070)\n * for more details.\n *\n * @private\n * @param {Function} func The function to associate metadata with.\n * @param {*} data The metadata.\n * @returns {Function} Returns `func`.\n */\nvar setData = shortOut(baseSetData);\n\nexport default setData;\n","/** Used to match wrap detail comments. */\nvar reWrapDetails = /\\{\\n\\/\\* \\[wrapped with (.+)\\] \\*/,\n reSplitDetails = /,? & /;\n\n/**\n * Extracts wrapper details from the `source` body comment.\n *\n * @private\n * @param {string} source The source to inspect.\n * @returns {Array} Returns the wrapper details.\n */\nfunction getWrapDetails(source) {\n var match = source.match(reWrapDetails);\n return match ? match[1].split(reSplitDetails) : [];\n}\n\nexport default getWrapDetails;\n","/** Used to match wrap detail comments. */\nvar reWrapComment = /\\{(?:\\n\\/\\* \\[wrapped with .+\\] \\*\\/)?\\n?/;\n\n/**\n * Inserts wrapper `details` in a comment at the top of the `source` body.\n *\n * @private\n * @param {string} source The source to modify.\n * @returns {Array} details The details to insert.\n * @returns {string} Returns the modified source.\n */\nfunction insertWrapDetails(source, details) {\n var length = details.length;\n if (!length) {\n return source;\n }\n var lastIndex = length - 1;\n details[lastIndex] = (length > 1 ? '& ' : '') + details[lastIndex];\n details = details.join(length > 2 ? ', ' : ' ');\n return source.replace(reWrapComment, '{\\n/* [wrapped with ' + details + '] */\\n');\n}\n\nexport default insertWrapDetails;\n","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nexport default constant;\n","import getNative from './_getNative.js';\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nexport default defineProperty;\n","import constant from './constant.js';\nimport defineProperty from './_defineProperty.js';\nimport identity from './identity.js';\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nexport default baseSetToString;\n","import baseSetToString from './_baseSetToString.js';\nimport shortOut from './_shortOut.js';\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nexport default setToString;\n","/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\nexport default arrayEach;\n","/**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n}\n\nexport default baseFindIndex;\n","/**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\nfunction baseIsNaN(value) {\n return value !== value;\n}\n\nexport default baseIsNaN;\n","/**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction strictIndexOf(array, value, fromIndex) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n}\n\nexport default strictIndexOf;\n","import baseFindIndex from './_baseFindIndex.js';\nimport baseIsNaN from './_baseIsNaN.js';\nimport strictIndexOf from './_strictIndexOf.js';\n\n/**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseIndexOf(array, value, fromIndex) {\n return value === value\n ? strictIndexOf(array, value, fromIndex)\n : baseFindIndex(array, baseIsNaN, fromIndex);\n}\n\nexport default baseIndexOf;\n","import baseIndexOf from './_baseIndexOf.js';\n\n/**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludes(array, value) {\n var length = array == null ? 0 : array.length;\n return !!length && baseIndexOf(array, value, 0) > -1;\n}\n\nexport default arrayIncludes;\n","import arrayEach from './_arrayEach.js';\nimport arrayIncludes from './_arrayIncludes.js';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1,\n WRAP_BIND_KEY_FLAG = 2,\n WRAP_CURRY_FLAG = 8,\n WRAP_CURRY_RIGHT_FLAG = 16,\n WRAP_PARTIAL_FLAG = 32,\n WRAP_PARTIAL_RIGHT_FLAG = 64,\n WRAP_ARY_FLAG = 128,\n WRAP_REARG_FLAG = 256,\n WRAP_FLIP_FLAG = 512;\n\n/** Used to associate wrap methods with their bit flags. */\nvar wrapFlags = [\n ['ary', WRAP_ARY_FLAG],\n ['bind', WRAP_BIND_FLAG],\n ['bindKey', WRAP_BIND_KEY_FLAG],\n ['curry', WRAP_CURRY_FLAG],\n ['curryRight', WRAP_CURRY_RIGHT_FLAG],\n ['flip', WRAP_FLIP_FLAG],\n ['partial', WRAP_PARTIAL_FLAG],\n ['partialRight', WRAP_PARTIAL_RIGHT_FLAG],\n ['rearg', WRAP_REARG_FLAG]\n];\n\n/**\n * Updates wrapper `details` based on `bitmask` flags.\n *\n * @private\n * @returns {Array} details The details to modify.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @returns {Array} Returns `details`.\n */\nfunction updateWrapDetails(details, bitmask) {\n arrayEach(wrapFlags, function(pair) {\n var value = '_.' + pair[0];\n if ((bitmask & pair[1]) && !arrayIncludes(details, value)) {\n details.push(value);\n }\n });\n return details.sort();\n}\n\nexport default updateWrapDetails;\n","import getWrapDetails from './_getWrapDetails.js';\nimport insertWrapDetails from './_insertWrapDetails.js';\nimport setToString from './_setToString.js';\nimport updateWrapDetails from './_updateWrapDetails.js';\n\n/**\n * Sets the `toString` method of `wrapper` to mimic the source of `reference`\n * with wrapper details in a comment at the top of the source body.\n *\n * @private\n * @param {Function} wrapper The function to modify.\n * @param {Function} reference The reference function.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @returns {Function} Returns `wrapper`.\n */\nfunction setWrapToString(wrapper, reference, bitmask) {\n var source = (reference + '');\n return setToString(wrapper, insertWrapDetails(source, updateWrapDetails(getWrapDetails(source), bitmask)));\n}\n\nexport default setWrapToString;\n","import isLaziable from './_isLaziable.js';\nimport setData from './_setData.js';\nimport setWrapToString from './_setWrapToString.js';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1,\n WRAP_BIND_KEY_FLAG = 2,\n WRAP_CURRY_BOUND_FLAG = 4,\n WRAP_CURRY_FLAG = 8,\n WRAP_PARTIAL_FLAG = 32,\n WRAP_PARTIAL_RIGHT_FLAG = 64;\n\n/**\n * Creates a function that wraps `func` to continue currying.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {Function} wrapFunc The function to create the `func` wrapper.\n * @param {*} placeholder The placeholder value.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to prepend to those provided to\n * the new function.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\nfunction createRecurry(func, bitmask, wrapFunc, placeholder, thisArg, partials, holders, argPos, ary, arity) {\n var isCurry = bitmask & WRAP_CURRY_FLAG,\n newHolders = isCurry ? holders : undefined,\n newHoldersRight = isCurry ? undefined : holders,\n newPartials = isCurry ? partials : undefined,\n newPartialsRight = isCurry ? undefined : partials;\n\n bitmask |= (isCurry ? WRAP_PARTIAL_FLAG : WRAP_PARTIAL_RIGHT_FLAG);\n bitmask &= ~(isCurry ? WRAP_PARTIAL_RIGHT_FLAG : WRAP_PARTIAL_FLAG);\n\n if (!(bitmask & WRAP_CURRY_BOUND_FLAG)) {\n bitmask &= ~(WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG);\n }\n var newData = [\n func, bitmask, thisArg, newPartials, newHolders, newPartialsRight,\n newHoldersRight, argPos, ary, arity\n ];\n\n var result = wrapFunc.apply(undefined, newData);\n if (isLaziable(func)) {\n setData(result, newData);\n }\n result.placeholder = placeholder;\n return setWrapToString(result, func, bitmask);\n}\n\nexport default createRecurry;\n","/**\n * Gets the argument placeholder value for `func`.\n *\n * @private\n * @param {Function} func The function to inspect.\n * @returns {*} Returns the placeholder value.\n */\nfunction getHolder(func) {\n var object = func;\n return object.placeholder;\n}\n\nexport default getHolder;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nexport default isIndex;\n","import copyArray from './_copyArray.js';\nimport isIndex from './_isIndex.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMin = Math.min;\n\n/**\n * Reorder `array` according to the specified indexes where the element at\n * the first index is assigned as the first element, the element at\n * the second index is assigned as the second element, and so on.\n *\n * @private\n * @param {Array} array The array to reorder.\n * @param {Array} indexes The arranged array indexes.\n * @returns {Array} Returns `array`.\n */\nfunction reorder(array, indexes) {\n var arrLength = array.length,\n length = nativeMin(indexes.length, arrLength),\n oldArray = copyArray(array);\n\n while (length--) {\n var index = indexes[length];\n array[length] = isIndex(index, arrLength) ? oldArray[index] : undefined;\n }\n return array;\n}\n\nexport default reorder;\n","/** Used as the internal argument placeholder. */\nvar PLACEHOLDER = '__lodash_placeholder__';\n\n/**\n * Replaces all `placeholder` elements in `array` with an internal placeholder\n * and returns an array of their indexes.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {*} placeholder The placeholder to replace.\n * @returns {Array} Returns the new array of placeholder indexes.\n */\nfunction replaceHolders(array, placeholder) {\n var index = -1,\n length = array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (value === placeholder || value === PLACEHOLDER) {\n array[index] = PLACEHOLDER;\n result[resIndex++] = index;\n }\n }\n return result;\n}\n\nexport default replaceHolders;\n","import composeArgs from './_composeArgs.js';\nimport composeArgsRight from './_composeArgsRight.js';\nimport countHolders from './_countHolders.js';\nimport createCtor from './_createCtor.js';\nimport createRecurry from './_createRecurry.js';\nimport getHolder from './_getHolder.js';\nimport reorder from './_reorder.js';\nimport replaceHolders from './_replaceHolders.js';\nimport root from './_root.js';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1,\n WRAP_BIND_KEY_FLAG = 2,\n WRAP_CURRY_FLAG = 8,\n WRAP_CURRY_RIGHT_FLAG = 16,\n WRAP_ARY_FLAG = 128,\n WRAP_FLIP_FLAG = 512;\n\n/**\n * Creates a function that wraps `func` to invoke it with optional `this`\n * binding of `thisArg`, partial application, and currying.\n *\n * @private\n * @param {Function|string} func The function or method name to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to prepend to those provided to\n * the new function.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [partialsRight] The arguments to append to those provided\n * to the new function.\n * @param {Array} [holdersRight] The `partialsRight` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\nfunction createHybrid(func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, argPos, ary, arity) {\n var isAry = bitmask & WRAP_ARY_FLAG,\n isBind = bitmask & WRAP_BIND_FLAG,\n isBindKey = bitmask & WRAP_BIND_KEY_FLAG,\n isCurried = bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG),\n isFlip = bitmask & WRAP_FLIP_FLAG,\n Ctor = isBindKey ? undefined : createCtor(func);\n\n function wrapper() {\n var length = arguments.length,\n args = Array(length),\n index = length;\n\n while (index--) {\n args[index] = arguments[index];\n }\n if (isCurried) {\n var placeholder = getHolder(wrapper),\n holdersCount = countHolders(args, placeholder);\n }\n if (partials) {\n args = composeArgs(args, partials, holders, isCurried);\n }\n if (partialsRight) {\n args = composeArgsRight(args, partialsRight, holdersRight, isCurried);\n }\n length -= holdersCount;\n if (isCurried && length < arity) {\n var newHolders = replaceHolders(args, placeholder);\n return createRecurry(\n func, bitmask, createHybrid, wrapper.placeholder, thisArg,\n args, newHolders, argPos, ary, arity - length\n );\n }\n var thisBinding = isBind ? thisArg : this,\n fn = isBindKey ? thisBinding[func] : func;\n\n length = args.length;\n if (argPos) {\n args = reorder(args, argPos);\n } else if (isFlip && length > 1) {\n args.reverse();\n }\n if (isAry && ary < length) {\n args.length = ary;\n }\n if (this && this !== root && this instanceof wrapper) {\n fn = Ctor || createCtor(fn);\n }\n return fn.apply(thisBinding, args);\n }\n return wrapper;\n}\n\nexport default createHybrid;\n","import apply from './_apply.js';\nimport createCtor from './_createCtor.js';\nimport createHybrid from './_createHybrid.js';\nimport createRecurry from './_createRecurry.js';\nimport getHolder from './_getHolder.js';\nimport replaceHolders from './_replaceHolders.js';\nimport root from './_root.js';\n\n/**\n * Creates a function that wraps `func` to enable currying.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {number} arity The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\nfunction createCurry(func, bitmask, arity) {\n var Ctor = createCtor(func);\n\n function wrapper() {\n var length = arguments.length,\n args = Array(length),\n index = length,\n placeholder = getHolder(wrapper);\n\n while (index--) {\n args[index] = arguments[index];\n }\n var holders = (length < 3 && args[0] !== placeholder && args[length - 1] !== placeholder)\n ? []\n : replaceHolders(args, placeholder);\n\n length -= holders.length;\n if (length < arity) {\n return createRecurry(\n func, bitmask, createHybrid, wrapper.placeholder, undefined,\n args, holders, undefined, undefined, arity - length);\n }\n var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n return apply(fn, this, args);\n }\n return wrapper;\n}\n\nexport default createCurry;\n","import apply from './_apply.js';\nimport createCtor from './_createCtor.js';\nimport root from './_root.js';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1;\n\n/**\n * Creates a function that wraps `func` to invoke it with the `this` binding\n * of `thisArg` and `partials` prepended to the arguments it receives.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} partials The arguments to prepend to those provided to\n * the new function.\n * @returns {Function} Returns the new wrapped function.\n */\nfunction createPartial(func, bitmask, thisArg, partials) {\n var isBind = bitmask & WRAP_BIND_FLAG,\n Ctor = createCtor(func);\n\n function wrapper() {\n var argsIndex = -1,\n argsLength = arguments.length,\n leftIndex = -1,\n leftLength = partials.length,\n args = Array(leftLength + argsLength),\n fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n\n while (++leftIndex < leftLength) {\n args[leftIndex] = partials[leftIndex];\n }\n while (argsLength--) {\n args[leftIndex++] = arguments[++argsIndex];\n }\n return apply(fn, isBind ? thisArg : this, args);\n }\n return wrapper;\n}\n\nexport default createPartial;\n","import composeArgs from './_composeArgs.js';\nimport composeArgsRight from './_composeArgsRight.js';\nimport replaceHolders from './_replaceHolders.js';\n\n/** Used as the internal argument placeholder. */\nvar PLACEHOLDER = '__lodash_placeholder__';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1,\n WRAP_BIND_KEY_FLAG = 2,\n WRAP_CURRY_BOUND_FLAG = 4,\n WRAP_CURRY_FLAG = 8,\n WRAP_ARY_FLAG = 128,\n WRAP_REARG_FLAG = 256;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMin = Math.min;\n\n/**\n * Merges the function metadata of `source` into `data`.\n *\n * Merging metadata reduces the number of wrappers used to invoke a function.\n * This is possible because methods like `_.bind`, `_.curry`, and `_.partial`\n * may be applied regardless of execution order. Methods like `_.ary` and\n * `_.rearg` modify function arguments, making the order in which they are\n * executed important, preventing the merging of metadata. However, we make\n * an exception for a safe combined case where curried functions have `_.ary`\n * and or `_.rearg` applied.\n *\n * @private\n * @param {Array} data The destination metadata.\n * @param {Array} source The source metadata.\n * @returns {Array} Returns `data`.\n */\nfunction mergeData(data, source) {\n var bitmask = data[1],\n srcBitmask = source[1],\n newBitmask = bitmask | srcBitmask,\n isCommon = newBitmask < (WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG | WRAP_ARY_FLAG);\n\n var isCombo =\n ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_CURRY_FLAG)) ||\n ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_REARG_FLAG) && (data[7].length <= source[8])) ||\n ((srcBitmask == (WRAP_ARY_FLAG | WRAP_REARG_FLAG)) && (source[7].length <= source[8]) && (bitmask == WRAP_CURRY_FLAG));\n\n // Exit early if metadata can't be merged.\n if (!(isCommon || isCombo)) {\n return data;\n }\n // Use source `thisArg` if available.\n if (srcBitmask & WRAP_BIND_FLAG) {\n data[2] = source[2];\n // Set when currying a bound function.\n newBitmask |= bitmask & WRAP_BIND_FLAG ? 0 : WRAP_CURRY_BOUND_FLAG;\n }\n // Compose partial arguments.\n var value = source[3];\n if (value) {\n var partials = data[3];\n data[3] = partials ? composeArgs(partials, value, source[4]) : value;\n data[4] = partials ? replaceHolders(data[3], PLACEHOLDER) : source[4];\n }\n // Compose partial right arguments.\n value = source[5];\n if (value) {\n partials = data[5];\n data[5] = partials ? composeArgsRight(partials, value, source[6]) : value;\n data[6] = partials ? replaceHolders(data[5], PLACEHOLDER) : source[6];\n }\n // Use source `argPos` if available.\n value = source[7];\n if (value) {\n data[7] = value;\n }\n // Use source `ary` if it's smaller.\n if (srcBitmask & WRAP_ARY_FLAG) {\n data[8] = data[8] == null ? source[8] : nativeMin(data[8], source[8]);\n }\n // Use source `arity` if one is not provided.\n if (data[9] == null) {\n data[9] = source[9];\n }\n // Use source `func` and merge bitmasks.\n data[0] = source[0];\n data[1] = newBitmask;\n\n return data;\n}\n\nexport default mergeData;\n","import baseSetData from './_baseSetData.js';\nimport createBind from './_createBind.js';\nimport createCurry from './_createCurry.js';\nimport createHybrid from './_createHybrid.js';\nimport createPartial from './_createPartial.js';\nimport getData from './_getData.js';\nimport mergeData from './_mergeData.js';\nimport setData from './_setData.js';\nimport setWrapToString from './_setWrapToString.js';\nimport toInteger from './toInteger.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1,\n WRAP_BIND_KEY_FLAG = 2,\n WRAP_CURRY_FLAG = 8,\n WRAP_CURRY_RIGHT_FLAG = 16,\n WRAP_PARTIAL_FLAG = 32,\n WRAP_PARTIAL_RIGHT_FLAG = 64;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * Creates a function that either curries or invokes `func` with optional\n * `this` binding and partially applied arguments.\n *\n * @private\n * @param {Function|string} func The function or method name to wrap.\n * @param {number} bitmask The bitmask flags.\n * 1 - `_.bind`\n * 2 - `_.bindKey`\n * 4 - `_.curry` or `_.curryRight` of a bound function\n * 8 - `_.curry`\n * 16 - `_.curryRight`\n * 32 - `_.partial`\n * 64 - `_.partialRight`\n * 128 - `_.rearg`\n * 256 - `_.ary`\n * 512 - `_.flip`\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to be partially applied.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\nfunction createWrap(func, bitmask, thisArg, partials, holders, argPos, ary, arity) {\n var isBindKey = bitmask & WRAP_BIND_KEY_FLAG;\n if (!isBindKey && typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var length = partials ? partials.length : 0;\n if (!length) {\n bitmask &= ~(WRAP_PARTIAL_FLAG | WRAP_PARTIAL_RIGHT_FLAG);\n partials = holders = undefined;\n }\n ary = ary === undefined ? ary : nativeMax(toInteger(ary), 0);\n arity = arity === undefined ? arity : toInteger(arity);\n length -= holders ? holders.length : 0;\n\n if (bitmask & WRAP_PARTIAL_RIGHT_FLAG) {\n var partialsRight = partials,\n holdersRight = holders;\n\n partials = holders = undefined;\n }\n var data = isBindKey ? undefined : getData(func);\n\n var newData = [\n func, bitmask, thisArg, partials, holders, partialsRight, holdersRight,\n argPos, ary, arity\n ];\n\n if (data) {\n mergeData(newData, data);\n }\n func = newData[0];\n bitmask = newData[1];\n thisArg = newData[2];\n partials = newData[3];\n holders = newData[4];\n arity = newData[9] = newData[9] === undefined\n ? (isBindKey ? 0 : func.length)\n : nativeMax(newData[9] - length, 0);\n\n if (!arity && bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG)) {\n bitmask &= ~(WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG);\n }\n if (!bitmask || bitmask == WRAP_BIND_FLAG) {\n var result = createBind(func, bitmask, thisArg);\n } else if (bitmask == WRAP_CURRY_FLAG || bitmask == WRAP_CURRY_RIGHT_FLAG) {\n result = createCurry(func, bitmask, arity);\n } else if ((bitmask == WRAP_PARTIAL_FLAG || bitmask == (WRAP_BIND_FLAG | WRAP_PARTIAL_FLAG)) && !holders.length) {\n result = createPartial(func, bitmask, thisArg, partials);\n } else {\n result = createHybrid.apply(undefined, newData);\n }\n var setter = data ? baseSetData : setData;\n return setWrapToString(setter(result, newData), func, bitmask);\n}\n\nexport default createWrap;\n","import createWrap from './_createWrap.js';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_ARY_FLAG = 128;\n\n/**\n * Creates a function that invokes `func`, with up to `n` arguments,\n * ignoring any additional arguments.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} func The function to cap arguments for.\n * @param {number} [n=func.length] The arity cap.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the new capped function.\n * @example\n *\n * _.map(['6', '8', '10'], _.ary(parseInt, 1));\n * // => [6, 8, 10]\n */\nfunction ary(func, n, guard) {\n n = guard ? undefined : n;\n n = (func && n == null) ? func.length : n;\n return createWrap(func, WRAP_ARY_FLAG, undefined, undefined, undefined, undefined, n);\n}\n\nexport default ary;\n","import defineProperty from './_defineProperty.js';\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nexport default baseAssignValue;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nexport default eq;\n","import baseAssignValue from './_baseAssignValue.js';\nimport eq from './eq.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nexport default assignValue;\n","import assignValue from './_assignValue.js';\nimport baseAssignValue from './_baseAssignValue.js';\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nexport default copyObject;\n","import apply from './_apply.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nexport default overRest;\n","import identity from './identity.js';\nimport overRest from './_overRest.js';\nimport setToString from './_setToString.js';\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nexport default baseRest;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nexport default isLength;\n","import isFunction from './isFunction.js';\nimport isLength from './isLength.js';\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nexport default isArrayLike;\n","import eq from './eq.js';\nimport isArrayLike from './isArrayLike.js';\nimport isIndex from './_isIndex.js';\nimport isObject from './isObject.js';\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nexport default isIterateeCall;\n","import baseRest from './_baseRest.js';\nimport isIterateeCall from './_isIterateeCall.js';\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\nexport default createAssigner;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nexport default isPrototype;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nexport default baseTimes;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nexport default baseIsArguments;\n","import baseIsArguments from './_baseIsArguments.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nexport default isArguments;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nexport default stubFalse;\n","import root from './_root.js';\nimport stubFalse from './stubFalse.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nexport default isBuffer;\n","import baseGetTag from './_baseGetTag.js';\nimport isLength from './isLength.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nexport default baseIsTypedArray;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nexport default baseUnary;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nexport default nodeUtil;\n","import baseIsTypedArray from './_baseIsTypedArray.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nexport default isTypedArray;\n","import baseTimes from './_baseTimes.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isIndex from './_isIndex.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default arrayLikeKeys;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nexport default overArg;\n","import overArg from './_overArg.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nexport default nativeKeys;\n","import isPrototype from './_isPrototype.js';\nimport nativeKeys from './_nativeKeys.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default baseKeys;\n","import arrayLikeKeys from './_arrayLikeKeys.js';\nimport baseKeys from './_baseKeys.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nexport default keys;\n","import assignValue from './_assignValue.js';\nimport copyObject from './_copyObject.js';\nimport createAssigner from './_createAssigner.js';\nimport isArrayLike from './isArrayLike.js';\nimport isPrototype from './_isPrototype.js';\nimport keys from './keys.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns own enumerable string keyed properties of source objects to the\n * destination object. Source objects are applied from left to right.\n * Subsequent sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object` and is loosely based on\n * [`Object.assign`](https://mdn.io/Object/assign).\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assignIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assign({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'c': 3 }\n */\nvar assign = createAssigner(function(object, source) {\n if (isPrototype(source) || isArrayLike(source)) {\n copyObject(source, keys(source), object);\n return;\n }\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n assignValue(object, key, source[key]);\n }\n }\n});\n\nexport default assign;\n","/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default nativeKeysIn;\n","import isObject from './isObject.js';\nimport isPrototype from './_isPrototype.js';\nimport nativeKeysIn from './_nativeKeysIn.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default baseKeysIn;\n","import arrayLikeKeys from './_arrayLikeKeys.js';\nimport baseKeysIn from './_baseKeysIn.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nexport default keysIn;\n","import copyObject from './_copyObject.js';\nimport createAssigner from './_createAssigner.js';\nimport keysIn from './keysIn.js';\n\n/**\n * This method is like `_.assign` except that it iterates over own and\n * inherited source properties.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias extend\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assign\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assignIn({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'b': 2, 'c': 3, 'd': 4 }\n */\nvar assignIn = createAssigner(function(object, source) {\n copyObject(source, keysIn(source), object);\n});\n\nexport default assignIn;\n","import copyObject from './_copyObject.js';\nimport createAssigner from './_createAssigner.js';\nimport keysIn from './keysIn.js';\n\n/**\n * This method is like `_.assignIn` except that it accepts `customizer`\n * which is invoked to produce the assigned values. If `customizer` returns\n * `undefined`, assignment is handled by the method instead. The `customizer`\n * is invoked with five arguments: (objValue, srcValue, key, object, source).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias extendWith\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @see _.assignWith\n * @example\n *\n * function customizer(objValue, srcValue) {\n * return _.isUndefined(objValue) ? srcValue : objValue;\n * }\n *\n * var defaults = _.partialRight(_.assignInWith, customizer);\n *\n * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\nvar assignInWith = createAssigner(function(object, source, srcIndex, customizer) {\n copyObject(source, keysIn(source), object, customizer);\n});\n\nexport default assignInWith;\n","import copyObject from './_copyObject.js';\nimport createAssigner from './_createAssigner.js';\nimport keys from './keys.js';\n\n/**\n * This method is like `_.assign` except that it accepts `customizer`\n * which is invoked to produce the assigned values. If `customizer` returns\n * `undefined`, assignment is handled by the method instead. The `customizer`\n * is invoked with five arguments: (objValue, srcValue, key, object, source).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @see _.assignInWith\n * @example\n *\n * function customizer(objValue, srcValue) {\n * return _.isUndefined(objValue) ? srcValue : objValue;\n * }\n *\n * var defaults = _.partialRight(_.assignWith, customizer);\n *\n * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\nvar assignWith = createAssigner(function(object, source, srcIndex, customizer) {\n copyObject(source, keys(source), object, customizer);\n});\n\nexport default assignWith;\n","import isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nexport default isKey;\n","import getNative from './_getNative.js';\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nexport default nativeCreate;\n","import nativeCreate from './_nativeCreate.js';\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nexport default hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nexport default hashDelete;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nexport default hashGet;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nexport default hashHas;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nexport default hashSet;\n","import hashClear from './_hashClear.js';\nimport hashDelete from './_hashDelete.js';\nimport hashGet from './_hashGet.js';\nimport hashHas from './_hashHas.js';\nimport hashSet from './_hashSet.js';\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nexport default Hash;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nexport default listCacheClear;\n","import eq from './eq.js';\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nexport default assocIndexOf;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nexport default listCacheDelete;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nexport default listCacheGet;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nexport default listCacheHas;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nexport default listCacheSet;\n","import listCacheClear from './_listCacheClear.js';\nimport listCacheDelete from './_listCacheDelete.js';\nimport listCacheGet from './_listCacheGet.js';\nimport listCacheHas from './_listCacheHas.js';\nimport listCacheSet from './_listCacheSet.js';\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nexport default ListCache;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nexport default Map;\n","import Hash from './_Hash.js';\nimport ListCache from './_ListCache.js';\nimport Map from './_Map.js';\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nexport default mapCacheClear;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nexport default isKeyable;\n","import isKeyable from './_isKeyable.js';\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nexport default getMapData;\n","import getMapData from './_getMapData.js';\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nexport default mapCacheDelete;\n","import getMapData from './_getMapData.js';\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nexport default mapCacheGet;\n","import getMapData from './_getMapData.js';\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nexport default mapCacheHas;\n","import getMapData from './_getMapData.js';\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nexport default mapCacheSet;\n","import mapCacheClear from './_mapCacheClear.js';\nimport mapCacheDelete from './_mapCacheDelete.js';\nimport mapCacheGet from './_mapCacheGet.js';\nimport mapCacheHas from './_mapCacheHas.js';\nimport mapCacheSet from './_mapCacheSet.js';\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nexport default MapCache;\n","import MapCache from './_MapCache.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nexport default memoize;\n","import memoize from './memoize.js';\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nexport default memoizeCapped;\n","import memoizeCapped from './_memoizeCapped.js';\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nexport default stringToPath;\n","import baseToString from './_baseToString.js';\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nexport default toString;\n","import isArray from './isArray.js';\nimport isKey from './_isKey.js';\nimport stringToPath from './_stringToPath.js';\nimport toString from './toString.js';\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nexport default castPath;\n","import isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default toKey;\n","import castPath from './_castPath.js';\nimport toKey from './_toKey.js';\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nexport default baseGet;\n","import baseGet from './_baseGet.js';\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nexport default get;\n","import get from './get.js';\n\n/**\n * The base implementation of `_.at` without support for individual paths.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {string[]} paths The property paths to pick.\n * @returns {Array} Returns the picked elements.\n */\nfunction baseAt(object, paths) {\n var index = -1,\n length = paths.length,\n result = Array(length),\n skip = object == null;\n\n while (++index < length) {\n result[index] = skip ? undefined : get(object, paths[index]);\n }\n return result;\n}\n\nexport default baseAt;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nexport default arrayPush;\n","import Symbol from './_Symbol.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\n\n/** Built-in value references. */\nvar spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;\n\n/**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\nfunction isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n}\n\nexport default isFlattenable;\n","import arrayPush from './_arrayPush.js';\nimport isFlattenable from './_isFlattenable.js';\n\n/**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\nfunction baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n}\n\nexport default baseFlatten;\n","import baseFlatten from './_baseFlatten.js';\n\n/**\n * Flattens `array` a single level deep.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flatten([1, [2, [3, [4]], 5]]);\n * // => [1, 2, [3, [4]], 5]\n */\nfunction flatten(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, 1) : [];\n}\n\nexport default flatten;\n","import flatten from './flatten.js';\nimport overRest from './_overRest.js';\nimport setToString from './_setToString.js';\n\n/**\n * A specialized version of `baseRest` which flattens the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\nfunction flatRest(func) {\n return setToString(overRest(func, undefined, flatten), func + '');\n}\n\nexport default flatRest;\n","import baseAt from './_baseAt.js';\nimport flatRest from './_flatRest.js';\n\n/**\n * Creates an array of values corresponding to `paths` of `object`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Array} Returns the picked values.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }, 4] };\n *\n * _.at(object, ['a[0].b.c', 'a[1]']);\n * // => [3, 4]\n */\nvar at = flatRest(baseAt);\n\nexport default at;\n","import overArg from './_overArg.js';\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nexport default getPrototype;\n","import baseGetTag from './_baseGetTag.js';\nimport getPrototype from './_getPrototype.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nexport default isPlainObject;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\nimport isPlainObject from './isPlainObject.js';\n\n/** `Object#toString` result references. */\nvar domExcTag = '[object DOMException]',\n errorTag = '[object Error]';\n\n/**\n * Checks if `value` is an `Error`, `EvalError`, `RangeError`, `ReferenceError`,\n * `SyntaxError`, `TypeError`, or `URIError` object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an error object, else `false`.\n * @example\n *\n * _.isError(new Error);\n * // => true\n *\n * _.isError(Error);\n * // => false\n */\nfunction isError(value) {\n if (!isObjectLike(value)) {\n return false;\n }\n var tag = baseGetTag(value);\n return tag == errorTag || tag == domExcTag ||\n (typeof value.message == 'string' && typeof value.name == 'string' && !isPlainObject(value));\n}\n\nexport default isError;\n","import apply from './_apply.js';\nimport baseRest from './_baseRest.js';\nimport isError from './isError.js';\n\n/**\n * Attempts to invoke `func`, returning either the result or the caught error\n * object. Any additional arguments are provided to `func` when it's invoked.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Util\n * @param {Function} func The function to attempt.\n * @param {...*} [args] The arguments to invoke `func` with.\n * @returns {*} Returns the `func` result or error object.\n * @example\n *\n * // Avoid throwing errors for invalid selectors.\n * var elements = _.attempt(function(selector) {\n * return document.querySelectorAll(selector);\n * }, '>_>');\n *\n * if (_.isError(elements)) {\n * elements = [];\n * }\n */\nvar attempt = baseRest(function(func, args) {\n try {\n return apply(func, undefined, args);\n } catch (e) {\n return isError(e) ? e : new Error(e);\n }\n});\n\nexport default attempt;\n","import toInteger from './toInteger.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that invokes `func`, with the `this` binding and arguments\n * of the created function, while it's called less than `n` times. Subsequent\n * calls to the created function return the result of the last `func` invocation.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {number} n The number of calls at which `func` is no longer invoked.\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * jQuery(element).on('click', _.before(5, addContactToList));\n * // => Allows adding up to 4 contacts to the list.\n */\nfunction before(n, func) {\n var result;\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n n = toInteger(n);\n return function() {\n if (--n > 0) {\n result = func.apply(this, arguments);\n }\n if (n <= 1) {\n func = undefined;\n }\n return result;\n };\n}\n\nexport default before;\n","import baseRest from './_baseRest.js';\nimport createWrap from './_createWrap.js';\nimport getHolder from './_getHolder.js';\nimport replaceHolders from './_replaceHolders.js';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1,\n WRAP_PARTIAL_FLAG = 32;\n\n/**\n * Creates a function that invokes `func` with the `this` binding of `thisArg`\n * and `partials` prepended to the arguments it receives.\n *\n * The `_.bind.placeholder` value, which defaults to `_` in monolithic builds,\n * may be used as a placeholder for partially applied arguments.\n *\n * **Note:** Unlike native `Function#bind`, this method doesn't set the \"length\"\n * property of bound functions.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to bind.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new bound function.\n * @example\n *\n * function greet(greeting, punctuation) {\n * return greeting + ' ' + this.user + punctuation;\n * }\n *\n * var object = { 'user': 'fred' };\n *\n * var bound = _.bind(greet, object, 'hi');\n * bound('!');\n * // => 'hi fred!'\n *\n * // Bound with placeholders.\n * var bound = _.bind(greet, object, _, '!');\n * bound('hi');\n * // => 'hi fred!'\n */\nvar bind = baseRest(function(func, thisArg, partials) {\n var bitmask = WRAP_BIND_FLAG;\n if (partials.length) {\n var holders = replaceHolders(partials, getHolder(bind));\n bitmask |= WRAP_PARTIAL_FLAG;\n }\n return createWrap(func, bitmask, thisArg, partials, holders);\n});\n\n// Assign default placeholders.\nbind.placeholder = {};\n\nexport default bind;\n","import arrayEach from './_arrayEach.js';\nimport baseAssignValue from './_baseAssignValue.js';\nimport bind from './bind.js';\nimport flatRest from './_flatRest.js';\nimport toKey from './_toKey.js';\n\n/**\n * Binds methods of an object to the object itself, overwriting the existing\n * method.\n *\n * **Note:** This method doesn't set the \"length\" property of bound functions.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {Object} object The object to bind and assign the bound methods to.\n * @param {...(string|string[])} methodNames The object method names to bind.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var view = {\n * 'label': 'docs',\n * 'click': function() {\n * console.log('clicked ' + this.label);\n * }\n * };\n *\n * _.bindAll(view, ['click']);\n * jQuery(element).on('click', view.click);\n * // => Logs 'clicked docs' when clicked.\n */\nvar bindAll = flatRest(function(object, methodNames) {\n arrayEach(methodNames, function(key) {\n key = toKey(key);\n baseAssignValue(object, key, bind(object[key], object));\n });\n return object;\n});\n\nexport default bindAll;\n","import baseRest from './_baseRest.js';\nimport createWrap from './_createWrap.js';\nimport getHolder from './_getHolder.js';\nimport replaceHolders from './_replaceHolders.js';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1,\n WRAP_BIND_KEY_FLAG = 2,\n WRAP_PARTIAL_FLAG = 32;\n\n/**\n * Creates a function that invokes the method at `object[key]` with `partials`\n * prepended to the arguments it receives.\n *\n * This method differs from `_.bind` by allowing bound functions to reference\n * methods that may be redefined or don't yet exist. See\n * [Peter Michaux's article](http://peter.michaux.ca/articles/lazy-function-definition-pattern)\n * for more details.\n *\n * The `_.bindKey.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for partially applied arguments.\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Function\n * @param {Object} object The object to invoke the method on.\n * @param {string} key The key of the method.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new bound function.\n * @example\n *\n * var object = {\n * 'user': 'fred',\n * 'greet': function(greeting, punctuation) {\n * return greeting + ' ' + this.user + punctuation;\n * }\n * };\n *\n * var bound = _.bindKey(object, 'greet', 'hi');\n * bound('!');\n * // => 'hi fred!'\n *\n * object.greet = function(greeting, punctuation) {\n * return greeting + 'ya ' + this.user + punctuation;\n * };\n *\n * bound('!');\n * // => 'hiya fred!'\n *\n * // Bound with placeholders.\n * var bound = _.bindKey(object, 'greet', _, '!');\n * bound('hi');\n * // => 'hiya fred!'\n */\nvar bindKey = baseRest(function(object, key, partials) {\n var bitmask = WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG;\n if (partials.length) {\n var holders = replaceHolders(partials, getHolder(bindKey));\n bitmask |= WRAP_PARTIAL_FLAG;\n }\n return createWrap(key, bitmask, object, partials, holders);\n});\n\n// Assign default placeholders.\nbindKey.placeholder = {};\n\nexport default bindKey;\n","/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n}\n\nexport default baseSlice;\n","import baseSlice from './_baseSlice.js';\n\n/**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\nfunction castSlice(array, start, end) {\n var length = array.length;\n end = end === undefined ? length : end;\n return (!start && end >= length) ? array : baseSlice(array, start, end);\n}\n\nexport default castSlice;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsZWJ = '\\\\u200d';\n\n/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\nvar reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');\n\n/**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\nfunction hasUnicode(string) {\n return reHasUnicode.test(string);\n}\n\nexport default hasUnicode;\n","/**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction asciiToArray(string) {\n return string.split('');\n}\n\nexport default asciiToArray;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsAstral = '[' + rsAstralRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\nvar reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n/**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction unicodeToArray(string) {\n return string.match(reUnicode) || [];\n}\n\nexport default unicodeToArray;\n","import asciiToArray from './_asciiToArray.js';\nimport hasUnicode from './_hasUnicode.js';\nimport unicodeToArray from './_unicodeToArray.js';\n\n/**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction stringToArray(string) {\n return hasUnicode(string)\n ? unicodeToArray(string)\n : asciiToArray(string);\n}\n\nexport default stringToArray;\n","import castSlice from './_castSlice.js';\nimport hasUnicode from './_hasUnicode.js';\nimport stringToArray from './_stringToArray.js';\nimport toString from './toString.js';\n\n/**\n * Creates a function like `_.lowerFirst`.\n *\n * @private\n * @param {string} methodName The name of the `String` case method to use.\n * @returns {Function} Returns the new case function.\n */\nfunction createCaseFirst(methodName) {\n return function(string) {\n string = toString(string);\n\n var strSymbols = hasUnicode(string)\n ? stringToArray(string)\n : undefined;\n\n var chr = strSymbols\n ? strSymbols[0]\n : string.charAt(0);\n\n var trailing = strSymbols\n ? castSlice(strSymbols, 1).join('')\n : string.slice(1);\n\n return chr[methodName]() + trailing;\n };\n}\n\nexport default createCaseFirst;\n","import createCaseFirst from './_createCaseFirst.js';\n\n/**\n * Converts the first character of `string` to upper case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.upperFirst('fred');\n * // => 'Fred'\n *\n * _.upperFirst('FRED');\n * // => 'FRED'\n */\nvar upperFirst = createCaseFirst('toUpperCase');\n\nexport default upperFirst;\n","import toString from './toString.js';\nimport upperFirst from './upperFirst.js';\n\n/**\n * Converts the first character of `string` to upper case and the remaining\n * to lower case.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to capitalize.\n * @returns {string} Returns the capitalized string.\n * @example\n *\n * _.capitalize('FRED');\n * // => 'Fred'\n */\nfunction capitalize(string) {\n return upperFirst(toString(string).toLowerCase());\n}\n\nexport default capitalize;\n","/**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n}\n\nexport default arrayReduce;\n","/**\n * The base implementation of `_.propertyOf` without support for deep paths.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyOf(object) {\n return function(key) {\n return object == null ? undefined : object[key];\n };\n}\n\nexport default basePropertyOf;\n","import basePropertyOf from './_basePropertyOf.js';\n\n/** Used to map Latin Unicode letters to basic Latin letters. */\nvar deburredLetters = {\n // Latin-1 Supplement block.\n '\\xc0': 'A', '\\xc1': 'A', '\\xc2': 'A', '\\xc3': 'A', '\\xc4': 'A', '\\xc5': 'A',\n '\\xe0': 'a', '\\xe1': 'a', '\\xe2': 'a', '\\xe3': 'a', '\\xe4': 'a', '\\xe5': 'a',\n '\\xc7': 'C', '\\xe7': 'c',\n '\\xd0': 'D', '\\xf0': 'd',\n '\\xc8': 'E', '\\xc9': 'E', '\\xca': 'E', '\\xcb': 'E',\n '\\xe8': 'e', '\\xe9': 'e', '\\xea': 'e', '\\xeb': 'e',\n '\\xcc': 'I', '\\xcd': 'I', '\\xce': 'I', '\\xcf': 'I',\n '\\xec': 'i', '\\xed': 'i', '\\xee': 'i', '\\xef': 'i',\n '\\xd1': 'N', '\\xf1': 'n',\n '\\xd2': 'O', '\\xd3': 'O', '\\xd4': 'O', '\\xd5': 'O', '\\xd6': 'O', '\\xd8': 'O',\n '\\xf2': 'o', '\\xf3': 'o', '\\xf4': 'o', '\\xf5': 'o', '\\xf6': 'o', '\\xf8': 'o',\n '\\xd9': 'U', '\\xda': 'U', '\\xdb': 'U', '\\xdc': 'U',\n '\\xf9': 'u', '\\xfa': 'u', '\\xfb': 'u', '\\xfc': 'u',\n '\\xdd': 'Y', '\\xfd': 'y', '\\xff': 'y',\n '\\xc6': 'Ae', '\\xe6': 'ae',\n '\\xde': 'Th', '\\xfe': 'th',\n '\\xdf': 'ss',\n // Latin Extended-A block.\n '\\u0100': 'A', '\\u0102': 'A', '\\u0104': 'A',\n '\\u0101': 'a', '\\u0103': 'a', '\\u0105': 'a',\n '\\u0106': 'C', '\\u0108': 'C', '\\u010a': 'C', '\\u010c': 'C',\n '\\u0107': 'c', '\\u0109': 'c', '\\u010b': 'c', '\\u010d': 'c',\n '\\u010e': 'D', '\\u0110': 'D', '\\u010f': 'd', '\\u0111': 'd',\n '\\u0112': 'E', '\\u0114': 'E', '\\u0116': 'E', '\\u0118': 'E', '\\u011a': 'E',\n '\\u0113': 'e', '\\u0115': 'e', '\\u0117': 'e', '\\u0119': 'e', '\\u011b': 'e',\n '\\u011c': 'G', '\\u011e': 'G', '\\u0120': 'G', '\\u0122': 'G',\n '\\u011d': 'g', '\\u011f': 'g', '\\u0121': 'g', '\\u0123': 'g',\n '\\u0124': 'H', '\\u0126': 'H', '\\u0125': 'h', '\\u0127': 'h',\n '\\u0128': 'I', '\\u012a': 'I', '\\u012c': 'I', '\\u012e': 'I', '\\u0130': 'I',\n '\\u0129': 'i', '\\u012b': 'i', '\\u012d': 'i', '\\u012f': 'i', '\\u0131': 'i',\n '\\u0134': 'J', '\\u0135': 'j',\n '\\u0136': 'K', '\\u0137': 'k', '\\u0138': 'k',\n '\\u0139': 'L', '\\u013b': 'L', '\\u013d': 'L', '\\u013f': 'L', '\\u0141': 'L',\n '\\u013a': 'l', '\\u013c': 'l', '\\u013e': 'l', '\\u0140': 'l', '\\u0142': 'l',\n '\\u0143': 'N', '\\u0145': 'N', '\\u0147': 'N', '\\u014a': 'N',\n '\\u0144': 'n', '\\u0146': 'n', '\\u0148': 'n', '\\u014b': 'n',\n '\\u014c': 'O', '\\u014e': 'O', '\\u0150': 'O',\n '\\u014d': 'o', '\\u014f': 'o', '\\u0151': 'o',\n '\\u0154': 'R', '\\u0156': 'R', '\\u0158': 'R',\n '\\u0155': 'r', '\\u0157': 'r', '\\u0159': 'r',\n '\\u015a': 'S', '\\u015c': 'S', '\\u015e': 'S', '\\u0160': 'S',\n '\\u015b': 's', '\\u015d': 's', '\\u015f': 's', '\\u0161': 's',\n '\\u0162': 'T', '\\u0164': 'T', '\\u0166': 'T',\n '\\u0163': 't', '\\u0165': 't', '\\u0167': 't',\n '\\u0168': 'U', '\\u016a': 'U', '\\u016c': 'U', '\\u016e': 'U', '\\u0170': 'U', '\\u0172': 'U',\n '\\u0169': 'u', '\\u016b': 'u', '\\u016d': 'u', '\\u016f': 'u', '\\u0171': 'u', '\\u0173': 'u',\n '\\u0174': 'W', '\\u0175': 'w',\n '\\u0176': 'Y', '\\u0177': 'y', '\\u0178': 'Y',\n '\\u0179': 'Z', '\\u017b': 'Z', '\\u017d': 'Z',\n '\\u017a': 'z', '\\u017c': 'z', '\\u017e': 'z',\n '\\u0132': 'IJ', '\\u0133': 'ij',\n '\\u0152': 'Oe', '\\u0153': 'oe',\n '\\u0149': \"'n\", '\\u017f': 's'\n};\n\n/**\n * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A\n * letters to basic Latin letters.\n *\n * @private\n * @param {string} letter The matched letter to deburr.\n * @returns {string} Returns the deburred letter.\n */\nvar deburrLetter = basePropertyOf(deburredLetters);\n\nexport default deburrLetter;\n","import deburrLetter from './_deburrLetter.js';\nimport toString from './toString.js';\n\n/** Used to match Latin Unicode letters (excluding mathematical operators). */\nvar reLatin = /[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g;\n\n/** Used to compose unicode character classes. */\nvar rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange;\n\n/** Used to compose unicode capture groups. */\nvar rsCombo = '[' + rsComboRange + ']';\n\n/**\n * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and\n * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols).\n */\nvar reComboMark = RegExp(rsCombo, 'g');\n\n/**\n * Deburrs `string` by converting\n * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table)\n * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A)\n * letters to basic Latin letters and removing\n * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to deburr.\n * @returns {string} Returns the deburred string.\n * @example\n *\n * _.deburr('déjà vu');\n * // => 'deja vu'\n */\nfunction deburr(string) {\n string = toString(string);\n return string && string.replace(reLatin, deburrLetter).replace(reComboMark, '');\n}\n\nexport default deburr;\n","/** Used to match words composed of alphanumeric characters. */\nvar reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\n\n/**\n * Splits an ASCII `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction asciiWords(string) {\n return string.match(reAsciiWord) || [];\n}\n\nexport default asciiWords;\n","/** Used to detect strings that need a more robust regexp to match words. */\nvar reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;\n\n/**\n * Checks if `string` contains a word composed of Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a word is found, else `false`.\n */\nfunction hasUnicodeWord(string) {\n return reHasUnicodeWord.test(string);\n}\n\nexport default hasUnicodeWord;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsDingbatRange = '\\\\u2700-\\\\u27bf',\n rsLowerRange = 'a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff',\n rsMathOpRange = '\\\\xac\\\\xb1\\\\xd7\\\\xf7',\n rsNonCharRange = '\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf',\n rsPunctuationRange = '\\\\u2000-\\\\u206f',\n rsSpaceRange = ' \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000',\n rsUpperRange = 'A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde',\n rsVarRange = '\\\\ufe0e\\\\ufe0f',\n rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\",\n rsBreak = '[' + rsBreakRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsDigits = '\\\\d+',\n rsDingbat = '[' + rsDingbatRange + ']',\n rsLower = '[' + rsLowerRange + ']',\n rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsUpper = '[' + rsUpperRange + ']',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')',\n rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')',\n rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',\n rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',\n reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsOrdLower = '\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])',\n rsOrdUpper = '\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq;\n\n/** Used to match complex or compound words. */\nvar reUnicodeWord = RegExp([\n rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')',\n rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')',\n rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower,\n rsUpper + '+' + rsOptContrUpper,\n rsOrdUpper,\n rsOrdLower,\n rsDigits,\n rsEmoji\n].join('|'), 'g');\n\n/**\n * Splits a Unicode `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction unicodeWords(string) {\n return string.match(reUnicodeWord) || [];\n}\n\nexport default unicodeWords;\n","import asciiWords from './_asciiWords.js';\nimport hasUnicodeWord from './_hasUnicodeWord.js';\nimport toString from './toString.js';\nimport unicodeWords from './_unicodeWords.js';\n\n/**\n * Splits `string` into an array of its words.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {RegExp|string} [pattern] The pattern to match words.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the words of `string`.\n * @example\n *\n * _.words('fred, barney, & pebbles');\n * // => ['fred', 'barney', 'pebbles']\n *\n * _.words('fred, barney, & pebbles', /[^, ]+/g);\n * // => ['fred', 'barney', '&', 'pebbles']\n */\nfunction words(string, pattern, guard) {\n string = toString(string);\n pattern = guard ? undefined : pattern;\n\n if (pattern === undefined) {\n return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string);\n }\n return string.match(pattern) || [];\n}\n\nexport default words;\n","import arrayReduce from './_arrayReduce.js';\nimport deburr from './deburr.js';\nimport words from './words.js';\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\";\n\n/** Used to match apostrophes. */\nvar reApos = RegExp(rsApos, 'g');\n\n/**\n * Creates a function like `_.camelCase`.\n *\n * @private\n * @param {Function} callback The function to combine each word.\n * @returns {Function} Returns the new compounder function.\n */\nfunction createCompounder(callback) {\n return function(string) {\n return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');\n };\n}\n\nexport default createCompounder;\n","import capitalize from './capitalize.js';\nimport createCompounder from './_createCompounder.js';\n\n/**\n * Converts `string` to [camel case](https://en.wikipedia.org/wiki/CamelCase).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the camel cased string.\n * @example\n *\n * _.camelCase('Foo Bar');\n * // => 'fooBar'\n *\n * _.camelCase('--foo-bar--');\n * // => 'fooBar'\n *\n * _.camelCase('__FOO_BAR__');\n * // => 'fooBar'\n */\nvar camelCase = createCompounder(function(result, word, index) {\n word = word.toLowerCase();\n return result + (index ? capitalize(word) : word);\n});\n\nexport default camelCase;\n","import isArray from './isArray.js';\n\n/**\n * Casts `value` as an array if it's not one.\n *\n * @static\n * @memberOf _\n * @since 4.4.0\n * @category Lang\n * @param {*} value The value to inspect.\n * @returns {Array} Returns the cast array.\n * @example\n *\n * _.castArray(1);\n * // => [1]\n *\n * _.castArray({ 'a': 1 });\n * // => [{ 'a': 1 }]\n *\n * _.castArray('abc');\n * // => ['abc']\n *\n * _.castArray(null);\n * // => [null]\n *\n * _.castArray(undefined);\n * // => [undefined]\n *\n * _.castArray();\n * // => []\n *\n * var array = [1, 2, 3];\n * console.log(_.castArray(array) === array);\n * // => true\n */\nfunction castArray() {\n if (!arguments.length) {\n return [];\n }\n var value = arguments[0];\n return isArray(value) ? value : [value];\n}\n\nexport default castArray;\n","import root from './_root.js';\nimport toInteger from './toInteger.js';\nimport toNumber from './toNumber.js';\nimport toString from './toString.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsFinite = root.isFinite,\n nativeMin = Math.min;\n\n/**\n * Creates a function like `_.round`.\n *\n * @private\n * @param {string} methodName The name of the `Math` method to use when rounding.\n * @returns {Function} Returns the new round function.\n */\nfunction createRound(methodName) {\n var func = Math[methodName];\n return function(number, precision) {\n number = toNumber(number);\n precision = precision == null ? 0 : nativeMin(toInteger(precision), 292);\n if (precision && nativeIsFinite(number)) {\n // Shift with exponential notation to avoid floating-point issues.\n // See [MDN](https://mdn.io/round#Examples) for more details.\n var pair = (toString(number) + 'e').split('e'),\n value = func(pair[0] + 'e' + (+pair[1] + precision));\n\n pair = (toString(value) + 'e').split('e');\n return +(pair[0] + 'e' + (+pair[1] - precision));\n }\n return func(number);\n };\n}\n\nexport default createRound;\n","import createRound from './_createRound.js';\n\n/**\n * Computes `number` rounded up to `precision`.\n *\n * @static\n * @memberOf _\n * @since 3.10.0\n * @category Math\n * @param {number} number The number to round up.\n * @param {number} [precision=0] The precision to round up to.\n * @returns {number} Returns the rounded up number.\n * @example\n *\n * _.ceil(4.006);\n * // => 5\n *\n * _.ceil(6.004, 2);\n * // => 6.01\n *\n * _.ceil(6040, -2);\n * // => 6100\n */\nvar ceil = createRound('ceil');\n\nexport default ceil;\n","import lodash from './wrapperLodash.js';\n\n/**\n * Creates a `lodash` wrapper instance that wraps `value` with explicit method\n * chain sequences enabled. The result of such sequences must be unwrapped\n * with `_#value`.\n *\n * @static\n * @memberOf _\n * @since 1.3.0\n * @category Seq\n * @param {*} value The value to wrap.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 40 },\n * { 'user': 'pebbles', 'age': 1 }\n * ];\n *\n * var youngest = _\n * .chain(users)\n * .sortBy('age')\n * .map(function(o) {\n * return o.user + ' is ' + o.age;\n * })\n * .head()\n * .value();\n * // => 'pebbles is 1'\n */\nfunction chain(value) {\n var result = lodash(value);\n result.__chain__ = true;\n return result;\n}\n\nexport default chain;\n","import baseSlice from './_baseSlice.js';\nimport isIterateeCall from './_isIterateeCall.js';\nimport toInteger from './toInteger.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeCeil = Math.ceil,\n nativeMax = Math.max;\n\n/**\n * Creates an array of elements split into groups the length of `size`.\n * If `array` can't be split evenly, the final chunk will be the remaining\n * elements.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to process.\n * @param {number} [size=1] The length of each chunk\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the new array of chunks.\n * @example\n *\n * _.chunk(['a', 'b', 'c', 'd'], 2);\n * // => [['a', 'b'], ['c', 'd']]\n *\n * _.chunk(['a', 'b', 'c', 'd'], 3);\n * // => [['a', 'b', 'c'], ['d']]\n */\nfunction chunk(array, size, guard) {\n if ((guard ? isIterateeCall(array, size, guard) : size === undefined)) {\n size = 1;\n } else {\n size = nativeMax(toInteger(size), 0);\n }\n var length = array == null ? 0 : array.length;\n if (!length || size < 1) {\n return [];\n }\n var index = 0,\n resIndex = 0,\n result = Array(nativeCeil(length / size));\n\n while (index < length) {\n result[resIndex++] = baseSlice(array, index, (index += size));\n }\n return result;\n}\n\nexport default chunk;\n","/**\n * The base implementation of `_.clamp` which doesn't coerce arguments.\n *\n * @private\n * @param {number} number The number to clamp.\n * @param {number} [lower] The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the clamped number.\n */\nfunction baseClamp(number, lower, upper) {\n if (number === number) {\n if (upper !== undefined) {\n number = number <= upper ? number : upper;\n }\n if (lower !== undefined) {\n number = number >= lower ? number : lower;\n }\n }\n return number;\n}\n\nexport default baseClamp;\n","import baseClamp from './_baseClamp.js';\nimport toNumber from './toNumber.js';\n\n/**\n * Clamps `number` within the inclusive `lower` and `upper` bounds.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Number\n * @param {number} number The number to clamp.\n * @param {number} [lower] The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the clamped number.\n * @example\n *\n * _.clamp(-10, -5, 5);\n * // => -5\n *\n * _.clamp(10, -5, 5);\n * // => 5\n */\nfunction clamp(number, lower, upper) {\n if (upper === undefined) {\n upper = lower;\n lower = undefined;\n }\n if (upper !== undefined) {\n upper = toNumber(upper);\n upper = upper === upper ? upper : 0;\n }\n if (lower !== undefined) {\n lower = toNumber(lower);\n lower = lower === lower ? lower : 0;\n }\n return baseClamp(toNumber(number), lower, upper);\n}\n\nexport default clamp;\n","import ListCache from './_ListCache.js';\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nexport default stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nexport default stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nexport default stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nexport default stackHas;\n","import ListCache from './_ListCache.js';\nimport Map from './_Map.js';\nimport MapCache from './_MapCache.js';\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nexport default stackSet;\n","import ListCache from './_ListCache.js';\nimport stackClear from './_stackClear.js';\nimport stackDelete from './_stackDelete.js';\nimport stackGet from './_stackGet.js';\nimport stackHas from './_stackHas.js';\nimport stackSet from './_stackSet.js';\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nexport default Stack;\n","import copyObject from './_copyObject.js';\nimport keys from './keys.js';\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\nexport default baseAssign;\n","import copyObject from './_copyObject.js';\nimport keysIn from './keysIn.js';\n\n/**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n}\n\nexport default baseAssignIn;\n","import root from './_root.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\nexport default cloneBuffer;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nexport default arrayFilter;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nexport default stubArray;\n","import arrayFilter from './_arrayFilter.js';\nimport stubArray from './stubArray.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nexport default getSymbols;\n","import copyObject from './_copyObject.js';\nimport getSymbols from './_getSymbols.js';\n\n/**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\nexport default copySymbols;\n","import arrayPush from './_arrayPush.js';\nimport getPrototype from './_getPrototype.js';\nimport getSymbols from './_getSymbols.js';\nimport stubArray from './stubArray.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result = [];\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n return result;\n};\n\nexport default getSymbolsIn;\n","import copyObject from './_copyObject.js';\nimport getSymbolsIn from './_getSymbolsIn.js';\n\n/**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n}\n\nexport default copySymbolsIn;\n","import arrayPush from './_arrayPush.js';\nimport isArray from './isArray.js';\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nexport default baseGetAllKeys;\n","import baseGetAllKeys from './_baseGetAllKeys.js';\nimport getSymbols from './_getSymbols.js';\nimport keys from './keys.js';\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nexport default getAllKeys;\n","import baseGetAllKeys from './_baseGetAllKeys.js';\nimport getSymbolsIn from './_getSymbolsIn.js';\nimport keysIn from './keysIn.js';\n\n/**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n}\n\nexport default getAllKeysIn;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nexport default DataView;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nexport default Promise;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nexport default Set;\n","import DataView from './_DataView.js';\nimport Map from './_Map.js';\nimport Promise from './_Promise.js';\nimport Set from './_Set.js';\nimport WeakMap from './_WeakMap.js';\nimport baseGetTag from './_baseGetTag.js';\nimport toSource from './_toSource.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nexport default getTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = new array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\nexport default initCloneArray;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nexport default Uint8Array;\n","import Uint8Array from './_Uint8Array.js';\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\nexport default cloneArrayBuffer;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\nexport default cloneDataView;\n","/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\nexport default cloneRegExp;\n","import Symbol from './_Symbol.js';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\nexport default cloneSymbol;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\nexport default cloneTypedArray;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\nimport cloneDataView from './_cloneDataView.js';\nimport cloneRegExp from './_cloneRegExp.js';\nimport cloneSymbol from './_cloneSymbol.js';\nimport cloneTypedArray from './_cloneTypedArray.js';\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return new Ctor;\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return new Ctor;\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\nexport default initCloneByTag;\n","import baseCreate from './_baseCreate.js';\nimport getPrototype from './_getPrototype.js';\nimport isPrototype from './_isPrototype.js';\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\nexport default initCloneObject;\n","import getTag from './_getTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]';\n\n/**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\nfunction baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n}\n\nexport default baseIsMap;\n","import baseIsMap from './_baseIsMap.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsMap = nodeUtil && nodeUtil.isMap;\n\n/**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\nvar isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\nexport default isMap;\n","import getTag from './_getTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar setTag = '[object Set]';\n\n/**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\nfunction baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n}\n\nexport default baseIsSet;\n","import baseIsSet from './_baseIsSet.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsSet = nodeUtil && nodeUtil.isSet;\n\n/**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\nvar isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\nexport default isSet;\n","import Stack from './_Stack.js';\nimport arrayEach from './_arrayEach.js';\nimport assignValue from './_assignValue.js';\nimport baseAssign from './_baseAssign.js';\nimport baseAssignIn from './_baseAssignIn.js';\nimport cloneBuffer from './_cloneBuffer.js';\nimport copyArray from './_copyArray.js';\nimport copySymbols from './_copySymbols.js';\nimport copySymbolsIn from './_copySymbolsIn.js';\nimport getAllKeys from './_getAllKeys.js';\nimport getAllKeysIn from './_getAllKeysIn.js';\nimport getTag from './_getTag.js';\nimport initCloneArray from './_initCloneArray.js';\nimport initCloneByTag from './_initCloneByTag.js';\nimport initCloneObject from './_initCloneObject.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isMap from './isMap.js';\nimport isObject from './isObject.js';\nimport isSet from './isSet.js';\nimport keys from './keys.js';\nimport keysIn from './keysIn.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat\n ? copySymbolsIn(value, baseAssignIn(result, value))\n : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull\n ? (isFlat ? getAllKeysIn : getAllKeys)\n : (isFlat ? keysIn : keys);\n\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n}\n\nexport default baseClone;\n","import baseClone from './_baseClone.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * Creates a shallow clone of `value`.\n *\n * **Note:** This method is loosely based on the\n * [structured clone algorithm](https://mdn.io/Structured_clone_algorithm)\n * and supports cloning arrays, array buffers, booleans, date objects, maps,\n * numbers, `Object` objects, regexes, sets, strings, symbols, and typed\n * arrays. The own enumerable properties of `arguments` objects are cloned\n * as plain objects. An empty object is returned for uncloneable values such\n * as error objects, functions, DOM nodes, and WeakMaps.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to clone.\n * @returns {*} Returns the cloned value.\n * @see _.cloneDeep\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var shallow = _.clone(objects);\n * console.log(shallow[0] === objects[0]);\n * // => true\n */\nfunction clone(value) {\n return baseClone(value, CLONE_SYMBOLS_FLAG);\n}\n\nexport default clone;\n","import baseClone from './_baseClone.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\nfunction cloneDeep(value) {\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n}\n\nexport default cloneDeep;\n","import baseClone from './_baseClone.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * This method is like `_.cloneWith` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @param {Function} [customizer] The function to customize cloning.\n * @returns {*} Returns the deep cloned value.\n * @see _.cloneWith\n * @example\n *\n * function customizer(value) {\n * if (_.isElement(value)) {\n * return value.cloneNode(true);\n * }\n * }\n *\n * var el = _.cloneDeepWith(document.body, customizer);\n *\n * console.log(el === document.body);\n * // => false\n * console.log(el.nodeName);\n * // => 'BODY'\n * console.log(el.childNodes.length);\n * // => 20\n */\nfunction cloneDeepWith(value, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG, customizer);\n}\n\nexport default cloneDeepWith;\n","import baseClone from './_baseClone.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * This method is like `_.clone` except that it accepts `customizer` which\n * is invoked to produce the cloned value. If `customizer` returns `undefined`,\n * cloning is handled by the method instead. The `customizer` is invoked with\n * up to four arguments; (value [, index|key, object, stack]).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to clone.\n * @param {Function} [customizer] The function to customize cloning.\n * @returns {*} Returns the cloned value.\n * @see _.cloneDeepWith\n * @example\n *\n * function customizer(value) {\n * if (_.isElement(value)) {\n * return value.cloneNode(false);\n * }\n * }\n *\n * var el = _.cloneWith(document.body, customizer);\n *\n * console.log(el === document.body);\n * // => false\n * console.log(el.nodeName);\n * // => 'BODY'\n * console.log(el.childNodes.length);\n * // => 0\n */\nfunction cloneWith(value, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return baseClone(value, CLONE_SYMBOLS_FLAG, customizer);\n}\n\nexport default cloneWith;\n","import LodashWrapper from './_LodashWrapper.js';\n\n/**\n * Executes the chain sequence and returns the wrapped result.\n *\n * @name commit\n * @memberOf _\n * @since 3.2.0\n * @category Seq\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var array = [1, 2];\n * var wrapped = _(array).push(3);\n *\n * console.log(array);\n * // => [1, 2]\n *\n * wrapped = wrapped.commit();\n * console.log(array);\n * // => [1, 2, 3]\n *\n * wrapped.last();\n * // => 3\n *\n * console.log(array);\n * // => [1, 2, 3]\n */\nfunction wrapperCommit() {\n return new LodashWrapper(this.value(), this.__chain__);\n}\n\nexport default wrapperCommit;\n","/**\n * Creates an array with all falsey values removed. The values `false`, `null`,\n * `0`, `\"\"`, `undefined`, and `NaN` are falsey.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to compact.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.compact([0, 1, false, 2, '', 3]);\n * // => [1, 2, 3]\n */\nfunction compact(array) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (value) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nexport default compact;\n","import arrayPush from './_arrayPush.js';\nimport baseFlatten from './_baseFlatten.js';\nimport copyArray from './_copyArray.js';\nimport isArray from './isArray.js';\n\n/**\n * Creates a new array concatenating `array` with any additional arrays\n * and/or values.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to concatenate.\n * @param {...*} [values] The values to concatenate.\n * @returns {Array} Returns the new concatenated array.\n * @example\n *\n * var array = [1];\n * var other = _.concat(array, 2, [3], [[4]]);\n *\n * console.log(other);\n * // => [1, 2, 3, [4]]\n *\n * console.log(array);\n * // => [1]\n */\nfunction concat() {\n var length = arguments.length;\n if (!length) {\n return [];\n }\n var args = Array(length - 1),\n array = arguments[0],\n index = length;\n\n while (index--) {\n args[index - 1] = arguments[index];\n }\n return arrayPush(isArray(array) ? copyArray(array) : [array], baseFlatten(args, 1));\n}\n\nexport default concat;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nexport default setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nexport default setCacheHas;\n","import MapCache from './_MapCache.js';\nimport setCacheAdd from './_setCacheAdd.js';\nimport setCacheHas from './_setCacheHas.js';\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nexport default SetCache;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nexport default arraySome;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nexport default cacheHas;\n","import SetCache from './_SetCache.js';\nimport arraySome from './_arraySome.js';\nimport cacheHas from './_cacheHas.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nexport default equalArrays;\n","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nexport default mapToArray;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nexport default setToArray;\n","import Symbol from './_Symbol.js';\nimport Uint8Array from './_Uint8Array.js';\nimport eq from './eq.js';\nimport equalArrays from './_equalArrays.js';\nimport mapToArray from './_mapToArray.js';\nimport setToArray from './_setToArray.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nexport default equalByTag;\n","import getAllKeys from './_getAllKeys.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nexport default equalObjects;\n","import Stack from './_Stack.js';\nimport equalArrays from './_equalArrays.js';\nimport equalByTag from './_equalByTag.js';\nimport equalObjects from './_equalObjects.js';\nimport getTag from './_getTag.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nexport default baseIsEqualDeep;\n","import baseIsEqualDeep from './_baseIsEqualDeep.js';\nimport isObjectLike from './isObjectLike.js';\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nexport default baseIsEqual;\n","import Stack from './_Stack.js';\nimport baseIsEqual from './_baseIsEqual.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\nexport default baseIsMatch;\n","import isObject from './isObject.js';\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nexport default isStrictComparable;\n","import isStrictComparable from './_isStrictComparable.js';\nimport keys from './keys.js';\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\nexport default getMatchData;\n","/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\nexport default matchesStrictComparable;\n","import baseIsMatch from './_baseIsMatch.js';\nimport getMatchData from './_getMatchData.js';\nimport matchesStrictComparable from './_matchesStrictComparable.js';\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\nexport default baseMatches;\n","/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nexport default baseHasIn;\n","import castPath from './_castPath.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isIndex from './_isIndex.js';\nimport isLength from './isLength.js';\nimport toKey from './_toKey.js';\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\nexport default hasPath;\n","import baseHasIn from './_baseHasIn.js';\nimport hasPath from './_hasPath.js';\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\nexport default hasIn;\n","import baseIsEqual from './_baseIsEqual.js';\nimport get from './get.js';\nimport hasIn from './hasIn.js';\nimport isKey from './_isKey.js';\nimport isStrictComparable from './_isStrictComparable.js';\nimport matchesStrictComparable from './_matchesStrictComparable.js';\nimport toKey from './_toKey.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\n\nexport default baseMatchesProperty;\n","/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\nexport default baseProperty;\n","import baseGet from './_baseGet.js';\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\nexport default basePropertyDeep;\n","import baseProperty from './_baseProperty.js';\nimport basePropertyDeep from './_basePropertyDeep.js';\nimport isKey from './_isKey.js';\nimport toKey from './_toKey.js';\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nexport default property;\n","import baseMatches from './_baseMatches.js';\nimport baseMatchesProperty from './_baseMatchesProperty.js';\nimport identity from './identity.js';\nimport isArray from './isArray.js';\nimport property from './property.js';\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nexport default baseIteratee;\n","import apply from './_apply.js';\nimport arrayMap from './_arrayMap.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseRest from './_baseRest.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that iterates over `pairs` and invokes the corresponding\n * function of the first predicate to return truthy. The predicate-function\n * pairs are invoked with the `this` binding and arguments of the created\n * function.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {Array} pairs The predicate-function pairs.\n * @returns {Function} Returns the new composite function.\n * @example\n *\n * var func = _.cond([\n * [_.matches({ 'a': 1 }), _.constant('matches A')],\n * [_.conforms({ 'b': _.isNumber }), _.constant('matches B')],\n * [_.stubTrue, _.constant('no match')]\n * ]);\n *\n * func({ 'a': 1, 'b': 2 });\n * // => 'matches A'\n *\n * func({ 'a': 0, 'b': 1 });\n * // => 'matches B'\n *\n * func({ 'a': '1', 'b': '2' });\n * // => 'no match'\n */\nfunction cond(pairs) {\n var length = pairs == null ? 0 : pairs.length,\n toIteratee = baseIteratee;\n\n pairs = !length ? [] : arrayMap(pairs, function(pair) {\n if (typeof pair[1] != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n return [toIteratee(pair[0]), pair[1]];\n });\n\n return baseRest(function(args) {\n var index = -1;\n while (++index < length) {\n var pair = pairs[index];\n if (apply(pair[0], this, args)) {\n return apply(pair[1], this, args);\n }\n }\n });\n}\n\nexport default cond;\n","/**\n * The base implementation of `_.conformsTo` which accepts `props` to check.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property predicates to conform to.\n * @returns {boolean} Returns `true` if `object` conforms, else `false`.\n */\nfunction baseConformsTo(object, source, props) {\n var length = props.length;\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (length--) {\n var key = props[length],\n predicate = source[key],\n value = object[key];\n\n if ((value === undefined && !(key in object)) || !predicate(value)) {\n return false;\n }\n }\n return true;\n}\n\nexport default baseConformsTo;\n","import baseConformsTo from './_baseConformsTo.js';\nimport keys from './keys.js';\n\n/**\n * The base implementation of `_.conforms` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property predicates to conform to.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseConforms(source) {\n var props = keys(source);\n return function(object) {\n return baseConformsTo(object, source, props);\n };\n}\n\nexport default baseConforms;\n","import baseClone from './_baseClone.js';\nimport baseConforms from './_baseConforms.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1;\n\n/**\n * Creates a function that invokes the predicate properties of `source` with\n * the corresponding property values of a given object, returning `true` if\n * all predicates return truthy, else `false`.\n *\n * **Note:** The created function is equivalent to `_.conformsTo` with\n * `source` partially applied.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {Object} source The object of property predicates to conform to.\n * @returns {Function} Returns the new spec function.\n * @example\n *\n * var objects = [\n * { 'a': 2, 'b': 1 },\n * { 'a': 1, 'b': 2 }\n * ];\n *\n * _.filter(objects, _.conforms({ 'b': function(n) { return n > 1; } }));\n * // => [{ 'a': 1, 'b': 2 }]\n */\nfunction conforms(source) {\n return baseConforms(baseClone(source, CLONE_DEEP_FLAG));\n}\n\nexport default conforms;\n","import baseConformsTo from './_baseConformsTo.js';\nimport keys from './keys.js';\n\n/**\n * Checks if `object` conforms to `source` by invoking the predicate\n * properties of `source` with the corresponding property values of `object`.\n *\n * **Note:** This method is equivalent to `_.conforms` when `source` is\n * partially applied.\n *\n * @static\n * @memberOf _\n * @since 4.14.0\n * @category Lang\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property predicates to conform to.\n * @returns {boolean} Returns `true` if `object` conforms, else `false`.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n *\n * _.conformsTo(object, { 'b': function(n) { return n > 1; } });\n * // => true\n *\n * _.conformsTo(object, { 'b': function(n) { return n > 2; } });\n * // => false\n */\nfunction conformsTo(object, source) {\n return source == null || baseConformsTo(object, source, keys(source));\n}\n\nexport default conformsTo;\n","/**\n * A specialized version of `baseAggregator` for arrays.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\nfunction arrayAggregator(array, setter, iteratee, accumulator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n var value = array[index];\n setter(accumulator, value, iteratee(value), array);\n }\n return accumulator;\n}\n\nexport default arrayAggregator;\n","/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nexport default createBaseFor;\n","import createBaseFor from './_createBaseFor.js';\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nexport default baseFor;\n","import baseFor from './_baseFor.js';\nimport keys from './keys.js';\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nexport default baseForOwn;\n","import isArrayLike from './isArrayLike.js';\n\n/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n}\n\nexport default createBaseEach;\n","import baseForOwn from './_baseForOwn.js';\nimport createBaseEach from './_createBaseEach.js';\n\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEach = createBaseEach(baseForOwn);\n\nexport default baseEach;\n","import baseEach from './_baseEach.js';\n\n/**\n * Aggregates elements of `collection` on `accumulator` with keys transformed\n * by `iteratee` and values set by `setter`.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\nfunction baseAggregator(collection, setter, iteratee, accumulator) {\n baseEach(collection, function(value, key, collection) {\n setter(accumulator, value, iteratee(value), collection);\n });\n return accumulator;\n}\n\nexport default baseAggregator;\n","import arrayAggregator from './_arrayAggregator.js';\nimport baseAggregator from './_baseAggregator.js';\nimport baseIteratee from './_baseIteratee.js';\nimport isArray from './isArray.js';\n\n/**\n * Creates a function like `_.groupBy`.\n *\n * @private\n * @param {Function} setter The function to set accumulator values.\n * @param {Function} [initializer] The accumulator object initializer.\n * @returns {Function} Returns the new aggregator function.\n */\nfunction createAggregator(setter, initializer) {\n return function(collection, iteratee) {\n var func = isArray(collection) ? arrayAggregator : baseAggregator,\n accumulator = initializer ? initializer() : {};\n\n return func(collection, setter, baseIteratee(iteratee, 2), accumulator);\n };\n}\n\nexport default createAggregator;\n","import baseAssignValue from './_baseAssignValue.js';\nimport createAggregator from './_createAggregator.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The corresponding value of\n * each key is the number of times the key was returned by `iteratee`. The\n * iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * _.countBy([6.1, 4.2, 6.3], Math.floor);\n * // => { '4': 1, '6': 2 }\n *\n * // The `_.property` iteratee shorthand.\n * _.countBy(['one', 'two', 'three'], 'length');\n * // => { '3': 2, '5': 1 }\n */\nvar countBy = createAggregator(function(result, value, key) {\n if (hasOwnProperty.call(result, key)) {\n ++result[key];\n } else {\n baseAssignValue(result, key, 1);\n }\n});\n\nexport default countBy;\n","import baseAssign from './_baseAssign.js';\nimport baseCreate from './_baseCreate.js';\n\n/**\n * Creates an object that inherits from the `prototype` object. If a\n * `properties` object is given, its own enumerable string keyed properties\n * are assigned to the created object.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Object\n * @param {Object} prototype The object to inherit from.\n * @param {Object} [properties] The properties to assign to the object.\n * @returns {Object} Returns the new object.\n * @example\n *\n * function Shape() {\n * this.x = 0;\n * this.y = 0;\n * }\n *\n * function Circle() {\n * Shape.call(this);\n * }\n *\n * Circle.prototype = _.create(Shape.prototype, {\n * 'constructor': Circle\n * });\n *\n * var circle = new Circle;\n * circle instanceof Circle;\n * // => true\n *\n * circle instanceof Shape;\n * // => true\n */\nfunction create(prototype, properties) {\n var result = baseCreate(prototype);\n return properties == null ? result : baseAssign(result, properties);\n}\n\nexport default create;\n","import createWrap from './_createWrap.js';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_CURRY_FLAG = 8;\n\n/**\n * Creates a function that accepts arguments of `func` and either invokes\n * `func` returning its result, if at least `arity` number of arguments have\n * been provided, or returns a function that accepts the remaining `func`\n * arguments, and so on. The arity of `func` may be specified if `func.length`\n * is not sufficient.\n *\n * The `_.curry.placeholder` value, which defaults to `_` in monolithic builds,\n * may be used as a placeholder for provided arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of curried functions.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Function\n * @param {Function} func The function to curry.\n * @param {number} [arity=func.length] The arity of `func`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the new curried function.\n * @example\n *\n * var abc = function(a, b, c) {\n * return [a, b, c];\n * };\n *\n * var curried = _.curry(abc);\n *\n * curried(1)(2)(3);\n * // => [1, 2, 3]\n *\n * curried(1, 2)(3);\n * // => [1, 2, 3]\n *\n * curried(1, 2, 3);\n * // => [1, 2, 3]\n *\n * // Curried with placeholders.\n * curried(1)(_, 3)(2);\n * // => [1, 2, 3]\n */\nfunction curry(func, arity, guard) {\n arity = guard ? undefined : arity;\n var result = createWrap(func, WRAP_CURRY_FLAG, undefined, undefined, undefined, undefined, undefined, arity);\n result.placeholder = curry.placeholder;\n return result;\n}\n\n// Assign default placeholders.\ncurry.placeholder = {};\n\nexport default curry;\n","import createWrap from './_createWrap.js';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_CURRY_RIGHT_FLAG = 16;\n\n/**\n * This method is like `_.curry` except that arguments are applied to `func`\n * in the manner of `_.partialRight` instead of `_.partial`.\n *\n * The `_.curryRight.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for provided arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of curried functions.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} func The function to curry.\n * @param {number} [arity=func.length] The arity of `func`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the new curried function.\n * @example\n *\n * var abc = function(a, b, c) {\n * return [a, b, c];\n * };\n *\n * var curried = _.curryRight(abc);\n *\n * curried(3)(2)(1);\n * // => [1, 2, 3]\n *\n * curried(2, 3)(1);\n * // => [1, 2, 3]\n *\n * curried(1, 2, 3);\n * // => [1, 2, 3]\n *\n * // Curried with placeholders.\n * curried(3)(1, _)(2);\n * // => [1, 2, 3]\n */\nfunction curryRight(func, arity, guard) {\n arity = guard ? undefined : arity;\n var result = createWrap(func, WRAP_CURRY_RIGHT_FLAG, undefined, undefined, undefined, undefined, undefined, arity);\n result.placeholder = curryRight.placeholder;\n return result;\n}\n\n// Assign default placeholders.\ncurryRight.placeholder = {};\n\nexport default curryRight;\n","import root from './_root.js';\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nexport default now;\n","import isObject from './isObject.js';\nimport now from './now.js';\nimport toNumber from './toNumber.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nexport default debounce;\n","/**\n * Checks `value` to determine whether a default value should be returned in\n * its place. The `defaultValue` is returned if `value` is `NaN`, `null`,\n * or `undefined`.\n *\n * @static\n * @memberOf _\n * @since 4.14.0\n * @category Util\n * @param {*} value The value to check.\n * @param {*} defaultValue The default value.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * _.defaultTo(1, 10);\n * // => 1\n *\n * _.defaultTo(undefined, 10);\n * // => 10\n */\nfunction defaultTo(value, defaultValue) {\n return (value == null || value !== value) ? defaultValue : value;\n}\n\nexport default defaultTo;\n","import baseRest from './_baseRest.js';\nimport eq from './eq.js';\nimport isIterateeCall from './_isIterateeCall.js';\nimport keysIn from './keysIn.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns own and inherited enumerable string keyed properties of source\n * objects to the destination object for all destination properties that\n * resolve to `undefined`. Source objects are applied from left to right.\n * Once a property is set, additional values of the same property are ignored.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.defaultsDeep\n * @example\n *\n * _.defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\nvar defaults = baseRest(function(object, sources) {\n object = Object(object);\n\n var index = -1;\n var length = sources.length;\n var guard = length > 2 ? sources[2] : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n length = 1;\n }\n\n while (++index < length) {\n var source = sources[index];\n var props = keysIn(source);\n var propsIndex = -1;\n var propsLength = props.length;\n\n while (++propsIndex < propsLength) {\n var key = props[propsIndex];\n var value = object[key];\n\n if (value === undefined ||\n (eq(value, objectProto[key]) && !hasOwnProperty.call(object, key))) {\n object[key] = source[key];\n }\n }\n }\n\n return object;\n});\n\nexport default defaults;\n","import baseAssignValue from './_baseAssignValue.js';\nimport eq from './eq.js';\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nexport default assignMergeValue;\n","import isArrayLike from './isArrayLike.js';\nimport isObjectLike from './isObjectLike.js';\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\nexport default isArrayLikeObject;\n","/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n}\n\nexport default safeGet;\n","import copyObject from './_copyObject.js';\nimport keysIn from './keysIn.js';\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\n}\n\nexport default toPlainObject;\n","import assignMergeValue from './_assignMergeValue.js';\nimport cloneBuffer from './_cloneBuffer.js';\nimport cloneTypedArray from './_cloneTypedArray.js';\nimport copyArray from './_copyArray.js';\nimport initCloneObject from './_initCloneObject.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isArrayLikeObject from './isArrayLikeObject.js';\nimport isBuffer from './isBuffer.js';\nimport isFunction from './isFunction.js';\nimport isObject from './isObject.js';\nimport isPlainObject from './isPlainObject.js';\nimport isTypedArray from './isTypedArray.js';\nimport safeGet from './_safeGet.js';\nimport toPlainObject from './toPlainObject.js';\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n}\n\nexport default baseMergeDeep;\n","import Stack from './_Stack.js';\nimport assignMergeValue from './_assignMergeValue.js';\nimport baseFor from './_baseFor.js';\nimport baseMergeDeep from './_baseMergeDeep.js';\nimport isObject from './isObject.js';\nimport keysIn from './keysIn.js';\nimport safeGet from './_safeGet.js';\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n}\n\nexport default baseMerge;\n","import baseMerge from './_baseMerge.js';\nimport isObject from './isObject.js';\n\n/**\n * Used by `_.defaultsDeep` to customize its `_.merge` use to merge source\n * objects into destination objects that are passed thru.\n *\n * @private\n * @param {*} objValue The destination value.\n * @param {*} srcValue The source value.\n * @param {string} key The key of the property to merge.\n * @param {Object} object The parent object of `objValue`.\n * @param {Object} source The parent object of `srcValue`.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n * @returns {*} Returns the value to assign.\n */\nfunction customDefaultsMerge(objValue, srcValue, key, object, source, stack) {\n if (isObject(objValue) && isObject(srcValue)) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, objValue);\n baseMerge(objValue, srcValue, undefined, customDefaultsMerge, stack);\n stack['delete'](srcValue);\n }\n return objValue;\n}\n\nexport default customDefaultsMerge;\n","import baseMerge from './_baseMerge.js';\nimport createAssigner from './_createAssigner.js';\n\n/**\n * This method is like `_.merge` except that it accepts `customizer` which\n * is invoked to produce the merged values of the destination and source\n * properties. If `customizer` returns `undefined`, merging is handled by the\n * method instead. The `customizer` is invoked with six arguments:\n * (objValue, srcValue, key, object, source, stack).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} customizer The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * function customizer(objValue, srcValue) {\n * if (_.isArray(objValue)) {\n * return objValue.concat(srcValue);\n * }\n * }\n *\n * var object = { 'a': [1], 'b': [2] };\n * var other = { 'a': [3], 'b': [4] };\n *\n * _.mergeWith(object, other, customizer);\n * // => { 'a': [1, 3], 'b': [2, 4] }\n */\nvar mergeWith = createAssigner(function(object, source, srcIndex, customizer) {\n baseMerge(object, source, srcIndex, customizer);\n});\n\nexport default mergeWith;\n","import apply from './_apply.js';\nimport baseRest from './_baseRest.js';\nimport customDefaultsMerge from './_customDefaultsMerge.js';\nimport mergeWith from './mergeWith.js';\n\n/**\n * This method is like `_.defaults` except that it recursively assigns\n * default properties.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 3.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.defaults\n * @example\n *\n * _.defaultsDeep({ 'a': { 'b': 2 } }, { 'a': { 'b': 1, 'c': 3 } });\n * // => { 'a': { 'b': 2, 'c': 3 } }\n */\nvar defaultsDeep = baseRest(function(args) {\n args.push(undefined, customDefaultsMerge);\n return apply(mergeWith, undefined, args);\n});\n\nexport default defaultsDeep;\n","/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * The base implementation of `_.delay` and `_.defer` which accepts `args`\n * to provide to `func`.\n *\n * @private\n * @param {Function} func The function to delay.\n * @param {number} wait The number of milliseconds to delay invocation.\n * @param {Array} args The arguments to provide to `func`.\n * @returns {number|Object} Returns the timer id or timeout object.\n */\nfunction baseDelay(func, wait, args) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n return setTimeout(function() { func.apply(undefined, args); }, wait);\n}\n\nexport default baseDelay;\n","import baseDelay from './_baseDelay.js';\nimport baseRest from './_baseRest.js';\n\n/**\n * Defers invoking the `func` until the current call stack has cleared. Any\n * additional arguments are provided to `func` when it's invoked.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to defer.\n * @param {...*} [args] The arguments to invoke `func` with.\n * @returns {number} Returns the timer id.\n * @example\n *\n * _.defer(function(text) {\n * console.log(text);\n * }, 'deferred');\n * // => Logs 'deferred' after one millisecond.\n */\nvar defer = baseRest(function(func, args) {\n return baseDelay(func, 1, args);\n});\n\nexport default defer;\n","import baseDelay from './_baseDelay.js';\nimport baseRest from './_baseRest.js';\nimport toNumber from './toNumber.js';\n\n/**\n * Invokes `func` after `wait` milliseconds. Any additional arguments are\n * provided to `func` when it's invoked.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to delay.\n * @param {number} wait The number of milliseconds to delay invocation.\n * @param {...*} [args] The arguments to invoke `func` with.\n * @returns {number} Returns the timer id.\n * @example\n *\n * _.delay(function(text) {\n * console.log(text);\n * }, 1000, 'later');\n * // => Logs 'later' after one second.\n */\nvar delay = baseRest(function(func, wait, args) {\n return baseDelay(func, toNumber(wait) || 0, args);\n});\n\nexport default delay;\n","/**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludesWith(array, value, comparator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n return false;\n}\n\nexport default arrayIncludesWith;\n","import SetCache from './_SetCache.js';\nimport arrayIncludes from './_arrayIncludes.js';\nimport arrayIncludesWith from './_arrayIncludesWith.js';\nimport arrayMap from './_arrayMap.js';\nimport baseUnary from './_baseUnary.js';\nimport cacheHas from './_cacheHas.js';\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * The base implementation of methods like `_.difference` without support\n * for excluding multiple arrays or iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Array} values The values to exclude.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n */\nfunction baseDifference(array, values, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n isCommon = true,\n length = array.length,\n result = [],\n valuesLength = values.length;\n\n if (!length) {\n return result;\n }\n if (iteratee) {\n values = arrayMap(values, baseUnary(iteratee));\n }\n if (comparator) {\n includes = arrayIncludesWith;\n isCommon = false;\n }\n else if (values.length >= LARGE_ARRAY_SIZE) {\n includes = cacheHas;\n isCommon = false;\n values = new SetCache(values);\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee == null ? value : iteratee(value);\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var valuesIndex = valuesLength;\n while (valuesIndex--) {\n if (values[valuesIndex] === computed) {\n continue outer;\n }\n }\n result.push(value);\n }\n else if (!includes(values, computed, comparator)) {\n result.push(value);\n }\n }\n return result;\n}\n\nexport default baseDifference;\n","import baseDifference from './_baseDifference.js';\nimport baseFlatten from './_baseFlatten.js';\nimport baseRest from './_baseRest.js';\nimport isArrayLikeObject from './isArrayLikeObject.js';\n\n/**\n * Creates an array of `array` values not included in the other given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * **Note:** Unlike `_.pullAll`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.without, _.xor\n * @example\n *\n * _.difference([2, 1], [2, 3]);\n * // => [1]\n */\nvar difference = baseRest(function(array, values) {\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true))\n : [];\n});\n\nexport default difference;\n","/**\n * Gets the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the last element of `array`.\n * @example\n *\n * _.last([1, 2, 3]);\n * // => 3\n */\nfunction last(array) {\n var length = array == null ? 0 : array.length;\n return length ? array[length - 1] : undefined;\n}\n\nexport default last;\n","import baseDifference from './_baseDifference.js';\nimport baseFlatten from './_baseFlatten.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseRest from './_baseRest.js';\nimport isArrayLikeObject from './isArrayLikeObject.js';\nimport last from './last.js';\n\n/**\n * This method is like `_.difference` except that it accepts `iteratee` which\n * is invoked for each element of `array` and `values` to generate the criterion\n * by which they're compared. The order and references of result values are\n * determined by the first array. The iteratee is invoked with one argument:\n * (value).\n *\n * **Note:** Unlike `_.pullAllBy`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.differenceBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n * // => [1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.differenceBy([{ 'x': 2 }, { 'x': 1 }], [{ 'x': 1 }], 'x');\n * // => [{ 'x': 2 }]\n */\nvar differenceBy = baseRest(function(array, values) {\n var iteratee = last(values);\n if (isArrayLikeObject(iteratee)) {\n iteratee = undefined;\n }\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), baseIteratee(iteratee, 2))\n : [];\n});\n\nexport default differenceBy;\n","import baseDifference from './_baseDifference.js';\nimport baseFlatten from './_baseFlatten.js';\nimport baseRest from './_baseRest.js';\nimport isArrayLikeObject from './isArrayLikeObject.js';\nimport last from './last.js';\n\n/**\n * This method is like `_.difference` except that it accepts `comparator`\n * which is invoked to compare elements of `array` to `values`. The order and\n * references of result values are determined by the first array. The comparator\n * is invoked with two arguments: (arrVal, othVal).\n *\n * **Note:** Unlike `_.pullAllWith`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n *\n * _.differenceWith(objects, [{ 'x': 1, 'y': 2 }], _.isEqual);\n * // => [{ 'x': 2, 'y': 1 }]\n */\nvar differenceWith = baseRest(function(array, values) {\n var comparator = last(values);\n if (isArrayLikeObject(comparator)) {\n comparator = undefined;\n }\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), undefined, comparator)\n : [];\n});\n\nexport default differenceWith;\n","import createMathOperation from './_createMathOperation.js';\n\n/**\n * Divide two numbers.\n *\n * @static\n * @memberOf _\n * @since 4.7.0\n * @category Math\n * @param {number} dividend The first number in a division.\n * @param {number} divisor The second number in a division.\n * @returns {number} Returns the quotient.\n * @example\n *\n * _.divide(6, 4);\n * // => 1.5\n */\nvar divide = createMathOperation(function(dividend, divisor) {\n return dividend / divisor;\n}, 1);\n\nexport default divide;\n","import baseSlice from './_baseSlice.js';\nimport toInteger from './toInteger.js';\n\n/**\n * Creates a slice of `array` with `n` elements dropped from the beginning.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to drop.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.drop([1, 2, 3]);\n * // => [2, 3]\n *\n * _.drop([1, 2, 3], 2);\n * // => [3]\n *\n * _.drop([1, 2, 3], 5);\n * // => []\n *\n * _.drop([1, 2, 3], 0);\n * // => [1, 2, 3]\n */\nfunction drop(array, n, guard) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n return baseSlice(array, n < 0 ? 0 : n, length);\n}\n\nexport default drop;\n","import baseSlice from './_baseSlice.js';\nimport toInteger from './toInteger.js';\n\n/**\n * Creates a slice of `array` with `n` elements dropped from the end.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to drop.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.dropRight([1, 2, 3]);\n * // => [1, 2]\n *\n * _.dropRight([1, 2, 3], 2);\n * // => [1]\n *\n * _.dropRight([1, 2, 3], 5);\n * // => []\n *\n * _.dropRight([1, 2, 3], 0);\n * // => [1, 2, 3]\n */\nfunction dropRight(array, n, guard) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n n = length - n;\n return baseSlice(array, 0, n < 0 ? 0 : n);\n}\n\nexport default dropRight;\n","import baseSlice from './_baseSlice.js';\n\n/**\n * The base implementation of methods like `_.dropWhile` and `_.takeWhile`\n * without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to query.\n * @param {Function} predicate The function invoked per iteration.\n * @param {boolean} [isDrop] Specify dropping elements instead of taking them.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseWhile(array, predicate, isDrop, fromRight) {\n var length = array.length,\n index = fromRight ? length : -1;\n\n while ((fromRight ? index-- : ++index < length) &&\n predicate(array[index], index, array)) {}\n\n return isDrop\n ? baseSlice(array, (fromRight ? 0 : index), (fromRight ? index + 1 : length))\n : baseSlice(array, (fromRight ? index + 1 : 0), (fromRight ? length : index));\n}\n\nexport default baseWhile;\n","import baseIteratee from './_baseIteratee.js';\nimport baseWhile from './_baseWhile.js';\n\n/**\n * Creates a slice of `array` excluding elements dropped from the end.\n * Elements are dropped until `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': false }\n * ];\n *\n * _.dropRightWhile(users, function(o) { return !o.active; });\n * // => objects for ['barney']\n *\n * // The `_.matches` iteratee shorthand.\n * _.dropRightWhile(users, { 'user': 'pebbles', 'active': false });\n * // => objects for ['barney', 'fred']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.dropRightWhile(users, ['active', false]);\n * // => objects for ['barney']\n *\n * // The `_.property` iteratee shorthand.\n * _.dropRightWhile(users, 'active');\n * // => objects for ['barney', 'fred', 'pebbles']\n */\nfunction dropRightWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, baseIteratee(predicate, 3), true, true)\n : [];\n}\n\nexport default dropRightWhile;\n","import baseIteratee from './_baseIteratee.js';\nimport baseWhile from './_baseWhile.js';\n\n/**\n * Creates a slice of `array` excluding elements dropped from the beginning.\n * Elements are dropped until `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.dropWhile(users, function(o) { return !o.active; });\n * // => objects for ['pebbles']\n *\n * // The `_.matches` iteratee shorthand.\n * _.dropWhile(users, { 'user': 'barney', 'active': false });\n * // => objects for ['fred', 'pebbles']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.dropWhile(users, ['active', false]);\n * // => objects for ['pebbles']\n *\n * // The `_.property` iteratee shorthand.\n * _.dropWhile(users, 'active');\n * // => objects for ['barney', 'fred', 'pebbles']\n */\nfunction dropWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, baseIteratee(predicate, 3), true)\n : [];\n}\n\nexport default dropWhile;\n","import identity from './identity.js';\n\n/**\n * Casts `value` to `identity` if it's not a function.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Function} Returns cast function.\n */\nfunction castFunction(value) {\n return typeof value == 'function' ? value : identity;\n}\n\nexport default castFunction;\n","import arrayEach from './_arrayEach.js';\nimport baseEach from './_baseEach.js';\nimport castFunction from './_castFunction.js';\nimport isArray from './isArray.js';\n\n/**\n * Iterates over elements of `collection` and invokes `iteratee` for each element.\n * The iteratee is invoked with three arguments: (value, index|key, collection).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * **Note:** As with other \"Collections\" methods, objects with a \"length\"\n * property are iterated like arrays. To avoid this behavior use `_.forIn`\n * or `_.forOwn` for object iteration.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias each\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n * @see _.forEachRight\n * @example\n *\n * _.forEach([1, 2], function(value) {\n * console.log(value);\n * });\n * // => Logs `1` then `2`.\n *\n * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\nfunction forEach(collection, iteratee) {\n var func = isArray(collection) ? arrayEach : baseEach;\n return func(collection, castFunction(iteratee));\n}\n\nexport default forEach;\n","/**\n * A specialized version of `_.forEachRight` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEachRight(array, iteratee) {\n var length = array == null ? 0 : array.length;\n\n while (length--) {\n if (iteratee(array[length], length, array) === false) {\n break;\n }\n }\n return array;\n}\n\nexport default arrayEachRight;\n","import createBaseFor from './_createBaseFor.js';\n\n/**\n * This function is like `baseFor` except that it iterates over properties\n * in the opposite order.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseForRight = createBaseFor(true);\n\nexport default baseForRight;\n","import baseForRight from './_baseForRight.js';\nimport keys from './keys.js';\n\n/**\n * The base implementation of `_.forOwnRight` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwnRight(object, iteratee) {\n return object && baseForRight(object, iteratee, keys);\n}\n\nexport default baseForOwnRight;\n","import baseForOwnRight from './_baseForOwnRight.js';\nimport createBaseEach from './_createBaseEach.js';\n\n/**\n * The base implementation of `_.forEachRight` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEachRight = createBaseEach(baseForOwnRight, true);\n\nexport default baseEachRight;\n","import arrayEachRight from './_arrayEachRight.js';\nimport baseEachRight from './_baseEachRight.js';\nimport castFunction from './_castFunction.js';\nimport isArray from './isArray.js';\n\n/**\n * This method is like `_.forEach` except that it iterates over elements of\n * `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @alias eachRight\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n * @see _.forEach\n * @example\n *\n * _.forEachRight([1, 2], function(value) {\n * console.log(value);\n * });\n * // => Logs `2` then `1`.\n */\nfunction forEachRight(collection, iteratee) {\n var func = isArray(collection) ? arrayEachRight : baseEachRight;\n return func(collection, castFunction(iteratee));\n}\n\nexport default forEachRight;\n","import baseClamp from './_baseClamp.js';\nimport baseToString from './_baseToString.js';\nimport toInteger from './toInteger.js';\nimport toString from './toString.js';\n\n/**\n * Checks if `string` ends with the given target string.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {string} [target] The string to search for.\n * @param {number} [position=string.length] The position to search up to.\n * @returns {boolean} Returns `true` if `string` ends with `target`,\n * else `false`.\n * @example\n *\n * _.endsWith('abc', 'c');\n * // => true\n *\n * _.endsWith('abc', 'b');\n * // => false\n *\n * _.endsWith('abc', 'b', 2);\n * // => true\n */\nfunction endsWith(string, target, position) {\n string = toString(string);\n target = baseToString(target);\n\n var length = string.length;\n position = position === undefined\n ? length\n : baseClamp(toInteger(position), 0, length);\n\n var end = position;\n position -= target.length;\n return position >= 0 && string.slice(position, end) == target;\n}\n\nexport default endsWith;\n","import arrayMap from './_arrayMap.js';\n\n/**\n * The base implementation of `_.toPairs` and `_.toPairsIn` which creates an array\n * of key-value pairs for `object` corresponding to the property names of `props`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} props The property names to get values for.\n * @returns {Object} Returns the key-value pairs.\n */\nfunction baseToPairs(object, props) {\n return arrayMap(props, function(key) {\n return [key, object[key]];\n });\n}\n\nexport default baseToPairs;\n","/**\n * Converts `set` to its value-value pairs.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the value-value pairs.\n */\nfunction setToPairs(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = [value, value];\n });\n return result;\n}\n\nexport default setToPairs;\n","import baseToPairs from './_baseToPairs.js';\nimport getTag from './_getTag.js';\nimport mapToArray from './_mapToArray.js';\nimport setToPairs from './_setToPairs.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n setTag = '[object Set]';\n\n/**\n * Creates a `_.toPairs` or `_.toPairsIn` function.\n *\n * @private\n * @param {Function} keysFunc The function to get the keys of a given object.\n * @returns {Function} Returns the new pairs function.\n */\nfunction createToPairs(keysFunc) {\n return function(object) {\n var tag = getTag(object);\n if (tag == mapTag) {\n return mapToArray(object);\n }\n if (tag == setTag) {\n return setToPairs(object);\n }\n return baseToPairs(object, keysFunc(object));\n };\n}\n\nexport default createToPairs;\n","import createToPairs from './_createToPairs.js';\nimport keys from './keys.js';\n\n/**\n * Creates an array of own enumerable string keyed-value pairs for `object`\n * which can be consumed by `_.fromPairs`. If `object` is a map or set, its\n * entries are returned.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias entries\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the key-value pairs.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.toPairs(new Foo);\n * // => [['a', 1], ['b', 2]] (iteration order is not guaranteed)\n */\nvar toPairs = createToPairs(keys);\n\nexport default toPairs;\n","import createToPairs from './_createToPairs.js';\nimport keysIn from './keysIn.js';\n\n/**\n * Creates an array of own and inherited enumerable string keyed-value pairs\n * for `object` which can be consumed by `_.fromPairs`. If `object` is a map\n * or set, its entries are returned.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias entriesIn\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the key-value pairs.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.toPairsIn(new Foo);\n * // => [['a', 1], ['b', 2], ['c', 3]] (iteration order is not guaranteed)\n */\nvar toPairsIn = createToPairs(keysIn);\n\nexport default toPairsIn;\n","import basePropertyOf from './_basePropertyOf.js';\n\n/** Used to map characters to HTML entities. */\nvar htmlEscapes = {\n '&': '&amp;',\n '<': '&lt;',\n '>': '&gt;',\n '\"': '&quot;',\n \"'\": '&#39;'\n};\n\n/**\n * Used by `_.escape` to convert characters to HTML entities.\n *\n * @private\n * @param {string} chr The matched character to escape.\n * @returns {string} Returns the escaped character.\n */\nvar escapeHtmlChar = basePropertyOf(htmlEscapes);\n\nexport default escapeHtmlChar;\n","import escapeHtmlChar from './_escapeHtmlChar.js';\nimport toString from './toString.js';\n\n/** Used to match HTML entities and HTML characters. */\nvar reUnescapedHtml = /[&<>\"']/g,\n reHasUnescapedHtml = RegExp(reUnescapedHtml.source);\n\n/**\n * Converts the characters \"&\", \"<\", \">\", '\"', and \"'\" in `string` to their\n * corresponding HTML entities.\n *\n * **Note:** No other characters are escaped. To escape additional\n * characters use a third-party library like [_he_](https://mths.be/he).\n *\n * Though the \">\" character is escaped for symmetry, characters like\n * \">\" and \"/\" don't need escaping in HTML and have no special meaning\n * unless they're part of a tag or unquoted attribute value. See\n * [Mathias Bynens's article](https://mathiasbynens.be/notes/ambiguous-ampersands)\n * (under \"semi-related fun fact\") for more details.\n *\n * When working with HTML you should always\n * [quote attribute values](http://wonko.com/post/html-escaping) to reduce\n * XSS vectors.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category String\n * @param {string} [string=''] The string to escape.\n * @returns {string} Returns the escaped string.\n * @example\n *\n * _.escape('fred, barney, & pebbles');\n * // => 'fred, barney, &amp; pebbles'\n */\nfunction escape(string) {\n string = toString(string);\n return (string && reHasUnescapedHtml.test(string))\n ? string.replace(reUnescapedHtml, escapeHtmlChar)\n : string;\n}\n\nexport default escape;\n","import toString from './toString.js';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g,\n reHasRegExpChar = RegExp(reRegExpChar.source);\n\n/**\n * Escapes the `RegExp` special characters \"^\", \"$\", \"\\\", \".\", \"*\", \"+\",\n * \"?\", \"(\", \")\", \"[\", \"]\", \"{\", \"}\", and \"|\" in `string`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to escape.\n * @returns {string} Returns the escaped string.\n * @example\n *\n * _.escapeRegExp('[lodash](https://lodash.com/)');\n * // => '\\[lodash\\]\\(https://lodash\\.com/\\)'\n */\nfunction escapeRegExp(string) {\n string = toString(string);\n return (string && reHasRegExpChar.test(string))\n ? string.replace(reRegExpChar, '\\\\$&')\n : string;\n}\n\nexport default escapeRegExp;\n","/**\n * A specialized version of `_.every` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`.\n */\nfunction arrayEvery(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (!predicate(array[index], index, array)) {\n return false;\n }\n }\n return true;\n}\n\nexport default arrayEvery;\n","import baseEach from './_baseEach.js';\n\n/**\n * The base implementation of `_.every` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`\n */\nfunction baseEvery(collection, predicate) {\n var result = true;\n baseEach(collection, function(value, index, collection) {\n result = !!predicate(value, index, collection);\n return result;\n });\n return result;\n}\n\nexport default baseEvery;\n","import arrayEvery from './_arrayEvery.js';\nimport baseEvery from './_baseEvery.js';\nimport baseIteratee from './_baseIteratee.js';\nimport isArray from './isArray.js';\nimport isIterateeCall from './_isIterateeCall.js';\n\n/**\n * Checks if `predicate` returns truthy for **all** elements of `collection`.\n * Iteration is stopped once `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * **Note:** This method returns `true` for\n * [empty collections](https://en.wikipedia.org/wiki/Empty_set) because\n * [everything is true](https://en.wikipedia.org/wiki/Vacuous_truth) of\n * elements of empty collections.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`.\n * @example\n *\n * _.every([true, 1, null, 'yes'], Boolean);\n * // => false\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.every(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.every(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.every(users, 'active');\n * // => false\n */\nfunction every(collection, predicate, guard) {\n var func = isArray(collection) ? arrayEvery : baseEvery;\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined;\n }\n return func(collection, baseIteratee(predicate, 3));\n}\n\nexport default every;\n","import baseClamp from './_baseClamp.js';\nimport toInteger from './toInteger.js';\n\n/** Used as references for the maximum length and index of an array. */\nvar MAX_ARRAY_LENGTH = 4294967295;\n\n/**\n * Converts `value` to an integer suitable for use as the length of an\n * array-like object.\n *\n * **Note:** This method is based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toLength(3.2);\n * // => 3\n *\n * _.toLength(Number.MIN_VALUE);\n * // => 0\n *\n * _.toLength(Infinity);\n * // => 4294967295\n *\n * _.toLength('3.2');\n * // => 3\n */\nfunction toLength(value) {\n return value ? baseClamp(toInteger(value), 0, MAX_ARRAY_LENGTH) : 0;\n}\n\nexport default toLength;\n","import toInteger from './toInteger.js';\nimport toLength from './toLength.js';\n\n/**\n * The base implementation of `_.fill` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to fill.\n * @param {*} value The value to fill `array` with.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns `array`.\n */\nfunction baseFill(array, value, start, end) {\n var length = array.length;\n\n start = toInteger(start);\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = (end === undefined || end > length) ? length : toInteger(end);\n if (end < 0) {\n end += length;\n }\n end = start > end ? 0 : toLength(end);\n while (start < end) {\n array[start++] = value;\n }\n return array;\n}\n\nexport default baseFill;\n","import baseFill from './_baseFill.js';\nimport isIterateeCall from './_isIterateeCall.js';\n\n/**\n * Fills elements of `array` with `value` from `start` up to, but not\n * including, `end`.\n *\n * **Note:** This method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 3.2.0\n * @category Array\n * @param {Array} array The array to fill.\n * @param {*} value The value to fill `array` with.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [1, 2, 3];\n *\n * _.fill(array, 'a');\n * console.log(array);\n * // => ['a', 'a', 'a']\n *\n * _.fill(Array(3), 2);\n * // => [2, 2, 2]\n *\n * _.fill([4, 6, 8, 10], '*', 1, 3);\n * // => [4, '*', '*', 10]\n */\nfunction fill(array, value, start, end) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n if (start && typeof start != 'number' && isIterateeCall(array, value, start)) {\n start = 0;\n end = length;\n }\n return baseFill(array, value, start, end);\n}\n\nexport default fill;\n","import baseEach from './_baseEach.js';\n\n/**\n * The base implementation of `_.filter` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction baseFilter(collection, predicate) {\n var result = [];\n baseEach(collection, function(value, index, collection) {\n if (predicate(value, index, collection)) {\n result.push(value);\n }\n });\n return result;\n}\n\nexport default baseFilter;\n","import arrayFilter from './_arrayFilter.js';\nimport baseFilter from './_baseFilter.js';\nimport baseIteratee from './_baseIteratee.js';\nimport isArray from './isArray.js';\n\n/**\n * Iterates over elements of `collection`, returning an array of all elements\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * **Note:** Unlike `_.remove`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n * @see _.reject\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * _.filter(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.filter(users, { 'age': 36, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.filter(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.filter(users, 'active');\n * // => objects for ['barney']\n *\n * // Combining several predicates using `_.overEvery` or `_.overSome`.\n * _.filter(users, _.overSome([{ 'age': 36 }, ['age', 40]]));\n * // => objects for ['fred', 'barney']\n */\nfunction filter(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, baseIteratee(predicate, 3));\n}\n\nexport default filter;\n","import baseIteratee from './_baseIteratee.js';\nimport isArrayLike from './isArrayLike.js';\nimport keys from './keys.js';\n\n/**\n * Creates a `_.find` or `_.findLast` function.\n *\n * @private\n * @param {Function} findIndexFunc The function to find the collection index.\n * @returns {Function} Returns the new find function.\n */\nfunction createFind(findIndexFunc) {\n return function(collection, predicate, fromIndex) {\n var iterable = Object(collection);\n if (!isArrayLike(collection)) {\n var iteratee = baseIteratee(predicate, 3);\n collection = keys(collection);\n predicate = function(key) { return iteratee(iterable[key], key, iterable); };\n }\n var index = findIndexFunc(collection, predicate, fromIndex);\n return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined;\n };\n}\n\nexport default createFind;\n","import baseFindIndex from './_baseFindIndex.js';\nimport baseIteratee from './_baseIteratee.js';\nimport toInteger from './toInteger.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * This method is like `_.find` except that it returns the index of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.findIndex(users, function(o) { return o.user == 'barney'; });\n * // => 0\n *\n * // The `_.matches` iteratee shorthand.\n * _.findIndex(users, { 'user': 'fred', 'active': false });\n * // => 1\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findIndex(users, ['active', false]);\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.findIndex(users, 'active');\n * // => 2\n */\nfunction findIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseFindIndex(array, baseIteratee(predicate, 3), index);\n}\n\nexport default findIndex;\n","import createFind from './_createFind.js';\nimport findIndex from './findIndex.js';\n\n/**\n * Iterates over elements of `collection`, returning the first element\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false },\n * { 'user': 'pebbles', 'age': 1, 'active': true }\n * ];\n *\n * _.find(users, function(o) { return o.age < 40; });\n * // => object for 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.find(users, { 'age': 1, 'active': true });\n * // => object for 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.find(users, ['active', false]);\n * // => object for 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.find(users, 'active');\n * // => object for 'barney'\n */\nvar find = createFind(findIndex);\n\nexport default find;\n","/**\n * The base implementation of methods like `_.findKey` and `_.findLastKey`,\n * without support for iteratee shorthands, which iterates over `collection`\n * using `eachFunc`.\n *\n * @private\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {Function} eachFunc The function to iterate over `collection`.\n * @returns {*} Returns the found element or its key, else `undefined`.\n */\nfunction baseFindKey(collection, predicate, eachFunc) {\n var result;\n eachFunc(collection, function(value, key, collection) {\n if (predicate(value, key, collection)) {\n result = key;\n return false;\n }\n });\n return result;\n}\n\nexport default baseFindKey;\n","import baseFindKey from './_baseFindKey.js';\nimport baseForOwn from './_baseForOwn.js';\nimport baseIteratee from './_baseIteratee.js';\n\n/**\n * This method is like `_.find` except that it returns the key of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Object\n * @param {Object} object The object to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {string|undefined} Returns the key of the matched element,\n * else `undefined`.\n * @example\n *\n * var users = {\n * 'barney': { 'age': 36, 'active': true },\n * 'fred': { 'age': 40, 'active': false },\n * 'pebbles': { 'age': 1, 'active': true }\n * };\n *\n * _.findKey(users, function(o) { return o.age < 40; });\n * // => 'barney' (iteration order is not guaranteed)\n *\n * // The `_.matches` iteratee shorthand.\n * _.findKey(users, { 'age': 1, 'active': true });\n * // => 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findKey(users, ['active', false]);\n * // => 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.findKey(users, 'active');\n * // => 'barney'\n */\nfunction findKey(object, predicate) {\n return baseFindKey(object, baseIteratee(predicate, 3), baseForOwn);\n}\n\nexport default findKey;\n","import baseFindIndex from './_baseFindIndex.js';\nimport baseIteratee from './_baseIteratee.js';\nimport toInteger from './toInteger.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * This method is like `_.findIndex` except that it iterates over elements\n * of `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=array.length-1] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': false }\n * ];\n *\n * _.findLastIndex(users, function(o) { return o.user == 'pebbles'; });\n * // => 2\n *\n * // The `_.matches` iteratee shorthand.\n * _.findLastIndex(users, { 'user': 'barney', 'active': true });\n * // => 0\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findLastIndex(users, ['active', false]);\n * // => 2\n *\n * // The `_.property` iteratee shorthand.\n * _.findLastIndex(users, 'active');\n * // => 0\n */\nfunction findLastIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = length - 1;\n if (fromIndex !== undefined) {\n index = toInteger(fromIndex);\n index = fromIndex < 0\n ? nativeMax(length + index, 0)\n : nativeMin(index, length - 1);\n }\n return baseFindIndex(array, baseIteratee(predicate, 3), index, true);\n}\n\nexport default findLastIndex;\n","import createFind from './_createFind.js';\nimport findLastIndex from './findLastIndex.js';\n\n/**\n * This method is like `_.find` except that it iterates over elements of\n * `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=collection.length-1] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * _.findLast([1, 2, 3, 4], function(n) {\n * return n % 2 == 1;\n * });\n * // => 3\n */\nvar findLast = createFind(findLastIndex);\n\nexport default findLast;\n","import baseFindKey from './_baseFindKey.js';\nimport baseForOwnRight from './_baseForOwnRight.js';\nimport baseIteratee from './_baseIteratee.js';\n\n/**\n * This method is like `_.findKey` except that it iterates over elements of\n * a collection in the opposite order.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Object\n * @param {Object} object The object to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {string|undefined} Returns the key of the matched element,\n * else `undefined`.\n * @example\n *\n * var users = {\n * 'barney': { 'age': 36, 'active': true },\n * 'fred': { 'age': 40, 'active': false },\n * 'pebbles': { 'age': 1, 'active': true }\n * };\n *\n * _.findLastKey(users, function(o) { return o.age < 40; });\n * // => returns 'pebbles' assuming `_.findKey` returns 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.findLastKey(users, { 'age': 36, 'active': true });\n * // => 'barney'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findLastKey(users, ['active', false]);\n * // => 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.findLastKey(users, 'active');\n * // => 'pebbles'\n */\nfunction findLastKey(object, predicate) {\n return baseFindKey(object, baseIteratee(predicate, 3), baseForOwnRight);\n}\n\nexport default findLastKey;\n","/**\n * Gets the first element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias first\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the first element of `array`.\n * @example\n *\n * _.head([1, 2, 3]);\n * // => 1\n *\n * _.head([]);\n * // => undefined\n */\nfunction head(array) {\n return (array && array.length) ? array[0] : undefined;\n}\n\nexport default head;\n","import baseEach from './_baseEach.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n}\n\nexport default baseMap;\n","import arrayMap from './_arrayMap.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseMap from './_baseMap.js';\nimport isArray from './isArray.js';\n\n/**\n * Creates an array of values by running each element in `collection` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.\n *\n * The guarded methods are:\n * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,\n * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,\n * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,\n * `template`, `trim`, `trimEnd`, `trimStart`, and `words`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * _.map([4, 8], square);\n * // => [16, 64]\n *\n * _.map({ 'a': 4, 'b': 8 }, square);\n * // => [16, 64] (iteration order is not guaranteed)\n *\n * var users = [\n * { 'user': 'barney' },\n * { 'user': 'fred' }\n * ];\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, 'user');\n * // => ['barney', 'fred']\n */\nfunction map(collection, iteratee) {\n var func = isArray(collection) ? arrayMap : baseMap;\n return func(collection, baseIteratee(iteratee, 3));\n}\n\nexport default map;\n","import baseFlatten from './_baseFlatten.js';\nimport map from './map.js';\n\n/**\n * Creates a flattened array of values by running each element in `collection`\n * thru `iteratee` and flattening the mapped results. The iteratee is invoked\n * with three arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [n, n];\n * }\n *\n * _.flatMap([1, 2], duplicate);\n * // => [1, 1, 2, 2]\n */\nfunction flatMap(collection, iteratee) {\n return baseFlatten(map(collection, iteratee), 1);\n}\n\nexport default flatMap;\n","import baseFlatten from './_baseFlatten.js';\nimport map from './map.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * This method is like `_.flatMap` except that it recursively flattens the\n * mapped results.\n *\n * @static\n * @memberOf _\n * @since 4.7.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [[[n, n]]];\n * }\n *\n * _.flatMapDeep([1, 2], duplicate);\n * // => [1, 1, 2, 2]\n */\nfunction flatMapDeep(collection, iteratee) {\n return baseFlatten(map(collection, iteratee), INFINITY);\n}\n\nexport default flatMapDeep;\n","import baseFlatten from './_baseFlatten.js';\nimport map from './map.js';\nimport toInteger from './toInteger.js';\n\n/**\n * This method is like `_.flatMap` except that it recursively flattens the\n * mapped results up to `depth` times.\n *\n * @static\n * @memberOf _\n * @since 4.7.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {number} [depth=1] The maximum recursion depth.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [[[n, n]]];\n * }\n *\n * _.flatMapDepth([1, 2], duplicate, 2);\n * // => [[1, 1], [2, 2]]\n */\nfunction flatMapDepth(collection, iteratee, depth) {\n depth = depth === undefined ? 1 : toInteger(depth);\n return baseFlatten(map(collection, iteratee), depth);\n}\n\nexport default flatMapDepth;\n","import baseFlatten from './_baseFlatten.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Recursively flattens `array`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flattenDeep([1, [2, [3, [4]], 5]]);\n * // => [1, 2, 3, 4, 5]\n */\nfunction flattenDeep(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, INFINITY) : [];\n}\n\nexport default flattenDeep;\n","import baseFlatten from './_baseFlatten.js';\nimport toInteger from './toInteger.js';\n\n/**\n * Recursively flatten `array` up to `depth` times.\n *\n * @static\n * @memberOf _\n * @since 4.4.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @param {number} [depth=1] The maximum recursion depth.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * var array = [1, [2, [3, [4]], 5]];\n *\n * _.flattenDepth(array, 1);\n * // => [1, 2, [3, [4]], 5]\n *\n * _.flattenDepth(array, 2);\n * // => [1, 2, 3, [4], 5]\n */\nfunction flattenDepth(array, depth) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n depth = depth === undefined ? 1 : toInteger(depth);\n return baseFlatten(array, depth);\n}\n\nexport default flattenDepth;\n","import createWrap from './_createWrap.js';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_FLIP_FLAG = 512;\n\n/**\n * Creates a function that invokes `func` with arguments reversed.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Function\n * @param {Function} func The function to flip arguments for.\n * @returns {Function} Returns the new flipped function.\n * @example\n *\n * var flipped = _.flip(function() {\n * return _.toArray(arguments);\n * });\n *\n * flipped('a', 'b', 'c', 'd');\n * // => ['d', 'c', 'b', 'a']\n */\nfunction flip(func) {\n return createWrap(func, WRAP_FLIP_FLAG);\n}\n\nexport default flip;\n","import createRound from './_createRound.js';\n\n/**\n * Computes `number` rounded down to `precision`.\n *\n * @static\n * @memberOf _\n * @since 3.10.0\n * @category Math\n * @param {number} number The number to round down.\n * @param {number} [precision=0] The precision to round down to.\n * @returns {number} Returns the rounded down number.\n * @example\n *\n * _.floor(4.006);\n * // => 4\n *\n * _.floor(0.046, 2);\n * // => 0.04\n *\n * _.floor(4060, -2);\n * // => 4000\n */\nvar floor = createRound('floor');\n\nexport default floor;\n","import LodashWrapper from './_LodashWrapper.js';\nimport flatRest from './_flatRest.js';\nimport getData from './_getData.js';\nimport getFuncName from './_getFuncName.js';\nimport isArray from './isArray.js';\nimport isLaziable from './_isLaziable.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_CURRY_FLAG = 8,\n WRAP_PARTIAL_FLAG = 32,\n WRAP_ARY_FLAG = 128,\n WRAP_REARG_FLAG = 256;\n\n/**\n * Creates a `_.flow` or `_.flowRight` function.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new flow function.\n */\nfunction createFlow(fromRight) {\n return flatRest(function(funcs) {\n var length = funcs.length,\n index = length,\n prereq = LodashWrapper.prototype.thru;\n\n if (fromRight) {\n funcs.reverse();\n }\n while (index--) {\n var func = funcs[index];\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (prereq && !wrapper && getFuncName(func) == 'wrapper') {\n var wrapper = new LodashWrapper([], true);\n }\n }\n index = wrapper ? index : length;\n while (++index < length) {\n func = funcs[index];\n\n var funcName = getFuncName(func),\n data = funcName == 'wrapper' ? getData(func) : undefined;\n\n if (data && isLaziable(data[0]) &&\n data[1] == (WRAP_ARY_FLAG | WRAP_CURRY_FLAG | WRAP_PARTIAL_FLAG | WRAP_REARG_FLAG) &&\n !data[4].length && data[9] == 1\n ) {\n wrapper = wrapper[getFuncName(data[0])].apply(wrapper, data[3]);\n } else {\n wrapper = (func.length == 1 && isLaziable(func))\n ? wrapper[funcName]()\n : wrapper.thru(func);\n }\n }\n return function() {\n var args = arguments,\n value = args[0];\n\n if (wrapper && args.length == 1 && isArray(value)) {\n return wrapper.plant(value).value();\n }\n var index = 0,\n result = length ? funcs[index].apply(this, args) : value;\n\n while (++index < length) {\n result = funcs[index].call(this, result);\n }\n return result;\n };\n });\n}\n\nexport default createFlow;\n","import createFlow from './_createFlow.js';\n\n/**\n * Creates a function that returns the result of invoking the given functions\n * with the `this` binding of the created function, where each successive\n * invocation is supplied the return value of the previous.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Util\n * @param {...(Function|Function[])} [funcs] The functions to invoke.\n * @returns {Function} Returns the new composite function.\n * @see _.flowRight\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var addSquare = _.flow([_.add, square]);\n * addSquare(1, 2);\n * // => 9\n */\nvar flow = createFlow();\n\nexport default flow;\n","import createFlow from './_createFlow.js';\n\n/**\n * This method is like `_.flow` except that it creates a function that\n * invokes the given functions from right to left.\n *\n * @static\n * @since 3.0.0\n * @memberOf _\n * @category Util\n * @param {...(Function|Function[])} [funcs] The functions to invoke.\n * @returns {Function} Returns the new composite function.\n * @see _.flow\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var addSquare = _.flowRight([square, _.add]);\n * addSquare(1, 2);\n * // => 9\n */\nvar flowRight = createFlow(true);\n\nexport default flowRight;\n","import baseFor from './_baseFor.js';\nimport castFunction from './_castFunction.js';\nimport keysIn from './keysIn.js';\n\n/**\n * Iterates over own and inherited enumerable string keyed properties of an\n * object and invokes `iteratee` for each property. The iteratee is invoked\n * with three arguments: (value, key, object). Iteratee functions may exit\n * iteration early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 0.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forInRight\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forIn(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a', 'b', then 'c' (iteration order is not guaranteed).\n */\nfunction forIn(object, iteratee) {\n return object == null\n ? object\n : baseFor(object, castFunction(iteratee), keysIn);\n}\n\nexport default forIn;\n","import baseForRight from './_baseForRight.js';\nimport castFunction from './_castFunction.js';\nimport keysIn from './keysIn.js';\n\n/**\n * This method is like `_.forIn` except that it iterates over properties of\n * `object` in the opposite order.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forInRight(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'c', 'b', then 'a' assuming `_.forIn` logs 'a', 'b', then 'c'.\n */\nfunction forInRight(object, iteratee) {\n return object == null\n ? object\n : baseForRight(object, castFunction(iteratee), keysIn);\n}\n\nexport default forInRight;\n","import baseForOwn from './_baseForOwn.js';\nimport castFunction from './_castFunction.js';\n\n/**\n * Iterates over own enumerable string keyed properties of an object and\n * invokes `iteratee` for each property. The iteratee is invoked with three\n * arguments: (value, key, object). Iteratee functions may exit iteration\n * early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 0.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forOwnRight\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forOwn(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\nfunction forOwn(object, iteratee) {\n return object && baseForOwn(object, castFunction(iteratee));\n}\n\nexport default forOwn;\n","import baseForOwnRight from './_baseForOwnRight.js';\nimport castFunction from './_castFunction.js';\n\n/**\n * This method is like `_.forOwn` except that it iterates over properties of\n * `object` in the opposite order.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forOwn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forOwnRight(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'b' then 'a' assuming `_.forOwn` logs 'a' then 'b'.\n */\nfunction forOwnRight(object, iteratee) {\n return object && baseForOwnRight(object, castFunction(iteratee));\n}\n\nexport default forOwnRight;\n","/**\n * The inverse of `_.toPairs`; this method returns an object composed\n * from key-value `pairs`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} pairs The key-value pairs.\n * @returns {Object} Returns the new object.\n * @example\n *\n * _.fromPairs([['a', 1], ['b', 2]]);\n * // => { 'a': 1, 'b': 2 }\n */\nfunction fromPairs(pairs) {\n var index = -1,\n length = pairs == null ? 0 : pairs.length,\n result = {};\n\n while (++index < length) {\n var pair = pairs[index];\n result[pair[0]] = pair[1];\n }\n return result;\n}\n\nexport default fromPairs;\n","import arrayFilter from './_arrayFilter.js';\nimport isFunction from './isFunction.js';\n\n/**\n * The base implementation of `_.functions` which creates an array of\n * `object` function property names filtered from `props`.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Array} props The property names to filter.\n * @returns {Array} Returns the function names.\n */\nfunction baseFunctions(object, props) {\n return arrayFilter(props, function(key) {\n return isFunction(object[key]);\n });\n}\n\nexport default baseFunctions;\n","import baseFunctions from './_baseFunctions.js';\nimport keys from './keys.js';\n\n/**\n * Creates an array of function property names from own enumerable properties\n * of `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to inspect.\n * @returns {Array} Returns the function names.\n * @see _.functionsIn\n * @example\n *\n * function Foo() {\n * this.a = _.constant('a');\n * this.b = _.constant('b');\n * }\n *\n * Foo.prototype.c = _.constant('c');\n *\n * _.functions(new Foo);\n * // => ['a', 'b']\n */\nfunction functions(object) {\n return object == null ? [] : baseFunctions(object, keys(object));\n}\n\nexport default functions;\n","import baseFunctions from './_baseFunctions.js';\nimport keysIn from './keysIn.js';\n\n/**\n * Creates an array of function property names from own and inherited\n * enumerable properties of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to inspect.\n * @returns {Array} Returns the function names.\n * @see _.functions\n * @example\n *\n * function Foo() {\n * this.a = _.constant('a');\n * this.b = _.constant('b');\n * }\n *\n * Foo.prototype.c = _.constant('c');\n *\n * _.functionsIn(new Foo);\n * // => ['a', 'b', 'c']\n */\nfunction functionsIn(object) {\n return object == null ? [] : baseFunctions(object, keysIn(object));\n}\n\nexport default functionsIn;\n","import baseAssignValue from './_baseAssignValue.js';\nimport createAggregator from './_createAggregator.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The order of grouped values\n * is determined by the order they occur in `collection`. The corresponding\n * value of each key is an array of elements responsible for generating the\n * key. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * _.groupBy([6.1, 4.2, 6.3], Math.floor);\n * // => { '4': [4.2], '6': [6.1, 6.3] }\n *\n * // The `_.property` iteratee shorthand.\n * _.groupBy(['one', 'two', 'three'], 'length');\n * // => { '3': ['one', 'two'], '5': ['three'] }\n */\nvar groupBy = createAggregator(function(result, value, key) {\n if (hasOwnProperty.call(result, key)) {\n result[key].push(value);\n } else {\n baseAssignValue(result, key, [value]);\n }\n});\n\nexport default groupBy;\n","/**\n * The base implementation of `_.gt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than `other`,\n * else `false`.\n */\nfunction baseGt(value, other) {\n return value > other;\n}\n\nexport default baseGt;\n","import toNumber from './toNumber.js';\n\n/**\n * Creates a function that performs a relational operation on two values.\n *\n * @private\n * @param {Function} operator The function to perform the operation.\n * @returns {Function} Returns the new relational operation function.\n */\nfunction createRelationalOperation(operator) {\n return function(value, other) {\n if (!(typeof value == 'string' && typeof other == 'string')) {\n value = toNumber(value);\n other = toNumber(other);\n }\n return operator(value, other);\n };\n}\n\nexport default createRelationalOperation;\n","import baseGt from './_baseGt.js';\nimport createRelationalOperation from './_createRelationalOperation.js';\n\n/**\n * Checks if `value` is greater than `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than `other`,\n * else `false`.\n * @see _.lt\n * @example\n *\n * _.gt(3, 1);\n * // => true\n *\n * _.gt(3, 3);\n * // => false\n *\n * _.gt(1, 3);\n * // => false\n */\nvar gt = createRelationalOperation(baseGt);\n\nexport default gt;\n","import createRelationalOperation from './_createRelationalOperation.js';\n\n/**\n * Checks if `value` is greater than or equal to `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than or equal to\n * `other`, else `false`.\n * @see _.lte\n * @example\n *\n * _.gte(3, 1);\n * // => true\n *\n * _.gte(3, 3);\n * // => true\n *\n * _.gte(1, 3);\n * // => false\n */\nvar gte = createRelationalOperation(function(value, other) {\n return value >= other;\n});\n\nexport default gte;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.has` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHas(object, key) {\n return object != null && hasOwnProperty.call(object, key);\n}\n\nexport default baseHas;\n","import baseHas from './_baseHas.js';\nimport hasPath from './_hasPath.js';\n\n/**\n * Checks if `path` is a direct property of `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = { 'a': { 'b': 2 } };\n * var other = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.has(object, 'a');\n * // => true\n *\n * _.has(object, 'a.b');\n * // => true\n *\n * _.has(object, ['a', 'b']);\n * // => true\n *\n * _.has(other, 'a');\n * // => false\n */\nfunction has(object, path) {\n return object != null && hasPath(object, path, baseHas);\n}\n\nexport default has;\n","/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * The base implementation of `_.inRange` which doesn't coerce arguments.\n *\n * @private\n * @param {number} number The number to check.\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @returns {boolean} Returns `true` if `number` is in the range, else `false`.\n */\nfunction baseInRange(number, start, end) {\n return number >= nativeMin(start, end) && number < nativeMax(start, end);\n}\n\nexport default baseInRange;\n","import baseInRange from './_baseInRange.js';\nimport toFinite from './toFinite.js';\nimport toNumber from './toNumber.js';\n\n/**\n * Checks if `n` is between `start` and up to, but not including, `end`. If\n * `end` is not specified, it's set to `start` with `start` then set to `0`.\n * If `start` is greater than `end` the params are swapped to support\n * negative ranges.\n *\n * @static\n * @memberOf _\n * @since 3.3.0\n * @category Number\n * @param {number} number The number to check.\n * @param {number} [start=0] The start of the range.\n * @param {number} end The end of the range.\n * @returns {boolean} Returns `true` if `number` is in the range, else `false`.\n * @see _.range, _.rangeRight\n * @example\n *\n * _.inRange(3, 2, 4);\n * // => true\n *\n * _.inRange(4, 8);\n * // => true\n *\n * _.inRange(4, 2);\n * // => false\n *\n * _.inRange(2, 2);\n * // => false\n *\n * _.inRange(1.2, 2);\n * // => true\n *\n * _.inRange(5.2, 4);\n * // => false\n *\n * _.inRange(-3, -2, -6);\n * // => true\n */\nfunction inRange(number, start, end) {\n start = toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n number = toNumber(number);\n return baseInRange(number, start, end);\n}\n\nexport default inRange;\n","import baseGetTag from './_baseGetTag.js';\nimport isArray from './isArray.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n}\n\nexport default isString;\n","import arrayMap from './_arrayMap.js';\n\n/**\n * The base implementation of `_.values` and `_.valuesIn` which creates an\n * array of `object` property values corresponding to the property names\n * of `props`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} props The property names to get values for.\n * @returns {Object} Returns the array of property values.\n */\nfunction baseValues(object, props) {\n return arrayMap(props, function(key) {\n return object[key];\n });\n}\n\nexport default baseValues;\n","import baseValues from './_baseValues.js';\nimport keys from './keys.js';\n\n/**\n * Creates an array of the own enumerable string keyed property values of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property values.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.values(new Foo);\n * // => [1, 2] (iteration order is not guaranteed)\n *\n * _.values('hi');\n * // => ['h', 'i']\n */\nfunction values(object) {\n return object == null ? [] : baseValues(object, keys(object));\n}\n\nexport default values;\n","import baseIndexOf from './_baseIndexOf.js';\nimport isArrayLike from './isArrayLike.js';\nimport isString from './isString.js';\nimport toInteger from './toInteger.js';\nimport values from './values.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * Checks if `value` is in `collection`. If `collection` is a string, it's\n * checked for a substring of `value`, otherwise\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * is used for equality comparisons. If `fromIndex` is negative, it's used as\n * the offset from the end of `collection`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object|string} collection The collection to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=0] The index to search from.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.\n * @returns {boolean} Returns `true` if `value` is found, else `false`.\n * @example\n *\n * _.includes([1, 2, 3], 1);\n * // => true\n *\n * _.includes([1, 2, 3], 1, 2);\n * // => false\n *\n * _.includes({ 'a': 1, 'b': 2 }, 1);\n * // => true\n *\n * _.includes('abcd', 'bc');\n * // => true\n */\nfunction includes(collection, value, fromIndex, guard) {\n collection = isArrayLike(collection) ? collection : values(collection);\n fromIndex = (fromIndex && !guard) ? toInteger(fromIndex) : 0;\n\n var length = collection.length;\n if (fromIndex < 0) {\n fromIndex = nativeMax(length + fromIndex, 0);\n }\n return isString(collection)\n ? (fromIndex <= length && collection.indexOf(value, fromIndex) > -1)\n : (!!length && baseIndexOf(collection, value, fromIndex) > -1);\n}\n\nexport default includes;\n","import baseIndexOf from './_baseIndexOf.js';\nimport toInteger from './toInteger.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * Gets the index at which the first occurrence of `value` is found in `array`\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. If `fromIndex` is negative, it's used as the\n * offset from the end of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.indexOf([1, 2, 1, 2], 2);\n * // => 1\n *\n * // Search from the `fromIndex`.\n * _.indexOf([1, 2, 1, 2], 2, 2);\n * // => 3\n */\nfunction indexOf(array, value, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseIndexOf(array, value, index);\n}\n\nexport default indexOf;\n","import baseSlice from './_baseSlice.js';\n\n/**\n * Gets all but the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.initial([1, 2, 3]);\n * // => [1, 2]\n */\nfunction initial(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseSlice(array, 0, -1) : [];\n}\n\nexport default initial;\n","import SetCache from './_SetCache.js';\nimport arrayIncludes from './_arrayIncludes.js';\nimport arrayIncludesWith from './_arrayIncludesWith.js';\nimport arrayMap from './_arrayMap.js';\nimport baseUnary from './_baseUnary.js';\nimport cacheHas from './_cacheHas.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMin = Math.min;\n\n/**\n * The base implementation of methods like `_.intersection`, without support\n * for iteratee shorthands, that accepts an array of arrays to inspect.\n *\n * @private\n * @param {Array} arrays The arrays to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of shared values.\n */\nfunction baseIntersection(arrays, iteratee, comparator) {\n var includes = comparator ? arrayIncludesWith : arrayIncludes,\n length = arrays[0].length,\n othLength = arrays.length,\n othIndex = othLength,\n caches = Array(othLength),\n maxLength = Infinity,\n result = [];\n\n while (othIndex--) {\n var array = arrays[othIndex];\n if (othIndex && iteratee) {\n array = arrayMap(array, baseUnary(iteratee));\n }\n maxLength = nativeMin(array.length, maxLength);\n caches[othIndex] = !comparator && (iteratee || (length >= 120 && array.length >= 120))\n ? new SetCache(othIndex && array)\n : undefined;\n }\n array = arrays[0];\n\n var index = -1,\n seen = caches[0];\n\n outer:\n while (++index < length && result.length < maxLength) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (!(seen\n ? cacheHas(seen, computed)\n : includes(result, computed, comparator)\n )) {\n othIndex = othLength;\n while (--othIndex) {\n var cache = caches[othIndex];\n if (!(cache\n ? cacheHas(cache, computed)\n : includes(arrays[othIndex], computed, comparator))\n ) {\n continue outer;\n }\n }\n if (seen) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n}\n\nexport default baseIntersection;\n","import isArrayLikeObject from './isArrayLikeObject.js';\n\n/**\n * Casts `value` to an empty array if it's not an array like object.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Array|Object} Returns the cast array-like object.\n */\nfunction castArrayLikeObject(value) {\n return isArrayLikeObject(value) ? value : [];\n}\n\nexport default castArrayLikeObject;\n","import arrayMap from './_arrayMap.js';\nimport baseIntersection from './_baseIntersection.js';\nimport baseRest from './_baseRest.js';\nimport castArrayLikeObject from './_castArrayLikeObject.js';\n\n/**\n * Creates an array of unique values that are included in all given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * _.intersection([2, 1], [2, 3]);\n * // => [2]\n */\nvar intersection = baseRest(function(arrays) {\n var mapped = arrayMap(arrays, castArrayLikeObject);\n return (mapped.length && mapped[0] === arrays[0])\n ? baseIntersection(mapped)\n : [];\n});\n\nexport default intersection;\n","import arrayMap from './_arrayMap.js';\nimport baseIntersection from './_baseIntersection.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseRest from './_baseRest.js';\nimport castArrayLikeObject from './_castArrayLikeObject.js';\nimport last from './last.js';\n\n/**\n * This method is like `_.intersection` except that it accepts `iteratee`\n * which is invoked for each element of each `arrays` to generate the criterion\n * by which they're compared. The order and references of result values are\n * determined by the first array. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * _.intersectionBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n * // => [2.1]\n *\n * // The `_.property` iteratee shorthand.\n * _.intersectionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }]\n */\nvar intersectionBy = baseRest(function(arrays) {\n var iteratee = last(arrays),\n mapped = arrayMap(arrays, castArrayLikeObject);\n\n if (iteratee === last(mapped)) {\n iteratee = undefined;\n } else {\n mapped.pop();\n }\n return (mapped.length && mapped[0] === arrays[0])\n ? baseIntersection(mapped, baseIteratee(iteratee, 2))\n : [];\n});\n\nexport default intersectionBy;\n","import arrayMap from './_arrayMap.js';\nimport baseIntersection from './_baseIntersection.js';\nimport baseRest from './_baseRest.js';\nimport castArrayLikeObject from './_castArrayLikeObject.js';\nimport last from './last.js';\n\n/**\n * This method is like `_.intersection` except that it accepts `comparator`\n * which is invoked to compare elements of `arrays`. The order and references\n * of result values are determined by the first array. The comparator is\n * invoked with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.intersectionWith(objects, others, _.isEqual);\n * // => [{ 'x': 1, 'y': 2 }]\n */\nvar intersectionWith = baseRest(function(arrays) {\n var comparator = last(arrays),\n mapped = arrayMap(arrays, castArrayLikeObject);\n\n comparator = typeof comparator == 'function' ? comparator : undefined;\n if (comparator) {\n mapped.pop();\n }\n return (mapped.length && mapped[0] === arrays[0])\n ? baseIntersection(mapped, undefined, comparator)\n : [];\n});\n\nexport default intersectionWith;\n","import baseForOwn from './_baseForOwn.js';\n\n/**\n * The base implementation of `_.invert` and `_.invertBy` which inverts\n * `object` with values transformed by `iteratee` and set by `setter`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform values.\n * @param {Object} accumulator The initial inverted object.\n * @returns {Function} Returns `accumulator`.\n */\nfunction baseInverter(object, setter, iteratee, accumulator) {\n baseForOwn(object, function(value, key, object) {\n setter(accumulator, iteratee(value), key, object);\n });\n return accumulator;\n}\n\nexport default baseInverter;\n","import baseInverter from './_baseInverter.js';\n\n/**\n * Creates a function like `_.invertBy`.\n *\n * @private\n * @param {Function} setter The function to set accumulator values.\n * @param {Function} toIteratee The function to resolve iteratees.\n * @returns {Function} Returns the new inverter function.\n */\nfunction createInverter(setter, toIteratee) {\n return function(object, iteratee) {\n return baseInverter(object, setter, toIteratee(iteratee), {});\n };\n}\n\nexport default createInverter;\n","import constant from './constant.js';\nimport createInverter from './_createInverter.js';\nimport identity from './identity.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Creates an object composed of the inverted keys and values of `object`.\n * If `object` contains duplicate values, subsequent values overwrite\n * property assignments of previous values.\n *\n * @static\n * @memberOf _\n * @since 0.7.0\n * @category Object\n * @param {Object} object The object to invert.\n * @returns {Object} Returns the new inverted object.\n * @example\n *\n * var object = { 'a': 1, 'b': 2, 'c': 1 };\n *\n * _.invert(object);\n * // => { '1': 'c', '2': 'b' }\n */\nvar invert = createInverter(function(result, value, key) {\n if (value != null &&\n typeof value.toString != 'function') {\n value = nativeObjectToString.call(value);\n }\n\n result[value] = key;\n}, constant(identity));\n\nexport default invert;\n","import baseIteratee from './_baseIteratee.js';\nimport createInverter from './_createInverter.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * This method is like `_.invert` except that the inverted object is generated\n * from the results of running each element of `object` thru `iteratee`. The\n * corresponding inverted value of each inverted key is an array of keys\n * responsible for generating the inverted value. The iteratee is invoked\n * with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.1.0\n * @category Object\n * @param {Object} object The object to invert.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Object} Returns the new inverted object.\n * @example\n *\n * var object = { 'a': 1, 'b': 2, 'c': 1 };\n *\n * _.invertBy(object);\n * // => { '1': ['a', 'c'], '2': ['b'] }\n *\n * _.invertBy(object, function(value) {\n * return 'group' + value;\n * });\n * // => { 'group1': ['a', 'c'], 'group2': ['b'] }\n */\nvar invertBy = createInverter(function(result, value, key) {\n if (value != null &&\n typeof value.toString != 'function') {\n value = nativeObjectToString.call(value);\n }\n\n if (hasOwnProperty.call(result, value)) {\n result[value].push(key);\n } else {\n result[value] = [key];\n }\n}, baseIteratee);\n\nexport default invertBy;\n","import baseGet from './_baseGet.js';\nimport baseSlice from './_baseSlice.js';\n\n/**\n * Gets the parent value at `path` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} path The path to get the parent value of.\n * @returns {*} Returns the parent value.\n */\nfunction parent(object, path) {\n return path.length < 2 ? object : baseGet(object, baseSlice(path, 0, -1));\n}\n\nexport default parent;\n","import apply from './_apply.js';\nimport castPath from './_castPath.js';\nimport last from './last.js';\nimport parent from './_parent.js';\nimport toKey from './_toKey.js';\n\n/**\n * The base implementation of `_.invoke` without support for individual\n * method arguments.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the method to invoke.\n * @param {Array} args The arguments to invoke the method with.\n * @returns {*} Returns the result of the invoked method.\n */\nfunction baseInvoke(object, path, args) {\n path = castPath(path, object);\n object = parent(object, path);\n var func = object == null ? object : object[toKey(last(path))];\n return func == null ? undefined : apply(func, object, args);\n}\n\nexport default baseInvoke;\n","import baseInvoke from './_baseInvoke.js';\nimport baseRest from './_baseRest.js';\n\n/**\n * Invokes the method at `path` of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the method to invoke.\n * @param {...*} [args] The arguments to invoke the method with.\n * @returns {*} Returns the result of the invoked method.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': [1, 2, 3, 4] } }] };\n *\n * _.invoke(object, 'a[0].b.c.slice', 1, 3);\n * // => [2, 3]\n */\nvar invoke = baseRest(baseInvoke);\n\nexport default invoke;\n","import apply from './_apply.js';\nimport baseEach from './_baseEach.js';\nimport baseInvoke from './_baseInvoke.js';\nimport baseRest from './_baseRest.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * Invokes the method at `path` of each element in `collection`, returning\n * an array of the results of each invoked method. Any additional arguments\n * are provided to each invoked method. If `path` is a function, it's invoked\n * for, and `this` bound to, each element in `collection`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Array|Function|string} path The path of the method to invoke or\n * the function invoked per iteration.\n * @param {...*} [args] The arguments to invoke each method with.\n * @returns {Array} Returns the array of results.\n * @example\n *\n * _.invokeMap([[5, 1, 7], [3, 2, 1]], 'sort');\n * // => [[1, 5, 7], [1, 2, 3]]\n *\n * _.invokeMap([123, 456], String.prototype.split, '');\n * // => [['1', '2', '3'], ['4', '5', '6']]\n */\nvar invokeMap = baseRest(function(collection, path, args) {\n var index = -1,\n isFunc = typeof path == 'function',\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value) {\n result[++index] = isFunc ? apply(path, value, args) : baseInvoke(value, path, args);\n });\n return result;\n});\n\nexport default invokeMap;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\nvar arrayBufferTag = '[object ArrayBuffer]';\n\n/**\n * The base implementation of `_.isArrayBuffer` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array buffer, else `false`.\n */\nfunction baseIsArrayBuffer(value) {\n return isObjectLike(value) && baseGetTag(value) == arrayBufferTag;\n}\n\nexport default baseIsArrayBuffer;\n","import baseIsArrayBuffer from './_baseIsArrayBuffer.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsArrayBuffer = nodeUtil && nodeUtil.isArrayBuffer;\n\n/**\n * Checks if `value` is classified as an `ArrayBuffer` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array buffer, else `false`.\n * @example\n *\n * _.isArrayBuffer(new ArrayBuffer(2));\n * // => true\n *\n * _.isArrayBuffer(new Array(2));\n * // => false\n */\nvar isArrayBuffer = nodeIsArrayBuffer ? baseUnary(nodeIsArrayBuffer) : baseIsArrayBuffer;\n\nexport default isArrayBuffer;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]';\n\n/**\n * Checks if `value` is classified as a boolean primitive or object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a boolean, else `false`.\n * @example\n *\n * _.isBoolean(false);\n * // => true\n *\n * _.isBoolean(null);\n * // => false\n */\nfunction isBoolean(value) {\n return value === true || value === false ||\n (isObjectLike(value) && baseGetTag(value) == boolTag);\n}\n\nexport default isBoolean;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar dateTag = '[object Date]';\n\n/**\n * The base implementation of `_.isDate` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a date object, else `false`.\n */\nfunction baseIsDate(value) {\n return isObjectLike(value) && baseGetTag(value) == dateTag;\n}\n\nexport default baseIsDate;\n","import baseIsDate from './_baseIsDate.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsDate = nodeUtil && nodeUtil.isDate;\n\n/**\n * Checks if `value` is classified as a `Date` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a date object, else `false`.\n * @example\n *\n * _.isDate(new Date);\n * // => true\n *\n * _.isDate('Mon April 23 2012');\n * // => false\n */\nvar isDate = nodeIsDate ? baseUnary(nodeIsDate) : baseIsDate;\n\nexport default isDate;\n","import isObjectLike from './isObjectLike.js';\nimport isPlainObject from './isPlainObject.js';\n\n/**\n * Checks if `value` is likely a DOM element.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a DOM element, else `false`.\n * @example\n *\n * _.isElement(document.body);\n * // => true\n *\n * _.isElement('<body>');\n * // => false\n */\nfunction isElement(value) {\n return isObjectLike(value) && value.nodeType === 1 && !isPlainObject(value);\n}\n\nexport default isElement;\n","import baseKeys from './_baseKeys.js';\nimport getTag from './_getTag.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isArrayLike from './isArrayLike.js';\nimport isBuffer from './isBuffer.js';\nimport isPrototype from './_isPrototype.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n setTag = '[object Set]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if `value` is an empty object, collection, map, or set.\n *\n * Objects are considered empty if they have no own enumerable string keyed\n * properties.\n *\n * Array-like values such as `arguments` objects, arrays, buffers, strings, or\n * jQuery-like collections are considered empty if they have a `length` of `0`.\n * Similarly, maps and sets are considered empty if they have a `size` of `0`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is empty, else `false`.\n * @example\n *\n * _.isEmpty(null);\n * // => true\n *\n * _.isEmpty(true);\n * // => true\n *\n * _.isEmpty(1);\n * // => true\n *\n * _.isEmpty([1, 2, 3]);\n * // => false\n *\n * _.isEmpty({ 'a': 1 });\n * // => false\n */\nfunction isEmpty(value) {\n if (value == null) {\n return true;\n }\n if (isArrayLike(value) &&\n (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' ||\n isBuffer(value) || isTypedArray(value) || isArguments(value))) {\n return !value.length;\n }\n var tag = getTag(value);\n if (tag == mapTag || tag == setTag) {\n return !value.size;\n }\n if (isPrototype(value)) {\n return !baseKeys(value).length;\n }\n for (var key in value) {\n if (hasOwnProperty.call(value, key)) {\n return false;\n }\n }\n return true;\n}\n\nexport default isEmpty;\n","import baseIsEqual from './_baseIsEqual.js';\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\nexport default isEqual;\n","import baseIsEqual from './_baseIsEqual.js';\n\n/**\n * This method is like `_.isEqual` except that it accepts `customizer` which\n * is invoked to compare values. If `customizer` returns `undefined`, comparisons\n * are handled by the method instead. The `customizer` is invoked with up to\n * six arguments: (objValue, othValue [, index|key, object, other, stack]).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * function isGreeting(value) {\n * return /^h(?:i|ello)$/.test(value);\n * }\n *\n * function customizer(objValue, othValue) {\n * if (isGreeting(objValue) && isGreeting(othValue)) {\n * return true;\n * }\n * }\n *\n * var array = ['hello', 'goodbye'];\n * var other = ['hi', 'goodbye'];\n *\n * _.isEqualWith(array, other, customizer);\n * // => true\n */\nfunction isEqualWith(value, other, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n var result = customizer ? customizer(value, other) : undefined;\n return result === undefined ? baseIsEqual(value, other, undefined, customizer) : !!result;\n}\n\nexport default isEqualWith;\n","import root from './_root.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsFinite = root.isFinite;\n\n/**\n * Checks if `value` is a finite primitive number.\n *\n * **Note:** This method is based on\n * [`Number.isFinite`](https://mdn.io/Number/isFinite).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a finite number, else `false`.\n * @example\n *\n * _.isFinite(3);\n * // => true\n *\n * _.isFinite(Number.MIN_VALUE);\n * // => true\n *\n * _.isFinite(Infinity);\n * // => false\n *\n * _.isFinite('3');\n * // => false\n */\nfunction isFinite(value) {\n return typeof value == 'number' && nativeIsFinite(value);\n}\n\nexport default isFinite;\n","import toInteger from './toInteger.js';\n\n/**\n * Checks if `value` is an integer.\n *\n * **Note:** This method is based on\n * [`Number.isInteger`](https://mdn.io/Number/isInteger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an integer, else `false`.\n * @example\n *\n * _.isInteger(3);\n * // => true\n *\n * _.isInteger(Number.MIN_VALUE);\n * // => false\n *\n * _.isInteger(Infinity);\n * // => false\n *\n * _.isInteger('3');\n * // => false\n */\nfunction isInteger(value) {\n return typeof value == 'number' && value == toInteger(value);\n}\n\nexport default isInteger;\n","import baseIsMatch from './_baseIsMatch.js';\nimport getMatchData from './_getMatchData.js';\n\n/**\n * Performs a partial deep comparison between `object` and `source` to\n * determine if `object` contains equivalent property values.\n *\n * **Note:** This method is equivalent to `_.matches` when `source` is\n * partially applied.\n *\n * Partial comparisons will match empty array and empty object `source`\n * values against any array or object value, respectively. See `_.isEqual`\n * for a list of supported value comparisons.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n *\n * _.isMatch(object, { 'b': 2 });\n * // => true\n *\n * _.isMatch(object, { 'b': 1 });\n * // => false\n */\nfunction isMatch(object, source) {\n return object === source || baseIsMatch(object, source, getMatchData(source));\n}\n\nexport default isMatch;\n","import baseIsMatch from './_baseIsMatch.js';\nimport getMatchData from './_getMatchData.js';\n\n/**\n * This method is like `_.isMatch` except that it accepts `customizer` which\n * is invoked to compare values. If `customizer` returns `undefined`, comparisons\n * are handled by the method instead. The `customizer` is invoked with five\n * arguments: (objValue, srcValue, index|key, object, source).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n * @example\n *\n * function isGreeting(value) {\n * return /^h(?:i|ello)$/.test(value);\n * }\n *\n * function customizer(objValue, srcValue) {\n * if (isGreeting(objValue) && isGreeting(srcValue)) {\n * return true;\n * }\n * }\n *\n * var object = { 'greeting': 'hello' };\n * var source = { 'greeting': 'hi' };\n *\n * _.isMatchWith(object, source, customizer);\n * // => true\n */\nfunction isMatchWith(object, source, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return baseIsMatch(object, source, getMatchData(source), customizer);\n}\n\nexport default isMatchWith;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar numberTag = '[object Number]';\n\n/**\n * Checks if `value` is classified as a `Number` primitive or object.\n *\n * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are\n * classified as numbers, use the `_.isFinite` method.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a number, else `false`.\n * @example\n *\n * _.isNumber(3);\n * // => true\n *\n * _.isNumber(Number.MIN_VALUE);\n * // => true\n *\n * _.isNumber(Infinity);\n * // => true\n *\n * _.isNumber('3');\n * // => false\n */\nfunction isNumber(value) {\n return typeof value == 'number' ||\n (isObjectLike(value) && baseGetTag(value) == numberTag);\n}\n\nexport default isNumber;\n","import isNumber from './isNumber.js';\n\n/**\n * Checks if `value` is `NaN`.\n *\n * **Note:** This method is based on\n * [`Number.isNaN`](https://mdn.io/Number/isNaN) and is not the same as\n * global [`isNaN`](https://mdn.io/isNaN) which returns `true` for\n * `undefined` and other non-number values.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n * @example\n *\n * _.isNaN(NaN);\n * // => true\n *\n * _.isNaN(new Number(NaN));\n * // => true\n *\n * isNaN(undefined);\n * // => true\n *\n * _.isNaN(undefined);\n * // => false\n */\nfunction isNaN(value) {\n // An `NaN` primitive is the only value that is not equal to itself.\n // Perform the `toStringTag` check first to avoid errors with some\n // ActiveX objects in IE.\n return isNumber(value) && value != +value;\n}\n\nexport default isNaN;\n","import coreJsData from './_coreJsData.js';\nimport isFunction from './isFunction.js';\nimport stubFalse from './stubFalse.js';\n\n/**\n * Checks if `func` is capable of being masked.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `func` is maskable, else `false`.\n */\nvar isMaskable = coreJsData ? isFunction : stubFalse;\n\nexport default isMaskable;\n","import baseIsNative from './_baseIsNative.js';\nimport isMaskable from './_isMaskable.js';\n\n/** Error message constants. */\nvar CORE_ERROR_TEXT = 'Unsupported core-js use. Try https://npms.io/search?q=ponyfill.';\n\n/**\n * Checks if `value` is a pristine native function.\n *\n * **Note:** This method can't reliably detect native functions in the presence\n * of the core-js package because core-js circumvents this kind of detection.\n * Despite multiple requests, the core-js maintainer has made it clear: any\n * attempt to fix the detection will be obstructed. As a result, we're left\n * with little choice but to throw an error. Unfortunately, this also affects\n * packages, like [babel-polyfill](https://www.npmjs.com/package/babel-polyfill),\n * which rely on core-js.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n * @example\n *\n * _.isNative(Array.prototype.push);\n * // => true\n *\n * _.isNative(_);\n * // => false\n */\nfunction isNative(value) {\n if (isMaskable(value)) {\n throw new Error(CORE_ERROR_TEXT);\n }\n return baseIsNative(value);\n}\n\nexport default isNative;\n","/**\n * Checks if `value` is `null` or `undefined`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is nullish, else `false`.\n * @example\n *\n * _.isNil(null);\n * // => true\n *\n * _.isNil(void 0);\n * // => true\n *\n * _.isNil(NaN);\n * // => false\n */\nfunction isNil(value) {\n return value == null;\n}\n\nexport default isNil;\n","/**\n * Checks if `value` is `null`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `null`, else `false`.\n * @example\n *\n * _.isNull(null);\n * // => true\n *\n * _.isNull(void 0);\n * // => false\n */\nfunction isNull(value) {\n return value === null;\n}\n\nexport default isNull;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar regexpTag = '[object RegExp]';\n\n/**\n * The base implementation of `_.isRegExp` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.\n */\nfunction baseIsRegExp(value) {\n return isObjectLike(value) && baseGetTag(value) == regexpTag;\n}\n\nexport default baseIsRegExp;\n","import baseIsRegExp from './_baseIsRegExp.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsRegExp = nodeUtil && nodeUtil.isRegExp;\n\n/**\n * Checks if `value` is classified as a `RegExp` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.\n * @example\n *\n * _.isRegExp(/abc/);\n * // => true\n *\n * _.isRegExp('/abc/');\n * // => false\n */\nvar isRegExp = nodeIsRegExp ? baseUnary(nodeIsRegExp) : baseIsRegExp;\n\nexport default isRegExp;\n","import isInteger from './isInteger.js';\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a safe integer. An integer is safe if it's an IEEE-754\n * double precision number which isn't the result of a rounded unsafe integer.\n *\n * **Note:** This method is based on\n * [`Number.isSafeInteger`](https://mdn.io/Number/isSafeInteger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a safe integer, else `false`.\n * @example\n *\n * _.isSafeInteger(3);\n * // => true\n *\n * _.isSafeInteger(Number.MIN_VALUE);\n * // => false\n *\n * _.isSafeInteger(Infinity);\n * // => false\n *\n * _.isSafeInteger('3');\n * // => false\n */\nfunction isSafeInteger(value) {\n return isInteger(value) && value >= -MAX_SAFE_INTEGER && value <= MAX_SAFE_INTEGER;\n}\n\nexport default isSafeInteger;\n","/**\n * Checks if `value` is `undefined`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.\n * @example\n *\n * _.isUndefined(void 0);\n * // => true\n *\n * _.isUndefined(null);\n * // => false\n */\nfunction isUndefined(value) {\n return value === undefined;\n}\n\nexport default isUndefined;\n","import getTag from './_getTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar weakMapTag = '[object WeakMap]';\n\n/**\n * Checks if `value` is classified as a `WeakMap` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a weak map, else `false`.\n * @example\n *\n * _.isWeakMap(new WeakMap);\n * // => true\n *\n * _.isWeakMap(new Map);\n * // => false\n */\nfunction isWeakMap(value) {\n return isObjectLike(value) && getTag(value) == weakMapTag;\n}\n\nexport default isWeakMap;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar weakSetTag = '[object WeakSet]';\n\n/**\n * Checks if `value` is classified as a `WeakSet` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a weak set, else `false`.\n * @example\n *\n * _.isWeakSet(new WeakSet);\n * // => true\n *\n * _.isWeakSet(new Set);\n * // => false\n */\nfunction isWeakSet(value) {\n return isObjectLike(value) && baseGetTag(value) == weakSetTag;\n}\n\nexport default isWeakSet;\n","import baseClone from './_baseClone.js';\nimport baseIteratee from './_baseIteratee.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1;\n\n/**\n * Creates a function that invokes `func` with the arguments of the created\n * function. If `func` is a property name, the created function returns the\n * property value for a given element. If `func` is an array or object, the\n * created function returns `true` for elements that contain the equivalent\n * source properties, otherwise it returns `false`.\n *\n * @static\n * @since 4.0.0\n * @memberOf _\n * @category Util\n * @param {*} [func=_.identity] The value to convert to a callback.\n * @returns {Function} Returns the callback.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.filter(users, _.iteratee({ 'user': 'barney', 'active': true }));\n * // => [{ 'user': 'barney', 'age': 36, 'active': true }]\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.filter(users, _.iteratee(['user', 'fred']));\n * // => [{ 'user': 'fred', 'age': 40 }]\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, _.iteratee('user'));\n * // => ['barney', 'fred']\n *\n * // Create custom iteratee shorthands.\n * _.iteratee = _.wrap(_.iteratee, function(iteratee, func) {\n * return !_.isRegExp(func) ? iteratee(func) : function(string) {\n * return func.test(string);\n * };\n * });\n *\n * _.filter(['abc', 'def'], /ef/);\n * // => ['def']\n */\nfunction iteratee(func) {\n return baseIteratee(typeof func == 'function' ? func : baseClone(func, CLONE_DEEP_FLAG));\n}\n\nexport default iteratee;\n","/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeJoin = arrayProto.join;\n\n/**\n * Converts all elements in `array` into a string separated by `separator`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to convert.\n * @param {string} [separator=','] The element separator.\n * @returns {string} Returns the joined string.\n * @example\n *\n * _.join(['a', 'b', 'c'], '~');\n * // => 'a~b~c'\n */\nfunction join(array, separator) {\n return array == null ? '' : nativeJoin.call(array, separator);\n}\n\nexport default join;\n","import createCompounder from './_createCompounder.js';\n\n/**\n * Converts `string` to\n * [kebab case](https://en.wikipedia.org/wiki/Letter_case#Special_case_styles).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the kebab cased string.\n * @example\n *\n * _.kebabCase('Foo Bar');\n * // => 'foo-bar'\n *\n * _.kebabCase('fooBar');\n * // => 'foo-bar'\n *\n * _.kebabCase('__FOO_BAR__');\n * // => 'foo-bar'\n */\nvar kebabCase = createCompounder(function(result, word, index) {\n return result + (index ? '-' : '') + word.toLowerCase();\n});\n\nexport default kebabCase;\n","import baseAssignValue from './_baseAssignValue.js';\nimport createAggregator from './_createAggregator.js';\n\n/**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The corresponding value of\n * each key is the last element responsible for generating the key. The\n * iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * var array = [\n * { 'dir': 'left', 'code': 97 },\n * { 'dir': 'right', 'code': 100 }\n * ];\n *\n * _.keyBy(array, function(o) {\n * return String.fromCharCode(o.code);\n * });\n * // => { 'a': { 'dir': 'left', 'code': 97 }, 'd': { 'dir': 'right', 'code': 100 } }\n *\n * _.keyBy(array, 'dir');\n * // => { 'left': { 'dir': 'left', 'code': 97 }, 'right': { 'dir': 'right', 'code': 100 } }\n */\nvar keyBy = createAggregator(function(result, value, key) {\n baseAssignValue(result, key, value);\n});\n\nexport default keyBy;\n","/**\n * A specialized version of `_.lastIndexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction strictLastIndexOf(array, value, fromIndex) {\n var index = fromIndex + 1;\n while (index--) {\n if (array[index] === value) {\n return index;\n }\n }\n return index;\n}\n\nexport default strictLastIndexOf;\n","import baseFindIndex from './_baseFindIndex.js';\nimport baseIsNaN from './_baseIsNaN.js';\nimport strictLastIndexOf from './_strictLastIndexOf.js';\nimport toInteger from './toInteger.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * This method is like `_.indexOf` except that it iterates over elements of\n * `array` from right to left.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=array.length-1] The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.lastIndexOf([1, 2, 1, 2], 2);\n * // => 3\n *\n * // Search from the `fromIndex`.\n * _.lastIndexOf([1, 2, 1, 2], 2, 2);\n * // => 1\n */\nfunction lastIndexOf(array, value, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = length;\n if (fromIndex !== undefined) {\n index = toInteger(fromIndex);\n index = index < 0 ? nativeMax(length + index, 0) : nativeMin(index, length - 1);\n }\n return value === value\n ? strictLastIndexOf(array, value, index)\n : baseFindIndex(array, baseIsNaN, index, true);\n}\n\nexport default lastIndexOf;\n","import createCompounder from './_createCompounder.js';\n\n/**\n * Converts `string`, as space separated words, to lower case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the lower cased string.\n * @example\n *\n * _.lowerCase('--Foo-Bar--');\n * // => 'foo bar'\n *\n * _.lowerCase('fooBar');\n * // => 'foo bar'\n *\n * _.lowerCase('__FOO_BAR__');\n * // => 'foo bar'\n */\nvar lowerCase = createCompounder(function(result, word, index) {\n return result + (index ? ' ' : '') + word.toLowerCase();\n});\n\nexport default lowerCase;\n","import createCaseFirst from './_createCaseFirst.js';\n\n/**\n * Converts the first character of `string` to lower case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.lowerFirst('Fred');\n * // => 'fred'\n *\n * _.lowerFirst('FRED');\n * // => 'fRED'\n */\nvar lowerFirst = createCaseFirst('toLowerCase');\n\nexport default lowerFirst;\n","/**\n * The base implementation of `_.lt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than `other`,\n * else `false`.\n */\nfunction baseLt(value, other) {\n return value < other;\n}\n\nexport default baseLt;\n","import baseLt from './_baseLt.js';\nimport createRelationalOperation from './_createRelationalOperation.js';\n\n/**\n * Checks if `value` is less than `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than `other`,\n * else `false`.\n * @see _.gt\n * @example\n *\n * _.lt(1, 3);\n * // => true\n *\n * _.lt(3, 3);\n * // => false\n *\n * _.lt(3, 1);\n * // => false\n */\nvar lt = createRelationalOperation(baseLt);\n\nexport default lt;\n","import createRelationalOperation from './_createRelationalOperation.js';\n\n/**\n * Checks if `value` is less than or equal to `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than or equal to\n * `other`, else `false`.\n * @see _.gte\n * @example\n *\n * _.lte(1, 3);\n * // => true\n *\n * _.lte(3, 3);\n * // => true\n *\n * _.lte(3, 1);\n * // => false\n */\nvar lte = createRelationalOperation(function(value, other) {\n return value <= other;\n});\n\nexport default lte;\n","import baseAssignValue from './_baseAssignValue.js';\nimport baseForOwn from './_baseForOwn.js';\nimport baseIteratee from './_baseIteratee.js';\n\n/**\n * The opposite of `_.mapValues`; this method creates an object with the\n * same values as `object` and keys generated by running each own enumerable\n * string keyed property of `object` thru `iteratee`. The iteratee is invoked\n * with three arguments: (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 3.8.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapValues\n * @example\n *\n * _.mapKeys({ 'a': 1, 'b': 2 }, function(value, key) {\n * return key + value;\n * });\n * // => { 'a1': 1, 'b2': 2 }\n */\nfunction mapKeys(object, iteratee) {\n var result = {};\n iteratee = baseIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, iteratee(value, key, object), value);\n });\n return result;\n}\n\nexport default mapKeys;\n","import baseAssignValue from './_baseAssignValue.js';\nimport baseForOwn from './_baseForOwn.js';\nimport baseIteratee from './_baseIteratee.js';\n\n/**\n * Creates an object with the same keys as `object` and values generated\n * by running each own enumerable string keyed property of `object` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapKeys\n * @example\n *\n * var users = {\n * 'fred': { 'user': 'fred', 'age': 40 },\n * 'pebbles': { 'user': 'pebbles', 'age': 1 }\n * };\n *\n * _.mapValues(users, function(o) { return o.age; });\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n *\n * // The `_.property` iteratee shorthand.\n * _.mapValues(users, 'age');\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n */\nfunction mapValues(object, iteratee) {\n var result = {};\n iteratee = baseIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, key, iteratee(value, key, object));\n });\n return result;\n}\n\nexport default mapValues;\n","import baseClone from './_baseClone.js';\nimport baseMatches from './_baseMatches.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1;\n\n/**\n * Creates a function that performs a partial deep comparison between a given\n * object and `source`, returning `true` if the given object has equivalent\n * property values, else `false`.\n *\n * **Note:** The created function is equivalent to `_.isMatch` with `source`\n * partially applied.\n *\n * Partial comparisons will match empty array and empty object `source`\n * values against any array or object value, respectively. See `_.isEqual`\n * for a list of supported value comparisons.\n *\n * **Note:** Multiple values can be checked by combining several matchers\n * using `_.overSome`\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Util\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n * @example\n *\n * var objects = [\n * { 'a': 1, 'b': 2, 'c': 3 },\n * { 'a': 4, 'b': 5, 'c': 6 }\n * ];\n *\n * _.filter(objects, _.matches({ 'a': 4, 'c': 6 }));\n * // => [{ 'a': 4, 'b': 5, 'c': 6 }]\n *\n * // Checking for several possible values\n * _.filter(objects, _.overSome([_.matches({ 'a': 1 }), _.matches({ 'a': 4 })]));\n * // => [{ 'a': 1, 'b': 2, 'c': 3 }, { 'a': 4, 'b': 5, 'c': 6 }]\n */\nfunction matches(source) {\n return baseMatches(baseClone(source, CLONE_DEEP_FLAG));\n}\n\nexport default matches;\n","import baseClone from './_baseClone.js';\nimport baseMatchesProperty from './_baseMatchesProperty.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1;\n\n/**\n * Creates a function that performs a partial deep comparison between the\n * value at `path` of a given object to `srcValue`, returning `true` if the\n * object value is equivalent, else `false`.\n *\n * **Note:** Partial comparisons will match empty array and empty object\n * `srcValue` values against any array or object value, respectively. See\n * `_.isEqual` for a list of supported value comparisons.\n *\n * **Note:** Multiple values can be checked by combining several matchers\n * using `_.overSome`\n *\n * @static\n * @memberOf _\n * @since 3.2.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n * @example\n *\n * var objects = [\n * { 'a': 1, 'b': 2, 'c': 3 },\n * { 'a': 4, 'b': 5, 'c': 6 }\n * ];\n *\n * _.find(objects, _.matchesProperty('a', 4));\n * // => { 'a': 4, 'b': 5, 'c': 6 }\n *\n * // Checking for several possible values\n * _.filter(objects, _.overSome([_.matchesProperty('a', 1), _.matchesProperty('a', 4)]));\n * // => [{ 'a': 1, 'b': 2, 'c': 3 }, { 'a': 4, 'b': 5, 'c': 6 }]\n */\nfunction matchesProperty(path, srcValue) {\n return baseMatchesProperty(path, baseClone(srcValue, CLONE_DEEP_FLAG));\n}\n\nexport default matchesProperty;\n","import isSymbol from './isSymbol.js';\n\n/**\n * The base implementation of methods like `_.max` and `_.min` which accepts a\n * `comparator` to determine the extremum value.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The iteratee invoked per iteration.\n * @param {Function} comparator The comparator used to compare values.\n * @returns {*} Returns the extremum value.\n */\nfunction baseExtremum(array, iteratee, comparator) {\n var index = -1,\n length = array.length;\n\n while (++index < length) {\n var value = array[index],\n current = iteratee(value);\n\n if (current != null && (computed === undefined\n ? (current === current && !isSymbol(current))\n : comparator(current, computed)\n )) {\n var computed = current,\n result = value;\n }\n }\n return result;\n}\n\nexport default baseExtremum;\n","import baseExtremum from './_baseExtremum.js';\nimport baseGt from './_baseGt.js';\nimport identity from './identity.js';\n\n/**\n * Computes the maximum value of `array`. If `array` is empty or falsey,\n * `undefined` is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {*} Returns the maximum value.\n * @example\n *\n * _.max([4, 2, 8, 6]);\n * // => 8\n *\n * _.max([]);\n * // => undefined\n */\nfunction max(array) {\n return (array && array.length)\n ? baseExtremum(array, identity, baseGt)\n : undefined;\n}\n\nexport default max;\n","import baseExtremum from './_baseExtremum.js';\nimport baseGt from './_baseGt.js';\nimport baseIteratee from './_baseIteratee.js';\n\n/**\n * This method is like `_.max` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * the value is ranked. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {*} Returns the maximum value.\n * @example\n *\n * var objects = [{ 'n': 1 }, { 'n': 2 }];\n *\n * _.maxBy(objects, function(o) { return o.n; });\n * // => { 'n': 2 }\n *\n * // The `_.property` iteratee shorthand.\n * _.maxBy(objects, 'n');\n * // => { 'n': 2 }\n */\nfunction maxBy(array, iteratee) {\n return (array && array.length)\n ? baseExtremum(array, baseIteratee(iteratee, 2), baseGt)\n : undefined;\n}\n\nexport default maxBy;\n","/**\n * The base implementation of `_.sum` and `_.sumBy` without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {number} Returns the sum.\n */\nfunction baseSum(array, iteratee) {\n var result,\n index = -1,\n length = array.length;\n\n while (++index < length) {\n var current = iteratee(array[index]);\n if (current !== undefined) {\n result = result === undefined ? current : (result + current);\n }\n }\n return result;\n}\n\nexport default baseSum;\n","import baseSum from './_baseSum.js';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/**\n * The base implementation of `_.mean` and `_.meanBy` without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {number} Returns the mean.\n */\nfunction baseMean(array, iteratee) {\n var length = array == null ? 0 : array.length;\n return length ? (baseSum(array, iteratee) / length) : NAN;\n}\n\nexport default baseMean;\n","import baseMean from './_baseMean.js';\nimport identity from './identity.js';\n\n/**\n * Computes the mean of the values in `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {number} Returns the mean.\n * @example\n *\n * _.mean([4, 2, 8, 6]);\n * // => 5\n */\nfunction mean(array) {\n return baseMean(array, identity);\n}\n\nexport default mean;\n","import baseIteratee from './_baseIteratee.js';\nimport baseMean from './_baseMean.js';\n\n/**\n * This method is like `_.mean` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the value to be averaged.\n * The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.7.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {number} Returns the mean.\n * @example\n *\n * var objects = [{ 'n': 4 }, { 'n': 2 }, { 'n': 8 }, { 'n': 6 }];\n *\n * _.meanBy(objects, function(o) { return o.n; });\n * // => 5\n *\n * // The `_.property` iteratee shorthand.\n * _.meanBy(objects, 'n');\n * // => 5\n */\nfunction meanBy(array, iteratee) {\n return baseMean(array, baseIteratee(iteratee, 2));\n}\n\nexport default meanBy;\n","import baseMerge from './_baseMerge.js';\nimport createAssigner from './_createAssigner.js';\n\n/**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\nvar merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n});\n\nexport default merge;\n","import baseInvoke from './_baseInvoke.js';\nimport baseRest from './_baseRest.js';\n\n/**\n * Creates a function that invokes the method at `path` of a given object.\n * Any additional arguments are provided to the invoked method.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Util\n * @param {Array|string} path The path of the method to invoke.\n * @param {...*} [args] The arguments to invoke the method with.\n * @returns {Function} Returns the new invoker function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': _.constant(2) } },\n * { 'a': { 'b': _.constant(1) } }\n * ];\n *\n * _.map(objects, _.method('a.b'));\n * // => [2, 1]\n *\n * _.map(objects, _.method(['a', 'b']));\n * // => [2, 1]\n */\nvar method = baseRest(function(path, args) {\n return function(object) {\n return baseInvoke(object, path, args);\n };\n});\n\nexport default method;\n","import baseInvoke from './_baseInvoke.js';\nimport baseRest from './_baseRest.js';\n\n/**\n * The opposite of `_.method`; this method creates a function that invokes\n * the method at a given path of `object`. Any additional arguments are\n * provided to the invoked method.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Util\n * @param {Object} object The object to query.\n * @param {...*} [args] The arguments to invoke the method with.\n * @returns {Function} Returns the new invoker function.\n * @example\n *\n * var array = _.times(3, _.constant),\n * object = { 'a': array, 'b': array, 'c': array };\n *\n * _.map(['a[2]', 'c[0]'], _.methodOf(object));\n * // => [2, 0]\n *\n * _.map([['a', '2'], ['c', '0']], _.methodOf(object));\n * // => [2, 0]\n */\nvar methodOf = baseRest(function(object, args) {\n return function(path) {\n return baseInvoke(object, path, args);\n };\n});\n\nexport default methodOf;\n","import baseExtremum from './_baseExtremum.js';\nimport baseLt from './_baseLt.js';\nimport identity from './identity.js';\n\n/**\n * Computes the minimum value of `array`. If `array` is empty or falsey,\n * `undefined` is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {*} Returns the minimum value.\n * @example\n *\n * _.min([4, 2, 8, 6]);\n * // => 2\n *\n * _.min([]);\n * // => undefined\n */\nfunction min(array) {\n return (array && array.length)\n ? baseExtremum(array, identity, baseLt)\n : undefined;\n}\n\nexport default min;\n","import baseExtremum from './_baseExtremum.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseLt from './_baseLt.js';\n\n/**\n * This method is like `_.min` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * the value is ranked. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {*} Returns the minimum value.\n * @example\n *\n * var objects = [{ 'n': 1 }, { 'n': 2 }];\n *\n * _.minBy(objects, function(o) { return o.n; });\n * // => { 'n': 1 }\n *\n * // The `_.property` iteratee shorthand.\n * _.minBy(objects, 'n');\n * // => { 'n': 1 }\n */\nfunction minBy(array, iteratee) {\n return (array && array.length)\n ? baseExtremum(array, baseIteratee(iteratee, 2), baseLt)\n : undefined;\n}\n\nexport default minBy;\n","import arrayEach from './_arrayEach.js';\nimport arrayPush from './_arrayPush.js';\nimport baseFunctions from './_baseFunctions.js';\nimport copyArray from './_copyArray.js';\nimport isFunction from './isFunction.js';\nimport isObject from './isObject.js';\nimport keys from './keys.js';\n\n/**\n * Adds all own enumerable string keyed function properties of a source\n * object to the destination object. If `object` is a function, then methods\n * are added to its prototype as well.\n *\n * **Note:** Use `_.runInContext` to create a pristine `lodash` function to\n * avoid conflicts caused by modifying the original.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {Function|Object} [object=lodash] The destination object.\n * @param {Object} source The object of functions to add.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.chain=true] Specify whether mixins are chainable.\n * @returns {Function|Object} Returns `object`.\n * @example\n *\n * function vowels(string) {\n * return _.filter(string, function(v) {\n * return /[aeiou]/i.test(v);\n * });\n * }\n *\n * _.mixin({ 'vowels': vowels });\n * _.vowels('fred');\n * // => ['e']\n *\n * _('fred').vowels().value();\n * // => ['e']\n *\n * _.mixin({ 'vowels': vowels }, { 'chain': false });\n * _('fred').vowels();\n * // => ['e']\n */\nfunction mixin(object, source, options) {\n var props = keys(source),\n methodNames = baseFunctions(source, props);\n\n var chain = !(isObject(options) && 'chain' in options) || !!options.chain,\n isFunc = isFunction(object);\n\n arrayEach(methodNames, function(methodName) {\n var func = source[methodName];\n object[methodName] = func;\n if (isFunc) {\n object.prototype[methodName] = function() {\n var chainAll = this.__chain__;\n if (chain || chainAll) {\n var result = object(this.__wrapped__),\n actions = result.__actions__ = copyArray(this.__actions__);\n\n actions.push({ 'func': func, 'args': arguments, 'thisArg': object });\n result.__chain__ = chainAll;\n return result;\n }\n return func.apply(object, arrayPush([this.value()], arguments));\n };\n }\n });\n\n return object;\n}\n\nexport default mixin;\n","import createMathOperation from './_createMathOperation.js';\n\n/**\n * Multiply two numbers.\n *\n * @static\n * @memberOf _\n * @since 4.7.0\n * @category Math\n * @param {number} multiplier The first number in a multiplication.\n * @param {number} multiplicand The second number in a multiplication.\n * @returns {number} Returns the product.\n * @example\n *\n * _.multiply(6, 4);\n * // => 24\n */\nvar multiply = createMathOperation(function(multiplier, multiplicand) {\n return multiplier * multiplicand;\n}, 1);\n\nexport default multiply;\n","/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that negates the result of the predicate `func`. The\n * `func` predicate is invoked with the `this` binding and arguments of the\n * created function.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} predicate The predicate to negate.\n * @returns {Function} Returns the new negated function.\n * @example\n *\n * function isEven(n) {\n * return n % 2 == 0;\n * }\n *\n * _.filter([1, 2, 3, 4, 5, 6], _.negate(isEven));\n * // => [1, 3, 5]\n */\nfunction negate(predicate) {\n if (typeof predicate != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n return function() {\n var args = arguments;\n switch (args.length) {\n case 0: return !predicate.call(this);\n case 1: return !predicate.call(this, args[0]);\n case 2: return !predicate.call(this, args[0], args[1]);\n case 3: return !predicate.call(this, args[0], args[1], args[2]);\n }\n return !predicate.apply(this, args);\n };\n}\n\nexport default negate;\n","/**\n * Converts `iterator` to an array.\n *\n * @private\n * @param {Object} iterator The iterator to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction iteratorToArray(iterator) {\n var data,\n result = [];\n\n while (!(data = iterator.next()).done) {\n result.push(data.value);\n }\n return result;\n}\n\nexport default iteratorToArray;\n","import Symbol from './_Symbol.js';\nimport copyArray from './_copyArray.js';\nimport getTag from './_getTag.js';\nimport isArrayLike from './isArrayLike.js';\nimport isString from './isString.js';\nimport iteratorToArray from './_iteratorToArray.js';\nimport mapToArray from './_mapToArray.js';\nimport setToArray from './_setToArray.js';\nimport stringToArray from './_stringToArray.js';\nimport values from './values.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n setTag = '[object Set]';\n\n/** Built-in value references. */\nvar symIterator = Symbol ? Symbol.iterator : undefined;\n\n/**\n * Converts `value` to an array.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Array} Returns the converted array.\n * @example\n *\n * _.toArray({ 'a': 1, 'b': 2 });\n * // => [1, 2]\n *\n * _.toArray('abc');\n * // => ['a', 'b', 'c']\n *\n * _.toArray(1);\n * // => []\n *\n * _.toArray(null);\n * // => []\n */\nfunction toArray(value) {\n if (!value) {\n return [];\n }\n if (isArrayLike(value)) {\n return isString(value) ? stringToArray(value) : copyArray(value);\n }\n if (symIterator && value[symIterator]) {\n return iteratorToArray(value[symIterator]());\n }\n var tag = getTag(value),\n func = tag == mapTag ? mapToArray : (tag == setTag ? setToArray : values);\n\n return func(value);\n}\n\nexport default toArray;\n","import toArray from './toArray.js';\n\n/**\n * Gets the next value on a wrapped object following the\n * [iterator protocol](https://mdn.io/iteration_protocols#iterator).\n *\n * @name next\n * @memberOf _\n * @since 4.0.0\n * @category Seq\n * @returns {Object} Returns the next iterator value.\n * @example\n *\n * var wrapped = _([1, 2]);\n *\n * wrapped.next();\n * // => { 'done': false, 'value': 1 }\n *\n * wrapped.next();\n * // => { 'done': false, 'value': 2 }\n *\n * wrapped.next();\n * // => { 'done': true, 'value': undefined }\n */\nfunction wrapperNext() {\n if (this.__values__ === undefined) {\n this.__values__ = toArray(this.value());\n }\n var done = this.__index__ >= this.__values__.length,\n value = done ? undefined : this.__values__[this.__index__++];\n\n return { 'done': done, 'value': value };\n}\n\nexport default wrapperNext;\n","import isIndex from './_isIndex.js';\n\n/**\n * The base implementation of `_.nth` which doesn't coerce arguments.\n *\n * @private\n * @param {Array} array The array to query.\n * @param {number} n The index of the element to return.\n * @returns {*} Returns the nth element of `array`.\n */\nfunction baseNth(array, n) {\n var length = array.length;\n if (!length) {\n return;\n }\n n += n < 0 ? length : 0;\n return isIndex(n, length) ? array[n] : undefined;\n}\n\nexport default baseNth;\n","import baseNth from './_baseNth.js';\nimport toInteger from './toInteger.js';\n\n/**\n * Gets the element at index `n` of `array`. If `n` is negative, the nth\n * element from the end is returned.\n *\n * @static\n * @memberOf _\n * @since 4.11.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=0] The index of the element to return.\n * @returns {*} Returns the nth element of `array`.\n * @example\n *\n * var array = ['a', 'b', 'c', 'd'];\n *\n * _.nth(array, 1);\n * // => 'b'\n *\n * _.nth(array, -2);\n * // => 'c';\n */\nfunction nth(array, n) {\n return (array && array.length) ? baseNth(array, toInteger(n)) : undefined;\n}\n\nexport default nth;\n","import baseNth from './_baseNth.js';\nimport baseRest from './_baseRest.js';\nimport toInteger from './toInteger.js';\n\n/**\n * Creates a function that gets the argument at index `n`. If `n` is negative,\n * the nth argument from the end is returned.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {number} [n=0] The index of the argument to return.\n * @returns {Function} Returns the new pass-thru function.\n * @example\n *\n * var func = _.nthArg(1);\n * func('a', 'b', 'c', 'd');\n * // => 'b'\n *\n * var func = _.nthArg(-2);\n * func('a', 'b', 'c', 'd');\n * // => 'c'\n */\nfunction nthArg(n) {\n n = toInteger(n);\n return baseRest(function(args) {\n return baseNth(args, n);\n });\n}\n\nexport default nthArg;\n","import castPath from './_castPath.js';\nimport last from './last.js';\nimport parent from './_parent.js';\nimport toKey from './_toKey.js';\n\n/**\n * The base implementation of `_.unset`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The property path to unset.\n * @returns {boolean} Returns `true` if the property is deleted, else `false`.\n */\nfunction baseUnset(object, path) {\n path = castPath(path, object);\n object = parent(object, path);\n return object == null || delete object[toKey(last(path))];\n}\n\nexport default baseUnset;\n","import isPlainObject from './isPlainObject.js';\n\n/**\n * Used by `_.omit` to customize its `_.cloneDeep` use to only clone plain\n * objects.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {string} key The key of the property to inspect.\n * @returns {*} Returns the uncloned value or `undefined` to defer cloning to `_.cloneDeep`.\n */\nfunction customOmitClone(value) {\n return isPlainObject(value) ? undefined : value;\n}\n\nexport default customOmitClone;\n","import arrayMap from './_arrayMap.js';\nimport baseClone from './_baseClone.js';\nimport baseUnset from './_baseUnset.js';\nimport castPath from './_castPath.js';\nimport copyObject from './_copyObject.js';\nimport customOmitClone from './_customOmitClone.js';\nimport flatRest from './_flatRest.js';\nimport getAllKeysIn from './_getAllKeysIn.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * The opposite of `_.pick`; this method creates an object composed of the\n * own and inherited enumerable property paths of `object` that are not omitted.\n *\n * **Note:** This method is considerably slower than `_.pick`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to omit.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.omit(object, ['a', 'c']);\n * // => { 'b': '2' }\n */\nvar omit = flatRest(function(object, paths) {\n var result = {};\n if (object == null) {\n return result;\n }\n var isDeep = false;\n paths = arrayMap(paths, function(path) {\n path = castPath(path, object);\n isDeep || (isDeep = path.length > 1);\n return path;\n });\n copyObject(object, getAllKeysIn(object), result);\n if (isDeep) {\n result = baseClone(result, CLONE_DEEP_FLAG | CLONE_FLAT_FLAG | CLONE_SYMBOLS_FLAG, customOmitClone);\n }\n var length = paths.length;\n while (length--) {\n baseUnset(result, paths[length]);\n }\n return result;\n});\n\nexport default omit;\n","import assignValue from './_assignValue.js';\nimport castPath from './_castPath.js';\nimport isIndex from './_isIndex.js';\nimport isObject from './isObject.js';\nimport toKey from './_toKey.js';\n\n/**\n * The base implementation of `_.set`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\nfunction baseSet(object, path, value, customizer) {\n if (!isObject(object)) {\n return object;\n }\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n lastIndex = length - 1,\n nested = object;\n\n while (nested != null && ++index < length) {\n var key = toKey(path[index]),\n newValue = value;\n\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return object;\n }\n\n if (index != lastIndex) {\n var objValue = nested[key];\n newValue = customizer ? customizer(objValue, key, nested) : undefined;\n if (newValue === undefined) {\n newValue = isObject(objValue)\n ? objValue\n : (isIndex(path[index + 1]) ? [] : {});\n }\n }\n assignValue(nested, key, newValue);\n nested = nested[key];\n }\n return object;\n}\n\nexport default baseSet;\n","import baseGet from './_baseGet.js';\nimport baseSet from './_baseSet.js';\nimport castPath from './_castPath.js';\n\n/**\n * The base implementation of `_.pickBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @param {Function} predicate The function invoked per property.\n * @returns {Object} Returns the new object.\n */\nfunction basePickBy(object, paths, predicate) {\n var index = -1,\n length = paths.length,\n result = {};\n\n while (++index < length) {\n var path = paths[index],\n value = baseGet(object, path);\n\n if (predicate(value, path)) {\n baseSet(result, castPath(path, object), value);\n }\n }\n return result;\n}\n\nexport default basePickBy;\n","import arrayMap from './_arrayMap.js';\nimport baseIteratee from './_baseIteratee.js';\nimport basePickBy from './_basePickBy.js';\nimport getAllKeysIn from './_getAllKeysIn.js';\n\n/**\n * Creates an object composed of the `object` properties `predicate` returns\n * truthy for. The predicate is invoked with two arguments: (value, key).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The source object.\n * @param {Function} [predicate=_.identity] The function invoked per property.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pickBy(object, _.isNumber);\n * // => { 'a': 1, 'c': 3 }\n */\nfunction pickBy(object, predicate) {\n if (object == null) {\n return {};\n }\n var props = arrayMap(getAllKeysIn(object), function(prop) {\n return [prop];\n });\n predicate = baseIteratee(predicate);\n return basePickBy(object, props, function(value, path) {\n return predicate(value, path[0]);\n });\n}\n\nexport default pickBy;\n","import baseIteratee from './_baseIteratee.js';\nimport negate from './negate.js';\nimport pickBy from './pickBy.js';\n\n/**\n * The opposite of `_.pickBy`; this method creates an object composed of\n * the own and inherited enumerable string keyed properties of `object` that\n * `predicate` doesn't return truthy for. The predicate is invoked with two\n * arguments: (value, key).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The source object.\n * @param {Function} [predicate=_.identity] The function invoked per property.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.omitBy(object, _.isNumber);\n * // => { 'b': '2' }\n */\nfunction omitBy(object, predicate) {\n return pickBy(object, negate(baseIteratee(predicate)));\n}\n\nexport default omitBy;\n","import before from './before.js';\n\n/**\n * Creates a function that is restricted to invoking `func` once. Repeat calls\n * to the function return the value of the first invocation. The `func` is\n * invoked with the `this` binding and arguments of the created function.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * var initialize = _.once(createApplication);\n * initialize();\n * initialize();\n * // => `createApplication` is invoked once\n */\nfunction once(func) {\n return before(2, func);\n}\n\nexport default once;\n","/**\n * The base implementation of `_.sortBy` which uses `comparer` to define the\n * sort order of `array` and replaces criteria objects with their corresponding\n * values.\n *\n * @private\n * @param {Array} array The array to sort.\n * @param {Function} comparer The function to define sort order.\n * @returns {Array} Returns `array`.\n */\nfunction baseSortBy(array, comparer) {\n var length = array.length;\n\n array.sort(comparer);\n while (length--) {\n array[length] = array[length].value;\n }\n return array;\n}\n\nexport default baseSortBy;\n","import isSymbol from './isSymbol.js';\n\n/**\n * Compares values to sort them in ascending order.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {number} Returns the sort order indicator for `value`.\n */\nfunction compareAscending(value, other) {\n if (value !== other) {\n var valIsDefined = value !== undefined,\n valIsNull = value === null,\n valIsReflexive = value === value,\n valIsSymbol = isSymbol(value);\n\n var othIsDefined = other !== undefined,\n othIsNull = other === null,\n othIsReflexive = other === other,\n othIsSymbol = isSymbol(other);\n\n if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) ||\n (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) ||\n (valIsNull && othIsDefined && othIsReflexive) ||\n (!valIsDefined && othIsReflexive) ||\n !valIsReflexive) {\n return 1;\n }\n if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) ||\n (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) ||\n (othIsNull && valIsDefined && valIsReflexive) ||\n (!othIsDefined && valIsReflexive) ||\n !othIsReflexive) {\n return -1;\n }\n }\n return 0;\n}\n\nexport default compareAscending;\n","import compareAscending from './_compareAscending.js';\n\n/**\n * Used by `_.orderBy` to compare multiple properties of a value to another\n * and stable sort them.\n *\n * If `orders` is unspecified, all values are sorted in ascending order. Otherwise,\n * specify an order of \"desc\" for descending or \"asc\" for ascending sort order\n * of corresponding values.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {boolean[]|string[]} orders The order to sort by for each property.\n * @returns {number} Returns the sort order indicator for `object`.\n */\nfunction compareMultiple(object, other, orders) {\n var index = -1,\n objCriteria = object.criteria,\n othCriteria = other.criteria,\n length = objCriteria.length,\n ordersLength = orders.length;\n\n while (++index < length) {\n var result = compareAscending(objCriteria[index], othCriteria[index]);\n if (result) {\n if (index >= ordersLength) {\n return result;\n }\n var order = orders[index];\n return result * (order == 'desc' ? -1 : 1);\n }\n }\n // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications\n // that causes it, under certain circumstances, to provide the same value for\n // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247\n // for more details.\n //\n // This also ensures a stable sort in V8 and other engines.\n // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details.\n return object.index - other.index;\n}\n\nexport default compareMultiple;\n","import arrayMap from './_arrayMap.js';\nimport baseGet from './_baseGet.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseMap from './_baseMap.js';\nimport baseSortBy from './_baseSortBy.js';\nimport baseUnary from './_baseUnary.js';\nimport compareMultiple from './_compareMultiple.js';\nimport identity from './identity.js';\nimport isArray from './isArray.js';\n\n/**\n * The base implementation of `_.orderBy` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by.\n * @param {string[]} orders The sort orders of `iteratees`.\n * @returns {Array} Returns the new sorted array.\n */\nfunction baseOrderBy(collection, iteratees, orders) {\n if (iteratees.length) {\n iteratees = arrayMap(iteratees, function(iteratee) {\n if (isArray(iteratee)) {\n return function(value) {\n return baseGet(value, iteratee.length === 1 ? iteratee[0] : iteratee);\n }\n }\n return iteratee;\n });\n } else {\n iteratees = [identity];\n }\n\n var index = -1;\n iteratees = arrayMap(iteratees, baseUnary(baseIteratee));\n\n var result = baseMap(collection, function(value, key, collection) {\n var criteria = arrayMap(iteratees, function(iteratee) {\n return iteratee(value);\n });\n return { 'criteria': criteria, 'index': ++index, 'value': value };\n });\n\n return baseSortBy(result, function(object, other) {\n return compareMultiple(object, other, orders);\n });\n}\n\nexport default baseOrderBy;\n","import baseOrderBy from './_baseOrderBy.js';\nimport isArray from './isArray.js';\n\n/**\n * This method is like `_.sortBy` except that it allows specifying the sort\n * orders of the iteratees to sort by. If `orders` is unspecified, all values\n * are sorted in ascending order. Otherwise, specify an order of \"desc\" for\n * descending or \"asc\" for ascending sort order of corresponding values.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Array[]|Function[]|Object[]|string[]} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @param {string[]} [orders] The sort orders of `iteratees`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 34 },\n * { 'user': 'fred', 'age': 40 },\n * { 'user': 'barney', 'age': 36 }\n * ];\n *\n * // Sort by `user` in ascending order and by `age` in descending order.\n * _.orderBy(users, ['user', 'age'], ['asc', 'desc']);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]]\n */\nfunction orderBy(collection, iteratees, orders, guard) {\n if (collection == null) {\n return [];\n }\n if (!isArray(iteratees)) {\n iteratees = iteratees == null ? [] : [iteratees];\n }\n orders = guard ? undefined : orders;\n if (!isArray(orders)) {\n orders = orders == null ? [] : [orders];\n }\n return baseOrderBy(collection, iteratees, orders);\n}\n\nexport default orderBy;\n","import apply from './_apply.js';\nimport arrayMap from './_arrayMap.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseRest from './_baseRest.js';\nimport baseUnary from './_baseUnary.js';\nimport flatRest from './_flatRest.js';\n\n/**\n * Creates a function like `_.over`.\n *\n * @private\n * @param {Function} arrayFunc The function to iterate over iteratees.\n * @returns {Function} Returns the new over function.\n */\nfunction createOver(arrayFunc) {\n return flatRest(function(iteratees) {\n iteratees = arrayMap(iteratees, baseUnary(baseIteratee));\n return baseRest(function(args) {\n var thisArg = this;\n return arrayFunc(iteratees, function(iteratee) {\n return apply(iteratee, thisArg, args);\n });\n });\n });\n}\n\nexport default createOver;\n","import arrayMap from './_arrayMap.js';\nimport createOver from './_createOver.js';\n\n/**\n * Creates a function that invokes `iteratees` with the arguments it receives\n * and returns their results.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {...(Function|Function[])} [iteratees=[_.identity]]\n * The iteratees to invoke.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var func = _.over([Math.max, Math.min]);\n *\n * func(1, 2, 3, 4);\n * // => [4, 1]\n */\nvar over = createOver(arrayMap);\n\nexport default over;\n","import baseRest from './_baseRest.js';\n\n/**\n * A `baseRest` alias which can be replaced with `identity` by module\n * replacement plugins.\n *\n * @private\n * @type {Function}\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\nvar castRest = baseRest;\n\nexport default castRest;\n","import apply from './_apply.js';\nimport arrayMap from './_arrayMap.js';\nimport baseFlatten from './_baseFlatten.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseRest from './_baseRest.js';\nimport baseUnary from './_baseUnary.js';\nimport castRest from './_castRest.js';\nimport isArray from './isArray.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMin = Math.min;\n\n/**\n * Creates a function that invokes `func` with its arguments transformed.\n *\n * @static\n * @since 4.0.0\n * @memberOf _\n * @category Function\n * @param {Function} func The function to wrap.\n * @param {...(Function|Function[])} [transforms=[_.identity]]\n * The argument transforms.\n * @returns {Function} Returns the new function.\n * @example\n *\n * function doubled(n) {\n * return n * 2;\n * }\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var func = _.overArgs(function(x, y) {\n * return [x, y];\n * }, [square, doubled]);\n *\n * func(9, 3);\n * // => [81, 6]\n *\n * func(10, 5);\n * // => [100, 10]\n */\nvar overArgs = castRest(function(func, transforms) {\n transforms = (transforms.length == 1 && isArray(transforms[0]))\n ? arrayMap(transforms[0], baseUnary(baseIteratee))\n : arrayMap(baseFlatten(transforms, 1), baseUnary(baseIteratee));\n\n var funcsLength = transforms.length;\n return baseRest(function(args) {\n var index = -1,\n length = nativeMin(args.length, funcsLength);\n\n while (++index < length) {\n args[index] = transforms[index].call(this, args[index]);\n }\n return apply(func, this, args);\n });\n});\n\nexport default overArgs;\n","import arrayEvery from './_arrayEvery.js';\nimport createOver from './_createOver.js';\n\n/**\n * Creates a function that checks if **all** of the `predicates` return\n * truthy when invoked with the arguments it receives.\n *\n * Following shorthands are possible for providing predicates.\n * Pass an `Object` and it will be used as an parameter for `_.matches` to create the predicate.\n * Pass an `Array` of parameters for `_.matchesProperty` and the predicate will be created using them.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {...(Function|Function[])} [predicates=[_.identity]]\n * The predicates to check.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var func = _.overEvery([Boolean, isFinite]);\n *\n * func('1');\n * // => true\n *\n * func(null);\n * // => false\n *\n * func(NaN);\n * // => false\n */\nvar overEvery = createOver(arrayEvery);\n\nexport default overEvery;\n","import arraySome from './_arraySome.js';\nimport createOver from './_createOver.js';\n\n/**\n * Creates a function that checks if **any** of the `predicates` return\n * truthy when invoked with the arguments it receives.\n *\n * Following shorthands are possible for providing predicates.\n * Pass an `Object` and it will be used as an parameter for `_.matches` to create the predicate.\n * Pass an `Array` of parameters for `_.matchesProperty` and the predicate will be created using them.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {...(Function|Function[])} [predicates=[_.identity]]\n * The predicates to check.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var func = _.overSome([Boolean, isFinite]);\n *\n * func('1');\n * // => true\n *\n * func(null);\n * // => true\n *\n * func(NaN);\n * // => false\n *\n * var matchesFunc = _.overSome([{ 'a': 1 }, { 'a': 2 }])\n * var matchesPropertyFunc = _.overSome([['a', 1], ['a', 2]])\n */\nvar overSome = createOver(arraySome);\n\nexport default overSome;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeFloor = Math.floor;\n\n/**\n * The base implementation of `_.repeat` which doesn't coerce arguments.\n *\n * @private\n * @param {string} string The string to repeat.\n * @param {number} n The number of times to repeat the string.\n * @returns {string} Returns the repeated string.\n */\nfunction baseRepeat(string, n) {\n var result = '';\n if (!string || n < 1 || n > MAX_SAFE_INTEGER) {\n return result;\n }\n // Leverage the exponentiation by squaring algorithm for a faster repeat.\n // See https://en.wikipedia.org/wiki/Exponentiation_by_squaring for more details.\n do {\n if (n % 2) {\n result += string;\n }\n n = nativeFloor(n / 2);\n if (n) {\n string += string;\n }\n } while (n);\n\n return result;\n}\n\nexport default baseRepeat;\n","import baseProperty from './_baseProperty.js';\n\n/**\n * Gets the size of an ASCII `string`.\n *\n * @private\n * @param {string} string The string inspect.\n * @returns {number} Returns the string size.\n */\nvar asciiSize = baseProperty('length');\n\nexport default asciiSize;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsAstral = '[' + rsAstralRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\nvar reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n/**\n * Gets the size of a Unicode `string`.\n *\n * @private\n * @param {string} string The string inspect.\n * @returns {number} Returns the string size.\n */\nfunction unicodeSize(string) {\n var result = reUnicode.lastIndex = 0;\n while (reUnicode.test(string)) {\n ++result;\n }\n return result;\n}\n\nexport default unicodeSize;\n","import asciiSize from './_asciiSize.js';\nimport hasUnicode from './_hasUnicode.js';\nimport unicodeSize from './_unicodeSize.js';\n\n/**\n * Gets the number of symbols in `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the string size.\n */\nfunction stringSize(string) {\n return hasUnicode(string)\n ? unicodeSize(string)\n : asciiSize(string);\n}\n\nexport default stringSize;\n","import baseRepeat from './_baseRepeat.js';\nimport baseToString from './_baseToString.js';\nimport castSlice from './_castSlice.js';\nimport hasUnicode from './_hasUnicode.js';\nimport stringSize from './_stringSize.js';\nimport stringToArray from './_stringToArray.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeCeil = Math.ceil;\n\n/**\n * Creates the padding for `string` based on `length`. The `chars` string\n * is truncated if the number of characters exceeds `length`.\n *\n * @private\n * @param {number} length The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padding for `string`.\n */\nfunction createPadding(length, chars) {\n chars = chars === undefined ? ' ' : baseToString(chars);\n\n var charsLength = chars.length;\n if (charsLength < 2) {\n return charsLength ? baseRepeat(chars, length) : chars;\n }\n var result = baseRepeat(chars, nativeCeil(length / stringSize(chars)));\n return hasUnicode(chars)\n ? castSlice(stringToArray(result), 0, length).join('')\n : result.slice(0, length);\n}\n\nexport default createPadding;\n","import createPadding from './_createPadding.js';\nimport stringSize from './_stringSize.js';\nimport toInteger from './toInteger.js';\nimport toString from './toString.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeCeil = Math.ceil,\n nativeFloor = Math.floor;\n\n/**\n * Pads `string` on the left and right sides if it's shorter than `length`.\n * Padding characters are truncated if they can't be evenly divided by `length`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to pad.\n * @param {number} [length=0] The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padded string.\n * @example\n *\n * _.pad('abc', 8);\n * // => ' abc '\n *\n * _.pad('abc', 8, '_-');\n * // => '_-abc_-_'\n *\n * _.pad('abc', 3);\n * // => 'abc'\n */\nfunction pad(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n\n var strLength = length ? stringSize(string) : 0;\n if (!length || strLength >= length) {\n return string;\n }\n var mid = (length - strLength) / 2;\n return (\n createPadding(nativeFloor(mid), chars) +\n string +\n createPadding(nativeCeil(mid), chars)\n );\n}\n\nexport default pad;\n","import createPadding from './_createPadding.js';\nimport stringSize from './_stringSize.js';\nimport toInteger from './toInteger.js';\nimport toString from './toString.js';\n\n/**\n * Pads `string` on the right side if it's shorter than `length`. Padding\n * characters are truncated if they exceed `length`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to pad.\n * @param {number} [length=0] The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padded string.\n * @example\n *\n * _.padEnd('abc', 6);\n * // => 'abc '\n *\n * _.padEnd('abc', 6, '_-');\n * // => 'abc_-_'\n *\n * _.padEnd('abc', 3);\n * // => 'abc'\n */\nfunction padEnd(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n\n var strLength = length ? stringSize(string) : 0;\n return (length && strLength < length)\n ? (string + createPadding(length - strLength, chars))\n : string;\n}\n\nexport default padEnd;\n","import createPadding from './_createPadding.js';\nimport stringSize from './_stringSize.js';\nimport toInteger from './toInteger.js';\nimport toString from './toString.js';\n\n/**\n * Pads `string` on the left side if it's shorter than `length`. Padding\n * characters are truncated if they exceed `length`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to pad.\n * @param {number} [length=0] The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padded string.\n * @example\n *\n * _.padStart('abc', 6);\n * // => ' abc'\n *\n * _.padStart('abc', 6, '_-');\n * // => '_-_abc'\n *\n * _.padStart('abc', 3);\n * // => 'abc'\n */\nfunction padStart(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n\n var strLength = length ? stringSize(string) : 0;\n return (length && strLength < length)\n ? (createPadding(length - strLength, chars) + string)\n : string;\n}\n\nexport default padStart;\n","import root from './_root.js';\nimport toString from './toString.js';\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeParseInt = root.parseInt;\n\n/**\n * Converts `string` to an integer of the specified radix. If `radix` is\n * `undefined` or `0`, a `radix` of `10` is used unless `value` is a\n * hexadecimal, in which case a `radix` of `16` is used.\n *\n * **Note:** This method aligns with the\n * [ES5 implementation](https://es5.github.io/#x15.1.2.2) of `parseInt`.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category String\n * @param {string} string The string to convert.\n * @param {number} [radix=10] The radix to interpret `value` by.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.parseInt('08');\n * // => 8\n *\n * _.map(['6', '08', '10'], _.parseInt);\n * // => [6, 8, 10]\n */\nfunction parseInt(string, radix, guard) {\n if (guard || radix == null) {\n radix = 0;\n } else if (radix) {\n radix = +radix;\n }\n return nativeParseInt(toString(string).replace(reTrimStart, ''), radix || 0);\n}\n\nexport default parseInt;\n","import baseRest from './_baseRest.js';\nimport createWrap from './_createWrap.js';\nimport getHolder from './_getHolder.js';\nimport replaceHolders from './_replaceHolders.js';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_PARTIAL_FLAG = 32;\n\n/**\n * Creates a function that invokes `func` with `partials` prepended to the\n * arguments it receives. This method is like `_.bind` except it does **not**\n * alter the `this` binding.\n *\n * The `_.partial.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for partially applied arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of partially\n * applied functions.\n *\n * @static\n * @memberOf _\n * @since 0.2.0\n * @category Function\n * @param {Function} func The function to partially apply arguments to.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new partially applied function.\n * @example\n *\n * function greet(greeting, name) {\n * return greeting + ' ' + name;\n * }\n *\n * var sayHelloTo = _.partial(greet, 'hello');\n * sayHelloTo('fred');\n * // => 'hello fred'\n *\n * // Partially applied with placeholders.\n * var greetFred = _.partial(greet, _, 'fred');\n * greetFred('hi');\n * // => 'hi fred'\n */\nvar partial = baseRest(function(func, partials) {\n var holders = replaceHolders(partials, getHolder(partial));\n return createWrap(func, WRAP_PARTIAL_FLAG, undefined, partials, holders);\n});\n\n// Assign default placeholders.\npartial.placeholder = {};\n\nexport default partial;\n","import baseRest from './_baseRest.js';\nimport createWrap from './_createWrap.js';\nimport getHolder from './_getHolder.js';\nimport replaceHolders from './_replaceHolders.js';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_PARTIAL_RIGHT_FLAG = 64;\n\n/**\n * This method is like `_.partial` except that partially applied arguments\n * are appended to the arguments it receives.\n *\n * The `_.partialRight.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for partially applied arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of partially\n * applied functions.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Function\n * @param {Function} func The function to partially apply arguments to.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new partially applied function.\n * @example\n *\n * function greet(greeting, name) {\n * return greeting + ' ' + name;\n * }\n *\n * var greetFred = _.partialRight(greet, 'fred');\n * greetFred('hi');\n * // => 'hi fred'\n *\n * // Partially applied with placeholders.\n * var sayHelloTo = _.partialRight(greet, 'hello', _);\n * sayHelloTo('fred');\n * // => 'hello fred'\n */\nvar partialRight = baseRest(function(func, partials) {\n var holders = replaceHolders(partials, getHolder(partialRight));\n return createWrap(func, WRAP_PARTIAL_RIGHT_FLAG, undefined, partials, holders);\n});\n\n// Assign default placeholders.\npartialRight.placeholder = {};\n\nexport default partialRight;\n","import createAggregator from './_createAggregator.js';\n\n/**\n * Creates an array of elements split into two groups, the first of which\n * contains elements `predicate` returns truthy for, the second of which\n * contains elements `predicate` returns falsey for. The predicate is\n * invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the array of grouped elements.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': true },\n * { 'user': 'pebbles', 'age': 1, 'active': false }\n * ];\n *\n * _.partition(users, function(o) { return o.active; });\n * // => objects for [['fred'], ['barney', 'pebbles']]\n *\n * // The `_.matches` iteratee shorthand.\n * _.partition(users, { 'age': 1, 'active': false });\n * // => objects for [['pebbles'], ['barney', 'fred']]\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.partition(users, ['active', false]);\n * // => objects for [['barney', 'pebbles'], ['fred']]\n *\n * // The `_.property` iteratee shorthand.\n * _.partition(users, 'active');\n * // => objects for [['fred'], ['barney', 'pebbles']]\n */\nvar partition = createAggregator(function(result, value, key) {\n result[key ? 0 : 1].push(value);\n}, function() { return [[], []]; });\n\nexport default partition;\n","import basePickBy from './_basePickBy.js';\nimport hasIn from './hasIn.js';\n\n/**\n * The base implementation of `_.pick` without support for individual\n * property identifiers.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @returns {Object} Returns the new object.\n */\nfunction basePick(object, paths) {\n return basePickBy(object, paths, function(value, path) {\n return hasIn(object, path);\n });\n}\n\nexport default basePick;\n","import basePick from './_basePick.js';\nimport flatRest from './_flatRest.js';\n\n/**\n * Creates an object composed of the picked `object` properties.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pick(object, ['a', 'c']);\n * // => { 'a': 1, 'c': 3 }\n */\nvar pick = flatRest(function(object, paths) {\n return object == null ? {} : basePick(object, paths);\n});\n\nexport default pick;\n","import baseLodash from './_baseLodash.js';\nimport wrapperClone from './_wrapperClone.js';\n\n/**\n * Creates a clone of the chain sequence planting `value` as the wrapped value.\n *\n * @name plant\n * @memberOf _\n * @since 3.2.0\n * @category Seq\n * @param {*} value The value to plant.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var wrapped = _([1, 2]).map(square);\n * var other = wrapped.plant([3, 4]);\n *\n * other.value();\n * // => [9, 16]\n *\n * wrapped.value();\n * // => [1, 4]\n */\nfunction wrapperPlant(value) {\n var result,\n parent = this;\n\n while (parent instanceof baseLodash) {\n var clone = wrapperClone(parent);\n clone.__index__ = 0;\n clone.__values__ = undefined;\n if (result) {\n previous.__wrapped__ = clone;\n } else {\n result = clone;\n }\n var previous = clone;\n parent = parent.__wrapped__;\n }\n previous.__wrapped__ = value;\n return result;\n}\n\nexport default wrapperPlant;\n","import baseGet from './_baseGet.js';\n\n/**\n * The opposite of `_.property`; this method creates a function that returns\n * the value at a given path of `object`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Util\n * @param {Object} object The object to query.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var array = [0, 1, 2],\n * object = { 'a': array, 'b': array, 'c': array };\n *\n * _.map(['a[2]', 'c[0]'], _.propertyOf(object));\n * // => [2, 0]\n *\n * _.map([['a', '2'], ['c', '0']], _.propertyOf(object));\n * // => [2, 0]\n */\nfunction propertyOf(object) {\n return function(path) {\n return object == null ? undefined : baseGet(object, path);\n };\n}\n\nexport default propertyOf;\n","/**\n * This function is like `baseIndexOf` except that it accepts a comparator.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseIndexOfWith(array, value, fromIndex, comparator) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (comparator(array[index], value)) {\n return index;\n }\n }\n return -1;\n}\n\nexport default baseIndexOfWith;\n","import arrayMap from './_arrayMap.js';\nimport baseIndexOf from './_baseIndexOf.js';\nimport baseIndexOfWith from './_baseIndexOfWith.js';\nimport baseUnary from './_baseUnary.js';\nimport copyArray from './_copyArray.js';\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * The base implementation of `_.pullAllBy` without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns `array`.\n */\nfunction basePullAll(array, values, iteratee, comparator) {\n var indexOf = comparator ? baseIndexOfWith : baseIndexOf,\n index = -1,\n length = values.length,\n seen = array;\n\n if (array === values) {\n values = copyArray(values);\n }\n if (iteratee) {\n seen = arrayMap(array, baseUnary(iteratee));\n }\n while (++index < length) {\n var fromIndex = 0,\n value = values[index],\n computed = iteratee ? iteratee(value) : value;\n\n while ((fromIndex = indexOf(seen, computed, fromIndex, comparator)) > -1) {\n if (seen !== array) {\n splice.call(seen, fromIndex, 1);\n }\n splice.call(array, fromIndex, 1);\n }\n }\n return array;\n}\n\nexport default basePullAll;\n","import basePullAll from './_basePullAll.js';\n\n/**\n * This method is like `_.pull` except that it accepts an array of values to remove.\n *\n * **Note:** Unlike `_.difference`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = ['a', 'b', 'c', 'a', 'b', 'c'];\n *\n * _.pullAll(array, ['a', 'c']);\n * console.log(array);\n * // => ['b', 'b']\n */\nfunction pullAll(array, values) {\n return (array && array.length && values && values.length)\n ? basePullAll(array, values)\n : array;\n}\n\nexport default pullAll;\n","import baseRest from './_baseRest.js';\nimport pullAll from './pullAll.js';\n\n/**\n * Removes all given values from `array` using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * **Note:** Unlike `_.without`, this method mutates `array`. Use `_.remove`\n * to remove elements from an array by predicate.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {...*} [values] The values to remove.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = ['a', 'b', 'c', 'a', 'b', 'c'];\n *\n * _.pull(array, 'a', 'c');\n * console.log(array);\n * // => ['b', 'b']\n */\nvar pull = baseRest(pullAll);\n\nexport default pull;\n","import baseIteratee from './_baseIteratee.js';\nimport basePullAll from './_basePullAll.js';\n\n/**\n * This method is like `_.pullAll` except that it accepts `iteratee` which is\n * invoked for each element of `array` and `values` to generate the criterion\n * by which they're compared. The iteratee is invoked with one argument: (value).\n *\n * **Note:** Unlike `_.differenceBy`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [{ 'x': 1 }, { 'x': 2 }, { 'x': 3 }, { 'x': 1 }];\n *\n * _.pullAllBy(array, [{ 'x': 1 }, { 'x': 3 }], 'x');\n * console.log(array);\n * // => [{ 'x': 2 }]\n */\nfunction pullAllBy(array, values, iteratee) {\n return (array && array.length && values && values.length)\n ? basePullAll(array, values, baseIteratee(iteratee, 2))\n : array;\n}\n\nexport default pullAllBy;\n","import basePullAll from './_basePullAll.js';\n\n/**\n * This method is like `_.pullAll` except that it accepts `comparator` which\n * is invoked to compare elements of `array` to `values`. The comparator is\n * invoked with two arguments: (arrVal, othVal).\n *\n * **Note:** Unlike `_.differenceWith`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 4.6.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [{ 'x': 1, 'y': 2 }, { 'x': 3, 'y': 4 }, { 'x': 5, 'y': 6 }];\n *\n * _.pullAllWith(array, [{ 'x': 3, 'y': 4 }], _.isEqual);\n * console.log(array);\n * // => [{ 'x': 1, 'y': 2 }, { 'x': 5, 'y': 6 }]\n */\nfunction pullAllWith(array, values, comparator) {\n return (array && array.length && values && values.length)\n ? basePullAll(array, values, undefined, comparator)\n : array;\n}\n\nexport default pullAllWith;\n","import baseUnset from './_baseUnset.js';\nimport isIndex from './_isIndex.js';\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * The base implementation of `_.pullAt` without support for individual\n * indexes or capturing the removed elements.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {number[]} indexes The indexes of elements to remove.\n * @returns {Array} Returns `array`.\n */\nfunction basePullAt(array, indexes) {\n var length = array ? indexes.length : 0,\n lastIndex = length - 1;\n\n while (length--) {\n var index = indexes[length];\n if (length == lastIndex || index !== previous) {\n var previous = index;\n if (isIndex(index)) {\n splice.call(array, index, 1);\n } else {\n baseUnset(array, index);\n }\n }\n }\n return array;\n}\n\nexport default basePullAt;\n","import arrayMap from './_arrayMap.js';\nimport baseAt from './_baseAt.js';\nimport basePullAt from './_basePullAt.js';\nimport compareAscending from './_compareAscending.js';\nimport flatRest from './_flatRest.js';\nimport isIndex from './_isIndex.js';\n\n/**\n * Removes elements from `array` corresponding to `indexes` and returns an\n * array of removed elements.\n *\n * **Note:** Unlike `_.at`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {...(number|number[])} [indexes] The indexes of elements to remove.\n * @returns {Array} Returns the new array of removed elements.\n * @example\n *\n * var array = ['a', 'b', 'c', 'd'];\n * var pulled = _.pullAt(array, [1, 3]);\n *\n * console.log(array);\n * // => ['a', 'c']\n *\n * console.log(pulled);\n * // => ['b', 'd']\n */\nvar pullAt = flatRest(function(array, indexes) {\n var length = array == null ? 0 : array.length,\n result = baseAt(array, indexes);\n\n basePullAt(array, arrayMap(indexes, function(index) {\n return isIndex(index, length) ? +index : index;\n }).sort(compareAscending));\n\n return result;\n});\n\nexport default pullAt;\n","/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeFloor = Math.floor,\n nativeRandom = Math.random;\n\n/**\n * The base implementation of `_.random` without support for returning\n * floating-point numbers.\n *\n * @private\n * @param {number} lower The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the random number.\n */\nfunction baseRandom(lower, upper) {\n return lower + nativeFloor(nativeRandom() * (upper - lower + 1));\n}\n\nexport default baseRandom;\n","import baseRandom from './_baseRandom.js';\nimport isIterateeCall from './_isIterateeCall.js';\nimport toFinite from './toFinite.js';\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseFloat = parseFloat;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMin = Math.min,\n nativeRandom = Math.random;\n\n/**\n * Produces a random number between the inclusive `lower` and `upper` bounds.\n * If only one argument is provided a number between `0` and the given number\n * is returned. If `floating` is `true`, or either `lower` or `upper` are\n * floats, a floating-point number is returned instead of an integer.\n *\n * **Note:** JavaScript follows the IEEE-754 standard for resolving\n * floating-point values which can produce unexpected results.\n *\n * @static\n * @memberOf _\n * @since 0.7.0\n * @category Number\n * @param {number} [lower=0] The lower bound.\n * @param {number} [upper=1] The upper bound.\n * @param {boolean} [floating] Specify returning a floating-point number.\n * @returns {number} Returns the random number.\n * @example\n *\n * _.random(0, 5);\n * // => an integer between 0 and 5\n *\n * _.random(5);\n * // => also an integer between 0 and 5\n *\n * _.random(5, true);\n * // => a floating-point number between 0 and 5\n *\n * _.random(1.2, 5.2);\n * // => a floating-point number between 1.2 and 5.2\n */\nfunction random(lower, upper, floating) {\n if (floating && typeof floating != 'boolean' && isIterateeCall(lower, upper, floating)) {\n upper = floating = undefined;\n }\n if (floating === undefined) {\n if (typeof upper == 'boolean') {\n floating = upper;\n upper = undefined;\n }\n else if (typeof lower == 'boolean') {\n floating = lower;\n lower = undefined;\n }\n }\n if (lower === undefined && upper === undefined) {\n lower = 0;\n upper = 1;\n }\n else {\n lower = toFinite(lower);\n if (upper === undefined) {\n upper = lower;\n lower = 0;\n } else {\n upper = toFinite(upper);\n }\n }\n if (lower > upper) {\n var temp = lower;\n lower = upper;\n upper = temp;\n }\n if (floating || lower % 1 || upper % 1) {\n var rand = nativeRandom();\n return nativeMin(lower + (rand * (upper - lower + freeParseFloat('1e-' + ((rand + '').length - 1)))), upper);\n }\n return baseRandom(lower, upper);\n}\n\nexport default random;\n","/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeCeil = Math.ceil,\n nativeMax = Math.max;\n\n/**\n * The base implementation of `_.range` and `_.rangeRight` which doesn't\n * coerce arguments.\n *\n * @private\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @param {number} step The value to increment or decrement by.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the range of numbers.\n */\nfunction baseRange(start, end, step, fromRight) {\n var index = -1,\n length = nativeMax(nativeCeil((end - start) / (step || 1)), 0),\n result = Array(length);\n\n while (length--) {\n result[fromRight ? length : ++index] = start;\n start += step;\n }\n return result;\n}\n\nexport default baseRange;\n","import baseRange from './_baseRange.js';\nimport isIterateeCall from './_isIterateeCall.js';\nimport toFinite from './toFinite.js';\n\n/**\n * Creates a `_.range` or `_.rangeRight` function.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new range function.\n */\nfunction createRange(fromRight) {\n return function(start, end, step) {\n if (step && typeof step != 'number' && isIterateeCall(start, end, step)) {\n end = step = undefined;\n }\n // Ensure the sign of `-0` is preserved.\n start = toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n step = step === undefined ? (start < end ? 1 : -1) : toFinite(step);\n return baseRange(start, end, step, fromRight);\n };\n}\n\nexport default createRange;\n","import createRange from './_createRange.js';\n\n/**\n * Creates an array of numbers (positive and/or negative) progressing from\n * `start` up to, but not including, `end`. A step of `-1` is used if a negative\n * `start` is specified without an `end` or `step`. If `end` is not specified,\n * it's set to `start` with `start` then set to `0`.\n *\n * **Note:** JavaScript follows the IEEE-754 standard for resolving\n * floating-point values which can produce unexpected results.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {number} [start=0] The start of the range.\n * @param {number} end The end of the range.\n * @param {number} [step=1] The value to increment or decrement by.\n * @returns {Array} Returns the range of numbers.\n * @see _.inRange, _.rangeRight\n * @example\n *\n * _.range(4);\n * // => [0, 1, 2, 3]\n *\n * _.range(-4);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 5);\n * // => [1, 2, 3, 4]\n *\n * _.range(0, 20, 5);\n * // => [0, 5, 10, 15]\n *\n * _.range(0, -4, -1);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 4, 0);\n * // => [1, 1, 1]\n *\n * _.range(0);\n * // => []\n */\nvar range = createRange();\n\nexport default range;\n","import createRange from './_createRange.js';\n\n/**\n * This method is like `_.range` except that it populates values in\n * descending order.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {number} [start=0] The start of the range.\n * @param {number} end The end of the range.\n * @param {number} [step=1] The value to increment or decrement by.\n * @returns {Array} Returns the range of numbers.\n * @see _.inRange, _.range\n * @example\n *\n * _.rangeRight(4);\n * // => [3, 2, 1, 0]\n *\n * _.rangeRight(-4);\n * // => [-3, -2, -1, 0]\n *\n * _.rangeRight(1, 5);\n * // => [4, 3, 2, 1]\n *\n * _.rangeRight(0, 20, 5);\n * // => [15, 10, 5, 0]\n *\n * _.rangeRight(0, -4, -1);\n * // => [-3, -2, -1, 0]\n *\n * _.rangeRight(1, 4, 0);\n * // => [1, 1, 1]\n *\n * _.rangeRight(0);\n * // => []\n */\nvar rangeRight = createRange(true);\n\nexport default rangeRight;\n","import createWrap from './_createWrap.js';\nimport flatRest from './_flatRest.js';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_REARG_FLAG = 256;\n\n/**\n * Creates a function that invokes `func` with arguments arranged according\n * to the specified `indexes` where the argument value at the first index is\n * provided as the first argument, the argument value at the second index is\n * provided as the second argument, and so on.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} func The function to rearrange arguments for.\n * @param {...(number|number[])} indexes The arranged argument indexes.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var rearged = _.rearg(function(a, b, c) {\n * return [a, b, c];\n * }, [2, 0, 1]);\n *\n * rearged('b', 'c', 'a')\n * // => ['a', 'b', 'c']\n */\nvar rearg = flatRest(function(func, indexes) {\n return createWrap(func, WRAP_REARG_FLAG, undefined, undefined, undefined, indexes);\n});\n\nexport default rearg;\n","/**\n * The base implementation of `_.reduce` and `_.reduceRight`, without support\n * for iteratee shorthands, which iterates over `collection` using `eachFunc`.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} accumulator The initial value.\n * @param {boolean} initAccum Specify using the first or last element of\n * `collection` as the initial value.\n * @param {Function} eachFunc The function to iterate over `collection`.\n * @returns {*} Returns the accumulated value.\n */\nfunction baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) {\n eachFunc(collection, function(value, index, collection) {\n accumulator = initAccum\n ? (initAccum = false, value)\n : iteratee(accumulator, value, index, collection);\n });\n return accumulator;\n}\n\nexport default baseReduce;\n","import arrayReduce from './_arrayReduce.js';\nimport baseEach from './_baseEach.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseReduce from './_baseReduce.js';\nimport isArray from './isArray.js';\n\n/**\n * Reduces `collection` to a value which is the accumulated result of running\n * each element in `collection` thru `iteratee`, where each successive\n * invocation is supplied the return value of the previous. If `accumulator`\n * is not given, the first element of `collection` is used as the initial\n * value. The iteratee is invoked with four arguments:\n * (accumulator, value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.reduce`, `_.reduceRight`, and `_.transform`.\n *\n * The guarded methods are:\n * `assign`, `defaults`, `defaultsDeep`, `includes`, `merge`, `orderBy`,\n * and `sortBy`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @returns {*} Returns the accumulated value.\n * @see _.reduceRight\n * @example\n *\n * _.reduce([1, 2], function(sum, n) {\n * return sum + n;\n * }, 0);\n * // => 3\n *\n * _.reduce({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {\n * (result[value] || (result[value] = [])).push(key);\n * return result;\n * }, {});\n * // => { '1': ['a', 'c'], '2': ['b'] } (iteration order is not guaranteed)\n */\nfunction reduce(collection, iteratee, accumulator) {\n var func = isArray(collection) ? arrayReduce : baseReduce,\n initAccum = arguments.length < 3;\n\n return func(collection, baseIteratee(iteratee, 4), accumulator, initAccum, baseEach);\n}\n\nexport default reduce;\n","/**\n * A specialized version of `_.reduceRight` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the last element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduceRight(array, iteratee, accumulator, initAccum) {\n var length = array == null ? 0 : array.length;\n if (initAccum && length) {\n accumulator = array[--length];\n }\n while (length--) {\n accumulator = iteratee(accumulator, array[length], length, array);\n }\n return accumulator;\n}\n\nexport default arrayReduceRight;\n","import arrayReduceRight from './_arrayReduceRight.js';\nimport baseEachRight from './_baseEachRight.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseReduce from './_baseReduce.js';\nimport isArray from './isArray.js';\n\n/**\n * This method is like `_.reduce` except that it iterates over elements of\n * `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @returns {*} Returns the accumulated value.\n * @see _.reduce\n * @example\n *\n * var array = [[0, 1], [2, 3], [4, 5]];\n *\n * _.reduceRight(array, function(flattened, other) {\n * return flattened.concat(other);\n * }, []);\n * // => [4, 5, 2, 3, 0, 1]\n */\nfunction reduceRight(collection, iteratee, accumulator) {\n var func = isArray(collection) ? arrayReduceRight : baseReduce,\n initAccum = arguments.length < 3;\n\n return func(collection, baseIteratee(iteratee, 4), accumulator, initAccum, baseEachRight);\n}\n\nexport default reduceRight;\n","import arrayFilter from './_arrayFilter.js';\nimport baseFilter from './_baseFilter.js';\nimport baseIteratee from './_baseIteratee.js';\nimport isArray from './isArray.js';\nimport negate from './negate.js';\n\n/**\n * The opposite of `_.filter`; this method returns the elements of `collection`\n * that `predicate` does **not** return truthy for.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n * @see _.filter\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': true }\n * ];\n *\n * _.reject(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.reject(users, { 'age': 40, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.reject(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.reject(users, 'active');\n * // => objects for ['barney']\n */\nfunction reject(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, negate(baseIteratee(predicate, 3)));\n}\n\nexport default reject;\n","import baseIteratee from './_baseIteratee.js';\nimport basePullAt from './_basePullAt.js';\n\n/**\n * Removes all elements from `array` that `predicate` returns truthy for\n * and returns an array of the removed elements. The predicate is invoked\n * with three arguments: (value, index, array).\n *\n * **Note:** Unlike `_.filter`, this method mutates `array`. Use `_.pull`\n * to pull elements from an array by value.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new array of removed elements.\n * @example\n *\n * var array = [1, 2, 3, 4];\n * var evens = _.remove(array, function(n) {\n * return n % 2 == 0;\n * });\n *\n * console.log(array);\n * // => [1, 3]\n *\n * console.log(evens);\n * // => [2, 4]\n */\nfunction remove(array, predicate) {\n var result = [];\n if (!(array && array.length)) {\n return result;\n }\n var index = -1,\n indexes = [],\n length = array.length;\n\n predicate = baseIteratee(predicate, 3);\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result.push(value);\n indexes.push(index);\n }\n }\n basePullAt(array, indexes);\n return result;\n}\n\nexport default remove;\n","import baseRepeat from './_baseRepeat.js';\nimport isIterateeCall from './_isIterateeCall.js';\nimport toInteger from './toInteger.js';\nimport toString from './toString.js';\n\n/**\n * Repeats the given string `n` times.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to repeat.\n * @param {number} [n=1] The number of times to repeat the string.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {string} Returns the repeated string.\n * @example\n *\n * _.repeat('*', 3);\n * // => '***'\n *\n * _.repeat('abc', 2);\n * // => 'abcabc'\n *\n * _.repeat('abc', 0);\n * // => ''\n */\nfunction repeat(string, n, guard) {\n if ((guard ? isIterateeCall(string, n, guard) : n === undefined)) {\n n = 1;\n } else {\n n = toInteger(n);\n }\n return baseRepeat(toString(string), n);\n}\n\nexport default repeat;\n","import toString from './toString.js';\n\n/**\n * Replaces matches for `pattern` in `string` with `replacement`.\n *\n * **Note:** This method is based on\n * [`String#replace`](https://mdn.io/String/replace).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to modify.\n * @param {RegExp|string} pattern The pattern to replace.\n * @param {Function|string} replacement The match replacement.\n * @returns {string} Returns the modified string.\n * @example\n *\n * _.replace('Hi Fred', 'Fred', 'Barney');\n * // => 'Hi Barney'\n */\nfunction replace() {\n var args = arguments,\n string = toString(args[0]);\n\n return args.length < 3 ? string : string.replace(args[1], args[2]);\n}\n\nexport default replace;\n","import baseRest from './_baseRest.js';\nimport toInteger from './toInteger.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that invokes `func` with the `this` binding of the\n * created function and arguments from `start` and beyond provided as\n * an array.\n *\n * **Note:** This method is based on the\n * [rest parameter](https://mdn.io/rest_parameters).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Function\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var say = _.rest(function(what, names) {\n * return what + ' ' + _.initial(names).join(', ') +\n * (_.size(names) > 1 ? ', & ' : '') + _.last(names);\n * });\n *\n * say('hello', 'fred', 'barney', 'pebbles');\n * // => 'hello fred, barney, & pebbles'\n */\nfunction rest(func, start) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n start = start === undefined ? start : toInteger(start);\n return baseRest(func, start);\n}\n\nexport default rest;\n","import castPath from './_castPath.js';\nimport isFunction from './isFunction.js';\nimport toKey from './_toKey.js';\n\n/**\n * This method is like `_.get` except that if the resolved value is a\n * function it's invoked with the `this` binding of its parent object and\n * its result is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to resolve.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c1': 3, 'c2': _.constant(4) } }] };\n *\n * _.result(object, 'a[0].b.c1');\n * // => 3\n *\n * _.result(object, 'a[0].b.c2');\n * // => 4\n *\n * _.result(object, 'a[0].b.c3', 'default');\n * // => 'default'\n *\n * _.result(object, 'a[0].b.c3', _.constant('default'));\n * // => 'default'\n */\nfunction result(object, path, defaultValue) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length;\n\n // Ensure the loop is entered when path is empty.\n if (!length) {\n length = 1;\n object = undefined;\n }\n while (++index < length) {\n var value = object == null ? undefined : object[toKey(path[index])];\n if (value === undefined) {\n index = length;\n value = defaultValue;\n }\n object = isFunction(value) ? value.call(object) : value;\n }\n return object;\n}\n\nexport default result;\n","/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeReverse = arrayProto.reverse;\n\n/**\n * Reverses `array` so that the first element becomes the last, the second\n * element becomes the second to last, and so on.\n *\n * **Note:** This method mutates `array` and is based on\n * [`Array#reverse`](https://mdn.io/Array/reverse).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [1, 2, 3];\n *\n * _.reverse(array);\n * // => [3, 2, 1]\n *\n * console.log(array);\n * // => [3, 2, 1]\n */\nfunction reverse(array) {\n return array == null ? array : nativeReverse.call(array);\n}\n\nexport default reverse;\n","import createRound from './_createRound.js';\n\n/**\n * Computes `number` rounded to `precision`.\n *\n * @static\n * @memberOf _\n * @since 3.10.0\n * @category Math\n * @param {number} number The number to round.\n * @param {number} [precision=0] The precision to round to.\n * @returns {number} Returns the rounded number.\n * @example\n *\n * _.round(4.006);\n * // => 4\n *\n * _.round(4.006, 2);\n * // => 4.01\n *\n * _.round(4060, -2);\n * // => 4100\n */\nvar round = createRound('round');\n\nexport default round;\n","import baseRandom from './_baseRandom.js';\n\n/**\n * A specialized version of `_.sample` for arrays.\n *\n * @private\n * @param {Array} array The array to sample.\n * @returns {*} Returns the random element.\n */\nfunction arraySample(array) {\n var length = array.length;\n return length ? array[baseRandom(0, length - 1)] : undefined;\n}\n\nexport default arraySample;\n","import arraySample from './_arraySample.js';\nimport values from './values.js';\n\n/**\n * The base implementation of `_.sample`.\n *\n * @private\n * @param {Array|Object} collection The collection to sample.\n * @returns {*} Returns the random element.\n */\nfunction baseSample(collection) {\n return arraySample(values(collection));\n}\n\nexport default baseSample;\n","import arraySample from './_arraySample.js';\nimport baseSample from './_baseSample.js';\nimport isArray from './isArray.js';\n\n/**\n * Gets a random element from `collection`.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to sample.\n * @returns {*} Returns the random element.\n * @example\n *\n * _.sample([1, 2, 3, 4]);\n * // => 2\n */\nfunction sample(collection) {\n var func = isArray(collection) ? arraySample : baseSample;\n return func(collection);\n}\n\nexport default sample;\n","import baseRandom from './_baseRandom.js';\n\n/**\n * A specialized version of `_.shuffle` which mutates and sets the size of `array`.\n *\n * @private\n * @param {Array} array The array to shuffle.\n * @param {number} [size=array.length] The size of `array`.\n * @returns {Array} Returns `array`.\n */\nfunction shuffleSelf(array, size) {\n var index = -1,\n length = array.length,\n lastIndex = length - 1;\n\n size = size === undefined ? length : size;\n while (++index < size) {\n var rand = baseRandom(index, lastIndex),\n value = array[rand];\n\n array[rand] = array[index];\n array[index] = value;\n }\n array.length = size;\n return array;\n}\n\nexport default shuffleSelf;\n","import baseClamp from './_baseClamp.js';\nimport copyArray from './_copyArray.js';\nimport shuffleSelf from './_shuffleSelf.js';\n\n/**\n * A specialized version of `_.sampleSize` for arrays.\n *\n * @private\n * @param {Array} array The array to sample.\n * @param {number} n The number of elements to sample.\n * @returns {Array} Returns the random elements.\n */\nfunction arraySampleSize(array, n) {\n return shuffleSelf(copyArray(array), baseClamp(n, 0, array.length));\n}\n\nexport default arraySampleSize;\n","import baseClamp from './_baseClamp.js';\nimport shuffleSelf from './_shuffleSelf.js';\nimport values from './values.js';\n\n/**\n * The base implementation of `_.sampleSize` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to sample.\n * @param {number} n The number of elements to sample.\n * @returns {Array} Returns the random elements.\n */\nfunction baseSampleSize(collection, n) {\n var array = values(collection);\n return shuffleSelf(array, baseClamp(n, 0, array.length));\n}\n\nexport default baseSampleSize;\n","import arraySampleSize from './_arraySampleSize.js';\nimport baseSampleSize from './_baseSampleSize.js';\nimport isArray from './isArray.js';\nimport isIterateeCall from './_isIterateeCall.js';\nimport toInteger from './toInteger.js';\n\n/**\n * Gets `n` random elements at unique keys from `collection` up to the\n * size of `collection`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to sample.\n * @param {number} [n=1] The number of elements to sample.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the random elements.\n * @example\n *\n * _.sampleSize([1, 2, 3], 2);\n * // => [3, 1]\n *\n * _.sampleSize([1, 2, 3], 4);\n * // => [2, 3, 1]\n */\nfunction sampleSize(collection, n, guard) {\n if ((guard ? isIterateeCall(collection, n, guard) : n === undefined)) {\n n = 1;\n } else {\n n = toInteger(n);\n }\n var func = isArray(collection) ? arraySampleSize : baseSampleSize;\n return func(collection, n);\n}\n\nexport default sampleSize;\n","import baseSet from './_baseSet.js';\n\n/**\n * Sets the value at `path` of `object`. If a portion of `path` doesn't exist,\n * it's created. Arrays are created for missing index properties while objects\n * are created for all other missing properties. Use `_.setWith` to customize\n * `path` creation.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.set(object, 'a[0].b.c', 4);\n * console.log(object.a[0].b.c);\n * // => 4\n *\n * _.set(object, ['x', '0', 'y', 'z'], 5);\n * console.log(object.x[0].y.z);\n * // => 5\n */\nfunction set(object, path, value) {\n return object == null ? object : baseSet(object, path, value);\n}\n\nexport default set;\n","import baseSet from './_baseSet.js';\n\n/**\n * This method is like `_.set` except that it accepts `customizer` which is\n * invoked to produce the objects of `path`. If `customizer` returns `undefined`\n * path creation is handled by the method instead. The `customizer` is invoked\n * with three arguments: (nsValue, key, nsObject).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {};\n *\n * _.setWith(object, '[0][1]', 'a', Object);\n * // => { '0': { '1': 'a' } }\n */\nfunction setWith(object, path, value, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return object == null ? object : baseSet(object, path, value, customizer);\n}\n\nexport default setWith;\n","import copyArray from './_copyArray.js';\nimport shuffleSelf from './_shuffleSelf.js';\n\n/**\n * A specialized version of `_.shuffle` for arrays.\n *\n * @private\n * @param {Array} array The array to shuffle.\n * @returns {Array} Returns the new shuffled array.\n */\nfunction arrayShuffle(array) {\n return shuffleSelf(copyArray(array));\n}\n\nexport default arrayShuffle;\n","import shuffleSelf from './_shuffleSelf.js';\nimport values from './values.js';\n\n/**\n * The base implementation of `_.shuffle`.\n *\n * @private\n * @param {Array|Object} collection The collection to shuffle.\n * @returns {Array} Returns the new shuffled array.\n */\nfunction baseShuffle(collection) {\n return shuffleSelf(values(collection));\n}\n\nexport default baseShuffle;\n","import arrayShuffle from './_arrayShuffle.js';\nimport baseShuffle from './_baseShuffle.js';\nimport isArray from './isArray.js';\n\n/**\n * Creates an array of shuffled values, using a version of the\n * [Fisher-Yates shuffle](https://en.wikipedia.org/wiki/Fisher-Yates_shuffle).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to shuffle.\n * @returns {Array} Returns the new shuffled array.\n * @example\n *\n * _.shuffle([1, 2, 3, 4]);\n * // => [4, 1, 3, 2]\n */\nfunction shuffle(collection) {\n var func = isArray(collection) ? arrayShuffle : baseShuffle;\n return func(collection);\n}\n\nexport default shuffle;\n","import baseKeys from './_baseKeys.js';\nimport getTag from './_getTag.js';\nimport isArrayLike from './isArrayLike.js';\nimport isString from './isString.js';\nimport stringSize from './_stringSize.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n setTag = '[object Set]';\n\n/**\n * Gets the size of `collection` by returning its length for array-like\n * values or the number of own enumerable string keyed properties for objects.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object|string} collection The collection to inspect.\n * @returns {number} Returns the collection size.\n * @example\n *\n * _.size([1, 2, 3]);\n * // => 3\n *\n * _.size({ 'a': 1, 'b': 2 });\n * // => 2\n *\n * _.size('pebbles');\n * // => 7\n */\nfunction size(collection) {\n if (collection == null) {\n return 0;\n }\n if (isArrayLike(collection)) {\n return isString(collection) ? stringSize(collection) : collection.length;\n }\n var tag = getTag(collection);\n if (tag == mapTag || tag == setTag) {\n return collection.size;\n }\n return baseKeys(collection).length;\n}\n\nexport default size;\n","import baseSlice from './_baseSlice.js';\nimport isIterateeCall from './_isIterateeCall.js';\nimport toInteger from './toInteger.js';\n\n/**\n * Creates a slice of `array` from `start` up to, but not including, `end`.\n *\n * **Note:** This method is used instead of\n * [`Array#slice`](https://mdn.io/Array/slice) to ensure dense arrays are\n * returned.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction slice(array, start, end) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n if (end && typeof end != 'number' && isIterateeCall(array, start, end)) {\n start = 0;\n end = length;\n }\n else {\n start = start == null ? 0 : toInteger(start);\n end = end === undefined ? length : toInteger(end);\n }\n return baseSlice(array, start, end);\n}\n\nexport default slice;\n","import createCompounder from './_createCompounder.js';\n\n/**\n * Converts `string` to\n * [snake case](https://en.wikipedia.org/wiki/Snake_case).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the snake cased string.\n * @example\n *\n * _.snakeCase('Foo Bar');\n * // => 'foo_bar'\n *\n * _.snakeCase('fooBar');\n * // => 'foo_bar'\n *\n * _.snakeCase('--FOO-BAR--');\n * // => 'foo_bar'\n */\nvar snakeCase = createCompounder(function(result, word, index) {\n return result + (index ? '_' : '') + word.toLowerCase();\n});\n\nexport default snakeCase;\n","import baseEach from './_baseEach.js';\n\n/**\n * The base implementation of `_.some` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction baseSome(collection, predicate) {\n var result;\n\n baseEach(collection, function(value, index, collection) {\n result = predicate(value, index, collection);\n return !result;\n });\n return !!result;\n}\n\nexport default baseSome;\n","import arraySome from './_arraySome.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseSome from './_baseSome.js';\nimport isArray from './isArray.js';\nimport isIterateeCall from './_isIterateeCall.js';\n\n/**\n * Checks if `predicate` returns truthy for **any** element of `collection`.\n * Iteration is stopped once `predicate` returns truthy. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n * @example\n *\n * _.some([null, 0, 'yes', false], Boolean);\n * // => true\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.some(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.some(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.some(users, 'active');\n * // => true\n */\nfunction some(collection, predicate, guard) {\n var func = isArray(collection) ? arraySome : baseSome;\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined;\n }\n return func(collection, baseIteratee(predicate, 3));\n}\n\nexport default some;\n","import baseFlatten from './_baseFlatten.js';\nimport baseOrderBy from './_baseOrderBy.js';\nimport baseRest from './_baseRest.js';\nimport isIterateeCall from './_isIterateeCall.js';\n\n/**\n * Creates an array of elements, sorted in ascending order by the results of\n * running each element in a collection thru each iteratee. This method\n * performs a stable sort, that is, it preserves the original sort order of\n * equal elements. The iteratees are invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {...(Function|Function[])} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 30 },\n * { 'user': 'barney', 'age': 34 }\n * ];\n *\n * _.sortBy(users, [function(o) { return o.user; }]);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 30]]\n *\n * _.sortBy(users, ['user', 'age']);\n * // => objects for [['barney', 34], ['barney', 36], ['fred', 30], ['fred', 48]]\n */\nvar sortBy = baseRest(function(collection, iteratees) {\n if (collection == null) {\n return [];\n }\n var length = iteratees.length;\n if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) {\n iteratees = [];\n } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) {\n iteratees = [iteratees[0]];\n }\n return baseOrderBy(collection, baseFlatten(iteratees, 1), []);\n});\n\nexport default sortBy;\n","import isSymbol from './isSymbol.js';\n\n/** Used as references for the maximum length and index of an array. */\nvar MAX_ARRAY_LENGTH = 4294967295,\n MAX_ARRAY_INDEX = MAX_ARRAY_LENGTH - 1;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeFloor = Math.floor,\n nativeMin = Math.min;\n\n/**\n * The base implementation of `_.sortedIndexBy` and `_.sortedLastIndexBy`\n * which invokes `iteratee` for `value` and each element of `array` to compute\n * their sort ranking. The iteratee is invoked with one argument; (value).\n *\n * @private\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {Function} iteratee The iteratee invoked per element.\n * @param {boolean} [retHighest] Specify returning the highest qualified index.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n */\nfunction baseSortedIndexBy(array, value, iteratee, retHighest) {\n var low = 0,\n high = array == null ? 0 : array.length;\n if (high === 0) {\n return 0;\n }\n\n value = iteratee(value);\n var valIsNaN = value !== value,\n valIsNull = value === null,\n valIsSymbol = isSymbol(value),\n valIsUndefined = value === undefined;\n\n while (low < high) {\n var mid = nativeFloor((low + high) / 2),\n computed = iteratee(array[mid]),\n othIsDefined = computed !== undefined,\n othIsNull = computed === null,\n othIsReflexive = computed === computed,\n othIsSymbol = isSymbol(computed);\n\n if (valIsNaN) {\n var setLow = retHighest || othIsReflexive;\n } else if (valIsUndefined) {\n setLow = othIsReflexive && (retHighest || othIsDefined);\n } else if (valIsNull) {\n setLow = othIsReflexive && othIsDefined && (retHighest || !othIsNull);\n } else if (valIsSymbol) {\n setLow = othIsReflexive && othIsDefined && !othIsNull && (retHighest || !othIsSymbol);\n } else if (othIsNull || othIsSymbol) {\n setLow = false;\n } else {\n setLow = retHighest ? (computed <= value) : (computed < value);\n }\n if (setLow) {\n low = mid + 1;\n } else {\n high = mid;\n }\n }\n return nativeMin(high, MAX_ARRAY_INDEX);\n}\n\nexport default baseSortedIndexBy;\n","import baseSortedIndexBy from './_baseSortedIndexBy.js';\nimport identity from './identity.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for the maximum length and index of an array. */\nvar MAX_ARRAY_LENGTH = 4294967295,\n HALF_MAX_ARRAY_LENGTH = MAX_ARRAY_LENGTH >>> 1;\n\n/**\n * The base implementation of `_.sortedIndex` and `_.sortedLastIndex` which\n * performs a binary search of `array` to determine the index at which `value`\n * should be inserted into `array` in order to maintain its sort order.\n *\n * @private\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {boolean} [retHighest] Specify returning the highest qualified index.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n */\nfunction baseSortedIndex(array, value, retHighest) {\n var low = 0,\n high = array == null ? low : array.length;\n\n if (typeof value == 'number' && value === value && high <= HALF_MAX_ARRAY_LENGTH) {\n while (low < high) {\n var mid = (low + high) >>> 1,\n computed = array[mid];\n\n if (computed !== null && !isSymbol(computed) &&\n (retHighest ? (computed <= value) : (computed < value))) {\n low = mid + 1;\n } else {\n high = mid;\n }\n }\n return high;\n }\n return baseSortedIndexBy(array, value, identity, retHighest);\n}\n\nexport default baseSortedIndex;\n","import baseSortedIndex from './_baseSortedIndex.js';\n\n/**\n * Uses a binary search to determine the lowest index at which `value`\n * should be inserted into `array` in order to maintain its sort order.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * _.sortedIndex([30, 50], 40);\n * // => 1\n */\nfunction sortedIndex(array, value) {\n return baseSortedIndex(array, value);\n}\n\nexport default sortedIndex;\n","import baseIteratee from './_baseIteratee.js';\nimport baseSortedIndexBy from './_baseSortedIndexBy.js';\n\n/**\n * This method is like `_.sortedIndex` except that it accepts `iteratee`\n * which is invoked for `value` and each element of `array` to compute their\n * sort ranking. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * var objects = [{ 'x': 4 }, { 'x': 5 }];\n *\n * _.sortedIndexBy(objects, { 'x': 4 }, function(o) { return o.x; });\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.sortedIndexBy(objects, { 'x': 4 }, 'x');\n * // => 0\n */\nfunction sortedIndexBy(array, value, iteratee) {\n return baseSortedIndexBy(array, value, baseIteratee(iteratee, 2));\n}\n\nexport default sortedIndexBy;\n","import baseSortedIndex from './_baseSortedIndex.js';\nimport eq from './eq.js';\n\n/**\n * This method is like `_.indexOf` except that it performs a binary\n * search on a sorted `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.sortedIndexOf([4, 5, 5, 5, 6], 5);\n * // => 1\n */\nfunction sortedIndexOf(array, value) {\n var length = array == null ? 0 : array.length;\n if (length) {\n var index = baseSortedIndex(array, value);\n if (index < length && eq(array[index], value)) {\n return index;\n }\n }\n return -1;\n}\n\nexport default sortedIndexOf;\n","import baseSortedIndex from './_baseSortedIndex.js';\n\n/**\n * This method is like `_.sortedIndex` except that it returns the highest\n * index at which `value` should be inserted into `array` in order to\n * maintain its sort order.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * _.sortedLastIndex([4, 5, 5, 5, 6], 5);\n * // => 4\n */\nfunction sortedLastIndex(array, value) {\n return baseSortedIndex(array, value, true);\n}\n\nexport default sortedLastIndex;\n","import baseIteratee from './_baseIteratee.js';\nimport baseSortedIndexBy from './_baseSortedIndexBy.js';\n\n/**\n * This method is like `_.sortedLastIndex` except that it accepts `iteratee`\n * which is invoked for `value` and each element of `array` to compute their\n * sort ranking. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * var objects = [{ 'x': 4 }, { 'x': 5 }];\n *\n * _.sortedLastIndexBy(objects, { 'x': 4 }, function(o) { return o.x; });\n * // => 1\n *\n * // The `_.property` iteratee shorthand.\n * _.sortedLastIndexBy(objects, { 'x': 4 }, 'x');\n * // => 1\n */\nfunction sortedLastIndexBy(array, value, iteratee) {\n return baseSortedIndexBy(array, value, baseIteratee(iteratee, 2), true);\n}\n\nexport default sortedLastIndexBy;\n","import baseSortedIndex from './_baseSortedIndex.js';\nimport eq from './eq.js';\n\n/**\n * This method is like `_.lastIndexOf` except that it performs a binary\n * search on a sorted `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.sortedLastIndexOf([4, 5, 5, 5, 6], 5);\n * // => 3\n */\nfunction sortedLastIndexOf(array, value) {\n var length = array == null ? 0 : array.length;\n if (length) {\n var index = baseSortedIndex(array, value, true) - 1;\n if (eq(array[index], value)) {\n return index;\n }\n }\n return -1;\n}\n\nexport default sortedLastIndexOf;\n","import eq from './eq.js';\n\n/**\n * The base implementation of `_.sortedUniq` and `_.sortedUniqBy` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\nfunction baseSortedUniq(array, iteratee) {\n var index = -1,\n length = array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n if (!index || !eq(computed, seen)) {\n var seen = computed;\n result[resIndex++] = value === 0 ? 0 : value;\n }\n }\n return result;\n}\n\nexport default baseSortedUniq;\n","import baseSortedUniq from './_baseSortedUniq.js';\n\n/**\n * This method is like `_.uniq` except that it's designed and optimized\n * for sorted arrays.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.sortedUniq([1, 1, 2]);\n * // => [1, 2]\n */\nfunction sortedUniq(array) {\n return (array && array.length)\n ? baseSortedUniq(array)\n : [];\n}\n\nexport default sortedUniq;\n","import baseIteratee from './_baseIteratee.js';\nimport baseSortedUniq from './_baseSortedUniq.js';\n\n/**\n * This method is like `_.uniqBy` except that it's designed and optimized\n * for sorted arrays.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.sortedUniqBy([1.1, 1.2, 2.3, 2.4], Math.floor);\n * // => [1.1, 2.3]\n */\nfunction sortedUniqBy(array, iteratee) {\n return (array && array.length)\n ? baseSortedUniq(array, baseIteratee(iteratee, 2))\n : [];\n}\n\nexport default sortedUniqBy;\n","import baseToString from './_baseToString.js';\nimport castSlice from './_castSlice.js';\nimport hasUnicode from './_hasUnicode.js';\nimport isIterateeCall from './_isIterateeCall.js';\nimport isRegExp from './isRegExp.js';\nimport stringToArray from './_stringToArray.js';\nimport toString from './toString.js';\n\n/** Used as references for the maximum length and index of an array. */\nvar MAX_ARRAY_LENGTH = 4294967295;\n\n/**\n * Splits `string` by `separator`.\n *\n * **Note:** This method is based on\n * [`String#split`](https://mdn.io/String/split).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to split.\n * @param {RegExp|string} separator The separator pattern to split by.\n * @param {number} [limit] The length to truncate results to.\n * @returns {Array} Returns the string segments.\n * @example\n *\n * _.split('a-b-c', '-', 2);\n * // => ['a', 'b']\n */\nfunction split(string, separator, limit) {\n if (limit && typeof limit != 'number' && isIterateeCall(string, separator, limit)) {\n separator = limit = undefined;\n }\n limit = limit === undefined ? MAX_ARRAY_LENGTH : limit >>> 0;\n if (!limit) {\n return [];\n }\n string = toString(string);\n if (string && (\n typeof separator == 'string' ||\n (separator != null && !isRegExp(separator))\n )) {\n separator = baseToString(separator);\n if (!separator && hasUnicode(string)) {\n return castSlice(stringToArray(string), 0, limit);\n }\n }\n return string.split(separator, limit);\n}\n\nexport default split;\n","import apply from './_apply.js';\nimport arrayPush from './_arrayPush.js';\nimport baseRest from './_baseRest.js';\nimport castSlice from './_castSlice.js';\nimport toInteger from './toInteger.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * Creates a function that invokes `func` with the `this` binding of the\n * create function and an array of arguments much like\n * [`Function#apply`](http://www.ecma-international.org/ecma-262/7.0/#sec-function.prototype.apply).\n *\n * **Note:** This method is based on the\n * [spread operator](https://mdn.io/spread_operator).\n *\n * @static\n * @memberOf _\n * @since 3.2.0\n * @category Function\n * @param {Function} func The function to spread arguments over.\n * @param {number} [start=0] The start position of the spread.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var say = _.spread(function(who, what) {\n * return who + ' says ' + what;\n * });\n *\n * say(['fred', 'hello']);\n * // => 'fred says hello'\n *\n * var numbers = Promise.all([\n * Promise.resolve(40),\n * Promise.resolve(36)\n * ]);\n *\n * numbers.then(_.spread(function(x, y) {\n * return x + y;\n * }));\n * // => a Promise of 76\n */\nfunction spread(func, start) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n start = start == null ? 0 : nativeMax(toInteger(start), 0);\n return baseRest(function(args) {\n var array = args[start],\n otherArgs = castSlice(args, 0, start);\n\n if (array) {\n arrayPush(otherArgs, array);\n }\n return apply(func, this, otherArgs);\n });\n}\n\nexport default spread;\n","import createCompounder from './_createCompounder.js';\nimport upperFirst from './upperFirst.js';\n\n/**\n * Converts `string` to\n * [start case](https://en.wikipedia.org/wiki/Letter_case#Stylistic_or_specialised_usage).\n *\n * @static\n * @memberOf _\n * @since 3.1.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the start cased string.\n * @example\n *\n * _.startCase('--foo-bar--');\n * // => 'Foo Bar'\n *\n * _.startCase('fooBar');\n * // => 'Foo Bar'\n *\n * _.startCase('__FOO_BAR__');\n * // => 'FOO BAR'\n */\nvar startCase = createCompounder(function(result, word, index) {\n return result + (index ? ' ' : '') + upperFirst(word);\n});\n\nexport default startCase;\n","import baseClamp from './_baseClamp.js';\nimport baseToString from './_baseToString.js';\nimport toInteger from './toInteger.js';\nimport toString from './toString.js';\n\n/**\n * Checks if `string` starts with the given target string.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {string} [target] The string to search for.\n * @param {number} [position=0] The position to search from.\n * @returns {boolean} Returns `true` if `string` starts with `target`,\n * else `false`.\n * @example\n *\n * _.startsWith('abc', 'a');\n * // => true\n *\n * _.startsWith('abc', 'b');\n * // => false\n *\n * _.startsWith('abc', 'b', 1);\n * // => true\n */\nfunction startsWith(string, target, position) {\n string = toString(string);\n position = position == null\n ? 0\n : baseClamp(toInteger(position), 0, string.length);\n\n target = baseToString(target);\n return string.slice(position, position + target.length) == target;\n}\n\nexport default startsWith;\n","/**\n * This method returns a new empty object.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Object} Returns the new empty object.\n * @example\n *\n * var objects = _.times(2, _.stubObject);\n *\n * console.log(objects);\n * // => [{}, {}]\n *\n * console.log(objects[0] === objects[1]);\n * // => false\n */\nfunction stubObject() {\n return {};\n}\n\nexport default stubObject;\n","/**\n * This method returns an empty string.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {string} Returns the empty string.\n * @example\n *\n * _.times(2, _.stubString);\n * // => ['', '']\n */\nfunction stubString() {\n return '';\n}\n\nexport default stubString;\n","/**\n * This method returns `true`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `true`.\n * @example\n *\n * _.times(2, _.stubTrue);\n * // => [true, true]\n */\nfunction stubTrue() {\n return true;\n}\n\nexport default stubTrue;\n","import createMathOperation from './_createMathOperation.js';\n\n/**\n * Subtract two numbers.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Math\n * @param {number} minuend The first number in a subtraction.\n * @param {number} subtrahend The second number in a subtraction.\n * @returns {number} Returns the difference.\n * @example\n *\n * _.subtract(6, 4);\n * // => 2\n */\nvar subtract = createMathOperation(function(minuend, subtrahend) {\n return minuend - subtrahend;\n}, 0);\n\nexport default subtract;\n","import baseSum from './_baseSum.js';\nimport identity from './identity.js';\n\n/**\n * Computes the sum of the values in `array`.\n *\n * @static\n * @memberOf _\n * @since 3.4.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {number} Returns the sum.\n * @example\n *\n * _.sum([4, 2, 8, 6]);\n * // => 20\n */\nfunction sum(array) {\n return (array && array.length)\n ? baseSum(array, identity)\n : 0;\n}\n\nexport default sum;\n","import baseIteratee from './_baseIteratee.js';\nimport baseSum from './_baseSum.js';\n\n/**\n * This method is like `_.sum` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the value to be summed.\n * The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {number} Returns the sum.\n * @example\n *\n * var objects = [{ 'n': 4 }, { 'n': 2 }, { 'n': 8 }, { 'n': 6 }];\n *\n * _.sumBy(objects, function(o) { return o.n; });\n * // => 20\n *\n * // The `_.property` iteratee shorthand.\n * _.sumBy(objects, 'n');\n * // => 20\n */\nfunction sumBy(array, iteratee) {\n return (array && array.length)\n ? baseSum(array, baseIteratee(iteratee, 2))\n : 0;\n}\n\nexport default sumBy;\n","import baseSlice from './_baseSlice.js';\n\n/**\n * Gets all but the first element of `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.tail([1, 2, 3]);\n * // => [2, 3]\n */\nfunction tail(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseSlice(array, 1, length) : [];\n}\n\nexport default tail;\n","import baseSlice from './_baseSlice.js';\nimport toInteger from './toInteger.js';\n\n/**\n * Creates a slice of `array` with `n` elements taken from the beginning.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to take.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.take([1, 2, 3]);\n * // => [1]\n *\n * _.take([1, 2, 3], 2);\n * // => [1, 2]\n *\n * _.take([1, 2, 3], 5);\n * // => [1, 2, 3]\n *\n * _.take([1, 2, 3], 0);\n * // => []\n */\nfunction take(array, n, guard) {\n if (!(array && array.length)) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n return baseSlice(array, 0, n < 0 ? 0 : n);\n}\n\nexport default take;\n","import baseSlice from './_baseSlice.js';\nimport toInteger from './toInteger.js';\n\n/**\n * Creates a slice of `array` with `n` elements taken from the end.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to take.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.takeRight([1, 2, 3]);\n * // => [3]\n *\n * _.takeRight([1, 2, 3], 2);\n * // => [2, 3]\n *\n * _.takeRight([1, 2, 3], 5);\n * // => [1, 2, 3]\n *\n * _.takeRight([1, 2, 3], 0);\n * // => []\n */\nfunction takeRight(array, n, guard) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n n = length - n;\n return baseSlice(array, n < 0 ? 0 : n, length);\n}\n\nexport default takeRight;\n","import baseIteratee from './_baseIteratee.js';\nimport baseWhile from './_baseWhile.js';\n\n/**\n * Creates a slice of `array` with elements taken from the end. Elements are\n * taken until `predicate` returns falsey. The predicate is invoked with\n * three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': false }\n * ];\n *\n * _.takeRightWhile(users, function(o) { return !o.active; });\n * // => objects for ['fred', 'pebbles']\n *\n * // The `_.matches` iteratee shorthand.\n * _.takeRightWhile(users, { 'user': 'pebbles', 'active': false });\n * // => objects for ['pebbles']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.takeRightWhile(users, ['active', false]);\n * // => objects for ['fred', 'pebbles']\n *\n * // The `_.property` iteratee shorthand.\n * _.takeRightWhile(users, 'active');\n * // => []\n */\nfunction takeRightWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, baseIteratee(predicate, 3), false, true)\n : [];\n}\n\nexport default takeRightWhile;\n","import baseIteratee from './_baseIteratee.js';\nimport baseWhile from './_baseWhile.js';\n\n/**\n * Creates a slice of `array` with elements taken from the beginning. Elements\n * are taken until `predicate` returns falsey. The predicate is invoked with\n * three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.takeWhile(users, function(o) { return !o.active; });\n * // => objects for ['barney', 'fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.takeWhile(users, { 'user': 'barney', 'active': false });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.takeWhile(users, ['active', false]);\n * // => objects for ['barney', 'fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.takeWhile(users, 'active');\n * // => []\n */\nfunction takeWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, baseIteratee(predicate, 3))\n : [];\n}\n\nexport default takeWhile;\n","/**\n * This method invokes `interceptor` and returns `value`. The interceptor\n * is invoked with one argument; (value). The purpose of this method is to\n * \"tap into\" a method chain sequence in order to modify intermediate results.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Seq\n * @param {*} value The value to provide to `interceptor`.\n * @param {Function} interceptor The function to invoke.\n * @returns {*} Returns `value`.\n * @example\n *\n * _([1, 2, 3])\n * .tap(function(array) {\n * // Mutate input array.\n * array.pop();\n * })\n * .reverse()\n * .value();\n * // => [2, 1]\n */\nfunction tap(value, interceptor) {\n interceptor(value);\n return value;\n}\n\nexport default tap;\n","import eq from './eq.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used by `_.defaults` to customize its `_.assignIn` use to assign properties\n * of source objects to the destination object for all destination properties\n * that resolve to `undefined`.\n *\n * @private\n * @param {*} objValue The destination value.\n * @param {*} srcValue The source value.\n * @param {string} key The key of the property to assign.\n * @param {Object} object The parent object of `objValue`.\n * @returns {*} Returns the value to assign.\n */\nfunction customDefaultsAssignIn(objValue, srcValue, key, object) {\n if (objValue === undefined ||\n (eq(objValue, objectProto[key]) && !hasOwnProperty.call(object, key))) {\n return srcValue;\n }\n return objValue;\n}\n\nexport default customDefaultsAssignIn;\n","/** Used to escape characters for inclusion in compiled string literals. */\nvar stringEscapes = {\n '\\\\': '\\\\',\n \"'\": \"'\",\n '\\n': 'n',\n '\\r': 'r',\n '\\u2028': 'u2028',\n '\\u2029': 'u2029'\n};\n\n/**\n * Used by `_.template` to escape characters for inclusion in compiled string literals.\n *\n * @private\n * @param {string} chr The matched character to escape.\n * @returns {string} Returns the escaped character.\n */\nfunction escapeStringChar(chr) {\n return '\\\\' + stringEscapes[chr];\n}\n\nexport default escapeStringChar;\n","/** Used to match template delimiters. */\nvar reInterpolate = /<%=([\\s\\S]+?)%>/g;\n\nexport default reInterpolate;\n","/** Used to match template delimiters. */\nvar reEscape = /<%-([\\s\\S]+?)%>/g;\n\nexport default reEscape;\n","/** Used to match template delimiters. */\nvar reEvaluate = /<%([\\s\\S]+?)%>/g;\n\nexport default reEvaluate;\n","import escape from './escape.js';\nimport reEscape from './_reEscape.js';\nimport reEvaluate from './_reEvaluate.js';\nimport reInterpolate from './_reInterpolate.js';\n\n/**\n * By default, the template delimiters used by lodash are like those in\n * embedded Ruby (ERB) as well as ES2015 template strings. Change the\n * following template settings to use alternative delimiters.\n *\n * @static\n * @memberOf _\n * @type {Object}\n */\nvar templateSettings = {\n\n /**\n * Used to detect `data` property values to be HTML-escaped.\n *\n * @memberOf _.templateSettings\n * @type {RegExp}\n */\n 'escape': reEscape,\n\n /**\n * Used to detect code to be evaluated.\n *\n * @memberOf _.templateSettings\n * @type {RegExp}\n */\n 'evaluate': reEvaluate,\n\n /**\n * Used to detect `data` property values to inject.\n *\n * @memberOf _.templateSettings\n * @type {RegExp}\n */\n 'interpolate': reInterpolate,\n\n /**\n * Used to reference the data object in the template text.\n *\n * @memberOf _.templateSettings\n * @type {string}\n */\n 'variable': '',\n\n /**\n * Used to import variables into the compiled template.\n *\n * @memberOf _.templateSettings\n * @type {Object}\n */\n 'imports': {\n\n /**\n * A reference to the `lodash` function.\n *\n * @memberOf _.templateSettings.imports\n * @type {Function}\n */\n '_': { 'escape': escape }\n }\n};\n\nexport default templateSettings;\n","import assignInWith from './assignInWith.js';\nimport attempt from './attempt.js';\nimport baseValues from './_baseValues.js';\nimport customDefaultsAssignIn from './_customDefaultsAssignIn.js';\nimport escapeStringChar from './_escapeStringChar.js';\nimport isError from './isError.js';\nimport isIterateeCall from './_isIterateeCall.js';\nimport keys from './keys.js';\nimport reInterpolate from './_reInterpolate.js';\nimport templateSettings from './templateSettings.js';\nimport toString from './toString.js';\n\n/** Error message constants. */\nvar INVALID_TEMPL_VAR_ERROR_TEXT = 'Invalid `variable` option passed into `_.template`';\n\n/** Used to match empty string literals in compiled template source. */\nvar reEmptyStringLeading = /\\b__p \\+= '';/g,\n reEmptyStringMiddle = /\\b(__p \\+=) '' \\+/g,\n reEmptyStringTrailing = /(__e\\(.*?\\)|\\b__t\\)) \\+\\n'';/g;\n\n/**\n * Used to validate the `validate` option in `_.template` variable.\n *\n * Forbids characters which could potentially change the meaning of the function argument definition:\n * - \"(),\" (modification of function parameters)\n * - \"=\" (default value)\n * - \"[]{}\" (destructuring of function parameters)\n * - \"/\" (beginning of a comment)\n * - whitespace\n */\nvar reForbiddenIdentifierChars = /[()=,{}\\[\\]\\/\\s]/;\n\n/**\n * Used to match\n * [ES template delimiters](http://ecma-international.org/ecma-262/7.0/#sec-template-literal-lexical-components).\n */\nvar reEsTemplate = /\\$\\{([^\\\\}]*(?:\\\\.[^\\\\}]*)*)\\}/g;\n\n/** Used to ensure capturing order of template delimiters. */\nvar reNoMatch = /($^)/;\n\n/** Used to match unescaped characters in compiled string literals. */\nvar reUnescapedString = /['\\n\\r\\u2028\\u2029\\\\]/g;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates a compiled template function that can interpolate data properties\n * in \"interpolate\" delimiters, HTML-escape interpolated data properties in\n * \"escape\" delimiters, and execute JavaScript in \"evaluate\" delimiters. Data\n * properties may be accessed as free variables in the template. If a setting\n * object is given, it takes precedence over `_.templateSettings` values.\n *\n * **Note:** In the development build `_.template` utilizes\n * [sourceURLs](http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/#toc-sourceurl)\n * for easier debugging.\n *\n * For more information on precompiling templates see\n * [lodash's custom builds documentation](https://lodash.com/custom-builds).\n *\n * For more information on Chrome extension sandboxes see\n * [Chrome's extensions documentation](https://developer.chrome.com/extensions/sandboxingEval).\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category String\n * @param {string} [string=''] The template string.\n * @param {Object} [options={}] The options object.\n * @param {RegExp} [options.escape=_.templateSettings.escape]\n * The HTML \"escape\" delimiter.\n * @param {RegExp} [options.evaluate=_.templateSettings.evaluate]\n * The \"evaluate\" delimiter.\n * @param {Object} [options.imports=_.templateSettings.imports]\n * An object to import into the template as free variables.\n * @param {RegExp} [options.interpolate=_.templateSettings.interpolate]\n * The \"interpolate\" delimiter.\n * @param {string} [options.sourceURL='templateSources[n]']\n * The sourceURL of the compiled template.\n * @param {string} [options.variable='obj']\n * The data object variable name.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the compiled template function.\n * @example\n *\n * // Use the \"interpolate\" delimiter to create a compiled template.\n * var compiled = _.template('hello <%= user %>!');\n * compiled({ 'user': 'fred' });\n * // => 'hello fred!'\n *\n * // Use the HTML \"escape\" delimiter to escape data property values.\n * var compiled = _.template('<b><%- value %></b>');\n * compiled({ 'value': '<script>' });\n * // => '<b>&lt;script&gt;</b>'\n *\n * // Use the \"evaluate\" delimiter to execute JavaScript and generate HTML.\n * var compiled = _.template('<% _.forEach(users, function(user) { %><li><%- user %></li><% }); %>');\n * compiled({ 'users': ['fred', 'barney'] });\n * // => '<li>fred</li><li>barney</li>'\n *\n * // Use the internal `print` function in \"evaluate\" delimiters.\n * var compiled = _.template('<% print(\"hello \" + user); %>!');\n * compiled({ 'user': 'barney' });\n * // => 'hello barney!'\n *\n * // Use the ES template literal delimiter as an \"interpolate\" delimiter.\n * // Disable support by replacing the \"interpolate\" delimiter.\n * var compiled = _.template('hello ${ user }!');\n * compiled({ 'user': 'pebbles' });\n * // => 'hello pebbles!'\n *\n * // Use backslashes to treat delimiters as plain text.\n * var compiled = _.template('<%= \"\\\\<%- value %\\\\>\" %>');\n * compiled({ 'value': 'ignored' });\n * // => '<%- value %>'\n *\n * // Use the `imports` option to import `jQuery` as `jq`.\n * var text = '<% jq.each(users, function(user) { %><li><%- user %></li><% }); %>';\n * var compiled = _.template(text, { 'imports': { 'jq': jQuery } });\n * compiled({ 'users': ['fred', 'barney'] });\n * // => '<li>fred</li><li>barney</li>'\n *\n * // Use the `sourceURL` option to specify a custom sourceURL for the template.\n * var compiled = _.template('hello <%= user %>!', { 'sourceURL': '/basic/greeting.jst' });\n * compiled(data);\n * // => Find the source of \"greeting.jst\" under the Sources tab or Resources panel of the web inspector.\n *\n * // Use the `variable` option to ensure a with-statement isn't used in the compiled template.\n * var compiled = _.template('hi <%= data.user %>!', { 'variable': 'data' });\n * compiled.source;\n * // => function(data) {\n * // var __t, __p = '';\n * // __p += 'hi ' + ((__t = ( data.user )) == null ? '' : __t) + '!';\n * // return __p;\n * // }\n *\n * // Use custom template delimiters.\n * _.templateSettings.interpolate = /{{([\\s\\S]+?)}}/g;\n * var compiled = _.template('hello {{ user }}!');\n * compiled({ 'user': 'mustache' });\n * // => 'hello mustache!'\n *\n * // Use the `source` property to inline compiled templates for meaningful\n * // line numbers in error messages and stack traces.\n * fs.writeFileSync(path.join(process.cwd(), 'jst.js'), '\\\n * var JST = {\\\n * \"main\": ' + _.template(mainText).source + '\\\n * };\\\n * ');\n */\nfunction template(string, options, guard) {\n // Based on John Resig's `tmpl` implementation\n // (http://ejohn.org/blog/javascript-micro-templating/)\n // and Laura Doktorova's doT.js (https://github.com/olado/doT).\n var settings = templateSettings.imports._.templateSettings || templateSettings;\n\n if (guard && isIterateeCall(string, options, guard)) {\n options = undefined;\n }\n string = toString(string);\n options = assignInWith({}, options, settings, customDefaultsAssignIn);\n\n var imports = assignInWith({}, options.imports, settings.imports, customDefaultsAssignIn),\n importsKeys = keys(imports),\n importsValues = baseValues(imports, importsKeys);\n\n var isEscaping,\n isEvaluating,\n index = 0,\n interpolate = options.interpolate || reNoMatch,\n source = \"__p += '\";\n\n // Compile the regexp to match each delimiter.\n var reDelimiters = RegExp(\n (options.escape || reNoMatch).source + '|' +\n interpolate.source + '|' +\n (interpolate === reInterpolate ? reEsTemplate : reNoMatch).source + '|' +\n (options.evaluate || reNoMatch).source + '|$'\n , 'g');\n\n // Use a sourceURL for easier debugging.\n // The sourceURL gets injected into the source that's eval-ed, so be careful\n // to normalize all kinds of whitespace, so e.g. newlines (and unicode versions of it) can't sneak in\n // and escape the comment, thus injecting code that gets evaled.\n var sourceURL = hasOwnProperty.call(options, 'sourceURL')\n ? ('//# sourceURL=' +\n (options.sourceURL + '').replace(/\\s/g, ' ') +\n '\\n')\n : '';\n\n string.replace(reDelimiters, function(match, escapeValue, interpolateValue, esTemplateValue, evaluateValue, offset) {\n interpolateValue || (interpolateValue = esTemplateValue);\n\n // Escape characters that can't be included in string literals.\n source += string.slice(index, offset).replace(reUnescapedString, escapeStringChar);\n\n // Replace delimiters with snippets.\n if (escapeValue) {\n isEscaping = true;\n source += \"' +\\n__e(\" + escapeValue + \") +\\n'\";\n }\n if (evaluateValue) {\n isEvaluating = true;\n source += \"';\\n\" + evaluateValue + \";\\n__p += '\";\n }\n if (interpolateValue) {\n source += \"' +\\n((__t = (\" + interpolateValue + \")) == null ? '' : __t) +\\n'\";\n }\n index = offset + match.length;\n\n // The JS engine embedded in Adobe products needs `match` returned in\n // order to produce the correct `offset` value.\n return match;\n });\n\n source += \"';\\n\";\n\n // If `variable` is not specified wrap a with-statement around the generated\n // code to add the data object to the top of the scope chain.\n var variable = hasOwnProperty.call(options, 'variable') && options.variable;\n if (!variable) {\n source = 'with (obj) {\\n' + source + '\\n}\\n';\n }\n // Throw an error if a forbidden character was found in `variable`, to prevent\n // potential command injection attacks.\n else if (reForbiddenIdentifierChars.test(variable)) {\n throw new Error(INVALID_TEMPL_VAR_ERROR_TEXT);\n }\n\n // Cleanup code by stripping empty strings.\n source = (isEvaluating ? source.replace(reEmptyStringLeading, '') : source)\n .replace(reEmptyStringMiddle, '$1')\n .replace(reEmptyStringTrailing, '$1;');\n\n // Frame code as the function body.\n source = 'function(' + (variable || 'obj') + ') {\\n' +\n (variable\n ? ''\n : 'obj || (obj = {});\\n'\n ) +\n \"var __t, __p = ''\" +\n (isEscaping\n ? ', __e = _.escape'\n : ''\n ) +\n (isEvaluating\n ? ', __j = Array.prototype.join;\\n' +\n \"function print() { __p += __j.call(arguments, '') }\\n\"\n : ';\\n'\n ) +\n source +\n 'return __p\\n}';\n\n var result = attempt(function() {\n return Function(importsKeys, sourceURL + 'return ' + source)\n .apply(undefined, importsValues);\n });\n\n // Provide the compiled function's source by its `toString` method or\n // the `source` property as a convenience for inlining compiled templates.\n result.source = source;\n if (isError(result)) {\n throw result;\n }\n return result;\n}\n\nexport default template;\n","import debounce from './debounce.js';\nimport isObject from './isObject.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\nexport default throttle;\n","/**\n * This method is like `_.tap` except that it returns the result of `interceptor`.\n * The purpose of this method is to \"pass thru\" values replacing intermediate\n * results in a method chain sequence.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Seq\n * @param {*} value The value to provide to `interceptor`.\n * @param {Function} interceptor The function to invoke.\n * @returns {*} Returns the result of `interceptor`.\n * @example\n *\n * _(' abc ')\n * .chain()\n * .trim()\n * .thru(function(value) {\n * return [value];\n * })\n * .value();\n * // => ['abc']\n */\nfunction thru(value, interceptor) {\n return interceptor(value);\n}\n\nexport default thru;\n","import baseTimes from './_baseTimes.js';\nimport castFunction from './_castFunction.js';\nimport toInteger from './toInteger.js';\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used as references for the maximum length and index of an array. */\nvar MAX_ARRAY_LENGTH = 4294967295;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMin = Math.min;\n\n/**\n * Invokes the iteratee `n` times, returning an array of the results of\n * each invocation. The iteratee is invoked with one argument; (index).\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n * @example\n *\n * _.times(3, String);\n * // => ['0', '1', '2']\n *\n * _.times(4, _.constant(0));\n * // => [0, 0, 0, 0]\n */\nfunction times(n, iteratee) {\n n = toInteger(n);\n if (n < 1 || n > MAX_SAFE_INTEGER) {\n return [];\n }\n var index = MAX_ARRAY_LENGTH,\n length = nativeMin(n, MAX_ARRAY_LENGTH);\n\n iteratee = castFunction(iteratee);\n n -= MAX_ARRAY_LENGTH;\n\n var result = baseTimes(length, iteratee);\n while (++index < n) {\n iteratee(index);\n }\n return result;\n}\n\nexport default times;\n","/**\n * Enables the wrapper to be iterable.\n *\n * @name Symbol.iterator\n * @memberOf _\n * @since 4.0.0\n * @category Seq\n * @returns {Object} Returns the wrapper object.\n * @example\n *\n * var wrapped = _([1, 2]);\n *\n * wrapped[Symbol.iterator]() === wrapped;\n * // => true\n *\n * Array.from(wrapped);\n * // => [1, 2]\n */\nfunction wrapperToIterator() {\n return this;\n}\n\nexport default wrapperToIterator;\n","import LazyWrapper from './_LazyWrapper.js';\nimport arrayPush from './_arrayPush.js';\nimport arrayReduce from './_arrayReduce.js';\n\n/**\n * The base implementation of `wrapperValue` which returns the result of\n * performing a sequence of actions on the unwrapped `value`, where each\n * successive action is supplied the return value of the previous.\n *\n * @private\n * @param {*} value The unwrapped value.\n * @param {Array} actions Actions to perform to resolve the unwrapped value.\n * @returns {*} Returns the resolved value.\n */\nfunction baseWrapperValue(value, actions) {\n var result = value;\n if (result instanceof LazyWrapper) {\n result = result.value();\n }\n return arrayReduce(actions, function(result, action) {\n return action.func.apply(action.thisArg, arrayPush([result], action.args));\n }, result);\n}\n\nexport default baseWrapperValue;\n","import baseWrapperValue from './_baseWrapperValue.js';\n\n/**\n * Executes the chain sequence to resolve the unwrapped value.\n *\n * @name value\n * @memberOf _\n * @since 0.1.0\n * @alias toJSON, valueOf\n * @category Seq\n * @returns {*} Returns the resolved unwrapped value.\n * @example\n *\n * _([1, 2, 3]).value();\n * // => [1, 2, 3]\n */\nfunction wrapperValue() {\n return baseWrapperValue(this.__wrapped__, this.__actions__);\n}\n\nexport default wrapperValue;\n","import toString from './toString.js';\n\n/**\n * Converts `string`, as a whole, to lower case just like\n * [String#toLowerCase](https://mdn.io/toLowerCase).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the lower cased string.\n * @example\n *\n * _.toLower('--Foo-Bar--');\n * // => '--foo-bar--'\n *\n * _.toLower('fooBar');\n * // => 'foobar'\n *\n * _.toLower('__FOO_BAR__');\n * // => '__foo_bar__'\n */\nfunction toLower(value) {\n return toString(value).toLowerCase();\n}\n\nexport default toLower;\n","import arrayMap from './_arrayMap.js';\nimport copyArray from './_copyArray.js';\nimport isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\nimport stringToPath from './_stringToPath.js';\nimport toKey from './_toKey.js';\nimport toString from './toString.js';\n\n/**\n * Converts `value` to a property path array.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {*} value The value to convert.\n * @returns {Array} Returns the new property path array.\n * @example\n *\n * _.toPath('a.b.c');\n * // => ['a', 'b', 'c']\n *\n * _.toPath('a[0].b.c');\n * // => ['a', '0', 'b', 'c']\n */\nfunction toPath(value) {\n if (isArray(value)) {\n return arrayMap(value, toKey);\n }\n return isSymbol(value) ? [value] : copyArray(stringToPath(toString(value)));\n}\n\nexport default toPath;\n","import baseClamp from './_baseClamp.js';\nimport toInteger from './toInteger.js';\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Converts `value` to a safe integer. A safe integer can be compared and\n * represented correctly.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toSafeInteger(3.2);\n * // => 3\n *\n * _.toSafeInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toSafeInteger(Infinity);\n * // => 9007199254740991\n *\n * _.toSafeInteger('3.2');\n * // => 3\n */\nfunction toSafeInteger(value) {\n return value\n ? baseClamp(toInteger(value), -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER)\n : (value === 0 ? value : 0);\n}\n\nexport default toSafeInteger;\n","import toString from './toString.js';\n\n/**\n * Converts `string`, as a whole, to upper case just like\n * [String#toUpperCase](https://mdn.io/toUpperCase).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the upper cased string.\n * @example\n *\n * _.toUpper('--foo-bar--');\n * // => '--FOO-BAR--'\n *\n * _.toUpper('fooBar');\n * // => 'FOOBAR'\n *\n * _.toUpper('__foo_bar__');\n * // => '__FOO_BAR__'\n */\nfunction toUpper(value) {\n return toString(value).toUpperCase();\n}\n\nexport default toUpper;\n","import arrayEach from './_arrayEach.js';\nimport baseCreate from './_baseCreate.js';\nimport baseForOwn from './_baseForOwn.js';\nimport baseIteratee from './_baseIteratee.js';\nimport getPrototype from './_getPrototype.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isFunction from './isFunction.js';\nimport isObject from './isObject.js';\nimport isTypedArray from './isTypedArray.js';\n\n/**\n * An alternative to `_.reduce`; this method transforms `object` to a new\n * `accumulator` object which is the result of running each of its own\n * enumerable string keyed properties thru `iteratee`, with each invocation\n * potentially mutating the `accumulator` object. If `accumulator` is not\n * provided, a new object with the same `[[Prototype]]` will be used. The\n * iteratee is invoked with four arguments: (accumulator, value, key, object).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 1.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The custom accumulator value.\n * @returns {*} Returns the accumulated value.\n * @example\n *\n * _.transform([2, 3, 4], function(result, n) {\n * result.push(n *= n);\n * return n % 2 == 0;\n * }, []);\n * // => [4, 9]\n *\n * _.transform({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {\n * (result[value] || (result[value] = [])).push(key);\n * }, {});\n * // => { '1': ['a', 'c'], '2': ['b'] }\n */\nfunction transform(object, iteratee, accumulator) {\n var isArr = isArray(object),\n isArrLike = isArr || isBuffer(object) || isTypedArray(object);\n\n iteratee = baseIteratee(iteratee, 4);\n if (accumulator == null) {\n var Ctor = object && object.constructor;\n if (isArrLike) {\n accumulator = isArr ? new Ctor : [];\n }\n else if (isObject(object)) {\n accumulator = isFunction(Ctor) ? baseCreate(getPrototype(object)) : {};\n }\n else {\n accumulator = {};\n }\n }\n (isArrLike ? arrayEach : baseForOwn)(object, function(value, index, object) {\n return iteratee(accumulator, value, index, object);\n });\n return accumulator;\n}\n\nexport default transform;\n","import baseIndexOf from './_baseIndexOf.js';\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last string symbol\n * that is not found in the character symbols.\n *\n * @private\n * @param {Array} strSymbols The string symbols to inspect.\n * @param {Array} chrSymbols The character symbols to find.\n * @returns {number} Returns the index of the last unmatched string symbol.\n */\nfunction charsEndIndex(strSymbols, chrSymbols) {\n var index = strSymbols.length;\n\n while (index-- && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {}\n return index;\n}\n\nexport default charsEndIndex;\n","import baseIndexOf from './_baseIndexOf.js';\n\n/**\n * Used by `_.trim` and `_.trimStart` to get the index of the first string symbol\n * that is not found in the character symbols.\n *\n * @private\n * @param {Array} strSymbols The string symbols to inspect.\n * @param {Array} chrSymbols The character symbols to find.\n * @returns {number} Returns the index of the first unmatched string symbol.\n */\nfunction charsStartIndex(strSymbols, chrSymbols) {\n var index = -1,\n length = strSymbols.length;\n\n while (++index < length && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {}\n return index;\n}\n\nexport default charsStartIndex;\n","import baseToString from './_baseToString.js';\nimport baseTrim from './_baseTrim.js';\nimport castSlice from './_castSlice.js';\nimport charsEndIndex from './_charsEndIndex.js';\nimport charsStartIndex from './_charsStartIndex.js';\nimport stringToArray from './_stringToArray.js';\nimport toString from './toString.js';\n\n/**\n * Removes leading and trailing whitespace or specified characters from `string`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to trim.\n * @param {string} [chars=whitespace] The characters to trim.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {string} Returns the trimmed string.\n * @example\n *\n * _.trim(' abc ');\n * // => 'abc'\n *\n * _.trim('-_-abc-_-', '_-');\n * // => 'abc'\n *\n * _.map([' foo ', ' bar '], _.trim);\n * // => ['foo', 'bar']\n */\nfunction trim(string, chars, guard) {\n string = toString(string);\n if (string && (guard || chars === undefined)) {\n return baseTrim(string);\n }\n if (!string || !(chars = baseToString(chars))) {\n return string;\n }\n var strSymbols = stringToArray(string),\n chrSymbols = stringToArray(chars),\n start = charsStartIndex(strSymbols, chrSymbols),\n end = charsEndIndex(strSymbols, chrSymbols) + 1;\n\n return castSlice(strSymbols, start, end).join('');\n}\n\nexport default trim;\n","import baseToString from './_baseToString.js';\nimport castSlice from './_castSlice.js';\nimport charsEndIndex from './_charsEndIndex.js';\nimport stringToArray from './_stringToArray.js';\nimport toString from './toString.js';\nimport trimmedEndIndex from './_trimmedEndIndex.js';\n\n/**\n * Removes trailing whitespace or specified characters from `string`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to trim.\n * @param {string} [chars=whitespace] The characters to trim.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {string} Returns the trimmed string.\n * @example\n *\n * _.trimEnd(' abc ');\n * // => ' abc'\n *\n * _.trimEnd('-_-abc-_-', '_-');\n * // => '-_-abc'\n */\nfunction trimEnd(string, chars, guard) {\n string = toString(string);\n if (string && (guard || chars === undefined)) {\n return string.slice(0, trimmedEndIndex(string) + 1);\n }\n if (!string || !(chars = baseToString(chars))) {\n return string;\n }\n var strSymbols = stringToArray(string),\n end = charsEndIndex(strSymbols, stringToArray(chars)) + 1;\n\n return castSlice(strSymbols, 0, end).join('');\n}\n\nexport default trimEnd;\n","import baseToString from './_baseToString.js';\nimport castSlice from './_castSlice.js';\nimport charsStartIndex from './_charsStartIndex.js';\nimport stringToArray from './_stringToArray.js';\nimport toString from './toString.js';\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * Removes leading whitespace or specified characters from `string`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to trim.\n * @param {string} [chars=whitespace] The characters to trim.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {string} Returns the trimmed string.\n * @example\n *\n * _.trimStart(' abc ');\n * // => 'abc '\n *\n * _.trimStart('-_-abc-_-', '_-');\n * // => 'abc-_-'\n */\nfunction trimStart(string, chars, guard) {\n string = toString(string);\n if (string && (guard || chars === undefined)) {\n return string.replace(reTrimStart, '');\n }\n if (!string || !(chars = baseToString(chars))) {\n return string;\n }\n var strSymbols = stringToArray(string),\n start = charsStartIndex(strSymbols, stringToArray(chars));\n\n return castSlice(strSymbols, start).join('');\n}\n\nexport default trimStart;\n","import baseToString from './_baseToString.js';\nimport castSlice from './_castSlice.js';\nimport hasUnicode from './_hasUnicode.js';\nimport isObject from './isObject.js';\nimport isRegExp from './isRegExp.js';\nimport stringSize from './_stringSize.js';\nimport stringToArray from './_stringToArray.js';\nimport toInteger from './toInteger.js';\nimport toString from './toString.js';\n\n/** Used as default options for `_.truncate`. */\nvar DEFAULT_TRUNC_LENGTH = 30,\n DEFAULT_TRUNC_OMISSION = '...';\n\n/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/**\n * Truncates `string` if it's longer than the given maximum string length.\n * The last characters of the truncated string are replaced with the omission\n * string which defaults to \"...\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to truncate.\n * @param {Object} [options={}] The options object.\n * @param {number} [options.length=30] The maximum string length.\n * @param {string} [options.omission='...'] The string to indicate text is omitted.\n * @param {RegExp|string} [options.separator] The separator pattern to truncate to.\n * @returns {string} Returns the truncated string.\n * @example\n *\n * _.truncate('hi-diddly-ho there, neighborino');\n * // => 'hi-diddly-ho there, neighbo...'\n *\n * _.truncate('hi-diddly-ho there, neighborino', {\n * 'length': 24,\n * 'separator': ' '\n * });\n * // => 'hi-diddly-ho there,...'\n *\n * _.truncate('hi-diddly-ho there, neighborino', {\n * 'length': 24,\n * 'separator': /,? +/\n * });\n * // => 'hi-diddly-ho there...'\n *\n * _.truncate('hi-diddly-ho there, neighborino', {\n * 'omission': ' [...]'\n * });\n * // => 'hi-diddly-ho there, neig [...]'\n */\nfunction truncate(string, options) {\n var length = DEFAULT_TRUNC_LENGTH,\n omission = DEFAULT_TRUNC_OMISSION;\n\n if (isObject(options)) {\n var separator = 'separator' in options ? options.separator : separator;\n length = 'length' in options ? toInteger(options.length) : length;\n omission = 'omission' in options ? baseToString(options.omission) : omission;\n }\n string = toString(string);\n\n var strLength = string.length;\n if (hasUnicode(string)) {\n var strSymbols = stringToArray(string);\n strLength = strSymbols.length;\n }\n if (length >= strLength) {\n return string;\n }\n var end = length - stringSize(omission);\n if (end < 1) {\n return omission;\n }\n var result = strSymbols\n ? castSlice(strSymbols, 0, end).join('')\n : string.slice(0, end);\n\n if (separator === undefined) {\n return result + omission;\n }\n if (strSymbols) {\n end += (result.length - end);\n }\n if (isRegExp(separator)) {\n if (string.slice(end).search(separator)) {\n var match,\n substring = result;\n\n if (!separator.global) {\n separator = RegExp(separator.source, toString(reFlags.exec(separator)) + 'g');\n }\n separator.lastIndex = 0;\n while ((match = separator.exec(substring))) {\n var newEnd = match.index;\n }\n result = result.slice(0, newEnd === undefined ? end : newEnd);\n }\n } else if (string.indexOf(baseToString(separator), end) != end) {\n var index = result.lastIndexOf(separator);\n if (index > -1) {\n result = result.slice(0, index);\n }\n }\n return result + omission;\n}\n\nexport default truncate;\n","import ary from './ary.js';\n\n/**\n * Creates a function that accepts up to one argument, ignoring any\n * additional arguments.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Function\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n * @example\n *\n * _.map(['6', '8', '10'], _.unary(parseInt));\n * // => [6, 8, 10]\n */\nfunction unary(func) {\n return ary(func, 1);\n}\n\nexport default unary;\n","import basePropertyOf from './_basePropertyOf.js';\n\n/** Used to map HTML entities to characters. */\nvar htmlUnescapes = {\n '&amp;': '&',\n '&lt;': '<',\n '&gt;': '>',\n '&quot;': '\"',\n '&#39;': \"'\"\n};\n\n/**\n * Used by `_.unescape` to convert HTML entities to characters.\n *\n * @private\n * @param {string} chr The matched character to unescape.\n * @returns {string} Returns the unescaped character.\n */\nvar unescapeHtmlChar = basePropertyOf(htmlUnescapes);\n\nexport default unescapeHtmlChar;\n","import toString from './toString.js';\nimport unescapeHtmlChar from './_unescapeHtmlChar.js';\n\n/** Used to match HTML entities and HTML characters. */\nvar reEscapedHtml = /&(?:amp|lt|gt|quot|#39);/g,\n reHasEscapedHtml = RegExp(reEscapedHtml.source);\n\n/**\n * The inverse of `_.escape`; this method converts the HTML entities\n * `&amp;`, `&lt;`, `&gt;`, `&quot;`, and `&#39;` in `string` to\n * their corresponding characters.\n *\n * **Note:** No other HTML entities are unescaped. To unescape additional\n * HTML entities use a third-party library like [_he_](https://mths.be/he).\n *\n * @static\n * @memberOf _\n * @since 0.6.0\n * @category String\n * @param {string} [string=''] The string to unescape.\n * @returns {string} Returns the unescaped string.\n * @example\n *\n * _.unescape('fred, barney, &amp; pebbles');\n * // => 'fred, barney, & pebbles'\n */\nfunction unescape(string) {\n string = toString(string);\n return (string && reHasEscapedHtml.test(string))\n ? string.replace(reEscapedHtml, unescapeHtmlChar)\n : string;\n}\n\nexport default unescape;\n","import Set from './_Set.js';\nimport noop from './noop.js';\nimport setToArray from './_setToArray.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Creates a set object of `values`.\n *\n * @private\n * @param {Array} values The values to add to the set.\n * @returns {Object} Returns the new set.\n */\nvar createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) {\n return new Set(values);\n};\n\nexport default createSet;\n","import SetCache from './_SetCache.js';\nimport arrayIncludes from './_arrayIncludes.js';\nimport arrayIncludesWith from './_arrayIncludesWith.js';\nimport cacheHas from './_cacheHas.js';\nimport createSet from './_createSet.js';\nimport setToArray from './_setToArray.js';\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * The base implementation of `_.uniqBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\nfunction baseUniq(array, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n length = array.length,\n isCommon = true,\n result = [],\n seen = result;\n\n if (comparator) {\n isCommon = false;\n includes = arrayIncludesWith;\n }\n else if (length >= LARGE_ARRAY_SIZE) {\n var set = iteratee ? null : createSet(array);\n if (set) {\n return setToArray(set);\n }\n isCommon = false;\n includes = cacheHas;\n seen = new SetCache;\n }\n else {\n seen = iteratee ? [] : result;\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var seenIndex = seen.length;\n while (seenIndex--) {\n if (seen[seenIndex] === computed) {\n continue outer;\n }\n }\n if (iteratee) {\n seen.push(computed);\n }\n result.push(value);\n }\n else if (!includes(seen, computed, comparator)) {\n if (seen !== result) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n}\n\nexport default baseUniq;\n","import baseFlatten from './_baseFlatten.js';\nimport baseRest from './_baseRest.js';\nimport baseUniq from './_baseUniq.js';\nimport isArrayLikeObject from './isArrayLikeObject.js';\n\n/**\n * Creates an array of unique values, in order, from all given arrays using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of combined values.\n * @example\n *\n * _.union([2], [1, 2]);\n * // => [2, 1]\n */\nvar union = baseRest(function(arrays) {\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true));\n});\n\nexport default union;\n","import baseFlatten from './_baseFlatten.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseRest from './_baseRest.js';\nimport baseUniq from './_baseUniq.js';\nimport isArrayLikeObject from './isArrayLikeObject.js';\nimport last from './last.js';\n\n/**\n * This method is like `_.union` except that it accepts `iteratee` which is\n * invoked for each element of each `arrays` to generate the criterion by\n * which uniqueness is computed. Result values are chosen from the first\n * array in which the value occurs. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of combined values.\n * @example\n *\n * _.unionBy([2.1], [1.2, 2.3], Math.floor);\n * // => [2.1, 1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.unionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }, { 'x': 2 }]\n */\nvar unionBy = baseRest(function(arrays) {\n var iteratee = last(arrays);\n if (isArrayLikeObject(iteratee)) {\n iteratee = undefined;\n }\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), baseIteratee(iteratee, 2));\n});\n\nexport default unionBy;\n","import baseFlatten from './_baseFlatten.js';\nimport baseRest from './_baseRest.js';\nimport baseUniq from './_baseUniq.js';\nimport isArrayLikeObject from './isArrayLikeObject.js';\nimport last from './last.js';\n\n/**\n * This method is like `_.union` except that it accepts `comparator` which\n * is invoked to compare elements of `arrays`. Result values are chosen from\n * the first array in which the value occurs. The comparator is invoked\n * with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of combined values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.unionWith(objects, others, _.isEqual);\n * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }]\n */\nvar unionWith = baseRest(function(arrays) {\n var comparator = last(arrays);\n comparator = typeof comparator == 'function' ? comparator : undefined;\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), undefined, comparator);\n});\n\nexport default unionWith;\n","import baseUniq from './_baseUniq.js';\n\n/**\n * Creates a duplicate-free version of an array, using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons, in which only the first occurrence of each element\n * is kept. The order of result values is determined by the order they occur\n * in the array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniq([2, 1, 2]);\n * // => [2, 1]\n */\nfunction uniq(array) {\n return (array && array.length) ? baseUniq(array) : [];\n}\n\nexport default uniq;\n","import baseIteratee from './_baseIteratee.js';\nimport baseUniq from './_baseUniq.js';\n\n/**\n * This method is like `_.uniq` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * uniqueness is computed. The order of result values is determined by the\n * order they occur in the array. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniqBy([2.1, 1.2, 2.3], Math.floor);\n * // => [2.1, 1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }, { 'x': 2 }]\n */\nfunction uniqBy(array, iteratee) {\n return (array && array.length) ? baseUniq(array, baseIteratee(iteratee, 2)) : [];\n}\n\nexport default uniqBy;\n","import baseUniq from './_baseUniq.js';\n\n/**\n * This method is like `_.uniq` except that it accepts `comparator` which\n * is invoked to compare elements of `array`. The order of result values is\n * determined by the order they occur in the array.The comparator is invoked\n * with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.uniqWith(objects, _.isEqual);\n * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]\n */\nfunction uniqWith(array, comparator) {\n comparator = typeof comparator == 'function' ? comparator : undefined;\n return (array && array.length) ? baseUniq(array, undefined, comparator) : [];\n}\n\nexport default uniqWith;\n","import toString from './toString.js';\n\n/** Used to generate unique IDs. */\nvar idCounter = 0;\n\n/**\n * Generates a unique ID. If `prefix` is given, the ID is appended to it.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {string} [prefix=''] The value to prefix the ID with.\n * @returns {string} Returns the unique ID.\n * @example\n *\n * _.uniqueId('contact_');\n * // => 'contact_104'\n *\n * _.uniqueId();\n * // => '105'\n */\nfunction uniqueId(prefix) {\n var id = ++idCounter;\n return toString(prefix) + id;\n}\n\nexport default uniqueId;\n","import baseUnset from './_baseUnset.js';\n\n/**\n * Removes the property at `path` of `object`.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to unset.\n * @returns {boolean} Returns `true` if the property is deleted, else `false`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 7 } }] };\n * _.unset(object, 'a[0].b.c');\n * // => true\n *\n * console.log(object);\n * // => { 'a': [{ 'b': {} }] };\n *\n * _.unset(object, ['a', '0', 'b', 'c']);\n * // => true\n *\n * console.log(object);\n * // => { 'a': [{ 'b': {} }] };\n */\nfunction unset(object, path) {\n return object == null ? true : baseUnset(object, path);\n}\n\nexport default unset;\n","import arrayFilter from './_arrayFilter.js';\nimport arrayMap from './_arrayMap.js';\nimport baseProperty from './_baseProperty.js';\nimport baseTimes from './_baseTimes.js';\nimport isArrayLikeObject from './isArrayLikeObject.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * This method is like `_.zip` except that it accepts an array of grouped\n * elements and creates an array regrouping the elements to their pre-zip\n * configuration.\n *\n * @static\n * @memberOf _\n * @since 1.2.0\n * @category Array\n * @param {Array} array The array of grouped elements to process.\n * @returns {Array} Returns the new array of regrouped elements.\n * @example\n *\n * var zipped = _.zip(['a', 'b'], [1, 2], [true, false]);\n * // => [['a', 1, true], ['b', 2, false]]\n *\n * _.unzip(zipped);\n * // => [['a', 'b'], [1, 2], [true, false]]\n */\nfunction unzip(array) {\n if (!(array && array.length)) {\n return [];\n }\n var length = 0;\n array = arrayFilter(array, function(group) {\n if (isArrayLikeObject(group)) {\n length = nativeMax(group.length, length);\n return true;\n }\n });\n return baseTimes(length, function(index) {\n return arrayMap(array, baseProperty(index));\n });\n}\n\nexport default unzip;\n","import apply from './_apply.js';\nimport arrayMap from './_arrayMap.js';\nimport unzip from './unzip.js';\n\n/**\n * This method is like `_.unzip` except that it accepts `iteratee` to specify\n * how regrouped values should be combined. The iteratee is invoked with the\n * elements of each group: (...group).\n *\n * @static\n * @memberOf _\n * @since 3.8.0\n * @category Array\n * @param {Array} array The array of grouped elements to process.\n * @param {Function} [iteratee=_.identity] The function to combine\n * regrouped values.\n * @returns {Array} Returns the new array of regrouped elements.\n * @example\n *\n * var zipped = _.zip([1, 2], [10, 20], [100, 200]);\n * // => [[1, 10, 100], [2, 20, 200]]\n *\n * _.unzipWith(zipped, _.add);\n * // => [3, 30, 300]\n */\nfunction unzipWith(array, iteratee) {\n if (!(array && array.length)) {\n return [];\n }\n var result = unzip(array);\n if (iteratee == null) {\n return result;\n }\n return arrayMap(result, function(group) {\n return apply(iteratee, undefined, group);\n });\n}\n\nexport default unzipWith;\n","import baseGet from './_baseGet.js';\nimport baseSet from './_baseSet.js';\n\n/**\n * The base implementation of `_.update`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to update.\n * @param {Function} updater The function to produce the updated value.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\nfunction baseUpdate(object, path, updater, customizer) {\n return baseSet(object, path, updater(baseGet(object, path)), customizer);\n}\n\nexport default baseUpdate;\n","import baseUpdate from './_baseUpdate.js';\nimport castFunction from './_castFunction.js';\n\n/**\n * This method is like `_.set` except that accepts `updater` to produce the\n * value to set. Use `_.updateWith` to customize `path` creation. The `updater`\n * is invoked with one argument: (value).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.6.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {Function} updater The function to produce the updated value.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.update(object, 'a[0].b.c', function(n) { return n * n; });\n * console.log(object.a[0].b.c);\n * // => 9\n *\n * _.update(object, 'x[0].y.z', function(n) { return n ? n + 1 : 0; });\n * console.log(object.x[0].y.z);\n * // => 0\n */\nfunction update(object, path, updater) {\n return object == null ? object : baseUpdate(object, path, castFunction(updater));\n}\n\nexport default update;\n","import baseUpdate from './_baseUpdate.js';\nimport castFunction from './_castFunction.js';\n\n/**\n * This method is like `_.update` except that it accepts `customizer` which is\n * invoked to produce the objects of `path`. If `customizer` returns `undefined`\n * path creation is handled by the method instead. The `customizer` is invoked\n * with three arguments: (nsValue, key, nsObject).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.6.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {Function} updater The function to produce the updated value.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {};\n *\n * _.updateWith(object, '[0][1]', _.constant('a'), Object);\n * // => { '0': { '1': 'a' } }\n */\nfunction updateWith(object, path, updater, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return object == null ? object : baseUpdate(object, path, castFunction(updater), customizer);\n}\n\nexport default updateWith;\n","import createCompounder from './_createCompounder.js';\n\n/**\n * Converts `string`, as space separated words, to upper case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the upper cased string.\n * @example\n *\n * _.upperCase('--foo-bar');\n * // => 'FOO BAR'\n *\n * _.upperCase('fooBar');\n * // => 'FOO BAR'\n *\n * _.upperCase('__foo_bar__');\n * // => 'FOO BAR'\n */\nvar upperCase = createCompounder(function(result, word, index) {\n return result + (index ? ' ' : '') + word.toUpperCase();\n});\n\nexport default upperCase;\n","import baseValues from './_baseValues.js';\nimport keysIn from './keysIn.js';\n\n/**\n * Creates an array of the own and inherited enumerable string keyed property\n * values of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property values.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.valuesIn(new Foo);\n * // => [1, 2, 3] (iteration order is not guaranteed)\n */\nfunction valuesIn(object) {\n return object == null ? [] : baseValues(object, keysIn(object));\n}\n\nexport default valuesIn;\n","import baseDifference from './_baseDifference.js';\nimport baseRest from './_baseRest.js';\nimport isArrayLikeObject from './isArrayLikeObject.js';\n\n/**\n * Creates an array excluding all given values using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * **Note:** Unlike `_.pull`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...*} [values] The values to exclude.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.difference, _.xor\n * @example\n *\n * _.without([2, 1, 2, 3], 1, 2);\n * // => [3]\n */\nvar without = baseRest(function(array, values) {\n return isArrayLikeObject(array)\n ? baseDifference(array, values)\n : [];\n});\n\nexport default without;\n","import castFunction from './_castFunction.js';\nimport partial from './partial.js';\n\n/**\n * Creates a function that provides `value` to `wrapper` as its first\n * argument. Any additional arguments provided to the function are appended\n * to those provided to the `wrapper`. The wrapper is invoked with the `this`\n * binding of the created function.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {*} value The value to wrap.\n * @param {Function} [wrapper=identity] The wrapper function.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var p = _.wrap(_.escape, function(func, text) {\n * return '<p>' + func(text) + '</p>';\n * });\n *\n * p('fred, barney, & pebbles');\n * // => '<p>fred, barney, &amp; pebbles</p>'\n */\nfunction wrap(value, wrapper) {\n return partial(castFunction(wrapper), value);\n}\n\nexport default wrap;\n","import LazyWrapper from './_LazyWrapper.js';\nimport LodashWrapper from './_LodashWrapper.js';\nimport baseAt from './_baseAt.js';\nimport flatRest from './_flatRest.js';\nimport isIndex from './_isIndex.js';\nimport thru from './thru.js';\n\n/**\n * This method is the wrapper version of `_.at`.\n *\n * @name at\n * @memberOf _\n * @since 1.0.0\n * @category Seq\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }, 4] };\n *\n * _(object).at(['a[0].b.c', 'a[1]']).value();\n * // => [3, 4]\n */\nvar wrapperAt = flatRest(function(paths) {\n var length = paths.length,\n start = length ? paths[0] : 0,\n value = this.__wrapped__,\n interceptor = function(object) { return baseAt(object, paths); };\n\n if (length > 1 || this.__actions__.length ||\n !(value instanceof LazyWrapper) || !isIndex(start)) {\n return this.thru(interceptor);\n }\n value = value.slice(start, +start + (length ? 1 : 0));\n value.__actions__.push({\n 'func': thru,\n 'args': [interceptor],\n 'thisArg': undefined\n });\n return new LodashWrapper(value, this.__chain__).thru(function(array) {\n if (length && !array.length) {\n array.push(undefined);\n }\n return array;\n });\n});\n\nexport default wrapperAt;\n","import chain from './chain.js';\n\n/**\n * Creates a `lodash` wrapper instance with explicit method chain sequences enabled.\n *\n * @name chain\n * @memberOf _\n * @since 0.1.0\n * @category Seq\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 40 }\n * ];\n *\n * // A sequence without explicit chaining.\n * _(users).head();\n * // => { 'user': 'barney', 'age': 36 }\n *\n * // A sequence with explicit chaining.\n * _(users)\n * .chain()\n * .head()\n * .pick('user')\n * .value();\n * // => { 'user': 'barney' }\n */\nfunction wrapperChain() {\n return chain(this);\n}\n\nexport default wrapperChain;\n","import LazyWrapper from './_LazyWrapper.js';\nimport LodashWrapper from './_LodashWrapper.js';\nimport reverse from './reverse.js';\nimport thru from './thru.js';\n\n/**\n * This method is the wrapper version of `_.reverse`.\n *\n * **Note:** This method mutates the wrapped array.\n *\n * @name reverse\n * @memberOf _\n * @since 0.1.0\n * @category Seq\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var array = [1, 2, 3];\n *\n * _(array).reverse().value()\n * // => [3, 2, 1]\n *\n * console.log(array);\n * // => [3, 2, 1]\n */\nfunction wrapperReverse() {\n var value = this.__wrapped__;\n if (value instanceof LazyWrapper) {\n var wrapped = value;\n if (this.__actions__.length) {\n wrapped = new LazyWrapper(this);\n }\n wrapped = wrapped.reverse();\n wrapped.__actions__.push({\n 'func': thru,\n 'args': [reverse],\n 'thisArg': undefined\n });\n return new LodashWrapper(wrapped, this.__chain__);\n }\n return this.thru(reverse);\n}\n\nexport default wrapperReverse;\n","import baseDifference from './_baseDifference.js';\nimport baseFlatten from './_baseFlatten.js';\nimport baseUniq from './_baseUniq.js';\n\n/**\n * The base implementation of methods like `_.xor`, without support for\n * iteratee shorthands, that accepts an array of arrays to inspect.\n *\n * @private\n * @param {Array} arrays The arrays to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of values.\n */\nfunction baseXor(arrays, iteratee, comparator) {\n var length = arrays.length;\n if (length < 2) {\n return length ? baseUniq(arrays[0]) : [];\n }\n var index = -1,\n result = Array(length);\n\n while (++index < length) {\n var array = arrays[index],\n othIndex = -1;\n\n while (++othIndex < length) {\n if (othIndex != index) {\n result[index] = baseDifference(result[index] || array, arrays[othIndex], iteratee, comparator);\n }\n }\n }\n return baseUniq(baseFlatten(result, 1), iteratee, comparator);\n}\n\nexport default baseXor;\n","import arrayFilter from './_arrayFilter.js';\nimport baseRest from './_baseRest.js';\nimport baseXor from './_baseXor.js';\nimport isArrayLikeObject from './isArrayLikeObject.js';\n\n/**\n * Creates an array of unique values that is the\n * [symmetric difference](https://en.wikipedia.org/wiki/Symmetric_difference)\n * of the given arrays. The order of result values is determined by the order\n * they occur in the arrays.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.difference, _.without\n * @example\n *\n * _.xor([2, 1], [2, 3]);\n * // => [1, 3]\n */\nvar xor = baseRest(function(arrays) {\n return baseXor(arrayFilter(arrays, isArrayLikeObject));\n});\n\nexport default xor;\n","import arrayFilter from './_arrayFilter.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseRest from './_baseRest.js';\nimport baseXor from './_baseXor.js';\nimport isArrayLikeObject from './isArrayLikeObject.js';\nimport last from './last.js';\n\n/**\n * This method is like `_.xor` except that it accepts `iteratee` which is\n * invoked for each element of each `arrays` to generate the criterion by\n * which by which they're compared. The order of result values is determined\n * by the order they occur in the arrays. The iteratee is invoked with one\n * argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.xorBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n * // => [1.2, 3.4]\n *\n * // The `_.property` iteratee shorthand.\n * _.xorBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 2 }]\n */\nvar xorBy = baseRest(function(arrays) {\n var iteratee = last(arrays);\n if (isArrayLikeObject(iteratee)) {\n iteratee = undefined;\n }\n return baseXor(arrayFilter(arrays, isArrayLikeObject), baseIteratee(iteratee, 2));\n});\n\nexport default xorBy;\n","import arrayFilter from './_arrayFilter.js';\nimport baseRest from './_baseRest.js';\nimport baseXor from './_baseXor.js';\nimport isArrayLikeObject from './isArrayLikeObject.js';\nimport last from './last.js';\n\n/**\n * This method is like `_.xor` except that it accepts `comparator` which is\n * invoked to compare elements of `arrays`. The order of result values is\n * determined by the order they occur in the arrays. The comparator is invoked\n * with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.xorWith(objects, others, _.isEqual);\n * // => [{ 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }]\n */\nvar xorWith = baseRest(function(arrays) {\n var comparator = last(arrays);\n comparator = typeof comparator == 'function' ? comparator : undefined;\n return baseXor(arrayFilter(arrays, isArrayLikeObject), undefined, comparator);\n});\n\nexport default xorWith;\n","import baseRest from './_baseRest.js';\nimport unzip from './unzip.js';\n\n/**\n * Creates an array of grouped elements, the first of which contains the\n * first elements of the given arrays, the second of which contains the\n * second elements of the given arrays, and so on.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to process.\n * @returns {Array} Returns the new array of grouped elements.\n * @example\n *\n * _.zip(['a', 'b'], [1, 2], [true, false]);\n * // => [['a', 1, true], ['b', 2, false]]\n */\nvar zip = baseRest(unzip);\n\nexport default zip;\n","/**\n * This base implementation of `_.zipObject` which assigns values using `assignFunc`.\n *\n * @private\n * @param {Array} props The property identifiers.\n * @param {Array} values The property values.\n * @param {Function} assignFunc The function to assign values.\n * @returns {Object} Returns the new object.\n */\nfunction baseZipObject(props, values, assignFunc) {\n var index = -1,\n length = props.length,\n valsLength = values.length,\n result = {};\n\n while (++index < length) {\n var value = index < valsLength ? values[index] : undefined;\n assignFunc(result, props[index], value);\n }\n return result;\n}\n\nexport default baseZipObject;\n","import assignValue from './_assignValue.js';\nimport baseZipObject from './_baseZipObject.js';\n\n/**\n * This method is like `_.fromPairs` except that it accepts two arrays,\n * one of property identifiers and one of corresponding values.\n *\n * @static\n * @memberOf _\n * @since 0.4.0\n * @category Array\n * @param {Array} [props=[]] The property identifiers.\n * @param {Array} [values=[]] The property values.\n * @returns {Object} Returns the new object.\n * @example\n *\n * _.zipObject(['a', 'b'], [1, 2]);\n * // => { 'a': 1, 'b': 2 }\n */\nfunction zipObject(props, values) {\n return baseZipObject(props || [], values || [], assignValue);\n}\n\nexport default zipObject;\n","import baseSet from './_baseSet.js';\nimport baseZipObject from './_baseZipObject.js';\n\n/**\n * This method is like `_.zipObject` except that it supports property paths.\n *\n * @static\n * @memberOf _\n * @since 4.1.0\n * @category Array\n * @param {Array} [props=[]] The property identifiers.\n * @param {Array} [values=[]] The property values.\n * @returns {Object} Returns the new object.\n * @example\n *\n * _.zipObjectDeep(['a.b[0].c', 'a.b[1].d'], [1, 2]);\n * // => { 'a': { 'b': [{ 'c': 1 }, { 'd': 2 }] } }\n */\nfunction zipObjectDeep(props, values) {\n return baseZipObject(props || [], values || [], baseSet);\n}\n\nexport default zipObjectDeep;\n","import baseRest from './_baseRest.js';\nimport unzipWith from './unzipWith.js';\n\n/**\n * This method is like `_.zip` except that it accepts `iteratee` to specify\n * how grouped values should be combined. The iteratee is invoked with the\n * elements of each group: (...group).\n *\n * @static\n * @memberOf _\n * @since 3.8.0\n * @category Array\n * @param {...Array} [arrays] The arrays to process.\n * @param {Function} [iteratee=_.identity] The function to combine\n * grouped values.\n * @returns {Array} Returns the new array of grouped elements.\n * @example\n *\n * _.zipWith([1, 2], [10, 20], [100, 200], function(a, b, c) {\n * return a + b + c;\n * });\n * // => [111, 222]\n */\nvar zipWith = baseRest(function(arrays) {\n var length = arrays.length,\n iteratee = length > 1 ? arrays[length - 1] : undefined;\n\n iteratee = typeof iteratee == 'function' ? (arrays.pop(), iteratee) : undefined;\n return unzipWith(arrays, iteratee);\n});\n\nexport default zipWith;\n","import chunk from './chunk.js';\nimport compact from './compact.js';\nimport concat from './concat.js';\nimport difference from './difference.js';\nimport differenceBy from './differenceBy.js';\nimport differenceWith from './differenceWith.js';\nimport drop from './drop.js';\nimport dropRight from './dropRight.js';\nimport dropRightWhile from './dropRightWhile.js';\nimport dropWhile from './dropWhile.js';\nimport fill from './fill.js';\nimport findIndex from './findIndex.js';\nimport findLastIndex from './findLastIndex.js';\nimport first from './first.js';\nimport flatten from './flatten.js';\nimport flattenDeep from './flattenDeep.js';\nimport flattenDepth from './flattenDepth.js';\nimport fromPairs from './fromPairs.js';\nimport head from './head.js';\nimport indexOf from './indexOf.js';\nimport initial from './initial.js';\nimport intersection from './intersection.js';\nimport intersectionBy from './intersectionBy.js';\nimport intersectionWith from './intersectionWith.js';\nimport join from './join.js';\nimport last from './last.js';\nimport lastIndexOf from './lastIndexOf.js';\nimport nth from './nth.js';\nimport pull from './pull.js';\nimport pullAll from './pullAll.js';\nimport pullAllBy from './pullAllBy.js';\nimport pullAllWith from './pullAllWith.js';\nimport pullAt from './pullAt.js';\nimport remove from './remove.js';\nimport reverse from './reverse.js';\nimport slice from './slice.js';\nimport sortedIndex from './sortedIndex.js';\nimport sortedIndexBy from './sortedIndexBy.js';\nimport sortedIndexOf from './sortedIndexOf.js';\nimport sortedLastIndex from './sortedLastIndex.js';\nimport sortedLastIndexBy from './sortedLastIndexBy.js';\nimport sortedLastIndexOf from './sortedLastIndexOf.js';\nimport sortedUniq from './sortedUniq.js';\nimport sortedUniqBy from './sortedUniqBy.js';\nimport tail from './tail.js';\nimport take from './take.js';\nimport takeRight from './takeRight.js';\nimport takeRightWhile from './takeRightWhile.js';\nimport takeWhile from './takeWhile.js';\nimport union from './union.js';\nimport unionBy from './unionBy.js';\nimport unionWith from './unionWith.js';\nimport uniq from './uniq.js';\nimport uniqBy from './uniqBy.js';\nimport uniqWith from './uniqWith.js';\nimport unzip from './unzip.js';\nimport unzipWith from './unzipWith.js';\nimport without from './without.js';\nimport xor from './xor.js';\nimport xorBy from './xorBy.js';\nimport xorWith from './xorWith.js';\nimport zip from './zip.js';\nimport zipObject from './zipObject.js';\nimport zipObjectDeep from './zipObjectDeep.js';\nimport zipWith from './zipWith.js';\n\nexport default {\n chunk, compact, concat, difference, differenceBy,\n differenceWith, drop, dropRight, dropRightWhile, dropWhile,\n fill, findIndex, findLastIndex, first, flatten,\n flattenDeep, flattenDepth, fromPairs, head, indexOf,\n initial, intersection, intersectionBy, intersectionWith, join,\n last, lastIndexOf, nth, pull, pullAll,\n pullAllBy, pullAllWith, pullAt, remove, reverse,\n slice, sortedIndex, sortedIndexBy, sortedIndexOf, sortedLastIndex,\n sortedLastIndexBy, sortedLastIndexOf, sortedUniq, sortedUniqBy, tail,\n take, takeRight, takeRightWhile, takeWhile, union,\n unionBy, unionWith, uniq, uniqBy, uniqWith,\n unzip, unzipWith, without, xor, xorBy,\n xorWith, zip, zipObject, zipObjectDeep, zipWith\n};\n","import countBy from './countBy.js';\nimport each from './each.js';\nimport eachRight from './eachRight.js';\nimport every from './every.js';\nimport filter from './filter.js';\nimport find from './find.js';\nimport findLast from './findLast.js';\nimport flatMap from './flatMap.js';\nimport flatMapDeep from './flatMapDeep.js';\nimport flatMapDepth from './flatMapDepth.js';\nimport forEach from './forEach.js';\nimport forEachRight from './forEachRight.js';\nimport groupBy from './groupBy.js';\nimport includes from './includes.js';\nimport invokeMap from './invokeMap.js';\nimport keyBy from './keyBy.js';\nimport map from './map.js';\nimport orderBy from './orderBy.js';\nimport partition from './partition.js';\nimport reduce from './reduce.js';\nimport reduceRight from './reduceRight.js';\nimport reject from './reject.js';\nimport sample from './sample.js';\nimport sampleSize from './sampleSize.js';\nimport shuffle from './shuffle.js';\nimport size from './size.js';\nimport some from './some.js';\nimport sortBy from './sortBy.js';\n\nexport default {\n countBy, each, eachRight, every, filter,\n find, findLast, flatMap, flatMapDeep, flatMapDepth,\n forEach, forEachRight, groupBy, includes, invokeMap,\n keyBy, map, orderBy, partition, reduce,\n reduceRight, reject, sample, sampleSize, shuffle,\n size, some, sortBy\n};\n","import now from './now.js';\n\nexport default {\n now\n};\n","import after from './after.js';\nimport ary from './ary.js';\nimport before from './before.js';\nimport bind from './bind.js';\nimport bindKey from './bindKey.js';\nimport curry from './curry.js';\nimport curryRight from './curryRight.js';\nimport debounce from './debounce.js';\nimport defer from './defer.js';\nimport delay from './delay.js';\nimport flip from './flip.js';\nimport memoize from './memoize.js';\nimport negate from './negate.js';\nimport once from './once.js';\nimport overArgs from './overArgs.js';\nimport partial from './partial.js';\nimport partialRight from './partialRight.js';\nimport rearg from './rearg.js';\nimport rest from './rest.js';\nimport spread from './spread.js';\nimport throttle from './throttle.js';\nimport unary from './unary.js';\nimport wrap from './wrap.js';\n\nexport default {\n after, ary, before, bind, bindKey,\n curry, curryRight, debounce, defer, delay,\n flip, memoize, negate, once, overArgs,\n partial, partialRight, rearg, rest, spread,\n throttle, unary, wrap\n};\n","import castArray from './castArray.js';\nimport clone from './clone.js';\nimport cloneDeep from './cloneDeep.js';\nimport cloneDeepWith from './cloneDeepWith.js';\nimport cloneWith from './cloneWith.js';\nimport conformsTo from './conformsTo.js';\nimport eq from './eq.js';\nimport gt from './gt.js';\nimport gte from './gte.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isArrayBuffer from './isArrayBuffer.js';\nimport isArrayLike from './isArrayLike.js';\nimport isArrayLikeObject from './isArrayLikeObject.js';\nimport isBoolean from './isBoolean.js';\nimport isBuffer from './isBuffer.js';\nimport isDate from './isDate.js';\nimport isElement from './isElement.js';\nimport isEmpty from './isEmpty.js';\nimport isEqual from './isEqual.js';\nimport isEqualWith from './isEqualWith.js';\nimport isError from './isError.js';\nimport isFinite from './isFinite.js';\nimport isFunction from './isFunction.js';\nimport isInteger from './isInteger.js';\nimport isLength from './isLength.js';\nimport isMap from './isMap.js';\nimport isMatch from './isMatch.js';\nimport isMatchWith from './isMatchWith.js';\nimport isNaN from './isNaN.js';\nimport isNative from './isNative.js';\nimport isNil from './isNil.js';\nimport isNull from './isNull.js';\nimport isNumber from './isNumber.js';\nimport isObject from './isObject.js';\nimport isObjectLike from './isObjectLike.js';\nimport isPlainObject from './isPlainObject.js';\nimport isRegExp from './isRegExp.js';\nimport isSafeInteger from './isSafeInteger.js';\nimport isSet from './isSet.js';\nimport isString from './isString.js';\nimport isSymbol from './isSymbol.js';\nimport isTypedArray from './isTypedArray.js';\nimport isUndefined from './isUndefined.js';\nimport isWeakMap from './isWeakMap.js';\nimport isWeakSet from './isWeakSet.js';\nimport lt from './lt.js';\nimport lte from './lte.js';\nimport toArray from './toArray.js';\nimport toFinite from './toFinite.js';\nimport toInteger from './toInteger.js';\nimport toLength from './toLength.js';\nimport toNumber from './toNumber.js';\nimport toPlainObject from './toPlainObject.js';\nimport toSafeInteger from './toSafeInteger.js';\nimport toString from './toString.js';\n\nexport default {\n castArray, clone, cloneDeep, cloneDeepWith, cloneWith,\n conformsTo, eq, gt, gte, isArguments,\n isArray, isArrayBuffer, isArrayLike, isArrayLikeObject, isBoolean,\n isBuffer, isDate, isElement, isEmpty, isEqual,\n isEqualWith, isError, isFinite, isFunction, isInteger,\n isLength, isMap, isMatch, isMatchWith, isNaN,\n isNative, isNil, isNull, isNumber, isObject,\n isObjectLike, isPlainObject, isRegExp, isSafeInteger, isSet,\n isString, isSymbol, isTypedArray, isUndefined, isWeakMap,\n isWeakSet, lt, lte, toArray, toFinite,\n toInteger, toLength, toNumber, toPlainObject, toSafeInteger,\n toString\n};\n","import add from './add.js';\nimport ceil from './ceil.js';\nimport divide from './divide.js';\nimport floor from './floor.js';\nimport max from './max.js';\nimport maxBy from './maxBy.js';\nimport mean from './mean.js';\nimport meanBy from './meanBy.js';\nimport min from './min.js';\nimport minBy from './minBy.js';\nimport multiply from './multiply.js';\nimport round from './round.js';\nimport subtract from './subtract.js';\nimport sum from './sum.js';\nimport sumBy from './sumBy.js';\n\nexport default {\n add, ceil, divide, floor, max,\n maxBy, mean, meanBy, min, minBy,\n multiply, round, subtract, sum, sumBy\n};\n","import clamp from './clamp.js';\nimport inRange from './inRange.js';\nimport random from './random.js';\n\nexport default {\n clamp, inRange, random\n};\n","import assign from './assign.js';\nimport assignIn from './assignIn.js';\nimport assignInWith from './assignInWith.js';\nimport assignWith from './assignWith.js';\nimport at from './at.js';\nimport create from './create.js';\nimport defaults from './defaults.js';\nimport defaultsDeep from './defaultsDeep.js';\nimport entries from './entries.js';\nimport entriesIn from './entriesIn.js';\nimport extend from './extend.js';\nimport extendWith from './extendWith.js';\nimport findKey from './findKey.js';\nimport findLastKey from './findLastKey.js';\nimport forIn from './forIn.js';\nimport forInRight from './forInRight.js';\nimport forOwn from './forOwn.js';\nimport forOwnRight from './forOwnRight.js';\nimport functions from './functions.js';\nimport functionsIn from './functionsIn.js';\nimport get from './get.js';\nimport has from './has.js';\nimport hasIn from './hasIn.js';\nimport invert from './invert.js';\nimport invertBy from './invertBy.js';\nimport invoke from './invoke.js';\nimport keys from './keys.js';\nimport keysIn from './keysIn.js';\nimport mapKeys from './mapKeys.js';\nimport mapValues from './mapValues.js';\nimport merge from './merge.js';\nimport mergeWith from './mergeWith.js';\nimport omit from './omit.js';\nimport omitBy from './omitBy.js';\nimport pick from './pick.js';\nimport pickBy from './pickBy.js';\nimport result from './result.js';\nimport set from './set.js';\nimport setWith from './setWith.js';\nimport toPairs from './toPairs.js';\nimport toPairsIn from './toPairsIn.js';\nimport transform from './transform.js';\nimport unset from './unset.js';\nimport update from './update.js';\nimport updateWith from './updateWith.js';\nimport values from './values.js';\nimport valuesIn from './valuesIn.js';\n\nexport default {\n assign, assignIn, assignInWith, assignWith, at,\n create, defaults, defaultsDeep, entries, entriesIn,\n extend, extendWith, findKey, findLastKey, forIn,\n forInRight, forOwn, forOwnRight, functions, functionsIn,\n get, has, hasIn, invert, invertBy,\n invoke, keys, keysIn, mapKeys, mapValues,\n merge, mergeWith, omit, omitBy, pick,\n pickBy, result, set, setWith, toPairs,\n toPairsIn, transform, unset, update, updateWith,\n values, valuesIn\n};\n","import at from './wrapperAt.js';\nimport chain from './chain.js';\nimport commit from './commit.js';\nimport lodash from './wrapperLodash.js';\nimport next from './next.js';\nimport plant from './plant.js';\nimport reverse from './wrapperReverse.js';\nimport tap from './tap.js';\nimport thru from './thru.js';\nimport toIterator from './toIterator.js';\nimport toJSON from './toJSON.js';\nimport value from './wrapperValue.js';\nimport valueOf from './valueOf.js';\nimport wrapperChain from './wrapperChain.js';\n\nexport default {\n at, chain, commit, lodash, next,\n plant, reverse, tap, thru, toIterator,\n toJSON, value, valueOf, wrapperChain\n};\n","import camelCase from './camelCase.js';\nimport capitalize from './capitalize.js';\nimport deburr from './deburr.js';\nimport endsWith from './endsWith.js';\nimport escape from './escape.js';\nimport escapeRegExp from './escapeRegExp.js';\nimport kebabCase from './kebabCase.js';\nimport lowerCase from './lowerCase.js';\nimport lowerFirst from './lowerFirst.js';\nimport pad from './pad.js';\nimport padEnd from './padEnd.js';\nimport padStart from './padStart.js';\nimport parseInt from './parseInt.js';\nimport repeat from './repeat.js';\nimport replace from './replace.js';\nimport snakeCase from './snakeCase.js';\nimport split from './split.js';\nimport startCase from './startCase.js';\nimport startsWith from './startsWith.js';\nimport template from './template.js';\nimport templateSettings from './templateSettings.js';\nimport toLower from './toLower.js';\nimport toUpper from './toUpper.js';\nimport trim from './trim.js';\nimport trimEnd from './trimEnd.js';\nimport trimStart from './trimStart.js';\nimport truncate from './truncate.js';\nimport unescape from './unescape.js';\nimport upperCase from './upperCase.js';\nimport upperFirst from './upperFirst.js';\nimport words from './words.js';\n\nexport default {\n camelCase, capitalize, deburr, endsWith, escape,\n escapeRegExp, kebabCase, lowerCase, lowerFirst, pad,\n padEnd, padStart, parseInt, repeat, replace,\n snakeCase, split, startCase, startsWith, template,\n templateSettings, toLower, toUpper, trim, trimEnd,\n trimStart, truncate, unescape, upperCase, upperFirst,\n words\n};\n","import attempt from './attempt.js';\nimport bindAll from './bindAll.js';\nimport cond from './cond.js';\nimport conforms from './conforms.js';\nimport constant from './constant.js';\nimport defaultTo from './defaultTo.js';\nimport flow from './flow.js';\nimport flowRight from './flowRight.js';\nimport identity from './identity.js';\nimport iteratee from './iteratee.js';\nimport matches from './matches.js';\nimport matchesProperty from './matchesProperty.js';\nimport method from './method.js';\nimport methodOf from './methodOf.js';\nimport mixin from './mixin.js';\nimport noop from './noop.js';\nimport nthArg from './nthArg.js';\nimport over from './over.js';\nimport overEvery from './overEvery.js';\nimport overSome from './overSome.js';\nimport property from './property.js';\nimport propertyOf from './propertyOf.js';\nimport range from './range.js';\nimport rangeRight from './rangeRight.js';\nimport stubArray from './stubArray.js';\nimport stubFalse from './stubFalse.js';\nimport stubObject from './stubObject.js';\nimport stubString from './stubString.js';\nimport stubTrue from './stubTrue.js';\nimport times from './times.js';\nimport toPath from './toPath.js';\nimport uniqueId from './uniqueId.js';\n\nexport default {\n attempt, bindAll, cond, conforms, constant,\n defaultTo, flow, flowRight, identity, iteratee,\n matches, matchesProperty, method, methodOf, mixin,\n noop, nthArg, over, overEvery, overSome,\n property, propertyOf, range, rangeRight, stubArray,\n stubFalse, stubObject, stubString, stubTrue, times,\n toPath, uniqueId\n};\n","import LazyWrapper from './_LazyWrapper.js';\nimport copyArray from './_copyArray.js';\n\n/**\n * Creates a clone of the lazy wrapper object.\n *\n * @private\n * @name clone\n * @memberOf LazyWrapper\n * @returns {Object} Returns the cloned `LazyWrapper` object.\n */\nfunction lazyClone() {\n var result = new LazyWrapper(this.__wrapped__);\n result.__actions__ = copyArray(this.__actions__);\n result.__dir__ = this.__dir__;\n result.__filtered__ = this.__filtered__;\n result.__iteratees__ = copyArray(this.__iteratees__);\n result.__takeCount__ = this.__takeCount__;\n result.__views__ = copyArray(this.__views__);\n return result;\n}\n\nexport default lazyClone;\n","import LazyWrapper from './_LazyWrapper.js';\n\n/**\n * Reverses the direction of lazy iteration.\n *\n * @private\n * @name reverse\n * @memberOf LazyWrapper\n * @returns {Object} Returns the new reversed `LazyWrapper` object.\n */\nfunction lazyReverse() {\n if (this.__filtered__) {\n var result = new LazyWrapper(this);\n result.__dir__ = -1;\n result.__filtered__ = true;\n } else {\n result = this.clone();\n result.__dir__ *= -1;\n }\n return result;\n}\n\nexport default lazyReverse;\n","/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the view, applying any `transforms` to the `start` and `end` positions.\n *\n * @private\n * @param {number} start The start of the view.\n * @param {number} end The end of the view.\n * @param {Array} transforms The transformations to apply to the view.\n * @returns {Object} Returns an object containing the `start` and `end`\n * positions of the view.\n */\nfunction getView(start, end, transforms) {\n var index = -1,\n length = transforms.length;\n\n while (++index < length) {\n var data = transforms[index],\n size = data.size;\n\n switch (data.type) {\n case 'drop': start += size; break;\n case 'dropRight': end -= size; break;\n case 'take': end = nativeMin(end, start + size); break;\n case 'takeRight': start = nativeMax(start, end - size); break;\n }\n }\n return { 'start': start, 'end': end };\n}\n\nexport default getView;\n","import baseWrapperValue from './_baseWrapperValue.js';\nimport getView from './_getView.js';\nimport isArray from './isArray.js';\n\n/** Used to indicate the type of lazy iteratees. */\nvar LAZY_FILTER_FLAG = 1,\n LAZY_MAP_FLAG = 2;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMin = Math.min;\n\n/**\n * Extracts the unwrapped value from its lazy wrapper.\n *\n * @private\n * @name value\n * @memberOf LazyWrapper\n * @returns {*} Returns the unwrapped value.\n */\nfunction lazyValue() {\n var array = this.__wrapped__.value(),\n dir = this.__dir__,\n isArr = isArray(array),\n isRight = dir < 0,\n arrLength = isArr ? array.length : 0,\n view = getView(0, arrLength, this.__views__),\n start = view.start,\n end = view.end,\n length = end - start,\n index = isRight ? end : (start - 1),\n iteratees = this.__iteratees__,\n iterLength = iteratees.length,\n resIndex = 0,\n takeCount = nativeMin(length, this.__takeCount__);\n\n if (!isArr || (!isRight && arrLength == length && takeCount == length)) {\n return baseWrapperValue(array, this.__actions__);\n }\n var result = [];\n\n outer:\n while (length-- && resIndex < takeCount) {\n index += dir;\n\n var iterIndex = -1,\n value = array[index];\n\n while (++iterIndex < iterLength) {\n var data = iteratees[iterIndex],\n iteratee = data.iteratee,\n type = data.type,\n computed = iteratee(value);\n\n if (type == LAZY_MAP_FLAG) {\n value = computed;\n } else if (!computed) {\n if (type == LAZY_FILTER_FLAG) {\n continue outer;\n } else {\n break outer;\n }\n }\n }\n result[resIndex++] = value;\n }\n return result;\n}\n\nexport default lazyValue;\n","/**\n * @license\n * Lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"es\" -o ./`\n * Copyright OpenJS Foundation and other contributors <https://openjsf.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\nimport array from './array.js';\nimport collection from './collection.js';\nimport date from './date.js';\nimport func from './function.js';\nimport lang from './lang.js';\nimport math from './math.js';\nimport number from './number.js';\nimport object from './object.js';\nimport seq from './seq.js';\nimport string from './string.js';\nimport util from './util.js';\nimport LazyWrapper from './_LazyWrapper.js';\nimport LodashWrapper from './_LodashWrapper.js';\nimport Symbol from './_Symbol.js';\nimport arrayEach from './_arrayEach.js';\nimport arrayPush from './_arrayPush.js';\nimport baseForOwn from './_baseForOwn.js';\nimport baseFunctions from './_baseFunctions.js';\nimport baseInvoke from './_baseInvoke.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseRest from './_baseRest.js';\nimport createHybrid from './_createHybrid.js';\nimport identity from './identity.js';\nimport isArray from './isArray.js';\nimport isObject from './isObject.js';\nimport keys from './keys.js';\nimport last from './last.js';\nimport lazyClone from './_lazyClone.js';\nimport lazyReverse from './_lazyReverse.js';\nimport lazyValue from './_lazyValue.js';\nimport _mixin from './mixin.js';\nimport negate from './negate.js';\nimport realNames from './_realNames.js';\nimport thru from './thru.js';\nimport toInteger from './toInteger.js';\nimport lodash from './wrapperLodash.js';\n\n/** Used as the semantic version number. */\nvar VERSION = '4.17.21';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_KEY_FLAG = 2;\n\n/** Used to indicate the type of lazy iteratees. */\nvar LAZY_FILTER_FLAG = 1,\n LAZY_WHILE_FLAG = 3;\n\n/** Used as references for the maximum length and index of an array. */\nvar MAX_ARRAY_LENGTH = 4294967295;\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar symIterator = Symbol ? Symbol.iterator : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n// wrap `_.mixin` so it works when provided only one argument\nvar mixin = (function(func) {\n return function(object, source, options) {\n if (options == null) {\n var isObj = isObject(source),\n props = isObj && keys(source),\n methodNames = props && props.length && baseFunctions(source, props);\n\n if (!(methodNames ? methodNames.length : isObj)) {\n options = source;\n source = object;\n object = this;\n }\n }\n return func(object, source, options);\n };\n}(_mixin));\n\n// Add methods that return wrapped values in chain sequences.\nlodash.after = func.after;\nlodash.ary = func.ary;\nlodash.assign = object.assign;\nlodash.assignIn = object.assignIn;\nlodash.assignInWith = object.assignInWith;\nlodash.assignWith = object.assignWith;\nlodash.at = object.at;\nlodash.before = func.before;\nlodash.bind = func.bind;\nlodash.bindAll = util.bindAll;\nlodash.bindKey = func.bindKey;\nlodash.castArray = lang.castArray;\nlodash.chain = seq.chain;\nlodash.chunk = array.chunk;\nlodash.compact = array.compact;\nlodash.concat = array.concat;\nlodash.cond = util.cond;\nlodash.conforms = util.conforms;\nlodash.constant = util.constant;\nlodash.countBy = collection.countBy;\nlodash.create = object.create;\nlodash.curry = func.curry;\nlodash.curryRight = func.curryRight;\nlodash.debounce = func.debounce;\nlodash.defaults = object.defaults;\nlodash.defaultsDeep = object.defaultsDeep;\nlodash.defer = func.defer;\nlodash.delay = func.delay;\nlodash.difference = array.difference;\nlodash.differenceBy = array.differenceBy;\nlodash.differenceWith = array.differenceWith;\nlodash.drop = array.drop;\nlodash.dropRight = array.dropRight;\nlodash.dropRightWhile = array.dropRightWhile;\nlodash.dropWhile = array.dropWhile;\nlodash.fill = array.fill;\nlodash.filter = collection.filter;\nlodash.flatMap = collection.flatMap;\nlodash.flatMapDeep = collection.flatMapDeep;\nlodash.flatMapDepth = collection.flatMapDepth;\nlodash.flatten = array.flatten;\nlodash.flattenDeep = array.flattenDeep;\nlodash.flattenDepth = array.flattenDepth;\nlodash.flip = func.flip;\nlodash.flow = util.flow;\nlodash.flowRight = util.flowRight;\nlodash.fromPairs = array.fromPairs;\nlodash.functions = object.functions;\nlodash.functionsIn = object.functionsIn;\nlodash.groupBy = collection.groupBy;\nlodash.initial = array.initial;\nlodash.intersection = array.intersection;\nlodash.intersectionBy = array.intersectionBy;\nlodash.intersectionWith = array.intersectionWith;\nlodash.invert = object.invert;\nlodash.invertBy = object.invertBy;\nlodash.invokeMap = collection.invokeMap;\nlodash.iteratee = util.iteratee;\nlodash.keyBy = collection.keyBy;\nlodash.keys = keys;\nlodash.keysIn = object.keysIn;\nlodash.map = collection.map;\nlodash.mapKeys = object.mapKeys;\nlodash.mapValues = object.mapValues;\nlodash.matches = util.matches;\nlodash.matchesProperty = util.matchesProperty;\nlodash.memoize = func.memoize;\nlodash.merge = object.merge;\nlodash.mergeWith = object.mergeWith;\nlodash.method = util.method;\nlodash.methodOf = util.methodOf;\nlodash.mixin = mixin;\nlodash.negate = negate;\nlodash.nthArg = util.nthArg;\nlodash.omit = object.omit;\nlodash.omitBy = object.omitBy;\nlodash.once = func.once;\nlodash.orderBy = collection.orderBy;\nlodash.over = util.over;\nlodash.overArgs = func.overArgs;\nlodash.overEvery = util.overEvery;\nlodash.overSome = util.overSome;\nlodash.partial = func.partial;\nlodash.partialRight = func.partialRight;\nlodash.partition = collection.partition;\nlodash.pick = object.pick;\nlodash.pickBy = object.pickBy;\nlodash.property = util.property;\nlodash.propertyOf = util.propertyOf;\nlodash.pull = array.pull;\nlodash.pullAll = array.pullAll;\nlodash.pullAllBy = array.pullAllBy;\nlodash.pullAllWith = array.pullAllWith;\nlodash.pullAt = array.pullAt;\nlodash.range = util.range;\nlodash.rangeRight = util.rangeRight;\nlodash.rearg = func.rearg;\nlodash.reject = collection.reject;\nlodash.remove = array.remove;\nlodash.rest = func.rest;\nlodash.reverse = array.reverse;\nlodash.sampleSize = collection.sampleSize;\nlodash.set = object.set;\nlodash.setWith = object.setWith;\nlodash.shuffle = collection.shuffle;\nlodash.slice = array.slice;\nlodash.sortBy = collection.sortBy;\nlodash.sortedUniq = array.sortedUniq;\nlodash.sortedUniqBy = array.sortedUniqBy;\nlodash.split = string.split;\nlodash.spread = func.spread;\nlodash.tail = array.tail;\nlodash.take = array.take;\nlodash.takeRight = array.takeRight;\nlodash.takeRightWhile = array.takeRightWhile;\nlodash.takeWhile = array.takeWhile;\nlodash.tap = seq.tap;\nlodash.throttle = func.throttle;\nlodash.thru = thru;\nlodash.toArray = lang.toArray;\nlodash.toPairs = object.toPairs;\nlodash.toPairsIn = object.toPairsIn;\nlodash.toPath = util.toPath;\nlodash.toPlainObject = lang.toPlainObject;\nlodash.transform = object.transform;\nlodash.unary = func.unary;\nlodash.union = array.union;\nlodash.unionBy = array.unionBy;\nlodash.unionWith = array.unionWith;\nlodash.uniq = array.uniq;\nlodash.uniqBy = array.uniqBy;\nlodash.uniqWith = array.uniqWith;\nlodash.unset = object.unset;\nlodash.unzip = array.unzip;\nlodash.unzipWith = array.unzipWith;\nlodash.update = object.update;\nlodash.updateWith = object.updateWith;\nlodash.values = object.values;\nlodash.valuesIn = object.valuesIn;\nlodash.without = array.without;\nlodash.words = string.words;\nlodash.wrap = func.wrap;\nlodash.xor = array.xor;\nlodash.xorBy = array.xorBy;\nlodash.xorWith = array.xorWith;\nlodash.zip = array.zip;\nlodash.zipObject = array.zipObject;\nlodash.zipObjectDeep = array.zipObjectDeep;\nlodash.zipWith = array.zipWith;\n\n// Add aliases.\nlodash.entries = object.toPairs;\nlodash.entriesIn = object.toPairsIn;\nlodash.extend = object.assignIn;\nlodash.extendWith = object.assignInWith;\n\n// Add methods to `lodash.prototype`.\nmixin(lodash, lodash);\n\n// Add methods that return unwrapped values in chain sequences.\nlodash.add = math.add;\nlodash.attempt = util.attempt;\nlodash.camelCase = string.camelCase;\nlodash.capitalize = string.capitalize;\nlodash.ceil = math.ceil;\nlodash.clamp = number.clamp;\nlodash.clone = lang.clone;\nlodash.cloneDeep = lang.cloneDeep;\nlodash.cloneDeepWith = lang.cloneDeepWith;\nlodash.cloneWith = lang.cloneWith;\nlodash.conformsTo = lang.conformsTo;\nlodash.deburr = string.deburr;\nlodash.defaultTo = util.defaultTo;\nlodash.divide = math.divide;\nlodash.endsWith = string.endsWith;\nlodash.eq = lang.eq;\nlodash.escape = string.escape;\nlodash.escapeRegExp = string.escapeRegExp;\nlodash.every = collection.every;\nlodash.find = collection.find;\nlodash.findIndex = array.findIndex;\nlodash.findKey = object.findKey;\nlodash.findLast = collection.findLast;\nlodash.findLastIndex = array.findLastIndex;\nlodash.findLastKey = object.findLastKey;\nlodash.floor = math.floor;\nlodash.forEach = collection.forEach;\nlodash.forEachRight = collection.forEachRight;\nlodash.forIn = object.forIn;\nlodash.forInRight = object.forInRight;\nlodash.forOwn = object.forOwn;\nlodash.forOwnRight = object.forOwnRight;\nlodash.get = object.get;\nlodash.gt = lang.gt;\nlodash.gte = lang.gte;\nlodash.has = object.has;\nlodash.hasIn = object.hasIn;\nlodash.head = array.head;\nlodash.identity = identity;\nlodash.includes = collection.includes;\nlodash.indexOf = array.indexOf;\nlodash.inRange = number.inRange;\nlodash.invoke = object.invoke;\nlodash.isArguments = lang.isArguments;\nlodash.isArray = isArray;\nlodash.isArrayBuffer = lang.isArrayBuffer;\nlodash.isArrayLike = lang.isArrayLike;\nlodash.isArrayLikeObject = lang.isArrayLikeObject;\nlodash.isBoolean = lang.isBoolean;\nlodash.isBuffer = lang.isBuffer;\nlodash.isDate = lang.isDate;\nlodash.isElement = lang.isElement;\nlodash.isEmpty = lang.isEmpty;\nlodash.isEqual = lang.isEqual;\nlodash.isEqualWith = lang.isEqualWith;\nlodash.isError = lang.isError;\nlodash.isFinite = lang.isFinite;\nlodash.isFunction = lang.isFunction;\nlodash.isInteger = lang.isInteger;\nlodash.isLength = lang.isLength;\nlodash.isMap = lang.isMap;\nlodash.isMatch = lang.isMatch;\nlodash.isMatchWith = lang.isMatchWith;\nlodash.isNaN = lang.isNaN;\nlodash.isNative = lang.isNative;\nlodash.isNil = lang.isNil;\nlodash.isNull = lang.isNull;\nlodash.isNumber = lang.isNumber;\nlodash.isObject = isObject;\nlodash.isObjectLike = lang.isObjectLike;\nlodash.isPlainObject = lang.isPlainObject;\nlodash.isRegExp = lang.isRegExp;\nlodash.isSafeInteger = lang.isSafeInteger;\nlodash.isSet = lang.isSet;\nlodash.isString = lang.isString;\nlodash.isSymbol = lang.isSymbol;\nlodash.isTypedArray = lang.isTypedArray;\nlodash.isUndefined = lang.isUndefined;\nlodash.isWeakMap = lang.isWeakMap;\nlodash.isWeakSet = lang.isWeakSet;\nlodash.join = array.join;\nlodash.kebabCase = string.kebabCase;\nlodash.last = last;\nlodash.lastIndexOf = array.lastIndexOf;\nlodash.lowerCase = string.lowerCase;\nlodash.lowerFirst = string.lowerFirst;\nlodash.lt = lang.lt;\nlodash.lte = lang.lte;\nlodash.max = math.max;\nlodash.maxBy = math.maxBy;\nlodash.mean = math.mean;\nlodash.meanBy = math.meanBy;\nlodash.min = math.min;\nlodash.minBy = math.minBy;\nlodash.stubArray = util.stubArray;\nlodash.stubFalse = util.stubFalse;\nlodash.stubObject = util.stubObject;\nlodash.stubString = util.stubString;\nlodash.stubTrue = util.stubTrue;\nlodash.multiply = math.multiply;\nlodash.nth = array.nth;\nlodash.noop = util.noop;\nlodash.now = date.now;\nlodash.pad = string.pad;\nlodash.padEnd = string.padEnd;\nlodash.padStart = string.padStart;\nlodash.parseInt = string.parseInt;\nlodash.random = number.random;\nlodash.reduce = collection.reduce;\nlodash.reduceRight = collection.reduceRight;\nlodash.repeat = string.repeat;\nlodash.replace = string.replace;\nlodash.result = object.result;\nlodash.round = math.round;\nlodash.sample = collection.sample;\nlodash.size = collection.size;\nlodash.snakeCase = string.snakeCase;\nlodash.some = collection.some;\nlodash.sortedIndex = array.sortedIndex;\nlodash.sortedIndexBy = array.sortedIndexBy;\nlodash.sortedIndexOf = array.sortedIndexOf;\nlodash.sortedLastIndex = array.sortedLastIndex;\nlodash.sortedLastIndexBy = array.sortedLastIndexBy;\nlodash.sortedLastIndexOf = array.sortedLastIndexOf;\nlodash.startCase = string.startCase;\nlodash.startsWith = string.startsWith;\nlodash.subtract = math.subtract;\nlodash.sum = math.sum;\nlodash.sumBy = math.sumBy;\nlodash.template = string.template;\nlodash.times = util.times;\nlodash.toFinite = lang.toFinite;\nlodash.toInteger = toInteger;\nlodash.toLength = lang.toLength;\nlodash.toLower = string.toLower;\nlodash.toNumber = lang.toNumber;\nlodash.toSafeInteger = lang.toSafeInteger;\nlodash.toString = lang.toString;\nlodash.toUpper = string.toUpper;\nlodash.trim = string.trim;\nlodash.trimEnd = string.trimEnd;\nlodash.trimStart = string.trimStart;\nlodash.truncate = string.truncate;\nlodash.unescape = string.unescape;\nlodash.uniqueId = util.uniqueId;\nlodash.upperCase = string.upperCase;\nlodash.upperFirst = string.upperFirst;\n\n// Add aliases.\nlodash.each = collection.forEach;\nlodash.eachRight = collection.forEachRight;\nlodash.first = array.head;\n\nmixin(lodash, (function() {\n var source = {};\n baseForOwn(lodash, function(func, methodName) {\n if (!hasOwnProperty.call(lodash.prototype, methodName)) {\n source[methodName] = func;\n }\n });\n return source;\n}()), { 'chain': false });\n\n/**\n * The semantic version number.\n *\n * @static\n * @memberOf _\n * @type {string}\n */\nlodash.VERSION = VERSION;\n(lodash.templateSettings = string.templateSettings).imports._ = lodash;\n\n// Assign default placeholders.\narrayEach(['bind', 'bindKey', 'curry', 'curryRight', 'partial', 'partialRight'], function(methodName) {\n lodash[methodName].placeholder = lodash;\n});\n\n// Add `LazyWrapper` methods for `_.drop` and `_.take` variants.\narrayEach(['drop', 'take'], function(methodName, index) {\n LazyWrapper.prototype[methodName] = function(n) {\n n = n === undefined ? 1 : nativeMax(toInteger(n), 0);\n\n var result = (this.__filtered__ && !index)\n ? new LazyWrapper(this)\n : this.clone();\n\n if (result.__filtered__) {\n result.__takeCount__ = nativeMin(n, result.__takeCount__);\n } else {\n result.__views__.push({\n 'size': nativeMin(n, MAX_ARRAY_LENGTH),\n 'type': methodName + (result.__dir__ < 0 ? 'Right' : '')\n });\n }\n return result;\n };\n\n LazyWrapper.prototype[methodName + 'Right'] = function(n) {\n return this.reverse()[methodName](n).reverse();\n };\n});\n\n// Add `LazyWrapper` methods that accept an `iteratee` value.\narrayEach(['filter', 'map', 'takeWhile'], function(methodName, index) {\n var type = index + 1,\n isFilter = type == LAZY_FILTER_FLAG || type == LAZY_WHILE_FLAG;\n\n LazyWrapper.prototype[methodName] = function(iteratee) {\n var result = this.clone();\n result.__iteratees__.push({\n 'iteratee': baseIteratee(iteratee, 3),\n 'type': type\n });\n result.__filtered__ = result.__filtered__ || isFilter;\n return result;\n };\n});\n\n// Add `LazyWrapper` methods for `_.head` and `_.last`.\narrayEach(['head', 'last'], function(methodName, index) {\n var takeName = 'take' + (index ? 'Right' : '');\n\n LazyWrapper.prototype[methodName] = function() {\n return this[takeName](1).value()[0];\n };\n});\n\n// Add `LazyWrapper` methods for `_.initial` and `_.tail`.\narrayEach(['initial', 'tail'], function(methodName, index) {\n var dropName = 'drop' + (index ? '' : 'Right');\n\n LazyWrapper.prototype[methodName] = function() {\n return this.__filtered__ ? new LazyWrapper(this) : this[dropName](1);\n };\n});\n\nLazyWrapper.prototype.compact = function() {\n return this.filter(identity);\n};\n\nLazyWrapper.prototype.find = function(predicate) {\n return this.filter(predicate).head();\n};\n\nLazyWrapper.prototype.findLast = function(predicate) {\n return this.reverse().find(predicate);\n};\n\nLazyWrapper.prototype.invokeMap = baseRest(function(path, args) {\n if (typeof path == 'function') {\n return new LazyWrapper(this);\n }\n return this.map(function(value) {\n return baseInvoke(value, path, args);\n });\n});\n\nLazyWrapper.prototype.reject = function(predicate) {\n return this.filter(negate(baseIteratee(predicate)));\n};\n\nLazyWrapper.prototype.slice = function(start, end) {\n start = toInteger(start);\n\n var result = this;\n if (result.__filtered__ && (start > 0 || end < 0)) {\n return new LazyWrapper(result);\n }\n if (start < 0) {\n result = result.takeRight(-start);\n } else if (start) {\n result = result.drop(start);\n }\n if (end !== undefined) {\n end = toInteger(end);\n result = end < 0 ? result.dropRight(-end) : result.take(end - start);\n }\n return result;\n};\n\nLazyWrapper.prototype.takeRightWhile = function(predicate) {\n return this.reverse().takeWhile(predicate).reverse();\n};\n\nLazyWrapper.prototype.toArray = function() {\n return this.take(MAX_ARRAY_LENGTH);\n};\n\n// Add `LazyWrapper` methods to `lodash.prototype`.\nbaseForOwn(LazyWrapper.prototype, function(func, methodName) {\n var checkIteratee = /^(?:filter|find|map|reject)|While$/.test(methodName),\n isTaker = /^(?:head|last)$/.test(methodName),\n lodashFunc = lodash[isTaker ? ('take' + (methodName == 'last' ? 'Right' : '')) : methodName],\n retUnwrapped = isTaker || /^find/.test(methodName);\n\n if (!lodashFunc) {\n return;\n }\n lodash.prototype[methodName] = function() {\n var value = this.__wrapped__,\n args = isTaker ? [1] : arguments,\n isLazy = value instanceof LazyWrapper,\n iteratee = args[0],\n useLazy = isLazy || isArray(value);\n\n var interceptor = function(value) {\n var result = lodashFunc.apply(lodash, arrayPush([value], args));\n return (isTaker && chainAll) ? result[0] : result;\n };\n\n if (useLazy && checkIteratee && typeof iteratee == 'function' && iteratee.length != 1) {\n // Avoid lazy use if the iteratee has a \"length\" value other than `1`.\n isLazy = useLazy = false;\n }\n var chainAll = this.__chain__,\n isHybrid = !!this.__actions__.length,\n isUnwrapped = retUnwrapped && !chainAll,\n onlyLazy = isLazy && !isHybrid;\n\n if (!retUnwrapped && useLazy) {\n value = onlyLazy ? value : new LazyWrapper(this);\n var result = func.apply(value, args);\n result.__actions__.push({ 'func': thru, 'args': [interceptor], 'thisArg': undefined });\n return new LodashWrapper(result, chainAll);\n }\n if (isUnwrapped && onlyLazy) {\n return func.apply(this, args);\n }\n result = this.thru(interceptor);\n return isUnwrapped ? (isTaker ? result.value()[0] : result.value()) : result;\n };\n});\n\n// Add `Array` methods to `lodash.prototype`.\narrayEach(['pop', 'push', 'shift', 'sort', 'splice', 'unshift'], function(methodName) {\n var func = arrayProto[methodName],\n chainName = /^(?:push|sort|unshift)$/.test(methodName) ? 'tap' : 'thru',\n retUnwrapped = /^(?:pop|shift)$/.test(methodName);\n\n lodash.prototype[methodName] = function() {\n var args = arguments;\n if (retUnwrapped && !this.__chain__) {\n var value = this.value();\n return func.apply(isArray(value) ? value : [], args);\n }\n return this[chainName](function(value) {\n return func.apply(isArray(value) ? value : [], args);\n });\n };\n});\n\n// Map minified method names to their real names.\nbaseForOwn(LazyWrapper.prototype, function(func, methodName) {\n var lodashFunc = lodash[methodName];\n if (lodashFunc) {\n var key = lodashFunc.name + '';\n if (!hasOwnProperty.call(realNames, key)) {\n realNames[key] = [];\n }\n realNames[key].push({ 'name': methodName, 'func': lodashFunc });\n }\n});\n\nrealNames[createHybrid(undefined, WRAP_BIND_KEY_FLAG).name] = [{\n 'name': 'wrapper',\n 'func': undefined\n}];\n\n// Add methods to `LazyWrapper`.\nLazyWrapper.prototype.clone = lazyClone;\nLazyWrapper.prototype.reverse = lazyReverse;\nLazyWrapper.prototype.value = lazyValue;\n\n// Add chain sequence methods to the `lodash` wrapper.\nlodash.prototype.at = seq.at;\nlodash.prototype.chain = seq.wrapperChain;\nlodash.prototype.commit = seq.commit;\nlodash.prototype.next = seq.next;\nlodash.prototype.plant = seq.plant;\nlodash.prototype.reverse = seq.reverse;\nlodash.prototype.toJSON = lodash.prototype.valueOf = lodash.prototype.value = seq.value;\n\n// Add lazy aliases.\nlodash.prototype.first = lodash.prototype.head;\n\nif (symIterator) {\n lodash.prototype[symIterator] = seq.toIterator;\n}\n\nexport default lodash;\n","!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}));","const isH5 = typeof alert === \"function\";\nconst updateStorage = (strategy, store, options) => {\n const storage = strategy.storage;\n const storeKey = strategy.key || store.$id;\n const isCustomStorage = isH5 || (options == null ? void 0 : options.enforceCustomStorage);\n if (strategy.paths) {\n const partialState = strategy.paths.reduce((finalObj, key) => {\n finalObj[key] = store.$state[key];\n return finalObj;\n }, {});\n if (isCustomStorage && storage) {\n storage.setItem(storeKey, JSON.stringify(partialState));\n } else {\n uni.setStorage({ key: storeKey, data: JSON.stringify(partialState) });\n }\n } else if (isCustomStorage && storage) {\n storage.setItem(storeKey, JSON.stringify(store.$state));\n } else {\n uni.setStorage({ key: storeKey, data: JSON.stringify(store.$state) });\n }\n};\nvar index = ({ options, store }) => {\n var _a, _b, _c, _d, _e, _f;\n if ((_a = options.persist) == null ? void 0 : _a.enabled) {\n const defaultStrat = [\n {\n key: store.$id,\n storage: ((_b = options.persist) == null ? void 0 : _b.H5Storage) || (window == null ? void 0 : window.sessionStorage)\n }\n ];\n const strategies = ((_d = (_c = options.persist) == null ? void 0 : _c.strategies) == null ? void 0 : _d.length) ? (_e = options.persist) == null ? void 0 : _e.strategies : defaultStrat;\n strategies.forEach((strategy) => {\n var _a2, _b2;\n const storage = strategy.storage || ((_a2 = options.persist) == null ? void 0 : _a2.H5Storage) || (window == null ? void 0 : window.sessionStorage);\n const storeKey = strategy.key || store.$id;\n let storageResult;\n if (isH5 || ((_b2 = options.persist) == null ? void 0 : _b2.enforceCustomStorage)) {\n storageResult = storage.getItem(storeKey);\n } else {\n storageResult = uni.getStorageSync(storeKey);\n }\n if (storageResult) {\n store.$patch(JSON.parse(storageResult));\n updateStorage(strategy, store, options.persist);\n }\n });\n store.$subscribe(() => {\n strategies.forEach((strategy) => {\n updateStorage(strategy, store, options.persist);\n });\n }, { detached: ((_f = options.persist) == null ? void 0 : _f.detached) ? true : false });\n }\n};\nexport { index as default };\n","!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(t,s){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=s():\"function\"==typeof define&&define.amd?define(s):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_duration=s()}(this,(function(){\"use strict\";var t,s,n=1e3,i=6e4,e=36e5,r=864e5,o=/\\[([^\\]]+)]|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,u=31536e6,d=2628e6,a=/^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/,h={years:u,months:d,days:r,hours:e,minutes:i,seconds:n,milliseconds:1,weeks:6048e5},c=function(t){return t instanceof g},f=function(t,s,n){return new g(t,n,s.$l)},m=function(t){return s.p(t)+\"s\"},l=function(t){return t<0},$=function(t){return l(t)?Math.ceil(t):Math.floor(t)},y=function(t){return Math.abs(t)},v=function(t,s){return t?l(t)?{negative:!0,format:\"\"+y(t)+s}:{negative:!1,format:\"\"+t+s}:{negative:!1,format:\"\"}},g=function(){function l(t,s,n){var i=this;if(this.$d={},this.$l=n,void 0===t&&(this.$ms=0,this.parseFromMilliseconds()),s)return f(t*h[m(s)],this);if(\"number\"==typeof t)return this.$ms=t,this.parseFromMilliseconds(),this;if(\"object\"==typeof t)return Object.keys(t).forEach((function(s){i.$d[m(s)]=t[s]})),this.calMilliseconds(),this;if(\"string\"==typeof t){var e=t.match(a);if(e){var r=e.slice(2).map((function(t){return null!=t?Number(t):0}));return this.$d.years=r[0],this.$d.months=r[1],this.$d.weeks=r[2],this.$d.days=r[3],this.$d.hours=r[4],this.$d.minutes=r[5],this.$d.seconds=r[6],this.calMilliseconds(),this}}return this}var y=l.prototype;return y.calMilliseconds=function(){var t=this;this.$ms=Object.keys(this.$d).reduce((function(s,n){return s+(t.$d[n]||0)*h[n]}),0)},y.parseFromMilliseconds=function(){var t=this.$ms;this.$d.years=$(t/u),t%=u,this.$d.months=$(t/d),t%=d,this.$d.days=$(t/r),t%=r,this.$d.hours=$(t/e),t%=e,this.$d.minutes=$(t/i),t%=i,this.$d.seconds=$(t/n),t%=n,this.$d.milliseconds=t},y.toISOString=function(){var t=v(this.$d.years,\"Y\"),s=v(this.$d.months,\"M\"),n=+this.$d.days||0;this.$d.weeks&&(n+=7*this.$d.weeks);var i=v(n,\"D\"),e=v(this.$d.hours,\"H\"),r=v(this.$d.minutes,\"M\"),o=this.$d.seconds||0;this.$d.milliseconds&&(o+=this.$d.milliseconds/1e3,o=Math.round(1e3*o)/1e3);var u=v(o,\"S\"),d=t.negative||s.negative||i.negative||e.negative||r.negative||u.negative,a=e.format||r.format||u.format?\"T\":\"\",h=(d?\"-\":\"\")+\"P\"+t.format+s.format+i.format+a+e.format+r.format+u.format;return\"P\"===h||\"-P\"===h?\"P0D\":h},y.toJSON=function(){return this.toISOString()},y.format=function(t){var n=t||\"YYYY-MM-DDTHH:mm:ss\",i={Y:this.$d.years,YY:s.s(this.$d.years,2,\"0\"),YYYY:s.s(this.$d.years,4,\"0\"),M:this.$d.months,MM:s.s(this.$d.months,2,\"0\"),D:this.$d.days,DD:s.s(this.$d.days,2,\"0\"),H:this.$d.hours,HH:s.s(this.$d.hours,2,\"0\"),m:this.$d.minutes,mm:s.s(this.$d.minutes,2,\"0\"),s:this.$d.seconds,ss:s.s(this.$d.seconds,2,\"0\"),SSS:s.s(this.$d.milliseconds,3,\"0\")};return n.replace(o,(function(t,s){return s||String(i[t])}))},y.as=function(t){return this.$ms/h[m(t)]},y.get=function(t){var s=this.$ms,n=m(t);return\"milliseconds\"===n?s%=1e3:s=\"weeks\"===n?$(s/h[n]):this.$d[n],s||0},y.add=function(t,s,n){var i;return i=s?t*h[m(s)]:c(t)?t.$ms:f(t,this).$ms,f(this.$ms+i*(n?-1:1),this)},y.subtract=function(t,s){return this.add(t,s,!0)},y.locale=function(t){var s=this.clone();return s.$l=t,s},y.clone=function(){return f(this.$ms,this)},y.humanize=function(s){return t().add(this.$ms,\"ms\").locale(this.$l).fromNow(!s)},y.valueOf=function(){return this.asMilliseconds()},y.milliseconds=function(){return this.get(\"milliseconds\")},y.asMilliseconds=function(){return this.as(\"milliseconds\")},y.seconds=function(){return this.get(\"seconds\")},y.asSeconds=function(){return this.as(\"seconds\")},y.minutes=function(){return this.get(\"minutes\")},y.asMinutes=function(){return this.as(\"minutes\")},y.hours=function(){return this.get(\"hours\")},y.asHours=function(){return this.as(\"hours\")},y.days=function(){return this.get(\"days\")},y.asDays=function(){return this.as(\"days\")},y.weeks=function(){return this.get(\"weeks\")},y.asWeeks=function(){return this.as(\"weeks\")},y.months=function(){return this.get(\"months\")},y.asMonths=function(){return this.as(\"months\")},y.years=function(){return this.get(\"years\")},y.asYears=function(){return this.as(\"years\")},l}(),p=function(t,s,n){return t.add(s.years()*n,\"y\").add(s.months()*n,\"M\").add(s.days()*n,\"d\").add(s.hours()*n,\"h\").add(s.minutes()*n,\"m\").add(s.seconds()*n,\"s\").add(s.milliseconds()*n,\"ms\")};return function(n,i,e){t=e,s=e().$utils(),e.duration=function(t,s){var n=e.locale();return f(t,{$l:n},s)},e.isDuration=c;var r=i.prototype.add,o=i.prototype.subtract;i.prototype.add=function(t,s){return c(t)?p(this,t,1):r.bind(this)(t,s)},i.prototype.subtract=function(t,s){return c(t)?p(this,t,-1):o.bind(this)(t,s)}}}));","!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}));","// src/normalize.ts\nfunction isObject(v) {\n return typeof v === \"object\" && v !== null;\n}\nfunction normalizeOptions(options, factoryOptions) {\n options = isObject(options) ? options : /* @__PURE__ */ Object.create(null);\n return new Proxy(options, {\n get(target, key, receiver) {\n if (key === \"key\")\n return Reflect.get(target, key, receiver);\n return Reflect.get(target, key, receiver) || Reflect.get(factoryOptions, key, receiver);\n }\n });\n}\n\n// src/pick.ts\nfunction get(state, path) {\n return path.reduce((obj, p) => {\n return obj == null ? void 0 : obj[p];\n }, state);\n}\nfunction set(state, path, val) {\n return path.slice(0, -1).reduce((obj, p) => {\n if (/^(__proto__)$/.test(p))\n return {};\n else\n return obj[p] = obj[p] || {};\n }, state)[path[path.length - 1]] = val, state;\n}\nfunction pick(baseState, paths) {\n return paths.reduce((substate, path) => {\n const pathArray = path.split(\".\");\n return set(substate, pathArray, get(baseState, pathArray));\n }, {});\n}\n\n// src/plugin.ts\nfunction parsePersistence(factoryOptions, store) {\n return (o) => {\n var _a;\n try {\n const {\n storage = localStorage,\n beforeRestore = void 0,\n afterRestore = void 0,\n serializer = {\n serialize: JSON.stringify,\n deserialize: JSON.parse\n },\n key = store.$id,\n paths = null,\n debug = false\n } = o;\n return {\n storage,\n beforeRestore,\n afterRestore,\n serializer,\n key: ((_a = factoryOptions.key) != null ? _a : (k) => k)(typeof key == \"string\" ? key : key(store.$id)),\n paths,\n debug\n };\n } catch (e) {\n if (o.debug)\n console.error(\"[pinia-plugin-persistedstate]\", e);\n return null;\n }\n };\n}\nfunction hydrateStore(store, { storage, serializer, key, debug }) {\n try {\n const fromStorage = storage == null ? void 0 : storage.getItem(key);\n if (fromStorage)\n store.$patch(serializer == null ? void 0 : serializer.deserialize(fromStorage));\n } catch (e) {\n if (debug)\n console.error(\"[pinia-plugin-persistedstate]\", e);\n }\n}\nfunction persistState(state, { storage, serializer, key, paths, debug }) {\n try {\n const toStore = Array.isArray(paths) ? pick(state, paths) : state;\n storage.setItem(key, serializer.serialize(toStore));\n } catch (e) {\n if (debug)\n console.error(\"[pinia-plugin-persistedstate]\", e);\n }\n}\nfunction createPersistedState(factoryOptions = {}) {\n return (context) => {\n const { auto = false } = factoryOptions;\n const {\n options: { persist = auto },\n store,\n pinia\n } = context;\n if (!persist)\n return;\n if (!(store.$id in pinia.state.value)) {\n const original_store = pinia._s.get(store.$id.replace(\"__hot:\", \"\"));\n if (original_store)\n Promise.resolve().then(() => original_store.$persist());\n return;\n }\n const persistences = (Array.isArray(persist) ? persist.map((p) => normalizeOptions(p, factoryOptions)) : [normalizeOptions(persist, factoryOptions)]).map(parsePersistence(factoryOptions, store)).filter(Boolean);\n store.$persist = () => {\n persistences.forEach((persistence) => {\n persistState(store.$state, persistence);\n });\n };\n store.$hydrate = ({ runHooks = true } = {}) => {\n persistences.forEach((persistence) => {\n const { beforeRestore, afterRestore } = persistence;\n if (runHooks)\n beforeRestore == null ? void 0 : beforeRestore(context);\n hydrateStore(store, persistence);\n if (runHooks)\n afterRestore == null ? void 0 : afterRestore(context);\n });\n };\n persistences.forEach((persistence) => {\n const { beforeRestore, afterRestore } = persistence;\n beforeRestore == null ? void 0 : beforeRestore(context);\n hydrateStore(store, persistence);\n afterRestore == null ? void 0 : afterRestore(context);\n store.$subscribe(\n (_mutation, state) => {\n persistState(state, persistence);\n },\n {\n detached: true\n }\n );\n });\n };\n}\n\n// src/index.ts\nvar src_default = createPersistedState();\nexport {\n createPersistedState,\n src_default as default\n};\n","/*!\n * @intlify/shared v9.1.9\n * (c) 2021 kazuya kawaguchi\n * Released under the MIT License.\n */\n/**\r\n * Original Utilities\r\n * written by kazuya kawaguchi\r\n */\r\nconst inBrowser = typeof window !== 'undefined';\r\nlet mark;\r\nlet measure;\r\nif ((process.env.NODE_ENV !== 'production')) {\r\n const perf = inBrowser && window.performance;\r\n if (perf &&\r\n perf.mark &&\r\n perf.measure &&\r\n perf.clearMarks &&\r\n perf.clearMeasures) {\r\n mark = (tag) => perf.mark(tag);\r\n measure = (name, startTag, endTag) => {\r\n perf.measure(name, startTag, endTag);\r\n perf.clearMarks(startTag);\r\n perf.clearMarks(endTag);\r\n };\r\n }\r\n}\r\nconst RE_ARGS = /\\{([0-9a-zA-Z]+)\\}/g;\r\n/* eslint-disable */\r\nfunction format(message, ...args) {\r\n if (args.length === 1 && isObject(args[0])) {\r\n args = args[0];\r\n }\r\n if (!args || !args.hasOwnProperty) {\r\n args = {};\r\n }\r\n return message.replace(RE_ARGS, (match, identifier) => {\r\n return args.hasOwnProperty(identifier) ? args[identifier] : '';\r\n });\r\n}\r\nconst hasSymbol = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';\r\nconst makeSymbol = (name) => hasSymbol ? Symbol(name) : name;\r\nconst generateFormatCacheKey = (locale, key, source) => friendlyJSONstringify({ l: locale, k: key, s: source });\r\nconst friendlyJSONstringify = (json) => JSON.stringify(json)\r\n .replace(/\\u2028/g, '\\\\u2028')\r\n .replace(/\\u2029/g, '\\\\u2029')\r\n .replace(/\\u0027/g, '\\\\u0027');\r\nconst isNumber = (val) => typeof val === 'number' && isFinite(val);\r\nconst isDate = (val) => toTypeString(val) === '[object Date]';\r\nconst isRegExp = (val) => toTypeString(val) === '[object RegExp]';\r\nconst isEmptyObject = (val) => isPlainObject(val) && Object.keys(val).length === 0;\r\nfunction warn(msg, err) {\r\n if (typeof console !== 'undefined') {\r\n console.warn(`[intlify] ` + msg);\r\n /* istanbul ignore if */\r\n if (err) {\r\n console.warn(err.stack);\r\n }\r\n }\r\n}\r\nconst assign = Object.assign;\r\nlet _globalThis;\r\nconst getGlobalThis = () => {\r\n // prettier-ignore\r\n return (_globalThis ||\r\n (_globalThis =\r\n typeof globalThis !== 'undefined'\r\n ? globalThis\r\n : typeof self !== 'undefined'\r\n ? self\r\n : typeof window !== 'undefined'\r\n ? window\r\n : typeof global !== 'undefined'\r\n ? global\r\n : {}));\r\n};\r\nfunction escapeHtml(rawText) {\r\n return rawText\r\n .replace(/</g, '&lt;')\r\n .replace(/>/g, '&gt;')\r\n .replace(/\"/g, '&quot;')\r\n .replace(/'/g, '&apos;');\r\n}\r\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\r\nfunction hasOwn(obj, key) {\r\n return hasOwnProperty.call(obj, key);\r\n}\r\n/* eslint-enable */\r\n/**\r\n * Useful Utilities By Evan you\r\n * Modified by kazuya kawaguchi\r\n * MIT License\r\n * https://github.com/vuejs/vue-next/blob/master/packages/shared/src/index.ts\r\n * https://github.com/vuejs/vue-next/blob/master/packages/shared/src/codeframe.ts\r\n */\r\nconst isArray = Array.isArray;\r\nconst isFunction = (val) => typeof val === 'function';\r\nconst isString = (val) => typeof val === 'string';\r\nconst isBoolean = (val) => typeof val === 'boolean';\r\nconst isSymbol = (val) => typeof val === 'symbol';\r\nconst isObject = (val) => // eslint-disable-line\r\n val !== null && typeof val === 'object';\r\nconst isPromise = (val) => {\r\n return isObject(val) && isFunction(val.then) && isFunction(val.catch);\r\n};\r\nconst objectToString = Object.prototype.toString;\r\nconst toTypeString = (value) => objectToString.call(value);\r\nconst isPlainObject = (val) => toTypeString(val) === '[object Object]';\r\n// for converting list and named values to displayed strings.\r\nconst toDisplayString = (val) => {\r\n return val == null\r\n ? ''\r\n : isArray(val) || (isPlainObject(val) && val.toString === objectToString)\r\n ? JSON.stringify(val, null, 2)\r\n : String(val);\r\n};\r\nconst RANGE = 2;\r\nfunction generateCodeFrame(source, start = 0, end = source.length) {\r\n const lines = source.split(/\\r?\\n/);\r\n let count = 0;\r\n const res = [];\r\n for (let i = 0; i < lines.length; i++) {\r\n count += lines[i].length + 1;\r\n if (count >= start) {\r\n for (let j = i - RANGE; j <= i + RANGE || end > count; j++) {\r\n if (j < 0 || j >= lines.length)\r\n continue;\r\n const line = j + 1;\r\n res.push(`${line}${' '.repeat(3 - String(line).length)}| ${lines[j]}`);\r\n const lineLength = lines[j].length;\r\n if (j === i) {\r\n // push underline\r\n const pad = start - (count - lineLength) + 1;\r\n const length = Math.max(1, end > count ? lineLength - pad : end - start);\r\n res.push(` | ` + ' '.repeat(pad) + '^'.repeat(length));\r\n }\r\n else if (j > i) {\r\n if (end > count) {\r\n const length = Math.max(Math.min(end - count, lineLength), 1);\r\n res.push(` | ` + '^'.repeat(length));\r\n }\r\n count += lineLength + 1;\r\n }\r\n }\r\n break;\r\n }\r\n }\r\n return res.join('\\n');\r\n}\n\n/**\r\n * Event emitter, forked from the below:\r\n * - original repository url: https://github.com/developit/mitt\r\n * - code url: https://github.com/developit/mitt/blob/master/src/index.ts\r\n * - author: Jason Miller (https://github.com/developit)\r\n * - license: MIT\r\n */\r\n/**\r\n * Create a event emitter\r\n *\r\n * @returns An event emitter\r\n */\r\nfunction createEmitter() {\r\n const events = new Map();\r\n const emitter = {\r\n events,\r\n on(event, handler) {\r\n const handlers = events.get(event);\r\n const added = handlers && handlers.push(handler);\r\n if (!added) {\r\n events.set(event, [handler]);\r\n }\r\n },\r\n off(event, handler) {\r\n const handlers = events.get(event);\r\n if (handlers) {\r\n handlers.splice(handlers.indexOf(handler) >>> 0, 1);\r\n }\r\n },\r\n emit(event, payload) {\r\n (events.get(event) || [])\r\n .slice()\r\n .map(handler => handler(payload));\r\n (events.get('*') || [])\r\n .slice()\r\n .map(handler => handler(event, payload));\r\n }\r\n };\r\n return emitter;\r\n}\n\nexport { assign, createEmitter, escapeHtml, format, friendlyJSONstringify, generateCodeFrame, generateFormatCacheKey, getGlobalThis, hasOwn, inBrowser, isArray, isBoolean, isDate, isEmptyObject, isFunction, isNumber, isObject, isPlainObject, isPromise, isRegExp, isString, isSymbol, makeSymbol, mark, measure, objectToString, toDisplayString, toTypeString, warn };\n","/*!\n * @intlify/message-resolver v9.1.9\n * (c) 2021 kazuya kawaguchi\n * Released under the MIT License.\n */\n/**\r\n * Original Utilities\r\n * written by kazuya kawaguchi\r\n */\r\nif ((process.env.NODE_ENV !== 'production')) ;\r\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\r\nfunction hasOwn(obj, key) {\r\n return hasOwnProperty.call(obj, key);\r\n}\r\nconst isObject = (val) => // eslint-disable-line\r\n val !== null && typeof val === 'object';\n\nconst pathStateMachine = [];\r\npathStateMachine[0 /* BEFORE_PATH */] = {\r\n [\"w\" /* WORKSPACE */]: [0 /* BEFORE_PATH */],\r\n [\"i\" /* IDENT */]: [3 /* IN_IDENT */, 0 /* APPEND */],\r\n [\"[\" /* LEFT_BRACKET */]: [4 /* IN_SUB_PATH */],\r\n [\"o\" /* END_OF_FAIL */]: [7 /* AFTER_PATH */]\r\n};\r\npathStateMachine[1 /* IN_PATH */] = {\r\n [\"w\" /* WORKSPACE */]: [1 /* IN_PATH */],\r\n [\".\" /* DOT */]: [2 /* BEFORE_IDENT */],\r\n [\"[\" /* LEFT_BRACKET */]: [4 /* IN_SUB_PATH */],\r\n [\"o\" /* END_OF_FAIL */]: [7 /* AFTER_PATH */]\r\n};\r\npathStateMachine[2 /* BEFORE_IDENT */] = {\r\n [\"w\" /* WORKSPACE */]: [2 /* BEFORE_IDENT */],\r\n [\"i\" /* IDENT */]: [3 /* IN_IDENT */, 0 /* APPEND */],\r\n [\"0\" /* ZERO */]: [3 /* IN_IDENT */, 0 /* APPEND */]\r\n};\r\npathStateMachine[3 /* IN_IDENT */] = {\r\n [\"i\" /* IDENT */]: [3 /* IN_IDENT */, 0 /* APPEND */],\r\n [\"0\" /* ZERO */]: [3 /* IN_IDENT */, 0 /* APPEND */],\r\n [\"w\" /* WORKSPACE */]: [1 /* IN_PATH */, 1 /* PUSH */],\r\n [\".\" /* DOT */]: [2 /* BEFORE_IDENT */, 1 /* PUSH */],\r\n [\"[\" /* LEFT_BRACKET */]: [4 /* IN_SUB_PATH */, 1 /* PUSH */],\r\n [\"o\" /* END_OF_FAIL */]: [7 /* AFTER_PATH */, 1 /* PUSH */]\r\n};\r\npathStateMachine[4 /* IN_SUB_PATH */] = {\r\n [\"'\" /* SINGLE_QUOTE */]: [5 /* IN_SINGLE_QUOTE */, 0 /* APPEND */],\r\n [\"\\\"\" /* DOUBLE_QUOTE */]: [6 /* IN_DOUBLE_QUOTE */, 0 /* APPEND */],\r\n [\"[\" /* LEFT_BRACKET */]: [\r\n 4 /* IN_SUB_PATH */,\r\n 2 /* INC_SUB_PATH_DEPTH */\r\n ],\r\n [\"]\" /* RIGHT_BRACKET */]: [1 /* IN_PATH */, 3 /* PUSH_SUB_PATH */],\r\n [\"o\" /* END_OF_FAIL */]: 8 /* ERROR */,\r\n [\"l\" /* ELSE */]: [4 /* IN_SUB_PATH */, 0 /* APPEND */]\r\n};\r\npathStateMachine[5 /* IN_SINGLE_QUOTE */] = {\r\n [\"'\" /* SINGLE_QUOTE */]: [4 /* IN_SUB_PATH */, 0 /* APPEND */],\r\n [\"o\" /* END_OF_FAIL */]: 8 /* ERROR */,\r\n [\"l\" /* ELSE */]: [5 /* IN_SINGLE_QUOTE */, 0 /* APPEND */]\r\n};\r\npathStateMachine[6 /* IN_DOUBLE_QUOTE */] = {\r\n [\"\\\"\" /* DOUBLE_QUOTE */]: [4 /* IN_SUB_PATH */, 0 /* APPEND */],\r\n [\"o\" /* END_OF_FAIL */]: 8 /* ERROR */,\r\n [\"l\" /* ELSE */]: [6 /* IN_DOUBLE_QUOTE */, 0 /* APPEND */]\r\n};\r\n/**\r\n * Check if an expression is a literal value.\r\n */\r\nconst literalValueRE = /^\\s?(?:true|false|-?[\\d.]+|'[^']*'|\"[^\"]*\")\\s?$/;\r\nfunction isLiteral(exp) {\r\n return literalValueRE.test(exp);\r\n}\r\n/**\r\n * Strip quotes from a string\r\n */\r\nfunction stripQuotes(str) {\r\n const a = str.charCodeAt(0);\r\n const b = str.charCodeAt(str.length - 1);\r\n return a === b && (a === 0x22 || a === 0x27) ? str.slice(1, -1) : str;\r\n}\r\n/**\r\n * Determine the type of a character in a keypath.\r\n */\r\nfunction getPathCharType(ch) {\r\n if (ch === undefined || ch === null) {\r\n return \"o\" /* END_OF_FAIL */;\r\n }\r\n const code = ch.charCodeAt(0);\r\n switch (code) {\r\n case 0x5b: // [\r\n case 0x5d: // ]\r\n case 0x2e: // .\r\n case 0x22: // \"\r\n case 0x27: // '\r\n return ch;\r\n case 0x5f: // _\r\n case 0x24: // $\r\n case 0x2d: // -\r\n return \"i\" /* IDENT */;\r\n case 0x09: // Tab (HT)\r\n case 0x0a: // Newline (LF)\r\n case 0x0d: // Return (CR)\r\n case 0xa0: // No-break space (NBSP)\r\n case 0xfeff: // Byte Order Mark (BOM)\r\n case 0x2028: // Line Separator (LS)\r\n case 0x2029: // Paragraph Separator (PS)\r\n return \"w\" /* WORKSPACE */;\r\n }\r\n return \"i\" /* IDENT */;\r\n}\r\n/**\r\n * Format a subPath, return its plain form if it is\r\n * a literal string or number. Otherwise prepend the\r\n * dynamic indicator (*).\r\n */\r\nfunction formatSubPath(path) {\r\n const trimmed = path.trim();\r\n // invalid leading 0\r\n if (path.charAt(0) === '0' && isNaN(parseInt(path))) {\r\n return false;\r\n }\r\n return isLiteral(trimmed)\r\n ? stripQuotes(trimmed)\r\n : \"*\" /* ASTARISK */ + trimmed;\r\n}\r\n/**\r\n * Parse a string path into an array of segments\r\n */\r\nfunction parse(path) {\r\n const keys = [];\r\n let index = -1;\r\n let mode = 0 /* BEFORE_PATH */;\r\n let subPathDepth = 0;\r\n let c;\r\n let key; // eslint-disable-line\r\n let newChar;\r\n let type;\r\n let transition;\r\n let action;\r\n let typeMap;\r\n const actions = [];\r\n actions[0 /* APPEND */] = () => {\r\n if (key === undefined) {\r\n key = newChar;\r\n }\r\n else {\r\n key += newChar;\r\n }\r\n };\r\n actions[1 /* PUSH */] = () => {\r\n if (key !== undefined) {\r\n keys.push(key);\r\n key = undefined;\r\n }\r\n };\r\n actions[2 /* INC_SUB_PATH_DEPTH */] = () => {\r\n actions[0 /* APPEND */]();\r\n subPathDepth++;\r\n };\r\n actions[3 /* PUSH_SUB_PATH */] = () => {\r\n if (subPathDepth > 0) {\r\n subPathDepth--;\r\n mode = 4 /* IN_SUB_PATH */;\r\n actions[0 /* APPEND */]();\r\n }\r\n else {\r\n subPathDepth = 0;\r\n if (key === undefined) {\r\n return false;\r\n }\r\n key = formatSubPath(key);\r\n if (key === false) {\r\n return false;\r\n }\r\n else {\r\n actions[1 /* PUSH */]();\r\n }\r\n }\r\n };\r\n function maybeUnescapeQuote() {\r\n const nextChar = path[index + 1];\r\n if ((mode === 5 /* IN_SINGLE_QUOTE */ &&\r\n nextChar === \"'\" /* SINGLE_QUOTE */) ||\r\n (mode === 6 /* IN_DOUBLE_QUOTE */ &&\r\n nextChar === \"\\\"\" /* DOUBLE_QUOTE */)) {\r\n index++;\r\n newChar = '\\\\' + nextChar;\r\n actions[0 /* APPEND */]();\r\n return true;\r\n }\r\n }\r\n while (mode !== null) {\r\n index++;\r\n c = path[index];\r\n if (c === '\\\\' && maybeUnescapeQuote()) {\r\n continue;\r\n }\r\n type = getPathCharType(c);\r\n typeMap = pathStateMachine[mode];\r\n transition = typeMap[type] || typeMap[\"l\" /* ELSE */] || 8 /* ERROR */;\r\n // check parse error\r\n if (transition === 8 /* ERROR */) {\r\n return;\r\n }\r\n mode = transition[0];\r\n if (transition[1] !== undefined) {\r\n action = actions[transition[1]];\r\n if (action) {\r\n newChar = c;\r\n if (action() === false) {\r\n return;\r\n }\r\n }\r\n }\r\n // check parse finish\r\n if (mode === 7 /* AFTER_PATH */) {\r\n return keys;\r\n }\r\n }\r\n}\r\n// path token cache\r\nconst cache = new Map();\r\nfunction resolveValue(obj, path) {\r\n // check object\r\n if (!isObject(obj)) {\r\n return null;\r\n }\r\n // parse path\r\n let hit = cache.get(path);\r\n if (!hit) {\r\n hit = parse(path);\r\n if (hit) {\r\n cache.set(path, hit);\r\n }\r\n }\r\n // check hit\r\n if (!hit) {\r\n return null;\r\n }\r\n // resolve path value\r\n const len = hit.length;\r\n let last = obj;\r\n let i = 0;\r\n while (i < len) {\r\n const val = last[hit[i]];\r\n if (val === undefined) {\r\n return null;\r\n }\r\n last = val;\r\n i++;\r\n }\r\n return last;\r\n}\r\n/**\r\n * Transform flat json in obj to normal json in obj\r\n */\r\nfunction handleFlatJson(obj) {\r\n // check obj\r\n if (!isObject(obj)) {\r\n return obj;\r\n }\r\n for (const key in obj) {\r\n // check key\r\n if (!hasOwn(obj, key)) {\r\n continue;\r\n }\r\n // handle for normal json\r\n if (!key.includes(\".\" /* DOT */)) {\r\n // recursive process value if value is also a object\r\n if (isObject(obj[key])) {\r\n handleFlatJson(obj[key]);\r\n }\r\n }\r\n // handle for flat json, transform to normal json\r\n else {\r\n // go to the last object\r\n const subKeys = key.split(\".\" /* DOT */);\r\n const lastIndex = subKeys.length - 1;\r\n let currentObj = obj;\r\n for (let i = 0; i < lastIndex; i++) {\r\n if (!(subKeys[i] in currentObj)) {\r\n currentObj[subKeys[i]] = {};\r\n }\r\n currentObj = currentObj[subKeys[i]];\r\n }\r\n // update last object value, delete old property\r\n currentObj[subKeys[lastIndex]] = obj[key];\r\n delete obj[key];\r\n // recursive process value if value is also a object\r\n if (isObject(currentObj[subKeys[lastIndex]])) {\r\n handleFlatJson(currentObj[subKeys[lastIndex]]);\r\n }\r\n }\r\n }\r\n return obj;\r\n}\n\nexport { handleFlatJson, parse, resolveValue };\n","/*!\n * @intlify/shared v9.1.9\n * (c) 2021 kazuya kawaguchi\n * Released under the MIT License.\n */\n/**\r\n * Original Utilities\r\n * written by kazuya kawaguchi\r\n */\r\nconst inBrowser = typeof window !== 'undefined';\r\nlet mark;\r\nlet measure;\r\nif ((process.env.NODE_ENV !== 'production')) {\r\n const perf = inBrowser && window.performance;\r\n if (perf &&\r\n perf.mark &&\r\n perf.measure &&\r\n perf.clearMarks &&\r\n perf.clearMeasures) {\r\n mark = (tag) => perf.mark(tag);\r\n measure = (name, startTag, endTag) => {\r\n perf.measure(name, startTag, endTag);\r\n perf.clearMarks(startTag);\r\n perf.clearMarks(endTag);\r\n };\r\n }\r\n}\r\nconst RE_ARGS = /\\{([0-9a-zA-Z]+)\\}/g;\r\n/* eslint-disable */\r\nfunction format(message, ...args) {\r\n if (args.length === 1 && isObject(args[0])) {\r\n args = args[0];\r\n }\r\n if (!args || !args.hasOwnProperty) {\r\n args = {};\r\n }\r\n return message.replace(RE_ARGS, (match, identifier) => {\r\n return args.hasOwnProperty(identifier) ? args[identifier] : '';\r\n });\r\n}\r\nconst hasSymbol = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';\r\nconst makeSymbol = (name) => hasSymbol ? Symbol(name) : name;\r\nconst generateFormatCacheKey = (locale, key, source) => friendlyJSONstringify({ l: locale, k: key, s: source });\r\nconst friendlyJSONstringify = (json) => JSON.stringify(json)\r\n .replace(/\\u2028/g, '\\\\u2028')\r\n .replace(/\\u2029/g, '\\\\u2029')\r\n .replace(/\\u0027/g, '\\\\u0027');\r\nconst isNumber = (val) => typeof val === 'number' && isFinite(val);\r\nconst isDate = (val) => toTypeString(val) === '[object Date]';\r\nconst isRegExp = (val) => toTypeString(val) === '[object RegExp]';\r\nconst isEmptyObject = (val) => isPlainObject(val) && Object.keys(val).length === 0;\r\nfunction warn(msg, err) {\r\n if (typeof console !== 'undefined') {\r\n console.warn(`[intlify] ` + msg);\r\n /* istanbul ignore if */\r\n if (err) {\r\n console.warn(err.stack);\r\n }\r\n }\r\n}\r\nconst assign = Object.assign;\r\nlet _globalThis;\r\nconst getGlobalThis = () => {\r\n // prettier-ignore\r\n return (_globalThis ||\r\n (_globalThis =\r\n typeof globalThis !== 'undefined'\r\n ? globalThis\r\n : typeof self !== 'undefined'\r\n ? self\r\n : typeof window !== 'undefined'\r\n ? window\r\n : typeof global !== 'undefined'\r\n ? global\r\n : {}));\r\n};\r\nfunction escapeHtml(rawText) {\r\n return rawText\r\n .replace(/</g, '&lt;')\r\n .replace(/>/g, '&gt;')\r\n .replace(/\"/g, '&quot;')\r\n .replace(/'/g, '&apos;');\r\n}\r\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\r\nfunction hasOwn(obj, key) {\r\n return hasOwnProperty.call(obj, key);\r\n}\r\n/* eslint-enable */\r\n/**\r\n * Useful Utilities By Evan you\r\n * Modified by kazuya kawaguchi\r\n * MIT License\r\n * https://github.com/vuejs/vue-next/blob/master/packages/shared/src/index.ts\r\n * https://github.com/vuejs/vue-next/blob/master/packages/shared/src/codeframe.ts\r\n */\r\nconst isArray = Array.isArray;\r\nconst isFunction = (val) => typeof val === 'function';\r\nconst isString = (val) => typeof val === 'string';\r\nconst isBoolean = (val) => typeof val === 'boolean';\r\nconst isSymbol = (val) => typeof val === 'symbol';\r\nconst isObject = (val) => // eslint-disable-line\r\n val !== null && typeof val === 'object';\r\nconst isPromise = (val) => {\r\n return isObject(val) && isFunction(val.then) && isFunction(val.catch);\r\n};\r\nconst objectToString = Object.prototype.toString;\r\nconst toTypeString = (value) => objectToString.call(value);\r\nconst isPlainObject = (val) => toTypeString(val) === '[object Object]';\r\n// for converting list and named values to displayed strings.\r\nconst toDisplayString = (val) => {\r\n return val == null\r\n ? ''\r\n : isArray(val) || (isPlainObject(val) && val.toString === objectToString)\r\n ? JSON.stringify(val, null, 2)\r\n : String(val);\r\n};\r\nconst RANGE = 2;\r\nfunction generateCodeFrame(source, start = 0, end = source.length) {\r\n const lines = source.split(/\\r?\\n/);\r\n let count = 0;\r\n const res = [];\r\n for (let i = 0; i < lines.length; i++) {\r\n count += lines[i].length + 1;\r\n if (count >= start) {\r\n for (let j = i - RANGE; j <= i + RANGE || end > count; j++) {\r\n if (j < 0 || j >= lines.length)\r\n continue;\r\n const line = j + 1;\r\n res.push(`${line}${' '.repeat(3 - String(line).length)}| ${lines[j]}`);\r\n const lineLength = lines[j].length;\r\n if (j === i) {\r\n // push underline\r\n const pad = start - (count - lineLength) + 1;\r\n const length = Math.max(1, end > count ? lineLength - pad : end - start);\r\n res.push(` | ` + ' '.repeat(pad) + '^'.repeat(length));\r\n }\r\n else if (j > i) {\r\n if (end > count) {\r\n const length = Math.max(Math.min(end - count, lineLength), 1);\r\n res.push(` | ` + '^'.repeat(length));\r\n }\r\n count += lineLength + 1;\r\n }\r\n }\r\n break;\r\n }\r\n }\r\n return res.join('\\n');\r\n}\n\n/**\r\n * Event emitter, forked from the below:\r\n * - original repository url: https://github.com/developit/mitt\r\n * - code url: https://github.com/developit/mitt/blob/master/src/index.ts\r\n * - author: Jason Miller (https://github.com/developit)\r\n * - license: MIT\r\n */\r\n/**\r\n * Create a event emitter\r\n *\r\n * @returns An event emitter\r\n */\r\nfunction createEmitter() {\r\n const events = new Map();\r\n const emitter = {\r\n events,\r\n on(event, handler) {\r\n const handlers = events.get(event);\r\n const added = handlers && handlers.push(handler);\r\n if (!added) {\r\n events.set(event, [handler]);\r\n }\r\n },\r\n off(event, handler) {\r\n const handlers = events.get(event);\r\n if (handlers) {\r\n handlers.splice(handlers.indexOf(handler) >>> 0, 1);\r\n }\r\n },\r\n emit(event, payload) {\r\n (events.get(event) || [])\r\n .slice()\r\n .map(handler => handler(payload));\r\n (events.get('*') || [])\r\n .slice()\r\n .map(handler => handler(event, payload));\r\n }\r\n };\r\n return emitter;\r\n}\n\nexport { assign, createEmitter, escapeHtml, format, friendlyJSONstringify, generateCodeFrame, generateFormatCacheKey, getGlobalThis, hasOwn, inBrowser, isArray, isBoolean, isDate, isEmptyObject, isFunction, isNumber, isObject, isPlainObject, isPromise, isRegExp, isString, isSymbol, makeSymbol, mark, measure, objectToString, toDisplayString, toTypeString, warn };\n","/*!\n * @intlify/runtime v9.1.9\n * (c) 2021 kazuya kawaguchi\n * Released under the MIT License.\n */\nimport { isNumber, isObject, isString, isFunction, isPlainObject, toDisplayString } from '@intlify/shared';\n\nconst DEFAULT_MODIFIER = (str) => str;\r\nconst DEFAULT_MESSAGE = (ctx) => ''; // eslint-disable-line\r\nconst DEFAULT_MESSAGE_DATA_TYPE = 'text';\r\nconst DEFAULT_NORMALIZE = (values) => values.length === 0 ? '' : values.join('');\r\nconst DEFAULT_INTERPOLATE = toDisplayString;\r\nfunction pluralDefault(choice, choicesLength) {\r\n choice = Math.abs(choice);\r\n if (choicesLength === 2) {\r\n // prettier-ignore\r\n return choice\r\n ? choice > 1\r\n ? 1\r\n : 0\r\n : 1;\r\n }\r\n return choice ? Math.min(choice, 2) : 0;\r\n}\r\nfunction getPluralIndex(options) {\r\n // prettier-ignore\r\n const index = isNumber(options.pluralIndex)\r\n ? options.pluralIndex\r\n : -1;\r\n // prettier-ignore\r\n return options.named && (isNumber(options.named.count) || isNumber(options.named.n))\r\n ? isNumber(options.named.count)\r\n ? options.named.count\r\n : isNumber(options.named.n)\r\n ? options.named.n\r\n : index\r\n : index;\r\n}\r\nfunction normalizeNamed(pluralIndex, props) {\r\n if (!props.count) {\r\n props.count = pluralIndex;\r\n }\r\n if (!props.n) {\r\n props.n = pluralIndex;\r\n }\r\n}\r\nfunction createMessageContext(options = {}) {\r\n const locale = options.locale;\r\n const pluralIndex = getPluralIndex(options);\r\n const pluralRule = isObject(options.pluralRules) &&\r\n isString(locale) &&\r\n isFunction(options.pluralRules[locale])\r\n ? options.pluralRules[locale]\r\n : pluralDefault;\r\n const orgPluralRule = isObject(options.pluralRules) &&\r\n isString(locale) &&\r\n isFunction(options.pluralRules[locale])\r\n ? pluralDefault\r\n : undefined;\r\n const plural = (messages) => messages[pluralRule(pluralIndex, messages.length, orgPluralRule)];\r\n const _list = options.list || [];\r\n const list = (index) => _list[index];\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const _named = options.named || {};\r\n isNumber(options.pluralIndex) && normalizeNamed(pluralIndex, _named);\r\n const named = (key) => _named[key];\r\n // TODO: need to design resolve message function?\r\n function message(key) {\r\n // prettier-ignore\r\n const msg = isFunction(options.messages)\r\n ? options.messages(key)\r\n : isObject(options.messages)\r\n ? options.messages[key]\r\n : false;\r\n return !msg\r\n ? options.parent\r\n ? options.parent.message(key) // resolve from parent messages\r\n : DEFAULT_MESSAGE\r\n : msg;\r\n }\r\n const _modifier = (name) => options.modifiers\r\n ? options.modifiers[name]\r\n : DEFAULT_MODIFIER;\r\n const normalize = isPlainObject(options.processor) && isFunction(options.processor.normalize)\r\n ? options.processor.normalize\r\n : DEFAULT_NORMALIZE;\r\n const interpolate = isPlainObject(options.processor) &&\r\n isFunction(options.processor.interpolate)\r\n ? options.processor.interpolate\r\n : DEFAULT_INTERPOLATE;\r\n const type = isPlainObject(options.processor) && isString(options.processor.type)\r\n ? options.processor.type\r\n : DEFAULT_MESSAGE_DATA_TYPE;\r\n const ctx = {\r\n [\"list\" /* LIST */]: list,\r\n [\"named\" /* NAMED */]: named,\r\n [\"plural\" /* PLURAL */]: plural,\r\n [\"linked\" /* LINKED */]: (key, modifier) => {\r\n // TODO: should check `key`\r\n const msg = message(key)(ctx);\r\n return isString(modifier) ? _modifier(modifier)(msg) : msg;\r\n },\r\n [\"message\" /* MESSAGE */]: message,\r\n [\"type\" /* TYPE */]: type,\r\n [\"interpolate\" /* INTERPOLATE */]: interpolate,\r\n [\"normalize\" /* NORMALIZE */]: normalize\r\n };\r\n return ctx;\r\n}\n\nexport { DEFAULT_MESSAGE_DATA_TYPE, createMessageContext };\n","/*!\n * @intlify/message-compiler v9.1.9\n * (c) 2021 kazuya kawaguchi\n * Released under the MIT License.\n */\nimport { format, assign, isString } from '@intlify/shared';\n\n/** @internal */\r\nconst errorMessages = {\r\n // tokenizer error messages\r\n [0 /* EXPECTED_TOKEN */]: `Expected token: '{0}'`,\r\n [1 /* INVALID_TOKEN_IN_PLACEHOLDER */]: `Invalid token in placeholder: '{0}'`,\r\n [2 /* UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER */]: `Unterminated single quote in placeholder`,\r\n [3 /* UNKNOWN_ESCAPE_SEQUENCE */]: `Unknown escape sequence: \\\\{0}`,\r\n [4 /* INVALID_UNICODE_ESCAPE_SEQUENCE */]: `Invalid unicode escape sequence: {0}`,\r\n [5 /* UNBALANCED_CLOSING_BRACE */]: `Unbalanced closing brace`,\r\n [6 /* UNTERMINATED_CLOSING_BRACE */]: `Unterminated closing brace`,\r\n [7 /* EMPTY_PLACEHOLDER */]: `Empty placeholder`,\r\n [8 /* NOT_ALLOW_NEST_PLACEHOLDER */]: `Not allowed nest placeholder`,\r\n [9 /* INVALID_LINKED_FORMAT */]: `Invalid linked format`,\r\n // parser error messages\r\n [10 /* MUST_HAVE_MESSAGES_IN_PLURAL */]: `Plural must have messages`,\r\n [11 /* UNEXPECTED_EMPTY_LINKED_MODIFIER */]: `Unexpected empty linked modifier`,\r\n [12 /* UNEXPECTED_EMPTY_LINKED_KEY */]: `Unexpected empty linked key`,\r\n [13 /* UNEXPECTED_LEXICAL_ANALYSIS */]: `Unexpected lexical analysis in token: '{0}'`\r\n};\r\nfunction createCompileError(code, loc, options = {}) {\r\n const { domain, messages, args } = options;\r\n const msg = (process.env.NODE_ENV !== 'production')\r\n ? format((messages || errorMessages)[code] || '', ...(args || []))\r\n : code;\r\n const error = new SyntaxError(String(msg));\r\n error.code = code;\r\n if (loc) {\r\n error.location = loc;\r\n }\r\n error.domain = domain;\r\n return error;\r\n}\r\n/** @internal */\r\nfunction defaultOnError(error) {\r\n throw error;\r\n}\n\nconst LocationStub = {\r\n start: { line: 1, column: 1, offset: 0 },\r\n end: { line: 1, column: 1, offset: 0 }\r\n};\r\nfunction createPosition(line, column, offset) {\r\n return { line, column, offset };\r\n}\r\nfunction createLocation(start, end, source) {\r\n const loc = { start, end };\r\n if (source != null) {\r\n loc.source = source;\r\n }\r\n return loc;\r\n}\n\nconst CHAR_SP = ' ';\r\nconst CHAR_CR = '\\r';\r\nconst CHAR_LF = '\\n';\r\nconst CHAR_LS = String.fromCharCode(0x2028);\r\nconst CHAR_PS = String.fromCharCode(0x2029);\r\nfunction createScanner(str) {\r\n const _buf = str;\r\n let _index = 0;\r\n let _line = 1;\r\n let _column = 1;\r\n let _peekOffset = 0;\r\n const isCRLF = (index) => _buf[index] === CHAR_CR && _buf[index + 1] === CHAR_LF;\r\n const isLF = (index) => _buf[index] === CHAR_LF;\r\n const isPS = (index) => _buf[index] === CHAR_PS;\r\n const isLS = (index) => _buf[index] === CHAR_LS;\r\n const isLineEnd = (index) => isCRLF(index) || isLF(index) || isPS(index) || isLS(index);\r\n const index = () => _index;\r\n const line = () => _line;\r\n const column = () => _column;\r\n const peekOffset = () => _peekOffset;\r\n const charAt = (offset) => isCRLF(offset) || isPS(offset) || isLS(offset) ? CHAR_LF : _buf[offset];\r\n const currentChar = () => charAt(_index);\r\n const currentPeek = () => charAt(_index + _peekOffset);\r\n function next() {\r\n _peekOffset = 0;\r\n if (isLineEnd(_index)) {\r\n _line++;\r\n _column = 0;\r\n }\r\n if (isCRLF(_index)) {\r\n _index++;\r\n }\r\n _index++;\r\n _column++;\r\n return _buf[_index];\r\n }\r\n function peek() {\r\n if (isCRLF(_index + _peekOffset)) {\r\n _peekOffset++;\r\n }\r\n _peekOffset++;\r\n return _buf[_index + _peekOffset];\r\n }\r\n function reset() {\r\n _index = 0;\r\n _line = 1;\r\n _column = 1;\r\n _peekOffset = 0;\r\n }\r\n function resetPeek(offset = 0) {\r\n _peekOffset = offset;\r\n }\r\n function skipToPeek() {\r\n const target = _index + _peekOffset;\r\n // eslint-disable-next-line no-unmodified-loop-condition\r\n while (target !== _index) {\r\n next();\r\n }\r\n _peekOffset = 0;\r\n }\r\n return {\r\n index,\r\n line,\r\n column,\r\n peekOffset,\r\n charAt,\r\n currentChar,\r\n currentPeek,\r\n next,\r\n peek,\r\n reset,\r\n resetPeek,\r\n skipToPeek\r\n };\r\n}\n\nconst EOF = undefined;\r\nconst LITERAL_DELIMITER = \"'\";\r\nconst ERROR_DOMAIN$1 = 'tokenizer';\r\nfunction createTokenizer(source, options = {}) {\r\n const location = options.location !== false;\r\n const _scnr = createScanner(source);\r\n const currentOffset = () => _scnr.index();\r\n const currentPosition = () => createPosition(_scnr.line(), _scnr.column(), _scnr.index());\r\n const _initLoc = currentPosition();\r\n const _initOffset = currentOffset();\r\n const _context = {\r\n currentType: 14 /* EOF */,\r\n offset: _initOffset,\r\n startLoc: _initLoc,\r\n endLoc: _initLoc,\r\n lastType: 14 /* EOF */,\r\n lastOffset: _initOffset,\r\n lastStartLoc: _initLoc,\r\n lastEndLoc: _initLoc,\r\n braceNest: 0,\r\n inLinked: false,\r\n text: ''\r\n };\r\n const context = () => _context;\r\n const { onError } = options;\r\n function emitError(code, pos, offset, ...args) {\r\n const ctx = context();\r\n pos.column += offset;\r\n pos.offset += offset;\r\n if (onError) {\r\n const loc = createLocation(ctx.startLoc, pos);\r\n const err = createCompileError(code, loc, {\r\n domain: ERROR_DOMAIN$1,\r\n args\r\n });\r\n onError(err);\r\n }\r\n }\r\n function getToken(context, type, value) {\r\n context.endLoc = currentPosition();\r\n context.currentType = type;\r\n const token = { type };\r\n if (location) {\r\n token.loc = createLocation(context.startLoc, context.endLoc);\r\n }\r\n if (value != null) {\r\n token.value = value;\r\n }\r\n return token;\r\n }\r\n const getEndToken = (context) => getToken(context, 14 /* EOF */);\r\n function eat(scnr, ch) {\r\n if (scnr.currentChar() === ch) {\r\n scnr.next();\r\n return ch;\r\n }\r\n else {\r\n emitError(0 /* EXPECTED_TOKEN */, currentPosition(), 0, ch);\r\n return '';\r\n }\r\n }\r\n function peekSpaces(scnr) {\r\n let buf = '';\r\n while (scnr.currentPeek() === CHAR_SP || scnr.currentPeek() === CHAR_LF) {\r\n buf += scnr.currentPeek();\r\n scnr.peek();\r\n }\r\n return buf;\r\n }\r\n function skipSpaces(scnr) {\r\n const buf = peekSpaces(scnr);\r\n scnr.skipToPeek();\r\n return buf;\r\n }\r\n function isIdentifierStart(ch) {\r\n if (ch === EOF) {\r\n return false;\r\n }\r\n const cc = ch.charCodeAt(0);\r\n return ((cc >= 97 && cc <= 122) || // a-z\r\n (cc >= 65 && cc <= 90) || // A-Z\r\n cc === 95 // _\r\n );\r\n }\r\n function isNumberStart(ch) {\r\n if (ch === EOF) {\r\n return false;\r\n }\r\n const cc = ch.charCodeAt(0);\r\n return cc >= 48 && cc <= 57; // 0-9\r\n }\r\n function isNamedIdentifierStart(scnr, context) {\r\n const { currentType } = context;\r\n if (currentType !== 2 /* BraceLeft */) {\r\n return false;\r\n }\r\n peekSpaces(scnr);\r\n const ret = isIdentifierStart(scnr.currentPeek());\r\n scnr.resetPeek();\r\n return ret;\r\n }\r\n function isListIdentifierStart(scnr, context) {\r\n const { currentType } = context;\r\n if (currentType !== 2 /* BraceLeft */) {\r\n return false;\r\n }\r\n peekSpaces(scnr);\r\n const ch = scnr.currentPeek() === '-' ? scnr.peek() : scnr.currentPeek();\r\n const ret = isNumberStart(ch);\r\n scnr.resetPeek();\r\n return ret;\r\n }\r\n function isLiteralStart(scnr, context) {\r\n const { currentType } = context;\r\n if (currentType !== 2 /* BraceLeft */) {\r\n return false;\r\n }\r\n peekSpaces(scnr);\r\n const ret = scnr.currentPeek() === LITERAL_DELIMITER;\r\n scnr.resetPeek();\r\n return ret;\r\n }\r\n function isLinkedDotStart(scnr, context) {\r\n const { currentType } = context;\r\n if (currentType !== 8 /* LinkedAlias */) {\r\n return false;\r\n }\r\n peekSpaces(scnr);\r\n const ret = scnr.currentPeek() === \".\" /* LinkedDot */;\r\n scnr.resetPeek();\r\n return ret;\r\n }\r\n function isLinkedModifierStart(scnr, context) {\r\n const { currentType } = context;\r\n if (currentType !== 9 /* LinkedDot */) {\r\n return false;\r\n }\r\n peekSpaces(scnr);\r\n const ret = isIdentifierStart(scnr.currentPeek());\r\n scnr.resetPeek();\r\n return ret;\r\n }\r\n function isLinkedDelimiterStart(scnr, context) {\r\n const { currentType } = context;\r\n if (!(currentType === 8 /* LinkedAlias */ ||\r\n currentType === 12 /* LinkedModifier */)) {\r\n return false;\r\n }\r\n peekSpaces(scnr);\r\n const ret = scnr.currentPeek() === \":\" /* LinkedDelimiter */;\r\n scnr.resetPeek();\r\n return ret;\r\n }\r\n function isLinkedReferStart(scnr, context) {\r\n const { currentType } = context;\r\n if (currentType !== 10 /* LinkedDelimiter */) {\r\n return false;\r\n }\r\n const fn = () => {\r\n const ch = scnr.currentPeek();\r\n if (ch === \"{\" /* BraceLeft */) {\r\n return isIdentifierStart(scnr.peek());\r\n }\r\n else if (ch === \"@\" /* LinkedAlias */ ||\r\n ch === \"%\" /* Modulo */ ||\r\n ch === \"|\" /* Pipe */ ||\r\n ch === \":\" /* LinkedDelimiter */ ||\r\n ch === \".\" /* LinkedDot */ ||\r\n ch === CHAR_SP ||\r\n !ch) {\r\n return false;\r\n }\r\n else if (ch === CHAR_LF) {\r\n scnr.peek();\r\n return fn();\r\n }\r\n else {\r\n // other characters\r\n return isIdentifierStart(ch);\r\n }\r\n };\r\n const ret = fn();\r\n scnr.resetPeek();\r\n return ret;\r\n }\r\n function isPluralStart(scnr) {\r\n peekSpaces(scnr);\r\n const ret = scnr.currentPeek() === \"|\" /* Pipe */;\r\n scnr.resetPeek();\r\n return ret;\r\n }\r\n function isTextStart(scnr, reset = true) {\r\n const fn = (hasSpace = false, prev = '', detectModulo = false) => {\r\n const ch = scnr.currentPeek();\r\n if (ch === \"{\" /* BraceLeft */) {\r\n return prev === \"%\" /* Modulo */ ? false : hasSpace;\r\n }\r\n else if (ch === \"@\" /* LinkedAlias */ || !ch) {\r\n return prev === \"%\" /* Modulo */ ? true : hasSpace;\r\n }\r\n else if (ch === \"%\" /* Modulo */) {\r\n scnr.peek();\r\n return fn(hasSpace, \"%\" /* Modulo */, true);\r\n }\r\n else if (ch === \"|\" /* Pipe */) {\r\n return prev === \"%\" /* Modulo */ || detectModulo\r\n ? true\r\n : !(prev === CHAR_SP || prev === CHAR_LF);\r\n }\r\n else if (ch === CHAR_SP) {\r\n scnr.peek();\r\n return fn(true, CHAR_SP, detectModulo);\r\n }\r\n else if (ch === CHAR_LF) {\r\n scnr.peek();\r\n return fn(true, CHAR_LF, detectModulo);\r\n }\r\n else {\r\n return true;\r\n }\r\n };\r\n const ret = fn();\r\n reset && scnr.resetPeek();\r\n return ret;\r\n }\r\n function takeChar(scnr, fn) {\r\n const ch = scnr.currentChar();\r\n if (ch === EOF) {\r\n return EOF;\r\n }\r\n if (fn(ch)) {\r\n scnr.next();\r\n return ch;\r\n }\r\n return null;\r\n }\r\n function takeIdentifierChar(scnr) {\r\n const closure = (ch) => {\r\n const cc = ch.charCodeAt(0);\r\n return ((cc >= 97 && cc <= 122) || // a-z\r\n (cc >= 65 && cc <= 90) || // A-Z\r\n (cc >= 48 && cc <= 57) || // 0-9\r\n cc === 95 || // _\r\n cc === 36 // $\r\n );\r\n };\r\n return takeChar(scnr, closure);\r\n }\r\n function takeDigit(scnr) {\r\n const closure = (ch) => {\r\n const cc = ch.charCodeAt(0);\r\n return cc >= 48 && cc <= 57; // 0-9\r\n };\r\n return takeChar(scnr, closure);\r\n }\r\n function takeHexDigit(scnr) {\r\n const closure = (ch) => {\r\n const cc = ch.charCodeAt(0);\r\n return ((cc >= 48 && cc <= 57) || // 0-9\r\n (cc >= 65 && cc <= 70) || // A-F\r\n (cc >= 97 && cc <= 102)); // a-f\r\n };\r\n return takeChar(scnr, closure);\r\n }\r\n function getDigits(scnr) {\r\n let ch = '';\r\n let num = '';\r\n while ((ch = takeDigit(scnr))) {\r\n num += ch;\r\n }\r\n return num;\r\n }\r\n function readText(scnr) {\r\n let buf = '';\r\n while (true) {\r\n const ch = scnr.currentChar();\r\n if (ch === \"{\" /* BraceLeft */ ||\r\n ch === \"}\" /* BraceRight */ ||\r\n ch === \"@\" /* LinkedAlias */ ||\r\n ch === \"|\" /* Pipe */ ||\r\n !ch) {\r\n break;\r\n }\r\n else if (ch === \"%\" /* Modulo */) {\r\n if (isTextStart(scnr)) {\r\n buf += ch;\r\n scnr.next();\r\n }\r\n else {\r\n break;\r\n }\r\n }\r\n else if (ch === CHAR_SP || ch === CHAR_LF) {\r\n if (isTextStart(scnr)) {\r\n buf += ch;\r\n scnr.next();\r\n }\r\n else if (isPluralStart(scnr)) {\r\n break;\r\n }\r\n else {\r\n buf += ch;\r\n scnr.next();\r\n }\r\n }\r\n else {\r\n buf += ch;\r\n scnr.next();\r\n }\r\n }\r\n return buf;\r\n }\r\n function readNamedIdentifier(scnr) {\r\n skipSpaces(scnr);\r\n let ch = '';\r\n let name = '';\r\n while ((ch = takeIdentifierChar(scnr))) {\r\n name += ch;\r\n }\r\n if (scnr.currentChar() === EOF) {\r\n emitError(6 /* UNTERMINATED_CLOSING_BRACE */, currentPosition(), 0);\r\n }\r\n return name;\r\n }\r\n function readListIdentifier(scnr) {\r\n skipSpaces(scnr);\r\n let value = '';\r\n if (scnr.currentChar() === '-') {\r\n scnr.next();\r\n value += `-${getDigits(scnr)}`;\r\n }\r\n else {\r\n value += getDigits(scnr);\r\n }\r\n if (scnr.currentChar() === EOF) {\r\n emitError(6 /* UNTERMINATED_CLOSING_BRACE */, currentPosition(), 0);\r\n }\r\n return value;\r\n }\r\n function readLiteral(scnr) {\r\n skipSpaces(scnr);\r\n eat(scnr, `\\'`);\r\n let ch = '';\r\n let literal = '';\r\n const fn = (x) => x !== LITERAL_DELIMITER && x !== CHAR_LF;\r\n while ((ch = takeChar(scnr, fn))) {\r\n if (ch === '\\\\') {\r\n literal += readEscapeSequence(scnr);\r\n }\r\n else {\r\n literal += ch;\r\n }\r\n }\r\n const current = scnr.currentChar();\r\n if (current === CHAR_LF || current === EOF) {\r\n emitError(2 /* UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER */, currentPosition(), 0);\r\n // TODO: Is it correct really?\r\n if (current === CHAR_LF) {\r\n scnr.next();\r\n eat(scnr, `\\'`);\r\n }\r\n return literal;\r\n }\r\n eat(scnr, `\\'`);\r\n return literal;\r\n }\r\n function readEscapeSequence(scnr) {\r\n const ch = scnr.currentChar();\r\n switch (ch) {\r\n case '\\\\':\r\n case `\\'`:\r\n scnr.next();\r\n return `\\\\${ch}`;\r\n case 'u':\r\n return readUnicodeEscapeSequence(scnr, ch, 4);\r\n case 'U':\r\n return readUnicodeEscapeSequence(scnr, ch, 6);\r\n default:\r\n emitError(3 /* UNKNOWN_ESCAPE_SEQUENCE */, currentPosition(), 0, ch);\r\n return '';\r\n }\r\n }\r\n function readUnicodeEscapeSequence(scnr, unicode, digits) {\r\n eat(scnr, unicode);\r\n let sequence = '';\r\n for (let i = 0; i < digits; i++) {\r\n const ch = takeHexDigit(scnr);\r\n if (!ch) {\r\n emitError(4 /* INVALID_UNICODE_ESCAPE_SEQUENCE */, currentPosition(), 0, `\\\\${unicode}${sequence}${scnr.currentChar()}`);\r\n break;\r\n }\r\n sequence += ch;\r\n }\r\n return `\\\\${unicode}${sequence}`;\r\n }\r\n function readInvalidIdentifier(scnr) {\r\n skipSpaces(scnr);\r\n let ch = '';\r\n let identifiers = '';\r\n const closure = (ch) => ch !== \"{\" /* BraceLeft */ &&\r\n ch !== \"}\" /* BraceRight */ &&\r\n ch !== CHAR_SP &&\r\n ch !== CHAR_LF;\r\n while ((ch = takeChar(scnr, closure))) {\r\n identifiers += ch;\r\n }\r\n return identifiers;\r\n }\r\n function readLinkedModifier(scnr) {\r\n let ch = '';\r\n let name = '';\r\n while ((ch = takeIdentifierChar(scnr))) {\r\n name += ch;\r\n }\r\n return name;\r\n }\r\n function readLinkedRefer(scnr) {\r\n const fn = (detect = false, buf) => {\r\n const ch = scnr.currentChar();\r\n if (ch === \"{\" /* BraceLeft */ ||\r\n ch === \"%\" /* Modulo */ ||\r\n ch === \"@\" /* LinkedAlias */ ||\r\n ch === \"|\" /* Pipe */ ||\r\n !ch) {\r\n return buf;\r\n }\r\n else if (ch === CHAR_SP) {\r\n return buf;\r\n }\r\n else if (ch === CHAR_LF) {\r\n buf += ch;\r\n scnr.next();\r\n return fn(detect, buf);\r\n }\r\n else {\r\n buf += ch;\r\n scnr.next();\r\n return fn(true, buf);\r\n }\r\n };\r\n return fn(false, '');\r\n }\r\n function readPlural(scnr) {\r\n skipSpaces(scnr);\r\n const plural = eat(scnr, \"|\" /* Pipe */);\r\n skipSpaces(scnr);\r\n return plural;\r\n }\r\n // TODO: We need refactoring of token parsing ...\r\n function readTokenInPlaceholder(scnr, context) {\r\n let token = null;\r\n const ch = scnr.currentChar();\r\n switch (ch) {\r\n case \"{\" /* BraceLeft */:\r\n if (context.braceNest >= 1) {\r\n emitError(8 /* NOT_ALLOW_NEST_PLACEHOLDER */, currentPosition(), 0);\r\n }\r\n scnr.next();\r\n token = getToken(context, 2 /* BraceLeft */, \"{\" /* BraceLeft */);\r\n skipSpaces(scnr);\r\n context.braceNest++;\r\n return token;\r\n case \"}\" /* BraceRight */:\r\n if (context.braceNest > 0 &&\r\n context.currentType === 2 /* BraceLeft */) {\r\n emitError(7 /* EMPTY_PLACEHOLDER */, currentPosition(), 0);\r\n }\r\n scnr.next();\r\n token = getToken(context, 3 /* BraceRight */, \"}\" /* BraceRight */);\r\n context.braceNest--;\r\n context.braceNest > 0 && skipSpaces(scnr);\r\n if (context.inLinked && context.braceNest === 0) {\r\n context.inLinked = false;\r\n }\r\n return token;\r\n case \"@\" /* LinkedAlias */:\r\n if (context.braceNest > 0) {\r\n emitError(6 /* UNTERMINATED_CLOSING_BRACE */, currentPosition(), 0);\r\n }\r\n token = readTokenInLinked(scnr, context) || getEndToken(context);\r\n context.braceNest = 0;\r\n return token;\r\n default:\r\n let validNamedIdentifier = true;\r\n let validListIdentifier = true;\r\n let validLiteral = true;\r\n if (isPluralStart(scnr)) {\r\n if (context.braceNest > 0) {\r\n emitError(6 /* UNTERMINATED_CLOSING_BRACE */, currentPosition(), 0);\r\n }\r\n token = getToken(context, 1 /* Pipe */, readPlural(scnr));\r\n // reset\r\n context.braceNest = 0;\r\n context.inLinked = false;\r\n return token;\r\n }\r\n if (context.braceNest > 0 &&\r\n (context.currentType === 5 /* Named */ ||\r\n context.currentType === 6 /* List */ ||\r\n context.currentType === 7 /* Literal */)) {\r\n emitError(6 /* UNTERMINATED_CLOSING_BRACE */, currentPosition(), 0);\r\n context.braceNest = 0;\r\n return readToken(scnr, context);\r\n }\r\n if ((validNamedIdentifier = isNamedIdentifierStart(scnr, context))) {\r\n token = getToken(context, 5 /* Named */, readNamedIdentifier(scnr));\r\n skipSpaces(scnr);\r\n return token;\r\n }\r\n if ((validListIdentifier = isListIdentifierStart(scnr, context))) {\r\n token = getToken(context, 6 /* List */, readListIdentifier(scnr));\r\n skipSpaces(scnr);\r\n return token;\r\n }\r\n if ((validLiteral = isLiteralStart(scnr, context))) {\r\n token = getToken(context, 7 /* Literal */, readLiteral(scnr));\r\n skipSpaces(scnr);\r\n return token;\r\n }\r\n if (!validNamedIdentifier && !validListIdentifier && !validLiteral) {\r\n // TODO: we should be re-designed invalid cases, when we will extend message syntax near the future ...\r\n token = getToken(context, 13 /* InvalidPlace */, readInvalidIdentifier(scnr));\r\n emitError(1 /* INVALID_TOKEN_IN_PLACEHOLDER */, currentPosition(), 0, token.value);\r\n skipSpaces(scnr);\r\n return token;\r\n }\r\n break;\r\n }\r\n return token;\r\n }\r\n // TODO: We need refactoring of token parsing ...\r\n function readTokenInLinked(scnr, context) {\r\n const { currentType } = context;\r\n let token = null;\r\n const ch = scnr.currentChar();\r\n if ((currentType === 8 /* LinkedAlias */ ||\r\n currentType === 9 /* LinkedDot */ ||\r\n currentType === 12 /* LinkedModifier */ ||\r\n currentType === 10 /* LinkedDelimiter */) &&\r\n (ch === CHAR_LF || ch === CHAR_SP)) {\r\n emitError(9 /* INVALID_LINKED_FORMAT */, currentPosition(), 0);\r\n }\r\n switch (ch) {\r\n case \"@\" /* LinkedAlias */:\r\n scnr.next();\r\n token = getToken(context, 8 /* LinkedAlias */, \"@\" /* LinkedAlias */);\r\n context.inLinked = true;\r\n return token;\r\n case \".\" /* LinkedDot */:\r\n skipSpaces(scnr);\r\n scnr.next();\r\n return getToken(context, 9 /* LinkedDot */, \".\" /* LinkedDot */);\r\n case \":\" /* LinkedDelimiter */:\r\n skipSpaces(scnr);\r\n scnr.next();\r\n return getToken(context, 10 /* LinkedDelimiter */, \":\" /* LinkedDelimiter */);\r\n default:\r\n if (isPluralStart(scnr)) {\r\n token = getToken(context, 1 /* Pipe */, readPlural(scnr));\r\n // reset\r\n context.braceNest = 0;\r\n context.inLinked = false;\r\n return token;\r\n }\r\n if (isLinkedDotStart(scnr, context) ||\r\n isLinkedDelimiterStart(scnr, context)) {\r\n skipSpaces(scnr);\r\n return readTokenInLinked(scnr, context);\r\n }\r\n if (isLinkedModifierStart(scnr, context)) {\r\n skipSpaces(scnr);\r\n return getToken(context, 12 /* LinkedModifier */, readLinkedModifier(scnr));\r\n }\r\n if (isLinkedReferStart(scnr, context)) {\r\n skipSpaces(scnr);\r\n if (ch === \"{\" /* BraceLeft */) {\r\n // scan the placeholder\r\n return readTokenInPlaceholder(scnr, context) || token;\r\n }\r\n else {\r\n return getToken(context, 11 /* LinkedKey */, readLinkedRefer(scnr));\r\n }\r\n }\r\n if (currentType === 8 /* LinkedAlias */) {\r\n emitError(9 /* INVALID_LINKED_FORMAT */, currentPosition(), 0);\r\n }\r\n context.braceNest = 0;\r\n context.inLinked = false;\r\n return readToken(scnr, context);\r\n }\r\n }\r\n // TODO: We need refactoring of token parsing ...\r\n function readToken(scnr, context) {\r\n let token = { type: 14 /* EOF */ };\r\n if (context.braceNest > 0) {\r\n return readTokenInPlaceholder(scnr, context) || getEndToken(context);\r\n }\r\n if (context.inLinked) {\r\n return readTokenInLinked(scnr, context) || getEndToken(context);\r\n }\r\n const ch = scnr.currentChar();\r\n switch (ch) {\r\n case \"{\" /* BraceLeft */:\r\n return readTokenInPlaceholder(scnr, context) || getEndToken(context);\r\n case \"}\" /* BraceRight */:\r\n emitError(5 /* UNBALANCED_CLOSING_BRACE */, currentPosition(), 0);\r\n scnr.next();\r\n return getToken(context, 3 /* BraceRight */, \"}\" /* BraceRight */);\r\n case \"@\" /* LinkedAlias */:\r\n return readTokenInLinked(scnr, context) || getEndToken(context);\r\n default:\r\n if (isPluralStart(scnr)) {\r\n token = getToken(context, 1 /* Pipe */, readPlural(scnr));\r\n // reset\r\n context.braceNest = 0;\r\n context.inLinked = false;\r\n return token;\r\n }\r\n if (isTextStart(scnr)) {\r\n return getToken(context, 0 /* Text */, readText(scnr));\r\n }\r\n if (ch === \"%\" /* Modulo */) {\r\n scnr.next();\r\n return getToken(context, 4 /* Modulo */, \"%\" /* Modulo */);\r\n }\r\n break;\r\n }\r\n return token;\r\n }\r\n function nextToken() {\r\n const { currentType, offset, startLoc, endLoc } = _context;\r\n _context.lastType = currentType;\r\n _context.lastOffset = offset;\r\n _context.lastStartLoc = startLoc;\r\n _context.lastEndLoc = endLoc;\r\n _context.offset = currentOffset();\r\n _context.startLoc = currentPosition();\r\n if (_scnr.currentChar() === EOF) {\r\n return getToken(_context, 14 /* EOF */);\r\n }\r\n return readToken(_scnr, _context);\r\n }\r\n return {\r\n nextToken,\r\n currentOffset,\r\n currentPosition,\r\n context\r\n };\r\n}\n\nconst ERROR_DOMAIN = 'parser';\r\n// Backslash backslash, backslash quote, uHHHH, UHHHHHH.\r\nconst KNOWN_ESCAPES = /(?:\\\\\\\\|\\\\'|\\\\u([0-9a-fA-F]{4})|\\\\U([0-9a-fA-F]{6}))/g;\r\nfunction fromEscapeSequence(match, codePoint4, codePoint6) {\r\n switch (match) {\r\n case `\\\\\\\\`:\r\n return `\\\\`;\r\n case `\\\\\\'`:\r\n return `\\'`;\r\n default: {\r\n const codePoint = parseInt(codePoint4 || codePoint6, 16);\r\n if (codePoint <= 0xd7ff || codePoint >= 0xe000) {\r\n return String.fromCodePoint(codePoint);\r\n }\r\n // invalid ...\r\n // Replace them with U+FFFD REPLACEMENT CHARACTER.\r\n return '<27>';\r\n }\r\n }\r\n}\r\nfunction createParser(options = {}) {\r\n const location = options.location !== false;\r\n const { onError } = options;\r\n function emitError(tokenzer, code, start, offset, ...args) {\r\n const end = tokenzer.currentPosition();\r\n end.offset += offset;\r\n end.column += offset;\r\n if (onError) {\r\n const loc = createLocation(start, end);\r\n const err = createCompileError(code, loc, {\r\n domain: ERROR_DOMAIN,\r\n args\r\n });\r\n onError(err);\r\n }\r\n }\r\n function startNode(type, offset, loc) {\r\n const node = {\r\n type,\r\n start: offset,\r\n end: offset\r\n };\r\n if (location) {\r\n node.loc = { start: loc, end: loc };\r\n }\r\n return node;\r\n }\r\n function endNode(node, offset, pos, type) {\r\n node.end = offset;\r\n if (type) {\r\n node.type = type;\r\n }\r\n if (location && node.loc) {\r\n node.loc.end = pos;\r\n }\r\n }\r\n function parseText(tokenizer, value) {\r\n const context = tokenizer.context();\r\n const node = startNode(3 /* Text */, context.offset, context.startLoc);\r\n node.value = value;\r\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return node;\r\n }\r\n function parseList(tokenizer, index) {\r\n const context = tokenizer.context();\r\n const { lastOffset: offset, lastStartLoc: loc } = context; // get brace left loc\r\n const node = startNode(5 /* List */, offset, loc);\r\n node.index = parseInt(index, 10);\r\n tokenizer.nextToken(); // skip brach right\r\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return node;\r\n }\r\n function parseNamed(tokenizer, key) {\r\n const context = tokenizer.context();\r\n const { lastOffset: offset, lastStartLoc: loc } = context; // get brace left loc\r\n const node = startNode(4 /* Named */, offset, loc);\r\n node.key = key;\r\n tokenizer.nextToken(); // skip brach right\r\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return node;\r\n }\r\n function parseLiteral(tokenizer, value) {\r\n const context = tokenizer.context();\r\n const { lastOffset: offset, lastStartLoc: loc } = context; // get brace left loc\r\n const node = startNode(9 /* Literal */, offset, loc);\r\n node.value = value.replace(KNOWN_ESCAPES, fromEscapeSequence);\r\n tokenizer.nextToken(); // skip brach right\r\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return node;\r\n }\r\n function parseLinkedModifier(tokenizer) {\r\n const token = tokenizer.nextToken();\r\n const context = tokenizer.context();\r\n const { lastOffset: offset, lastStartLoc: loc } = context; // get linked dot loc\r\n const node = startNode(8 /* LinkedModifier */, offset, loc);\r\n if (token.type !== 12 /* LinkedModifier */) {\r\n // empty modifier\r\n emitError(tokenizer, 11 /* UNEXPECTED_EMPTY_LINKED_MODIFIER */, context.lastStartLoc, 0);\r\n node.value = '';\r\n endNode(node, offset, loc);\r\n return {\r\n nextConsumeToken: token,\r\n node\r\n };\r\n }\r\n // check token\r\n if (token.value == null) {\r\n emitError(tokenizer, 13 /* UNEXPECTED_LEXICAL_ANALYSIS */, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n node.value = token.value || '';\r\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return {\r\n node\r\n };\r\n }\r\n function parseLinkedKey(tokenizer, value) {\r\n const context = tokenizer.context();\r\n const node = startNode(7 /* LinkedKey */, context.offset, context.startLoc);\r\n node.value = value;\r\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return node;\r\n }\r\n function parseLinked(tokenizer) {\r\n const context = tokenizer.context();\r\n const linkedNode = startNode(6 /* Linked */, context.offset, context.startLoc);\r\n let token = tokenizer.nextToken();\r\n if (token.type === 9 /* LinkedDot */) {\r\n const parsed = parseLinkedModifier(tokenizer);\r\n linkedNode.modifier = parsed.node;\r\n token = parsed.nextConsumeToken || tokenizer.nextToken();\r\n }\r\n // asset check token\r\n if (token.type !== 10 /* LinkedDelimiter */) {\r\n emitError(tokenizer, 13 /* UNEXPECTED_LEXICAL_ANALYSIS */, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n token = tokenizer.nextToken();\r\n // skip brace left\r\n if (token.type === 2 /* BraceLeft */) {\r\n token = tokenizer.nextToken();\r\n }\r\n switch (token.type) {\r\n case 11 /* LinkedKey */:\r\n if (token.value == null) {\r\n emitError(tokenizer, 13 /* UNEXPECTED_LEXICAL_ANALYSIS */, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n linkedNode.key = parseLinkedKey(tokenizer, token.value || '');\r\n break;\r\n case 5 /* Named */:\r\n if (token.value == null) {\r\n emitError(tokenizer, 13 /* UNEXPECTED_LEXICAL_ANALYSIS */, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n linkedNode.key = parseNamed(tokenizer, token.value || '');\r\n break;\r\n case 6 /* List */:\r\n if (token.value == null) {\r\n emitError(tokenizer, 13 /* UNEXPECTED_LEXICAL_ANALYSIS */, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n linkedNode.key = parseList(tokenizer, token.value || '');\r\n break;\r\n case 7 /* Literal */:\r\n if (token.value == null) {\r\n emitError(tokenizer, 13 /* UNEXPECTED_LEXICAL_ANALYSIS */, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n linkedNode.key = parseLiteral(tokenizer, token.value || '');\r\n break;\r\n default:\r\n // empty key\r\n emitError(tokenizer, 12 /* UNEXPECTED_EMPTY_LINKED_KEY */, context.lastStartLoc, 0);\r\n const nextContext = tokenizer.context();\r\n const emptyLinkedKeyNode = startNode(7 /* LinkedKey */, nextContext.offset, nextContext.startLoc);\r\n emptyLinkedKeyNode.value = '';\r\n endNode(emptyLinkedKeyNode, nextContext.offset, nextContext.startLoc);\r\n linkedNode.key = emptyLinkedKeyNode;\r\n endNode(linkedNode, nextContext.offset, nextContext.startLoc);\r\n return {\r\n nextConsumeToken: token,\r\n node: linkedNode\r\n };\r\n }\r\n endNode(linkedNode, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return {\r\n node: linkedNode\r\n };\r\n }\r\n function parseMessage(tokenizer) {\r\n const context = tokenizer.context();\r\n const startOffset = context.currentType === 1 /* Pipe */\r\n ? tokenizer.currentOffset()\r\n : context.offset;\r\n const startLoc = context.currentType === 1 /* Pipe */\r\n ? context.endLoc\r\n : context.startLoc;\r\n const node = startNode(2 /* Message */, startOffset, startLoc);\r\n node.items = [];\r\n let nextToken = null;\r\n do {\r\n const token = nextToken || tokenizer.nextToken();\r\n nextToken = null;\r\n switch (token.type) {\r\n case 0 /* Text */:\r\n if (token.value == null) {\r\n emitError(tokenizer, 13 /* UNEXPECTED_LEXICAL_ANALYSIS */, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n node.items.push(parseText(tokenizer, token.value || ''));\r\n break;\r\n case 6 /* List */:\r\n if (token.value == null) {\r\n emitError(tokenizer, 13 /* UNEXPECTED_LEXICAL_ANALYSIS */, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n node.items.push(parseList(tokenizer, token.value || ''));\r\n break;\r\n case 5 /* Named */:\r\n if (token.value == null) {\r\n emitError(tokenizer, 13 /* UNEXPECTED_LEXICAL_ANALYSIS */, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n node.items.push(parseNamed(tokenizer, token.value || ''));\r\n break;\r\n case 7 /* Literal */:\r\n if (token.value == null) {\r\n emitError(tokenizer, 13 /* UNEXPECTED_LEXICAL_ANALYSIS */, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n node.items.push(parseLiteral(tokenizer, token.value || ''));\r\n break;\r\n case 8 /* LinkedAlias */:\r\n const parsed = parseLinked(tokenizer);\r\n node.items.push(parsed.node);\r\n nextToken = parsed.nextConsumeToken || null;\r\n break;\r\n }\r\n } while (context.currentType !== 14 /* EOF */ &&\r\n context.currentType !== 1 /* Pipe */);\r\n // adjust message node loc\r\n const endOffset = context.currentType === 1 /* Pipe */\r\n ? context.lastOffset\r\n : tokenizer.currentOffset();\r\n const endLoc = context.currentType === 1 /* Pipe */\r\n ? context.lastEndLoc\r\n : tokenizer.currentPosition();\r\n endNode(node, endOffset, endLoc);\r\n return node;\r\n }\r\n function parsePlural(tokenizer, offset, loc, msgNode) {\r\n const context = tokenizer.context();\r\n let hasEmptyMessage = msgNode.items.length === 0;\r\n const node = startNode(1 /* Plural */, offset, loc);\r\n node.cases = [];\r\n node.cases.push(msgNode);\r\n do {\r\n const msg = parseMessage(tokenizer);\r\n if (!hasEmptyMessage) {\r\n hasEmptyMessage = msg.items.length === 0;\r\n }\r\n node.cases.push(msg);\r\n } while (context.currentType !== 14 /* EOF */);\r\n if (hasEmptyMessage) {\r\n emitError(tokenizer, 10 /* MUST_HAVE_MESSAGES_IN_PLURAL */, loc, 0);\r\n }\r\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return node;\r\n }\r\n function parseResource(tokenizer) {\r\n const context = tokenizer.context();\r\n const { offset, startLoc } = context;\r\n const msgNode = parseMessage(tokenizer);\r\n if (context.currentType === 14 /* EOF */) {\r\n return msgNode;\r\n }\r\n else {\r\n return parsePlural(tokenizer, offset, startLoc, msgNode);\r\n }\r\n }\r\n function parse(source) {\r\n const tokenizer = createTokenizer(source, assign({}, options));\r\n const context = tokenizer.context();\r\n const node = startNode(0 /* Resource */, context.offset, context.startLoc);\r\n if (location && node.loc) {\r\n node.loc.source = source;\r\n }\r\n node.body = parseResource(tokenizer);\r\n // assert whether achieved to EOF\r\n if (context.currentType !== 14 /* EOF */) {\r\n emitError(tokenizer, 13 /* UNEXPECTED_LEXICAL_ANALYSIS */, context.lastStartLoc, 0, source[context.offset] || '');\r\n }\r\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return node;\r\n }\r\n return { parse };\r\n}\r\nfunction getTokenCaption(token) {\r\n if (token.type === 14 /* EOF */) {\r\n return 'EOF';\r\n }\r\n const name = (token.value || '').replace(/\\r?\\n/gu, '\\\\n');\r\n return name.length > 10 ? name.slice(0, 9) + '…' : name;\r\n}\n\nfunction createTransformer(ast, options = {} // eslint-disable-line\r\n) {\r\n const _context = {\r\n ast,\r\n helpers: new Set()\r\n };\r\n const context = () => _context;\r\n const helper = (name) => {\r\n _context.helpers.add(name);\r\n return name;\r\n };\r\n return { context, helper };\r\n}\r\nfunction traverseNodes(nodes, transformer) {\r\n for (let i = 0; i < nodes.length; i++) {\r\n traverseNode(nodes[i], transformer);\r\n }\r\n}\r\nfunction traverseNode(node, transformer) {\r\n // TODO: if we need pre-hook of transform, should be implemented to here\r\n switch (node.type) {\r\n case 1 /* Plural */:\r\n traverseNodes(node.cases, transformer);\r\n transformer.helper(\"plural\" /* PLURAL */);\r\n break;\r\n case 2 /* Message */:\r\n traverseNodes(node.items, transformer);\r\n break;\r\n case 6 /* Linked */:\r\n const linked = node;\r\n traverseNode(linked.key, transformer);\r\n transformer.helper(\"linked\" /* LINKED */);\r\n break;\r\n case 5 /* List */:\r\n transformer.helper(\"interpolate\" /* INTERPOLATE */);\r\n transformer.helper(\"list\" /* LIST */);\r\n break;\r\n case 4 /* Named */:\r\n transformer.helper(\"interpolate\" /* INTERPOLATE */);\r\n transformer.helper(\"named\" /* NAMED */);\r\n break;\r\n }\r\n // TODO: if we need post-hook of transform, should be implemented to here\r\n}\r\n// transform AST\r\nfunction transform(ast, options = {} // eslint-disable-line\r\n) {\r\n const transformer = createTransformer(ast);\r\n transformer.helper(\"normalize\" /* NORMALIZE */);\r\n // traverse\r\n ast.body && traverseNode(ast.body, transformer);\r\n // set meta information\r\n const context = transformer.context();\r\n ast.helpers = Array.from(context.helpers);\r\n}\n\nfunction createCodeGenerator(ast, options) {\r\n const { sourceMap, filename, breakLineCode, needIndent: _needIndent } = options;\r\n const _context = {\r\n source: ast.loc.source,\r\n filename,\r\n code: '',\r\n column: 1,\r\n line: 1,\r\n offset: 0,\r\n map: undefined,\r\n breakLineCode,\r\n needIndent: _needIndent,\r\n indentLevel: 0\r\n };\r\n const context = () => _context;\r\n function push(code, node) {\r\n _context.code += code;\r\n }\r\n function _newline(n, withBreakLine = true) {\r\n const _breakLineCode = withBreakLine ? breakLineCode : '';\r\n push(_needIndent ? _breakLineCode + ` `.repeat(n) : _breakLineCode);\r\n }\r\n function indent(withNewLine = true) {\r\n const level = ++_context.indentLevel;\r\n withNewLine && _newline(level);\r\n }\r\n function deindent(withNewLine = true) {\r\n const level = --_context.indentLevel;\r\n withNewLine && _newline(level);\r\n }\r\n function newline() {\r\n _newline(_context.indentLevel);\r\n }\r\n const helper = (key) => `_${key}`;\r\n const needIndent = () => _context.needIndent;\r\n return {\r\n context,\r\n push,\r\n indent,\r\n deindent,\r\n newline,\r\n helper,\r\n needIndent\r\n };\r\n}\r\nfunction generateLinkedNode(generator, node) {\r\n const { helper } = generator;\r\n generator.push(`${helper(\"linked\" /* LINKED */)}(`);\r\n generateNode(generator, node.key);\r\n if (node.modifier) {\r\n generator.push(`, `);\r\n generateNode(generator, node.modifier);\r\n }\r\n generator.push(`)`);\r\n}\r\nfunction generateMessageNode(generator, node) {\r\n const { helper, needIndent } = generator;\r\n generator.push(`${helper(\"normalize\" /* NORMALIZE */)}([`);\r\n generator.indent(needIndent());\r\n const length = node.items.length;\r\n for (let i = 0; i < length; i++) {\r\n generateNode(generator, node.items[i]);\r\n if (i === length - 1) {\r\n break;\r\n }\r\n generator.push(', ');\r\n }\r\n generator.deindent(needIndent());\r\n generator.push('])');\r\n}\r\nfunction generatePluralNode(generator, node) {\r\n const { helper, needIndent } = generator;\r\n if (node.cases.length > 1) {\r\n generator.push(`${helper(\"plural\" /* PLURAL */)}([`);\r\n generator.indent(needIndent());\r\n const length = node.cases.length;\r\n for (let i = 0; i < length; i++) {\r\n generateNode(generator, node.cases[i]);\r\n if (i === length - 1) {\r\n break;\r\n }\r\n generator.push(', ');\r\n }\r\n generator.deindent(needIndent());\r\n generator.push(`])`);\r\n }\r\n}\r\nfunction generateResource(generator, node) {\r\n if (node.body) {\r\n generateNode(generator, node.body);\r\n }\r\n else {\r\n generator.push('null');\r\n }\r\n}\r\nfunction generateNode(generator, node) {\r\n const { helper } = generator;\r\n switch (node.type) {\r\n case 0 /* Resource */:\r\n generateResource(generator, node);\r\n break;\r\n case 1 /* Plural */:\r\n generatePluralNode(generator, node);\r\n break;\r\n case 2 /* Message */:\r\n generateMessageNode(generator, node);\r\n break;\r\n case 6 /* Linked */:\r\n generateLinkedNode(generator, node);\r\n break;\r\n case 8 /* LinkedModifier */:\r\n generator.push(JSON.stringify(node.value), node);\r\n break;\r\n case 7 /* LinkedKey */:\r\n generator.push(JSON.stringify(node.value), node);\r\n break;\r\n case 5 /* List */:\r\n generator.push(`${helper(\"interpolate\" /* INTERPOLATE */)}(${helper(\"list\" /* LIST */)}(${node.index}))`, node);\r\n break;\r\n case 4 /* Named */:\r\n generator.push(`${helper(\"interpolate\" /* INTERPOLATE */)}(${helper(\"named\" /* NAMED */)}(${JSON.stringify(node.key)}))`, node);\r\n break;\r\n case 9 /* Literal */:\r\n generator.push(JSON.stringify(node.value), node);\r\n break;\r\n case 3 /* Text */:\r\n generator.push(JSON.stringify(node.value), node);\r\n break;\r\n default:\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n throw new Error(`unhandled codegen node type: ${node.type}`);\r\n }\r\n }\r\n}\r\n// generate code from AST\r\nconst generate = (ast, options = {} // eslint-disable-line\r\n) => {\r\n const mode = isString(options.mode) ? options.mode : 'normal';\r\n const filename = isString(options.filename)\r\n ? options.filename\r\n : 'message.intl';\r\n const sourceMap = !!options.sourceMap;\r\n // prettier-ignore\r\n const breakLineCode = options.breakLineCode != null\r\n ? options.breakLineCode\r\n : mode === 'arrow'\r\n ? ';'\r\n : '\\n';\r\n const needIndent = options.needIndent ? options.needIndent : mode !== 'arrow';\r\n const helpers = ast.helpers || [];\r\n const generator = createCodeGenerator(ast, {\r\n mode,\r\n filename,\r\n sourceMap,\r\n breakLineCode,\r\n needIndent\r\n });\r\n generator.push(mode === 'normal' ? `function __msg__ (ctx) {` : `(ctx) => {`);\r\n generator.indent(needIndent);\r\n if (helpers.length > 0) {\r\n generator.push(`const { ${helpers.map(s => `${s}: _${s}`).join(', ')} } = ctx`);\r\n generator.newline();\r\n }\r\n generator.push(`return `);\r\n generateNode(generator, ast);\r\n generator.deindent(needIndent);\r\n generator.push(`}`);\r\n const { code, map } = generator.context();\r\n return {\r\n ast,\r\n code,\r\n map: map ? map.toJSON() : undefined // eslint-disable-line @typescript-eslint/no-explicit-any\r\n };\r\n};\n\nfunction baseCompile(source, options = {}) {\r\n const assignedOptions = assign({}, options);\r\n // parse source codes\r\n const parser = createParser(assignedOptions);\r\n const ast = parser.parse(source);\r\n // transform ASTs\r\n transform(ast, assignedOptions);\r\n // generate javascript codes\r\n return generate(ast, assignedOptions);\r\n}\n\nexport { ERROR_DOMAIN, LocationStub, baseCompile, createCompileError, createLocation, createParser, createPosition, defaultOnError, errorMessages };\n","/*!\n * @intlify/devtools-if v9.1.9\n * (c) 2021 kazuya kawaguchi\n * Released under the MIT License.\n */\nconst IntlifyDevToolsHooks = {\r\n I18nInit: 'i18n:init',\r\n FunctionTranslate: 'function:translate'\r\n};\n\nexport { IntlifyDevToolsHooks };\n","/*!\n * @intlify/core-base v9.1.9\n * (c) 2021 kazuya kawaguchi\n * Released under the MIT License.\n */\nimport { format, isString, isArray, isPlainObject, assign, isFunction, isBoolean, isRegExp, warn, isObject, escapeHtml, inBrowser, mark, measure, generateCodeFrame, generateFormatCacheKey, isNumber, isEmptyObject, isDate, getGlobalThis } from '@intlify/shared';\nimport { resolveValue } from '@intlify/message-resolver';\nexport * from '@intlify/message-resolver';\nimport { createMessageContext } from '@intlify/runtime';\nexport * from '@intlify/runtime';\nimport { defaultOnError, baseCompile, createCompileError } from '@intlify/message-compiler';\nexport { createCompileError } from '@intlify/message-compiler';\nimport { IntlifyDevToolsHooks } from '@intlify/devtools-if';\n\nlet devtools = null;\r\nfunction setDevToolsHook(hook) {\r\n devtools = hook;\r\n}\r\nfunction getDevToolsHook() {\r\n return devtools;\r\n}\r\nfunction initI18nDevTools(i18n, version, meta) {\r\n // TODO: queue if devtools is undefined\r\n devtools &&\r\n devtools.emit(IntlifyDevToolsHooks.I18nInit, {\r\n timestamp: Date.now(),\r\n i18n,\r\n version,\r\n meta\r\n });\r\n}\r\nconst translateDevTools = /* #__PURE__*/ createDevToolsHook(IntlifyDevToolsHooks.FunctionTranslate);\r\nfunction createDevToolsHook(hook) {\r\n return (payloads) => devtools && devtools.emit(hook, payloads);\r\n}\n\n/** @internal */\r\nconst warnMessages = {\r\n [0 /* NOT_FOUND_KEY */]: `Not found '{key}' key in '{locale}' locale messages.`,\r\n [1 /* FALLBACK_TO_TRANSLATE */]: `Fall back to translate '{key}' key with '{target}' locale.`,\r\n [2 /* CANNOT_FORMAT_NUMBER */]: `Cannot format a number value due to not supported Intl.NumberFormat.`,\r\n [3 /* FALLBACK_TO_NUMBER_FORMAT */]: `Fall back to number format '{key}' key with '{target}' locale.`,\r\n [4 /* CANNOT_FORMAT_DATE */]: `Cannot format a date value due to not supported Intl.DateTimeFormat.`,\r\n [5 /* FALLBACK_TO_DATE_FORMAT */]: `Fall back to datetime format '{key}' key with '{target}' locale.`\r\n};\r\nfunction getWarnMessage(code, ...args) {\r\n return format(warnMessages[code], ...args);\r\n}\n\n/**\r\n * Intlify core-base version\r\n * @internal\r\n */\r\nconst VERSION = '9.1.9';\r\nconst NOT_REOSLVED = -1;\r\nconst MISSING_RESOLVE_VALUE = '';\r\nfunction getDefaultLinkedModifiers() {\r\n return {\r\n upper: (val) => (isString(val) ? val.toUpperCase() : val),\r\n lower: (val) => (isString(val) ? val.toLowerCase() : val),\r\n // prettier-ignore\r\n capitalize: (val) => (isString(val)\r\n ? `${val.charAt(0).toLocaleUpperCase()}${val.substr(1)}`\r\n : val)\r\n };\r\n}\r\nlet _compiler;\r\nfunction registerMessageCompiler(compiler) {\r\n _compiler = compiler;\r\n}\r\n// Additional Meta for Intlify DevTools\r\nlet _additionalMeta = null;\r\nconst setAdditionalMeta = /* #__PURE__*/ (meta) => {\r\n _additionalMeta = meta;\r\n};\r\nconst getAdditionalMeta = /* #__PURE__*/ () => _additionalMeta;\r\n// ID for CoreContext\r\nlet _cid = 0;\r\nfunction createCoreContext(options = {}) {\r\n // setup options\r\n const version = isString(options.version) ? options.version : VERSION;\r\n const locale = isString(options.locale) ? options.locale : 'en-US';\r\n const fallbackLocale = isArray(options.fallbackLocale) ||\r\n isPlainObject(options.fallbackLocale) ||\r\n isString(options.fallbackLocale) ||\r\n options.fallbackLocale === false\r\n ? options.fallbackLocale\r\n : locale;\r\n const messages = isPlainObject(options.messages)\r\n ? options.messages\r\n : { [locale]: {} };\r\n const datetimeFormats = isPlainObject(options.datetimeFormats)\r\n ? options.datetimeFormats\r\n : { [locale]: {} };\r\n const numberFormats = isPlainObject(options.numberFormats)\r\n ? options.numberFormats\r\n : { [locale]: {} };\r\n const modifiers = assign({}, options.modifiers || {}, getDefaultLinkedModifiers());\r\n const pluralRules = options.pluralRules || {};\r\n const missing = isFunction(options.missing) ? options.missing : null;\r\n const missingWarn = isBoolean(options.missingWarn) || isRegExp(options.missingWarn)\r\n ? options.missingWarn\r\n : true;\r\n const fallbackWarn = isBoolean(options.fallbackWarn) || isRegExp(options.fallbackWarn)\r\n ? options.fallbackWarn\r\n : true;\r\n const fallbackFormat = !!options.fallbackFormat;\r\n const unresolving = !!options.unresolving;\r\n const postTranslation = isFunction(options.postTranslation)\r\n ? options.postTranslation\r\n : null;\r\n const processor = isPlainObject(options.processor) ? options.processor : null;\r\n const warnHtmlMessage = isBoolean(options.warnHtmlMessage)\r\n ? options.warnHtmlMessage\r\n : true;\r\n const escapeParameter = !!options.escapeParameter;\r\n const messageCompiler = isFunction(options.messageCompiler)\r\n ? options.messageCompiler\r\n : _compiler;\r\n const onWarn = isFunction(options.onWarn) ? options.onWarn : warn;\r\n // setup internal options\r\n const internalOptions = options;\r\n const __datetimeFormatters = isObject(internalOptions.__datetimeFormatters)\r\n ? internalOptions.__datetimeFormatters\r\n : new Map();\r\n const __numberFormatters = isObject(internalOptions.__numberFormatters)\r\n ? internalOptions.__numberFormatters\r\n : new Map();\r\n const __meta = isObject(internalOptions.__meta) ? internalOptions.__meta : {};\r\n _cid++;\r\n const context = {\r\n version,\r\n cid: _cid,\r\n locale,\r\n fallbackLocale,\r\n messages,\r\n datetimeFormats,\r\n numberFormats,\r\n modifiers,\r\n pluralRules,\r\n missing,\r\n missingWarn,\r\n fallbackWarn,\r\n fallbackFormat,\r\n unresolving,\r\n postTranslation,\r\n processor,\r\n warnHtmlMessage,\r\n escapeParameter,\r\n messageCompiler,\r\n onWarn,\r\n __datetimeFormatters,\r\n __numberFormatters,\r\n __meta\r\n };\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n context.__v_emitter =\r\n internalOptions.__v_emitter != null\r\n ? internalOptions.__v_emitter\r\n : undefined;\r\n }\r\n // NOTE: experimental !!\r\n if ((process.env.NODE_ENV !== 'production') || __INTLIFY_PROD_DEVTOOLS__) {\r\n initI18nDevTools(context, version, __meta);\r\n }\r\n return context;\r\n}\r\n/** @internal */\r\nfunction isTranslateFallbackWarn(fallback, key) {\r\n return fallback instanceof RegExp ? fallback.test(key) : fallback;\r\n}\r\n/** @internal */\r\nfunction isTranslateMissingWarn(missing, key) {\r\n return missing instanceof RegExp ? missing.test(key) : missing;\r\n}\r\n/** @internal */\r\nfunction handleMissing(context, key, locale, missingWarn, type) {\r\n const { missing, onWarn } = context;\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const emitter = context.__v_emitter;\r\n if (emitter) {\r\n emitter.emit(\"missing\" /* MISSING */, {\r\n locale,\r\n key,\r\n type,\r\n groupId: `${type}:${key}`\r\n });\r\n }\r\n }\r\n if (missing !== null) {\r\n const ret = missing(context, locale, key, type);\r\n return isString(ret) ? ret : key;\r\n }\r\n else {\r\n if ((process.env.NODE_ENV !== 'production') && isTranslateMissingWarn(missingWarn, key)) {\r\n onWarn(getWarnMessage(0 /* NOT_FOUND_KEY */, { key, locale }));\r\n }\r\n return key;\r\n }\r\n}\r\n/** @internal */\r\nfunction getLocaleChain(ctx, fallback, start) {\r\n const context = ctx;\r\n if (!context.__localeChainCache) {\r\n context.__localeChainCache = new Map();\r\n }\r\n let chain = context.__localeChainCache.get(start);\r\n if (!chain) {\r\n chain = [];\r\n // first block defined by start\r\n let block = [start];\r\n // while any intervening block found\r\n while (isArray(block)) {\r\n block = appendBlockToChain(chain, block, fallback);\r\n }\r\n // prettier-ignore\r\n // last block defined by default\r\n const defaults = isArray(fallback)\r\n ? fallback\r\n : isPlainObject(fallback)\r\n ? fallback['default']\r\n ? fallback['default']\r\n : null\r\n : fallback;\r\n // convert defaults to array\r\n block = isString(defaults) ? [defaults] : defaults;\r\n if (isArray(block)) {\r\n appendBlockToChain(chain, block, false);\r\n }\r\n context.__localeChainCache.set(start, chain);\r\n }\r\n return chain;\r\n}\r\nfunction appendBlockToChain(chain, block, blocks) {\r\n let follow = true;\r\n for (let i = 0; i < block.length && isBoolean(follow); i++) {\r\n const locale = block[i];\r\n if (isString(locale)) {\r\n follow = appendLocaleToChain(chain, block[i], blocks);\r\n }\r\n }\r\n return follow;\r\n}\r\nfunction appendLocaleToChain(chain, locale, blocks) {\r\n let follow;\r\n const tokens = locale.split('-');\r\n do {\r\n const target = tokens.join('-');\r\n follow = appendItemToChain(chain, target, blocks);\r\n tokens.splice(-1, 1);\r\n } while (tokens.length && follow === true);\r\n return follow;\r\n}\r\nfunction appendItemToChain(chain, target, blocks) {\r\n let follow = false;\r\n if (!chain.includes(target)) {\r\n follow = true;\r\n if (target) {\r\n follow = target[target.length - 1] !== '!';\r\n const locale = target.replace(/!/g, '');\r\n chain.push(locale);\r\n if ((isArray(blocks) || isPlainObject(blocks)) &&\r\n blocks[locale] // eslint-disable-line @typescript-eslint/no-explicit-any\r\n ) {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n follow = blocks[locale];\r\n }\r\n }\r\n }\r\n return follow;\r\n}\r\n/** @internal */\r\nfunction updateFallbackLocale(ctx, locale, fallback) {\r\n const context = ctx;\r\n context.__localeChainCache = new Map();\r\n getLocaleChain(ctx, fallback, locale);\r\n}\n\nconst RE_HTML_TAG = /<\\/?[\\w\\s=\"/.':;#-\\/]+>/;\r\nconst WARN_MESSAGE = `Detected HTML in '{source}' message. Recommend not using HTML messages to avoid XSS.`;\r\nfunction checkHtmlMessage(source, options) {\r\n const warnHtmlMessage = isBoolean(options.warnHtmlMessage)\r\n ? options.warnHtmlMessage\r\n : true;\r\n if (warnHtmlMessage && RE_HTML_TAG.test(source)) {\r\n warn(format(WARN_MESSAGE, { source }));\r\n }\r\n}\r\nconst defaultOnCacheKey = (source) => source;\r\nlet compileCache = Object.create(null);\r\nfunction clearCompileCache() {\r\n compileCache = Object.create(null);\r\n}\r\nfunction compileToFunction(source, options = {}) {\r\n {\r\n // check HTML message\r\n (process.env.NODE_ENV !== 'production') && checkHtmlMessage(source, options);\r\n // check caches\r\n const onCacheKey = options.onCacheKey || defaultOnCacheKey;\r\n const key = onCacheKey(source);\r\n const cached = compileCache[key];\r\n if (cached) {\r\n return cached;\r\n }\r\n // compile error detecting\r\n let occurred = false;\r\n const onError = options.onError || defaultOnError;\r\n options.onError = (err) => {\r\n occurred = true;\r\n onError(err);\r\n };\r\n // compile\r\n const { code } = baseCompile(source, options);\r\n // evaluate function\r\n const msg = new Function(`return ${code}`)();\r\n // if occurred compile error, don't cache\r\n return !occurred ? (compileCache[key] = msg) : msg;\r\n }\r\n}\n\nfunction createCoreError(code) {\r\n return createCompileError(code, null, (process.env.NODE_ENV !== 'production') ? { messages: errorMessages } : undefined);\r\n}\r\n/** @internal */\r\nconst errorMessages = {\r\n [14 /* INVALID_ARGUMENT */]: 'Invalid arguments',\r\n [15 /* INVALID_DATE_ARGUMENT */]: 'The date provided is an invalid Date object.' +\r\n 'Make sure your Date represents a valid date.',\r\n [16 /* INVALID_ISO_DATE_ARGUMENT */]: 'The argument provided is not a valid ISO date string'\r\n};\n\nconst NOOP_MESSAGE_FUNCTION = () => '';\r\nconst isMessageFunction = (val) => isFunction(val);\r\n// implementation of `translate` function\r\nfunction translate(context, ...args) {\r\n const { fallbackFormat, postTranslation, unresolving, fallbackLocale, messages } = context;\r\n const [key, options] = parseTranslateArgs(...args);\r\n const missingWarn = isBoolean(options.missingWarn)\r\n ? options.missingWarn\r\n : context.missingWarn;\r\n const fallbackWarn = isBoolean(options.fallbackWarn)\r\n ? options.fallbackWarn\r\n : context.fallbackWarn;\r\n const escapeParameter = isBoolean(options.escapeParameter)\r\n ? options.escapeParameter\r\n : context.escapeParameter;\r\n const resolvedMessage = !!options.resolvedMessage;\r\n // prettier-ignore\r\n const defaultMsgOrKey = isString(options.default) || isBoolean(options.default) // default by function option\r\n ? !isBoolean(options.default)\r\n ? options.default\r\n : key\r\n : fallbackFormat // default by `fallbackFormat` option\r\n ? key\r\n : '';\r\n const enableDefaultMsg = fallbackFormat || defaultMsgOrKey !== '';\r\n const locale = isString(options.locale) ? options.locale : context.locale;\r\n // escape params\r\n escapeParameter && escapeParams(options);\r\n // resolve message format\r\n // eslint-disable-next-line prefer-const\r\n let [format, targetLocale, message] = !resolvedMessage\r\n ? resolveMessageFormat(context, key, locale, fallbackLocale, fallbackWarn, missingWarn)\r\n : [\r\n key,\r\n locale,\r\n messages[locale] || {}\r\n ];\r\n // if you use default message, set it as message format!\r\n let cacheBaseKey = key;\r\n if (!resolvedMessage &&\r\n !(isString(format) || isMessageFunction(format))) {\r\n if (enableDefaultMsg) {\r\n format = defaultMsgOrKey;\r\n cacheBaseKey = format;\r\n }\r\n }\r\n // checking message format and target locale\r\n if (!resolvedMessage &&\r\n (!(isString(format) || isMessageFunction(format)) ||\r\n !isString(targetLocale))) {\r\n return unresolving ? NOT_REOSLVED : key;\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && isString(format) && context.messageCompiler == null) {\r\n warn(`The message format compilation is not supported in this build. ` +\r\n `Because message compiler isn't included. ` +\r\n `You need to pre-compilation all message format. ` +\r\n `So translate function return '${key}'.`);\r\n return key;\r\n }\r\n // setup compile error detecting\r\n let occurred = false;\r\n const errorDetector = () => {\r\n occurred = true;\r\n };\r\n // compile message format\r\n const msg = !isMessageFunction(format)\r\n ? compileMessageFormat(context, key, targetLocale, format, cacheBaseKey, errorDetector)\r\n : format;\r\n // if occurred compile error, return the message format\r\n if (occurred) {\r\n return format;\r\n }\r\n // evaluate message with context\r\n const ctxOptions = getMessageContextOptions(context, targetLocale, message, options);\r\n const msgContext = createMessageContext(ctxOptions);\r\n const messaged = evaluateMessage(context, msg, msgContext);\r\n // if use post translation option, proceed it with handler\r\n const ret = postTranslation ? postTranslation(messaged) : messaged;\r\n // NOTE: experimental !!\r\n if ((process.env.NODE_ENV !== 'production') || __INTLIFY_PROD_DEVTOOLS__) {\r\n // prettier-ignore\r\n const payloads = {\r\n timestamp: Date.now(),\r\n key: isString(key)\r\n ? key\r\n : isMessageFunction(format)\r\n ? format.key\r\n : '',\r\n locale: targetLocale || (isMessageFunction(format)\r\n ? format.locale\r\n : ''),\r\n format: isString(format)\r\n ? format\r\n : isMessageFunction(format)\r\n ? format.source\r\n : '',\r\n message: ret\r\n };\r\n payloads.meta = assign({}, context.__meta, getAdditionalMeta() || {});\r\n translateDevTools(payloads);\r\n }\r\n return ret;\r\n}\r\nfunction escapeParams(options) {\r\n if (isArray(options.list)) {\r\n options.list = options.list.map(item => isString(item) ? escapeHtml(item) : item);\r\n }\r\n else if (isObject(options.named)) {\r\n Object.keys(options.named).forEach(key => {\r\n if (isString(options.named[key])) {\r\n options.named[key] = escapeHtml(options.named[key]);\r\n }\r\n });\r\n }\r\n}\r\nfunction resolveMessageFormat(context, key, locale, fallbackLocale, fallbackWarn, missingWarn) {\r\n const { messages, onWarn } = context;\r\n const locales = getLocaleChain(context, fallbackLocale, locale);\r\n let message = {};\r\n let targetLocale;\r\n let format = null;\r\n let from = locale;\r\n let to = null;\r\n const type = 'translate';\r\n for (let i = 0; i < locales.length; i++) {\r\n targetLocale = to = locales[i];\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n locale !== targetLocale &&\r\n isTranslateFallbackWarn(fallbackWarn, key)) {\r\n onWarn(getWarnMessage(1 /* FALLBACK_TO_TRANSLATE */, {\r\n key,\r\n target: targetLocale\r\n }));\r\n }\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production') && locale !== targetLocale) {\r\n const emitter = context.__v_emitter;\r\n if (emitter) {\r\n emitter.emit(\"fallback\" /* FALBACK */, {\r\n type,\r\n key,\r\n from,\r\n to,\r\n groupId: `${type}:${key}`\r\n });\r\n }\r\n }\r\n message =\r\n messages[targetLocale] || {};\r\n // for vue-devtools timeline event\r\n let start = null;\r\n let startTag;\r\n let endTag;\r\n if ((process.env.NODE_ENV !== 'production') && inBrowser) {\r\n start = window.performance.now();\r\n startTag = 'intlify-message-resolve-start';\r\n endTag = 'intlify-message-resolve-end';\r\n mark && mark(startTag);\r\n }\r\n if ((format = resolveValue(message, key)) === null) {\r\n // if null, resolve with object key path\r\n format = message[key]; // eslint-disable-line @typescript-eslint/no-explicit-any\r\n }\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production') && inBrowser) {\r\n const end = window.performance.now();\r\n const emitter = context.__v_emitter;\r\n if (emitter && start && format) {\r\n emitter.emit(\"message-resolve\" /* MESSAGE_RESOLVE */, {\r\n type: \"message-resolve\" /* MESSAGE_RESOLVE */,\r\n key,\r\n message: format,\r\n time: end - start,\r\n groupId: `${type}:${key}`\r\n });\r\n }\r\n if (startTag && endTag && mark && measure) {\r\n mark(endTag);\r\n measure('intlify message resolve', startTag, endTag);\r\n }\r\n }\r\n if (isString(format) || isFunction(format))\r\n break;\r\n const missingRet = handleMissing(context, key, targetLocale, missingWarn, type);\r\n if (missingRet !== key) {\r\n format = missingRet;\r\n }\r\n from = to;\r\n }\r\n return [format, targetLocale, message];\r\n}\r\nfunction compileMessageFormat(context, key, targetLocale, format, cacheBaseKey, errorDetector) {\r\n const { messageCompiler, warnHtmlMessage } = context;\r\n if (isMessageFunction(format)) {\r\n const msg = format;\r\n msg.locale = msg.locale || targetLocale;\r\n msg.key = msg.key || key;\r\n return msg;\r\n }\r\n // for vue-devtools timeline event\r\n let start = null;\r\n let startTag;\r\n let endTag;\r\n if ((process.env.NODE_ENV !== 'production') && inBrowser) {\r\n start = window.performance.now();\r\n startTag = 'intlify-message-compilation-start';\r\n endTag = 'intlify-message-compilation-end';\r\n mark && mark(startTag);\r\n }\r\n const msg = messageCompiler(format, getCompileOptions(context, targetLocale, cacheBaseKey, format, warnHtmlMessage, errorDetector));\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production') && inBrowser) {\r\n const end = window.performance.now();\r\n const emitter = context.__v_emitter;\r\n if (emitter && start) {\r\n emitter.emit(\"message-compilation\" /* MESSAGE_COMPILATION */, {\r\n type: \"message-compilation\" /* MESSAGE_COMPILATION */,\r\n message: format,\r\n time: end - start,\r\n groupId: `${'translate'}:${key}`\r\n });\r\n }\r\n if (startTag && endTag && mark && measure) {\r\n mark(endTag);\r\n measure('intlify message compilation', startTag, endTag);\r\n }\r\n }\r\n msg.locale = targetLocale;\r\n msg.key = key;\r\n msg.source = format;\r\n return msg;\r\n}\r\nfunction evaluateMessage(context, msg, msgCtx) {\r\n // for vue-devtools timeline event\r\n let start = null;\r\n let startTag;\r\n let endTag;\r\n if ((process.env.NODE_ENV !== 'production') && inBrowser) {\r\n start = window.performance.now();\r\n startTag = 'intlify-message-evaluation-start';\r\n endTag = 'intlify-message-evaluation-end';\r\n mark && mark(startTag);\r\n }\r\n const messaged = msg(msgCtx);\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production') && inBrowser) {\r\n const end = window.performance.now();\r\n const emitter = context.__v_emitter;\r\n if (emitter && start) {\r\n emitter.emit(\"message-evaluation\" /* MESSAGE_EVALUATION */, {\r\n type: \"message-evaluation\" /* MESSAGE_EVALUATION */,\r\n value: messaged,\r\n time: end - start,\r\n groupId: `${'translate'}:${msg.key}`\r\n });\r\n }\r\n if (startTag && endTag && mark && measure) {\r\n mark(endTag);\r\n measure('intlify message evaluation', startTag, endTag);\r\n }\r\n }\r\n return messaged;\r\n}\r\n/** @internal */\r\nfunction parseTranslateArgs(...args) {\r\n const [arg1, arg2, arg3] = args;\r\n const options = {};\r\n if (!isString(arg1) && !isNumber(arg1) && !isMessageFunction(arg1)) {\r\n throw createCoreError(14 /* INVALID_ARGUMENT */);\r\n }\r\n // prettier-ignore\r\n const key = isNumber(arg1)\r\n ? String(arg1)\r\n : isMessageFunction(arg1)\r\n ? arg1\r\n : arg1;\r\n if (isNumber(arg2)) {\r\n options.plural = arg2;\r\n }\r\n else if (isString(arg2)) {\r\n options.default = arg2;\r\n }\r\n else if (isPlainObject(arg2) && !isEmptyObject(arg2)) {\r\n options.named = arg2;\r\n }\r\n else if (isArray(arg2)) {\r\n options.list = arg2;\r\n }\r\n if (isNumber(arg3)) {\r\n options.plural = arg3;\r\n }\r\n else if (isString(arg3)) {\r\n options.default = arg3;\r\n }\r\n else if (isPlainObject(arg3)) {\r\n assign(options, arg3);\r\n }\r\n return [key, options];\r\n}\r\nfunction getCompileOptions(context, locale, key, source, warnHtmlMessage, errorDetector) {\r\n return {\r\n warnHtmlMessage,\r\n onError: (err) => {\r\n errorDetector && errorDetector(err);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const message = `Message compilation error: ${err.message}`;\r\n const codeFrame = err.location &&\r\n generateCodeFrame(source, err.location.start.offset, err.location.end.offset);\r\n const emitter = context\r\n .__v_emitter;\r\n if (emitter) {\r\n emitter.emit(\"compile-error\" /* COMPILE_ERROR */, {\r\n message: source,\r\n error: err.message,\r\n start: err.location && err.location.start.offset,\r\n end: err.location && err.location.end.offset,\r\n groupId: `${'translate'}:${key}`\r\n });\r\n }\r\n console.error(codeFrame ? `${message}\\n${codeFrame}` : message);\r\n }\r\n else {\r\n throw err;\r\n }\r\n },\r\n onCacheKey: (source) => generateFormatCacheKey(locale, key, source)\r\n };\r\n}\r\nfunction getMessageContextOptions(context, locale, message, options) {\r\n const { modifiers, pluralRules } = context;\r\n const resolveMessage = (key) => {\r\n const val = resolveValue(message, key);\r\n if (isString(val)) {\r\n let occurred = false;\r\n const errorDetector = () => {\r\n occurred = true;\r\n };\r\n const msg = compileMessageFormat(context, key, locale, val, key, errorDetector);\r\n return !occurred\r\n ? msg\r\n : NOOP_MESSAGE_FUNCTION;\r\n }\r\n else if (isMessageFunction(val)) {\r\n return val;\r\n }\r\n else {\r\n // TODO: should be implemented warning message\r\n return NOOP_MESSAGE_FUNCTION;\r\n }\r\n };\r\n const ctxOptions = {\r\n locale,\r\n modifiers,\r\n pluralRules,\r\n messages: resolveMessage\r\n };\r\n if (context.processor) {\r\n ctxOptions.processor = context.processor;\r\n }\r\n if (options.list) {\r\n ctxOptions.list = options.list;\r\n }\r\n if (options.named) {\r\n ctxOptions.named = options.named;\r\n }\r\n if (isNumber(options.plural)) {\r\n ctxOptions.pluralIndex = options.plural;\r\n }\r\n return ctxOptions;\r\n}\n\nconst intlDefined = typeof Intl !== 'undefined';\r\nconst Availabilities = {\r\n dateTimeFormat: intlDefined && typeof Intl.DateTimeFormat !== 'undefined',\r\n numberFormat: intlDefined && typeof Intl.NumberFormat !== 'undefined'\r\n};\n\n// implementation of `datetime` function\r\nfunction datetime(context, ...args) {\r\n const { datetimeFormats, unresolving, fallbackLocale, onWarn } = context;\r\n const { __datetimeFormatters } = context;\r\n if ((process.env.NODE_ENV !== 'production') && !Availabilities.dateTimeFormat) {\r\n onWarn(getWarnMessage(4 /* CANNOT_FORMAT_DATE */));\r\n return MISSING_RESOLVE_VALUE;\r\n }\r\n const [key, value, options, overrides] = parseDateTimeArgs(...args);\r\n const missingWarn = isBoolean(options.missingWarn)\r\n ? options.missingWarn\r\n : context.missingWarn;\r\n const fallbackWarn = isBoolean(options.fallbackWarn)\r\n ? options.fallbackWarn\r\n : context.fallbackWarn;\r\n const part = !!options.part;\r\n const locale = isString(options.locale) ? options.locale : context.locale;\r\n const locales = getLocaleChain(context, fallbackLocale, locale);\r\n if (!isString(key) || key === '') {\r\n return new Intl.DateTimeFormat(locale).format(value);\r\n }\r\n // resolve format\r\n let datetimeFormat = {};\r\n let targetLocale;\r\n let format = null;\r\n let from = locale;\r\n let to = null;\r\n const type = 'datetime format';\r\n for (let i = 0; i < locales.length; i++) {\r\n targetLocale = to = locales[i];\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n locale !== targetLocale &&\r\n isTranslateFallbackWarn(fallbackWarn, key)) {\r\n onWarn(getWarnMessage(5 /* FALLBACK_TO_DATE_FORMAT */, {\r\n key,\r\n target: targetLocale\r\n }));\r\n }\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production') && locale !== targetLocale) {\r\n const emitter = context.__v_emitter;\r\n if (emitter) {\r\n emitter.emit(\"fallback\" /* FALBACK */, {\r\n type,\r\n key,\r\n from,\r\n to,\r\n groupId: `${type}:${key}`\r\n });\r\n }\r\n }\r\n datetimeFormat =\r\n datetimeFormats[targetLocale] || {};\r\n format = datetimeFormat[key];\r\n if (isPlainObject(format))\r\n break;\r\n handleMissing(context, key, targetLocale, missingWarn, type);\r\n from = to;\r\n }\r\n // checking format and target locale\r\n if (!isPlainObject(format) || !isString(targetLocale)) {\r\n return unresolving ? NOT_REOSLVED : key;\r\n }\r\n let id = `${targetLocale}__${key}`;\r\n if (!isEmptyObject(overrides)) {\r\n id = `${id}__${JSON.stringify(overrides)}`;\r\n }\r\n let formatter = __datetimeFormatters.get(id);\r\n if (!formatter) {\r\n formatter = new Intl.DateTimeFormat(targetLocale, assign({}, format, overrides));\r\n __datetimeFormatters.set(id, formatter);\r\n }\r\n return !part ? formatter.format(value) : formatter.formatToParts(value);\r\n}\r\n/** @internal */\r\nfunction parseDateTimeArgs(...args) {\r\n const [arg1, arg2, arg3, arg4] = args;\r\n let options = {};\r\n let overrides = {};\r\n let value;\r\n if (isString(arg1)) {\r\n // Only allow ISO strings - other date formats are often supported,\r\n // but may cause different results in different browsers.\r\n if (!/\\d{4}-\\d{2}-\\d{2}(T.*)?/.test(arg1)) {\r\n throw createCoreError(16 /* INVALID_ISO_DATE_ARGUMENT */);\r\n }\r\n value = new Date(arg1);\r\n try {\r\n // This will fail if the date is not valid\r\n value.toISOString();\r\n }\r\n catch (e) {\r\n throw createCoreError(16 /* INVALID_ISO_DATE_ARGUMENT */);\r\n }\r\n }\r\n else if (isDate(arg1)) {\r\n if (isNaN(arg1.getTime())) {\r\n throw createCoreError(15 /* INVALID_DATE_ARGUMENT */);\r\n }\r\n value = arg1;\r\n }\r\n else if (isNumber(arg1)) {\r\n value = arg1;\r\n }\r\n else {\r\n throw createCoreError(14 /* INVALID_ARGUMENT */);\r\n }\r\n if (isString(arg2)) {\r\n options.key = arg2;\r\n }\r\n else if (isPlainObject(arg2)) {\r\n options = arg2;\r\n }\r\n if (isString(arg3)) {\r\n options.locale = arg3;\r\n }\r\n else if (isPlainObject(arg3)) {\r\n overrides = arg3;\r\n }\r\n if (isPlainObject(arg4)) {\r\n overrides = arg4;\r\n }\r\n return [options.key || '', value, options, overrides];\r\n}\r\n/** @internal */\r\nfunction clearDateTimeFormat(ctx, locale, format) {\r\n const context = ctx;\r\n for (const key in format) {\r\n const id = `${locale}__${key}`;\r\n if (!context.__datetimeFormatters.has(id)) {\r\n continue;\r\n }\r\n context.__datetimeFormatters.delete(id);\r\n }\r\n}\n\n// implementation of `number` function\r\nfunction number(context, ...args) {\r\n const { numberFormats, unresolving, fallbackLocale, onWarn } = context;\r\n const { __numberFormatters } = context;\r\n if ((process.env.NODE_ENV !== 'production') && !Availabilities.numberFormat) {\r\n onWarn(getWarnMessage(2 /* CANNOT_FORMAT_NUMBER */));\r\n return MISSING_RESOLVE_VALUE;\r\n }\r\n const [key, value, options, overrides] = parseNumberArgs(...args);\r\n const missingWarn = isBoolean(options.missingWarn)\r\n ? options.missingWarn\r\n : context.missingWarn;\r\n const fallbackWarn = isBoolean(options.fallbackWarn)\r\n ? options.fallbackWarn\r\n : context.fallbackWarn;\r\n const part = !!options.part;\r\n const locale = isString(options.locale) ? options.locale : context.locale;\r\n const locales = getLocaleChain(context, fallbackLocale, locale);\r\n if (!isString(key) || key === '') {\r\n return new Intl.NumberFormat(locale).format(value);\r\n }\r\n // resolve format\r\n let numberFormat = {};\r\n let targetLocale;\r\n let format = null;\r\n let from = locale;\r\n let to = null;\r\n const type = 'number format';\r\n for (let i = 0; i < locales.length; i++) {\r\n targetLocale = to = locales[i];\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n locale !== targetLocale &&\r\n isTranslateFallbackWarn(fallbackWarn, key)) {\r\n onWarn(getWarnMessage(3 /* FALLBACK_TO_NUMBER_FORMAT */, {\r\n key,\r\n target: targetLocale\r\n }));\r\n }\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production') && locale !== targetLocale) {\r\n const emitter = context.__v_emitter;\r\n if (emitter) {\r\n emitter.emit(\"fallback\" /* FALBACK */, {\r\n type,\r\n key,\r\n from,\r\n to,\r\n groupId: `${type}:${key}`\r\n });\r\n }\r\n }\r\n numberFormat =\r\n numberFormats[targetLocale] || {};\r\n format = numberFormat[key];\r\n if (isPlainObject(format))\r\n break;\r\n handleMissing(context, key, targetLocale, missingWarn, type);\r\n from = to;\r\n }\r\n // checking format and target locale\r\n if (!isPlainObject(format) || !isString(targetLocale)) {\r\n return unresolving ? NOT_REOSLVED : key;\r\n }\r\n let id = `${targetLocale}__${key}`;\r\n if (!isEmptyObject(overrides)) {\r\n id = `${id}__${JSON.stringify(overrides)}`;\r\n }\r\n let formatter = __numberFormatters.get(id);\r\n if (!formatter) {\r\n formatter = new Intl.NumberFormat(targetLocale, assign({}, format, overrides));\r\n __numberFormatters.set(id, formatter);\r\n }\r\n return !part ? formatter.format(value) : formatter.formatToParts(value);\r\n}\r\n/** @internal */\r\nfunction parseNumberArgs(...args) {\r\n const [arg1, arg2, arg3, arg4] = args;\r\n let options = {};\r\n let overrides = {};\r\n if (!isNumber(arg1)) {\r\n throw createCoreError(14 /* INVALID_ARGUMENT */);\r\n }\r\n const value = arg1;\r\n if (isString(arg2)) {\r\n options.key = arg2;\r\n }\r\n else if (isPlainObject(arg2)) {\r\n options = arg2;\r\n }\r\n if (isString(arg3)) {\r\n options.locale = arg3;\r\n }\r\n else if (isPlainObject(arg3)) {\r\n overrides = arg3;\r\n }\r\n if (isPlainObject(arg4)) {\r\n overrides = arg4;\r\n }\r\n return [options.key || '', value, options, overrides];\r\n}\r\n/** @internal */\r\nfunction clearNumberFormat(ctx, locale, format) {\r\n const context = ctx;\r\n for (const key in format) {\r\n const id = `${locale}__${key}`;\r\n if (!context.__numberFormatters.has(id)) {\r\n continue;\r\n }\r\n context.__numberFormatters.delete(id);\r\n }\r\n}\n\n{\r\n if (typeof __INTLIFY_PROD_DEVTOOLS__ !== 'boolean') {\r\n getGlobalThis().__INTLIFY_PROD_DEVTOOLS__ = false;\r\n }\r\n}\n\nexport { MISSING_RESOLVE_VALUE, NOT_REOSLVED, VERSION, clearCompileCache, clearDateTimeFormat, clearNumberFormat, compileToFunction, createCoreContext, createCoreError, datetime, getAdditionalMeta, getDevToolsHook, getLocaleChain, getWarnMessage, handleMissing, initI18nDevTools, isMessageFunction, isTranslateFallbackWarn, isTranslateMissingWarn, number, parseDateTimeArgs, parseNumberArgs, parseTranslateArgs, registerMessageCompiler, setAdditionalMeta, setDevToolsHook, translate, translateDevTools, updateFallbackLocale };\n","/*!\n * @intlify/vue-devtools v9.1.9\n * (c) 2021 kazuya kawaguchi\n * Released under the MIT License.\n */\nconst VueDevToolsLabels = {\r\n [\"vue-devtools-plugin-vue-i18n\" /* PLUGIN */]: 'Vue I18n devtools',\r\n [\"vue-i18n-resource-inspector\" /* CUSTOM_INSPECTOR */]: 'I18n Resources',\r\n [\"vue-i18n-timeline\" /* TIMELINE */]: 'Vue I18n'\r\n};\r\nconst VueDevToolsPlaceholders = {\r\n [\"vue-i18n-resource-inspector\" /* CUSTOM_INSPECTOR */]: 'Search for scopes ...'\r\n};\r\nconst VueDevToolsTimelineColors = {\r\n [\"vue-i18n-timeline\" /* TIMELINE */]: 0xffcd19\r\n};\n\nexport { VueDevToolsLabels, VueDevToolsPlaceholders, VueDevToolsTimelineColors };\n","/*!\n * vue-i18n v9.1.9\n * (c) 2022 kazuya kawaguchi\n * Released under the MIT License.\n */\nimport { getGlobalThis, format, makeSymbol, isPlainObject, isArray, hasOwn, isObject, isBoolean, isString, isRegExp, isFunction, assign, isNumber, warn, createEmitter, isEmptyObject } from '@intlify/shared';\nimport { createCompileError, handleFlatJson, createCoreContext, updateFallbackLocale, resolveValue, clearDateTimeFormat, clearNumberFormat, setAdditionalMeta, NOT_REOSLVED, isTranslateFallbackWarn, isTranslateMissingWarn, parseTranslateArgs, translate, MISSING_RESOLVE_VALUE, parseDateTimeArgs, datetime, parseNumberArgs, number, getLocaleChain, setDevToolsHook } from '@intlify/core-base';\nimport { ref, getCurrentInstance, computed, watch, createVNode, Text, h, Fragment, inject, onMounted, onUnmounted, isRef } from 'vue';\nimport { setupDevtoolsPlugin } from '@vue/devtools-api';\nimport { VueDevToolsLabels, VueDevToolsPlaceholders, VueDevToolsTimelineColors } from '@intlify/vue-devtools';\n\n/**\r\n * Vue I18n Version\r\n *\r\n * @remarks\r\n * Semver format. Same format as the package.json `version` field.\r\n *\r\n * @VueI18nGeneral\r\n */\r\nconst VERSION = '9.1.9';\r\n/**\r\n * This is only called in esm-bundler builds.\r\n * istanbul-ignore-next\r\n */\r\nfunction initFeatureFlags() {\r\n let needWarn = false;\r\n if (typeof __VUE_I18N_FULL_INSTALL__ !== 'boolean') {\r\n needWarn = true;\r\n getGlobalThis().__VUE_I18N_FULL_INSTALL__ = true;\r\n }\r\n if (typeof __VUE_I18N_LEGACY_API__ !== 'boolean') {\r\n needWarn = true;\r\n getGlobalThis().__VUE_I18N_LEGACY_API__ = true;\r\n }\r\n if (typeof __VUE_I18N_PROD_DEVTOOLS__ !== 'boolean') {\r\n needWarn = true;\r\n getGlobalThis().__VUE_I18N_PROD_DEVTOOLS__ = false;\r\n }\r\n if (typeof __INTLIFY_PROD_DEVTOOLS__ !== 'boolean') {\r\n getGlobalThis().__INTLIFY_PROD_DEVTOOLS__ = false;\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && typeof true === 'boolean') {\r\n needWarn = true;\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && needWarn) {\r\n console.warn(`You are running the esm-bundler build of vue-i18n. It is recommended to ` +\r\n `configure your bundler to explicitly replace feature flag globals ` +\r\n `with boolean literals to get proper tree-shaking in the final bundle.`);\r\n }\r\n}\n\nconst warnMessages = {\r\n [6 /* FALLBACK_TO_ROOT */]: `Fall back to {type} '{key}' with root locale.`,\r\n [7 /* NOT_SUPPORTED_PRESERVE */]: `Not supported 'preserve'.`,\r\n [8 /* NOT_SUPPORTED_FORMATTER */]: `Not supported 'formatter'.`,\r\n [9 /* NOT_SUPPORTED_PRESERVE_DIRECTIVE */]: `Not supported 'preserveDirectiveContent'.`,\r\n [10 /* NOT_SUPPORTED_GET_CHOICE_INDEX */]: `Not supported 'getChoiceIndex'.`,\r\n [11 /* COMPONENT_NAME_LEGACY_COMPATIBLE */]: `Component name legacy compatible: '{name}' -> 'i18n'`,\r\n [12 /* NOT_FOUND_PARENT_SCOPE */]: `Not found parent scope. use the global scope.`\r\n};\r\nfunction getWarnMessage(code, ...args) {\r\n return format(warnMessages[code], ...args);\r\n}\n\nfunction createI18nError(code, ...args) {\r\n return createCompileError(code, null, (process.env.NODE_ENV !== 'production') ? { messages: errorMessages, args } : undefined);\r\n}\r\nconst errorMessages = {\r\n [14 /* UNEXPECTED_RETURN_TYPE */]: 'Unexpected return type in composer',\r\n [15 /* INVALID_ARGUMENT */]: 'Invalid argument',\r\n [16 /* MUST_BE_CALL_SETUP_TOP */]: 'Must be called at the top of a `setup` function',\r\n [17 /* NOT_INSLALLED */]: 'Need to install with `app.use` function',\r\n [22 /* UNEXPECTED_ERROR */]: 'Unexpected error',\r\n [18 /* NOT_AVAILABLE_IN_LEGACY_MODE */]: 'Not available in legacy mode',\r\n [19 /* REQUIRED_VALUE */]: `Required in value: {0}`,\r\n [20 /* INVALID_VALUE */]: `Invalid value`,\r\n [21 /* CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN */]: `Cannot setup vue-devtools plugin`\r\n};\n\nconst DEVTOOLS_META = '__INTLIFY_META__';\r\nconst TransrateVNodeSymbol = makeSymbol('__transrateVNode');\r\nconst DatetimePartsSymbol = makeSymbol('__datetimeParts');\r\nconst NumberPartsSymbol = makeSymbol('__numberParts');\r\nconst EnableEmitter = makeSymbol('__enableEmitter');\r\nconst DisableEmitter = makeSymbol('__disableEmitter');\r\nconst SetPluralRulesSymbol = makeSymbol('__setPluralRules');\r\nmakeSymbol('__intlifyMeta');\r\nconst InejctWithOption = makeSymbol('__injectWithOption');\r\nlet composerID = 0;\r\nfunction defineCoreMissingHandler(missing) {\r\n return ((ctx, locale, key, type) => {\r\n return missing(locale, key, getCurrentInstance() || undefined, type);\r\n });\r\n}\r\nfunction getLocaleMessages(locale, options) {\r\n const { messages, __i18n } = options;\r\n // prettier-ignore\r\n const ret = isPlainObject(messages)\r\n ? messages\r\n : isArray(__i18n)\r\n ? {}\r\n : { [locale]: {} };\r\n // merge locale messages of i18n custom block\r\n if (isArray(__i18n)) {\r\n __i18n.forEach(({ locale, resource }) => {\r\n if (locale) {\r\n ret[locale] = ret[locale] || {};\r\n deepCopy(resource, ret[locale]);\r\n }\r\n else {\r\n deepCopy(resource, ret);\r\n }\r\n });\r\n }\r\n // handle messages for flat json\r\n if (options.flatJson) {\r\n for (const key in ret) {\r\n if (hasOwn(ret, key)) {\r\n handleFlatJson(ret[key]);\r\n }\r\n }\r\n }\r\n return ret;\r\n}\r\nconst isNotObjectOrIsArray = (val) => !isObject(val) || isArray(val);\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nfunction deepCopy(src, des) {\r\n // src and des should both be objects, and non of then can be a array\r\n if (isNotObjectOrIsArray(src) || isNotObjectOrIsArray(des)) {\r\n throw createI18nError(20 /* INVALID_VALUE */);\r\n }\r\n for (const key in src) {\r\n if (hasOwn(src, key)) {\r\n if (isNotObjectOrIsArray(src[key]) || isNotObjectOrIsArray(des[key])) {\r\n // replace with src[key] when:\r\n // src[key] or des[key] is not a object, or\r\n // src[key] or des[key] is a array\r\n des[key] = src[key];\r\n }\r\n else {\r\n // src[key] and des[key] are both object, merge them\r\n deepCopy(src[key], des[key]);\r\n }\r\n }\r\n }\r\n}\r\n// for Intlify DevTools\r\nconst getMetaInfo = /* #__PURE__*/ () => {\r\n const instance = getCurrentInstance();\r\n return instance && instance.type[DEVTOOLS_META] // eslint-disable-line @typescript-eslint/no-explicit-any\r\n ? { [DEVTOOLS_META]: instance.type[DEVTOOLS_META] } // eslint-disable-line @typescript-eslint/no-explicit-any\r\n : null;\r\n};\r\n/**\r\n * Create composer interface factory\r\n *\r\n * @internal\r\n */\r\nfunction createComposer(options = {}) {\r\n const { __root } = options;\r\n const _isGlobal = __root === undefined;\r\n let _inheritLocale = isBoolean(options.inheritLocale)\r\n ? options.inheritLocale\r\n : true;\r\n const _locale = ref(\r\n // prettier-ignore\r\n __root && _inheritLocale\r\n ? __root.locale.value\r\n : isString(options.locale)\r\n ? options.locale\r\n : 'en-US');\r\n const _fallbackLocale = ref(\r\n // prettier-ignore\r\n __root && _inheritLocale\r\n ? __root.fallbackLocale.value\r\n : isString(options.fallbackLocale) ||\r\n isArray(options.fallbackLocale) ||\r\n isPlainObject(options.fallbackLocale) ||\r\n options.fallbackLocale === false\r\n ? options.fallbackLocale\r\n : _locale.value);\r\n const _messages = ref(getLocaleMessages(_locale.value, options));\r\n const _datetimeFormats = ref(isPlainObject(options.datetimeFormats)\r\n ? options.datetimeFormats\r\n : { [_locale.value]: {} });\r\n const _numberFormats = ref(isPlainObject(options.numberFormats)\r\n ? options.numberFormats\r\n : { [_locale.value]: {} });\r\n // warning suppress options\r\n // prettier-ignore\r\n let _missingWarn = __root\r\n ? __root.missingWarn\r\n : isBoolean(options.missingWarn) || isRegExp(options.missingWarn)\r\n ? options.missingWarn\r\n : true;\r\n // prettier-ignore\r\n let _fallbackWarn = __root\r\n ? __root.fallbackWarn\r\n : isBoolean(options.fallbackWarn) || isRegExp(options.fallbackWarn)\r\n ? options.fallbackWarn\r\n : true;\r\n // prettier-ignore\r\n let _fallbackRoot = __root\r\n ? __root.fallbackRoot\r\n : isBoolean(options.fallbackRoot)\r\n ? options.fallbackRoot\r\n : true;\r\n // configure fall back to root\r\n let _fallbackFormat = !!options.fallbackFormat;\r\n // runtime missing\r\n let _missing = isFunction(options.missing) ? options.missing : null;\r\n let _runtimeMissing = isFunction(options.missing)\r\n ? defineCoreMissingHandler(options.missing)\r\n : null;\r\n // postTranslation handler\r\n let _postTranslation = isFunction(options.postTranslation)\r\n ? options.postTranslation\r\n : null;\r\n let _warnHtmlMessage = isBoolean(options.warnHtmlMessage)\r\n ? options.warnHtmlMessage\r\n : true;\r\n let _escapeParameter = !!options.escapeParameter;\r\n // custom linked modifiers\r\n // prettier-ignore\r\n const _modifiers = __root\r\n ? __root.modifiers\r\n : isPlainObject(options.modifiers)\r\n ? options.modifiers\r\n : {};\r\n // pluralRules\r\n let _pluralRules = options.pluralRules || (__root && __root.pluralRules);\r\n // runtime context\r\n // eslint-disable-next-line prefer-const\r\n let _context;\r\n function getCoreContext() {\r\n return createCoreContext({\r\n version: VERSION,\r\n locale: _locale.value,\r\n fallbackLocale: _fallbackLocale.value,\r\n messages: _messages.value,\r\n messageCompiler: function compileToFunction(source) {\r\n return (ctx) => {\r\n return ctx.normalize([source]);\r\n };\r\n }\r\n ,\r\n datetimeFormats: _datetimeFormats.value,\r\n numberFormats: _numberFormats.value,\r\n modifiers: _modifiers,\r\n pluralRules: _pluralRules,\r\n missing: _runtimeMissing === null ? undefined : _runtimeMissing,\r\n missingWarn: _missingWarn,\r\n fallbackWarn: _fallbackWarn,\r\n fallbackFormat: _fallbackFormat,\r\n unresolving: true,\r\n postTranslation: _postTranslation === null ? undefined : _postTranslation,\r\n warnHtmlMessage: _warnHtmlMessage,\r\n escapeParameter: _escapeParameter,\r\n __datetimeFormatters: isPlainObject(_context)\r\n ? _context.__datetimeFormatters\r\n : undefined,\r\n __numberFormatters: isPlainObject(_context)\r\n ? _context.__numberFormatters\r\n : undefined,\r\n __v_emitter: isPlainObject(_context)\r\n ? _context.__v_emitter\r\n : undefined,\r\n __meta: { framework: 'vue' }\r\n });\r\n }\r\n _context = getCoreContext();\r\n updateFallbackLocale(_context, _locale.value, _fallbackLocale.value);\r\n // track reactivity\r\n function trackReactivityValues() {\r\n return [\r\n _locale.value,\r\n _fallbackLocale.value,\r\n _messages.value,\r\n _datetimeFormats.value,\r\n _numberFormats.value\r\n ];\r\n }\r\n // locale\r\n const locale = computed({\r\n get: () => _locale.value,\r\n set: val => {\r\n _locale.value = val;\r\n _context.locale = _locale.value;\r\n }\r\n });\r\n // fallbackLocale\r\n const fallbackLocale = computed({\r\n get: () => _fallbackLocale.value,\r\n set: val => {\r\n _fallbackLocale.value = val;\r\n _context.fallbackLocale = _fallbackLocale.value;\r\n updateFallbackLocale(_context, _locale.value, val);\r\n }\r\n });\r\n // messages\r\n const messages = computed(() => _messages.value);\r\n // datetimeFormats\r\n const datetimeFormats = computed(() => _datetimeFormats.value);\r\n // numberFormats\r\n const numberFormats = computed(() => _numberFormats.value);\r\n // getPostTranslationHandler\r\n function getPostTranslationHandler() {\r\n return isFunction(_postTranslation) ? _postTranslation : null;\r\n }\r\n // setPostTranslationHandler\r\n function setPostTranslationHandler(handler) {\r\n _postTranslation = handler;\r\n _context.postTranslation = handler;\r\n }\r\n // getMissingHandler\r\n function getMissingHandler() {\r\n return _missing;\r\n }\r\n // setMissingHandler\r\n function setMissingHandler(handler) {\r\n if (handler !== null) {\r\n _runtimeMissing = defineCoreMissingHandler(handler);\r\n }\r\n _missing = handler;\r\n _context.missing = _runtimeMissing;\r\n }\r\n function isResolvedTranslateMessage(type, arg // eslint-disable-line @typescript-eslint/no-explicit-any\r\n ) {\r\n return type !== 'translate' || !!arg.resolvedMessage === false;\r\n }\r\n function wrapWithDeps(fn, argumentParser, warnType, fallbackSuccess, fallbackFail, successCondition) {\r\n trackReactivityValues(); // track reactive dependency\r\n // NOTE: experimental !!\r\n let ret;\r\n if ((process.env.NODE_ENV !== 'production') || __INTLIFY_PROD_DEVTOOLS__) {\r\n try {\r\n setAdditionalMeta(getMetaInfo());\r\n ret = fn(_context);\r\n }\r\n finally {\r\n setAdditionalMeta(null);\r\n }\r\n }\r\n else {\r\n ret = fn(_context);\r\n }\r\n if (isNumber(ret) && ret === NOT_REOSLVED) {\r\n const [key, arg2] = argumentParser();\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n __root &&\r\n isString(key) &&\r\n isResolvedTranslateMessage(warnType, arg2)) {\r\n if (_fallbackRoot &&\r\n (isTranslateFallbackWarn(_fallbackWarn, key) ||\r\n isTranslateMissingWarn(_missingWarn, key))) {\r\n warn(getWarnMessage(6 /* FALLBACK_TO_ROOT */, {\r\n key,\r\n type: warnType\r\n }));\r\n }\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const { __v_emitter: emitter } = _context;\r\n if (emitter && _fallbackRoot) {\r\n emitter.emit(\"fallback\" /* FALBACK */, {\r\n type: warnType,\r\n key,\r\n to: 'global',\r\n groupId: `${warnType}:${key}`\r\n });\r\n }\r\n }\r\n }\r\n return __root && _fallbackRoot\r\n ? fallbackSuccess(__root)\r\n : fallbackFail(key);\r\n }\r\n else if (successCondition(ret)) {\r\n return ret;\r\n }\r\n else {\r\n /* istanbul ignore next */\r\n throw createI18nError(14 /* UNEXPECTED_RETURN_TYPE */);\r\n }\r\n }\r\n // t\r\n function t(...args) {\r\n return wrapWithDeps(context => translate(context, ...args), () => parseTranslateArgs(...args), 'translate', root => root.t(...args), key => key, val => isString(val));\r\n }\r\n // rt\r\n function rt(...args) {\r\n const [arg1, arg2, arg3] = args;\r\n if (arg3 && !isObject(arg3)) {\r\n throw createI18nError(15 /* INVALID_ARGUMENT */);\r\n }\r\n return t(...[arg1, arg2, assign({ resolvedMessage: true }, arg3 || {})]);\r\n }\r\n // d\r\n function d(...args) {\r\n return wrapWithDeps(context => datetime(context, ...args), () => parseDateTimeArgs(...args), 'datetime format', root => root.d(...args), () => MISSING_RESOLVE_VALUE, val => isString(val));\r\n }\r\n // n\r\n function n(...args) {\r\n return wrapWithDeps(context => number(context, ...args), () => parseNumberArgs(...args), 'number format', root => root.n(...args), () => MISSING_RESOLVE_VALUE, val => isString(val));\r\n }\r\n // for custom processor\r\n function normalize(values) {\r\n return values.map(val => isString(val) ? createVNode(Text, null, val, 0) : val);\r\n }\r\n const interpolate = (val) => val;\r\n const processor = {\r\n normalize,\r\n interpolate,\r\n type: 'vnode'\r\n };\r\n // transrateVNode, using for `i18n-t` component\r\n function transrateVNode(...args) {\r\n return wrapWithDeps(context => {\r\n let ret;\r\n const _context = context;\r\n try {\r\n _context.processor = processor;\r\n ret = translate(_context, ...args);\r\n }\r\n finally {\r\n _context.processor = null;\r\n }\r\n return ret;\r\n }, () => parseTranslateArgs(...args), 'translate', \r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n root => root[TransrateVNodeSymbol](...args), key => [createVNode(Text, null, key, 0)], val => isArray(val));\r\n }\r\n // numberParts, using for `i18n-n` component\r\n function numberParts(...args) {\r\n return wrapWithDeps(context => number(context, ...args), () => parseNumberArgs(...args), 'number format', \r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n root => root[NumberPartsSymbol](...args), () => [], val => isString(val) || isArray(val));\r\n }\r\n // datetimeParts, using for `i18n-d` component\r\n function datetimeParts(...args) {\r\n return wrapWithDeps(context => datetime(context, ...args), () => parseDateTimeArgs(...args), 'datetime format', \r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n root => root[DatetimePartsSymbol](...args), () => [], val => isString(val) || isArray(val));\r\n }\r\n function setPluralRules(rules) {\r\n _pluralRules = rules;\r\n _context.pluralRules = _pluralRules;\r\n }\r\n // te\r\n function te(key, locale) {\r\n const targetLocale = isString(locale) ? locale : _locale.value;\r\n const message = getLocaleMessage(targetLocale);\r\n return resolveValue(message, key) !== null;\r\n }\r\n function resolveMessages(key) {\r\n let messages = null;\r\n const locales = getLocaleChain(_context, _fallbackLocale.value, _locale.value);\r\n for (let i = 0; i < locales.length; i++) {\r\n const targetLocaleMessages = _messages.value[locales[i]] || {};\r\n const messageValue = resolveValue(targetLocaleMessages, key);\r\n if (messageValue != null) {\r\n messages = messageValue;\r\n break;\r\n }\r\n }\r\n return messages;\r\n }\r\n // tm\r\n function tm(key) {\r\n const messages = resolveMessages(key);\r\n // prettier-ignore\r\n return messages != null\r\n ? messages\r\n : __root\r\n ? __root.tm(key) || {}\r\n : {};\r\n }\r\n // getLocaleMessage\r\n function getLocaleMessage(locale) {\r\n return (_messages.value[locale] || {});\r\n }\r\n // setLocaleMessage\r\n function setLocaleMessage(locale, message) {\r\n _messages.value[locale] = message;\r\n _context.messages = _messages.value;\r\n }\r\n // mergeLocaleMessage\r\n function mergeLocaleMessage(locale, message) {\r\n _messages.value[locale] = _messages.value[locale] || {};\r\n deepCopy(message, _messages.value[locale]);\r\n _context.messages = _messages.value;\r\n }\r\n // getDateTimeFormat\r\n function getDateTimeFormat(locale) {\r\n return _datetimeFormats.value[locale] || {};\r\n }\r\n // setDateTimeFormat\r\n function setDateTimeFormat(locale, format) {\r\n _datetimeFormats.value[locale] = format;\r\n _context.datetimeFormats = _datetimeFormats.value;\r\n clearDateTimeFormat(_context, locale, format);\r\n }\r\n // mergeDateTimeFormat\r\n function mergeDateTimeFormat(locale, format) {\r\n _datetimeFormats.value[locale] = assign(_datetimeFormats.value[locale] || {}, format);\r\n _context.datetimeFormats = _datetimeFormats.value;\r\n clearDateTimeFormat(_context, locale, format);\r\n }\r\n // getNumberFormat\r\n function getNumberFormat(locale) {\r\n return _numberFormats.value[locale] || {};\r\n }\r\n // setNumberFormat\r\n function setNumberFormat(locale, format) {\r\n _numberFormats.value[locale] = format;\r\n _context.numberFormats = _numberFormats.value;\r\n clearNumberFormat(_context, locale, format);\r\n }\r\n // mergeNumberFormat\r\n function mergeNumberFormat(locale, format) {\r\n _numberFormats.value[locale] = assign(_numberFormats.value[locale] || {}, format);\r\n _context.numberFormats = _numberFormats.value;\r\n clearNumberFormat(_context, locale, format);\r\n }\r\n // for debug\r\n composerID++;\r\n // watch root locale & fallbackLocale\r\n if (__root) {\r\n watch(__root.locale, (val) => {\r\n if (_inheritLocale) {\r\n _locale.value = val;\r\n _context.locale = val;\r\n updateFallbackLocale(_context, _locale.value, _fallbackLocale.value);\r\n }\r\n });\r\n watch(__root.fallbackLocale, (val) => {\r\n if (_inheritLocale) {\r\n _fallbackLocale.value = val;\r\n _context.fallbackLocale = val;\r\n updateFallbackLocale(_context, _locale.value, _fallbackLocale.value);\r\n }\r\n });\r\n }\r\n // define composition API!\r\n const composer = {\r\n id: composerID,\r\n locale,\r\n fallbackLocale,\r\n get inheritLocale() {\r\n return _inheritLocale;\r\n },\r\n set inheritLocale(val) {\r\n _inheritLocale = val;\r\n if (val && __root) {\r\n _locale.value = __root.locale.value;\r\n _fallbackLocale.value = __root.fallbackLocale.value;\r\n updateFallbackLocale(_context, _locale.value, _fallbackLocale.value);\r\n }\r\n },\r\n get availableLocales() {\r\n return Object.keys(_messages.value).sort();\r\n },\r\n messages,\r\n datetimeFormats,\r\n numberFormats,\r\n get modifiers() {\r\n return _modifiers;\r\n },\r\n get pluralRules() {\r\n return _pluralRules || {};\r\n },\r\n get isGlobal() {\r\n return _isGlobal;\r\n },\r\n get missingWarn() {\r\n return _missingWarn;\r\n },\r\n set missingWarn(val) {\r\n _missingWarn = val;\r\n _context.missingWarn = _missingWarn;\r\n },\r\n get fallbackWarn() {\r\n return _fallbackWarn;\r\n },\r\n set fallbackWarn(val) {\r\n _fallbackWarn = val;\r\n _context.fallbackWarn = _fallbackWarn;\r\n },\r\n get fallbackRoot() {\r\n return _fallbackRoot;\r\n },\r\n set fallbackRoot(val) {\r\n _fallbackRoot = val;\r\n },\r\n get fallbackFormat() {\r\n return _fallbackFormat;\r\n },\r\n set fallbackFormat(val) {\r\n _fallbackFormat = val;\r\n _context.fallbackFormat = _fallbackFormat;\r\n },\r\n get warnHtmlMessage() {\r\n return _warnHtmlMessage;\r\n },\r\n set warnHtmlMessage(val) {\r\n _warnHtmlMessage = val;\r\n _context.warnHtmlMessage = val;\r\n },\r\n get escapeParameter() {\r\n return _escapeParameter;\r\n },\r\n set escapeParameter(val) {\r\n _escapeParameter = val;\r\n _context.escapeParameter = val;\r\n },\r\n t,\r\n rt,\r\n d,\r\n n,\r\n te,\r\n tm,\r\n getLocaleMessage,\r\n setLocaleMessage,\r\n mergeLocaleMessage,\r\n getDateTimeFormat,\r\n setDateTimeFormat,\r\n mergeDateTimeFormat,\r\n getNumberFormat,\r\n setNumberFormat,\r\n mergeNumberFormat,\r\n getPostTranslationHandler,\r\n setPostTranslationHandler,\r\n getMissingHandler,\r\n setMissingHandler,\r\n [TransrateVNodeSymbol]: transrateVNode,\r\n [NumberPartsSymbol]: numberParts,\r\n [DatetimePartsSymbol]: datetimeParts,\r\n [SetPluralRulesSymbol]: setPluralRules,\r\n [InejctWithOption]: options.__injectWithOption // eslint-disable-line @typescript-eslint/no-explicit-any\r\n };\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n composer[EnableEmitter] = (emitter) => {\r\n _context.__v_emitter = emitter;\r\n };\r\n composer[DisableEmitter] = () => {\r\n _context.__v_emitter = undefined;\r\n };\r\n }\r\n return composer;\r\n}\n\n/**\r\n * Convert to I18n Composer Options from VueI18n Options\r\n *\r\n * @internal\r\n */\r\nfunction convertComposerOptions(options) {\r\n const locale = isString(options.locale) ? options.locale : 'en-US';\r\n const fallbackLocale = isString(options.fallbackLocale) ||\r\n isArray(options.fallbackLocale) ||\r\n isPlainObject(options.fallbackLocale) ||\r\n options.fallbackLocale === false\r\n ? options.fallbackLocale\r\n : locale;\r\n const missing = isFunction(options.missing) ? options.missing : undefined;\r\n const missingWarn = isBoolean(options.silentTranslationWarn) ||\r\n isRegExp(options.silentTranslationWarn)\r\n ? !options.silentTranslationWarn\r\n : true;\r\n const fallbackWarn = isBoolean(options.silentFallbackWarn) ||\r\n isRegExp(options.silentFallbackWarn)\r\n ? !options.silentFallbackWarn\r\n : true;\r\n const fallbackRoot = isBoolean(options.fallbackRoot)\r\n ? options.fallbackRoot\r\n : true;\r\n const fallbackFormat = !!options.formatFallbackMessages;\r\n const modifiers = isPlainObject(options.modifiers) ? options.modifiers : {};\r\n const pluralizationRules = options.pluralizationRules;\r\n const postTranslation = isFunction(options.postTranslation)\r\n ? options.postTranslation\r\n : undefined;\r\n const warnHtmlMessage = isString(options.warnHtmlInMessage)\r\n ? options.warnHtmlInMessage !== 'off'\r\n : true;\r\n const escapeParameter = !!options.escapeParameterHtml;\r\n const inheritLocale = isBoolean(options.sync) ? options.sync : true;\r\n if ((process.env.NODE_ENV !== 'production') && options.formatter) {\r\n warn(getWarnMessage(8 /* NOT_SUPPORTED_FORMATTER */));\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && options.preserveDirectiveContent) {\r\n warn(getWarnMessage(9 /* NOT_SUPPORTED_PRESERVE_DIRECTIVE */));\r\n }\r\n let messages = options.messages;\r\n if (isPlainObject(options.sharedMessages)) {\r\n const sharedMessages = options.sharedMessages;\r\n const locales = Object.keys(sharedMessages);\r\n messages = locales.reduce((messages, locale) => {\r\n const message = messages[locale] || (messages[locale] = {});\r\n assign(message, sharedMessages[locale]);\r\n return messages;\r\n }, (messages || {}));\r\n }\r\n const { __i18n, __root, __injectWithOption } = options;\r\n const datetimeFormats = options.datetimeFormats;\r\n const numberFormats = options.numberFormats;\r\n const flatJson = options.flatJson;\r\n return {\r\n locale,\r\n fallbackLocale,\r\n messages,\r\n flatJson,\r\n datetimeFormats,\r\n numberFormats,\r\n missing,\r\n missingWarn,\r\n fallbackWarn,\r\n fallbackRoot,\r\n fallbackFormat,\r\n modifiers,\r\n pluralRules: pluralizationRules,\r\n postTranslation,\r\n warnHtmlMessage,\r\n escapeParameter,\r\n inheritLocale,\r\n __i18n,\r\n __root,\r\n __injectWithOption\r\n };\r\n}\r\n/**\r\n * create VueI18n interface factory\r\n *\r\n * @internal\r\n */\r\nfunction createVueI18n(options = {}) {\r\n const composer = createComposer(convertComposerOptions(options));\r\n // defines VueI18n\r\n const vueI18n = {\r\n // id\r\n id: composer.id,\r\n // locale\r\n get locale() {\r\n return composer.locale.value;\r\n },\r\n set locale(val) {\r\n composer.locale.value = val;\r\n },\r\n // fallbackLocale\r\n get fallbackLocale() {\r\n return composer.fallbackLocale.value;\r\n },\r\n set fallbackLocale(val) {\r\n composer.fallbackLocale.value = val;\r\n },\r\n // messages\r\n get messages() {\r\n return composer.messages.value;\r\n },\r\n // datetimeFormats\r\n get datetimeFormats() {\r\n return composer.datetimeFormats.value;\r\n },\r\n // numberFormats\r\n get numberFormats() {\r\n return composer.numberFormats.value;\r\n },\r\n // availableLocales\r\n get availableLocales() {\r\n return composer.availableLocales;\r\n },\r\n // formatter\r\n get formatter() {\r\n (process.env.NODE_ENV !== 'production') && warn(getWarnMessage(8 /* NOT_SUPPORTED_FORMATTER */));\r\n // dummy\r\n return {\r\n interpolate() {\r\n return [];\r\n }\r\n };\r\n },\r\n set formatter(val) {\r\n (process.env.NODE_ENV !== 'production') && warn(getWarnMessage(8 /* NOT_SUPPORTED_FORMATTER */));\r\n },\r\n // missing\r\n get missing() {\r\n return composer.getMissingHandler();\r\n },\r\n set missing(handler) {\r\n composer.setMissingHandler(handler);\r\n },\r\n // silentTranslationWarn\r\n get silentTranslationWarn() {\r\n return isBoolean(composer.missingWarn)\r\n ? !composer.missingWarn\r\n : composer.missingWarn;\r\n },\r\n set silentTranslationWarn(val) {\r\n composer.missingWarn = isBoolean(val) ? !val : val;\r\n },\r\n // silentFallbackWarn\r\n get silentFallbackWarn() {\r\n return isBoolean(composer.fallbackWarn)\r\n ? !composer.fallbackWarn\r\n : composer.fallbackWarn;\r\n },\r\n set silentFallbackWarn(val) {\r\n composer.fallbackWarn = isBoolean(val) ? !val : val;\r\n },\r\n // modifiers\r\n get modifiers() {\r\n return composer.modifiers;\r\n },\r\n // formatFallbackMessages\r\n get formatFallbackMessages() {\r\n return composer.fallbackFormat;\r\n },\r\n set formatFallbackMessages(val) {\r\n composer.fallbackFormat = val;\r\n },\r\n // postTranslation\r\n get postTranslation() {\r\n return composer.getPostTranslationHandler();\r\n },\r\n set postTranslation(handler) {\r\n composer.setPostTranslationHandler(handler);\r\n },\r\n // sync\r\n get sync() {\r\n return composer.inheritLocale;\r\n },\r\n set sync(val) {\r\n composer.inheritLocale = val;\r\n },\r\n // warnInHtmlMessage\r\n get warnHtmlInMessage() {\r\n return composer.warnHtmlMessage ? 'warn' : 'off';\r\n },\r\n set warnHtmlInMessage(val) {\r\n composer.warnHtmlMessage = val !== 'off';\r\n },\r\n // escapeParameterHtml\r\n get escapeParameterHtml() {\r\n return composer.escapeParameter;\r\n },\r\n set escapeParameterHtml(val) {\r\n composer.escapeParameter = val;\r\n },\r\n // preserveDirectiveContent\r\n get preserveDirectiveContent() {\r\n (process.env.NODE_ENV !== 'production') &&\r\n warn(getWarnMessage(9 /* NOT_SUPPORTED_PRESERVE_DIRECTIVE */));\r\n return true;\r\n },\r\n set preserveDirectiveContent(val) {\r\n (process.env.NODE_ENV !== 'production') &&\r\n warn(getWarnMessage(9 /* NOT_SUPPORTED_PRESERVE_DIRECTIVE */));\r\n },\r\n // pluralizationRules\r\n get pluralizationRules() {\r\n return composer.pluralRules || {};\r\n },\r\n // for internal\r\n __composer: composer,\r\n // t\r\n t(...args) {\r\n const [arg1, arg2, arg3] = args;\r\n const options = {};\r\n let list = null;\r\n let named = null;\r\n if (!isString(arg1)) {\r\n throw createI18nError(15 /* INVALID_ARGUMENT */);\r\n }\r\n const key = arg1;\r\n if (isString(arg2)) {\r\n options.locale = arg2;\r\n }\r\n else if (isArray(arg2)) {\r\n list = arg2;\r\n }\r\n else if (isPlainObject(arg2)) {\r\n named = arg2;\r\n }\r\n if (isArray(arg3)) {\r\n list = arg3;\r\n }\r\n else if (isPlainObject(arg3)) {\r\n named = arg3;\r\n }\r\n return composer.t(key, list || named || {}, options);\r\n },\r\n rt(...args) {\r\n return composer.rt(...args);\r\n },\r\n // tc\r\n tc(...args) {\r\n const [arg1, arg2, arg3] = args;\r\n const options = { plural: 1 };\r\n let list = null;\r\n let named = null;\r\n if (!isString(arg1)) {\r\n throw createI18nError(15 /* INVALID_ARGUMENT */);\r\n }\r\n const key = arg1;\r\n if (isString(arg2)) {\r\n options.locale = arg2;\r\n }\r\n else if (isNumber(arg2)) {\r\n options.plural = arg2;\r\n }\r\n else if (isArray(arg2)) {\r\n list = arg2;\r\n }\r\n else if (isPlainObject(arg2)) {\r\n named = arg2;\r\n }\r\n if (isString(arg3)) {\r\n options.locale = arg3;\r\n }\r\n else if (isArray(arg3)) {\r\n list = arg3;\r\n }\r\n else if (isPlainObject(arg3)) {\r\n named = arg3;\r\n }\r\n return composer.t(key, list || named || {}, options);\r\n },\r\n // te\r\n te(key, locale) {\r\n return composer.te(key, locale);\r\n },\r\n // tm\r\n tm(key) {\r\n return composer.tm(key);\r\n },\r\n // getLocaleMessage\r\n getLocaleMessage(locale) {\r\n return composer.getLocaleMessage(locale);\r\n },\r\n // setLocaleMessage\r\n setLocaleMessage(locale, message) {\r\n composer.setLocaleMessage(locale, message);\r\n },\r\n // mergeLocaleMessage\r\n mergeLocaleMessage(locale, message) {\r\n composer.mergeLocaleMessage(locale, message);\r\n },\r\n // d\r\n d(...args) {\r\n return composer.d(...args);\r\n },\r\n // getDateTimeFormat\r\n getDateTimeFormat(locale) {\r\n return composer.getDateTimeFormat(locale);\r\n },\r\n // setDateTimeFormat\r\n setDateTimeFormat(locale, format) {\r\n composer.setDateTimeFormat(locale, format);\r\n },\r\n // mergeDateTimeFormat\r\n mergeDateTimeFormat(locale, format) {\r\n composer.mergeDateTimeFormat(locale, format);\r\n },\r\n // n\r\n n(...args) {\r\n return composer.n(...args);\r\n },\r\n // getNumberFormat\r\n getNumberFormat(locale) {\r\n return composer.getNumberFormat(locale);\r\n },\r\n // setNumberFormat\r\n setNumberFormat(locale, format) {\r\n composer.setNumberFormat(locale, format);\r\n },\r\n // mergeNumberFormat\r\n mergeNumberFormat(locale, format) {\r\n composer.mergeNumberFormat(locale, format);\r\n },\r\n // getChoiceIndex\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n getChoiceIndex(choice, choicesLength) {\r\n (process.env.NODE_ENV !== 'production') &&\r\n warn(getWarnMessage(10 /* NOT_SUPPORTED_GET_CHOICE_INDEX */));\r\n return -1;\r\n },\r\n // for internal\r\n __onComponentInstanceCreated(target) {\r\n const { componentInstanceCreatedListener } = options;\r\n if (componentInstanceCreatedListener) {\r\n componentInstanceCreatedListener(target, vueI18n);\r\n }\r\n }\r\n };\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n vueI18n.__enableEmitter = (emitter) => {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const __composer = composer;\r\n __composer[EnableEmitter] && __composer[EnableEmitter](emitter);\r\n };\r\n vueI18n.__disableEmitter = () => {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const __composer = composer;\r\n __composer[DisableEmitter] && __composer[DisableEmitter]();\r\n };\r\n }\r\n return vueI18n;\r\n}\n\nconst baseFormatProps = {\r\n tag: {\r\n type: [String, Object]\r\n },\r\n locale: {\r\n type: String\r\n },\r\n scope: {\r\n type: String,\r\n validator: (val) => val === 'parent' || val === 'global',\r\n default: 'parent'\r\n },\r\n i18n: {\r\n type: Object\r\n }\r\n};\n\n/**\r\n * Translation Component\r\n *\r\n * @remarks\r\n * See the following items for property about details\r\n *\r\n * @VueI18nSee [TranslationProps](component#translationprops)\r\n * @VueI18nSee [BaseFormatProps](component#baseformatprops)\r\n * @VueI18nSee [Component Interpolation](../guide/advanced/component)\r\n *\r\n * @example\r\n * ```html\r\n * <div id=\"app\">\r\n * <!-- ... -->\r\n * <i18n path=\"term\" tag=\"label\" for=\"tos\">\r\n * <a :href=\"url\" target=\"_blank\">{{ $t('tos') }}</a>\r\n * </i18n>\r\n * <!-- ... -->\r\n * </div>\r\n * ```\r\n * ```js\r\n * import { createApp } from 'vue'\r\n * import { createI18n } from 'vue-i18n'\r\n *\r\n * const messages = {\r\n * en: {\r\n * tos: 'Term of Service',\r\n * term: 'I accept xxx {0}.'\r\n * },\r\n * ja: {\r\n * tos: '利用規約',\r\n * term: '私は xxx の{0}に同意します。'\r\n * }\r\n * }\r\n *\r\n * const i18n = createI18n({\r\n * locale: 'en',\r\n * messages\r\n * })\r\n *\r\n * const app = createApp({\r\n * data: {\r\n * url: '/term'\r\n * }\r\n * }).use(i18n).mount('#app')\r\n * ```\r\n *\r\n * @VueI18nComponent\r\n */\r\nconst Translation = {\r\n /* eslint-disable */\r\n name: 'i18n-t',\r\n props: assign({\r\n keypath: {\r\n type: String,\r\n required: true\r\n },\r\n plural: {\r\n type: [Number, String],\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n validator: (val) => isNumber(val) || !isNaN(val)\r\n }\r\n }, baseFormatProps),\r\n /* eslint-enable */\r\n setup(props, context) {\r\n const { slots, attrs } = context;\r\n const i18n = props.i18n ||\r\n useI18n({\r\n useScope: props.scope,\r\n __useComponent: true\r\n });\r\n const keys = Object.keys(slots).filter(key => key !== '_');\r\n return () => {\r\n const options = {};\r\n if (props.locale) {\r\n options.locale = props.locale;\r\n }\r\n if (props.plural !== undefined) {\r\n options.plural = isString(props.plural) ? +props.plural : props.plural;\r\n }\r\n const arg = getInterpolateArg(context, keys);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const children = i18n[TransrateVNodeSymbol](props.keypath, arg, options);\r\n const assignedAttrs = assign({}, attrs);\r\n // prettier-ignore\r\n return isString(props.tag)\r\n ? h(props.tag, assignedAttrs, children)\r\n : isObject(props.tag)\r\n ? h(props.tag, assignedAttrs, children)\r\n : h(Fragment, assignedAttrs, children);\r\n };\r\n }\r\n};\r\nfunction getInterpolateArg({ slots }, keys) {\r\n if (keys.length === 1 && keys[0] === 'default') {\r\n // default slot only\r\n return slots.default ? slots.default() : [];\r\n }\r\n else {\r\n // named slots\r\n return keys.reduce((arg, key) => {\r\n const slot = slots[key];\r\n if (slot) {\r\n arg[key] = slot();\r\n }\r\n return arg;\r\n }, {});\r\n }\r\n}\n\nfunction renderFormatter(props, context, slotKeys, partFormatter) {\r\n const { slots, attrs } = context;\r\n return () => {\r\n const options = { part: true };\r\n let overrides = {};\r\n if (props.locale) {\r\n options.locale = props.locale;\r\n }\r\n if (isString(props.format)) {\r\n options.key = props.format;\r\n }\r\n else if (isObject(props.format)) {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n if (isString(props.format.key)) {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n options.key = props.format.key;\r\n }\r\n // Filter out number format options only\r\n overrides = Object.keys(props.format).reduce((options, prop) => {\r\n return slotKeys.includes(prop)\r\n ? assign({}, options, { [prop]: props.format[prop] }) // eslint-disable-line @typescript-eslint/no-explicit-any\r\n : options;\r\n }, {});\r\n }\r\n const parts = partFormatter(...[props.value, options, overrides]);\r\n let children = [options.key];\r\n if (isArray(parts)) {\r\n children = parts.map((part, index) => {\r\n const slot = slots[part.type];\r\n return slot\r\n ? slot({ [part.type]: part.value, index, parts })\r\n : [part.value];\r\n });\r\n }\r\n else if (isString(parts)) {\r\n children = [parts];\r\n }\r\n const assignedAttrs = assign({}, attrs);\r\n // prettier-ignore\r\n return isString(props.tag)\r\n ? h(props.tag, assignedAttrs, children)\r\n : isObject(props.tag)\r\n ? h(props.tag, assignedAttrs, children)\r\n : h(Fragment, assignedAttrs, children);\r\n };\r\n}\n\nconst NUMBER_FORMAT_KEYS = [\r\n 'localeMatcher',\r\n 'style',\r\n 'unit',\r\n 'unitDisplay',\r\n 'currency',\r\n 'currencyDisplay',\r\n 'useGrouping',\r\n 'numberingSystem',\r\n 'minimumIntegerDigits',\r\n 'minimumFractionDigits',\r\n 'maximumFractionDigits',\r\n 'minimumSignificantDigits',\r\n 'maximumSignificantDigits',\r\n 'notation',\r\n 'formatMatcher'\r\n];\r\n/**\r\n * Number Format Component\r\n *\r\n * @remarks\r\n * See the following items for property about details\r\n *\r\n * @VueI18nSee [FormattableProps](component#formattableprops)\r\n * @VueI18nSee [BaseFormatProps](component#baseformatprops)\r\n * @VueI18nSee [Custom Formatting](../guide/essentials/number#custom-formatting)\r\n *\r\n * @VueI18nDanger\r\n * Not supported IE, due to no support `Intl.NumberFormat#formatToParts` in [IE](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/formatToParts)\r\n *\r\n * If you want to use it, you need to use [polyfill](https://github.com/formatjs/formatjs/tree/main/packages/intl-numberformat)\r\n *\r\n * @VueI18nComponent\r\n */\r\nconst NumberFormat = {\r\n /* eslint-disable */\r\n name: 'i18n-n',\r\n props: assign({\r\n value: {\r\n type: Number,\r\n required: true\r\n },\r\n format: {\r\n type: [String, Object]\r\n }\r\n }, baseFormatProps),\r\n /* eslint-enable */\r\n setup(props, context) {\r\n const i18n = props.i18n ||\r\n useI18n({ useScope: 'parent', __useComponent: true });\r\n return renderFormatter(props, context, NUMBER_FORMAT_KEYS, (...args) => \r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n i18n[NumberPartsSymbol](...args));\r\n }\r\n};\n\nconst DATETIME_FORMAT_KEYS = [\r\n 'dateStyle',\r\n 'timeStyle',\r\n 'fractionalSecondDigits',\r\n 'calendar',\r\n 'dayPeriod',\r\n 'numberingSystem',\r\n 'localeMatcher',\r\n 'timeZone',\r\n 'hour12',\r\n 'hourCycle',\r\n 'formatMatcher',\r\n 'weekday',\r\n 'era',\r\n 'year',\r\n 'month',\r\n 'day',\r\n 'hour',\r\n 'minute',\r\n 'second',\r\n 'timeZoneName'\r\n];\r\n/**\r\n * Datetime Format Component\r\n *\r\n * @remarks\r\n * See the following items for property about details\r\n *\r\n * @VueI18nSee [FormattableProps](component#formattableprops)\r\n * @VueI18nSee [BaseFormatProps](component#baseformatprops)\r\n * @VueI18nSee [Custom Formatting](../guide/essentials/datetime#custom-formatting)\r\n *\r\n * @VueI18nDanger\r\n * Not supported IE, due to no support `Intl.DateTimeFormat#formatToParts` in [IE](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/formatToParts)\r\n *\r\n * If you want to use it, you need to use [polyfill](https://github.com/formatjs/formatjs/tree/main/packages/intl-datetimeformat)\r\n *\r\n * @VueI18nComponent\r\n */\r\nconst DatetimeFormat = {\r\n /* eslint-disable */\r\n name: 'i18n-d',\r\n props: assign({\r\n value: {\r\n type: [Number, Date],\r\n required: true\r\n },\r\n format: {\r\n type: [String, Object]\r\n }\r\n }, baseFormatProps),\r\n /* eslint-enable */\r\n setup(props, context) {\r\n const i18n = props.i18n ||\r\n useI18n({ useScope: 'parent', __useComponent: true });\r\n return renderFormatter(props, context, DATETIME_FORMAT_KEYS, (...args) => \r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n i18n[DatetimePartsSymbol](...args));\r\n }\r\n};\n\nfunction getComposer$2(i18n, instance) {\r\n const i18nInternal = i18n;\r\n if (i18n.mode === 'composition') {\r\n return (i18nInternal.__getInstance(instance) || i18n.global);\r\n }\r\n else {\r\n const vueI18n = i18nInternal.__getInstance(instance);\r\n return vueI18n != null\r\n ? vueI18n.__composer\r\n : i18n.global.__composer;\r\n }\r\n}\r\nfunction vTDirective(i18n) {\r\n const bind = (el, { instance, value, modifiers }) => {\r\n /* istanbul ignore if */\r\n if (!instance || !instance.$) {\r\n throw createI18nError(22 /* UNEXPECTED_ERROR */);\r\n }\r\n const composer = getComposer$2(i18n, instance.$);\r\n if ((process.env.NODE_ENV !== 'production') && modifiers.preserve) {\r\n warn(getWarnMessage(7 /* NOT_SUPPORTED_PRESERVE */));\r\n }\r\n const parsedValue = parseValue(value);\r\n el.textContent = composer.t(...makeParams(parsedValue));\r\n };\r\n return {\r\n beforeMount: bind,\r\n beforeUpdate: bind\r\n };\r\n}\r\nfunction parseValue(value) {\r\n if (isString(value)) {\r\n return { path: value };\r\n }\r\n else if (isPlainObject(value)) {\r\n if (!('path' in value)) {\r\n throw createI18nError(19 /* REQUIRED_VALUE */, 'path');\r\n }\r\n return value;\r\n }\r\n else {\r\n throw createI18nError(20 /* INVALID_VALUE */);\r\n }\r\n}\r\nfunction makeParams(value) {\r\n const { path, locale, args, choice, plural } = value;\r\n const options = {};\r\n const named = args || {};\r\n if (isString(locale)) {\r\n options.locale = locale;\r\n }\r\n if (isNumber(choice)) {\r\n options.plural = choice;\r\n }\r\n if (isNumber(plural)) {\r\n options.plural = plural;\r\n }\r\n return [path, named, options];\r\n}\n\nfunction apply(app, i18n, ...options) {\r\n const pluginOptions = isPlainObject(options[0])\r\n ? options[0]\r\n : {};\r\n const useI18nComponentName = !!pluginOptions.useI18nComponentName;\r\n const globalInstall = isBoolean(pluginOptions.globalInstall)\r\n ? pluginOptions.globalInstall\r\n : true;\r\n if ((process.env.NODE_ENV !== 'production') && globalInstall && useI18nComponentName) {\r\n warn(getWarnMessage(11 /* COMPONENT_NAME_LEGACY_COMPATIBLE */, {\r\n name: Translation.name\r\n }));\r\n }\r\n if (globalInstall) {\r\n // install components\r\n app.component(!useI18nComponentName ? Translation.name : 'i18n', Translation);\r\n app.component(NumberFormat.name, NumberFormat);\r\n app.component(DatetimeFormat.name, DatetimeFormat);\r\n }\r\n // install directive\r\n app.directive('t', vTDirective(i18n));\r\n}\n\nconst VUE_I18N_COMPONENT_TYPES = 'vue-i18n: composer properties';\r\nlet devtoolsApi;\r\nasync function enableDevTools(app, i18n) {\r\n return new Promise((resolve, reject) => {\r\n try {\r\n setupDevtoolsPlugin({\r\n id: \"vue-devtools-plugin-vue-i18n\" /* PLUGIN */,\r\n label: VueDevToolsLabels[\"vue-devtools-plugin-vue-i18n\" /* PLUGIN */],\r\n packageName: 'vue-i18n',\r\n homepage: 'https://vue-i18n.intlify.dev',\r\n logo: 'https://vue-i18n.intlify.dev/vue-i18n-devtools-logo.png',\r\n componentStateTypes: [VUE_I18N_COMPONENT_TYPES],\r\n app\r\n }, api => {\r\n devtoolsApi = api;\r\n api.on.visitComponentTree(({ componentInstance, treeNode }) => {\r\n updateComponentTreeTags(componentInstance, treeNode, i18n);\r\n });\r\n api.on.inspectComponent(({ componentInstance, instanceData }) => {\r\n if (componentInstance.vnode.el.__VUE_I18N__ && instanceData) {\r\n if (i18n.mode === 'legacy') {\r\n // ignore global scope on legacy mode\r\n if (componentInstance.vnode.el.__VUE_I18N__ !==\r\n i18n.global.__composer) {\r\n inspectComposer(instanceData, componentInstance.vnode.el.__VUE_I18N__);\r\n }\r\n }\r\n else {\r\n inspectComposer(instanceData, componentInstance.vnode.el.__VUE_I18N__);\r\n }\r\n }\r\n });\r\n api.addInspector({\r\n id: \"vue-i18n-resource-inspector\" /* CUSTOM_INSPECTOR */,\r\n label: VueDevToolsLabels[\"vue-i18n-resource-inspector\" /* CUSTOM_INSPECTOR */],\r\n icon: 'language',\r\n treeFilterPlaceholder: VueDevToolsPlaceholders[\"vue-i18n-resource-inspector\" /* CUSTOM_INSPECTOR */]\r\n });\r\n api.on.getInspectorTree(payload => {\r\n if (payload.app === app &&\r\n payload.inspectorId === \"vue-i18n-resource-inspector\" /* CUSTOM_INSPECTOR */) {\r\n registerScope(payload, i18n);\r\n }\r\n });\r\n api.on.getInspectorState(payload => {\r\n if (payload.app === app &&\r\n payload.inspectorId === \"vue-i18n-resource-inspector\" /* CUSTOM_INSPECTOR */) {\r\n inspectScope(payload, i18n);\r\n }\r\n });\r\n api.on.editInspectorState(payload => {\r\n if (payload.app === app &&\r\n payload.inspectorId === \"vue-i18n-resource-inspector\" /* CUSTOM_INSPECTOR */) {\r\n editScope(payload, i18n);\r\n }\r\n });\r\n api.addTimelineLayer({\r\n id: \"vue-i18n-timeline\" /* TIMELINE */,\r\n label: VueDevToolsLabels[\"vue-i18n-timeline\" /* TIMELINE */],\r\n color: VueDevToolsTimelineColors[\"vue-i18n-timeline\" /* TIMELINE */]\r\n });\r\n resolve(true);\r\n });\r\n }\r\n catch (e) {\r\n console.error(e);\r\n reject(false);\r\n }\r\n });\r\n}\r\nfunction updateComponentTreeTags(instance, // eslint-disable-line @typescript-eslint/no-explicit-any\r\ntreeNode, i18n) {\r\n // prettier-ignore\r\n const global = i18n.mode === 'composition'\r\n ? i18n.global\r\n : i18n.global.__composer;\r\n if (instance && instance.vnode.el.__VUE_I18N__) {\r\n // add custom tags local scope only\r\n if (instance.vnode.el.__VUE_I18N__ !== global) {\r\n const label = instance.type.name || instance.type.displayName || instance.type.__file;\r\n const tag = {\r\n label: `i18n (${label} Scope)`,\r\n textColor: 0x000000,\r\n backgroundColor: 0xffcd19\r\n };\r\n treeNode.tags.push(tag);\r\n }\r\n }\r\n}\r\nfunction inspectComposer(instanceData, composer) {\r\n const type = VUE_I18N_COMPONENT_TYPES;\r\n instanceData.state.push({\r\n type,\r\n key: 'locale',\r\n editable: true,\r\n value: composer.locale.value\r\n });\r\n instanceData.state.push({\r\n type,\r\n key: 'availableLocales',\r\n editable: false,\r\n value: composer.availableLocales\r\n });\r\n instanceData.state.push({\r\n type,\r\n key: 'fallbackLocale',\r\n editable: true,\r\n value: composer.fallbackLocale.value\r\n });\r\n instanceData.state.push({\r\n type,\r\n key: 'inheritLocale',\r\n editable: true,\r\n value: composer.inheritLocale\r\n });\r\n instanceData.state.push({\r\n type,\r\n key: 'messages',\r\n editable: false,\r\n value: getLocaleMessageValue(composer.messages.value)\r\n });\r\n instanceData.state.push({\r\n type,\r\n key: 'datetimeFormats',\r\n editable: false,\r\n value: composer.datetimeFormats.value\r\n });\r\n instanceData.state.push({\r\n type,\r\n key: 'numberFormats',\r\n editable: false,\r\n value: composer.numberFormats.value\r\n });\r\n}\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nfunction getLocaleMessageValue(messages) {\r\n const value = {};\r\n Object.keys(messages).forEach((key) => {\r\n const v = messages[key];\r\n if (isFunction(v) && 'source' in v) {\r\n value[key] = getMessageFunctionDetails(v);\r\n }\r\n else if (isObject(v)) {\r\n value[key] = getLocaleMessageValue(v);\r\n }\r\n else {\r\n value[key] = v;\r\n }\r\n });\r\n return value;\r\n}\r\nconst ESC = {\r\n '<': '&lt;',\r\n '>': '&gt;',\r\n '\"': '&quot;',\r\n '&': '&amp;'\r\n};\r\nfunction escape(s) {\r\n return s.replace(/[<>\"&]/g, escapeChar);\r\n}\r\nfunction escapeChar(a) {\r\n return ESC[a] || a;\r\n}\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nfunction getMessageFunctionDetails(func) {\r\n const argString = func.source ? `(\"${escape(func.source)}\")` : `(?)`;\r\n return {\r\n _custom: {\r\n type: 'function',\r\n display: `<span>ƒ</span> ${argString}`\r\n }\r\n };\r\n}\r\nfunction registerScope(payload, i18n) {\r\n payload.rootNodes.push({\r\n id: 'global',\r\n label: 'Global Scope'\r\n });\r\n // prettier-ignore\r\n const global = i18n.mode === 'composition'\r\n ? i18n.global\r\n : i18n.global.__composer;\r\n for (const [keyInstance, instance] of i18n.__instances) {\r\n // prettier-ignore\r\n const composer = i18n.mode === 'composition'\r\n ? instance\r\n : instance.__composer;\r\n if (global === composer) {\r\n continue;\r\n }\r\n const label = keyInstance.type.name ||\r\n keyInstance.type.displayName ||\r\n keyInstance.type.__file;\r\n payload.rootNodes.push({\r\n id: composer.id.toString(),\r\n label: `${label} Scope`\r\n });\r\n }\r\n}\r\nfunction getComposer$1(nodeId, i18n) {\r\n if (nodeId === 'global') {\r\n return i18n.mode === 'composition'\r\n ? i18n.global\r\n : i18n.global.__composer;\r\n }\r\n else {\r\n const instance = Array.from(i18n.__instances.values()).find(item => item.id.toString() === nodeId);\r\n if (instance) {\r\n return i18n.mode === 'composition'\r\n ? instance\r\n : instance.__composer;\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n}\r\nfunction inspectScope(payload, i18n) {\r\n const composer = getComposer$1(payload.nodeId, i18n);\r\n if (composer) {\r\n payload.state = makeScopeInspectState(composer);\r\n }\r\n}\r\nfunction makeScopeInspectState(composer) {\r\n const state = {};\r\n const localeType = 'Locale related info';\r\n const localeStates = [\r\n {\r\n type: localeType,\r\n key: 'locale',\r\n editable: true,\r\n value: composer.locale.value\r\n },\r\n {\r\n type: localeType,\r\n key: 'fallbackLocale',\r\n editable: true,\r\n value: composer.fallbackLocale.value\r\n },\r\n {\r\n type: localeType,\r\n key: 'availableLocales',\r\n editable: false,\r\n value: composer.availableLocales\r\n },\r\n {\r\n type: localeType,\r\n key: 'inheritLocale',\r\n editable: true,\r\n value: composer.inheritLocale\r\n }\r\n ];\r\n state[localeType] = localeStates;\r\n const localeMessagesType = 'Locale messages info';\r\n const localeMessagesStates = [\r\n {\r\n type: localeMessagesType,\r\n key: 'messages',\r\n editable: false,\r\n value: getLocaleMessageValue(composer.messages.value)\r\n }\r\n ];\r\n state[localeMessagesType] = localeMessagesStates;\r\n const datetimeFormatsType = 'Datetime formats info';\r\n const datetimeFormatsStates = [\r\n {\r\n type: datetimeFormatsType,\r\n key: 'datetimeFormats',\r\n editable: false,\r\n value: composer.datetimeFormats.value\r\n }\r\n ];\r\n state[datetimeFormatsType] = datetimeFormatsStates;\r\n const numberFormatsType = 'Datetime formats info';\r\n const numberFormatsStates = [\r\n {\r\n type: numberFormatsType,\r\n key: 'numberFormats',\r\n editable: false,\r\n value: composer.numberFormats.value\r\n }\r\n ];\r\n state[numberFormatsType] = numberFormatsStates;\r\n return state;\r\n}\r\nfunction addTimelineEvent(event, payload) {\r\n if (devtoolsApi) {\r\n let groupId;\r\n if (payload && 'groupId' in payload) {\r\n groupId = payload.groupId;\r\n delete payload.groupId;\r\n }\r\n devtoolsApi.addTimelineEvent({\r\n layerId: \"vue-i18n-timeline\" /* TIMELINE */,\r\n event: {\r\n title: event,\r\n groupId,\r\n time: Date.now(),\r\n meta: {},\r\n data: payload || {},\r\n logType: event === \"compile-error\" /* COMPILE_ERROR */\r\n ? 'error'\r\n : event === \"fallback\" /* FALBACK */ ||\r\n event === \"missing\" /* MISSING */\r\n ? 'warning'\r\n : 'default'\r\n }\r\n });\r\n }\r\n}\r\nfunction editScope(payload, i18n) {\r\n const composer = getComposer$1(payload.nodeId, i18n);\r\n if (composer) {\r\n const [field] = payload.path;\r\n if (field === 'locale' && isString(payload.state.value)) {\r\n composer.locale.value = payload.state.value;\r\n }\r\n else if (field === 'fallbackLocale' &&\r\n (isString(payload.state.value) ||\r\n isArray(payload.state.value) ||\r\n isObject(payload.state.value))) {\r\n composer.fallbackLocale.value = payload.state.value;\r\n }\r\n else if (field === 'inheritLocale' && isBoolean(payload.state.value)) {\r\n composer.inheritLocale = payload.state.value;\r\n }\r\n }\r\n}\n\n// supports compatibility for legacy vue-i18n APIs\r\nfunction defineMixin(vuei18n, composer, i18n) {\r\n return {\r\n beforeCreate() {\r\n const instance = getCurrentInstance();\r\n /* istanbul ignore if */\r\n if (!instance) {\r\n throw createI18nError(22 /* UNEXPECTED_ERROR */);\r\n }\r\n const options = this.$options;\r\n if (options.i18n) {\r\n const optionsI18n = options.i18n;\r\n if (options.__i18n) {\r\n optionsI18n.__i18n = options.__i18n;\r\n }\r\n optionsI18n.__root = composer;\r\n if (this === this.$root) {\r\n this.$i18n = mergeToRoot(vuei18n, optionsI18n);\r\n }\r\n else {\r\n optionsI18n.__injectWithOption = true;\r\n this.$i18n = createVueI18n(optionsI18n);\r\n }\r\n }\r\n else if (options.__i18n) {\r\n if (this === this.$root) {\r\n this.$i18n = mergeToRoot(vuei18n, options);\r\n }\r\n else {\r\n this.$i18n = createVueI18n({\r\n __i18n: options.__i18n,\r\n __injectWithOption: true,\r\n __root: composer\r\n });\r\n }\r\n }\r\n else {\r\n // set global\r\n this.$i18n = vuei18n;\r\n }\r\n vuei18n.__onComponentInstanceCreated(this.$i18n);\r\n i18n.__setInstance(instance, this.$i18n);\r\n // defines vue-i18n legacy APIs\r\n this.$t = (...args) => this.$i18n.t(...args);\r\n this.$rt = (...args) => this.$i18n.rt(...args);\r\n this.$tc = (...args) => this.$i18n.tc(...args);\r\n this.$te = (key, locale) => this.$i18n.te(key, locale);\r\n this.$d = (...args) => this.$i18n.d(...args);\r\n this.$n = (...args) => this.$i18n.n(...args);\r\n this.$tm = (key) => this.$i18n.tm(key);\r\n },\r\n mounted() {\r\n /* istanbul ignore if */\r\n if (((process.env.NODE_ENV !== 'production') || __VUE_I18N_PROD_DEVTOOLS__) && !false) {\r\n this.$el.__VUE_I18N__ = this.$i18n.__composer;\r\n const emitter = (this.__v_emitter = createEmitter());\r\n const _vueI18n = this.$i18n;\r\n _vueI18n.__enableEmitter && _vueI18n.__enableEmitter(emitter);\r\n emitter.on('*', addTimelineEvent);\r\n }\r\n },\r\n beforeUnmount() {\r\n const instance = getCurrentInstance();\r\n /* istanbul ignore if */\r\n if (!instance) {\r\n throw createI18nError(22 /* UNEXPECTED_ERROR */);\r\n }\r\n /* istanbul ignore if */\r\n if (((process.env.NODE_ENV !== 'production') || __VUE_I18N_PROD_DEVTOOLS__) && !false) {\r\n if (this.__v_emitter) {\r\n this.__v_emitter.off('*', addTimelineEvent);\r\n delete this.__v_emitter;\r\n }\r\n const _vueI18n = this.$i18n;\r\n _vueI18n.__disableEmitter && _vueI18n.__disableEmitter();\r\n delete this.$el.__VUE_I18N__;\r\n }\r\n delete this.$t;\r\n delete this.$rt;\r\n delete this.$tc;\r\n delete this.$te;\r\n delete this.$d;\r\n delete this.$n;\r\n delete this.$tm;\r\n i18n.__deleteInstance(instance);\r\n delete this.$i18n;\r\n }\r\n };\r\n}\r\nfunction mergeToRoot(root, options) {\r\n root.locale = options.locale || root.locale;\r\n root.fallbackLocale = options.fallbackLocale || root.fallbackLocale;\r\n root.missing = options.missing || root.missing;\r\n root.silentTranslationWarn =\r\n options.silentTranslationWarn || root.silentFallbackWarn;\r\n root.silentFallbackWarn =\r\n options.silentFallbackWarn || root.silentFallbackWarn;\r\n root.formatFallbackMessages =\r\n options.formatFallbackMessages || root.formatFallbackMessages;\r\n root.postTranslation = options.postTranslation || root.postTranslation;\r\n root.warnHtmlInMessage = options.warnHtmlInMessage || root.warnHtmlInMessage;\r\n root.escapeParameterHtml =\r\n options.escapeParameterHtml || root.escapeParameterHtml;\r\n root.sync = options.sync || root.sync;\r\n root.__composer[SetPluralRulesSymbol](options.pluralizationRules || root.pluralizationRules);\r\n const messages = getLocaleMessages(root.locale, {\r\n messages: options.messages,\r\n __i18n: options.__i18n\r\n });\r\n Object.keys(messages).forEach(locale => root.mergeLocaleMessage(locale, messages[locale]));\r\n if (options.datetimeFormats) {\r\n Object.keys(options.datetimeFormats).forEach(locale => root.mergeDateTimeFormat(locale, options.datetimeFormats[locale]));\r\n }\r\n if (options.numberFormats) {\r\n Object.keys(options.numberFormats).forEach(locale => root.mergeNumberFormat(locale, options.numberFormats[locale]));\r\n }\r\n return root;\r\n}\n\n/**\r\n * Vue I18n factory\r\n *\r\n * @param options - An options, see the {@link I18nOptions}\r\n *\r\n * @returns {@link I18n} instance\r\n *\r\n * @remarks\r\n * If you use Legacy API mode, you need toto specify {@link VueI18nOptions} and `legacy: true` option.\r\n *\r\n * If you use composition API mode, you need to specify {@link ComposerOptions}.\r\n *\r\n * @VueI18nSee [Getting Started](../guide/)\r\n * @VueI18nSee [Composition API](../guide/advanced/composition)\r\n *\r\n * @example\r\n * case: for Legacy API\r\n * ```js\r\n * import { createApp } from 'vue'\r\n * import { createI18n } from 'vue-i18n'\r\n *\r\n * // call with I18n option\r\n * const i18n = createI18n({\r\n * locale: 'ja',\r\n * messages: {\r\n * en: { ... },\r\n * ja: { ... }\r\n * }\r\n * })\r\n *\r\n * const App = {\r\n * // ...\r\n * }\r\n *\r\n * const app = createApp(App)\r\n *\r\n * // install!\r\n * app.use(i18n)\r\n * app.mount('#app')\r\n * ```\r\n *\r\n * @example\r\n * case: for composition API\r\n * ```js\r\n * import { createApp } from 'vue'\r\n * import { createI18n, useI18n } from 'vue-i18n'\r\n *\r\n * // call with I18n option\r\n * const i18n = createI18n({\r\n * legacy: false, // you must specify 'legacy: false' option\r\n * locale: 'ja',\r\n * messages: {\r\n * en: { ... },\r\n * ja: { ... }\r\n * }\r\n * })\r\n *\r\n * const App = {\r\n * setup() {\r\n * // ...\r\n * const { t } = useI18n({ ... })\r\n * return { ... , t }\r\n * }\r\n * }\r\n *\r\n * const app = createApp(App)\r\n *\r\n * // install!\r\n * app.use(i18n)\r\n * app.mount('#app')\r\n * ```\r\n *\r\n * @VueI18nGeneral\r\n */\r\nfunction createI18n(options = {}) {\r\n // prettier-ignore\r\n const __legacyMode = __VUE_I18N_LEGACY_API__ && isBoolean(options.legacy)\r\n ? options.legacy\r\n : __VUE_I18N_LEGACY_API__;\r\n const __globalInjection = !!options.globalInjection;\r\n const __instances = new Map();\r\n // prettier-ignore\r\n const __global = __VUE_I18N_LEGACY_API__ && __legacyMode\r\n ? createVueI18n(options)\r\n : createComposer(options);\r\n const symbol = makeSymbol((process.env.NODE_ENV !== 'production') ? 'vue-i18n' : '');\r\n const i18n = {\r\n // mode\r\n get mode() {\r\n // prettier-ignore\r\n return __VUE_I18N_LEGACY_API__\r\n ? __legacyMode\r\n ? 'legacy'\r\n : 'composition'\r\n : 'composition';\r\n },\r\n // install plugin\r\n async install(app, ...options) {\r\n if (((process.env.NODE_ENV !== 'production') || __VUE_I18N_PROD_DEVTOOLS__) && !false) {\r\n app.__VUE_I18N__ = i18n;\r\n }\r\n // setup global provider\r\n app.__VUE_I18N_SYMBOL__ = symbol;\r\n app.provide(app.__VUE_I18N_SYMBOL__, i18n);\r\n // global method and properties injection for Composition API\r\n if (!__legacyMode && __globalInjection) {\r\n injectGlobalFields(app, i18n.global);\r\n }\r\n // install built-in components and directive\r\n if (__VUE_I18N_FULL_INSTALL__) {\r\n apply(app, i18n, ...options);\r\n }\r\n // setup mixin for Legacy API\r\n if (__VUE_I18N_LEGACY_API__ && __legacyMode) {\r\n app.mixin(defineMixin(__global, __global.__composer, i18n));\r\n }\r\n // setup vue-devtools plugin\r\n if (((process.env.NODE_ENV !== 'production') || __VUE_I18N_PROD_DEVTOOLS__) && !false) {\r\n const ret = await enableDevTools(app, i18n);\r\n if (!ret) {\r\n throw createI18nError(21 /* CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN */);\r\n }\r\n const emitter = createEmitter();\r\n if (__legacyMode) {\r\n const _vueI18n = __global;\r\n _vueI18n.__enableEmitter && _vueI18n.__enableEmitter(emitter);\r\n }\r\n else {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const _composer = __global;\r\n _composer[EnableEmitter] && _composer[EnableEmitter](emitter);\r\n }\r\n emitter.on('*', addTimelineEvent);\r\n }\r\n },\r\n // global accessor\r\n get global() {\r\n return __global;\r\n },\r\n // @internal\r\n __instances,\r\n // @internal\r\n __getInstance(component) {\r\n return __instances.get(component) || null;\r\n },\r\n // @internal\r\n __setInstance(component, instance) {\r\n __instances.set(component, instance);\r\n },\r\n // @internal\r\n __deleteInstance(component) {\r\n __instances.delete(component);\r\n }\r\n };\r\n return i18n;\r\n}\r\n/**\r\n * Use Composition API for Vue I18n\r\n *\r\n * @param options - An options, see {@link UseI18nOptions}\r\n *\r\n * @returns {@link Composer} instance\r\n *\r\n * @remarks\r\n * This function is mainly used by `setup`.\r\n *\r\n * If options are specified, Composer instance is created for each component and you can be localized on the component.\r\n *\r\n * If options are not specified, you can be localized using the global Composer.\r\n *\r\n * @example\r\n * case: Component resource base localization\r\n * ```html\r\n * <template>\r\n * <form>\r\n * <label>{{ t('language') }}</label>\r\n * <select v-model=\"locale\">\r\n * <option value=\"en\">en</option>\r\n * <option value=\"ja\">ja</option>\r\n * </select>\r\n * </form>\r\n * <p>message: {{ t('hello') }}</p>\r\n * </template>\r\n *\r\n * <script>\r\n * import { useI18n } from 'vue-i18n'\r\n *\r\n * export default {\r\n * setup() {\r\n * const { t, locale } = useI18n({\r\n * locale: 'ja',\r\n * messages: {\r\n * en: { ... },\r\n * ja: { ... }\r\n * }\r\n * })\r\n * // Something to do ...\r\n *\r\n * return { ..., t, locale }\r\n * }\r\n * }\r\n * </script>\r\n * ```\r\n *\r\n * @VueI18nComposition\r\n */\r\nfunction useI18n(options = {}) {\r\n const instance = getCurrentInstance();\r\n if (instance == null) {\r\n throw createI18nError(16 /* MUST_BE_CALL_SETUP_TOP */);\r\n }\r\n if (!instance.appContext.app.__VUE_I18N_SYMBOL__) {\r\n throw createI18nError(17 /* NOT_INSLALLED */);\r\n }\r\n const i18n = inject(instance.appContext.app.__VUE_I18N_SYMBOL__);\r\n /* istanbul ignore if */\r\n if (!i18n) {\r\n throw createI18nError(22 /* UNEXPECTED_ERROR */);\r\n }\r\n // prettier-ignore\r\n const global = i18n.mode === 'composition'\r\n ? i18n.global\r\n : i18n.global.__composer;\r\n // prettier-ignore\r\n const scope = isEmptyObject(options)\r\n ? ('__i18n' in instance.type)\r\n ? 'local'\r\n : 'global'\r\n : !options.useScope\r\n ? 'local'\r\n : options.useScope;\r\n if (scope === 'global') {\r\n let messages = isObject(options.messages) ? options.messages : {};\r\n if ('__i18nGlobal' in instance.type) {\r\n messages = getLocaleMessages(global.locale.value, {\r\n messages,\r\n __i18n: instance.type.__i18nGlobal\r\n });\r\n }\r\n // merge locale messages\r\n const locales = Object.keys(messages);\r\n if (locales.length) {\r\n locales.forEach(locale => {\r\n global.mergeLocaleMessage(locale, messages[locale]);\r\n });\r\n }\r\n // merge datetime formats\r\n if (isObject(options.datetimeFormats)) {\r\n const locales = Object.keys(options.datetimeFormats);\r\n if (locales.length) {\r\n locales.forEach(locale => {\r\n global.mergeDateTimeFormat(locale, options.datetimeFormats[locale]);\r\n });\r\n }\r\n }\r\n // merge number formats\r\n if (isObject(options.numberFormats)) {\r\n const locales = Object.keys(options.numberFormats);\r\n if (locales.length) {\r\n locales.forEach(locale => {\r\n global.mergeNumberFormat(locale, options.numberFormats[locale]);\r\n });\r\n }\r\n }\r\n return global;\r\n }\r\n if (scope === 'parent') {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n let composer = getComposer(i18n, instance, options.__useComponent);\r\n if (composer == null) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n warn(getWarnMessage(12 /* NOT_FOUND_PARENT_SCOPE */));\r\n }\r\n composer = global;\r\n }\r\n return composer;\r\n }\r\n // scope 'local' case\r\n if (i18n.mode === 'legacy') {\r\n throw createI18nError(18 /* NOT_AVAILABLE_IN_LEGACY_MODE */);\r\n }\r\n const i18nInternal = i18n;\r\n let composer = i18nInternal.__getInstance(instance);\r\n if (composer == null) {\r\n const type = instance.type;\r\n const composerOptions = assign({}, options);\r\n if (type.__i18n) {\r\n composerOptions.__i18n = type.__i18n;\r\n }\r\n if (global) {\r\n composerOptions.__root = global;\r\n }\r\n composer = createComposer(composerOptions);\r\n setupLifeCycle(i18nInternal, instance, composer);\r\n i18nInternal.__setInstance(instance, composer);\r\n }\r\n return composer;\r\n}\r\nfunction getComposer(i18n, target, useComponent = false) {\r\n let composer = null;\r\n const root = target.root;\r\n let current = target.parent;\r\n while (current != null) {\r\n const i18nInternal = i18n;\r\n if (i18n.mode === 'composition') {\r\n composer = i18nInternal.__getInstance(current);\r\n }\r\n else {\r\n const vueI18n = i18nInternal.__getInstance(current);\r\n if (vueI18n != null) {\r\n composer = vueI18n\r\n .__composer;\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n if (useComponent && composer && !composer[InejctWithOption]) {\r\n composer = null;\r\n }\r\n }\r\n if (composer != null) {\r\n break;\r\n }\r\n if (root === current) {\r\n break;\r\n }\r\n current = current.parent;\r\n }\r\n return composer;\r\n}\r\nfunction setupLifeCycle(i18n, target, composer) {\r\n let emitter = null;\r\n onMounted(() => {\r\n // inject composer instance to DOM for intlify-devtools\r\n if (((process.env.NODE_ENV !== 'production') || __VUE_I18N_PROD_DEVTOOLS__) &&\r\n !false &&\r\n target.vnode.el) {\r\n target.vnode.el.__VUE_I18N__ = composer;\r\n emitter = createEmitter();\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const _composer = composer;\r\n _composer[EnableEmitter] && _composer[EnableEmitter](emitter);\r\n emitter.on('*', addTimelineEvent);\r\n }\r\n }, target);\r\n onUnmounted(() => {\r\n // remove composer instance from DOM for intlify-devtools\r\n if (((process.env.NODE_ENV !== 'production') || __VUE_I18N_PROD_DEVTOOLS__) &&\r\n !false &&\r\n target.vnode.el &&\r\n target.vnode.el.__VUE_I18N__) {\r\n emitter && emitter.off('*', addTimelineEvent);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const _composer = composer;\r\n _composer[DisableEmitter] && _composer[DisableEmitter]();\r\n delete target.vnode.el.__VUE_I18N__;\r\n }\r\n i18n.__deleteInstance(target);\r\n }, target);\r\n}\r\nconst globalExportProps = [\r\n 'locale',\r\n 'fallbackLocale',\r\n 'availableLocales'\r\n];\r\nconst globalExportMethods = ['t', 'rt', 'd', 'n', 'tm'];\r\nfunction injectGlobalFields(app, composer) {\r\n const i18n = Object.create(null);\r\n globalExportProps.forEach(prop => {\r\n const desc = Object.getOwnPropertyDescriptor(composer, prop);\r\n if (!desc) {\r\n throw createI18nError(22 /* UNEXPECTED_ERROR */);\r\n }\r\n const wrap = isRef(desc.value) // check computed props\r\n ? {\r\n get() {\r\n return desc.value.value;\r\n },\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n set(val) {\r\n desc.value.value = val;\r\n }\r\n }\r\n : {\r\n get() {\r\n return desc.get && desc.get();\r\n }\r\n };\r\n Object.defineProperty(i18n, prop, wrap);\r\n });\r\n app.config.globalProperties.$i18n = i18n;\r\n globalExportMethods.forEach(method => {\r\n const desc = Object.getOwnPropertyDescriptor(composer, method);\r\n if (!desc || !desc.value) {\r\n throw createI18nError(22 /* UNEXPECTED_ERROR */);\r\n }\r\n Object.defineProperty(app.config.globalProperties, `$${method}`, desc);\r\n });\r\n}\n\n{\r\n initFeatureFlags();\r\n}\r\n// NOTE: experimental !!\r\nif ((process.env.NODE_ENV !== 'production') || __INTLIFY_PROD_DEVTOOLS__) {\r\n const target = getGlobalThis();\r\n target.__INTLIFY__ = true;\r\n setDevToolsHook(target.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__);\r\n}\r\nif ((process.env.NODE_ENV !== 'production')) ;\n\nexport { DatetimeFormat, NumberFormat, Translation, VERSION, createI18n, useI18n, vTDirective };\n","'use strict';\n\nvar has = Object.prototype.hasOwnProperty;\n\nvar hexTable = (function () {\n var array = [];\n for (var i = 0; i < 256; ++i) {\n array.push('%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase());\n }\n\n return array;\n}());\n\nvar compactQueue = function compactQueue(queue) {\n var obj;\n\n while (queue.length) {\n var item = queue.pop();\n obj = item.obj[item.prop];\n\n if (Array.isArray(obj)) {\n var compacted = [];\n\n for (var j = 0; j < obj.length; ++j) {\n if (typeof obj[j] !== 'undefined') {\n compacted.push(obj[j]);\n }\n }\n\n item.obj[item.prop] = compacted;\n }\n }\n\n return obj;\n};\n\nvar arrayToObject = function arrayToObject(source, options) {\n var obj = options && options.plainObjects ? Object.create(null) : {};\n for (var i = 0; i < source.length; ++i) {\n if (typeof source[i] !== 'undefined') {\n obj[i] = source[i];\n }\n }\n\n return obj;\n};\n\nvar merge = function merge(target, source, options) {\n if (!source) {\n return target;\n }\n\n if (typeof source !== 'object') {\n if (Array.isArray(target)) {\n target.push(source);\n } else if (target && typeof target === 'object') {\n if ((options && (options.plainObjects || options.allowPrototypes)) || !has.call(Object.prototype, source)) {\n target[source] = true;\n }\n } else {\n return [target, source];\n }\n\n return target;\n }\n\n if (!target || typeof target !== 'object') {\n return [target].concat(source);\n }\n\n var mergeTarget = target;\n if (Array.isArray(target) && !Array.isArray(source)) {\n mergeTarget = arrayToObject(target, options);\n }\n\n if (Array.isArray(target) && Array.isArray(source)) {\n source.forEach(function (item, i) {\n if (has.call(target, i)) {\n var targetItem = target[i];\n if (targetItem && typeof targetItem === 'object' && item && typeof item === 'object') {\n target[i] = merge(targetItem, item, options);\n } else {\n target.push(item);\n }\n } else {\n target[i] = item;\n }\n });\n return target;\n }\n\n return Object.keys(source).reduce(function (acc, key) {\n var value = source[key];\n\n if (has.call(acc, key)) {\n acc[key] = merge(acc[key], value, options);\n } else {\n acc[key] = value;\n }\n return acc;\n }, mergeTarget);\n};\n\nvar assign = function assignSingleSource(target, source) {\n return Object.keys(source).reduce(function (acc, key) {\n acc[key] = source[key];\n return acc;\n }, target);\n};\n\nvar decode = function (str) {\n try {\n return decodeURIComponent(str.replace(/\\+/g, ' '));\n } catch (e) {\n return str;\n }\n};\n\nvar encode = function encode(str) {\n // This code was originally written by Brian White (mscdex) for the io.js core querystring library.\n // It has been adapted here for stricter adherence to RFC 3986\n if (str.length === 0) {\n return str;\n }\n\n var string = typeof str === 'string' ? str : String(str);\n\n var out = '';\n for (var i = 0; i < string.length; ++i) {\n var c = string.charCodeAt(i);\n\n if (\n c === 0x2D // -\n || c === 0x2E // .\n || c === 0x5F // _\n || c === 0x7E // ~\n || (c >= 0x30 && c <= 0x39) // 0-9\n || (c >= 0x41 && c <= 0x5A) // a-z\n || (c >= 0x61 && c <= 0x7A) // A-Z\n ) {\n out += string.charAt(i);\n continue;\n }\n\n if (c < 0x80) {\n out = out + hexTable[c];\n continue;\n }\n\n if (c < 0x800) {\n out = out + (hexTable[0xC0 | (c >> 6)] + hexTable[0x80 | (c & 0x3F)]);\n continue;\n }\n\n if (c < 0xD800 || c >= 0xE000) {\n out = out + (hexTable[0xE0 | (c >> 12)] + hexTable[0x80 | ((c >> 6) & 0x3F)] + hexTable[0x80 | (c & 0x3F)]);\n continue;\n }\n\n i += 1;\n c = 0x10000 + (((c & 0x3FF) << 10) | (string.charCodeAt(i) & 0x3FF));\n /* eslint operator-linebreak: [2, \"before\"] */\n out += hexTable[0xF0 | (c >> 18)]\n + hexTable[0x80 | ((c >> 12) & 0x3F)]\n + hexTable[0x80 | ((c >> 6) & 0x3F)]\n + hexTable[0x80 | (c & 0x3F)];\n }\n\n return out;\n};\n\nvar compact = function compact(value) {\n var queue = [{ obj: { o: value }, prop: 'o' }];\n var refs = [];\n\n for (var i = 0; i < queue.length; ++i) {\n var item = queue[i];\n var obj = item.obj[item.prop];\n\n var keys = Object.keys(obj);\n for (var j = 0; j < keys.length; ++j) {\n var key = keys[j];\n var val = obj[key];\n if (typeof val === 'object' && val !== null && refs.indexOf(val) === -1) {\n queue.push({ obj: obj, prop: key });\n refs.push(val);\n }\n }\n }\n\n return compactQueue(queue);\n};\n\nvar isRegExp = function isRegExp(obj) {\n return Object.prototype.toString.call(obj) === '[object RegExp]';\n};\n\nvar isBuffer = function isBuffer(obj) {\n if (obj === null || typeof obj === 'undefined') {\n return false;\n }\n\n return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));\n};\n\nmodule.exports = {\n arrayToObject: arrayToObject,\n assign: assign,\n compact: compact,\n decode: decode,\n encode: encode,\n isBuffer: isBuffer,\n isRegExp: isRegExp,\n merge: merge\n};\n","'use strict';\n\nvar replace = String.prototype.replace;\nvar percentTwenties = /%20/g;\n\nmodule.exports = {\n 'default': 'RFC3986',\n formatters: {\n RFC1738: function (value) {\n return replace.call(value, percentTwenties, '+');\n },\n RFC3986: function (value) {\n return String(value);\n }\n },\n RFC1738: 'RFC1738',\n RFC3986: 'RFC3986'\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar formats = require('./formats');\n\nvar arrayPrefixGenerators = {\n brackets: function brackets(prefix) {\n return prefix + '[]';\n },\n indices: function indices(prefix, key) {\n return prefix + '[' + key + ']';\n },\n repeat: function repeat(prefix) {\n return prefix;\n }\n};\n\nvar isArray = Array.isArray;\nvar push = Array.prototype.push;\nvar pushToArray = function (arr, valueOrArray) {\n push.apply(arr, isArray(valueOrArray) ? valueOrArray : [valueOrArray]);\n};\n\nvar toISO = Date.prototype.toISOString;\n\nvar defaults = {\n delimiter: '&',\n encode: true,\n encoder: utils.encode,\n encodeValuesOnly: false,\n serializeDate: function serializeDate(date) {\n return toISO.call(date);\n },\n skipNulls: false,\n strictNullHandling: false\n};\n\nvar stringify = function stringify(\n object,\n prefix,\n generateArrayPrefix,\n strictNullHandling,\n skipNulls,\n encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n formatter,\n encodeValuesOnly\n) {\n var obj = object;\n if (typeof filter === 'function') {\n obj = filter(prefix, obj);\n } else if (obj instanceof Date) {\n obj = serializeDate(obj);\n }\n\n if (obj === null) {\n if (strictNullHandling) {\n return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder) : prefix;\n }\n\n obj = '';\n }\n\n if (typeof obj === 'string' || typeof obj === 'number' || typeof obj === 'boolean' || utils.isBuffer(obj)) {\n if (encoder) {\n var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder);\n return [formatter(keyValue) + '=' + formatter(encoder(obj, defaults.encoder))];\n }\n return [formatter(prefix) + '=' + formatter(String(obj))];\n }\n\n var values = [];\n\n if (typeof obj === 'undefined') {\n return values;\n }\n\n var objKeys;\n if (isArray(filter)) {\n objKeys = filter;\n } else {\n var keys = Object.keys(obj);\n objKeys = sort ? keys.sort(sort) : keys;\n }\n\n for (var i = 0; i < objKeys.length; ++i) {\n var key = objKeys[i];\n\n if (skipNulls && obj[key] === null) {\n continue;\n }\n\n if (isArray(obj)) {\n pushToArray(values, stringify(\n obj[key],\n generateArrayPrefix(prefix, key),\n generateArrayPrefix,\n strictNullHandling,\n skipNulls,\n encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n formatter,\n encodeValuesOnly\n ));\n } else {\n pushToArray(values, stringify(\n obj[key],\n prefix + (allowDots ? '.' + key : '[' + key + ']'),\n generateArrayPrefix,\n strictNullHandling,\n skipNulls,\n encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n formatter,\n encodeValuesOnly\n ));\n }\n }\n\n return values;\n};\n\nmodule.exports = function (object, opts) {\n var obj = object;\n var options = opts ? utils.assign({}, opts) : {};\n\n if (options.encoder !== null && typeof options.encoder !== 'undefined' && typeof options.encoder !== 'function') {\n throw new TypeError('Encoder has to be a function.');\n }\n\n var delimiter = typeof options.delimiter === 'undefined' ? defaults.delimiter : options.delimiter;\n var strictNullHandling = typeof options.strictNullHandling === 'boolean' ? options.strictNullHandling : defaults.strictNullHandling;\n var skipNulls = typeof options.skipNulls === 'boolean' ? options.skipNulls : defaults.skipNulls;\n var encode = typeof options.encode === 'boolean' ? options.encode : defaults.encode;\n var encoder = typeof options.encoder === 'function' ? options.encoder : defaults.encoder;\n var sort = typeof options.sort === 'function' ? options.sort : null;\n var allowDots = typeof options.allowDots === 'undefined' ? false : options.allowDots;\n var serializeDate = typeof options.serializeDate === 'function' ? options.serializeDate : defaults.serializeDate;\n var encodeValuesOnly = typeof options.encodeValuesOnly === 'boolean' ? options.encodeValuesOnly : defaults.encodeValuesOnly;\n if (typeof options.format === 'undefined') {\n options.format = formats['default'];\n } else if (!Object.prototype.hasOwnProperty.call(formats.formatters, options.format)) {\n throw new TypeError('Unknown format option provided.');\n }\n var formatter = formats.formatters[options.format];\n var objKeys;\n var filter;\n\n if (typeof options.filter === 'function') {\n filter = options.filter;\n obj = filter('', obj);\n } else if (isArray(options.filter)) {\n filter = options.filter;\n objKeys = filter;\n }\n\n var keys = [];\n\n if (typeof obj !== 'object' || obj === null) {\n return '';\n }\n\n var arrayFormat;\n if (options.arrayFormat in arrayPrefixGenerators) {\n arrayFormat = options.arrayFormat;\n } else if ('indices' in options) {\n arrayFormat = options.indices ? 'indices' : 'repeat';\n } else {\n arrayFormat = 'indices';\n }\n\n var generateArrayPrefix = arrayPrefixGenerators[arrayFormat];\n\n if (!objKeys) {\n objKeys = Object.keys(obj);\n }\n\n if (sort) {\n objKeys.sort(sort);\n }\n\n for (var i = 0; i < objKeys.length; ++i) {\n var key = objKeys[i];\n\n if (skipNulls && obj[key] === null) {\n continue;\n }\n pushToArray(keys, stringify(\n obj[key],\n key,\n generateArrayPrefix,\n strictNullHandling,\n skipNulls,\n encode ? encoder : null,\n filter,\n sort,\n allowDots,\n serializeDate,\n formatter,\n encodeValuesOnly\n ));\n }\n\n var joined = keys.join(delimiter);\n var prefix = options.addQueryPrefix === true ? '?' : '';\n\n return joined.length > 0 ? prefix + joined : '';\n};\n","'use strict';\n\nvar utils = require('./utils');\n\nvar has = Object.prototype.hasOwnProperty;\n\nvar defaults = {\n allowDots: false,\n allowPrototypes: false,\n arrayLimit: 20,\n decoder: utils.decode,\n delimiter: '&',\n depth: 5,\n parameterLimit: 1000,\n plainObjects: false,\n strictNullHandling: false\n};\n\nvar parseValues = function parseQueryStringValues(str, options) {\n var obj = {};\n var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\\?/, '') : str;\n var limit = options.parameterLimit === Infinity ? undefined : options.parameterLimit;\n var parts = cleanStr.split(options.delimiter, limit);\n\n for (var i = 0; i < parts.length; ++i) {\n var part = parts[i];\n\n var bracketEqualsPos = part.indexOf(']=');\n var pos = bracketEqualsPos === -1 ? part.indexOf('=') : bracketEqualsPos + 1;\n\n var key, val;\n if (pos === -1) {\n key = options.decoder(part, defaults.decoder);\n val = options.strictNullHandling ? null : '';\n } else {\n key = options.decoder(part.slice(0, pos), defaults.decoder);\n val = options.decoder(part.slice(pos + 1), defaults.decoder);\n }\n if (has.call(obj, key)) {\n obj[key] = [].concat(obj[key]).concat(val);\n } else {\n obj[key] = val;\n }\n }\n\n return obj;\n};\n\nvar parseObject = function (chain, val, options) {\n var leaf = val;\n\n for (var i = chain.length - 1; i >= 0; --i) {\n var obj;\n var root = chain[i];\n\n if (root === '[]' && options.parseArrays) {\n obj = [].concat(leaf);\n } else {\n obj = options.plainObjects ? Object.create(null) : {};\n var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root;\n var index = parseInt(cleanRoot, 10);\n if (!options.parseArrays && cleanRoot === '') {\n obj = { 0: leaf };\n } else if (\n !isNaN(index)\n && root !== cleanRoot\n && String(index) === cleanRoot\n && index >= 0\n && (options.parseArrays && index <= options.arrayLimit)\n ) {\n obj = [];\n obj[index] = leaf;\n } else if (cleanRoot !== '__proto__') {\n obj[cleanRoot] = leaf;\n }\n }\n\n leaf = obj;\n }\n\n return leaf;\n};\n\nvar parseKeys = function parseQueryStringKeys(givenKey, val, options) {\n if (!givenKey) {\n return;\n }\n\n // Transform dot notation to bracket notation\n var key = options.allowDots ? givenKey.replace(/\\.([^.[]+)/g, '[$1]') : givenKey;\n\n // The regex chunks\n\n var brackets = /(\\[[^[\\]]*])/;\n var child = /(\\[[^[\\]]*])/g;\n\n // Get the parent\n\n var segment = brackets.exec(key);\n var parent = segment ? key.slice(0, segment.index) : key;\n\n // Stash the parent if it exists\n\n var keys = [];\n if (parent) {\n // If we aren't using plain objects, optionally prefix keys\n // that would overwrite object prototype properties\n if (!options.plainObjects && has.call(Object.prototype, parent)) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n\n keys.push(parent);\n }\n\n // Loop through children appending to the array until we hit depth\n\n var i = 0;\n while ((segment = child.exec(key)) !== null && i < options.depth) {\n i += 1;\n if (!options.plainObjects && has.call(Object.prototype, segment[1].slice(1, -1))) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n keys.push(segment[1]);\n }\n\n // If there's a remainder, just add whatever is left\n\n if (segment) {\n keys.push('[' + key.slice(segment.index) + ']');\n }\n\n return parseObject(keys, val, options);\n};\n\nmodule.exports = function (str, opts) {\n var options = opts ? utils.assign({}, opts) : {};\n\n if (options.decoder !== null && options.decoder !== undefined && typeof options.decoder !== 'function') {\n throw new TypeError('Decoder has to be a function.');\n }\n\n options.ignoreQueryPrefix = options.ignoreQueryPrefix === true;\n options.delimiter = typeof options.delimiter === 'string' || utils.isRegExp(options.delimiter) ? options.delimiter : defaults.delimiter;\n options.depth = typeof options.depth === 'number' ? options.depth : defaults.depth;\n options.arrayLimit = typeof options.arrayLimit === 'number' ? options.arrayLimit : defaults.arrayLimit;\n options.parseArrays = options.parseArrays !== false;\n options.decoder = typeof options.decoder === 'function' ? options.decoder : defaults.decoder;\n options.allowDots = typeof options.allowDots === 'boolean' ? options.allowDots : defaults.allowDots;\n options.plainObjects = typeof options.plainObjects === 'boolean' ? options.plainObjects : defaults.plainObjects;\n options.allowPrototypes = typeof options.allowPrototypes === 'boolean' ? options.allowPrototypes : defaults.allowPrototypes;\n options.parameterLimit = typeof options.parameterLimit === 'number' ? options.parameterLimit : defaults.parameterLimit;\n options.strictNullHandling = typeof options.strictNullHandling === 'boolean' ? options.strictNullHandling : defaults.strictNullHandling;\n\n if (str === '' || str === null || typeof str === 'undefined') {\n return options.plainObjects ? Object.create(null) : {};\n }\n\n var tempObj = typeof str === 'string' ? parseValues(str, options) : str;\n var obj = options.plainObjects ? Object.create(null) : {};\n\n // Iterate over the keys and setup the new object\n\n var keys = Object.keys(tempObj);\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n var newObj = parseKeys(key, tempObj[key], options);\n obj = utils.merge(obj, newObj, options);\n }\n\n return utils.compact(obj);\n};\n","'use strict';\n\nvar stringify = require('./stringify');\nvar parse = require('./parse');\nvar formats = require('./formats');\n\nmodule.exports = {\n formats: formats,\n parse: parse,\n stringify: stringify\n};\n","export class AbortablePromise<T> {\n promise: Promise<T>\n private _reject: ((res?: any) => void) | null = null\n\n constructor(executor: (resolve: (value: T | PromiseLike<T>) => void, reject: (reason?: any) => void) => void) {\n this.promise = new Promise<T>((resolve, reject) => {\n executor(resolve, reject)\n this._reject = reject // 保存reject方法的引用以便在abort时调用\n })\n }\n // 提供abort方法来中止Promise\n abort(error?: any) {\n if (this._reject) {\n this._reject(error) // 调用reject方法来中止Promise\n }\n }\n\n then<TResult1 = T, TResult2 = never>(\n onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null,\n onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null\n ): Promise<TResult1 | TResult2> {\n return this.promise.then(onfulfilled, onrejected)\n }\n\n catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): Promise<T | TResult> {\n return this.promise.catch(onrejected)\n }\n}\n","import { AbortablePromise } from './AbortablePromise'\n\n/**\n * 生成uuid\n * @returns string\n */\nexport function uuid() {\n return s4() + s4() + s4() + s4() + s4() + s4() + s4() + s4()\n}\n\nfunction s4() {\n return Math.floor((1 + Math.random()) * 0x10000)\n .toString(16)\n .substring(1)\n}\n\n/**\n * @description 对num自动填充px\n * @param {Number} num\n * @return {string} num+px\n */\nexport function addUnit(num: number | string) {\n return Number.isNaN(Number(num)) ? num : `${num}px`\n}\n\n/**\n * @description 判断target是否对象\n * @param value\n * @return {boolean}\n */\nexport function isObj(value: any): value is object {\n return Object.prototype.toString.call(value) === '[object Object]' || typeof value === 'object'\n}\n\n/**\n * 获取目标原始类型\n * @param target 任意类型\n * @returns {string} type 数据类型\n */\nexport function getType(target: unknown): string {\n // 得到原生类型\n const typeStr = Object.prototype.toString.call(target)\n // 拿到类型值\n const match = typeStr.match(/\\[object (\\w+)\\]/)\n const type = match && match.length ? match[1].toLowerCase() : ''\n // 类型值转小写并返回\n return type\n}\n\n/**\n * @description 默认的外部格式化函数 - picker 组件\n * @param items - 要格式化的数据项数组或单个数据项\n * @param kv - 配置对象,包含 labelKey 作为键值\n * @returns 格式化后的字符串\n */\nexport const defaultDisplayFormat = function (items: any[] | Record<string, any>, kv?: { labelKey?: string }): string {\n const labelKey: string = kv?.labelKey || 'value'\n\n if (Array.isArray(items)) {\n return items.map((item) => item[labelKey]).join(', ')\n } else {\n return items[labelKey]\n }\n}\n\n/**\n * @description 默认函数占位符 - pickerView组件\n * @param value 值\n * @return value\n */\nexport const defaultFunction = <T>(value: T): T => value\n\n/**\n * @description 检查值是否不为空\n * @param value 值\n * @return {Boolean} 是否不为空\n */\nexport const isDef = <T>(value: T): value is NonNullable<T> => value !== undefined && value !== null\n\n/**\n * @description 防止数字小于零\n * @param {number} num\n * @param {string} label 标签\n */\nexport const checkNumRange = (num: number, label: string = 'value'): void => {\n if (num < 0) {\n throw new Error(`${label} shouldn't be less than zero`)\n }\n}\n\n/**\n * @description 防止 pixel 无意义\n * @param {number} num\n * @param {string} label 标签\n */\nexport const checkPixelRange = (num: number, label: string = 'value'): void => {\n if (num <= 0) {\n throw new Error(`${label} should be greater than zero`)\n }\n}\n\n/**\n * 将 RGB 值转换为十六进制颜色代码。\n * @param {number} r - 红色分量 (0-255)。\n * @param {number} g - 绿色分量 (0-255)。\n * @param {number} b - 蓝色分量 (0-255)。\n * @returns {string} 十六进制颜色代码 (#RRGGBB)。\n */\nexport function rgbToHex(r: number, g: number, b: number): string {\n // 将 RGB 分量组合成一个十六进制数。\n const hex = ((r << 16) | (g << 8) | b).toString(16)\n\n // 使用零填充十六进制数,确保它有 6 位数字RGB 范围)。\n const paddedHex = '#' + '0'.repeat(Math.max(0, 6 - hex.length)) + hex\n\n return paddedHex\n}\n\n/**\n * 将十六进制颜色代码转换为 RGB 颜色数组。\n * @param hex 十六进制颜色代码(例如:'#RRGGBB'\n * @returns 包含红、绿、蓝三个颜色分量的数组\n */\nfunction hexToRgb(hex: string): number[] {\n const rgb: number[] = []\n\n // 从第一个字符开始,每两个字符代表一个颜色分量\n for (let i = 1; i < 7; i += 2) {\n // 将两个字符的十六进制转换为十进制,并添加到 rgb 数组中\n rgb.push(parseInt('0x' + hex.slice(i, i + 2), 16))\n }\n\n return rgb\n}\n\n/**\n * 计算渐变色的中间变量数组。\n * @param {string} startColor 开始颜色\n * @param {string} endColor 结束颜色\n * @param {number} step 获取渲染位置,默认为中间位置\n * @returns {string[]} 渐变色中间颜色变量数组\n */\nexport const gradient = (startColor: string, endColor: string, step: number = 2): string[] => {\n // 将hex转换为rgb\n const sColor: number[] = hexToRgb(startColor)\n const eColor: number[] = hexToRgb(endColor)\n\n // 计算R\\G\\B每一步的差值\n const rStep: number = (eColor[0] - sColor[0]) / step\n const gStep: number = (eColor[1] - sColor[1]) / step\n const bStep: number = (eColor[2] - sColor[2]) / step\n\n const gradientColorArr: string[] = []\n for (let i = 0; i < step; i++) {\n // 计算每一步的hex值\n gradientColorArr.push(\n rgbToHex(parseInt(String(rStep * i + sColor[0])), parseInt(String(gStep * i + sColor[1])), parseInt(String(bStep * i + sColor[2])))\n )\n }\n return gradientColorArr\n}\n\n/**\n * 确保数值不超出指定范围。\n * @param {number} num 要限制范围的数值\n * @param {number} min 最小范围\n * @param {number} max 最大范围\n * @returns {number} 在指定范围内的数值\n */\nexport const range = (num: number, min: number, max: number): number => {\n // 使用 Math.min 和 Math.max 保证 num 不会超出指定范围\n return Math.min(Math.max(num, min), max)\n}\n\n/**\n * 比较两个值是否相等。\n * @param {any} value1 第一个值\n * @param {any} value2 第二个值\n * @returns {boolean} 如果值相等则为 true否则为 false\n */\nexport const isEqual = (value1: any, value2: any): boolean => {\n // 使用严格相等运算符比较值是否相等\n if (value1 === value2) {\n return true\n }\n\n // 如果其中一个值不是数组,则认为值不相等\n if (!Array.isArray(value1) || !Array.isArray(value2)) {\n return false\n }\n\n // 如果数组长度不相等,则认为值不相等\n if (value1.length !== value2.length) {\n return false\n }\n\n // 逐个比较数组元素是否相等\n for (let i = 0; i < value1.length; ++i) {\n if (value1[i] !== value2[i]) {\n return false\n }\n }\n\n // 所有比较均通过,则认为值相等\n return true\n}\n\n/**\n * 在数字前补零,使其达到指定长度。\n * @param {number | string} number 要补零的数字\n * @param {number} length 目标长度,默认为 2\n * @returns {string} 补零后的结果\n */\nexport const padZero = (number: number | string, length: number = 2): string => {\n // 将输入转换为字符串\n let numStr: string = number.toString()\n\n // 在数字前补零,直到达到指定长度\n while (numStr.length < length) {\n numStr = '0' + numStr\n }\n\n return numStr\n}\n\n/** @description 全局变量id */\nexport const context = {\n id: 1000\n}\n\nexport type RectResultType<T extends boolean> = T extends true ? UniApp.NodeInfo[] : UniApp.NodeInfo\n\n/**\n * 获取节点信息\n * @param selector 节点选择器 #id,.class\n * @param all 是否返回所有 selector 对应的节点\n * @param scope 作用域(支付宝小程序无效)\n * @returns 节点信息或节点信息数组\n */\nexport function getRect<T extends boolean>(selector: string, all: T, scope?: any): Promise<RectResultType<T>> {\n return new Promise<RectResultType<T>>((resolve, reject) => {\n let query: UniNamespace.SelectorQuery | null = null\n if (scope) {\n query = uni.createSelectorQuery().in(scope)\n } else {\n query = uni.createSelectorQuery()\n }\n query[all ? 'selectAll' : 'select'](selector)\n .boundingClientRect((rect) => {\n if (all && isArray(rect) && rect.length > 0) {\n resolve(rect as RectResultType<T>)\n } else if (!all && rect) {\n resolve(rect as RectResultType<T>)\n } else {\n reject(new Error('No nodes found'))\n }\n })\n .exec()\n })\n}\n\n/**\n * 将驼峰命名转换为短横线命名。\n * @param {string} word 待转换的词条\n * @returns {string} 转换后的结果\n */\nexport function kebabCase(word: string): string {\n // 使用正则表达式匹配所有大写字母,并在前面加上短横线,然后转换为小写\n const newWord: string = word\n .replace(/[A-Z]/g, function (match) {\n return '-' + match\n })\n .toLowerCase()\n\n return newWord\n}\n\n/**\n * 将短横线链接转换为驼峰命名\n * @param word 需要转换的短横线链接\n * @returns 转换后的驼峰命名字符串\n */\nexport function camelCase(word: string): string {\n return word.replace(/-(\\w)/g, (_, c) => c.toUpperCase())\n}\n\n/**\n * 检查给定值是否为数组。\n * @param {any} value 要检查的值\n * @returns {boolean} 如果是数组则返回 true否则返回 false\n */\nexport function isArray(value: any): value is Array<any> {\n // 如果 Array.isArray 函数可用,直接使用该函数检查\n if (typeof Array.isArray === 'function') {\n return Array.isArray(value)\n }\n // 否则,使用对象原型的 toString 方法进行检查\n return Object.prototype.toString.call(value) === '[object Array]'\n}\n\n/**\n * 检查给定值是否为函数。\n * @param {any} value 要检查的值\n * @returns {boolean} 如果是函数则返回 true否则返回 false\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function isFunction<T extends Function>(value: any): value is T {\n return getType(value) === 'function'\n}\n\n/**\n * 检查给定值是否为字符串。\n * @param {unknown} value 要检查的值\n * @returns {value is string} 如果是字符串则返回 true否则返回 false\n */\nexport function isString(value: unknown): value is string {\n return getType(value) === 'string'\n}\n\n/**\n * 否是数值\n * @param {*} value\n */\nexport function isNumber(value: any): value is number {\n return getType(value) === 'number'\n}\n\n/**\n * 检查给定值是否为 Promise 对象。\n * @param {unknown} value 要检查的值\n * @returns {value is Promise<any>} 如果是 Promise 对象则返回 true否则返回 false\n */\nexport function isPromise(value: unknown): value is Promise<any> {\n // 先将 value 断言为 object 类型\n if (isObj(value) && isDef(value)) {\n // 然后进一步检查 value 是否具有 then 和 catch 方法,并且它们是函数类型\n return isFunction((value as Promise<any>).then) && isFunction((value as Promise<any>).catch)\n }\n return false // 如果 value 不是对象类型,则肯定不是 Promise\n}\n\n/**\n * 检查给定的值是否为布尔类型\n * @param value 要检查的值\n * @returns 如果值为布尔类型则返回true否则返回false\n */\nexport function isBoolean(value: any): value is boolean {\n return typeof value === 'boolean'\n}\n\n/**\n * 检查给定的值是否为奇数\n * @param value 要检查的值\n * @returns\n */\nexport function isOdd(value: number): boolean {\n if (typeof value !== 'number') {\n throw new Error('输入必须为数字')\n }\n\n // 使用取模运算符来判断是否为奇数\n // 如果 number 除以 2 的余数为 1就是奇数\n // 否则是偶数\n return value % 2 === 1\n}\n\n/**\n * 是否为base64图片\n * @param {string} url\n * @return\n */\nexport function isBase64Image(url: string) {\n // 使用正则表达式检查URL是否以\"data:image\"开头这是Base64图片的常见前缀\n return /^data:image\\/(png|jpg|jpeg|gif|bmp);base64,/.test(url)\n}\n\n/**\n * 将外部传入的样式格式化为可读的 CSS 样式。\n * @param {object | object[]} styles 外部传入的样式对象或数组\n * @returns {string} 格式化后的 CSS 样式字符串\n */\nexport function objToStyle(styles: Record<string, any> | Record<string, any>[]): string {\n // 如果 styles 是数组类型\n if (isArray(styles)) {\n // 使用过滤函数去除空值和 null 值的元素\n // 对每个非空元素递归调用 objToStyle然后通过分号连接\n return styles\n .filter(function (item) {\n return item != null && item !== ''\n })\n .map(function (item) {\n return objToStyle(item)\n })\n .join(';')\n }\n\n if (isString(styles)) {\n return styles\n }\n\n // 如果 styles 是对象类型\n if (isObj(styles)) {\n // 使用 Object.keys 获取所有属性名\n // 使用过滤函数去除值为 null 或空字符串的属性\n // 对每个属性名和属性值进行格式化,通过分号连接\n return Object.keys(styles)\n .filter(function (key) {\n return styles[key] != null && styles[key] !== ''\n })\n .map(function (key) {\n // 使用 kebabCase 函数将属性名转换为 kebab-case 格式\n // 将属性名和属性值格式化为 CSS 样式的键值对\n return [kebabCase(key), styles[key]].join(':')\n })\n .join(';')\n }\n // 如果 styles 不是对象也不是数组,则直接返回\n return ''\n}\n\nexport const requestAnimationFrame = (cb = () => {}) => {\n return new AbortablePromise((resolve) => {\n const timer = setInterval(() => {\n clearInterval(timer)\n resolve(true)\n cb()\n }, 1000 / 30)\n })\n}\n\n/**\n * 深拷贝函数,用于将对象进行完整复制。\n * @param obj 要深拷贝的对象\n * @param cache 用于缓存已复制的对象,防止循环引用\n * @returns 深拷贝后的对象副本\n */\nexport function deepClone<T>(obj: T, cache: Map<any, any> = new Map()): T {\n // 如果对象为 null 或者不是对象类型,则直接返回该对象\n if (obj === null || typeof obj !== 'object') {\n return obj\n }\n\n // 处理特殊对象类型:日期、正则表达式、错误对象\n if (isDate(obj)) {\n return new Date(obj.getTime()) as any\n }\n if (obj instanceof RegExp) {\n return new RegExp(obj.source, obj.flags) as any\n }\n if (obj instanceof Error) {\n const errorCopy = new Error(obj.message) as any\n errorCopy.stack = obj.stack\n return errorCopy\n }\n\n // 检查缓存中是否已存在该对象的复制\n if (cache.has(obj)) {\n return cache.get(obj)\n }\n\n // 根据原始对象的类型创建对应的空对象或数组\n const copy: any = Array.isArray(obj) ? [] : {}\n\n // 将当前对象添加到缓存中\n cache.set(obj, copy)\n\n // 递归地深拷贝对象的每个属性\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n copy[key] = deepClone(obj[key], cache)\n }\n }\n\n return copy as T\n}\n\n/**\n * 深度合并两个对象。\n * @param target 目标对象,将合并的结果存放在此对象中\n * @param source 源对象,要合并到目标对象的对象\n * @returns 合并后的目标对象\n */\nexport function deepMerge<T extends Record<string, any>>(target: T, source: Record<string, any>): T {\n // 深拷贝目标对象,避免修改原始对象\n target = deepClone(target)\n\n // 检查目标和源是否都是对象类型\n if (typeof target !== 'object' || typeof source !== 'object') {\n throw new Error('Both target and source must be objects.')\n }\n\n // 遍历源对象的属性\n for (const prop in source) {\n // eslint-disable-next-line no-prototype-builtins\n if (!source.hasOwnProperty(prop))\n continue\n // 使用类型断言,告诉 TypeScript 这是有效的属性\n ;(target as Record<string, any>)[prop] = source[prop]\n }\n\n return target\n}\n\n/**\n * 深度合并两个对象。\n * @param target\n * @param source\n * @returns\n */\nexport function deepAssign(target: Record<string, any>, source: Record<string, any>): Record<string, any> {\n Object.keys(source).forEach((key) => {\n const targetValue = target[key]\n const newObjValue = source[key]\n if (isObj(targetValue) && isObj(newObjValue)) {\n deepAssign(targetValue, newObjValue)\n } else {\n target[key] = newObjValue\n }\n })\n return target\n}\n\n/**\n * 构建带参数的URL\n * @param baseUrl 基础URL\n * @param params 参数对象键值对表示要添加到URL的参数\n * @returns 返回带有参数的URL\n */\nexport function buildUrlWithParams(baseUrl: string, params: Record<string, string>) {\n // 将参数对象转换为查询字符串\n const queryString = Object.entries(params)\n .map(([key, value]) => `${key}=${encodeURIComponent(value)}`)\n .join('&')\n\n // 检查基础URL是否已包含查询字符串并选择适当的分隔符\n const separator = baseUrl.includes('?') ? '&' : '?'\n\n // 返回带有参数的URL\n return `${baseUrl}${separator}${queryString}`\n}\n\ntype DebounceOptions = {\n leading?: boolean // 是否在延迟时间开始时调用函数\n trailing?: boolean // 是否在延迟时间结束时调用函数\n}\n\nexport function debounce<T extends (...args: any[]) => any>(func: T, wait: number, options: DebounceOptions = {}): T {\n let timeoutId: ReturnType<typeof setTimeout> | null = null\n let lastArgs: any[] | undefined\n let lastThis: any\n let result: ReturnType<T> | undefined\n const leading = isDef(options.leading) ? options.leading : false\n const trailing = isDef(options.trailing) ? options.trailing : true\n\n function invokeFunc() {\n if (lastArgs !== undefined) {\n result = func.apply(lastThis, lastArgs)\n lastArgs = undefined\n }\n }\n\n function startTimer() {\n timeoutId = setTimeout(() => {\n timeoutId = null\n if (trailing) {\n invokeFunc()\n }\n }, wait)\n }\n\n function cancelTimer() {\n if (timeoutId !== null) {\n clearTimeout(timeoutId)\n timeoutId = null\n }\n }\n\n function debounced(this: any, ...args: Parameters<T>): ReturnType<T> | undefined {\n lastArgs = args\n lastThis = this\n\n if (timeoutId === null) {\n if (leading) {\n invokeFunc()\n }\n startTimer()\n } else if (trailing) {\n cancelTimer()\n startTimer()\n }\n\n return result\n }\n\n return debounced as T\n}\n\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function throttle(func: Function, wait: number): Function {\n let timeout: ReturnType<typeof setTimeout> | null = null\n let previous: number = 0\n\n const throttled = function (this: any, ...args: any[]) {\n const now = Date.now()\n const remaining = wait - (now - previous)\n\n if (remaining <= 0) {\n if (timeout) {\n clearTimeout(timeout)\n timeout = null\n }\n previous = now\n func.apply(this, args)\n } else if (!timeout) {\n timeout = setTimeout(() => {\n previous = Date.now()\n timeout = null\n func.apply(this, args)\n }, remaining)\n }\n }\n\n return throttled\n}\n\n/**\n * 根据属性路径获取对象中的属性值\n * @param obj 目标对象\n * @param path 属性路径,可以是字符串或字符串数组\n * @returns 属性值,如果属性不存在或中间的属性为 null 或 undefined则返回 undefined\n */\nexport const getPropByPath = (obj: any, path: string): any => {\n const keys: string[] = path.split('.')\n\n try {\n return keys.reduce((acc: any, key: string) => (acc !== undefined && acc !== null ? acc[key] : undefined), obj)\n } catch (error) {\n return undefined\n }\n}\n\n/**\n * 检查一个值是否为Date类型\n * @param val 要检查的值\n * @returns 如果值是Date类型则返回true否则返回false\n */\nexport const isDate = (val: unknown): val is Date => Object.prototype.toString.call(val) === '[object Date]' && !Number.isNaN((val as Date).getTime())\n\n/**\n * 判断环境是否是H5\n */\nexport const isH5 = process.env.UNI_PLATFORM === 'h5'\n","import type { PropType } from 'vue'\n\nexport const unknownProp = null as unknown as PropType<unknown>\n\nexport const numericProp = [Number, String]\n\nexport const truthProp = {\n type: Boolean,\n default: true as const\n}\n\nexport const makeRequiredProp = <T>(type: T) => ({\n type,\n required: true as const\n})\n\nexport const makeArrayProp = <T>() => ({\n type: Array as PropType<T[]>,\n default: () => []\n})\n\nexport const makeBooleanProp = <T>(defaultVal: T) => ({\n type: Boolean,\n default: defaultVal\n})\n\nexport const makeNumberProp = <T>(defaultVal: T) => ({\n type: Number,\n default: defaultVal\n})\n\nexport const makeNumericProp = <T>(defaultVal: T) => ({\n type: numericProp,\n default: defaultVal\n})\n\nexport const makeStringProp = <T>(defaultVal: T) => ({\n type: String as unknown as PropType<T>,\n default: defaultVal\n})\n\nexport const baseProps = {\n /**\n * 自定义根节点样式\n */\n customStyle: makeStringProp(''),\n /**\n * 自定义根节点样式类\n */\n customClass: makeStringProp('')\n}\n","import { baseProps, makeRequiredProp, makeStringProp } from '../common/props'\n\nexport const iconProps = {\n ...baseProps,\n /**\n * 使用的图标名字,可以使用链接图片\n */\n name: makeRequiredProp(String),\n /**\n * 图标的颜色\n */\n color: String,\n /**\n * 图标的字体大小\n */\n size: String,\n /**\n * 类名前缀,用于使用自定义图标\n */\n classPrefix: makeStringProp('wd-icon')\n}\n","/*\n * @Author: weisheng\n * @Date: 2024-03-15 13:49:00\n * @LastEditTime: 2024-04-07 13:32:22\n * @LastEditors: weisheng\n * @Description:\n * @FilePath: \\wot-design-uni\\src\\uni_modules\\wot-design-uni\\components\\wd-status-tip\\types.ts\n * 记得注释\n */\nimport type { ExtractPropTypes, PropType } from 'vue'\nimport { baseProps, makeStringProp } from '../common/props'\nimport type { ImageMode } from '../wd-img/types'\n\nexport type ImageSize = {\n /**\n * 宽度\n */\n width: number | string\n /**\n * 高度\n */\n height: number | string\n}\n\nexport const statusTipProps = {\n ...baseProps,\n\n /**\n * 缺省图片类型,支持传入图片 URL。\n * 类型: string\n * 可选值: search, network, content, collect, comment, halo, message\n * 默认值: network\n */\n image: makeStringProp('network'),\n\n /**\n * 图片大小,默认单位为 `px`。\n * 类型: string 或 number 或 ImageSize\n * 默认值: 空字符串\n */\n imageSize: {\n type: [String, Number, Object] as PropType<string | number | ImageSize>,\n default: ''\n },\n /**\n * 提示文案。\n * 类型: string\n * 默认值: 空字符串\n */\n tip: makeStringProp(''),\n /**\n * 图片裁剪、缩放的模式\n * 类型string\n * 默认值:'aspectFill'\n */\n imageMode: makeStringProp<ImageMode>('aspectFill')\n}\n\nexport type StatusTipProps = ExtractPropTypes<typeof statusTipProps>\n","/*\n * @Author: weisheng\n * @Date: 2024-03-18 11:22:03\n * @LastEditTime: 2024-03-18 15:29:43\n * @LastEditors: weisheng\n * @Description:\n * @FilePath: \\wot-design-uni\\src\\uni_modules\\wot-design-uni\\components\\wd-popup\\types.ts\n * 记得注释\n */\nimport { baseProps, makeBooleanProp, makeNumberProp, makeStringProp } from '../common/props'\n\nexport type PopupType = 'center' | 'top' | 'right' | 'bottom' | 'left'\n\nexport const popupProps = {\n ...baseProps,\n transition: String,\n /**\n * 关闭按钮\n */\n closable: makeBooleanProp(false),\n /**\n * 弹出框的位置\n */\n position: makeStringProp<PopupType>('center'),\n /**\n * 点击遮罩是否关闭\n */\n closeOnClickModal: makeBooleanProp(true),\n /**\n * 动画持续时间\n */\n duration: {\n type: [Number, Boolean],\n default: 300\n },\n /**\n * 是否显示遮罩\n */\n modal: makeBooleanProp(true),\n /**\n * 设置层级\n */\n zIndex: makeNumberProp(10),\n /**\n * 是否当关闭时将弹出层隐藏display: none)\n */\n hideWhenClose: makeBooleanProp(true),\n /**\n * 遮罩样式\n */\n modalStyle: makeStringProp(''),\n /**\n * 弹出面板是否设置底部安全距离iphone X 类型的机型)\n */\n safeAreaInsetBottom: makeBooleanProp(false),\n /**\n * 弹出层是否显示\n */\n modelValue: makeBooleanProp(false),\n /**\n * 弹层内容懒渲染,触发展示时才渲染内容\n */\n lazyRender: makeBooleanProp(true),\n /**\n * 是否锁定滚动\n */\n lockScroll: makeBooleanProp(true)\n}\n","// src/index.ts\nvar areaList = {\n province_list: {\n 11e4: \"北京市\",\n 12e4: \"天津市\",\n 13e4: \"河北省\",\n 14e4: \"山西省\",\n 15e4: \"内蒙古自治区\",\n 21e4: \"辽宁省\",\n 22e4: \"吉林省\",\n 23e4: \"黑龙江省\",\n 31e4: \"上海市\",\n 32e4: \"江苏省\",\n 33e4: \"浙江省\",\n 34e4: \"安徽省\",\n 35e4: \"福建省\",\n 36e4: \"江西省\",\n 37e4: \"山东省\",\n 41e4: \"河南省\",\n 42e4: \"湖北省\",\n 43e4: \"湖南省\",\n 44e4: \"广东省\",\n 45e4: \"广西壮族自治区\",\n 46e4: \"海南省\",\n 5e5: \"重庆市\",\n 51e4: \"四川省\",\n 52e4: \"贵州省\",\n 53e4: \"云南省\",\n 54e4: \"西藏自治区\",\n 61e4: \"陕西省\",\n 62e4: \"甘肃省\",\n 63e4: \"青海省\",\n 64e4: \"宁夏回族自治区\",\n 65e4: \"新疆维吾尔自治区\",\n 71e4: \"台湾省\",\n 81e4: \"香港特别行政区\",\n 82e4: \"澳门特别行政区\"\n },\n city_list: {\n 110100: \"北京市\",\n 120100: \"天津市\",\n 130100: \"石家庄市\",\n 130200: \"唐山市\",\n 130300: \"秦皇岛市\",\n 130400: \"邯郸市\",\n 130500: \"邢台市\",\n 130600: \"保定市\",\n 130700: \"张家口市\",\n 130800: \"承德市\",\n 130900: \"沧州市\",\n 131e3: \"廊坊市\",\n 131100: \"衡水市\",\n 140100: \"太原市\",\n 140200: \"大同市\",\n 140300: \"阳泉市\",\n 140400: \"长治市\",\n 140500: \"晋城市\",\n 140600: \"朔州市\",\n 140700: \"晋中市\",\n 140800: \"运城市\",\n 140900: \"忻州市\",\n 141e3: \"临汾市\",\n 141100: \"吕梁市\",\n 150100: \"呼和浩特市\",\n 150200: \"包头市\",\n 150300: \"乌海市\",\n 150400: \"赤峰市\",\n 150500: \"通辽市\",\n 150600: \"鄂尔多斯市\",\n 150700: \"呼伦贝尔市\",\n 150800: \"巴彦淖尔市\",\n 150900: \"乌兰察布市\",\n 152200: \"兴安盟\",\n 152500: \"锡林郭勒盟\",\n 152900: \"阿拉善盟\",\n 210100: \"沈阳市\",\n 210200: \"大连市\",\n 210300: \"鞍山市\",\n 210400: \"抚顺市\",\n 210500: \"本溪市\",\n 210600: \"丹东市\",\n 210700: \"锦州市\",\n 210800: \"营口市\",\n 210900: \"阜新市\",\n 211e3: \"辽阳市\",\n 211100: \"盘锦市\",\n 211200: \"铁岭市\",\n 211300: \"朝阳市\",\n 211400: \"葫芦岛市\",\n 220100: \"长春市\",\n 220200: \"吉林市\",\n 220300: \"四平市\",\n 220400: \"辽源市\",\n 220500: \"通化市\",\n 220600: \"白山市\",\n 220700: \"松原市\",\n 220800: \"白城市\",\n 222400: \"延边朝鲜族自治州\",\n 230100: \"哈尔滨市\",\n 230200: \"齐齐哈尔市\",\n 230300: \"鸡西市\",\n 230400: \"鹤岗市\",\n 230500: \"双鸭山市\",\n 230600: \"大庆市\",\n 230700: \"伊春市\",\n 230800: \"佳木斯市\",\n 230900: \"七台河市\",\n 231e3: \"牡丹江市\",\n 231100: \"黑河市\",\n 231200: \"绥化市\",\n 232700: \"大兴安岭地区\",\n 310100: \"上海市\",\n 320100: \"南京市\",\n 320200: \"无锡市\",\n 320300: \"徐州市\",\n 320400: \"常州市\",\n 320500: \"苏州市\",\n 320600: \"南通市\",\n 320700: \"连云港市\",\n 320800: \"淮安市\",\n 320900: \"盐城市\",\n 321e3: \"扬州市\",\n 321100: \"镇江市\",\n 321200: \"泰州市\",\n 321300: \"宿迁市\",\n 330100: \"杭州市\",\n 330200: \"宁波市\",\n 330300: \"温州市\",\n 330400: \"嘉兴市\",\n 330500: \"湖州市\",\n 330600: \"绍兴市\",\n 330700: \"金华市\",\n 330800: \"衢州市\",\n 330900: \"舟山市\",\n 331e3: \"台州市\",\n 331100: \"丽水市\",\n 340100: \"合肥市\",\n 340200: \"芜湖市\",\n 340300: \"蚌埠市\",\n 340400: \"淮南市\",\n 340500: \"马鞍山市\",\n 340600: \"淮北市\",\n 340700: \"铜陵市\",\n 340800: \"安庆市\",\n 341e3: \"黄山市\",\n 341100: \"滁州市\",\n 341200: \"阜阳市\",\n 341300: \"宿州市\",\n 341500: \"六安市\",\n 341600: \"亳州市\",\n 341700: \"池州市\",\n 341800: \"宣城市\",\n 350100: \"福州市\",\n 350200: \"厦门市\",\n 350300: \"莆田市\",\n 350400: \"三明市\",\n 350500: \"泉州市\",\n 350600: \"漳州市\",\n 350700: \"南平市\",\n 350800: \"龙岩市\",\n 350900: \"宁德市\",\n 360100: \"南昌市\",\n 360200: \"景德镇市\",\n 360300: \"萍乡市\",\n 360400: \"九江市\",\n 360500: \"新余市\",\n 360600: \"鹰潭市\",\n 360700: \"赣州市\",\n 360800: \"吉安市\",\n 360900: \"宜春市\",\n 361e3: \"抚州市\",\n 361100: \"上饶市\",\n 370100: \"济南市\",\n 370200: \"青岛市\",\n 370300: \"淄博市\",\n 370400: \"枣庄市\",\n 370500: \"东营市\",\n 370600: \"烟台市\",\n 370700: \"潍坊市\",\n 370800: \"济宁市\",\n 370900: \"泰安市\",\n 371e3: \"威海市\",\n 371100: \"日照市\",\n 371300: \"临沂市\",\n 371400: \"德州市\",\n 371500: \"聊城市\",\n 371600: \"滨州市\",\n 371700: \"菏泽市\",\n 410100: \"郑州市\",\n 410200: \"开封市\",\n 410300: \"洛阳市\",\n 410400: \"平顶山市\",\n 410500: \"安阳市\",\n 410600: \"鹤壁市\",\n 410700: \"新乡市\",\n 410800: \"焦作市\",\n 410900: \"濮阳市\",\n 411e3: \"许昌市\",\n 411100: \"漯河市\",\n 411200: \"三门峡市\",\n 411300: \"南阳市\",\n 411400: \"商丘市\",\n 411500: \"信阳市\",\n 411600: \"周口市\",\n 411700: \"驻马店市\",\n 419e3: \"省直辖县\",\n 420100: \"武汉市\",\n 420200: \"黄石市\",\n 420300: \"十堰市\",\n 420500: \"宜昌市\",\n 420600: \"襄阳市\",\n 420700: \"鄂州市\",\n 420800: \"荆门市\",\n 420900: \"孝感市\",\n 421e3: \"荆州市\",\n 421100: \"黄冈市\",\n 421200: \"咸宁市\",\n 421300: \"随州市\",\n 422800: \"恩施土家族苗族自治州\",\n 429e3: \"省直辖县\",\n 430100: \"长沙市\",\n 430200: \"株洲市\",\n 430300: \"湘潭市\",\n 430400: \"衡阳市\",\n 430500: \"邵阳市\",\n 430600: \"岳阳市\",\n 430700: \"常德市\",\n 430800: \"张家界市\",\n 430900: \"益阳市\",\n 431e3: \"郴州市\",\n 431100: \"永州市\",\n 431200: \"怀化市\",\n 431300: \"娄底市\",\n 433100: \"湘西土家族苗族自治州\",\n 440100: \"广州市\",\n 440200: \"韶关市\",\n 440300: \"深圳市\",\n 440400: \"珠海市\",\n 440500: \"汕头市\",\n 440600: \"佛山市\",\n 440700: \"江门市\",\n 440800: \"湛江市\",\n 440900: \"茂名市\",\n 441200: \"肇庆市\",\n 441300: \"惠州市\",\n 441400: \"梅州市\",\n 441500: \"汕尾市\",\n 441600: \"河源市\",\n 441700: \"阳江市\",\n 441800: \"清远市\",\n 441900: \"东莞市\",\n 442e3: \"中山市\",\n 445100: \"潮州市\",\n 445200: \"揭阳市\",\n 445300: \"云浮市\",\n 450100: \"南宁市\",\n 450200: \"柳州市\",\n 450300: \"桂林市\",\n 450400: \"梧州市\",\n 450500: \"北海市\",\n 450600: \"防城港市\",\n 450700: \"钦州市\",\n 450800: \"贵港市\",\n 450900: \"玉林市\",\n 451e3: \"百色市\",\n 451100: \"贺州市\",\n 451200: \"河池市\",\n 451300: \"来宾市\",\n 451400: \"崇左市\",\n 460100: \"海口市\",\n 460200: \"三亚市\",\n 460300: \"三沙市\",\n 460400: \"儋州市\",\n 469e3: \"省直辖县\",\n 500100: \"重庆市\",\n 500200: \"县\",\n 510100: \"成都市\",\n 510300: \"自贡市\",\n 510400: \"攀枝花市\",\n 510500: \"泸州市\",\n 510600: \"德阳市\",\n 510700: \"绵阳市\",\n 510800: \"广元市\",\n 510900: \"遂宁市\",\n 511e3: \"内江市\",\n 511100: \"乐山市\",\n 511300: \"南充市\",\n 511400: \"眉山市\",\n 511500: \"宜宾市\",\n 511600: \"广安市\",\n 511700: \"达州市\",\n 511800: \"雅安市\",\n 511900: \"巴中市\",\n 512e3: \"资阳市\",\n 513200: \"阿坝藏族羌族自治州\",\n 513300: \"甘孜藏族自治州\",\n 513400: \"凉山彝族自治州\",\n 520100: \"贵阳市\",\n 520200: \"六盘水市\",\n 520300: \"遵义市\",\n 520400: \"安顺市\",\n 520500: \"毕节市\",\n 520600: \"铜仁市\",\n 522300: \"黔西南布依族苗族自治州\",\n 522600: \"黔东南苗族侗族自治州\",\n 522700: \"黔南布依族苗族自治州\",\n 530100: \"昆明市\",\n 530300: \"曲靖市\",\n 530400: \"玉溪市\",\n 530500: \"保山市\",\n 530600: \"昭通市\",\n 530700: \"丽江市\",\n 530800: \"普洱市\",\n 530900: \"临沧市\",\n 532300: \"楚雄彝族自治州\",\n 532500: \"红河哈尼族彝族自治州\",\n 532600: \"文山壮族苗族自治州\",\n 532800: \"西双版纳傣族自治州\",\n 532900: \"大理白族自治州\",\n 533100: \"德宏傣族景颇族自治州\",\n 533300: \"怒江傈僳族自治州\",\n 533400: \"迪庆藏族自治州\",\n 540100: \"拉萨市\",\n 540200: \"日喀则市\",\n 540300: \"昌都市\",\n 540400: \"林芝市\",\n 540500: \"山南市\",\n 540600: \"那曲市\",\n 542500: \"阿里地区\",\n 610100: \"西安市\",\n 610200: \"铜川市\",\n 610300: \"宝鸡市\",\n 610400: \"咸阳市\",\n 610500: \"渭南市\",\n 610600: \"延安市\",\n 610700: \"汉中市\",\n 610800: \"榆林市\",\n 610900: \"安康市\",\n 611e3: \"商洛市\",\n 620100: \"兰州市\",\n 620200: \"嘉峪关市\",\n 620300: \"金昌市\",\n 620400: \"白银市\",\n 620500: \"天水市\",\n 620600: \"武威市\",\n 620700: \"张掖市\",\n 620800: \"平凉市\",\n 620900: \"酒泉市\",\n 621e3: \"庆阳市\",\n 621100: \"定西市\",\n 621200: \"陇南市\",\n 622900: \"临夏回族自治州\",\n 623e3: \"甘南藏族自治州\",\n 630100: \"西宁市\",\n 630200: \"海东市\",\n 632200: \"海北藏族自治州\",\n 632300: \"黄南藏族自治州\",\n 632500: \"海南藏族自治州\",\n 632600: \"果洛藏族自治州\",\n 632700: \"玉树藏族自治州\",\n 632800: \"海西蒙古族藏族自治州\",\n 640100: \"银川市\",\n 640200: \"石嘴山市\",\n 640300: \"吴忠市\",\n 640400: \"固原市\",\n 640500: \"中卫市\",\n 650100: \"乌鲁木齐市\",\n 650200: \"克拉玛依市\",\n 650400: \"吐鲁番市\",\n 650500: \"哈密市\",\n 652300: \"昌吉回族自治州\",\n 652700: \"博尔塔拉蒙古自治州\",\n 652800: \"巴音郭楞蒙古自治州\",\n 652900: \"阿克苏地区\",\n 653e3: \"克孜勒苏柯尔克孜自治州\",\n 653100: \"喀什地区\",\n 653200: \"和田地区\",\n 654e3: \"伊犁哈萨克自治州\",\n 654200: \"塔城地区\",\n 654300: \"阿勒泰地区\",\n 659e3: \"自治区直辖县级行政区划\",\n 710100: \"台北市\",\n 710200: \"高雄市\",\n 710300: \"台南市\",\n 710400: \"台中市\",\n 710500: \"金门县\",\n 710600: \"南投县\",\n 710700: \"基隆市\",\n 710800: \"新竹市\",\n 710900: \"嘉义市\",\n 711100: \"新北市\",\n 711200: \"宜兰县\",\n 711300: \"新竹县\",\n 711400: \"桃园市\",\n 711500: \"苗栗县\",\n 711700: \"彰化县\",\n 711900: \"嘉义县\",\n 712100: \"云林县\",\n 712400: \"屏东县\",\n 712500: \"台东县\",\n 712600: \"花莲县\",\n 712700: \"澎湖县\",\n 712800: \"连江县\",\n 810100: \"香港岛\",\n 810200: \"九龙\",\n 810300: \"新界\",\n 820100: \"澳门半岛\",\n 820200: \"离岛\"\n },\n county_list: {\n 110101: \"东城区\",\n 110102: \"西城区\",\n 110105: \"朝阳区\",\n 110106: \"丰台区\",\n 110107: \"石景山区\",\n 110108: \"海淀区\",\n 110109: \"门头沟区\",\n 110111: \"房山区\",\n 110112: \"通州区\",\n 110113: \"顺义区\",\n 110114: \"昌平区\",\n 110115: \"大兴区\",\n 110116: \"怀柔区\",\n 110117: \"平谷区\",\n 110118: \"密云区\",\n 110119: \"延庆区\",\n 120101: \"和平区\",\n 120102: \"河东区\",\n 120103: \"河西区\",\n 120104: \"南开区\",\n 120105: \"河北区\",\n 120106: \"红桥区\",\n 120110: \"东丽区\",\n 120111: \"西青区\",\n 120112: \"津南区\",\n 120113: \"北辰区\",\n 120114: \"武清区\",\n 120115: \"宝坻区\",\n 120116: \"滨海新区\",\n 120117: \"宁河区\",\n 120118: \"静海区\",\n 120119: \"蓟州区\",\n 130102: \"长安区\",\n 130104: \"桥西区\",\n 130105: \"新华区\",\n 130107: \"井陉矿区\",\n 130108: \"裕华区\",\n 130109: \"藁城区\",\n 130110: \"鹿泉区\",\n 130111: \"栾城区\",\n 130121: \"井陉县\",\n 130123: \"正定县\",\n 130125: \"行唐县\",\n 130126: \"灵寿县\",\n 130127: \"高邑县\",\n 130128: \"深泽县\",\n 130129: \"赞皇县\",\n 130130: \"无极县\",\n 130131: \"平山县\",\n 130132: \"元氏县\",\n 130133: \"赵县\",\n 130171: \"石家庄高新技术产业开发区\",\n 130172: \"石家庄循环化工园区\",\n 130181: \"辛集市\",\n 130183: \"晋州市\",\n 130184: \"新乐市\",\n 130202: \"路南区\",\n 130203: \"路北区\",\n 130204: \"古冶区\",\n 130205: \"开平区\",\n 130207: \"丰南区\",\n 130208: \"丰润区\",\n 130209: \"曹妃甸区\",\n 130224: \"滦南县\",\n 130225: \"乐亭县\",\n 130227: \"迁西县\",\n 130229: \"玉田县\",\n 130273: \"唐山高新技术产业开发区\",\n 130274: \"河北唐山海港经济开发区\",\n 130281: \"遵化市\",\n 130283: \"迁安市\",\n 130284: \"滦州市\",\n 130302: \"海港区\",\n 130303: \"山海关区\",\n 130304: \"北戴河区\",\n 130306: \"抚宁区\",\n 130321: \"青龙满族自治县\",\n 130322: \"昌黎县\",\n 130324: \"卢龙县\",\n 130371: \"秦皇岛市经济技术开发区\",\n 130372: \"北戴河新区\",\n 130390: \"经济技术开发区\",\n 130402: \"邯山区\",\n 130403: \"丛台区\",\n 130404: \"复兴区\",\n 130406: \"峰峰矿区\",\n 130407: \"肥乡区\",\n 130408: \"永年区\",\n 130423: \"临漳县\",\n 130424: \"成安县\",\n 130425: \"大名县\",\n 130426: \"涉县\",\n 130427: \"磁县\",\n 130430: \"邱县\",\n 130431: \"鸡泽县\",\n 130432: \"广平县\",\n 130433: \"馆陶县\",\n 130434: \"魏县\",\n 130435: \"曲周县\",\n 130471: \"邯郸经济技术开发区\",\n 130473: \"邯郸冀南新区\",\n 130481: \"武安市\",\n 130502: \"襄都区\",\n 130503: \"信都区\",\n 130505: \"任泽区\",\n 130506: \"南和区\",\n 130522: \"临城县\",\n 130523: \"内丘县\",\n 130524: \"柏乡县\",\n 130525: \"隆尧县\",\n 130528: \"宁晋县\",\n 130529: \"巨鹿县\",\n 130530: \"新河县\",\n 130531: \"广宗县\",\n 130532: \"平乡县\",\n 130533: \"威县\",\n 130534: \"清河县\",\n 130535: \"临西县\",\n 130571: \"河北邢台经济开发区\",\n 130581: \"南宫市\",\n 130582: \"沙河市\",\n 130602: \"竞秀区\",\n 130606: \"莲池区\",\n 130607: \"满城区\",\n 130608: \"清苑区\",\n 130609: \"徐水区\",\n 130623: \"涞水县\",\n 130624: \"阜平县\",\n 130626: \"定兴县\",\n 130627: \"唐县\",\n 130628: \"高阳县\",\n 130629: \"容城县\",\n 130630: \"涞源县\",\n 130631: \"望都县\",\n 130632: \"安新县\",\n 130633: \"易县\",\n 130634: \"曲阳县\",\n 130635: \"蠡县\",\n 130636: \"顺平县\",\n 130637: \"博野县\",\n 130638: \"雄县\",\n 130671: \"保定高新技术产业开发区\",\n 130672: \"保定白沟新城\",\n 130681: \"涿州市\",\n 130682: \"定州市\",\n 130683: \"安国市\",\n 130684: \"高碑店市\",\n 130702: \"桥东区\",\n 130703: \"桥西区\",\n 130705: \"宣化区\",\n 130706: \"下花园区\",\n 130708: \"万全区\",\n 130709: \"崇礼区\",\n 130722: \"张北县\",\n 130723: \"康保县\",\n 130724: \"沽源县\",\n 130725: \"尚义县\",\n 130726: \"蔚县\",\n 130727: \"阳原县\",\n 130728: \"怀安县\",\n 130730: \"怀来县\",\n 130731: \"涿鹿县\",\n 130732: \"赤城县\",\n 130772: \"张家口市察北管理区\",\n 130802: \"双桥区\",\n 130803: \"双滦区\",\n 130804: \"鹰手营子矿区\",\n 130821: \"承德县\",\n 130822: \"兴隆县\",\n 130824: \"滦平县\",\n 130825: \"隆化县\",\n 130826: \"丰宁满族自治县\",\n 130827: \"宽城满族自治县\",\n 130828: \"围场满族蒙古族自治县\",\n 130871: \"承德高新技术产业开发区\",\n 130881: \"平泉市\",\n 130902: \"新华区\",\n 130903: \"运河区\",\n 130921: \"沧县\",\n 130922: \"青县\",\n 130923: \"东光县\",\n 130924: \"海兴县\",\n 130925: \"盐山县\",\n 130926: \"肃宁县\",\n 130927: \"南皮县\",\n 130928: \"吴桥县\",\n 130929: \"献县\",\n 130930: \"孟村回族自治县\",\n 130971: \"河北沧州经济开发区\",\n 130972: \"沧州高新技术产业开发区\",\n 130973: \"沧州渤海新区\",\n 130981: \"泊头市\",\n 130982: \"任丘市\",\n 130983: \"黄骅市\",\n 130984: \"河间市\",\n 131002: \"安次区\",\n 131003: \"广阳区\",\n 131022: \"固安县\",\n 131023: \"永清县\",\n 131024: \"香河县\",\n 131025: \"大城县\",\n 131026: \"文安县\",\n 131028: \"大厂回族自治县\",\n 131071: \"廊坊经济技术开发区\",\n 131081: \"霸州市\",\n 131082: \"三河市\",\n 131090: \"开发区\",\n 131102: \"桃城区\",\n 131103: \"冀州区\",\n 131121: \"枣强县\",\n 131122: \"武邑县\",\n 131123: \"武强县\",\n 131124: \"饶阳县\",\n 131125: \"安平县\",\n 131126: \"故城县\",\n 131127: \"景县\",\n 131128: \"阜城县\",\n 131171: \"河北衡水经济开发区\",\n 131172: \"衡水滨湖新区\",\n 131182: \"深州市\",\n 140105: \"小店区\",\n 140106: \"迎泽区\",\n 140107: \"杏花岭区\",\n 140108: \"尖草坪区\",\n 140109: \"万柏林区\",\n 140110: \"晋源区\",\n 140121: \"清徐县\",\n 140122: \"阳曲县\",\n 140123: \"娄烦县\",\n 140181: \"古交市\",\n 140212: \"新荣区\",\n 140213: \"平城区\",\n 140214: \"云冈区\",\n 140215: \"云州区\",\n 140221: \"阳高县\",\n 140222: \"天镇县\",\n 140223: \"广灵县\",\n 140224: \"灵丘县\",\n 140225: \"浑源县\",\n 140226: \"左云县\",\n 140271: \"山西大同经济开发区\",\n 140302: \"城区\",\n 140303: \"矿区\",\n 140311: \"郊区\",\n 140321: \"平定县\",\n 140322: \"盂县\",\n 140403: \"潞州区\",\n 140404: \"上党区\",\n 140405: \"屯留区\",\n 140406: \"潞城区\",\n 140423: \"襄垣县\",\n 140425: \"平顺县\",\n 140426: \"黎城县\",\n 140427: \"壶关县\",\n 140428: \"长子县\",\n 140429: \"武乡县\",\n 140430: \"沁县\",\n 140431: \"沁源县\",\n 140471: \"山西长治高新技术产业园区\",\n 140502: \"城区\",\n 140521: \"沁水县\",\n 140522: \"阳城县\",\n 140524: \"陵川县\",\n 140525: \"泽州县\",\n 140581: \"高平市\",\n 140602: \"朔城区\",\n 140603: \"平鲁区\",\n 140621: \"山阴县\",\n 140622: \"应县\",\n 140623: \"右玉县\",\n 140671: \"山西朔州经济开发区\",\n 140681: \"怀仁市\",\n 140702: \"榆次区\",\n 140703: \"太谷区\",\n 140721: \"榆社县\",\n 140722: \"左权县\",\n 140723: \"和顺县\",\n 140724: \"昔阳县\",\n 140725: \"寿阳县\",\n 140727: \"祁县\",\n 140728: \"平遥县\",\n 140729: \"灵石县\",\n 140781: \"介休市\",\n 140802: \"盐湖区\",\n 140821: \"临猗县\",\n 140822: \"万荣县\",\n 140823: \"闻喜县\",\n 140824: \"稷山县\",\n 140825: \"新绛县\",\n 140826: \"绛县\",\n 140827: \"垣曲县\",\n 140828: \"夏县\",\n 140829: \"平陆县\",\n 140830: \"芮城县\",\n 140881: \"永济市\",\n 140882: \"河津市\",\n 140902: \"忻府区\",\n 140921: \"定襄县\",\n 140922: \"五台县\",\n 140923: \"代县\",\n 140924: \"繁峙县\",\n 140925: \"宁武县\",\n 140926: \"静乐县\",\n 140927: \"神池县\",\n 140928: \"五寨县\",\n 140929: \"岢岚县\",\n 140930: \"河曲县\",\n 140931: \"保德县\",\n 140932: \"偏关县\",\n 140971: \"五台山风景名胜区\",\n 140981: \"原平市\",\n 141002: \"尧都区\",\n 141021: \"曲沃县\",\n 141022: \"翼城县\",\n 141023: \"襄汾县\",\n 141024: \"洪洞县\",\n 141025: \"古县\",\n 141026: \"安泽县\",\n 141027: \"浮山县\",\n 141028: \"吉县\",\n 141029: \"乡宁县\",\n 141030: \"大宁县\",\n 141031: \"隰县\",\n 141032: \"永和县\",\n 141033: \"蒲县\",\n 141034: \"汾西县\",\n 141081: \"侯马市\",\n 141082: \"霍州市\",\n 141102: \"离石区\",\n 141121: \"文水县\",\n 141122: \"交城县\",\n 141123: \"兴县\",\n 141124: \"临县\",\n 141125: \"柳林县\",\n 141126: \"石楼县\",\n 141127: \"岚县\",\n 141128: \"方山县\",\n 141129: \"中阳县\",\n 141130: \"交口县\",\n 141181: \"孝义市\",\n 141182: \"汾阳市\",\n 150102: \"新城区\",\n 150103: \"回民区\",\n 150104: \"玉泉区\",\n 150105: \"赛罕区\",\n 150121: \"土默特左旗\",\n 150122: \"托克托县\",\n 150123: \"和林格尔县\",\n 150124: \"清水河县\",\n 150125: \"武川县\",\n 150172: \"呼和浩特经济技术开发区\",\n 150202: \"东河区\",\n 150203: \"昆都仑区\",\n 150204: \"青山区\",\n 150205: \"石拐区\",\n 150206: \"白云鄂博矿区\",\n 150207: \"九原区\",\n 150221: \"土默特右旗\",\n 150222: \"固阳县\",\n 150223: \"达尔罕茂明安联合旗\",\n 150271: \"包头稀土高新技术产业开发区\",\n 150302: \"海勃湾区\",\n 150303: \"海南区\",\n 150304: \"乌达区\",\n 150402: \"红山区\",\n 150403: \"元宝山区\",\n 150404: \"松山区\",\n 150421: \"阿鲁科尔沁旗\",\n 150422: \"巴林左旗\",\n 150423: \"巴林右旗\",\n 150424: \"林西县\",\n 150425: \"克什克腾旗\",\n 150426: \"翁牛特旗\",\n 150428: \"喀喇沁旗\",\n 150429: \"宁城县\",\n 150430: \"敖汉旗\",\n 150502: \"科尔沁区\",\n 150521: \"科尔沁左翼中旗\",\n 150522: \"科尔沁左翼后旗\",\n 150523: \"开鲁县\",\n 150524: \"库伦旗\",\n 150525: \"奈曼旗\",\n 150526: \"扎鲁特旗\",\n 150571: \"通辽经济技术开发区\",\n 150581: \"霍林郭勒市\",\n 150602: \"东胜区\",\n 150603: \"康巴什区\",\n 150621: \"达拉特旗\",\n 150622: \"准格尔旗\",\n 150623: \"鄂托克前旗\",\n 150624: \"鄂托克旗\",\n 150625: \"杭锦旗\",\n 150626: \"乌审旗\",\n 150627: \"伊金霍洛旗\",\n 150702: \"海拉尔区\",\n 150703: \"扎赉诺尔区\",\n 150721: \"阿荣旗\",\n 150722: \"莫力达瓦达斡尔族自治旗\",\n 150723: \"鄂伦春自治旗\",\n 150724: \"鄂温克族自治旗\",\n 150725: \"陈巴尔虎旗\",\n 150726: \"新巴尔虎左旗\",\n 150727: \"新巴尔虎右旗\",\n 150781: \"满洲里市\",\n 150782: \"牙克石市\",\n 150783: \"扎兰屯市\",\n 150784: \"额尔古纳市\",\n 150785: \"根河市\",\n 150802: \"临河区\",\n 150821: \"五原县\",\n 150822: \"磴口县\",\n 150823: \"乌拉特前旗\",\n 150824: \"乌拉特中旗\",\n 150825: \"乌拉特后旗\",\n 150826: \"杭锦后旗\",\n 150902: \"集宁区\",\n 150921: \"卓资县\",\n 150922: \"化德县\",\n 150923: \"商都县\",\n 150924: \"兴和县\",\n 150925: \"凉城县\",\n 150926: \"察哈尔右翼前旗\",\n 150927: \"察哈尔右翼中旗\",\n 150928: \"察哈尔右翼后旗\",\n 150929: \"四子王旗\",\n 150981: \"丰镇市\",\n 152201: \"乌兰浩特市\",\n 152202: \"阿尔山市\",\n 152221: \"科尔沁右翼前旗\",\n 152222: \"科尔沁右翼中旗\",\n 152223: \"扎赉特旗\",\n 152224: \"突泉县\",\n 152501: \"二连浩特市\",\n 152502: \"锡林浩特市\",\n 152522: \"阿巴嘎旗\",\n 152523: \"苏尼特左旗\",\n 152524: \"苏尼特右旗\",\n 152525: \"东乌珠穆沁旗\",\n 152526: \"西乌珠穆沁旗\",\n 152527: \"太仆寺旗\",\n 152528: \"镶黄旗\",\n 152529: \"正镶白旗\",\n 152530: \"正蓝旗\",\n 152531: \"多伦县\",\n 152571: \"乌拉盖管委会\",\n 152921: \"阿拉善左旗\",\n 152922: \"阿拉善右旗\",\n 152923: \"额济纳旗\",\n 152971: \"内蒙古阿拉善经济开发区\",\n 210102: \"和平区\",\n 210103: \"沈河区\",\n 210104: \"大东区\",\n 210105: \"皇姑区\",\n 210106: \"铁西区\",\n 210111: \"苏家屯区\",\n 210112: \"浑南区\",\n 210113: \"沈北新区\",\n 210114: \"于洪区\",\n 210115: \"辽中区\",\n 210123: \"康平县\",\n 210124: \"法库县\",\n 210181: \"新民市\",\n 210190: \"经济技术开发区\",\n 210202: \"中山区\",\n 210203: \"西岗区\",\n 210204: \"沙河口区\",\n 210211: \"甘井子区\",\n 210212: \"旅顺口区\",\n 210213: \"金州区\",\n 210214: \"普兰店区\",\n 210224: \"长海县\",\n 210281: \"瓦房店市\",\n 210283: \"庄河市\",\n 210302: \"铁东区\",\n 210303: \"铁西区\",\n 210304: \"立山区\",\n 210311: \"千山区\",\n 210321: \"台安县\",\n 210323: \"岫岩满族自治县\",\n 210381: \"海城市\",\n 210390: \"高新区\",\n 210402: \"新抚区\",\n 210403: \"东洲区\",\n 210404: \"望花区\",\n 210411: \"顺城区\",\n 210421: \"抚顺县\",\n 210422: \"新宾满族自治县\",\n 210423: \"清原满族自治县\",\n 210502: \"平山区\",\n 210503: \"溪湖区\",\n 210504: \"明山区\",\n 210505: \"南芬区\",\n 210521: \"本溪满族自治县\",\n 210522: \"桓仁满族自治县\",\n 210602: \"元宝区\",\n 210603: \"振兴区\",\n 210604: \"振安区\",\n 210624: \"宽甸满族自治县\",\n 210681: \"东港市\",\n 210682: \"凤城市\",\n 210702: \"古塔区\",\n 210703: \"凌河区\",\n 210711: \"太和区\",\n 210726: \"黑山县\",\n 210727: \"义县\",\n 210781: \"凌海市\",\n 210782: \"北镇市\",\n 210793: \"经济技术开发区\",\n 210802: \"站前区\",\n 210803: \"西市区\",\n 210804: \"鲅鱼圈区\",\n 210811: \"老边区\",\n 210881: \"盖州市\",\n 210882: \"大石桥市\",\n 210902: \"海州区\",\n 210903: \"新邱区\",\n 210904: \"太平区\",\n 210905: \"清河门区\",\n 210911: \"细河区\",\n 210921: \"阜新蒙古族自治县\",\n 210922: \"彰武县\",\n 211002: \"白塔区\",\n 211003: \"文圣区\",\n 211004: \"宏伟区\",\n 211005: \"弓长岭区\",\n 211011: \"太子河区\",\n 211021: \"辽阳县\",\n 211081: \"灯塔市\",\n 211102: \"双台子区\",\n 211103: \"兴隆台区\",\n 211104: \"大洼区\",\n 211122: \"盘山县\",\n 211202: \"银州区\",\n 211204: \"清河区\",\n 211221: \"铁岭县\",\n 211223: \"西丰县\",\n 211224: \"昌图县\",\n 211281: \"调兵山市\",\n 211282: \"开原市\",\n 211302: \"双塔区\",\n 211303: \"龙城区\",\n 211321: \"朝阳县\",\n 211322: \"建平县\",\n 211324: \"喀喇沁左翼蒙古族自治县\",\n 211381: \"北票市\",\n 211382: \"凌源市\",\n 211402: \"连山区\",\n 211403: \"龙港区\",\n 211404: \"南票区\",\n 211421: \"绥中县\",\n 211422: \"建昌县\",\n 211481: \"兴城市\",\n 220102: \"南关区\",\n 220103: \"宽城区\",\n 220104: \"朝阳区\",\n 220105: \"二道区\",\n 220106: \"绿园区\",\n 220112: \"双阳区\",\n 220113: \"九台区\",\n 220122: \"农安县\",\n 220171: \"长春经济技术开发区\",\n 220172: \"长春净月高新技术产业开发区\",\n 220173: \"长春高新技术产业开发区\",\n 220174: \"长春汽车经济技术开发区\",\n 220182: \"榆树市\",\n 220183: \"德惠市\",\n 220192: \"经济技术开发区\",\n 220202: \"昌邑区\",\n 220203: \"龙潭区\",\n 220204: \"船营区\",\n 220211: \"丰满区\",\n 220221: \"永吉县\",\n 220271: \"吉林经济开发区\",\n 220272: \"吉林高新技术产业开发区\",\n 220281: \"蛟河市\",\n 220282: \"桦甸市\",\n 220283: \"舒兰市\",\n 220284: \"磐石市\",\n 220302: \"铁西区\",\n 220303: \"铁东区\",\n 220322: \"梨树县\",\n 220323: \"伊通满族自治县\",\n 220381: \"公主岭市\",\n 220382: \"双辽市\",\n 220402: \"龙山区\",\n 220403: \"西安区\",\n 220421: \"东丰县\",\n 220422: \"东辽县\",\n 220502: \"东昌区\",\n 220503: \"二道江区\",\n 220521: \"通化县\",\n 220523: \"辉南县\",\n 220524: \"柳河县\",\n 220581: \"梅河口市\",\n 220582: \"集安市\",\n 220602: \"浑江区\",\n 220605: \"江源区\",\n 220621: \"抚松县\",\n 220622: \"靖宇县\",\n 220623: \"长白朝鲜族自治县\",\n 220681: \"临江市\",\n 220702: \"宁江区\",\n 220721: \"前郭尔罗斯蒙古族自治县\",\n 220722: \"长岭县\",\n 220723: \"乾安县\",\n 220771: \"吉林松原经济开发区\",\n 220781: \"扶余市\",\n 220802: \"洮北区\",\n 220821: \"镇赉县\",\n 220822: \"通榆县\",\n 220871: \"吉林白城经济开发区\",\n 220881: \"洮南市\",\n 220882: \"大安市\",\n 222401: \"延吉市\",\n 222402: \"图们市\",\n 222403: \"敦化市\",\n 222404: \"珲春市\",\n 222405: \"龙井市\",\n 222406: \"和龙市\",\n 222424: \"汪清县\",\n 222426: \"安图县\",\n 230102: \"道里区\",\n 230103: \"南岗区\",\n 230104: \"道外区\",\n 230108: \"平房区\",\n 230109: \"松北区\",\n 230110: \"香坊区\",\n 230111: \"呼兰区\",\n 230112: \"阿城区\",\n 230113: \"双城区\",\n 230123: \"依兰县\",\n 230124: \"方正县\",\n 230125: \"宾县\",\n 230126: \"巴彦县\",\n 230127: \"木兰县\",\n 230128: \"通河县\",\n 230129: \"延寿县\",\n 230183: \"尚志市\",\n 230184: \"五常市\",\n 230202: \"龙沙区\",\n 230203: \"建华区\",\n 230204: \"铁锋区\",\n 230205: \"昂昂溪区\",\n 230206: \"富拉尔基区\",\n 230207: \"碾子山区\",\n 230208: \"梅里斯达斡尔族区\",\n 230221: \"龙江县\",\n 230223: \"依安县\",\n 230224: \"泰来县\",\n 230225: \"甘南县\",\n 230227: \"富裕县\",\n 230229: \"克山县\",\n 230230: \"克东县\",\n 230231: \"拜泉县\",\n 230281: \"讷河市\",\n 230302: \"鸡冠区\",\n 230303: \"恒山区\",\n 230304: \"滴道区\",\n 230305: \"梨树区\",\n 230306: \"城子河区\",\n 230307: \"麻山区\",\n 230321: \"鸡东县\",\n 230381: \"虎林市\",\n 230382: \"密山市\",\n 230402: \"向阳区\",\n 230403: \"工农区\",\n 230404: \"南山区\",\n 230405: \"兴安区\",\n 230406: \"东山区\",\n 230407: \"兴山区\",\n 230421: \"萝北县\",\n 230422: \"绥滨县\",\n 230502: \"尖山区\",\n 230503: \"岭东区\",\n 230505: \"四方台区\",\n 230506: \"宝山区\",\n 230521: \"集贤县\",\n 230522: \"友谊县\",\n 230523: \"宝清县\",\n 230524: \"饶河县\",\n 230602: \"萨尔图区\",\n 230603: \"龙凤区\",\n 230604: \"让胡路区\",\n 230605: \"红岗区\",\n 230606: \"大同区\",\n 230621: \"肇州县\",\n 230622: \"肇源县\",\n 230623: \"林甸县\",\n 230624: \"杜尔伯特蒙古族自治县\",\n 230671: \"大庆高新技术产业开发区\",\n 230717: \"伊美区\",\n 230718: \"乌翠区\",\n 230719: \"友好区\",\n 230722: \"嘉荫县\",\n 230723: \"汤旺县\",\n 230724: \"丰林县\",\n 230725: \"大箐山县\",\n 230726: \"南岔县\",\n 230751: \"金林区\",\n 230781: \"铁力市\",\n 230803: \"向阳区\",\n 230804: \"前进区\",\n 230805: \"东风区\",\n 230811: \"郊区\",\n 230822: \"桦南县\",\n 230826: \"桦川县\",\n 230828: \"汤原县\",\n 230881: \"同江市\",\n 230882: \"富锦市\",\n 230883: \"抚远市\",\n 230902: \"新兴区\",\n 230903: \"桃山区\",\n 230904: \"茄子河区\",\n 230921: \"勃利县\",\n 231002: \"东安区\",\n 231003: \"阳明区\",\n 231004: \"爱民区\",\n 231005: \"西安区\",\n 231025: \"林口县\",\n 231081: \"绥芬河市\",\n 231083: \"海林市\",\n 231084: \"宁安市\",\n 231085: \"穆棱市\",\n 231086: \"东宁市\",\n 231102: \"爱辉区\",\n 231123: \"逊克县\",\n 231124: \"孙吴县\",\n 231181: \"北安市\",\n 231182: \"五大连池市\",\n 231183: \"嫩江市\",\n 231202: \"北林区\",\n 231221: \"望奎县\",\n 231222: \"兰西县\",\n 231223: \"青冈县\",\n 231224: \"庆安县\",\n 231225: \"明水县\",\n 231226: \"绥棱县\",\n 231281: \"安达市\",\n 231282: \"肇东市\",\n 231283: \"海伦市\",\n 232701: \"漠河市\",\n 232721: \"呼玛县\",\n 232722: \"塔河县\",\n 232761: \"加格达奇区\",\n 232762: \"松岭区\",\n 232763: \"新林区\",\n 232764: \"呼中区\",\n 310101: \"黄浦区\",\n 310104: \"徐汇区\",\n 310105: \"长宁区\",\n 310106: \"静安区\",\n 310107: \"普陀区\",\n 310109: \"虹口区\",\n 310110: \"杨浦区\",\n 310112: \"闵行区\",\n 310113: \"宝山区\",\n 310114: \"嘉定区\",\n 310115: \"浦东新区\",\n 310116: \"金山区\",\n 310117: \"松江区\",\n 310118: \"青浦区\",\n 310120: \"奉贤区\",\n 310151: \"崇明区\",\n 320102: \"玄武区\",\n 320104: \"秦淮区\",\n 320105: \"建邺区\",\n 320106: \"鼓楼区\",\n 320111: \"浦口区\",\n 320112: \"江北新区\",\n 320113: \"栖霞区\",\n 320114: \"雨花台区\",\n 320115: \"江宁区\",\n 320116: \"六合区\",\n 320117: \"溧水区\",\n 320118: \"高淳区\",\n 320205: \"锡山区\",\n 320206: \"惠山区\",\n 320211: \"滨湖区\",\n 320213: \"梁溪区\",\n 320214: \"新吴区\",\n 320281: \"江阴市\",\n 320282: \"宜兴市\",\n 320302: \"鼓楼区\",\n 320303: \"云龙区\",\n 320305: \"贾汪区\",\n 320311: \"泉山区\",\n 320312: \"铜山区\",\n 320321: \"丰县\",\n 320322: \"沛县\",\n 320324: \"睢宁县\",\n 320371: \"徐州经济技术开发区\",\n 320381: \"新沂市\",\n 320382: \"邳州市\",\n 320391: \"工业园区\",\n 320402: \"天宁区\",\n 320404: \"钟楼区\",\n 320411: \"新北区\",\n 320412: \"武进区\",\n 320413: \"金坛区\",\n 320481: \"溧阳市\",\n 320505: \"虎丘区\",\n 320506: \"吴中区\",\n 320507: \"相城区\",\n 320508: \"姑苏区\",\n 320509: \"吴江区\",\n 320571: \"苏州工业园区\",\n 320581: \"常熟市\",\n 320582: \"张家港市\",\n 320583: \"昆山市\",\n 320585: \"太仓市\",\n 320590: \"工业园区\",\n 320591: \"高新区\",\n 320602: \"崇川区\",\n 320611: \"港闸区\",\n 320612: \"通州区\",\n 320623: \"如东县\",\n 320681: \"启东市\",\n 320682: \"如皋市\",\n 320684: \"海门市\",\n 320685: \"海安市\",\n 320691: \"高新区\",\n 320703: \"连云区\",\n 320706: \"海州区\",\n 320707: \"赣榆区\",\n 320722: \"东海县\",\n 320723: \"灌云县\",\n 320724: \"灌南县\",\n 320771: \"连云港经济技术开发区\",\n 320803: \"淮安区\",\n 320804: \"淮阴区\",\n 320812: \"清江浦区\",\n 320813: \"洪泽区\",\n 320826: \"涟水县\",\n 320830: \"盱眙县\",\n 320831: \"金湖县\",\n 320871: \"淮安经济技术开发区\",\n 320890: \"经济开发区\",\n 320902: \"亭湖区\",\n 320903: \"盐都区\",\n 320904: \"大丰区\",\n 320921: \"响水县\",\n 320922: \"滨海县\",\n 320923: \"阜宁县\",\n 320924: \"射阳县\",\n 320925: \"建湖县\",\n 320971: \"盐城经济技术开发区\",\n 320981: \"东台市\",\n 321002: \"广陵区\",\n 321003: \"邗江区\",\n 321012: \"江都区\",\n 321023: \"宝应县\",\n 321071: \"扬州经济技术开发区\",\n 321081: \"仪征市\",\n 321084: \"高邮市\",\n 321090: \"经济开发区\",\n 321102: \"京口区\",\n 321111: \"润州区\",\n 321112: \"丹徒区\",\n 321150: \"镇江新区\",\n 321181: \"丹阳市\",\n 321182: \"扬中市\",\n 321183: \"句容市\",\n 321202: \"海陵区\",\n 321203: \"高港区\",\n 321204: \"姜堰区\",\n 321271: \"泰州医药高新技术产业开发区\",\n 321281: \"兴化市\",\n 321282: \"靖江市\",\n 321283: \"泰兴市\",\n 321302: \"宿城区\",\n 321311: \"宿豫区\",\n 321322: \"沭阳县\",\n 321323: \"泗阳县\",\n 321324: \"泗洪县\",\n 321371: \"宿迁经济技术开发区\",\n 330102: \"上城区\",\n 330105: \"拱墅区\",\n 330106: \"西湖区\",\n 330108: \"滨江区\",\n 330109: \"萧山区\",\n 330110: \"余杭区\",\n 330111: \"富阳区\",\n 330112: \"临安区\",\n 330113: \"临平区\",\n 330114: \"钱塘区\",\n 330122: \"桐庐县\",\n 330127: \"淳安县\",\n 330182: \"建德市\",\n 330203: \"海曙区\",\n 330205: \"江北区\",\n 330206: \"北仑区\",\n 330211: \"镇海区\",\n 330212: \"鄞州区\",\n 330213: \"奉化区\",\n 330225: \"象山县\",\n 330226: \"宁海县\",\n 330281: \"余姚市\",\n 330282: \"慈溪市\",\n 330302: \"鹿城区\",\n 330303: \"龙湾区\",\n 330304: \"瓯海区\",\n 330305: \"洞头区\",\n 330324: \"永嘉县\",\n 330326: \"平阳县\",\n 330327: \"苍南县\",\n 330328: \"文成县\",\n 330329: \"泰顺县\",\n 330381: \"瑞安市\",\n 330382: \"乐清市\",\n 330383: \"龙港市\",\n 330402: \"南湖区\",\n 330411: \"秀洲区\",\n 330421: \"嘉善县\",\n 330424: \"海盐县\",\n 330481: \"海宁市\",\n 330482: \"平湖市\",\n 330483: \"桐乡市\",\n 330502: \"吴兴区\",\n 330503: \"南浔区\",\n 330521: \"德清县\",\n 330522: \"长兴县\",\n 330523: \"安吉县\",\n 330602: \"越城区\",\n 330603: \"柯桥区\",\n 330604: \"上虞区\",\n 330624: \"新昌县\",\n 330681: \"诸暨市\",\n 330683: \"嵊州市\",\n 330702: \"婺城区\",\n 330703: \"金东区\",\n 330723: \"武义县\",\n 330726: \"浦江县\",\n 330727: \"磐安县\",\n 330781: \"兰溪市\",\n 330782: \"义乌市\",\n 330783: \"东阳市\",\n 330784: \"永康市\",\n 330802: \"柯城区\",\n 330803: \"衢江区\",\n 330822: \"常山县\",\n 330824: \"开化县\",\n 330825: \"龙游县\",\n 330881: \"江山市\",\n 330902: \"定海区\",\n 330903: \"普陀区\",\n 330921: \"岱山县\",\n 330922: \"嵊泗县\",\n 331002: \"椒江区\",\n 331003: \"黄岩区\",\n 331004: \"路桥区\",\n 331022: \"三门县\",\n 331023: \"天台县\",\n 331024: \"仙居县\",\n 331081: \"温岭市\",\n 331082: \"临海市\",\n 331083: \"玉环市\",\n 331102: \"莲都区\",\n 331121: \"青田县\",\n 331122: \"缙云县\",\n 331123: \"遂昌县\",\n 331124: \"松阳县\",\n 331125: \"云和县\",\n 331126: \"庆元县\",\n 331127: \"景宁畲族自治县\",\n 331181: \"龙泉市\",\n 340102: \"瑶海区\",\n 340103: \"庐阳区\",\n 340104: \"蜀山区\",\n 340111: \"包河区\",\n 340121: \"长丰县\",\n 340122: \"肥东县\",\n 340123: \"肥西县\",\n 340124: \"庐江县\",\n 340171: \"合肥高新技术产业开发区\",\n 340172: \"合肥经济技术开发区\",\n 340173: \"合肥新站高新技术产业开发区\",\n 340181: \"巢湖市\",\n 340190: \"高新技术开发区\",\n 340191: \"经济技术开发区\",\n 340202: \"镜湖区\",\n 340207: \"鸠江区\",\n 340209: \"弋江区\",\n 340210: \"湾沚区\",\n 340212: \"繁昌区\",\n 340223: \"南陵县\",\n 340281: \"无为市\",\n 340302: \"龙子湖区\",\n 340303: \"蚌山区\",\n 340304: \"禹会区\",\n 340311: \"淮上区\",\n 340321: \"怀远县\",\n 340322: \"五河县\",\n 340323: \"固镇县\",\n 340371: \"蚌埠市高新技术开发区\",\n 340372: \"蚌埠市经济开发区\",\n 340402: \"大通区\",\n 340403: \"田家庵区\",\n 340404: \"谢家集区\",\n 340405: \"八公山区\",\n 340406: \"潘集区\",\n 340421: \"凤台县\",\n 340422: \"寿县\",\n 340503: \"花山区\",\n 340504: \"雨山区\",\n 340506: \"博望区\",\n 340521: \"当涂县\",\n 340522: \"含山县\",\n 340523: \"和县\",\n 340602: \"杜集区\",\n 340603: \"相山区\",\n 340604: \"烈山区\",\n 340621: \"濉溪县\",\n 340705: \"铜官区\",\n 340706: \"义安区\",\n 340711: \"郊区\",\n 340722: \"枞阳县\",\n 340802: \"迎江区\",\n 340803: \"大观区\",\n 340811: \"宜秀区\",\n 340822: \"怀宁县\",\n 340825: \"太湖县\",\n 340826: \"宿松县\",\n 340827: \"望江县\",\n 340828: \"岳西县\",\n 340881: \"桐城市\",\n 340882: \"潜山市\",\n 341002: \"屯溪区\",\n 341003: \"黄山区\",\n 341004: \"徽州区\",\n 341021: \"歙县\",\n 341022: \"休宁县\",\n 341023: \"黟县\",\n 341024: \"祁门县\",\n 341102: \"琅琊区\",\n 341103: \"南谯区\",\n 341122: \"来安县\",\n 341124: \"全椒县\",\n 341125: \"定远县\",\n 341126: \"凤阳县\",\n 341181: \"天长市\",\n 341182: \"明光市\",\n 341202: \"颍州区\",\n 341203: \"颍东区\",\n 341204: \"颍泉区\",\n 341221: \"临泉县\",\n 341222: \"太和县\",\n 341225: \"阜南县\",\n 341226: \"颍上县\",\n 341271: \"阜阳合肥现代产业园区\",\n 341282: \"界首市\",\n 341302: \"埇桥区\",\n 341321: \"砀山县\",\n 341322: \"萧县\",\n 341323: \"灵璧县\",\n 341324: \"泗县\",\n 341371: \"宿州马鞍山现代产业园区\",\n 341372: \"宿州经济技术开发区\",\n 341390: \"经济开发区\",\n 341502: \"金安区\",\n 341503: \"裕安区\",\n 341504: \"叶集区\",\n 341522: \"霍邱县\",\n 341523: \"舒城县\",\n 341524: \"金寨县\",\n 341525: \"霍山县\",\n 341602: \"谯城区\",\n 341621: \"涡阳县\",\n 341622: \"蒙城县\",\n 341623: \"利辛县\",\n 341702: \"贵池区\",\n 341721: \"东至县\",\n 341722: \"石台县\",\n 341723: \"青阳县\",\n 341802: \"宣州区\",\n 341821: \"郎溪县\",\n 341823: \"泾县\",\n 341824: \"绩溪县\",\n 341825: \"旌德县\",\n 341871: \"宣城市经济开发区\",\n 341881: \"宁国市\",\n 341882: \"广德市\",\n 350102: \"鼓楼区\",\n 350103: \"台江区\",\n 350104: \"仓山区\",\n 350105: \"马尾区\",\n 350111: \"晋安区\",\n 350112: \"长乐区\",\n 350121: \"闽侯县\",\n 350122: \"连江县\",\n 350123: \"罗源县\",\n 350124: \"闽清县\",\n 350125: \"永泰县\",\n 350128: \"平潭县\",\n 350181: \"福清市\",\n 350203: \"思明区\",\n 350205: \"海沧区\",\n 350206: \"湖里区\",\n 350211: \"集美区\",\n 350212: \"同安区\",\n 350213: \"翔安区\",\n 350302: \"城厢区\",\n 350303: \"涵江区\",\n 350304: \"荔城区\",\n 350305: \"秀屿区\",\n 350322: \"仙游县\",\n 350402: \"梅列区\",\n 350403: \"三元区\",\n 350421: \"明溪县\",\n 350423: \"清流县\",\n 350424: \"宁化县\",\n 350425: \"大田县\",\n 350426: \"尤溪县\",\n 350427: \"沙县\",\n 350428: \"将乐县\",\n 350429: \"泰宁县\",\n 350430: \"建宁县\",\n 350481: \"永安市\",\n 350502: \"鲤城区\",\n 350503: \"丰泽区\",\n 350504: \"洛江区\",\n 350505: \"泉港区\",\n 350521: \"惠安县\",\n 350524: \"安溪县\",\n 350525: \"永春县\",\n 350526: \"德化县\",\n 350527: \"金门县\",\n 350581: \"石狮市\",\n 350582: \"晋江市\",\n 350583: \"南安市\",\n 350602: \"芗城区\",\n 350603: \"龙文区\",\n 350622: \"云霄县\",\n 350623: \"漳浦县\",\n 350624: \"诏安县\",\n 350625: \"长泰县\",\n 350626: \"东山县\",\n 350627: \"南靖县\",\n 350628: \"平和县\",\n 350629: \"华安县\",\n 350681: \"龙海市\",\n 350702: \"延平区\",\n 350703: \"建阳区\",\n 350721: \"顺昌县\",\n 350722: \"浦城县\",\n 350723: \"光泽县\",\n 350724: \"松溪县\",\n 350725: \"政和县\",\n 350781: \"邵武市\",\n 350782: \"武夷山市\",\n 350783: \"建瓯市\",\n 350802: \"新罗区\",\n 350803: \"永定区\",\n 350821: \"长汀县\",\n 350823: \"上杭县\",\n 350824: \"武平县\",\n 350825: \"连城县\",\n 350881: \"漳平市\",\n 350902: \"蕉城区\",\n 350921: \"霞浦县\",\n 350922: \"古田县\",\n 350923: \"屏南县\",\n 350924: \"寿宁县\",\n 350925: \"周宁县\",\n 350926: \"柘荣县\",\n 350981: \"福安市\",\n 350982: \"福鼎市\",\n 360102: \"东湖区\",\n 360103: \"西湖区\",\n 360104: \"青云谱区\",\n 360111: \"青山湖区\",\n 360112: \"新建区\",\n 360113: \"红谷滩区\",\n 360121: \"南昌县\",\n 360123: \"安义县\",\n 360124: \"进贤县\",\n 360190: \"经济技术开发区\",\n 360192: \"高新区\",\n 360202: \"昌江区\",\n 360203: \"珠山区\",\n 360222: \"浮梁县\",\n 360281: \"乐平市\",\n 360302: \"安源区\",\n 360313: \"湘东区\",\n 360321: \"莲花县\",\n 360322: \"上栗县\",\n 360323: \"芦溪县\",\n 360402: \"濂溪区\",\n 360403: \"浔阳区\",\n 360404: \"柴桑区\",\n 360423: \"武宁县\",\n 360424: \"修水县\",\n 360425: \"永修县\",\n 360426: \"德安县\",\n 360428: \"都昌县\",\n 360429: \"湖口县\",\n 360430: \"彭泽县\",\n 360481: \"瑞昌市\",\n 360482: \"共青城市\",\n 360483: \"庐山市\",\n 360490: \"经济技术开发区\",\n 360502: \"渝水区\",\n 360521: \"分宜县\",\n 360602: \"月湖区\",\n 360603: \"余江区\",\n 360681: \"贵溪市\",\n 360702: \"章贡区\",\n 360703: \"南康区\",\n 360704: \"赣县区\",\n 360722: \"信丰县\",\n 360723: \"大余县\",\n 360724: \"上犹县\",\n 360725: \"崇义县\",\n 360726: \"安远县\",\n 360728: \"定南县\",\n 360729: \"全南县\",\n 360730: \"宁都县\",\n 360731: \"于都县\",\n 360732: \"兴国县\",\n 360733: \"会昌县\",\n 360734: \"寻乌县\",\n 360735: \"石城县\",\n 360781: \"瑞金市\",\n 360783: \"龙南市\",\n 360802: \"吉州区\",\n 360803: \"青原区\",\n 360821: \"吉安县\",\n 360822: \"吉水县\",\n 360823: \"峡江县\",\n 360824: \"新干县\",\n 360825: \"永丰县\",\n 360826: \"泰和县\",\n 360827: \"遂川县\",\n 360828: \"万安县\",\n 360829: \"安福县\",\n 360830: \"永新县\",\n 360881: \"井冈山市\",\n 360902: \"袁州区\",\n 360921: \"奉新县\",\n 360922: \"万载县\",\n 360923: \"上高县\",\n 360924: \"宜丰县\",\n 360925: \"靖安县\",\n 360926: \"铜鼓县\",\n 360981: \"丰城市\",\n 360982: \"樟树市\",\n 360983: \"高安市\",\n 361002: \"临川区\",\n 361003: \"东乡区\",\n 361021: \"南城县\",\n 361022: \"黎川县\",\n 361023: \"南丰县\",\n 361024: \"崇仁县\",\n 361025: \"乐安县\",\n 361026: \"宜黄县\",\n 361027: \"金溪县\",\n 361028: \"资溪县\",\n 361030: \"广昌县\",\n 361102: \"信州区\",\n 361103: \"广丰区\",\n 361104: \"广信区\",\n 361123: \"玉山县\",\n 361124: \"铅山县\",\n 361125: \"横峰县\",\n 361126: \"弋阳县\",\n 361127: \"余干县\",\n 361128: \"鄱阳县\",\n 361129: \"万年县\",\n 361130: \"婺源县\",\n 361181: \"德兴市\",\n 370102: \"历下区\",\n 370103: \"市中区\",\n 370104: \"槐荫区\",\n 370105: \"天桥区\",\n 370112: \"历城区\",\n 370113: \"长清区\",\n 370114: \"章丘区\",\n 370115: \"济阳区\",\n 370116: \"莱芜区\",\n 370117: \"钢城区\",\n 370124: \"平阴县\",\n 370126: \"商河县\",\n 370171: \"济南高新技术产业开发区\",\n 370190: \"高新区\",\n 370202: \"市南区\",\n 370203: \"市北区\",\n 370211: \"黄岛区\",\n 370212: \"崂山区\",\n 370213: \"李沧区\",\n 370214: \"城阳区\",\n 370215: \"即墨区\",\n 370271: \"青岛高新技术产业开发区\",\n 370281: \"胶州市\",\n 370283: \"平度市\",\n 370285: \"莱西市\",\n 370290: \"开发区\",\n 370302: \"淄川区\",\n 370303: \"张店区\",\n 370304: \"博山区\",\n 370305: \"临淄区\",\n 370306: \"周村区\",\n 370321: \"桓台县\",\n 370322: \"高青县\",\n 370323: \"沂源县\",\n 370402: \"市中区\",\n 370403: \"薛城区\",\n 370404: \"峄城区\",\n 370405: \"台儿庄区\",\n 370406: \"山亭区\",\n 370481: \"滕州市\",\n 370502: \"东营区\",\n 370503: \"河口区\",\n 370505: \"垦利区\",\n 370522: \"利津县\",\n 370523: \"广饶县\",\n 370571: \"东营经济技术开发区\",\n 370572: \"东营港经济开发区\",\n 370602: \"芝罘区\",\n 370611: \"福山区\",\n 370612: \"牟平区\",\n 370613: \"莱山区\",\n 370634: \"长岛县\",\n 370671: \"烟台高新技术产业开发区\",\n 370672: \"烟台经济技术开发区\",\n 370681: \"龙口市\",\n 370682: \"莱阳市\",\n 370683: \"莱州市\",\n 370684: \"蓬莱市\",\n 370685: \"招远市\",\n 370686: \"栖霞市\",\n 370687: \"海阳市\",\n 370690: \"开发区\",\n 370702: \"潍城区\",\n 370703: \"寒亭区\",\n 370704: \"坊子区\",\n 370705: \"奎文区\",\n 370724: \"临朐县\",\n 370725: \"昌乐县\",\n 370772: \"潍坊滨海经济技术开发区\",\n 370781: \"青州市\",\n 370782: \"诸城市\",\n 370783: \"寿光市\",\n 370784: \"安丘市\",\n 370785: \"高密市\",\n 370786: \"昌邑市\",\n 370790: \"开发区\",\n 370791: \"高新区\",\n 370811: \"任城区\",\n 370812: \"兖州区\",\n 370826: \"微山县\",\n 370827: \"鱼台县\",\n 370828: \"金乡县\",\n 370829: \"嘉祥县\",\n 370830: \"汶上县\",\n 370831: \"泗水县\",\n 370832: \"梁山县\",\n 370871: \"济宁高新技术产业开发区\",\n 370881: \"曲阜市\",\n 370883: \"邹城市\",\n 370890: \"高新区\",\n 370902: \"泰山区\",\n 370911: \"岱岳区\",\n 370921: \"宁阳县\",\n 370923: \"东平县\",\n 370982: \"新泰市\",\n 370983: \"肥城市\",\n 371002: \"环翠区\",\n 371003: \"文登区\",\n 371071: \"威海火炬高技术产业开发区\",\n 371072: \"威海经济技术开发区\",\n 371082: \"荣成市\",\n 371083: \"乳山市\",\n 371091: \"经济技术开发区\",\n 371102: \"东港区\",\n 371103: \"岚山区\",\n 371121: \"五莲县\",\n 371122: \"莒县\",\n 371171: \"日照经济技术开发区\",\n 371302: \"兰山区\",\n 371311: \"罗庄区\",\n 371312: \"河东区\",\n 371321: \"沂南县\",\n 371322: \"郯城县\",\n 371323: \"沂水县\",\n 371324: \"兰陵县\",\n 371325: \"费县\",\n 371326: \"平邑县\",\n 371327: \"莒南县\",\n 371328: \"蒙阴县\",\n 371329: \"临沭县\",\n 371371: \"临沂高新技术产业开发区\",\n 371402: \"德城区\",\n 371403: \"陵城区\",\n 371422: \"宁津县\",\n 371423: \"庆云县\",\n 371424: \"临邑县\",\n 371425: \"齐河县\",\n 371426: \"平原县\",\n 371427: \"夏津县\",\n 371428: \"武城县\",\n 371472: \"德州运河经济开发区\",\n 371481: \"乐陵市\",\n 371482: \"禹城市\",\n 371502: \"东昌府区\",\n 371503: \"茌平区\",\n 371521: \"阳谷县\",\n 371522: \"莘县\",\n 371524: \"东阿县\",\n 371525: \"冠县\",\n 371526: \"高唐县\",\n 371581: \"临清市\",\n 371602: \"滨城区\",\n 371603: \"沾化区\",\n 371621: \"惠民县\",\n 371622: \"阳信县\",\n 371623: \"无棣县\",\n 371625: \"博兴县\",\n 371681: \"邹平市\",\n 371702: \"牡丹区\",\n 371703: \"定陶区\",\n 371721: \"曹县\",\n 371722: \"单县\",\n 371723: \"成武县\",\n 371724: \"巨野县\",\n 371725: \"郓城县\",\n 371726: \"鄄城县\",\n 371728: \"东明县\",\n 371771: \"菏泽经济技术开发区\",\n 371772: \"菏泽高新技术开发区\",\n 410102: \"中原区\",\n 410103: \"二七区\",\n 410104: \"管城回族区\",\n 410105: \"金水区\",\n 410106: \"上街区\",\n 410108: \"惠济区\",\n 410122: \"中牟县\",\n 410171: \"郑州经济技术开发区\",\n 410172: \"郑州高新技术产业开发区\",\n 410173: \"郑州航空港经济综合实验区\",\n 410181: \"巩义市\",\n 410182: \"荥阳市\",\n 410183: \"新密市\",\n 410184: \"新郑市\",\n 410185: \"登封市\",\n 410190: \"高新技术开发区\",\n 410191: \"经济技术开发区\",\n 410202: \"龙亭区\",\n 410203: \"顺河回族区\",\n 410204: \"鼓楼区\",\n 410205: \"禹王台区\",\n 410212: \"祥符区\",\n 410221: \"杞县\",\n 410222: \"通许县\",\n 410223: \"尉氏县\",\n 410225: \"兰考县\",\n 410302: \"老城区\",\n 410303: \"西工区\",\n 410304: \"瀍河回族区\",\n 410305: \"涧西区\",\n 410306: \"吉利区\",\n 410311: \"洛龙区\",\n 410322: \"孟津县\",\n 410323: \"新安县\",\n 410324: \"栾川县\",\n 410325: \"嵩县\",\n 410326: \"汝阳县\",\n 410327: \"宜阳县\",\n 410328: \"洛宁县\",\n 410329: \"伊川县\",\n 410381: \"偃师市\",\n 410402: \"新华区\",\n 410403: \"卫东区\",\n 410404: \"石龙区\",\n 410411: \"湛河区\",\n 410421: \"宝丰县\",\n 410422: \"叶县\",\n 410423: \"鲁山县\",\n 410425: \"郏县\",\n 410471: \"平顶山高新技术产业开发区\",\n 410481: \"舞钢市\",\n 410482: \"汝州市\",\n 410502: \"文峰区\",\n 410503: \"北关区\",\n 410505: \"殷都区\",\n 410506: \"龙安区\",\n 410522: \"安阳县\",\n 410523: \"汤阴县\",\n 410526: \"滑县\",\n 410527: \"内黄县\",\n 410581: \"林州市\",\n 410590: \"开发区\",\n 410602: \"鹤山区\",\n 410603: \"山城区\",\n 410611: \"淇滨区\",\n 410621: \"浚县\",\n 410622: \"淇县\",\n 410702: \"红旗区\",\n 410703: \"卫滨区\",\n 410704: \"凤泉区\",\n 410711: \"牧野区\",\n 410721: \"新乡县\",\n 410724: \"获嘉县\",\n 410725: \"原阳县\",\n 410726: \"延津县\",\n 410727: \"封丘县\",\n 410771: \"新乡高新技术产业开发区\",\n 410772: \"新乡经济技术开发区\",\n 410781: \"卫辉市\",\n 410782: \"辉县市\",\n 410783: \"长垣市\",\n 410802: \"解放区\",\n 410803: \"中站区\",\n 410804: \"马村区\",\n 410811: \"山阳区\",\n 410821: \"修武县\",\n 410822: \"博爱县\",\n 410823: \"武陟县\",\n 410825: \"温县\",\n 410871: \"焦作城乡一体化示范区\",\n 410882: \"沁阳市\",\n 410883: \"孟州市\",\n 410902: \"华龙区\",\n 410922: \"清丰县\",\n 410923: \"南乐县\",\n 410926: \"范县\",\n 410927: \"台前县\",\n 410928: \"濮阳县\",\n 410971: \"河南濮阳工业园区\",\n 411002: \"魏都区\",\n 411003: \"建安区\",\n 411024: \"鄢陵县\",\n 411025: \"襄城县\",\n 411071: \"许昌经济技术开发区\",\n 411081: \"禹州市\",\n 411082: \"长葛市\",\n 411102: \"源汇区\",\n 411103: \"郾城区\",\n 411104: \"召陵区\",\n 411121: \"舞阳县\",\n 411122: \"临颍县\",\n 411171: \"漯河经济技术开发区\",\n 411202: \"湖滨区\",\n 411203: \"陕州区\",\n 411221: \"渑池县\",\n 411224: \"卢氏县\",\n 411271: \"河南三门峡经济开发区\",\n 411281: \"义马市\",\n 411282: \"灵宝市\",\n 411302: \"宛城区\",\n 411303: \"卧龙区\",\n 411321: \"南召县\",\n 411322: \"方城县\",\n 411323: \"西峡县\",\n 411324: \"镇平县\",\n 411325: \"内乡县\",\n 411326: \"淅川县\",\n 411327: \"社旗县\",\n 411328: \"唐河县\",\n 411329: \"新野县\",\n 411330: \"桐柏县\",\n 411372: \"南阳市城乡一体化示范区\",\n 411381: \"邓州市\",\n 411402: \"梁园区\",\n 411403: \"睢阳区\",\n 411421: \"民权县\",\n 411422: \"睢县\",\n 411423: \"宁陵县\",\n 411424: \"柘城县\",\n 411425: \"虞城县\",\n 411426: \"夏邑县\",\n 411481: \"永城市\",\n 411502: \"浉河区\",\n 411503: \"平桥区\",\n 411521: \"罗山县\",\n 411522: \"光山县\",\n 411523: \"新县\",\n 411524: \"商城县\",\n 411525: \"固始县\",\n 411526: \"潢川县\",\n 411527: \"淮滨县\",\n 411528: \"息县\",\n 411602: \"川汇区\",\n 411603: \"淮阳区\",\n 411621: \"扶沟县\",\n 411622: \"西华县\",\n 411623: \"商水县\",\n 411624: \"沈丘县\",\n 411625: \"郸城县\",\n 411627: \"太康县\",\n 411628: \"鹿邑县\",\n 411671: \"河南周口经济开发区\",\n 411681: \"项城市\",\n 411690: \"经济开发区\",\n 411702: \"驿城区\",\n 411721: \"西平县\",\n 411722: \"上蔡县\",\n 411723: \"平舆县\",\n 411724: \"正阳县\",\n 411725: \"确山县\",\n 411726: \"泌阳县\",\n 411727: \"汝南县\",\n 411728: \"遂平县\",\n 411729: \"新蔡县\",\n 419001: \"济源市\",\n 420102: \"江岸区\",\n 420103: \"江汉区\",\n 420104: \"硚口区\",\n 420105: \"汉阳区\",\n 420106: \"武昌区\",\n 420107: \"青山区\",\n 420111: \"洪山区\",\n 420112: \"东西湖区\",\n 420113: \"汉南区\",\n 420114: \"蔡甸区\",\n 420115: \"江夏区\",\n 420116: \"黄陂区\",\n 420117: \"新洲区\",\n 420202: \"黄石港区\",\n 420203: \"西塞山区\",\n 420204: \"下陆区\",\n 420205: \"铁山区\",\n 420222: \"阳新县\",\n 420281: \"大冶市\",\n 420302: \"茅箭区\",\n 420303: \"张湾区\",\n 420304: \"郧阳区\",\n 420322: \"郧西县\",\n 420323: \"竹山县\",\n 420324: \"竹溪县\",\n 420325: \"房县\",\n 420381: \"丹江口市\",\n 420502: \"西陵区\",\n 420503: \"伍家岗区\",\n 420504: \"点军区\",\n 420505: \"猇亭区\",\n 420506: \"夷陵区\",\n 420525: \"远安县\",\n 420526: \"兴山县\",\n 420527: \"秭归县\",\n 420528: \"长阳土家族自治县\",\n 420529: \"五峰土家族自治县\",\n 420581: \"宜都市\",\n 420582: \"当阳市\",\n 420583: \"枝江市\",\n 420590: \"经济开发区\",\n 420602: \"襄城区\",\n 420606: \"樊城区\",\n 420607: \"襄州区\",\n 420624: \"南漳县\",\n 420625: \"谷城县\",\n 420626: \"保康县\",\n 420682: \"老河口市\",\n 420683: \"枣阳市\",\n 420684: \"宜城市\",\n 420702: \"梁子湖区\",\n 420703: \"华容区\",\n 420704: \"鄂城区\",\n 420802: \"东宝区\",\n 420804: \"掇刀区\",\n 420822: \"沙洋县\",\n 420881: \"钟祥市\",\n 420882: \"京山市\",\n 420902: \"孝南区\",\n 420921: \"孝昌县\",\n 420922: \"大悟县\",\n 420923: \"云梦县\",\n 420981: \"应城市\",\n 420982: \"安陆市\",\n 420984: \"汉川市\",\n 421002: \"沙市区\",\n 421003: \"荆州区\",\n 421022: \"公安县\",\n 421023: \"监利县\",\n 421024: \"江陵县\",\n 421081: \"石首市\",\n 421083: \"洪湖市\",\n 421087: \"松滋市\",\n 421102: \"黄州区\",\n 421121: \"团风县\",\n 421122: \"红安县\",\n 421123: \"罗田县\",\n 421124: \"英山县\",\n 421125: \"浠水县\",\n 421126: \"蕲春县\",\n 421127: \"黄梅县\",\n 421171: \"龙感湖管理区\",\n 421181: \"麻城市\",\n 421182: \"武穴市\",\n 421202: \"咸安区\",\n 421221: \"嘉鱼县\",\n 421222: \"通城县\",\n 421223: \"崇阳县\",\n 421224: \"通山县\",\n 421281: \"赤壁市\",\n 421303: \"曾都区\",\n 421321: \"随县\",\n 421381: \"广水市\",\n 422801: \"恩施市\",\n 422802: \"利川市\",\n 422822: \"建始县\",\n 422823: \"巴东县\",\n 422825: \"宣恩县\",\n 422826: \"咸丰县\",\n 422827: \"来凤县\",\n 422828: \"鹤峰县\",\n 429004: \"仙桃市\",\n 429005: \"潜江市\",\n 429006: \"天门市\",\n 429021: \"神农架林区\",\n 430102: \"芙蓉区\",\n 430103: \"天心区\",\n 430104: \"岳麓区\",\n 430105: \"开福区\",\n 430111: \"雨花区\",\n 430112: \"望城区\",\n 430121: \"长沙县\",\n 430181: \"浏阳市\",\n 430182: \"宁乡市\",\n 430202: \"荷塘区\",\n 430203: \"芦淞区\",\n 430204: \"石峰区\",\n 430211: \"天元区\",\n 430212: \"渌口区\",\n 430223: \"攸县\",\n 430224: \"茶陵县\",\n 430225: \"炎陵县\",\n 430271: \"云龙示范区\",\n 430281: \"醴陵市\",\n 430302: \"雨湖区\",\n 430304: \"岳塘区\",\n 430321: \"湘潭县\",\n 430373: \"湘潭九华示范区\",\n 430381: \"湘乡市\",\n 430382: \"韶山市\",\n 430405: \"珠晖区\",\n 430406: \"雁峰区\",\n 430407: \"石鼓区\",\n 430408: \"蒸湘区\",\n 430412: \"南岳区\",\n 430421: \"衡阳县\",\n 430422: \"衡南县\",\n 430423: \"衡山县\",\n 430424: \"衡东县\",\n 430426: \"祁东县\",\n 430481: \"耒阳市\",\n 430482: \"常宁市\",\n 430502: \"双清区\",\n 430503: \"大祥区\",\n 430511: \"北塔区\",\n 430522: \"新邵县\",\n 430523: \"邵阳县\",\n 430524: \"隆回县\",\n 430525: \"洞口县\",\n 430527: \"绥宁县\",\n 430528: \"新宁县\",\n 430529: \"城步苗族自治县\",\n 430581: \"武冈市\",\n 430582: \"邵东市\",\n 430602: \"岳阳楼区\",\n 430603: \"云溪区\",\n 430611: \"君山区\",\n 430621: \"岳阳县\",\n 430623: \"华容县\",\n 430624: \"湘阴县\",\n 430626: \"平江县\",\n 430681: \"汨罗市\",\n 430682: \"临湘市\",\n 430702: \"武陵区\",\n 430703: \"鼎城区\",\n 430721: \"安乡县\",\n 430722: \"汉寿县\",\n 430723: \"澧县\",\n 430724: \"临澧县\",\n 430725: \"桃源县\",\n 430726: \"石门县\",\n 430781: \"津市市\",\n 430802: \"永定区\",\n 430811: \"武陵源区\",\n 430821: \"慈利县\",\n 430822: \"桑植县\",\n 430902: \"资阳区\",\n 430903: \"赫山区\",\n 430921: \"南县\",\n 430922: \"桃江县\",\n 430923: \"安化县\",\n 430971: \"益阳市大通湖管理区\",\n 430981: \"沅江市\",\n 431002: \"北湖区\",\n 431003: \"苏仙区\",\n 431021: \"桂阳县\",\n 431022: \"宜章县\",\n 431023: \"永兴县\",\n 431024: \"嘉禾县\",\n 431025: \"临武县\",\n 431026: \"汝城县\",\n 431027: \"桂东县\",\n 431028: \"安仁县\",\n 431081: \"资兴市\",\n 431102: \"零陵区\",\n 431103: \"冷水滩区\",\n 431121: \"祁阳县\",\n 431122: \"东安县\",\n 431123: \"双牌县\",\n 431124: \"道县\",\n 431125: \"江永县\",\n 431126: \"宁远县\",\n 431127: \"蓝山县\",\n 431128: \"新田县\",\n 431129: \"江华瑶族自治县\",\n 431202: \"鹤城区\",\n 431221: \"中方县\",\n 431222: \"沅陵县\",\n 431223: \"辰溪县\",\n 431224: \"溆浦县\",\n 431225: \"会同县\",\n 431226: \"麻阳苗族自治县\",\n 431227: \"新晃侗族自治县\",\n 431228: \"芷江侗族自治县\",\n 431229: \"靖州苗族侗族自治县\",\n 431230: \"通道侗族自治县\",\n 431271: \"怀化市洪江管理区\",\n 431281: \"洪江市\",\n 431302: \"娄星区\",\n 431321: \"双峰县\",\n 431322: \"新化县\",\n 431381: \"冷水江市\",\n 431382: \"涟源市\",\n 433101: \"吉首市\",\n 433122: \"泸溪县\",\n 433123: \"凤凰县\",\n 433124: \"花垣县\",\n 433125: \"保靖县\",\n 433126: \"古丈县\",\n 433127: \"永顺县\",\n 433130: \"龙山县\",\n 440103: \"荔湾区\",\n 440104: \"越秀区\",\n 440105: \"海珠区\",\n 440106: \"天河区\",\n 440111: \"白云区\",\n 440112: \"黄埔区\",\n 440113: \"番禺区\",\n 440114: \"花都区\",\n 440115: \"南沙区\",\n 440117: \"从化区\",\n 440118: \"增城区\",\n 440203: \"武江区\",\n 440204: \"浈江区\",\n 440205: \"曲江区\",\n 440222: \"始兴县\",\n 440224: \"仁化县\",\n 440229: \"翁源县\",\n 440232: \"乳源瑶族自治县\",\n 440233: \"新丰县\",\n 440281: \"乐昌市\",\n 440282: \"南雄市\",\n 440303: \"罗湖区\",\n 440304: \"福田区\",\n 440305: \"南山区\",\n 440306: \"宝安区\",\n 440307: \"龙岗区\",\n 440308: \"盐田区\",\n 440309: \"龙华区\",\n 440310: \"坪山区\",\n 440311: \"光明区\",\n 440402: \"香洲区\",\n 440403: \"斗门区\",\n 440404: \"金湾区\",\n 440507: \"龙湖区\",\n 440511: \"金平区\",\n 440512: \"濠江区\",\n 440513: \"潮阳区\",\n 440514: \"潮南区\",\n 440515: \"澄海区\",\n 440523: \"南澳县\",\n 440604: \"禅城区\",\n 440605: \"南海区\",\n 440606: \"顺德区\",\n 440607: \"三水区\",\n 440608: \"高明区\",\n 440703: \"蓬江区\",\n 440704: \"江海区\",\n 440705: \"新会区\",\n 440781: \"台山市\",\n 440783: \"开平市\",\n 440784: \"鹤山市\",\n 440785: \"恩平市\",\n 440802: \"赤坎区\",\n 440803: \"霞山区\",\n 440804: \"坡头区\",\n 440811: \"麻章区\",\n 440823: \"遂溪县\",\n 440825: \"徐闻县\",\n 440881: \"廉江市\",\n 440882: \"雷州市\",\n 440883: \"吴川市\",\n 440890: \"经济技术开发区\",\n 440902: \"茂南区\",\n 440904: \"电白区\",\n 440981: \"高州市\",\n 440982: \"化州市\",\n 440983: \"信宜市\",\n 441202: \"端州区\",\n 441203: \"鼎湖区\",\n 441204: \"高要区\",\n 441223: \"广宁县\",\n 441224: \"怀集县\",\n 441225: \"封开县\",\n 441226: \"德庆县\",\n 441284: \"四会市\",\n 441302: \"惠城区\",\n 441303: \"惠阳区\",\n 441322: \"博罗县\",\n 441323: \"惠东县\",\n 441324: \"龙门县\",\n 441402: \"梅江区\",\n 441403: \"梅县区\",\n 441422: \"大埔县\",\n 441423: \"丰顺县\",\n 441424: \"五华县\",\n 441426: \"平远县\",\n 441427: \"蕉岭县\",\n 441481: \"兴宁市\",\n 441502: \"城区\",\n 441521: \"海丰县\",\n 441523: \"陆河县\",\n 441581: \"陆丰市\",\n 441602: \"源城区\",\n 441621: \"紫金县\",\n 441622: \"龙川县\",\n 441623: \"连平县\",\n 441624: \"和平县\",\n 441625: \"东源县\",\n 441702: \"江城区\",\n 441704: \"阳东区\",\n 441721: \"阳西县\",\n 441781: \"阳春市\",\n 441802: \"清城区\",\n 441803: \"清新区\",\n 441821: \"佛冈县\",\n 441823: \"阳山县\",\n 441825: \"连山壮族瑶族自治县\",\n 441826: \"连南瑶族自治县\",\n 441881: \"英德市\",\n 441882: \"连州市\",\n 441901: \"中堂镇\",\n 441903: \"南城街道\",\n 441904: \"长安镇\",\n 441905: \"东坑镇\",\n 441906: \"樟木头镇\",\n 441907: \"莞城街道\",\n 441908: \"石龙镇\",\n 441909: \"桥头镇\",\n 441910: \"万江街道\",\n 441911: \"麻涌镇\",\n 441912: \"虎门镇\",\n 441913: \"谢岗镇\",\n 441914: \"石碣镇\",\n 441915: \"茶山镇\",\n 441916: \"东城街道\",\n 441917: \"洪梅镇\",\n 441918: \"道滘镇\",\n 441919: \"高埗镇\",\n 441920: \"企石镇\",\n 441921: \"凤岗镇\",\n 441922: \"大岭山镇\",\n 441923: \"松山湖\",\n 441924: \"清溪镇\",\n 441925: \"望牛墩镇\",\n 441926: \"厚街镇\",\n 441927: \"常平镇\",\n 441928: \"寮步镇\",\n 441929: \"石排镇\",\n 441930: \"横沥镇\",\n 441931: \"塘厦镇\",\n 441932: \"黄江镇\",\n 441933: \"大朗镇\",\n 441934: \"东莞港\",\n 441935: \"东莞生态园\",\n 441990: \"沙田镇\",\n 442001: \"南头镇\",\n 442002: \"神湾镇\",\n 442003: \"东凤镇\",\n 442004: \"五桂山街道\",\n 442005: \"黄圃镇\",\n 442006: \"小榄镇\",\n 442007: \"石岐街道\",\n 442008: \"横栏镇\",\n 442009: \"三角镇\",\n 442010: \"三乡镇\",\n 442011: \"港口镇\",\n 442012: \"沙溪镇\",\n 442013: \"板芙镇\",\n 442015: \"东升镇\",\n 442016: \"阜沙镇\",\n 442017: \"民众镇\",\n 442018: \"东区街道\",\n 442019: \"火炬开发区街道办事处\",\n 442020: \"西区街道\",\n 442021: \"南区街道\",\n 442022: \"古镇镇\",\n 442023: \"坦洲镇\",\n 442024: \"大涌镇\",\n 442025: \"南朗镇\",\n 445102: \"湘桥区\",\n 445103: \"潮安区\",\n 445122: \"饶平县\",\n 445202: \"榕城区\",\n 445203: \"揭东区\",\n 445222: \"揭西县\",\n 445224: \"惠来县\",\n 445281: \"普宁市\",\n 445302: \"云城区\",\n 445303: \"云安区\",\n 445321: \"新兴县\",\n 445322: \"郁南县\",\n 445381: \"罗定市\",\n 450102: \"兴宁区\",\n 450103: \"青秀区\",\n 450105: \"江南区\",\n 450107: \"西乡塘区\",\n 450108: \"良庆区\",\n 450109: \"邕宁区\",\n 450110: \"武鸣区\",\n 450123: \"隆安县\",\n 450124: \"马山县\",\n 450125: \"上林县\",\n 450126: \"宾阳县\",\n 450127: \"横县\",\n 450202: \"城中区\",\n 450203: \"鱼峰区\",\n 450204: \"柳南区\",\n 450205: \"柳北区\",\n 450206: \"柳江区\",\n 450222: \"柳城县\",\n 450223: \"鹿寨县\",\n 450224: \"融安县\",\n 450225: \"融水苗族自治县\",\n 450226: \"三江侗族自治县\",\n 450302: \"秀峰区\",\n 450303: \"叠彩区\",\n 450304: \"象山区\",\n 450305: \"七星区\",\n 450311: \"雁山区\",\n 450312: \"临桂区\",\n 450321: \"阳朔县\",\n 450323: \"灵川县\",\n 450324: \"全州县\",\n 450325: \"兴安县\",\n 450326: \"永福县\",\n 450327: \"灌阳县\",\n 450328: \"龙胜各族自治县\",\n 450329: \"资源县\",\n 450330: \"平乐县\",\n 450332: \"恭城瑶族自治县\",\n 450381: \"荔浦市\",\n 450403: \"万秀区\",\n 450405: \"长洲区\",\n 450406: \"龙圩区\",\n 450421: \"苍梧县\",\n 450422: \"藤县\",\n 450423: \"蒙山县\",\n 450481: \"岑溪市\",\n 450502: \"海城区\",\n 450503: \"银海区\",\n 450512: \"铁山港区\",\n 450521: \"合浦县\",\n 450602: \"港口区\",\n 450603: \"防城区\",\n 450621: \"上思县\",\n 450681: \"东兴市\",\n 450702: \"钦南区\",\n 450703: \"钦北区\",\n 450721: \"灵山县\",\n 450722: \"浦北县\",\n 450802: \"港北区\",\n 450803: \"港南区\",\n 450804: \"覃塘区\",\n 450821: \"平南县\",\n 450881: \"桂平市\",\n 450902: \"玉州区\",\n 450903: \"福绵区\",\n 450921: \"容县\",\n 450922: \"陆川县\",\n 450923: \"博白县\",\n 450924: \"兴业县\",\n 450981: \"北流市\",\n 451002: \"右江区\",\n 451003: \"田阳区\",\n 451022: \"田东县\",\n 451024: \"德保县\",\n 451026: \"那坡县\",\n 451027: \"凌云县\",\n 451028: \"乐业县\",\n 451029: \"田林县\",\n 451030: \"西林县\",\n 451031: \"隆林各族自治县\",\n 451081: \"靖西市\",\n 451082: \"平果市\",\n 451102: \"八步区\",\n 451103: \"平桂区\",\n 451121: \"昭平县\",\n 451122: \"钟山县\",\n 451123: \"富川瑶族自治县\",\n 451202: \"金城江区\",\n 451203: \"宜州区\",\n 451221: \"南丹县\",\n 451222: \"天峨县\",\n 451223: \"凤山县\",\n 451224: \"东兰县\",\n 451225: \"罗城仫佬族自治县\",\n 451226: \"环江毛南族自治县\",\n 451227: \"巴马瑶族自治县\",\n 451228: \"都安瑶族自治县\",\n 451229: \"大化瑶族自治县\",\n 451302: \"兴宾区\",\n 451321: \"忻城县\",\n 451322: \"象州县\",\n 451323: \"武宣县\",\n 451324: \"金秀瑶族自治县\",\n 451381: \"合山市\",\n 451402: \"江州区\",\n 451421: \"扶绥县\",\n 451422: \"宁明县\",\n 451423: \"龙州县\",\n 451424: \"大新县\",\n 451425: \"天等县\",\n 451481: \"凭祥市\",\n 460105: \"秀英区\",\n 460106: \"龙华区\",\n 460107: \"琼山区\",\n 460108: \"美兰区\",\n 460202: \"海棠区\",\n 460203: \"吉阳区\",\n 460204: \"天涯区\",\n 460205: \"崖州区\",\n 460321: \"西沙区\",\n 460322: \"南沙区\",\n 460401: \"那大镇\",\n 460402: \"和庆镇\",\n 460403: \"南丰镇\",\n 460404: \"大成镇\",\n 460405: \"雅星镇\",\n 460406: \"兰洋镇\",\n 460407: \"光村镇\",\n 460408: \"木棠镇\",\n 460409: \"海头镇\",\n 460410: \"峨蔓镇\",\n 460411: \"王五镇\",\n 460412: \"白马井镇\",\n 460413: \"中和镇\",\n 460414: \"排浦镇\",\n 460415: \"东成镇\",\n 460416: \"新州镇\",\n 460417: \"洋浦经济开发区\",\n 460418: \"华南热作学院\",\n 469001: \"五指山市\",\n 469002: \"琼海市\",\n 469005: \"文昌市\",\n 469006: \"万宁市\",\n 469007: \"东方市\",\n 469021: \"定安县\",\n 469022: \"屯昌县\",\n 469023: \"澄迈县\",\n 469024: \"临高县\",\n 469025: \"白沙黎族自治县\",\n 469026: \"昌江黎族自治县\",\n 469027: \"乐东黎族自治县\",\n 469028: \"陵水黎族自治县\",\n 469029: \"保亭黎族苗族自治县\",\n 469030: \"琼中黎族苗族自治县\",\n 500101: \"万州区\",\n 500102: \"涪陵区\",\n 500103: \"渝中区\",\n 500104: \"大渡口区\",\n 500105: \"江北区\",\n 500106: \"沙坪坝区\",\n 500107: \"九龙坡区\",\n 500108: \"南岸区\",\n 500109: \"北碚区\",\n 500110: \"綦江区\",\n 500111: \"大足区\",\n 500112: \"渝北区\",\n 500113: \"巴南区\",\n 500114: \"黔江区\",\n 500115: \"长寿区\",\n 500116: \"江津区\",\n 500117: \"合川区\",\n 500118: \"永川区\",\n 500119: \"南川区\",\n 500120: \"璧山区\",\n 500151: \"铜梁区\",\n 500152: \"潼南区\",\n 500153: \"荣昌区\",\n 500154: \"开州区\",\n 500155: \"梁平区\",\n 500156: \"武隆区\",\n 500229: \"城口县\",\n 500230: \"丰都县\",\n 500231: \"垫江县\",\n 500233: \"忠县\",\n 500235: \"云阳县\",\n 500236: \"奉节县\",\n 500237: \"巫山县\",\n 500238: \"巫溪县\",\n 500240: \"石柱土家族自治县\",\n 500241: \"秀山土家族苗族自治县\",\n 500242: \"酉阳土家族苗族自治县\",\n 500243: \"彭水苗族土家族自治县\",\n 510104: \"锦江区\",\n 510105: \"青羊区\",\n 510106: \"金牛区\",\n 510107: \"武侯区\",\n 510108: \"成华区\",\n 510112: \"龙泉驿区\",\n 510113: \"青白江区\",\n 510114: \"新都区\",\n 510115: \"温江区\",\n 510116: \"双流区\",\n 510117: \"郫都区\",\n 510121: \"金堂县\",\n 510129: \"大邑县\",\n 510131: \"蒲江县\",\n 510132: \"新津县\",\n 510181: \"都江堰市\",\n 510182: \"彭州市\",\n 510183: \"邛崃市\",\n 510184: \"崇州市\",\n 510185: \"简阳市\",\n 510191: \"高新区\",\n 510302: \"自流井区\",\n 510303: \"贡井区\",\n 510304: \"大安区\",\n 510311: \"沿滩区\",\n 510321: \"荣县\",\n 510322: \"富顺县\",\n 510402: \"东区\",\n 510403: \"西区\",\n 510411: \"仁和区\",\n 510421: \"米易县\",\n 510422: \"盐边县\",\n 510502: \"江阳区\",\n 510503: \"纳溪区\",\n 510504: \"龙马潭区\",\n 510521: \"泸县\",\n 510522: \"合江县\",\n 510524: \"叙永县\",\n 510525: \"古蔺县\",\n 510603: \"旌阳区\",\n 510604: \"罗江区\",\n 510623: \"中江县\",\n 510681: \"广汉市\",\n 510682: \"什邡市\",\n 510683: \"绵竹市\",\n 510703: \"涪城区\",\n 510704: \"游仙区\",\n 510705: \"安州区\",\n 510722: \"三台县\",\n 510723: \"盐亭县\",\n 510725: \"梓潼县\",\n 510726: \"北川羌族自治县\",\n 510727: \"平武县\",\n 510781: \"江油市\",\n 510791: \"高新区\",\n 510802: \"利州区\",\n 510811: \"昭化区\",\n 510812: \"朝天区\",\n 510821: \"旺苍县\",\n 510822: \"青川县\",\n 510823: \"剑阁县\",\n 510824: \"苍溪县\",\n 510903: \"船山区\",\n 510904: \"安居区\",\n 510921: \"蓬溪县\",\n 510923: \"大英县\",\n 510981: \"射洪市\",\n 511002: \"市中区\",\n 511011: \"东兴区\",\n 511024: \"威远县\",\n 511025: \"资中县\",\n 511083: \"隆昌市\",\n 511102: \"市中区\",\n 511111: \"沙湾区\",\n 511112: \"五通桥区\",\n 511113: \"金口河区\",\n 511123: \"犍为县\",\n 511124: \"井研县\",\n 511126: \"夹江县\",\n 511129: \"沐川县\",\n 511132: \"峨边彝族自治县\",\n 511133: \"马边彝族自治县\",\n 511181: \"峨眉山市\",\n 511302: \"顺庆区\",\n 511303: \"高坪区\",\n 511304: \"嘉陵区\",\n 511321: \"南部县\",\n 511322: \"营山县\",\n 511323: \"蓬安县\",\n 511324: \"仪陇县\",\n 511325: \"西充县\",\n 511381: \"阆中市\",\n 511402: \"东坡区\",\n 511403: \"彭山区\",\n 511421: \"仁寿县\",\n 511423: \"洪雅县\",\n 511424: \"丹棱县\",\n 511425: \"青神县\",\n 511502: \"翠屏区\",\n 511503: \"南溪区\",\n 511504: \"叙州区\",\n 511523: \"江安县\",\n 511524: \"长宁县\",\n 511525: \"高县\",\n 511526: \"珙县\",\n 511527: \"筠连县\",\n 511528: \"兴文县\",\n 511529: \"屏山县\",\n 511602: \"广安区\",\n 511603: \"前锋区\",\n 511621: \"岳池县\",\n 511622: \"武胜县\",\n 511623: \"邻水县\",\n 511681: \"华蓥市\",\n 511702: \"通川区\",\n 511703: \"达川区\",\n 511722: \"宣汉县\",\n 511723: \"开江县\",\n 511724: \"大竹县\",\n 511725: \"渠县\",\n 511781: \"万源市\",\n 511802: \"雨城区\",\n 511803: \"名山区\",\n 511822: \"荥经县\",\n 511823: \"汉源县\",\n 511824: \"石棉县\",\n 511825: \"天全县\",\n 511826: \"芦山县\",\n 511827: \"宝兴县\",\n 511902: \"巴州区\",\n 511903: \"恩阳区\",\n 511921: \"通江县\",\n 511922: \"南江县\",\n 511923: \"平昌县\",\n 511971: \"巴中经济开发区\",\n 512002: \"雁江区\",\n 512021: \"安岳县\",\n 512022: \"乐至县\",\n 513201: \"马尔康市\",\n 513221: \"汶川县\",\n 513222: \"理县\",\n 513223: \"茂县\",\n 513224: \"松潘县\",\n 513225: \"九寨沟县\",\n 513226: \"金川县\",\n 513227: \"小金县\",\n 513228: \"黑水县\",\n 513230: \"壤塘县\",\n 513231: \"阿坝县\",\n 513232: \"若尔盖县\",\n 513233: \"红原县\",\n 513301: \"康定市\",\n 513322: \"泸定县\",\n 513323: \"丹巴县\",\n 513324: \"九龙县\",\n 513325: \"雅江县\",\n 513326: \"道孚县\",\n 513327: \"炉霍县\",\n 513328: \"甘孜县\",\n 513329: \"新龙县\",\n 513330: \"德格县\",\n 513331: \"白玉县\",\n 513332: \"石渠县\",\n 513333: \"色达县\",\n 513334: \"理塘县\",\n 513335: \"巴塘县\",\n 513336: \"乡城县\",\n 513337: \"稻城县\",\n 513338: \"得荣县\",\n 513401: \"西昌市\",\n 513422: \"木里藏族自治县\",\n 513423: \"盐源县\",\n 513424: \"德昌县\",\n 513425: \"会理县\",\n 513426: \"会东县\",\n 513427: \"宁南县\",\n 513428: \"普格县\",\n 513429: \"布拖县\",\n 513430: \"金阳县\",\n 513431: \"昭觉县\",\n 513432: \"喜德县\",\n 513433: \"冕宁县\",\n 513434: \"越西县\",\n 513435: \"甘洛县\",\n 513436: \"美姑县\",\n 513437: \"雷波县\",\n 520102: \"南明区\",\n 520103: \"云岩区\",\n 520111: \"花溪区\",\n 520112: \"乌当区\",\n 520113: \"白云区\",\n 520115: \"观山湖区\",\n 520121: \"开阳县\",\n 520122: \"息烽县\",\n 520123: \"修文县\",\n 520181: \"清镇市\",\n 520201: \"钟山区\",\n 520203: \"六枝特区\",\n 520221: \"水城县\",\n 520281: \"盘州市\",\n 520302: \"红花岗区\",\n 520303: \"汇川区\",\n 520304: \"播州区\",\n 520322: \"桐梓县\",\n 520323: \"绥阳县\",\n 520324: \"正安县\",\n 520325: \"道真仡佬族苗族自治县\",\n 520326: \"务川仡佬族苗族自治县\",\n 520327: \"凤冈县\",\n 520328: \"湄潭县\",\n 520329: \"余庆县\",\n 520330: \"习水县\",\n 520381: \"赤水市\",\n 520382: \"仁怀市\",\n 520402: \"西秀区\",\n 520403: \"平坝区\",\n 520422: \"普定县\",\n 520423: \"镇宁布依族苗族自治县\",\n 520424: \"关岭布依族苗族自治县\",\n 520425: \"紫云苗族布依族自治县\",\n 520502: \"七星关区\",\n 520521: \"大方县\",\n 520522: \"黔西县\",\n 520523: \"金沙县\",\n 520524: \"织金县\",\n 520525: \"纳雍县\",\n 520526: \"威宁彝族回族苗族自治县\",\n 520527: \"赫章县\",\n 520602: \"碧江区\",\n 520603: \"万山区\",\n 520621: \"江口县\",\n 520622: \"玉屏侗族自治县\",\n 520623: \"石阡县\",\n 520624: \"思南县\",\n 520625: \"印江土家族苗族自治县\",\n 520626: \"德江县\",\n 520627: \"沿河土家族自治县\",\n 520628: \"松桃苗族自治县\",\n 522301: \"兴义市\",\n 522302: \"兴仁市\",\n 522323: \"普安县\",\n 522324: \"晴隆县\",\n 522325: \"贞丰县\",\n 522326: \"望谟县\",\n 522327: \"册亨县\",\n 522328: \"安龙县\",\n 522601: \"凯里市\",\n 522622: \"黄平县\",\n 522623: \"施秉县\",\n 522624: \"三穗县\",\n 522625: \"镇远县\",\n 522626: \"岑巩县\",\n 522627: \"天柱县\",\n 522628: \"锦屏县\",\n 522629: \"剑河县\",\n 522630: \"台江县\",\n 522631: \"黎平县\",\n 522632: \"榕江县\",\n 522633: \"从江县\",\n 522634: \"雷山县\",\n 522635: \"麻江县\",\n 522636: \"丹寨县\",\n 522701: \"都匀市\",\n 522702: \"福泉市\",\n 522722: \"荔波县\",\n 522723: \"贵定县\",\n 522725: \"瓮安县\",\n 522726: \"独山县\",\n 522727: \"平塘县\",\n 522728: \"罗甸县\",\n 522729: \"长顺县\",\n 522730: \"龙里县\",\n 522731: \"惠水县\",\n 522732: \"三都水族自治县\",\n 530102: \"五华区\",\n 530103: \"盘龙区\",\n 530111: \"官渡区\",\n 530112: \"西山区\",\n 530113: \"东川区\",\n 530114: \"呈贡区\",\n 530115: \"晋宁区\",\n 530124: \"富民县\",\n 530125: \"宜良县\",\n 530126: \"石林彝族自治县\",\n 530127: \"嵩明县\",\n 530128: \"禄劝彝族苗族自治县\",\n 530129: \"寻甸回族彝族自治县\",\n 530181: \"安宁市\",\n 530302: \"麒麟区\",\n 530303: \"沾益区\",\n 530304: \"马龙区\",\n 530322: \"陆良县\",\n 530323: \"师宗县\",\n 530324: \"罗平县\",\n 530325: \"富源县\",\n 530326: \"会泽县\",\n 530381: \"宣威市\",\n 530402: \"红塔区\",\n 530403: \"江川区\",\n 530423: \"通海县\",\n 530424: \"华宁县\",\n 530425: \"易门县\",\n 530426: \"峨山彝族自治县\",\n 530427: \"新平彝族傣族自治县\",\n 530428: \"元江哈尼族彝族傣族自治县\",\n 530481: \"澄江市\",\n 530502: \"隆阳区\",\n 530521: \"施甸县\",\n 530523: \"龙陵县\",\n 530524: \"昌宁县\",\n 530581: \"腾冲市\",\n 530602: \"昭阳区\",\n 530621: \"鲁甸县\",\n 530622: \"巧家县\",\n 530623: \"盐津县\",\n 530624: \"大关县\",\n 530625: \"永善县\",\n 530626: \"绥江县\",\n 530627: \"镇雄县\",\n 530628: \"彝良县\",\n 530629: \"威信县\",\n 530681: \"水富市\",\n 530702: \"古城区\",\n 530721: \"玉龙纳西族自治县\",\n 530722: \"永胜县\",\n 530723: \"华坪县\",\n 530724: \"宁蒗彝族自治县\",\n 530802: \"思茅区\",\n 530821: \"宁洱哈尼族彝族自治县\",\n 530822: \"墨江哈尼族自治县\",\n 530823: \"景东彝族自治县\",\n 530824: \"景谷傣族彝族自治县\",\n 530825: \"镇沅彝族哈尼族拉祜族自治县\",\n 530826: \"江城哈尼族彝族自治县\",\n 530827: \"孟连傣族拉祜族佤族自治县\",\n 530828: \"澜沧拉祜族自治县\",\n 530829: \"西盟佤族自治县\",\n 530902: \"临翔区\",\n 530921: \"凤庆县\",\n 530922: \"云县\",\n 530923: \"永德县\",\n 530924: \"镇康县\",\n 530925: \"双江拉祜族佤族布朗族傣族自治县\",\n 530926: \"耿马傣族佤族自治县\",\n 530927: \"沧源佤族自治县\",\n 532301: \"楚雄市\",\n 532322: \"双柏县\",\n 532323: \"牟定县\",\n 532324: \"南华县\",\n 532325: \"姚安县\",\n 532326: \"大姚县\",\n 532327: \"永仁县\",\n 532328: \"元谋县\",\n 532329: \"武定县\",\n 532331: \"禄丰县\",\n 532501: \"个旧市\",\n 532502: \"开远市\",\n 532503: \"蒙自市\",\n 532504: \"弥勒市\",\n 532523: \"屏边苗族自治县\",\n 532524: \"建水县\",\n 532525: \"石屏县\",\n 532527: \"泸西县\",\n 532528: \"元阳县\",\n 532529: \"红河县\",\n 532530: \"金平苗族瑶族傣族自治县\",\n 532531: \"绿春县\",\n 532532: \"河口瑶族自治县\",\n 532601: \"文山市\",\n 532622: \"砚山县\",\n 532623: \"西畴县\",\n 532624: \"麻栗坡县\",\n 532625: \"马关县\",\n 532626: \"丘北县\",\n 532627: \"广南县\",\n 532628: \"富宁县\",\n 532801: \"景洪市\",\n 532822: \"勐海县\",\n 532823: \"勐腊县\",\n 532901: \"大理市\",\n 532922: \"漾濞彝族自治县\",\n 532923: \"祥云县\",\n 532924: \"宾川县\",\n 532925: \"弥渡县\",\n 532926: \"南涧彝族自治县\",\n 532927: \"巍山彝族回族自治县\",\n 532928: \"永平县\",\n 532929: \"云龙县\",\n 532930: \"洱源县\",\n 532931: \"剑川县\",\n 532932: \"鹤庆县\",\n 533102: \"瑞丽市\",\n 533103: \"芒市\",\n 533122: \"梁河县\",\n 533123: \"盈江县\",\n 533124: \"陇川县\",\n 533301: \"泸水市\",\n 533323: \"福贡县\",\n 533324: \"贡山独龙族怒族自治县\",\n 533325: \"兰坪白族普米族自治县\",\n 533401: \"香格里拉市\",\n 533422: \"德钦县\",\n 533423: \"维西傈僳族自治县\",\n 540102: \"城关区\",\n 540103: \"堆龙德庆区\",\n 540104: \"达孜区\",\n 540121: \"林周县\",\n 540122: \"当雄县\",\n 540123: \"尼木县\",\n 540124: \"曲水县\",\n 540127: \"墨竹工卡县\",\n 540202: \"桑珠孜区\",\n 540221: \"南木林县\",\n 540222: \"江孜县\",\n 540223: \"定日县\",\n 540224: \"萨迦县\",\n 540225: \"拉孜县\",\n 540226: \"昂仁县\",\n 540227: \"谢通门县\",\n 540228: \"白朗县\",\n 540229: \"仁布县\",\n 540230: \"康马县\",\n 540231: \"定结县\",\n 540232: \"仲巴县\",\n 540233: \"亚东县\",\n 540234: \"吉隆县\",\n 540235: \"聂拉木县\",\n 540236: \"萨嘎县\",\n 540237: \"岗巴县\",\n 540302: \"卡若区\",\n 540321: \"江达县\",\n 540322: \"贡觉县\",\n 540323: \"类乌齐县\",\n 540324: \"丁青县\",\n 540325: \"察雅县\",\n 540326: \"八宿县\",\n 540327: \"左贡县\",\n 540328: \"芒康县\",\n 540329: \"洛隆县\",\n 540330: \"边坝县\",\n 540402: \"巴宜区\",\n 540421: \"工布江达县\",\n 540422: \"米林县\",\n 540423: \"墨脱县\",\n 540424: \"波密县\",\n 540425: \"察隅县\",\n 540426: \"朗县\",\n 540502: \"乃东区\",\n 540521: \"扎囊县\",\n 540522: \"贡嘎县\",\n 540523: \"桑日县\",\n 540524: \"琼结县\",\n 540525: \"曲松县\",\n 540526: \"措美县\",\n 540527: \"洛扎县\",\n 540528: \"加查县\",\n 540529: \"隆子县\",\n 540530: \"错那县\",\n 540531: \"浪卡子县\",\n 540602: \"色尼区\",\n 540621: \"嘉黎县\",\n 540622: \"比如县\",\n 540623: \"聂荣县\",\n 540624: \"安多县\",\n 540625: \"申扎县\",\n 540626: \"索县\",\n 540627: \"班戈县\",\n 540628: \"巴青县\",\n 540629: \"尼玛县\",\n 540630: \"双湖县\",\n 542521: \"普兰县\",\n 542522: \"札达县\",\n 542523: \"噶尔县\",\n 542524: \"日土县\",\n 542525: \"革吉县\",\n 542526: \"改则县\",\n 542527: \"措勤县\",\n 610102: \"新城区\",\n 610103: \"碑林区\",\n 610104: \"莲湖区\",\n 610111: \"灞桥区\",\n 610112: \"未央区\",\n 610113: \"雁塔区\",\n 610114: \"阎良区\",\n 610115: \"临潼区\",\n 610116: \"长安区\",\n 610117: \"高陵区\",\n 610118: \"鄠邑区\",\n 610122: \"蓝田县\",\n 610124: \"周至县\",\n 610202: \"王益区\",\n 610203: \"印台区\",\n 610204: \"耀州区\",\n 610222: \"宜君县\",\n 610302: \"渭滨区\",\n 610303: \"金台区\",\n 610304: \"陈仓区\",\n 610322: \"凤翔县\",\n 610323: \"岐山县\",\n 610324: \"扶风县\",\n 610326: \"眉县\",\n 610327: \"陇县\",\n 610328: \"千阳县\",\n 610329: \"麟游县\",\n 610330: \"凤县\",\n 610331: \"太白县\",\n 610402: \"秦都区\",\n 610403: \"杨陵区\",\n 610404: \"渭城区\",\n 610422: \"三原县\",\n 610423: \"泾阳县\",\n 610424: \"乾县\",\n 610425: \"礼泉县\",\n 610426: \"永寿县\",\n 610428: \"长武县\",\n 610429: \"旬邑县\",\n 610430: \"淳化县\",\n 610431: \"武功县\",\n 610481: \"兴平市\",\n 610482: \"彬州市\",\n 610502: \"临渭区\",\n 610503: \"华州区\",\n 610522: \"潼关县\",\n 610523: \"大荔县\",\n 610524: \"合阳县\",\n 610525: \"澄城县\",\n 610526: \"蒲城县\",\n 610527: \"白水县\",\n 610528: \"富平县\",\n 610581: \"韩城市\",\n 610582: \"华阴市\",\n 610602: \"宝塔区\",\n 610603: \"安塞区\",\n 610621: \"延长县\",\n 610622: \"延川县\",\n 610625: \"志丹县\",\n 610626: \"吴起县\",\n 610627: \"甘泉县\",\n 610628: \"富县\",\n 610629: \"洛川县\",\n 610630: \"宜川县\",\n 610631: \"黄龙县\",\n 610632: \"黄陵县\",\n 610681: \"子长市\",\n 610702: \"汉台区\",\n 610703: \"南郑区\",\n 610722: \"城固县\",\n 610723: \"洋县\",\n 610724: \"西乡县\",\n 610725: \"勉县\",\n 610726: \"宁强县\",\n 610727: \"略阳县\",\n 610728: \"镇巴县\",\n 610729: \"留坝县\",\n 610730: \"佛坪县\",\n 610802: \"榆阳区\",\n 610803: \"横山区\",\n 610822: \"府谷县\",\n 610824: \"靖边县\",\n 610825: \"定边县\",\n 610826: \"绥德县\",\n 610827: \"米脂县\",\n 610828: \"佳县\",\n 610829: \"吴堡县\",\n 610830: \"清涧县\",\n 610831: \"子洲县\",\n 610881: \"神木市\",\n 610902: \"汉滨区\",\n 610921: \"汉阴县\",\n 610922: \"石泉县\",\n 610923: \"宁陕县\",\n 610924: \"紫阳县\",\n 610925: \"岚皋县\",\n 610926: \"平利县\",\n 610927: \"镇坪县\",\n 610928: \"旬阳县\",\n 610929: \"白河县\",\n 611002: \"商州区\",\n 611021: \"洛南县\",\n 611022: \"丹凤县\",\n 611023: \"商南县\",\n 611024: \"山阳县\",\n 611025: \"镇安县\",\n 611026: \"柞水县\",\n 620102: \"城关区\",\n 620103: \"七里河区\",\n 620104: \"西固区\",\n 620105: \"安宁区\",\n 620111: \"红古区\",\n 620121: \"永登县\",\n 620122: \"皋兰县\",\n 620123: \"榆中县\",\n 620171: \"兰州新区\",\n 620201: \"市辖区\",\n 620290: \"雄关区\",\n 620291: \"长城区\",\n 620292: \"镜铁区\",\n 620293: \"新城镇\",\n 620294: \"峪泉镇\",\n 620295: \"文殊镇\",\n 620302: \"金川区\",\n 620321: \"永昌县\",\n 620402: \"白银区\",\n 620403: \"平川区\",\n 620421: \"靖远县\",\n 620422: \"会宁县\",\n 620423: \"景泰县\",\n 620502: \"秦州区\",\n 620503: \"麦积区\",\n 620521: \"清水县\",\n 620522: \"秦安县\",\n 620523: \"甘谷县\",\n 620524: \"武山县\",\n 620525: \"张家川回族自治县\",\n 620602: \"凉州区\",\n 620621: \"民勤县\",\n 620622: \"古浪县\",\n 620623: \"天祝藏族自治县\",\n 620702: \"甘州区\",\n 620721: \"肃南裕固族自治县\",\n 620722: \"民乐县\",\n 620723: \"临泽县\",\n 620724: \"高台县\",\n 620725: \"山丹县\",\n 620802: \"崆峒区\",\n 620821: \"泾川县\",\n 620822: \"灵台县\",\n 620823: \"崇信县\",\n 620825: \"庄浪县\",\n 620826: \"静宁县\",\n 620881: \"华亭市\",\n 620902: \"肃州区\",\n 620921: \"金塔县\",\n 620922: \"瓜州县\",\n 620923: \"肃北蒙古族自治县\",\n 620924: \"阿克塞哈萨克族自治县\",\n 620981: \"玉门市\",\n 620982: \"敦煌市\",\n 621002: \"西峰区\",\n 621021: \"庆城县\",\n 621022: \"环县\",\n 621023: \"华池县\",\n 621024: \"合水县\",\n 621025: \"正宁县\",\n 621026: \"宁县\",\n 621027: \"镇原县\",\n 621102: \"安定区\",\n 621121: \"通渭县\",\n 621122: \"陇西县\",\n 621123: \"渭源县\",\n 621124: \"临洮县\",\n 621125: \"漳县\",\n 621126: \"岷县\",\n 621202: \"武都区\",\n 621221: \"成县\",\n 621222: \"文县\",\n 621223: \"宕昌县\",\n 621224: \"康县\",\n 621225: \"西和县\",\n 621226: \"礼县\",\n 621227: \"徽县\",\n 621228: \"两当县\",\n 622901: \"临夏市\",\n 622921: \"临夏县\",\n 622922: \"康乐县\",\n 622923: \"永靖县\",\n 622924: \"广河县\",\n 622925: \"和政县\",\n 622926: \"东乡族自治县\",\n 622927: \"积石山保安族东乡族撒拉族自治县\",\n 623001: \"合作市\",\n 623021: \"临潭县\",\n 623022: \"卓尼县\",\n 623023: \"舟曲县\",\n 623024: \"迭部县\",\n 623025: \"玛曲县\",\n 623026: \"碌曲县\",\n 623027: \"夏河县\",\n 630102: \"城东区\",\n 630103: \"城中区\",\n 630104: \"城西区\",\n 630105: \"城北区\",\n 630106: \"湟中区\",\n 630121: \"大通回族土族自治县\",\n 630123: \"湟源县\",\n 630202: \"乐都区\",\n 630203: \"平安区\",\n 630222: \"民和回族土族自治县\",\n 630223: \"互助土族自治县\",\n 630224: \"化隆回族自治县\",\n 630225: \"循化撒拉族自治县\",\n 632221: \"门源回族自治县\",\n 632222: \"祁连县\",\n 632223: \"海晏县\",\n 632224: \"刚察县\",\n 632321: \"同仁县\",\n 632322: \"尖扎县\",\n 632323: \"泽库县\",\n 632324: \"河南蒙古族自治县\",\n 632521: \"共和县\",\n 632522: \"同德县\",\n 632523: \"贵德县\",\n 632524: \"兴海县\",\n 632525: \"贵南县\",\n 632621: \"玛沁县\",\n 632622: \"班玛县\",\n 632623: \"甘德县\",\n 632624: \"达日县\",\n 632625: \"久治县\",\n 632626: \"玛多县\",\n 632701: \"玉树市\",\n 632722: \"杂多县\",\n 632723: \"称多县\",\n 632724: \"治多县\",\n 632725: \"囊谦县\",\n 632726: \"曲麻莱县\",\n 632801: \"格尔木市\",\n 632802: \"德令哈市\",\n 632803: \"茫崖市\",\n 632821: \"乌兰县\",\n 632822: \"都兰县\",\n 632823: \"天峻县\",\n 632857: \"大柴旦行政委员会\",\n 640104: \"兴庆区\",\n 640105: \"西夏区\",\n 640106: \"金凤区\",\n 640121: \"永宁县\",\n 640122: \"贺兰县\",\n 640181: \"灵武市\",\n 640202: \"大武口区\",\n 640205: \"惠农区\",\n 640221: \"平罗县\",\n 640302: \"利通区\",\n 640303: \"红寺堡区\",\n 640323: \"盐池县\",\n 640324: \"同心县\",\n 640381: \"青铜峡市\",\n 640402: \"原州区\",\n 640422: \"西吉县\",\n 640423: \"隆德县\",\n 640424: \"泾源县\",\n 640425: \"彭阳县\",\n 640502: \"沙坡头区\",\n 640521: \"中宁县\",\n 640522: \"海原县\",\n 650102: \"天山区\",\n 650103: \"沙依巴克区\",\n 650104: \"新市区\",\n 650105: \"水磨沟区\",\n 650106: \"头屯河区\",\n 650107: \"达坂城区\",\n 650109: \"米东区\",\n 650121: \"乌鲁木齐县\",\n 650202: \"独山子区\",\n 650203: \"克拉玛依区\",\n 650204: \"白碱滩区\",\n 650205: \"乌尔禾区\",\n 650402: \"高昌区\",\n 650421: \"鄯善县\",\n 650422: \"托克逊县\",\n 650502: \"伊州区\",\n 650521: \"巴里坤哈萨克自治县\",\n 650522: \"伊吾县\",\n 652301: \"昌吉市\",\n 652302: \"阜康市\",\n 652323: \"呼图壁县\",\n 652324: \"玛纳斯县\",\n 652325: \"奇台县\",\n 652327: \"吉木萨尔县\",\n 652328: \"木垒哈萨克自治县\",\n 652701: \"博乐市\",\n 652702: \"阿拉山口市\",\n 652722: \"精河县\",\n 652723: \"温泉县\",\n 652801: \"库尔勒市\",\n 652822: \"轮台县\",\n 652823: \"尉犁县\",\n 652824: \"若羌县\",\n 652825: \"且末县\",\n 652826: \"焉耆回族自治县\",\n 652827: \"和静县\",\n 652828: \"和硕县\",\n 652829: \"博湖县\",\n 652901: \"阿克苏市\",\n 652902: \"库车市\",\n 652922: \"温宿县\",\n 652924: \"沙雅县\",\n 652925: \"新和县\",\n 652926: \"拜城县\",\n 652927: \"乌什县\",\n 652928: \"阿瓦提县\",\n 652929: \"柯坪县\",\n 653001: \"阿图什市\",\n 653022: \"阿克陶县\",\n 653023: \"阿合奇县\",\n 653024: \"乌恰县\",\n 653101: \"喀什市\",\n 653121: \"疏附县\",\n 653122: \"疏勒县\",\n 653123: \"英吉沙县\",\n 653124: \"泽普县\",\n 653125: \"莎车县\",\n 653126: \"叶城县\",\n 653127: \"麦盖提县\",\n 653128: \"岳普湖县\",\n 653129: \"伽师县\",\n 653130: \"巴楚县\",\n 653131: \"塔什库尔干塔吉克自治县\",\n 653201: \"和田市\",\n 653221: \"和田县\",\n 653222: \"墨玉县\",\n 653223: \"皮山县\",\n 653224: \"洛浦县\",\n 653225: \"策勒县\",\n 653226: \"于田县\",\n 653227: \"民丰县\",\n 654002: \"伊宁市\",\n 654003: \"奎屯市\",\n 654004: \"霍尔果斯市\",\n 654021: \"伊宁县\",\n 654022: \"察布查尔锡伯自治县\",\n 654023: \"霍城县\",\n 654024: \"巩留县\",\n 654025: \"新源县\",\n 654026: \"昭苏县\",\n 654027: \"特克斯县\",\n 654028: \"尼勒克县\",\n 654201: \"塔城市\",\n 654202: \"乌苏市\",\n 654221: \"额敏县\",\n 654223: \"沙湾县\",\n 654224: \"托里县\",\n 654225: \"裕民县\",\n 654226: \"和布克赛尔蒙古自治县\",\n 654301: \"阿勒泰市\",\n 654321: \"布尔津县\",\n 654322: \"富蕴县\",\n 654323: \"福海县\",\n 654324: \"哈巴河县\",\n 654325: \"青河县\",\n 654326: \"吉木乃县\",\n 659001: \"石河子市\",\n 659002: \"阿拉尔市\",\n 659003: \"图木舒克市\",\n 659004: \"五家渠市\",\n 659005: \"北屯市\",\n 659006: \"铁门关市\",\n 659007: \"双河市\",\n 659008: \"可克达拉市\",\n 659009: \"昆玉市\",\n 659010: \"胡杨河市\",\n 710101: \"中正区\",\n 710102: \"大同区\",\n 710103: \"中山区\",\n 710104: \"松山区\",\n 710105: \"大安区\",\n 710106: \"万华区\",\n 710107: \"信义区\",\n 710108: \"士林区\",\n 710109: \"北投区\",\n 710110: \"内湖区\",\n 710111: \"南港区\",\n 710112: \"文山区\",\n 710199: \"其它区\",\n 710201: \"新兴区\",\n 710202: \"前金区\",\n 710203: \"芩雅区\",\n 710204: \"盐埕区\",\n 710205: \"鼓山区\",\n 710206: \"旗津区\",\n 710207: \"前镇区\",\n 710208: \"三民区\",\n 710209: \"左营区\",\n 710210: \"楠梓区\",\n 710211: \"小港区\",\n 710241: \"苓雅区\",\n 710242: \"仁武区\",\n 710243: \"大社区\",\n 710244: \"冈山区\",\n 710245: \"路竹区\",\n 710246: \"阿莲区\",\n 710247: \"田寮区\",\n 710248: \"燕巢区\",\n 710249: \"桥头区\",\n 710250: \"梓官区\",\n 710251: \"弥陀区\",\n 710252: \"永安区\",\n 710253: \"湖内区\",\n 710254: \"凤山区\",\n 710255: \"大寮区\",\n 710256: \"林园区\",\n 710257: \"鸟松区\",\n 710258: \"大树区\",\n 710259: \"旗山区\",\n 710260: \"美浓区\",\n 710261: \"六龟区\",\n 710262: \"内门区\",\n 710263: \"杉林区\",\n 710264: \"甲仙区\",\n 710265: \"桃源区\",\n 710266: \"那玛夏区\",\n 710267: \"茂林区\",\n 710268: \"茄萣区\",\n 710299: \"其它区\",\n 710301: \"中西区\",\n 710302: \"东区\",\n 710303: \"南区\",\n 710304: \"北区\",\n 710305: \"安平区\",\n 710306: \"安南区\",\n 710339: \"永康区\",\n 710340: \"归仁区\",\n 710341: \"新化区\",\n 710342: \"左镇区\",\n 710343: \"玉井区\",\n 710344: \"楠西区\",\n 710345: \"南化区\",\n 710346: \"仁德区\",\n 710347: \"关庙区\",\n 710348: \"龙崎区\",\n 710349: \"官田区\",\n 710350: \"麻豆区\",\n 710351: \"佳里区\",\n 710352: \"西港区\",\n 710353: \"七股区\",\n 710354: \"将军区\",\n 710355: \"学甲区\",\n 710356: \"北门区\",\n 710357: \"新营区\",\n 710358: \"后壁区\",\n 710359: \"白河区\",\n 710360: \"东山区\",\n 710361: \"六甲区\",\n 710362: \"下营区\",\n 710363: \"柳营区\",\n 710364: \"盐水区\",\n 710365: \"善化区\",\n 710366: \"大内区\",\n 710367: \"山上区\",\n 710368: \"新市区\",\n 710369: \"安定区\",\n 710399: \"其它区\",\n 710401: \"中区\",\n 710402: \"东区\",\n 710403: \"南区\",\n 710404: \"西区\",\n 710405: \"北区\",\n 710406: \"北屯区\",\n 710407: \"西屯区\",\n 710408: \"南屯区\",\n 710431: \"太平区\",\n 710432: \"大里区\",\n 710433: \"雾峰区\",\n 710434: \"乌日区\",\n 710435: \"丰原区\",\n 710436: \"后里区\",\n 710437: \"石冈区\",\n 710438: \"东势区\",\n 710439: \"和平区\",\n 710440: \"新社区\",\n 710441: \"潭子区\",\n 710442: \"大雅区\",\n 710443: \"神冈区\",\n 710444: \"大肚区\",\n 710445: \"沙鹿区\",\n 710446: \"龙井区\",\n 710447: \"梧栖区\",\n 710448: \"清水区\",\n 710449: \"大甲区\",\n 710450: \"外埔区\",\n 710451: \"大安区\",\n 710499: \"其它区\",\n 710507: \"金沙镇\",\n 710508: \"金湖镇\",\n 710509: \"金宁乡\",\n 710510: \"金城镇\",\n 710511: \"烈屿乡\",\n 710512: \"乌坵乡\",\n 710614: \"南投市\",\n 710615: \"中寮乡\",\n 710616: \"草屯镇\",\n 710617: \"国姓乡\",\n 710618: \"埔里镇\",\n 710619: \"仁爱乡\",\n 710620: \"名间乡\",\n 710621: \"集集镇\",\n 710622: \"水里乡\",\n 710623: \"鱼池乡\",\n 710624: \"信义乡\",\n 710625: \"竹山镇\",\n 710626: \"鹿谷乡\",\n 710701: \"仁爱区\",\n 710702: \"信义区\",\n 710703: \"中正区\",\n 710704: \"中山区\",\n 710705: \"安乐区\",\n 710706: \"暖暖区\",\n 710707: \"七堵区\",\n 710799: \"其它区\",\n 710801: \"东区\",\n 710802: \"北区\",\n 710803: \"香山区\",\n 710899: \"其它区\",\n 710901: \"东区\",\n 710902: \"西区\",\n 710999: \"其它区\",\n 711130: \"万里区\",\n 711132: \"板桥区\",\n 711133: \"汐止区\",\n 711134: \"深坑区\",\n 711135: \"石碇区\",\n 711136: \"瑞芳区\",\n 711137: \"平溪区\",\n 711138: \"双溪区\",\n 711139: \"贡寮区\",\n 711140: \"新店区\",\n 711141: \"坪林区\",\n 711142: \"乌来区\",\n 711143: \"永和区\",\n 711144: \"中和区\",\n 711145: \"土城区\",\n 711146: \"三峡区\",\n 711147: \"树林区\",\n 711148: \"莺歌区\",\n 711149: \"三重区\",\n 711150: \"新庄区\",\n 711151: \"泰山区\",\n 711152: \"林口区\",\n 711153: \"芦洲区\",\n 711154: \"五股区\",\n 711155: \"八里区\",\n 711156: \"淡水区\",\n 711157: \"三芝区\",\n 711158: \"石门区\",\n 711287: \"宜兰市\",\n 711288: \"头城镇\",\n 711289: \"礁溪乡\",\n 711290: \"壮围乡\",\n 711291: \"员山乡\",\n 711292: \"罗东镇\",\n 711293: \"三星乡\",\n 711294: \"大同乡\",\n 711295: \"五结乡\",\n 711296: \"冬山乡\",\n 711297: \"苏澳镇\",\n 711298: \"南澳乡\",\n 711299: \"钓鱼台\",\n 711387: \"竹北市\",\n 711388: \"湖口乡\",\n 711389: \"新丰乡\",\n 711390: \"新埔镇\",\n 711391: \"关西镇\",\n 711392: \"芎林乡\",\n 711393: \"宝山乡\",\n 711394: \"竹东镇\",\n 711395: \"五峰乡\",\n 711396: \"横山乡\",\n 711397: \"尖石乡\",\n 711398: \"北埔乡\",\n 711399: \"峨眉乡\",\n 711414: \"中坜区\",\n 711415: \"平镇区\",\n 711417: \"杨梅区\",\n 711418: \"新屋区\",\n 711419: \"观音区\",\n 711420: \"桃园区\",\n 711421: \"龟山区\",\n 711422: \"八德区\",\n 711423: \"大溪区\",\n 711425: \"大园区\",\n 711426: \"芦竹区\",\n 711487: \"中坜市\",\n 711488: \"平镇市\",\n 711489: \"龙潭乡\",\n 711490: \"杨梅市\",\n 711491: \"新屋乡\",\n 711492: \"观音乡\",\n 711493: \"桃园市\",\n 711494: \"龟山乡\",\n 711495: \"八德市\",\n 711496: \"大溪镇\",\n 711497: \"复兴乡\",\n 711498: \"大园乡\",\n 711499: \"芦竹乡\",\n 711520: \"头份市\",\n 711582: \"竹南镇\",\n 711583: \"头份镇\",\n 711584: \"三湾乡\",\n 711585: \"南庄乡\",\n 711586: \"狮潭乡\",\n 711587: \"后龙镇\",\n 711588: \"通霄镇\",\n 711589: \"苑里镇\",\n 711590: \"苗栗市\",\n 711591: \"造桥乡\",\n 711592: \"头屋乡\",\n 711593: \"公馆乡\",\n 711594: \"大湖乡\",\n 711595: \"泰安乡\",\n 711596: \"铜锣乡\",\n 711597: \"三义乡\",\n 711598: \"西湖乡\",\n 711599: \"卓兰镇\",\n 711736: \"员林市\",\n 711774: \"彰化市\",\n 711775: \"芬园乡\",\n 711776: \"花坛乡\",\n 711777: \"秀水乡\",\n 711778: \"鹿港镇\",\n 711779: \"福兴乡\",\n 711780: \"线西乡\",\n 711781: \"和美镇\",\n 711782: \"伸港乡\",\n 711783: \"员林镇\",\n 711784: \"社头乡\",\n 711785: \"永靖乡\",\n 711786: \"埔心乡\",\n 711787: \"溪湖镇\",\n 711788: \"大村乡\",\n 711789: \"埔盐乡\",\n 711790: \"田中镇\",\n 711791: \"北斗镇\",\n 711792: \"田尾乡\",\n 711793: \"埤头乡\",\n 711794: \"溪州乡\",\n 711795: \"竹塘乡\",\n 711796: \"二林镇\",\n 711797: \"大城乡\",\n 711798: \"芳苑乡\",\n 711799: \"二水乡\",\n 711982: \"番路乡\",\n 711983: \"梅山乡\",\n 711984: \"竹崎乡\",\n 711985: \"阿里山乡\",\n 711986: \"中埔乡\",\n 711987: \"大埔乡\",\n 711988: \"水上乡\",\n 711989: \"鹿草乡\",\n 711990: \"太保市\",\n 711991: \"朴子市\",\n 711992: \"东石乡\",\n 711993: \"六脚乡\",\n 711994: \"新港乡\",\n 711995: \"民雄乡\",\n 711996: \"大林镇\",\n 711997: \"溪口乡\",\n 711998: \"义竹乡\",\n 711999: \"布袋镇\",\n 712180: \"斗南镇\",\n 712181: \"大埤乡\",\n 712182: \"虎尾镇\",\n 712183: \"土库镇\",\n 712184: \"褒忠乡\",\n 712185: \"东势乡\",\n 712186: \"台西乡\",\n 712187: \"仑背乡\",\n 712188: \"麦寮乡\",\n 712189: \"斗六市\",\n 712190: \"林内乡\",\n 712191: \"古坑乡\",\n 712192: \"莿桐乡\",\n 712193: \"西螺镇\",\n 712194: \"二仑乡\",\n 712195: \"北港镇\",\n 712196: \"水林乡\",\n 712197: \"口湖乡\",\n 712198: \"四湖乡\",\n 712199: \"元长乡\",\n 712451: \"崁顶乡\",\n 712467: \"屏东市\",\n 712468: \"三地门乡\",\n 712469: \"雾台乡\",\n 712470: \"玛家乡\",\n 712471: \"九如乡\",\n 712472: \"里港乡\",\n 712473: \"高树乡\",\n 712474: \"盐埔乡\",\n 712475: \"长治乡\",\n 712476: \"麟洛乡\",\n 712477: \"竹田乡\",\n 712478: \"内埔乡\",\n 712479: \"万丹乡\",\n 712480: \"潮州镇\",\n 712481: \"泰武乡\",\n 712482: \"来义乡\",\n 712483: \"万峦乡\",\n 712484: \"莰顶乡\",\n 712485: \"新埤乡\",\n 712486: \"南州乡\",\n 712487: \"林边乡\",\n 712488: \"东港镇\",\n 712489: \"琉球乡\",\n 712490: \"佳冬乡\",\n 712491: \"新园乡\",\n 712492: \"枋寮乡\",\n 712493: \"枋山乡\",\n 712494: \"春日乡\",\n 712495: \"狮子乡\",\n 712496: \"车城乡\",\n 712497: \"牡丹乡\",\n 712498: \"恒春镇\",\n 712499: \"满州乡\",\n 712584: \"台东市\",\n 712585: \"绿岛乡\",\n 712586: \"兰屿乡\",\n 712587: \"延平乡\",\n 712588: \"卑南乡\",\n 712589: \"鹿野乡\",\n 712590: \"关山镇\",\n 712591: \"海端乡\",\n 712592: \"池上乡\",\n 712593: \"东河乡\",\n 712594: \"成功镇\",\n 712595: \"长滨乡\",\n 712596: \"金峰乡\",\n 712597: \"大武乡\",\n 712598: \"达仁乡\",\n 712599: \"太麻里乡\",\n 712686: \"花莲市\",\n 712687: \"新城乡\",\n 712688: \"太鲁阁\",\n 712689: \"秀林乡\",\n 712690: \"吉安乡\",\n 712691: \"寿丰乡\",\n 712692: \"凤林镇\",\n 712693: \"光复乡\",\n 712694: \"丰滨乡\",\n 712695: \"瑞穗乡\",\n 712696: \"万荣乡\",\n 712697: \"玉里镇\",\n 712698: \"卓溪乡\",\n 712699: \"富里乡\",\n 712794: \"马公市\",\n 712795: \"西屿乡\",\n 712796: \"望安乡\",\n 712797: \"七美乡\",\n 712798: \"白沙乡\",\n 712799: \"湖西乡\",\n 712896: \"南竿乡\",\n 712897: \"北竿乡\",\n 712898: \"东引乡\",\n 712899: \"莒光乡\",\n 810101: \"中西区\",\n 810102: \"湾仔区\",\n 810103: \"东区\",\n 810104: \"南区\",\n 810201: \"九龙城区\",\n 810202: \"油尖旺区\",\n 810203: \"深水埗区\",\n 810204: \"黄大仙区\",\n 810205: \"观塘区\",\n 810301: \"北区\",\n 810302: \"大埔区\",\n 810303: \"沙田区\",\n 810304: \"西贡区\",\n 810305: \"元朗区\",\n 810306: \"屯门区\",\n 810307: \"荃湾区\",\n 810308: \"葵青区\",\n 810309: \"离岛区\",\n 820102: \"花地玛堂区\",\n 820103: \"花王堂区\",\n 820104: \"望德堂区\",\n 820105: \"大堂区\",\n 820106: \"风顺堂区\",\n 820202: \"嘉模堂区\",\n 820203: \"路氹填海区\",\n 820204: \"圣方济各堂区\"\n }\n};\nvar makeOption = (text, value, children) => ({\n text,\n value,\n children\n});\nfunction useCascaderAreaData() {\n const {\n city_list: city,\n county_list: county,\n province_list: province\n } = areaList;\n const provinceMap = /* @__PURE__ */ new Map();\n Object.keys(province).forEach((code) => {\n provinceMap.set(code.slice(0, 2), makeOption(province[code], code, []));\n });\n const cityMap = /* @__PURE__ */ new Map();\n Object.keys(city).forEach((code) => {\n const option = makeOption(city[code], code, []);\n cityMap.set(code.slice(0, 4), option);\n const province2 = provinceMap.get(code.slice(0, 2));\n if (province2) {\n province2.children.push(option);\n }\n });\n Object.keys(county).forEach((code) => {\n const city2 = cityMap.get(code.slice(0, 4));\n if (city2) {\n city2.children.push(makeOption(county[code], code));\n }\n });\n return Array.from(provinceMap.values());\n}\nexport {\n areaList,\n useCascaderAreaData\n};\n","import {\n ref,\n inject,\n computed,\n onUnmounted,\n type InjectionKey,\n getCurrentInstance,\n type ComponentPublicInstance,\n type ComponentInternalInstance\n} from 'vue'\n\ntype ParentProvide<T> = T & {\n link(child: ComponentInternalInstance): void\n unlink(child: ComponentInternalInstance): void\n children: ComponentPublicInstance[]\n internalChildren: ComponentInternalInstance[]\n}\n\nexport function useParent<T>(key: InjectionKey<ParentProvide<T>>) {\n const parent = inject(key, null)\n\n if (parent) {\n const instance = getCurrentInstance()!\n const { link, unlink, internalChildren } = parent\n\n link(instance)\n onUnmounted(() => unlink(instance))\n\n const index = computed(() => internalChildren.indexOf(instance))\n\n return {\n parent,\n index\n }\n }\n\n return {\n parent: null,\n index: ref(-1)\n }\n}\n","import { type ExtractPropTypes, type InjectionKey, type PropType } from 'vue'\nimport type { CheckShape } from '../wd-checkbox/types'\nimport { baseProps, makeBooleanProp, makeNumberProp, makeStringProp } from '../common/props'\n\nexport type RequiredModelValue = {\n modelValue: Array<string | number | boolean>\n}\n\nexport type checkboxGroupProvide = {\n props: Partial<Omit<CheckboxGroupProps, 'modelValue'>> & RequiredModelValue\n changeSelectState: (value: string | number | boolean) => void\n}\n\nexport const CHECKBOX_GROUP_KEY: InjectionKey<checkboxGroupProvide> = Symbol('wd-checkbox-group')\n\nexport const checkboxGroupProps = {\n ...baseProps,\n /**\n * 绑定值\n */\n modelValue: {\n type: Array as PropType<Array<string | number | boolean>>,\n default: () => []\n },\n /**\n * 表单模式\n */\n cell: makeBooleanProp(false),\n /**\n * 单选框形状可选值circle / square / button\n */\n shape: makeStringProp<CheckShape>('circle'),\n /**\n * 选中的颜色\n */\n checkedColor: String,\n /**\n * 禁用\n */\n disabled: makeBooleanProp(false),\n /**\n * 最小选中的数量\n */\n min: makeNumberProp(0),\n /**\n * 最大选中的数量0 为无限数量,默认为 0\n */\n max: makeNumberProp(0),\n /**\n * 同行展示\n */\n inline: makeBooleanProp(false),\n /**\n * 设置大小可选值large\n */\n size: String\n}\n\nexport type CheckboxGroupProps = ExtractPropTypes<typeof checkboxGroupProps>\n","import type { ComponentPublicInstance, ExtractPropTypes, PropType } from 'vue'\nimport { baseProps, makeStringProp } from '../common/props'\n\nexport type CheckShape = 'circle' | 'square' | 'button'\n\nexport const checkboxProps = {\n ...baseProps,\n customLabelClass: makeStringProp(''),\n customShapeClass: makeStringProp(''),\n /**\n * 单选框选中时的值\n */\n modelValue: {\n type: [String, Number, Boolean],\n required: true,\n default: false\n },\n /**\n * 单选框形状可选值circle / square / button\n */\n shape: makeStringProp<CheckShape>('circle'),\n /**\n * 选中的颜色\n */\n checkedColor: String,\n /**\n * 禁用\n */\n disabled: {\n type: [Boolean, null] as PropType<boolean | null>,\n default: null\n },\n /**\n * 选中值,在 checkbox-group 中使用无效,需同 false-value 一块使用\n */\n trueValue: {\n type: [String, Number, Boolean],\n default: true\n },\n /**\n * 非选中时的值,在 checkbox-group 中使用无效,需同 true-value 一块使用\n */\n falseValue: {\n type: [String, Number, Boolean],\n default: false\n },\n /**\n * 设置大小可选值large\n */\n size: String,\n /**\n * 文字位置最大宽度\n */\n maxWidth: String\n}\n\nexport type CheckboxProps = ExtractPropTypes<typeof checkboxProps>\n\nexport type CheckboxExpose = {\n /**\n * 切换当前选中状态\n */\n toggle: () => void\n}\n\nexport type CheckboxInstance = ComponentPublicInstance<CheckboxProps, CheckboxExpose>\n","import { baseProps, makeBooleanProp, makeStringProp, numericProp } from '../common/props'\nexport type ImageMode =\n | 'scaleToFill'\n | 'aspectFit'\n | 'aspectFill'\n | 'widthFix'\n | 'heightFix'\n | 'top'\n | 'bottom'\n | 'center'\n | 'left'\n | 'right'\n | 'top left'\n | 'top right'\n | 'bottom left'\n | 'bottom right'\n\nexport const imgProps = {\n ...baseProps,\n customImage: makeStringProp(''),\n /**\n * 图片链接\n */\n src: String,\n /**\n * 是否显示为圆形\n */\n round: makeBooleanProp(false),\n /**\n * 填充模式:'top left' / 'top right' / 'bottom left' / 'bottom right' / 'right' / 'left' / 'center' / 'bottom' / 'top' / 'heightFix' / 'widthFix' / 'aspectFill' / 'aspectFit' / 'scaleToFill'\n */\n mode: makeStringProp<ImageMode>('scaleToFill'),\n /**\n * 是否懒加载\n */\n lazyLoad: makeBooleanProp(false),\n /**\n * 宽度默认单位为px\n */\n width: numericProp,\n /**\n * 高度默认单位为px\n */\n height: numericProp,\n /**\n * 圆角大小默认单位为px\n */\n radius: numericProp,\n /**\n * 是否允许预览\n */\n enablePreview: makeBooleanProp(false)\n}\n","/*\n * @Author: weisheng\n * @Date: 2023-12-14 11:21:58\n * @LastEditTime: 2024-03-18 13:57:14\n * @LastEditors: weisheng\n * @Description:\n * @FilePath: \\wot-design-uni\\src\\uni_modules\\wot-design-uni\\components\\wd-cell-group\\types.ts\n * 记得注释\n */\nimport { type ExtractPropTypes, type InjectionKey } from 'vue'\nimport { baseProps, makeBooleanProp } from '../common/props'\n\nexport type CelllGroupProvide = {\n props: {\n border?: boolean\n }\n}\n\nexport const CELL_GROUP_KEY: InjectionKey<CelllGroupProvide> = Symbol('wd-cell-group')\n\nexport const cellGroupProps = {\n ...baseProps,\n /**\n * 分组标题\n */\n title: String,\n /**\n * 分组右侧内容\n */\n value: String,\n /**\n * 分组启用插槽\n */\n useSlot: makeBooleanProp(false),\n /**\n * 是否展示边框线\n */\n border: makeBooleanProp(false)\n}\n\nexport type CellGroupProps = ExtractPropTypes<typeof cellGroupProps>\n","import { computed } from 'vue'\nimport { useParent } from './useParent'\nimport { CELL_GROUP_KEY } from '../wd-cell-group/types'\n\nexport function useCell() {\n const { parent: cellGroup, index } = useParent(CELL_GROUP_KEY)\n\n const border = computed(() => {\n return cellGroup && cellGroup.props.border && index.value\n })\n\n return { border }\n}\n","import type { ComponentPublicInstance, ExtractPropTypes, PropType, Ref } from 'vue'\nimport { baseProps, makeArrayProp, makeBooleanProp, makeNumberProp, makeStringProp } from '../common/props'\nimport { getType, isArray, isObj } from '../common/util'\n\nexport type ColumnItem = {\n [key: string]: any\n value?: string | number | boolean\n label?: string\n disabled?: boolean\n}\n\nexport type PickerViewColumnChange = (\n pickerView: PickerViewInstance,\n selects: Record<string, any> | Record<string, any>[],\n index: number,\n reslove: () => void\n) => void\n\nexport const pickerViewProps = {\n ...baseProps,\n /**\n * 加载状态\n */\n loading: makeBooleanProp(false),\n /**\n * 加载的颜色,只能使用十六进制的色值写法,且不能使用缩写\n */\n loadingColor: makeStringProp('#4D80F0'),\n /**\n * picker内部滚筒高\n */\n columnsHeight: makeNumberProp(217),\n /**\n * 选项对象中value对应的 key\n */\n valueKey: makeStringProp('value'),\n /**\n * 选项对象中,展示的文本对应的 key\n */\n labelKey: makeStringProp('label'),\n /**\n * 是否在手指松开时立即触发picker-view的 change 事件。若不开启则会在滚动动画结束后触发 change 事件1.2.25版本起提供,仅微信小程序和支付宝小程序支持。\n */\n immediateChange: makeBooleanProp(false),\n /**\n * 选中项,如果为多列选择器,则其类型应为数组\n */\n modelValue: {\n type: [String, Number, Boolean, Array<number>, Array<string>, Array<boolean>] as PropType<\n string | number | boolean | Array<number> | Array<string> | Array<boolean>\n >,\n default: '',\n required: true\n },\n /**\n * 选择器数据,可以为字符串数组,也可以为对象数组,如果为二维数组,则为多列选择器\n */\n columns: makeArrayProp<string | number | ColumnItem | Array<number> | Array<string> | Array<ColumnItem>>(),\n /**\n * 接收 pickerView 实例、选中项、当前修改列的下标、resolve 作为入参,根据选中项和列下标进行判断,通过 pickerView 实例暴露出来的 setColumnData 方法修改其他列的数据源。\n */\n columnChange: Function as PropType<PickerViewColumnChange>\n}\n\nexport type PickerViewExpose = {\n getSelects: () => Record<string, any> | Record<string, any>[]\n getValues: () => string | string[]\n setColumnData: (columnIndex: number, data: Array<string | number | ColumnItem | Array<string | number | ColumnItem>>, rowIndex?: number) => void\n getColumnsData: () => Record<string, string>[][]\n getColumnData: (columnIndex: number) => Record<string, string>[]\n getColumnIndex: (columnIndex: number) => number\n getLabels: () => string[]\n getSelectedIndex: () => number[]\n}\n\nexport type PickerViewProps = ExtractPropTypes<typeof pickerViewProps>\n\nexport type PickerViewInstance = ComponentPublicInstance<PickerViewProps, PickerViewExpose>\n\n/**\n * 格式化传入的列数据\n * 列数据统一格式化为二维数组\n * @param array 列数据\n * @param valueKey\n * @param labelKey\n * @returns\n */\nexport function formatArray(\n array: Array<string | number | ColumnItem | Array<string | number | ColumnItem>>,\n valueKey: string,\n labelKey: string\n): ColumnItem[][] {\n let tempArray: Array<string | number | ColumnItem | Array<string | number | ColumnItem>> = isArray(array) ? array : [array]\n // 判断数组第一层的数据类型,如果存在多种类型,则抛错\n const firstLevelTypeList = new Set(array.map(getType))\n /**\n * 存在三种类型的合法数据\n * 1.数组是一维元素,所有元素都是原始值\n * 2.数组是一维元素所有元素都是object\n * 3.数组是二维元素,二维元素可以是任意内容\n */\n if (firstLevelTypeList.size !== 1 && firstLevelTypeList.has('object')) {\n // 原始值和引用类型不用混用\n throw Error('The columns are correct')\n }\n /**\n * 简单处理,如果数组第一项不是数组则认为它是一个一维数组\n * 所以需要把一维的转成二维,这样方便统一处理\n */\n if (!isArray(array[0])) {\n tempArray = [tempArray as Array<string | number | ColumnItem>]\n }\n // 转化为二维数组后需要将每一项包装成ColumnItem\n const result: Array<Array<ColumnItem>> = (tempArray as Array<Array<string | number | ColumnItem>>).map((col) => {\n return col.map((row) => {\n // 非对象类型直接将值作为label和value\n if (!isObj(row)) {\n return {\n [valueKey]: row,\n [labelKey]: row\n }\n }\n /**\n * 针对已经是object的修补成{valueKey,labelKey}\n * 如果没有labelKey用valueKey代替\n * 如果没有valueKey用labelKey代替\n * valueKey,labelKey都没有直接抛错\n */\n // eslint-disable-next-line no-prototype-builtins\n if (!row.hasOwnProperty(valueKey) && !row.hasOwnProperty(labelKey)) {\n // eslint-disable-next-line prettier/prettier\n throw Error('Can\\'t find valueKey and labelKey in columns')\n }\n // eslint-disable-next-line no-prototype-builtins\n if (!row.hasOwnProperty(labelKey)) {\n row[labelKey] = row[valueKey]\n }\n // eslint-disable-next-line no-prototype-builtins\n if (!row.hasOwnProperty(valueKey)) {\n row[valueKey] = row[labelKey]\n }\n return row\n })\n })\n\n return result\n}\n","/*\n * @Author: weisheng\n * @Date: 2023-12-14 11:21:58\n * @LastEditTime: 2024-03-18 12:50:41\n * @LastEditors: weisheng\n * @Description:\n * @FilePath: \\wot-design-uni\\src\\uni_modules\\wot-design-uni\\components\\wd-form\\types.ts\n * 记得注释\n */\nimport { type ComponentPublicInstance, type ExtractPropTypes, type InjectionKey, type PropType } from 'vue'\nimport { baseProps, makeBooleanProp, makeRequiredProp } from '../common/props'\n\nexport type FormProvide = {\n props: {\n model: Record<string, any>\n rules?: FormRules\n border?: boolean\n }\n errorMessages?: Record<string, string>\n}\n\nexport const FORM_KEY: InjectionKey<FormProvide> = Symbol('wd-form')\n\nexport type FormRules = {\n [key: string]: FormItemRule[]\n}\n\nexport type ErrorMessage = {\n prop: string\n message: string\n}\n\nexport interface FormItemRule {\n [key: string]: any\n required: boolean\n message: string\n pattern?: RegExp\n validator?: (value: any, rule: FormItemRuleWithoutValidator) => boolean | Promise<string> | Promise<boolean> | Promise<void> | Promise<unknown>\n}\n\nexport type FormItemRuleWithoutValidator = Omit<FormItemRule, 'validator'>\n\nexport const formProps = {\n ...baseProps,\n /**\n * 表单数据对象\n */\n model: makeRequiredProp(Object as PropType<Record<string, any>>),\n /**\n * 表单验证规则\n */\n rules: {\n type: Object as PropType<FormRules>,\n default: () => ({})\n },\n /**\n * 是否在输入时重置表单校验信息\n */\n resetOnChange: makeBooleanProp(true)\n}\nexport type FormProps = ExtractPropTypes<typeof formProps>\n\nexport type FormExpose = {\n /**\n * 表单校验\n * @param prop 指定校验字段\n */\n validate: (prop?: string) => Promise<{\n valid: boolean\n errors: ErrorMessage[]\n }>\n /**\n * 重置表单项的验证提示\n */\n reset: () => void\n}\n\nexport type FormInstance = ComponentPublicInstance<FormProps, FormExpose>\n","export default {\n calendar: {\n placeholder: '请选择',\n title: '选择日期',\n day: '日',\n week: '周',\n month: '月',\n confirm: '确定',\n startTime: '开始时间',\n endTime: '结束时间',\n to: '至',\n timeFormat: 'YY年MM月DD日 HH:mm:ss',\n dateFormat: 'YYYY年MM月DD日',\n weekFormat: (year: number, week: number) => `${year} 第 ${week} 周`,\n startWeek: '开始周',\n endWeek: '结束周',\n startMonth: '开始月',\n endMonth: '结束月',\n monthFormat: 'YYYY年MM月'\n },\n calendarView: {\n startTime: '开始',\n endTime: '结束',\n weeks: {\n sun: '日',\n mon: '一',\n tue: '二',\n wed: '三',\n thu: '四',\n fri: '五',\n sat: '六'\n },\n rangePrompt: (maxRange: number) => `选择天数不能超过${maxRange}天`,\n rangePromptWeek: (maxRange: number) => `选择周数不能超过${maxRange}周`,\n rangePromptMonth: (maxRange: number) => `选择月份不能超过${maxRange}个月`,\n monthTitle: 'YYYY年M月',\n yearTitle: 'YYYY年',\n month: 'M月',\n hour: (value: number) => `${value}时`,\n minute: (value: number) => `${value}分`,\n second: (value: number) => `${value}秒`\n },\n collapse: {\n expand: '展开',\n retract: '收起'\n },\n colPicker: {\n title: '请选择',\n placeholder: '请选择',\n select: '请选择'\n },\n datetimePicker: {\n start: '开始时间',\n end: '结束时间',\n to: '至',\n placeholder: '请选择',\n confirm: '完成',\n cancel: '取消'\n },\n loadmore: {\n loading: '正在努力加载中...',\n finished: '已加载完毕',\n error: '加载失败',\n retry: '点击重试'\n },\n messageBox: {\n inputPlaceholder: '请输入',\n confirm: '确定',\n cancel: '取消',\n inputNoValidate: '输入的数据不合法'\n },\n numberKeyboard: {\n confirm: '完成'\n },\n pagination: {\n prev: '上一页',\n next: '下一页',\n page: (value: number) => `当前页:${value}`,\n total: (total: number) => `当前数据:${total}条`,\n size: (size: number) => `分页大小:${size}`\n },\n picker: {\n cancel: '取消',\n done: '完成',\n placeholder: '请选择'\n },\n imgCropper: {\n confirm: '完成',\n cancel: '取消'\n },\n search: {\n search: '搜索',\n cancel: '取消'\n },\n steps: {\n wait: '未开始',\n finished: '已完成',\n process: '进行中',\n failed: '失败'\n },\n tabs: {\n all: '全部'\n },\n upload: {\n error: '上传失败'\n },\n input: {\n placeholder: '请输入...'\n },\n selectPicker: {\n title: '请选择',\n placeholder: '请选择',\n select: '请选择',\n confirm: '确认',\n filterPlaceholder: '搜索'\n },\n tag: {\n placeholder: '请输入',\n add: '新增标签'\n },\n textarea: {\n placeholder: '请输入...'\n },\n tableCol: {\n indexLabel: '序号'\n }\n}\n","/*\n * @Author: weisheng\n * @Date: 2024-01-25 23:06:48\n * @LastEditTime: 2024-03-30 11:30:55\n * @LastEditors: weisheng\n * @Description:\n * @FilePath: /wot-design-uni/src/uni_modules/wot-design-uni/locale/index.ts\n * 记得注释\n */\nimport { reactive, ref } from 'vue'\nimport zhCN from './lang/zh-CN'\nimport { deepAssign } from '../components/common/util'\n\ntype Message = Record<string, any>\ntype Messages = Record<string, Message>\n\nconst lang = ref<string>('zh-CN')\nconst messages = reactive<Messages>({\n 'zh-CN': zhCN\n})\n\nexport const Locale = {\n messages(): Message {\n return messages[lang.value]\n },\n\n use(newLang: string, newMessage?: Message) {\n lang.value = newLang\n if (newMessage) {\n this.add({ [newLang]: newMessage })\n }\n },\n\n add(newMessages: Messages = {}) {\n deepAssign(messages, newMessages)\n }\n}\n\nexport const useCurrentLang = () => lang\n\nexport default Locale\n","/*\n * @Author: weisheng\n * @Date: 2024-01-25 23:06:48\n * @LastEditTime: 2024-01-26 14:00:48\n * @LastEditors: weisheng\n * @Description:\n * @FilePath: \\wot-design-uni\\src\\uni_modules\\wot-design-uni\\components\\composables\\useTranslate.ts\n * 记得注释\n */\nimport { camelCase, getPropByPath, isFunction } from '../common/util'\nimport Locale from '../../locale'\n\nexport const useTranslate = (name?: string) => {\n const prefix = name ? camelCase(name) + '.' : ''\n const translate = (key: string, ...args: unknown[]) => {\n const currentMessages = Locale.messages()\n const message = getPropByPath(currentMessages, prefix + key)\n return isFunction(message) ? message(...args) : message\n }\n\n return { translate }\n}\n","import type { ComponentPublicInstance, ExtractPropTypes, PropType } from 'vue'\nimport { baseProps, makeArrayProp, makeBooleanProp, makeNumberProp, makeStringProp } from '../common/props'\nimport type { ColumnItem, PickerViewColumnChange } from '../wd-picker-view/types'\nimport type { FormItemRule } from '../wd-form/types'\n\nexport const pickerProps = {\n ...baseProps,\n /**\n * label 外部自定义样式\n */\n customLabelClass: makeStringProp(''),\n /**\n * value 外部自定义样式\n */\n customValueClass: makeStringProp(''),\n /**\n * pickerView 外部自定义样式\n */\n customViewClass: makeStringProp(''),\n /**\n * 选择器左侧文案\n */\n label: String,\n /**\n * 选择器占位符\n */\n placeholder: String,\n /**\n * 是否禁用\n */\n disabled: makeBooleanProp(false),\n /**\n * 是否只读\n */\n readonly: makeBooleanProp(false),\n /**\n * 加载中\n */\n loading: makeBooleanProp(false),\n /**\n * 加载中颜色\n */\n loadingColor: makeStringProp('#4D80F0'),\n /* popup */\n /**\n * 弹出层标题\n */\n title: String,\n /**\n * 取消按钮文案\n */\n cancelButtonText: String,\n /**\n * 确认按钮文案\n */\n confirmButtonText: String,\n /**\n * 是否必填\n */\n required: makeBooleanProp(false),\n /**\n * 尺寸\n */\n size: String,\n /**\n * 标签宽度\n */\n labelWidth: String,\n /**\n * 使用默认插槽\n */\n useDefaultSlot: makeBooleanProp(false),\n /**\n * 使用标签插槽\n */\n useLabelSlot: makeBooleanProp(false),\n /**\n * 错误状态\n */\n error: makeBooleanProp(false),\n /**\n * 右对齐\n */\n alignRight: makeBooleanProp(false),\n /**\n * 确定前校验函数,接收 (value, resolve, picker) 参数,通过 resolve 继续执行 pickerresolve 接收1个boolean参数\n */\n beforeConfirm: Function as PropType<PickerBeforeConfirm>,\n /**\n * 点击蒙层关闭\n */\n closeOnClickModal: makeBooleanProp(true),\n /**\n * 底部安全区域内\n */\n safeAreaInsetBottom: makeBooleanProp(true),\n /**\n * 文本溢出显示省略号\n */\n ellipsis: makeBooleanProp(false),\n /**\n * 选项总高度\n */\n columnsHeight: makeNumberProp(217),\n /**\n * 选项值对应的键名\n */\n valueKey: makeStringProp('value'),\n /**\n * 选项文本对应的键名\n */\n labelKey: makeStringProp('label'),\n /**\n * 选中项,如果为多列选择器,则其类型应为数组\n */\n modelValue: {\n type: [String, Number, Array] as PropType<string | number | Array<string> | Array<number>>,\n default: ''\n },\n /**\n * 选择器数据,可以为字符串数组,也可以为对象数组,如果为二维数组,则为多列选择器\n */\n columns: {\n type: Array as PropType<Array<string | number | ColumnItem | Array<string | number | ColumnItem>>>,\n default: () => []\n },\n /**\n * 接收 pickerView 实例、选中项、当前修改列的下标、resolve 作为入参,根据选中项和列下标进行判断,通过 pickerView 实例暴露出来的 setColumnData 方法修改其他列的数据源。\n */\n columnChange: Function as PropType<PickerViewColumnChange>,\n /**\n * 自定义展示文案的格式化函数,返回一个字符串\n */\n displayFormat: Function as PropType<PickerDisplayFormat>,\n /**\n * 自定义层级\n */\n zIndex: makeNumberProp(15),\n /**\n * 表单域 model 字段名,在使用表单校验功能的情况下,该属性是必填的\n */\n prop: String,\n /**\n * 表单验证规则结合wd-form组件使用\n */\n rules: makeArrayProp<FormItemRule>(),\n /**\n * 是否在手指松开时立即触发 change 事件。若不开启则会在滚动动画结束后触发 change 事件1.2.25版本起提供,仅微信小程序和支付宝小程序支持。\n */\n immediateChange: makeBooleanProp(false)\n}\n\nexport type PickerProps = ExtractPropTypes<typeof pickerProps>\n\nexport type PickerDisplayFormat = (item: ColumnItem | ColumnItem[], vl: { valueKey: string; labelKey: string }) => string\n\nexport type PickerBeforeConfirm = (\n value: string | number | boolean | string[] | number[] | boolean[],\n resolve: (isPass: boolean) => void,\n picker: any\n) => void\n\nexport type PickerExpose = {\n // 打开picker弹框\n open: () => void\n // 关闭picker弹框\n close: () => void\n /**\n * 设置加载状态\n * @param loading 加载状态\n */\n setLoading: (loading: boolean) => void\n}\n\nexport type PickerInstance = ComponentPublicInstance<PickerExpose, PickerProps>\n","/*\n * @Author: weisheng\n * @Date: 2024-03-15 20:40:34\n * @LastEditTime: 2024-03-18 14:58:47\n * @LastEditors: weisheng\n * @Description:\n * @FilePath: \\wot-design-uni\\src\\uni_modules\\wot-design-uni\\components\\wd-input-number\\types.ts\n * 记得注释\n */\nimport { baseProps, makeBooleanProp, makeNumberProp, makeNumericProp, makeRequiredProp, makeStringProp, numericProp } from '../common/props'\n\nexport const inputNumberProps = {\n ...baseProps,\n /**\n * 绑定值\n */\n modelValue: makeRequiredProp(numericProp),\n /**\n * 最小值\n */\n min: makeNumberProp(1),\n /**\n * 最大值\n */\n max: makeNumberProp(Number.MAX_SAFE_INTEGER),\n /**\n * 步进值\n */\n step: makeNumberProp(1),\n /**\n * 是否严格按照步进值递增或递减\n */\n stepStrictly: makeBooleanProp(false),\n /**\n * 数值精度\n */\n precision: makeNumberProp(0),\n /**\n * 是否禁用\n */\n disabled: makeBooleanProp(false),\n /**\n * 是否禁用输入框\n */\n disableInput: makeBooleanProp(false),\n /**\n * 是否禁用减号按钮\n */\n disableMinus: makeBooleanProp(false),\n /**\n * 是否禁用加号按钮\n */\n disablePlus: makeBooleanProp(false),\n /**\n * 是否不显示输入框\n */\n withoutInput: makeBooleanProp(false),\n /**\n * 输入框宽度\n */\n inputWidth: makeNumericProp(36),\n /**\n * 是否允许为空\n */\n allowNull: makeBooleanProp(false),\n /**\n * 输入框占位符\n */\n placeholder: makeStringProp('')\n}\n","import type { PropType } from 'vue'\nimport { baseProps, makeStringProp } from '../common/props'\n\nexport type LoadMoreState = 'loading' | 'error' | 'finished'\n\nexport const loadmoreProps = {\n ...baseProps,\n /**\n * 加载状态,可选值:'loading' | 'error' | 'finished'\n */\n state: String as PropType<LoadMoreState>,\n /**\n * 加载提示文案\n */\n loadingText: String,\n /**\n * 全部加载完的提示文案\n */\n finishedText: String,\n /**\n * 加载失败的提示文案\n */\n errorText: makeStringProp('加载失败,点击重试')\n}\n","import e from\"@/pages.json\";\"undefined\"!=typeof globalThis?globalThis:\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self&&self;function t(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,\"default\")?e.default:e}function n(e,t,n){return e(n={path:t,exports:{},require:function(e,t){return function(){throw new Error(\"Dynamic requires are not currently supported by @rollup/plugin-commonjs\")}(null==t&&n.path)}},n.exports),n.exports}var s=n((function(e,t){var n;e.exports=(n=n||function(e,t){var n=Object.create||function(){function e(){}return function(t){var n;return e.prototype=t,n=new e,e.prototype=null,n}}(),s={},r=s.lib={},i=r.Base={extend:function(e){var t=n(this);return e&&t.mixIn(e),t.hasOwnProperty(\"init\")&&this.init!==t.init||(t.init=function(){t.$super.init.apply(this,arguments)}),t.init.prototype=t,t.$super=this,t},create:function(){var e=this.extend();return e.init.apply(e,arguments),e},init:function(){},mixIn:function(e){for(var t in e)e.hasOwnProperty(t)&&(this[t]=e[t]);e.hasOwnProperty(\"toString\")&&(this.toString=e.toString)},clone:function(){return this.init.prototype.extend(this)}},o=r.WordArray=i.extend({init:function(e,n){e=this.words=e||[],this.sigBytes=n!=t?n:4*e.length},toString:function(e){return(e||c).stringify(this)},concat:function(e){var t=this.words,n=e.words,s=this.sigBytes,r=e.sigBytes;if(this.clamp(),s%4)for(var i=0;i<r;i++){var o=n[i>>>2]>>>24-i%4*8&255;t[s+i>>>2]|=o<<24-(s+i)%4*8}else for(i=0;i<r;i+=4)t[s+i>>>2]=n[i>>>2];return this.sigBytes+=r,this},clamp:function(){var t=this.words,n=this.sigBytes;t[n>>>2]&=4294967295<<32-n%4*8,t.length=e.ceil(n/4)},clone:function(){var e=i.clone.call(this);return e.words=this.words.slice(0),e},random:function(t){for(var n,s=[],r=function(t){t=t;var n=987654321,s=4294967295;return function(){var r=((n=36969*(65535&n)+(n>>16)&s)<<16)+(t=18e3*(65535&t)+(t>>16)&s)&s;return r/=4294967296,(r+=.5)*(e.random()>.5?1:-1)}},i=0;i<t;i+=4){var a=r(4294967296*(n||e.random()));n=987654071*a(),s.push(4294967296*a()|0)}return new o.init(s,t)}}),a=s.enc={},c=a.Hex={stringify:function(e){for(var t=e.words,n=e.sigBytes,s=[],r=0;r<n;r++){var i=t[r>>>2]>>>24-r%4*8&255;s.push((i>>>4).toString(16)),s.push((15&i).toString(16))}return s.join(\"\")},parse:function(e){for(var t=e.length,n=[],s=0;s<t;s+=2)n[s>>>3]|=parseInt(e.substr(s,2),16)<<24-s%8*4;return new o.init(n,t/2)}},u=a.Latin1={stringify:function(e){for(var t=e.words,n=e.sigBytes,s=[],r=0;r<n;r++){var i=t[r>>>2]>>>24-r%4*8&255;s.push(String.fromCharCode(i))}return s.join(\"\")},parse:function(e){for(var t=e.length,n=[],s=0;s<t;s++)n[s>>>2]|=(255&e.charCodeAt(s))<<24-s%4*8;return new o.init(n,t)}},h=a.Utf8={stringify:function(e){try{return decodeURIComponent(escape(u.stringify(e)))}catch(e){throw new Error(\"Malformed UTF-8 data\")}},parse:function(e){return u.parse(unescape(encodeURIComponent(e)))}},l=r.BufferedBlockAlgorithm=i.extend({reset:function(){this._data=new o.init,this._nDataBytes=0},_append:function(e){\"string\"==typeof e&&(e=h.parse(e)),this._data.concat(e),this._nDataBytes+=e.sigBytes},_process:function(t){var n=this._data,s=n.words,r=n.sigBytes,i=this.blockSize,a=r/(4*i),c=(a=t?e.ceil(a):e.max((0|a)-this._minBufferSize,0))*i,u=e.min(4*c,r);if(c){for(var h=0;h<c;h+=i)this._doProcessBlock(s,h);var l=s.splice(0,c);n.sigBytes-=u}return new o.init(l,u)},clone:function(){var e=i.clone.call(this);return e._data=this._data.clone(),e},_minBufferSize:0});r.Hasher=l.extend({cfg:i.extend(),init:function(e){this.cfg=this.cfg.extend(e),this.reset()},reset:function(){l.reset.call(this),this._doReset()},update:function(e){return this._append(e),this._process(),this},finalize:function(e){return e&&this._append(e),this._doFinalize()},blockSize:16,_createHelper:function(e){return function(t,n){return new e.init(n).finalize(t)}},_createHmacHelper:function(e){return function(t,n){return new d.HMAC.init(e,n).finalize(t)}}});var d=s.algo={};return s}(Math),n)})),r=s,i=(n((function(e,t){var n;e.exports=(n=r,function(e){var t=n,s=t.lib,r=s.WordArray,i=s.Hasher,o=t.algo,a=[];!function(){for(var t=0;t<64;t++)a[t]=4294967296*e.abs(e.sin(t+1))|0}();var c=o.MD5=i.extend({_doReset:function(){this._hash=new r.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(e,t){for(var n=0;n<16;n++){var s=t+n,r=e[s];e[s]=16711935&(r<<8|r>>>24)|4278255360&(r<<24|r>>>8)}var i=this._hash.words,o=e[t+0],c=e[t+1],p=e[t+2],f=e[t+3],g=e[t+4],m=e[t+5],y=e[t+6],_=e[t+7],w=e[t+8],v=e[t+9],I=e[t+10],S=e[t+11],b=e[t+12],k=e[t+13],A=e[t+14],P=e[t+15],T=i[0],C=i[1],x=i[2],O=i[3];T=u(T,C,x,O,o,7,a[0]),O=u(O,T,C,x,c,12,a[1]),x=u(x,O,T,C,p,17,a[2]),C=u(C,x,O,T,f,22,a[3]),T=u(T,C,x,O,g,7,a[4]),O=u(O,T,C,x,m,12,a[5]),x=u(x,O,T,C,y,17,a[6]),C=u(C,x,O,T,_,22,a[7]),T=u(T,C,x,O,w,7,a[8]),O=u(O,T,C,x,v,12,a[9]),x=u(x,O,T,C,I,17,a[10]),C=u(C,x,O,T,S,22,a[11]),T=u(T,C,x,O,b,7,a[12]),O=u(O,T,C,x,k,12,a[13]),x=u(x,O,T,C,A,17,a[14]),T=h(T,C=u(C,x,O,T,P,22,a[15]),x,O,c,5,a[16]),O=h(O,T,C,x,y,9,a[17]),x=h(x,O,T,C,S,14,a[18]),C=h(C,x,O,T,o,20,a[19]),T=h(T,C,x,O,m,5,a[20]),O=h(O,T,C,x,I,9,a[21]),x=h(x,O,T,C,P,14,a[22]),C=h(C,x,O,T,g,20,a[23]),T=h(T,C,x,O,v,5,a[24]),O=h(O,T,C,x,A,9,a[25]),x=h(x,O,T,C,f,14,a[26]),C=h(C,x,O,T,w,20,a[27]),T=h(T,C,x,O,k,5,a[28]),O=h(O,T,C,x,p,9,a[29]),x=h(x,O,T,C,_,14,a[30]),T=l(T,C=h(C,x,O,T,b,20,a[31]),x,O,m,4,a[32]),O=l(O,T,C,x,w,11,a[33]),x=l(x,O,T,C,S,16,a[34]),C=l(C,x,O,T,A,23,a[35]),T=l(T,C,x,O,c,4,a[36]),O=l(O,T,C,x,g,11,a[37]),x=l(x,O,T,C,_,16,a[38]),C=l(C,x,O,T,I,23,a[39]),T=l(T,C,x,O,k,4,a[40]),O=l(O,T,C,x,o,11,a[41]),x=l(x,O,T,C,f,16,a[42]),C=l(C,x,O,T,y,23,a[43]),T=l(T,C,x,O,v,4,a[44]),O=l(O,T,C,x,b,11,a[45]),x=l(x,O,T,C,P,16,a[46]),T=d(T,C=l(C,x,O,T,p,23,a[47]),x,O,o,6,a[48]),O=d(O,T,C,x,_,10,a[49]),x=d(x,O,T,C,A,15,a[50]),C=d(C,x,O,T,m,21,a[51]),T=d(T,C,x,O,b,6,a[52]),O=d(O,T,C,x,f,10,a[53]),x=d(x,O,T,C,I,15,a[54]),C=d(C,x,O,T,c,21,a[55]),T=d(T,C,x,O,w,6,a[56]),O=d(O,T,C,x,P,10,a[57]),x=d(x,O,T,C,y,15,a[58]),C=d(C,x,O,T,k,21,a[59]),T=d(T,C,x,O,g,6,a[60]),O=d(O,T,C,x,S,10,a[61]),x=d(x,O,T,C,p,15,a[62]),C=d(C,x,O,T,v,21,a[63]),i[0]=i[0]+T|0,i[1]=i[1]+C|0,i[2]=i[2]+x|0,i[3]=i[3]+O|0},_doFinalize:function(){var t=this._data,n=t.words,s=8*this._nDataBytes,r=8*t.sigBytes;n[r>>>5]|=128<<24-r%32;var i=e.floor(s/4294967296),o=s;n[15+(r+64>>>9<<4)]=16711935&(i<<8|i>>>24)|4278255360&(i<<24|i>>>8),n[14+(r+64>>>9<<4)]=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8),t.sigBytes=4*(n.length+1),this._process();for(var a=this._hash,c=a.words,u=0;u<4;u++){var h=c[u];c[u]=16711935&(h<<8|h>>>24)|4278255360&(h<<24|h>>>8)}return a},clone:function(){var e=i.clone.call(this);return e._hash=this._hash.clone(),e}});function u(e,t,n,s,r,i,o){var a=e+(t&n|~t&s)+r+o;return(a<<i|a>>>32-i)+t}function h(e,t,n,s,r,i,o){var a=e+(t&s|n&~s)+r+o;return(a<<i|a>>>32-i)+t}function l(e,t,n,s,r,i,o){var a=e+(t^n^s)+r+o;return(a<<i|a>>>32-i)+t}function d(e,t,n,s,r,i,o){var a=e+(n^(t|~s))+r+o;return(a<<i|a>>>32-i)+t}t.MD5=i._createHelper(c),t.HmacMD5=i._createHmacHelper(c)}(Math),n.MD5)})),n((function(e,t){var n;e.exports=(n=r,void function(){var e=n,t=e.lib.Base,s=e.enc.Utf8;e.algo.HMAC=t.extend({init:function(e,t){e=this._hasher=new e.init,\"string\"==typeof t&&(t=s.parse(t));var n=e.blockSize,r=4*n;t.sigBytes>r&&(t=e.finalize(t)),t.clamp();for(var i=this._oKey=t.clone(),o=this._iKey=t.clone(),a=i.words,c=o.words,u=0;u<n;u++)a[u]^=1549556828,c[u]^=909522486;i.sigBytes=o.sigBytes=r,this.reset()},reset:function(){var e=this._hasher;e.reset(),e.update(this._iKey)},update:function(e){return this._hasher.update(e),this},finalize:function(e){var t=this._hasher,n=t.finalize(e);return t.reset(),t.finalize(this._oKey.clone().concat(n))}})}())})),n((function(e,t){e.exports=r.HmacMD5}))),o=n((function(e,t){e.exports=r.enc.Utf8})),a=n((function(e,t){var n;e.exports=(n=r,function(){var e=n,t=e.lib.WordArray;function s(e,n,s){for(var r=[],i=0,o=0;o<n;o++)if(o%4){var a=s[e.charCodeAt(o-1)]<<o%4*2,c=s[e.charCodeAt(o)]>>>6-o%4*2;r[i>>>2]|=(a|c)<<24-i%4*8,i++}return t.create(r,i)}e.enc.Base64={stringify:function(e){var t=e.words,n=e.sigBytes,s=this._map;e.clamp();for(var r=[],i=0;i<n;i+=3)for(var o=(t[i>>>2]>>>24-i%4*8&255)<<16|(t[i+1>>>2]>>>24-(i+1)%4*8&255)<<8|t[i+2>>>2]>>>24-(i+2)%4*8&255,a=0;a<4&&i+.75*a<n;a++)r.push(s.charAt(o>>>6*(3-a)&63));var c=s.charAt(64);if(c)for(;r.length%4;)r.push(c);return r.join(\"\")},parse:function(e){var t=e.length,n=this._map,r=this._reverseMap;if(!r){r=this._reverseMap=[];for(var i=0;i<n.length;i++)r[n.charCodeAt(i)]=i}var o=n.charAt(64);if(o){var a=e.indexOf(o);-1!==a&&(t=a)}return s(e,t,r)},_map:\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\"}}(),n.enc.Base64)}));const c=\"FUNCTION\",u=\"OBJECT\",h=\"CLIENT_DB\",l=\"pending\",d=\"fulfilled\",p=\"rejected\";function f(e){return Object.prototype.toString.call(e).slice(8,-1).toLowerCase()}function g(e){return\"object\"===f(e)}function m(e){return\"function\"==typeof e}function y(e){return function(){try{return e.apply(e,arguments)}catch(e){console.error(e)}}}const _=\"REJECTED\",w=\"NOT_PENDING\";class v{constructor({createPromise:e,retryRule:t=_}={}){this.createPromise=e,this.status=null,this.promise=null,this.retryRule=t}get needRetry(){if(!this.status)return!0;switch(this.retryRule){case _:return this.status===p;case w:return this.status!==l}}exec(){return this.needRetry?(this.status=l,this.promise=this.createPromise().then((e=>(this.status=d,Promise.resolve(e))),(e=>(this.status=p,Promise.reject(e)))),this.promise):this.promise}}function I(e){return e&&\"string\"==typeof e?JSON.parse(e):e}const S=\"development\"===process.env.NODE_ENV,b=process.env.UNI_PLATFORM,k=\"true\"===process.env.UNI_SECURE_NETWORK_ENABLE||!0===process.env.UNI_SECURE_NETWORK_ENABLE,A=I(process.env.UNI_SECURE_NETWORK_CONFIG),P=\"h5\"===b?\"web\":\"app-plus\"===b?\"app\":b,T=I(process.env.UNICLOUD_DEBUG),C=I(process.env.UNI_CLOUD_PROVIDER)||[],x=process.env.RUN_BY_HBUILDERX;let O=\"\";try{O=process.env.UNI_APP_ID||\"\"}catch(e){}let E={};function L(e,t={}){var n,s;return n=E,s=e,Object.prototype.hasOwnProperty.call(n,s)||(E[e]=t),E[e]}\"app\"===P&&(E=uni._globalUniCloudObj?uni._globalUniCloudObj:uni._globalUniCloudObj={});const R=[\"invoke\",\"success\",\"fail\",\"complete\"],U=L(\"_globalUniCloudInterceptor\");function N(e,t){U[e]||(U[e]={}),g(t)&&Object.keys(t).forEach((n=>{R.indexOf(n)>-1&&function(e,t,n){let s=U[e][t];s||(s=U[e][t]=[]),-1===s.indexOf(n)&&m(n)&&s.push(n)}(e,n,t[n])}))}function D(e,t){U[e]||(U[e]={}),g(t)?Object.keys(t).forEach((n=>{R.indexOf(n)>-1&&function(e,t,n){const s=U[e][t];if(!s)return;const r=s.indexOf(n);r>-1&&s.splice(r,1)}(e,n,t[n])})):delete U[e]}function M(e,t){return e&&0!==e.length?e.reduce(((e,n)=>e.then((()=>n(t)))),Promise.resolve()):Promise.resolve()}function q(e,t){return U[e]&&U[e][t]||[]}function F(e){N(\"callObject\",e)}const K=L(\"_globalUniCloudListener\"),j=\"response\",$=\"needLogin\",B=\"refreshToken\",W=\"clientdb\",H=\"cloudfunction\",z=\"cloudobject\";function J(e){return K[e]||(K[e]=[]),K[e]}function G(e,t){const n=J(e);n.includes(t)||n.push(t)}function V(e,t){const n=J(e),s=n.indexOf(t);-1!==s&&n.splice(s,1)}function Y(e,t){const n=J(e);for(let e=0;e<n.length;e++){(0,n[e])(t)}}let Q,X=!1;function Z(){return Q||(Q=new Promise((e=>{X&&e(),function t(){if(\"function\"==typeof getCurrentPages){const t=getCurrentPages();t&&t[0]&&(X=!0,e())}X||setTimeout((()=>{t()}),30)}()})),Q)}function ee(e){const t={};for(const n in e){const s=e[n];m(s)&&(t[n]=y(s))}return t}class te extends Error{constructor(e){super(e.message),this.errMsg=e.message||e.errMsg||\"unknown system error\",this.code=this.errCode=e.code||e.errCode||\"SYSTEM_ERROR\",this.errSubject=this.subject=e.subject||e.errSubject,this.cause=e.cause,this.requestId=e.requestId}toJson(e=0){if(!(e>=10))return e++,{errCode:this.errCode,errMsg:this.errMsg,errSubject:this.errSubject,cause:this.cause&&this.cause.toJson?this.cause.toJson(e):this.cause}}}var ne={request:e=>uni.request(e),uploadFile:e=>uni.uploadFile(e),setStorageSync:(e,t)=>uni.setStorageSync(e,t),getStorageSync:e=>uni.getStorageSync(e),removeStorageSync:e=>uni.removeStorageSync(e),clearStorageSync:()=>uni.clearStorageSync()};function se(e){return e&&se(e.__v_raw)||e}function re(){return{token:ne.getStorageSync(\"uni_id_token\")||ne.getStorageSync(\"uniIdToken\"),tokenExpired:ne.getStorageSync(\"uni_id_token_expired\")}}function ie({token:e,tokenExpired:t}={}){e&&ne.setStorageSync(\"uni_id_token\",e),t&&ne.setStorageSync(\"uni_id_token_expired\",t)}let oe,ae;function ce(){return oe||(oe=uni.getSystemInfoSync()),oe}function ue(){let e,t;try{if(uni.getLaunchOptionsSync){if(uni.getLaunchOptionsSync.toString().indexOf(\"not yet implemented\")>-1)return;const{scene:n,channel:s}=uni.getLaunchOptionsSync();e=s,t=n}}catch(e){}return{channel:e,scene:t}}function he(){const e=uni.getLocale&&uni.getLocale()||\"en\";if(ae)return{...ae,locale:e,LOCALE:e};const t=ce(),{deviceId:n,osName:s,uniPlatform:r,appId:i}=t,o=[\"pixelRatio\",\"brand\",\"model\",\"system\",\"language\",\"version\",\"platform\",\"host\",\"SDKVersion\",\"swanNativeVersion\",\"app\",\"AppPlatform\",\"fontSizeSetting\"];for(let e=0;e<o.length;e++){delete t[o[e]]}return ae={PLATFORM:r,OS:s,APPID:i,DEVICEID:n,...ue(),...t},{...ae,locale:e,LOCALE:e}}var le={sign:function(e,t){let n=\"\";return Object.keys(e).sort().forEach((function(t){e[t]&&(n=n+\"&\"+t+\"=\"+e[t])})),n=n.slice(1),i(n,t).toString()},wrappedRequest:function(e,t){return new Promise(((n,s)=>{t(Object.assign(e,{complete(e){e||(e={}),S&&\"web\"===P&&e.errMsg&&0===e.errMsg.indexOf(\"request:fail\")&&console.warn(\"发布H5需要在uniCloud后台操作绑定安全域名否则会因为跨域问题而无法访问。教程参考https://uniapp.dcloud.io/uniCloud/quickstart?id=useinh5\");const t=e.data&&e.data.header&&e.data.header[\"x-serverless-request-id\"]||e.header&&e.header[\"request-id\"];if(!e.statusCode||e.statusCode>=400){const n=e.data&&e.data.error&&e.data.error.code||\"SYS_ERR\",r=e.data&&e.data.error&&e.data.error.message||e.errMsg||\"request:fail\";return s(new te({code:n,message:r,requestId:t}))}const r=e.data;if(r.error)return s(new te({code:r.error.code,message:r.error.message,requestId:t}));r.result=r.data,r.requestId=t,delete r.data,n(r)}}))}))},toBase64:function(e){return a.stringify(o.parse(e))}};var de=class{constructor(e){[\"spaceId\",\"clientSecret\"].forEach((t=>{if(!Object.prototype.hasOwnProperty.call(e,t))throw new Error(`${t} required`)})),this.config=Object.assign({},{endpoint:0===e.spaceId.indexOf(\"mp-\")?\"https://api.next.bspapp.com\":\"https://api.bspapp.com\"},e),this.config.provider=\"aliyun\",this.config.requestUrl=this.config.endpoint+\"/client\",this.config.envType=this.config.envType||\"public\",this.config.accessTokenKey=\"access_token_\"+this.config.spaceId,this.adapter=ne,this._getAccessTokenPromiseHub=new v({createPromise:()=>this.requestAuth(this.setupRequest({method:\"serverless.auth.user.anonymousAuthorize\",params:\"{}\"},\"auth\")).then((e=>{if(!e.result||!e.result.accessToken)throw new te({code:\"AUTH_FAILED\",message:\"获取accessToken失败\"});this.setAccessToken(e.result.accessToken)})),retryRule:w})}get hasAccessToken(){return!!this.accessToken}setAccessToken(e){this.accessToken=e}requestWrapped(e){return le.wrappedRequest(e,this.adapter.request)}requestAuth(e){return this.requestWrapped(e)}request(e,t){return Promise.resolve().then((()=>this.hasAccessToken?t?this.requestWrapped(e):this.requestWrapped(e).catch((t=>new Promise(((e,n)=>{!t||\"GATEWAY_INVALID_TOKEN\"!==t.code&&\"InvalidParameter.InvalidToken\"!==t.code?n(t):e()})).then((()=>this.getAccessToken())).then((()=>{const t=this.rebuildRequest(e);return this.request(t,!0)})))):this.getAccessToken().then((()=>{const t=this.rebuildRequest(e);return this.request(t,!0)}))))}rebuildRequest(e){const t=Object.assign({},e);return t.data.token=this.accessToken,t.header[\"x-basement-token\"]=this.accessToken,t.header[\"x-serverless-sign\"]=le.sign(t.data,this.config.clientSecret),t}setupRequest(e,t){const n=Object.assign({},e,{spaceId:this.config.spaceId,timestamp:Date.now()}),s={\"Content-Type\":\"application/json\"};return\"auth\"!==t&&(n.token=this.accessToken,s[\"x-basement-token\"]=this.accessToken),s[\"x-serverless-sign\"]=le.sign(n,this.config.clientSecret),{url:this.config.requestUrl,method:\"POST\",data:n,dataType:\"json\",header:s}}getAccessToken(){return this._getAccessTokenPromiseHub.exec()}async authorize(){await this.getAccessToken()}callFunction(e){const t={method:\"serverless.function.runtime.invoke\",params:JSON.stringify({functionTarget:e.name,functionArgs:e.data||{}})};return this.request(this.setupRequest(t))}getOSSUploadOptionsFromPath(e){const t={method:\"serverless.file.resource.generateProximalSign\",params:JSON.stringify(e)};return this.request(this.setupRequest(t))}uploadFileToOSS({url:e,formData:t,name:n,filePath:s,fileType:r,onUploadProgress:i}){return new Promise(((o,a)=>{const c=this.adapter.uploadFile({url:e,formData:t,name:n,filePath:s,fileType:r,header:{\"X-OSS-server-side-encrpytion\":\"AES256\"},success(e){e&&e.statusCode<400?o(e):a(new te({code:\"UPLOAD_FAILED\",message:\"文件上传失败\"}))},fail(e){a(new te({code:e.code||\"UPLOAD_FAILED\",message:e.message||e.errMsg||\"文件上传失败\"}))}});\"function\"==typeof i&&c&&\"function\"==typeof c.onProgressUpdate&&c.onProgressUpdate((e=>{i({loaded:e.totalBytesSent,total:e.totalBytesExpectedToSend})}))}))}reportOSSUpload(e){const t={method:\"serverless.file.resource.report\",params:JSON.stringify(e)};return this.request(this.setupRequest(t))}async uploadFile({filePath:e,cloudPath:t,fileType:n=\"image\",cloudPathAsRealPath:s=!1,onUploadProgress:r,config:i}){if(\"string\"!==f(t))throw new te({code:\"INVALID_PARAM\",message:\"cloudPath必须为字符串类型\"});if(!(t=t.trim()))throw new te({code:\"INVALID_PARAM\",message:\"cloudPath不可为空\"});if(/:\\/\\//.test(t))throw new te({code:\"INVALID_PARAM\",message:\"cloudPath不合法\"});const o=i&&i.envType||this.config.envType;if(s&&(\"/\"!==t[0]&&(t=\"/\"+t),t.indexOf(\"\\\\\")>-1))throw new te({code:\"INVALID_PARAM\",message:\"使用cloudPath作为路径时cloudPath不可包含“\\\\”\"});const a=(await this.getOSSUploadOptionsFromPath({env:o,filename:s?t.split(\"/\").pop():t,fileId:s?t:void 0})).result,c=\"https://\"+a.cdnDomain+\"/\"+a.ossPath,{securityToken:u,accessKeyId:h,signature:l,host:d,ossPath:p,id:g,policy:m,ossCallbackUrl:y}=a,_={\"Cache-Control\":\"max-age=2592000\",\"Content-Disposition\":\"attachment\",OSSAccessKeyId:h,Signature:l,host:d,id:g,key:p,policy:m,success_action_status:200};if(u&&(_[\"x-oss-security-token\"]=u),y){const e=JSON.stringify({callbackUrl:y,callbackBody:JSON.stringify({fileId:g,spaceId:this.config.spaceId}),callbackBodyType:\"application/json\"});_.callback=le.toBase64(e)}const w={url:\"https://\"+a.host,formData:_,fileName:\"file\",name:\"file\",filePath:e,fileType:n};if(await this.uploadFileToOSS(Object.assign({},w,{onUploadProgress:r})),y)return{success:!0,filePath:e,fileID:c};if((await this.reportOSSUpload({id:g})).success)return{success:!0,filePath:e,fileID:c};throw new te({code:\"UPLOAD_FAILED\",message:\"文件上传失败\"})}getTempFileURL({fileList:e}={}){return new Promise(((t,n)=>{Array.isArray(e)&&0!==e.length||n(new te({code:\"INVALID_PARAM\",message:\"fileList的元素必须是非空的字符串\"})),t({fileList:e.map((e=>({fileID:e,tempFileURL:e})))})}))}async getFileInfo({fileList:e}={}){if(!Array.isArray(e)||0===e.length)throw new te({code:\"INVALID_PARAM\",message:\"fileList的元素必须是非空的字符串\"});const t={method:\"serverless.file.resource.info\",params:JSON.stringify({id:e.map((e=>e.split(\"?\")[0])).join(\",\")})};return{fileList:(await this.request(this.setupRequest(t))).result}}};var pe={init(e){const t=new de(e),n={signInAnonymously:function(){return t.authorize()},getLoginState:function(){return Promise.resolve(!1)}};return t.auth=function(){return n},t.customAuth=t.auth,t}};const fe=\"undefined\"!=typeof location&&\"http:\"===location.protocol?\"http:\":\"https:\";var ge;!function(e){e.local=\"local\",e.none=\"none\",e.session=\"session\"}(ge||(ge={}));var me=function(){},ye=n((function(e,t){var n;e.exports=(n=r,function(e){var t=n,s=t.lib,r=s.WordArray,i=s.Hasher,o=t.algo,a=[],c=[];!function(){function t(t){for(var n=e.sqrt(t),s=2;s<=n;s++)if(!(t%s))return!1;return!0}function n(e){return 4294967296*(e-(0|e))|0}for(var s=2,r=0;r<64;)t(s)&&(r<8&&(a[r]=n(e.pow(s,.5))),c[r]=n(e.pow(s,1/3)),r++),s++}();var u=[],h=o.SHA256=i.extend({_doReset:function(){this._hash=new r.init(a.slice(0))},_doProcessBlock:function(e,t){for(var n=this._hash.words,s=n[0],r=n[1],i=n[2],o=n[3],a=n[4],h=n[5],l=n[6],d=n[7],p=0;p<64;p++){if(p<16)u[p]=0|e[t+p];else{var f=u[p-15],g=(f<<25|f>>>7)^(f<<14|f>>>18)^f>>>3,m=u[p-2],y=(m<<15|m>>>17)^(m<<13|m>>>19)^m>>>10;u[p]=g+u[p-7]+y+u[p-16]}var _=s&r^s&i^r&i,w=(s<<30|s>>>2)^(s<<19|s>>>13)^(s<<10|s>>>22),v=d+((a<<26|a>>>6)^(a<<21|a>>>11)^(a<<7|a>>>25))+(a&h^~a&l)+c[p]+u[p];d=l,l=h,h=a,a=o+v|0,o=i,i=r,r=s,s=v+(w+_)|0}n[0]=n[0]+s|0,n[1]=n[1]+r|0,n[2]=n[2]+i|0,n[3]=n[3]+o|0,n[4]=n[4]+a|0,n[5]=n[5]+h|0,n[6]=n[6]+l|0,n[7]=n[7]+d|0},_doFinalize:function(){var t=this._data,n=t.words,s=8*this._nDataBytes,r=8*t.sigBytes;return n[r>>>5]|=128<<24-r%32,n[14+(r+64>>>9<<4)]=e.floor(s/4294967296),n[15+(r+64>>>9<<4)]=s,t.sigBytes=4*n.length,this._process(),this._hash},clone:function(){var e=i.clone.call(this);return e._hash=this._hash.clone(),e}});t.SHA256=i._createHelper(h),t.HmacSHA256=i._createHmacHelper(h)}(Math),n.SHA256)})),_e=ye,we=n((function(e,t){e.exports=r.HmacSHA256}));const ve=()=>{let e;if(!Promise){e=()=>{},e.promise={};const t=()=>{throw new te({message:'Your Node runtime does support ES6 Promises. Set \"global.Promise\" to your preferred implementation of promises.'})};return Object.defineProperty(e.promise,\"then\",{get:t}),Object.defineProperty(e.promise,\"catch\",{get:t}),e}const t=new Promise(((t,n)=>{e=(e,s)=>e?n(e):t(s)}));return e.promise=t,e};function Ie(e){return void 0===e}function Se(e){return\"[object Null]\"===Object.prototype.toString.call(e)}var be;function ke(e){const t=(n=e,\"[object Array]\"===Object.prototype.toString.call(n)?e:[e]);var n;for(const e of t){const{isMatch:t,genAdapter:n,runtime:s}=e;if(t())return{adapter:n(),runtime:s}}}!function(e){e.WEB=\"web\",e.WX_MP=\"wx_mp\"}(be||(be={}));const Ae={adapter:null,runtime:void 0},Pe=[\"anonymousUuidKey\"];class Te extends me{constructor(){super(),Ae.adapter.root.tcbObject||(Ae.adapter.root.tcbObject={})}setItem(e,t){Ae.adapter.root.tcbObject[e]=t}getItem(e){return Ae.adapter.root.tcbObject[e]}removeItem(e){delete Ae.adapter.root.tcbObject[e]}clear(){delete Ae.adapter.root.tcbObject}}function Ce(e,t){switch(e){case\"local\":return t.localStorage||new Te;case\"none\":return new Te;default:return t.sessionStorage||new Te}}class xe{constructor(e){if(!this._storage){this._persistence=Ae.adapter.primaryStorage||e.persistence,this._storage=Ce(this._persistence,Ae.adapter);const t=`access_token_${e.env}`,n=`access_token_expire_${e.env}`,s=`refresh_token_${e.env}`,r=`anonymous_uuid_${e.env}`,i=`login_type_${e.env}`,o=`user_info_${e.env}`;this.keys={accessTokenKey:t,accessTokenExpireKey:n,refreshTokenKey:s,anonymousUuidKey:r,loginTypeKey:i,userInfoKey:o}}}updatePersistence(e){if(e===this._persistence)return;const t=\"local\"===this._persistence;this._persistence=e;const n=Ce(e,Ae.adapter);for(const e in this.keys){const s=this.keys[e];if(t&&Pe.includes(e))continue;const r=this._storage.getItem(s);Ie(r)||Se(r)||(n.setItem(s,r),this._storage.removeItem(s))}this._storage=n}setStore(e,t,n){if(!this._storage)return;const s={version:n||\"localCachev1\",content:t},r=JSON.stringify(s);try{this._storage.setItem(e,r)}catch(e){throw e}}getStore(e,t){try{if(!this._storage)return}catch(e){return\"\"}t=t||\"localCachev1\";const n=this._storage.getItem(e);if(!n)return\"\";if(n.indexOf(t)>=0){return JSON.parse(n).content}return\"\"}removeStore(e){this._storage.removeItem(e)}}const Oe={},Ee={};function Le(e){return Oe[e]}class Re{constructor(e,t){this.data=t||null,this.name=e}}class Ue extends Re{constructor(e,t){super(\"error\",{error:e,data:t}),this.error=e}}const Ne=new class{constructor(){this._listeners={}}on(e,t){return function(e,t,n){n[e]=n[e]||[],n[e].push(t)}(e,t,this._listeners),this}off(e,t){return function(e,t,n){if(n&&n[e]){const s=n[e].indexOf(t);-1!==s&&n[e].splice(s,1)}}(e,t,this._listeners),this}fire(e,t){if(e instanceof Ue)return console.error(e.error),this;const n=\"string\"==typeof e?new Re(e,t||{}):e;const s=n.name;if(this._listens(s)){n.target=this;const e=this._listeners[s]?[...this._listeners[s]]:[];for(const t of e)t.call(this,n)}return this}_listens(e){return this._listeners[e]&&this._listeners[e].length>0}};function De(e,t){Ne.on(e,t)}function Me(e,t={}){Ne.fire(e,t)}function qe(e,t){Ne.off(e,t)}const Fe=\"loginStateChanged\",Ke=\"loginStateExpire\",je=\"loginTypeChanged\",$e=\"anonymousConverted\",Be=\"refreshAccessToken\";var We;!function(e){e.ANONYMOUS=\"ANONYMOUS\",e.WECHAT=\"WECHAT\",e.WECHAT_PUBLIC=\"WECHAT-PUBLIC\",e.WECHAT_OPEN=\"WECHAT-OPEN\",e.CUSTOM=\"CUSTOM\",e.EMAIL=\"EMAIL\",e.USERNAME=\"USERNAME\",e.NULL=\"NULL\"}(We||(We={}));const He=[\"auth.getJwt\",\"auth.logout\",\"auth.signInWithTicket\",\"auth.signInAnonymously\",\"auth.signIn\",\"auth.fetchAccessTokenWithRefreshToken\",\"auth.signUpWithEmailAndPassword\",\"auth.activateEndUserMail\",\"auth.sendPasswordResetEmail\",\"auth.resetPasswordWithToken\",\"auth.isUsernameRegistered\"],ze={\"X-SDK-Version\":\"1.3.5\"};function Je(e,t,n){const s=e[t];e[t]=function(t){const r={},i={};n.forEach((n=>{const{data:s,headers:o}=n.call(e,t);Object.assign(r,s),Object.assign(i,o)}));const o=t.data;return o&&(()=>{var e;if(e=o,\"[object FormData]\"!==Object.prototype.toString.call(e))t.data={...o,...r};else for(const e in r)o.append(e,r[e])})(),t.headers={...t.headers||{},...i},s.call(e,t)}}function Ge(){const e=Math.random().toString(16).slice(2);return{data:{seqId:e},headers:{...ze,\"x-seqid\":e}}}class Ve{constructor(e={}){var t;this.config=e,this._reqClass=new Ae.adapter.reqClass({timeout:this.config.timeout,timeoutMsg:`请求在${this.config.timeout/1e3}s内未完成已中断`,restrictedMethods:[\"post\"]}),this._cache=Le(this.config.env),this._localCache=(t=this.config.env,Ee[t]),Je(this._reqClass,\"post\",[Ge]),Je(this._reqClass,\"upload\",[Ge]),Je(this._reqClass,\"download\",[Ge])}async post(e){return await this._reqClass.post(e)}async upload(e){return await this._reqClass.upload(e)}async download(e){return await this._reqClass.download(e)}async refreshAccessToken(){let e,t;this._refreshAccessTokenPromise||(this._refreshAccessTokenPromise=this._refreshAccessToken());try{e=await this._refreshAccessTokenPromise}catch(e){t=e}if(this._refreshAccessTokenPromise=null,this._shouldRefreshAccessTokenHook=null,t)throw t;return e}async _refreshAccessToken(){const{accessTokenKey:e,accessTokenExpireKey:t,refreshTokenKey:n,loginTypeKey:s,anonymousUuidKey:r}=this._cache.keys;this._cache.removeStore(e),this._cache.removeStore(t);let i=this._cache.getStore(n);if(!i)throw new te({message:\"未登录CloudBase\"});const o={refresh_token:i},a=await this.request(\"auth.fetchAccessTokenWithRefreshToken\",o);if(a.data.code){const{code:e}=a.data;if(\"SIGN_PARAM_INVALID\"===e||\"REFRESH_TOKEN_EXPIRED\"===e||\"INVALID_REFRESH_TOKEN\"===e){if(this._cache.getStore(s)===We.ANONYMOUS&&\"INVALID_REFRESH_TOKEN\"===e){const e=this._cache.getStore(r),t=this._cache.getStore(n),s=await this.send(\"auth.signInAnonymously\",{anonymous_uuid:e,refresh_token:t});return this.setRefreshToken(s.refresh_token),this._refreshAccessToken()}Me(Ke),this._cache.removeStore(n)}throw new te({code:a.data.code,message:`刷新access token失败${a.data.code}`})}if(a.data.access_token)return Me(Be),this._cache.setStore(e,a.data.access_token),this._cache.setStore(t,a.data.access_token_expire+Date.now()),{accessToken:a.data.access_token,accessTokenExpire:a.data.access_token_expire};a.data.refresh_token&&(this._cache.removeStore(n),this._cache.setStore(n,a.data.refresh_token),this._refreshAccessToken())}async getAccessToken(){const{accessTokenKey:e,accessTokenExpireKey:t,refreshTokenKey:n}=this._cache.keys;if(!this._cache.getStore(n))throw new te({message:\"refresh token不存在登录状态异常\"});let s=this._cache.getStore(e),r=this._cache.getStore(t),i=!0;return this._shouldRefreshAccessTokenHook&&!await this._shouldRefreshAccessTokenHook(s,r)&&(i=!1),(!s||!r||r<Date.now())&&i?this.refreshAccessToken():{accessToken:s,accessTokenExpire:r}}async request(e,t,n){const s=`x-tcb-trace_${this.config.env}`;let r=\"application/x-www-form-urlencoded\";const i={action:e,env:this.config.env,dataVersion:\"2019-08-16\",...t};if(-1===He.indexOf(e)){const{refreshTokenKey:e}=this._cache.keys;this._cache.getStore(e)&&(i.access_token=(await this.getAccessToken()).accessToken)}let o;if(\"storage.uploadFile\"===e){o=new FormData;for(let e in o)o.hasOwnProperty(e)&&void 0!==o[e]&&o.append(e,i[e]);r=\"multipart/form-data\"}else{r=\"application/json\",o={};for(let e in i)void 0!==i[e]&&(o[e]=i[e])}let a={headers:{\"content-type\":r}};n&&n.onUploadProgress&&(a.onUploadProgress=n.onUploadProgress);const c=this._localCache.getStore(s);c&&(a.headers[\"X-TCB-Trace\"]=c);const{parse:u,inQuery:h,search:l}=t;let d={env:this.config.env};u&&(d.parse=!0),h&&(d={...h,...d});let p=function(e,t,n={}){const s=/\\?/.test(t);let r=\"\";for(let e in n)\"\"===r?!s&&(t+=\"?\"):r+=\"&\",r+=`${e}=${encodeURIComponent(n[e])}`;return/^http(s)?\\:\\/\\//.test(t+=r)?t:`${e}${t}`}(fe,\"//tcb-api.tencentcloudapi.com/web\",d);l&&(p+=l);const f=await this.post({url:p,data:o,...a}),g=f.header&&f.header[\"x-tcb-trace\"];if(g&&this._localCache.setStore(s,g),200!==Number(f.status)&&200!==Number(f.statusCode)||!f.data)throw new te({code:\"NETWORK_ERROR\",message:\"network request error\"});return f}async send(e,t={}){const n=await this.request(e,t,{onUploadProgress:t.onUploadProgress});if(\"ACCESS_TOKEN_EXPIRED\"===n.data.code&&-1===He.indexOf(e)){await this.refreshAccessToken();const n=await this.request(e,t,{onUploadProgress:t.onUploadProgress});if(n.data.code)throw new te({code:n.data.code,message:n.data.message});return n.data}if(n.data.code)throw new te({code:n.data.code,message:n.data.message});return n.data}setRefreshToken(e){const{accessTokenKey:t,accessTokenExpireKey:n,refreshTokenKey:s}=this._cache.keys;this._cache.removeStore(t),this._cache.removeStore(n),this._cache.setStore(s,e)}}const Ye={};function Qe(e){return Ye[e]}class Xe{constructor(e){this.config=e,this._cache=Le(e.env),this._request=Qe(e.env)}setRefreshToken(e){const{accessTokenKey:t,accessTokenExpireKey:n,refreshTokenKey:s}=this._cache.keys;this._cache.removeStore(t),this._cache.removeStore(n),this._cache.setStore(s,e)}setAccessToken(e,t){const{accessTokenKey:n,accessTokenExpireKey:s}=this._cache.keys;this._cache.setStore(n,e),this._cache.setStore(s,t)}async refreshUserInfo(){const{data:e}=await this._request.send(\"auth.getUserInfo\",{});return this.setLocalUserInfo(e),e}setLocalUserInfo(e){const{userInfoKey:t}=this._cache.keys;this._cache.setStore(t,e)}}class Ze{constructor(e){if(!e)throw new te({code:\"PARAM_ERROR\",message:\"envId is not defined\"});this._envId=e,this._cache=Le(this._envId),this._request=Qe(this._envId),this.setUserInfo()}linkWithTicket(e){if(\"string\"!=typeof e)throw new te({code:\"PARAM_ERROR\",message:\"ticket must be string\"});return this._request.send(\"auth.linkWithTicket\",{ticket:e})}linkWithRedirect(e){e.signInWithRedirect()}updatePassword(e,t){return this._request.send(\"auth.updatePassword\",{oldPassword:t,newPassword:e})}updateEmail(e){return this._request.send(\"auth.updateEmail\",{newEmail:e})}updateUsername(e){if(\"string\"!=typeof e)throw new te({code:\"PARAM_ERROR\",message:\"username must be a string\"});return this._request.send(\"auth.updateUsername\",{username:e})}async getLinkedUidList(){const{data:e}=await this._request.send(\"auth.getLinkedUidList\",{});let t=!1;const{users:n}=e;return n.forEach((e=>{e.wxOpenId&&e.wxPublicId&&(t=!0)})),{users:n,hasPrimaryUid:t}}setPrimaryUid(e){return this._request.send(\"auth.setPrimaryUid\",{uid:e})}unlink(e){return this._request.send(\"auth.unlink\",{platform:e})}async update(e){const{nickName:t,gender:n,avatarUrl:s,province:r,country:i,city:o}=e,{data:a}=await this._request.send(\"auth.updateUserInfo\",{nickName:t,gender:n,avatarUrl:s,province:r,country:i,city:o});this.setLocalUserInfo(a)}async refresh(){const{data:e}=await this._request.send(\"auth.getUserInfo\",{});return this.setLocalUserInfo(e),e}setUserInfo(){const{userInfoKey:e}=this._cache.keys,t=this._cache.getStore(e);[\"uid\",\"loginType\",\"openid\",\"wxOpenId\",\"wxPublicId\",\"unionId\",\"qqMiniOpenId\",\"email\",\"hasPassword\",\"customUserId\",\"nickName\",\"gender\",\"avatarUrl\"].forEach((e=>{this[e]=t[e]})),this.location={country:t.country,province:t.province,city:t.city}}setLocalUserInfo(e){const{userInfoKey:t}=this._cache.keys;this._cache.setStore(t,e),this.setUserInfo()}}class et{constructor(e){if(!e)throw new te({code:\"PARAM_ERROR\",message:\"envId is not defined\"});this._cache=Le(e);const{refreshTokenKey:t,accessTokenKey:n,accessTokenExpireKey:s}=this._cache.keys,r=this._cache.getStore(t),i=this._cache.getStore(n),o=this._cache.getStore(s);this.credential={refreshToken:r,accessToken:i,accessTokenExpire:o},this.user=new Ze(e)}get isAnonymousAuth(){return this.loginType===We.ANONYMOUS}get isCustomAuth(){return this.loginType===We.CUSTOM}get isWeixinAuth(){return this.loginType===We.WECHAT||this.loginType===We.WECHAT_OPEN||this.loginType===We.WECHAT_PUBLIC}get loginType(){return this._cache.getStore(this._cache.keys.loginTypeKey)}}class tt extends Xe{async signIn(){this._cache.updatePersistence(\"local\");const{anonymousUuidKey:e,refreshTokenKey:t}=this._cache.keys,n=this._cache.getStore(e)||void 0,s=this._cache.getStore(t)||void 0,r=await this._request.send(\"auth.signInAnonymously\",{anonymous_uuid:n,refresh_token:s});if(r.uuid&&r.refresh_token){this._setAnonymousUUID(r.uuid),this.setRefreshToken(r.refresh_token),await this._request.refreshAccessToken(),Me(Fe),Me(je,{env:this.config.env,loginType:We.ANONYMOUS,persistence:\"local\"});const e=new et(this.config.env);return await e.user.refresh(),e}throw new te({message:\"匿名登录失败\"})}async linkAndRetrieveDataWithTicket(e){const{anonymousUuidKey:t,refreshTokenKey:n}=this._cache.keys,s=this._cache.getStore(t),r=this._cache.getStore(n),i=await this._request.send(\"auth.linkAndRetrieveDataWithTicket\",{anonymous_uuid:s,refresh_token:r,ticket:e});if(i.refresh_token)return this._clearAnonymousUUID(),this.setRefreshToken(i.refresh_token),await this._request.refreshAccessToken(),Me($e,{env:this.config.env}),Me(je,{loginType:We.CUSTOM,persistence:\"local\"}),{credential:{refreshToken:i.refresh_token}};throw new te({message:\"匿名转化失败\"})}_setAnonymousUUID(e){const{anonymousUuidKey:t,loginTypeKey:n}=this._cache.keys;this._cache.removeStore(t),this._cache.setStore(t,e),this._cache.setStore(n,We.ANONYMOUS)}_clearAnonymousUUID(){this._cache.removeStore(this._cache.keys.anonymousUuidKey)}}class nt extends Xe{async signIn(e){if(\"string\"!=typeof e)throw new te({code:\"PARAM_ERROR\",message:\"ticket must be a string\"});const{refreshTokenKey:t}=this._cache.keys,n=await this._request.send(\"auth.signInWithTicket\",{ticket:e,refresh_token:this._cache.getStore(t)||\"\"});if(n.refresh_token)return this.setRefreshToken(n.refresh_token),await this._request.refreshAccessToken(),Me(Fe),Me(je,{env:this.config.env,loginType:We.CUSTOM,persistence:this.config.persistence}),await this.refreshUserInfo(),new et(this.config.env);throw new te({message:\"自定义登录失败\"})}}class st extends Xe{async signIn(e,t){if(\"string\"!=typeof e)throw new te({code:\"PARAM_ERROR\",message:\"email must be a string\"});const{refreshTokenKey:n}=this._cache.keys,s=await this._request.send(\"auth.signIn\",{loginType:\"EMAIL\",email:e,password:t,refresh_token:this._cache.getStore(n)||\"\"}),{refresh_token:r,access_token:i,access_token_expire:o}=s;if(r)return this.setRefreshToken(r),i&&o?this.setAccessToken(i,o):await this._request.refreshAccessToken(),await this.refreshUserInfo(),Me(Fe),Me(je,{env:this.config.env,loginType:We.EMAIL,persistence:this.config.persistence}),new et(this.config.env);throw s.code?new te({code:s.code,message:`邮箱登录失败: ${s.message}`}):new te({message:\"邮箱登录失败\"})}async activate(e){return this._request.send(\"auth.activateEndUserMail\",{token:e})}async resetPasswordWithToken(e,t){return this._request.send(\"auth.resetPasswordWithToken\",{token:e,newPassword:t})}}class rt extends Xe{async signIn(e,t){if(\"string\"!=typeof e)throw new te({code:\"PARAM_ERROR\",message:\"username must be a string\"});\"string\"!=typeof t&&(t=\"\",console.warn(\"password is empty\"));const{refreshTokenKey:n}=this._cache.keys,s=await this._request.send(\"auth.signIn\",{loginType:We.USERNAME,username:e,password:t,refresh_token:this._cache.getStore(n)||\"\"}),{refresh_token:r,access_token_expire:i,access_token:o}=s;if(r)return this.setRefreshToken(r),o&&i?this.setAccessToken(o,i):await this._request.refreshAccessToken(),await this.refreshUserInfo(),Me(Fe),Me(je,{env:this.config.env,loginType:We.USERNAME,persistence:this.config.persistence}),new et(this.config.env);throw s.code?new te({code:s.code,message:`用户名密码登录失败: ${s.message}`}):new te({message:\"用户名密码登录失败\"})}}class it{constructor(e){this.config=e,this._cache=Le(e.env),this._request=Qe(e.env),this._onAnonymousConverted=this._onAnonymousConverted.bind(this),this._onLoginTypeChanged=this._onLoginTypeChanged.bind(this),De(je,this._onLoginTypeChanged)}get currentUser(){const e=this.hasLoginState();return e&&e.user||null}get loginType(){return this._cache.getStore(this._cache.keys.loginTypeKey)}anonymousAuthProvider(){return new tt(this.config)}customAuthProvider(){return new nt(this.config)}emailAuthProvider(){return new st(this.config)}usernameAuthProvider(){return new rt(this.config)}async signInAnonymously(){return new tt(this.config).signIn()}async signInWithEmailAndPassword(e,t){return new st(this.config).signIn(e,t)}signInWithUsernameAndPassword(e,t){return new rt(this.config).signIn(e,t)}async linkAndRetrieveDataWithTicket(e){this._anonymousAuthProvider||(this._anonymousAuthProvider=new tt(this.config)),De($e,this._onAnonymousConverted);return await this._anonymousAuthProvider.linkAndRetrieveDataWithTicket(e)}async signOut(){if(this.loginType===We.ANONYMOUS)throw new te({message:\"匿名用户不支持登出操作\"});const{refreshTokenKey:e,accessTokenKey:t,accessTokenExpireKey:n}=this._cache.keys,s=this._cache.getStore(e);if(!s)return;const r=await this._request.send(\"auth.logout\",{refresh_token:s});return this._cache.removeStore(e),this._cache.removeStore(t),this._cache.removeStore(n),Me(Fe),Me(je,{env:this.config.env,loginType:We.NULL,persistence:this.config.persistence}),r}async signUpWithEmailAndPassword(e,t){return this._request.send(\"auth.signUpWithEmailAndPassword\",{email:e,password:t})}async sendPasswordResetEmail(e){return this._request.send(\"auth.sendPasswordResetEmail\",{email:e})}onLoginStateChanged(e){De(Fe,(()=>{const t=this.hasLoginState();e.call(this,t)}));const t=this.hasLoginState();e.call(this,t)}onLoginStateExpired(e){De(Ke,e.bind(this))}onAccessTokenRefreshed(e){De(Be,e.bind(this))}onAnonymousConverted(e){De($e,e.bind(this))}onLoginTypeChanged(e){De(je,(()=>{const t=this.hasLoginState();e.call(this,t)}))}async getAccessToken(){return{accessToken:(await this._request.getAccessToken()).accessToken,env:this.config.env}}hasLoginState(){const{refreshTokenKey:e}=this._cache.keys;return this._cache.getStore(e)?new et(this.config.env):null}async isUsernameRegistered(e){if(\"string\"!=typeof e)throw new te({code:\"PARAM_ERROR\",message:\"username must be a string\"});const{data:t}=await this._request.send(\"auth.isUsernameRegistered\",{username:e});return t&&t.isRegistered}getLoginState(){return Promise.resolve(this.hasLoginState())}async signInWithTicket(e){return new nt(this.config).signIn(e)}shouldRefreshAccessToken(e){this._request._shouldRefreshAccessTokenHook=e.bind(this)}getUserInfo(){return this._request.send(\"auth.getUserInfo\",{}).then((e=>e.code?e:{...e.data,requestId:e.seqId}))}getAuthHeader(){const{refreshTokenKey:e,accessTokenKey:t}=this._cache.keys,n=this._cache.getStore(e);return{\"x-cloudbase-credentials\":this._cache.getStore(t)+\"/@@/\"+n}}_onAnonymousConverted(e){const{env:t}=e.data;t===this.config.env&&this._cache.updatePersistence(this.config.persistence)}_onLoginTypeChanged(e){const{loginType:t,persistence:n,env:s}=e.data;s===this.config.env&&(this._cache.updatePersistence(n),this._cache.setStore(this._cache.keys.loginTypeKey,t))}}const ot=function(e,t){t=t||ve();const n=Qe(this.config.env),{cloudPath:s,filePath:r,onUploadProgress:i,fileType:o=\"image\"}=e;return n.send(\"storage.getUploadMetadata\",{path:s}).then((e=>{const{data:{url:a,authorization:c,token:u,fileId:h,cosFileId:l},requestId:d}=e,p={key:s,signature:c,\"x-cos-meta-fileid\":l,success_action_status:\"201\",\"x-cos-security-token\":u};n.upload({url:a,data:p,file:r,name:s,fileType:o,onUploadProgress:i}).then((e=>{201===e.statusCode?t(null,{fileID:h,requestId:d}):t(new te({code:\"STORAGE_REQUEST_FAIL\",message:`STORAGE_REQUEST_FAIL: ${e.data}`}))})).catch((e=>{t(e)}))})).catch((e=>{t(e)})),t.promise},at=function(e,t){t=t||ve();const n=Qe(this.config.env),{cloudPath:s}=e;return n.send(\"storage.getUploadMetadata\",{path:s}).then((e=>{t(null,e)})).catch((e=>{t(e)})),t.promise},ct=function({fileList:e},t){if(t=t||ve(),!e||!Array.isArray(e))return{code:\"INVALID_PARAM\",message:\"fileList必须是非空的数组\"};for(let t of e)if(!t||\"string\"!=typeof t)return{code:\"INVALID_PARAM\",message:\"fileList的元素必须是非空的字符串\"};const n={fileid_list:e};return Qe(this.config.env).send(\"storage.batchDeleteFile\",n).then((e=>{e.code?t(null,e):t(null,{fileList:e.data.delete_list,requestId:e.requestId})})).catch((e=>{t(e)})),t.promise},ut=function({fileList:e},t){t=t||ve(),e&&Array.isArray(e)||t(null,{code:\"INVALID_PARAM\",message:\"fileList必须是非空的数组\"});let n=[];for(let s of e)\"object\"==typeof s?(s.hasOwnProperty(\"fileID\")&&s.hasOwnProperty(\"maxAge\")||t(null,{code:\"INVALID_PARAM\",message:\"fileList的元素必须是包含fileID和maxAge的对象\"}),n.push({fileid:s.fileID,max_age:s.maxAge})):\"string\"==typeof s?n.push({fileid:s}):t(null,{code:\"INVALID_PARAM\",message:\"fileList的元素必须是字符串\"});const s={file_list:n};return Qe(this.config.env).send(\"storage.batchGetDownloadUrl\",s).then((e=>{e.code?t(null,e):t(null,{fileList:e.data.download_list,requestId:e.requestId})})).catch((e=>{t(e)})),t.promise},ht=async function({fileID:e},t){const n=(await ut.call(this,{fileList:[{fileID:e,maxAge:600}]})).fileList[0];if(\"SUCCESS\"!==n.code)return t?t(n):new Promise((e=>{e(n)}));const s=Qe(this.config.env);let r=n.download_url;if(r=encodeURI(r),!t)return s.download({url:r});t(await s.download({url:r}))},lt=function({name:e,data:t,query:n,parse:s,search:r},i){const o=i||ve();let a;try{a=t?JSON.stringify(t):\"\"}catch(e){return Promise.reject(e)}if(!e)return Promise.reject(new te({code:\"PARAM_ERROR\",message:\"函数名不能为空\"}));const c={inQuery:n,parse:s,search:r,function_name:e,request_data:a};return Qe(this.config.env).send(\"functions.invokeFunction\",c).then((e=>{if(e.code)o(null,e);else{let t=e.data.response_data;if(s)o(null,{result:t,requestId:e.requestId});else try{t=JSON.parse(e.data.response_data),o(null,{result:t,requestId:e.requestId})}catch(e){o(new te({message:\"response data must be json\"}))}}return o.promise})).catch((e=>{o(e)})),o.promise},dt={timeout:15e3,persistence:\"session\"},pt={};class ft{constructor(e){this.config=e||this.config,this.authObj=void 0}init(e){switch(Ae.adapter||(this.requestClient=new Ae.adapter.reqClass({timeout:e.timeout||5e3,timeoutMsg:`请求在${(e.timeout||5e3)/1e3}s内未完成已中断`})),this.config={...dt,...e},!0){case this.config.timeout>6e5:console.warn(\"timeout大于可配置上限[10分钟],已重置为上限数值\"),this.config.timeout=6e5;break;case this.config.timeout<100:console.warn(\"timeout小于可配置下限[100ms],已重置为下限数值\"),this.config.timeout=100}return new ft(this.config)}auth({persistence:e}={}){if(this.authObj)return this.authObj;const t=e||Ae.adapter.primaryStorage||dt.persistence;var n;return t!==this.config.persistence&&(this.config.persistence=t),function(e){const{env:t}=e;Oe[t]=new xe(e),Ee[t]=new xe({...e,persistence:\"local\"})}(this.config),n=this.config,Ye[n.env]=new Ve(n),this.authObj=new it(this.config),this.authObj}on(e,t){return De.apply(this,[e,t])}off(e,t){return qe.apply(this,[e,t])}callFunction(e,t){return lt.apply(this,[e,t])}deleteFile(e,t){return ct.apply(this,[e,t])}getTempFileURL(e,t){return ut.apply(this,[e,t])}downloadFile(e,t){return ht.apply(this,[e,t])}uploadFile(e,t){return ot.apply(this,[e,t])}getUploadMetadata(e,t){return at.apply(this,[e,t])}registerExtension(e){pt[e.name]=e}async invokeExtension(e,t){const n=pt[e];if(!n)throw new te({message:`扩展${e} 必须先注册`});return await n.invoke(t,this)}useAdapters(e){const{adapter:t,runtime:n}=ke(e)||{};t&&(Ae.adapter=t),n&&(Ae.runtime=n)}}var gt=new ft;function mt(e,t,n){void 0===n&&(n={});var s=/\\?/.test(t),r=\"\";for(var i in n)\"\"===r?!s&&(t+=\"?\"):r+=\"&\",r+=i+\"=\"+encodeURIComponent(n[i]);return/^http(s)?:\\/\\//.test(t+=r)?t:\"\"+e+t}class yt{post(e){const{url:t,data:n,headers:s}=e;return new Promise(((e,r)=>{ne.request({url:mt(\"https:\",t),data:n,method:\"POST\",header:s,success(t){e(t)},fail(e){r(e)}})}))}upload(e){return new Promise(((t,n)=>{const{url:s,file:r,data:i,headers:o,fileType:a}=e,c=ne.uploadFile({url:mt(\"https:\",s),name:\"file\",formData:Object.assign({},i),filePath:r,fileType:a,header:o,success(e){const n={statusCode:e.statusCode,data:e.data||{}};200===e.statusCode&&i.success_action_status&&(n.statusCode=parseInt(i.success_action_status,10)),t(n)},fail(e){n(new Error(e.errMsg||\"uploadFile:fail\"))}});\"function\"==typeof e.onUploadProgress&&c&&\"function\"==typeof c.onProgressUpdate&&c.onProgressUpdate((t=>{e.onUploadProgress({loaded:t.totalBytesSent,total:t.totalBytesExpectedToSend})}))}))}}const _t={setItem(e,t){ne.setStorageSync(e,t)},getItem:e=>ne.getStorageSync(e),removeItem(e){ne.removeStorageSync(e)},clear(){ne.clearStorageSync()}};var wt={genAdapter:function(){return{root:{},reqClass:yt,localStorage:_t,primaryStorage:\"local\"}},isMatch:function(){return!0},runtime:\"uni_app\"};gt.useAdapters(wt);const vt=gt,It=vt.init;vt.init=function(e){e.env=e.spaceId;const t=It.call(this,e);t.config.provider=\"tencent\",t.config.spaceId=e.spaceId;const n=t.auth;return t.auth=function(e){const t=n.call(this,e);return[\"linkAndRetrieveDataWithTicket\",\"signInAnonymously\",\"signOut\",\"getAccessToken\",\"getLoginState\",\"signInWithTicket\",\"getUserInfo\"].forEach((e=>{var n;t[e]=(n=t[e],function(e){e=e||{};const{success:t,fail:s,complete:r}=ee(e);if(!(t||s||r))return n.call(this,e);n.call(this,e).then((e=>{t&&t(e),r&&r(e)}),(e=>{s&&s(e),r&&r(e)}))}).bind(t)})),t},t.customAuth=t.auth,t};var St=vt;var bt=class extends de{getAccessToken(){return new Promise(((e,t)=>{const n=\"Anonymous_Access_token\";this.setAccessToken(n),e(n)}))}setupRequest(e,t){const n=Object.assign({},e,{spaceId:this.config.spaceId,timestamp:Date.now()}),s={\"Content-Type\":\"application/json\"};\"auth\"!==t&&(n.token=this.accessToken,s[\"x-basement-token\"]=this.accessToken),s[\"x-serverless-sign\"]=le.sign(n,this.config.clientSecret);const r=he();s[\"x-client-info\"]=encodeURIComponent(JSON.stringify(r));const{token:i}=re();return s[\"x-client-token\"]=i,{url:this.config.requestUrl,method:\"POST\",data:n,dataType:\"json\",header:JSON.parse(JSON.stringify(s))}}uploadFileToOSS({url:e,formData:t,name:n,filePath:s,fileType:r,onUploadProgress:i}){return new Promise(((o,a)=>{const c=this.adapter.uploadFile({url:e,formData:t,name:n,filePath:s,fileType:r,success(e){e&&e.statusCode<400?o(e):a(new te({code:\"UPLOAD_FAILED\",message:\"文件上传失败\"}))},fail(e){a(new te({code:e.code||\"UPLOAD_FAILED\",message:e.message||e.errMsg||\"文件上传失败\"}))}});\"function\"==typeof i&&c&&\"function\"==typeof c.onProgressUpdate&&c.onProgressUpdate((e=>{i({loaded:e.totalBytesSent,total:e.totalBytesExpectedToSend})}))}))}uploadFile({filePath:e,cloudPath:t,fileType:n=\"image\",onUploadProgress:s}){if(!t)throw new te({code:\"CLOUDPATH_REQUIRED\",message:\"cloudPath不可为空\"});let r;return this.getOSSUploadOptionsFromPath({cloudPath:t}).then((t=>{const{url:i,formData:o,name:a}=t.result;r=t.result.fileUrl;const c={url:i,formData:o,name:a,filePath:e,fileType:n};return this.uploadFileToOSS(Object.assign({},c,{onUploadProgress:s}))})).then((()=>this.reportOSSUpload({cloudPath:t}))).then((t=>new Promise(((n,s)=>{t.success?n({success:!0,filePath:e,fileID:r}):s(new te({code:\"UPLOAD_FAILED\",message:\"文件上传失败\"}))}))))}deleteFile({fileList:e}){const t={method:\"serverless.file.resource.delete\",params:JSON.stringify({fileList:e})};return this.request(this.setupRequest(t)).then((e=>{if(e.success)return e.result;throw new te({code:\"DELETE_FILE_FAILED\",message:\"删除文件失败\"})}))}getTempFileURL({fileList:e,maxAge:t}={}){if(!Array.isArray(e)||0===e.length)throw new te({code:\"INVALID_PARAM\",message:\"fileList的元素必须是非空的字符串\"});const n={method:\"serverless.file.resource.getTempFileURL\",params:JSON.stringify({fileList:e,maxAge:t})};return this.request(this.setupRequest(n)).then((e=>{if(e.success)return{fileList:e.result.fileList.map((e=>({fileID:e.fileID,tempFileURL:e.tempFileURL})))};throw new te({code:\"GET_TEMP_FILE_URL_FAILED\",message:\"获取临时文件链接失败\"})}))}};var kt={init(e){const t=new bt(e),n={signInAnonymously:function(){return t.authorize()},getLoginState:function(){return Promise.resolve(!1)}};return t.auth=function(){return n},t.customAuth=t.auth,t}},At=n((function(e,t){e.exports=r.enc.Hex}));function Pt(e=\"\",t={}){const{data:n,functionName:s,method:r,headers:i,signHeaderKeys:o=[],config:a}=t,c=Date.now(),u=\"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g,(function(e){var t=16*Math.random()|0;return(\"x\"===e?t:3&t|8).toString(16)})),h=Object.assign({},i,{\"x-from-app-id\":a.spaceAppId,\"x-from-env-id\":a.spaceId,\"x-to-env-id\":a.spaceId,\"x-from-instance-id\":c,\"x-from-function-name\":s,\"x-client-timestamp\":c,\"x-alipay-source\":\"client\",\"x-request-id\":u,\"x-alipay-callid\":u,\"x-trace-id\":u}),l=[\"x-from-app-id\",\"x-from-env-id\",\"x-to-env-id\",\"x-from-instance-id\",\"x-from-function-name\",\"x-client-timestamp\"].concat(o),[d=\"\",p=\"\"]=e.split(\"?\")||[],f=function(e){const t=e.signedHeaders.join(\";\"),n=e.signedHeaders.map((t=>`${t.toLowerCase()}:${e.headers[t]}\\n`)).join(\"\"),s=_e(e.body).toString(At),r=`${e.method.toUpperCase()}\\n${e.path}\\n${e.query}\\n${n}\\n${t}\\n${s}\\n`,i=_e(r).toString(At),o=`HMAC-SHA256\\n${e.timestamp}\\n${i}\\n`,a=we(o,e.secretKey).toString(At);return`HMAC-SHA256 Credential=${e.secretId}, SignedHeaders=${t}, Signature=${a}`}({path:d,query:p,method:r,headers:h,timestamp:c,body:JSON.stringify(n),secretId:a.accessKey,secretKey:a.secretKey,signedHeaders:l.sort()});return{url:`${a.endpoint}${e}`,headers:Object.assign({},h,{Authorization:f})}}function Tt({url:e,data:t,method:n=\"POST\",headers:s={}}){return new Promise(((r,i)=>{ne.request({url:e,method:n,data:t,header:s,dataType:\"json\",complete:(e={})=>{const t=s[\"x-trace-id\"]||\"\";if(!e.statusCode||e.statusCode>=400){const{message:n,errMsg:s,trace_id:r}=e.data||{};return i(new te({code:\"SYS_ERR\",message:n||s||\"request:fail\",requestId:r||t}))}r({status:e.statusCode,data:e.data,headers:e.header,requestId:t})}})}))}function Ct(e,t){const{path:n,data:s,method:r=\"GET\"}=e,{url:i,headers:o}=Pt(n,{functionName:\"\",data:s,method:r,headers:{\"x-alipay-cloud-mode\":\"oss\",\"x-data-api-type\":\"oss\",\"x-expire-timestamp\":Date.now()+6e4},signHeaderKeys:[\"x-data-api-type\",\"x-expire-timestamp\"],config:t});return Tt({url:i,data:s,method:r,headers:o}).then((e=>{const t=e.data||{};if(!t.success)throw new te({code:e.errCode,message:e.errMsg,requestId:e.requestId});return t.data||{}})).catch((e=>{throw new te({code:e.errCode,message:e.errMsg,requestId:e.requestId})}))}function xt(e=\"\"){const t=e.trim().replace(/^cloud:\\/\\//,\"\"),n=t.indexOf(\"/\");if(n<=0)throw new te({code:\"INVALID_PARAM\",message:\"fileID不合法\"});const s=t.substring(0,n),r=t.substring(n+1);return s!==this.config.spaceId&&console.warn(\"file \".concat(e,\" does not belong to env \").concat(this.config.spaceId)),r}function Ot(e=\"\"){return\"cloud://\".concat(this.config.spaceId,\"/\").concat(e.replace(/^\\/+/,\"\"))}var Et=class{constructor(e){if([\"spaceId\",\"spaceAppId\",\"accessKey\",\"secretKey\"].forEach((t=>{if(!Object.prototype.hasOwnProperty.call(e,t))throw new Error(`${t} required`)})),e.endpoint){if(\"string\"!=typeof e.endpoint)throw new Error(\"endpoint must be string\");if(!/^https:\\/\\//.test(e.endpoint))throw new Error(\"endpoint must start with https://\");e.endpoint=e.endpoint.replace(/\\/$/,\"\")}this.config=Object.assign({},e,{endpoint:e.endpoint||`https://${e.spaceId}.api-hz.cloudbasefunction.cn`})}callFunction(e){return function(e,t){const{name:n,data:s}=e,r=\"POST\",{url:i,headers:o}=Pt(\"/functions/invokeFunction\",{functionName:n,data:s,method:r,headers:{\"x-to-function-name\":n},signHeaderKeys:[\"x-to-function-name\"],config:t});return Tt({url:i,data:s,method:r,headers:o}).then((e=>({errCode:0,success:!0,requestId:e.requestId,result:e.data}))).catch((e=>{throw new te({code:e.errCode,message:e.errMsg,requestId:e.requestId})}))}(e,this.config)}uploadFileToOSS({url:e,filePath:t,fileType:n,formData:s,onUploadProgress:r}){return new Promise(((i,o)=>{const a=ne.uploadFile({url:e,filePath:t,fileType:n,formData:s,name:\"file\",success(e){e&&e.statusCode<400?i(e):o(new te({code:\"UPLOAD_FAILED\",message:\"文件上传失败\"}))},fail(e){o(new te({code:e.code||\"UPLOAD_FAILED\",message:e.message||e.errMsg||\"文件上传失败\"}))}});\"function\"==typeof r&&a&&\"function\"==typeof a.onProgressUpdate&&a.onProgressUpdate((e=>{r({loaded:e.totalBytesSent,total:e.totalBytesExpectedToSend})}))}))}async uploadFile({filePath:e,cloudPath:t=\"\",fileType:n=\"image\",onUploadProgress:s}){if(\"string\"!==f(t))throw new te({code:\"INVALID_PARAM\",message:\"cloudPath必须为字符串类型\"});if(!(t=t.trim()))throw new te({code:\"INVALID_PARAM\",message:\"cloudPath不可为空\"});if(/:\\/\\//.test(t))throw new te({code:\"INVALID_PARAM\",message:\"cloudPath不合法\"});const r=await Ct({path:\"/\".concat(t.replace(/^\\//,\"\"),\"?post_url\")},this.config),{file_id:i,upload_url:o,form_data:a}=r,c=a&&a.reduce(((e,t)=>(e[t.key]=t.value,e)),{});return this.uploadFileToOSS({url:o,filePath:e,fileType:n,formData:c,onUploadProgress:s}).then((()=>({fileID:i})))}async getTempFileURL({fileList:e}){return new Promise(((t,n)=>{(!e||e.length<0)&&n(new te({errCode:\"INVALID_PARAM\",errMsg:\"fileList不能为空数组\"})),e.length>50&&n(new te({errCode:\"INVALID_PARAM\",errMsg:\"fileList数组长度不能超过50\"}));const s=[];for(const t of e){\"string\"!==f(t)&&n(new te({errCode:\"INVALID_PARAM\",errMsg:\"fileList的元素必须是非空的字符串\"}));const e=xt.call(this,t);s.push({file_id:e,expire:600})}Ct({path:\"/?download_url\",data:{file_list:s},method:\"POST\"},this.config).then((e=>{const{file_list:n=[]}=e;t({fileList:n.map((e=>({fileID:Ot.call(this,e.file_id),tempFileURL:e.download_url})))})})).catch((e=>n(e)))}))}};var Lt={init:e=>{e.provider=\"alipay\";const t=new Et(e);return t.auth=function(){return{signInAnonymously:function(){return Promise.resolve()},getLoginState:function(){return Promise.resolve(!0)}}},t}};function Rt({data:e}){let t;t=he();const n=JSON.parse(JSON.stringify(e||{}));if(Object.assign(n,{clientInfo:t}),!n.uniIdToken){const{token:e}=re();e&&(n.uniIdToken=e)}return n}async function Ut({name:e,data:t}={}){await this.__dev__.initLocalNetwork();const{localAddress:n,localPort:s}=this.__dev__,r={aliyun:\"aliyun\",tencent:\"tcb\",alipay:\"alipay\"}[this.config.provider],i=this.config.spaceId,o=`http://${n}:${s}/system/check-function`,a=`http://${n}:${s}/cloudfunctions/${e}`;return new Promise(((t,n)=>{ne.request({method:\"POST\",url:o,data:{name:e,platform:P,provider:r,spaceId:i},timeout:3e3,success(e){t(e)},fail(){t({data:{code:\"NETWORK_ERROR\",message:\"连接本地调试服务失败,请检查客户端是否和主机在同一局域网下,自动切换为已部署的云函数。\"}})}})})).then((({data:e}={})=>{const{code:t,message:n}=e||{};return{code:0===t?0:t||\"SYS_ERR\",message:n||\"SYS_ERR\"}})).then((({code:n,message:s})=>{if(0!==n){switch(n){case\"MODULE_ENCRYPTED\":console.error(`此云函数(${e})依赖加密公共模块不可本地调试,自动切换为云端已部署的云函数`);break;case\"FUNCTION_ENCRYPTED\":console.error(`此云函数(${e})已加密不可本地调试,自动切换为云端已部署的云函数`);break;case\"ACTION_ENCRYPTED\":console.error(s||\"需要访问加密的uni-clientDB-action自动切换为云端环境\");break;case\"NETWORK_ERROR\":{const e=\"连接本地调试服务失败,请检查客户端是否和主机在同一局域网下\";throw console.error(e),new Error(e)}case\"SWITCH_TO_CLOUD\":break;default:{const e=`检测本地调试服务出现错误:${s},请检查网络环境或重启客户端再试`;throw console.error(e),new Error(e)}}return this._callCloudFunction({name:e,data:t})}return new Promise(((e,n)=>{const s=Rt.call(this,{data:t});ne.request({method:\"POST\",url:a,data:{provider:r,platform:P,param:s},success:({statusCode:t,data:s}={})=>!t||t>=400?n(new te({code:s.code||\"SYS_ERR\",message:s.message||\"request:fail\"})):e({result:s}),fail(e){n(new te({code:e.code||e.errCode||\"SYS_ERR\",message:e.message||e.errMsg||\"request:fail\"}))}})}))}))}const Nt=[{rule:/fc_function_not_found|FUNCTION_NOT_FOUND/,content:\",云函数[{functionName}]在云端不存在,请检查此云函数名称是否正确以及该云函数是否已上传到服务空间\",mode:\"append\"}];var Dt=/[\\\\^$.*+?()[\\]{}|]/g,Mt=RegExp(Dt.source);function qt(e,t,n){return e.replace(new RegExp((s=t)&&Mt.test(s)?s.replace(Dt,\"\\\\$&\"):s,\"g\"),n);var s}const Ft=\"none\",Kt=\"request\",jt=\"response\",$t=\"both\";class Bt{constructor({secretType:e,uniCloudIns:t}={}){this.clientType=\"\",this.secretType=e||Ft,this.uniCloudIns=t;const{provider:n,spaceId:s}=this.uniCloudIns.config;var r;this.provider=n,this.spaceId=s,this.scopedGlobalCache=(r=this.uniCloudIns,L(\"_globalUniCloudSecureNetworkCache__{spaceId}\".replace(\"{spaceId}\",r.config.spaceId)))}getSystemInfo(){return this._systemInfo||(this._systemInfo=ce()),this._systemInfo}get appId(){return this.getSystemInfo().appId}get deviceId(){return this.getSystemInfo().deviceId}async encryptData(e){return this.secretType===Ft?e:this.platformEncryptData(e)}async decryptResult(e){if(this.secretType===Ft)return e;const{errCode:t,content:n}=e||{};return t||!n?e:this.secretType===Kt?n:this.platformDecryptResult(e)}wrapVerifyClientCallFunction(e){const t=this;return async function({name:n,data:s={}}={}){await t.prepare(),(s=JSON.parse(JSON.stringify(s)))._uniCloudOptions=await t.platformGetSignOption();let r=await e({name:n,data:s});return t.isClientKeyNotFound(r)&&(await t.prepare({forceUpdate:!0}),s._uniCloudOptions=await t.platformGetSignOption(),r=await e({name:n,data:s})),r}}wrapEncryptDataCallFunction(e){const t=this;return async function({name:n,data:s={}}={}){await t.prepare();const r=await t.encryptData(s);let i=await e({name:n,data:r});if(t.isClientKeyNotFound(i)){await t.prepare({forceUpdate:!0});const r=await t.encryptData(s);s._uniCloudOptions=await t.platformGetSignOption(),i=await e({name:n,data:r})}return i.result=await t.decryptResult(i.result),i}}}\n/*! MIT License. Copyright 2015-2018 Richard Moore <me@ricmoo.com>. See LICENSE.txt. */function Wt(e){return parseInt(e)===e}function Ht(e){if(!Wt(e.length))return!1;for(var t=0;t<e.length;t++)if(!Wt(e[t])||e[t]<0||e[t]>255)return!1;return!0}function zt(e,t){if(e.buffer&&\"Uint8Array\"===e.name)return t&&(e=e.slice?e.slice():Array.prototype.slice.call(e)),e;if(Array.isArray(e)){if(!Ht(e))throw new Error(\"Array contains invalid value: \"+e);return new Uint8Array(e)}if(Wt(e.length)&&Ht(e))return new Uint8Array(e);throw new Error(\"unsupported array-like object\")}function Jt(e){return new Uint8Array(e)}function Gt(e,t,n,s,r){null==s&&null==r||(e=e.slice?e.slice(s,r):Array.prototype.slice.call(e,s,r)),t.set(e,n)}var Vt,Yt={toBytes:function(e){var t=[],n=0;for(e=encodeURI(e);n<e.length;){var s=e.charCodeAt(n++);37===s?(t.push(parseInt(e.substr(n,2),16)),n+=2):t.push(s)}return zt(t)},fromBytes:function(e){for(var t=[],n=0;n<e.length;){var s=e[n];s<128?(t.push(String.fromCharCode(s)),n++):s>191&&s<224?(t.push(String.fromCharCode((31&s)<<6|63&e[n+1])),n+=2):(t.push(String.fromCharCode((15&s)<<12|(63&e[n+1])<<6|63&e[n+2])),n+=3)}return t.join(\"\")}},Qt=(Vt=\"0123456789abcdef\",{toBytes:function(e){for(var t=[],n=0;n<e.length;n+=2)t.push(parseInt(e.substr(n,2),16));return t},fromBytes:function(e){for(var t=[],n=0;n<e.length;n++){var s=e[n];t.push(Vt[(240&s)>>4]+Vt[15&s])}return t.join(\"\")}}),Xt={16:10,24:12,32:14},Zt=[1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145],en=[99,124,119,123,242,107,111,197,48,1,103,43,254,215,171,118,202,130,201,125,250,89,71,240,173,212,162,175,156,164,114,192,183,253,147,38,54,63,247,204,52,165,229,241,113,216,49,21,4,199,35,195,24,150,5,154,7,18,128,226,235,39,178,117,9,131,44,26,27,110,90,160,82,59,214,179,41,227,47,132,83,209,0,237,32,252,177,91,106,203,190,57,74,76,88,207,208,239,170,251,67,77,51,133,69,249,2,127,80,60,159,168,81,163,64,143,146,157,56,245,188,182,218,33,16,255,243,210,205,12,19,236,95,151,68,23,196,167,126,61,100,93,25,115,96,129,79,220,34,42,144,136,70,238,184,20,222,94,11,219,224,50,58,10,73,6,36,92,194,211,172,98,145,149,228,121,231,200,55,109,141,213,78,169,108,86,244,234,101,122,174,8,186,120,37,46,28,166,180,198,232,221,116,31,75,189,139,138,112,62,181,102,72,3,246,14,97,53,87,185,134,193,29,158,225,248,152,17,105,217,142,148,155,30,135,233,206,85,40,223,140,161,137,13,191,230,66,104,65,153,45,15,176,84,187,22],tn=[82,9,106,213,48,54,165,56,191,64,163,158,129,243,215,251,124,227,57,130,155,47,255,135,52,142,67,68,196,222,233,203,84,123,148,50,166,194,35,61,238,76,149,11,66,250,195,78,8,46,161,102,40,217,36,178,118,91,162,73,109,139,209,37,114,248,246,100,134,104,152,22,212,164,92,204,93,101,182,146,108,112,72,80,253,237,185,218,94,21,70,87,167,141,157,132,144,216,171,0,140,188,211,10,247,228,88,5,184,179,69,6,208,44,30,143,202,63,15,2,193,175,189,3,1,19,138,107,58,145,17,65,79,103,220,234,151,242,207,206,240,180,230,115,150,172,116,34,231,173,53,133,226,249,55,232,28,117,223,110,71,241,26,113,29,41,197,137,111,183,98,14,170,24,190,27,252,86,62,75,198,210,121,32,154,219,192,254,120,205,90,244,31,221,168,51,136,7,199,49,177,18,16,89,39,128,236,95,96,81,127,169,25,181,74,13,45,229,122,159,147,201,156,239,160,224,59,77,174,42,245,176,200,235,187,60,131,83,153,97,23,43,4,126,186,119,214,38,225,105,20,99,85,33,12,125],nn=[3328402341,4168907908,4000806809,4135287693,4294111757,3597364157,3731845041,2445657428,1613770832,33620227,3462883241,1445669757,3892248089,3050821474,1303096294,3967186586,2412431941,528646813,2311702848,4202528135,4026202645,2992200171,2387036105,4226871307,1101901292,3017069671,1604494077,1169141738,597466303,1403299063,3832705686,2613100635,1974974402,3791519004,1033081774,1277568618,1815492186,2118074177,4126668546,2211236943,1748251740,1369810420,3521504564,4193382664,3799085459,2883115123,1647391059,706024767,134480908,2512897874,1176707941,2646852446,806885416,932615841,168101135,798661301,235341577,605164086,461406363,3756188221,3454790438,1311188841,2142417613,3933566367,302582043,495158174,1479289972,874125870,907746093,3698224818,3025820398,1537253627,2756858614,1983593293,3084310113,2108928974,1378429307,3722699582,1580150641,327451799,2790478837,3117535592,0,3253595436,1075847264,3825007647,2041688520,3059440621,3563743934,2378943302,1740553945,1916352843,2487896798,2555137236,2958579944,2244988746,3151024235,3320835882,1336584933,3992714006,2252555205,2588757463,1714631509,293963156,2319795663,3925473552,67240454,4269768577,2689618160,2017213508,631218106,1269344483,2723238387,1571005438,2151694528,93294474,1066570413,563977660,1882732616,4059428100,1673313503,2008463041,2950355573,1109467491,537923632,3858759450,4260623118,3218264685,2177748300,403442708,638784309,3287084079,3193921505,899127202,2286175436,773265209,2479146071,1437050866,4236148354,2050833735,3362022572,3126681063,840505643,3866325909,3227541664,427917720,2655997905,2749160575,1143087718,1412049534,999329963,193497219,2353415882,3354324521,1807268051,672404540,2816401017,3160301282,369822493,2916866934,3688947771,1681011286,1949973070,336202270,2454276571,201721354,1210328172,3093060836,2680341085,3184776046,1135389935,3294782118,965841320,831886756,3554993207,4068047243,3588745010,2345191491,1849112409,3664604599,26054028,2983581028,2622377682,1235855840,3630984372,2891339514,4092916743,3488279077,3395642799,4101667470,1202630377,268961816,1874508501,4034427016,1243948399,1546530418,941366308,1470539505,1941222599,2546386513,3421038627,2715671932,3899946140,1042226977,2521517021,1639824860,227249030,260737669,3765465232,2084453954,1907733956,3429263018,2420656344,100860677,4160157185,470683154,3261161891,1781871967,2924959737,1773779408,394692241,2579611992,974986535,664706745,3655459128,3958962195,731420851,571543859,3530123707,2849626480,126783113,865375399,765172662,1008606754,361203602,3387549984,2278477385,2857719295,1344809080,2782912378,59542671,1503764984,160008576,437062935,1707065306,3622233649,2218934982,3496503480,2185314755,697932208,1512910199,504303377,2075177163,2824099068,1841019862,739644986],sn=[2781242211,2230877308,2582542199,2381740923,234877682,3184946027,2984144751,1418839493,1348481072,50462977,2848876391,2102799147,434634494,1656084439,3863849899,2599188086,1167051466,2636087938,1082771913,2281340285,368048890,3954334041,3381544775,201060592,3963727277,1739838676,4250903202,3930435503,3206782108,4149453988,2531553906,1536934080,3262494647,484572669,2923271059,1783375398,1517041206,1098792767,49674231,1334037708,1550332980,4098991525,886171109,150598129,2481090929,1940642008,1398944049,1059722517,201851908,1385547719,1699095331,1587397571,674240536,2704774806,252314885,3039795866,151914247,908333586,2602270848,1038082786,651029483,1766729511,3447698098,2682942837,454166793,2652734339,1951935532,775166490,758520603,3000790638,4004797018,4217086112,4137964114,1299594043,1639438038,3464344499,2068982057,1054729187,1901997871,2534638724,4121318227,1757008337,0,750906861,1614815264,535035132,3363418545,3988151131,3201591914,1183697867,3647454910,1265776953,3734260298,3566750796,3903871064,1250283471,1807470800,717615087,3847203498,384695291,3313910595,3617213773,1432761139,2484176261,3481945413,283769337,100925954,2180939647,4037038160,1148730428,3123027871,3813386408,4087501137,4267549603,3229630528,2315620239,2906624658,3156319645,1215313976,82966005,3747855548,3245848246,1974459098,1665278241,807407632,451280895,251524083,1841287890,1283575245,337120268,891687699,801369324,3787349855,2721421207,3431482436,959321879,1469301956,4065699751,2197585534,1199193405,2898814052,3887750493,724703513,2514908019,2696962144,2551808385,3516813135,2141445340,1715741218,2119445034,2872807568,2198571144,3398190662,700968686,3547052216,1009259540,2041044702,3803995742,487983883,1991105499,1004265696,1449407026,1316239930,504629770,3683797321,168560134,1816667172,3837287516,1570751170,1857934291,4014189740,2797888098,2822345105,2754712981,936633572,2347923833,852879335,1133234376,1500395319,3084545389,2348912013,1689376213,3533459022,3762923945,3034082412,4205598294,133428468,634383082,2949277029,2398386810,3913789102,403703816,3580869306,2297460856,1867130149,1918643758,607656988,4049053350,3346248884,1368901318,600565992,2090982877,2632479860,557719327,3717614411,3697393085,2249034635,2232388234,2430627952,1115438654,3295786421,2865522278,3633334344,84280067,33027830,303828494,2747425121,1600795957,4188952407,3496589753,2434238086,1486471617,658119965,3106381470,953803233,334231800,3005978776,857870609,3151128937,1890179545,2298973838,2805175444,3056442267,574365214,2450884487,550103529,1233637070,4289353045,2018519080,2057691103,2399374476,4166623649,2148108681,387583245,3664101311,836232934,3330556482,3100665960,3280093505,2955516313,2002398509,287182607,3413881008,4238890068,3597515707,975967766],rn=[1671808611,2089089148,2006576759,2072901243,4061003762,1807603307,1873927791,3310653893,810573872,16974337,1739181671,729634347,4263110654,3613570519,2883997099,1989864566,3393556426,2191335298,3376449993,2106063485,4195741690,1508618841,1204391495,4027317232,2917941677,3563566036,2734514082,2951366063,2629772188,2767672228,1922491506,3227229120,3082974647,4246528509,2477669779,644500518,911895606,1061256767,4144166391,3427763148,878471220,2784252325,3845444069,4043897329,1905517169,3631459288,827548209,356461077,67897348,3344078279,593839651,3277757891,405286936,2527147926,84871685,2595565466,118033927,305538066,2157648768,3795705826,3945188843,661212711,2999812018,1973414517,152769033,2208177539,745822252,439235610,455947803,1857215598,1525593178,2700827552,1391895634,994932283,3596728278,3016654259,695947817,3812548067,795958831,2224493444,1408607827,3513301457,0,3979133421,543178784,4229948412,2982705585,1542305371,1790891114,3410398667,3201918910,961245753,1256100938,1289001036,1491644504,3477767631,3496721360,4012557807,2867154858,4212583931,1137018435,1305975373,861234739,2241073541,1171229253,4178635257,33948674,2139225727,1357946960,1011120188,2679776671,2833468328,1374921297,2751356323,1086357568,2408187279,2460827538,2646352285,944271416,4110742005,3168756668,3066132406,3665145818,560153121,271589392,4279952895,4077846003,3530407890,3444343245,202643468,322250259,3962553324,1608629855,2543990167,1154254916,389623319,3294073796,2817676711,2122513534,1028094525,1689045092,1575467613,422261273,1939203699,1621147744,2174228865,1339137615,3699352540,577127458,712922154,2427141008,2290289544,1187679302,3995715566,3100863416,339486740,3732514782,1591917662,186455563,3681988059,3762019296,844522546,978220090,169743370,1239126601,101321734,611076132,1558493276,3260915650,3547250131,2901361580,1655096418,2443721105,2510565781,3828863972,2039214713,3878868455,3359869896,928607799,1840765549,2374762893,3580146133,1322425422,2850048425,1823791212,1459268694,4094161908,3928346602,1706019429,2056189050,2934523822,135794696,3134549946,2022240376,628050469,779246638,472135708,2800834470,3032970164,3327236038,3894660072,3715932637,1956440180,522272287,1272813131,3185336765,2340818315,2323976074,1888542832,1044544574,3049550261,1722469478,1222152264,50660867,4127324150,236067854,1638122081,895445557,1475980887,3117443513,2257655686,3243809217,489110045,2662934430,3778599393,4162055160,2561878936,288563729,1773916777,3648039385,2391345038,2493985684,2612407707,505560094,2274497927,3911240169,3460925390,1442818645,678973480,3749357023,2358182796,2717407649,2306869641,219617805,3218761151,3862026214,1120306242,1756942440,1103331905,2578459033,762796589,252780047,2966125488,1425844308,3151392187,372911126],on=[1667474886,2088535288,2004326894,2071694838,4075949567,1802223062,1869591006,3318043793,808472672,16843522,1734846926,724270422,4278065639,3621216949,2880169549,1987484396,3402253711,2189597983,3385409673,2105378810,4210693615,1499065266,1195886990,4042263547,2913856577,3570689971,2728590687,2947541573,2627518243,2762274643,1920112356,3233831835,3082273397,4261223649,2475929149,640051788,909531756,1061110142,4160160501,3435941763,875846760,2779116625,3857003729,4059105529,1903268834,3638064043,825316194,353713962,67374088,3351728789,589522246,3284360861,404236336,2526454071,84217610,2593830191,117901582,303183396,2155911963,3806477791,3958056653,656894286,2998062463,1970642922,151591698,2206440989,741110872,437923380,454765878,1852748508,1515908788,2694904667,1381168804,993742198,3604373943,3014905469,690584402,3823320797,791638366,2223281939,1398011302,3520161977,0,3991743681,538992704,4244381667,2981218425,1532751286,1785380564,3419096717,3200178535,960056178,1246420628,1280103576,1482221744,3486468741,3503319995,4025428677,2863326543,4227536621,1128514950,1296947098,859002214,2240123921,1162203018,4193849577,33687044,2139062782,1347481760,1010582648,2678045221,2829640523,1364325282,2745433693,1077985408,2408548869,2459086143,2644360225,943212656,4126475505,3166494563,3065430391,3671750063,555836226,269496352,4294908645,4092792573,3537006015,3452783745,202118168,320025894,3974901699,1600119230,2543297077,1145359496,387397934,3301201811,2812801621,2122220284,1027426170,1684319432,1566435258,421079858,1936954854,1616945344,2172753945,1330631070,3705438115,572679748,707427924,2425400123,2290647819,1179044492,4008585671,3099120491,336870440,3739122087,1583276732,185277718,3688593069,3772791771,842159716,976899700,168435220,1229577106,101059084,606366792,1549591736,3267517855,3553849021,2897014595,1650632388,2442242105,2509612081,3840161747,2038008818,3890688725,3368567691,926374254,1835907034,2374863873,3587531953,1313788572,2846482505,1819063512,1448540844,4109633523,3941213647,1701162954,2054852340,2930698567,134748176,3132806511,2021165296,623210314,774795868,471606328,2795958615,3031746419,3334885783,3907527627,3722280097,1953799400,522133822,1263263126,3183336545,2341176845,2324333839,1886425312,1044267644,3048588401,1718004428,1212733584,50529542,4143317495,235803164,1633788866,892690282,1465383342,3115962473,2256965911,3250673817,488449850,2661202215,3789633753,4177007595,2560144171,286339874,1768537042,3654906025,2391705863,2492770099,2610673197,505291324,2273808917,3924369609,3469625735,1431699370,673740880,3755965093,2358021891,2711746649,2307489801,218961690,3217021541,3873845719,1111672452,1751693520,1094828930,2576986153,757954394,252645662,2964376443,1414855848,3149649517,370555436],an=[1374988112,2118214995,437757123,975658646,1001089995,530400753,2902087851,1273168787,540080725,2910219766,2295101073,4110568485,1340463100,3307916247,641025152,3043140495,3736164937,632953703,1172967064,1576976609,3274667266,2169303058,2370213795,1809054150,59727847,361929877,3211623147,2505202138,3569255213,1484005843,1239443753,2395588676,1975683434,4102977912,2572697195,666464733,3202437046,4035489047,3374361702,2110667444,1675577880,3843699074,2538681184,1649639237,2976151520,3144396420,4269907996,4178062228,1883793496,2403728665,2497604743,1383856311,2876494627,1917518562,3810496343,1716890410,3001755655,800440835,2261089178,3543599269,807962610,599762354,33778362,3977675356,2328828971,2809771154,4077384432,1315562145,1708848333,101039829,3509871135,3299278474,875451293,2733856160,92987698,2767645557,193195065,1080094634,1584504582,3178106961,1042385657,2531067453,3711829422,1306967366,2438237621,1908694277,67556463,1615861247,429456164,3602770327,2302690252,1742315127,2968011453,126454664,3877198648,2043211483,2709260871,2084704233,4169408201,0,159417987,841739592,504459436,1817866830,4245618683,260388950,1034867998,908933415,168810852,1750902305,2606453969,607530554,202008497,2472011535,3035535058,463180190,2160117071,1641816226,1517767529,470948374,3801332234,3231722213,1008918595,303765277,235474187,4069246893,766945465,337553864,1475418501,2943682380,4003061179,2743034109,4144047775,1551037884,1147550661,1543208500,2336434550,3408119516,3069049960,3102011747,3610369226,1113818384,328671808,2227573024,2236228733,3535486456,2935566865,3341394285,496906059,3702665459,226906860,2009195472,733156972,2842737049,294930682,1206477858,2835123396,2700099354,1451044056,573804783,2269728455,3644379585,2362090238,2564033334,2801107407,2776292904,3669462566,1068351396,742039012,1350078989,1784663195,1417561698,4136440770,2430122216,775550814,2193862645,2673705150,1775276924,1876241833,3475313331,3366754619,270040487,3902563182,3678124923,3441850377,1851332852,3969562369,2203032232,3868552805,2868897406,566021896,4011190502,3135740889,1248802510,3936291284,699432150,832877231,708780849,3332740144,899835584,1951317047,4236429990,3767586992,866637845,4043610186,1106041591,2144161806,395441711,1984812685,1139781709,3433712980,3835036895,2664543715,1282050075,3240894392,1181045119,2640243204,25965917,4203181171,4211818798,3009879386,2463879762,3910161971,1842759443,2597806476,933301370,1509430414,3943906441,3467192302,3076639029,3776767469,2051518780,2631065433,1441952575,404016761,1942435775,1408749034,1610459739,3745345300,2017778566,3400528769,3110650942,941896748,3265478751,371049330,3168937228,675039627,4279080257,967311729,135050206,3635733660,1683407248,2076935265,3576870512,1215061108,3501741890],cn=[1347548327,1400783205,3273267108,2520393566,3409685355,4045380933,2880240216,2471224067,1428173050,4138563181,2441661558,636813900,4233094615,3620022987,2149987652,2411029155,1239331162,1730525723,2554718734,3781033664,46346101,310463728,2743944855,3328955385,3875770207,2501218972,3955191162,3667219033,768917123,3545789473,692707433,1150208456,1786102409,2029293177,1805211710,3710368113,3065962831,401639597,1724457132,3028143674,409198410,2196052529,1620529459,1164071807,3769721975,2226875310,486441376,2499348523,1483753576,428819965,2274680428,3075636216,598438867,3799141122,1474502543,711349675,129166120,53458370,2592523643,2782082824,4063242375,2988687269,3120694122,1559041666,730517276,2460449204,4042459122,2706270690,3446004468,3573941694,533804130,2328143614,2637442643,2695033685,839224033,1973745387,957055980,2856345839,106852767,1371368976,4181598602,1033297158,2933734917,1179510461,3046200461,91341917,1862534868,4284502037,605657339,2547432937,3431546947,2003294622,3182487618,2282195339,954669403,3682191598,1201765386,3917234703,3388507166,0,2198438022,1211247597,2887651696,1315723890,4227665663,1443857720,507358933,657861945,1678381017,560487590,3516619604,975451694,2970356327,261314535,3535072918,2652609425,1333838021,2724322336,1767536459,370938394,182621114,3854606378,1128014560,487725847,185469197,2918353863,3106780840,3356761769,2237133081,1286567175,3152976349,4255350624,2683765030,3160175349,3309594171,878443390,1988838185,3704300486,1756818940,1673061617,3403100636,272786309,1075025698,545572369,2105887268,4174560061,296679730,1841768865,1260232239,4091327024,3960309330,3497509347,1814803222,2578018489,4195456072,575138148,3299409036,446754879,3629546796,4011996048,3347532110,3252238545,4270639778,915985419,3483825537,681933534,651868046,2755636671,3828103837,223377554,2607439820,1649704518,3270937875,3901806776,1580087799,4118987695,3198115200,2087309459,2842678573,3016697106,1003007129,2802849917,1860738147,2077965243,164439672,4100872472,32283319,2827177882,1709610350,2125135846,136428751,3874428392,3652904859,3460984630,3572145929,3593056380,2939266226,824852259,818324884,3224740454,930369212,2801566410,2967507152,355706840,1257309336,4148292826,243256656,790073846,2373340630,1296297904,1422699085,3756299780,3818836405,457992840,3099667487,2135319889,77422314,1560382517,1945798516,788204353,1521706781,1385356242,870912086,325965383,2358957921,2050466060,2388260884,2313884476,4006521127,901210569,3990953189,1014646705,1503449823,1062597235,2031621326,3212035895,3931371469,1533017514,350174575,2256028891,2177544179,1052338372,741876788,1606591296,1914052035,213705253,2334669897,1107234197,1899603969,3725069491,2631447780,2422494913,1635502980,1893020342,1950903388,1120974935],un=[2807058932,1699970625,2764249623,1586903591,1808481195,1173430173,1487645946,59984867,4199882800,1844882806,1989249228,1277555970,3623636965,3419915562,1149249077,2744104290,1514790577,459744698,244860394,3235995134,1963115311,4027744588,2544078150,4190530515,1608975247,2627016082,2062270317,1507497298,2200818878,567498868,1764313568,3359936201,2305455554,2037970062,1047239e3,1910319033,1337376481,2904027272,2892417312,984907214,1243112415,830661914,861968209,2135253587,2011214180,2927934315,2686254721,731183368,1750626376,4246310725,1820824798,4172763771,3542330227,48394827,2404901663,2871682645,671593195,3254988725,2073724613,145085239,2280796200,2779915199,1790575107,2187128086,472615631,3029510009,4075877127,3802222185,4107101658,3201631749,1646252340,4270507174,1402811438,1436590835,3778151818,3950355702,3963161475,4020912224,2667994737,273792366,2331590177,104699613,95345982,3175501286,2377486676,1560637892,3564045318,369057872,4213447064,3919042237,1137477952,2658625497,1119727848,2340947849,1530455833,4007360968,172466556,266959938,516552836,0,2256734592,3980931627,1890328081,1917742170,4294704398,945164165,3575528878,958871085,3647212047,2787207260,1423022939,775562294,1739656202,3876557655,2530391278,2443058075,3310321856,547512796,1265195639,437656594,3121275539,719700128,3762502690,387781147,218828297,3350065803,2830708150,2848461854,428169201,122466165,3720081049,1627235199,648017665,4122762354,1002783846,2117360635,695634755,3336358691,4234721005,4049844452,3704280881,2232435299,574624663,287343814,612205898,1039717051,840019705,2708326185,793451934,821288114,1391201670,3822090177,376187827,3113855344,1224348052,1679968233,2361698556,1058709744,752375421,2431590963,1321699145,3519142200,2734591178,188127444,2177869557,3727205754,2384911031,3215212461,2648976442,2450346104,3432737375,1180849278,331544205,3102249176,4150144569,2952102595,2159976285,2474404304,766078933,313773861,2570832044,2108100632,1668212892,3145456443,2013908262,418672217,3070356634,2594734927,1852171925,3867060991,3473416636,3907448597,2614737639,919489135,164948639,2094410160,2997825956,590424639,2486224549,1723872674,3157750862,3399941250,3501252752,3625268135,2555048196,3673637356,1343127501,4130281361,3599595085,2957853679,1297403050,81781910,3051593425,2283490410,532201772,1367295589,3926170974,895287692,1953757831,1093597963,492483431,3528626907,1446242576,1192455638,1636604631,209336225,344873464,1015671571,669961897,3375740769,3857572124,2973530695,3747192018,1933530610,3464042516,935293895,3454686199,2858115069,1863638845,3683022916,4085369519,3292445032,875313188,1080017571,3279033885,621591778,1233856572,2504130317,24197544,3017672716,3835484340,3247465558,2220981195,3060847922,1551124588,1463996600],hn=[4104605777,1097159550,396673818,660510266,2875968315,2638606623,4200115116,3808662347,821712160,1986918061,3430322568,38544885,3856137295,718002117,893681702,1654886325,2975484382,3122358053,3926825029,4274053469,796197571,1290801793,1184342925,3556361835,2405426947,2459735317,1836772287,1381620373,3196267988,1948373848,3764988233,3385345166,3263785589,2390325492,1480485785,3111247143,3780097726,2293045232,548169417,3459953789,3746175075,439452389,1362321559,1400849762,1685577905,1806599355,2174754046,137073913,1214797936,1174215055,3731654548,2079897426,1943217067,1258480242,529487843,1437280870,3945269170,3049390895,3313212038,923313619,679998e3,3215307299,57326082,377642221,3474729866,2041877159,133361907,1776460110,3673476453,96392454,878845905,2801699524,777231668,4082475170,2330014213,4142626212,2213296395,1626319424,1906247262,1846563261,562755902,3708173718,1040559837,3871163981,1418573201,3294430577,114585348,1343618912,2566595609,3186202582,1078185097,3651041127,3896688048,2307622919,425408743,3371096953,2081048481,1108339068,2216610296,0,2156299017,736970802,292596766,1517440620,251657213,2235061775,2933202493,758720310,265905162,1554391400,1532285339,908999204,174567692,1474760595,4002861748,2610011675,3234156416,3693126241,2001430874,303699484,2478443234,2687165888,585122620,454499602,151849742,2345119218,3064510765,514443284,4044981591,1963412655,2581445614,2137062819,19308535,1928707164,1715193156,4219352155,1126790795,600235211,3992742070,3841024952,836553431,1669664834,2535604243,3323011204,1243905413,3141400786,4180808110,698445255,2653899549,2989552604,2253581325,3252932727,3004591147,1891211689,2487810577,3915653703,4237083816,4030667424,2100090966,865136418,1229899655,953270745,3399679628,3557504664,4118925222,2061379749,3079546586,2915017791,983426092,2022837584,1607244650,2118541908,2366882550,3635996816,972512814,3283088770,1568718495,3499326569,3576539503,621982671,2895723464,410887952,2623762152,1002142683,645401037,1494807662,2595684844,1335535747,2507040230,4293295786,3167684641,367585007,3885750714,1865862730,2668221674,2960971305,2763173681,1059270954,2777952454,2724642869,1320957812,2194319100,2429595872,2815956275,77089521,3973773121,3444575871,2448830231,1305906550,4021308739,2857194700,2516901860,3518358430,1787304780,740276417,1699839814,1592394909,2352307457,2272556026,188821243,1729977011,3687994002,274084841,3594982253,3613494426,2701949495,4162096729,322734571,2837966542,1640576439,484830689,1202797690,3537852828,4067639125,349075736,3342319475,4157467219,4255800159,1030690015,1155237496,2951971274,1757691577,607398968,2738905026,499347990,3794078908,1011452712,227885567,2818666809,213114376,3034881240,1455525988,3414450555,850817237,1817998408,3092726480],ln=[0,235474187,470948374,303765277,941896748,908933415,607530554,708780849,1883793496,2118214995,1817866830,1649639237,1215061108,1181045119,1417561698,1517767529,3767586992,4003061179,4236429990,4069246893,3635733660,3602770327,3299278474,3400528769,2430122216,2664543715,2362090238,2193862645,2835123396,2801107407,3035535058,3135740889,3678124923,3576870512,3341394285,3374361702,3810496343,3977675356,4279080257,4043610186,2876494627,2776292904,3076639029,3110650942,2472011535,2640243204,2403728665,2169303058,1001089995,899835584,666464733,699432150,59727847,226906860,530400753,294930682,1273168787,1172967064,1475418501,1509430414,1942435775,2110667444,1876241833,1641816226,2910219766,2743034109,2976151520,3211623147,2505202138,2606453969,2302690252,2269728455,3711829422,3543599269,3240894392,3475313331,3843699074,3943906441,4178062228,4144047775,1306967366,1139781709,1374988112,1610459739,1975683434,2076935265,1775276924,1742315127,1034867998,866637845,566021896,800440835,92987698,193195065,429456164,395441711,1984812685,2017778566,1784663195,1683407248,1315562145,1080094634,1383856311,1551037884,101039829,135050206,437757123,337553864,1042385657,807962610,573804783,742039012,2531067453,2564033334,2328828971,2227573024,2935566865,2700099354,3001755655,3168937228,3868552805,3902563182,4203181171,4102977912,3736164937,3501741890,3265478751,3433712980,1106041591,1340463100,1576976609,1408749034,2043211483,2009195472,1708848333,1809054150,832877231,1068351396,766945465,599762354,159417987,126454664,361929877,463180190,2709260871,2943682380,3178106961,3009879386,2572697195,2538681184,2236228733,2336434550,3509871135,3745345300,3441850377,3274667266,3910161971,3877198648,4110568485,4211818798,2597806476,2497604743,2261089178,2295101073,2733856160,2902087851,3202437046,2968011453,3936291284,3835036895,4136440770,4169408201,3535486456,3702665459,3467192302,3231722213,2051518780,1951317047,1716890410,1750902305,1113818384,1282050075,1584504582,1350078989,168810852,67556463,371049330,404016761,841739592,1008918595,775550814,540080725,3969562369,3801332234,4035489047,4269907996,3569255213,3669462566,3366754619,3332740144,2631065433,2463879762,2160117071,2395588676,2767645557,2868897406,3102011747,3069049960,202008497,33778362,270040487,504459436,875451293,975658646,675039627,641025152,2084704233,1917518562,1615861247,1851332852,1147550661,1248802510,1484005843,1451044056,933301370,967311729,733156972,632953703,260388950,25965917,328671808,496906059,1206477858,1239443753,1543208500,1441952575,2144161806,1908694277,1675577880,1842759443,3610369226,3644379585,3408119516,3307916247,4011190502,3776767469,4077384432,4245618683,2809771154,2842737049,3144396420,3043140495,2673705150,2438237621,2203032232,2370213795],dn=[0,185469197,370938394,487725847,741876788,657861945,975451694,824852259,1483753576,1400783205,1315723890,1164071807,1950903388,2135319889,1649704518,1767536459,2967507152,3152976349,2801566410,2918353863,2631447780,2547432937,2328143614,2177544179,3901806776,3818836405,4270639778,4118987695,3299409036,3483825537,3535072918,3652904859,2077965243,1893020342,1841768865,1724457132,1474502543,1559041666,1107234197,1257309336,598438867,681933534,901210569,1052338372,261314535,77422314,428819965,310463728,3409685355,3224740454,3710368113,3593056380,3875770207,3960309330,4045380933,4195456072,2471224067,2554718734,2237133081,2388260884,3212035895,3028143674,2842678573,2724322336,4138563181,4255350624,3769721975,3955191162,3667219033,3516619604,3431546947,3347532110,2933734917,2782082824,3099667487,3016697106,2196052529,2313884476,2499348523,2683765030,1179510461,1296297904,1347548327,1533017514,1786102409,1635502980,2087309459,2003294622,507358933,355706840,136428751,53458370,839224033,957055980,605657339,790073846,2373340630,2256028891,2607439820,2422494913,2706270690,2856345839,3075636216,3160175349,3573941694,3725069491,3273267108,3356761769,4181598602,4063242375,4011996048,3828103837,1033297158,915985419,730517276,545572369,296679730,446754879,129166120,213705253,1709610350,1860738147,1945798516,2029293177,1239331162,1120974935,1606591296,1422699085,4148292826,4233094615,3781033664,3931371469,3682191598,3497509347,3446004468,3328955385,2939266226,2755636671,3106780840,2988687269,2198438022,2282195339,2501218972,2652609425,1201765386,1286567175,1371368976,1521706781,1805211710,1620529459,2105887268,1988838185,533804130,350174575,164439672,46346101,870912086,954669403,636813900,788204353,2358957921,2274680428,2592523643,2441661558,2695033685,2880240216,3065962831,3182487618,3572145929,3756299780,3270937875,3388507166,4174560061,4091327024,4006521127,3854606378,1014646705,930369212,711349675,560487590,272786309,457992840,106852767,223377554,1678381017,1862534868,1914052035,2031621326,1211247597,1128014560,1580087799,1428173050,32283319,182621114,401639597,486441376,768917123,651868046,1003007129,818324884,1503449823,1385356242,1333838021,1150208456,1973745387,2125135846,1673061617,1756818940,2970356327,3120694122,2802849917,2887651696,2637442643,2520393566,2334669897,2149987652,3917234703,3799141122,4284502037,4100872472,3309594171,3460984630,3545789473,3629546796,2050466060,1899603969,1814803222,1730525723,1443857720,1560382517,1075025698,1260232239,575138148,692707433,878443390,1062597235,243256656,91341917,409198410,325965383,3403100636,3252238545,3704300486,3620022987,3874428392,3990953189,4042459122,4227665663,2460449204,2578018489,2226875310,2411029155,3198115200,3046200461,2827177882,2743944855],pn=[0,218828297,437656594,387781147,875313188,958871085,775562294,590424639,1750626376,1699970625,1917742170,2135253587,1551124588,1367295589,1180849278,1265195639,3501252752,3720081049,3399941250,3350065803,3835484340,3919042237,4270507174,4085369519,3102249176,3051593425,2734591178,2952102595,2361698556,2177869557,2530391278,2614737639,3145456443,3060847922,2708326185,2892417312,2404901663,2187128086,2504130317,2555048196,3542330227,3727205754,3375740769,3292445032,3876557655,3926170974,4246310725,4027744588,1808481195,1723872674,1910319033,2094410160,1608975247,1391201670,1173430173,1224348052,59984867,244860394,428169201,344873464,935293895,984907214,766078933,547512796,1844882806,1627235199,2011214180,2062270317,1507497298,1423022939,1137477952,1321699145,95345982,145085239,532201772,313773861,830661914,1015671571,731183368,648017665,3175501286,2957853679,2807058932,2858115069,2305455554,2220981195,2474404304,2658625497,3575528878,3625268135,3473416636,3254988725,3778151818,3963161475,4213447064,4130281361,3599595085,3683022916,3432737375,3247465558,3802222185,4020912224,4172763771,4122762354,3201631749,3017672716,2764249623,2848461854,2331590177,2280796200,2431590963,2648976442,104699613,188127444,472615631,287343814,840019705,1058709744,671593195,621591778,1852171925,1668212892,1953757831,2037970062,1514790577,1463996600,1080017571,1297403050,3673637356,3623636965,3235995134,3454686199,4007360968,3822090177,4107101658,4190530515,2997825956,3215212461,2830708150,2779915199,2256734592,2340947849,2627016082,2443058075,172466556,122466165,273792366,492483431,1047239e3,861968209,612205898,695634755,1646252340,1863638845,2013908262,1963115311,1446242576,1530455833,1277555970,1093597963,1636604631,1820824798,2073724613,1989249228,1436590835,1487645946,1337376481,1119727848,164948639,81781910,331544205,516552836,1039717051,821288114,669961897,719700128,2973530695,3157750862,2871682645,2787207260,2232435299,2283490410,2667994737,2450346104,3647212047,3564045318,3279033885,3464042516,3980931627,3762502690,4150144569,4199882800,3070356634,3121275539,2904027272,2686254721,2200818878,2384911031,2570832044,2486224549,3747192018,3528626907,3310321856,3359936201,3950355702,3867060991,4049844452,4234721005,1739656202,1790575107,2108100632,1890328081,1402811438,1586903591,1233856572,1149249077,266959938,48394827,369057872,418672217,1002783846,919489135,567498868,752375421,209336225,24197544,376187827,459744698,945164165,895287692,574624663,793451934,1679968233,1764313568,2117360635,1933530610,1343127501,1560637892,1243112415,1192455638,3704280881,3519142200,3336358691,3419915562,3907448597,3857572124,4075877127,4294704398,3029510009,3113855344,2927934315,2744104290,2159976285,2377486676,2594734927,2544078150],fn=[0,151849742,303699484,454499602,607398968,758720310,908999204,1059270954,1214797936,1097159550,1517440620,1400849762,1817998408,1699839814,2118541908,2001430874,2429595872,2581445614,2194319100,2345119218,3034881240,3186202582,2801699524,2951971274,3635996816,3518358430,3399679628,3283088770,4237083816,4118925222,4002861748,3885750714,1002142683,850817237,698445255,548169417,529487843,377642221,227885567,77089521,1943217067,2061379749,1640576439,1757691577,1474760595,1592394909,1174215055,1290801793,2875968315,2724642869,3111247143,2960971305,2405426947,2253581325,2638606623,2487810577,3808662347,3926825029,4044981591,4162096729,3342319475,3459953789,3576539503,3693126241,1986918061,2137062819,1685577905,1836772287,1381620373,1532285339,1078185097,1229899655,1040559837,923313619,740276417,621982671,439452389,322734571,137073913,19308535,3871163981,4021308739,4104605777,4255800159,3263785589,3414450555,3499326569,3651041127,2933202493,2815956275,3167684641,3049390895,2330014213,2213296395,2566595609,2448830231,1305906550,1155237496,1607244650,1455525988,1776460110,1626319424,2079897426,1928707164,96392454,213114376,396673818,514443284,562755902,679998e3,865136418,983426092,3708173718,3557504664,3474729866,3323011204,4180808110,4030667424,3945269170,3794078908,2507040230,2623762152,2272556026,2390325492,2975484382,3092726480,2738905026,2857194700,3973773121,3856137295,4274053469,4157467219,3371096953,3252932727,3673476453,3556361835,2763173681,2915017791,3064510765,3215307299,2156299017,2307622919,2459735317,2610011675,2081048481,1963412655,1846563261,1729977011,1480485785,1362321559,1243905413,1126790795,878845905,1030690015,645401037,796197571,274084841,425408743,38544885,188821243,3613494426,3731654548,3313212038,3430322568,4082475170,4200115116,3780097726,3896688048,2668221674,2516901860,2366882550,2216610296,3141400786,2989552604,2837966542,2687165888,1202797690,1320957812,1437280870,1554391400,1669664834,1787304780,1906247262,2022837584,265905162,114585348,499347990,349075736,736970802,585122620,972512814,821712160,2595684844,2478443234,2293045232,2174754046,3196267988,3079546586,2895723464,2777952454,3537852828,3687994002,3234156416,3385345166,4142626212,4293295786,3841024952,3992742070,174567692,57326082,410887952,292596766,777231668,660510266,1011452712,893681702,1108339068,1258480242,1343618912,1494807662,1715193156,1865862730,1948373848,2100090966,2701949495,2818666809,3004591147,3122358053,2235061775,2352307457,2535604243,2653899549,3915653703,3764988233,4219352155,4067639125,3444575871,3294430577,3746175075,3594982253,836553431,953270745,600235211,718002117,367585007,484830689,133361907,251657213,2041877159,1891211689,1806599355,1654886325,1568718495,1418573201,1335535747,1184342925];function gn(e){for(var t=[],n=0;n<e.length;n+=4)t.push(e[n]<<24|e[n+1]<<16|e[n+2]<<8|e[n+3]);return t}class mn{constructor(e){if(!(this instanceof mn))throw Error(\"AES must be instanitated with `new`\");Object.defineProperty(this,\"key\",{value:zt(e,!0)}),this._prepare()}_prepare(){var e=Xt[this.key.length];if(null==e)throw new Error(\"invalid key size (must be 16, 24 or 32 bytes)\");this._Ke=[],this._Kd=[];for(var t=0;t<=e;t++)this._Ke.push([0,0,0,0]),this._Kd.push([0,0,0,0]);var n,s=4*(e+1),r=this.key.length/4,i=gn(this.key);for(t=0;t<r;t++)n=t>>2,this._Ke[n][t%4]=i[t],this._Kd[e-n][t%4]=i[t];for(var o,a=0,c=r;c<s;){if(o=i[r-1],i[0]^=en[o>>16&255]<<24^en[o>>8&255]<<16^en[255&o]<<8^en[o>>24&255]^Zt[a]<<24,a+=1,8!=r)for(t=1;t<r;t++)i[t]^=i[t-1];else{for(t=1;t<r/2;t++)i[t]^=i[t-1];o=i[r/2-1],i[r/2]^=en[255&o]^en[o>>8&255]<<8^en[o>>16&255]<<16^en[o>>24&255]<<24;for(t=r/2+1;t<r;t++)i[t]^=i[t-1]}for(t=0;t<r&&c<s;)u=c>>2,h=c%4,this._Ke[u][h]=i[t],this._Kd[e-u][h]=i[t++],c++}for(var u=1;u<e;u++)for(var h=0;h<4;h++)o=this._Kd[u][h],this._Kd[u][h]=ln[o>>24&255]^dn[o>>16&255]^pn[o>>8&255]^fn[255&o]}encrypt(e){if(16!=e.length)throw new Error(\"invalid plaintext size (must be 16 bytes)\");for(var t=this._Ke.length-1,n=[0,0,0,0],s=gn(e),r=0;r<4;r++)s[r]^=this._Ke[0][r];for(var i=1;i<t;i++){for(r=0;r<4;r++)n[r]=nn[s[r]>>24&255]^sn[s[(r+1)%4]>>16&255]^rn[s[(r+2)%4]>>8&255]^on[255&s[(r+3)%4]]^this._Ke[i][r];s=n.slice()}var o,a=Jt(16);for(r=0;r<4;r++)o=this._Ke[t][r],a[4*r]=255&(en[s[r]>>24&255]^o>>24),a[4*r+1]=255&(en[s[(r+1)%4]>>16&255]^o>>16),a[4*r+2]=255&(en[s[(r+2)%4]>>8&255]^o>>8),a[4*r+3]=255&(en[255&s[(r+3)%4]]^o);return a}decrypt(e){if(16!=e.length)throw new Error(\"invalid ciphertext size (must be 16 bytes)\");for(var t=this._Kd.length-1,n=[0,0,0,0],s=gn(e),r=0;r<4;r++)s[r]^=this._Kd[0][r];for(var i=1;i<t;i++){for(r=0;r<4;r++)n[r]=an[s[r]>>24&255]^cn[s[(r+3)%4]>>16&255]^un[s[(r+2)%4]>>8&255]^hn[255&s[(r+1)%4]]^this._Kd[i][r];s=n.slice()}var o,a=Jt(16);for(r=0;r<4;r++)o=this._Kd[t][r],a[4*r]=255&(tn[s[r]>>24&255]^o>>24),a[4*r+1]=255&(tn[s[(r+3)%4]>>16&255]^o>>16),a[4*r+2]=255&(tn[s[(r+2)%4]>>8&255]^o>>8),a[4*r+3]=255&(tn[255&s[(r+1)%4]]^o);return a}}class yn{constructor(e){if(!(this instanceof yn))throw Error(\"AES must be instanitated with `new`\");this.description=\"Electronic Code Block\",this.name=\"ecb\",this._aes=new mn(e)}encrypt(e){if((e=zt(e)).length%16!=0)throw new Error(\"invalid plaintext size (must be multiple of 16 bytes)\");for(var t=Jt(e.length),n=Jt(16),s=0;s<e.length;s+=16)Gt(e,n,0,s,s+16),Gt(n=this._aes.encrypt(n),t,s);return t}decrypt(e){if((e=zt(e)).length%16!=0)throw new Error(\"invalid ciphertext size (must be multiple of 16 bytes)\");for(var t=Jt(e.length),n=Jt(16),s=0;s<e.length;s+=16)Gt(e,n,0,s,s+16),Gt(n=this._aes.decrypt(n),t,s);return t}}class _n{constructor(e,t){if(!(this instanceof _n))throw Error(\"AES must be instanitated with `new`\");if(this.description=\"Cipher Block Chaining\",this.name=\"cbc\",t){if(16!=t.length)throw new Error(\"invalid initialation vector size (must be 16 bytes)\")}else t=Jt(16);this._lastCipherblock=zt(t,!0),this._aes=new mn(e)}encrypt(e){if((e=zt(e)).length%16!=0)throw new Error(\"invalid plaintext size (must be multiple of 16 bytes)\");for(var t=Jt(e.length),n=Jt(16),s=0;s<e.length;s+=16){Gt(e,n,0,s,s+16);for(var r=0;r<16;r++)n[r]^=this._lastCipherblock[r];this._lastCipherblock=this._aes.encrypt(n),Gt(this._lastCipherblock,t,s)}return t}decrypt(e){if((e=zt(e)).length%16!=0)throw new Error(\"invalid ciphertext size (must be multiple of 16 bytes)\");for(var t=Jt(e.length),n=Jt(16),s=0;s<e.length;s+=16){Gt(e,n,0,s,s+16),n=this._aes.decrypt(n);for(var r=0;r<16;r++)t[s+r]=n[r]^this._lastCipherblock[r];Gt(e,this._lastCipherblock,0,s,s+16)}return t}}class wn{constructor(e,t,n){if(!(this instanceof wn))throw Error(\"AES must be instanitated with `new`\");if(this.description=\"Cipher Feedback\",this.name=\"cfb\",t){if(16!=t.length)throw new Error(\"invalid initialation vector size (must be 16 size)\")}else t=Jt(16);n||(n=1),this.segmentSize=n,this._shiftRegister=zt(t,!0),this._aes=new mn(e)}encrypt(e){if(e.length%this.segmentSize!=0)throw new Error(\"invalid plaintext size (must be segmentSize bytes)\");for(var t,n=zt(e,!0),s=0;s<n.length;s+=this.segmentSize){t=this._aes.encrypt(this._shiftRegister);for(var r=0;r<this.segmentSize;r++)n[s+r]^=t[r];Gt(this._shiftRegister,this._shiftRegister,0,this.segmentSize),Gt(n,this._shiftRegister,16-this.segmentSize,s,s+this.segmentSize)}return n}decrypt(e){if(e.length%this.segmentSize!=0)throw new Error(\"invalid ciphertext size (must be segmentSize bytes)\");for(var t,n=zt(e,!0),s=0;s<n.length;s+=this.segmentSize){t=this._aes.encrypt(this._shiftRegister);for(var r=0;r<this.segmentSize;r++)n[s+r]^=t[r];Gt(this._shiftRegister,this._shiftRegister,0,this.segmentSize),Gt(e,this._shiftRegister,16-this.segmentSize,s,s+this.segmentSize)}return n}}class vn{constructor(e,t){if(!(this instanceof vn))throw Error(\"AES must be instanitated with `new`\");if(this.description=\"Output Feedback\",this.name=\"ofb\",t){if(16!=t.length)throw new Error(\"invalid initialation vector size (must be 16 bytes)\")}else t=Jt(16);this._lastPrecipher=zt(t,!0),this._lastPrecipherIndex=16,this._aes=new mn(e)}encrypt(e){for(var t=zt(e,!0),n=0;n<t.length;n++)16===this._lastPrecipherIndex&&(this._lastPrecipher=this._aes.encrypt(this._lastPrecipher),this._lastPrecipherIndex=0),t[n]^=this._lastPrecipher[this._lastPrecipherIndex++];return t}decrypt(e){return this.encrypt(e)}}class In{constructor(e){if(!(this instanceof In))throw Error(\"Counter must be instanitated with `new`\");0===e||e||(e=1),\"number\"==typeof e?(this._counter=Jt(16),this.setValue(e)):this.setBytes(e)}setValue(e){if(\"number\"!=typeof e||parseInt(e)!=e)throw new Error(\"invalid counter value (must be an integer)\");if(e>Number.MAX_SAFE_INTEGER)throw new Error(\"integer value out of safe range\");for(var t=15;t>=0;--t)this._counter[t]=e%256,e=parseInt(e/256)}setBytes(e){if(16!=(e=zt(e,!0)).length)throw new Error(\"invalid counter bytes size (must be 16 bytes)\");this._counter=e}increment(){for(var e=15;e>=0;e--){if(255!==this._counter[e]){this._counter[e]++;break}this._counter[e]=0}}}class Sn{constructor(e,t){if(!(this instanceof Sn))throw Error(\"AES must be instanitated with `new`\");this.description=\"Counter\",this.name=\"ctr\",t instanceof In||(t=new In(t)),this._counter=t,this._remainingCounter=null,this._remainingCounterIndex=16,this._aes=new mn(e)}encrypt(e){for(var t=zt(e,!0),n=0;n<t.length;n++)16===this._remainingCounterIndex&&(this._remainingCounter=this._aes.encrypt(this._counter._counter),this._remainingCounterIndex=0,this._counter.increment()),t[n]^=this._remainingCounter[this._remainingCounterIndex++];return t}decrypt(e){return this.encrypt(e)}}var bn={AES:mn,Counter:In,ModeOfOperation:{ecb:yn,cbc:_n,cfb:wn,ofb:vn,ctr:Sn},utils:{hex:Qt,utf8:Yt},padding:{pkcs7:{pad:function(e){var t=16-(e=zt(e,!0)).length%16,n=Jt(e.length+t);Gt(e,n);for(var s=e.length;s<n.length;s++)n[s]=t;return n},strip:function(e){if((e=zt(e,!0)).length<16)throw new Error(\"PKCS#7 invalid length\");var t=e[e.length-1];if(t>16)throw new Error(\"PKCS#7 padding byte out of range\");for(var n=e.length-t,s=0;s<t;s++)if(e[n+s]!==t)throw new Error(\"PKCS#7 invalid padding byte\");var r=Jt(n);return Gt(e,r,0,0,n),r}}},_arrayTest:{coerceArray:zt,createArray:Jt,copyArray:Gt}};function kn(e,t,n){const s=new Uint8Array(uni.base64ToArrayBuffer(t)),r=bn.utils.utf8.toBytes(n),i=bn.utils.utf8.toBytes(e),o=new bn.ModeOfOperation.cbc(s,r),a=bn.padding.pkcs7.pad(i),c=o.encrypt(a);return uni.arrayBufferToBase64(c)}const An={code:2e4,message:\"System error\"},Pn={code:20101,message:\"Invalid client\"},Tn={code:20102,message:\"Get encrypt key failed\"},Cn={10001:\"Secure network is not supported on current playground or unimpsdk\",10003:\"Config missing in current app. If the problem pesist, please contact DCloud.\",10009:\"Encrypt payload failed\",10010:\"Decrypt response failed\"};function xn(e){const{errSubject:t,subject:n,errCode:s,errMsg:r,code:i,message:o,cause:a}=e||{};return new te({subject:t||n||\"uni-secure-network\",code:s||i||An.code,message:r||o,cause:a})}let On,En,Ln=null;class Rn extends Bt{constructor(e){super(e),this.clientType=\"mp-weixin\",this.userEncryptKey=null}isLogin(){return!!this.scopedGlobalCache.mpWeixinCode||!!this.scopedGlobalCache.mpWeixinOpenid}async prepare(){if(!this.isLogin()){if(!this.scopedGlobalCache.initPromise)throw new Error(\"`uniCloud.initSecureNetworkByWeixin` has not yet been called\");if(await this.scopedGlobalCache.initPromise,!this.isLogin())throw new Error(\"uniCloud.initSecureNetworkByWeixin` has not yet been called or successfully excuted\")}}async getUserEncryptKey(){if(this.userEncryptKey)return this.userEncryptKey;if(Ln&&Ln.expireTime){const e=Date.now();if(Ln.expireTime-e>0)return this.userEncryptKey=Ln,this.userEncryptKey}return new Promise(((e,t)=>{uni.getUserCryptoManager().getLatestUserKey({success:t=>{Ln=t,this.userEncryptKey=t,e(this.userEncryptKey)},fail:e=>{t(xn({...Tn,cause:e}))}})}))}getWxAppId(){return wx.getAccountInfoSync().miniProgram.appId}async platformGetSignOption(){const{encryptKey:e,iv:t,version:n}=await this.getUserEncryptKey();return{verifyClientSign:kn(JSON.stringify({data:JSON.stringify({}),appId:this.appId,deviceId:this.deviceId,wxAppId:this.getWxAppId(),simulator:\"devtools\"===ce().platform,timestamp:Date.now()}),e,t),encryptKeyId:n,mpWeixinCode:this.scopedGlobalCache.mpWeixinCode,mpWeixinOpenid:this.scopedGlobalCache.mpWeixinOpenid}}async platformEncryptData(e){const{encryptKey:t,iv:n,version:s}=await this.getUserEncryptKey(),r={secretType:this.secretType,encryptKeyId:s,mpWeixinCode:this.scopedGlobalCache.mpWeixinCode,mpWeixinOpenid:this.scopedGlobalCache.mpWeixinOpenid};return this.secretType===jt?{content:e,_uniCloudOptions:r}:{content:kn(JSON.stringify({data:JSON.stringify(e),appId:this.appId,deviceId:this.deviceId,wxAppId:this.getWxAppId(),simulator:\"devtools\"===ce().platform,timestamp:Date.now()}),t,n),_uniCloudOptions:r}}async platformDecryptResult(e){const{content:t}=e,{encryptKey:n,iv:s}=await this.getUserEncryptKey();return JSON.parse(function(e,t,n){const s=new Uint8Array(uni.base64ToArrayBuffer(e)),r=new Uint8Array(uni.base64ToArrayBuffer(t)),i=bn.utils.utf8.toBytes(n),o=new bn.ModeOfOperation.cbc(r,i),a=bn.padding.pkcs7.strip(o.decrypt(s));return bn.utils.utf8.fromBytes(a)}(t,n,s))}isClientKeyNotFound(){return!1}}function Un(e){const t=[\"hasClientKey\",\"encryptGetClientKeyPayload\",\"setClientKey\",\"encrypt\",\"decrypt\"],n={};for(let s=0;s<t.length;s++){const r=t[s];n[r]=function(...t){return new Promise(((n,s)=>{\"function\"==typeof e[r]?e[r](...t,(function({type:e,data:t,errCode:r,errMsg:i,errSubject:o,message:a}={}){\"success\"===e?n(t):s(xn({errCode:r,errMsg:Cn[r]||i||a,errSubject:o}))})):s(xn({message:\"请检查manifest.json内是否开启安全网络模块另外注意标准基座不支持安全网络模块\"}))}))}}return n}class Nn extends Bt{constructor(e){super(e),this.clientType=\"app\",this.appUtils={...Un(uni.requireNativePlugin(\"plus\"))},this.systemInfo=On||(On=ce())}async hasClientKey(){return this._hasClientKey=await this.appUtils.hasClientKey({provider:this.provider,spaceId:this.spaceId}),this._hasClientKey}async getAppClientKey(){const{data:e,key:t}=await this.appUtils.encryptGetClientKeyPayload({data:JSON.stringify({})}),n=(await this.uniCloudIns.callFunction({name:\"DCloud-clientDB\",data:{redirectTo:\"encryption\",action:\"getAppClientKey\",data:e,key:t}})).result||{};if(0!==n.errCode)throw function(e){return new te({subject:e.errSubject||\"uni-secure-network\",code:e.errCode||e.code||An.code,message:e.errMsg||e.message})}(n);const{clientKey:s,key:r}=n;await this.appUtils.setClientKey({provider:this.provider,spaceId:this.spaceId,clientKey:s,key:r})}async ensureClientKey({forceUpdate:e=!1}={}){if(!0!==await this.hasClientKey()||e)return e&&this.scopedGlobalCache.initPromise&&this.scopedGlobalCache.initStatus===l||!e&&this.scopedGlobalCache.initPromise&&this.scopedGlobalCache.initStatus!==p||(this.scopedGlobalCache.initPromise=this.getAppClientKey(),this.scopedGlobalCache.initPromise.then((e=>{this.scopedGlobalCache.initStatus=d})).catch((e=>{throw this.scopedGlobalCache.initStatus=p,e})),this.scopedGlobalCache.initStatus=l),this.scopedGlobalCache.initPromise}async prepare({forceUpdate:e=!1}={}){await this.ensureClientKey({forceUpdate:e})}async platformGetSignOption(){const{data:e,key:t}=await this.appUtils.encrypt({provider:this.provider,spaceId:this.spaceId,data:JSON.stringify({})});return{verifyClientSign:e,encryptKeyId:t}}async platformEncryptData(e){const{data:t,key:n}=await this.appUtils.encrypt({provider:this.provider,spaceId:this.spaceId,data:JSON.stringify(e)}),s={secretType:this.secretType,encryptKeyId:n};return this.secretType===jt?{content:e,_uniCloudOptions:s}:{content:t,_uniCloudOptions:s}}async platformDecryptResult(e){const{content:t,_uniCloudOptions:n={}}=e,s=n.encryptKeyId,r=await this.appUtils.decrypt({provider:this.provider,spaceId:this.spaceId,data:t,key:s});return JSON.parse(r.data)}isClientKeyNotFound(e={}){const t=e.result||{};return 70009===t.errCode&&\"uni-secure-network\"===t.errSubject}}function Dn({secretType:e}={}){return e===Kt||e===jt||e===$t}function Mn({name:e,data:t={}}={}){return\"app\"===P&&\"DCloud-clientDB\"===e&&\"encryption\"===t.redirectTo&&\"getAppClientKey\"===t.action}function qn({provider:e,spaceId:t,functionName:n}={}){const{appId:s,uniPlatform:r,osName:i}=ce();let o=r;\"app\"===r&&(o=i);const a=function({provider:e,spaceId:t}={}){const n=A;if(!n)return{};e=function(e){return\"tencent\"===e?\"tcb\":e}(e);const s=n.find((n=>n.provider===e&&n.spaceId===t));return s&&s.config}({provider:e,spaceId:t});if(!a||!a.accessControl||!a.accessControl.enable)return!1;const c=a.accessControl.function||{},u=Object.keys(c);if(0===u.length)return!0;const h=function(e,t){let n,s,r;for(let i=0;i<e.length;i++){const o=e[i];o!==t?\"*\"!==o?o.split(\",\").map((e=>e.trim())).indexOf(t)>-1&&(s=o):r=o:n=o}return n||s||r}(u,n);if(!h)return!1;if((c[h]||[]).find(((e={})=>e.appId===s&&(e.platform||\"\").toLowerCase()===o.toLowerCase())))return!0;throw console.error(`此应用[appId: ${s}, platform: ${o}]不在云端配置的允许访问的应用列表内参考https://uniapp.dcloud.net.cn/uniCloud/secure-network.html#verify-client`),xn(Pn)}function Fn({functionName:e,result:t,logPvd:n}){if(S&&this.__dev__.debugLog&&t&&t.requestId){const s=JSON.stringify({spaceId:this.config.spaceId,functionName:e,requestId:t.requestId});console.log(`[${n}-request]${s}[/${n}-request]`)}}function Kn(e){const t=e.callFunction,n=function(n){const s=n.name;n.data=Rt.call(e,{data:n.data});const r={aliyun:\"aliyun\",tencent:\"tcb\",tcb:\"tcb\",alipay:\"alipay\"}[this.config.provider],i=Dn(n),o=Mn(n),a=i||o;return t.call(this,n).then((e=>(e.errCode=0,!a&&Fn.call(this,{functionName:s,result:e,logPvd:r}),Promise.resolve(e))),(e=>(!a&&Fn.call(this,{functionName:s,result:e,logPvd:r}),e&&e.message&&(e.message=function({message:e=\"\",extraInfo:t={},formatter:n=[]}={}){for(let s=0;s<n.length;s++){const{rule:r,content:i,mode:o}=n[s],a=e.match(r);if(!a)continue;let c=i;for(let e=1;e<a.length;e++)c=qt(c,`{$${e}}`,a[e]);for(const e in t)c=qt(c,`{${e}}`,t[e]);return\"replace\"===o?c:e+c}return e}({message:`[${n.name}]: ${e.message}`,formatter:Nt,extraInfo:{functionName:s}})),Promise.reject(e))))};e.callFunction=function(t){const{provider:s,spaceId:r}=e.config,i=t.name;let o,a;if(t.data=t.data||{},S&&e.__dev__.debugInfo&&!e.__dev__.debugInfo.forceRemote&&C?(e._callCloudFunction||(e._callCloudFunction=n,e._callLocalFunction=Ut),o=Ut):o=n,o=o.bind(e),Mn(t))a=n.call(e,t);else if(function({name:e,data:t={}}){return\"mp-weixin\"===P&&\"uni-id-co\"===e&&\"secureNetworkHandshakeByWeixin\"===t.method}(t))a=o.call(e,t);else if(Dn(t)){a=new En({secretType:t.secretType,uniCloudIns:e}).wrapEncryptDataCallFunction(n.bind(e))(t)}else if(qn({provider:s,spaceId:r,functionName:i})){a=new En({secretType:t.secretType,uniCloudIns:e}).wrapVerifyClientCallFunction(n.bind(e))(t)}else a=o(t);return Object.defineProperty(a,\"result\",{get:()=>(console.warn(\"当前返回结果为Promise类型不可直接访问其result属性详情请参考https://uniapp.dcloud.net.cn/uniCloud/faq?id=promise\"),{})}),a.then((e=>(\"undefined\"!=typeof UTSJSONObject&&(e.result=new UTSJSONObject(e.result)),e)))}}En=\"mp-weixin\"!==P&&\"app\"!==P?class{constructor(){throw xn({message:`Platform ${P} is not supported by secure network`})}}:k?\"mp-weixin\"===P?Rn:Nn:class{constructor(){throw xn({message:`Platform ${P} is not enabled, please check whether secure network module is enabled in your manifest.json`})}};const jn=Symbol(\"CLIENT_DB_INTERNAL\");function $n(e,t){return e.then=\"DoNotReturnProxyWithAFunctionNamedThen\",e._internalType=jn,e.inspect=null,e.__v_raw=void 0,new Proxy(e,{get(e,n,s){if(\"_uniClient\"===n)return null;if(\"symbol\"==typeof n)return e[n];if(n in e||\"string\"!=typeof n){const t=e[n];return\"function\"==typeof t?t.bind(e):t}return t.get(e,n,s)}})}function Bn(e){return{on:(t,n)=>{e[t]=e[t]||[],e[t].indexOf(n)>-1||e[t].push(n)},off:(t,n)=>{e[t]=e[t]||[];const s=e[t].indexOf(n);-1!==s&&e[t].splice(s,1)}}}const Wn=[\"db.Geo\",\"db.command\",\"command.aggregate\"];function Hn(e,t){return Wn.indexOf(`${e}.${t}`)>-1}function zn(e){switch(f(e=se(e))){case\"array\":return e.map((e=>zn(e)));case\"object\":return e._internalType===jn||Object.keys(e).forEach((t=>{e[t]=zn(e[t])})),e;case\"regexp\":return{$regexp:{source:e.source,flags:e.flags}};case\"date\":return{$date:e.toISOString()};default:return e}}function Jn(e){return e&&e.content&&e.content.$method}class Gn{constructor(e,t,n){this.content=e,this.prevStage=t||null,this.udb=null,this._database=n}toJSON(){let e=this;const t=[e.content];for(;e.prevStage;)e=e.prevStage,t.push(e.content);return{$db:t.reverse().map((e=>({$method:e.$method,$param:zn(e.$param)})))}}toString(){return JSON.stringify(this.toJSON())}getAction(){const e=this.toJSON().$db.find((e=>\"action\"===e.$method));return e&&e.$param&&e.$param[0]}getCommand(){return{$db:this.toJSON().$db.filter((e=>\"action\"!==e.$method))}}get isAggregate(){let e=this;for(;e;){const t=Jn(e),n=Jn(e.prevStage);if(\"aggregate\"===t&&\"collection\"===n||\"pipeline\"===t)return!0;e=e.prevStage}return!1}get isCommand(){let e=this;for(;e;){if(\"command\"===Jn(e))return!0;e=e.prevStage}return!1}get isAggregateCommand(){let e=this;for(;e;){const t=Jn(e),n=Jn(e.prevStage);if(\"aggregate\"===t&&\"command\"===n)return!0;e=e.prevStage}return!1}getNextStageFn(e){const t=this;return function(){return Vn({$method:e,$param:zn(Array.from(arguments))},t,t._database)}}get count(){return this.isAggregate?this.getNextStageFn(\"count\"):function(){return this._send(\"count\",Array.from(arguments))}}get remove(){return this.isCommand?this.getNextStageFn(\"remove\"):function(){return this._send(\"remove\",Array.from(arguments))}}get(){return this._send(\"get\",Array.from(arguments))}get add(){return this.isCommand?this.getNextStageFn(\"add\"):function(){return this._send(\"add\",Array.from(arguments))}}update(){return this._send(\"update\",Array.from(arguments))}end(){return this._send(\"end\",Array.from(arguments))}get set(){return this.isCommand?this.getNextStageFn(\"set\"):function(){throw new Error(\"JQL禁止使用set方法\")}}_send(e,t){const n=this.getAction(),s=this.getCommand();if(s.$db.push({$method:e,$param:zn(t)}),S){const e=s.$db.find((e=>\"collection\"===e.$method)),t=e&&e.$param;t&&1===t.length&&\"string\"==typeof e.$param[0]&&e.$param[0].indexOf(\",\")>-1&&console.warn(\"检测到使用JQL语法联表查询时未使用getTemp先过滤主表数据在主表数据量大的情况下可能会查询缓慢。\\n- 如何优化请参考此文档https://uniapp.dcloud.net.cn/uniCloud/jql?id=lookup-with-temp \\n- 如果主表数据量很小请忽略此信息,项目发行时不会出现此提示。\")}return this._database._callCloudFunction({action:n,command:s})}}function Vn(e,t,n){return $n(new Gn(e,t,n),{get(e,t){let s=\"db\";return e&&e.content&&(s=e.content.$method),Hn(s,t)?Vn({$method:t},e,n):function(){return Vn({$method:t,$param:zn(Array.from(arguments))},e,n)}}})}function Yn({path:e,method:t}){return class{constructor(){this.param=Array.from(arguments)}toJSON(){return{$newDb:[...e.map((e=>({$method:e}))),{$method:t,$param:this.param}]}}toString(){return JSON.stringify(this.toJSON())}}}function Qn(e,t={}){return $n(new e(t),{get:(e,t)=>Hn(\"db\",t)?Vn({$method:t},null,e):function(){return Vn({$method:t,$param:zn(Array.from(arguments))},null,e)}})}class Xn extends class{constructor({uniClient:e={},isJQL:t=!1}={}){this._uniClient=e,this._authCallBacks={},this._dbCallBacks={},e._isDefault&&(this._dbCallBacks=L(\"_globalUniCloudDatabaseCallback\")),t||(this.auth=Bn(this._authCallBacks)),this._isJQL=t,Object.assign(this,Bn(this._dbCallBacks)),this.env=$n({},{get:(e,t)=>({$env:t})}),this.Geo=$n({},{get:(e,t)=>Yn({path:[\"Geo\"],method:t})}),this.serverDate=Yn({path:[],method:\"serverDate\"}),this.RegExp=Yn({path:[],method:\"RegExp\"})}getCloudEnv(e){if(\"string\"!=typeof e||!e.trim())throw new Error(\"getCloudEnv参数错误\");return{$env:e.replace(\"$cloudEnv_\",\"\")}}_callback(e,t){const n=this._dbCallBacks;n[e]&&n[e].forEach((e=>{e(...t)}))}_callbackAuth(e,t){const n=this._authCallBacks;n[e]&&n[e].forEach((e=>{e(...t)}))}multiSend(){const e=Array.from(arguments),t=e.map((e=>{const t=e.getAction(),n=e.getCommand();if(\"getTemp\"!==n.$db[n.$db.length-1].$method)throw new Error(\"multiSend只支持子命令内使用getTemp\");return{action:t,command:n}}));return this._callCloudFunction({multiCommand:t,queryList:e})}}{_parseResult(e){return this._isJQL?e.result:e}_callCloudFunction({action:e,command:t,multiCommand:n,queryList:s}){function r(e,t){if(n&&s)for(let n=0;n<s.length;n++){const r=s[n];r.udb&&\"function\"==typeof r.udb.setResult&&(t?r.udb.setResult(t):r.udb.setResult(e.result.dataList[n]))}}const i=this,o=this._isJQL?\"databaseForJQL\":\"database\";function a(e){return i._callback(\"error\",[e]),M(q(o,\"fail\"),e).then((()=>M(q(o,\"complete\"),e))).then((()=>(r(null,e),Y(j,{type:W,content:e}),Promise.reject(e))))}const c=M(q(o,\"invoke\")),u=this._uniClient;return c.then((()=>u.callFunction({name:\"DCloud-clientDB\",type:h,data:{action:e,command:t,multiCommand:n}}))).then((e=>{const{code:t,message:n,token:s,tokenExpired:c,systemInfo:u=[]}=e.result;if(u)for(let e=0;e<u.length;e++){const{level:t,message:n,detail:s}=u[e],r=console[\"app\"===P&&\"warn\"===t?\"error\":t]||console.log;let i=\"[System Info]\"+n;s&&(i=`${i}\\n详细信息${s}`),r(i)}if(t){return a(new te({code:t,message:n,requestId:e.requestId}))}e.result.errCode=e.result.errCode||e.result.code,e.result.errMsg=e.result.errMsg||e.result.message,s&&c&&(ie({token:s,tokenExpired:c}),this._callbackAuth(\"refreshToken\",[{token:s,tokenExpired:c}]),this._callback(\"refreshToken\",[{token:s,tokenExpired:c}]),Y(B,{token:s,tokenExpired:c}));const h=[{prop:\"affectedDocs\",tips:\"affectedDocs不再推荐使用请使用inserted/deleted/updated/data.length替代\"},{prop:\"code\",tips:\"code不再推荐使用请使用errCode替代\"},{prop:\"message\",tips:\"message不再推荐使用请使用errMsg替代\"}];for(let t=0;t<h.length;t++){const{prop:n,tips:s}=h[t];if(n in e.result){const t=e.result[n];Object.defineProperty(e.result,n,{get:()=>(console.warn(s),t)})}}return function(e){return M(q(o,\"success\"),e).then((()=>M(q(o,\"complete\"),e))).then((()=>{r(e,null);const t=i._parseResult(e);return Y(j,{type:W,content:t}),Promise.resolve(t)}))}(e)}),(e=>{/fc_function_not_found|FUNCTION_NOT_FOUND/g.test(e.message)&&console.warn(\"clientDB未初始化请在web控制台保存一次schema以开启clientDB\");return a(new te({code:e.code||\"SYSTEM_ERROR\",message:e.message,requestId:e.requestId}))}))}}const Zn=\"token无效跳转登录页面\",es=\"token过期跳转登录页面\",ts={TOKEN_INVALID_TOKEN_EXPIRED:es,TOKEN_INVALID_INVALID_CLIENTID:Zn,TOKEN_INVALID:Zn,TOKEN_INVALID_WRONG_TOKEN:Zn,TOKEN_INVALID_ANONYMOUS_USER:Zn},ns={\"uni-id-token-expired\":es,\"uni-id-check-token-failed\":Zn,\"uni-id-token-not-exist\":Zn,\"uni-id-check-device-feature-failed\":Zn};function ss(e,t){let n=\"\";return n=e?`${e}/${t}`:t,n.replace(/^\\//,\"\")}function rs(e=[],t=\"\"){const n=[],s=[];return e.forEach((e=>{!0===e.needLogin?n.push(ss(t,e.path)):!1===e.needLogin&&s.push(ss(t,e.path))})),{needLoginPage:n,notNeedLoginPage:s}}function is(e){return e.split(\"?\")[0].replace(/^\\//,\"\")}function os(){return function(e){let t=e&&e.$page&&e.$page.fullPath||\"\";return t?(\"/\"!==t.charAt(0)&&(t=\"/\"+t),t):t}(function(){const e=getCurrentPages();return e[e.length-1]}())}function as(){return is(os())}function cs(e=\"\",t={}){if(!e)return!1;if(!(t&&t.list&&t.list.length))return!1;const n=t.list,s=is(e);return n.some((e=>e.pagePath===s))}const us=!!e.uniIdRouter;const{loginPage:hs,routerNeedLogin:ls,resToLogin:ds,needLoginPage:ps,notNeedLoginPage:fs,loginPageInTabBar:gs}=function({pages:t=[],subPackages:n=[],uniIdRouter:s={},tabBar:r={}}=e){const{loginPage:i,needLogin:o=[],resToLogin:a=!0}=s,{needLoginPage:c,notNeedLoginPage:u}=rs(t),{needLoginPage:h,notNeedLoginPage:l}=function(e=[]){const t=[],n=[];return e.forEach((e=>{const{root:s,pages:r=[]}=e,{needLoginPage:i,notNeedLoginPage:o}=rs(r,s);t.push(...i),n.push(...o)})),{needLoginPage:t,notNeedLoginPage:n}}(n);return{loginPage:i,routerNeedLogin:o,resToLogin:a,needLoginPage:[...c,...h],notNeedLoginPage:[...u,...l],loginPageInTabBar:cs(i,r)}}();if(ps.indexOf(hs)>-1)throw new Error(`Login page [${hs}] should not be \"needLogin\", please check your pages.json`);function ms(e){const t=as();if(\"/\"===e.charAt(0))return e;const[n,s]=e.split(\"?\"),r=n.replace(/^\\//,\"\").split(\"/\"),i=t.split(\"/\");i.pop();for(let e=0;e<r.length;e++){const t=r[e];\"..\"===t?i.pop():\".\"!==t&&i.push(t)}return\"\"===i[0]&&i.shift(),\"/\"+i.join(\"/\")+(s?\"?\"+s:\"\")}function ys(e){const t=is(ms(e));return!(fs.indexOf(t)>-1)&&(ps.indexOf(t)>-1||ls.some((t=>function(e,t){return new RegExp(t).test(e)}(e,t))))}function _s({redirect:e}){const t=is(e),n=is(hs);return as()!==n&&t!==n}function ws({api:e,redirect:t}={}){if(!t||!_s({redirect:t}))return;const n=function(e,t){return\"/\"!==e.charAt(0)&&(e=\"/\"+e),t?e.indexOf(\"?\")>-1?e+`&uniIdRedirectUrl=${encodeURIComponent(t)}`:e+`?uniIdRedirectUrl=${encodeURIComponent(t)}`:e}(hs,t);gs?\"navigateTo\"!==e&&\"redirectTo\"!==e||(e=\"switchTab\"):\"switchTab\"===e&&(e=\"navigateTo\");const s={navigateTo:uni.navigateTo,redirectTo:uni.redirectTo,switchTab:uni.switchTab,reLaunch:uni.reLaunch};setTimeout((()=>{s[e]({url:n})}),0)}function vs({url:e}={}){const t={abortLoginPageJump:!1,autoToLoginPage:!1},n=function(){const{token:e,tokenExpired:t}=re();let n;if(e){if(t<Date.now()){const e=\"uni-id-token-expired\";n={errCode:e,errMsg:ns[e]}}}else{const e=\"uni-id-check-token-failed\";n={errCode:e,errMsg:ns[e]}}return n}();if(ys(e)&&n){n.uniIdRedirectUrl=e;if(J($).length>0)return setTimeout((()=>{Y($,n)}),0),t.abortLoginPageJump=!0,t;t.autoToLoginPage=!0}return t}function Is(){!function(){const e=os(),{abortLoginPageJump:t,autoToLoginPage:n}=vs({url:e});t||n&&ws({api:\"redirectTo\",redirect:e})}();const e=[\"navigateTo\",\"redirectTo\",\"reLaunch\",\"switchTab\"];for(let t=0;t<e.length;t++){const n=e[t];uni.addInterceptor(n,{invoke(e){const{abortLoginPageJump:t,autoToLoginPage:s}=vs({url:e.url});return t?e:s?(ws({api:n,redirect:ms(e.url)}),!1):e}})}}function Ss(){this.onResponse((e=>{const{type:t,content:n}=e;let s=!1;switch(t){case\"cloudobject\":s=function(e){if(\"object\"!=typeof e)return!1;const{errCode:t}=e||{};return t in ns}(n);break;case\"clientdb\":s=function(e){if(\"object\"!=typeof e)return!1;const{errCode:t}=e||{};return t in ts}(n)}s&&function(e={}){const t=J($);Z().then((()=>{const n=os();if(n&&_s({redirect:n}))return t.length>0?Y($,Object.assign({uniIdRedirectUrl:n},e)):void(hs&&ws({api:\"navigateTo\",redirect:n}))}))}(n)}))}function bs(e){!function(e){e.onResponse=function(e){G(j,e)},e.offResponse=function(e){V(j,e)}}(e),function(e){e.onNeedLogin=function(e){G($,e)},e.offNeedLogin=function(e){V($,e)},us&&(L(\"_globalUniCloudStatus\").needLoginInit||(L(\"_globalUniCloudStatus\").needLoginInit=!0,Z().then((()=>{Is.call(e)})),ds&&Ss.call(e)))}(e),function(e){e.onRefreshToken=function(e){G(B,e)},e.offRefreshToken=function(e){V(B,e)}}(e)}let ks;const As=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\",Ps=/^(?:[A-Za-z\\d+/]{4})*?(?:[A-Za-z\\d+/]{2}(?:==)?|[A-Za-z\\d+/]{3}=?)?$/;function Ts(){const e=re().token||\"\",t=e.split(\".\");if(!e||3!==t.length)return{uid:null,role:[],permission:[],tokenExpired:0};let n;try{n=JSON.parse((s=t[1],decodeURIComponent(ks(s).split(\"\").map((function(e){return\"%\"+(\"00\"+e.charCodeAt(0).toString(16)).slice(-2)})).join(\"\"))))}catch(e){throw new Error(\"获取当前用户信息出错,详细错误信息为:\"+e.message)}var s;return n.tokenExpired=1e3*n.exp,delete n.exp,delete n.iat,n}ks=\"function\"!=typeof atob?function(e){if(e=String(e).replace(/[\\t\\n\\f\\r ]+/g,\"\"),!Ps.test(e))throw new Error(\"Failed to execute 'atob' on 'Window': The string to be decoded is not correctly encoded.\");var t;e+=\"==\".slice(2-(3&e.length));for(var n,s,r=\"\",i=0;i<e.length;)t=As.indexOf(e.charAt(i++))<<18|As.indexOf(e.charAt(i++))<<12|(n=As.indexOf(e.charAt(i++)))<<6|(s=As.indexOf(e.charAt(i++))),r+=64===n?String.fromCharCode(t>>16&255):64===s?String.fromCharCode(t>>16&255,t>>8&255):String.fromCharCode(t>>16&255,t>>8&255,255&t);return r}:atob;var Cs=n((function(e,t){Object.defineProperty(t,\"__esModule\",{value:!0});const n=\"chooseAndUploadFile:ok\",s=\"chooseAndUploadFile:fail\";function r(e,t){return e.tempFiles.forEach(((e,n)=>{e.name||(e.name=e.path.substring(e.path.lastIndexOf(\"/\")+1)),t&&(e.fileType=t),e.cloudPath=Date.now()+\"_\"+n+e.name.substring(e.name.lastIndexOf(\".\"))})),e.tempFilePaths||(e.tempFilePaths=e.tempFiles.map((e=>e.path))),e}function i(e,t,{onChooseFile:s,onUploadProgress:r}){return t.then((e=>{if(s){const t=s(e);if(void 0!==t)return Promise.resolve(t).then((t=>void 0===t?e:t))}return e})).then((t=>!1===t?{errMsg:n,tempFilePaths:[],tempFiles:[]}:function(e,t,s=5,r){(t=Object.assign({},t)).errMsg=n;const i=t.tempFiles,o=i.length;let a=0;return new Promise((n=>{for(;a<s;)c();function c(){const s=a++;if(s>=o)return void(!i.find((e=>!e.url&&!e.errMsg))&&n(t));const u=i[s];e.uploadFile({provider:u.provider,filePath:u.path,cloudPath:u.cloudPath,fileType:u.fileType,cloudPathAsRealPath:u.cloudPathAsRealPath,onUploadProgress(e){e.index=s,e.tempFile=u,e.tempFilePath=u.path,r&&r(e)}}).then((e=>{u.url=e.fileID,s<o&&c()})).catch((e=>{u.errMsg=e.errMsg||e.message,s<o&&c()}))}}))}(e,t,5,r)))}t.initChooseAndUploadFile=function(e){return function(t={type:\"all\"}){return\"image\"===t.type?i(e,function(e){const{count:t,sizeType:n,sourceType:i=[\"album\",\"camera\"],extension:o}=e;return new Promise(((e,a)=>{uni.chooseImage({count:t,sizeType:n,sourceType:i,extension:o,success(t){e(r(t,\"image\"))},fail(e){a({errMsg:e.errMsg.replace(\"chooseImage:fail\",s)})}})}))}(t),t):\"video\"===t.type?i(e,function(e){const{camera:t,compressed:n,maxDuration:i,sourceType:o=[\"album\",\"camera\"],extension:a}=e;return new Promise(((e,c)=>{uni.chooseVideo({camera:t,compressed:n,maxDuration:i,sourceType:o,extension:a,success(t){const{tempFilePath:n,duration:s,size:i,height:o,width:a}=t;e(r({errMsg:\"chooseVideo:ok\",tempFilePaths:[n],tempFiles:[{name:t.tempFile&&t.tempFile.name||\"\",path:n,size:i,type:t.tempFile&&t.tempFile.type||\"\",width:a,height:o,duration:s,fileType:\"video\",cloudPath:\"\"}]},\"video\"))},fail(e){c({errMsg:e.errMsg.replace(\"chooseVideo:fail\",s)})}})}))}(t),t):i(e,function(e){const{count:t,extension:n}=e;return new Promise(((e,i)=>{let o=uni.chooseFile;if(\"undefined\"!=typeof wx&&\"function\"==typeof wx.chooseMessageFile&&(o=wx.chooseMessageFile),\"function\"!=typeof o)return i({errMsg:s+\" 请指定 type 类型,该平台仅支持选择 image 或 video。\"});o({type:\"all\",count:t,extension:n,success(t){e(r(t))},fail(e){i({errMsg:e.errMsg.replace(\"chooseFile:fail\",s)})}})}))}(t),t)}}})),xs=t(Cs);const Os=\"manual\";function Es(e){return{props:{localdata:{type:Array,default:()=>[]},options:{type:[Object,Array],default:()=>({})},spaceInfo:{type:Object,default:()=>({})},collection:{type:[String,Array],default:\"\"},action:{type:String,default:\"\"},field:{type:String,default:\"\"},orderby:{type:String,default:\"\"},where:{type:[String,Object],default:\"\"},pageData:{type:String,default:\"add\"},pageCurrent:{type:Number,default:1},pageSize:{type:Number,default:20},getcount:{type:[Boolean,String],default:!1},gettree:{type:[Boolean,String],default:!1},gettreepath:{type:[Boolean,String],default:!1},startwith:{type:String,default:\"\"},limitlevel:{type:Number,default:10},groupby:{type:String,default:\"\"},groupField:{type:String,default:\"\"},distinct:{type:[Boolean,String],default:!1},foreignKey:{type:String,default:\"\"},loadtime:{type:String,default:\"auto\"},manual:{type:Boolean,default:!1}},data:()=>({mixinDatacomLoading:!1,mixinDatacomHasMore:!1,mixinDatacomResData:[],mixinDatacomErrorMessage:\"\",mixinDatacomPage:{},mixinDatacomError:null}),created(){this.mixinDatacomPage={current:this.pageCurrent,size:this.pageSize,count:0},this.$watch((()=>{var e=[];return[\"pageCurrent\",\"pageSize\",\"localdata\",\"collection\",\"action\",\"field\",\"orderby\",\"where\",\"getont\",\"getcount\",\"gettree\",\"groupby\",\"groupField\",\"distinct\"].forEach((t=>{e.push(this[t])})),e}),((e,t)=>{if(this.loadtime===Os)return;let n=!1;const s=[];for(let r=2;r<e.length;r++)e[r]!==t[r]&&(s.push(e[r]),n=!0);e[0]!==t[0]&&(this.mixinDatacomPage.current=this.pageCurrent),this.mixinDatacomPage.size=this.pageSize,this.onMixinDatacomPropsChange(n,s)}))},methods:{onMixinDatacomPropsChange(e,t){},mixinDatacomEasyGet({getone:e=!1,success:t,fail:n}={}){this.mixinDatacomLoading||(this.mixinDatacomLoading=!0,this.mixinDatacomErrorMessage=\"\",this.mixinDatacomError=null,this.mixinDatacomGet().then((n=>{this.mixinDatacomLoading=!1;const{data:s,count:r}=n.result;this.getcount&&(this.mixinDatacomPage.count=r),this.mixinDatacomHasMore=s.length<this.pageSize;const i=e?s.length?s[0]:void 0:s;this.mixinDatacomResData=i,t&&t(i)})).catch((e=>{this.mixinDatacomLoading=!1,this.mixinDatacomErrorMessage=e,this.mixinDatacomError=e,n&&n(e)})))},mixinDatacomGet(t={}){let n;t=t||{},n=\"undefined\"!=typeof __uniX&&__uniX?e.databaseForJQL(this.spaceInfo):e.database(this.spaceInfo);const s=t.action||this.action;s&&(n=n.action(s));const r=t.collection||this.collection;n=Array.isArray(r)?n.collection(...r):n.collection(r);const i=t.where||this.where;i&&Object.keys(i).length&&(n=n.where(i));const o=t.field||this.field;o&&(n=n.field(o));const a=t.foreignKey||this.foreignKey;a&&(n=n.foreignKey(a));const c=t.groupby||this.groupby;c&&(n=n.groupBy(c));const u=t.groupField||this.groupField;u&&(n=n.groupField(u));!0===(void 0!==t.distinct?t.distinct:this.distinct)&&(n=n.distinct());const h=t.orderby||this.orderby;h&&(n=n.orderBy(h));const l=void 0!==t.pageCurrent?t.pageCurrent:this.mixinDatacomPage.current,d=void 0!==t.pageSize?t.pageSize:this.mixinDatacomPage.size,p=void 0!==t.getcount?t.getcount:this.getcount,f=void 0!==t.gettree?t.gettree:this.gettree,g=void 0!==t.gettreepath?t.gettreepath:this.gettreepath,m={getCount:p},y={limitLevel:void 0!==t.limitlevel?t.limitlevel:this.limitlevel,startWith:void 0!==t.startwith?t.startwith:this.startwith};return f&&(m.getTree=y),g&&(m.getTreePath=y),n=n.skip(d*(l-1)).limit(d).get(m),n}}}}function Ls(e){return function(t,n={}){n=function(e,t={}){return e.customUI=t.customUI||e.customUI,e.parseSystemError=t.parseSystemError||e.parseSystemError,Object.assign(e.loadingOptions,t.loadingOptions),Object.assign(e.errorOptions,t.errorOptions),\"object\"==typeof t.secretMethods&&(e.secretMethods=t.secretMethods),e}({customUI:!1,loadingOptions:{title:\"加载中...\",mask:!0},errorOptions:{type:\"modal\",retry:!1}},n);const{customUI:s,loadingOptions:r,errorOptions:i,parseSystemError:o}=n,a=!s;return new Proxy({},{get(s,c){switch(c){case\"toString\":return\"[object UniCloudObject]\";case\"toJSON\":return{}}return function({fn:e,interceptorName:t,getCallbackArgs:n}={}){return async function(...s){const r=n?n({params:s}):{};let i,o;try{return await M(q(t,\"invoke\"),{...r}),i=await e(...s),await M(q(t,\"success\"),{...r,result:i}),i}catch(e){throw o=e,await M(q(t,\"fail\"),{...r,error:o}),o}finally{await M(q(t,\"complete\"),o?{...r,error:o}:{...r,result:i})}}}({fn:async function s(...h){let l;a&&uni.showLoading({title:r.title,mask:r.mask});const d={name:t,type:u,data:{method:c,params:h}};\"object\"==typeof n.secretMethods&&function(e,t){const n=t.data.method,s=e.secretMethods||{},r=s[n]||s[\"*\"];r&&(t.secretType=r)}(n,d);let p=!1;try{l=await e.callFunction(d)}catch(e){p=!0,l={result:new te(e)}}const{errSubject:f,errCode:g,errMsg:m,newToken:y}=l.result||{};if(a&&uni.hideLoading(),y&&y.token&&y.tokenExpired&&(ie(y),Y(B,{...y})),g){let e=m;if(p&&o){e=(await o({objectName:t,methodName:c,params:h,errSubject:f,errCode:g,errMsg:m})).errMsg||m}if(a)if(\"toast\"===i.type)uni.showToast({title:e,icon:\"none\"});else{if(\"modal\"!==i.type)throw new Error(`Invalid errorOptions.type: ${i.type}`);{const{confirm:t}=await async function({title:e,content:t,showCancel:n,cancelText:s,confirmText:r}={}){return new Promise(((i,o)=>{uni.showModal({title:e,content:t,showCancel:n,cancelText:s,confirmText:r,success(e){i(e)},fail(){i({confirm:!1,cancel:!0})}})}))}({title:\"提示\",content:e,showCancel:i.retry,cancelText:\"取消\",confirmText:i.retry?\"重试\":\"确定\"});if(i.retry&&t)return s(...h)}}const n=new te({subject:f,code:g,message:m,requestId:l.requestId});throw n.detail=l.result,Y(j,{type:z,content:n}),n}return Y(j,{type:z,content:l.result}),l.result},interceptorName:\"callObject\",getCallbackArgs:function({params:e}={}){return{objectName:t,methodName:c,params:e}}})}})}}function Rs(e){return L(\"_globalUniCloudSecureNetworkCache__{spaceId}\".replace(\"{spaceId}\",e.config.spaceId))}async function Us({openid:e,callLoginByWeixin:t=!1}={}){const n=Rs(this);if(\"mp-weixin\"!==P)throw new Error(`[SecureNetwork] API \\`initSecureNetworkByWeixin\\` is not supported on platform \\`${P}\\``);if(e&&t)throw new Error(\"[SecureNetwork] openid and callLoginByWeixin cannot be passed at the same time\");if(e)return n.mpWeixinOpenid=e,{};const s=await new Promise(((e,t)=>{uni.login({success(t){e(t.code)},fail(e){t(new Error(e.errMsg))}})})),r=this.importObject(\"uni-id-co\",{customUI:!0});return await r.secureNetworkHandshakeByWeixin({code:s,callLoginByWeixin:t}),n.mpWeixinCode=s,{code:s}}async function Ns(e){const t=Rs(this);return t.initPromise||(t.initPromise=Us.call(this,e).then((e=>e)).catch((e=>{throw delete t.initPromise,e}))),t.initPromise}function Ds(e){return function({openid:t,callLoginByWeixin:n=!1}={}){return Ns.call(e,{openid:t,callLoginByWeixin:n})}}function Ms(e){const t={getSystemInfo:uni.getSystemInfo,getPushClientId:uni.getPushClientId};return function(n){return new Promise(((s,r)=>{t[e]({...n,success(e){s(e)},fail(e){r(e)}})}))}}class qs extends class{constructor(){this._callback={}}addListener(e,t){this._callback[e]||(this._callback[e]=[]),this._callback[e].push(t)}on(e,t){return this.addListener(e,t)}removeListener(e,t){if(!t)throw new Error('The \"listener\" argument must be of type function. Received undefined');const n=this._callback[e];if(!n)return;const s=function(e,t){for(let n=e.length-1;n>=0;n--)if(e[n]===t)return n;return-1}(n,t);n.splice(s,1)}off(e,t){return this.removeListener(e,t)}removeAllListener(e){delete this._callback[e]}emit(e,...t){const n=this._callback[e];if(n)for(let e=0;e<n.length;e++)n[e](...t)}}{constructor(){super(),this._uniPushMessageCallback=this._receivePushMessage.bind(this),this._currentMessageId=-1,this._payloadQueue=[]}init(){return Promise.all([Ms(\"getSystemInfo\")(),Ms(\"getPushClientId\")()]).then((([{appId:e}={},{cid:t}={}]=[])=>{if(!e)throw new Error(\"Invalid appId, please check the manifest.json file\");if(!t)throw new Error(\"Invalid push client id\");this._appId=e,this._pushClientId=t,this._seqId=Date.now()+\"-\"+Math.floor(9e5*Math.random()+1e5),this.emit(\"open\"),this._initMessageListener()}),(e=>{throw this.emit(\"error\",e),this.close(),e}))}async open(){return this.init()}_isUniCloudSSE(e){if(\"receive\"!==e.type)return!1;const t=e&&e.data&&e.data.payload;return!(!t||\"UNI_CLOUD_SSE\"!==t.channel||t.seqId!==this._seqId)}_receivePushMessage(e){if(!this._isUniCloudSSE(e))return;const t=e&&e.data&&e.data.payload,{action:n,messageId:s,message:r}=t;this._payloadQueue.push({action:n,messageId:s,message:r}),this._consumMessage()}_consumMessage(){for(;;){const e=this._payloadQueue.find((e=>e.messageId===this._currentMessageId+1));if(!e)break;this._currentMessageId++,this._parseMessagePayload(e)}}_parseMessagePayload(e){const{action:t,messageId:n,message:s}=e;\"end\"===t?this._end({messageId:n,message:s}):\"message\"===t&&this._appendMessage({messageId:n,message:s})}_appendMessage({messageId:e,message:t}={}){this.emit(\"message\",t)}_end({messageId:e,message:t}={}){this.emit(\"end\",t),this.close()}_initMessageListener(){uni.onPushMessage(this._uniPushMessageCallback)}_destroy(){uni.offPushMessage(this._uniPushMessageCallback)}toJSON(){return{appId:this._appId,pushClientId:this._pushClientId,seqId:this._seqId}}close(){this._destroy(),this.emit(\"close\")}}async function Fs(e,t){const n=`http://${e}:${t}/system/ping`;try{const e=await(s={url:n,timeout:500},new Promise(((e,t)=>{ne.request({...s,success(t){e(t)},fail(e){t(e)}})})));return!(!e.data||0!==e.data.code)}catch(e){return!1}var s}async function Ks(e){if(!S)return Promise.resolve();if(\"app\"===P){const{osName:e,osVersion:t}=ce();\"ios\"===e&&function(e){if(!e||\"string\"!=typeof e)return 0;const t=e.match(/^(\\d+)./);return t&&t[1]?parseInt(t[1]):0}(t)>=14&&console.warn(\"iOS 14及以上版本连接uniCloud本地调试服务需要允许客户端查找并连接到本地网络上的设备仅开发期间需要发行后不需要\")}const t=e.__dev__;if(!t.debugInfo)return;const{address:n,servePort:s}=t.debugInfo,{address:r}=await async function(e,t){let n;for(let s=0;s<e.length;s++){const r=e[s];if(await Fs(r,t)){n=r;break}}return{address:n,port:t}}(n,s);if(r)return t.localAddress=r,void(t.localPort=s);const i=console[\"app\"===P?\"error\":\"warn\"];let o=\"\";if(\"remote\"===t.debugInfo.initialLaunchType?(t.debugInfo.forceRemote=!0,o=\"当前客户端和HBuilderX不在同一局域网下或其他网络原因无法连接HBuilderXuniCloud本地调试服务不对当前客户端生效。\\n- 如果不使用uniCloud本地调试服务请直接忽略此信息。\\n- 如需使用uniCloud本地调试服务请将客户端与主机连接到同一局域网下并重新运行到客户端。\"):o=\"无法连接uniCloud本地调试服务请检查当前客户端是否与主机在同一局域网下。\\n- 如需使用uniCloud本地调试服务请将客户端与主机连接到同一局域网下并重新运行到客户端。\",o+=\"\\n- 如果在HBuilderX开启的状态下切换过网络环境请重启HBuilderX后再试\\n- 检查系统防火墙是否拦截了HBuilderX自带的nodejs\\n- 检查是否错误的使用拦截器修改uni.request方法的参数\",\"web\"===P&&(o+=\"\\n- 部分浏览器开启节流模式之后访问本地地址受限,请检查是否启用了节流模式\"),0===P.indexOf(\"mp-\")&&(o+=\"\\n- 小程序中如何使用uniCloud请参考https://uniapp.dcloud.net.cn/uniCloud/publish.html#useinmp\"),!t.debugInfo.forceRemote)throw new Error(o);i(o)}function js(e){e._initPromiseHub||(e._initPromiseHub=new v({createPromise:function(){let t=Promise.resolve();var n;n=1,t=new Promise((e=>{setTimeout((()=>{e()}),n)}));const s=e.auth();return t.then((()=>s.getLoginState())).then((e=>e?Promise.resolve():s.signInAnonymously()))}}))}const $s={tcb:St,tencent:St,aliyun:pe,private:kt,alipay:Lt};let Bs=new class{init(e){let t={};const n=$s[e.provider];if(!n)throw new Error(\"未提供正确的provider参数\");t=n.init(e),S&&function(e){if(!S)return;const t={};e.__dev__=t,t.debugLog=S&&(\"web\"===P&&navigator.userAgent.indexOf(\"HBuilderX\")>0||\"app\"===P);const n=T;n&&!n.code&&(t.debugInfo=n);const s=new v({createPromise:function(){return Ks(e)}});t.initLocalNetwork=function(){return s.exec()}}(t),js(t),Kn(t),function(e){const t=e.uploadFile;e.uploadFile=function(e){return t.call(this,e)}}(t),function(e){e.database=function(t){if(t&&Object.keys(t).length>0)return e.init(t).database();if(this._database)return this._database;const n=Qn(Xn,{uniClient:e});return this._database=n,n},e.databaseForJQL=function(t){if(t&&Object.keys(t).length>0)return e.init(t).databaseForJQL();if(this._databaseForJQL)return this._databaseForJQL;const n=Qn(Xn,{uniClient:e,isJQL:!0});return this._databaseForJQL=n,n}}(t),function(e){e.getCurrentUserInfo=Ts,e.chooseAndUploadFile=xs.initChooseAndUploadFile(e),Object.assign(e,{get mixinDatacom(){return Es(e)}}),e.SSEChannel=qs,e.initSecureNetworkByWeixin=Ds(e),e.importObject=Ls(e)}(t);return[\"callFunction\",\"uploadFile\",\"deleteFile\",\"getTempFileURL\",\"downloadFile\",\"chooseAndUploadFile\"].forEach((e=>{if(!t[e])return;const n=t[e];t[e]=function(){return n.apply(t,Array.from(arguments))},t[e]=function(e,t){return function(n){let s=!1;if(\"callFunction\"===t){const e=n&&n.type||c;s=e!==c}const r=\"callFunction\"===t&&!s,i=this._initPromiseHub.exec();n=n||{};const{success:o,fail:a,complete:u}=ee(n),h=i.then((()=>s?Promise.resolve():M(q(t,\"invoke\"),n))).then((()=>e.call(this,n))).then((e=>s?Promise.resolve(e):M(q(t,\"success\"),e).then((()=>M(q(t,\"complete\"),e))).then((()=>(r&&Y(j,{type:H,content:e}),Promise.resolve(e))))),(e=>s?Promise.reject(e):M(q(t,\"fail\"),e).then((()=>M(q(t,\"complete\"),e))).then((()=>(Y(j,{type:H,content:e}),Promise.reject(e))))));if(!(o||a||u))return h;h.then((e=>{o&&o(e),u&&u(e),r&&Y(j,{type:H,content:e})}),(e=>{a&&a(e),u&&u(e),r&&Y(j,{type:H,content:e})}))}}(t[e],e).bind(t)})),t.init=this.init,t}};(()=>{const e=C;let t={};if(e&&1===e.length)t=e[0],Bs=Bs.init(t),Bs._isDefault=!0;else{const t=[\"auth\",\"callFunction\",\"uploadFile\",\"deleteFile\",\"getTempFileURL\",\"downloadFile\",\"database\",\"getCurrentUSerInfo\",\"importObject\"];let n;n=e&&e.length>0?\"应用有多个服务空间请通过uniCloud.init方法指定要使用的服务空间\":x?\"应用未关联服务空间请在uniCloud目录右键关联服务空间\":\"uni-app cli项目内使用uniCloud需要使用HBuilderX的运行菜单运行项目且需要在uniCloud目录关联服务空间\",t.forEach((e=>{Bs[e]=function(){return console.error(n),Promise.reject(new te({code:\"SYS_ERR\",message:n}))}}))}Object.assign(Bs,{get mixinDatacom(){return Es(Bs)}}),bs(Bs),Bs.addInterceptor=N,Bs.removeInterceptor=D,Bs.interceptObject=F,S&&\"web\"===P&&(window.uniCloud=Bs)})();var Ws=Bs;export{Ws as default};\n","const _b64chars: string[] = [...'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/']\nconst _mkUriSafe = (src: string): string => src.replace(/[+/]/g, (m0: string) => (m0 === '+' ? '-' : '_')).replace(/=+\\$/m, '')\nconst fromUint8Array = (src: Uint8Array, rfc4648 = false): string => {\n let b64 = ''\n for (let i = 0, l = src.length; i < l; i += 3) {\n const [a0, a1, a2] = [src[i], src[i + 1], src[i + 2]]\n const ord = (a0 << 16) | (a1 << 8) | a2\n b64 += _b64chars[ord >>> 18]\n b64 += _b64chars[(ord >>> 12) & 63]\n b64 += typeof a1 !== 'undefined' ? _b64chars[(ord >>> 6) & 63] : '='\n b64 += typeof a2 !== 'undefined' ? _b64chars[ord & 63] : '='\n }\n return rfc4648 ? _mkUriSafe(b64) : b64\n}\nconst _btoa: (s: string) => string =\n typeof btoa === 'function'\n ? (s: string) => btoa(s)\n : (s: string) => {\n if (s.charCodeAt(0) > 255) {\n throw new RangeError('The string contains invalid characters.')\n }\n return fromUint8Array(Uint8Array.from(s, (c: string) => c.charCodeAt(0)))\n }\nconst utob = (src: string): string => unescape(encodeURIComponent(src))\n\nexport default function encode(src: string, rfc4648 = false): string {\n const b64 = _btoa(utob(src))\n return rfc4648 ? _mkUriSafe(b64) : b64\n}\n","/*\n * @Author: weisheng\n * @Date: 2024-03-29 13:29:57\n * @LastEditTime: 2024-04-10 20:18:47\n * @LastEditors: weisheng\n * @Description:\n * @FilePath: \\wot-design-uni\\src\\uni_modules\\wot-design-uni\\components\\wd-toast\\index.ts\n * 记得注释\n */\nimport { provide, ref } from 'vue'\nimport type { Toast, ToastOptions } from './types'\nimport { deepMerge } from '../common/util'\n\n/**\n * useToast 用到的key\n *\n * @internal\n */\nexport const toastDefaultOptionKey = '__TOAST_OPTION__'\n\n// 默认模板\nexport const defaultOptions: ToastOptions = {\n msg: '',\n duration: 2000,\n loadingType: 'outline',\n loadingColor: '#4D80F0',\n iconColor: '#4D80F0',\n iconSize: 42,\n loadingSize: 42,\n customIcon: false,\n position: 'middle',\n show: false,\n zIndex: 100\n}\n\nexport function useToast(selector: string = ''): Toast {\n let timer: ReturnType<typeof setTimeout> | null = null\n const toastOption = ref<ToastOptions>(defaultOptions) // Toast选项\n const toastOptionKey = selector ? toastDefaultOptionKey + selector : toastDefaultOptionKey\n provide(toastOptionKey, toastOption)\n\n const createMethod = (toastOptions: ToastOptions) => {\n // 优先级options->toastOptions->defaultOptions\n return (options: ToastOptions | string) => {\n return show(deepMerge(toastOptions, typeof options === 'string' ? { msg: options } : options) as ToastOptions)\n }\n }\n\n const show = (option: ToastOptions | string) => {\n const options = deepMerge(defaultOptions, typeof option === 'string' ? { msg: option } : option) as ToastOptions\n toastOption.value = deepMerge(options, {\n show: true\n }) as ToastOptions\n // 开始渲染,并在 duration ms之后执行清除\n timer && clearTimeout(timer)\n if (toastOption.value.duration && toastOption.value.duration > 0) {\n timer = setTimeout(() => {\n timer && clearTimeout(timer)\n close()\n }, options.duration)\n }\n }\n\n const loading = createMethod({\n iconName: 'loading',\n duration: 0,\n cover: true\n })\n const success = createMethod({\n iconName: 'success',\n duration: 1500\n })\n const error = createMethod({ iconName: 'error' })\n const warning = createMethod({ iconName: 'warning' })\n const info = createMethod({ iconName: 'info' })\n\n const close = () => {\n toastOption.value = { show: false }\n }\n return {\n show,\n loading,\n success,\n error,\n warning,\n info,\n close\n }\n}\n\nexport const toastIcon = {\n success() {\n return '<svg width=\"42px\" height=\"42px\" viewBox=\"0 0 42 42\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"><title>成功</title><desc>Created with Sketch.</desc><defs><filter x=\"-63.2%\" y=\"-80.0%\" width=\"226.3%\" height=\"260.0%\" filterUnits=\"objectBoundingBox\" id=\"filter-1\"><feOffset dx=\"0\" dy=\"2\" in=\"SourceAlpha\" result=\"shadowOffsetOuter1\"></feOffset><feGaussianBlur stdDeviation=\"2\" in=\"shadowOffsetOuter1\" result=\"shadowBlurOuter1\"></feGaussianBlur><feColorMatrix values=\"0 0 0 0 0.122733141 0 0 0 0 0.710852582 0 0 0 0 0.514812768 0 0 0 1 0\" type=\"matrix\" in=\"shadowBlurOuter1\" result=\"shadowMatrixOuter1\"></feColorMatrix><feMerge><feMergeNode in=\"shadowMatrixOuter1\"></feMergeNode><feMergeNode in=\"SourceGraphic\"></feMergeNode></feMerge></filter><rect id=\"path-2\" x=\"3.4176226\" y=\"5.81442199\" width=\"3\" height=\"8.5\" rx=\"1.5\"></rect><linearGradient x1=\"50%\" y1=\"0.126649064%\" x2=\"50%\" y2=\"100%\" id=\"linearGradient-4\"><stop stop-color=\"#ACFFBD\" stop-opacity=\"0.208123907\" offset=\"0%\"></stop><stop stop-color=\"#10B87C\" offset=\"100%\"></stop></linearGradient></defs><g id=\"规范\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\"><g id=\"反馈-轻提示\" transform=\"translate(-388.000000, -538.000000)\"><g id=\"成功\" transform=\"translate(388.000000, 538.000000)\"><circle id=\"Oval\" fill=\"#34D19D\" opacity=\"0.400000006\" cx=\"21\" cy=\"21\" r=\"20\"></circle><circle id=\"Oval\" fill=\"#34D19D\" cx=\"21\" cy=\"21\" r=\"16\"></circle><g id=\"Group-6\" filter=\"url(#filter-1)\" transform=\"translate(11.500000, 14.000000)\"><mask id=\"mask-3\" fill=\"white\"><use xlink:href=\"#path-2\"></use></mask><use id=\"Rectangle-Copy-24\" fill=\"#C4FFEB\" transform=\"translate(4.917623, 10.064422) rotate(-45.000000) translate(-4.917623, -10.064422) \" xlink:href=\"#path-2\"></use><rect id=\"Rectangle\" fill=\"url(#linearGradient-4)\" mask=\"url(#mask-3)\" transform=\"translate(6.215869, 11.372277) rotate(-45.000000) translate(-6.215869, -11.372277) \" x=\"4.71586891\" y=\"9.52269089\" width=\"3\" height=\"3.69917136\"></rect><rect id=\"Rectangle\" fill=\"#FFFFFF\" transform=\"translate(11.636236, 7.232744) scale(1, -1) rotate(-45.000000) translate(-11.636236, -7.232744) \" x=\"10.1362361\" y=\"-1.02185365\" width=\"3\" height=\"16.5091951\" rx=\"1.5\"></rect></g></g></g></g></svg>'\n },\n warning() {\n return '<svg width=\"42px\" height=\"42px\" viewBox=\"0 0 42 42\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"><title>警告</title><desc>Created with Sketch.</desc> <defs> <filter x=\"-240.0%\" y=\"-60.0%\" width=\"580.0%\" height=\"220.0%\" filterUnits=\"objectBoundingBox\" id=\"filter-1\"><feOffset dx=\"0\" dy=\"2\" in=\"SourceAlpha\" result=\"shadowOffsetOuter1\"></feOffset><feGaussianBlur stdDeviation=\"2\" in=\"shadowOffsetOuter1\" result=\"shadowBlurOuter1\"></feGaussianBlur><feColorMatrix values=\"0 0 0 0 0.824756567 0 0 0 0 0.450356612 0 0 0 0 0.168550194 0 0 0 1 0\" type=\"matrix\" in=\"shadowBlurOuter1\" result=\"shadowMatrixOuter1\"></feColorMatrix><feMerge><feMergeNode in=\"shadowMatrixOuter1\"></feMergeNode> <feMergeNode in=\"SourceGraphic\"></feMergeNode></feMerge></filter></defs><g id=\"规范\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\"><g id=\"反馈-轻提示\" transform=\"translate(-580.000000, -538.000000)\"> <g id=\"警告\" transform=\"translate(580.000000, 538.000000)\"><circle id=\"Oval\" fill=\"#F0883A\" opacity=\"0.400000006\" cx=\"21\" cy=\"21\" r=\"20\"></circle><circle id=\"Oval\" fill=\"#F0883A\" cx=\"21\" cy=\"21\" r=\"16\"></circle><g id=\"Group-6\" filter=\"url(#filter-1)\" transform=\"translate(18.500000, 10.800000)\"><rect id=\"Rectangle\" fill=\"#FFFFFF\" transform=\"translate(2.492935, 7.171583) scale(1, -1) rotate(-360.000000) translate(-2.492935, -7.171583) \" x=\"0.992934699\" y=\"0.955464537\" width=\"3\" height=\"12.4322365\" rx=\"1.5\"></rect><rect id=\"Rectangle-Copy-25\" fill=\"#FFDEC5\" transform=\"translate(2.508751, 17.202636) scale(1, -1) rotate(-360.000000) translate(-2.508751, -17.202636) \" x=\"1.00875134\" y=\"15.200563\" width=\"3\" height=\"4.00414639\" rx=\"1.5\"></rect></g></g></g></g></svg>'\n },\n info() {\n return '<svg width=\"42px\" height=\"42px\" viewBox=\"0 0 42 42\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"><title>常规</title><desc>Created with Sketch.</desc><defs><filter x=\"-300.0%\" y=\"-57.1%\" width=\"700.0%\" height=\"214.3%\" filterUnits=\"objectBoundingBox\" id=\"filter-1\"><feOffset dx=\"0\" dy=\"2\" in=\"SourceAlpha\" result=\"shadowOffsetOuter1\"></feOffset><feGaussianBlur stdDeviation=\"2\" in=\"shadowOffsetOuter1\" result=\"shadowBlurOuter1\"></feGaussianBlur><feColorMatrix values=\"0 0 0 0 0.362700096 0 0 0 0 0.409035039 0 0 0 0 0.520238904 0 0 0 1 0\" type=\"matrix\" in=\"shadowBlurOuter1\" result=\"shadowMatrixOuter1\"></feColorMatrix><feMerge><feMergeNode in=\"shadowMatrixOuter1\"></feMergeNode><feMergeNode in=\"SourceGraphic\"></feMergeNode></feMerge></filter></defs><g id=\"规范\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\"><g id=\"反馈-轻提示\" transform=\"translate(-772.000000, -538.000000)\"><g id=\"常规\" transform=\"translate(772.000000, 538.000000)\"><circle id=\"Oval\" fill=\"#909CB7\" opacity=\"0.4\" cx=\"21\" cy=\"21\" r=\"20\"></circle><circle id=\"Oval\" fill=\"#909CB7\" cx=\"21\" cy=\"21\" r=\"16\"></circle><g id=\"Group-6\" filter=\"url(#filter-1)\" transform=\"translate(18.500000, 9.800000)\"><g id=\"编组-2\" transform=\"translate(2.492935, 10.204709) rotate(-180.000000) translate(-2.492935, -10.204709) translate(0.992935, 0.204709)\"><rect id=\"Rectangle\" fill=\"#FFFFFF\" transform=\"translate(1.500000, 7.000000) scale(1, -1) rotate(-360.000000) translate(-1.500000, -7.000000) \" x=\"0\" y=\"0\" width=\"3\" height=\"14\" rx=\"1.5\"></rect><rect id=\"Rectangle-Copy-25\" fill=\"#EEEEEE\" transform=\"translate(1.500000, 18.000000) scale(1, -1) rotate(-360.000000) translate(-1.500000, -18.000000) \" x=\"0\" y=\"16\" width=\"3\" height=\"4\" rx=\"1.5\"></rect></g></g></g></g></g></svg>'\n },\n error() {\n return '<svg width=\"42px\" height=\"42px\" viewBox=\"0 0 42 42\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"><title>toast</title><desc>Created with Sketch.</desc><defs><linearGradient x1=\"99.6229896%\" y1=\"50.3770104%\" x2=\"0.377010363%\" y2=\"50.3770104%\" id=\"linearGradient-1\"><stop stop-color=\"#FFDFDF\" offset=\"0%\"></stop><stop stop-color=\"#F9BEBE\" offset=\"100%\"></stop></linearGradient><linearGradient x1=\"0.377010363%\" y1=\"50.3770104%\" x2=\"99.6229896%\" y2=\"50.3770104%\" id=\"linearGradient-2\"><stop stop-color=\"#FFDFDF\" offset=\"0%\"></stop><stop stop-color=\"#F9BEBE\" offset=\"100%\"></stop></linearGradient></defs><g id=\"规范\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\"><g id=\"反馈-轻提示\" transform=\"translate(-196.000000, -538.000000)\"> <g id=\"toast\" transform=\"translate(196.000000, 538.000000)\"><circle id=\"Oval\" fill=\"#FA4350\" opacity=\"0.400000006\" cx=\"21\" cy=\"21\" r=\"20\"></circle><circle id=\"Oval\" fill=\"#FA4350\" opacity=\"0.900000036\" cx=\"21\" cy=\"21\" r=\"16\"></circle><rect id=\"矩形\" fill=\"#FFDFDF\" transform=\"translate(21.071068, 21.071068) rotate(-225.000000) translate(-21.071068, -21.071068) \" x=\"12.5710678\" y=\"19.5710678\" width=\"17\" height=\"3\" rx=\"1.5\"></rect><rect id=\"矩形\" fill=\"url(#linearGradient-1)\" transform=\"translate(19.303301, 22.838835) rotate(-225.000000) translate(-19.303301, -22.838835) \" x=\"17.3033009\" y=\"21.3388348\" width=\"4\" height=\"3\"></rect><rect id=\"矩形\" fill=\"url(#linearGradient-2)\" transform=\"translate(22.838835, 19.303301) rotate(-225.000000) translate(-22.838835, -19.303301) \" x=\"20.8388348\" y=\"17.8033009\" width=\"4\" height=\"3\"></rect><rect id=\"矩形\" fill=\"#FFFFFF\" transform=\"translate(21.071068, 21.071068) rotate(-315.000000) translate(-21.071068, -21.071068) \" x=\"12.5710678\" y=\"19.5710678\" width=\"17\" height=\"3\" rx=\"1.5\"></rect></g></g></g></svg>'\n }\n}\n","/*\n * @Author: weisheng\n * @Date: 2023-06-19 12:47:57\n * @LastEditTime: 2024-04-11 13:03:38\n * @LastEditors: weisheng\n * @Description:\n * @FilePath: \\wot-design-uni\\src\\uni_modules\\wot-design-uni\\components\\wd-toast\\types.ts\n * 记得注释\n */\nimport type { ExtractPropTypes } from 'vue'\nimport { baseProps, makeStringProp } from '../common/props'\nimport type { LoadingType } from '../wd-loading/types'\n\nexport type ToastIconType = 'success' | 'error' | 'warning' | 'loading' | 'info' // 图标类型\n\nexport type ToastPositionType = 'top' | 'middle' | 'bottom' // 提示信息框的位置类型\n\nexport type ToastLoadingType = LoadingType // 提示信息加载状态类型\n\nexport type ToastOptions = {\n msg?: string\n duration?: number\n iconName?: ToastIconType\n iconSize?: number\n loadingType?: ToastLoadingType\n loadingColor?: string\n iconColor?: string\n loadingSize?: number\n customIcon?: boolean\n position?: ToastPositionType\n show?: boolean\n zIndex?: number\n /**\n * 是否存在遮罩层\n */\n cover?: boolean\n /**\n * 完全展示后的回调函数\n */\n opened?: () => void\n /**\n * 完全关闭时的回调函数\n */\n closed?: () => void\n}\n\nexport interface Toast {\n // 打开Toast\n show(toastOptions: ToastOptions | string): void\n // 成功提示\n success(toastOptions: ToastOptions | string): void\n // 关闭提示\n error(toastOptions: ToastOptions | string): void\n // 常规提示\n info(toastOptions: ToastOptions | string): void\n // 警告提示\n warning(toastOptions: ToastOptions | string): void\n // 加载提示\n loading(toastOptions: ToastOptions | string): void\n // 关闭Toast\n close(): void\n}\n\nexport const toastProps = {\n ...baseProps,\n customIconClass: makeStringProp(''),\n selector: makeStringProp('')\n}\n\nexport type ToastProps = ExtractPropTypes<typeof toastProps>\n","/*\n * @Author: weisheng\n * @Date: 2024-04-08 22:34:01\n * @LastEditTime: 2024-04-10 12:58:10\n * @LastEditors: weisheng\n * @Description:\n * @FilePath: \\wot-design-uni\\src\\uni_modules\\wot-design-uni\\components\\wd-message-box\\types.ts\n * 记得注释\n */\nimport { baseProps } from '../common/props'\n\nexport type MessageType = 'alert' | 'confirm' | 'prompt'\n\nexport type MessageBeforeConfirmOption = {\n resolve: (isPass: boolean) => void\n}\n\nexport type MessageOptions = {\n /**\n * 标题\n */\n title?: string\n /**\n * 是否展示取消按钮\n */\n showCancelButton?: boolean\n\n show?: boolean\n /**\n * 是否支持点击蒙层进行关闭点击蒙层回调传入的action为'modal'\n */\n closeOnClickModal?: boolean\n /**\n * 确定按钮文案\n */\n confirmButtonText?: string\n /**\n * 取消按钮文案\n */\n cancelButtonText?: string\n /**\n * 消息文案\n */\n msg?: string\n /**\n * 弹框类型\n */\n type?: MessageType\n /**\n * 当type为prompt时输入框类型\n */\n inputType?: string\n /**\n * 当type为prompt时输入框初始值\n */\n inputValue?: string | number\n /**\n * 当type为prompt时输入框placeholder\n */\n inputPlaceholder?: string\n /**\n * 当type为prompt时输入框正则校验点击确定按钮时进行校验\n */\n inputPattern?: RegExp\n /**\n * 当type为prompt时输入框校验函数点击确定按钮时进行校验\n */\n inputValidate?: InputValidate | null\n /**\n * 当type为prompt时输入框检验不通过时的错误提示文案\n */\n inputError?: string\n /**\n * 是否展示错误信息\n */\n showErr?: boolean\n /**\n * 弹窗层级\n */\n zIndex?: number\n /**\n * 弹层内容懒渲染,触发展示时才渲染内容\n */\n lazyRender?: boolean\n /**\n * 确认前钩子\n */\n beforeConfirm?: (options: MessageBeforeConfirmOption) => void\n}\n\nexport type ActionType = 'confirm' | 'cancel' | 'modal'\n\nexport type InputValidate = (inputValue: string | number) => boolean\n\nexport interface MessageResult {\n action: ActionType\n value?: string | number\n}\n\nexport interface Message {\n // 打开Message\n show(toastOptions: MessageOptions | string): Promise<MessageResult>\n // 打开Alert 弹框\n alert(toastOptions: MessageOptions | string): Promise<MessageResult>\n // 打开Confirm 弹框\n confirm(toastOptions: MessageOptions | string): Promise<MessageResult>\n // 打开Prompt 弹框\n prompt(toastOptions: MessageOptions | string): Promise<MessageResult>\n // 关闭Message\n close(): void\n}\n\nexport const messageBoxProps = {\n ...baseProps,\n selector: String\n}\n","/*\n * @Author: weisheng\n * @Date: 2022-12-14 17:33:21\n * @LastEditTime: 2024-04-01 12:30:51\n * @LastEditors: weisheng\n * @Description:\n * @FilePath: \\wot-design-uni\\src\\uni_modules\\wot-design-uni\\components\\wd-message-box\\index.ts\n * 记得注释\n */\nimport { provide, ref } from 'vue'\nimport type { Message, MessageOptions, MessageResult, MessageType } from './types'\nimport { deepMerge } from '../common/util'\n\n/**\n * useMessage 用到的key\n *\n * @internal\n */\nexport const messageDefaultOptionKey = '__MESSAGE_OPTION__'\n\n// 默认模板\nexport const defaultOptions: MessageOptions = {\n title: '',\n showCancelButton: false,\n show: false,\n closeOnClickModal: true,\n msg: '',\n type: 'alert',\n inputType: 'text',\n inputValue: '',\n inputValidate: null,\n showErr: false,\n zIndex: 99,\n lazyRender: true,\n inputError: ''\n}\n\nexport function useMessage(selector: string = ''): Message {\n const messageOption = ref<MessageOptions>(defaultOptions) // Message选项\n const messageOptionKey = selector ? messageDefaultOptionKey + selector : messageDefaultOptionKey\n provide(messageOptionKey, messageOption)\n\n const createMethod = (type: MessageType) => {\n // 优先级options->MessageOptions->defaultOptions\n return (options: MessageOptions | string) => {\n const messageOptions = deepMerge({ type: type }, typeof options === 'string' ? { title: options } : options) as MessageOptions\n if (messageOptions.type === 'confirm' || messageOptions.type === 'prompt') {\n messageOptions.showCancelButton = true\n } else {\n messageOptions.showCancelButton = false\n }\n return show(messageOptions)\n }\n }\n\n const show = (option: MessageOptions | string) => {\n // 返回一个promise\n return new Promise<MessageResult>((resolve, reject) => {\n const options = deepMerge(defaultOptions, typeof option === 'string' ? { title: option } : option) as MessageOptions\n messageOption.value = deepMerge(options, {\n show: true,\n onConfirm: (res: MessageResult) => {\n resolve(res)\n },\n onCancel: (res: MessageResult) => {\n reject(res)\n }\n }) as MessageOptions\n })\n }\n\n // 打开Alert 弹框\n const alert = createMethod('alert')\n // 打开Confirm 弹框\n const confirm = createMethod('confirm')\n // 打开Prompt 弹框\n const prompt = createMethod('prompt')\n\n const close = () => {\n messageOption.value = { ...defaultOptions }\n }\n return {\n show,\n alert,\n confirm,\n prompt,\n close\n }\n}\n","import type { ExtractPropTypes, PropType } from 'vue'\nimport { makeStringProp } from '../common/props'\n\nexport type ConfigProviderTheme = 'light' | 'dark'\n\nexport const configProviderProps = {\n /**\n * 主题风格,设置为 dark 来开启深色模式,全局生效\n */\n theme: makeStringProp<ConfigProviderTheme>('light'),\n /**\n * 自定义主题变量\n */\n themeVars: {\n type: Object as PropType<ConfigProviderThemeVars>,\n default: () => ({})\n }\n}\n\nexport type ConfigProviderProps = ExtractPropTypes<typeof configProviderProps>\n\nexport type baseThemeVars = {\n colorTheme?: string // 主题色\n colorWhite?: string // 用于mix的白色\n colorBlack?: string // 用于mix的黑色\n colorSuccess?: string // 成功色\n colorWarning?: string // 警告色\n colorDanger?: string // 危险出错色\n colorPurple?: string // 紫色\n colorYellow?: string // 黄色\n colorBlue?: string // 蓝色\n colorInfo?: string // 信息色\n colorGray1?: string // 灰色1\n colorGray2?: string // 灰色2\n colorGray3?: string // 灰色3\n colorGray4?: string // 灰色4\n colorGray5?: string // 灰色5\n colorGray6?: string // 灰色6\n colorGray7?: string // 灰色7\n colorGray8?: string // 灰色8\n fontGray1?: string // 字体灰色1\n fontGray2?: string // 字体灰色2\n fontGray3?: string // 字体灰色3\n fontGray4?: string // 字体灰色4\n fontWhite1?: string // 字体白色1\n fontWhite2?: string // 字体白色2\n fontWhite3?: string // 字体白色3\n fontWhite4?: string // 字体白色4\n colorTitle?: string // 模块标题/重要正文\n colorContent?: string // 普通正文\n colorSecondary?: string // 次要信息,注释/补充/正文\n colorAid?: string // 辅助文字字号,弱化信息,引导性/不可点文字\n colorTip?: string // 失效、默认提示文字\n colorBorder?: string // 控件边框线\n colorBorderLight?: string // 分割线颜色\n colorBg?: string // 背景色、禁用填充色\n darkBackground?: string // 深色背景1\n darkBackground2?: string // 深色背景2\n darkBackground3?: string // 深色背景3\n darkBackground4?: string // 深色背景4\n darkBackground5?: string // 深色背景5\n darkBackground6?: string // 深色背景6\n darkBackground7?: string // 深色背景7\n darkColor?: string // 深色字体1\n darkColor2?: string // 深色字体2\n darkColor3?: string // 深色字体3\n darkColorGray?: string // 深色灰色\n darkBorderColor?: string // 深色边框颜色\n colorIcon?: string // icon颜色\n colorIconActive?: string // icon颜色hover\n colorIconDisabled?: string // icon颜色disabled\n fsBig?: string // 大型标题字号\n fsImportant?: string // 重要数据字号\n fsTitle?: string // 标题字号/重要正文字号\n fsContent?: string // 普通正文字号\n fsSecondary?: string // 次要信息字号\n fsAid?: string // 辅助文字字号\n fwMedium?: string // 字重500\n fwSemibold?: string // 字重600\n sizeSidePadding?: string // 屏幕两边留白padding\n}\n\nexport type actionSheetThemeVars = {\n actionSheetWeight?: string\n actionSheetRadius?: string\n actionSheetActionHeight?: string\n actionSheetColor?: string\n actionSheetFs?: string\n actionSheetActiveColor?: string\n actionSheetSubnameFs?: string\n actionSheetSubnameColor?: string\n actionSheetDisabledColor?: string\n actionSheetBg?: string\n actionSheetTitleHeight?: string\n actionSheetTitleFs?: string\n actionSheetCloseFs?: string\n actionSheetCloseColor?: string\n actionSheetCloseTop?: string\n actionSheetCloseRight?: string\n actionSheetCancelColor?: string\n actionSheetCancelHeight?: string\n actionSheetCancelBg?: string\n actionSheetCancelRadius?: string\n actionSheetPanelPadding?: string\n actionSheetPanelImgFs?: string\n actionSheetPanelImgRadius?: string\n}\n\nexport type badgeThemeVars = {\n badgeBg?: string\n badgeColor?: string\n badgeFs?: string\n badgePadding?: string\n badgeHeight?: string\n badgePrimary?: string\n badgeSuccess?: string\n badgeWarning?: string\n badgeDanger?: string\n badgeInfo?: string\n badgeDotSize?: string\n badgeBorder?: string\n}\n\nexport type buttonThemeVars = {\n buttonDisabledOpacity?: string\n\n buttonSmallHeight?: string\n buttonSmallPadding?: string\n buttonSmallFs?: string\n buttonSmallRadius?: string\n buttonSmallLoading?: string\n\n buttonMediumHeight?: string\n buttonMediumPadding?: string\n buttonMediumFs?: string\n buttonMediumRadius?: string\n buttonMediumLoading?: string\n buttonMediumBoxShadowSize?: string\n\n buttonLargeHeight?: string\n buttonLargePadding?: string\n buttonLargeFs?: string\n buttonLargeRadius?: string\n buttonLargeLoading?: string\n buttonLargeBoxShadowSize?: string\n\n buttonIconFs?: string\n buttonIconSize?: string\n buttonIconColor?: string\n buttonIconDisabledColor?: string\n\n buttonNormalColor?: string\n buttonNormalDisabledColor?: string\n\n buttonPlainBgColor?: string\n\n buttonPrimaryColor?: string\n buttonPrimaryBgColor?: string\n buttonPrimaryBoxShadowColor?: string\n\n buttonSuccessColor?: string\n buttonSuccessBgColor?: string\n buttonSuccessBoxShadowColor?: string\n\n buttonInfoColor?: string\n buttonInfoBgColor?: string\n buttonInfoPlainBorderColor?: string\n buttonInfoPlainNormalColor?: string\n\n buttonWarningColor?: string\n buttonWarningBgColor?: string\n buttonWarningBoxShadowColor?: string\n\n buttonErrorColor?: string\n buttonErrorBgColor?: string\n buttonErrorBoxShadowColor?: string\n\n buttonTextHoverOpacity?: string\n}\n\nexport type cellThemeVars = {\n cellPadding?: string\n cellLineHeight?: string\n\n cellGroupTitleFs?: string\n cellGroupPadding?: string\n cellGroupTitleColor?: string\n cellGroupValueFs?: string\n cellGroupValueColor?: string\n\n cellWrapperPadding?: string\n cellWrapperPaddingLarge?: string\n\n cellWrapperPaddingWithLabel?: string\n cellIconRight?: string\n cellIconSize?: string\n cellTitleFs?: string\n cellTitleColor?: string\n cellLabelFs?: string\n cellLabelColor?: string\n cellValueFs?: string\n cellValueColor?: string\n cellArrowSize?: string\n cellArrowColor?: string\n cellTapBg?: string\n\n cellTitleFsLarge?: string\n cellLabelFsLarge?: string\n cellIconSizeLarge?: string\n\n cellRequiredColor?: string\n cellRequiredSize?: string\n cellVerticalTop?: string\n}\n\nexport type calendarThemeVars = {\n calendarFs?: string\n calendarPanelPadding?: string\n calendarPanelTitleFs?: string\n calendarPanelTitleColor?: string\n calendarWeekColor?: string\n calendarWeekHeight?: string\n calendarWeekFs?: string\n calendarDayFs?: string\n calendarDayColor?: string\n calendarDayFw?: string\n calendarDayHeight?: string\n calendarMonthWidth?: string\n calendarActiveColor?: string\n calendarDisabledColor?: string\n calendarRangeColor?: string\n calendarActiveBorder?: string\n calendarInfoFs?: string\n}\n\nexport type checkboxThemeVars = {\n checkboxMargin?: string\n checkboxBg?: string\n checkboxLabelMargin?: string\n checkboxSize?: string\n checkboxIconSize?: string\n checkboxBorderColor?: string\n checkboxCheckColor?: string\n checkboxLabelFs?: string\n checkboxLabelColor?: string\n checkboxCheckedColor?: string\n\n checkboxDisabledColor?: string\n checkboxDisabledLabelColor?: string\n checkboxDisabledCheckColor?: string\n checkboxDisabledCheckBg?: string\n checkboxSquareRadius?: string\n\n checkboxLargeSize?: string\n checkboxLargeLabelFs?: string\n\n checkboxButtonHeight?: string\n checkboxButtonMinWidth?: string\n checkboxButtonRadius?: string\n checkboxButtonBg?: string\n checkboxButtonFontSize?: string\n checkboxButtonBorder?: string\n checkboxButtonDisabledBorder?: string\n}\n\nexport type collapseThemeVars = {\n collapseSidePadding?: string\n collapseBodyPadding?: string\n collapseHeaderPadding?: string\n collapseTitleColor?: string\n collapseTitleFs?: string\n collapseArrowSize?: string\n collapseArrowColor?: string\n collapseBodyFs?: string\n collapseBodyColor?: string\n collapseDisabledColor?: string\n collapseRetractFs?: string\n collapseMoreColor?: string\n}\n\nexport type dividerThemeVars = {\n dividerPadding?: string\n dividerColor?: string\n dividerLineColor?: string\n dividerFs?: string\n}\n\nexport type dropMenuThemeVars = {\n dropMenuHeight?: string\n dropMenuColor?: string\n dropMenuFs?: string\n dropMenuSidePadding?: string\n dropMenuDisabledColor?: string\n dropMenuItemHeight?: string\n dropMenuItemColor?: string\n dropMenuItemFs?: string\n dropMenuItemColorActive?: string\n dropMenuItemColorTip?: string\n dropMenuItemFsTip?: string\n dropMenuOptionCheckSize?: string\n dropMenuLineColor?: string\n dropMenuLineHeight?: string\n}\n\nexport type inputNumberThemeVars = {\n inputNumberColor?: string\n inputNumberBorderColor?: string\n inputNumberDisabledColor?: string\n inputNumberHeight?: string\n inputNumberBtnWidth?: string\n inputNumberInputWidth?: string\n inputNumberRadius?: string\n inputNumberFs?: string\n inputNumberIconSize?: string\n inputNumberIconColor?: string\n}\n\nexport type inputThemeVars = {\n inputPadding?: string\n inputBorderColor?: string\n inputNotEmptyBorderColor?: string\n inputFs?: string\n inputFsLarge?: string\n inputIconMargin?: string\n inputColor?: string\n inputPlaceholderColor?: string\n inputDisabledColor?: string\n inputErrorColor?: string\n inputIconColor?: string\n inputClearColor?: string\n inputCountColor?: string\n inputCountCurrentColor?: string\n inputBg?: string\n\n inputCellBg?: string\n inputCellBorderColor?: string\n inputCellPadding?: string\n inputCellPaddingLarge?: string\n inputCellHeight?: string\n inputCellLabelWidth?: string\n inputInnerHeight?: string\n inputInnerHeightNoBorder?: string\n inputCountFs?: string\n inputCountFsLarge?: string\n inputIconSize?: string\n inputIconSizeLarge?: string\n}\n\nexport type textareaThemeVars = {\n textareaPadding?: string\n textareaBorderColor?: string\n textareaNotEmptyBorderColor?: string\n textareaFs?: string\n textareaFsLarge?: string\n textareaIconMargin?: string\n textareaColor?: string\n textareaIconColor?: string\n textareaClearColor?: string\n textareaCountColor?: string\n textareaCountCurrentColor?: string\n textareaBg?: string\n\n textareaCellBorderColor?: string\n textareaCellPadding?: string\n textareaCellPaddingLarge?: string\n textareaCellHeight?: string\n textareaCountFs?: string\n textareaCountFsLarge?: string\n textareaIconSize?: string\n textareaIconSizeLarge?: string\n}\n\nexport type loadmoreThemeVars = {\n loadmoreHeight?: string\n loadmoreColor?: string\n loadmoreFs?: string\n loadmoreErrorColor?: string\n}\n\nexport type messageBoxThemeVars = {\n messageBoxWidth?: string\n messageBoxBg?: string\n messageBoxRadius?: string\n messageBoxPadding?: string\n messageBoxTitleFs?: string\n messageBoxTitleColor?: string\n messageBoxContentFs?: string\n messageBoxContentColor?: string\n messageBoxContentMaxHeight?: string\n messageBoxContentScrollbarWidth?: string\n messageBoxContentScrollbarColor?: string\n messageBoxInputErrorColor?: string\n}\n\nexport type noticeBarThemeVars = {\n noticeBarFs?: string\n noticeBarLineHeight?: string\n noticeBarBorderRadius?: string\n noticeBarPadding?: string\n noticeBarWarningBg?: string\n noticeBarInfoBg?: string\n noticeBarDangerBg?: string\n noticeBarWarningColor?: string\n noticeBarInfoColor?: string\n noticeBarDangerColor?: string\n noticeBarPrefixSize?: string\n noticeBarCloseBg?: string\n noticeBarCloseSize?: string\n noticeBarCloseColor?: string\n noticeBarWrapPadding?: string\n}\n\nexport type paginationThemeVars = {\n paginationContentPadding?: string\n paginationMessagePadding?: string\n paginationMessageFs?: string\n paginationMessageColor?: string\n paginationNavBorder?: string\n paginationNavBorderRadius?: string\n paginationNavFs?: string\n paginationNavWidth?: string\n paginationNavColor?: string\n paginationNavContentFs?: string\n paginationNavSepatatorPadding?: string\n paginationNavCurrentColor?: string\n}\n\nexport type pickerThemeVars = {\n pickerToolbarHeight?: string\n pickerActionHeight?: string\n pickerToolbarFinishColor?: string\n pickerToolbarCancelColor?: string\n pickerToolbarFs?: string\n pickerToolbarTitleColor?: string\n pickerColumnFs?: string\n pickerBg?: string\n pickerColumnActiveFs?: string\n pickerColumnColor?: string\n pickerColumnHeight?: string\n pickerColumnItemHeight?: string\n pickerColumnSelectBg?: string\n pickerLoadingButtonColor?: string\n pickerColumnPadding?: string\n\n pickerColumnDisabledColor?: string\n pickerMask?: string\n pickerLoadingBg?: string\n pickerRegionSeparatorColor?: string\n pickerCellArrowSizeLarge?: string\n\n pickerRegionColor?: string\n pickerRegionBgActiveColor?: string\n\n pickerRegionFs?: string\n}\n\nexport type colPickerThemeVars = {\n colPickerSelectedHeight?: string\n colPickerSelectedPadding?: string\n colPickerSelectedFs?: string\n colPickerSelectedColor?: string\n colPickerSelectedFw?: string\n colPickerLineWidth?: string\n colPickerLineHeight?: string\n colPickerLineColor?: string\n colPickerLineBoxShadow?: string\n colPickerListHeight?: string\n colPickerListPaddingBottom?: string\n colPickerListColor?: string\n colPickerListColorDisabled?: string\n colPickerListColorTip?: string\n colPickerListFs?: string\n colPickerListFsTip?: string\n colPickerListItemPadding?: string\n colPickerListCheckedIconSize?: string\n colPickerListColorChecked?: string\n}\n\nexport type overlayThemeVars = {\n overlayBg?: string\n overlayBgDark?: string\n}\n\nexport type popupThemeVars = {\n popupCloseSize?: string\n popupCloseColor?: string\n}\n\nexport type progressThemeVars = {\n progressPadding?: string\n progressBg?: string\n progressDangerColor?: string\n progressSuccessColor?: string\n progressColor?: string\n progressLinearSuccessColor?: string\n progressLinearDangerColor?: string\n progressHeight?: string\n progressLabelColor?: string\n progressLabelFs?: string\n progressIconFs?: string\n}\n\nexport type radioThemeVars = {\n radioMargin?: string\n radioLabelMargin?: string\n radioSize?: string\n radioBg?: string\n radioLabelFs?: string\n radioLabelColor?: string\n radioCheckedColor?: string\n radioDisabledColor?: string\n radioDisabledLabelColor?: string\n\n radioLargeSize?: string\n radioLargeLabelFs?: string\n\n radioButtonHeight?: string\n radioButtonMinWidth?: string\n radioButtonMaxWidth?: string\n radioButtonRadius?: string\n radioButtonBg?: string\n radioButtonFs?: string\n radioButtonBorder?: string\n radioButtonDisabledBorder?: string\n\n radioDotSize?: string\n radioDotLargeSize?: string\n radioDotCheckedBg?: string\n radioDotCheckedBorderColor?: string\n radioDotBorderColor?: string\n radioDotDisabledBorder?: string\n radioDotDisabledBg?: string\n}\n\nexport type searchThemeVars = {\n searchSidePadding?: string\n searchPadding?: string\n searchInputRadius?: string\n searchInputBg?: string\n searchInputHeight?: string\n searchInputPadding?: string\n searchInputFs?: string\n searchInputColor?: string\n searchIconColor?: string\n searchPlaceholderColor?: string\n searchCancelPadding?: string\n searchCancelFs?: string\n searchCancelColor?: string\n searchLightBg?: string\n}\n\nexport type sliderThemeVars = {\n sliderFs?: string\n sliderHandleRadius?: string\n sliderHandleBg?: string\n sliderAxieHeight?: string\n sliderColor?: string\n sliderAxieBg?: string\n sliderLineColor?: string\n sliderDisabledColor?: string\n}\n\nexport type sortButtonThemeVars = {\n sortButtonFs?: string\n sortButtonColor?: string\n sortButtonHeight?: string\n sortButtonLineHeight?: string\n sortButtonLineColor?: string\n}\n\nexport type stepsThemeVars = {\n stepsIconSize?: string\n stepsInactiveColor?: string\n stepsFinishedColor?: string\n stepsIconTextFs?: string\n stepsErrorColor?: string\n stepsTitleFs?: string\n stepsTitleFw?: string\n stepsLabelFs?: string\n stepsDescriptionColor?: string\n stepsIsIconWidth?: string\n stepsLineColor?: string\n stepsDotSize?: string\n stepsDotActiveSize?: string\n}\n\nexport type switchThemeVars = {\n switchSize?: string\n switchWidth?: string\n switchHeight?: string\n switchCircleSize?: string\n switchBorderColor?: string\n switchActiveColor?: string\n switchActiveShadowColor?: string\n switchInactiveColor?: string\n switchInactiveShadowColor?: string\n}\n\nexport type tabsThemeVars = {\n tabsNavArrowFs?: string\n tabsNavArrowOpenFs?: string\n tabsNavWidth?: string\n tabsNavHeight?: string\n tabsNavFs?: string\n tabsNavColor?: string\n tabsNavBg?: string\n tabsNavActiveColor?: string\n tabsNavDisabledColor?: string\n tabsNavLineHeight?: string\n tabsNavLineBgColor?: string\n tabsNavMapFs?: string\n tabsNavMapColor?: string\n tabsNavMapArrowColor?: string\n tabsNavMapBtnBeforeBg?: string\n tabsNavMapButtonBackColor?: string\n tabsNavMapButtonRadius?: string\n tabsNavMapModalBg?: string\n}\n\nexport type tagThemeVars = {\n tagFs?: string\n tagColor?: string\n tagSmallFs?: string\n tagInfoColor?: string\n tagPrimaryColor?: string\n tagDangerColor?: string\n tagWarningColor?: string\n tagSuccessColor?: string\n tagInfoBg?: string\n tagPrimaryBg?: string\n tagDangerBg?: string\n tagWarningBg?: string\n tagSuccessBg?: string\n tagRoundColor?: string\n tagRoundBorderColor?: string\n tagRoundRadius?: string\n tagMarkRadius?: string\n tagCloseSize?: string\n tagCloseColor?: string\n tagCloseActiveColor?: string\n}\n\nexport type toastThemeVars = {\n toastPadding?: string\n toastMaxWidth?: string\n toastRadius?: string\n toastBg?: string\n toastFs?: string\n toastWithIconMinWidth?: string\n toastIconSize?: string\n toastLoadingPadding?: string\n toastBoxShadow?: string\n}\n\nexport type tooltipThemeVars = {\n tooltipBg?: string\n tooltipColor?: string\n tooltipRadius?: string\n tooltipArrowSize?: string\n tooltipFs?: string\n tooltipBlur?: string\n tooltipPadding?: string\n tooltipCloseSize?: string\n tooltipZIndex?: string\n tooltipLineHeight?: string\n}\n\nexport type popoverThemeVars = {\n popoverBg?: string\n popoverColor?: string\n popoverBoxShadow?: string\n popoverArrowBoxShadow?: string\n popoverBorderColor?: string\n popoverRadius?: string\n popoverArrowSize?: string\n popoverFs?: string\n popoverPadding?: string\n popoverLineHeight?: string\n popoverZIndex?: string\n}\n\nexport type gridItemThemeVars = {\n gridItemFs?: string\n gridItemBg?: string\n gridItemPadding?: string\n gridItemBorderColor?: string\n}\n\nexport type statustipThemeVars = {\n statustipFs?: string\n statustipColor?: string\n statustipLineHeight?: string\n statustipPadding?: string\n}\n\nexport type cardThemeVars = {\n cardBg?: string\n cardFs?: string\n cardPadding?: string\n cardFooterPadding?: string\n cardShadowColor?: string\n cardRadius?: string\n cardLineHeight?: string\n cardMargin?: string\n cardTitleColor?: string\n cardTitleFs?: string\n cardContentBorderColor?: string\n cardRectangleTitlePadding?: string\n cardRectangleContentPadding?: string\n cardRectangleFooterPadding?: string\n cardContentColor?: string\n cardContentLineHeight?: string\n cardContentMargin?: string\n cardContentRectangleMargin?: string\n}\n\nexport type uploadThemeVars = {\n uploadSize?: string\n uploadEvokeIconSize?: string\n uploadEvokeBg?: string\n uploadEvokeColor?: string\n uploadEvokeDisabledColor?: string\n uploadCloseIconSize?: string\n uploadCloseIconColor?: string\n uploadProgressFs?: string\n uploadPreviewNameFs?: string\n uploadPreviewIconSize?: string\n uploadPreviewNameBg?: string\n uploadPreviewNameHeight?: string\n}\n\nexport type curtainThemeVars = {\n curtainContentRadius?: string\n curtainContentCloseColor?: string\n curtainContentCloseFs?: string\n}\n\nexport type notifyThemeVars = {\n notifyTextColor?: string\n notifyPadding?: string\n notifyFontSize?: string\n notifyLineHeight?: string\n notifyPrimaryBackground?: string\n notifySuccessBackground?: string\n notifyDangerBackground?: string\n notifyWarningBackground?: string\n}\n\nexport type skeletonThemeVars = {\n skeletonBackgroundColor?: string\n skeletonAnimationGradient?: string\n skeletonAnimationFlashed?: string\n skeletonTextHeightDefault?: string\n skeletonRectHeightDefault?: string\n skeletonCircleHeightDefault?: string\n skeletonRowMarginBottom?: string\n skeletonBorderRadiusText?: string\n skeletonBorderRadiusRect?: string\n skeletonBorderRadiusCircle?: string\n}\n\nexport type circleThemeVars = {\n circleTextColor?: string\n}\n\nexport type swiperThemeVars = {\n swiperRadius?: string\n swiperItemPadding?: string\n}\n\nexport type swiperNavThemeVars = {\n // dot & dots-bar\n swiperNavDotColor?: string\n swiperNavDotActiveColor?: string\n swiperNavDotSize?: string\n swiperNavDotsBarActiveWidth?: string\n // fraction\n swiperNavFractionColor?: string\n swiperNavFractionBgColor?: string\n swiperNavFractionHeight?: string\n swiperNavFractionFontSize?: string\n // button\n swiperNavBtnColor?: string\n swiperNavBtnBgColor?: string\n swiperNavBtnSize?: string\n}\n\nexport type segmentedThemeVars = {\n segmentedPadding?: string\n segmentedItemBgColor?: string\n segmentedItemColor?: string\n segmentedItemAcitveBg?: string\n segmentedItemDisabledColor?: string\n}\n\nexport type tabbarThemeVars = {\n tabbarHeight?: string\n tabbarBoxShadow?: string\n}\n\nexport type tabbarItemThemeVars = {\n tabbarItemTitleFontSize?: string\n tabbarItemTitleLineHeight?: string\n tabbarInactiveColor?: string\n tabbarActiveColor?: string\n}\n\nexport type navbarThemeVars = {\n navbarHeight?: string\n navbarColor?: string\n navbarBackground?: string\n navbarArrowSize?: string\n navbarDescFontSize?: string\n navbarDescFontColor?: string\n navbarTitleFontSize?: string\n navbarTitleFontWeight?: string\n navbarDisabledOpacity?: string\n navbarHoverColor?: string\n}\n\nexport type navbarCapsuleThemeVars = {\n navbarCapsuleBorderColor?: string\n navbarCapsuleBorderRadius?: string\n navbarCapsuleWidth?: string\n navbarCapsuleHeight?: string\n}\n\nexport type tableThemeVars = {\n tableColor?: string\n tableBg?: string\n tableStripeBg?: string\n tableBorderColor?: string\n tableFontSize?: string\n}\n\nexport type sidebarThemeVars = {\n sidebarBg?: string\n sidebarWidth?: string\n sidebarHeight?: string\n}\n\nexport type sidebarItemThemeVars = {\n sidebarColor?: string\n sidebarItemHeight?: string\n sidebarItemLineHeight?: string\n sidebarDisabledColor?: string\n sidebarActiveColor?: string\n sidebarActiveBg?: string\n sidebarHoverBg?: string\n sidebarBorderRadius?: string\n sidebarFontSize?: string\n sidebarIconSize?: string\n sidebarActiveBorderWidth?: string\n sidebarActiveBorderHeight?: string\n}\n\nexport type fabThemeVars = {\n fabTriggerHeight?: string\n fabTriggerWidth?: string\n fabActionsPadding?: string\n fabTop?: string\n fabLeft?: string\n fabRight?: string\n fabBottom?: string\n}\n\nexport type countDownThemeVars = {\n countDownTextColor?: string\n countDownFontSize?: string\n countDownLineHeight?: string\n}\n\nexport type numberKeyboardThemeVars = {\n numberKeyboardKeyHeight?: string\n numberKeyboardKeyFontSize?: string\n numberKeyboardKeyBackground?: string\n numberKeyboardKeyBorderRadius?: string\n numberKeyboardDeleteFontSize?: string\n numberKeyboardKeyActiveColor?: string\n numberKeyboardButtonTextColor?: string\n numberKeyboardButtonBackground?: string\n numberKeyboardButtonActiveOpacity?: string\n numberKeyboardBackground?: string\n numberKeyboardTitleHeight?: string\n numberKeyboardTitleColor?: string\n numberKeyboardTitleFontSize?: string\n numberKeyboardClosePadding?: string\n numberKeyboardCloseColor?: string\n numberKeyboardCloseFontSize?: string\n}\n\nexport type passwodInputThemeVars = {\n passwordInputHeight?: string\n passwordInputMargin?: string\n passwordInputFontSize?: string\n passwordInputRadius?: string\n passwordInputBackground?: string\n passwordInputInfoColor?: string\n passwordInputInfoFontSize?: string\n passwordInputBorderColor?: string\n passwordInputErrorInfoColor?: string\n passwordInputDotSize?: string\n passwordInputDotColor?: string\n passwordInputTextColor?: string\n passwordInputCursorColor?: string\n passwordInputCursorWidth?: string\n passwordInputCursorHeight?: string\n passwordInputCursorDuration?: string\n}\n\nexport type formItemThemeVars = {\n formItemErrorMessageColor?: string\n formItemErrorMessageFontSize?: string\n formItemErrorMessageLineHeight?: string\n}\n\nexport type ConfigProviderThemeVars = baseThemeVars &\n actionSheetThemeVars &\n badgeThemeVars &\n buttonThemeVars &\n cellThemeVars &\n calendarThemeVars &\n checkboxThemeVars &\n collapseThemeVars &\n dividerThemeVars &\n dropMenuThemeVars &\n inputNumberThemeVars &\n inputThemeVars &\n textareaThemeVars &\n loadmoreThemeVars &\n messageBoxThemeVars &\n noticeBarThemeVars &\n paginationThemeVars &\n pickerThemeVars &\n colPickerThemeVars &\n overlayThemeVars &\n popupThemeVars &\n progressThemeVars &\n radioThemeVars &\n searchThemeVars &\n sliderThemeVars &\n sortButtonThemeVars &\n stepsThemeVars &\n switchThemeVars &\n tabsThemeVars &\n tagThemeVars &\n toastThemeVars &\n tooltipThemeVars &\n popoverThemeVars &\n gridItemThemeVars &\n statustipThemeVars &\n cardThemeVars &\n uploadThemeVars &\n curtainThemeVars &\n notifyThemeVars &\n skeletonThemeVars &\n circleThemeVars &\n swiperThemeVars &\n swiperNavThemeVars &\n segmentedThemeVars &\n tabbarThemeVars &\n tabbarItemThemeVars &\n navbarThemeVars &\n navbarCapsuleThemeVars &\n tableThemeVars &\n sidebarThemeVars &\n sidebarItemThemeVars &\n fabThemeVars &\n countDownThemeVars &\n numberKeyboardThemeVars &\n passwodInputThemeVars &\n formItemThemeVars\n","import type { PropType } from 'vue'\nimport { baseProps, makeBooleanProp, makeNumberProp } from '../common/props'\n\nexport const overlayProps = {\n ...baseProps,\n /**\n * 是否展示遮罩层\n */\n show: makeBooleanProp(false),\n /**\n * 动画时长,单位毫秒\n */\n duration: {\n type: [Object, Number, Boolean] as PropType<Record<string, number> | number | boolean>,\n default: 300\n },\n /**\n * 是否锁定滚动\n */\n lockScroll: makeBooleanProp(true),\n /**\n * 层级\n */\n zIndex: makeNumberProp(10)\n}\n","import { getCurrentInstance, ref } from 'vue'\nimport { getRect } from '../common/util'\n\nexport function usePopover() {\n const { proxy } = getCurrentInstance() as any\n const popStyle = ref<string>('')\n const arrowStyle = ref<string>('')\n const showStyle = ref<string>('')\n const arrowClass = ref<string>('')\n const popWidth = ref<number>(0)\n const popHeight = ref<number>(0)\n const left = ref<number>(0)\n const bottom = ref<number>(0)\n const width = ref<number>(0)\n const height = ref<number>(0)\n const top = ref<number>(0)\n\n function noop() {}\n\n function init(\n placement:\n | 'top'\n | 'top-start'\n | 'top-end'\n | 'bottom'\n | 'bottom-start'\n | 'bottom-end'\n | 'left'\n | 'left-start'\n | 'left-end'\n | 'right'\n | 'right-start'\n | 'right-end',\n visibleArrow: boolean,\n selector: string\n ) {\n // 初始化 class\n if (visibleArrow) {\n const arrowClassArr = [\n `wd-${selector}__arrow`,\n placement === 'bottom' || placement === 'bottom-start' || placement === 'bottom-end' ? `wd-${selector}__arrow-up` : '',\n placement === 'left' || placement === 'left-start' || placement === 'left-end' ? `wd-${selector}__arrow-right` : '',\n placement === 'right' || placement === 'right-start' || placement === 'right-end' ? `wd-${selector}__arrow-left` : '',\n placement === 'top' || placement === 'top-start' || placement === 'top-end' ? `wd-${selector}__arrow-down` : ''\n ]\n arrowClass.value = arrowClassArr.join(' ')\n }\n\n // 初始化数据获取\n getRect('#target', false, proxy).then((rect) => {\n if (!rect) return\n left.value = rect.left as number\n bottom.value = rect.bottom as number\n width.value = rect.width as number\n height.value = rect.height as number\n top.value = rect.top as number\n })\n // 用透明度可在初始化时获取到pop尺寸\n getRect('#pos', false, proxy).then((rect) => {\n if (!rect) return\n popWidth.value = rect.width as number\n popHeight.value = rect.height as number\n })\n }\n\n function control(\n placement:\n | 'top'\n | 'top-start'\n | 'top-end'\n | 'bottom'\n | 'bottom-start'\n | 'bottom-end'\n | 'left'\n | 'left-start'\n | 'left-end'\n | 'right'\n | 'right-start'\n | 'right-end',\n offset: number\n ) {\n // arrow size\n const arrowSize = 9\n // 上下位(纵轴)对应的距离左边的距离\n const verticalX = width.value / 2\n // 上下位(纵轴)对应的距离底部的距离\n const verticalY = arrowSize + height.value + 5\n // 左右位(横轴)对应的距离左边的距离\n const horizontalX = width.value + arrowSize + 5\n // 左右位(横轴)对应的距离底部的距离\n const horizontalY = height.value / 2\n\n const offsetX = (verticalX - 17 > 0 ? 0 : verticalX - 25) + offset\n const offsetY = (horizontalY - 17 > 0 ? 0 : horizontalY - 25) + offset\n\n const placements = new Map([\n // 上\n ['top', [`left: ${verticalX}px; bottom: ${verticalY}px; transform: translateX(-50%);`, 'left: 50%;']],\n [\n 'top-start',\n [\n `left: ${offsetX}px; bottom: ${verticalY}px;`,\n `left: ${(popWidth.value >= width.value ? width.value / 2 : popWidth.value - 25) - offsetX}px;`\n ]\n ],\n [\n 'top-end',\n [\n `right: ${offsetX}px; bottom: ${verticalY}px;`,\n `right: ${(popWidth.value >= width.value ? width.value / 2 : popWidth.value - 25) - offsetX}px; transform: translateX(50%);`\n ]\n ],\n // 下\n ['bottom', [`left: ${verticalX}px; top: ${verticalY}px; transform: translateX(-50%);`, 'left: 50%;']],\n [\n 'bottom-start',\n [`left: ${offsetX}px; top: ${verticalY}px;`, `left: ${(popWidth.value >= width.value ? width.value / 2 : popWidth.value - 25) - offsetX}px;`]\n ],\n [\n 'bottom-end',\n [\n `right: ${offsetX}px; top: ${verticalY}px;`,\n `right: ${(popWidth.value >= width.value ? width.value / 2 : popWidth.value - 25) - offsetX}px; transform: translateX(50%);`\n ]\n ],\n // 左\n ['left', [`right: ${horizontalX}px; top: ${horizontalY}px; transform: translateY(-50%);`, 'top: 50%']],\n [\n 'left-start',\n [\n `right: ${horizontalX}px; top: ${offsetY}px;`,\n `top: ${(popHeight.value >= height.value ? height.value / 2 : popHeight.value - 20) - offsetY}px;`\n ]\n ],\n [\n 'left-end',\n [\n `right: ${horizontalX}px; bottom: ${offsetY}px;`,\n `bottom: ${(popHeight.value >= height.value ? height.value / 2 : popHeight.value - 20) - offsetY}px; transform: translateY(50%);`\n ]\n ],\n // 右\n ['right', [`left: ${horizontalX}px; top: ${horizontalY}px; transform: translateY(-50%);`, 'top: 50%']],\n [\n 'right-start',\n [\n `left: ${horizontalX}px; top: ${offsetY}px;`,\n `top: ${(popHeight.value >= height.value ? height.value / 2 : popHeight.value - 20) - offsetY}px;`\n ]\n ],\n [\n 'right-end',\n [\n `left: ${horizontalX}px; bottom: ${offsetY}px;`,\n `bottom: ${(popHeight.value >= height.value ? height.value / 2 : popHeight.value - 20) - offsetY}px; transform: translateY(50%);`\n ]\n ]\n ])\n popStyle.value = placements.get(placement)![0]\n arrowStyle.value = placements.get(placement)![1]\n }\n\n return { popStyle, arrowStyle, showStyle, arrowClass, init, control, noop }\n}\n","/*\n * @Author: weisheng\n * @Date: 2023-07-02 22:51:06\n * @LastEditTime: 2024-03-16 19:59:07\n * @LastEditors: weisheng\n * @Description:\n * @FilePath: /wot-design-uni/src/uni_modules/wot-design-uni/components/common/clickoutside.ts\n * 记得注释\n */\nlet queue: any[] = []\n\nexport function pushToQueue(comp: any) {\n queue.push(comp)\n}\n\nexport function removeFromQueue(comp: any) {\n queue = queue.filter((item) => {\n return item.$.uid !== comp.$.uid\n })\n}\n\nexport function closeOther(comp: any) {\n queue.forEach((item) => {\n if (item.$.uid !== comp.$.uid) {\n item.$.exposed.close()\n }\n })\n}\n\nexport function closeOutside() {\n queue.forEach((item) => {\n item.$.exposed.close()\n })\n}\n","import { type Ref, provide, ref } from 'vue'\n\nexport const queueKey = '__QUEUE_KEY__'\n\nexport interface Queue {\n queue: Ref<any[]>\n pushToQueue: (comp: any) => void\n removeFromQueue: (comp: any) => void\n closeOther: (comp: any) => void\n closeOutside: () => void\n}\n\nexport function useQueue() {\n const queue = ref<any[]>([])\n\n function pushToQueue(comp: any) {\n queue.value.push(comp)\n }\n\n function removeFromQueue(comp: any) {\n queue.value = queue.value.filter((item) => {\n return item.$.uid !== comp.$.uid\n })\n }\n\n function closeOther(comp: any) {\n queue.value.forEach((item) => {\n if (item.$.uid !== comp.$.uid) {\n item.$.exposed.close()\n }\n })\n }\n\n function closeOutside() {\n queue.value.forEach((item) => {\n item.$.exposed.close()\n })\n }\n\n provide(queueKey, {\n queue,\n pushToQueue,\n removeFromQueue,\n closeOther,\n closeOutside\n })\n\n return {\n closeOther,\n closeOutside\n }\n}\n","import type { ExtractPropTypes, PropType } from 'vue'\nimport { baseProps, makeBooleanProp, makeNumberProp, makeStringProp } from '../common/props'\n\nexport type PlacementType =\n | 'top'\n | 'top-start'\n | 'top-end'\n | 'bottom'\n | 'bottom-start'\n | 'bottom-end'\n | 'left'\n | 'left-start'\n | 'left-end'\n | 'right'\n | 'right-start'\n | 'right-end'\n\nexport type PopoverMode = 'menu' | 'normal'\n\nexport const popoverProps = {\n ...baseProps,\n customArrow: makeStringProp(''),\n customPop: makeStringProp(''),\n /**\n * 是否显示 popover 箭头\n */\n visibleArrow: makeBooleanProp(true),\n /**\n * 显示的内容,也可以通过 slot#content 传入\n */\n content: [String, Object] as PropType<string | Record<string, any>[]>,\n /**\n * 指定 popover 的放置位置top / top-start / top-end / bottom / bottom-start / bottom-end / left / left-start / left-end / right / right-start / right-end\n */\n placement: makeStringProp<PlacementType>('bottom'),\n /**\n * 偏移量\n */\n offset: makeNumberProp(0),\n /**\n * 是否使用内容插槽\n */\n useContentSlot: makeBooleanProp(false),\n /**\n * 是否禁用 popover\n */\n disabled: makeBooleanProp(false),\n /**\n * 是否显示关闭按钮\n */\n showClose: makeBooleanProp(false),\n /**\n * 控制 popover 的显示状态\n */\n modelValue: makeBooleanProp(false),\n /**\n * 当前显示的模式决定内容的展现形式可选值normal普通模式/ menu菜单模式\n */\n mode: makeStringProp<PopoverMode>('normal')\n}\n\nexport type PopoverProps = ExtractPropTypes<typeof popoverProps>\n\nexport type PopoverExpose = {\n // 打开popover\n open: () => void\n // 关闭popover\n close: () => void\n}\n","import { baseProps, makeBooleanProp, makeNumericProp, makeStringProp } from '../common/props'\n\nexport const searchProps = {\n ...baseProps,\n\n /**\n * 输入框内容,双向绑定\n * 类型: string\n * 默认值: ''\n */\n modelValue: makeStringProp(''),\n\n /**\n * 是否使用输入框右侧插槽\n * 类型: boolean\n * 默认值: false\n * @deprecated 该属性已废弃将在下一个minor版本被移除直接使用插槽即可\n */\n useSuffixSlot: makeBooleanProp(false),\n\n /**\n * 搜索框占位文本\n * 类型: string\n */\n placeholder: String,\n\n /**\n * 搜索框右侧文本\n * 类型: string\n */\n cancelTxt: String,\n\n /**\n * 搜索框亮色(白色)\n * 类型: boolean\n * 默认值: false\n */\n light: makeBooleanProp(false),\n\n /**\n * 是否隐藏右侧文本\n * 类型: boolean\n * 默认值: false\n */\n hideCancel: makeBooleanProp(false),\n\n /**\n * 是否禁用搜索框\n * 类型: boolean\n * 默认值: false\n */\n disabled: makeBooleanProp(false),\n\n /**\n * 原生属性,设置最大长度。-1 表示无限制\n * 类型: string / number\n * 默认值: -1\n */\n maxlength: makeNumericProp(-1),\n\n /**\n * placeholder 居左边\n * 类型: boolean\n * 默认值: false\n */\n placeholderLeft: makeBooleanProp(false),\n\n /**\n * 是否自动聚焦\n * 类型: boolean\n * 默认值: false\n * 最低版本: 0.1.63\n */\n focus: makeBooleanProp(false),\n\n /**\n * 是否在点击清除按钮时聚焦输入框\n * 类型: boolean\n * 默认值: false\n * 最低版本: 0.1.63\n */\n focusWhenClear: makeBooleanProp(false)\n}\n","import { baseProps, makeArrayProp, makeBooleanProp, makeNumberProp, makeNumericProp, makeStringProp } from '../common/props'\nimport type { FormItemRule } from '../wd-form/types'\n\nexport const inputProps = {\n ...baseProps,\n customInputClass: makeStringProp(''),\n customLabelClass: makeStringProp(''),\n // 原生属性\n /**\n * 占位文本\n */\n placeholder: String,\n /**\n * 原生属性,指定 placeholder 的样式目前仅支持color,font-size和font-weight\n */\n placeholderStyle: String,\n /**\n * 原生属性,指定 placeholder 的样式类\n */\n placeholderClass: makeStringProp(''),\n /**\n * 原生属性,指定光标与键盘的距离。取 input 距离底部的距离和cursor-spacing指定的距离的最小值作为光标与键盘的距离\n */\n cursorSpacing: makeNumberProp(0),\n /**\n * 原生属性指定focus时的光标位置\n */\n cursor: makeNumberProp(-1),\n /**\n * 原生属性光标起始位置自动聚集时有效需与selection-end搭配使用\n */\n selectionStart: makeNumberProp(-1),\n /**\n * 原生属性光标结束位置自动聚集时有效需与selection-start搭配使用\n */\n selectionEnd: makeNumberProp(-1),\n /**\n * 原生属性,键盘弹起时,是否自动上推页面\n */\n adjustPosition: makeBooleanProp(true),\n /**\n * focus时点击页面的时候不收起键盘\n */\n holdKeyboard: makeBooleanProp(false),\n /**\n * 设置键盘右下角按钮的文字仅在type='text'时生效可选值done / go / next / search / send\n */\n confirmType: makeStringProp('done'),\n /**\n * 点击键盘右下角按钮时是否保持键盘不收起\n */\n confirmHold: makeBooleanProp(false),\n /**\n * 原生属性,获取焦点\n */\n focus: makeBooleanProp(false),\n /**\n * 类型可选值text / number / digit / idcard\n */\n type: makeStringProp('text'),\n /**\n * 原生属性,最大长度\n */\n maxlength: {\n type: Number,\n // #ifndef MP-ALIPAY\n default: -1\n // #endif\n },\n /**\n * 原生属性,禁用\n */\n disabled: makeBooleanProp(false),\n /**\n * 微信小程序原生属性,强制 input 处于同层状态,默认 focus 时 input 会切到非同层状态 (仅在 iOS 下生效)\n */\n alwaysEmbed: makeBooleanProp(false),\n // 原生属性结束\n /**\n * 输入框的值靠右展示\n */\n alignRight: makeBooleanProp(false),\n /**\n * 绑定值\n */\n modelValue: makeNumericProp(''),\n /**\n * 显示为密码框\n */\n showPassword: makeBooleanProp(false),\n /**\n * 显示清空按钮\n */\n clearable: makeBooleanProp(false),\n /**\n * 只读\n */\n readonly: makeBooleanProp(false),\n /**\n * 使用 后置图标 插槽\n */\n useSuffixSlot: makeBooleanProp(false),\n /**\n * 使用 前置图标 插槽\n */\n usePrefixSlot: makeBooleanProp(false),\n /**\n * 前置图标icon组件中的图标类名\n */\n prefixIcon: String,\n /**\n * 后置图标icon组件中的图标类名\n */\n suffixIcon: String,\n /**\n * 显示字数限制,需要同时设置 maxlength\n */\n showWordLimit: makeBooleanProp(false),\n /**\n * 设置左侧标题\n */\n label: String,\n /**\n * 设置左侧标题宽度\n */\n labelWidth: makeStringProp('33%'),\n /**\n * 使用 label 插槽\n */\n useLabelSlot: makeBooleanProp(false),\n /**\n * 设置输入框大小可选值large\n */\n size: String,\n /**\n * 设置输入框错误状态,错误状态时为红色\n */\n error: makeBooleanProp(false),\n /**\n * 当有label属性时设置标题和输入框垂直居中默认为顶部居中\n */\n center: makeBooleanProp(false),\n /**\n * 非 cell 类型下是否隐藏下划线\n */\n noBorder: makeBooleanProp(false),\n /**\n * 是否必填\n */\n required: makeBooleanProp(false),\n /**\n * 表单域 model 字段名,在使用表单校验功能的情况下,该属性是必填的\n */\n prop: String,\n /**\n * 表单验证规则结合wd-form组件使用\n */\n rules: makeArrayProp<FormItemRule>()\n}\n","import type { ComponentPublicInstance, ExtractPropTypes, PropType } from 'vue'\nimport { baseProps, makeArrayProp, makeBooleanProp, makeNumberProp, makeRequiredProp, makeStringProp } from '../common/props'\nimport type { FormItemRule } from '../wd-form/types'\n\nexport const colPickerProps = {\n ...baseProps,\n /**\n * 选中项\n */\n modelValue: makeRequiredProp(Array as PropType<Array<string | number>>),\n /**\n * 选择器数据,二维数组\n */\n columns: makeArrayProp<Record<string, any>[]>(),\n /**\n * 选择器左侧文案\n */\n label: String,\n /**\n * 设置左侧标题宽度\n */\n labelWidth: makeStringProp('33%'),\n /**\n * 使用 label 插槽时设置该选项\n */\n useLabelSlot: makeBooleanProp(false),\n /**\n * 使用默认插槽时设置该选项\n */\n useDefaultSlot: makeBooleanProp(false),\n /**\n * 禁用\n */\n disabled: makeBooleanProp(false),\n /**\n * 只读\n */\n readonly: makeBooleanProp(false),\n /**\n * 选择器占位符\n */\n placeholder: String,\n /**\n * 弹出层标题\n */\n title: String,\n /**\n * 接收当前列的选中项 item、当前列下标、当前列选中项下标下一列数据处理函数 resolve、结束选择 finish\n */\n columnChange: Function as PropType<ColPickerColumnChange>,\n /**\n * 自定义展示文案的格式化函数,返回一个字符串\n */\n displayFormat: Function as PropType<ColPickerDisplayFormat>,\n /**\n * 确定前校验函数,接收 (value, resolve) 参数,通过 resolve 继续执行 pickerresolve 接收 1 个 boolean 参数\n */\n beforeConfirm: Function as PropType<ColPickerBeforeConfirm>,\n /**\n * 选择器的值靠右展示\n */\n alignRight: makeBooleanProp(false),\n /**\n * 是否为错误状态,错误状态时右侧内容为红色\n */\n error: makeBooleanProp(false),\n /**\n * 是否必填\n */\n required: makeBooleanProp(false),\n /**\n * 设置选择器大小可选值large\n */\n size: String,\n /**\n * 选项对象中value 对应的 key\n */\n valueKey: makeStringProp('value'),\n /**\n * 选项对象中,展示的文本对应的 key\n */\n labelKey: makeStringProp('label'),\n /**\n * 选项对象中,提示文案对应的 key\n */\n tipKey: makeStringProp('tip'),\n /**\n * loading 图标的颜色\n */\n loadingColor: makeStringProp('#4D80F0'),\n /**\n * 点击遮罩是否关闭\n */\n closeOnClickModal: makeBooleanProp(true),\n /**\n * 自动触发 column-change 事件来补全数据,当 columns 为空数组或者 columns 数组长度小于 value 数组长度时,会自动触发 column-change\n */\n autoComplete: makeBooleanProp(false),\n /**\n * 弹窗层级\n */\n zIndex: makeNumberProp(15),\n /**\n * 弹出面板是否设置底部安全距离iphone X 类型的机型)\n */\n safeAreaInsetBottom: makeBooleanProp(true),\n /**\n * 是否超出隐藏\n */\n ellipsis: makeBooleanProp(false),\n /**\n * 表单域 model 字段名,在使用表单校验功能的情况下,该属性是必填的\n */\n prop: String,\n /**\n * 表单验证规则结合wd-form组件使用\n */\n rules: makeArrayProp<FormItemRule>(),\n /**\n * label 外部自定义样式\n */\n customViewClass: makeStringProp(''),\n /**\n * value 外部自定义样式\n */\n customLabelClass: makeStringProp(''),\n customValueClass: makeStringProp('')\n}\n\nexport type ColPickerProps = ExtractPropTypes<typeof colPickerProps>\n\nexport type ColPickerColumnChangeOption = {\n selectedItem: Record<string, any>\n index: number\n rowIndex: number\n resolve: (nextColumn: Record<string, any>[]) => void\n finish: (isOk?: boolean) => void\n}\nexport type ColPickerColumnChange = (option: ColPickerColumnChangeOption) => void\nexport type ColPickerDisplayFormat = (selectedItems: Record<string, any>[]) => string\nexport type ColPickerBeforeConfirm = (value: (string | number)[], selectedItems: Record<string, any>[], resolve: (isPass: boolean) => void) => void\n\nexport type ColPickerExpose = {\n // 关闭picker弹框\n close: () => void\n // 打开picker弹框\n open: () => void\n}\n\nexport type ColPickerInstance = ComponentPublicInstance<ColPickerExpose, ColPickerProps>\n","import {\n provide,\n reactive,\n getCurrentInstance,\n type VNode,\n type InjectionKey,\n type VNodeNormalizedChildren,\n type ComponentPublicInstance,\n type ComponentInternalInstance\n} from 'vue'\n\n// 小程序端不支持从vue导出的isVNode方法参考uni-mp-vue的实现\nfunction isVNode(value: any): value is VNode {\n return value ? value.__v_isVNode === true : false\n}\n\nexport function flattenVNodes(children: VNodeNormalizedChildren) {\n const result: VNode[] = []\n\n const traverse = (children: VNodeNormalizedChildren) => {\n if (Array.isArray(children)) {\n children.forEach((child) => {\n if (isVNode(child)) {\n result.push(child)\n\n if (child.component?.subTree) {\n result.push(child.component.subTree)\n traverse(child.component.subTree.children)\n }\n\n if (child.children) {\n traverse(child.children)\n }\n }\n })\n }\n }\n\n traverse(children)\n\n return result\n}\n\nconst findVNodeIndex = (vnodes: VNode[], vnode: VNode) => {\n const index = vnodes.indexOf(vnode)\n if (index === -1) {\n return vnodes.findIndex((item) => vnode.key !== undefined && vnode.key !== null && item.type === vnode.type && item.key === vnode.key)\n }\n return index\n}\n\n// sort children instances by vnodes order\nexport function sortChildren(\n parent: ComponentInternalInstance,\n publicChildren: ComponentPublicInstance[],\n internalChildren: ComponentInternalInstance[]\n) {\n const vnodes = parent && parent.subTree && parent.subTree.children ? flattenVNodes(parent.subTree.children) : []\n\n internalChildren.sort((a, b) => findVNodeIndex(vnodes, a.vnode) - findVNodeIndex(vnodes, b.vnode))\n\n const orderedPublicChildren = internalChildren.map((item) => item.proxy!)\n\n publicChildren.sort((a, b) => {\n const indexA = orderedPublicChildren.indexOf(a)\n const indexB = orderedPublicChildren.indexOf(b)\n return indexA - indexB\n })\n}\n\nexport function useChildren<\n // eslint-disable-next-line\n Child extends ComponentPublicInstance = ComponentPublicInstance<{}, any>,\n ProvideValue = never\n>(key: InjectionKey<ProvideValue>) {\n const publicChildren: Child[] = reactive([])\n const internalChildren: ComponentInternalInstance[] = reactive([])\n const parent = getCurrentInstance()!\n\n const linkChildren = (value?: ProvideValue) => {\n const link = (child: ComponentInternalInstance) => {\n if (child.proxy) {\n internalChildren.push(child)\n publicChildren.push(child.proxy as Child)\n sortChildren(parent, publicChildren, internalChildren)\n }\n }\n\n const unlink = (child: ComponentInternalInstance) => {\n const index = internalChildren.indexOf(child)\n publicChildren.splice(index, 1)\n internalChildren.splice(index, 1)\n }\n\n provide(\n key,\n Object.assign(\n {\n link,\n unlink,\n children: publicChildren,\n internalChildren\n },\n value\n )\n )\n }\n\n return {\n children: publicChildren,\n linkChildren\n }\n}\n","import type { ExtractPropTypes } from 'vue'\nimport { baseProps, makeStringProp } from '../common/props'\n\nexport const dividerProps = {\n ...baseProps,\n /**\n * 自定义颜色,所有颜色的写法\n */\n color: makeStringProp('')\n}\n\nexport type DividerProps = ExtractPropTypes<typeof dividerProps>\n","/*\n * @Author: weisheng\n * @Date: 2024-03-15 20:40:34\n * @LastEditTime: 2024-05-27 18:49:28\n * @LastEditors: weisheng\n * @Description:\n * @FilePath: \\wot-design-uni\\src\\uni_modules\\wot-design-uni\\components\\wd-loading\\types.ts\n * 记得注释\n */\nimport type { ExtractPropTypes } from 'vue'\nimport { baseProps, makeNumericProp, makeStringProp } from '../common/props'\n\nexport type LoadingType = 'outline' | 'ring' // 提示信息加载状态类型\n\nexport const loadingProps = {\n ...baseProps,\n /**\n * 加载指示器类型,可选值:'outline' | 'ring'\n */\n type: makeStringProp<LoadingType>('ring'),\n /**\n * 设置加载指示器颜色\n */\n color: makeStringProp('#4D80F0'),\n /**\n * 设置加载指示器大小\n */\n size: makeNumericProp('32px')\n}\n\nexport type LoadingProps = ExtractPropTypes<typeof loadingProps>\n","import type { ExtractPropTypes, PropType } from 'vue'\nimport { baseProps, makeBooleanProp, makeNumberProp, makeStringProp } from '../common/props'\n\nexport type TransitionName =\n | 'fade'\n | 'fade-down'\n | 'fade-left'\n | 'fade-right'\n | 'fade-up'\n | 'slide-down'\n | 'slide-left'\n | 'slide-right'\n | 'slide-up'\n | 'zoom-in'\n | 'zoom-out'\n\nexport const transitionProps = {\n ...baseProps,\n\n /**\n * 是否展示组件\n * 类型boolean\n * 默认值false\n */\n show: makeBooleanProp(false),\n\n /**\n * 动画执行时间\n * 类型number | boolean | Record<string, number>\n * 默认值300 (毫秒)\n */\n duration: {\n type: [Object, Number, Boolean] as PropType<Record<string, number> | number | boolean>,\n default: 300\n },\n\n /**\n * 动画类型\n * 类型string\n * 可选值fade / fade-up / fade-down / fade-left / fade-right / slide-up / slide-down / slide-left / slide-right / zoom-in\n * 默认值:'fade'\n */\n name: makeStringProp<TransitionName | ''>('fade'),\n\n /**\n * 是否延迟渲染子组件\n * 类型boolean\n * 默认值true\n */\n lazyRender: makeBooleanProp(true),\n\n /**\n * 进入过渡的开始状态\n * 类型string\n */\n enterClass: makeStringProp(''),\n\n /**\n * 进入过渡的激活状态\n * 类型string\n */\n enterActiveClass: makeStringProp(''),\n\n /**\n * 进入过渡的结束状态\n * 类型string\n */\n enterToClass: makeStringProp(''),\n\n /**\n * 离开过渡的开始状态\n * 类型string\n */\n leaveClass: makeStringProp(''),\n\n /**\n * 离开过渡的激活状态\n * 类型string\n */\n leaveActiveClass: makeStringProp(''),\n\n /**\n * 离开过渡的结束状态\n * 类型string\n */\n leaveToClass: makeStringProp('')\n}\n\nexport type TransitionProps = ExtractPropTypes<typeof transitionProps>\n","/*\n * @Author: weisheng\n * @Date: 2024-03-15 11:36:12\n * @LastEditTime: 2024-03-18 13:24:34\n * @LastEditors: weisheng\n * @Description:\n * @FilePath: \\wot-design-uni\\src\\uni_modules\\wot-design-uni\\components\\wd-button\\types.ts\n * 记得注释\n */\nimport type { ExtractPropTypes } from 'vue'\nimport { baseProps, makeBooleanProp, makeStringProp } from '../common/props'\n\nexport type ButtonType = 'primary' | 'success' | 'info' | 'warning' | 'error' | 'default' | 'text' | 'icon'\nexport type ButtonSize = 'small' | 'medium' | 'large'\n\nexport const buttonProps = {\n ...baseProps,\n /**\n * 幽灵按钮\n */\n plain: makeBooleanProp(false),\n /**\n * 圆角按钮\n */\n round: makeBooleanProp(true),\n /**\n * 禁用按钮\n */\n disabled: makeBooleanProp(false),\n /**\n * 是否细边框\n */\n hairline: makeBooleanProp(false),\n /**\n * 块状按钮\n */\n block: makeBooleanProp(false),\n /**\n * 按钮类型可选值primary / success / info / warning / error / text / icon\n */\n type: makeStringProp<ButtonType>('primary'),\n /**\n * 按钮尺寸可选值small / medium / large\n */\n size: makeStringProp<ButtonSize>('medium'),\n /**\n * 图标类名\n */\n icon: String,\n /**\n * 加载中按钮\n */\n loading: makeBooleanProp(false),\n /**\n * 加载图标颜色\n */\n loadingColor: String,\n /**\n * 开放能力\n */\n openType: String,\n formType: String,\n /**\n * 指定是否阻止本节点的祖先节点出现点击态\n */\n hoverStopPropagation: Boolean,\n /**\n * 指定返回用户信息的语言zh_CN 简体中文zh_TW 繁体中文en 英文\n */\n lang: String,\n /**\n * 会话来源open-type=\"contact\"时有效\n */\n sessionFrom: String,\n /**\n * 会话内消息卡片标题open-type=\"contact\"时有效\n */\n sendMessageTitle: String,\n /**\n * 会话内消息卡片点击跳转小程序路径open-type=\"contact\"时有效\n */\n sendMessagePath: String,\n /**\n * 会话内消息卡片图片open-type=\"contact\"时有效\n */\n sendMessageImg: String,\n /**\n * 打开 APP 时,向 APP 传递的参数open-type=launchApp时有效\n */\n appParameter: String,\n /**\n * 是否显示会话内消息卡片,设置此参数为 true用户进入客服会话会在右下角显示\"可能要发送的小程序\"提示用户点击后可以快速发送小程序消息open-type=\"contact\"时有效\n */\n showMessageCard: Boolean\n}\n\nexport type ButtonProps = ExtractPropTypes<typeof buttonProps>\n","/*\n * @Author: weisheng\n * @Date: 2024-03-18 11:22:03\n * @LastEditTime: 2024-04-04 22:35:25\n * @LastEditors: weisheng\n * @Description:\n * @FilePath: /wot-design-uni/src/uni_modules/wot-design-uni/components/wd-action-sheet/types.ts\n * 记得注释\n */\nimport type { ExtractPropTypes } from 'vue'\nimport { baseProps, makeArrayProp, makeBooleanProp, makeNumberProp, makeRequiredProp, makeStringProp } from '../common/props'\n\nexport type Action = {\n /**\n * 选项名称\n */\n name: string\n /**\n * 描述信息\n */\n subname: string\n /**\n * 颜色\n */\n color: string\n /**\n * 禁用\n */\n disabled: boolean\n /**\n * 加载中状态\n */\n loading: boolean\n}\n\nexport type Panel = {\n /**\n * 图片地址\n */\n iconUrl: string\n /**\n * 标题内容\n */\n title: string\n}\n\nexport const actionSheetProps = {\n ...baseProps,\n /**\n * header 头部样式\n * @default ''\n * @type {string}\n */\n customHeaderClass: makeStringProp(''),\n /**\n * 设置菜单显示隐藏\n * @default false\n * @type {boolean}\n */\n modelValue: { ...makeBooleanProp(false), ...makeRequiredProp(Boolean) },\n /**\n * 菜单选项\n * @default []\n * @type {Action[]}\n */\n actions: makeArrayProp<Action>(),\n /**\n * 自定义面板项,可以为字符串数组,也可以为对象数组,如果为二维数组,则为多行展示\n * @default []\n * @type {Array<Panel | Panel[]>}\n */\n panels: makeArrayProp<Panel | Panel[]>(),\n /**\n * 标题\n * @type {string}\n */\n title: String,\n /**\n * 取消按钮文案\n * @type {string}\n */\n cancelText: String,\n /**\n * 点击选项后是否关闭菜单\n * @default true\n * @type {boolean}\n */\n closeOnClickAction: makeBooleanProp(true),\n /**\n * 点击遮罩是否关闭\n * @default true\n * @type {boolean}\n */\n closeOnClickModal: makeBooleanProp(true),\n /**\n * 弹框动画持续时间\n * @default 200\n * @type {number}\n */\n duration: makeNumberProp(200),\n /**\n * 菜单层级\n * @default 10\n * @type {number}\n */\n zIndex: makeNumberProp(10),\n /**\n * 弹层内容懒渲染,触发展示时才渲染内容\n * @default true\n * @type {boolean}\n */\n lazyRender: makeBooleanProp(true),\n /**\n * 弹出面板是否设置底部安全距离iphone X 类型的机型)\n * @default true\n * @type {boolean}\n */\n safeAreaInsetBottom: makeBooleanProp(true)\n}\n\nexport type ActionSheetProps = ExtractPropTypes<typeof actionSheetProps>\n"],"names":["set","remove","i","hasOwnProperty","hasOwn","isArray","isMap","toTypeString","isSet","isFunction","isString","isSymbol","isObject","isPromise","objectToString","isPlainObject","cache","_","c","capitalize","s","invokeArrayFns","n","_globalThis","getGlobalThis","toDisplayString","v","once","encode","createErrorHandler","E","e","self","E$1","values","parse","compile","format","index","startsWith","messages","lang","formater","uni","t","key","locale","validateProp","assertType","getInvalidTypeMessage","isSimpleType","getType","styleValue","isExplicable","isBoolean","queue","interceptors","res","method","options","rest","resolve","reject","result","errMsg","number","Emitter","cid","protocols","global","version","getProvider","mocks","r","a","last","keys","b","diff","map","g","Component","l","effect","ReactiveEffect","trigger","computed","object","BaseReactiveHandler","MutableReactiveHandler","ReadonlyReactiveHandler","get","isReadonly","isShallow","wrap","has","size","add","set$1","forEach","p","devtools","isModelListener","trim","createApp","context","plugin","mixin","createHook","callHook","h","m","initProps","isVNode","parent","warn","clone","deepCopy","f","ref","emit","uid","pruneComponentPropsCache","update","u","createVNode","createComponent","createComponent2","initHooks","applyOptions","invoke","stringify","o","w","matches","isPage","observe","initRelation","handleLink","initLifetimes","parseOptions","createPage","MutationType","noop","assign","store","nextTick","$reset","after","currentInstance","toString","isDate","assignValue","isUndefined","utils.isURLSearchParams","utils.forEach","utils.isArray","parseValue","utils.isDate","utils.isObject","validateStatus","mergeKeys","depth","re","defaults","chain","Symbol","objectProto","nativeObjectToString","symToStringTag","symbolTag","NAN","array","iteratee","INFINITY","symbolProto","string","reTrimStart","FUNC_ERROR_TEXT","func","funcTag","genTag","funcProto","funcToString","reRegExpChar","WeakMap","WRAP_BIND_FLAG","apply","nativeMax","MAX_ARRAY_LENGTH","WRAP_BIND_KEY_FLAG","WRAP_CURRY_FLAG","WRAP_CURRY_RIGHT_FLAG","WRAP_PARTIAL_FLAG","WRAP_PARTIAL_RIGHT_FLAG","WRAP_ARY_FLAG","WRAP_REARG_FLAG","WRAP_FLIP_FLAG","WRAP_CURRY_BOUND_FLAG","ary","MAX_SAFE_INTEGER","nativeMin","PLACEHOLDER","transform","argsTag","propertyIsEnumerable","freeExports","freeModule","moduleExports","Buffer","isBuffer","arrayTag","boolTag","dateTag","errorTag","mapTag","numberTag","objectTag","regexpTag","setTag","stringTag","weakMapTag","arrayBufferTag","dataViewTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag","HASH_UNDEFINED","arrayProto","splice","Map","at","rsAstralRange","rsComboMarksRange","reComboHalfMarksRange","rsComboSymbolsRange","rsComboRange","rsVarRange","rsZWJ","rsAstral","rsCombo","rsFitz","rsModifier","rsNonAstral","rsRegional","rsSurrPair","reOptMod","rsOptVar","rsOptJoin","rsSeq","rsSymbol","reUnicode","rsApos","camelCase","nativeIsFinite","nativeCeil","LARGE_ARRAY_SIZE","buffer","nativeGetSymbols","Promise","Set","Uint8Array","reFlags","symbolValueOf","CLONE_DEEP_FLAG","CLONE_FLAT_FLAG","CLONE_SYMBOLS_FLAG","stack","compact","COMPARE_PARTIAL_FLAG","COMPARE_UNORDERED_FLAG","othValue","collection","debounce","comparator","includes","escape","gt","isEqual","isFinite","isNumber","isNaN","isRegExp","kebabCase","lt","merge","symIterator","nativeFloor","parseInt","pick","indexOf","nativeRandom","range","replace","unescape","first","each","eachRight","entries","entriesIn","extend","extendWith","commit","next","plant","reverse","toIterator","toJSON","value","valueOf","LAZY_FILTER_FLAG","VERSION","isObj","_mixin","module","this","d","$","y","M","D","S","O","_e","require$$0","perf","RE_ARGS","j","pad","emitter","errorMessages","warnMessages","getWarnMessage","msg","source","root","rt","_context","te","bind","locales","composer","compactQueue","arrayToObject","utils","formats","require$$1","repeat","date","filter","serializeDate","brackets","require$$2","min","max","translate","I","k","A","P","T","C","x","wx","b64","defaultOptions","traverse","children"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAKA,SAAS,QAAQ,KAAK,kBAAkB;AACtC,QAAMA,OAAM,IAAI,IAAI,IAAI,MAAM,GAAG,CAAC;AAClC,SAAgE,CAAC,QAAQA,KAAI,IAAI,GAAG;AACtF;AAEA,MAAM,YAAwD,OAAO,OAAO,CAAA,CAAE;AAC9E,MAAM,YAAwD,OAAO,OAAO,CAAA,CAAE;AAC9E,MAAM,OAAO,MAAM;AACnB;AACA,MAAM,KAAK,MAAM;AACjB,MAAM,OAAO,CAAC,QAAQ,IAAI,WAAW,CAAC,MAAM,OAAO,IAAI,WAAW,CAAC,MAAM;AAAA,CACxE,IAAI,WAAW,CAAC,IAAI,OAAO,IAAI,WAAW,CAAC,IAAI;AAChD,MAAM,kBAAkB,CAAC,QAAQ,IAAI,WAAW,WAAW;AAC3D,MAAM,SAAS,OAAO;AACtB,MAAMC,WAAS,CAAC,KAAK,OAAO;AACpB,QAAAC,KAAI,IAAI,QAAQ,EAAE;AACxB,MAAIA,KAAI,IAAI;AACN,QAAA,OAAOA,IAAG,CAAC;AAAA,EACjB;AACF;AACA,MAAMC,mBAAiB,OAAO,UAAU;AACxC,MAAMC,WAAS,CAAC,KAAK,QAAQD,iBAAe,KAAK,KAAK,GAAG;AACzD,MAAME,YAAU,MAAM;AACtB,MAAMC,UAAQ,CAAC,QAAQC,eAAa,GAAG,MAAM;AAC7C,MAAMC,UAAQ,CAAC,QAAQD,eAAa,GAAG,MAAM;AAG7C,MAAME,eAAa,CAAC,QAAQ,OAAO,QAAQ;AAC3C,MAAMC,aAAW,CAAC,QAAQ,OAAO,QAAQ;AACzC,MAAMC,aAAW,CAAC,QAAQ,OAAO,QAAQ;AACzC,MAAMC,aAAW,CAAC,QAAQ,QAAQ,QAAQ,OAAO,QAAQ;AACzD,MAAMC,cAAY,CAAC,QAAQ;AACzB,UAAQD,WAAS,GAAG,KAAKH,aAAW,GAAG,MAAMA,aAAW,IAAI,IAAI,KAAKA,aAAW,IAAI,KAAK;AAC3F;AACA,MAAMK,mBAAiB,OAAO,UAAU;AACxC,MAAMP,iBAAe,CAAC,UAAUO,iBAAe,KAAK,KAAK;AACzD,MAAM,YAAY,CAAC,UAAU;AAC3B,SAAOP,eAAa,KAAK,EAAE,MAAM,GAAG,EAAE;AACxC;AACA,MAAMQ,kBAAgB,CAAC,QAAQR,eAAa,GAAG,MAAM;AACrD,MAAM,eAAe,CAAC,QAAQG,WAAS,GAAG,KAAK,QAAQ,SAAS,IAAI,CAAC,MAAM,OAAO,KAAK,SAAS,KAAK,EAAE,MAAM;AAC7G,MAAM,iBAAiC;AAAA;AAAA,EAErC;AACF;AACA,MAAM,qBAAqC;AAAA,EACzC;AACF;AACA,MAAM,sBAAsB,CAAC,OAAO;AAC5B,QAAAM,SAA+B,uBAAA,OAAO,IAAI;AAChD,SAAO,CAAC,QAAQ;AACR,UAAA,MAAMA,OAAM,GAAG;AACrB,WAAO,QAAQA,OAAM,GAAG,IAAI,GAAG,GAAG;AAAA,EAAA;AAEtC;AACA,MAAM,aAAa;AACnB,MAAM,WAAW,oBAAoB,CAAC,QAAQ;AACrC,SAAA,IAAI,QAAQ,YAAY,CAACC,IAAGC,OAAMA,KAAIA,GAAE,YAAY,IAAI,EAAE;AACnE,CAAC;AACD,MAAM,cAAc;AACpB,MAAM,YAAY;AAAA,EAChB,CAAC,QAAQ,IAAI,QAAQ,aAAa,KAAK,EAAE,YAAY;AACvD;AACA,MAAMC,eAAa,oBAAoB,CAAC,QAAQ;AACvC,SAAA,IAAI,OAAO,CAAC,EAAE,gBAAgB,IAAI,MAAM,CAAC;AAClD,CAAC;AACD,MAAM,eAAe,oBAAoB,CAAC,QAAQ;AAChD,QAAMC,KAAI,MAAM,KAAKD,aAAW,GAAG,CAAC,KAAK;AAClC,SAAAC;AACT,CAAC;AACD,MAAM,aAAa,CAAC,OAAO,aAAa,CAAC,OAAO,GAAG,OAAO,QAAQ;AAClE,MAAMC,mBAAiB,CAAC,KAAK,QAAQ;AACnC,WAASnB,KAAI,GAAGA,KAAI,IAAI,QAAQA,MAAK;AAC/B,QAAAA,EAAC,EAAE,GAAG;AAAA,EACZ;AACF;AACA,MAAM,MAAM,CAAC,KAAK,KAAK,UAAU;AACxB,SAAA,eAAe,KAAK,KAAK;AAAA,IAC9B,cAAc;AAAA,IACd,YAAY;AAAA,IACZ;AAAA,EAAA,CACD;AACH;AACA,MAAM,gBAAgB,CAAC,QAAQ;AACvB,QAAAoB,KAAI,WAAW,GAAG;AACjB,SAAA,MAAMA,EAAC,IAAI,MAAMA;AAC1B;AAKA,IAAIC;AACJ,MAAMC,kBAAgB,MAAM;AAC1B,SAAOD,kBAAgBA,gBAAc,OAAO,eAAe,cAAc,aAAa,OAAO,SAAS,cAAc,OAAO,OAAO,WAAW,cAAc,SAAS,OAAO,WAAW,cAAc,SAAS,CAAA;AAC/M;AAwIA,SAAS,eAAe,OAAO;AACzB,MAAAlB,UAAQ,KAAK,GAAG;AAClB,UAAM,MAAM,CAAA;AACZ,aAASH,KAAI,GAAGA,KAAI,MAAM,QAAQA,MAAK;AAC/B,YAAA,OAAO,MAAMA,EAAC;AACd,YAAA,aAAaQ,WAAS,IAAI,IAAI,iBAAiB,IAAI,IAAI,eAAe,IAAI;AAChF,UAAI,YAAY;AACd,mBAAW,OAAO,YAAY;AACxB,cAAA,GAAG,IAAI,WAAW,GAAG;AAAA,QAC3B;AAAA,MACF;AAAA,IACF;AACO,WAAA;AAAA,aACEA,WAAS,KAAK,KAAKE,WAAS,KAAK,GAAG;AACtC,WAAA;AAAA,EACT;AACF;AACA,MAAM,kBAAkB;AACxB,MAAM,sBAAsB;AAC5B,MAAM,iBAAiB;AACvB,SAAS,iBAAiB,SAAS;AACjC,QAAM,MAAM,CAAA;AACJ,UAAA,QAAQ,gBAAgB,EAAE,EAAE,MAAM,eAAe,EAAE,QAAQ,CAAC,SAAS;AAC3E,QAAI,MAAM;AACF,YAAA,MAAM,KAAK,MAAM,mBAAmB;AAC1C,UAAI,SAAS,MAAM,IAAI,IAAI,CAAC,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,EAAE,KAAK;AAAA,IACtD;AAAA,EAAA,CACD;AACM,SAAA;AACT;AAeA,SAAS,eAAe,OAAO;AAC7B,MAAI,MAAM;AACN,MAAAF,WAAS,KAAK,GAAG;AACb,UAAA;AAAA,EAAA,WACGL,UAAQ,KAAK,GAAG;AACzB,aAASH,KAAI,GAAGA,KAAI,MAAM,QAAQA,MAAK;AACrC,YAAM,aAAa,eAAe,MAAMA,EAAC,CAAC;AAC1C,UAAI,YAAY;AACd,eAAO,aAAa;AAAA,MACtB;AAAA,IACF;AAAA,EAAA,WACSU,WAAS,KAAK,GAAG;AAC1B,eAAW,QAAQ,OAAO;AACpB,UAAA,MAAM,IAAI,GAAG;AACf,eAAO,OAAO;AAAA,MAChB;AAAA,IACF;AAAA,EACF;AACA,SAAO,IAAI;AACb;AA+JA,MAAMa,oBAAkB,CAAC,QAAQ;AAC/B,SAAOf,WAAS,GAAG,IAAI,MAAM,OAAO,OAAO,KAAKL,UAAQ,GAAG,KAAKO,WAAS,GAAG,MAAM,IAAI,aAAaE,oBAAkB,CAACL,aAAW,IAAI,QAAQ,KAAK,KAAK,UAAU,KAAK,UAAU,CAAC,IAAI,OAAO,GAAG;AACjM;AACA,MAAM,WAAW,CAAC,MAAM,QAAQ;AAC1B,MAAA,OAAO,IAAI,WAAW;AACjB,WAAA,SAAS,MAAM,IAAI,KAAK;AAAA,EAAA,WACtBH,QAAM,GAAG,GAAG;AACd,WAAA;AAAA,MACL,CAAC,OAAO,IAAI,IAAI,GAAG,GAAG,CAAC,GAAG,IAAI,QAAS,CAAA,EAAE;AAAA,QACvC,CAAC,SAAS,CAAC,KAAK,IAAI,GAAGJ,OAAM;AAC3B,kBAAQ,gBAAgB,KAAKA,EAAC,IAAI,KAAK,IAAI;AACpC,iBAAA;AAAA,QACT;AAAA,QACA,CAAC;AAAA,MACH;AAAA,IAAA;AAAA,EACF,WACSM,QAAM,GAAG,GAAG;AACd,WAAA;AAAA,MACL,CAAC,OAAO,IAAI,IAAI,GAAG,GAAG,CAAC,GAAG,IAAI,OAAQ,CAAA,EAAE,IAAI,CAACkB,OAAM,gBAAgBA,EAAC,CAAC;AAAA,IAAA;AAAA,EACvE,WACSf,WAAS,GAAG,GAAG;AACxB,WAAO,gBAAgB,GAAG;AAAA,EAAA,WACjBC,WAAS,GAAG,KAAK,CAACP,UAAQ,GAAG,KAAK,CAACU,gBAAc,GAAG,GAAG;AAChE,WAAO,OAAO,GAAG;AAAA,EACnB;AACO,SAAA;AACT;AACA,MAAM,kBAAkB,CAACW,IAAGxB,KAAI,OAAO;AACjC,MAAA;AACG,SAAAS,WAASe,EAAC,IAAI,WAAW,KAAKA,GAAE,gBAAgB,OAAO,KAAKxB,EAAC,MAAMwB;AAC5E;ACvNA,MAAM,WAAW;AAOjB,MAAM,oBAAoB;AAoB1B,MAAM,UAAU;AAChB,MAAM,UAAU;AAEhB,MAAM,YAAY;AAClB,MAAM,WAAW;AACjB,MAAM,kBAAkB;AAGxB,MAAM,oBAAoB;AAC1B,MAAM,wBAAwB;AAC9B,MAAM,UAAU;AAEhB,MAAM,UAAU;AAChB,MAAM,WAAW;AACjB,MAAM,YAAY;AAElB,MAAM,UAAU;AAEhB,MAAM,qBAAqB;AAC3B,MAAM,YAAY;AAClB,MAAM,gBAAgB;AACtB,MAAM,iBAAiB;AACvB,MAAM,kBAAkB;AACxB,MAAM,kBAAkB;AACxB,MAAM,uBAAuB;AAC7B,MAAM,oBAAoB;AAC1B,MAAM,sBAAsB;AAC5B,MAAM,uBAAuB;AAE7B,MAAM,+BAA+B;AAErC,MAAM,yCAAyC;AAC/C,MAAM,yCAAyC;AAC/C,MAAM,2CAA2C;AACjD,MAAM,+CAA+C;AAmDrD,MAAM,cAAc;AACpB,SAAS,eAAe,KAAK;AACzB,SAAO,SAAS,IAAI,QAAQ,aAAa,GAAG,CAAC;AACjD;AAyFA,SAAS,gBAAgB,KAAK;AACnB,SAAA,IAAI,QAAQ,GAAG,MAAM;AAChC;AACA,SAAS,gBAAgB,KAAK;AAC1B,SAAO,gBAAgB,GAAG,IAAI,MAAM,MAAM;AAC9C;AAIA,MAAM,iBAAiB,CAAC,KAAK,QAAQ;AAC7B,MAAA;AACJ,WAASxB,KAAI,GAAGA,KAAI,IAAI,QAAQA,MAAK;AAC3B,UAAA,IAAIA,EAAC,EAAE,GAAG;AAAA,EACpB;AACO,SAAA;AACX;AAMA,SAASyB,OAAK,IAAI,MAAM,MAAM;AACtB,MAAA;AACJ,SAAQ,IAAI,SAAS;AACjB,QAAI,IAAI;AACE,YAAA,GAAG,MAAM,KAAK,IAAI;AACnB,WAAA;AAAA,IACT;AACO,WAAA;AAAA,EAAA;AAEf;AAoCA,SAAS,mBAAmB,KAAK,MAAM;AAC/B,MAAA,CAACjB,WAAS,IAAI,GAAG;AACjB;AAAA,EACJ;AACO,SAAA,KAAK,QAAQ,cAAc,KAAK;AACjC,QAAA,QAAQ,KAAK,MAAM,GAAG;AACxB,MAAA,MAAM,MAAM,CAAC;AACjB,MAAI,CAAC,KAAK;AACN,UAAM,CAAA;AAAA,EACV;AACI,MAAA,MAAM,WAAW,GAAG;AACpB,WAAO,IAAI,GAAG;AAAA,EAClB;AACO,SAAA,mBAAmB,IAAI,GAAG,GAAG,MAAM,MAAM,CAAC,EAAE,KAAK,GAAG,CAAC;AAChE;AACA,SAAS,WAAW,KAAK;AACrB,MAAI,UAAU,CAAA;AACV,MAAAK,gBAAc,GAAG,GAAG;AACpB,WAAO,KAAK,GAAG,EACV,OACA,QAAQ,CAAC,QAAQ;AAClB,YAAM,OAAO;AACL,cAAA,IAAI,IAAI,IAAI,IAAI;AAAA,IAAA,CAC3B;AAAA,EACL;AACA,SAAO,CAAC,OAAO,KAAK,OAAO,IAAI,MAAM;AACzC;AAgJA,MAAMa,WAAS;AACf,SAAS,eAAe,KAAK,YAAYA,UAAQ;AACvC,QAAA,MAAM,MACN,OAAO,KAAK,GAAG,EACZ,IAAI,CAAC,QAAQ;AACV,QAAA,MAAM,IAAI,GAAG;AACjB,QAAI,OAAO,QAAQ,UAAa,QAAQ,MAAM;AACpC,YAAA;AAAA,IAAA,WAEDb,gBAAc,GAAG,GAAG;AACnB,YAAA,KAAK,UAAU,GAAG;AAAA,IAC5B;AACA,WAAO,UAAU,GAAG,IAAI,MAAM,UAAU,GAAG;AAAA,EAC9C,CAAA,EACI,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,EAC1B,KAAK,GAAG,IACX;AACC,SAAA,MAAM,IAAI,GAAG,KAAK;AAC7B;AAspBA,MAAM,aAAa;AAAA,EACf;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ;AAUA,SAAS,WAAW,MAAM;AACf,SAAA,WAAW,QAAQ,IAAI,IAAI;AACtC;AACA,MAAM,oBAAoB;AAAA,EACtB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ;AACA,MAAM,kCAAuD,uBAAA;AAClD,SAAA;AAAA,IACH,cAAc;AAAA,IACd,mBAAmB,KAAK;AAAA,IACxB,iBAAiB,KAAK;AAAA,EAAA;AAE9B;AACA,SAAS,mBAAmB,MAAM,OAAO,YAAY,MAAM;AAEvD,MAAI,aAAa,CAACN,aAAW,KAAK,GAAG;AAC1B,WAAA;AAAA,EACX;AACA,MAAI,kBAAkB,QAAQ,IAAI,IAAI,IAAI;AAE/B,WAAA;AAAA,EAEF,WAAA,KAAK,QAAQ,IAAI,MAAM,GAAG;AAExB,WAAA;AAAA,EACX;AACO,SAAA;AACX;AAEA,IAAI;AACJ,MAAM,oBAAoB,CAAA;AAI1B,SAAS,eAAe,MAAM;AAE1B,MAAI,QAAQ;AACR,WAAO,KAAK,MAAM;AAAA,EACtB;AACA,oBAAkB,KAAK,IAAI;AAC/B;AACA,SAAS,uBAAuB,KAAK;AACxB,WAAA;AACT,oBAAkB,QAAQ,CAAC,SAAS,KAAK,GAAG,CAAC;AACjD;AACA,MAAM,2BAA2BkB,OAAK,CAAC,KAAKE,wBAAuB;AAC/D,MAAIpB,aAAW,IAAI,WAAW,OAAO,GAAG;AACpC,WAAOoB,oBAAmB,GAAG;AAAA,EACjC;AACJ,CAAC;AAED,MAAMC,MAAI,WAAY;AAGtB;AACAA,IAAE,YAAY;AAAA,EACV,IAAI,SAAU,MAAM,UAAU,KAAK;AAC/B,QAAIC,KAAI,KAAK,MAAM,KAAK,IAAI,CAAA;AAC3B,KAAAA,GAAE,IAAI,MAAMA,GAAE,IAAI,IAAI,CAAA,IAAK,KAAK;AAAA,MAC7B,IAAI;AAAA,MACJ;AAAA,IAAA,CACH;AACM,WAAA;AAAA,EACX;AAAA,EACA,MAAM,SAAU,MAAM,UAAU,KAAK;AACjC,QAAIC,QAAO;AACX,aAAS,WAAW;AACX,MAAAA,MAAA,IAAI,MAAM,QAAQ;AACd,eAAA,MAAM,KAAK,SAAS;AAAA,IACjC;AACA,aAAS,IAAI;AACb,WAAO,KAAK,GAAG,MAAM,UAAU,GAAG;AAAA,EACtC;AAAA,EACA,MAAM,SAAU,MAAM;AAClB,QAAI,OAAO,CAAA,EAAG,MAAM,KAAK,WAAW,CAAC;AACjC,QAAA,WAAW,KAAK,MAAM,KAAK,IAAI,CAAA,IAAK,IAAI,KAAK,CAAC,GAAG,MAAM;AAC3D,QAAI9B,KAAI;AACR,QAAI,MAAM,OAAO;AACZ,SAAAA,IAAGA,KAAI,KAAKA,MAAK;AACX,aAAAA,EAAC,EAAE,GAAG,MAAM,OAAOA,EAAC,EAAE,KAAK,IAAI;AAAA,IAC1C;AACO,WAAA;AAAA,EACX;AAAA,EACA,KAAK,SAAU,MAAM,UAAU;AAC3B,QAAI6B,KAAI,KAAK,MAAM,KAAK,IAAI,CAAA;AACxB,QAAA,OAAOA,GAAE,IAAI;AACjB,QAAI,aAAa,CAAA;AACjB,QAAI,QAAQ,UAAU;AAClB,eAAS7B,KAAI,KAAK,SAAS,GAAGA,MAAK,GAAGA,MAAK;AACnC,YAAA,KAAKA,EAAC,EAAE,OAAO,YAAY,KAAKA,EAAC,EAAE,GAAG,MAAM,UAAU;AACjD,eAAA,OAAOA,IAAG,CAAC;AAChB;AAAA,QACJ;AAAA,MACJ;AACa,mBAAA;AAAA,IACjB;AAIA,eAAW,SAAU6B,GAAE,IAAI,IAAI,aAAc,OAAOA,GAAE,IAAI;AACnD,WAAA;AAAA,EACX;AACJ;AACA,IAAIE,QAAMH;AC/gDV,MAAMlB,aAAW,CAAC,QAAQ,QAAQ,QAAQ,OAAO,QAAQ;AACzD,MAAM,oBAAoB,CAAC,KAAK,GAAG;AACnC,MAAM,cAAc;AAAA,EAChB,cAAc;AACL,SAAA,UAAiB,uBAAA,OAAO,IAAI;AAAA,EACrC;AAAA,EACA,YAAY,SAASsB,SAAQ,aAAa,mBAAmB;AACzD,QAAI,CAACA,SAAQ;AACT,aAAO,CAAC,OAAO;AAAA,IACnB;AACI,QAAA,SAAS,KAAK,QAAQ,OAAO;AACjC,QAAI,CAAC,QAAQ;AACA,eAAAC,QAAM,SAAS,UAAU;AAC7B,WAAA,QAAQ,OAAO,IAAI;AAAA,IAC5B;AACO,WAAAC,UAAQ,QAAQF,OAAM;AAAA,EACjC;AACJ;AACA,MAAM,sBAAsB;AAC5B,MAAM,uBAAuB;AAC7B,SAASC,QAAME,SAAQ,CAAC,gBAAgB,YAAY,GAAG;AACnD,QAAM,SAAS,CAAA;AACf,MAAI,WAAW;AACf,MAAI,OAAO;AACJ,SAAA,WAAWA,QAAO,QAAQ;AACzB,QAAA,OAAOA,QAAO,UAAU;AAC5B,QAAI,SAAS,gBAAgB;AACzB,UAAI,MAAM;AACN,eAAO,KAAK,EAAE,MAAM,QAAQ,OAAO,MAAM;AAAA,MAC7C;AACO,aAAA;AACP,UAAI,MAAM;AACV,aAAOA,QAAO,UAAU;AACjB,aAAA,SAAS,UAAa,SAAS,cAAc;AACzC,eAAA;AACP,eAAOA,QAAO,UAAU;AAAA,MAC5B;AACA,YAAM,WAAW,SAAS;AACpB,YAAA,OAAO,oBAAoB,KAAK,GAAG,IACnC,SACA,YAAY,qBAAqB,KAAK,GAAG,IACrC,UACA;AACV,aAAO,KAAK,EAAE,OAAO,KAAK,KAAM,CAAA;AAAA,IAAA,OAQ/B;AACO,cAAA;AAAA,IACZ;AAAA,EACJ;AACA,UAAQ,OAAO,KAAK,EAAE,MAAM,QAAQ,OAAO,MAAM;AAC1C,SAAA;AACX;AACA,SAASD,UAAQ,QAAQF,SAAQ;AAC7B,QAAM,WAAW,CAAA;AACjB,MAAII,SAAQ;AACN,QAAA,OAAO,MAAM,QAAQJ,OAAM,IAC3B,SACAtB,WAASsB,OAAM,IACX,UACA;AACV,MAAI,SAAS,WAAW;AACb,WAAA;AAAA,EACX;AACO,SAAAI,SAAQ,OAAO,QAAQ;AACpB,UAAA,QAAQ,OAAOA,MAAK;AAC1B,YAAQ,MAAM,MAAM;AAAA,MAChB,KAAK;AACQ,iBAAA,KAAK,MAAM,KAAK;AACzB;AAAA,MACJ,KAAK;AACD,iBAAS,KAAKJ,QAAO,SAAS,MAAM,OAAO,EAAE,CAAC,CAAC;AAC/C;AAAA,MACJ,KAAK;AACD,YAAI,SAAS,SAAS;AAClB,mBAAS,KAAKA,QAAO,MAAM,KAAK,CAAC;AAAA,QAAA,OAEhC;AAC0C;AACvC,oBAAQ,KAAK,kBAAkB,MAAM,IAAI,0BAA0B,IAAI,gBAAgB;AAAA,UAC3F;AAAA,QACJ;AACA;AAAA,MACJ,KAAK;AAC0C;AACvC,kBAAQ,KAAK,iCAAiC;AAAA,QAClD;AACA;AAAA,IACR;AACA,IAAAI;AAAA,EACJ;AACO,SAAA;AACX;AAEA,MAAM,iBAAiB;AACvB,MAAM,iBAAiB;AACvB,MAAM,YAAY;AAClB,MAAM,YAAY;AAClB,MAAM,YAAY;AAClB,MAAMnC,mBAAiB,OAAO,UAAU;AACxC,MAAMC,WAAS,CAAC,KAAK,QAAQD,iBAAe,KAAK,KAAK,GAAG;AACzD,MAAM,mBAAmB,IAAI;AAC7B,SAAS,QAAQ,KAAK,OAAO;AAClB,SAAA,CAAC,CAAC,MAAM,KAAK,CAAC,SAAS,IAAI,QAAQ,IAAI,MAAM,EAAE;AAC1D;AACA,SAASoC,aAAW,KAAK,OAAO;AACrB,SAAA,MAAM,KAAK,CAAC,SAAS,IAAI,QAAQ,IAAI,MAAM,CAAC;AACvD;AACA,SAAS,gBAAgB,QAAQC,WAAU;AACvC,MAAI,CAAC,QAAQ;AACT;AAAA,EACJ;AACA,WAAS,OAAO,KAAA,EAAO,QAAQ,MAAM,GAAG;AACpC,MAAAA,aAAYA,UAAS,MAAM,GAAG;AACvB,WAAA;AAAA,EACX;AACA,WAAS,OAAO;AAChB,MAAI,WAAW,WAAW;AAEf,WAAA;AAAA,EACX;AACA,MAAI,OAAO,QAAQ,IAAI,MAAM,GAAG;AAC5B,QAAI,OAAO,QAAQ,OAAO,IAAI,IAAI;AACvB,aAAA;AAAA,IACX;AACA,QAAI,OAAO,QAAQ,OAAO,IAAI,IAAI;AACvB,aAAA;AAAA,IACX;AACI,QAAA,QAAQ,QAAQ,CAAC,OAAO,OAAO,OAAO,MAAM,CAAC,GAAG;AACzC,aAAA;AAAA,IACX;AACO,WAAA;AAAA,EACX;AACA,MAAI,UAAU,CAAC,WAAW,WAAW,SAAS;AAC9C,MAAIA,aAAY,OAAO,KAAKA,SAAQ,EAAE,SAAS,GAAG;AACpC,cAAA,OAAO,KAAKA,SAAQ;AAAA,EAClC;AACM,QAAAC,QAAOF,aAAW,QAAQ,OAAO;AACvC,MAAIE,OAAM;AACC,WAAAA;AAAA,EACX;AACJ;AACA,MAAM,KAAK;AAAA,EACP,YAAY,EAAE,QAAQ,gBAAgB,UAAAD,WAAU,SAAS,UAAAE,aAAa;AAClE,SAAK,SAAS;AACd,SAAK,iBAAiB;AACtB,SAAK,UAAU;AACf,SAAK,WAAW;AAChB,SAAK,WAAW;AAChB,QAAI,gBAAgB;AAChB,WAAK,iBAAiB;AAAA,IAC1B;AACA,SAAK,WAAWA,aAAY;AACvB,SAAA,WAAWF,aAAY;AACvB,SAAA,UAAU,UAAU,SAAS;AAClC,QAAI,SAAS;AACT,WAAK,YAAY,OAAO;AAAA,IAC5B;AAAA,EACJ;AAAA,EACA,UAAU,QAAQ;AACd,UAAM,YAAY,KAAK;AACvB,SAAK,SAAS,gBAAgB,QAAQ,KAAK,QAAQ,KAAK,KAAK;AAC7D,QAAI,CAAC,KAAK,SAAS,KAAK,MAAM,GAAG;AAE7B,WAAK,SAAS,KAAK,MAAM,IAAI,CAAA;AAAA,IACjC;AACA,SAAK,UAAU,KAAK,SAAS,KAAK,MAAM;AAEpC,QAAA,cAAc,KAAK,QAAQ;AACtB,WAAA,SAAS,QAAQ,CAAC,YAAY;AACvB,gBAAA,KAAK,QAAQ,SAAS;AAAA,MAAA,CACjC;AAAA,IACL;AAAA,EACJ;AAAA,EACA,YAAY;AACR,WAAO,KAAK;AAAA,EAChB;AAAA,EACA,YAAY,IAAI;AACZ,UAAMF,SAAQ,KAAK,SAAS,KAAK,EAAE,IAAI;AACvC,WAAO,MAAM;AACJ,WAAA,SAAS,OAAOA,QAAO,CAAC;AAAA,IAAA;AAAA,EAErC;AAAA,EACA,IAAI,QAAQ,SAAS,WAAW,MAAM;AAC5B,UAAA,cAAc,KAAK,SAAS,MAAM;AACxC,QAAI,aAAa;AACb,UAAI,UAAU;AACH,eAAA,OAAO,aAAa,OAAO;AAAA,MAAA,OAEjC;AACD,eAAO,KAAK,OAAO,EAAE,QAAQ,CAAC,QAAQ;AAClC,cAAI,CAAClC,SAAO,aAAa,GAAG,GAAG;AACf,wBAAA,GAAG,IAAI,QAAQ,GAAG;AAAA,UAClC;AAAA,QAAA,CACH;AAAA,MACL;AAAA,IAAA,OAEC;AACI,WAAA,SAAS,MAAM,IAAI;AAAA,IAC5B;AAAA,EACJ;AAAA,EACA,EAAE,SAAS8B,SAAQ,YAAY;AACpB,WAAA,KAAK,SAAS,YAAY,SAASA,SAAQ,UAAU,EAAE,KAAK,EAAE;AAAA,EACzE;AAAA,EACA,EAAE,KAAK,QAAQA,SAAQ;AACnB,QAAI,UAAU,KAAK;AACf,QAAA,OAAO,WAAW,UAAU;AACnB,eAAA,gBAAgB,QAAQ,KAAK,QAAQ;AACnC,iBAAA,UAAU,KAAK,SAAS,MAAM;AAAA,IAAA,OAExC;AACQ,MAAAA,UAAA;AAAA,IACb;AACA,QAAI,CAAC9B,SAAO,SAAS,GAAG,GAAG;AACf,cAAA,KAAK,yCAAyC,GAAG,wCAAwC;AAC1F,aAAA;AAAA,IACX;AACO,WAAA,KAAK,SAAS,YAAY,QAAQ,GAAG,GAAG8B,OAAM,EAAE,KAAK,EAAE;AAAA,EAClE;AACJ;AAEA,SAAS,eAAe,OAAO,MAAM;AAEjC,MAAI,MAAM,cAAc;AAEd,UAAA,aAAa,CAAC,cAAc;AAC9B,WAAK,UAAU,SAAS;AAAA,IAAA,CAC3B;AAAA,EAAA,OAEA;AACD,UAAM,OAAO,MAAM,MAAM,SAAS,CAAC,cAAc;AAC7C,WAAK,UAAU,SAAS;AAAA,IAAA,CAC3B;AAAA,EACL;AACJ;AACA,SAAS,mBAAmB;AACxB,MAAI,OAAOS,YAAQ,eAAeA,QAAI,WAAW;AAC7C,WAAOA,QAAI;EACf;AAEA,MAAI,OAAO,WAAW,eAAe,OAAO,WAAW;AACnD,WAAO,OAAO;EAClB;AACO,SAAA;AACX;AACA,SAAS,YAAY,QAAQH,YAAW,CAAA,GAAI,gBAAgB,SAAS;AAE7D,MAAA,OAAO,WAAW,UAAU;AAC3B,KAAA,QAAQA,SAAQ,IAAI;AAAA,MACjBA;AAAA,MACA;AAAA,IAAA;AAAA,EAER;AACI,MAAA,OAAO,WAAW,UAAU;AAE5B,aAAS,iBAAiB;AAAA,EAC9B;AACI,MAAA,OAAO,mBAAmB,UAAU;AACpC,qBACK,OAAO,gBAAgB,eAAe,YAAY,kBAC/C;AAAA,EACZ;AACM,QAAA,OAAO,IAAI,KAAK;AAAA,IAClB;AAAA,IACA;AAAA,IACA,UAAAA;AAAA,IACA;AAAA,EAAA,CACH;AACG,MAAAI,KAAI,CAAC,KAAKV,YAAW;AACjB,QAAA,OAAO,WAAW,YAAY;AAG1B,MAAAU,KAAA,SAAUC,MAAKX,UAAQ;AAChB,eAAA,KAAK,EAAEW,MAAKX,QAAM;AAAA,MAAA;AAAA,IAC7B,OAEC;AACD,UAAI,qBAAqB;AACrB,MAAAU,KAAA,SAAUC,MAAKX,UAAQ;AACjB,cAAA,QAAQ,OAAS,EAAA;AAcvB,YAAI,OAAO;AAED,gBAAA;AACN,cAAI,CAAC,oBAAoB;AACA,iCAAA;AACrB,2BAAe,OAAO,IAAI;AAAA,UAC9B;AAAA,QACJ;AACO,eAAA,KAAK,EAAEW,MAAKX,QAAM;AAAA,MAAA;AAAA,IAEjC;AACO,WAAAU,GAAE,KAAKV,OAAM;AAAA,EAAA;AAEjB,SAAA;AAAA,IACH;AAAA,IACA,EAAE,SAASA,SAAQ,YAAY;AAC3B,aAAO,KAAK,EAAE,SAASA,SAAQ,UAAU;AAAA,IAC7C;AAAA,IACA,EAAE,KAAKA,SAAQ;AACJ,aAAAU,GAAE,KAAKV,OAAM;AAAA,IACxB;AAAA,IACA,IAAIY,SAAQ,SAAS,WAAW,MAAM;AAClC,aAAO,KAAK,IAAIA,SAAQ,SAAS,QAAQ;AAAA,IAC7C;AAAA,IACA,MAAM,IAAI;AACC,aAAA,KAAK,YAAY,EAAE;AAAA,IAC9B;AAAA,IACA,YAAY;AACR,aAAO,KAAK;IAChB;AAAA,IACA,UAAU,WAAW;AACV,aAAA,KAAK,UAAU,SAAS;AAAA,IACnC;AAAA,EAAA;AAER;ACxUA,SAAS,oBAAoB;AACzB,SAAO,GAAG;AACd;AAEA,SAAS,qBAAqB,MAAM,KAAK;AACrC,UAAQ,KAAK,GAAG,IAAI,KAAK,GAAG,EAAE;AAClC;AACA,SAAS,iBAAiB,MAAM,MAAM,UAAU,QAAQ;AACpD,MAAI,CAAC,QAAQ;AACA,aAAA;AAAA,EACb;AACA,aAAW,OAAO,UAAU;AACxB,UAAM,SAASC,eAAa,KAAK,KAAK,GAAG,GAAG,SAAS,GAAG,GAAG,CAAC3C,SAAO,MAAM,GAAG,CAAC;AACzE,QAAAM,WAAS,MAAM,GAAG;AAClB,aAAO,MAAM,MAAM;AAAA,IACvB;AAAA,EACJ;AACJ;AACA,SAAS,kBAAkB,MAAM,MAAM,UAAU,QAAQ;AACrD,MAAI,CAAC,UAAU;AACX;AAAA,EACJ;AACI,MAAA,CAACL,UAAQ,QAAQ,GAAG;AACb,WAAA,iBAAiB,MAAM,KAAK,CAAC,4BAAY,OAAO,IAAI,GAAG,UAAU,MAAM;AAAA,EAClF;AACA,QAAM,MAAM,SAAS;AACrB,QAAM,UAAU,KAAK;AACrB,WAASH,KAAI,GAAGA,KAAI,KAAKA,MAAK;AACpB,UAAA,OAAO,SAASA,EAAC;AACjB,UAAA,OAAc,uBAAA,OAAO,IAAI;AAC/B,QAAI,UAAUA,IAAG;AACb,WAAK,KAAK,IAAI,IAAI,KAAKA,EAAC;AAAA,IAC5B;AACiB,qBAAA,MAAM,MAAM,EAAE,CAAC,KAAK,IAAI,GAAG,QAAQ,MAAM;AAAA,EAC9D;AACJ;AACA,SAAS6C,eAAa,MAAM,OAAO,MAAM,UAAU;AAC3C,MAAA,CAAChC,gBAAc,IAAI,GAAG;AACf,WAAA,EAAE,MAAM;EACnB;AACA,QAAM,EAAE,MAAM,UAAU,UAAA,IAAc;AAEtC,MAAI,YAAY,UAAU;AACtB,WAAO,6BAA6B,OAAO;AAAA,EAC/C;AAEI,MAAA,SAAS,QAAQ,CAAC,UAAU;AAC5B;AAAA,EACJ;AAEA,MAAI,QAAQ,MAAM;AACd,QAAI,UAAU;AACd,UAAM,QAAQV,UAAQ,IAAI,IAAI,OAAO,CAAC,IAAI;AAC1C,UAAM,gBAAgB,CAAA;AAEtB,aAASH,KAAI,GAAGA,KAAI,MAAM,UAAU,CAAC,SAASA,MAAK;AACzC,YAAA,EAAE,OAAO,iBAAiB8C,aAAW,OAAO,MAAM9C,EAAC,CAAC;AAC5C,oBAAA,KAAK,gBAAgB,EAAE;AAC3B,gBAAA;AAAA,IACd;AACA,QAAI,CAAC,SAAS;AACH,aAAA+C,wBAAsB,MAAM,OAAO,aAAa;AAAA,IAC3D;AAAA,EACJ;AAEA,MAAI,WAAW;AACX,WAAO,UAAU,KAAK;AAAA,EAC1B;AACJ;AACA,MAAMC,yCAAqC,uCAAuC;AAClF,SAASF,aAAW,OAAO,MAAM;AACzB,MAAA;AACE,QAAA,eAAeG,UAAQ,IAAI;AAC7B,MAAAD,eAAa,YAAY,GAAG;AAC5B,UAAMN,KAAI,OAAO;AACT,YAAAA,OAAM,aAAa;AAEvB,QAAA,CAAC,SAASA,OAAM,UAAU;AAC1B,cAAQ,iBAAiB;AAAA,IAC7B;AAAA,EAAA,WAEK,iBAAiB,UAAU;AAChC,YAAQhC,WAAS,KAAK;AAAA,EAAA,WAEjB,iBAAiB,SAAS;AAC/B,YAAQP,UAAQ,KAAK;AAAA,EAAA,OAEpB;AACD;AACI,cAAQ,iBAAiB;AAAA,IAC7B;AAAA,EACJ;AACO,SAAA;AAAA,IACH;AAAA,IACA;AAAA,EAAA;AAER;AACA,SAAS4C,wBAAsB,MAAM,OAAO,eAAe;AACnD,MAAA,UAAU,6CAA6C,IAAI,eAC9C,cAAc,IAAI9B,YAAU,EAAE,KAAK,IAAI,CAAC;AACnD,QAAA,eAAe,cAAc,CAAC;AAC9B,QAAA,eAAe,UAAU,KAAK;AAC9B,QAAA,gBAAgBiC,aAAW,OAAO,YAAY;AAC9C,QAAA,gBAAgBA,aAAW,OAAO,YAAY;AAEhD,MAAA,cAAc,WAAW,KACzBC,eAAa,YAAY,KACzB,CAACC,YAAU,cAAc,YAAY,GAAG;AACxC,eAAW,eAAe,aAAa;AAAA,EAC3C;AACA,aAAW,SAAS,YAAY;AAE5B,MAAAD,eAAa,YAAY,GAAG;AAC5B,eAAW,cAAc,aAAa;AAAA,EAC1C;AACO,SAAA;AACX;AACA,SAASF,UAAQ,MAAM;AACnB,QAAM,QAAQ,QAAQ,KAAK,SAAS,EAAE,MAAM,oBAAoB;AACzD,SAAA,QAAQ,MAAM,CAAC,IAAI;AAC9B;AACA,SAASC,aAAW,OAAO,MAAM;AAC7B,MAAI,SAAS,UAAU;AACnB,WAAO,IAAI,KAAK;AAAA,EAAA,WAEX,SAAS,UAAU;AACjB,WAAA,GAAG,OAAO,KAAK,CAAC;AAAA,EAAA,OAEtB;AACD,WAAO,GAAG,KAAK;AAAA,EACnB;AACJ;AACA,SAASC,eAAa,MAAM;AACxB,QAAM,gBAAgB,CAAC,UAAU,UAAU,SAAS;AACpD,SAAO,cAAc,KAAK,CAAC,SAAS,KAAK,YAAA,MAAkB,IAAI;AACnE;AACA,SAASC,eAAa,MAAM;AACxB,SAAO,KAAK,KAAK,CAAC,SAAS,KAAK,YAAA,MAAkB,SAAS;AAC/D;AAEA,SAAS,SAAS,IAAI;AAClB,SAAO,WAAY;AACX,QAAA;AACO,aAAA,GAAG,MAAM,IAAI,SAAS;AAAA,aAE1BvB,IAAG;AAEN,cAAQ,MAAMA,EAAC;AAAA,IACnB;AAAA,EAAA;AAER;AAEA,IAAI,mBAAmB;AACvB,MAAM,kBAAkB,CAAA;AACxB,SAAS,kBAAkB,IAAI,MAAM,UAAU,YAAY,OAAO;AAC9D,kBAAgB,EAAE,IAAI;AAAA,IAClB;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEG,SAAA;AACX;AAEA,SAAS,eAAe,IAAI,KAAK,QAAQ;AACjC,MAAA,OAAO,OAAO,UAAU;AAClB,UAAA,OAAO,gBAAgB,EAAE;AAC/B,QAAI,MAAM;AACF,UAAA,CAAC,KAAK,WAAW;AACjB,eAAO,gBAAgB,EAAE;AAAA,MAC7B;AACO,aAAA,KAAK,SAAS,KAAK,MAAM;AAAA,IACpC;AAAA,EACJ;AACO,SAAA;AACX;AACA,MAAM,cAAc;AACpB,MAAM,WAAW;AACjB,MAAM,eAAe;AACrB,SAAS,gBAAgB,MAAM;AAC3B,QAAM,eAAe,CAAA;AACrB,aAAW,QAAQ,MAAM;AACf,UAAA,KAAK,KAAK,IAAI;AAChB,QAAAtB,aAAW,EAAE,GAAG;AACH,mBAAA,IAAI,IAAI,SAAS,EAAE;AAChC,aAAO,KAAK,IAAI;AAAA,IACpB;AAAA,EACJ;AACO,SAAA;AACX;AACA,SAAS,kBAAkB,QAAQ,MAAM;AACrC,MAAI,CAAC,UAAU,OAAO,QAAQ,OAAO,MAAM,IAAI;AAC3C,WAAO,OAAO;AAAA,EAClB;AACA,SAAO,OAAO,OAAO,UAAU,OAAO,QAAQ,OAAO,CAAC;AAC1D;AACA,SAAS,uBAAuB,MAAM,OAAO,CAAA,GAAI,EAAE,WAAW,cAAkB,IAAA,IAAI;AAC5E,MAAA,CAACM,gBAAc,IAAI,GAAG;AACtB,WAAO,CAAA;AAAA,EACX;AACA,QAAM,EAAE,SAAS,MAAM,SAAS,IAAI,gBAAgB,IAAI;AAClD,QAAA,aAAaN,aAAW,OAAO;AAC/B,QAAA,UAAUA,aAAW,IAAI;AACzB,QAAA,cAAcA,aAAW,QAAQ;AACvC,QAAM,aAAa;AACD,oBAAA,YAAY,MAAM,CAAC,QAAQ;AACzC,UAAM,OAAO;AACb,QAAI,SAAS,kBAAkB,IAAI,QAAQ,IAAI;AACpCA,iBAAA,SAAS,KAAK,UAAU,GAAG;AAClC,QAAA,IAAI,WAAW,OAAO,OAAO;AAC7BA,mBAAW,aAAa,KAAK,cAAc,KAAK,IAAI;AACpD,oBAAc,QAAQ,GAAG;AAAA,IAAA,OAExB;AACD,iBAAW,KAAK,GAAG;AAAA,IACvB;AACA,mBAAe,SAAS,GAAG;AAAA,EAAA,CAC9B;AACM,SAAA;AACX;AAEA,MAAM,eAAe;AACrB,MAAM,YAAY;AAClB,MAAM,gBAAgB;AACtB,MAAM,qBAAqB,CAAA;AAC3B,MAAM,qBAAqB,CAAA;AAC3B,SAAS,YAAY,MAAM,QAAQ;AAC/B,SAAO,SAAU,MAAM;AACZ,WAAA,KAAK,MAAM,MAAM,KAAK;AAAA,EAAA;AAErC;AACA,SAAS8C,QAAM,OAAO,MAAM,QAAQ;AAChC,MAAI,UAAU;AACd,WAASrD,KAAI,GAAGA,KAAI,MAAM,QAAQA,MAAK;AAC7B,UAAA,OAAO,MAAMA,EAAC;AACpB,QAAI,SAAS;AACT,gBAAU,QAAQ,QAAQ,YAAY,MAAM,MAAM,CAAC;AAAA,IAAA,OAElD;AACK,YAAA,MAAM,KAAK,MAAM,MAAM;AACzB,UAAAW,YAAU,GAAG,GAAG;AACN,kBAAA,QAAQ,QAAQ,GAAG;AAAA,MACjC;AACA,UAAI,QAAQ,OAAO;AACR,eAAA;AAAA,UACH,OAAO;AAAA,UAAE;AAAA,UACT,QAAQ;AAAA,UAAE;AAAA,QAAA;AAAA,MAElB;AAAA,IACJ;AAAA,EACJ;AACA,SAAQ,WAAW;AAAA,IACf,KAAK,UAAU;AACX,aAAO,SAAS,IAAI;AAAA,IACxB;AAAA,IACA,QAAQ;AAAA,IAAE;AAAA,EAAA;AAElB;AACA,SAAS,eAAe2C,eAAc,UAAU,IAAI;AAChD,GAAC,cAAc,WAAW,aAAa,EAAE,QAAQ,CAAC,SAAS;AACjD,UAAA,QAAQA,cAAa,IAAI;AAC3B,QAAA,CAACnD,UAAQ,KAAK,GAAG;AACjB;AAAA,IACJ;AACM,UAAA,cAAc,QAAQ,IAAI;AAChC,YAAQ,IAAI,IAAI,SAAS,oBAAoB,KAAK;AAC9CkD,cAAM,OAAO,KAAK,OAAO,EAAE,KAAK,CAACE,SAAQ;AACrC,eAAQhD,aAAW,WAAW,KAAK,YAAYgD,IAAG,KAAMA;AAAAA,MAAA,CAC3D;AAAA,IAAA;AAAA,EACL,CACH;AACM,SAAA;AACX;AACA,SAAS,mBAAmBC,SAAQ,aAAa;AAC7C,QAAM,mBAAmB,CAAA;AACrB,MAAArD,UAAQ,mBAAmB,WAAW,GAAG;AACxB,qBAAA,KAAK,GAAG,mBAAmB,WAAW;AAAA,EAC3D;AACM,QAAA,cAAc,mBAAmBqD,OAAM;AAC7C,MAAI,eAAerD,UAAQ,YAAY,WAAW,GAAG;AAChC,qBAAA,KAAK,GAAG,YAAY,WAAW;AAAA,EACpD;AACiB,mBAAA,QAAQ,CAAC,SAAS;AACjB,kBAAA,KAAK,WAAW,KAAK;AAAA,EAAA,CACtC;AACM,SAAA;AACX;AACA,SAAS,uBAAuBqD,SAAQ;AAC9B,QAAA,cAAqB,uBAAA,OAAO,IAAI;AACtC,SAAO,KAAK,kBAAkB,EAAE,QAAQ,CAAC,SAAS;AAC9C,QAAI,SAAS,eAAe;AACxB,kBAAY,IAAI,IAAI,mBAAmB,IAAI,EAAE,MAAM;AAAA,IACvD;AAAA,EAAA,CACH;AACK,QAAA,oBAAoB,mBAAmBA,OAAM;AACnD,MAAI,mBAAmB;AACnB,WAAO,KAAK,iBAAiB,EAAE,QAAQ,CAAC,SAAS;AAC7C,UAAI,SAAS,eAAe;AACZ,oBAAA,IAAI,KAAK,YAAY,IAAI,KAAK,CAAI,GAAA,OAAO,kBAAkB,IAAI,CAAC;AAAA,MAChF;AAAA,IAAA,CACH;AAAA,EACL;AACO,SAAA;AACX;AACA,SAAS,UAAUA,SAAQ,KAAK,SAAS,QAAQ;AACvC,QAAA,cAAc,uBAAuBA,OAAM;AACjD,MAAI,eAAe,OAAO,KAAK,WAAW,EAAE,QAAQ;AAC5C,QAAArD,UAAQ,YAAY,MAAM,GAAG;AAC7B,YAAM,MAAMkD,QAAM,YAAY,QAAQ,OAAO;AACtC,aAAA,IAAI,KAAK,CAACI,aAAY;AAElB,eAAA,IAAI,eAAe,uBAAuBD,OAAM,GAAGC,QAAO,GAAG,GAAG,MAAM;AAAA,MAAA,CAChF;AAAA,IAAA,OAEA;AACD,aAAO,IAAI,eAAe,aAAa,OAAO,GAAG,GAAG,MAAM;AAAA,IAC9D;AAAA,EACJ;AACO,SAAA,IAAI,SAAS,GAAG,MAAM;AACjC;AAEA,SAAS,YAAY,MAAM;AACvB,MAAI5C,gBAAc,IAAI,KAClB,CAAC,aAAa,UAAU,YAAY,EAAE,KAAK,CAAC,OAAON,aAAW,KAAK,EAAE,CAAC,CAAC,GAAG;AACnE,WAAA;AAAA,EACX;AACO,SAAA;AACX;AACA,SAAS,cAAc,SAAS;AAQrB,SAAA;AACX;AACA,SAAS,YAAY,MAAM,IAAI;AAC3B,SAAO,CAAC,OAAO,OAAOmD,UAAS;AACvB,QAAA,YAAY,IAAI,GAAG;AACnB,aAAO,mBAAmB,MAAM,UAAU,MAAM,IAAI,MAAMA,KAAI,CAAC;AAAA,IACnE;AACA,WAAO,mBAAmB,MAAM,cAAc,IAAI,QAAQ,CAACC,UAASC,YAAW;AACjE,gBAAA,MAAM,IAAI,OAAO,MAAM,EAAE,SAASD,UAAS,MAAMC,SAAQ,GAAGF,KAAI;AAAA,IAC7E,CAAA,CAAC,CAAC;AAAA,EAAA;AAEX;AAEA,SAAS,cAAc,MAAM,SAAS;AACnB,OAAK,CAAC;AAE8C;AAC/D;AAAA,EACJ;AAmBJ;AACA,SAAS,cAAc,IAAI,MAAM,KAAK;AAClC,QAAMG,UAAS;AAAA,IACX,QAAQ,OAAO;AAAA,EAAA;AAEnB,SAAO,eAAe,IAAI,OAAQ,OAAO,CAAC,GAAIA,OAAM,CAAC;AACzD;AACA,SAAS,WAAW,IAAI,MAAM,QAAQ,SAAS,CAAA,GAAI;AAC/C,QAAM,YAAY,OAAO,WAAW,SAAS,MAAM,SAAS;AAC5D,SAAO,OAAO;AACd,MAAI,MAAM,OAAO,EAAE,QAAQ,UAAA,GAAa,MAAM;AACvC,SAAA,eAAe,IAAI,GAAG;AACjC;AACA,SAAS,gBAAgB,MAAM,MAAM,UAAU,SAAS;AACP;AACvB,sBAAA,MAAM,MAAM,QAAQ;AAAA,EAC1C;AAOM,QAAA,SAAS,cAAc,IAAa;AAC1C,MAAI,QAAQ;AACD,WAAA;AAAA,EACX;AACJ;AACA,SAAS,gBAAgB,QAAQ;AAC7B,MAAI,CAAC,UAAUrD,WAAS,MAAM,GAAG;AACtB,WAAA;AAAA,EACX;AACA,MAAI,OAAO,OAAO;AACd,YAAQ,MAAM,OAAO,UAAU,WAAW,OAAO,KAAK;AACtD,WAAO,OAAO;AAAA,EAClB;AACO,SAAA;AACX;AACA,SAAS,eAAe,MAAM,IAAI,UAAU,SAAS;AACjD,SAAO,CAAC,SAAS;AACb,UAAM,KAAK,uBAAuB,MAAM,MAAM,OAAO;AACrD,UAAM,SAAS,gBAAgB,MAAM,CAAC,IAAI,GAAG,QAAiB;AAC9D,QAAI,QAAQ;AACD,aAAA,WAAW,IAAI,MAAM,MAAM;AAAA,IACtC;AACA,WAAO,GAAG,MAAM;AAAA,MACZ,SAAS,CAAC,QAAQ,cAAc,IAAI,MAAM,GAAG;AAAA,MAC7C,QAAQ,CAACsD,SAAQ,WAAW,WAAW,IAAI,MAAM,gBAAgBA,OAAM,GAAG,MAAM;AAAA,IAAA,CACnF;AAAA,EAAA;AAET;AACA,SAAS,eAAe,MAAM,IAAI,UAAU,SAAS;AACjD,SAAO,IAAI,SAAS;AAChB,UAAM,SAAS,gBAAgB,MAAM,MAAM,QAAiB;AAC5D,QAAI,QAAQ;AACF,YAAA,IAAI,MAAM,MAAM;AAAA,IAC1B;AACO,WAAA,GAAG,MAAM,MAAM,IAAI;AAAA,EAAA;AAElC;AACA,SAAS,gBAAgB,MAAM,IAAI,UAAU,SAAS;AAClD,SAAO,eAAe,MAAM,IAAI,UAAU,OAAO;AACrD;AACA,SAAS,cAAc,MAAM,IAAI,UAAU,SAAS;AAChD,SAAO,eAAe,MAAM,IAA8C,QAA6B;AAC3G;AACA,SAAS,eAAe,MAAM,IAAI,UAAU,SAAS;AAC1C,SAAA,YAAY,MAAM,gBAAgB,MAAM,IAA8C,UAAsB,OAAO,CAAC;AAC/H;AAEA,MAAM,aAAa;AACnB,MAAM,iBAAiB;AAAA,EACnB;AAAA,IACI,MAAM;AAAA,IACN,MAAM,CAAC,QAAQ,MAAM;AAAA,IACrB,UAAU;AAAA,EACd;AACJ;AAEA,MAAM,MAAM;AACZ,MAAM,oBAAoB;AAC1B,IAAI,QAAQ;AACZ,IAAI,cAAc;AAClB,IAAI,YAAY;AAChB,SAAS,mBAAmB;AACxB,QAAM,EAAE,UAAU,YAAY,gBAAgB,kBAAkB;AAClD,gBAAA;AACF,cAAA;AACZ,UAAQ,aAAa;AACzB;AACA,MAAM,SAAS,cAAc,YAAY,CAACC,SAAQ,mBAAmB;AACjE,MAAI,gBAAgB,GAAG;AACF;EACrB;AACA,EAAAA,UAAS,OAAOA,OAAM;AACtB,MAAIA,YAAW,GAAG;AACP,WAAA;AAAA,EACX;AACA,MAAI,QAAQ,kBAAkB;AAC1B,MAAAF,UAAUE,UAAS,oBAAqB;AAC5C,MAAIF,UAAS,GAAG;AACZ,IAAAA,UAAS,CAACA;AAAA,EACd;AACS,EAAAA,UAAA,KAAK,MAAMA,UAAS,GAAG;AAChC,MAAIA,YAAW,GAAG;AACV,QAAA,cAAc,KAAK,CAAC,OAAO;AAClB,MAAAA,UAAA;AAAA,IAAA,OAER;AACQ,MAAAA,UAAA;AAAA,IACb;AAAA,EACJ;AACO,SAAAE,UAAS,IAAI,CAACF,UAASA;AAClC,GAAG,cAAc;AAEjB,MAAM,sBAAsB;AAC5B,MAAM,yBAAyB;AAC/B,MAAM,yBAAyB;AAAA,EAC3B;AAAA,IACI,MAAM;AAAA,IACN,MAAM,CAAC,QAAQ,MAAM;AAAA,IACrB,UAAU;AAAA,EACd;AACJ;AACA,MAAM,4BAA4B;AAElC,SAAS,qBAAqBP,eAAc,aAAa;AACrD,SAAO,KAAK,WAAW,EAAE,QAAQ,CAAC,SAAS;AACvC,QAAI/C,aAAW,YAAY,IAAI,CAAC,GAAG;AAC/B+C,oBAAa,IAAI,IAAI,UAAUA,cAAa,IAAI,GAAG,YAAY,IAAI,CAAC;AAAA,IACxE;AAAA,EAAA,CACH;AACL;AACA,SAAS,sBAAsBA,eAAc,aAAa;AAClD,MAAA,CAACA,iBAAgB,CAAC,aAAa;AAC/B;AAAA,EACJ;AACA,SAAO,KAAK,WAAW,EAAE,QAAQ,CAAC,SAAS;AACjC,UAAA,QAAQA,cAAa,IAAI;AACzB,UAAA,OAAO,YAAY,IAAI;AAC7B,QAAInD,UAAQ,KAAK,KAAKI,aAAW,IAAI,GAAG;AACpCR,eAAO,OAAO,IAAI;AAAA,IACtB;AAAA,EAAA,CACH;AACL;AACA,SAAS,UAAU,WAAW,UAAU;AACpC,QAAM,MAAM,WACN,YACI,UAAU,OAAO,QAAQ,IACzBI,UAAQ,QAAQ,IACZ,WACA,CAAC,QAAQ,IACjB;AACC,SAAA,MAAM,YAAY,GAAG,IAAI;AACpC;AACA,SAAS,YAAY,OAAO;AACxB,QAAM,MAAM,CAAA;AACZ,WAASH,KAAI,GAAGA,KAAI,MAAM,QAAQA,MAAK;AACnC,QAAI,IAAI,QAAQ,MAAMA,EAAC,CAAC,MAAM,IAAI;AAC1B,UAAA,KAAK,MAAMA,EAAC,CAAC;AAAA,IACrB;AAAA,EACJ;AACO,SAAA;AACX;AACA,MAAM,iBAAiB,cAAc,qBAAqB,CAACwD,SAAQ,gBAAgB;AAC/E,MAAIhD,WAASgD,OAAM,KAAK3C,gBAAc,WAAW,GAAG;AAC3B,yBAAA,mBAAmB2C,OAAM,MAAM,mBAAmBA,OAAM,IAAI,CAAA,IAAK,WAAW;AAAA,EAAA,WAE5F3C,gBAAc2C,OAAM,GAAG;AAC5B,yBAAqB,oBAAoBA,OAAM;AAAA,EACnD;AACJ,GAAG,sBAAsB;AACzB,MAAM,oBAAoB,cAAc,wBAAwB,CAACA,SAAQ,gBAAgB;AACjF,MAAAhD,WAASgD,OAAM,GAAG;AACd,QAAA3C,gBAAc,WAAW,GAAG;AACN,4BAAA,mBAAmB2C,OAAM,GAAG,WAAW;AAAA,IAAA,OAE5D;AACD,aAAO,mBAAmBA,OAAM;AAAA,IACpC;AAAA,EAAA,WAEK3C,gBAAc2C,OAAM,GAAG;AAC5B,0BAAsB,oBAAoBA,OAAM;AAAA,EACpD;AACJ,GAAG,yBAAyB;AAC5B,MAAM,eAAe,CAAA;AAErB,MAAM,SAAS;AACf,MAAM,aAAa;AAAA,EACf;AAAA,IACI,MAAM;AAAA,IACN,MAAM;AAAA,IACN,UAAU;AAAA,EACd;AAAA,EACA;AAAA,IACI,MAAM;AAAA,IACN,MAAM;AAAA,IACN,UAAU;AAAA,EACd;AACJ;AACA,MAAM,WAAW;AACjB,MAAM,eAAe;AACrB,MAAM,UAAU;AAChB,MAAM,cAAc;AAAA,EAChB;AAAA,IACI,MAAM;AAAA,IACN,MAAM,CAAC,QAAQ,KAAK;AAAA,EACxB;AAAA,EACA;AAAA,IACI,MAAM;AAAA,IACN,MAAM;AAAA,EACV;AACJ;AACA,MAAM,WAAW;AACjB,MAAM,eAAe;AAAA,EACjB;AAAA,IACI,MAAM;AAAA,IACN,MAAM;AAAA,IACN,UAAU;AAAA,EACd;AACJ;AAEA,MAAM,UAAU,IAAIQ;AACpB,MAAM,MAAM,cAAc,QAAQ,CAAC,MAAM,aAAa;AAC1C,UAAA,GAAG,MAAM,QAAQ;AACzB,SAAO,MAAM,QAAQ,IAAI,MAAM,QAAQ;AAC3C,GAAG,UAAU;AACb,MAAM,QAAQ,cAAc,UAAU,CAAC,MAAM,aAAa;AAC9C,UAAA,KAAK,MAAM,QAAQ;AAC3B,SAAO,MAAM,QAAQ,IAAI,MAAM,QAAQ;AAC3C,GAAG,YAAY;AACf,MAAM,OAAO,cAAc,SAAS,CAAC,MAAM,aAAa;AACpD,MAAI,CAAC,MAAM;AACP,YAAQ,IAAI;AACZ;AAAA,EACJ;AACI,MAAA,CAAC7D,UAAQ,IAAI;AACb,WAAO,CAAC,IAAI;AAChB,OAAK,QAAQ,CAACiB,OAAM,QAAQ,IAAIA,IAAG,QAAQ,CAAC;AAChD,GAAG,WAAW;AACd,MAAM,QAAQ,cAAc,UAAU,CAAC,SAAS,SAAS;AAC7C,UAAA,KAAK,MAAM,GAAG,IAAI;AAC9B,GAAG,YAAY;AAEf,IAAI;AACJ,IAAI;AACJ,IAAI;AACJ,SAAS,qBAAqB,SAAS;AAC/B,MAAA;AACO,WAAA,KAAK,MAAM,OAAO;AAAA,WAEtBS,IAAG;AAAA,EAAE;AACL,SAAA;AACX;AAKA,SAAS,mBAAmB,MAAM;AAC1B,MAAA,KAAK,SAAS,WAAW;AACf,cAAA;AAAA,EAAA,WAEL,KAAK,SAAS,YAAY;AAC/B,UAAM,KAAK;AACX,gBAAY,KAAK;AACS,8BAAA,KAAK,KAAK,MAAM;AAAA,EAAA,WAErC,KAAK,SAAS,WAAW;AAC9B,UAAM,UAAU;AAAA,MACZ,MAAM;AAAA,MACN,MAAM,qBAAqB,KAAK,OAAO;AAAA,IAAA;AAE3C,aAAS7B,KAAI,GAAGA,KAAI,uBAAuB,QAAQA,MAAK;AAC9C,YAAA,WAAW,uBAAuBA,EAAC;AACzC,eAAS,OAAO;AAEhB,UAAI,QAAQ,SAAS;AACjB;AAAA,MACJ;AAAA,IACJ;AAAA,EAAA,WAEK,KAAK,SAAS,SAAS;AACL,2BAAA,QAAQ,CAAC,aAAa;AAChC,eAAA;AAAA,QACL,MAAM;AAAA,QACN,MAAM,qBAAqB,KAAK,OAAO;AAAA,MAAA,CAC1C;AAAA,IAAA,CACJ;AAAA,EACL;AACJ;AACA,MAAM,sBAAsB,CAAA;AAC5B,SAAS,0BAA0BiE,MAAK,QAAQ;AACxB,sBAAA,QAAQ,CAAC,aAAa;AACtC,aAASA,MAAK,MAAM;AAAA,EAAA,CACvB;AACD,sBAAoB,SAAS;AACjC;AACA,MAAM,yBAAyB;AAC/B,MAAM,kBAAkB,eAAe,wBAAwB,CAAClD,IAAG,EAAE,SAAA4C,UAAS,QAAAC,cAAa;AAC/E,UAAA,UAAU,KAAK,MAAM;AACrB,QAAA,OAAO,YAAY,aAAa;AACtB,gBAAA;AACJ,YAAA;AACM,kBAAA;AAAA,IAChB;AACoB,wBAAA,KAAK,CAACK,MAAK,WAAW;AACtC,UAAIA,MAAK;AACG,QAAAN,SAAA,EAAE,KAAAM,KAAAA,CAAK;AAAA,MAAA,OAEd;AACD,QAAAL,QAAO,MAAM;AAAA,MACjB;AAAA,IAAA,CACH;AACG,QAAA,OAAO,QAAQ,aAAa;AAC5B,gCAA0B,KAAK,SAAS;AAAA,IAC5C;AAAA,EAAA,CACH;AACL,CAAC;AACD,MAAM,yBAAyB,CAAA;AAE/B,MAAM,gBAAgB,CAAC,OAAO;AAC1B,MAAI,uBAAuB,QAAQ,EAAE,MAAM,IAAI;AAC3C,2BAAuB,KAAK,EAAE;AAAA,EAClC;AACJ;AACA,MAAM,iBAAiB,CAAC,OAAO;AAC3B,MAAI,CAAC,IAAI;AACL,2BAAuB,SAAS;AAAA,EAAA,OAE/B;AACKxB,UAAAA,SAAQ,uBAAuB,QAAQ,EAAE;AAC/C,QAAIA,SAAQ,IAAI;AACW,6BAAA,OAAOA,QAAO,CAAC;AAAA,IAC1C;AAAA,EACJ;AACJ;AAEA,MAAM,cAAc;AACpB,MAAM,iBAAiB;AAEvB,MAAM,qBAAqB,CAAC,qBAAqB;AAEjD,MAAM,YAAY,CAAC,qBAAqB;AACxC,MAAM,kBAAkB;AACxB,SAAS,aAAa,MAAM;AACxB,SAAO,eAAe,KAAK,IAAI,KAAK,mBAAmB,QAAQ,IAAI,MAAM;AAC7E;AACA,SAAS,UAAU,MAAM;AACrB,SAAO,YAAY,KAAK,IAAI,KAAK,UAAU,QAAQ,IAAI,MAAM;AACjE;AACA,SAAS,cAAc,MAAM;AACzB,SAAO,gBAAgB,KAAK,IAAI,KAAK,SAAS;AAClD;AACA,SAAS,cAAc,MAAM;AACrB,MAAA,aAAa,IAAI,KAAK,UAAU,IAAI,KAAK,cAAc,IAAI,GAAG;AACvD,WAAA;AAAA,EACX;AACO,SAAA;AACX;AAEA,IAAI,CAAC,QAAQ,UAAU,SAAS;AACpB,UAAA,UAAU,UAAU,SAAU,WAAW;AAC7C,UAAM,UAAU,KAAK;AACd,WAAA,KAAK,KAAK,CAAC,UAAU,QAAQ,QAAQ,aAAa,UAAU,CAAC,EAAE,KAAK,MAAM,KAAK,GAAG,CAAC,WAAW,QAAQ,QAAQ,aAAa,UAAU,CAAC,EAAE,KAAK,MAAM;AAChJ,YAAA;AAAA,IACT,CAAA,CAAC;AAAA,EAAA;AAEV;AACA,SAAS,UAAU,MAAM,KAAK;AACtB,MAAA,CAAC,cAAc,IAAI,GAAG;AACf,WAAA;AAAA,EACX;AACI,MAAA,CAAC7B,aAAW,GAAG,GAAG;AACX,WAAA;AAAA,EACX;AACA,SAAO,SAAS,WAAW,UAAU,OAAOmD,OAAM;AAC1C,QAAAnD,aAAW,QAAQ,OAAO,KAC1BA,aAAW,QAAQ,IAAI,KACvBA,aAAW,QAAQ,QAAQ,GAAG;AAC9B,aAAO,mBAAmB,MAAM,UAAU,MAAM,KAAK,SAASmD,KAAI,CAAC;AAAA,IACvE;AACA,WAAO,mBAAmB,MAAM,cAAc,IAAI,QAAQ,CAACC,UAASC,YAAW;AAC3E,gBAAU,MAAM,KAAK,OAAO,CAAA,GAAI,SAAS;AAAA,QACrC,SAASD;AAAA,QACT,MAAMC;AAAA,MAAA,CACT,GAAGF,KAAI;AAAA,IACX,CAAA,CAAC,CAAC;AAAA,EAAA;AAEX;AAEA,MAAM,YAAY,CAAC,WAAW,QAAQ,UAAU,UAAU;AAC1D,SAAS,YAAYQ,YAAW;AACnB,WAAA,gBAAgB,YAAYV,SAAQ,aAAa;AACtD,WAAO,SAAU,KAAK;AAClB,aAAOA,QAAO,mBAAmB,YAAY,KAAK,WAAW,CAAC;AAAA,IAAA;AAAA,EAEtE;AACS,WAAA,YAAY,YAAY,UAAU,aAAa,IAAI,cAAc,CAAA,GAAI,eAAe,OAAO;AAC5F,QAAA3C,gBAAc,QAAQ,GAAG;AAEzB,YAAM,SAAU,iBAAiB,OAAO,WAAW,CAAA;AAC/C,UAAAN,aAAW,UAAU,GAAG;AACxB,qBAAa,WAAW,UAAU,MAAM,KAAK,CAAA;AAAA,MACjD;AACA,iBAAW,OAAO,UAAU;AACpB,YAAAL,SAAO,YAAY,GAAG,GAAG;AACrB,cAAA,YAAY,WAAW,GAAG;AAC1B,cAAAK,aAAW,SAAS,GAAG;AACvB,wBAAY,UAAU,SAAS,GAAG,GAAG,UAAU,MAAM;AAAA,UACzD;AACA,cAAI,CAAC,WAAW;AAEZ,oBAAQ,KAAK,SAAS,UAAU,SAAS,GAAG,EAAE;AAAA,UAAA,WAEzCC,WAAS,SAAS,GAAG;AAEnB,mBAAA,SAAS,IAAI,SAAS,GAAG;AAAA,UAAA,WAE3BK,gBAAc,SAAS,GAAG;AAE/B,mBAAO,UAAU,OAAO,UAAU,OAAO,GAAG,IAAI,UAAU;AAAA,UAC9D;AAAA,QAEK,WAAA,UAAU,QAAQ,GAAG,MAAM,IAAI;AAC9B,gBAAA,WAAW,SAAS,GAAG;AACzB,cAAAN,aAAW,QAAQ,GAAG;AACtB,mBAAO,GAAG,IAAI,gBAAgB,YAAY,UAAU,WAAW;AAAA,UACnE;AAAA,QAAA,OAEC;AACD,cAAI,CAAC,gBAAgB,CAACL,SAAO,QAAQ,GAAG,GAAG;AAChC,mBAAA,GAAG,IAAI,SAAS,GAAG;AAAA,UAC9B;AAAA,QACJ;AAAA,MACJ;AACO,aAAA;AAAA,IAAA,WAEFK,aAAW,QAAQ,GAAG;AAChB,iBAAA,gBAAgB,YAAY,UAAU,WAAW;AAAA,IAChE;AACO,WAAA;AAAA,EACX;AACA,WAAS,mBAAmB,YAAY,KAAK,aAAa,kBAAkB,OAAO;AAC3E,QAAAA,aAAW2D,WAAU,WAAW,GAAG;AAE7BA,YAAAA,WAAU,YAAY,YAAY,GAAG;AAAA,IAC/C;AACA,WAAO,YAAY,YAAY,KAAK,aAAa,CAAA,GAAI,eAAe;AAAA,EACxE;AACO,SAAA,SAAS,QAAQ,YAAYV,SAAQ;AACxC,QAAI,CAACtD,SAAOgE,YAAW,UAAU,GAAG;AACzB,aAAAV;AAAA,IACX;AACM,UAAA,WAAWU,WAAU,UAAU;AACrC,QAAI,CAAC,UAAU;AAEX,aAAO,WAAY;AACP,gBAAA,MAAM,aAAa,UAAU,EAAE;AAAA,MAAA;AAAA,IAE/C;AACO,WAAA,SAAU,MAAM,MAAM;AAEzB,UAAI,UAAU;AACV,UAAA3D,aAAW,QAAQ,GAAG;AACtB,kBAAU,SAAS,IAAI;AAAA,MAC3B;AACA,aAAO,YAAY,YAAY,MAAM,QAAQ,MAAM,QAAQ,WAAW;AAChE,YAAA,OAAO,CAAC,IAAI;AACd,UAAA,OAAO,SAAS,aAAa;AAC7B,aAAK,KAAK,IAAI;AAAA,MAClB;AACM,YAAA,cAAc,GAAG,QAAQ,QAAQ,UAAU,EAAE,MAAM,IAAI,IAAI;AAC7D,UAAA,UAAU,UAAU,GAAG;AAEvB,eAAO,mBAAmB,YAAY,aAAa,QAAQ,aAAa,aAAa,UAAU,CAAC;AAAA,MACpG;AACO,aAAA;AAAA,IAAA;AAAA,EACX;AAER;AAEA,MAAM,YAAY,MAAM;AAEd,QAAA,MAAMA,aAAW,MAAM,KAAK,OAAO,EAAE,cAAc,MAAM;AAC3D,MAAA,OAAO,IAAI,KAAK;AAChB,WAAO,IAAI,IAAI;AAAA,EACnB;AACA,SAAO,gBAAgB,GAAG,kBAAkB,EAAE,QAAQ,KAAK;AAC/D;AACA,MAAM,YAAY,CAAC,WAAW;AAC1B,QAAM,MAAMA,aAAW,MAAM,KAAK,OAAO;AACzC,MAAI,CAAC,KAAK;AACC,WAAA;AAAA,EACX;AACM,QAAA,YAAY,IAAI,IAAI;AAC1B,MAAI,cAAc,QAAQ;AACtB,QAAI,IAAI,UAAU;AAClB,4BAAwB,QAAQ,CAAC,OAAO,GAAG,EAAE,OAAQ,CAAA,CAAC;AAC/C,WAAA;AAAA,EACX;AACO,SAAA;AACX;AACA,MAAM,0BAA0B,CAAA;AAChC,MAAM,iBAAiB,CAAC,OAAO;AAC3B,MAAI,wBAAwB,QAAQ,EAAE,MAAM,IAAI;AAC5C,4BAAwB,KAAK,EAAE;AAAA,EACnC;AACJ;AACA,IAAI,OAAO,WAAW,aAAa;AAC/B,SAAO,YAAY;AACvB;AAEA,MAAM,WAAW;AACjB,IAAI;AACJ,SAAS,YAAY4D,UAAS,IAAI;AACvB,SAAA,SAAS,YAAYpD,IAAG,OAAO;AACvB,eAAA,YAAYoD,QAAO,eAAe,QAAQ;AACrD,QAAI,CAAC,UAAU;AACA,iBAAA,KAAK,IAAQ,IAAA,KAAK,KAAK,MAAM,KAAK,WAAW,GAAG;AAC3D,SAAG,WAAW;AAAA,QACV,KAAK;AAAA,QACL,MAAM;AAAA,MAAA,CACT;AAAA,IACL;AACA,UAAM,WAAW;AAAA,EAAA;AAEzB;AACA,SAAS,kBAAkB,SAAS,OAAO;AACvC,MAAI,QAAQ,UAAU;AAClB,UAAM,WAAW,QAAQ;AACzB,UAAM,iBAAiB;AAAA,MACnB,KAAK,SAAS;AAAA,MACd,MAAM,SAAS;AAAA,MACf,OAAO,QAAQ,cAAc,SAAS;AAAA,MACtC,QAAQ,QAAQ,eAAe,SAAS;AAAA,IAAA;AAAA,EAEhD;AACJ;AACA,SAAS,mBAAmB,SAAS,OAAO;AACxC,QAAM,EAAE,QAAQ,IAAI,QAAQ,IAAI,SAAS,IAAI,WAAW,IAAI,OAAO,SAAAC,UAAS,UAAU,iBAAiB,YAAY,YAAY,kBAAuB,IAAA;AAGtJ,MAAI,SAAS;AACb,MAAI,YAAY;AAChB;AACI,aAAS,OAAO,MAAM,GAAG,EAAE,CAAC,KAAK;AACjC,gBAAY,OAAO,MAAM,GAAG,EAAE,CAAC,KAAK;AAAA,EACxC;AACA,MAAI,cAAcA;AAEd,MAAA,aAAa,iBAAiB,SAAS,KAAK;AAE5C,MAAA,cAAc,eAAe,KAAK;AAElC,MAAA,YAAY,YAAY,OAAO;AAEnC,MAAI,qBAAqB;AAEzB,MAAI,oBAAoB;AAExB,MAAI,cAAc;AAElB,QAAM,eAAe,SAAS,QAAQ,MAAM,GAAG;AAE/C,QAAM,aAAa;AAAA,IACf,OAAO;AAAA,IACP,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,gBAAgB;AAAA,IAChB,aAAa,eAAe,YAAY;AAAA,IACxC,mBAAmB;AAAA,IACnB,mBAAmB;AAAA,IACnB,aAA6C;AAAA,IAC7C;AAAA,IACA,aAAa;AAAA,IACb;AAAA,IACA,kBAAkB;AAAA,IAClB,mBAAmB;AAAA,IACnB,QAAQ,OAAO,kBAAkB;AAAA,IACjC;AAAA,IACA,WAAW;AAAA,IACX;AAAA,IACA;AAAA,IACA,UAAU;AAAA,IACV,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,WAAW;AAAA,IACX,cAAc;AAAA;AAAA,IAEd,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,IAAI;AAAA,IACJ,iBAAiB;AAAA,IACjB,aAAa;AAAA,IACb,gBAAgB;AAAA,EAAA;AAEpB,SAAO,OAAO,UAAU;AAC5B;AACA,SAAS,iBAAiB,SAAS,OAAO;AAElC,MAAA,aAAa,QAAQ,cAAc;AACvC;AACI,UAAM,iBAAiB;AAAA,MACnB,MAAM;AAAA,MACN,SAAS;AAAA,MACT,KAAK;AAAA,IAAA;AAEH,UAAA,qBAAqB,OAAO,KAAK,cAAc;AAC/C,UAAA,SAAS,MAAM;AACrB,aAAShC,SAAQ,GAAGA,SAAQ,mBAAmB,QAAQA,UAAS;AACtD,YAAA,KAAK,mBAAmBA,MAAK;AACnC,UAAI,OAAO,QAAQ,EAAE,MAAM,IAAI;AAC3B,qBAAa,eAAe,EAAE;AAC9B;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AACO,SAAA;AACX;AACA,SAAS,eAAe,OAAO;AAE3B,MAAI,cAAc;AAClB,MAAI,aAAa;AACb,kBAAc,YAAY;EAC9B;AACO,SAAA;AACX;AACA,SAAS,eAAe,iBAAiB;AAC9B,SAAA,YAAY,UAAc,IAAA;AACrC;AACA,SAAS,YAAY,SAAS;AAC1B,QAAM,YAAY;AACd,MAAA,YAAY,QAAQ,YAAY;AACpC;AACI,QAAI,QAAQ,aAAa;AACrB,kBAAY,QAAQ;AAAA,IAEf,WAAA,QAAQ,QAAQ,QAAQ,KAAK,KAAK;AACvC,kBAAY,QAAQ,KAAK;AAAA,IAC7B;AAAA,EACJ;AACO,SAAA;AACX;AAEA,MAAM,gBAAgB;AAAA,EAClB,aAAa,CAAC,SAAS,UAAU;AAC7B,sBAAkB,SAAS,KAAK;AACpB,gBAAA,EAAE,SAAS,KAAK;AAC5B,uBAAmB,SAAS,KAAK;AAAA,EACrC;AACJ;AAEA,MAAM,oBAAoB;AAE1B,MAAM,aAAa,CAAA;AAEnB,MAAM,eAAe;AAAA,EACjB,KAAK,UAAU,QAAQ;AACf,QAAA,eAAe,SAAS,SAAS,OAAO;AACxC,QAAA,MAAM,YAAY,GAAG;AACrB;AAAA,IACJ;AACA,UAAM,OAAO,SAAS;AAClB,QAAA,CAACjC,UAAQ,IAAI,GAAG;AAChB;AAAA,IACJ;AACA,UAAM,MAAM,KAAK;AACjB,QAAI,CAAC,KAAK;AACN;AAAA,IACJ;AACA,QAAI,eAAe,GAAG;AACH,qBAAA;AAAA,IAAA,WAEV,gBAAgB,KAAK;AAC1B,qBAAe,MAAM;AAAA,IACzB;AACA,QAAI,eAAe,GAAG;AACX,aAAA,UAAU,KAAK,YAAY;AAClC,aAAO,OAAO,KAAK,OAAO,CAAC,MAAMiC,WAAUA,SAAQ,eAAe,SAAS,KAAK,YAAY,IAAI,IAAI;AAAA,IAAA,OAEnG;AACM,aAAA,UAAU,KAAK,CAAC;AAAA,IAC3B;AACO,WAAA;AAAA,MACH,WAAW;AAAA,MACX,MAAM;AAAA,IAAA;AAAA,EAEd;AACJ;AAEA,MAAM,kBAAkB;AAAA,EACpB,KAAK,UAAU,QAAQ;AACnB,WAAO,YAAY,SAAS;AAAA,EAChC;AACJ;AAEA,MAAM,gBAAgB;AAAA,EAClB,aAAa,CAAC,SAAS,UAAU;AACvB,UAAA,EAAE,OAAO,MAAU,IAAA;AACrB,QAAA,aAAa,iBAAiB,SAAS,KAAK;AAC5C,QAAA,cAAc,eAAe,KAAK;AAC1B,gBAAA,EAAE,SAAS,KAAK;AACpB,YAAA,WAAW,OAAO,OAAO;AAAA,MAC7B;AAAA,MACA;AAAA,MACA,aAAa;AAAA,IAChB,CAAA,CAAC;AAAA,EACN;AACJ;AAEA,MAAM,iBAAiB;AAAA,EACnB,aAAa,CAAC,SAAS,UAAU;AAC7B,UAAM,EAAE,SAAAgC,UAAS,UAAU,YAAY,UAAU;AAC7C,QAAA,YAAY,YAAY,OAAO;AACnC,QAAI,eAAe,SAAS,QAAQ,MAAM,GAAG;AACrC,YAAA,WAAW,OAAO,OAAO;AAAA,MAC7B,aAAaA;AAAA,MACb;AAAA,MACA,UAAU;AAAA,MACV,gBAAgB;AAAA,MAChB,WAAW;AAAA,MACX,OAAO;AAAA,MACP,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,gBAAgB;AAAA,MAChB,aAAa,eAAe,YAAY;AAAA,IAC3C,CAAA,CAAC;AAAA,EACN;AACJ;AAEA,MAAM,gBAAgB;AAAA,EAClB,aAAa,CAAC,SAAS,UAAU;AAC7B,sBAAkB,SAAS,KAAK;AACxB,YAAA,WAAW,OAAO,OAAO;AAAA,MAC7B,WAAW;AAAA,MACX,cAAc;AAAA,IACjB,CAAA,CAAC;AAAA,EACN;AACJ;AAEA,MAAM,yBAAyB;AAAA,EAC3B,aAAa,SAAU,SAAS,OAAO;AAC7B,UAAA,EAAE,wBAA4B,IAAA;AACpC,UAAM,mBAAmB;AACzB,QAAI,4BAA4B,MAAM;AAClC,YAAM,mBAAmB;AAAA,IAAA,WAEpB,4BAA4B,OAAO;AACxC,YAAM,mBAAmB;AAAA,IAC7B;AAAA,EACJ;AACJ;AAEA,MAAM,WAAW;AAAA,EACb;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ;AACA,SAAS,QAAQ,KAAKF,YAAW,WAAW,IAAI;AACtC,QAAA,UAAU,YAAYA,UAAS;AACrC,QAAM,mBAAmB;AAAA,IACrB,IAAI,QAAQ,KAAK;AACT,UAAAhE,SAAO,QAAQ,GAAG,GAAG;AACrB,eAAO,OAAO,GAAG;AAAA,MACrB;AACI,UAAAA,SAAO,KAAK,GAAG,GAAG;AAClB,eAAO,UAAU,KAAK,IAAI,GAAG,CAAC;AAAA,MAClC;AACI,UAAAA,SAAO,UAAU,GAAG,GAAG;AACvB,eAAO,UAAU,KAAK,SAAS,GAAG,CAAC;AAAA,MACvC;AAGA,aAAO,UAAU,KAAK,QAAQ,KAAK,SAAS,GAAG,CAAC,CAAC;AAAA,IACrD;AAAA,EAAA;AAEJ,SAAO,IAAI,MAAM,IAAI,gBAAgB;AACzC;AAEA,SAAS,gBAAgB,WAAW;AAChC,SAAO,SAASmE,aAAY,EAAE,SAAS,SAAS,MAAM,YAAa;AAC3D,QAAA;AACA,QAAA,UAAU,OAAO,GAAG;AACd,YAAA;AAAA,QACF,QAAQ;AAAA,QACR;AAAA,QACA,UAAU,UAAU,OAAO;AAAA,MAAA;AAEpB9D,mBAAA,OAAO,KAAK,QAAQ,GAAG;AAAA,IAAA,OAEjC;AACK,YAAA;AAAA,QACF,QAAQ,yBAAyB,UAAU;AAAA,MAAA;AAEpCA,mBAAA,IAAI,KAAK,KAAK,GAAG;AAAA,IAChC;AACWA,iBAAA,QAAQ,KAAK,SAAS,GAAG;AAAA,EAAA;AAE5C;AAEA,MAAM,aAAa;AAAA,EACf;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ;AACA,MAAM,uBAAuB,CAAC,YAAY,UAAU,SAAS;AAC7D,MAAM,eAAe,GAAG,uBAClB,GAAG,yBACH;AACN,SAAS,QAAQ,KAAK;AAClB,MAAI,gBACA,aAAa,UAAU,QACvB,qBAAqB,SAAS,GAAG,GAAG;AAC7B,WAAA;AAAA,EACX;AACO,SAAA,WAAW,QAAQ,GAAG,IAAI,MAAM,OAAO,GAAG,GAAG,MAAM;AAC9D;AACA,SAAS,SAAS;AACd,QAAM,QAAQ,CAAA;AACd,aAAW,OAAO,IAAI;AACd,QAAA,QAAQ,GAAG,GAAG;AAER,YAAA,GAAG,IAAI,GAAG,GAAG;AAAA,IACvB;AAAA,EACJ;AACA,MAAI,OAAO,eAAe,eACtB,OAAO,uBAAuB,aAAa;AAC3C,eAAW,KAAK;AAAA,EACpB;AACO,SAAA;AACX;AAEA,MAAM+D,UAAQ,CAAC,aAAa,wBAAwB,iBAAiB;AAErE,MAAM,cAAc,gBAAgB;AAAA,EAChC,OAAO,CAAC,QAAQ;AAAA,EAChB,OAAO,CAAC,QAAQ;AAAA,EAChB,SAAS,CAAC,OAAO;AAAA,EACjB,MAAM,CAAC,QAAQ;AACnB,CAAC;AACD,SAAS,mBAAmB,WAAW;AAC7B,QAAA,MAAa,uBAAA,OAAO,IAAI;AACxBA,UAAA,QAAQ,CAAC,SAAS;AAChB,QAAA,IAAI,IAAI,UAAU,IAAI;AAAA,EAAA,CAC7B;AACM,SAAA;AACX;AAMA,SAAS,sBAAsB;AACrB,QAAA,QAAQ,KAAK;AACnB,QAAM,QAAQ,MAAM;AACd,QAAA,KAAK,SAAS,MAAM,WAAW;AACjC,WAAO,MAAM,KAAK,MAAM,mBAAmB,SAAS,CAAC;AAAA,EAAA;AAElD,SAAA;AACX;AACA,MAAM,OAAO,OAAO;AACpB,IAAI,WAAW,KAAK,kBAAkB,KAAK,eAAe;AAC1D,IAAI,CAAC,UAAU;AACX,aAAW,KAAK;AACpB;AACA,MAAM,OAAO,WAAW,SAAS,OAAO;AACxC,MAAM,oBAAoB,QAAQ,KAAK,QAAQ,YACzC,KAAK,QAAQ,oBACb,KAAK;AAEX,IAAI,+BAA4B,OAAO;AAAA,EACrC,WAAW;AAAA,EACX;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAED,MAAM,gBAAgB;AAAA,EAClB,KAAK,UAAU,QAAQ;AAGnB,QAAI,SAAS,oBAAoB,CAAC,OAAO,gBAAgB;AAErD,aAAO,iBAAiB,SAAS;AAAA,IACrC;AAEA,QAAI,SAAS,mBAAmB,CAAC,OAAO,eAAe;AAEnD,aAAO,gBAAgB,SAAS;AAAA,IACpC;AAAA,EACJ;AACJ;AAEA,IAAI,mCAAgC,OAAO;AAAA,EACzC,WAAW;AAAA,EACX;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAED,MAAM,OAAO,OAAO;AACpB,IAAIlC,UAAQ,QAAQ,OAAO,WAAW,IAAI;ACx/BjB,IAAI;AAAA,EACX,uBAAO,oBAAoB,MAAM,EAAE,OAAO,CAAC,QAAQ,QAAQ,eAAe,QAAQ,QAAQ,EAAE,IAAI,CAAC,QAAQ,OAAO,GAAG,CAAC,EAAE,OAAO3B,UAAQ;AACvJ;AA+hBA,SAAS,QAAQ,UAAU;AACnB,QAAA,MAAM,YAAY,SAAS,SAAS;AACnC,SAAA,MAAM,QAAQ,GAAG,IAAI;AAC9B;AASA,SAAS,QAAQ8D,IAAG;AAClB,SAAO,CAAC,EAAEA,MAAKA,GAAE,cAAc;AACjC;AAoBA;AAAA;AAAA;AAAA;AAAA;AAMA,MAAM,UAAU,CAAA;AAChB,SAAS,qBAAqB,OAAO;AACnC,UAAQ,KAAK,KAAK;AACpB;AACA,SAAS,sBAAsB;AAC7B,UAAQ,IAAI;AACd;AACA,SAAS,SAAS,QAAQ,MAAM;AAExB,QAAA,WAAW,QAAQ,SAAS,QAAQ,QAAQ,SAAS,CAAC,EAAE,YAAY;AAC1E,QAAM,iBAAiB,YAAY,SAAS,WAAW,OAAO;AAC9D,QAAM,QAAQ;AACd,MAAI,gBAAgB;AAClB;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,QACE,MAAM,KAAK,IAAI,CAACC,OAAM;AACpB,cAAI,IAAI;AACR,kBAAQ,MAAM,KAAKA,GAAE,aAAa,OAAO,SAAS,GAAG,KAAKA,EAAC,MAAM,OAAO,KAAK,KAAK,UAAUA,EAAC;AAAA,QAAA,CAC9F,EAAE,KAAK,EAAE;AAAA,QACV,YAAY,SAAS;AAAA,QACrB,MAAM;AAAA,UACJ,CAAC,EAAE,YAAY,OAAO,sBAAsB,UAAU,MAAM,IAAI,CAAC;AAAA,QAAA,EACjE,KAAK,IAAI;AAAA,QACX;AAAA,MACF;AAAA,IAAA;AAAA,EACF,OACK;AACL,UAAM,WAAW,CAAC,eAAe,GAAG,IAAI,GAAG,IAAI;AAC/C,QAAI,MAAM;AAAA,IACV,MAAM;AACJ,eAAS,KAAK;AAAA,GACjB,GAAG,cAAc,KAAK,CAAC;AAAA,IACtB;AACQ,YAAA,KAAK,GAAG,QAAQ;AAAA,EAC1B;AAEF;AACA,SAAS,sBAAsB;AAC7B,MAAI,eAAe,QAAQ,QAAQ,SAAS,CAAC;AAC7C,MAAI,CAAC,cAAc;AACjB,WAAO;EACT;AACA,QAAM,kBAAkB,CAAA;AACxB,SAAO,cAAc;AACb,UAAAC,QAAO,gBAAgB,CAAC;AAC1B,QAAAA,SAAQA,MAAK,UAAU,cAAc;AAClC,MAAAA,MAAA;AAAA,IAAA,OACA;AACL,sBAAgB,KAAK;AAAA,QACnB,OAAO;AAAA,QACP,cAAc;AAAA,MAAA,CACf;AAAA,IACH;AACA,UAAM,iBAAiB,aAAa,aAAa,aAAa,UAAU;AACxE,mBAAe,kBAAkB,eAAe;AAAA,EAClD;AACO,SAAA;AACT;AACA,SAAS,cAAc,OAAO;AAC5B,QAAM,OAAO,CAAA;AACP,QAAA,QAAQ,CAAC,OAAOzE,OAAM;AAC1B,SAAK,KAAK,GAAGA,OAAM,IAAI,CAAA,IAAK,CAAC;AAAA,CAChC,GAAG,GAAG,mBAAmB,KAAK,CAAC;AAAA,EAAA,CAC7B;AACM,SAAA;AACT;AACA,SAAS,mBAAmB,EAAE,OAAO,gBAAgB;AACnD,QAAM,UAAU,eAAe,IAAI,QAAQ,YAAY,sBAAsB;AAC7E,QAAM,SAAS,MAAM,YAAY,MAAM,UAAU,UAAU,OAAO;AAClE,QAAM,OAAO,QAAQ;AAAA,IACnB,MAAM;AAAA,IACN,MAAM;AAAA,IACN;AAAA,EACD,CAAA;AACD,QAAM,QAAQ,MAAM;AACpB,SAAO,MAAM,QAAQ,CAAC,MAAM,GAAG,cAAc,MAAM,KAAK,GAAG,KAAK,IAAI,CAAC,OAAO,KAAK;AACnF;AACA,SAAS,cAAc,OAAO;AAC5B,QAAM,MAAM,CAAA;AACN,QAAA0E,QAAO,OAAO,KAAK,KAAK;AAC9B,EAAAA,MAAK,MAAM,GAAG,CAAC,EAAE,QAAQ,CAAC,QAAQ;AAChC,QAAI,KAAK,GAAG,aAAa,KAAK,MAAM,GAAG,CAAC,CAAC;AAAA,EAAA,CAC1C;AACG,MAAAA,MAAK,SAAS,GAAG;AACnB,QAAI,KAAK,MAAM;AAAA,EACjB;AACO,SAAA;AACT;AACA,SAAS,aAAa,KAAK,OAAO,KAAK;AACjC,MAAAlE,WAAS,KAAK,GAAG;AACX,YAAA,KAAK,UAAU,KAAK;AAC5B,WAAO,MAAM,QAAQ,CAAC,GAAG,GAAG,IAAI,KAAK,EAAE;AAAA,EAAA,WAC9B,OAAO,UAAU,YAAY,OAAO,UAAU,aAAa,SAAS,MAAM;AACnF,WAAO,MAAM,QAAQ,CAAC,GAAG,GAAG,IAAI,KAAK,EAAE;AAAA,EAAA,WAC9B,QAAQ,KAAK,GAAG;AACzB,YAAQ,aAAa,KAAK,QAAQ,MAAM,KAAK,GAAG,IAAI;AACpD,WAAO,MAAM,QAAQ,CAAC,GAAG,GAAG,SAAS,OAAO,GAAG;AAAA,EAAA,WACtCD,aAAW,KAAK,GAAG;AACrB,WAAA,CAAC,GAAG,GAAG,MAAM,MAAM,OAAO,IAAI,MAAM,IAAI,MAAM,EAAE,EAAE;AAAA,EAAA,OACpD;AACL,YAAQ,QAAQ,KAAK;AACrB,WAAO,MAAM,QAAQ,CAAC,GAAG,GAAG,KAAK,KAAK;AAAA,EACxC;AACF;AACA,MAAM,qBAAqB;AAAA,EACzB,CAAC,IAAI,GAAG;AAAA,EACR,CAAC,IAAI,GAAG;AAAA,EACR,CAAC,GAAG,GAAG;AAAA,EACP,CAAC,IAAI,GAAG;AAAA,EACR,CAAC,GAAG,GAAG;AAAA,EACP,CAAC,IAAI,GAAG;AAAA,EACR,CAAC,GAAG,GAAG;AAAA,EACP,CAAC,KAAK,GAAG;AAAA,EACT,CAAC,IAAI,GAAG;AAAA,EACR,CAAC,GAAG,GAAG;AAAA,EACP,CAAC,IAAI,GAAG;AAAA,EACR,CAAC,IAAI,GAAG;AAAA,EACR,CAAC,KAAK,GAAG;AAAA,EACT,CAAC,KAAK,GAAG;AAAA,EACT,CAAC,CAAC,GAAG;AAAA,EACL,CAAC,CAAC,GAAG;AAAA,EACL,CAAC,CAAC,GAAG;AAAA,EACL,CAAC,CAAC,GAAG;AAAA,EACL,CAAC,CAAC,GAAG;AAAA,EACL,CAAC,CAAC,GAAG;AAAA,EACL,CAAC,CAAC,GAAG;AAAA,EACL,CAAC,CAAC,GAAG;AAAA,EACL,CAAC,CAAC,GAAG;AAAA,EACL,CAAC,CAAC,GAAG;AAAA,EACL,CAAC,EAAE,GAAG;AAAA,EACN,CAAC,EAAE,GAAG;AAAA,EACN,CAAC,EAAE,GAAG;AAAA,EACN,CAAC,EAAE,GAAG;AAAA,EACN,CAAC,EAAE,GAAG;AACR;AACA,SAAS,wBAAwB,IAAI,UAAU,MAAM,MAAM;AACrD,MAAA;AACF,WAAO,OAAO,GAAG,GAAG,IAAI,IAAI,GAAG;AAAA,WACxB,KAAK;AACE,kBAAA,KAAK,UAAU,IAAI;AAAA,EACnC;AACF;AAiBA,SAAS,cAAc,KAAK,UAAU,MAAM,aAAa,MAAM;AACvD,QAAA,eAAe,WAAW,SAAS,QAAQ;AACjD,MAAI,UAAU;AACZ,QAAI,MAAM,SAAS;AACnB,UAAM,kBAAkB,SAAS;AACjC,UAAM,YAAwD,mBAAmB,IAAI;AACrF,WAAO,KAAK;AACV,YAAM,qBAAqB,IAAI;AAC/B,UAAI,oBAAoB;AACtB,iBAASP,KAAI,GAAGA,KAAI,mBAAmB,QAAQA,MAAK;AAClD,cAAI,mBAAmBA,EAAC,EAAE,KAAK,iBAAiB,SAAS,MAAM,OAAO;AACpE;AAAA,UACF;AAAA,QACF;AAAA,MACF;AACA,YAAM,IAAI;AAAA,IACZ;AACM,UAAA,kBAAkB,SAAS,WAAW,OAAO;AACnD,QAAI,iBAAiB;AACnB;AAAA,QACE;AAAA,QACA;AAAA,QACA;AAAA,QACA,CAAC,KAAK,iBAAiB,SAAS;AAAA,MAAA;AAElC;AAAA,IACF;AAAA,EACF;AACW,aAAA,KAAK,MAAM,cAAc,UAAU;AAChD;AACA,SAAS,WAAW,KAAK,MAAM,cAAc,aAAa,MAAM;AACf;AACvC,UAAA,OAAO,mBAAmB,IAAI;AACpC,QAAI,cAAc;AAChB,2BAAqB,YAAY;AAAA,IACnC;AACA,aAAS,kBAAkB,OAAO,wBAAwB,IAAI,KAAK,EAAE,EAAE;AACvE,QAAI,cAAc;AACI;IACtB;AACA,QAAI,YAAY;AACR,YAAA;AAAA,IAAA,OACD;AACL,cAAQ,MAAM,GAAG;AAAA,IACnB;AAAA,EAGF;AACF;AAEA,IAAI,eAAe;AACnB,IAAI,mBAAmB;AACvB,MAAM,UAAU,CAAA;AAChB,IAAI,eAAe;AACnB,MAAM,wBAAwB,CAAA;AAC9B,IAAI,uBAAuB;AAC3B,IAAI,mBAAmB;AACvB,MAAM,4CAA4C;AAElD,MAAM,oBAAoB;AAK1B,SAAS,qBAAqB,IAAI;AAChC,MAAI,QAAQ,eAAe;AAC3B,MAAI,MAAM,QAAQ;AAClB,SAAO,QAAQ,KAAK;AACZ,UAAA,SAAS,QAAQ,QAAQ;AACzB,UAAA,YAAY,QAAQ,MAAM;AAC1B,UAAA,cAAc,QAAQ,SAAS;AACrC,QAAI,cAAc,MAAM,gBAAgB,MAAM,UAAU,KAAK;AAC3D,cAAQ,SAAS;AAAA,IAAA,OACZ;AACC,YAAA;AAAA,IACR;AAAA,EACF;AACO,SAAA;AACT;AACA,SAAS,WAAW,KAAK;AACvB,MAAI,CAAC,QAAQ,UAAU,CAAC,QAAQ;AAAA,IAC9B;AAAA,IACA,gBAAgB,IAAI,eAAe,eAAe,IAAI;AAAA,EAAA,GACrD;AACG,QAAA,IAAI,MAAM,MAAM;AAClB,cAAQ,KAAK,GAAG;AAAA,IAAA,OACX;AACL,cAAQ,OAAO,qBAAqB,IAAI,EAAE,GAAG,GAAG,GAAG;AAAA,IACrD;AACa;EACf;AACF;AACA,SAAS,eAAe;AAClB,MAAA,CAAC,gBAAgB,CAAC,kBAAkB;AACnB,uBAAA;AACK,sBAAkB,KAAK,WAAW;AAAA,EAC5D;AACF;AACA,SAAS,mBAAmB,IAAI;AAC1B,MAAA,CAACG,UAAQ,EAAE,GAAG;AACZ,QAAA,CAAC,wBAAwB,CAAC,qBAAqB;AAAA,MACjD;AAAA,MACA,GAAG,eAAe,mBAAmB,IAAI;AAAA,IAAA,GACxC;AACD,4BAAsB,KAAK,EAAE;AAAA,IAC/B;AAAA,EAAA,OACK;AACiB,0BAAA,KAAK,GAAG,EAAE;AAAA,EAClC;AACa;AACf;AACA,SAAS,oBAAoB,MAAM;AACjC,MAAI,sBAAsB,QAAQ;AAChC,UAAM,UAAU,CAAC,GAAG,IAAI,IAAI,qBAAqB,CAAC,EAAE;AAAA,MAClD,CAACqE,IAAGG,OAAM,QAAQH,EAAC,IAAI,QAAQG,EAAC;AAAA,IAAA;AAElC,0BAAsB,SAAS;AAC/B,QAAI,sBAAsB;AACH,2BAAA,KAAK,GAAG,OAAO;AACpC;AAAA,IACF;AACuB,2BAAA;AACwB;AACtC,aAAA,4BAA4B;IACrC;AACA,SAAK,mBAAmB,GAAG,mBAAmB,qBAAqB,QAAQ,oBAAoB;AAC7F,UAAiD,wBAAwB,MAAM,qBAAqB,gBAAgB,CAAC,GAAG;AACtH;AAAA,MACF;AACA,2BAAqB,gBAAgB;IACvC;AACuB,2BAAA;AACJ,uBAAA;AAAA,EACrB;AACF;AACA,MAAM,UAAU,CAAC,QAAQ,IAAI,MAAM,OAAO,WAAW,IAAI;AACzD,MAAM,eAAe,CAACH,IAAGG,OAAM;AAC7B,QAAMC,QAAO,QAAQJ,EAAC,IAAI,QAAQG,EAAC;AACnC,MAAIC,UAAS,GAAG;AACV,QAAAJ,GAAE,OAAO,CAACG,GAAE;AACP,aAAA;AACL,QAAAA,GAAE,OAAO,CAACH,GAAE;AACP,aAAA;AAAA,EACX;AACOI,SAAAA;AACT;AACA,SAAS,YAAY,MAAM;AACN,qBAAA;AACJ,iBAAA;AACgC;AACtC,WAAA,4BAA4B;EACrC;AACA,UAAQ,KAAK,YAAY;AACzB,QAAM,QAAoD,CAAC,QAAQ,wBAAwB,MAAM,GAAG;AAChG,MAAA;AACF,SAAK,eAAe,GAAG,eAAe,QAAQ,QAAQ,gBAAgB;AAC9D,YAAA,MAAM,QAAQ,YAAY;AAC5B,UAAA,OAAO,IAAI,WAAW,OAAO;AACkB,YAAA,MAAM,GAAG,GAAG;AAC3D;AAAA,QACF;AACwB,gCAAA,KAAK,MAAM,EAAE;AAAA,MACvC;AAAA,IACF;AAAA,EAAA,UACA;AACe,mBAAA;AACf,YAAQ,SAAS;AACjB,wBAAoB,IAAI;AACT,mBAAA;AAEX,QAAA,QAAQ,UAAU,sBAAsB,QAAQ;AAClD,kBAAY,IAAI;AAAA,IAClB;AAAA,EACF;AACF;AACA,SAAS,wBAAwB,MAAM,IAAI;AACzC,MAAI,CAAC,KAAK,IAAI,EAAE,GAAG;AACZ,SAAA,IAAI,IAAI,CAAC;AAAA,EAAA,OACT;AACC,UAAA,QAAQ,KAAK,IAAI,EAAE;AACzB,QAAI,QAAQ,mBAAmB;AAC7B,YAAM,WAAW,GAAG;AACpB,YAAM,gBAAgB,YAAY,mBAAmB,SAAS,IAAI;AAClE;AAAA,QACE,qCAAqC,gBAAgB,kBAAkB,aAAa,MAAM,EAAE;AAAA,QAC5F;AAAA,QACA;AAAA,MAAA;AAEK,aAAA;AAAA,IAAA,OACF;AACA,WAAA,IAAI,IAAI,QAAQ,CAAC;AAAA,IACxB;AAAA,EACF;AACF;AACA,MAAM,yCAAyC;AACA;AAC7CtD,kBAAA,EAAgB,sBAAsB;AAAA,IACpC,cAAc,QAAQ,YAAY;AAAA,IAClC,UAAU,QAAQ,QAAQ;AAAA,IAC1B,QAAQ,QAAQ,MAAM;AAAA,EAAA;AAE1B;AACA,MAAMuD,4BAA0B;AAChC,SAAS,aAAa,IAAI,YAAY;AAChC,MAAAA,MAAI,IAAI,EAAE,GAAG;AACR,WAAA;AAAA,EACT;AACAA,QAAI,IAAI,IAAI;AAAA,IACV,YAAY,wBAAwB,UAAU;AAAA,IAC9C,+BAA+B,IAAI;AAAA,EAAA,CACpC;AACM,SAAA;AACT;AACA,SAAS,wBAAwB,WAAW;AAC1C,SAAO,mBAAmB,SAAS,IAAI,UAAU,YAAY;AAC/D;AACA,SAAS,SAAS,IAAI,WAAW;AACzB,QAAA,SAASA,MAAI,IAAI,EAAE;AACzB,MAAI,CAAC,QAAQ;AACX;AAAA,EACF;AACA,SAAO,WAAW,SAAS;AAC3B,GAAC,GAAG,OAAO,SAAS,EAAE,QAAQ,CAAC,aAAa;AAC1C,QAAI,WAAW;AACb,eAAS,SAAS;AACM,8BAAA,SAAS,IAAI,EAAE,SAAS;AAAA,IAClD;AACA,aAAS,cAAc;AACvB,aAAS,OAAO,QAAQ;AACxB,aAAS,OAAO;AAAA,EAAA,CACjB;AACH;AACA,SAAS,OAAO,IAAI,SAAS;AACrB,QAAA,SAASA,MAAI,IAAI,EAAE;AACzB,MAAI,CAAC;AACH;AACF,YAAU,wBAAwB,OAAO;AACtB,qBAAA,OAAO,YAAY,OAAO;AAC7C,QAAM,YAAY,CAAC,GAAG,OAAO,SAAS;AACtC,aAAW,YAAY,WAAW;AAC1B,UAAA,UAAU,wBAAwB,SAAS,IAAI;AACrD,QAAI,CAAC,mBAAmB,IAAI,OAAO,GAAG;AAChC,UAAA,YAAY,OAAO,YAAY;AACjC,2BAAmB,SAAS,OAAO;AAAA,MACrC;AACA,yBAAmB,IAAI,OAAO;AAAA,IAChC;AACA,aAAS,WAAW,WAAW,OAAO,SAAS,IAAI;AACnD,aAAS,WAAW,WAAW,OAAO,SAAS,IAAI;AACnD,aAAS,WAAW,aAAa,OAAO,SAAS,IAAI;AACrD,QAAI,SAAS,UAAU;AACrB,yBAAmB,IAAI,OAAO;AACrB,eAAA,SAAS,QAAQ,MAAM;AAChC,yBAAmB,OAAO,OAAO;AAAA,IAAA,WACxB,SAAS,QAAQ;AACjB,eAAA,OAAO,OAAO,QAAQ;AACpB,iBAAA,SAAS,OAAO,MAAM;AAAA,IAAA,WACxB,SAAS,WAAW,QAAQ;AACrC,eAAS,WAAW;IAAO,WAClB,OAAO,WAAW,aAAa;AACxC,aAAO,SAAS;IAAO,OAClB;AACG,cAAA;AAAA,QACN;AAAA,MAAA;AAAA,IAEJ;AAAA,EACF;AACA,qBAAmB,MAAM;AACvB,eAAW,YAAY,WAAW;AACb,yBAAA;AAAA,QACjB,wBAAwB,SAAS,IAAI;AAAA,MAAA;AAAA,IAEzC;AAAA,EAAA,CACD;AACH;AACA,SAAS,mBAAmB,SAAS,SAAS;AAC5C,SAAO,SAAS,OAAO;AACvB,aAAW,OAAO,SAAS;AACzB,QAAI,QAAQ,YAAY,EAAE,OAAO,UAAU;AACzC,aAAO,QAAQ,GAAG;AAAA,IACpB;AAAA,EACF;AACF;AACA,SAAS,QAAQ,IAAI;AACZ,SAAA,CAAC,IAAI,QAAQ;AACd,QAAA;AACK,aAAA,GAAG,IAAI,GAAG;AAAA,aACVhD,IAAG;AACV,cAAQ,MAAMA,EAAC;AACP,cAAA;AAAA,QACN;AAAA,MAAA;AAAA,IAEJ;AAAA,EAAA;AAEJ;AAy5BA;AACE,QAAMiD,KAAIxD;AACJ,QAAA,uBAAuB,CAAC,KAAK,WAAW;AACxC,QAAA;AACA,QAAA,EAAE,UAAUwD,GAAE,GAAG;AACT,gBAAAA,GAAE,GAAG,IAAI;AACrB,YAAQ,KAAK,MAAM;AACnB,WAAO,CAACtD,OAAM;AACZ,UAAI,QAAQ,SAAS;AACnB,gBAAQ,QAAQ,CAAC1B,SAAQA,KAAI0B,EAAC,CAAC;AAAA;AAEvB,gBAAA,CAAC,EAAEA,EAAC;AAAA,IAAA;AAAA,EAChB;AAE6B;AAAA,IAC7B;AAAA,IACA,CAACA,OAA0BA;AAAA,EAAA;AAE7B;AAAA,IACE;AAAA,IACA,CAACA,OAAgCA;AAAA,EAAA;AAErC;AA8BA,MAAM,eAAe;AACrB,MAAM,aAAa,CAAC,QAAQ,IAAI,QAAQ,cAAc,CAACR,OAAMA,GAAE,YAAY,CAAC,EAAE,QAAQ,SAAS,EAAE;AACjG,SAAS,mBAAmB+D,YAAW,kBAAkB,MAAM;AACtD,SAAAxE,aAAWwE,UAAS,IAAIA,WAAU,eAAeA,WAAU,OAAOA,WAAU,QAAQ,mBAAmBA,WAAU;AAC1H;AACA,SAAS,sBAAsB,UAAUA,YAAW,SAAS,OAAO;AAC9D,MAAA,OAAO,mBAAmBA,UAAS;AACnC,MAAA,CAAC,QAAQA,WAAU,QAAQ;AAC7B,UAAM,QAAQA,WAAU,OAAO,MAAM,iBAAiB;AACtD,QAAI,OAAO;AACT,aAAO,MAAM,CAAC;AAAA,IAChB;AAAA,EACF;AACA,MAAI,CAAC,QAAQ,YAAY,SAAS,QAAQ;AAClC,UAAA,oBAAoB,CAAC,aAAa;AACtC,iBAAW,OAAO,UAAU;AACtB,YAAA,SAAS,GAAG,MAAMA,YAAW;AACxB,iBAAA;AAAA,QACT;AAAA,MACF;AAAA,IAAA;AAEK,WAAA;AAAA,MACL,SAAS,cAAc,SAAS,OAAO,KAAK;AAAA,IACzC,KAAA,kBAAkB,SAAS,WAAW,UAAU;AAAA,EACvD;AACA,SAAO,OAAO,WAAW,IAAI,IAAI,SAAS,QAAQ;AACpD;AACA,SAAS,mBAAmB,OAAO;AAC1B,SAAAxE,aAAW,KAAK,KAAK,eAAe;AAC7C;AAmCA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,OAAO,QAAQ,MAAM;AAC5B,UAAQ,KAAK,cAAc,GAAG,IAAI,GAAG,IAAI;AAC3C;AAEA,IAAI;AACJ,MAAM,YAAY;AAAA,EAChB,YAAY,WAAW,OAAO;AAC5B,SAAK,WAAW;AAIhB,SAAK,UAAU;AAIf,SAAK,UAAU;AAIf,SAAK,WAAW;AAChB,SAAK,SAAS;AACV,QAAA,CAAC,YAAY,mBAAmB;AAClC,WAAK,SAAS,kBAAkB,WAAW,kBAAkB,SAAS,CAAK,IAAA;AAAA,QACzE;AAAA,MACE,IAAA;AAAA,IACN;AAAA,EACF;AAAA,EACA,IAAI,SAAS;AACX,WAAO,KAAK;AAAA,EACd;AAAA,EACA,IAAI,IAAI;AACN,QAAI,KAAK,SAAS;AAChB,YAAM,qBAAqB;AACvB,UAAA;AACkB,4BAAA;AACpB,eAAO,GAAG;AAAA,MAAA,UACV;AACoB,4BAAA;AAAA,MACtB;AAAA,IAAA,OACoD;AACpD,aAAO,sCAAsC;AAAA,IAC/C;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA,KAAK;AACiB,wBAAA;AAAA,EACtB;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM;AACJ,wBAAoB,KAAK;AAAA,EAC3B;AAAA,EACA,KAAK,YAAY;AACf,QAAI,KAAK,SAAS;AAChB,UAAIP,IAAGgF;AACF,WAAAhF,KAAI,GAAGgF,KAAI,KAAK,QAAQ,QAAQhF,KAAIgF,IAAGhF,MAAK;AAC1C,aAAA,QAAQA,EAAC,EAAE,KAAK;AAAA,MACvB;AACK,WAAAA,KAAI,GAAGgF,KAAI,KAAK,SAAS,QAAQhF,KAAIgF,IAAGhF,MAAK;AAC3C,aAAA,SAASA,EAAC;MACjB;AACA,UAAI,KAAK,QAAQ;AACV,aAAAA,KAAI,GAAGgF,KAAI,KAAK,OAAO,QAAQhF,KAAIgF,IAAGhF,MAAK;AAC9C,eAAK,OAAOA,EAAC,EAAE,KAAK,IAAI;AAAA,QAC1B;AAAA,MACF;AACA,UAAI,CAAC,KAAK,YAAY,KAAK,UAAU,CAAC,YAAY;AAChD,cAAMyE,QAAO,KAAK,OAAO,OAAO,IAAI;AAChC,YAAAA,SAAQA,UAAS,MAAM;AACzB,eAAK,OAAO,OAAO,KAAK,KAAK,IAAIA;AACjC,UAAAA,MAAK,QAAQ,KAAK;AAAA,QACpB;AAAA,MACF;AACA,WAAK,SAAS;AACd,WAAK,UAAU;AAAA,IACjB;AAAA,EACF;AACF;AACA,SAAS,YAAY,UAAU;AACtB,SAAA,IAAI,YAAY,QAAQ;AACjC;AACA,SAAS,kBAAkBQ,SAAQ,QAAQ,mBAAmB;AACxD,MAAA,SAAS,MAAM,QAAQ;AACnB,UAAA,QAAQ,KAAKA,OAAM;AAAA,EAC3B;AACF;AACA,SAAS,kBAAkB;AAClB,SAAA;AACT;AACA,SAAS,eAAe,IAAI;AAC1B,MAAI,mBAAmB;AACH,sBAAA,SAAS,KAAK,EAAE;AAAA,EAAA,OACkB;AACpD;AAAA,MACE;AAAA,IAAA;AAAA,EAEJ;AACF;AAEA,IAAI;AACJ,MAAMC,gBAAe;AAAA,EACnB,YAAY,IAAIC,UAAS,WAAW,OAAO;AACzC,SAAK,KAAK;AACV,SAAK,UAAUA;AACf,SAAK,YAAY;AACjB,SAAK,SAAS;AACd,SAAK,OAAO;AAIZ,SAAK,cAAc;AAInB,SAAK,WAAW;AAIhB,SAAK,YAAY;AAIjB,SAAK,kBAAkB;AAIvB,SAAK,cAAc;AACnB,sBAAkB,MAAM,KAAK;AAAA,EAC/B;AAAA,EACA,IAAI,QAAQ;AACV,QAAI,KAAK,gBAAgB,KAAK,KAAK,gBAAgB,GAAG;AACpD,WAAK,cAAc;AACL;AACd,eAASnF,KAAI,GAAGA,KAAI,KAAK,aAAaA,MAAK;AACnC,cAAA,MAAM,KAAK,KAAKA,EAAC;AACvB,YAAI,IAAI,UAAU;AAChB,0BAAgB,IAAI,QAAQ;AACxB,cAAA,KAAK,eAAe,GAAG;AACzB;AAAA,UACF;AAAA,QACF;AAAA,MACF;AACI,UAAA,KAAK,gBAAgB,GAAG;AAC1B,aAAK,cAAc;AAAA,MACrB;AACc;IAChB;AACA,WAAO,KAAK,eAAe;AAAA,EAC7B;AAAA,EACA,IAAI,MAAMwB,IAAG;AACN,SAAA,cAAcA,KAAI,IAAI;AAAA,EAC7B;AAAA,EACA,MAAM;AACJ,SAAK,cAAc;AACf,QAAA,CAAC,KAAK,QAAQ;AAChB,aAAO,KAAK;IACd;AACA,QAAI,kBAAkB;AACtB,QAAI,aAAa;AACb,QAAA;AACY,oBAAA;AACC,qBAAA;AACV,WAAA;AACL,uBAAiB,IAAI;AACrB,aAAO,KAAK;IAAG,UACf;AACA,wBAAkB,IAAI;AACjB,WAAA;AACU,qBAAA;AACD,oBAAA;AAAA,IAChB;AAAA,EACF;AAAA,EACA,OAAO;AACD,QAAA;AACJ,QAAI,KAAK,QAAQ;AACf,uBAAiB,IAAI;AACrB,wBAAkB,IAAI;AACtB,OAAC,KAAK,KAAK,WAAW,OAAO,SAAS,GAAG,KAAK,IAAI;AAClD,WAAK,SAAS;AAAA,IAChB;AAAA,EACF;AACF;AACA,SAAS,gBAAgB4D,WAAU;AACjC,SAAOA,UAAS;AAClB;AACA,SAAS,iBAAiB,SAAS;AACzB,UAAA;AACR,UAAQ,cAAc;AACxB;AACA,SAAS,kBAAkB,SAAS;AAClC,MAAI,QAAQ,KAAK,SAAS,QAAQ,aAAa;AAC7C,aAASpF,KAAI,QAAQ,aAAaA,KAAI,QAAQ,KAAK,QAAQA,MAAK;AAC9D,uBAAiB,QAAQ,KAAKA,EAAC,GAAG,OAAO;AAAA,IAC3C;AACQ,YAAA,KAAK,SAAS,QAAQ;AAAA,EAChC;AACF;AACA,SAAS,iBAAiB,KAAK,SAAS;AAChC,QAAA,UAAU,IAAI,IAAI,OAAO;AAC/B,MAAI,YAAY,UAAU,QAAQ,aAAa,SAAS;AACtD,QAAI,OAAO,OAAO;AACd,QAAA,IAAI,SAAS,GAAG;AAClB,UAAI,QAAQ;AAAA,IACd;AAAA,EACF;AACF;AAyBA,IAAI,cAAc;AAClB,IAAI,qBAAqB;AACzB,MAAM,aAAa,CAAA;AACnB,SAAS,gBAAgB;AACvB,aAAW,KAAK,WAAW;AACb,gBAAA;AAChB;AACA,SAAS,gBAAgB;AACjB,QAAAyE,QAAO,WAAW;AACV,gBAAAA,UAAS,SAAS,OAAOA;AACzC;AACA,SAAS,kBAAkB;AACzB;AACF;AACA,SAAS,kBAAkB;AACzB;AACO,SAAA,CAAC,sBAAsB,sBAAsB,QAAQ;AAC1D,0BAAsB;EACxB;AACF;AACA,SAAS,YAAY,SAAS,KAAK,wBAAwB;AACrD,MAAA;AACJ,MAAI,IAAI,IAAI,OAAO,MAAM,QAAQ,UAAU;AACrC,QAAA,IAAI,SAAS,QAAQ,QAAQ;AACjC,UAAM,SAAS,QAAQ,KAAK,QAAQ,WAAW;AAC/C,QAAI,WAAW,KAAK;AAClB,UAAI,QAAQ;AACV,yBAAiB,QAAQ,OAAO;AAAA,MAClC;AACQ,cAAA,KAAK,QAAQ,aAAa,IAAI;AAAA,IAAA,OACjC;AACG,cAAA;AAAA,IACV;AAC+C;AAC7C,OAAC,KAAK,QAAQ,YAAY,OAAO,SAAS,GAAG,KAAK,SAAS,OAAO,EAAE,QAAQ,QAAQ,GAAG,sBAAsB,CAAC;AAAA,IAChH;AAAA,EACF;AACF;AACA,MAAM,wBAAwB,CAAA;AAC9B,SAAS,eAAe,KAAK,YAAY,wBAAwB;AAC3D,MAAA;AACY;AACL,aAAA,WAAW,IAAI,QAAQ;AAC5B,QAAA;AACJ,QAAI,QAAQ,cAAc,eAAe,YAAY,OAAO,WAAW,WAAW,IAAI,IAAI,OAAO,MAAM,QAAQ,WAAW;AACxH,cAAQ,oBAAoB,QAAQ,kBAAkB,QAAQ,gBAAgB;AAC9E,cAAQ,cAAc;AAAA,IACxB;AACI,QAAA,QAAQ,oBAAoB,YAAY,OAAO,WAAW,WAAW,IAAI,IAAI,OAAO,MAAM,QAAQ,WAAW;AAChE;AAC7C,SAAC,KAAK,QAAQ,cAAc,OAAO,SAAS,GAAG,KAAK,SAAS,OAAO,EAAE,QAAQ,QAAQ,GAAG,sBAAsB,CAAC;AAAA,MAClH;AACA,cAAQ,QAAQ;AAChB,WAAK,CAAC,QAAQ,aAAa,QAAQ,iBAAiB,QAAQ,gBAAgB,GAAG;AAC7E,gBAAQ,kBAAkB;AAC1B,YAAI,QAAQ,WAAW;AACC,gCAAA,KAAK,QAAQ,SAAS;AAAA,QAC9C;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACgB;AAClB;AAEA,MAAM,YAAY,CAAC,SAASW,cAAa;AACjC,QAAA,0BAA0B;AAChC,MAAI,UAAU;AACd,MAAI,WAAWA;AACR,SAAA;AACT;AAEA,MAAM,gCAAgC;AACtC,MAAM,cAAc,OAAmD,SAAc;AACrF,MAAM,sBAAsB,OAAmD,iBAAsB;AACrG,SAAS,MAAM,QAAQ,MAAM,KAAK;AAChC,MAAI,eAAe,cAAc;AAC3B,QAAA,UAAU,UAAU,IAAI,MAAM;AAClC,QAAI,CAAC,SAAS;AACZ,gBAAU,IAAI,QAAQ,UAA0B,oBAAI,IAAK,CAAA;AAAA,IAC3D;AACI,QAAA,MAAM,QAAQ,IAAI,GAAG;AACzB,QAAI,CAAC,KAAK;AACA,cAAA,IAAI,KAAK,MAAM,UAAU,MAAM,QAAQ,OAAO,GAAG,CAAC,CAAC;AAAA,IAC7D;AACA;AAAA,MACE;AAAA,MACA;AAAA,MAC4C;AAAA,QAC1C;AAAA,QACA;AAAA,QACA;AAAA,MAAA;AAAA,IACE;AAAA,EAER;AACF;AACA,SAAS,QAAQ,QAAQ,MAAM,KAAK,UAAU,UAAU,WAAW;AAC3D,QAAA,UAAU,UAAU,IAAI,MAAM;AACpC,MAAI,CAAC,SAAS;AACZ;AAAA,EACF;AACA,MAAI,OAAO,CAAA;AACX,MAAI,SAAS,SAAS;AACpB,WAAO,CAAC,GAAG,QAAQ,OAAQ,CAAA;AAAA,EAClB,WAAA,QAAQ,YAAYjF,UAAQ,MAAM,GAAG;AACxC,UAAA,YAAY,OAAO,QAAQ;AACzB,YAAA,QAAQ,CAAC,KAAK,SAAS;AAC7B,UAAI,SAAS,YAAY,CAACM,WAAS,IAAI,KAAK,QAAQ,WAAW;AAC7D,aAAK,KAAK,GAAG;AAAA,MACf;AAAA,IAAA,CACD;AAAA,EAAA,OACI;AACL,QAAI,QAAQ,QAAQ;AAClB,WAAK,KAAK,QAAQ,IAAI,GAAG,CAAC;AAAA,IAC5B;AACA,YAAQ,MAAM;AAAA,MACZ,KAAK;AACC,YAAA,CAACN,UAAQ,MAAM,GAAG;AACpB,eAAK,KAAK,QAAQ,IAAI,WAAW,CAAC;AAC9B,cAAAC,QAAM,MAAM,GAAG;AACjB,iBAAK,KAAK,QAAQ,IAAI,mBAAmB,CAAC;AAAA,UAC5C;AAAA,QAAA,WACS,aAAa,GAAG,GAAG;AAC5B,eAAK,KAAK,QAAQ,IAAI,QAAQ,CAAC;AAAA,QACjC;AACA;AAAA,MACF,KAAK;AACC,YAAA,CAACD,UAAQ,MAAM,GAAG;AACpB,eAAK,KAAK,QAAQ,IAAI,WAAW,CAAC;AAC9B,cAAAC,QAAM,MAAM,GAAG;AACjB,iBAAK,KAAK,QAAQ,IAAI,mBAAmB,CAAC;AAAA,UAC5C;AAAA,QACF;AACA;AAAA,MACF,KAAK;AACC,YAAAA,QAAM,MAAM,GAAG;AACjB,eAAK,KAAK,QAAQ,IAAI,WAAW,CAAC;AAAA,QACpC;AACA;AAAA,IACJ;AAAA,EACF;AACgB;AAChB,aAAW,OAAO,MAAM;AACtB,QAAI,KAAK;AACP;AAAA,QACE;AAAA,QACA;AAAA,QAC4C;AAAA,UAC1C;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QAAA;AAAA,MACE;AAAA,IAER;AAAA,EACF;AACgB;AAClB;AACA,SAAS,mBAAmBiF,SAAQ,KAAK;AACnC,MAAA;AACI,UAAA,KAAK,UAAU,IAAIA,OAAM,MAAM,OAAO,SAAS,GAAG,IAAI,GAAG;AACnE;AAEA,MAAM,6CAA6C,6BAA6B;AAChF,MAAM,iBAAiB,IAAI;AAAA,EACT,uBAAO,oBAAoB,MAAM,EAAE,OAAO,CAAC,QAAQ,QAAQ,eAAe,QAAQ,QAAQ,EAAE,IAAI,CAAC,QAAQ,OAAO,GAAG,CAAC,EAAE,OAAO5E,UAAQ;AACvJ;AACA,MAAM,wBAAoE,4CAAA;AAC1E,SAAS,8BAA8B;AACrC,QAAM,mBAAmB,CAAA;AACzB,GAAC,YAAY,WAAW,aAAa,EAAE,QAAQ,CAAC,QAAQ;AACrC,qBAAA,GAAG,IAAI,YAAY,MAAM;AAClC,YAAA,MAAM,MAAM,IAAI;AACtB,eAAST,KAAI,GAAGgF,KAAI,KAAK,QAAQhF,KAAIgF,IAAGhF,MAAK;AACrC,cAAA,KAAK,OAAOA,KAAI,EAAE;AAAA,MAC1B;AACA,YAAM,MAAM,IAAI,GAAG,EAAE,GAAG,IAAI;AACxB,UAAA,QAAQ,MAAM,QAAQ,OAAO;AAC/B,eAAO,IAAI,GAAG,EAAE,GAAG,KAAK,IAAI,KAAK,CAAC;AAAA,MAAA,OAC7B;AACE,eAAA;AAAA,MACT;AAAA,IAAA;AAAA,EACF,CACD;AACA,GAAA,QAAQ,OAAO,SAAS,WAAW,QAAQ,EAAE,QAAQ,CAAC,QAAQ;AAC5C,qBAAA,GAAG,IAAI,YAAY,MAAM;AAC1B;AACE;AACV,YAAA,MAAM,MAAM,IAAI,EAAE,GAAG,EAAE,MAAM,MAAM,IAAI;AAC7B;AACF;AACP,aAAA;AAAA,IAAA;AAAA,EACT,CACD;AACM,SAAA;AACT;AACA,SAASC,iBAAe,KAAK;AACrB,QAAA,MAAM,MAAM,IAAI;AAChB,QAAA,KAAK,OAAO,GAAG;AACd,SAAA,IAAI,eAAe,GAAG;AAC/B;AACA,MAAMqF,qBAAoB;AAAA,EACxB,YAAY,cAAc,OAAO,aAAa,OAAO;AACnD,SAAK,cAAc;AACnB,SAAK,aAAa;AAAA,EACpB;AAAA,EACA,IAAI,QAAQ,KAAK,UAAU;AACzB,UAAM,cAAc,KAAK,aAAa,aAAa,KAAK;AACxD,QAAI,QAAQ,kBAAkB;AAC5B,aAAO,CAAC;AAAA,IAAA,WACC,QAAQ,kBAAkB;AAC5B,aAAA;AAAA,IAAA,WACE,QAAQ,iBAAiB;AAC3B,aAAA;AAAA,IAAA,WACE,QAAQ,WAAW;AACxB,UAAA,cAAc,cAAc,aAAa,qBAAqB,cAAc,aAAa,qBAAqB,aAAa,IAAI,MAAM;AAAA;AAAA,MAEzI,OAAO,eAAe,MAAM,MAAM,OAAO,eAAe,QAAQ,GAAG;AAC1D,eAAA;AAAA,MACT;AACA;AAAA,IACF;AACM,UAAA,gBAAgBnF,UAAQ,MAAM;AACpC,QAAI,CAAC,aAAa;AAChB,UAAI,iBAAiBD,SAAO,uBAAuB,GAAG,GAAG;AACvD,eAAO,QAAQ,IAAI,uBAAuB,KAAK,QAAQ;AAAA,MACzD;AACA,UAAI,QAAQ,kBAAkB;AACrB,eAAAD;AAAAA,MACT;AAAA,IACF;AACA,UAAM,MAAM,QAAQ,IAAI,QAAQ,KAAK,QAAQ;AACzC,QAAAQ,WAAS,GAAG,IAAI,eAAe,IAAI,GAAG,IAAI,mBAAmB,GAAG,GAAG;AAC9D,aAAA;AAAA,IACT;AACA,QAAI,CAAC,aAAa;AACV,YAAA,QAAQ,OAAO,GAAG;AAAA,IAC1B;AACA,QAAI,YAAY;AACP,aAAA;AAAA,IACT;AACI,QAAA,MAAM,GAAG,GAAG;AACd,aAAO,iBAAiB,aAAa,GAAG,IAAI,MAAM,IAAI;AAAA,IACxD;AACI,QAAAC,WAAS,GAAG,GAAG;AACjB,aAAO,cAAc,SAAS,GAAG,IAAI,SAAS,GAAG;AAAA,IACnD;AACO,WAAA;AAAA,EACT;AACF;AACA,MAAM6E,gCAA+BD,qBAAoB;AAAA,EACvD,YAAY,aAAa,OAAO;AAC9B,UAAM,OAAO,UAAU;AAAA,EACzB;AAAA,EACA,IAAI,QAAQ,KAAK,OAAO,UAAU;AAC5B,QAAA,WAAW,OAAO,GAAG;AACrB,QAAA,CAAC,KAAK,YAAY;AACd,YAAA,qBAAqB,WAAW,QAAQ;AAC9C,UAAI,CAAC,UAAU,KAAK,KAAK,CAAC,WAAW,KAAK,GAAG;AAC3C,mBAAW,MAAM,QAAQ;AACzB,gBAAQ,MAAM,KAAK;AAAA,MACrB;AACI,UAAA,CAACnF,UAAQ,MAAM,KAAK,MAAM,QAAQ,KAAK,CAAC,MAAM,KAAK,GAAG;AACxD,YAAI,oBAAoB;AACf,iBAAA;AAAA,QAAA,OACF;AACL,mBAAS,QAAQ;AACV,iBAAA;AAAA,QACT;AAAA,MACF;AAAA,IACF;AACA,UAAM,SAASA,UAAQ,MAAM,KAAK,aAAa,GAAG,IAAI,OAAO,GAAG,IAAI,OAAO,SAASD,SAAO,QAAQ,GAAG;AACtG,UAAM2D,UAAS,QAAQ,IAAI,QAAQ,KAAK,OAAO,QAAQ;AACnD,QAAA,WAAW,MAAM,QAAQ,GAAG;AAC9B,UAAI,CAAC,QAAQ;AACH,gBAAA,QAAQ,OAAO,KAAK,KAAK;AAAA,MACxB,WAAA,WAAW,OAAO,QAAQ,GAAG;AACtC,gBAAQ,QAAQ,OAAO,KAAK,OAAO,QAAQ;AAAA,MAC7C;AAAA,IACF;AACO,WAAAA;AAAA,EACT;AAAA,EACA,eAAe,QAAQ,KAAK;AACpB,UAAA,SAAS3D,SAAO,QAAQ,GAAG;AAC3B,UAAA,WAAW,OAAO,GAAG;AAC3B,UAAM2D,UAAS,QAAQ,eAAe,QAAQ,GAAG;AACjD,QAAIA,WAAU,QAAQ;AACpB,cAAQ,QAAQ,UAAU,KAAK,QAAQ,QAAQ;AAAA,IACjD;AACO,WAAAA;AAAA,EACT;AAAA,EACA,IAAI,QAAQ,KAAK;AACf,UAAMA,UAAS,QAAQ,IAAI,QAAQ,GAAG;AAClC,QAAA,CAACpD,WAAS,GAAG,KAAK,CAAC,eAAe,IAAI,GAAG,GAAG;AACxC,YAAA,QAAQ,OAAO,GAAG;AAAA,IAC1B;AACO,WAAAoD;AAAA,EACT;AAAA,EACA,QAAQ,QAAQ;AACd;AAAA,MACE;AAAA,MACA;AAAA,MACA1D,UAAQ,MAAM,IAAI,WAAW;AAAA,IAAA;AAExB,WAAA,QAAQ,QAAQ,MAAM;AAAA,EAC/B;AACF;AACA,MAAMqF,iCAAgCF,qBAAoB;AAAA,EACxD,YAAY,aAAa,OAAO;AAC9B,UAAM,MAAM,UAAU;AAAA,EACxB;AAAA,EACA,IAAI,QAAQ,KAAK;AACgC;AAC7C;AAAA,QACE,yBAAyB,OAAO,GAAG,CAAC;AAAA,QACpC;AAAA,MAAA;AAAA,IAEJ;AACO,WAAA;AAAA,EACT;AAAA,EACA,eAAe,QAAQ,KAAK;AACqB;AAC7C;AAAA,QACE,4BAA4B,OAAO,GAAG,CAAC;AAAA,QACvC;AAAA,MAAA;AAAA,IAEJ;AACO,WAAA;AAAA,EACT;AACF;AACA,MAAM,sCAAsCC;AAC5C,MAAM,uCAAuCC;AAC7C,MAAM,0BAA8CD,oBAAAA;AAAAA,EAClD;AACF;AACA,MAAM,0BAA8CC,oBAAAA,yBAAwB,IAAI;AAEhF,MAAM,YAAY,CAAC,UAAU;AAC7B,MAAM,WAAW,CAAChE,OAAM,QAAQ,eAAeA,EAAC;AAChD,SAASiE,MAAI,QAAQ,KAAKC,cAAa,OAAOC,aAAY,OAAO;AAC/D,WAAS,OAAO,SAAS;AACnB,QAAA,YAAY,MAAM,MAAM;AACxB,QAAA,SAAS,MAAM,GAAG;AACxB,MAAI,CAACD,aAAY;AACX,QAAA,WAAW,KAAK,MAAM,GAAG;AACrB,YAAA,WAAW,OAAO,GAAG;AAAA,IAC7B;AACM,UAAA,WAAW,OAAO,MAAM;AAAA,EAChC;AACA,QAAM,EAAE,KAAK,KAAK,IAAI,SAAS,SAAS;AACxC,QAAME,QAAOD,aAAY,YAAYD,cAAa,aAAa;AAC/D,MAAI,KAAK,KAAK,WAAW,GAAG,GAAG;AAC7B,WAAOE,MAAK,OAAO,IAAI,GAAG,CAAC;AAAA,EAClB,WAAA,KAAK,KAAK,WAAW,MAAM,GAAG;AACvC,WAAOA,MAAK,OAAO,IAAI,MAAM,CAAC;AAAA,EAAA,WACrB,WAAW,WAAW;AAC/B,WAAO,IAAI,GAAG;AAAA,EAChB;AACF;AACA,SAASC,MAAI,KAAKH,cAAa,OAAO;AAC9B,QAAA,SAAS,KAAK,SAAS;AACvB,QAAA,YAAY,MAAM,MAAM;AACxB,QAAA,SAAS,MAAM,GAAG;AACxB,MAAI,CAACA,aAAY;AACX,QAAA,WAAW,KAAK,MAAM,GAAG;AACrB,YAAA,WAAW,OAAO,GAAG;AAAA,IAC7B;AACM,UAAA,WAAW,OAAO,MAAM;AAAA,EAChC;AACA,SAAO,QAAQ,SAAS,OAAO,IAAI,GAAG,IAAI,OAAO,IAAI,GAAG,KAAK,OAAO,IAAI,MAAM;AAChF;AACA,SAASI,OAAK,QAAQJ,cAAa,OAAO;AACxC,WAAS,OAAO,SAAS;AACzB,GAACA,eAAc,MAAM,MAAM,MAAM,GAAG,WAAW,WAAW;AAC1D,SAAO,QAAQ,IAAI,QAAQ,QAAQ,MAAM;AAC3C;AACA,SAASK,MAAI,OAAO;AAClB,UAAQ,MAAM,KAAK;AACb,QAAA,SAAS,MAAM,IAAI;AACnB,QAAA,QAAQ,SAAS,MAAM;AAC7B,QAAM,SAAS,MAAM,IAAI,KAAK,QAAQ,KAAK;AAC3C,MAAI,CAAC,QAAQ;AACX,WAAO,IAAI,KAAK;AACR,YAAA,QAAQ,OAAO,OAAO,KAAK;AAAA,EACrC;AACO,SAAA;AACT;AACA,SAASC,QAAM,KAAK,OAAO;AACzB,UAAQ,MAAM,KAAK;AACb,QAAA,SAAS,MAAM,IAAI;AACzB,QAAM,EAAE,KAAK,MAAM,KAAK,SAAS,SAAS,MAAM;AAChD,MAAI,SAAS,KAAK,KAAK,QAAQ,GAAG;AAClC,MAAI,CAAC,QAAQ;AACX,UAAM,MAAM,GAAG;AACN,aAAA,KAAK,KAAK,QAAQ,GAAG;AAAA,EAAA,OACsB;AAClC,sBAAA,QAAQ,MAAM,GAAG;AAAA,EACrC;AACA,QAAM,WAAW,KAAK,KAAK,QAAQ,GAAG;AAC/B,SAAA,IAAI,KAAK,KAAK;AACrB,MAAI,CAAC,QAAQ;AACH,YAAA,QAAQ,OAAO,KAAK,KAAK;AAAA,EACxB,WAAA,WAAW,OAAO,QAAQ,GAAG;AACtC,YAAQ,QAAQ,OAAO,KAAK,OAAO,QAAQ;AAAA,EAC7C;AACO,SAAA;AACT;AACA,SAAS,YAAY,KAAK;AAClB,QAAA,SAAS,MAAM,IAAI;AACzB,QAAM,EAAE,KAAK,MAAM,KAAK,SAAS,SAAS,MAAM;AAChD,MAAI,SAAS,KAAK,KAAK,QAAQ,GAAG;AAClC,MAAI,CAAC,QAAQ;AACX,UAAM,MAAM,GAAG;AACN,aAAA,KAAK,KAAK,QAAQ,GAAG;AAAA,EAAA,OACsB;AAClC,sBAAA,QAAQ,MAAM,GAAG;AAAA,EACrC;AACA,QAAM,WAAW,OAAO,KAAK,KAAK,QAAQ,GAAG,IAAI;AAC3C,QAAAnC,UAAS,OAAO,OAAO,GAAG;AAChC,MAAI,QAAQ;AACV,YAAQ,QAAQ,UAAU,KAAK,QAAQ,QAAQ;AAAA,EACjD;AACO,SAAAA;AACT;AACA,SAAS,QAAQ;AACT,QAAA,SAAS,MAAM,IAAI;AACnB,QAAA,WAAW,OAAO,SAAS;AACjC,QAAM,YAAwDzD,QAAM,MAAM,IAAI,IAAI,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM;AACxG,QAAAyD,UAAS,OAAO;AACtB,MAAI,UAAU;AACZ,YAAQ,QAAQ,SAAS,QAAQ,QAAQ,SAAS;AAAA,EACpD;AACO,SAAAA;AACT;AACA,SAAS,cAAc6B,aAAYC,YAAW;AACrC,SAAA,SAASM,SAAQ,UAAU,SAAS;AACzC,UAAM,WAAW;AACX,UAAA,SAAS,SAAS,SAAS;AAC3B,UAAA,YAAY,MAAM,MAAM;AAC9B,UAAML,QAAOD,aAAY,YAAYD,cAAa,aAAa;AAC/D,KAACA,eAAc,MAAM,WAAW,WAAW,WAAW;AACtD,WAAO,OAAO,QAAQ,CAAC,OAAO,QAAQ;AAC7B,aAAA,SAAS,KAAK,SAASE,MAAK,KAAK,GAAGA,MAAK,GAAG,GAAG,QAAQ;AAAA,IAAA,CAC/D;AAAA,EAAA;AAEL;AACA,SAAS,qBAAqBpC,SAAQkC,aAAYC,YAAW;AAC3D,SAAO,YAAY,MAAM;AACjB,UAAA,SAAS,KAAK,SAAS;AACvB,UAAA,YAAY,MAAM,MAAM;AACxB,UAAA,cAAcvF,QAAM,SAAS;AACnC,UAAM,SAASoD,YAAW,aAAaA,YAAW,OAAO,YAAY;AAC/D,UAAA,YAAYA,YAAW,UAAU;AACvC,UAAM,gBAAgB,OAAOA,OAAM,EAAE,GAAG,IAAI;AAC5C,UAAMoC,QAAOD,aAAY,YAAYD,cAAa,aAAa;AAC/D,KAACA,eAAc;AAAA,MACb;AAAA,MACA;AAAA,MACA,YAAY,sBAAsB;AAAA,IAAA;AAE7B,WAAA;AAAA;AAAA,MAEL,OAAO;AACL,cAAM,EAAE,OAAO,KAAK,IAAI,cAAc,KAAK;AAC3C,eAAO,OAAO,EAAE,OAAO,SAAS;AAAA,UAC9B,OAAO,SAAS,CAACE,MAAK,MAAM,CAAC,CAAC,GAAGA,MAAK,MAAM,CAAC,CAAC,CAAC,IAAIA,MAAK,KAAK;AAAA,UAC7D;AAAA,QAAA;AAAA,MAEJ;AAAA;AAAA,MAEA,CAAC,OAAO,QAAQ,IAAI;AACX,eAAA;AAAA,MACT;AAAA,IAAA;AAAA,EACF;AAEJ;AACA,SAAS,qBAAqB,MAAM;AAClC,SAAO,YAAY,MAAM;AACwB;AACvC,YAAA,MAAM,KAAK,CAAC,IAAI,WAAW,KAAK,CAAC,CAAC,OAAO;AAC/C;AAAA,QACE,GAAG3E,aAAW,IAAI,CAAC,cAAc,GAAG;AAAA,QACpC,MAAM,IAAI;AAAA,MAAA;AAAA,IAEd;AACA,WAAO,SAAS,WAAW,QAAQ,SAAS,UAAU,SAAS;AAAA,EAAA;AAEnE;AACA,SAAS,yBAAyB;AAChC,QAAM,2BAA2B;AAAA,IAC/B,IAAI,KAAK;AACA,aAAAwE,MAAI,MAAM,GAAG;AAAA,IACtB;AAAA,IACA,IAAI,OAAO;AACT,aAAOK,OAAK,IAAI;AAAA,IAClB;AAAA,IAAA,KACAD;AAAAA,IAAA,KACAE;AAAAA,IACA,KAAKC;AAAAA,IACL,QAAQ;AAAA,IACR;AAAA,IACA,SAAS,cAAc,OAAO,KAAK;AAAA,EAAA;AAErC,QAAM,2BAA2B;AAAA,IAC/B,IAAI,KAAK;AACP,aAAOP,MAAI,MAAM,KAAK,OAAO,IAAI;AAAA,IACnC;AAAA,IACA,IAAI,OAAO;AACT,aAAOK,OAAK,IAAI;AAAA,IAClB;AAAA,IAAA,KACAD;AAAAA,IAAA,KACAE;AAAAA,IACA,KAAKC;AAAAA,IACL,QAAQ;AAAA,IACR;AAAA,IACA,SAAS,cAAc,OAAO,IAAI;AAAA,EAAA;AAEpC,QAAM,4BAA4B;AAAA,IAChC,IAAI,KAAK;AACA,aAAAP,MAAI,MAAM,KAAK,IAAI;AAAA,IAC5B;AAAA,IACA,IAAI,OAAO;AACF,aAAAK,OAAK,MAAM,IAAI;AAAA,IACxB;AAAA,IACA,IAAI,KAAK;AACP,aAAOD,MAAI,KAAK,MAAM,KAAK,IAAI;AAAA,IACjC;AAAA,IACA,KAAK,qBAAqB,KAAK;AAAA,IAC/B,KAAK,qBAAqB,KAAK;AAAA,IAC/B,QAAQ,qBAAqB,QAAQ;AAAA,IACrC,OAAO,qBAAqB,OAAO;AAAA,IACnC,SAAS,cAAc,MAAM,KAAK;AAAA,EAAA;AAEpC,QAAM,mCAAmC;AAAA,IACvC,IAAI,KAAK;AACP,aAAOJ,MAAI,MAAM,KAAK,MAAM,IAAI;AAAA,IAClC;AAAA,IACA,IAAI,OAAO;AACF,aAAAK,OAAK,MAAM,IAAI;AAAA,IACxB;AAAA,IACA,IAAI,KAAK;AACP,aAAOD,MAAI,KAAK,MAAM,KAAK,IAAI;AAAA,IACjC;AAAA,IACA,KAAK,qBAAqB,KAAK;AAAA,IAC/B,KAAK,qBAAqB,KAAK;AAAA,IAC/B,QAAQ,qBAAqB,QAAQ;AAAA,IACrC,OAAO,qBAAqB,OAAO;AAAA,IACnC,SAAS,cAAc,MAAM,IAAI;AAAA,EAAA;AAEnC,QAAM,kBAAkB;AAAA,IACtB;AAAA,IACA;AAAA,IACA;AAAA,IACA,OAAO;AAAA,EAAA;AAEO,kBAAA,QAAQ,CAACrC,YAAW;AAClC,6BAAyBA,OAAM,IAAI,qBAAqBA,SAAQ,OAAO,KAAK;AAC5E,8BAA0BA,OAAM,IAAI,qBAAqBA,SAAQ,MAAM,KAAK;AAC5E,6BAAyBA,OAAM,IAAI,qBAAqBA,SAAQ,OAAO,IAAI;AAC3E,qCAAiCA,OAAM,IAAI;AAAA,MACzCA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,EACF,CACD;AACM,SAAA;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEJ;AACA,MAAM;AAAA,EACJ;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,IAA2C,uCAAA;AAC3C,SAAS,4BAA4BkC,aAAY,SAAS;AACxD,QAAM,mBAAmB,UAAUA,cAAa,kCAAkC,0BAA0BA,cAAa,2BAA2B;AAC7I,SAAA,CAAC,QAAQ,KAAK,aAAa;AAChC,QAAI,QAAQ,kBAAkB;AAC5B,aAAO,CAACA;AAAAA,IAAA,WACC,QAAQ,kBAAkB;AAC5BA,aAAAA;AAAAA,IAAA,WACE,QAAQ,WAAW;AACrB,aAAA;AAAA,IACT;AACA,WAAO,QAAQ;AAAA,MACbxF,SAAO,kBAAkB,GAAG,KAAK,OAAO,SAAS,mBAAmB;AAAA,MACpE;AAAA,MACA;AAAA,IAAA;AAAA,EACF;AAEJ;AACA,MAAM,4BAA4B;AAAA,EAChC,KAAiD,4CAAA,OAAO,KAAK;AAC/D;AACA,MAAM,4BAA4B;AAAA,EAChC,KAAiD,4CAAA,OAAO,IAAI;AAC9D;AACA,MAAM,6BAA6B;AAAA,EACjC,KAAiD,4CAAA,MAAM,KAAK;AAC9D;AACA,MAAM,oCAAoC;AAAA,EACxC,KAAiD,4CAAA,MAAM,IAAI;AAC7D;AACA,SAAS,kBAAkB,QAAQ,MAAM,KAAK;AACtC,QAAA,SAAS,MAAM,GAAG;AACxB,MAAI,WAAW,OAAO,KAAK,KAAK,QAAQ,MAAM,GAAG;AACzC,UAAA,OAAO,UAAU,MAAM;AAC7B;AAAA,MACE,YAAY,IAAI,kEAAkE,SAAS,QAAQ,aAAa,EAAE;AAAA,IAAA;AAAA,EAEtH;AACF;AAEA,MAAM,kCAAkC;AACxC,MAAM,yCAAyC;AAC/C,MAAM,kCAAkC;AACxC,MAAM,yCAAyC;AAC/C,SAAS,cAAc,SAAS;AAC9B,UAAQ,SAAS;AAAA,IACf,KAAK;AAAA,IACL,KAAK;AACI,aAAA;AAAA,IACT,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACI,aAAA;AAAA,IACT;AACS,aAAA;AAAA,EACX;AACF;AACA,SAAS,cAAc,OAAO;AAC5B,SAAO,MAAM,UAAU,KAAK,CAAC,OAAO,aAAa,KAAK,IAAI,IAAkB,cAAc,UAAU,KAAK,CAAC;AAC5G;AACA,SAAS,SAAS,QAAQ;AACpB,MAAA,WAAW,MAAM,GAAG;AACf,WAAA;AAAA,EACT;AACO,SAAA;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEJ;AACA,SAAS,gBAAgB,QAAQ;AACxB,SAAA;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEJ;AACA,SAAS,SAAS,QAAQ;AACjB,SAAA;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEJ;AACA,SAAS,gBAAgB,QAAQ;AACxB,SAAA;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEJ;AACA,SAAS,qBAAqB,QAAQ,aAAa,cAAc,oBAAoB,UAAU;AACzF,MAAA,CAACQ,WAAS,MAAM,GAAG;AAC0B;AAC7C,aAAO,kCAAkC,OAAO,MAAM,CAAC,EAAE;AAAA,IAC3D;AACO,WAAA;AAAA,EACT;AACA,MAAI,OAAO,SAAS,KAAK,EAAE,eAAe,OAAO,gBAAgB,IAAI;AAC5D,WAAA;AAAA,EACT;AACM,QAAA,gBAAgB,SAAS,IAAI,MAAM;AACzC,MAAI,eAAe;AACV,WAAA;AAAA,EACT;AACM,QAAA,aAAa,cAAc,MAAM;AACvC,MAAI,eAAe,GAAiB;AAC3B,WAAA;AAAA,EACT;AACA,QAAM,QAAQ,IAAI;AAAA,IAChB;AAAA,IACA,eAAe,IAAqB,qBAAqB;AAAA,EAAA;AAElD,WAAA,IAAI,QAAQ,KAAK;AACnB,SAAA;AACT;AACA,SAAS,WAAW,OAAO;AACrB,MAAA,WAAW,KAAK,GAAG;AACd,WAAA,WAAW,MAAM,SAAS,CAAC;AAAA,EACpC;AACA,SAAO,CAAC,EAAE,SAAS,MAAM,gBAAgB;AAC3C;AACA,SAAS,WAAW,OAAO;AACzB,SAAO,CAAC,EAAE,SAAS,MAAM,gBAAgB;AAC3C;AACA,SAAS,UAAU,OAAO;AACxB,SAAO,CAAC,EAAE,SAAS,MAAM,eAAe;AAC1C;AACA,SAAS,QAAQ,OAAO;AACtB,SAAO,WAAW,KAAK,KAAK,WAAW,KAAK;AAC9C;AACA,SAAS,MAAM,UAAU;AACjB,QAAA,MAAM,YAAY,SAAS,SAAS;AACnC,SAAA,MAAM,MAAM,GAAG,IAAI;AAC5B;AACA,SAAS,QAAQ,OAAO;AAClB,MAAA,OAAO,aAAa,KAAK,GAAG;AAC1B,QAAA,OAAO,YAAY,IAAI;AAAA,EAC7B;AACO,SAAA;AACT;AACA,MAAM,aAAa,CAAC,UAAUA,WAAS,KAAK,IAAI,SAAS,KAAK,IAAI;AAClE,MAAM,aAAa,CAAC,UAAUA,WAAS,KAAK,IAAI,SAAS,KAAK,IAAI;AAElE,MAAM,4BAA4B;AAClC,MAAM,gBAAgB;AAAA,EACpB,YAAY,QAAQ,SAASgF,aAAY,OAAO;AAC9C,SAAK,SAAS;AACd,SAAK,UAAU;AACf,SAAK,MAAM;AACX,SAAK,YAAY;AACjB,SAAK,gBAAgB,IAAI;AACzB,SAAK,SAAS,IAAIR;AAAAA,MAChB,MAAM,OAAO,KAAK,MAAM;AAAA,MACxB,MAAM;AAAA,QACJ;AAAA,QACA,KAAK,OAAO,gBAAgB,IAAI,IAAI;AAAA,MACtC;AAAA,IAAA;AAEF,SAAK,OAAO,WAAW;AACvB,SAAK,OAAO,SAAS,KAAK,aAAa,CAAC;AACxC,SAAK,gBAAgB,IAAIQ;AAAAA,EAC3B;AAAA,EACA,IAAI,QAAQ;AACJ,UAAA5D,QAAO,MAAM,IAAI;AACvB,SAAK,CAACA,MAAK,cAAcA,MAAK,OAAO,UAAU,WAAWA,MAAK,QAAQA,MAAK,SAASA,MAAK,OAAO,IAAA,CAAK,GAAG;AACvG,sBAAgBA,OAAM,CAAC;AAAA,IACzB;AACA,kBAAcA,KAAI;AACd,QAAAA,MAAK,OAAO,eAAe,GAAG;AAChC,UAAiD,KAAK,gBAAgB;AACpE,eAAO,2BAA2B;AAAA;AAAA,WAE/B,KAAK,MAAM;AAAA,MAChB;AACA,sBAAgBA,OAAM,CAAC;AAAA,IACzB;AACA,WAAOA,MAAK;AAAA,EACd;AAAA,EACA,IAAI,MAAM,UAAU;AAClB,SAAK,QAAQ,QAAQ;AAAA,EACvB;AAAA;AAAA,EAEA,IAAI,SAAS;AACX,WAAO,KAAK,OAAO;AAAA,EACrB;AAAA,EACA,IAAI,OAAON,IAAG;AACZ,SAAK,OAAO,QAAQA;AAAA,EACtB;AAAA;AAEF;AACA,SAAS,WAAW,iBAAiB,cAAc,QAAQ,OAAO;AAC5D,MAAA;AACA,MAAA;AACE,QAAA,aAAajB,aAAW,eAAe;AAC7C,MAAI,YAAY;AACL,aAAA;AACT,aAAqD,MAAM;AACzD,aAAO,oDAAoD;AAAA,IAAA;AAAA,EACzD,OACC;AACL,aAAS,gBAAgB;AACzB,aAAS,gBAAgB;AAAA,EAC3B;AACM,QAAA,OAAO,IAAI,gBAAgB,QAAQ,QAAQ,cAAc,CAAC,QAAQ,KAAK;AAKtE,SAAA;AACT;AAEA,SAAS,cAAc,MAAM;AACvB,MAAA;AACJ,MAAI,eAAe,cAAc;AAC/B,WAAO,MAAM,IAAI;AACjB;AAAA,MACE;AAAA,OACC,KAAK,KAAK,QAAQ,OAAO,KAAK,KAAK,MAAM;AAAA,QACxC,MAAM,KAAK,MAAM;AAAA,QACjB,gBAAgB,kBAAkB,OAAO;AAAA,MAC3C;AAAA,MAC4C;AAAA,QAC1C,QAAQ;AAAA,QACR,MAAM;AAAA,QACN,KAAK;AAAA,MAAA;AAAA,IACH;AAAA,EAER;AACF;AACA,SAAS,gBAAgB,MAAM,aAAa,GAAG,QAAQ;AACrD,SAAO,MAAM,IAAI;AACjB,QAAM,MAAM,KAAK;AACjB,MAAI,KAAK;AACP;AAAA,MACE;AAAA,MACA;AAAA,MAC4C;AAAA,QAC1C,QAAQ;AAAA,QACR,MAAM;AAAA,QACN,KAAK;AAAA,QACL,UAAU;AAAA,MAAA;AAAA,IACR;AAAA,EAER;AACF;AACA,SAAS,MAAMgE,IAAG;AAChB,SAAO,CAAC,EAAEA,MAAKA,GAAE,cAAc;AACjC;AACA,SAAS,IAAI,OAAO;AACX,SAAA,UAAU,OAAO,KAAK;AAC/B;AAIA,SAAS,UAAU,UAAU,SAAS;AAChC,MAAA,MAAM,QAAQ,GAAG;AACZ,WAAA;AAAA,EACT;AACO,SAAA,IAAI,QAAQ,UAAU,OAAO;AACtC;AACA,MAAM,QAAQ;AAAA,EACZ,YAAY,OAAO,eAAe;AAChC,SAAK,gBAAgB;AACrB,SAAK,MAAM;AACX,SAAK,YAAY;AACjB,SAAK,YAAY,gBAAgB,QAAQ,MAAM,KAAK;AACpD,SAAK,SAAS,gBAAgB,QAAQ,WAAW,KAAK;AAAA,EACxD;AAAA,EACA,IAAI,QAAQ;AACV,kBAAc,IAAI;AAClB,WAAO,KAAK;AAAA,EACd;AAAA,EACA,IAAI,MAAM,QAAQ;AAChB,UAAM,iBAAiB,KAAK,iBAAiB,UAAU,MAAM,KAAK,WAAW,MAAM;AAC1E,aAAA,iBAAiB,SAAS,MAAM,MAAM;AAC/C,QAAI,WAAW,QAAQ,KAAK,SAAS,GAAG;AACtC,WAAK,YAAY;AACjB,WAAK,SAAS,iBAAiB,SAAS,WAAW,MAAM;AACzC,sBAAA,MAAM,GAAG,MAAM;AAAA,IACjC;AAAA,EACF;AACF;AAIA,SAAS,MAAM,MAAM;AACnB,SAAO,MAAM,IAAI,IAAI,KAAK,QAAQ;AACpC;AACA,MAAM,wBAAwB;AAAA,EAC5B,KAAK,CAAC,QAAQ,KAAK,aAAa,MAAM,QAAQ,IAAI,QAAQ,KAAK,QAAQ,CAAC;AAAA,EACxE,KAAK,CAAC,QAAQ,KAAK,OAAO,aAAa;AAC/B,UAAA,WAAW,OAAO,GAAG;AAC3B,QAAI,MAAM,QAAQ,KAAK,CAAC,MAAM,KAAK,GAAG;AACpC,eAAS,QAAQ;AACV,aAAA;AAAA,IAAA,OACF;AACL,aAAO,QAAQ,IAAI,QAAQ,KAAK,OAAO,QAAQ;AAAA,IACjD;AAAA,EACF;AACF;AACA,SAAS,UAAU,gBAAgB;AACjC,SAAO,WAAW,cAAc,IAAI,iBAAiB,IAAI,MAAM,gBAAgB,qBAAqB;AACtG;AAsBA,SAAS,OAAOc,SAAQ;AAC2B,MAAA,CAAC,QAAQA,OAAM,GAAG;AACjE,WAAO,8DAA8D;AAAA,EACvE;AACM,QAAA,MAAMlF,UAAQkF,OAAM,IAAI,IAAI,MAAMA,QAAO,MAAM,IAAI;AACzD,aAAW,OAAOA,SAAQ;AACxB,QAAI,GAAG,IAAI,cAAcA,SAAQ,GAAG;AAAA,EACtC;AACO,SAAA;AACT;AACA,MAAM,cAAc;AAAA,EAClB,YAAY,SAAS,MAAM,eAAe;AACxC,SAAK,UAAU;AACf,SAAK,OAAO;AACZ,SAAK,gBAAgB;AACrB,SAAK,YAAY;AAAA,EACnB;AAAA,EACA,IAAI,QAAQ;AACV,UAAM,MAAM,KAAK,QAAQ,KAAK,IAAI;AAC3B,WAAA,QAAQ,SAAS,KAAK,gBAAgB;AAAA,EAC/C;AAAA,EACA,IAAI,MAAM,QAAQ;AACX,SAAA,QAAQ,KAAK,IAAI,IAAI;AAAA,EAC5B;AAAA,EACA,IAAI,MAAM;AACR,WAAO,mBAAmB,MAAM,KAAK,OAAO,GAAG,KAAK,IAAI;AAAA,EAC1D;AACF;AACA,MAAM,cAAc;AAAA,EAClB,YAAY,SAAS;AACnB,SAAK,UAAU;AACf,SAAK,YAAY;AACjB,SAAK,iBAAiB;AAAA,EACxB;AAAA,EACA,IAAI,QAAQ;AACV,WAAO,KAAK;EACd;AACF;AACA,SAAS,MAAM,QAAQ,KAAK,cAAc;AACpC,MAAA,MAAM,MAAM,GAAG;AACV,WAAA;AAAA,EAAA,WACE9E,aAAW,MAAM,GAAG;AACtB,WAAA,IAAI,cAAc,MAAM;AAAA,EAAA,WACtBG,WAAS,MAAM,KAAK,UAAU,SAAS,GAAG;AAC5C,WAAA,cAAc,QAAQ,KAAK,YAAY;AAAA,EAAA,OACzC;AACL,WAAO,IAAI,MAAM;AAAA,EACnB;AACF;AACA,SAAS,cAAc,QAAQ,KAAK,cAAc;AAC1C,QAAA,MAAM,OAAO,GAAG;AACf,SAAA,MAAM,GAAG,IAAI,MAAM,IAAI,cAAc,QAAQ,KAAK,YAAY;AACvE;AAEA,MAAM,QAAQ,CAAA;AACd,SAAS,mBAAmB,OAAO;AACjC,QAAM,KAAK,KAAK;AAClB;AACA,SAAS,oBAAoB;AAC3B,QAAM,IAAI;AACZ;AACA,SAAS,OAAO,QAAQ,MAAM;AACd;AACR,QAAA,WAAW,MAAM,SAAS,MAAM,MAAM,SAAS,CAAC,EAAE,YAAY;AACpE,QAAM,iBAAiB,YAAY,SAAS,WAAW,OAAO;AAC9D,QAAM,QAAQ;AACd,MAAI,gBAAgB;AAClB;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,QACE,MAAM,KAAK,IAAI,CAAC8D,OAAM;AACpB,cAAI,IAAI;AACR,kBAAQ,MAAM,KAAKA,GAAE,aAAa,OAAO,SAAS,GAAG,KAAKA,EAAC,MAAM,OAAO,KAAK,KAAK,UAAUA,EAAC;AAAA,QAAA,CAC9F,EAAE,KAAK,EAAE;AAAA,QACV,YAAY,SAAS;AAAA,QACrB,MAAM;AAAA,UACJ,CAAC,EAAE,YAAY,OAAO,oBAAoB,UAAU,MAAM,IAAI,CAAC;AAAA,QAAA,EAC/D,KAAK,IAAI;AAAA,QACX;AAAA,MACF;AAAA,IAAA;AAAA,EACF,OACK;AACL,UAAM,WAAW,CAAC,eAAe,GAAG,IAAI,GAAG,IAAI;AAC/C,QAAI,MAAM;AAAA,IACV,MAAM;AACJ,eAAS,KAAK;AAAA,GACjB,GAAG,YAAY,KAAK,CAAC;AAAA,IACpB;AACQ,YAAA,KAAK,GAAG,QAAQ;AAAA,EAC1B;AACc;AAChB;AACA,SAAS,oBAAoB;AAC3B,MAAI,eAAe,MAAM,MAAM,SAAS,CAAC;AACzC,MAAI,CAAC,cAAc;AACjB,WAAO;EACT;AACA,QAAM,kBAAkB,CAAA;AACxB,SAAO,cAAc;AACb,UAAAC,QAAO,gBAAgB,CAAC;AAC1B,QAAAA,SAAQA,MAAK,UAAU,cAAc;AAClC,MAAAA,MAAA;AAAA,IAAA,OACA;AACL,sBAAgB,KAAK;AAAA,QACnB,OAAO;AAAA,QACP,cAAc;AAAA,MAAA,CACf;AAAA,IACH;AACA,UAAM,iBAAiB,aAAa,aAAa,aAAa,UAAU;AACxE,mBAAe,kBAAkB,eAAe;AAAA,EAClD;AACO,SAAA;AACT;AACA,SAAS,YAAY,OAAO;AAC1B,QAAM,OAAO,CAAA;AACP,QAAA,QAAQ,CAAC,OAAOzE,OAAM;AAC1B,SAAK,KAAK,GAAGA,OAAM,IAAI,CAAA,IAAK,CAAC;AAAA,CAChC,GAAG,GAAG,iBAAiB,KAAK,CAAC;AAAA,EAAA,CAC3B;AACM,SAAA;AACT;AACA,SAAS,iBAAiB,EAAE,OAAO,gBAAgB;AACjD,QAAM,UAAU,eAAe,IAAI,QAAQ,YAAY,sBAAsB;AAC7E,QAAM,SAAS,MAAM,YAAY,MAAM,UAAU,UAAU,OAAO;AAClE,QAAM,OAAO,QAAQ;AAAA,IACnB,MAAM;AAAA,IACN,MAAM;AAAA,IACN;AAAA,EACD,CAAA;AACD,QAAM,QAAQ,MAAM;AACpB,SAAO,MAAM,QAAQ,CAAC,MAAM,GAAG,YAAY,MAAM,KAAK,GAAG,KAAK,IAAI,CAAC,OAAO,KAAK;AACjF;AACA,SAAS,YAAY,OAAO;AAC1B,QAAM,MAAM,CAAA;AACN,QAAA0E,QAAO,OAAO,KAAK,KAAK;AAC9B,EAAAA,MAAK,MAAM,GAAG,CAAC,EAAE,QAAQ,CAAC,QAAQ;AAChC,QAAI,KAAK,GAAG,WAAW,KAAK,MAAM,GAAG,CAAC,CAAC;AAAA,EAAA,CACxC;AACG,MAAAA,MAAK,SAAS,GAAG;AACnB,QAAI,KAAK,MAAM;AAAA,EACjB;AACO,SAAA;AACT;AACA,SAAS,WAAW,KAAK,OAAO,KAAK;AAC/B,MAAAlE,WAAS,KAAK,GAAG;AACX,YAAA,KAAK,UAAU,KAAK;AAC5B,WAAO,MAAM,QAAQ,CAAC,GAAG,GAAG,IAAI,KAAK,EAAE;AAAA,EAAA,WAC9B,OAAO,UAAU,YAAY,OAAO,UAAU,aAAa,SAAS,MAAM;AACnF,WAAO,MAAM,QAAQ,CAAC,GAAG,GAAG,IAAI,KAAK,EAAE;AAAA,EAAA,WAC9B,MAAM,KAAK,GAAG;AACvB,YAAQ,WAAW,KAAK,MAAM,MAAM,KAAK,GAAG,IAAI;AAChD,WAAO,MAAM,QAAQ,CAAC,GAAG,GAAG,SAAS,OAAO,GAAG;AAAA,EAAA,WACtCD,aAAW,KAAK,GAAG;AACrB,WAAA,CAAC,GAAG,GAAG,MAAM,MAAM,OAAO,IAAI,MAAM,IAAI,MAAM,EAAE,EAAE;AAAA,EAAA,OACpD;AACL,YAAQ,MAAM,KAAK;AACnB,WAAO,MAAM,QAAQ,CAAC,GAAG,GAAG,KAAK,KAAK;AAAA,EACxC;AACF;AAEA,MAAM,mBAAmB;AAAA,EACvB,CAAC,IAAI,GAAG;AAAA,EACR,CAAC,IAAI,GAAG;AAAA,EACR,CAAC,GAAG,GAAG;AAAA,EACP,CAAC,IAAI,GAAG;AAAA,EACR,CAAC,GAAG,GAAG;AAAA,EACP,CAAC,IAAI,GAAG;AAAA,EACR,CAAC,GAAG,GAAG;AAAA,EACP,CAAC,KAAK,GAAG;AAAA,EACT,CAAC,IAAI,GAAG;AAAA,EACR,CAAC,GAAG,GAAG;AAAA,EACP,CAAC,IAAI,GAAG;AAAA,EACR,CAAC,IAAI,GAAG;AAAA,EACR,CAAC,KAAK,GAAG;AAAA,EACT,CAAC,KAAK,GAAG;AAAA,EACT,CAAC,CAAC,GAAG;AAAA,EACL,CAAC,CAAC,GAAG;AAAA,EACL,CAAC,CAAC,GAAG;AAAA,EACL,CAAC,CAAC,GAAG;AAAA,EACL,CAAC,CAAC,GAAG;AAAA,EACL,CAAC,CAAC,GAAG;AAAA,EACL,CAAC,CAAC,GAAG;AAAA,EACL,CAAC,CAAC,GAAG;AAAA,EACL,CAAC,CAAC,GAAG;AAAA,EACL,CAAC,CAAC,GAAG;AAAA,EACL,CAAC,EAAE,GAAG;AAAA,EACN,CAAC,EAAE,GAAG;AAAA,EACN,CAAC,EAAE,GAAG;AAAA,EACN,CAAC,EAAE,GAAG;AAAA,EACN,CAAC,EAAE,GAAG;AACR;AACA,SAAS,sBAAsB,IAAI,UAAU,MAAM,MAAM;AACnD,MAAA;AACF,WAAO,OAAO,GAAG,GAAG,IAAI,IAAI,GAAG;AAAA,WACxB,KAAK;AACA,gBAAA,KAAK,UAAU,IAAI;AAAA,EACjC;AACF;AACA,SAAS,2BAA2B,IAAI,UAAU,MAAM,MAAM;AACxD,MAAAA,aAAW,EAAE,GAAG;AAClB,UAAM,MAAM,sBAAsB,IAAI,UAAU,MAAM,IAAI;AACtD,QAAA,OAAOI,YAAU,GAAG,GAAG;AACrB,UAAA,MAAM,CAAC,QAAQ;AACL,oBAAA,KAAK,UAAU,IAAI;AAAA,MAAA,CAChC;AAAA,IACH;AACO,WAAA;AAAA,EACT;AACA,QAAMqB,UAAS,CAAA;AACf,WAAShC,KAAI,GAAGA,KAAI,GAAG,QAAQA,MAAK;AAC3B,IAAAgC,QAAA,KAAK,2BAA2B,GAAGhC,EAAC,GAAG,UAAU,MAAM,IAAI,CAAC;AAAA,EACrE;AACO,SAAAgC;AACT;AACA,SAAS,YAAY,KAAK,UAAU,MAAM,aAAa,MAAM;AACrD,QAAA,eAAe,WAAW,SAAS,QAAQ;AACjD,MAAI,UAAU;AACZ,QAAI,MAAM,SAAS;AACnB,UAAM,kBAAkB,SAAS;AACjC,UAAM,YAAwD,iBAAiB,IAAI,KAAK;AACxF,WAAO,KAAK;AACV,YAAM,qBAAqB,IAAI;AAC/B,UAAI,oBAAoB;AACtB,iBAAShC,KAAI,GAAGA,KAAI,mBAAmB,QAAQA,MAAK;AAClD,cAAI,mBAAmBA,EAAC,EAAE,KAAK,iBAAiB,SAAS,MAAM,OAAO;AACpE;AAAA,UACF;AAAA,QACF;AAAA,MACF;AACA,YAAM,IAAI;AAAA,IACZ;AACM,UAAA,kBAAkB,SAAS,WAAW,OAAO;AACnD,QAAI,iBAAiB;AACnB;AAAA,QACE;AAAA,QACA;AAAA,QACA;AAAA,QACA,CAAC,KAAK,iBAAiB,SAAS;AAAA,MAAA;AAElC;AAAA,IACF;AAAA,EACF;AACS,WAAA,KAAK,MAAM,cAAc,UAAU;AAC9C;AACA,SAAS,SAAS,KAAK,MAAM,cAAc,aAAa,MAAM;AACb;AACvC,UAAA,OAAO,iBAAiB,IAAI,KAAK;AACvC,QAAI,cAAc;AAChB,yBAAmB,YAAY;AAAA,IACjC;AACA,WAAO,kBAAkB,OAAO,wBAAwB,IAAI,KAAK,EAAE,EAAE;AACrE,QAAI,cAAc;AACE;IACpB;AACA,QAAI,YAAY;AACd,cAAQ,MAAM,GAAG;AAAA,IAAA,OACZ;AACL,cAAQ,MAAM,GAAG;AAAA,IACnB;AAAA,EAGF;AACF;AAEA,IAAI,aAAa;AACjB,IAAI,iBAAiB;AACrB,MAAMqD,UAAQ,CAAA;AACd,IAAI,aAAa;AACjB,MAAM,sBAAsB,CAAA;AAC5B,IAAI,qBAAqB;AACzB,IAAI,iBAAiB;AACrB,MAAM,0CAA0C;AAChD,IAAI,sBAAsB;AAC1B,MAAM,kBAAkB;AACxB,SAAS,WAAW,IAAI;AACtB,QAAM6C,KAAI,uBAAuB;AAC1B,SAAA,KAAKA,GAAE,KAAK,OAAO,GAAG,KAAK,IAAI,IAAI,EAAE,IAAIA;AAClD;AACA,SAAS,mBAAmB,IAAI;AAC9B,MAAI,QAAQ,aAAa;AACzB,MAAI,MAAM7C,QAAM;AAChB,SAAO,QAAQ,KAAK;AACZ,UAAA,SAAS,QAAQ,QAAQ;AACzB,UAAA,YAAYA,QAAM,MAAM;AACxB,UAAA,cAAc,MAAM,SAAS;AACnC,QAAI,cAAc,MAAM,gBAAgB,MAAM,UAAU,KAAK;AAC3D,cAAQ,SAAS;AAAA,IAAA,OACZ;AACC,YAAA;AAAA,IACR;AAAA,EACF;AACO,SAAA;AACT;AACA,SAAS,SAAS,KAAK;AACrB,MAAI,CAACA,QAAM,UAAU,CAACA,QAAM;AAAA,IAC1B;AAAA,IACA,cAAc,IAAI,eAAe,aAAa,IAAI;AAAA,EAAA,GACjD;AACG,QAAA,IAAI,MAAM,MAAM;AAClBA,cAAM,KAAK,GAAG;AAAA,IAAA,OACT;AACLA,cAAM,OAAO,mBAAmB,IAAI,EAAE,GAAG,GAAG,GAAG;AAAA,IACjD;AACW;EACb;AACF;AACA,SAAS,aAAa;AAChB,MAAA,CAAC,cAAc,CAAC,gBAAgB;AACjB,qBAAA;AACK,0BAAA,gBAAgB,KAAK,SAAS;AAAA,EACtD;AACF;AACA,SAAS,YAAY,KAAK;AACjB,SAAAA,QAAM,QAAQ,GAAG,IAAI;AAC9B;AACA,SAAS,cAAc,KAAK;AACpB,QAAArD,KAAIqD,QAAM,QAAQ,GAAG;AAC3B,MAAIrD,KAAI,YAAY;AACZqD,YAAA,OAAOrD,IAAG,CAAC;AAAA,EACnB;AACF;AACA,SAAS,iBAAiB,IAAI;AACxB,MAAA,CAACG,UAAQ,EAAE,GAAG;AACZ,QAAA,CAAC,sBAAsB,CAAC,mBAAmB;AAAA,MAC7C;AAAA,MACA,GAAG,eAAe,iBAAiB,IAAI;AAAA,IAAA,GACtC;AACD,0BAAoB,KAAK,EAAE;AAAA,IAC7B;AAAA,EAAA,OACK;AACe,wBAAA,KAAK,GAAG,EAAE;AAAA,EAChC;AACW;AACb;AACA,SAAS,iBAAiB,UAAU,MAAMH,KAAI,aAAa,aAAa,IAAI,GAAG;AAC9B;AACtC,WAAA,4BAA4B;EACrC;AACO,SAAAA,KAAIqD,QAAM,QAAQrD,MAAK;AACtB,UAAA,KAAKqD,QAAMrD,EAAC;AACd,QAAA,MAAM,GAAG,KAAK;AAIiC,UAAA,sBAAsB,MAAM,EAAE,GAAG;AAChF;AAAA,MACF;AACMqD,cAAA,OAAOrD,IAAG,CAAC;AACjB,MAAAA;AACG;IACL;AAAA,EACF;AACF;AACA,SAAS,kBAAkB,MAAM;AAC/B,MAAI,oBAAoB,QAAQ;AAC9B,UAAM,UAAU,CAAC,GAAG,IAAI,IAAI,mBAAmB,CAAC,EAAE;AAAA,MAChD,CAACwE,IAAGG,OAAM,MAAMH,EAAC,IAAI,MAAMG,EAAC;AAAA,IAAA;AAE9B,wBAAoB,SAAS;AAC7B,QAAI,oBAAoB;AACH,yBAAA,KAAK,GAAG,OAAO;AAClC;AAAA,IACF;AACqB,yBAAA;AAC0B;AACtC,aAAA,4BAA4B;IACrC;AACA,SAAK,iBAAiB,GAAG,iBAAiB,mBAAmB,QAAQ,kBAAkB;AACrF,UAAiD,sBAAsB,MAAM,mBAAmB,cAAc,CAAC,GAAG;AAChH;AAAA,MACF;AACA,yBAAmB,cAAc;IACnC;AACqB,yBAAA;AACJ,qBAAA;AAAA,EACnB;AACF;AACA,MAAM,QAAQ,CAAC,QAAQ,IAAI,MAAM,OAAO,WAAW,IAAI;AACvD,MAAM,aAAa,CAACH,IAAGG,OAAM;AAC3B,QAAMC,QAAO,MAAMJ,EAAC,IAAI,MAAMG,EAAC;AAC/B,MAAIC,UAAS,GAAG;AACV,QAAAJ,GAAE,OAAO,CAACG,GAAE;AACP,aAAA;AACL,QAAAA,GAAE,OAAO,CAACH,GAAE;AACP,aAAA;AAAA,EACX;AACOI,SAAAA;AACT;AACA,SAAS,UAAU,MAAM;AACN,mBAAA;AACJ,eAAA;AACkC;AACtC,WAAA,4BAA4B;EACrC;AACAvB,UAAM,KAAK,UAAU;AACrB,QAAM,QAAoD,CAAC,QAAQ,sBAAsB,MAAM,GAAG;AAC9F,MAAA;AACF,SAAK,aAAa,GAAG,aAAaA,QAAM,QAAQ,cAAc;AACtD,YAAA,MAAMA,QAAM,UAAU;AACxB,UAAA,OAAO,IAAI,WAAW,OAAO;AACkB,YAAA,MAAM,GAAG,GAAG;AAC3D;AAAA,QACF;AACsB,8BAAA,KAAK,MAAM,EAAE;AAAA,MACrC;AAAA,IACF;AAAA,EAAA,UACA;AACa,iBAAA;AACbA,YAAM,SAAS;AACf,sBAAkB,IAAI;AACT,iBAAA;AACS,0BAAA;AAClB,QAAAA,QAAM,UAAU,oBAAoB,QAAQ;AAC9C,gBAAU,IAAI;AAAA,IAChB;AAAA,EACF;AACF;AACA,SAAS,sBAAsB,MAAM,IAAI;AACvC,MAAI,CAAC,KAAK,IAAI,EAAE,GAAG;AACZ,SAAA,IAAI,IAAI,CAAC;AAAA,EAAA,OACT;AACC,UAAA,QAAQ,KAAK,IAAI,EAAE;AACzB,QAAI,QAAQ,iBAAiB;AAC3B,YAAM,WAAW,GAAG;AACpB,YAAM,gBAAgB,YAAY,iBAAiB,SAAS,IAAI;AAChE;AAAA,QACE,qCAAqC,gBAAgB,kBAAkB,aAAa,MAAM,EAAE;AAAA,QAC5F;AAAA,QACA;AAAA,MAAA;AAEK,aAAA;AAAA,IAAA,OACF;AACA,WAAA,IAAI,IAAI,QAAQ,CAAC;AAAA,IACxB;AAAA,EACF;AACF;AAEA,IAAI8C;AACJ,IAAI,SAAS,CAAA;AACb,IAAI,uBAAuB;AAC3B,SAAS,OAAO,UAAU,MAAM;AAC9B,MAAIA,YAAU;AACHA,eAAA,KAAK,OAAO,GAAG,IAAI;AAAA,EAAA,WACnB,CAAC,sBAAsB;AAChC,WAAO,KAAK,EAAE,OAAO,KAAM,CAAA;AAAA,EAC7B;AACF;AACA,SAAS,gBAAgB,MAAM,QAAQ;AACrC,MAAI,IAAI;AACGA,eAAA;AACX,MAAIA,YAAU;AACZA,eAAS,UAAU;AACZ,WAAA,QAAQ,CAAC,EAAE,OAAO,KAAA,MAAWA,WAAS,KAAK,OAAO,GAAG,IAAI,CAAC;AACjE,aAAS,CAAA;AAAA,EAAC;AAAA;AAAA;AAAA;AAAA,IAKV,OAAO,WAAW;AAAA,IAClB,OAAO;AAAA,IACP,GAAG,MAAM,KAAK,OAAO,cAAc,OAAO,SAAS,GAAG,cAAc,OAAO,SAAS,GAAG,SAAS,OAAO;AAAA,IACvG;AACA,UAAM,SAAS,OAAO,+BAA+B,OAAO,gCAAgC,CAAA;AACrF,WAAA,KAAK,CAAC,YAAY;AACvB,sBAAgB,SAAS,MAAM;AAAA,IAAA,CAChC;AACD,eAAW,MAAM;AACf,UAAI,CAACA,YAAU;AACb,eAAO,+BAA+B;AACf,+BAAA;AACvB,iBAAS,CAAA;AAAA,MACX;AAAA,OACC,GAAG;AAAA,EAAA,OACD;AACkB,2BAAA;AACvB,aAAS,CAAA;AAAA,EACX;AACF;AACA,SAAS,gBAAgB,KAAK/B,UAAS;AAC9B,SAAA,YAA2B,KAAKA,UAAS;AAAA,IAC9C;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA,CACD;AACH;AACA,MAAM,yBAAyC;AAAA,EAC7C;AAAA;AACF;AACA,MAAM,2BAA2C;AAAA,EAA4B;AAAA;AAA2C;AACxH,MAAM,4BAA4C;AAAA,EAChD;AAAA;AACF;AACA,MAAM,2BAA2B,CAAC,cAAc;AAC1C,MAAA+B,cAAY,OAAOA,WAAS,kBAAkB;AAAA,EAClD,CAACA,WAAS,cAAc,SAAS,GAAG;AAClC,8BAA0B,SAAS;AAAA,EACrC;AACF;AACA;AAAA;AAEA,SAAS,4BAA4B,MAAM;AACzC,SAAO,CAAC,cAAc;AACpB;AAAA,MACE;AAAA,MACA,UAAU,WAAW;AAAA,MACrB,UAAU;AAAA;AAAA;AAAA,MAGV,UAAU,QAAQ,IAAI,SAAS,UAAU,SAAS,UAAU,OAAO,MAAM;AAAA,MACzE;AAAA,IAAA;AAAA,EACF;AAEJ;AACA,MAAM,oBAAoC;AAAA,EACxC;AAAA;AACF;AACA,MAAM,kBAAkC;AAAA,EACtC;AAAA;AACF;AACA,SAAS,8BAA8B,MAAM;AACpC,SAAA,CAAC,WAAW,MAAM,SAAS;AACzB,WAAA,MAAM,UAAU,WAAW,KAAK,UAAU,KAAK,WAAW,MAAM,IAAI;AAAA,EAAA;AAE/E;AACA,SAAS,sBAAsB,WAAW,OAAO,QAAQ;AACvD;AAAA,IACE;AAAA,IACA,UAAU,WAAW;AAAA,IACrB;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEJ;AAEA,SAAS,KAAK,UAAU,UAAU,SAAS;AACzC,MAAI,SAAS;AACX;AACI,QAAA,QAAQ,SAAS,MAAM,SAAS;AACS;AACvC,UAAA;AAAA,MACJ;AAAA,MACA,cAAc,CAAC,YAAY;AAAA,IACzB,IAAA;AACJ,QAAI,cAAc;AACZ,UAAA,EAAE,SAAS,iBAAiB,MAAM;AACpC,YAAI,CAAC,gBAAgB,EAAE,aAAa,KAAK,KAAK,eAAe;AAC3D;AAAA,YACE,4BAA4B,KAAK,+DAA+D,aAAa,KAAK,CAAC;AAAA,UAAA;AAAA,QAEvH;AAAA,MAAA,OACK;AACC,cAAA,YAAY,aAAa,KAAK;AAChC,YAAA5F,aAAW,SAAS,GAAG;AACnB,gBAAA,UAAU,UAAU,GAAG,OAAO;AACpC,cAAI,CAAC,SAAS;AACZ;AAAA,cACE,+DAA+D,KAAK;AAAA,YAAA;AAAA,UAExE;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACA,MAAI,OAAO;AACL6F,QAAAA,mBAAkB,MAAM,WAAW,SAAS;AAClD,QAAM,WAAWA,oBAAmB,MAAM,MAAM,CAAC;AAC7C,MAAA,YAAY,YAAY,OAAO;AACjC,UAAM,eAAe,GAAG,aAAa,eAAe,UAAU,QAAQ;AACtE,UAAM,EAAE,QAAArC,SAAQ,MAAAsC,MAAA,IAAS,MAAM,YAAY,KAAK;AAChD,QAAIA,OAAM;AACD,aAAA,QAAQ,IAAI,CAAC7B,OAAMhE,WAASgE,EAAC,IAAIA,GAAE,KAAK,IAAIA,EAAC;AAAA,IACtD;AACA,QAAIT,SAAQ;AACH,aAAA,QAAQ,IAAI,aAAa;AAAA,IAClC;AAAA,EACF;AACwE;AAChD,0BAAA,UAAU,OAAO,IAAI;AAAA,EAC7C;AAC+C;AACvC,UAAA,iBAAiB,MAAM;AAC7B,QAAI,mBAAmB,SAAS,MAAM,aAAa,cAAc,CAAC,GAAG;AACnE;AAAA,QACE,UAAU,cAAc,6BAA6B;AAAA,UACnD;AAAA,UACA,SAAS;AAAA,QAAA,CACV,uCAAuC,KAAK,iKAAiK;AAAA,UAC5M;AAAA,QAAA,CACD,iBAAiB,KAAK;AAAA,MAAA;AAAA,IAE3B;AAAA,EACF;AACI,MAAA;AACJ,MAAI,UAAU,MAAM,cAAc,aAAa,KAAK,CAAC;AAAA,EACrD,MAAM,cAAc,aAAa,SAAS,KAAK,CAAC,CAAC;AAC7C,MAAA,CAAC,WAAWqC,kBAAiB;AAC/B,cAAU,MAAM,cAAc,aAAa,UAAU,KAAK,CAAC,CAAC;AAAA,EAC9D;AACA,MAAI,SAAS;AACX;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,EAEJ;AACM,QAAA,cAAc,MAAM,cAAc,MAAM;AAC9C,MAAI,aAAa;AACX,QAAA,CAAC,SAAS,SAAS;AACrB,eAAS,UAAU;IACV,WAAA,SAAS,QAAQ,WAAW,GAAG;AACxC;AAAA,IACF;AACS,aAAA,QAAQ,WAAW,IAAI;AAChC;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,EAEJ;AACF;AACA,SAAS,sBAAsB,MAAM,YAAY,UAAU,OAAO;AAChE,QAAMtF,SAAQ,WAAW;AACnB,QAAA,SAASA,OAAM,IAAI,IAAI;AAC7B,MAAI,WAAW,QAAQ;AACd,WAAA;AAAA,EACT;AACA,QAAM,MAAM,KAAK;AACjB,MAAI,aAAa,CAAA;AACjB,MAAI,aAAa;AACU,MAAA,CAACP,aAAW,IAAI,GAAG;AACtC,UAAA,cAAc,CAAC,SAAS;AAC5B,YAAM,uBAAuB,sBAAsB,MAAM,YAAY,IAAI;AACzE,UAAI,sBAAsB;AACX,qBAAA;AACb,eAAO,YAAY,oBAAoB;AAAA,MACzC;AAAA,IAAA;AAEF,QAAI,CAAC,WAAW,WAAW,OAAO,QAAQ;AAC7B,iBAAA,OAAO,QAAQ,WAAW;AAAA,IACvC;AACA,QAAI,KAAK,SAAS;AAChB,kBAAY,KAAK,OAAO;AAAA,IAC1B;AACA,QAAI,KAAK,QAAQ;AACV,WAAA,OAAO,QAAQ,WAAW;AAAA,IACjC;AAAA,EACF;AACI,MAAA,CAAC,OAAO,CAAC,YAAY;AACnB,QAAAG,WAAS,IAAI,GAAG;AACZ,MAAAI,OAAA,IAAI,MAAM,IAAI;AAAA,IACtB;AACO,WAAA;AAAA,EACT;AACI,MAAAX,UAAQ,GAAG,GAAG;AAChB,QAAI,QAAQ,CAAC,QAAQ,WAAW,GAAG,IAAI,IAAI;AAAA,EAAA,OACtC;AACL,WAAO,YAAY,GAAG;AAAA,EACxB;AACI,MAAAO,WAAS,IAAI,GAAG;AACZ,IAAAI,OAAA,IAAI,MAAM,UAAU;AAAA,EAC5B;AACO,SAAA;AACT;AACA,SAAS,eAAe,SAAS,KAAK;AACpC,MAAI,CAAC,WAAW,CAAC,KAAK,GAAG,GAAG;AACnB,WAAA;AAAA,EACT;AACA,QAAM,IAAI,MAAM,CAAC,EAAE,QAAQ,SAAS,EAAE;AAC/B,SAAAZ,SAAO,SAAS,IAAI,CAAC,EAAE,YAAY,IAAI,IAAI,MAAM,CAAC,CAAC,KAAKA,SAAO,SAAS,UAAU,GAAG,CAAC,KAAKA,SAAO,SAAS,GAAG;AACvH;AAEA,IAAI,2BAA2B;AAE/B,SAAS,4BAA4B,UAAU;AAC7C,QAAM,OAAO;AACc,6BAAA;AACV,cAAY,SAAS,KAAK,aAAa;AACjD,SAAA;AACT;AAoCA,MAAM,aAAa;AAEnB,SAAS,iBAAiB,MAAM,oBAAoB;AAClD,SAAO,aAAa,YAAY,MAAM,MAAM,kBAAkB,KAAK;AACrE;AAKA,SAAS,aAAa,MAAM,MAAM,cAAc,MAAM,qBAAqB,OAAO;AAChF,QAAM,WAAW,4BAA4B;AAC7C,MAAI,UAAU;AACZ,UAAM6E,aAAY,SAAS;AACF;AACvB,YAAM,WAAW;AAAA,QACfA;AAAA,QACA;AAAA,MAAA;AAEF,UAAI,aAAa,aAAa,QAAQ,aAAa,SAAS,IAAI,KAAK,aAAa9D,aAAW,SAAS,IAAI,CAAC,IAAI;AACtG,eAAA8D;AAAA,MACT;AAAA,IACF;AACM,UAAA;AAAA;AAAA;AAAA,MAGJ,QAAQ,SAAS,IAAI,KAAKA,WAAU,IAAI,GAAG,IAAI;AAAA,MAC/C,QAAQ,SAAS,WAAW,IAAI,GAAG,IAAI;AAAA;AAErC,QAAA,CAAC,OAAO,oBAAoB;AACvB,aAAAA;AAAA,IACT;AACiD,QAAA,eAAe,CAAC,KAAK;AAC9D,YAAA,QAA8B;AAAA;AAE7B,aAAA,qBAAqB,KAAK,MAAM,GAAG,EAAE,CAAC,KAAK,IAAI,GAAG,KAAK,EAAE;AAAA,IAClE;AACO,WAAA;AAAA,EAAA,OAC6C;AACpD;AAAA,MACE,UAAU9D,aAAW,KAAK,MAAM,GAAG,EAAE,CAAC,CAAC;AAAA,IAAA;AAAA,EAE3C;AACF;AACA,SAAS,QAAQ,UAAU,MAAM;AAC/B,SAAO,aAAa,SAAS,IAAI,KAAK,SAAS,SAAS,IAAI,CAAC,KAAK,SAASA,aAAW,SAAS,IAAI,CAAC,CAAC;AACvG;AAkBA,SAAS,gBAAgBgE,SAAQ,SAAS;AACjC,SAAA;AAAA,IACLA;AAAAA,IACA;AAAA,IAC4C,OAAO,CAAC,GAAG,SAAS,EAAE,OAAO,OAAQ,CAAA;AAAA,EAAoB;AAEzG;AAQA,MAAM,wBAAwB,CAAA;AAC9B,SAAS,MAAM,QAAQ,IAAI,SAAS;AACe,MAAA,CAAC1E,aAAW,EAAE,GAAG;AAChE;AAAA,MACE;AAAA,IAAA;AAAA,EAEJ;AACO,SAAA,QAAQ,QAAQ,IAAI,OAAO;AACpC;AACA,SAAS,QAAQ,QAAQ,IAAI;AAAA,EAC3B;AAAA,EACA;AAAA,EACA;AAAA,EACA,MAAAkB;AAAA,EACA;AAAA,EACA;AACF,IAAI,WAAW;AACb,MAAI,MAAMA,OAAM;AACd,UAAM,MAAM;AACZ,SAAK,IAAI,SAAS;AAChB,UAAI,GAAG,IAAI;AACH;IAAA;AAAA,EAEZ;AACA,MAAiD,SAAS,UAAU,OAAO,SAAS,UAAU;AAC5F;AAAA,MACE;AAAA,IAAA;AAAA,EAEJ;AACA,MAAiD,CAAC,IAAI;AACpD,QAAI,cAAc,QAAQ;AACxB;AAAA,QACE;AAAA,MAAA;AAAA,IAEJ;AACA,QAAI,SAAS,QAAQ;AACnB;AAAA,QACE;AAAA,MAAA;AAAA,IAEJ;AACA,QAAIA,UAAS,QAAQ;AACnB;AAAA,QACE;AAAA,MAAA;AAAA,IAEJ;AAAA,EACF;AACM,QAAA,oBAAoB,CAACP,OAAM;AAC/B;AAAA,MACE;AAAA,MACAA;AAAAA,MACA;AAAA,IAAA;AAAA,EACF;AAEF,QAAM,WAAW;AACjB,QAAM,iBAAiB,CAAC,YAAY,SAAS,OAAO;AAAA;AAAA,IAElD,SAAS,SAAS,SAAS,QAAQ,IAAI,MAAM;AAAA;AAE3C,MAAA;AACJ,MAAI,eAAe;AACnB,MAAI,gBAAgB;AAChB,MAAA,MAAM,MAAM,GAAG;AACjB,aAAS,MAAM,OAAO;AACtB,mBAAe,UAAU,MAAM;AAAA,EAAA,WACtB,WAAW,MAAM,GAAG;AACpB,aAAA,MAAM,eAAe,MAAM;AACrB,mBAAA;AAAA,EAAA,WACNf,UAAQ,MAAM,GAAG;AACV,oBAAA;AACD,mBAAA,OAAO,KAAK,CAACe,OAAM,WAAWA,EAAC,KAAK,UAAUA,EAAC,CAAC;AAC/D,aAAS,MAAM,OAAO,IAAI,CAACA,OAAM;AAC3B,UAAA,MAAMA,EAAC,GAAG;AACZ,eAAOA,GAAE;AAAA,MAAA,WACA,WAAWA,EAAC,GAAG;AACxB,eAAO,eAAeA,EAAC;AAAA,MAAA,WACdX,aAAWW,EAAC,GAAG;AACjB,eAAA,sBAAsBA,IAAG,UAAU,CAAC;AAAA,MAAA,OACtC;AACwC,0BAAkBA,EAAC;AAAA,MAClE;AAAA,IAAA,CACD;AAAA,EAAA,WACQX,aAAW,MAAM,GAAG;AAC7B,QAAI,IAAI;AACN,eAAS,MAAM,sBAAsB,QAAQ,UAAU,CAAC;AAAA,IAAA,OACnD;AACL,eAAS,MAAM;AACb,YAAI,SAAS;AACH;QACV;AACO,eAAA;AAAA,UACL;AAAA,UACA;AAAA,UACA;AAAA,UACA,CAAC,SAAS;AAAA,QAAA;AAAA,MACZ;AAAA,IAEJ;AAAA,EAAA,OACK;AACI,aAAA;AACoC,sBAAkB,MAAM;AAAA,EACvE;AACA,MAAI,MAAM,MAAM;AACd,UAAM,aAAa;AACV,aAAA,MAAM,SAAS,WAAA,CAAY;AAAA,EACtC;AACI,MAAA;AACA,MAAA,YAAY,CAAC,OAAO;AACZ0E,cAAAA,QAAO,SAAS,MAAM;AACR,4BAAA,IAAI,UAAU,CAAC;AACrC,gBAAUA,QAAO,SAAS;AAAA,IAAA;AAAA,EAC5B;AAEE,MAAA,WAAW,gBAAgB,IAAI,MAAM,OAAO,MAAM,EAAE,KAAK,qBAAqB,IAAI;AACtF,QAAM,MAAM,MAAM;AAChB,QAAI,CAACA,QAAO,UAAU,CAACA,QAAO,OAAO;AACnC;AAAA,IACF;AACA,QAAI,IAAI;AACA,YAAA,WAAWA,QAAO;AACxB,UAAI,QAAQ,iBAAiB,gBAAgB,SAAS,KAAK,CAACzD,IAAGxB,OAAM,WAAWwB,IAAG,SAASxB,EAAC,CAAC,CAAC,IAAI,WAAW,UAAU,QAAQ,MAAM,OAAO;AAC3I,YAAI,SAAS;AACH;QACV;AAC2B,mCAAA,IAAI,UAAU,GAAG;AAAA,UAC1C;AAAA;AAAA,UAEA,aAAa,wBAAwB,SAAS,iBAAiB,SAAS,CAAC,MAAM,wBAAwB,CAAA,IAAK;AAAA,UAC5G;AAAA,QAAA,CACD;AACU,mBAAA;AAAA,MACb;AAAA,IAAA,OACK;AACLiF,cAAO,IAAI;AAAA,IACb;AAAA,EAAA;AAEE,MAAA,eAAe,CAAC,CAAC;AACjB,MAAA;AACJ,MAAI,UAAU,QAAQ;AACR,gBAAA;AAAA,EAAA,WACH,UAAU,QAAQ;AAC3B,gBAAY,MAAM,wBAAwB,KAAK,YAAY,SAAS,QAAQ;AAAA,EAAA,OACvE;AACL,QAAI,MAAM;AACN,QAAA;AACF,UAAI,KAAK,SAAS;AACR,gBAAA,MAAM,SAAS,GAAG;AAAA,EAChC;AACA,QAAMA,UAAS,IAAIC,gBAAe,QAAQ,MAAM,SAAS;AACzD,QAAM,QAAQ;AACd,QAAM,UAAU,MAAM;AACpBD,YAAO,KAAK;AACZ,QAAI,OAAO;AACFlF,eAAA,MAAM,SAASkF,OAAM;AAAA,IAC9B;AAAA,EAAA;AAE6C;AAC7CA,YAAO,UAAU;AACjBA,YAAO,YAAY;AAAA,EACrB;AACA,MAAI,IAAI;AACN,QAAI,WAAW;AACT;IAAA,OACC;AACL,iBAAWA,QAAO;IACpB;AAAA,EAAA,WACS,UAAU,QAAQ;AAC3B;AAAA,MACEA,QAAO,IAAI,KAAKA,OAAM;AAAA,MACtB,YAAY,SAAS;AAAA,IAAA;AAAA,EACvB,OACK;AACLA,YAAO,IAAI;AAAA,EACb;AACO,SAAA;AACT;AACA,SAAS,cAAc,QAAQ,OAAO,SAAS;AAC7C,QAAM,aAAa,KAAK;AACxB,QAAM,SAASzE,WAAS,MAAM,IAAI,OAAO,SAAS,GAAG,IAAI,iBAAiB,YAAY,MAAM,IAAI,MAAM,WAAW,MAAM,IAAI,OAAO,KAAK,YAAY,UAAU;AACzJ,MAAA;AACA,MAAAD,aAAW,KAAK,GAAG;AAChB,SAAA;AAAA,EAAA,OACA;AACL,SAAK,MAAM;AACD,cAAA;AAAA,EACZ;AACM,QAAA,QAAQ,mBAAmB,IAAI;AACrC,QAAM,MAAM,QAAQ,QAAQ,GAAG,KAAK,UAAU,GAAG,OAAO;AAClD;AACC,SAAA;AACT;AACA,SAAS,iBAAiB,KAAK,MAAM;AAC7B,QAAA,WAAW,KAAK,MAAM,GAAG;AAC/B,SAAO,MAAM;AACX,QAAI,MAAM;AACV,aAASP,KAAI,GAAGA,KAAI,SAAS,UAAU,KAAKA,MAAK;AACzC,YAAA,IAAI,SAASA,EAAC,CAAC;AAAA,IACvB;AACO,WAAA;AAAA,EAAA;AAEX;AACA,SAAS,SAAS,OAAO,OAAO,eAAe,GAAG,MAAM;AACtD,MAAI,CAACU,WAAS,KAAK,KAAK,MAAM,UAAU,GAAG;AAClC,WAAA;AAAA,EACT;AACI,MAAA,SAAS,QAAQ,GAAG;AACtB,QAAI,gBAAgB,OAAO;AAClB,aAAA;AAAA,IACT;AACA;AAAA,EACF;AACO,SAAA,4BAA4B;AAC/B,MAAA,KAAK,IAAI,KAAK,GAAG;AACZ,WAAA;AAAA,EACT;AACA,OAAK,IAAI,KAAK;AACV,MAAA,MAAM,KAAK,GAAG;AAChB,aAAS,MAAM,OAAO,OAAO,cAAc,IAAI;AAAA,EAAA,WACtCP,UAAQ,KAAK,GAAG;AACzB,aAASH,KAAI,GAAGA,KAAI,MAAM,QAAQA,MAAK;AACrC,eAAS,MAAMA,EAAC,GAAG,OAAO,cAAc,IAAI;AAAA,IAC9C;AAAA,aACSM,QAAM,KAAK,KAAKF,QAAM,KAAK,GAAG;AACjC,UAAA,QAAQ,CAACoB,OAAM;AACV,eAAAA,IAAG,OAAO,cAAc,IAAI;AAAA,IAAA,CACtC;AAAA,EAAA,WACQX,gBAAc,KAAK,GAAG;AAC/B,eAAW,OAAO,OAAO;AACvB,eAAS,MAAM,GAAG,GAAG,OAAO,cAAc,IAAI;AAAA,IAChD;AAAA,EACF;AACO,SAAA;AACT;AAEA,SAAS,sBAAsB,MAAM;AAC/B,MAAA,mBAAmB,IAAI,GAAG;AAC5B,WAAO,+DAA+D,IAAI;AAAA,EAC5E;AACF;AAiCA,SAAS,mBAAmB;AACnB,SAAA;AAAA,IACL,KAAK;AAAA,IACL,QAAQ;AAAA,MACN,aAAa;AAAA,MACb,aAAa;AAAA,MACb,kBAAkB,CAAC;AAAA,MACnB,uBAAuB,CAAC;AAAA,MACxB,cAAc;AAAA,MACd,aAAa;AAAA,MACb,iBAAiB,CAAC;AAAA,IACpB;AAAA,IACA,QAAQ,CAAC;AAAA,IACT,YAAY,CAAC;AAAA,IACb,YAAY,CAAC;AAAA,IACb,UAAiC,uBAAA,OAAO,IAAI;AAAA,IAC5C,kCAAkC,QAAQ;AAAA,IAC1C,gCAAgC,QAAQ;AAAA,IACxC,gCAAgC,QAAQ;AAAA,EAAA;AAE5C;AACA,IAAI,QAAQ;AACZ,SAAS,aAAa,QAAQ,SAAS;AACrC,SAAO,SAASyF,WAAU,eAAe,YAAY,MAAM;AACrD,QAAA,CAAC/F,aAAW,aAAa,GAAG;AACd,sBAAA,OAAO,IAAI,aAAa;AAAA,IAC1C;AACA,QAAI,aAAa,QAAQ,CAACG,WAAS,SAAS,GAAG;AACA,aAAO,qDAAqD;AAC7F,kBAAA;AAAA,IACd;AACA,UAAM6F,WAAU;AACV,UAAA,uCAAuC;AACvC,UAAA,MAAMA,SAAQ,MAAM;AAAA,MACxB,MAAM;AAAA,MACN,YAAY;AAAA,MACZ,QAAQ;AAAA,MACR,YAAY;AAAA,MACZ,UAAUA;AAAA,MACV,WAAW;AAAA,MACX;AAAA,MACA,IAAI,SAAS;AACX,eAAOA,SAAQ;AAAA,MACjB;AAAA,MACA,IAAI,OAAO/E,IAAG;AACmC;AAC7C;AAAA,YACE;AAAA,UAAA;AAAA,QAEJ;AAAA,MACF;AAAA,MACA,IAAIgF,YAAW,SAAS;AAClB,YAAA,iBAAiB,IAAIA,OAAM,GAAG;AACa,iBAAO,gDAAgD;AAAA,QAC3FA,WAAAA,WAAUjG,aAAWiG,QAAO,OAAO,GAAG;AAC/C,2BAAiB,IAAIA,OAAM;AAC3BA,kBAAO,QAAQ,KAAK,GAAG,OAAO;AAAA,QAAA,WACrBjG,aAAWiG,OAAM,GAAG;AAC7B,2BAAiB,IAAIA,OAAM;AAC3BA,kBAAO,KAAK,GAAG,OAAO;AAAA,QAAA,OAC8B;AACpD;AAAA,YACE;AAAA,UAAA;AAAA,QAEJ;AACO,eAAA;AAAA,MACT;AAAA,MACA,MAAMC,QAAO;AACc;AACvB,cAAI,CAACF,SAAQ,OAAO,SAASE,MAAK,GAAG;AAC3B,YAAAF,SAAA,OAAO,KAAKE,MAAK;AAAA,UAAA,OAC2B;AACpD;AAAA,cACE,kDAAkDA,OAAM,OAAO,KAAKA,OAAM,IAAI,KAAK;AAAA,YAAA;AAAA,UAEvF;AAAA,QAGF;AACO,eAAA;AAAA,MACT;AAAA,MACA,UAAU,MAAM,WAAW;AACsB;AACvB,gCAAA,MAAMF,SAAQ,MAAM;AAAA,QAC5C;AACA,YAAI,CAAC,WAAW;AACP,iBAAAA,SAAQ,WAAW,IAAI;AAAA,QAChC;AACiD,YAAAA,SAAQ,WAAW,IAAI,GAAG;AAClE,iBAAA,cAAc,IAAI,8CAA8C;AAAA,QACzE;AACQ,QAAAA,SAAA,WAAW,IAAI,IAAI;AACpB,eAAA;AAAA,MACT;AAAA,MACA,UAAU,MAAM,WAAW;AACsB;AAC7C,gCAAsB,IAAI;AAAA,QAC5B;AACA,YAAI,CAAC,WAAW;AACP,iBAAAA,SAAQ,WAAW,IAAI;AAAA,QAChC;AACiD,YAAAA,SAAQ,WAAW,IAAI,GAAG;AAClE,iBAAA,cAAc,IAAI,8CAA8C;AAAA,QACzE;AACQ,QAAAA,SAAA,WAAW,IAAI,IAAI;AACpB,eAAA;AAAA,MACT;AAAA;AAAA,MAEA,QAAQ;AAAA,MACR;AAAA;AAAA,MAEA,UAAU;AAAA,MACV;AAAA,MACA,QAAQ,KAAK,OAAO;AAC+B,YAAA,OAAOA,SAAQ,UAAU;AACxE;AAAA,YACE,2CAA2C,OAAO,GAAG,CAAC;AAAA,UAAA;AAAA,QAE1D;AACQ,QAAAA,SAAA,SAAS,GAAG,IAAI;AACjB,eAAA;AAAA,MACT;AAAA,MACA,eAAe,IAAI;AACjB,cAAM,UAAU;AACH,qBAAA;AACT,YAAA;AACF,iBAAO,GAAG;AAAA,QAAA,UACV;AACa,uBAAA;AAAA,QACf;AAAA,MACF;AAAA,IAAA;AAEK,WAAA;AAAA,EAAA;AAEX;AACA,IAAI,aAAa;AAEjB,SAAS,QAAQ,KAAK,OAAO;AAC3B,MAAI,CAAC,iBAAiB;AAC2B;AAC7C,aAAO,4CAA4C;AAAA,IACrD;AAAA,EAAA,OACK;AACL,QAAI,WAAW,gBAAgB;AAC/B,UAAM,iBAAiB,gBAAgB,UAAU,gBAAgB,OAAO;AACxE,QAAI,mBAAmB,UAAU;AAC/B,iBAAW,gBAAgB,WAAW,OAAO,OAAO,cAAc;AAAA,IACpE;AACA,aAAS,GAAG,IAAI;AACZ,QAAA,gBAAgB,KAAK,WAAW,OAAO;AACzC,sBAAgB,WAAW,IAAI,QAAQ,KAAK,KAAK;AAAA,IACnD;AAAA,EACF;AACF;AACA,SAAS,OAAO,KAAK,cAAc,wBAAwB,OAAO;AAChE,QAAM,WAAW,mBAAmB;AACpC,MAAI,YAAY,YAAY;AAC1B,UAAM,WAAW,WAAW,SAAS,UAAU,OAAO,SAAS,MAAM,cAAc,SAAS,MAAM,WAAW,WAAW,SAAS,OAAO,WAAW,WAAW,SAAS;AACnK,QAAA,YAAY,OAAO,UAAU;AAC/B,aAAO,SAAS,GAAG;AAAA,IAAA,WACV,UAAU,SAAS,GAAG;AACxB,aAAA,yBAAyBhG,aAAW,YAAY,IAAI,aAAa,KAAK,YAAY,SAAS,KAAK,IAAI;AAAA,IAAA,OACvD;AACpD,aAAO,cAAc,OAAO,GAAG,CAAC,cAAc;AAAA,IAChD;AAAA,EAAA,OACoD;AACpD,WAAO,oEAAoE;AAAA,EAC7E;AACF;AAKA;AAAA;AAEA,SAAS,gBAAgB,SAAS,cAAc;AAC9C,SAAOA,aAAW,OAAO;AAAA;AAAA;AAAA,IAGA,uBAAA,OAAO,EAAE,MAAM,QAAQ,QAAQ,cAAc,EAAE,OAAO,QAAQ,CAAC,GAAG;AAAA,MACvF;AACN;AAEA,MAAM,cAAc,CAAC,UAAU,MAAM,KAAK;AAC1C,SAAS,YAAY,MAAM,QAAQ;AACX,wBAAA,MAAM,KAAK,MAAM;AACzC;AACA,SAAS,cAAc,MAAM,QAAQ;AACb,wBAAA,MAAM,MAAM,MAAM;AAC1C;AACA,SAAS,sBAAsB,MAAM,MAAM,SAAS,iBAAiB;AACnE,QAAM,cAAc,KAAK,UAAU,KAAK,QAAQ,MAAM;AACpD,QAAI,UAAU;AACd,WAAO,SAAS;AACd,UAAI,QAAQ,eAAe;AACzB;AAAA,MACF;AACA,gBAAU,QAAQ;AAAA,IACpB;AACA,WAAO,KAAK;AAAA,EAAA;AAEH,aAAA,MAAM,aAAa,MAAM;AACpC,MAAI,QAAQ;AACV,QAAI,UAAU,OAAO;AACd,WAAA,WAAW,QAAQ,QAAQ;AAChC,UAAI,YAAY,QAAQ,OAAO,KAAK,GAAG;AACf,8BAAA,aAAa,MAAM,QAAQ,OAAO;AAAA,MAC1D;AACA,gBAAU,QAAQ;AAAA,IACpB;AAAA,EACF;AACF;AACA,SAAS,sBAAsB,MAAM,MAAM,QAAQ,eAAe;AAChE,QAAM,WAAW;AAAA,IACf;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,EAAA;AAGF,cAAY,MAAM;AACTR,aAAA,cAAc,IAAI,GAAG,QAAQ;AAAA,KACnC,MAAM;AACX;AAEA,SAAS,WAAW,MAAM,MAAM,SAAS,iBAAiB,UAAU,OAAO;AACzE,MAAI,QAAQ;AACN,QAAA,WAAW,IAAI,GAAG;AACpB,eAAS,OAAO;AAAA,IAClB;AACA,UAAM,QAAQ,OAAO,IAAI,MAAM,OAAO,IAAI,IAAI,CAAA;AAC9C,UAAM,cAAc,KAAK,UAAU,KAAK,QAAQ,IAAI,SAAS;AAC3D,UAAI,OAAO,aAAa;AACtB;AAAA,MACF;AACc;AACR,YAAA,QAAQ,mBAAmB,MAAM;AACvC,YAAM,MAAM,2BAA2B,MAAM,QAAQ,MAAM,IAAI;AACzD;AACQ;AACP,aAAA;AAAA,IAAA;AAET,QAAI,SAAS;AACX,YAAM,QAAQ,WAAW;AAAA,IAAA,OACpB;AACL,YAAM,KAAK,WAAW;AAAA,IACxB;AACO,WAAA;AAAA,EAAA,OAC6C;AACpD,UAAM,UAAU;AAAA,OACb,iBAAiB,IAAI,KAAK,KAAK,QAAQ,OAAO,EAAE,GAAG,QAAQ,UAAU,EAAE;AAAA,IAAA;AAE1E;AAAA,MACE,GAAG,OAAO;AAAA,IAAA;AAAA,EAEd;AACF;AACA,MAAM2G,eAAa,CAAC,cAAc,CAAC,MAAM,SAAS;AAAA;AAAA,GAE/C,CAAC,yBAAyB,cAAc,SAAS,WAAW,WAAW,IAAI,SAAS,KAAK,GAAG,IAAI,GAAG,MAAM;AAAA;AAEtG,MAAA,gBAAgBA,aAAW,IAAI;AAC/B,MAAA,YAAYA,aAAW,GAAG;AAChC,MAAM,iBAAiBA,aAAW,IAAI;AACtC,MAAM,YAAYA,aAAW,GAAG;AAC1B,MAAA,kBAAkBA,aAAW,KAAK;AAClC,MAAA,cAAcA,aAAW,IAAI;AACnC,MAAM,mBAAmBA,aAAW,IAAI;AACxC,MAAM,oBAAoBA;AAAAA,EACxB;AACF;AACA,MAAM,kBAAkBA;AAAAA,EACtB;AACF;AACA,SAAS,gBAAgB,MAAM,SAAS,iBAAiB;AAC5C,aAAA,MAAM,MAAM,MAAM;AAC/B;AAcA,MAAM,oBAAoB,CAAC1G,OAAM;AAC/B,MAAI,CAACA;AACI,WAAA;AACT,MAAI,oBAAoBA,EAAC;AAChB,WAAA,eAAeA,EAAC,KAAKA,GAAE;AACzB,SAAA,kBAAkBA,GAAE,MAAM;AACnC;AACA,MAAM;AAAA;AAAA;AAAA,EAGmC,uBAAA,uBAAO,OAAO,IAAI,GAAG;AAAA,IAC1D,GAAG,CAACA,OAAMA;AAAA;AAAA;AAAA,IAGV,KAAK,CAACA,OAAMA,GAAE,UAAUA,GAAE,QAAQ;IAClC,OAAO,CAACA,OAAMA,GAAE;AAAA,IAChB,QAAQ,CAACA,OAAkD,gBAAgBA,GAAE,KAAK;AAAA,IAClF,QAAQ,CAACA,OAAkD,gBAAgBA,GAAE,KAAK;AAAA,IAClF,QAAQ,CAACA,OAAkD,gBAAgBA,GAAE,KAAK;AAAA,IAClF,OAAO,CAACA,OAAkD,gBAAgBA,GAAE,IAAI;AAAA,IAChF,SAAS,CAACA,OAAM,kBAAkBA,GAAE,MAAM;AAAA,IAC1C,OAAO,CAACA,OAAM,kBAAkBA,GAAE,IAAI;AAAA,IACtC,OAAO,CAACA,OAAMA,GAAE;AAAA,IAChB,UAAU,CAACA,OAA4B,qBAAqBA,EAAC;AAAA,IAC7D,cAAc,CAACA,OAAMA,GAAE,MAAMA,GAAE,IAAI,MAAM;AACvC,MAAAA,GAAE,OAAO,QAAQ;AACjB,eAASA,GAAE,MAAM;AAAA,IAAA;AAAA;AAAA,IAGnB,QAAQ,CAACA,OAA4B,cAAc,KAAKA,EAAC;AAAA,EAAI,CAC9D;AAAA;AAEH,MAAM,mBAAmB,CAAC,QAAQ,QAAQ,OAAO,QAAQ;AACzD,MAAM,kBAAkB,CAAC,OAAO,QAAQ,UAAU,aAAa,CAAC,MAAM,mBAAmBE,SAAO,OAAO,GAAG;AAC1G,MAAM,8BAA8B;AAAA,EAClC,IAAI,EAAE,GAAG,SAAA,GAAY,KAAK;AAClB,UAAA,EAAE,KAAK,YAAY,MAAM,OAAO,aAAa,MAAM,WAAe,IAAA;AACxE,QAAiD,QAAQ,WAAW;AAC3D,aAAA;AAAA,IACT;AACI,QAAA;AACA,QAAA,IAAI,CAAC,MAAM,KAAK;AACZkB,YAAAA,KAAI,YAAY,GAAG;AACzB,UAAIA,OAAM,QAAQ;AAChB,gBAAQA,IAAG;AAAA,UACT,KAAK;AACH,mBAAO,WAAW,GAAG;AAAA,UACvB,KAAK;AACH,mBAAO,KAAK,GAAG;AAAA,UACjB,KAAK;AACH,mBAAO,IAAI,GAAG;AAAA,UAChB,KAAK;AACH,mBAAO,MAAM,GAAG;AAAA,QACpB;AAAA,MACS,WAAA,gBAAgB,YAAY,GAAG,GAAG;AAC3C,oBAAY,GAAG,IAAI;AACnB,eAAO,WAAW,GAAG;AAAA,MAAA,WACZ,SAAS,aAAalB,SAAO,MAAM,GAAG,GAAG;AAClD,oBAAY,GAAG,IAAI;AACnB,eAAO,KAAK,GAAG;AAAA,MAAA;AAAA;AAAA;AAAA,SAId,kBAAkB,SAAS,aAAa,CAAC,MAAMA,SAAO,iBAAiB,GAAG;AAAA,QAC3E;AACA,oBAAY,GAAG,IAAI;AACnB,eAAO,MAAM,GAAG;AAAA,MAAA,WACP,QAAQ,aAAaA,SAAO,KAAK,GAAG,GAAG;AAChD,oBAAY,GAAG,IAAI;AACnB,eAAO,IAAI,GAAG;AAAA,iBACmB,mBAAmB;AACpD,oBAAY,GAAG,IAAI;AAAA,MACrB;AAAA,IACF;AACM,UAAA,eAAe,oBAAoB,GAAG;AAC5C,QAAI,WAAW;AACf,QAAI,cAAc;AAChB,UAAI,QAAQ,UAAU;AACd,cAAA,UAAU,OAAO,GAAG;AAAA,MACqC,WACT,QAAQ,UAAU;AAClE,cAAA,UAAU,OAAO,GAAG;AAAA,MAC5B;AACA,aAAO,aAAa,QAAQ;AAAA,IAAA;AAAA;AAAA,OAG3B,YAAY,KAAK,kBAAkB,YAAY,UAAU,GAAG;AAAA,MAC7D;AACO,aAAA;AAAA,IAAA,WACE,QAAQ,aAAaA,SAAO,KAAK,GAAG,GAAG;AAChD,kBAAY,GAAG,IAAI;AACnB,aAAO,IAAI,GAAG;AAAA,IAAA;AAAA;AAAA,MAGd,mBAAmB,WAAW,OAAO,kBAAkBA,SAAO,kBAAkB,GAAG;AAAA,MACnF;AACA;AACE,eAAO,iBAAiB,GAAG;AAAA,MAC7B;AAAA,IACsD,WAAA,6BAA6B,CAACM,WAAS,GAAG;AAAA;AAAA,IAElG,IAAI,QAAQ,KAAK,MAAM,IAAI;AACrB,UAAA,SAAS,aAAa,iBAAiB,IAAI,CAAC,CAAC,KAAKN,SAAO,MAAM,GAAG,GAAG;AACvE;AAAA,UACE,YAAY,KAAK;AAAA,YACf;AAAA,UACD,CAAA;AAAA,QAAA;AAAA,MACH,WACS,aAAa,0BAA0B;AAChD;AAAA,UACE,YAAY,KAAK,UAAU,GAAG,CAAC;AAAA,QAAA;AAAA,MAEnC;AAAA,IACF;AAAA,EACF;AAAA,EACA,IAAI,EAAE,GAAG,SAAS,GAAG,KAAK,OAAO;AAC/B,UAAM,EAAE,MAAM,YAAY,IAAA,IAAQ;AAC9B,QAAA,gBAAgB,YAAY,GAAG,GAAG;AACpC,iBAAW,GAAG,IAAI;AACX,aAAA;AAAA,IAAA,WAC+C,WAAW,mBAAmBA,SAAO,YAAY,GAAG,GAAG;AACtG,aAAA,yCAAyC,GAAG,qBAAqB;AACjE,aAAA;AAAA,IAAA,WACE,SAAS,aAAaA,SAAO,MAAM,GAAG,GAAG;AAClD,WAAK,GAAG,IAAI;AACL,aAAA;AAAA,IACE,WAAAA,SAAO,SAAS,OAAO,GAAG,GAAG;AACO,aAAO,8BAA8B,GAAG,wBAAwB;AACtG,aAAA;AAAA,IACT;AACI,QAAA,IAAI,CAAC,MAAM,OAAO,IAAI,MAAM,CAAC,KAAK,UAAU;AACD;AAAA,QAC3C,yCAAyC,GAAG;AAAA,MAAA;AAEvC,aAAA;AAAA,IAAA,OACF;AACL,UAAiD,OAAO,SAAS,WAAW,OAAO,kBAAkB;AAC5F,eAAA,eAAe,KAAK,KAAK;AAAA,UAC9B,YAAY;AAAA,UACZ,cAAc;AAAA,UACd;AAAA,QAAA,CACD;AAAA,MAAA,OACI;AACL,YAAI,GAAG,IAAI;AAAA,MACb;AAAA,IACF;AACO,WAAA;AAAA,EACT;AAAA,EACA,IAAI;AAAA,IACF,GAAG,EAAE,MAAM,YAAY,aAAa,KAAK,YAAY,aAAa;AAAA,KACjE,KAAK;AACF,QAAA;AACJ,WAAO,CAAC,CAAC,YAAY,GAAG,KAAK,SAAS,aAAaA,SAAO,MAAM,GAAG,KAAK,gBAAgB,YAAY,GAAG,MAAM,kBAAkB,aAAa,CAAC,MAAMA,SAAO,iBAAiB,GAAG,KAAKA,SAAO,KAAK,GAAG,KAAKA,SAAO,qBAAqB,GAAG,KAAKA,SAAO,WAAW,OAAO,kBAAkB,GAAG;AAAA,EAC3R;AAAA,EACA,eAAe,QAAQ,KAAK,YAAY;AAClC,QAAA,WAAW,OAAO,MAAM;AACnB,aAAA,EAAE,YAAY,GAAG,IAAI;AAAA,IACnB,WAAAA,SAAO,YAAY,OAAO,GAAG;AACtC,WAAK,IAAI,QAAQ,KAAK,WAAW,OAAO,IAAI;AAAA,IAC9C;AACA,WAAO,QAAQ,eAAe,QAAQ,KAAK,UAAU;AAAA,EACvD;AACF;AACuD;AACzB,8BAAA,UAAU,CAAC,WAAW;AAChD;AAAA,MACE;AAAA,IAAA;AAEK,WAAA,QAAQ,QAAQ,MAAM;AAAA,EAAA;AAEjC;AACA,SAAS,uBAAuB,UAAU;AACxC,QAAM,SAAS,CAAA;AACR,SAAA,eAAe,QAAQ,KAAK;AAAA,IACjC,cAAc;AAAA,IACd,YAAY;AAAA,IACZ,KAAK,MAAM;AAAA,EAAA,CACZ;AACD,SAAO,KAAK,mBAAmB,EAAE,QAAQ,CAAC,QAAQ;AACzC,WAAA,eAAe,QAAQ,KAAK;AAAA,MACjC,cAAc;AAAA,MACd,YAAY;AAAA,MACZ,KAAK,MAAM,oBAAoB,GAAG,EAAE,QAAQ;AAAA;AAAA;AAAA,MAG5C,KAAK;AAAA,IAAA,CACN;AAAA,EAAA,CACF;AACM,SAAA;AACT;AACA,SAAS,2BAA2B,UAAU;AACtC,QAAA;AAAA,IACJ;AAAA,IACA,cAAc,CAAC,YAAY;AAAA,EACzB,IAAA;AACJ,MAAI,cAAc;AAChB,WAAO,KAAK,YAAY,EAAE,QAAQ,CAAC,QAAQ;AAClC,aAAA,eAAe,KAAK,KAAK;AAAA,QAC9B,YAAY;AAAA,QACZ,cAAc;AAAA,QACd,KAAK,MAAM,SAAS,MAAM,GAAG;AAAA,QAC7B,KAAK;AAAA,MAAA,CACN;AAAA,IAAA,CACF;AAAA,EACH;AACF;AACA,SAAS,gCAAgC,UAAU;AAC3C,QAAA,EAAE,KAAK,WAAe,IAAA;AAC5B,SAAO,KAAK,MAAM,UAAU,CAAC,EAAE,QAAQ,CAAC,QAAQ;AAC1C,QAAA,CAAC,WAAW,iBAAiB;AAC/B,UAAI,iBAAiB,IAAI,CAAC,CAAC,GAAG;AAC5B;AAAA,UACE,2BAA2B,KAAK;AAAA,YAC9B;AAAA,UACD,CAAA;AAAA,QAAA;AAEH;AAAA,MACF;AACO,aAAA,eAAe,KAAK,KAAK;AAAA,QAC9B,YAAY;AAAA,QACZ,cAAc;AAAA,QACd,KAAK,MAAM,WAAW,GAAG;AAAA,QACzB,KAAK;AAAA,MAAA,CACN;AAAA,IACH;AAAA,EAAA,CACD;AACH;AAyCA,SAAS,sBAAsB,OAAO;AAC7B,SAAAC,UAAQ,KAAK,IAAI,MAAM;AAAA,IAC5B,CAAC,YAAY+F,QAAO,WAAWA,EAAC,IAAI,MAAM;AAAA,IAC1C,CAAC;AAAA,EACC,IAAA;AACN;AA0CA,SAAS,yBAAyB;AAC1B,QAAApF,SAA+B,uBAAA,OAAO,IAAI;AACzC,SAAA,CAAC,MAAM,QAAQ;AAChB,QAAAA,OAAM,GAAG,GAAG;AACP,aAAA,GAAG,IAAI,cAAc,GAAG,2BAA2BA,OAAM,GAAG,CAAC,GAAG;AAAA,IAAA,OAClE;AACL,MAAAA,OAAM,GAAG,IAAI;AAAA,IACf;AAAA,EAAA;AAEJ;AACA,IAAI,oBAAoB;AACxB,SAAS,eAAe,UAAU;AAC1B,QAAA,UAAU,qBAAqB,QAAQ;AAC7C,QAAM,aAAa,SAAS;AAC5B,QAAM,MAAM,SAAS;AACD,sBAAA;AACpB,MAAI,QAAQ,cAAc;AACf6F,eAAA,QAAQ,cAAc,UAAU,IAAI;AAAA,EAC/C;AACM,QAAA;AAAA;AAAA,IAEJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV;AAAA,IACA,OAAO;AAAA,IACP,SAAS;AAAA,IACT,QAAQ;AAAA;AAAA,IAER;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IAEA;AAAA,IACA;AAAA;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA,EACE,IAAA;AACE,QAAA,2BAAuE,uBAAA;AAC9B;AACvC,UAAA,CAAC,YAAY,IAAI,SAAS;AAChC,QAAI,cAAc;AAChB,iBAAW,OAAO,cAAc;AAC9B,iCAAyB,SAAqB,GAAG;AAAA,MACnD;AAAA,IACF;AAAA,EACF;AACA,MAAiC,eAAe;AAC5B,sBAAA,eAAe,KAAK,wBAAwB;AAAA,EAChE;AACA,MAAI,SAAS;AACX,eAAW,OAAO,SAAS;AACnB,YAAA,gBAAgB,QAAQ,GAAG;AAC7B,UAAApG,aAAW,aAAa,GAAG;AACkB;AACtC,iBAAA,eAAe,KAAK,KAAK;AAAA,YAC9B,OAAO,cAAc,KAAK,UAAU;AAAA,YACpC,cAAc;AAAA,YACd,YAAY;AAAA,YACZ,UAAU;AAAA,UAAA,CACX;AAAA,QAGH;AAC+C;AAC7C,mCAAyB,WAAyB,GAAG;AAAA,QACvD;AAAA,MAAA,OACoD;AACpD;AAAA,UACE,WAAW,GAAG,eAAe,OAAO,aAAa;AAAA,QAAA;AAAA,MAErD;AAAA,IACF;AAAA,EACF;AACA,MAAI,aAAa;AACkC,QAAA,CAACA,aAAW,WAAW,GAAG;AACzE;AAAA,QACE;AAAA,MAAA;AAAA,IAEJ;AACA,UAAM,OAAO,YAAY,KAAK,YAAY,UAAU;AACH,QAAAI,YAAU,IAAI,GAAG;AAChE;AAAA,QACE;AAAA,MAAA;AAAA,IAEJ;AACI,QAAA,CAACD,WAAS,IAAI,GAAG;AAC0B,aAAO,iCAAiC;AAAA,IAAA,OAChF;AACI,eAAA,OAAO,SAAS,IAAI;AACkB;AAC7C,mBAAW,OAAO,MAAM;AACtB,mCAAyB,QAAmB,GAAG;AAC/C,cAAI,CAAC,iBAAiB,IAAI,CAAC,CAAC,GAAG;AACtB,mBAAA,eAAe,KAAK,KAAK;AAAA,cAC9B,cAAc;AAAA,cACd,YAAY;AAAA,cACZ,KAAK,MAAM,KAAK,GAAG;AAAA,cACnB,KAAK;AAAA,YAAA,CACN;AAAA,UACH;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACoB,sBAAA;AACpB,MAAI,iBAAiB;AACnB,eAAW,OAAO,iBAAiB;AAC3B,YAAA,MAAM,gBAAgB,GAAG;AAC/B,YAAM+E,OAAMlF,aAAW,GAAG,IAAI,IAAI,KAAK,YAAY,UAAU,IAAIA,aAAW,IAAI,GAAG,IAAI,IAAI,IAAI,KAAK,YAAY,UAAU,IAAI;AAC9H,UAAiDkF,SAAQ,MAAM;AACtD,eAAA,sBAAsB,GAAG,kBAAkB;AAAA,MACpD;AACA,YAAM3F,OAAM,CAACS,aAAW,GAAG,KAAKA,aAAW,IAAI,GAAG,IAAI,IAAI,IAAI,KAAK,UAAU,IAAgD,MAAM;AACjI;AAAA,UACE,8CAA8C,GAAG;AAAA,QAAA;AAAA,MACnD;AAEF,YAAMS,KAAI,SAAS;AAAA,QACjB,KAAAyE;AAAAA,QACA,KAAA3F;AAAAA,MAAA,CACD;AACM,aAAA,eAAe,KAAK,KAAK;AAAA,QAC9B,YAAY;AAAA,QACZ,cAAc;AAAA,QACd,KAAK,MAAMkB,GAAE;AAAA,QACb,KAAK,CAACQ,OAAMR,GAAE,QAAQQ;AAAA,MAAA,CACvB;AAC8C;AAC7C,iCAAyB,YAA2B,GAAG;AAAA,MACzD;AAAA,IACF;AAAA,EACF;AACA,MAAI,cAAc;AAChB,eAAW,OAAO,cAAc;AAC9B,oBAAc,aAAa,GAAG,GAAG,KAAK,YAAY,GAAG;AAAA,IACvD;AAAA,EACF;AAC+B;AAC7B,QAAI,gBAAgB;AAClB,YAAM,WAAWjB,aAAW,cAAc,IAAI,eAAe,KAAK,UAAU,IAAI;AAChF,cAAQ,QAAQ,QAAQ,EAAE,QAAQ,CAAC,QAAQ;AACjC,gBAAA,KAAK,SAAS,GAAG,CAAC;AAAA,MAAA,CAC3B;AAAA,IACH;AAAA,EACF;AAOO;AACL,QAAI,SAAS;AACFoG,iBAAA,SAAS,UAAU,GAAG;AAAA,IACjC;AAAA,EACF;AACS,WAAA,sBAAsB,UAAU,MAAM;AACzC,QAAAxG,UAAQ,IAAI,GAAG;AACZ,WAAA,QAAQ,CAAC,UAAU,SAAS,MAAM,KAAK,UAAU,CAAC,CAAC;AAAA,eAC/C,MAAM;AACN,eAAA,KAAK,KAAK,UAAU,CAAC;AAAA,IAChC;AAAA,EACF;AACA,wBAAsB,eAAe,WAAW;AAChD,wBAAsB,WAAW,OAAO;AACxC,wBAAsB,gBAAgB,YAAY;AAClD,wBAAsB,WAAW,OAAO;AACxC,wBAAsB,aAAa,SAAS;AAC5C,wBAAsB,eAAe,WAAW;AAChD,wBAAsB,iBAAiB,aAAa;AACpD,wBAAsB,iBAAiB,aAAa;AACpD,wBAAsB,mBAAmB,eAAe;AACxD,wBAAsB,iBAAiB,aAAa;AACpD,wBAAsB,aAAa,SAAS;AAC5C,wBAAsB,kBAAkB,cAAc;AAClD,MAAAA,UAAQ,MAAM,GAAG;AACnB,QAAI,OAAO,QAAQ;AACjB,YAAM,UAAU,SAAS,YAAY,SAAS,UAAU,CAAA;AACjD,aAAA,QAAQ,CAAC,QAAQ;AACf,eAAA,eAAe,SAAS,KAAK;AAAA,UAClC,KAAK,MAAM,WAAW,GAAG;AAAA,UACzB,KAAK,CAAC,QAAQ,WAAW,GAAG,IAAI;AAAA,QAAA,CACjC;AAAA,MAAA,CACF;AAAA,IAAA,WACQ,CAAC,SAAS,SAAS;AAC5B,eAAS,UAAU;IACrB;AAAA,EACF;AACI,MAAA,UAAU,SAAS,WAAW,MAAM;AACtC,aAAS,SAAS;AAAA,EACpB;AACA,MAAI,gBAAgB,MAAM;AACxB,aAAS,eAAe;AAAA,EAC1B;AACI,MAAA;AACF,aAAS,aAAa;AACpB,MAAA;AACF,aAAS,aAAa;AACpB,MAAA,SAAS,IAAI,iBAAiB;AAChC,aAAS,IAAI,gBAAgB,SAAS,UAAU,UAAU;AAAA,EAC5D;AACF;AACA,SAAS,kBAAkB,eAAe,KAAK,2BAA2B,MAAM;AAC1E,MAAAA,UAAQ,aAAa,GAAG;AAC1B,oBAAgB,gBAAgB,aAAa;AAAA,EAC/C;AACA,aAAW,OAAO,eAAe;AACzB,UAAA,MAAM,cAAc,GAAG;AACzB,QAAA;AACA,QAAAO,WAAS,GAAG,GAAG;AACjB,UAAI,aAAa,KAAK;AACT,mBAAA;AAAA,UACT,IAAI,QAAQ;AAAA,UACZ,IAAI;AAAA,UACJ;AAAA,QAAA;AAAA,MACF,OACK;AACM,mBAAA,OAAO,IAAI,QAAQ,GAAG;AAAA,MACnC;AAAA,IAAA,OACK;AACL,iBAAW,OAAO,GAAG;AAAA,IACvB;AACI,QAAA,MAAM,QAAQ,GAAG;AACZ,aAAA,eAAe,KAAK,KAAK;AAAA,QAC9B,YAAY;AAAA,QACZ,cAAc;AAAA,QACd,KAAK,MAAM,SAAS;AAAA,QACpB,KAAK,CAACc,OAAM,SAAS,QAAQA;AAAA,MAAA,CAC9B;AAAA,IAAA,OACI;AACL,UAAI,GAAG,IAAI;AAAA,IACb;AAC+C;AAC7C,+BAAyB,UAAuB,GAAG;AAAA,IACrD;AAAA,EACF;AACF;AACA,SAASmF,WAAS,MAAM,UAAU,MAAM;AACtC;AAAA,IACExG,UAAQ,IAAI,IAAI,KAAK,IAAI,CAACyG,OAAMA,GAAE,KAAK,SAAS,KAAK,CAAC,IAAI,KAAK,KAAK,SAAS,KAAK;AAAA,IAClF;AAAA,IACA;AAAA,EAAA;AAEJ;AACA,SAAS,cAAc,KAAK,KAAK,YAAY,KAAK;AAC1C,QAAA,SAAS,IAAI,SAAS,GAAG,IAAI,iBAAiB,YAAY,GAAG,IAAI,MAAM,WAAW,GAAG;AACvF,MAAApG,WAAS,GAAG,GAAG;AACX,UAAA,UAAU,IAAI,GAAG;AACnB,QAAAD,aAAW,OAAO,GAAG;AACvB,YAAM,QAAQ,OAAO;AAAA,IAAA,OAC+B;AAC7C,aAAA,2CAA2C,GAAG,KAAK,OAAO;AAAA,IACnE;AAAA,EAAA,WACSA,aAAW,GAAG,GAAG;AAC1B,UAAM,QAAQ,IAAI,KAAK,UAAU,CAAC;AAAA,EAAA,WACzBG,WAAS,GAAG,GAAG;AACpB,QAAAP,UAAQ,GAAG,GAAG;AACZ,UAAA,QAAQ,CAACoE,OAAM,cAAcA,IAAG,KAAK,YAAY,GAAG,CAAC;AAAA,IAAA,OACpD;AACL,YAAM,UAAUhE,aAAW,IAAI,OAAO,IAAI,IAAI,QAAQ,KAAK,UAAU,IAAI,IAAI,IAAI,OAAO;AACpF,UAAAA,aAAW,OAAO,GAAG;AACjB,cAAA,QAAQ,SAAS,GAAG;AAAA,MAAA,OAC0B;AACpD,eAAO,2CAA2C,IAAI,OAAO,KAAK,OAAO;AAAA,MAC3E;AAAA,IACF;AAAA,EAAA,OACoD;AAC7C,WAAA,0BAA0B,GAAG,KAAK,GAAG;AAAA,EAC9C;AACF;AACA,SAAS,qBAAqB,UAAU;AACtC,QAAM,OAAO,SAAS;AACtB,QAAM,EAAE,QAAQ,SAAS,eAAA,IAAmB;AACtC,QAAA;AAAA,IACJ,QAAQ;AAAA,IACR,cAAcO;AAAA,IACd,QAAQ,EAAE,sBAAsB;AAAA,EAAA,IAC9B,SAAS;AACP,QAAA,SAASA,OAAM,IAAI,IAAI;AACzB,MAAA;AACJ,MAAI,QAAQ;AACC,eAAA;AAAA,EAAA,WACF,CAAC,aAAa,UAAU,CAAC,UAAU,CAAC,gBAAgB;AAC7D;AACa,iBAAA;AAAA,IACb;AAAA,EAAA,OACK;AACL,eAAW,CAAA;AACX,QAAI,aAAa,QAAQ;AACV,mBAAA;AAAA,QACX,CAAC+F,OAAM,aAAa,UAAUA,IAAG,uBAAuB,IAAI;AAAA,MAAA;AAAA,IAEhE;AACa,iBAAA,UAAU,MAAM,qBAAqB;AAAA,EACpD;AACI,MAAAnG,WAAS,IAAI,GAAG;AACZ,IAAAI,OAAA,IAAI,MAAM,QAAQ;AAAA,EAC1B;AACO,SAAA;AACT;AACA,SAAS,aAAa,IAAI,MAAM,QAAQ,UAAU,OAAO;AACvD,QAAM,EAAE,QAAQ,SAAS,eAAA,IAAmB;AAC5C,MAAI,gBAAgB;AACL,iBAAA,IAAI,gBAAgB,QAAQ,IAAI;AAAA,EAC/C;AACA,MAAI,QAAQ;AACH,WAAA;AAAA,MACL,CAAC+F,OAAM,aAAa,IAAIA,IAAG,QAAQ,IAAI;AAAA,IAAA;AAAA,EAE3C;AACA,aAAW,OAAO,MAAM;AAClB,QAAA,WAAW,QAAQ,UAAU;AACc;AAAA,QAC3C;AAAA,MAAA;AAAA,IACF,OACK;AACL,YAAM,QAAQ,0BAA0B,GAAG,KAAK,UAAU,OAAO,GAAG;AACpE,SAAG,GAAG,IAAI,QAAQ,MAAM,GAAG,GAAG,GAAG,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG;AAAA,IACxD;AAAA,EACF;AACO,SAAA;AACT;AACA,MAAM,4BAA4B;AAAA,EAChC,MAAM;AAAA,EACN,OAAO;AAAA,EACP,OAAO;AAAA;AAAA,EAEP,SAAS;AAAA,EACT,UAAU;AAAA;AAAA,EAEV,cAAc;AAAA,EACd,SAAS;AAAA,EACT,aAAa;AAAA,EACb,SAAS;AAAA,EACT,cAAc;AAAA,EACd,SAAS;AAAA,EACT,eAAe;AAAA,EACf,eAAe;AAAA,EACf,WAAW;AAAA,EACX,WAAW;AAAA,EACX,WAAW;AAAA,EACX,aAAa;AAAA,EACb,eAAe;AAAA,EACf,gBAAgB;AAAA;AAAA,EAEhB,YAAY;AAAA,EACZ,YAAY;AAAA;AAAA,EAEZ,OAAO;AAAA;AAAA,EAEP,SAAS;AAAA,EACT,QAAQ;AACV;AACA,SAAS,YAAY,IAAI,MAAM;AAC7B,MAAI,CAAC,MAAM;AACF,WAAA;AAAA,EACT;AACA,MAAI,CAAC,IAAI;AACA,WAAA;AAAA,EACT;AACA,SAAO,SAAS,eAAe;AACrB,WAAA;AAAA,MACNtG,aAAW,EAAE,IAAI,GAAG,KAAK,MAAM,IAAI,IAAI;AAAA,MACvCA,aAAW,IAAI,IAAI,KAAK,KAAK,MAAM,IAAI,IAAI;AAAA,IAAA;AAAA,EAC7C;AAEJ;AACA,SAAS,YAAY,IAAI,MAAM;AAC7B,SAAO,mBAAmB,gBAAgB,EAAE,GAAG,gBAAgB,IAAI,CAAC;AACtE;AACA,SAAS,gBAAgB,KAAK;AACxB,MAAAJ,UAAQ,GAAG,GAAG;AAChB,UAAM,MAAM,CAAA;AACZ,aAASH,KAAI,GAAGA,KAAI,IAAI,QAAQA,MAAK;AACnC,UAAI,IAAIA,EAAC,CAAC,IAAI,IAAIA,EAAC;AAAA,IACrB;AACO,WAAA;AAAA,EACT;AACO,SAAA;AACT;AACA,SAAS,eAAe,IAAI,MAAM;AAChC,SAAO,KAAK,CAAC,GAAG,IAAI,IAAI,CAAG,EAAA,OAAO,IAAI,IAAI,CAAC,CAAC,IAAI;AAClD;AACA,SAAS,mBAAmB,IAAI,MAAM;AAC7B,SAAA,KAAK,OAA8B,uBAAA,OAAO,IAAI,GAAG,IAAI,IAAI,IAAI;AACtE;AACA,SAAS,yBAAyB,IAAI,MAAM;AAC1C,MAAI,IAAI;AACN,QAAIG,UAAQ,EAAE,KAAKA,UAAQ,IAAI,GAAG;AACzB,aAAA,CAAC,GAAmB,oBAAI,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC;AAAA,IACtD;AACO,WAAA;AAAA,MACW,uBAAO,OAAO,IAAI;AAAA,MAClC,sBAAsB,EAAE;AAAA,MACxB,sBAAsB,QAAQ,OAAO,OAAO,CAAA,CAAE;AAAA,IAAA;AAAA,EAChD,OACK;AACE,WAAA;AAAA,EACT;AACF;AACA,SAAS,kBAAkB,IAAI,MAAM;AACnC,MAAI,CAAC;AACI,WAAA;AACT,MAAI,CAAC;AACI,WAAA;AACT,QAAM,SAAS,OAAuB,uBAAO,OAAO,IAAI,GAAG,EAAE;AAC7D,aAAW,OAAO,MAAM;AACf,WAAA,GAAG,IAAI,eAAe,GAAG,GAAG,GAAG,KAAK,GAAG,CAAC;AAAA,EACjD;AACO,SAAA;AACT;AAEA,SAAS2G,YAAU,UAAU,UAAU,YAAY,QAAQ,OAAO;AAChE,QAAM,QAAQ,CAAA;AACd,QAAM,QAAQ,CAAA;AACL,WAAA,gBAAuC,uBAAA,OAAO,IAAI;AAC9C,eAAA,UAAU,UAAU,OAAO,KAAK;AAC7C,aAAW,OAAO,SAAS,aAAa,CAAC,GAAG;AACtC,QAAA,EAAE,OAAO,QAAQ;AACnB,YAAM,GAAG,IAAI;AAAA,IACf;AAAA,EACF;AAC+C;AAC7C,kBAAc,YAAY,CAAA,GAAI,OAAO,QAAQ;AAAA,EAC/C;AACA,MAAI,YAAY;AACd,aAAS,QAAQ,QAAQ,QAAQ,gBAAgB,KAAK;AAAA,EAAA,OACjD;AACD,QAAA,CAAC,SAAS,KAAK,OAAO;AACxB,eAAS,QAAQ;AAAA,IAAA,OACZ;AACL,eAAS,QAAQ;AAAA,IACnB;AAAA,EACF;AACA,WAAS,QAAQ;AACnB;AACA,SAAS,eAAe,UAAU;AAChC,SAAO,UAAU;AACf,QAAI,SAAS,KAAK;AACT,aAAA;AACT,eAAW,SAAS;AAAA,EACtB;AACF;AACA,SAAS,YAAY,UAAU,UAAU,cAAc,WAAW;AAC1D,QAAA;AAAA,IACJ;AAAA,IACA;AAAA,IACA,OAAO,EAAE,UAAU;AAAA,EACjB,IAAA;AACE,QAAA,kBAAkB,MAAM,KAAK;AAC7B,QAAA,CAAC,OAAO,IAAI,SAAS;AAC3B,MAAI,kBAAkB;AACtB;AAAA;AAAA;AAAA;AAAA,IAIE,CAA+C,eAAe,QAAQ,KAAoB,YAAY,KAAM,EAAE,YAAY;AAAA,IAC1H;AACA,QAAI,YAAY,GAAG;AACX,YAAA,gBAAgB,SAAS,MAAM;AACrC,eAAS9G,KAAI,GAAGA,KAAI,cAAc,QAAQA,MAAK;AACzC,YAAA,MAAM,cAAcA,EAAC;AACzB,YAAI,eAAe,SAAS,cAAc,GAAG,GAAG;AAC9C;AAAA,QACF;AACM,cAAA,QAAQ,SAAS,GAAG;AAC1B,YAAI,SAAS;AACP,cAAAE,SAAO,OAAO,GAAG,GAAG;AAClB,gBAAA,UAAU,MAAM,GAAG,GAAG;AACxB,oBAAM,GAAG,IAAI;AACK,gCAAA;AAAA,YACpB;AAAA,UAAA,OACK;AACC,kBAAA,eAAe,SAAS,GAAG;AACjC,kBAAM,YAAY,IAAI;AAAA,cACpB;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YAAA;AAAA,UAEJ;AAAA,QAAA,OACK;AACD,cAAA,UAAU,MAAM,GAAG,GAAG;AACxB,kBAAM,GAAG,IAAI;AACK,8BAAA;AAAA,UACpB;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EAAA,OACK;AACL,QAAI,aAAa,UAAU,UAAU,OAAO,KAAK,GAAG;AAChC,wBAAA;AAAA,IACpB;AACI,QAAA;AACJ,eAAW,OAAO,iBAAiB;AACjC,UAAI,CAAC;AAAA,MACL,CAACA,SAAO,UAAU,GAAG;AAAA;AAAA,QAEnB,WAAW,UAAU,GAAG,OAAO,OAAO,CAACA,SAAO,UAAU,QAAQ,IAAI;AACpE,YAAI,SAAS;AACP,cAAA;AAAA,WACH,aAAa,GAAG,MAAM;AAAA,UACvB,aAAa,QAAQ,MAAM,SAAS;AAClC,kBAAM,GAAG,IAAI;AAAA,cACX;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YAAA;AAAA,UAEJ;AAAA,QAAA,OACK;AACL,iBAAO,MAAM,GAAG;AAAA,QAClB;AAAA,MACF;AAAA,IACF;AACA,QAAI,UAAU,iBAAiB;AAC7B,iBAAW,OAAO,OAAO;AACvB,YAAI,CAAC,YAAY,CAACA,SAAO,UAAU,GAAG,KAAK,MAAM;AAC/C,iBAAO,MAAM,GAAG;AACE,4BAAA;AAAA,QACpB;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACA,MAAI,iBAAiB;AACX,YAAA,UAAU,OAAO,QAAQ;AAAA,EACnC;AAC+C;AAC7C,kBAAc,YAAY,CAAA,GAAI,OAAO,QAAQ;AAAA,EAC/C;AACF;AACA,SAAS,aAAa,UAAU,UAAU,OAAO,OAAO;AACtD,QAAM,CAAC,SAAS,YAAY,IAAI,SAAS;AACzC,MAAI,kBAAkB;AAClB,MAAA;AACJ,MAAI,UAAU;AACZ,aAAS,OAAO,UAAU;AACpB,UAAA,eAAe,GAAG,GAAG;AACvB;AAAA,MACF;AACM,YAAA,QAAQ,SAAS,GAAG;AACtB,UAAA;AACJ,UAAI,WAAWA,SAAO,SAAS,WAAW,SAAS,GAAG,CAAC,GAAG;AACxD,YAAI,CAAC,gBAAgB,CAAC,aAAa,SAAS,QAAQ,GAAG;AACrD,gBAAM,QAAQ,IAAI;AAAA,QAAA,OACb;AACL,WAAC,kBAAkB,gBAAgB,CAAA,IAAK,QAAQ,IAAI;AAAA,QACtD;AAAA,iBACS,CAAC,eAAe,SAAS,cAAc,GAAG,GAAG;AACtD,YAAI,EAAE,OAAO,UAAU,UAAU,MAAM,GAAG,GAAG;AAC3C,gBAAM,GAAG,IAAI;AACK,4BAAA;AAAA,QACpB;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACA,MAAI,cAAc;AACV,UAAA,kBAAkB,MAAM,KAAK;AACnC,UAAM,aAAa,iBAAiB;AACpC,aAASF,KAAI,GAAGA,KAAI,aAAa,QAAQA,MAAK;AACtC,YAAA,MAAM,aAAaA,EAAC;AAC1B,YAAM,GAAG,IAAI;AAAA,QACX;AAAA,QACA;AAAA,QACA;AAAA,QACA,WAAW,GAAG;AAAA,QACd;AAAA,QACA,CAACE,SAAO,YAAY,GAAG;AAAA,MAAA;AAAA,IAE3B;AAAA,EACF;AACO,SAAA;AACT;AACA,SAAS,iBAAiB,SAAS,OAAO,KAAK,OAAO,UAAU,UAAU;AAClE,QAAA,MAAM,QAAQ,GAAG;AACvB,MAAI,OAAO,MAAM;AACT,UAAA,aAAaA,SAAO,KAAK,SAAS;AACpC,QAAA,cAAc,UAAU,QAAQ;AAClC,YAAM,eAAe,IAAI;AACrB,UAAA,IAAI,SAAS,YAAY,CAAC,IAAI,eAAeK,aAAW,YAAY,GAAG;AACnE,cAAA,EAAE,cAAkB,IAAA;AAC1B,YAAI,OAAO,eAAe;AACxB,kBAAQ,cAAc,GAAG;AAAA,QAAA,OACpB;AACC,gBAAA,QAAQ,mBAAmB,QAAQ;AACjC,kBAAA,cAAc,GAAG,IAAI,aAAa;AAAA,YACxC;AAAA,YACA;AAAA,UAAA;AAEI;QACR;AAAA,MAAA,OACK;AACG,gBAAA;AAAA,MACV;AAAA,IACF;AACI,QAAA;AAAA,MAAI;AAAA;AAAA,IAAA,GAAqB;AACvB,UAAA,YAAY,CAAC,YAAY;AACnB,gBAAA;AAAA,MACC,WAAA;AAAA,QAAI;AAAA;AAAA,MAAA,MAA4B,UAAU,MAAM,UAAU,UAAU,GAAG,IAAI;AAC5E,gBAAA;AAAA,MACV;AAAA,IACF;AAAA,EACF;AACO,SAAA;AACT;AACA,SAAS,sBAAsB,MAAM,YAAY,UAAU,OAAO;AAChE,QAAMO,SAAQ,WAAW;AACnB,QAAA,SAASA,OAAM,IAAI,IAAI;AAC7B,MAAI,QAAQ;AACH,WAAA;AAAA,EACT;AACA,QAAM,MAAM,KAAK;AACjB,QAAM,aAAa,CAAA;AACnB,QAAM,eAAe,CAAA;AACrB,MAAI,aAAa;AACU,MAAA,CAACP,aAAW,IAAI,GAAG;AACtC,UAAA,cAAc,CAAC,SAAS;AACf,mBAAA;AACb,YAAM,CAAC,OAAOmE,KAAI,IAAI,sBAAsB,MAAM,YAAY,IAAI;AAClE,aAAO,YAAY,KAAK;AACpB,UAAAA;AACW,qBAAA,KAAK,GAAGA,KAAI;AAAA,IAAA;AAE7B,QAAI,CAAC,WAAW,WAAW,OAAO,QAAQ;AAC7B,iBAAA,OAAO,QAAQ,WAAW;AAAA,IACvC;AACA,QAAI,KAAK,SAAS;AAChB,kBAAY,KAAK,OAAO;AAAA,IAC1B;AACA,QAAI,KAAK,QAAQ;AACV,WAAA,OAAO,QAAQ,WAAW;AAAA,IACjC;AAAA,EACF;AACI,MAAA,CAAC,OAAO,CAAC,YAAY;AACnB,QAAAhE,WAAS,IAAI,GAAG;AACZ,MAAAI,OAAA,IAAI,MAAM,SAAS;AAAA,IAC3B;AACO,WAAA;AAAA,EACT;AACI,MAAAX,UAAQ,GAAG,GAAG;AAChB,aAASH,KAAI,GAAGA,KAAI,IAAI,QAAQA,MAAK;AACnC,UAAiD,CAACQ,WAAS,IAAIR,EAAC,CAAC,GAAG;AAC3D,eAAA,kDAAkD,IAAIA,EAAC,CAAC;AAAA,MACjE;AACA,YAAM,gBAAgB,SAAS,IAAIA,EAAC,CAAC;AACjC,UAAA,iBAAiB,aAAa,GAAG;AACnC,mBAAW,aAAa,IAAI;AAAA,MAC9B;AAAA,IACF;AAAA,aACS,KAAK;AACmC,QAAA,CAACU,WAAS,GAAG,GAAG;AAC/D,aAAO,yBAAyB,GAAG;AAAA,IACrC;AACA,eAAW,OAAO,KAAK;AACf,YAAA,gBAAgB,SAAS,GAAG;AAC9B,UAAA,iBAAiB,aAAa,GAAG;AAC7B,cAAA,MAAM,IAAI,GAAG;AACnB,cAAM,OAAO,WAAW,aAAa,IAAIP,UAAQ,GAAG,KAAKI,aAAW,GAAG,IAAI,EAAE,MAAM,IAAA,IAAQ,OAAO,CAAA,GAAI,GAAG;AACzG,YAAI,MAAM;AACR,gBAAM,eAAe,aAAa,SAAS,KAAK,IAAI;AACpD,gBAAM,cAAc,aAAa,QAAQ,KAAK,IAAI;AAClD;AAAA,YAAK;AAAA;AAAA,UAAA,IAAsB,eAAe;AAC1C;AAAA,YAAK;AAAA;AAAA,UAAsB,IAAI,cAAc,KAAK,eAAe;AACjE,cAAI,eAAe,MAAML,SAAO,MAAM,SAAS,GAAG;AAChD,yBAAa,KAAK,aAAa;AAAA,UACjC;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACM,QAAA,MAAM,CAAC,YAAY,YAAY;AACjC,MAAAQ,WAAS,IAAI,GAAG;AACZ,IAAAI,OAAA,IAAI,MAAM,GAAG;AAAA,EACrB;AACO,SAAA;AACT;AACA,SAAS,iBAAiB,KAAK;AAC7B,MAAI,IAAI,CAAC,MAAM,OAAO,CAAC,eAAe,GAAG,GAAG;AACnC,WAAA;AAAA,EAAA,OAC6C;AAC7C,WAAA,uBAAuB,GAAG,2BAA2B;AAAA,EAC9D;AACO,SAAA;AACT;AACA,SAASmC,UAAQ,MAAM;AACrB,MAAI,SAAS,MAAM;AACV,WAAA;AAAA,EACT;AACI,MAAA,OAAO,SAAS,YAAY;AAC9B,WAAO,KAAK,QAAQ;AAAA,EAAA,WACX,OAAO,SAAS,UAAU;AACnC,UAAM,OAAO,KAAK,eAAe,KAAK,YAAY;AAClD,WAAO,QAAQ;AAAA,EACjB;AACO,SAAA;AACT;AACA,SAAS,WAAWuB,IAAGG,IAAG;AACxB,SAAO1B,UAAQuB,EAAC,MAAMvB,UAAQ0B,EAAC;AACjC;AACA,SAAS,aAAa,MAAM,eAAe;AACrC,MAAAxE,UAAQ,aAAa,GAAG;AAC1B,WAAO,cAAc,UAAU,CAACuC,OAAM,WAAWA,IAAG,IAAI,CAAC;AAAA,EAAA,WAChDnC,aAAW,aAAa,GAAG;AACpC,WAAO,WAAW,eAAe,IAAI,IAAI,IAAI;AAAA,EAC/C;AACO,SAAA;AACT;AACA,SAAS,cAAc,UAAU,OAAO,UAAU;AAC1C,QAAA,iBAAiB,MAAM,KAAK;AAC5B,QAAA,UAAU,SAAS,aAAa,CAAC;AACvC,aAAW,OAAO,SAAS;AACrB,QAAA,MAAM,QAAQ,GAAG;AACrB,QAAI,OAAO;AACT;AACF;AAAA,MACE;AAAA,MACA,eAAe,GAAG;AAAA,MAClB;AAAA,MAC4C,gBAAgB,cAAc;AAAA,MAC1E,CAACL,SAAO,UAAU,GAAG,KAAK,CAACA,SAAO,UAAU,UAAU,GAAG,CAAC;AAAA,IAAA;AAAA,EAE9D;AACF;AACA,SAAS,aAAa,MAAM,OAAO,MAAM,OAAO,UAAU;AACxD,QAAM,EAAE,MAAM,UAAU,WAAW,cAAc;AACjD,MAAI,YAAY,UAAU;AACjB,WAAA,6BAA6B,OAAO,GAAG;AAC9C;AAAA,EACF;AACI,MAAA,SAAS,QAAQ,CAAC,UAAU;AAC9B;AAAA,EACF;AACA,MAAI,QAAQ,QAAQ,SAAS,QAAQ,CAAC,WAAW;AAC/C,QAAI,UAAU;AACd,UAAM,QAAQC,UAAQ,IAAI,IAAI,OAAO,CAAC,IAAI;AAC1C,UAAM,gBAAgB,CAAA;AACtB,aAASH,KAAI,GAAGA,KAAI,MAAM,UAAU,CAAC,SAASA,MAAK;AAC3C,YAAA,EAAE,OAAO,iBAAiB,WAAW,OAAO,MAAMA,EAAC,CAAC;AAC5C,oBAAA,KAAK,gBAAgB,EAAE;AAC3B,gBAAA;AAAA,IACZ;AACA,QAAI,CAAC,SAAS;AACZ,aAAO,sBAAsB,MAAM,OAAO,aAAa,CAAC;AACxD;AAAA,IACF;AAAA,EACF;AACA,MAAI,aAAa,CAAC,UAAU,OAAO,KAAK,GAAG;AAClC,WAAA,2DAA2D,OAAO,IAAI;AAAA,EAC/E;AACF;AACA,MAAM,eAA+B;AAAA,EACnC;AACF;AACA,SAAS,WAAW,OAAO,MAAM;AAC3B,MAAA;AACE,QAAA,eAAeiD,UAAQ,IAAI;AAC7B,MAAA,aAAa,YAAY,GAAG;AAC9B,UAAMP,KAAI,OAAO;AACTA,YAAAA,OAAM,aAAa;AACvB,QAAA,CAAC,SAASA,OAAM,UAAU;AAC5B,cAAQ,iBAAiB;AAAA,IAC3B;AAAA,EAAA,WACS,iBAAiB,UAAU;AACpC,YAAQhC,WAAS,KAAK;AAAA,EAAA,WACb,iBAAiB,SAAS;AACnC,YAAQP,UAAQ,KAAK;AAAA,EAAA,WACZ,iBAAiB,QAAQ;AAClC,YAAQ,UAAU;AAAA,EAAA,OACb;AACL,YAAQ,iBAAiB;AAAA,EAC3B;AACO,SAAA;AAAA,IACL;AAAA,IACA;AAAA,EAAA;AAEJ;AACA,SAAS,sBAAsB,MAAM,OAAO,eAAe;AACrD,MAAA,cAAc,WAAW,GAAG;AAC9B,WAAO,0BAA0B,IAAI;AAAA,EACvC;AACI,MAAA,UAAU,6CAA6C,IAAI,eAAe,cAAc,IAAIc,YAAU,EAAE,KAAK,KAAK,CAAC;AACjH,QAAA,eAAe,cAAc,CAAC;AAC9B,QAAA,eAAe,UAAU,KAAK;AAC9B,QAAA,gBAAgB,WAAW,OAAO,YAAY;AAC9C,QAAA,gBAAgB,WAAW,OAAO,YAAY;AAChD,MAAA,cAAc,WAAW,KAAK,aAAa,YAAY,KAAK,CAACmC,YAAU,cAAc,YAAY,GAAG;AACtG,eAAW,eAAe,aAAa;AAAA,EACzC;AACA,aAAW,SAAS,YAAY;AAC5B,MAAA,aAAa,YAAY,GAAG;AAC9B,eAAW,cAAc,aAAa;AAAA,EACxC;AACO,SAAA;AACT;AACA,SAAS,WAAW,OAAO,MAAM;AAC/B,MAAI,SAAS,UAAU;AACrB,WAAO,IAAI,KAAK;AAAA,EAAA,WACP,SAAS,UAAU;AACrB,WAAA,GAAG,OAAO,KAAK,CAAC;AAAA,EAAA,OAClB;AACL,WAAO,GAAG,KAAK;AAAA,EACjB;AACF;AACA,SAAS,aAAa,MAAM;AAC1B,QAAM,gBAAgB,CAAC,UAAU,UAAU,SAAS;AACpD,SAAO,cAAc,KAAK,CAAC,SAAS,KAAK,YAAA,MAAkB,IAAI;AACjE;AACA,SAASA,eAAa,MAAM;AAC1B,SAAO,KAAK,KAAK,CAAC,SAAS,KAAK,YAAA,MAAkB,SAAS;AAC7D;AAEA,IAAI;AACJ,IAAI;AACJ,SAAS,aAAa,UAAU,MAAM;AACpC,MAAI,SAAS,WAAW,OAAO,eAAe,eAAe;AAC3D,SAAK,KAAK,OAAO,IAAI,IAAI,SAAS,GAAG,EAAE;AAAA,EACzC;AACwE;AACpD,sBAAA,UAAU,MAAM,YAAY,IAAI,KAAK,QAAQ,KAAK,IAAA,CAAK;AAAA,EAC3E;AACF;AACA,SAAS,WAAW,UAAU,MAAM;AAClC,MAAI,SAAS,WAAW,OAAO,eAAe,eAAe;AAC3D,UAAM,WAAW,OAAO,IAAI,IAAI,SAAS,GAAG;AAC5C,UAAM,SAAS,WAAW;AAC1B,SAAK,KAAK,MAAM;AACX,SAAA;AAAA,MACH,IAAI,oBAAoB,UAAU,SAAS,IAAI,CAAC,KAAK,IAAI;AAAA,MACzD;AAAA,MACA;AAAA,IAAA;AAEF,SAAK,WAAW,QAAQ;AACxB,SAAK,WAAW,MAAM;AAAA,EACxB;AACwE;AACtD,oBAAA,UAAU,MAAM,YAAY,IAAI,KAAK,QAAQ,KAAK,IAAA,CAAK;AAAA,EACzE;AACF;AACA,SAAS,cAAc;AACrB,MAAI,cAAc,QAAQ;AACjB,WAAA;AAAA,EACT;AACA,MAAI,OAAO,WAAW,eAAe,OAAO,aAAa;AAC3C,gBAAA;AACZ,WAAO,OAAO;AAAA,EAAA,OACT;AACO,gBAAA;AAAA,EACd;AACO,SAAA;AACT;AAEA,MAAM,0BAA0B;AAIhC,MAAM,WAAW,OAAO,IAAI,OAAO;AACnC,MAAM,OAAO,OAAO,IAAI,OAAO;AAC/B,MAAM,UAAU,OAAO,IAAI,OAAO;AAClC,MAAM,SAAS,OAAO,IAAI,OAAO;AAMjC,SAAS2D,UAAQ,OAAO;AACf,SAAA,QAAQ,MAAM,gBAAgB,OAAO;AAC9C;AAMA,MAAM,oBAAoB;AA+H1B,SAAS,mBAAmB,OAAO;AACjC,MAAI,CAAC;AACI,WAAA;AACF,SAAA,QAAQ,KAAK,KAAK,qBAAqB,QAAQ,OAAO,CAAI,GAAA,KAAK,IAAI;AAC5E;AAgIA,MAAM,kBAAkB,iBAAiB;AACzC,IAAI,MAAM;AACV,SAAS,wBAAwB,OAAOC,SAAQ,UAAU;AACxD,QAAM,OAAO,MAAM;AACnB,QAAM,cAAcA,UAASA,QAAO,aAAa,MAAM,eAAe;AACtE,QAAM,WAAW;AAAA,IACf,KAAK;AAAA,IACL;AAAA,IACA;AAAA,IACA,QAAAA;AAAA,IACA;AAAA,IACA,MAAM;AAAA;AAAA,IAEN,MAAM;AAAA,IACN,SAAS;AAAA;AAAA,IAET,QAAQ;AAAA,IACR,QAAQ;AAAA;AAAA,IAER,OAAO,IAAI;AAAA,MACT;AAAA;AAAA,IAEF;AAAA,IACA,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,SAAS;AAAA,IACT,aAAa;AAAA,IACb,WAAW;AAAA,IACX,UAAUA,UAASA,QAAO,WAAW,OAAO,OAAO,WAAW,QAAQ;AAAA,IACtE,aAAa;AAAA,IACb,aAAa,CAAC;AAAA;AAAA,IAEd,YAAY;AAAA,IACZ,YAAY;AAAA;AAAA,IAEZ,cAAc,sBAAsB,MAAM,UAAU;AAAA,IACpD,cAAc,sBAAsB,MAAM,UAAU;AAAA;AAAA,IAEpD,MAAM;AAAA;AAAA,IAEN,SAAS;AAAA;AAAA,IAET,eAAe;AAAA;AAAA,IAEf,cAAc,KAAK;AAAA;AAAA,IAEnB,KAAK;AAAA,IACL,MAAM;AAAA,IACN,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,cAAc;AAAA,IACd,YAAY;AAAA,IACZ,YAAY;AAAA;AAAA,IAEZ;AAAA,IACA,YAAY,WAAW,SAAS,YAAY;AAAA,IAC5C,UAAU;AAAA,IACV,eAAe;AAAA;AAAA;AAAA,IAGf,WAAW;AAAA,IACX,aAAa;AAAA,IACb,eAAe;AAAA,IACf,IAAI;AAAA,IACJ,GAAG;AAAA,IACH,IAAI;AAAA,IACJ,GAAG;AAAA,IACH,IAAI;AAAA,IACJ,GAAG;AAAA,IACH,IAAI;AAAA,IACJ,KAAK;AAAA,IACL,IAAI;AAAA,IACJ,GAAG;AAAA,IACH,KAAK;AAAA,IACL,KAAK;AAAA,IACL,IAAI;AAAA,IACJ,IAAI;AAAA,EAAA;AAEyC;AACpC,aAAA,MAAM,uBAAuB,QAAQ;AAAA,EAGhD;AACS,WAAA,OAAOA,UAASA,QAAO,OAAO;AACvC,WAAS,OAAO,KAAK,KAAK,MAAM,QAAQ;AACxC,MAAI,MAAM,IAAI;AACZ,UAAM,GAAG,QAAQ;AAAA,EACnB;AACO,SAAA;AACT;AACA,IAAI,kBAAkB;AAChB,MAAA,qBAAqB,MAAM,mBAAmB;AACpD,IAAI;AACJ,IAAI;AACJ;AACE,+BAA6B,CAAChH,OAAM;AAChB,sBAAAA;AAAA,EAAA;AAEpB,uBAAqB,CAACwB,OAAM;AACF,4BAAAA;AAAA,EAAA;AAE5B;AACA,MAAM,qBAAqB,CAAC,aAAa;AACvC,QAAM,OAAO;AACb,6BAA2B,QAAQ;AACnC,WAAS,MAAM;AACf,SAAO,MAAM;AACX,aAAS,MAAM;AACf,+BAA2B,IAAI;AAAA,EAAA;AAEnC;AACA,MAAM,uBAAuB,MAAM;AACd,qBAAA,gBAAgB,MAAM;AACzC,6BAA2B,IAAI;AACjC;AACA,MAAM,uCAAuC,gBAAgB;AAC7D,SAAS,sBAAsB,MAAM,EAAE,eAAe;AACpD,MAAI,aAAa,IAAI,KAAK,YAAY,IAAI,GAAG;AAC3C;AAAA,MACE,oEAAoE;AAAA,IAAA;AAAA,EAExE;AACF;AACA,SAAS,oBAAoB,UAAU;AAC9B,SAAA,SAAS,MAAM,YAAY;AACpC;AACA,IAAI,wBAAwB;AAC5B,SAAS,eAAe,UAAU,QAAQ,OAAO;AAC/C,WAAS,mBAAmB,KAAK;AAC3B,QAAA;AAAA,IACJ;AAAA;AAAA,EAAA,IAEE,SAAS;AACP,QAAA,aAAa,oBAAoB,QAAQ;AACrCsF,cAAA,UAAU,OAAO,YAAY,KAAK;AAC5C,QAAM,cAAc,aAAa,uBAAuB,UAAU,KAAK,IAAI;AAC3E,WAAS,mBAAmB,KAAK;AAC1B,SAAA;AACT;AACA,SAAS,uBAAuB,UAAU,OAAO;AAC/C,QAAM/B,aAAY,SAAS;AACoB;AAC7C,QAAIA,WAAU,MAAM;AAClB,4BAAsBA,WAAU,MAAM,SAAS,WAAW,MAAM;AAAA,IAClE;AACA,QAAIA,WAAU,YAAY;AACxB,YAAM,QAAQ,OAAO,KAAKA,WAAU,UAAU;AAC9C,eAAS/E,KAAI,GAAGA,KAAI,MAAM,QAAQA,MAAK;AACrC,8BAAsB,MAAMA,EAAC,GAAG,SAAS,WAAW,MAAM;AAAA,MAC5D;AAAA,IACF;AACA,QAAI+E,WAAU,YAAY;AACxB,YAAM,QAAQ,OAAO,KAAKA,WAAU,UAAU;AAC9C,eAAS/E,KAAI,GAAGA,KAAI,MAAM,QAAQA,MAAK;AACf,8BAAA,MAAMA,EAAC,CAAC;AAAA,MAChC;AAAA,IACF;AACI,QAAA+E,WAAU,mBAAmB,iBAAiB;AAChD;AAAA,QACE;AAAA,MAAA;AAAA,IAEJ;AAAA,EACF;AACS,WAAA,cAAqC,uBAAA,OAAO,IAAI;AACzD,WAAS,QAAQ,QAAQ,IAAI,MAAM,SAAS,KAAK,2BAA2B,CAAC;AAC9B;AAC7C,+BAA2B,QAAQ;AAAA,EACrC;AACM,QAAA,EAAE,MAAU,IAAAA;AAClB,MAAI,OAAO;AACH,UAAA,eAAe,SAAS,eAAe,MAAM,SAAS,IAAI,mBAAmB,QAAQ,IAAI;AACzF,UAAA,QAAQ,mBAAmB,QAAQ;AAC3B;AACd,UAAM,cAAc;AAAA,MAClB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,QAC8C,gBAAgB,SAAS,KAAK;AAAA,QAC1E;AAAA,MACF;AAAA,IAAA;AAEY;AACR;AACF,QAAApE,YAAU,WAAW,GAAG;AACd,kBAAA,KAAK,sBAAsB,oBAAoB;AACZ;AAC7C;AAAA,UACE;AAAA,QAAA;AAAA,MAEJ;AAAA,IAAA,OACK;AACa,wBAAA,UAAU,aAAa,KAAK;AAAA,IAChD;AAAA,EAAA,OACK;AACL,yBAAqB,UAAU,KAAK;AAAA,EACtC;AACF;AACA,SAAS,kBAAkB,UAAU,aAAa,OAAO;AACnD,MAAAJ,aAAW,WAAW,GAAG;AAC3B;AACE,eAAS,SAAS;AAAA,IACpB;AAAA,EAAA,WACSG,WAAS,WAAW,GAAG;AACiB,QAAAqG,UAAQ,WAAW,GAAG;AACrE;AAAA,QACE;AAAA,MAAA;AAAA,IAEJ;AACwE;AACtE,eAAS,wBAAwB;AAAA,IACnC;AACS,aAAA,aAAa,UAAU,WAAW;AACI;AAC7C,sCAAgC,QAAQ;AAAA,IAC1C;AAAA,EAAA,WACsD,gBAAgB,QAAQ;AAC9E;AAAA,MACE,8CAA8C,gBAAgB,OAAO,SAAS,OAAO,WAAW;AAAA,IAAA;AAAA,EAEpG;AACA,uBAAqB,UAAU,KAAK;AACtC;AACA,IAAI;AACJ,MAAM,gBAAgB,MAAM,CAAC;AAC7B,SAAS,qBAAqB,UAAU,OAAO,aAAa;AAC1D,QAAMhC,aAAY,SAAS;AACvB,MAAA,CAAC,SAAS,QAAQ;AACX,aAAA,SAASA,WAAU,UAAU;AAAA,EACxC;AACiC;AACzB,UAAA,QAAQ,mBAAmB,QAAQ;AAC3B;AACV,QAAA;AACF,qBAAe,QAAQ;AAAA,IAAA,UACvB;AACc;AACR;IACR;AAAA,EACF;AACA,MAAiD,CAACA,WAAU,UAAU,SAAS,WAAW,QAAQ,CAAC,OAAO;AACxG,QAAIA,WAAU,UAAU;AACtB;AAAA,QACE;AAAA,MAAA;AAAA,IACF,OACK;AACL,aAAO,mDAAmD;AAAA,IAC5D;AAAA,EACF;AACF;AACA,SAAS,cAAc,UAAU;AAC/B,SAAO,SAAS,eAAe,SAAS,aAAa,IAAI;AAAA,IACvD,SAAS;AAAA,IACmC;AAAA,MAC1C,IAAI,QAAQ,KAAK;AACT,cAAA,UAAU,OAAO,QAAQ;AAC/B,eAAO,OAAO,GAAG;AAAA,MACnB;AAAA,MACA,MAAM;AACJ,eAAO,iCAAiC;AACjC,eAAA;AAAA,MACT;AAAA,MACA,iBAAiB;AACf,eAAO,iCAAiC;AACjC,eAAA;AAAA,MACT;AAAA,IAAA;AAAA,EAMF;AAEJ;AACA,SAAS,cAAc,UAAU;AAC/B,SAAO,SAAS,eAAe,SAAS,aAAa,IAAI,MAAM,SAAS,OAAO;AAAA,IAC7E,IAAI,QAAQ,KAAK;AACT,YAAA,UAAU,OAAO,QAAQ;AAC/B,aAAO,OAAO,GAAG;AAAA,IACnB;AAAA,EACD,CAAA;AACH;AACA,SAAS,mBAAmB,UAAU;AAC9B,QAAA,SAAS,CAAC,YAAY;AACqB;AAC7C,UAAI,SAAS,SAAS;AACpB,eAAO,kDAAkD;AAAA,MAC3D;AACA,UAAI,WAAW,MAAM;AACnB,YAAI,cAAc,OAAO;AACzB,YAAI,gBAAgB,UAAU;AACxB,cAAA5E,UAAQ,OAAO,GAAG;AACN,0BAAA;AAAA,UAAA,WACL,MAAM,OAAO,GAAG;AACX,0BAAA;AAAA,UAChB;AAAA,QACF;AACA,YAAI,gBAAgB,UAAU;AAC5B;AAAA,YACE,sDAAsD,WAAW;AAAA,UAAA;AAAA,QAErE;AAAA,MACF;AAAA,IACF;AACS,aAAA,UAAU,WAAW;EAAC;AAEc;AAC7C,WAAO,OAAO,OAAO;AAAA,MACnB,IAAI,QAAQ;AACV,eAAO,cAAc,QAAQ;AAAA,MAC/B;AAAA,MACA,IAAI,QAAQ;AACV,eAAO,cAAc,QAAQ;AAAA,MAC/B;AAAA,MACA,IAAI,OAAO;AACT,eAAO,CAAC,UAAU,SAAS,SAAS,KAAK,OAAO,GAAG,IAAI;AAAA,MACzD;AAAA,MACA;AAAA,IAAA,CACD;AAAA,EAUH;AACF;AACA,SAAS,eAAe,UAAU;AAChC,MAAI,SAAS,SAAS;AACb,WAAA,SAAS,gBAAgB,SAAS,cAAc,IAAI,MAAM,UAAU,QAAQ,SAAS,OAAO,CAAC,GAAG;AAAA,MACrG,IAAI,QAAQ,KAAK;AACf,YAAI,OAAO,QAAQ;AACjB,iBAAO,OAAO,GAAG;AAAA,QACnB;AACO,eAAA,SAAS,MAAM,GAAG;AAAA,MAC3B;AAAA,MACA,IAAI,QAAQ,KAAK;AACR,eAAA,OAAO,UAAU,OAAO;AAAA,MACjC;AAAA,IACD,CAAA;AAAA,EACH;AACF;AACA,MAAM,aAAa;AACnB,MAAM,WAAW,CAAC,QAAQ,IAAI,QAAQ,YAAY,CAACa,OAAMA,GAAE,YAAY,CAAC,EAAE,QAAQ,SAAS,EAAE;AAC7F,SAAS,iBAAiB+D,YAAW,kBAAkB,MAAM;AACpD,SAAAxE,aAAWwE,UAAS,IAAIA,WAAU,eAAeA,WAAU,OAAOA,WAAU,QAAQ,mBAAmBA,WAAU;AAC1H;AACA,SAAS,oBAAoB,UAAUA,YAAW,SAAS,OAAO;AAC5D,MAAA,OAAO,iBAAiBA,UAAS;AACjC,MAAA,CAAC,QAAQA,WAAU,QAAQ;AAC7B,UAAM,QAAQA,WAAU,OAAO,MAAM,iBAAiB;AACtD,QAAI,OAAO;AACT,aAAO,MAAM,CAAC;AAAA,IAChB;AAAA,EACF;AACA,MAAI,CAAC,QAAQ,YAAY,SAAS,QAAQ;AAClC,UAAA,oBAAoB,CAAC,aAAa;AACtC,iBAAW,OAAO,UAAU;AACtB,YAAA,SAAS,GAAG,MAAMA,YAAW;AACxB,iBAAA;AAAA,QACT;AAAA,MACF;AAAA,IAAA;AAEK,WAAA;AAAA,MACL,SAAS,cAAc,SAAS,OAAO,KAAK;AAAA,IACzC,KAAA,kBAAkB,SAAS,WAAW,UAAU;AAAA,EACvD;AACA,SAAO,OAAO,SAAS,IAAI,IAAI,SAAS,QAAQ;AAClD;AAKM,MAAA,WAAW,CAAC,iBAAiB,iBAAiB;AAClD,QAAM/D,KAAI,WAAW,iBAAiB,cAAc,qBAAqB;AAC1B;AAC7C,UAAMhB,KAAI;AACV,QAAIA,MAAKA,GAAE,WAAW,OAAO,uBAAuB;AAClDgB,SAAE,iBAAiB;AAAA,IACrB;AAAA,EACF;AACOA,SAAAA;AACT;AAEA,MAAM,UAAU;AAChB,MAAMiG,SAAmD;AAGzD,SAAS,UAAU,QAAQ;AACzB,SAAO,MAAM,MAAM;AACrB;AAKA,MAAM,YAAY;AAClB,MAAM,aAAa;AACnB,SAAS,KAAK,SAAS,KAAK;AAC1B,QAAMpD,UAAS,CAAA;AACf,WAAS,SAAS,GAAG;AACf,QAAA,SAAS,KAAK,IAAIA,OAAM;AACvB,SAAAA;AACT;AACA,SAAS,SAAS,SAAS,KAAK;AAC9B,YAAU,UAAU,OAAO;AAC3B,MAAI,YAAY;AACd;AACI,QAAA,kBAAkBxD,eAAa,OAAO;AACtC,QAAA,cAAcA,eAAa,GAAG;AAChC,MAAA,mBAAmB,cAAc,eAAe,YAAY;AAC9D,aAAS,OAAO,KAAK;AACb,YAAA,eAAe,QAAQ,GAAG;AAChC,UAAI,iBAAiB,QAAQ;AAC3B,gBAAQ,GAAG,IAAI;AAAA,MAAA,OACV;AACI,iBAAA,cAAc,IAAI,GAAG,CAAC;AAAA,MACjC;AAAA,IACF;AAAA,EACS,WAAA,mBAAmB,aAAa,eAAe,WAAW;AAC/D,QAAA,QAAQ,UAAU,IAAI,QAAQ;AAC5B,UAAA,QAAQ,CAAC,MAAM+B,WAAU;AAClB,iBAAA,QAAQA,MAAK,GAAG,IAAI;AAAA,MAAA,CAC9B;AAAA,IACH;AAAA,EACF;AACF;AACA,SAAS,MAAM,SAAS,KAAK,MAAMyB,SAAQ;AACzC,YAAU,UAAU,OAAO;AAC3B,MAAI,YAAY;AACd;AACI,QAAA,kBAAkBxD,eAAa,OAAO;AACtC,QAAA,cAAcA,eAAa,GAAG;AACpC,MAAI,mBAAmB,YAAY;AAC7B,QAAA,eAAe,cAAc,OAAO,KAAK,OAAO,EAAE,SAAS,OAAO,KAAK,GAAG,EAAE,QAAQ;AAC5E,gBAAAwD,SAAQ,MAAM,OAAO;AAAA,IAAA,OAC1B;AACL,eAAS,OAAO,SAAS;AACvB,cAAM,eAAe,UAAU,QAAQ,GAAG,CAAC;AACrC,cAAA,WAAW,IAAI,GAAG;AAClB,cAAA,cAAcxD,eAAa,YAAY;AACvC,cAAA,UAAUA,eAAa,QAAQ;AACjC,YAAA,eAAe,aAAa,eAAe,YAAY;AACzD,cAAI,gBAAgB,UAAU;AAC5B;AAAA,cACEwD;AAAA,eACC,QAAQ,KAAK,KAAK,OAAO,OAAO;AAAA,cACjC;AAAA,YAAA;AAAA,UAEJ;AAAA,QAAA,WACS,eAAe,WAAW;AACnC,cAAI,WAAW,WAAW;AACxB;AAAA,cACEA;AAAA,eACC,QAAQ,KAAK,KAAK,OAAO,OAAO;AAAA,cACjC;AAAA,YAAA;AAAA,UACF,OACK;AACD,gBAAA,aAAa,SAAS,SAAS,QAAQ;AACzC;AAAA,gBACEA;AAAA,iBACC,QAAQ,KAAK,KAAK,OAAO,OAAO;AAAA,gBACjC;AAAA,cAAA;AAAA,YACF,OACK;AACQ,2BAAA,QAAQ,CAAC,MAAMzB,WAAU;AACpC;AAAA,kBACE;AAAA,kBACA,SAASA,MAAK;AAAA,mBACb,QAAQ,KAAK,KAAK,OAAO,OAAO,MAAM,MAAMA,SAAQ;AAAA,kBACrDyB;AAAA,gBAAA;AAAA,cACF,CACD;AAAA,YACH;AAAA,UACF;AAAA,QAAA,WACS,eAAe,YAAY;AAChC,cAAA,WAAW,cAAc,OAAO,KAAK,YAAY,EAAE,SAAS,OAAO,KAAK,QAAQ,EAAE,QAAQ;AAC5F;AAAA,cACEA;AAAA,eACC,QAAQ,KAAK,KAAK,OAAO,OAAO;AAAA,cACjC;AAAA,YAAA;AAAA,UACF,OACK;AACL,qBAAS,UAAU,cAAc;AAC/B;AAAA,gBACE,aAAa,MAAM;AAAA,gBACnB,SAAS,MAAM;AAAA,iBACd,QAAQ,KAAK,KAAK,OAAO,OAAO,MAAM,MAAM;AAAA,gBAC7CA;AAAA,cAAA;AAAA,YAEJ;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EAAA,WACS,mBAAmB,WAAW;AACvC,QAAI,eAAe,WAAW;AAClB,gBAAAA,SAAQ,MAAM,OAAO;AAAA,IAAA,OAC1B;AACD,UAAA,QAAQ,SAAS,IAAI,QAAQ;AACrB,kBAAAA,SAAQ,MAAM,OAAO;AAAA,MAAA,OAC1B;AACG,gBAAA,QAAQ,CAAC,MAAMzB,WAAU;AACzB,gBAAA,MAAM,IAAIA,MAAK,GAAG,OAAO,MAAMA,SAAQ,KAAKyB,OAAM;AAAA,QAAA,CACzD;AAAA,MACH;AAAA,IACF;AAAA,EAAA,OACK;AACK,cAAAA,SAAQ,MAAM,OAAO;AAAA,EACjC;AACF;AACA,SAAS,UAAUA,SAAQ,GAAGrC,IAAG;AAC/B,EAAAqC,QAAO,CAAC,IAAIrC;AACd;AAEA,SAAS,mBAAmB,UAAU;AAC7B,SAAA6B,QAAM,SAAS,SAAS,MAAM;AACvC;AACA,SAAS,eAAe,UAAU;AAChC,QAAM,MAAM,SAAS;AACrB,QAAM,YAAY,IAAI;AAClB,MAAA,aAAa,UAAU,QAAQ;AAO3B,UAAA,SAAS,UAAU,MAAM,CAAC;AAChC,cAAU,SAAS;AACnB,aAASrD,KAAI,GAAGA,KAAI,OAAO,QAAQA,MAAK;AACtC,aAAOA,EAAC;IACV;AAAA,EACF;AACF;AACA,SAAS,SAAS,UAAU,IAAI;AAC9B,QAAM,MAAM,SAAS;AACrB,MAAI,CAAC,IAAI,uBAAuB,CAAC,mBAAmB,QAAQ,GAAG;AAO7D,WAAO,WAAW,MAAM,GAAG,KAAK,SAAS,KAAK,CAAC;AAAA,EACjD;AAOI,MAAA;AACA,MAAA,CAAC,IAAI,uBAAuB;AAC9B,QAAI,wBAAwB;EAC9B;AACI,MAAA,sBAAsB,KAAK,MAAM;AACnC,QAAI,IAAI;AACN;AAAA,QACE,GAAG,KAAK,SAAS,KAAK;AAAA,QACtB;AAAA,QACA;AAAA,MAAA;AAAA,eAEO,UAAU;AACnB,eAAS,SAAS,KAAK;AAAA,IACzB;AAAA,EAAA,CACD;AACM,SAAA,IAAI,QAAQ,CAAC2D,aAAY;AACnBA,eAAAA;AAAAA,EAAA,CACZ;AACH;AAEA,SAASuD,QAAM,KAAK,MAAM;AACxB,QAAM,UAAU,GAAG;AACnB,QAAM,OAAO,OAAO;AAChB,MAAA,SAAS,YAAY,QAAQ,MAAM;AACjC,QAAA,OAAO,KAAK,IAAI,GAAG;AACnB,QAAA,OAAO,SAAS,aAAa;AACxB,aAAA;AAAA,IACT;AACI,QAAA/G,UAAQ,GAAG,GAAG;AAChB,YAAM,MAAM,IAAI;AACT,aAAA,IAAI,MAAM,GAAG;AACf,WAAA,IAAI,KAAK,IAAI;AAClB,eAASH,KAAI,GAAGA,KAAI,KAAKA,MAAK;AAC5B,aAAKA,EAAC,IAAIkH,QAAM,IAAIlH,EAAC,GAAG,IAAI;AAAA,MAC9B;AAAA,IAAA,OACK;AACL,aAAO,CAAA;AACF,WAAA,IAAI,KAAK,IAAI;AAClB,iBAAW,QAAQ,KAAK;AAClB,YAAAE,SAAO,KAAK,IAAI,GAAG;AACrB,eAAK,IAAI,IAAIgH,QAAM,IAAI,IAAI,GAAG,IAAI;AAAA,QACpC;AAAA,MACF;AAAA,IACF;AACO,WAAA;AAAA,EACT;AACA,MAAI,SAAS,UAAU;AACd,WAAA;AAAA,EACT;AACF;AACA,SAASC,WAAS,KAAK;AACd,SAAAD,QAAM,KAAK,OAAO,YAAY,kCAAkC,QAAQ,IAAwB,oBAAA,IAAA,CAAK;AAC9G;AAEA,SAAS,kBAAkB,UAAUxC,OAAM;AACzC,QAAM,OAAO,SAAS;AAChB,QAAA,MAA6B,uBAAA,OAAO,IAAI;AACzC,EAAAA,MAAA,QAAQ,CAAC,QAAQ;AAChB,QAAA,GAAG,IAAI,KAAK,GAAG;AAAA,EAAA,CACpB;AACM,SAAA;AACT;AACA,SAAS,MAAM,UAAU,MAAM,SAAS;AACtC,MAAI,CAAC,MAAM;AACT;AAAA,EACF;AACA,SAAOyC,WAAS,IAAI;AACpB,QAAM,MAAM,SAAS;AACrB,QAAM,SAAS,IAAI;AACf,MAAA,WAAW,UAAU,WAAW,aAAa;AAC/C,SAAK,KAAK;AAEV,UAAM,aAAa,IAAI;AACjB,UAAAzC,QAAO,OAAO,KAAK,IAAI;AAC7B,UAAM,WAAW,KAAK,MAAiB,kBAAkB,YAAYA,KAAI,CAAC;AAC1E,QAAI,OAAO,KAAK,QAAQ,EAAE,QAAQ;AAOhC,UAAI,sBAAsB;AACf,iBAAA,QAAQ,UAAU,MAAM;AACjC,YAAI,sBAAsB;AAC1B,uBAAe,QAAQ;AAAA,MAAA,CACxB;AACgB;IAAA,OACZ;AACL,qBAAe,QAAQ;AAAA,IACzB;AAAA,EACF;AACF;AAEA,SAAS,cAAc,WAAW;AAChC,YAAU,iBAAiB,YAAY,SAAS,UAAU,IAAI;AACrD,WAAA,SAAS,KAAK,GAAG,EAAE;AAAA,EAAA;AAE9B;AAEA,SAAS,eAAe,SAAS,UAAU,YAAY;AAC5C,WAAA,WAAW,OAAO,iBAAiB;AAAA,IAC1C;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEF,QAAM,kBAAkB,QAAQ;AAChC,MAAI,iBAAiB;AACb,UAAAA,QAAO,OAAO,KAAK,eAAe;AACxC,QAAIA,MAAK,QAAQ;AACf,YAAM,MAAM,SAAS;AACjB,UAAA,CAAC,IAAI,eAAe;AACtB,YAAI,gBAAgB;MACtB;AACI,UAAA,cAAc,KAAK,GAAGA,KAAI;AAAA,IAChC;AAAA,EACF;AACA,SAAO,SAAS,IAAI;AACtB;AAEA,SAAS,SAAS,UAAU,YAAY,OAAO;AACvC,QAAA;AAAA,IACJ;AAAA,IACA;AAAA,IACA,KAAK,EAAE,QAAQ,YAAY;AAAA,EACzB,IAAA;AACJ,MAAI,gBAAgB,aAAa;AAC/B;AAAA,EACF;AACI,MAAA,CAAC,iBAAiB,CAAC,QAAQ;AAC7B;AAAA,EACF;AACA,MAAI,WAAW;AACb,WAAO,cAAc;AAAA,MACnB,CAAC,gBAAgB,eAAe,aAAa,MAAM,UAAU;AAAA,IAAA;AAAA,EAEjE;AACM,QAAA,QAAQ,gBAAgB,cAAc,gBAAgB;AACtD,QAAA,cAAc,CAAC,SAAS;AACtB,UAAA;AAAA;AAAA;AAAA,OAGH,OAAO,oBAAoB,IAAI,KAAK,CAAI,GAAA;AAAA,QACvC,OAAO,oBAAoB,QAAQ,KAAK,CAAC;AAAA,MAC3C;AAAA;AAEK,WAAA,KAAK,OAAO,CAAC,gBAAgB;AAClC,YAAM,WAAW,4BAA4B,cAAc,YAAY,CAAC;AACpE,UAAA,SAAS,aAAa,MAAM;AACvB,eAAA;AAAA,MACT;AACe,qBAAA,aAAa,UAAU,UAAU;AACzC,aAAA;AAAA,IAAA,CACR;AAAA,EAAA;AAEH,QAAM,QAAQ,MAAM;AACZ,UAAA,OAAO,YAAY,aAAa;AACtC,QAAI,KAAK,UAAU,SAAS,SAAS,SAAS,MAAM,QAAQ;AAC1D,eAAS,MAAM,OAAO,QAAQ,EAAE,IAAI,EAAA,GAAK,MAAM;AAC7C,oBAAY,IAAI;AAAA,MAAA,CACjB;AAAA,IACH;AAAA,EAAA;AAEF,MAAI,OAAO,UAAU;AACnB,WAAO,SAAS,KAAK;AAAA,EAAA,OAChB;AACL,aAAS,UAAU,KAAK;AAAA,EAC1B;AACF;AACA,SAAS,OAAO,OAAO;AACjB,MAAAhE,WAAS,KAAK,GAAG;AACnB,YAAQ,KAAK;AAAA,EACf;AACO,SAAA;AACT;AACA,SAAS,4BAA4B,cAAc,IAAI;AACrD,QAAM,aAAa,aAAa;AAAA,IAC9B,CAAC,QAAQ,QAAQ,IAAI,cAAc,IAAI,OAAO,OAAO;AAAA,EAAA;AAEvD,MAAI,YAAY;AACd,UAAM,KAAK,WAAW;AACtB,QAAI,IAAI;AACC,aAAA,eAAe,GAAG,CAAC,KAAK;AAAA,IACjC;AACA,WAAO,OAAO,UAAU;AAAA,EAC1B;AACO,SAAA;AACT;AACA,SAAS,eAAe,EAAE,GAAA6D,IAAG,GAAA6C,GAAE,GAAG,UAAU,YAAY;AAClD,MAAA7G,aAAWgE,EAAC,GAAG;AACjBA,OAAE,UAAU,CAAA,CAAE;AAAA,EAAA,OACT;AACC,UAAA,YAAY/D,WAAS+D,EAAC;AACtB,UAAA,SAAS,MAAMA,EAAC;AACtB,QAAI,aAAa,QAAQ;AACvB,UAAI6C,IAAG;AACL,YAAI,CAAC,QAAQ;AACX;AAAA,QACF;AACA,YAAI,CAACjH,UAAQoE,GAAE,KAAK,GAAG;AACrBA,aAAE,QAAQ;QACZ;AACA,cAAM,WAAWA,GAAE;AACnB,YAAI,SAAS,QAAQ,QAAQ,MAAM,IAAI;AACrC,mBAAS,KAAK,QAAQ;AACtB,cAAI,CAAC,UAAU;AACb;AAAA,UACF;AACA,0BAAgB,MAAMxE,SAAO,UAAU,QAAQ,GAAG,SAAS,CAAC;AAAA,QAC9D;AAAA,iBACS,WAAW;AAChB,YAAAG,SAAO,YAAYqE,EAAC,GAAG;AACzB,qBAAWA,EAAC,IAAI;AAAA,QAClB;AAAA,MAAA,WACS,MAAMA,EAAC,GAAG;AACnBA,WAAE,QAAQ;AAAA,MAAA,OAC0C;AACpD,gBAAQA,EAAC;AAAA,MACX;AAAA,IAAA,OACoD;AACpD,cAAQA,EAAC;AAAA,IACX;AAAA,EACF;AACF;AACA,SAAS,QAAQ8C,MAAK;AACpBJ,SAAK,8BAA8BI,MAAK,IAAI,OAAOA,IAAG,GAAG;AAC3D;AAEA,MAAM,wBAAwB;AAC9B,SAAS,eAAe,cAAc,SAAS;AAC7C,QAAM,WAAW,aAAa,YAAY,wBAAwB,cAAc,QAAQ,iBAAiB,IAAI;AACpF;AACvB,aAAS,IAAI,kBAAkB;AACtB,aAAA,IAAI,YAAY;EAC3B;AACI,MAAA,QAAQ,WAAW,OAAO;AAC5B,aAAS,SAAS;AAAA,EACpB;AACA,MAAI,QAAQ,eAAe;AACjB,YAAA,cAAc,UAAU,OAAO;AAAA,EACzC;AAC+C;AAC7C,uBAAmB,YAAY;AAC/B,iBAAa,UAAU,OAAO;AAAA,EAChC;AAC+C;AAC7C,iBAAa,UAAU,MAAM;AAAA,EAC/B;AACA,iBAAe,QAAQ;AACwB;AAC7C,eAAW,UAAU,MAAM;AAAA,EAC7B;AACyB;AACnB,QAAA,QAAQ,mBAAmB,SAAS,OAAO;AACrC,cAAA,gBAAgB,IAAI,UAAU,KAAK,eAAe,QAAQ,KAAK,SAAS,KAAK;AAAA,IACvF;AAAA,EACF;AACA,oBAAkB,QAAQ;AACqB;AAC3B;AAClB,eAAW,UAAU,OAAO;AAAA,EAC9B;AACA,SAAO,SAAS;AAClB;AACA,MAAM,2BAA2B,CAAC,UAAU;AACtC,MAAA;AACJ,aAAW,OAAO,OAAO;AACvB,QAAI,QAAQ,WAAW,QAAQ,WAAW,KAAK,GAAG,GAAG;AACnD,OAAC,QAAQ,MAAM,KAAK,GAAG,IAAI,MAAM,GAAG;AAAA,IACtC;AAAA,EACF;AACO,SAAA;AACT;AACA,SAAS,oBAAoB,UAAU;AAC/B,QAAA;AAAA,IACJ,MAAMtC;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,cAAc,CAAC,YAAY;AAAA,IAC3B;AAAA,IACA;AAAA,IACA,MAAAuC;AAAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,KAAAC;AAAAA,IACA,YAAY;AAAA,MACV,KAAK;AAAA,QACH,QAAQ;AAAA,UACN,kBAAkB,EAAE,0BAAAC,0BAAyB;AAAA,QAC/C;AAAA,MACF;AAAA,IACF;AAAA,IACA;AAAA,EACE,IAAA;AACJ,WAAS,gBAAgB;AACzB,WAAS,MAAM;AACfA,4BAAyBD,IAAG;AAC5B,WAAS,YAAY,SAAS,cAAc,IAAI,IAAI;AAChD,MAAA1D;AACE,QAAA,OAAO,4BAA4B,QAAQ;AAC7C,MAAA;AACE,QAAA,MAAM,YAAY,GAAG;AACN,uBAAA,cAAc,OAAO,cAAc,KAAK;AACzD,YAAM,aAAa,aAAa;AAChC,MAAAA,UAAS,OAAO;AAAA,QACd;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MAAA;AAAA,IACF,OACK;AACL;AAAA,QACE;AAAA,QACA;AAAA,QACA;AAAA,QACAkB,WAAU,QAAQ,QAAQ,yBAAyB,KAAK;AAAA,MAAA;AAE1D,YAAM,UAAUA;AACP,MAAAlB,UAAA,QAAQ,SAAS,IAAI,QAAQ,OAAO,EAAE,OAAO,OAAO,MAAAyD,MAAK,CAAC,IAAI;AAAA,QACrE;AAAA,QACA;AAAA;AAAA,MAAA;AAAA,IAGJ;AAAA,WACO,KAAK;AACA,gBAAA,KAAK,UAAU,CAAC;AACnB,IAAAzD,UAAA;AAAA,EACX;AACA,WAAS,QAAQ;AACjB,8BAA4B,IAAI;AACzB,SAAAA;AACT;AACA,SAAS,iBAAiB,cAAc,OAAO,cAAc,mBAAmB;AAC1E,MAAA,SAAS,qBAAqB,iBAAiB,OAAO;AACxD,UAAMa,QAAO,OAAO,KAAK,iBAAiB,EAAE;AAAA,MAC1C,CAAC,QAAQ,QAAQ,WAAW,QAAQ;AAAA,IAAA;AAElC,QAAA,CAACA,MAAK,QAAQ;AAChB;AAAA,IACF;AACA,QAAI,gBAAgBA,MAAK,KAAK,eAAe,GAAG;AACzC,MAAAA,MAAA,QAAQ,CAAC,QAAQ;AAChB,YAAA,CAAC,gBAAgB,GAAG,KAAK,EAAE,IAAI,MAAM,CAAC,KAAK,eAAe;AACtD,gBAAA,GAAG,IAAI,kBAAkB,GAAG;AAAA,QACpC;AAAA,MAAA,CACD;AAAA,IAAA,OACI;AACA,MAAAA,MAAA,QAAQ,CAAC,QAAQ,MAAM,GAAG,IAAI,kBAAkB,GAAG,CAAC;AAAA,IAC3D;AAAA,EACF;AACF;AACA,MAAM,2BAA2B,CAAC,aAAa;AAC/B;AACG;AACH;AAChB;AACA,SAAS,+BAA+B;AACtC,QAAM,kBAAkB,KAAK;AAC7B,MAAI,CAAC,mBAAmB,gBAAgB,WAAW,GAAG;AACpD;AAAA,EACF;AAEM,QAAA,aAAa,KAAK,IAAI;AAC5B,QAAM,UAAU,WAAW;AACrB,QAAA,WAAkC,uBAAA,OAAO,IAAI;AACnD,kBAAgB,QAAQ,CAAC,EAAE,MAAM,OAAAtC,QAAO,WAAW;AAC3C,UAAA,oBAAoB,mBAAmB,SAAS,IAAI;AAC1D,UAAM,WAAW5B,WAAS4B,MAAK,IAAI,GAAG,IAAI,IAAIA,MAAK,KAAK,GAAG,IAAI,IAAIA,MAAK;AACxE,QAAI,OAAO,sBAAsB,eAAe,OAAO,kBAAkBA,MAAK,MAAM,aAAa;AAC/F,eAAS,QAAQ,IAAI;AAAA,IAAA,OAChB;AACL,YAAM,qBAAqB;AAAA,QACzB;AAAA,QACA,kBAAkBA,MAAK;AAAA,MAAA;AAEzB,aAAO,KAAK,kBAAkB,EAAE,QAAQ,CAAC,SAAS;AAChD,iBAAS,WAAW,MAAM,IAAI,IAAI,mBAAmB,IAAI;AAAA,MAAA,CAC1D;AAAA,IACH;AAAA,EAAA,CACD;AACD,kBAAgB,SAAS;AACzB,MAAI,OAAO,KAAK,QAAQ,EAAE,QAAQ;AAOhC,eAAW,QAAQ,QAAQ;AAAA,EAC7B;AACF;AACA,SAAS,cAAc,EAAE,QAAA6C,SAAQ,QAAAwC,QAAA,GAAU,SAAS;AAClDxC,UAAO,eAAewC,QAAO,eAAe;AAC9C;AACA,SAAS,kBAAkB,UAAU;AACnC,QAAM,oBAAoB,6BAA6B;AAAA,IACrD;AAAA,EAAA;AAEF,WAAS,qBAAqB,MAAM,WAAW,MAAM,SAAS,iBAAiB,CAAC;AAChF,QAAM,oBAAoB,MAAM;AAC1B,QAAA,CAAC,SAAS,WAAW;AACvB,sBAAgB,MAAM;AACpB,iBAAS,UAAU,IAAI;AAAA,SACtB,QAAQ;AACoC;AAC7C,qBAAa,UAAU,OAAO;AAAA,MAChC;AACM,YAAA,UAAU,oBAAoB,QAAQ,CAAC;AACE;AAC7C,mBAAW,UAAU,OAAO;AAAA,MAC9B;AACwE;AACtE,+BAAuB,QAAQ;AAAA,MACjC;AAAA,IAAA,OACK;AACL,YAAM,EAAE,MAAM,IAAI,GAAAC,GAAA,IAAM;AACuB;AAC1B,2BAAA,QAAQ,SAAS,KAAK;AAAA,MAC3C;AACA,oBAAc,UAAU,KAAK;AACJ;AACzB,UAAI,IAAI;AACNvG,yBAAe,EAAE;AAAA,MACnB;AACA,oBAAc,UAAU,IAAI;AACmB;AAC7C,qBAAa,UAAU,OAAO;AAAA,MAChC;AACM,YAAA,UAAU,oBAAoB,QAAQ,CAAC;AACE;AAC7C,mBAAW,UAAU,OAAO;AAAA,MAC9B;AACA,UAAIuG,IAAG;AACL,8BAAsBA,EAAC;AAAA,MACzB;AACwE;AACtE,iCAAyB,QAAQ;AAAA,MACnC;AAC+C;AAC3B;MACpB;AAAA,IACF;AAAA,EAAA;AAEIzC,QAAAA,UAAS,SAAS,SAAS,IAAIC;AAAAA,IACnC;AAAA,IACA;AAAA,IACA,MAAM,SAASuC,OAAM;AAAA,IACrB,SAAS;AAAA;AAAA,EAAA;AAGL,QAAAA,UAAS,SAAS,SAAS,MAAM;AACrC,QAAIxC,QAAO,OAAO;AAChBA,cAAO,IAAI;AAAA,IACb;AAAA,EAAA;AAEF,EAAAwC,QAAO,KAAK,SAAS;AACrB,gBAAc,UAAU,IAAI;AACmB;AAC7CxC,YAAO,UAAU,SAAS,MAAM,CAACpD,OAAMV,iBAAe,SAAS,KAAKU,EAAC,IAAI;AACzEoD,YAAO,YAAY,SAAS,MAAM,CAACpD,OAAMV,iBAAe,SAAS,KAAKU,EAAC,IAAI;AAC3E,IAAA4F,QAAO,gBAAgB;AAAA,EACzB;AACO,EAAAA;AACT;AACA,SAAS,iBAAiB,UAAU;AAClC,QAAM,EAAE,KAAK,OAAO,QAAAA,SAAQ,OAAO;AACnC,MAAI,KAAK;AACPtG,qBAAe,GAAG;AAAA,EACpB;AACA,QAAM,KAAK;AACX,MAAIsG,SAAQ;AACV,IAAAA,QAAO,SAAS;AAAA,EAClB;AACA,MAAI,IAAI;AACN,0BAAsB,EAAE;AAAA,EAC1B;AACA,wBAAsB,MAAM;AAC1B,aAAS,cAAc;AAAA,EAAA,CACxB;AACuE;AACtE,6BAAyB,QAAQ;AAAA,EACnC;AACF;AACA,MAAM,eAAe,aAAa;AAClC,SAAS,YAAY;AACf,MAAA,OAAO,WAAW,aAAa;AAC1B,WAAA;AAAA,EACT;AACI,MAAA,OAAO,eAAe,aAAa;AAC9B,WAAA;AAAA,EACT;AACI,MAAA,OAAO,WAAW,aAAa;AAC1B,WAAA;AAAA,EACT;AACI,MAAA,OAAO,OAAO,aAAa;AACtB,WAAA;AAAA,EACT;AACF;AACA,SAAS,aAAa,eAAe,YAAY,MAAM;AACrD,QAAM,SAAS;AACf,SAAO,UAAU;AACuD;AACtD,oBAAA,OAAO,8BAA8B,MAAM;AAAA,EAC7D;AACM,QAAA,MAAM,aAAa,eAAe,SAAS;AACjD,QAAM,aAAa,IAAI;AACvB,gBAAc,WAAW,MAAM;AACzBE,QAAAA,eAAc,CAAC,iBAAiB;AACpC,iBAAa,aAAa;AAC1B,iBAAa,YAAY;AAClB,WAAA;AAAA,EAAA;AAET,QAAMC,mBAAkB,SAASC,kBAAiB,cAAc,SAAS;AACvE,WAAO,eAAeF,aAAY,YAAY,GAAG,OAAO;AAAA,EAAA;AAEpD,QAAA,mBAAmB,SAAS,kBAAkB,WAAW;AACtD,WAAA,aAAa,iBAAiB,UAAU,CAAC;AAAA,EAAA;AAE9C,MAAA,QAAQ,SAAS,QAAQ;AAC3B,kBAAc,SAAS;AACvB,UAAM,WAAW;AAAA,MACfA,aAAY,EAAE,MAAM,eAAe;AAAA,MACnC;AAAA,QACE,QAAQ;AAAA,QACR,YAAY;AAAA,QACZ,iBAAiB;AAAA,QACjB,OAAO,CAAC;AAAA,QACR,OAAO;AAAA,MACT;AAAA,IAAA;AAEF,QAAI,YAAY,SAAS;AAC+C;AACtE,sBAAgB,KAAK,OAAO;AAAA,IAC9B;AACA,aAAS,OAAO;AAChB,aAAS,mBAAmBC;AAC5B,aAAS,oBAAoB;AAC7B,eAAW,eAAe;AACnB,WAAA;AAAA,EAAA;AAEL,MAAA,UAAU,SAAS,UAAU;AAC/BX,WAAK,wBAAwB;AAAA,EAAA;AAExB,SAAA;AACT;AAEA,SAAS,WAAW,QAAQ;AAC1B,QAAM,WAAW;AACjB,MAAI,CAAC,UAAU;AACgCA,WAAK,iEAAiE;AACnH;AAAA,EACF;AACA,oBAAkB,UAAU,MAAM;AACpC;AACA,SAAS,kBAAkB,UAAU,QAAQ;AAClC,WAAA,IAAI,YAAY,MAAM;AACvB,UAAA,OAAO,OAAO,SAAS,KAAK;AAClC,UAAM,UAAU,CAAA;AAChB,eAAW,OAAO,MAAM;AACtB,cAAQ,KAAK,GAAG,EAAE,IAAI,KAAK,GAAG;AAAA,IAChC;AACO,WAAA;AAAA,EAAA;AAEX;AAIA,SAAS,cAAc;AACvB;AAEA,SAAS,oBAAoB,MAAM,MAAM,YAAY,UAAU;AACvD,MAAA1G,aAAW,IAAI,GAAG;AAClB,eAAW,MAAM,KAAK,KAAK,UAAU,GAAG,QAAQ;AAAA,EACpD;AACJ;AACA,SAASuH,YAAU,SAAS,UAAU,YAAY;AACxC,QAAA,SAAS,QAAQ,UAAU,WAAW;AACxC,MAAA,CAAC,UAAU,WAAW,aAAa;AAEnC;AAAA,EACJ;AACA,SAAO,KAAK,OAAO,EAAE,QAAQ,CAAC,SAAS;AACnC,QAAI,mBAAmB,MAAM,QAAQ,IAAI,GAAG,KAAK,GAAG;AAC1C,YAAA,QAAQ,QAAQ,IAAI;AACtB,UAAA3H,UAAQ,KAAK,GAAG;AACV,cAAA,QAAQ,CAAC,SAAS,oBAAoB,MAAM,MAAM,YAAY,QAAQ,CAAC;AAAA,MAAA,OAE5E;AACmB,4BAAA,MAAM,OAAO,YAAY,QAAQ;AAAA,MACzD;AAAA,IACJ;AAAA,EAAA,CACH;AACL;AAEA,SAAS4H,eAAa,SAAS,UAAU,YAAY;AACvCD,cAAA,SAAS,UAAU,UAAU;AAC3C;AAEA,SAAShI,MAAI,QAAQ,KAAK,KAAK;AACnB,SAAA,OAAO,GAAG,IAAI;AAC1B;AACA,SAAS,YAAY0D,YAAW,MAAM;AAC5B,QAAA,KAAK,KAAKA,OAAM;AACtB,MAAI,IAAI;AACG,WAAA,GAAG,GAAG,IAAI;AAAA,EACrB;AACQ,UAAA,MAAM,UAAUA,OAAM,YAAY;AACnC,SAAA;AACX;AAEA,SAAS,mBAAmB,KAAK;AAC7B,SAAO,SAAS,aAAa,KAAK,UAAU,OAAO;AAC/C,QAAI,CAAC,UAAU;AACL,YAAA;AAAA,IACV;AACA,UAAM,cAAc,IAAI;AACxB,QAAI,CAAC,eAAe,CAAC,YAAY,OAAO;AAC9B,YAAA;AAAA,IACV;AACA;AACgB,kBAAA,MAAM,UAAU,UAAU,GAAG;AAAA,IAC7C;AAAA,EAAA;AAER;AACA,SAAS,aAAa,IAAI,MAAM;AAC5B,SAAO,KAAK,CAAC,GAAG,IAAI,IAAI,CAAG,EAAA,OAAO,IAAI,IAAI,CAAC,CAAC,IAAI;AACpD;AACA,SAAS,0BAA0B,uBAAuB;AACpC,oBAAA,QAAQ,CAAC,SAAS;AAChC,0BAAsB,IAAI,IAAI;AAAA,EAAA,CACjC;AACL;AAEA,IAAI;AACJ,MAAM,MAAM;AACZ,MAAM,QAAQ;AACd,IAAI,OAAO,SAAS,YAAY;AAC5B,aAAW,SAAU,KAAK;AACtB,UAAM,OAAO,GAAG,EAAE,QAAQ,iBAAiB,EAAE;AAC7C,QAAI,CAAC,MAAM,KAAK,GAAG,GAAG;AACZ,YAAA,IAAI,MAAM,0FAA0F;AAAA,IAC9G;AAEA,WAAO,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE;AAClC,QAAA;AACJ,QAAIK,UAAS;AACT,QAAA;AACA,QAAA;AACJ,QAAI7D,KAAI;AACD,WAAAA,KAAI,IAAI,UAAS;AACpB,eACK,IAAI,QAAQ,IAAI,OAAOA,IAAG,CAAC,KAAK,KAC5B,IAAI,QAAQ,IAAI,OAAOA,IAAG,CAAC,KAAK,MAC/B,KAAK,IAAI,QAAQ,IAAI,OAAOA,IAAG,CAAC,MAAM,KACvC,KAAK,IAAI,QAAQ,IAAI,OAAOA,IAAG,CAAC;AACzC,MAAA6D,WACI,OAAO,KACD,OAAO,aAAc,UAAU,KAAM,GAAG,IACxC,OAAO,KACH,OAAO,aAAc,UAAU,KAAM,KAAM,UAAU,IAAK,GAAG,IAC7D,OAAO,aAAc,UAAU,KAAM,KAAM,UAAU,IAAK,KAAK,SAAS,GAAG;AAAA,IAC7F;AACO,WAAAA;AAAA,EAAA;AAEf,OACK;AAEU,aAAA;AACf;AACA,SAAS,iBAAiB,KAAK;AACpB,SAAA,mBAAmB,SAAS,GAAG,EACjC,MAAM,EAAE,EACR,IAAI,SAAU7C,IAAG;AACX,WAAA,OAAO,OAAOA,GAAE,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,MAAM,EAAE;AAAA,EAAA,CAC9D,EACI,KAAK,EAAE,CAAC;AACjB;AACA,SAAS,qBAAqB;AAC1B,QAAM,QAAQyB,QAAI,eAAe,cAAc,KAAK;AAC9C,QAAA,WAAW,MAAM,MAAM,GAAG;AAChC,MAAI,CAAC,SAAS,SAAS,WAAW,GAAG;AAC1B,WAAA;AAAA,MACH,KAAK;AAAA,MACL,MAAM,CAAC;AAAA,MACP,YAAY,CAAC;AAAA,MACb,cAAc;AAAA,IAAA;AAAA,EAEtB;AACI,MAAA;AACA,MAAA;AACA,eAAW,KAAK,MAAM,iBAAiB,SAAS,CAAC,CAAC,CAAC;AAAA,WAEhD,OAAO;AACV,UAAM,IAAI,MAAM,wBAAwB,MAAM,OAAO;AAAA,EACzD;AACS,WAAA,eAAe,SAAS,MAAM;AACvC,SAAO,SAAS;AAChB,SAAO,SAAS;AACT,SAAA;AACX;AACA,SAAS,WAAW,kBAAkB;AACjB,mBAAA,eAAe,SAAU,QAAQ;AACxC,UAAA,EAAE,SAAS;AACV,WAAA,KAAK,QAAQ,MAAM,IAAI;AAAA,EAAA;AAEjB,mBAAA,qBAAqB,SAAU,cAAc;AACpD,UAAA,EAAE,eAAe;AACvB,WAAO,KAAK,aAAa,OAAO,KAAK,WAAW,QAAQ,YAAY,IAAI;AAAA,EAAA;AAE5E,mBAAiB,kBAAkB,WAAY;AACrC,UAAA,EAAE,iBAAiB;AAClB,WAAA,eAAe,KAAK;EAAI;AAEvC;AAEA,SAAS,QAAQ,KAAK;AACZ,QAAA,YAAY,IAAI,SAAS;AACrB,YAAA,eAAe,yBAAyB,KAAK,kBAAkB;AACzE,4BAA0B,UAAU,qBAAqB;AACzD,QAAM,mBAAmB,UAAU;AACnC;AACI,eAAW,gBAAgB;AAAA,EAC/B;AACyB;AACrB,qBAAiB,OAAO3C;AACxB,qBAAiB,gBAAgBiI;AACjC,qBAAiB,cAAc;AAAA,EACnC;AACA;AACItF,YAAI,uBAAuB,GAAG;AAAA,EAClC;AACJ;AAEA,MAAM,cAAqB,uBAAA,OAAO,IAAI;AACtC,SAAS,YAAY,OAAO;AACxB,QAAM,EAAE,KAAA8E,MAAK,cAAc,mBAAmB;AAC9C,QAAM,WAAW,YAAYA,IAAG,MAAM,YAAYA,IAAG,IAAI,CAAK,IAAA,KAAK,mBAAmB,KAAK,CAAC,IAAI;AAEzFA,SAAAA,OAAM,MAAM,UAAU,MAAM;AACvC;AACA,SAAS,yBAAyBA,MAAK;AACnC,SAAO,YAAYA,IAAG;AAC1B;AACA,SAAS,uBAAuB,IAAI;AAChC,MAAI,CAAC,IAAI;AACL;AAAA,EACJ;AACA,QAAM,CAACA,MAAK,OAAO,IAAI,GAAG,MAAM,GAAG;AAC/B,MAAA,CAAC,YAAYA,IAAG,GAAG;AACnB;AAAA,EACJ;AACA,SAAO,YAAYA,IAAG,EAAE,SAAS,OAAO,CAAC;AAC7C;AAEA,IAAI,SAAS;AAAA,EACT,QAAQ,KAAK;AACT,YAAQ,GAAG;AACP,QAAA,OAAO,iBAAiB,2BACxB;AACJ,UAAM,WAAW,IAAI;AACjB,QAAA,QAAQ,SAAS,MAAM,eAAe;AACtC,YAAM,WAAW,SAAS,KAAK,KAAK,aAAa;AACjD,YAAMjB,aAAY;AAClB,UAAIA,YAAW;AACXA,mBAAU,QAAQ;AAAA,MAAA,OAEjB;AAEG,YAAA,OAAO,yBAAyB,aAAa;AAE7C,+BAAqB,QAAQ;AAAA,QACjC;AAAA,MACJ;AACO,aAAA;AAAA,IAAA;AAAA,EAEf;AACJ;AACA,SAAS,eAAe;AACpB,QAAM9C,UAII;AACV,MAAI,OAAO,WAAW,eAClB,OAAO,OAAOA,OAAM,MAAM,aAAa;AACvC,WAAO,OAAOA,OAAM;AAAA,EAAA,WAEf,OAAO,OAAO,aAAa;AAEhC,WAAO,GAAGA,OAAM;AAAA,EACpB;AACJ;AAEA,SAAS,IAAI,OAAO,KAAK;AACrB,QAAM,WAAW;AACjB,QAAM,MAAM,SAAS;AAEf,QAAA,WAAW,OAAO,QAAQ,gBAC3B,IAAI,gBAAgB,eACjB,IAAI,gBAAgB,WACpB,IAAI,gBAAgB,cACvBhD,WAAS,GAAG,KAAK,OAAO,QAAQ,YAC/B,MAAM,MACN;AACA,QAAA,OAAO,MAAM,SAAS,QAAQ;AACpC,QAAM,aAAa,IAAI;AACvB,MAAI,CAAC,OAAO;AAER,WAAO,WAAW,IAAI;AACf,WAAA;AAAA,EACX;AACM,QAAA,kBAAkB,WAAW,IAAI;AACvC,MAAI,iBAAiB;AAEjB,oBAAgB,QAAQ;AAAA,EAAA,OAEvB;AAED,eAAW,IAAI,IAAI,cAAc,OAAO,QAAQ;AAAA,EACpD;AACO,SAAA;AACX;AACA,SAAS,cAAc,cAAc,UAAU;AACrC,QAAA,UAAU,CAACqB,OAAM;AACnB,iBAAaA,EAAC;AACV,QAAA,OAAO,CAACA,EAAC;AACb,QAAIA,GAAE,UAAUA,GAAE,OAAO,UAAU;AAC/B,aAAOA,GAAE,OAAO;AAAA,IACpB;AACA,UAAM,aAAa,QAAQ;AACrB,UAAAmG,UAAS,MAAM,2BAA2B,8BAA8BnG,IAAG,UAAU,GAAG,UAAU,GAAyC,IAAI;AAErJ,UAAM,cAAcA,GAAE;AAChB,UAAA,YAAY,cACZ,YAAY,UACR,OAAO,YAAY,QAAQ,SAAS,MAAM,SAC1C,QACJ;AACN,QAAI,QAAQ,SAASA,GAAE,IAAI,KAAK,CAAC,WAAW;AACxC,iBAAWmG,OAAM;AAAA,IAAA,OAEhB;AACD,YAAM,MAAMA;AACRnG,UAAAA,GAAE,SAAS,YAAY1B,UAAQ,GAAG,KAAKQ,YAAU,GAAG,IAAI;AACxD;AAAA,MACJ;AACO,aAAA;AAAA,IACX;AAAA,EAAA;AAEJ,UAAQ,QAAQ;AACT,SAAA;AACX;AAEA,MAAM,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMZ;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ;AACA,SAAS,aAAa,OAAO;AACrB,MAAA,MAAM,QAAQ,MAAM,QAAQ;AAC5B,UAAM,iBAAiB;AACvB,UAAM,kBAAkB;AACxB,UAAM,2BAA2B;AACjC,QAAI,CAACT,SAAO,OAAO,QAAQ,GAAG;AAC1B,YAAM,SAAS;IACnB;AACI,QAAAA,SAAO,OAAO,UAAU,GAAG;AAC3B,YAAM,SAAS,OAAO,MAAM,WAAW,WAAW,MAAM,SAAS;AAC3D,YAAA,OAAO,WAAW,MAAM;AAAA,IAClC;AAEA,QAAIW,gBAAc,MAAM,MAAM,KAC1BX,SAAO,MAAM,QAAQ,SAAS,KAC9B,CAACA,SAAO,MAAM,QAAQ,OAAO,GAAG;AAC1B,YAAA,OAAO,QAAQ,MAAM,OAAO;AAAA,IACtC;AACI,QAAAW,gBAAc,MAAM,MAAM,GAAG;AAC7B,YAAM,SAAS,OAAO,IAAI,MAAM,QAAQ,MAAM,MAAM;AAAA,IACxD;AAAA,EACJ;AACJ;AACA,SAAS,8BAA8BgB,IAAG,OAAO;AACzC,MAAA1B,UAAQ,KAAK,GAAG;AAChB,UAAM,eAAe0B,GAAE;AACvBA,OAAE,2BAA2B,MAAM;AACf,sBAAA,aAAa,KAAKA,EAAC;AACnCA,SAAE,WAAW;AAAA,IAAA;AAEV,WAAA,MAAM,IAAI,CAAC,OAAO,CAACA,OAAM,CAACA,GAAE,YAAY,GAAGA,EAAC,CAAC;AAAA,EAAA,OAEnD;AACM,WAAA;AAAA,EACX;AACJ;AAKA,SAAS,KAAK,QAAQ,YAAY;AAC1B,MAAA;AACJ,MAAI1B,UAAQ,MAAM,KAAKK,WAAS,MAAM,GAAG;AAC/B,UAAA,IAAI,MAAM,OAAO,MAAM;AAC7B,aAASR,KAAI,GAAGgF,KAAI,OAAO,QAAQhF,KAAIgF,IAAGhF,MAAK;AAC3C,UAAIA,EAAC,IAAI,WAAW,OAAOA,EAAC,GAAGA,IAAGA,EAAC;AAAA,IACvC;AAAA,EAAA,WAEK,OAAO,WAAW,UAAU;AACjC,QAA+C,CAAC,OAAO,UAAU,MAAM,GAAG;AACjEiH,aAAA,mDAAmD,MAAM,GAAG;AACjE,aAAO;IACX;AACM,UAAA,IAAI,MAAM,MAAM;AACtB,aAASjH,KAAI,GAAGA,KAAI,QAAQA,MAAK;AAC7B,UAAIA,EAAC,IAAI,WAAWA,KAAI,GAAGA,IAAGA,EAAC;AAAA,IACnC;AAAA,EAAA,WAEKU,WAAS,MAAM,GAAG;AACnB,QAAA,OAAO,OAAO,QAAQ,GAAG;AACnB,YAAA,MAAM,KAAK,QAAQ,CAAC,MAAMV,OAAM,WAAW,MAAMA,IAAGA,EAAC,CAAC;AAAA,IAAA,OAE3D;AACK,YAAA0E,QAAO,OAAO,KAAK,MAAM;AACzB,YAAA,IAAI,MAAMA,MAAK,MAAM;AAC3B,eAAS1E,KAAI,GAAGgF,KAAIN,MAAK,QAAQ1E,KAAIgF,IAAGhF,MAAK;AACnC,cAAA,MAAM0E,MAAK1E,EAAC;AAClB,YAAIA,EAAC,IAAI,WAAW,OAAO,GAAG,GAAG,KAAKA,EAAC;AAAA,MAC3C;AAAA,IACJ;AAAA,EAAA,OAEC;AACD,UAAM,CAAA;AAAA,EACV;AACO,SAAA;AACX;AAEA,SAAS,WAAW,MAAM,QAAQ,CAAA,GAAI,KAAK;AACvC,QAAM,WAAW;AACjB,QAAM,EAAE,QAAAgH,SAAQ,WAAW,KAAK,EAAE,OAAA,EAAc,IAAA;AAEhD,QAAM,UAAU,OAAO,cAAc,OAAO,OAAO;AACnD,MAAI,CAAC,QAAQ;AACT;AAAA,EACJ;AACI,MAAA,CAACA,WAAU,CAAC,WAAW;AAEvB,cAAU,MAAM;AACD,iBAAA,MAAM,OAAO,GAAG;AAAA,OAC5B,QAAQ;AACX;AAAA,EACJ;AACM,QAAA,UAAU,sBAAsB,QAAQ,QAAQ;AAEtD,MAAI,SAAS;AACD,YAAA,MAAM,OAAO,GAAG;AAAA,EAC5B;AACJ;AACA,SAAS,sBAAsB,OAAO,UAAU;AAC5C,MAAIA,UAAS,SAAS;AACtB,SAAOA,SAAQ;AACX,UAAM,WAAWA,QAAO;AACpB,QAAA,YAAY,SAAS,KAAK,GAAG;AAC7B,aAAO,SAAS,KAAK;AAAA,IACzB;AACA,IAAAA,UAASA,QAAO;AAAA,EACpB;AACJ;AAEA,SAAS,eAAe,IAAI,EAAE,MAAM,MAAM,SAAU;AAChD,QAAM,WAAW;AACjB,KAAG,OAAO;AACV,QAAM,cAAe,SAAS,SACzB,SAAS,OAAO,CAAA;AACf,QAAA,UAAU,YAAY,KAAK,MAC5B,YAAY,KAAK,IAAI,wBAAwB,QAAQ;AAC1D,MAAI,CAAC,QAAQ,MAAM,IAAI,GAAG;AACd,YAAA,MAAM,IAAI,IAAI;AAAA,MAClB;AAAA,IAAA;AAAA,EACJ,OAEC;AACO,YAAA,MAAM,IAAI,EAAE,KAAK;AAAA,EAC7B;AACA,SAAO,mBAAmB,SAAS,IAAI,OAAO,MAAM,IAAI;AAC5D;AACA,SAAS,wBAAwB,UAAU;AACvC,QAAM,UAAU,CAAC,UAAU,MAAM5E,WAAU;AACjC,UAAA,OAAO,QAAQ,MAAM,QAAQ;AACnC,QAAI,CAAC,MAAM;AAEP;AAAA,IACJ;AACM,UAAA,WAAW,OAAOA,WAAU;AAClC,IAAAA,SAAQA,UAAS;AAEX,UAAA,eAAe,4BAA4B,QAAQ;AACnD,UAAA,OAAO,KAAK,GAAG,MAAM,YAAY,WAAW,MAAMA,SAAQ,KAAKA,MAAK;AACpE,UAAA,OAAO,KAAK,GAAG;AACrB,gCAA4B,YAAY;AACxC,KAAC,SAAS,qBAAqB,SAAS,mBAAmB,CAAA,IAAK,KAAK;AAAA,MACjE;AAAA,MACA,OAAAA;AAAA,MACA;AAAA,IAAA,CACH;AACD,aAAS,mBAAmB;AAAA,EAAA;AAEhC,UAAQ,QAAQ;AACT,SAAA;AACX;AAEA,SAAS,eAAe,OAAO;AACvB,MAAA5B,WAAS,KAAK,GAAG;AACV,WAAA;AAAA,EACX;AACO,SAAAyH,YAAU,eAAe,KAAK,CAAC;AAC1C;AACA,SAASA,YAAU,QAAQ;AACvB,MAAI,MAAM;AACV,MAAI,CAAC,UAAUzH,WAAS,MAAM,GAAG;AACtB,WAAA;AAAA,EACX;AACA,aAAW,OAAO,QAAQ;AACtB,WAAO,GAAG,IAAI,WAAW,IAAI,IAAI,MAAM,UAAU,GAAG,CAAC,IAAI,OAAO,GAAG,CAAC;AAAA,EACxE;AACO,SAAA;AACX;AAcA,SAAS,OAAO6G,MAAK,IAAI,OAAO,CAAA,GAAI;AAC1B,QAAA,EAAE,kBAAkB;AAC1B,gBAAc,KAAK,EAAE,GAAG,IAAI,GAAGA,MAAK,GAAG,KAAK,GAAG,GAAG,KAAK,EAAG,CAAA;AAC9D;AA0BA,SAAS,sBAAsB;AAE/B;AAEA,MAAMa,MAAI,CAAC,OAAO,QAAQ,IAAI,OAAO,GAAG;AACxC,MAAMd,MAAI,CAAC,QAAQ,eAAe,KAAK,QAAQ,UAAU;AAEnD,MAAA7C,MAAI,CAAC,MAAM,OAAO,QAAQ,WAAW,MAAM,OAAO,GAAG;AAC3D,MAAM4D,MAAI,CAAC,IAAI,YAAY,eAAe,IAAI,OAAO;AACrD,MAAMjH,MAAI,CAAC,UAAU,eAAe,KAAK;AAEzC,MAAMW,MAAI,CAAC,WAAW,YAAY,OAAO,QAAQ,GAAG,OAAO;AAC3D,MAAM+E,MAAI,CAAC,QAAQ,UAAU,GAAG;AAChC,MAAMxF,MAAI,CAAC,UAAU,eAAe,KAAK;AACzC,MAAMsB,MAAI,CAAC,QAAQnB,kBAAgB,GAAG;AACtC,MAAM2E,MAAI,CAAC,UAAU,YAAY,KAAK;AAChC,MAAA,KAAK,CAACmB,MAAK,IAAI,SAAS,OAAOA,MAAK,IAAI,IAAI;AAIlD,SAASf,YAAU,eAAe,YAAY,MAAM;AAChD,oBAAkB,cAAc,SAAS;AACzC,SAAO,aAAa,eAAe,SAAS,EAAE,IAAI,MAAM;AAC5D;AACA,MAAM,eAAeA;ACh0PrB,MAAM,aAAa;AAAA,EACf;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ;AACA,SAAS,aAAa,SAAS,KAAK;AACzB,SAAA,SAASgB,MAAK,UAAU,MAAM;AACjC,UAAM,QAAQ,IAAI;AAClB,QAAI,SAAS,OAAO;AACV,YAAA,SAAS,EAAE,UAAU;AAC3B;AACU,cAAA,aAAa,OAAO,MAAM;AAAA,MACpC;AAAA,IACJ;AACA,WAAO,QAAQ,MAAM,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;AAAA,EAAA;AAEnD;AACA,SAAS,iBAAiB,UAAU,SAAS;AACzC,QAAM,MAAM,SAAS;AAErB,MAAI,SAAS,QAAQ;AACrB,MAAI,UAAU,QAAQ;AACtB,MAAI,cAAc;AAClB,MAAI,SAAS,QAAQ;AAErB,MAAI,MAAM;AACe;AACrB,QAAI,QAAQ;EAChB;AAEA,WAAS,QAAQ;AACjB,MAAInH,UAAQ,QAAQ,KAAK,KAAK,QAAQ,MAAM,QAAQ;AACxC,YAAA,MAAM,QAAQ,CAAC,SAAS;AACnB,eAAA,MAAM,IAAI,IAAI;AAAA,IAAA,CAC1B;AACG,QAAA,SAAS,MAAM,iBAAiB,GAAG;AACnC,eAAS,MAAM,UAAU;AAAA,IAC7B;AAAA,EACJ;AACA,MAAI,wBAAwB,WAAY;AAEpC;AACW,aAAA,QAAQ,WAAW;IAC9B;AAAA,EAAA;AAEJ,MAAI,WAAW;AACf,MAAI,YAAY;AAEhB,WAAS,OAAO,aAAa,SAAS,MAAM,GAAG;AACnD;AACA,SAAS,sBAAsB,UAAU,SAAS;AAC9C,mBAAiB,UAAU,OAAO;AAClC,QAAM,MAAM,SAAS;AACV,aAAA,QAAQ,CAACqD,YAAW;AACvB,QAAAA,OAAM,IAAI,YAAa,MAAM;AAC7B,YAAM,aAAa,IAAI;AACnB,UAAA,cAAc,WAAWA,OAAM,GAAG;AAClC,eAAO,WAAWA,OAAM,EAAE,MAAM,YAAY,IAAI;AAAA,MACpD;AAAA,IAAA;AAAA,EACJ,CACH;AACL;AACA,SAAS,UAAU,UAAU,YAAYc,QAAO;AAC5C,QAAM,MAAM,SAAS;AACrBA,SAAM,QAAQ,CAAC,SAAS;AAChB,QAAApE,SAAO,YAAY,IAAI,GAAG;AAC1B,eAAS,IAAI,IAAI,IAAI,IAAI,IAAI,WAAW,IAAI;AAAA,IAChD;AAAA,EAAA,CACH;AACL;AACA,SAAS,QAAQ,MAAM;AACb,QAAA,QAAQ,KAAK,EAAE,IAAI;AACrB,MAAA,SAAS,MAAM,QAAQ;AAChB,WAAA;AAAA,EACX;AACO,SAAA;AACX;AACA,SAAS,SAAS,MAAM,MAAM;AAC1B,MAAI,SAAS,WAAW;AACX,aAAA,KAAK,MAAM,IAAI;AACxB,SAAK,EAAE,YAAY;AACZ,WAAA;AAAA,EACX;AACM,QAAA,QAAQ,KAAK,EAAE,IAAI;AAClB,SAAA,SAAS,eAAe,OAAO,IAAI;AAC9C;AAEA,MAAM,kBAAkB;AAAA,EACpB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA;AAAA;AAAA;AAKJ;AACA,SAAS,UAAU,YAAY,QAAQ,oBAAI,OAAO;AAC9C,MAAI,YAAY;AACZ,WAAO,KAAK,UAAU,EAAE,QAAQ,CAAC,SAAS;AACtC,UAAI,mBAAmB,MAAM,WAAW,IAAI,CAAC,GAAG;AAC5C,cAAM,IAAI,IAAI;AAAA,MAClB;AAAA,IAAA,CACH;AACwB;AACrB,YAAM,EAAE,SAAS,gBAAgB,OAAA,IAAW;AAC5C,UAAI,QAAQ;AACR,eAAO,QAAQ,CAACuG,WAAU,UAAUA,QAAO,KAAK,CAAC;AAAA,MACrD;AACA,UAAI,gBAAgB;AAChB,kBAAU,gBAAgB,KAAK;AAAA,MACnC;AAAA,IACJ;AAAA,EACJ;AACO,SAAA;AACX;AACA,SAAS,SAAS,WAAW,MAAM,UAAU;AACrC,MAAA,SAAS,QAAQ,IAAI,MAAM,MAAM,CAACvG,SAAO,WAAW,IAAI,GAAG;AACjD,cAAA,IAAI,IAAI,SAAU,MAAM;AAC9B,aAAO,KAAK,OAAO,KAAK,IAAI,UAAU,MAAM,IAAI;AAAA,IAAA;AAAA,EAExD;AACJ;AACA,MAAM,gBAAgB,CAAC,QAAQ;AAC/B,SAAS,UAAU,WAAW,OAAO,WAAW,eAAe;AAC3D,QAAM,QAAQ,CAAC,SAAS,SAAS,WAAW,MAAM,QAAQ,CAAC;AAC/D;AACA,SAAS,iBAAiB,WAAW,YAAY,WAAW,eAAe;AAC7D,YAAA,UAAU,EAAE,QAAQ,CAAC,SAAS,SAAS,WAAW,MAAM,QAAQ,CAAC;AAC/E;AACA,SAAS,iBAAiB,WAAW,cAAc;AAC/C,MAAI,CAAC,cAAc;AACf;AAAA,EACJ;AACM,QAAA,QAAQ,OAAO,KAAK,+BAA+B;AACnD,QAAA,QAAQ,CAAC,SAAS;AAChB,QAAA,eAAe,gCAAgC,IAAI,GAAG;AAC7C,eAAA,WAAW,MAAM,CAAA,CAAE;AAAA,IAChC;AAAA,EAAA,CACH;AACL;AACA,MAAM,+CAA2C,MAAM;AACnD,QAAM,eAAe,CAAA;AACf,QAAA,MAAMK,aAAW,MAAM,KAAK,OAAO,EAAE,cAAc,MAAM;AAC/D,MAAI,OAAO,IAAI,OAAO,IAAI,IAAI,GAAG;AAC7B,UAAM,SAAS,IAAI,IAAI,EAAE,WAAW;AAChC,QAAAJ,UAAQ,MAAM,GAAG;AACX,YAAA,QAAQ,OAAO,KAAK,+BAA+B;AAClD,aAAA,QAAQ,CAACsG,WAAU;AAChB,cAAA,QAAQ,CAAC,SAAS;AAChB,cAAAvG,SAAOuG,QAAO,IAAI,KAAK,CAAC,aAAa,SAAS,IAAI,GAAG;AACrD,yBAAa,KAAK,IAAI;AAAA,UAC1B;AAAA,QAAA,CACH;AAAA,MAAA,CACJ;AAAA,IACL;AAAA,EACJ;AACO,SAAA;AACX,CAAC;AACD,SAAS,sBAAsB,WAAW;AAC5B,YAAA,WAAW,uBAAuB;AAChD;AAEA,MAAM,QAAQ;AAAA,EACV;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ;AACA,SAAS,SAAS,UAAU,iBAAiB;AACzC,QAAM,mBAAmB,SAAS;AASlC,QAAM,aAAa;AAAA,IACf,YAAa,SAAS,YAAY,SAAS,SAAS,cAAe,CAAC;AAAA,IACpE,KAAK;AAAA;AAAA,IACL,SAAS,SAAS;AACd,WAAK,MAAM;AACX,YAAM,MAAM,iBAAiB;AACzB,UAAA,KAAK,OAAO,IAAI,QAAQ;AAExB;AAAA,MACJ;AACA,uBAAiB,kBAAkB;AAAA,QAC/B,QAAQ;AAAA,QACR,YAAY;AAAA,QACZ,OAAO,CAAC;AAAA,MAAA,CACX;AACD,UAAI,aAAa,KAAK;AACb,eAAA,UAAU,WAAW,OAAO;AAAA,IACzC;AAAA,EAAA;AAEE,QAAA,EAAE,QAAY,IAAA;AACpB,MAAI,SAAS;AACT,qBAAiB,WAAW,OAAO,eAAe,CAAC,QAAQ;AAC9C,eAAA,UAAU,UAAU,GAAG;AAAA,IAAA;AAAA,EAExC;AACA,aAAW,QAAQ;AACb,QAAA,aAAa,SAAS,EAAE;AAC9B,YAAU,YAAY,KAAK;AAC3B,mBAAiB,YAAY,UAAU;AACd;AACrB,UAAM,UAAU,WAAW;AAChB,eAAA,OAAO,YAAY,OAAO;AAAA,EACzC;AAIO,SAAA;AACX;AACA,SAAS,cAAc,iBAAiB;AAC7B,SAAA,SAASH,WAAU,IAAI;AAC1B,WAAO,IAAI,SAAS,EAAmB,CAAC;AAAA,EAAA;AAEhD;AACA,SAAS,wBAAwB,iBAAiB;AACvC,SAAA,SAASA,WAAU,IAAI;AACpB,UAAA,aAAa,SAAS,EAAmB;AAC/C,UAAM,MAAM/F,aAAW,MAAM,KACzB,OAAO;AAAA,MACH,cAAc;AAAA,IAAA,CACjB;AACL,QAAI,CAAC;AACD;AACD,OAAA,EAAE,IAAI,SAAS;AAClB,UAAM,aAAa,IAAI;AACvB,QAAI,YAAY;AACZ,aAAO,KAAK,WAAW,UAAU,EAAE,QAAQ,CAAC,SAAS;AACjD,YAAI,CAACL,SAAO,YAAY,IAAI,GAAG;AAC3B,qBAAW,IAAI,IAAI,WAAW,WAAW,IAAI;AAAA,QACjD;AAAA,MAAA,CACH;AAAA,IACL;AACA,WAAO,KAAK,UAAU,EAAE,QAAQ,CAAC,SAAS;AACtC,UAAI,CAACA,SAAO,KAAK,IAAI,GAAG;AAChB,YAAA,IAAI,IAAI,WAAW,IAAI;AAAA,MAC/B;AAAA,IAAA,CACH;AACD,qBAAiB,YAAY,EAAE;AAAA,EAK/B;AAER;AACA,SAAS,iBAAiB,YAAY,IAAI;AAClC,MAAAK,aAAW,WAAW,QAAQ,GAAG;AACjC,UAAM,OAAO,GAAG,wBAAwB,GAAG,qBAAqB;AAChE,eAAW,SAAS,IAAI;AAAA,EAC5B;AACA,MAAIA,aAAW,WAAW,MAAM,KAAK,GAAG,WAAW;AAC5C,OAAA,UAAU,CAAC,SAAS;AAChB,SAAA,UAAU,UAAU,IAAI;AAAA,IAAA,CAC9B;AAAA,EACL;AACA,MAAIA,aAAW,WAAW,MAAM,KAAK,GAAG,WAAW;AAC5C,OAAA,UAAU,CAAC,SAAS;AAChB,SAAA,UAAU,UAAU,IAAI;AAAA,IAAA,CAC9B;AAAA,EACL;AACJ;AACA,SAAS,WAAW,OAAO;AACjB,QAAA,SAAS,IAAI,gBAAgB,GAAG,oBAAoB,QAAQ,KAAK,SAAS;AACzE,SAAA,eAAe,OAAO,WAAW;AAAA,IACpC,MAAM;AACF,aAAO,OAAO;AAAA,IAClB;AAAA,IACA,IAAIiB,IAAG;AACH,aAAO,QAAQA;AAAA,IACnB;AAAA,EAAA,CACH;AACL;AAEA,SAAS,WAAW,QAAQ,YAAY;AACpC,MAAI,CAAC,QAAQ;AACT;AAAA,EACJ;AACM,QAAA,MAAM,OAAO,MAAM,GAAG;AAC5B,QAAM,MAAM,IAAI;AAChB,MAAI,QAAQ,GAAG;AACA,eAAA,UAAU,IAAI,CAAC;AAAA,EAAA,WAErB,QAAQ,GAAG;AACL,eAAA,UAAU,IAAI,CAAC;AACf,eAAA,WAAW,IAAI,CAAC;AAAA,EAC/B;AACJ;AACA,MAAM,SAAS,CAAC,iBAAiB;AACjC,SAAS,iBAAiB,6BAA6B,YAAY;AACxD,SAAA,QAAQ,CAAC,SAAS;AACjB,QAAAtB,SAAO,YAAY,IAAI,GAAG;AACE,kCAAA,IAAI,IAAI,WAAW,IAAI;AAAA,IACvD;AAAA,EAAA,CACH;AACL;AACA,MAAM,aAAa;AACnB,SAAS,mBAAmB,WAAW,YAAY;AAC/C,MAAI,YAAY;AACZ,WAAO,KAAK,UAAU,EAAE,QAAQ,CAAC,SAAS;AAChC,YAAAkI,WAAU,KAAK,MAAM,UAAU;AACrC,UAAIA,UAAS;AACH,cAAA,cAAcA,SAAQ,CAAC;AACnB,kBAAA,IAAI,IAAI,WAAW,IAAI;AACvB,kBAAA,WAAW,IAAI,WAAW,WAAW;AAAA,MACnD;AAAA,IAAA,CACH;AAAA,EACL;AACJ;AACA,SAAS,mBAAmB,SAAS,gBAAgB;AAC7C,MAAA,CAACjI,UAAQ,cAAc,GAAG;AAC1B;AAAA,EACJ;AACe,iBAAA,QAAQ,CAAC,eAAe;AAC3B,YAAA,UAAU,IAAI,SAAU,MAAM;AAClC,aAAO,KAAK,IAAI,UAAU,EAAE,IAAI;AAAA,IAAA;AAAA,EACpC,CACH;AACL;AACA,SAAS,oBAAoB,YAAY,UAAU,OAAO;AAChD,QAAA,aAAa,WAAW,oBAAoB,QAAQ;AAC/C,aAAA,QAAQ,CAAC,cAAc;AACxBkH,UAAAA,OAAM,UAAU,WAAW;AAC3BA,UAAAA,IAAG,IAAI,UAAU,OAAO;AAAA,EAAA,CACjC;AACL;AACA,SAAS,SAAS,UAAU,YAAY;AAC7B,SAAA,eAAe,UAAU,QAAQ;AAAA,IACpC,MAAM;AACF,YAAM,QAAQ,CAAA;AACM,0BAAA,YAAY,MAAM,KAAK;AACrC,YAAA,gBAAgB,WAAW,oBAAoB,QAAQ;AAC/C,oBAAA,QAAQ,CAAC,cAAc;AAC3BA,cAAAA,OAAM,UAAU,WAAW;AACjC,YAAI,CAACA,MAAK;AACN;AAAA,QACJ;AACI,YAAA,CAAC,MAAMA,IAAG,GAAG;AACPA,gBAAAA,IAAG,IAAI;QACjB;AACA,cAAMA,IAAG,EAAE,KAAK,UAAU,OAAO,SAAS;AAAA,MAAA,CAC7C;AACM,aAAA;AAAA,IACX;AAAA,EAAA,CACH;AACL;AACA,SAAS,cAAc,UAAU,QAAQ;AAErC,QAAM,YAAY,SAAS;AAE3B,WAASrH,KAAI,UAAU,SAAS,GAAGA,MAAK,GAAGA,MAAK;AACtC,UAAA,UAAU,UAAUA,EAAC;AACvB,QAAA,QAAQ,OAAO,YAAY,QAAQ;AAC5B,aAAA;AAAA,IACX;AAAA,EACJ;AAEI,MAAA;AACJ,WAASA,KAAI,UAAU,SAAS,GAAGA,MAAK,GAAGA,MAAK;AAC5C,eAAW,cAAc,UAAUA,EAAC,GAAG,MAAM;AAC7C,QAAI,UAAU;AACH,aAAA;AAAA,IACX;AAAA,EACJ;AACJ;AAEA,MAAM,eAAe;AAAA;AAAA;AAAA,EAGjB;AAAA;AAAA,EAEA;AAAA;AAAA,EAEA;AAAA;AAAA,EAEA;AAAA;AAAA,EAEA;AAAA;AAAA,EAEA;AAAA;AAAA,EAEA;AACJ;AACA,SAAS,iBAAiB,SAAS,aAAa,OAAO;AACnD,QAAM,aAAa,CAAA;AACnB,MAAI,CAAC,YAAY;AAEA,iBAAA,QAAQ,CAAC,SAAS;AAC3B,iBAAW,IAAI,IAAI;AAAA,QACf,MAAM;AAAA,QACN,OAAO;AAAA,MAAA;AAAA,IACX,CACH;AAED,eAAW,KAAK;AAAA,MACZ,MAAM;AAAA,MACN,OAAO,CAAC;AAAA,MACR,UAAU,SAAU,QAAQ;AAClB,cAAA,SAAgB,uBAAA,OAAO,IAAI;AAE7B,kBAAA,OAAO,QAAQ,CAAC,aAAa;AACzB,iBAAO,QAAQ,IAAI;AAAA,QAAA,CACtB;AACL,aAAK,QAAQ;AAAA,UACT;AAAA,QAAA,CACH;AAAA,MACL;AAAA,IAAA;AAAA,EAER;AACA,MAAI,QAAQ,WAAW;AAEnB,QAAI,QAAQ,UAAU,SAAS,yBAAyB,GAAG;AACvD,UAAI,CAAC,QAAQ,cAAc,CAAC,QAAQ,WAAW,MAAM;AACjD,mBAAW,OAAO;AAAA,UACd,MAAM;AAAA,UACN,OAAO;AAAA,QAAA;AAAA,MAEf;AACA,UAAI,CAAC,QAAQ,cAAc,CAAC,QAAQ,WAAW,OAAO;AAClD,mBAAW,QAAQ;AAAA,UACf,MAAM;AAAA,UACN,OAAO;AAAA,QAAA;AAAA,MAEf;AAAA,IACJ;AAAA,EACJ;AACO,SAAA;AACX;AACA,SAAS,qBAAqB,SAAS;AACnC,QAAM,aAAa,CAAA;AACnB;AACS,QAAA,WAAW,QAAQ,aAAc;AAClC,iBAAW,mBAAmB;AAAA,QAC1B,MAAM;AAAA,QACN,OAAO;AAAA,MAAA;AAEX,iBAAW,mBAAmB;AAAA,QAC1B,MAAM;AAAA,QACN,OAAO;AAAA,MAAA;AAAA,IAEf;AAAA,EACJ;AACO,SAAA;AACX;AAMA,SAAS,UAAU,oBAAoB;AAC/B,MAAA,CAAC,mBAAmB,YAAY;AAChC,uBAAmB,aAAa;EACpC;AACO,SAAA,mBAAmB,YAAY,iBAAiB,kBAAkB,GAAG,qBAAqB,mBAAmB,OAAO,CAAC;AAChI;AACA,MAAM,aAAa,CAAC,QAAQ,QAAQ,SAAS,QAAQ,OAAO,IAAI;AAChE,SAAS,cAAc,MAAM,cAAc;AAEvC,MAAIG,UAAQ,IAAI,KAAK,KAAK,WAAW,GAAG;AACpC,WAAO,KAAK,CAAC;AAAA,EACjB;AACO,SAAA;AACX;AACA,SAAS,kBAAkB,MAAM,cAAc;AACrC,QAAA,MAAM,cAAc,IAAI;AAC9B,SAAO,WAAW,QAAQ,GAAG,MAAM,KAAK,MAAM;AAClD;AAMA,SAAS,cAAc,EAAE,WAAW,GAAG,UAAU;AACzC,MAAAA,UAAQ,QAAQ,GAAG;AACV,aAAA,QAAQ,CAAC,QAAQ;AACtB,iBAAW,GAAG,IAAI;AAAA,QACd,MAAM;AAAA,QACN,OAAO;AAAA,MAAA;AAAA,IACX,CACH;AAAA,EAAA,WAEIU,gBAAc,QAAQ,GAAG;AAC9B,WAAO,KAAK,QAAQ,EAAE,QAAQ,CAAC,QAAQ;AAC7B,YAAA,OAAO,SAAS,GAAG;AACrB,UAAAA,gBAAc,IAAI,GAAG;AAErB,YAAI,QAAQ,KAAK;AACb,YAAAN,aAAW,KAAK,GAAG;AACnB,kBAAQ,MAAM;AAAA,QAClB;AACA,cAAM,OAAO,KAAK;AACb,aAAA,OAAO,kBAAkB,IAAI;AAClC,mBAAW,GAAG,IAAI;AAAA,UACd,MAAM,KAAK;AAAA,UACX;AAAA,QAAA;AAAA,MACJ,OAEC;AAED,mBAAW,GAAG,IAAI;AAAA,UACd,MAAM,kBAAkB,IAAI;AAAA,QAAA;AAAA,MAEpC;AAAA,IAAA,CACH;AAAA,EACL;AACJ;AACA,SAAS,cAAc,YAAY8H,SAAQ;AAC9BA,UAAAA,UACH,kBAAkB,UAAU,IAC5B,uBAAuB,WAAW,EAAE,MAAM;AACpD;AACA,SAAS,kBAAkB,YAAY;AACnC,QAAM,YAAY,CAAA;AACd,MAAAxH,gBAAc,UAAU,GAAG;AAC3B,WAAO,KAAK,UAAU,EAAE,QAAQ,CAAC,SAAS;AACtC,UAAI,aAAa,QAAQ,IAAI,MAAM,IAAI;AACzB,kBAAA,IAAI,IAAI,WAAW,IAAI;AAAA,MACrC;AAAA,IAAA,CACH;AAAA,EACL;AACO,SAAA;AACX;AACA,SAAS,cAAc,IAAI;AAEvB,QAAM,aAAa,GAAG;AAClB,MAAAV,UAAQ,WAAW,SAAS,KAC5B,WAAW,UAAU,SAAS,kBAAkB,GAAG;AAChD,OAAA,OAAO,cAAc,MAAM;AACvB,SAAA,UACC,GAAG,OAAO,QAAQ;AAAA,QACd,MAAM,GAAG;AAAA,QACT,OAAO,GAAG;AAAA,MAAA,CACb;AAAA,IAAA,GACN;AAAA,MACC,WAAW;AAAA,IAAA,CACd;AAAA,EACL;AACJ;AAEA,SAAS,SAASY,IAAG;AACjB,SAAO;AACX;AACA,SAAS,kBAAkB,kBAAkB;AACnC,QAAA,UAAU,SAASuH,WAAU;AACzB,UAAA,KAAK,KAAK,WAAW;AAC3B,QAAI,CAAC,IAAI;AACL;AAAA,IACJ;AACA,QAAI,KAAK,KAAK;AACW,2BAAA,IAAI,KAAK,IAAI,CAAC;AAAA,IAE9B,WAAA,KAAK,WAAW,OAAO,KAAK;AAEjC,2CAAqC,IAAI,IAAI;AAAA,IACjD;AAAA,EAAA;AAEJ;AACQ,QAAA,CAAC,iBAAiB,WAAW;AAC7B,uBAAiB,YAAY;IACjC;AACA,qBAAiB,UAAU,KAAK;AAAA,EACpC;AACJ;AACA,SAAS,qCAAqC,IAAI,YAAY;AAC1D,QAAM,YAAY,WAAW;AAC7B,QAAM,YAAY,uBAAuB,EAAE,KAAK,CAAA;AAChD,MAAI,gBAAgB,WAAW,WAAW,KAAK,GAAG;AAC9C,eAAW,QAAQ,SAAS;AAAA,EAChC;AACJ;AACA,SAAS,qBAAqB,IAAI,UAAU;AAClC,QAAA,YAAY,MAAM,SAAS,KAAK;AACtC,QAAM,YAAY,uBAAuB,EAAE,KAAK,CAAA;AAC5C,MAAA,gBAAgB,WAAW,SAAS,GAAG;AAC3B,gBAAA,UAAU,WAAW,SAAgB;AAC7C,QAAA,YAAY,SAAS,MAAM,GAAG;AAC9B,oBAAc,SAAS,MAAM;AAAA,IACjC;AACA;AACI,eAAS,OAAO;AAAA,IACpB;AAAA,EACJ;AACJ;AACA,SAAS,gBAAgB,WAAW,WAAW,WAAW,MAAM;AACtD,QAAA,WAAW,OAAO,KAAK,SAAS;AACtC,MAAI,YAAY,SAAS,WAAW,OAAO,KAAK,SAAS,EAAE,QAAQ;AACxD,WAAA;AAAA,EACX;AACA,WAAStI,KAAI,GAAGA,KAAI,SAAS,QAAQA,MAAK;AAChC,UAAA,MAAM,SAASA,EAAC;AACtB,QAAI,UAAU,GAAG,MAAM,UAAU,GAAG,GAAG;AAC5B,aAAA;AAAA,IACX;AAAA,EACJ;AACO,SAAA;AACX;AACA,SAAS,cAAc,YAAY;AAC/B,QAAM,eAAe,WAAW;AAChC,MAAI,WAAW,WAAW;AAC1B,MAAI,CAAC,UAAU;AACA,eAAA,QAAQ,WAAW;EAClC;AACA,QAAM,YAAY,CAAA;AACd,MAAAG,UAAQ,YAAY,GAAG;AACV,iBAAA,QAAQ,CAAC,aAAa;AAC/B,gBAAU,KAAK,SAAS,QAAQ,UAAU,eAAe,CAAC;AAC1D,UAAI,aAAa,oBAAoB;AAC7B,YAAAA,UAAQ,QAAQ,GAAG;AACnB,mBAAS,KAAK,MAAM;AACpB,mBAAS,KAAK,YAAY;AAAA,QAAA,OAEzB;AACD,mBAAS,OAAO;AAAA,YACZ,MAAM;AAAA,YACN,SAAS;AAAA,UAAA;AAEb,mBAAS,aAAa;AAAA,YAClB,MAAM,CAAC,QAAQ,QAAQ,SAAS,OAAO,QAAQ,IAAI;AAAA,YACnD,SAAS;AAAA,UAAA;AAAA,QAEjB;AAAA,MACJ;AAAA,IAAA,CACH;AAAA,EACL;AACO,SAAA;AACX;AACA,SAAS,aAAa,kBAAkB,YAAY;AAChD,mBAAiB,OAAO;AACP,mBAAA,YAAY,cAAc,UAAU;AACzD;AAEA,SAAS,eAAe,YAAY,EAAE,OAAA8B,QAAO,OAAAqC,QAAO,QAAA+D,SAAQ,cAAAE,eAAc,YAAAC,aAAY,eAAAC,kBAAkB;AACpG,eAAa,WAAW,WAAW;AACnC,QAAM,UAAU;AAAA,IACZ,eAAe;AAAA;AAAA,IAEf,gBAAgB;AAAA,IAChB,iBAAiB;AAAA,EAAA;AAEjB,MAAAtI,UAAQ,WAAW,MAAM,GAAG;AACjB,eAAA,OAAO,QAAQ,CAAC,SAAS;AAC5B,UAAAO,WAAS,KAAK,OAAO,GAAG;AACjB,eAAA,SAAS,KAAK,OAAO;AAAA,MAChC;AAAA,IAAA,CACH;AAAA,EACL;AACA,MAAI,WAAW,SAAS;AACb,WAAA,SAAS,WAAW,OAAO;AAAA,EACtC;AACA,QAAM,qBAAqB;AAAA,IACvB;AAAA,IACA,WAAW+H,eAAc,EAAE,OAAAnE,QAAO,QAAA+D,SAAQ,cAAAE,eAAc,YAAY;AAAA,IACpE,eAAe;AAAA,MACX,OAAO;AAIH,aAAK,OAAO,KAAK,IAAI,UAAU,YAAY;AAAA,MAC/C;AAAA,MACA,OAAO;AACH,aAAK,OAAO,KAAK,IAAI,UAAU,YAAY;AAAA,MAC/C;AAAA,MACA,OAAOzC,OAAM;AACT,aAAK,OAAO,KAAK,IAAI,UAAU,gBAAgBA,KAAI;AAAA,MACvD;AAAA,IACJ;AAAA,IACA,SAAS;AAAA,MACL,KAAK0C;AAAAA,IACT;AAAA,EAAA;AAEqB;AACrB,iBAAa,oBAAoB,UAAU;AAAA,EAC/C;AACA,YAAU,kBAAkB;AAC5B,oBAAkB,kBAAkB;AACpC,mBAAiB,oBAAoB,UAAU;AAC5B,qBAAA,mBAAmB,SAAS,WAAW,cAAc;AACxE;AACuB,uBAAA,mBAAmB,SAAS,WAAW,OAAO;AAAA,EACrE;AACA,MAAIvG,QAAO;AACP,IAAAA,OAAM,oBAAoB,EAAE,YAAAuG,YAAY,CAAA;AAAA,EAC5C;AACO,SAAA;AACX;AACA,SAAS,oBAAoBE,eAAc;AAChC,SAAA,SAASd,iBAAgB,qBAAqB;AACjD,WAAO,UAAU,eAAe,qBAAqBc,aAAY,CAAC;AAAA,EAAA;AAE1E;AACA,IAAI;AACJ,IAAI;AACJ,SAAS,WAAW;AAOhB,SAAO,OAAS,EAAA;AACpB;AACA,SAAS,iBAAiB,cAAc,SAAS;AAC7C,MAAI,CAAC,oBAAoB;AACrB,yBAAqB,SAAW,EAAA;AAAA,EACpC;AACM,QAAA,QAAQ,mBAAmB,cAAc,OAAO;AAC/C,SAAA,eAAe,MAAM,CAAC,KAAK;AACtC;AACA,SAAS,kBAAkB,UAAU;AACjC,MAAI,CAAC,qBAAqB;AACtB,0BAAsB,SAAW,EAAA;AAAA,EACrC;AACA,SAAO,oBAAoB,QAAQ;AACvC;AAEA,SAAS,UAAU,YAAYA,eAAc;AACzC,QAAM,EAAE,OAAAzG,QAAO,OAAAqC,QAAO,QAAA+D,SAAQ,cAAAE,eAAc,YAAAC,aAAY,eAAAC,eAAAA,IAAkBC;AACpE,QAAA,yBAAyB,eAAe,YAAY;AAAA,IACtD,OAAApE;AAAAA,IACA,QAAA+D;AAAAA,IACA,cAAAE;AAAAA,IACA,YAAAC;AAAAA,IACA,eAAAC;AAAAA,EAAA,CACH;AACD,gBAAc,yBAAyB,WAAW,WAAW,YAAY,KAAK;AAC9E,QAAM,UAAU,uBAAuB;AAC/B,UAAA,SAAS,SAAU,OAAO;AAC9B,SAAK,UAAU;AACf,SAAK,QAAQ;AAAA,MACT,UAAU,gBAAgB,KAAK,QAAQ,eAAe,KAAK,CAAC;AAAA,IAAA;AAEhE,WAAO,KAAK,OAAO,KAAK,IAAI,UAAU,SAAS,KAAK;AAAA,EAAA;AAExD,YAAU,SAAS,eAAe;AAClC;AACI,qBAAiB,SAAS,UAAU;AAAA,EACxC;AACiB,mBAAA,SAAS,WAAW,cAAc;AACnD,wBAAsB,OAAO;AAC7B,EAAAxG,UAASA,OAAM,wBAAwB,EAAE,YAAAuG,YAAY,CAAA;AAC9C,SAAA;AACX;AACA,SAAS,eAAeE,eAAc;AAC3B,SAAA,SAASC,YAAW,gBAAgB;AACvC,WAAO,UAAU,UAAU,gBAAgBD,aAAY,CAAC;AAAA,EAAA;AAEhE;AAEA,SAAS,oBAAoB,iBAAiB;AACnC,SAAA,SAASpC,WAAU,IAAI;AAC1B,qBAAiB,SAAS,EAAmB,GAAG,EAAE;AAAA,EAGlD;AAER;AAEA,MAAM,SAAS;AACf,MAAM,cAAc;AACpB,SAAS,iBAAiB,YAAY;AAClC,QAAM,kBAAkB,WAAW;AAC7B,QAAA,kBAAkB,SAAU,UAAU,MAAM;AACvC,WAAA,gBAAgB,MAAM,YAAY,CAAC,eAAe,KAAK,GAAG,GAAG,IAAI,CAAC;AAAA,EAAA;AAGzE,MAAA;AACA,eAAW,eAAe;AAAA,WAEvB,OAAO;AACV,eAAW,gBAAgB;AAAA,EAC/B;AACJ;AACA,SAAS,oBAAoB,MAAM,SAAS,aAAa;AAC/C,QAAA,UAAU,QAAQ,IAAI;AAC5B,MAAI,CAAC,SAAS;AACF,YAAA,IAAI,IAAI,WAAY;AACxB,uBAAiB,IAAI;AAAA,IAAA;AAAA,EACzB,OAEC;AACO,YAAA,IAAI,IAAI,YAAa,MAAM;AAC/B,uBAAiB,IAAI;AACd,aAAA,QAAQ,MAAM,MAAM,IAAI;AAAA,IAAA;AAAA,EAEvC;AACJ;AACA,OAAO,SAAU,SAAS;AACtB,sBAAoB,SAAS,OAAO;AACpC,SAAO,OAAO,OAAO;AACzB;AACA,YAAY,SAAU,SAAS;AAC3B,sBAAoB,WAAW,OAAO;AAEtC,QAAM,iBAAiB,QAAQ,cAAc,QAAQ,WAAW;AAChE,MAAI,CAAC,gBAAgB;AACjB,cAAU,OAAO;AACjB,sBAAkB,OAAO;AAAA,EAC7B;AACA,SAAO,YAAY,OAAO;AAC9B;AAGA,SAAS,cAAc,EAAE,OAAAhC,QAAO,QAAA+D,SAAQ,cAAAE,eAAc,cAAe;AAC1D,SAAA;AAAA,IACH,WAAW;AACP,UAAI,aAAa,KAAK;AACX,iBAAA,WAAW,IAAI,IAAI;AAC9B,YAAM,kBAAkB;AAAA,QACpB,QAAQ,KAAK;AAAA,MAAA;AAGjBA,oBAAa,MAAM,eAAe;AAElC,YAAM,aAAa;AACb,YAAA,oBAAoBF,QAAO,UAAU;AAC3C,UAAI,YAAY;AAChB,WAAK,MAAM,iBAAiB;AAAA,QACxB,MAAM;AAAA,QACN,OAAO,cAAc,WAAW,iBAAiB;AAAA,MAAA,GAClD;AAAA,QACC,QAAQ,oBAAoB,SAAS;AAAA,QACrC;AAAA,QACA,OAAO,WAAW,MAAM,CAAC;AAAA;AAAA,QACzB,iBAAiB,gBAAgB,UAAU,gBAAgB,OAAO;AAAA,QAClE,cAAc,UAAU,SAAS;AAC7B,mBAAS,UAAU,UAAU;AACnB,oBAAA,UAAU,YAAY/D,MAAK;AACrC,gCAAsB,UAAU,OAAO;AAAA,QAC3C;AAAA,MAAA,CACH;AACD,UAAI,CAAC,mBAAmB;AACpB,sBAAc,KAAK,GAAG;AAAA,MAC1B;AAAA,IACJ;AAAA,IACA,QAAQ;AAGJ,UAAI,KAAK,KAAK;AACV;AACS,eAAA,IAAI,UAAU,SAAS;AACvB,eAAA,IAAI,UAAU,QAAQ;AAAA,QAC/B;AAAA,MACJ;AAAA,IACJ;AAAA,IACA,WAAW;AACP,UAAI,KAAK,KAAK;AACe,iCAAA,KAAK,IAAI,EAAE,GAAG;AACvC,0BAAkB,KAAK,GAAG;AAAA,MAC9B;AAAA,IACJ;AAAA,EAAA;AAER;AAEA,MAAM,QAAQ,CAAC,aAAa,wBAAwB,iBAAiB;AACrE,SAAS,OAAO,YAAY;AACjB,SAAA,CAAC,CAAC,WAAW;AACxB;AACA,SAAS,aAAa,YAAY,QAAQ;AAC3B,aAAA,aAAa,OAAO,MAAM;AACzC;AACA,SAAS,WAAW,OAAO;AAEjB,QAAA,SAAU,MAAM,UAClB,MAAM;AACV,QAAM,SAAS,OAAO;AAClB,MAAA;AACJ,MAAI,QAAQ;AACG,eAAA,cAAc,KAAK,KAAK,MAAM;AAAA,EAC7C;AACA,MAAI,CAAC,UAAU;AACX,eAAW,KAAK;AAAA,EACpB;AACA,SAAO,SAAS;AACpB;AAEA,IAAI,sCAAmC,OAAO;AAAA,EAC5C,WAAW;AAAA,EACX;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAED,MAAM,YAAY,cAAc;AAChC,MAAM,aAAa,eAAe,YAAY;AAC9C,MAAM,kBAAkB,oBAAoB,YAAY;AACxD,MAAM,kBAAkB,oBAAoB;AAC5C,MAAM,sBAAsB,wBAAwB;AACpD;AACO,KAAA,YAAY,OAAO,YAAY;AAClC,KAAG,aAAa;AAChB,KAAG,kBAAkB;AAClB,KAAA,kBAAkB,OAAO,kBACxB;AACD,KAAA,sBAAsB,OAAO,sBAC5B;AACR;AC50BA,MAAM,aAAa,CAAC,cAAc,CAAC,MAAM,SAAS,mBAAkB,MAAO;AAEvE,GAAC,yBAAyB,WAAW,WAAW,MAAM,MAAM;AAChE;AACK,MAAC,SAAuB,2BAAW,OAAO;AAC1C,MAAC,SAAuB,2BAAW,OAAO;AAC1C,MAAC,WACQ,2BAAW,SAAS;AAY7B,MAAC,SACQ,2BAAW,OAAO;AAC3B,MAAC,UAAwB,2BAAW,QAAQ;AAC5C,MAAC,WAAyB,2BAAW,SAAS;AAG9C,MAAC,cACQ,2BAAW,aAAa;AACjC,MAAC,eACQ,2BAAW,cAAc;AAGlC,MAAC,gBAA8B,2BAAW,eAAe;AACzD,MAAC,oBAAkC,2BAAW,oBAAoB;AAOlE,MAAC,oBACQ,2BAAW,oBAAoB;AC/G7C,IAAI,SAAS;AAMN,SAASxE,MAAI,QAAQ,KAAK,KAAK;AACpC,MAAI,MAAM,QAAQ,MAAM,GAAG;AACzB,WAAO,SAAS,KAAK,IAAI,OAAO,QAAQ,GAAG;AAC3C,WAAO,OAAO,KAAK,GAAG,GAAG;AACzB,WAAO;AAAA,EACR;AACD,SAAO,GAAG,IAAI;AACd,SAAO;AACT;AAEO,SAAS,IAAI,QAAQ,KAAK;AAC/B,MAAI,MAAM,QAAQ,MAAM,GAAG;AACzB,WAAO,OAAO,KAAK,CAAC;AACpB;AAAA,EACD;AACD,SAAO,OAAO,GAAG;AACnB;ACxBA;AAAA;AAAA;AAAA;AAAA;AAYA,IAAI;AAQJ,MAAM,iBAAiB,CAAC,UAAW,cAAc;AAKjD,MAAM,cAAyD,OAAO,OAAO;AAE7E,SAASe,gBAETqH,IAAG;AACC,SAAQA,MACJ,OAAOA,OAAM,YACb,OAAO,UAAU,SAAS,KAAKA,EAAC,MAAM,qBACtC,OAAOA,GAAE,WAAW;AAC5B;AAMA,IAAI;AAAA,CACH,SAAUU,eAAc;AAQrBA,gBAAa,QAAQ,IAAI;AAMzBA,gBAAa,aAAa,IAAI;AAM9BA,gBAAa,eAAe,IAAI;AAEpC,GAAG,iBAAiB,eAAe,CAAG,EAAA;AAEtC,MAAM,YAAY,OAAO,WAAW;AAOpC,MAAM,eAA6K;AA+ZnL,MAAM,sBAAsB,CAAA;AAU5B,MAAM,eAAe,CAAC,OAAO,QAAQ;AAiNrC,SAAS,mBAAmB,KAAK,OAAO;AACpC,MAAI,CAAC,oBAAoB,SAAS,aAAa,MAAM,GAAG,CAAC,GAAG;AACxD,wBAAoB,KAAK,aAAa,MAAM,GAAG,CAAC;AAAA,EACpD;AA6KJ;AAWA,SAAS,uBAAuB,OAAO,aAAa;AAEhD,QAAM,UAAU,YAAY,OAAO,CAAC,cAAc,eAAe;AAE7D,iBAAa,UAAU,IAAI,MAAM,KAAK,EAAE,UAAU;AAC3C,WAAA;AAAA,EACX,GAAG,CAAE,CAAA;AACL,aAAW,cAAc,SAAS;AACxB,UAAA,UAAU,IAAI,WAAY;AAItB,YAAA,eAAe,IAAI,MAAM,OAAO;AAAA,QAClC,OAAO,MAAM;AAEF,iBAAA,QAAQ,IAAI,GAAG,IAAI;AAAA,QAC9B;AAAA,QACA,OAAO,MAAM;AAEF,iBAAA,QAAQ,IAAI,GAAG,IAAI;AAAA,QAC9B;AAAA,MAAA,CACH;AACD,aAAO,QAAQ,UAAU,EAAE,MAAM,cAAc,SAAS;AAAA,IAAA;AAAA,EAEhE;AACJ;AAIA,SAAS,eAAe,EAAE,KAAK,OAAO,WAAW;AAE7C,MAAI,MAAM,IAAI,WAAW,QAAQ,GAAG;AAChC;AAAA,EACJ;AAEA,MAAI,QAAQ,OAAO;AACf,UAAM,gBAAgB;AAAA,EAC1B;AAGI,MAAA,OAAO,QAAQ,UAAU,YAAY;AACrC;AAAA;AAAA,MAEA;AAAA,MAAO,OAAO,KAAK,QAAQ,OAAO;AAAA,IAAA;AAClC,UAAM,oBAAoB,MAAM;AAEhC,UAAM,KAAK,EAAE,aAAa,SAAU,UAAU;AACxB,wBAAA,MAAM,MAAM,SAAS;AACvC,6BAAuB,OAAO,OAAO,KAAK,SAAS,YAAY,OAAO,CAAC;AAAA,IAAA;AAAA,EAE/E;AACA;AAAA,IAAmB;AAAA;AAAA,IAEnB;AAAA,EAAA;AACJ;AAKA,SAAS,cAAc;AACb,QAAA,QAAQ,YAAY,IAAI;AAG9B,QAAM,QAAQ,MAAM,IAAI,MAAM,IAAI,CAAE,CAAA,CAAC;AACrC,MAAI,KAAK,CAAA;AAET,MAAI,gBAAgB,CAAA;AACpB,QAAM,QAAQ,QAAQ;AAAA,IAClB,QAAQ,KAAK;AAGT,qBAAe,KAAK;AACP;AACT,cAAM,KAAK;AACP,YAAA,QAAQ,aAAa,KAAK;AAC1B,YAAA,OAAO,iBAAiB,SAAS;AAKrC,sBAAc,QAAQ,CAACpC,YAAW,GAAG,KAAKA,OAAM,CAAC;AACjD,wBAAgB,CAAA;AAAA,MACpB;AAAA,IACJ;AAAA,IACA,IAAIA,SAAQ;AACR,UAAI,CAAC,KAAK,MAAM,CAAC,QAAQ;AACrB,sBAAc,KAAKA,OAAM;AAAA,MAAA,OAExB;AACD,WAAG,KAAKA,OAAM;AAAA,MAClB;AACO,aAAA;AAAA,IACX;AAAA,IACA;AAAA;AAAA;AAAA,IAGA,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,wBAAQ,IAAI;AAAA,IACZ;AAAA,EAAA,CACH;AAGG,MAAA,gBAAgB,OAAO,UAAU,aAAa;AAC9C,UAAM,IAAI,cAAc;AAAA,EAC5B;AACO,SAAA;AACX;AAoBA,SAAS,YAAY,UAAU,UAAU;AAErC,aAAW,OAAO,UAAU;AAClB,UAAA,WAAW,SAAS,GAAG;AAEzB,QAAA,EAAE,OAAO,WAAW;AACpB;AAAA,IACJ;AACM,UAAA,cAAc,SAAS,GAAG;AAChC,QAAI3F,gBAAc,WAAW,KACzBA,gBAAc,QAAQ,KACtB,CAAC,MAAM,QAAQ,KACf,CAAC,WAAW,QAAQ,GAAG;AACvB,eAAS,GAAG,IAAI,YAAY,aAAa,QAAQ;AAAA,IAAA,OAEhD;AAMI;AACD,iBAAS,GAAG,IAAI;AAAA,MACpB;AAAA,IACJ;AAAA,EACJ;AACO,SAAA;AACX;AAmDA,MAAMgI,SAAO,MAAM;AAAE;AACrB,SAAS,gBAAgB,eAAe,UAAU,UAAU,YAAYA,QAAM;AAC1E,gBAAc,KAAK,QAAQ;AAC3B,QAAM,qBAAqB,MAAM;AACvB,UAAA,MAAM,cAAc,QAAQ,QAAQ;AAC1C,QAAI,MAAM,IAAI;AACI,oBAAA,OAAO,KAAK,CAAC;AACjB;IACd;AAAA,EAAA;AAEA,MAAA,CAAC,YAAY,mBAAmB;AAChC,mBAAe,kBAAkB;AAAA,EACrC;AACO,SAAA;AACX;AACA,SAAS,qBAAqB,kBAAkB,MAAM;AAClD,gBAAc,MAAM,EAAE,QAAQ,CAAC,aAAa;AACxC,aAAS,GAAG,IAAI;AAAA,EAAA,CACnB;AACL;AAEA,SAAS,qBAAqB,QAAQ,cAAc;AAE5C,MAAA,kBAAkB,OAAO,wBAAwB,KAAK;AACzC,iBAAA,QAAQ,CAAC,OAAO,QAAQ,OAAO,IAAI,KAAK,KAAK,CAAC;AAAA,EAC/D;AAEI,MAAA,kBAAkB,OAAO,wBAAwB,KAAK;AACzC,iBAAA,QAAQ,OAAO,KAAK,MAAM;AAAA,EAC3C;AAEA,aAAW,OAAO,cAAc;AACxB,QAAA,CAAC,aAAa,eAAe,GAAG;AAChC;AACE,UAAA,WAAW,aAAa,GAAG;AAC3B,UAAA,cAAc,OAAO,GAAG;AAC9B,QAAIhI,gBAAc,WAAW,KACzBA,gBAAc,QAAQ,KACtB,OAAO,eAAe,GAAG,KACzB,CAAC,MAAM,QAAQ,KACf,CAAC,WAAW,QAAQ,GAAG;AAIvB,aAAO,GAAG,IAAI,qBAAqB,aAAa,QAAQ;AAAA,IAAA,OAEvD;AAED,aAAO,GAAG,IAAI;AAAA,IAClB;AAAA,EACJ;AACO,SAAA;AACX;AACA,MAAM,oBACA,OAAO,qBAAqB;AAsBlC,SAAS,cAAc,KAAK;AACjB,SAED,CAACA,gBAAc,GAAG,KAAK,CAAC,IAAI,eAAe,iBAAiB;AACtE;AACA,MAAM,EAAEiI,QAAAA,SAAW,IAAA;AACnB,SAAS,WAAWZ,IAAG;AACnB,SAAO,CAAC,EAAE,MAAMA,EAAC,KAAKA,GAAE;AAC5B;AACA,SAAS,mBAAmB,IAAI,SAAS,OAAO,KAAK;AACjD,QAAM,EAAE,OAAO,SAAS,QAAA,IAAY;AACpC,QAAM,eAAe,MAAM,MAAM,MAAM,EAAE;AACrC,MAAA;AACJ,WAAS,QAAQ;AACT,QAAA,CAAC,gBAA6D,CAAC,KAAM;AAKhE;AACD,cAAM,MAAM,MAAM,EAAE,IAAI,QAAQ,UAAU;MAC9C;AAAA,IACJ;AAEA,UAAM,aAAwD;AAAA;AAAA,MAEtD,OAAO,IAAI,QAAQ,MAAA,IAAU,CAAA,CAAE,EAAE,KAAK;AAAA,QACxC,OAAO,MAAM,MAAM,MAAM,EAAE,CAAC;AAClC,WAAOY,SAAO,YAAY,SAAS,OAAO,KAAK,WAAW,CAAA,CAAE,EAAE,OAAO,CAAC,iBAAiB,SAAS;AAC5F,UAA+C,QAAQ,YAAY;AAC/D,gBAAQ,KAAK,uGAAuG,IAAI,eAAe,EAAE,IAAI;AAAA,MACjJ;AACA,sBAAgB,IAAI,IAAI,QAAQ,SAAS,MAAM;AAC3C,uBAAe,KAAK;AAEpB,cAAMC,SAAQ,MAAM,GAAG,IAAI,EAAE;AAQ7B,eAAO,QAAQ,IAAI,EAAE,KAAKA,QAAOA,MAAK;AAAA,MACzC,CAAA,CAAC;AACK,aAAA;AAAA,IAAA,GACR,CAAA,CAAE,CAAC;AAAA,EACV;AACA,UAAQ,iBAAiB,IAAI,OAAO,SAAS,OAAO,KAAK,IAAI;AACtD,SAAA;AACX;AACA,SAAS,iBAAiB,KAAK,OAAO,UAAU,CAAA,GAAI,OAAO,KAAK,gBAAgB;AACxE,MAAA;AACJ,QAAM,mBAAmBD,SAAO,EAAE,SAAS,CAAC,EAAA,GAAK,OAAO;AAET,MAAA,CAAC,MAAM,GAAG,QAAQ;AACvD,UAAA,IAAI,MAAM,iBAAiB;AAAA,EACrC;AAEA,QAAM,oBAAoB;AAAA,IACtB,MAAM;AAAA;AAAA,EAAA;AAI8C;AAClC,sBAAA,YAAY,CAAC,UAAU;AAErC,UAAI,aAAa;AACI,yBAAA;AAAA,MAGZ,WAAA,eAAe,SAAS,CAAC,MAAM,cAAc;AAG9C,YAAA,MAAM,QAAQ,cAAc,GAAG;AAC/B,yBAAe,KAAK,KAAK;AAAA,QAAA,OAExB;AACD,kBAAQ,MAAM,kFAAkF;AAAA,QACpG;AAAA,MACJ;AAAA,IAAA;AAAA,EAER;AAEI,MAAA;AACA,MAAA;AACA,MAAA,gBAAgB,QAAQ,CAAA,CAAE;AAC1B,MAAA,sBAAsB,QAAQ,CAAA,CAAE;AAChC,MAAA;AACJ,QAAM,eAAe,MAAM,MAAM,MAAM,GAAG;AAG1C,MAAI,CAAC,kBAAkB,CAAC,gBAA6D,CAAC,KAAM;AAKnF;AACD,YAAM,MAAM,MAAM,GAAG,IAAI,CAAA;AAAA,IAC7B;AAAA,EACJ;AACM,QAAA,WAAW,IAAI,CAAA,CAAE;AAGnB,MAAA;AACJ,WAAS,OAAO,uBAAuB;AAC/B,QAAA;AACJ,kBAAc,kBAAkB;AAGa;AACzC,uBAAiB,CAAA;AAAA,IACrB;AACI,QAAA,OAAO,0BAA0B,YAAY;AAC7C,4BAAsB,MAAM,MAAM,MAAM,GAAG,CAAC;AACrB,6BAAA;AAAA,QACnB,MAAM,aAAa;AAAA,QACnB,SAAS;AAAA,QACT,QAAQ;AAAA,MAAA;AAAA,IACZ,OAEC;AACD,2BAAqB,MAAM,MAAM,MAAM,GAAG,GAAG,qBAAqB;AAC3C,6BAAA;AAAA,QACnB,MAAM,aAAa;AAAA,QACnB,SAAS;AAAA,QACT,SAAS;AAAA,QACT,QAAQ;AAAA,MAAA;AAAA,IAEhB;AACM,UAAA,eAAgB,iBAAiB;AAC9BE,eAAA,EAAE,KAAK,MAAM;AAClB,UAAI,mBAAmB,cAAc;AACnB,sBAAA;AAAA,MAClB;AAAA,IAAA,CACH;AACiB,sBAAA;AAElB,yBAAqB,eAAe,sBAAsB,MAAM,MAAM,MAAM,GAAG,CAAC;AAAA,EACpF;AACM,QAAA,SAAS,iBACT,SAASC,UAAS;AACV,UAAA,EAAE,MAAU,IAAA;AAClB,UAAM,WAAW,QAAQ,MAAM,IAAI,CAAA;AAE9B,SAAA,OAAO,CAAC,WAAW;AACpBH,eAAO,QAAQ,QAAQ;AAAA,IAAA,CAC1B;AAAA,EACL;AAAA;AAAA,IAGU,MAAM;AACJ,YAAM,IAAI,MAAM,cAAc,GAAG,oEAAoE;AAAA,IAAA;AAAA;AAGrH,WAAS,WAAW;AAChB,UAAM,KAAK;AACX,oBAAgB,CAAA;AAChB,0BAAsB,CAAA;AAChB,UAAA,GAAG,OAAO,GAAG;AAAA,EACvB;AAQS,WAAA,WAAW,MAAM,QAAQ;AAC9B,WAAO,WAAY;AACf,qBAAe,KAAK;AACd,YAAA,OAAO,MAAM,KAAK,SAAS;AACjC,YAAM,oBAAoB,CAAA;AAC1B,YAAM,sBAAsB,CAAA;AAC5B,eAASI,OAAM,UAAU;AACrB,0BAAkB,KAAK,QAAQ;AAAA,MACnC;AACA,eAAS,QAAQ,UAAU;AACvB,4BAAoB,KAAK,QAAQ;AAAA,MACrC;AAEA,2BAAqB,qBAAqB;AAAA,QACtC;AAAA,QACA;AAAA,QACA;AAAA,QACA,OAAAA;AAAA,QACA;AAAA,MAAA,CACH;AACG,UAAA;AACA,UAAA;AACM,cAAA,OAAO,MAAM,QAAQ,KAAK,QAAQ,MAAM,OAAO,OAAO,IAAI;AAAA,eAG7D,OAAO;AACV,6BAAqB,qBAAqB,KAAK;AACzC,cAAA;AAAA,MACV;AACA,UAAI,eAAe,SAAS;AACjB,eAAA,IACF,KAAK,CAAC,UAAU;AACjB,+BAAqB,mBAAmB,KAAK;AACtC,iBAAA;AAAA,QAAA,CACV,EACI,MAAM,CAAC,UAAU;AAClB,+BAAqB,qBAAqB,KAAK;AACxC,iBAAA,QAAQ,OAAO,KAAK;AAAA,QAAA,CAC9B;AAAA,MACL;AAEA,2BAAqB,mBAAmB,GAAG;AACpC,aAAA;AAAA,IAAA;AAAA,EAEf;AACA,QAAM,cAAoC,wBAAA;AAAA,IACtC,SAAS,CAAC;AAAA,IACV,SAAS,CAAC;AAAA,IACV,OAAO,CAAC;AAAA,IACR;AAAA,EAAA,CACH;AACD,QAAM,eAAe;AAAA,IACjB,IAAI;AAAA;AAAA,IAEJ;AAAA,IACA,WAAW,gBAAgB,KAAK,MAAM,mBAAmB;AAAA,IACzD;AAAA,IACA;AAAA,IACA,WAAW,UAAUzF,WAAU,IAAI;AACzB,YAAA,qBAAqB,gBAAgB,eAAe,UAAUA,SAAQ,UAAU,MAAM,aAAa;AACzG,YAAM,cAAc,MAAM,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,GAAG,GAAG,CAAC,UAAU;AAC/E,YAAIA,SAAQ,UAAU,SAAS,kBAAkB,aAAa;AACjD,mBAAA;AAAA,YACL,SAAS;AAAA,YACT,MAAM,aAAa;AAAA,YACnB,QAAQ;AAAA,aACT,KAAK;AAAA,QACZ;AAAA,SACDqF,SAAO,IAAI,mBAAmBrF,QAAO,CAAC,CAAC;AACnC,aAAA;AAAA,IACX;AAAA,IACA;AAAA,EAAA;AAOE,QAAA,QAAQ,SACRqF;AAAAA,IAAO;AAAA,MACL;AAAA,MACA,mBAAmB,QAAY,oBAAA,KAAK;AAAA;AAAA,IACxC;AAAA,IAAG;AAAA;AAAA;AAAA,GAIW;AAGZ,QAAA,GAAG,IAAI,KAAK,KAAK;AAEvB,QAAM,aAAa,MAAM,GAAG,IAAI,MAAM;AAClC,YAAQ,YAAY;AACpB,WAAO,MAAM,IAAI,MAAM,MAAO,CAAA;AAAA,EAAA,CACjC;AAED,aAAW,OAAO,YAAY;AACpB,UAAA,OAAO,WAAW,GAAG;AACtB,QAAA,MAAM,IAAI,KAAK,CAAC,WAAW,IAAI,KAAM,WAAW,IAAI,GAAG;AAExD,UAA+C,KAAK;AAChDhJ,cAAI,SAAS,OAAO,KAAK,MAAM,YAAY,GAAG,CAAC;AAAA,MAAA,WAI1C,CAAC,gBAAgB;AAElB,YAAA,gBAAgB,cAAc,IAAI,GAAG;AACjC,cAAA,MAAM,IAAI,GAAG;AACR,iBAAA,QAAQ,aAAa,GAAG;AAAA,UAAA,OAE5B;AAGoB,iCAAA,MAAM,aAAa,GAAG,CAAC;AAAA,UAChD;AAAA,QACJ;AAMK;AACD,gBAAM,MAAM,MAAM,GAAG,EAAE,GAAG,IAAI;AAAA,QAClC;AAAA,MACJ;AAE6C;AAC7B,oBAAA,MAAM,KAAK,GAAG;AAAA,MAC9B;AAAA,IAAA,WAGK,OAAO,SAAS,YAAY;AAEjC,YAAM,cAAyD,MAAM,OAAO,WAAW,KAAK,IAAI;AAO3F;AAED,mBAAW,GAAG,IAAI;AAAA,MACtB;AAE6C;AAC7B,oBAAA,QAAQ,GAAG,IAAI;AAAA,MAC/B;AAGiB,uBAAA,QAAQ,GAAG,IAAI;AAAA,IAAA,OAEc;AAE1C,UAAA,WAAW,IAAI,GAAG;AACN,oBAAA,QAAQ,GAAG,IAAI;AAAA;AAAA,UAEnB,QAAQ,QAAQ,GAAG;AAAA,YACrB;AACN,YAAI,WAAW;AACX,gBAAM,UAAU,WAAW;AAAA,WAEtB,WAAW,WAAW,QAAQ,CAAA,CAAE;AACrC,kBAAQ,KAAK,GAAG;AAAA,QACpB;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AAQK;AACDgJ,aAAO,OAAO,UAAU;AAGjBA,aAAA,MAAM,KAAK,GAAG,UAAU;AAAA,EACnC;AAIO,SAAA,eAAe,OAAO,UAAU;AAAA,IACnC,KAAK,MAAkD,MAAM,SAAS,QAAQ,MAAM,MAAM,MAAM,GAAG;AAAA,IACnG,KAAK,CAAC,UAAU;AAEZ,UAA+C,KAAK;AAC1C,cAAA,IAAI,MAAM,qBAAqB;AAAA,MACzC;AACA,aAAO,CAAC,WAAW;AACfA,iBAAO,QAAQ,KAAK;AAAA,MAAA,CACvB;AAAA,IACL;AAAA,EAAA,CACH;AAG4C;AACnC,UAAA,aAAa,QAAQ,CAAC,aAAa;AACrC,YAAM,eAAe;AACrB,eAAS,YAAY,MAAM,QAAQ,CAAC,aAAa;AACzC,YAAA,YAAY,MAAM,QAAQ;AACpB,gBAAA,iBAAiB,SAAS,OAAO,QAAQ;AACzC,gBAAA,iBAAiB,MAAM,OAAO,QAAQ;AACxC,cAAA,OAAO,mBAAmB,YAC1BjI,gBAAc,cAAc,KAC5BA,gBAAc,cAAc,GAAG;AAC/B,wBAAY,gBAAgB,cAAc;AAAA,UAAA,OAEzC;AAEQ,qBAAA,OAAO,QAAQ,IAAI;AAAA,UAChC;AAAA,QACJ;AAGAf,cAAI,OAAO,UAAU,MAAM,SAAS,QAAQ,QAAQ,CAAC;AAAA,MAAA,CACxD;AAED,aAAO,KAAK,MAAM,MAAM,EAAE,QAAQ,CAAC,aAAa;AACxC,YAAA,EAAE,YAAY,SAAS,SAAS;AAChC,cAAI,OAAO,QAAQ;AAAA,QACvB;AAAA,MAAA,CACH;AAEa,oBAAA;AACI,wBAAA;AAClB,YAAM,MAAM,MAAM,GAAG,IAAI,MAAM,SAAS,aAAa,UAAU;AAC7C,wBAAA;AACTkJ,iBAAA,EAAE,KAAK,MAAM;AACJ,sBAAA;AAAA,MAAA,CACjB;AACU,iBAAA,cAAc,SAAS,YAAY,SAAS;AAC7C,cAAA,SAAS,SAAS,UAAU;AAClClJ,cAAI,OAAO,YAAY,WAAW,YAAY,MAAM,CAAC;AAAA,MACzD;AAEW,iBAAA,cAAc,SAAS,YAAY,SAAS;AACnD,cAAM,SAAS,SAAS,YAAY,QAAQ,UAAU;AACtD,cAAM,cAAc;AAAA;AAAA,UAEZ,SAAS,MAAM;AACX,2BAAe,KAAK;AACb,mBAAA,OAAO,KAAK,OAAO,KAAK;AAAA,UAAA,CAClC;AAAA,YACH;AACFA,cAAA,OAAO,YAAY,WAAW;AAAA,MACtC;AAEA,aAAO,KAAK,MAAM,YAAY,OAAO,EAAE,QAAQ,CAAC,QAAQ;AACpD,YAAI,EAAE,OAAO,SAAS,YAAY,UAAU;AACxC,cAAI,OAAO,GAAG;AAAA,QAClB;AAAA,MAAA,CACH;AAED,aAAO,KAAK,MAAM,YAAY,OAAO,EAAE,QAAQ,CAAC,QAAQ;AACpD,YAAI,EAAE,OAAO,SAAS,YAAY,UAAU;AACxC,cAAI,OAAO,GAAG;AAAA,QAClB;AAAA,MAAA,CACH;AAED,YAAM,cAAc,SAAS;AAC7B,YAAM,WAAW,SAAS;AAC1B,YAAM,eAAe;AAAA,IAAA,CACxB;AAAA,EACL;AACA,MAAI,cAAc;AACd,UAAM,gBAAgB;AAAA,MAClB,UAAU;AAAA,MACV,cAAc;AAAA;AAAA,MAEd,YAAY;AAAA,IAAA;AAEhB,KAAC,MAAM,eAAe,YAAY,mBAAmB,EAAE,QAAQ,CAACoG,OAAM;AAC3D,aAAA,eAAe,OAAOA,IAAG4C,SAAO,EAAE,OAAO,MAAM5C,EAAC,KAAK,aAAa,CAAC;AAAA,IAAA,CAC7E;AAAA,EACL;AAOM,QAAA,GAAG,QAAQ,CAAC,aAAa;AAE3B,QAAI,cAAc;AACd,YAAM,aAAa,MAAM,IAAI,MAAM,SAAS;AAAA,QACxC;AAAA,QACA,KAAK,MAAM;AAAA,QACX;AAAA,QACA,SAAS;AAAA,MACZ,CAAA,CAAC;AACF,aAAO,KAAK,cAAc,CAAA,CAAE,EAAE,QAAQ,CAAC,QAAQ,MAAM,kBAAkB,IAAI,GAAG,CAAC;AAC/E4C,eAAO,OAAO,UAAU;AAAA,IAAA,OAEvB;AACDA,eAAO,OAAO,MAAM,IAAI,MAAM,SAAS;AAAA,QACnC;AAAA,QACA,KAAK,MAAM;AAAA,QACX;AAAA,QACA,SAAS;AAAA,MACZ,CAAA,CAAC,CAAC;AAAA,IACP;AAAA,EAAA,CACH;AACD,MACI,MAAM,UACN,OAAO,MAAM,WAAW,YACxB,OAAO,MAAM,OAAO,gBAAgB,cACpC,CAAC,MAAM,OAAO,YAAY,WAAW,SAAS,eAAe,GAAG;AAChE,YAAQ,KAAK;AAAA;AAAA,kBAEU,MAAM,GAAG,IAAI;AAAA,EACxC;AAEI,MAAA,gBACA,kBACA,QAAQ,SAAS;AACT,YAAA,QAAQ,MAAM,QAAQ,YAAY;AAAA,EAC9C;AACc,gBAAA;AACI,oBAAA;AACX,SAAA;AACX;AACA,SAAS,YAET,aAAa,OAAO,cAAc;AAC1B,MAAA;AACA,MAAA;AACE,QAAA,eAAe,OAAO,UAAU;AAClC,MAAA,OAAO,gBAAgB,UAAU;AAC5B,SAAA;AAEL,cAAU,eAAe,eAAe;AAAA,EAAA,OAEvC;AACS,cAAA;AACV,SAAK,YAAY;AAC8B,QAAA,OAAO,OAAO,UAAU;AAC7D,YAAA,IAAI,MAAM,wEAAwE;AAAA,IAC5F;AAAA,EACJ;AACS,WAAA,SAAS,OAAO,KAAK;AAC1B,UAAMK,mBAAkB;AACxB;AAAA;AAAA,IAGuF,SAC9EA,oBAAmB,OAAO,aAAa,IAAI;AAChD,QAAA;AACA,qBAAe,KAAK;AACxB,QAA+C,CAAC,aAAa;AACzD,YAAM,IAAI,MAAM;AAAA;AAAA;AAAA,8BAGmB;AAAA,IACvC;AACQ,YAAA;AACR,QAAI,CAAC,MAAM,GAAG,IAAI,EAAE,GAAG;AAEnB,UAAI,cAAc;AACG,yBAAA,IAAI,OAAO,SAAS,KAAK;AAAA,MAAA,OAEzC;AACkB,2BAAA,IAAI,SAAS,KAAK;AAAA,MACzC;AAE6C;AAEzC,iBAAS,SAAS;AAAA,MACtB;AAAA,IACJ;AACA,UAAM,QAAQ,MAAM,GAAG,IAAI,EAAE;AAC7B,QAA+C,KAAK;AAChD,YAAM,QAAQ,WAAW;AACzB,YAAM,WAAW,eACX,iBAAiB,OAAO,OAAO,SAAS,OAAO,IAAI,IACnD,mBAAmB,OAAOL,SAAO,CAAA,GAAI,OAAO,GAAG,OAAO,IAAI;AAChE,UAAI,WAAW,QAAQ;AAEhB,aAAA,MAAM,MAAM,MAAM,KAAK;AACxB,YAAA,GAAG,OAAO,KAAK;AAAA,IACzB;AAGI,QAAA,aACAK,oBACAA,iBAAgB;AAAA,IAEhB,CAAC,KAAK;AACN,YAAM,KAAKA,iBAAgB;AAC3B,YAAMrI,SAAQ,cAAc,KAAK,GAAG,WAAY,GAAG,WAAW;AAC9D,MAAAA,OAAM,EAAE,IAAI;AAAA,IAChB;AAEO,WAAA;AAAA,EACX;AACA,WAAS,MAAM;AACR,SAAA;AACX;AC1sDA,IAAIsI,aAAW,OAAO,UAAU;AAQzB,SAASjJ,UAAS,KAAK;AAC5B,SAAOiJ,WAAS,KAAK,GAAG,MAAM;AAChC;AASO,SAAS1I,WAAU,KAAK;AAC7B,SAAO,QAAQ,QAAQ,OAAO,QAAQ;AACxC;AAQO,SAAS2I,SAAQ,KAAK;AAC3B,SAAOD,WAAS,KAAK,GAAG,MAAM;AAChC;AAQO,SAAS,kBAAmB,KAAK;AACtC,SAAO,OAAO,oBAAoB,eAAe,eAAe;AAClE;AAeO,SAASnD,UAAS,KAAK,IAAI;AAEhC,MAAI,QAAQ,QAAQ,OAAO,QAAQ,aAAa;AAC9C;AAAA,EACD;AAGD,MAAI,OAAO,QAAQ,UAAU;AAE3B,UAAM,CAAC,GAAG;AAAA,EACX;AAED,MAAI9F,UAAQ,GAAG,GAAG;AAEhB,aAASH,KAAI,GAAGgF,KAAI,IAAI,QAAQhF,KAAIgF,IAAGhF,MAAK;AAC1C,SAAG,KAAK,MAAM,IAAIA,EAAC,GAAGA,IAAG,GAAG;AAAA,IAC7B;AAAA,EACL,OAAS;AAEL,aAAS,OAAO,KAAK;AACnB,UAAI,OAAO,UAAU,eAAe,KAAK,KAAK,GAAG,GAAG;AAClD,WAAG,KAAK,MAAM,IAAI,GAAG,GAAG,KAAK,GAAG;AAAA,MACjC;AAAA,IACF;AAAA,EACF;AACH;AAgBO,SAASa,gBAAc,KAAK;AACjC,SAAO,OAAO,UAAU,SAAS,KAAK,GAAG,MAAM;AACjD;AAYO,SAAS,YAAuC;AACrD,MAAIgD,UAAS,CAAE;AACf,WAASyF,aAAY,KAAK,KAAK;AAC7B,QAAI,OAAOzF,QAAO,GAAG,MAAM,YAAY,OAAO,QAAQ,UAAU;AAC9D,MAAAA,QAAO,GAAG,IAAI,UAAUA,QAAO,GAAG,GAAG,GAAG;AAAA,IAC9C,WAAe,OAAO,QAAQ,UAAU;AAClC,MAAAA,QAAO,GAAG,IAAI,UAAU,CAAA,GAAI,GAAG;AAAA,IACrC,OAAW;AACL,MAAAA,QAAO,GAAG,IAAI;AAAA,IACf;AAAA,EACF;AACD,WAAS7D,KAAI,GAAGgF,KAAI,UAAU,QAAQhF,KAAIgF,IAAGhF,MAAK;AAChDiG,cAAQ,UAAUjG,EAAC,GAAGsJ,YAAW;AAAA,EAClC;AACD,SAAOzF;AACT;AAEO,SAAS0F,cAAa,KAAK;AAChC,SAAO,OAAO,QAAQ;AACxB;AClIA,SAAS7H,SAAO,KAAK;AACnB,SAAO,mBAAmB,GAAG,EAAE,QAAQ,SAAS,GAAG,EAAE,QAAQ,SAAS,GAAG,EAAE,QAAQ,QAAQ,GAAG,EAAE,QAAQ,SAAS,GAAG,EAAE,QAAQ,QAAQ,GAAG,EAAE,QAAQ,SAAS,GAAG,EAAE,QAAQ,SAAS,GAAG;AACvL;AASe,SAAS,SAAS,KAAK,QAAQ,kBAAkB;AAE9D,MAAI,CAAC,QAAQ;AACX,WAAO;AAAA,EACR;AAED,MAAI;AACJ,MAAI,kBAAkB;AACpB,uBAAmB,iBAAiB,MAAM;AAAA,EAC9C,WAAa8H,kBAAwB,MAAM,GAAG;AAC1C,uBAAmB,OAAO,SAAU;AAAA,EACxC,OAAS;AACL,QAAI,QAAQ,CAAE;AAEdC,cAAc,QAAQ,SAAS,UAAU,KAAK,KAAK;AACjD,UAAI,QAAQ,QAAQ,OAAO,QAAQ,aAAa;AAC9C;AAAA,MACD;AAED,UAAIC,UAAc,GAAG,GAAG;AACtB,cAAM,MAAM;AAAA,MACpB,OAAa;AACL,cAAM,CAAC,GAAG;AAAA,MACX;AAEDD,gBAAc,KAAK,SAASE,YAAWnI,IAAG;AACxC,YAAIoI,SAAapI,EAAC,GAAG;AACnB,UAAAA,KAAIA,GAAE,YAAa;AAAA,QAC7B,WAAmBqI,WAAerI,EAAC,GAAG;AAC5B,UAAAA,KAAI,KAAK,UAAUA,EAAC;AAAA,QACrB;AACD,cAAM,KAAKE,SAAO,GAAG,IAAI,MAAMA,SAAOF,EAAC,CAAC;AAAA,MAChD,CAAO;AAAA,IACP,CAAK;AAED,uBAAmB,MAAM,KAAK,GAAG;AAAA,EAClC;AAED,MAAI,kBAAkB;AACpB,QAAI,gBAAgB,IAAI,QAAQ,GAAG;AACnC,QAAI,kBAAkB,IAAI;AACxB,YAAM,IAAI,MAAM,GAAG,aAAa;AAAA,IACjC;AAED,YAAQ,IAAI,QAAQ,GAAG,MAAM,KAAK,MAAM,OAAO;AAAA,EAChD;AAED,SAAO;AACT;ACvDe,SAAS,cAAc,KAAK;AAIzC,SAAO,8BAA8B,KAAK,GAAG;AAC/C;ACJe,SAAS,YAAY,SAAS,aAAa;AACxD,SAAO,cACH,QAAQ,QAAQ,QAAQ,EAAE,IAAI,MAAM,YAAY,QAAQ,QAAQ,EAAE,IAClE;AACN;ACCe,SAAS,cAAc,SAAS,cAAc;AAC3D,MAAI,WAAW,CAAC,cAAc,YAAY,GAAG;AAC3C,WAAO,YAAY,SAAS,YAAY;AAAA,EACzC;AACD,SAAO;AACT;ACZe,SAAS,OAAOmC,UAASC,SAAQ,UAAU;AACxD,QAAMkG,kBAAiB,SAAS,OAAO;AACvC,QAAM,SAAS,SAAS;AACxB,MAAI,WAAW,CAACA,mBAAkBA,gBAAe,MAAM,IAAI;AACzD,IAAAnG,SAAQ,QAAQ;AAAA,EACpB,OAAS;AACL,IAAAC,QAAO,QAAQ;AAAA,EAChB;AACH;ACJA,MAAMmG,cAAY,CAACrF,OAAM,YAAY;AACnC,MAAI,SAAS,CAAE;AACf,EAAAA,MAAK,QAAQ,UAAQ;AACnB,QAAI,CAAC6E,cAAY,QAAQ,IAAI,CAAC,GAAG;AAC/B,aAAO,IAAI,IAAI,QAAQ,IAAI;AAAA,IAC5B;AAAA,EACL,CAAG;AACD,SAAO;AACT;AACA,MAAe,UAAA,CAAC,WAAW;AACzB,SAAO,IAAI,QAAQ,CAAC5F,UAASC,YAAW;AACtC,QAAI,WAAW,SAAS,cAAc,OAAO,SAAS,OAAO,GAAG,GAAG,OAAO,QAAQ,OAAO,gBAAgB;AACzG,UAAM,UAAU;AAAA,MACd,KAAK;AAAA,MACL,QAAQ,OAAO;AAAA,MACf,UAAU,CAAC,aAAa;AACtB,eAAO,WAAW;AAClB,iBAAS,SAAS;AAClB,iBAAS,UAAU,SAAS;AAC5B,YAAI;AAEF,cAAI,OAAO,SAAS,SAAS,UAAU;AACrC,qBAAS,OAAO,KAAK,MAAM,SAAS,IAAI;AAAA,UACzC;AAAA,QAEF,SAAQ/B,IAAG;AAAA,QACX;AACD,eAAO8B,UAASC,SAAQ,QAAQ;AAAA,MACjC;AAAA,IACF;AACD,QAAI;AACJ,QAAI,OAAO,WAAW,UAAU;AAC9B,aAAO,QAAQ,OAAO,cAAc;AACpC,aAAO,QAAQ,OAAO,cAAc;AACpC,UAAI,cAAc;AAAA,QAIhB,UAAU,OAAO;AAAA,QACjB,MAAM,OAAO;AAAA,MACd;AACD,YAAM,eAAe;AAAA,QAUnB;AAAA,MACD;AACD,oBAAcnB,QAAI,WAAW,iDAAI,UAAY,cAAgBsH,YAAU,cAAc,MAAM,EAAE;AAAA,IACnG,WAAe,OAAO,WAAW,YAAY;AAMvC,oBAActH,QAAI,aAAa,OAAO;AAAA,IAC5C,OAAW;AACL,YAAM,eAAe;AAAA,QACnB;AAAA,QACA;AAAA,QAEA;AAAA,QAEA;AAAA,QAEA;AAAA,MAWD;AACD,oBAAcA,QAAI,QAAQ,kCAAI,UAAYsH,YAAU,cAAc,MAAM,EAAE;AAAA,IAC3E;AACD,QAAI,OAAO,SAAS;AAClB,aAAO,QAAQ,aAAa,MAAM;AAAA,IACnC;AAAA,EACL,CAAG;AACH;AChGA,MAAe,kBAAA,CAAC,WAAW;AACzB,SAAO,QAAQ,MAAM;AACvB;ACFA,SAAS,qBAAqB;AAC5B,OAAK,WAAW,CAAE;AACpB;AAUA,mBAAmB,UAAU,MAAM,SAAS,IAAI,WAAW,UAAU;AACnE,OAAK,SAAS,KAAK;AAAA,IACjB;AAAA,IACA;AAAA,EACJ,CAAG;AACD,SAAO,KAAK,SAAS,SAAS;AAChC;AAOA,mBAAmB,UAAU,QAAQ,SAAS,MAAM,IAAI;AACtD,MAAI,KAAK,SAAS,EAAE,GAAG;AACrB,SAAK,SAAS,EAAE,IAAI;AAAA,EACrB;AACH;AAUA,mBAAmB,UAAU,UAAU,SAAS,QAAQ,IAAI;AAC1D,OAAK,SAAS,QAAQ,CAAAnD,OAAK;AACzB,QAAIA,OAAM,MAAM;AACd,SAAGA,EAAC;AAAA,IACL;AAAA,EACL,CAAG;AACH;ACvCA,MAAM,YAAY,CAAClC,OAAM,eAAe,YAAY;AAClD,MAAI,SAAS,CAAE;AACf,EAAAA,MAAK,QAAQ,UAAQ;AACnB,QAAI,CAAC6E,cAAY,QAAQ,IAAI,CAAC,GAAG;AAC/B,aAAO,IAAI,IAAI,QAAQ,IAAI;AAAA,IAC5B,WAAU,CAACA,cAAY,cAAc,IAAI,CAAC,GAAG;AAC5C,aAAO,IAAI,IAAI,cAAc,IAAI;AAAA,IAClC;AAAA,EACL,CAAG;AACD,SAAO;AACT;AAOA,MAAA,cAAe,CAAC,eAAe,UAAU,OAAO;AAC9C,QAAM/F,UAAS,QAAQ,UAAU,cAAc,UAAU;AACzD,MAAI,SAAS;AAAA,IACX,SAAS,QAAQ,WAAW,cAAc,WAAW;AAAA,IACrD,QAAQA;AAAA,IACR,KAAK,QAAQ,OAAO;AAAA,IACpB,QAAQ,QAAQ,UAAU,CAAE;AAAA,IAC5B,QAAQ,kCAAK,cAAc,UAAU,CAAA,IAAS,QAAQ,UAAU,CAAA;AAAA,IAChE,QAAQ,UAAU,cAAc,UAAU,CAAA,GAAI,QAAQ,UAAU,EAAE;AAAA,EACnE;AACD,QAAM,uBAAuB,CAAC,WAAW,kBAAkB,kBAAkB;AAC7E,WAAS,kCAAI,SAAW,UAAU,sBAAsB,eAAe,OAAO;AAG9E,MAAIA,YAAW;AAAY;AAAA,WAQhBA,YAAW,UAAU;AAC9B,WAAO,OAAO,OAAO,cAAc;AACnC,WAAO,OAAO,OAAO,cAAc;AACnC,UAAM,aAAa;AAAA,MAUjB;AAAA,MACA;AAAA,MAIA;AAAA,IACD;AACD,eAAW,QAAQ,UAAQ;AACzB,UAAI,CAAC+F,cAAY,QAAQ,IAAI,CAAC,GAAG;AAC/B,eAAO,IAAI,IAAI,QAAQ,IAAI;AAAA,MAC5B;AAAA,IACP,CAAK;AAAA,EAML,OAAS;AACL,UAAM,eAAe;AAAA,MACnB;AAAA,MAEA;AAAA,MAEA;AAAA,MAEA;AAAA,IAWD;AACD,aAAS,kCAAI,SAAW,UAAU,cAAc,eAAe,OAAO;AAAA,EACvE;AAED,SAAO;AACT;ACjGA,MAAe,aAAA;AAAA,EACb,SAAS;AAAA,EACT,QAAQ,CAAE;AAAA,EACV,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,kBAAkB;AAAA,EAElB,cAAc;AAAA,EAEd,QAAQ,CAAE;AAAA,EAEV,SAAS;AAAA,EAWT,gBAAgB,SAAS,eAAe,QAAQ;AAC9C,WAAO,UAAU,OAAO,SAAS;AAAA,EAClC;AACH;AC7BA,IAAIrC,UAAS,WAAW;AAGtB,WAAS,YAAY,KAAK,MAAM;AAC9B,WAAO,QAAQ,QAAQ,eAAe;AAAA,EACvC;AAED,MAAI;AACJ,MAAI;AACF,gBAAY;AAAA,EACb,SAAOnG,IAAG;AAGT,gBAAY,WAAW;AAAA,IAAA;AAAA,EACxB;AAED,MAAI;AACJ,MAAI;AACF,gBAAY;AAAA,EACb,SAAOA,IAAG;AACT,gBAAY,WAAW;AAAA,IAAA;AAAA,EACxB;AAED,MAAI;AACJ,MAAI;AACF,oBAAgB;AAAA,EACjB,SAAOA,IAAG;AACT,oBAAgB,WAAW;AAAA,IAAA;AAAA,EAC5B;AAuBD,WAASmG,OAAMF,SAAQ,UAAU,OAAO,WAAW,sBAAsB;AACvE,QAAI,OAAO,aAAa,UAAU;AAChC,cAAQ,SAAS;AACjB,kBAAY,SAAS;AACrB,6BAAuB,SAAS;AAChC,iBAAW,SAAS;AAAA,IACrB;AAGD,QAAI,aAAa,CAAA;AACjB,QAAI,cAAc,CAAA;AAElB,QAAI,YAAY,OAAO,UAAU;AAEjC,QAAI,OAAO,YAAY;AACrB,iBAAW;AAEb,QAAI,OAAO,SAAS;AAClB,cAAQ;AAGV,aAAS,OAAOA,SAAQgD,QAAO;AAE7B,UAAIhD,YAAW;AACb,eAAO;AAET,UAAIgD,WAAU;AACZ,eAAOhD;AAET,UAAI;AACJ,UAAI;AACJ,UAAI,OAAOA,WAAU,UAAU;AAC7B,eAAOA;AAAA,MACR;AAED,UAAI,YAAYA,SAAQ,SAAS,GAAG;AAClC,gBAAQ,IAAI;MACb,WAAU,YAAYA,SAAQ,SAAS,GAAG;AACzC,gBAAQ,IAAI;MACb,WAAU,YAAYA,SAAQ,aAAa,GAAG;AAC7C,gBAAQ,IAAI,cAAc,SAAUrD,UAASC,SAAQ;AACnD,UAAAoD,QAAO,KAAK,SAAS,OAAO;AAC1B,YAAArD,SAAQ,OAAO,OAAOqG,SAAQ,CAAC,CAAC;AAAA,UACjC,GAAE,SAAS,KAAK;AACf,YAAApG,QAAO,OAAO,KAAKoG,SAAQ,CAAC,CAAC;AAAA,UACzC,CAAW;AAAA,QACX,CAAS;AAAA,MACF,WAAU9C,OAAM,UAAUF,OAAM,GAAG;AAClC,gBAAQ,CAAA;AAAA,MACT,WAAUE,OAAM,WAAWF,OAAM,GAAG;AACnC,gBAAQ,IAAI,OAAOA,QAAO,QAAQ,iBAAiBA,OAAM,CAAC;AAC1D,YAAIA,QAAO;AAAW,gBAAM,YAAYA,QAAO;AAAA,MAChD,WAAUE,OAAM,SAASF,OAAM,GAAG;AACjC,gBAAQ,IAAI,KAAKA,QAAO,QAAS,CAAA;AAAA,MAClC,WAAU,aAAa,OAAO,SAASA,OAAM,GAAG;AAC/C,YAAI,OAAO,MAAM;AAEf,kBAAQ,OAAO,KAAKA,OAAM;AAAA,QACpC,OAAe;AAEL,kBAAQ,IAAI,OAAOA,QAAO,MAAM;AAChC,UAAAA,QAAO,KAAK,KAAK;AAAA,QAClB;AACD,eAAO;AAAA,MACR,WAAU,YAAYA,SAAQ,KAAK,GAAG;AACrC,gBAAQ,OAAO,OAAOA,OAAM;AAAA,MACpC,OAAa;AACL,YAAI,OAAO,aAAa,aAAa;AACnC,kBAAQ,OAAO,eAAeA,OAAM;AACpC,kBAAQ,OAAO,OAAO,KAAK;AAAA,QAC5B,OACI;AACH,kBAAQ,OAAO,OAAO,SAAS;AAC/B,kBAAQ;AAAA,QACT;AAAA,MACF;AAED,UAAI,UAAU;AACZ,YAAI5E,SAAQ,WAAW,QAAQ4E,OAAM;AAErC,YAAI5E,UAAS,IAAI;AACf,iBAAO,YAAYA,MAAK;AAAA,QACzB;AACD,mBAAW,KAAK4E,OAAM;AACtB,oBAAY,KAAK,KAAK;AAAA,MACvB;AAED,UAAI,YAAYA,SAAQ,SAAS,GAAG;AAClC,QAAAA,QAAO,QAAQ,SAAS,OAAO,KAAK;AAClC,cAAI,WAAW,OAAO,KAAKgD,SAAQ,CAAC;AACpC,cAAI,aAAa,OAAO,OAAOA,SAAQ,CAAC;AACxC,gBAAM,IAAI,UAAU,UAAU;AAAA,QACxC,CAAS;AAAA,MACF;AACD,UAAI,YAAYhD,SAAQ,SAAS,GAAG;AAClC,QAAAA,QAAO,QAAQ,SAAS,OAAO;AAC7B,cAAI,aAAa,OAAO,OAAOgD,SAAQ,CAAC;AACxC,gBAAM,IAAI,UAAU;AAAA,QAC9B,CAAS;AAAA,MACF;AAED,eAAShK,MAAKgH,SAAQ;AACpB,YAAI,QAAQ,OAAO,yBAAyBA,SAAQhH,EAAC;AACrD,YAAI,OAAO;AACT,gBAAMA,EAAC,IAAI,OAAOgH,QAAOhH,EAAC,GAAGgK,SAAQ,CAAC;AAAA,QACvC;AAED,YAAI;AACF,cAAI,cAAc,OAAO,yBAAyBhD,SAAQhH,EAAC;AAC3D,cAAI,YAAY,QAAQ,aAAa;AAEnC;AAAA,UACD;AACD,gBAAMA,EAAC,IAAI,OAAOgH,QAAOhH,EAAC,GAAGgK,SAAQ,CAAC;AAAA,QACvC,SAAOnI,IAAE;AACR,cAAIA,cAAa,WAAW;AAG1B;AAAA,UACZ,WAAqBA,cAAa,gBAAgB;AAEtC;AAAA,UACD;AAAA,QACF;AAAA,MAEF;AAED,UAAI,OAAO,uBAAuB;AAChC,YAAI,UAAU,OAAO,sBAAsBmF,OAAM;AACjD,iBAAShH,KAAI,GAAGA,KAAI,QAAQ,QAAQA,MAAK;AAGvC,cAAI,SAAS,QAAQA,EAAC;AACtB,cAAI,aAAa,OAAO,yBAAyBgH,SAAQ,MAAM;AAC/D,cAAI,cAAc,CAAC,WAAW,cAAc,CAAC,sBAAsB;AACjE;AAAA,UACD;AACD,gBAAM,MAAM,IAAI,OAAOA,QAAO,MAAM,GAAGgD,SAAQ,CAAC;AAChD,iBAAO,eAAe,OAAO,QAAQ,UAAU;AAAA,QAChD;AAAA,MACF;AAED,UAAI,sBAAsB;AACxB,YAAI,mBAAmB,OAAO,oBAAoBhD,OAAM;AACxD,iBAAShH,KAAI,GAAGA,KAAI,iBAAiB,QAAQA,MAAK;AAChD,cAAI,eAAe,iBAAiBA,EAAC;AACrC,cAAI,aAAa,OAAO,yBAAyBgH,SAAQ,YAAY;AACrE,cAAI,cAAc,WAAW,YAAY;AACvC;AAAA,UACD;AACD,gBAAM,YAAY,IAAI,OAAOA,QAAO,YAAY,GAAGgD,SAAQ,CAAC;AAC5D,iBAAO,eAAe,OAAO,cAAc,UAAU;AAAA,QACtD;AAAA,MACF;AAED,aAAO;AAAA,IACR;AAED,WAAO,OAAOhD,SAAQ,KAAK;AAAA,EAC5B;AASD,EAAAE,OAAM,iBAAiB,SAAS,eAAeF,SAAQ;AACrD,QAAIA,YAAW;AACb,aAAO;AAET,QAAIhG,KAAI,WAAY;AAAA;AACpB,IAAAA,GAAE,YAAYgG;AACd,WAAO,IAAIhG,GAAC;AAAA,EAChB;AAIE,WAAS,WAAWkH,IAAG;AACrB,WAAO,OAAO,UAAU,SAAS,KAAKA,EAAC;AAAA,EACxC;AACD,EAAAhB,OAAM,aAAa;AAEnB,WAAS,SAASgB,IAAG;AACnB,WAAO,OAAOA,OAAM,YAAY,WAAWA,EAAC,MAAM;AAAA,EACnD;AACD,EAAAhB,OAAM,WAAW;AAEjB,WAAS,UAAUgB,IAAG;AACpB,WAAO,OAAOA,OAAM,YAAY,WAAWA,EAAC,MAAM;AAAA,EACnD;AACD,EAAAhB,OAAM,YAAY;AAElB,WAAS,WAAWgB,IAAG;AACrB,WAAO,OAAOA,OAAM,YAAY,WAAWA,EAAC,MAAM;AAAA,EACnD;AACD,EAAAhB,OAAM,aAAa;AAEnB,WAAS,iBAAiB+C,KAAI;AAC5B,QAAI,QAAQ;AACZ,QAAIA,IAAG;AAAQ,eAAS;AACxB,QAAIA,IAAG;AAAY,eAAS;AAC5B,QAAIA,IAAG;AAAW,eAAS;AAC3B,WAAO;AAAA,EACR;AACD,EAAA/C,OAAM,mBAAmB;AAEzB,SAAOA;AACT,EAAI;ACnPW,MAAM,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAe3B,YAAY,MAAM,IAAI;AACpB,QAAI,CAACrG,gBAAc,GAAG,GAAG;AACvB,YAAM,CAAE;AACR,cAAQ,KAAK,oBAAoB;AAAA,IAClC;AACD,SAAK,SAASqG,QAAM,kCAAIgD,aAAa,IAAI;AACzC,SAAK,eAAe;AAAA,MAClB,SAAS,IAAI,mBAAoB;AAAA,MACjC,UAAU,IAAI,mBAAoB;AAAA,IACnC;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,UAAU9C,IAAG;AACX,SAAK,SAASA,GAAE,KAAK,MAAM;AAAA,EAC5B;AAAA,EAED,WAAW,QAAQ;AACjB,aAAS,YAAY,KAAK,QAAQ,MAAM;AACxC,QAAI+C,SAAQ,CAAC,iBAAiB,MAAS;AACvC,QAAI,UAAU,QAAQ,QAAQ,MAAM;AAEpC,SAAK,aAAa,QAAQ,QAAQ,SAAS,2BAA2B,aAAa;AACjF,MAAAA,OAAM,QAAQ,YAAY,WAAW,YAAY,QAAQ;AAAA,IAC/D,CAAK;AAED,SAAK,aAAa,SAAS,QAAQ,SAAS,yBAAyB,aAAa;AAChF,MAAAA,OAAM,KAAK,YAAY,WAAW,YAAY,QAAQ;AAAA,IAC5D,CAAK;AAED,WAAOA,OAAM,QAAQ;AACnB,gBAAU,QAAQ,KAAKA,OAAM,SAASA,OAAM,OAAO;AAAA,IACpD;AAED,WAAO;AAAA,EACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAaD,QAAQ,SAAS,IAAI;AACnB,WAAO,KAAK,WAAW,MAAM;AAAA,EAC9B;AAAA,EAED,IAAI,KAAK,UAAU,IAAI;AACrB,WAAO,KAAK,WAAW;AAAA,MACrB;AAAA,MACA,QAAQ;AAAA,OACL,QACJ;AAAA,EACF;AAAA,EAED,KAAK,KAAK,MAAM,UAAU,CAAA,GAAI;AAC5B,WAAO,KAAK,WAAW;AAAA,MACrB;AAAA,MACA;AAAA,MACA,QAAQ;AAAA,OACL,QACJ;AAAA,EACF;AAAA,EAGD,IAAI,KAAK,MAAM,UAAU,CAAA,GAAI;AAC3B,WAAO,KAAK,WAAW;AAAA,MACrB;AAAA,MACA;AAAA,MACA,QAAQ;AAAA,OACL,QACJ;AAAA,EACF;AAAA,EAKD,OAAO,KAAK,MAAM,UAAU,CAAA,GAAI;AAC9B,WAAO,KAAK,WAAW;AAAA,MACrB;AAAA,MACA;AAAA,MACA,QAAQ;AAAA,OACL,QACJ;AAAA,EACF;AAAA,EAKD,QAAQ,KAAK,MAAM,UAAU,CAAA,GAAI;AAC/B,WAAO,KAAK,WAAW;AAAA,MACrB;AAAA,MACA;AAAA,MACA,QAAQ;AAAA,OACL,QACJ;AAAA,EACF;AAAA,EAKD,KAAK,KAAK,MAAM,UAAU,CAAA,GAAI;AAC5B,WAAO,KAAK,WAAW;AAAA,MACrB;AAAA,MACA;AAAA,MACA,QAAQ;AAAA,OACL,QACJ;AAAA,EACF;AAAA,EAKD,QAAQ,KAAK,MAAM,UAAU,CAAA,GAAI;AAC/B,WAAO,KAAK,WAAW;AAAA,MACrB;AAAA,MACA;AAAA,MACA,QAAQ;AAAA,OACL,QACJ;AAAA,EACF;AAAA,EAKD,MAAM,KAAK,MAAM,UAAU,CAAA,GAAI;AAC7B,WAAO,KAAK,WAAW;AAAA,MACrB;AAAA,MACA;AAAA,MACA,QAAQ;AAAA,OACL,QACJ;AAAA,EACF;AAAA,EAID,OAAO,KAAK,SAAS,IAAI;AACvB,WAAO,MAAM;AACb,WAAO,SAAS;AAChB,WAAO,KAAK,WAAW,MAAM;AAAA,EAC9B;AAAA,EAED,SAAS,KAAK,SAAS,IAAI;AACzB,WAAO,MAAM;AACb,WAAO,SAAS;AAChB,WAAO,KAAK,WAAW,MAAM;AAAA,EAC9B;AACH;AC3LA,IAAI,aAAa,OAAO,UAAU,YAAY,UAAU,OAAO,WAAW,UAAU;ACEpF,IAAI,WAAW,OAAO,QAAQ,YAAY,QAAQ,KAAK,WAAW,UAAU;AAG5E,IAAI,OAAO,cAAc,YAAY,SAAS,aAAa,EAAG;ACH9D,IAAIC,WAAS,KAAK;ACAlB,IAAIC,gBAAc,OAAO;AAGzB,IAAIpK,mBAAiBoK,cAAY;AAOjC,IAAIC,yBAAuBD,cAAY;AAGvC,IAAIE,mBAAiBH,WAASA,SAAO,cAAc;AASnD,SAAS,UAAU,OAAO;AACxB,MAAI,QAAQnK,iBAAe,KAAK,OAAOsK,gBAAc,GACjD,MAAM,MAAMA,gBAAc;AAE9B,MAAI;AACF,UAAMA,gBAAc,IAAI;AACxB,QAAI,WAAW;AAAA,EACnB,SAAW1I,IAAG;AAAA,EAAE;AAEd,MAAIgC,UAASyG,uBAAqB,KAAK,KAAK;AAC5C,MAAI,UAAU;AACZ,QAAI,OAAO;AACT,YAAMC,gBAAc,IAAI;AAAA,IAC9B,OAAW;AACL,aAAO,MAAMA,gBAAc;AAAA,IAC5B;AAAA,EACF;AACD,SAAO1G;AACT;AC1CA,IAAIwG,gBAAc,OAAO;AAOzB,IAAIC,yBAAuBD,cAAY;AASvC,SAASzJ,iBAAe,OAAO;AAC7B,SAAO0J,uBAAqB,KAAK,KAAK;AACxC;ACdA,IAAI,UAAU,iBACV,eAAe;AAGnB,IAAI,iBAAiBF,WAASA,SAAO,cAAc;AASnD,SAAS,WAAW,OAAO;AACzB,MAAI,SAAS,MAAM;AACjB,WAAO,UAAU,SAAY,eAAe;AAAA,EAC7C;AACD,SAAQ,kBAAkB,kBAAkB,OAAO,KAAK,IACpD,UAAU,KAAK,IACfxJ,iBAAe,KAAK;AAC1B;ACDA,SAAS,aAAa,OAAO;AAC3B,SAAO,SAAS,QAAQ,OAAO,SAAS;AAC1C;ACtBA,IAAI4J,cAAY;AAmBhB,SAAS,SAAS,OAAO;AACvB,SAAO,OAAO,SAAS,YACpB,aAAa,KAAK,KAAK,WAAW,KAAK,KAAKA;AACjD;ACvBA,IAAIC,QAAM,IAAI;AAUd,SAAS,aAAa,OAAO;AAC3B,MAAI,OAAO,SAAS,UAAU;AAC5B,WAAO;AAAA,EACR;AACD,MAAI,SAAS,KAAK,GAAG;AACnB,WAAOA;AAAAA,EACR;AACD,SAAO,CAAC;AACV;ACZA,SAAS,SAASC,QAAOC,WAAU;AACjC,MAAIvI,SAAQ,IACR,SAASsI,UAAS,OAAO,IAAIA,OAAM,QACnC7G,UAAS,MAAM,MAAM;AAEzB,SAAO,EAAEzB,SAAQ,QAAQ;AACvB,IAAAyB,QAAOzB,MAAK,IAAIuI,UAASD,OAAMtI,MAAK,GAAGA,QAAOsI,MAAK;AAAA,EACpD;AACD,SAAO7G;AACT;ACKG,IAAC1D,YAAU,MAAM;ACjBpB,IAAIyK,aAAW,IAAI;AAGnB,IAAIC,gBAAcT,WAASA,SAAO,YAAY,QAC1C,iBAAiBS,gBAAcA,cAAY,WAAW;AAU1D,SAAS,aAAa,OAAO;AAE3B,MAAI,OAAO,SAAS,UAAU;AAC5B,WAAO;AAAA,EACR;AACD,MAAI1K,UAAQ,KAAK,GAAG;AAElB,WAAO,SAAS,OAAO,YAAY,IAAI;AAAA,EACxC;AACD,MAAI,SAAS,KAAK,GAAG;AACnB,WAAO,iBAAiB,eAAe,KAAK,KAAK,IAAI;AAAA,EACtD;AACD,MAAI0D,UAAU,QAAQ;AACtB,SAAQA,WAAU,OAAQ,IAAI,SAAU,CAAC+G,aAAY,OAAO/G;AAC9D;ACvBA,SAAS,oBAAoB,UAAU,cAAc;AACnD,SAAO,SAAS,OAAO,OAAO;AAC5B,QAAIA;AACJ,QAAI,UAAU,UAAa,UAAU,QAAW;AAC9C,aAAO;AAAA,IACR;AACD,QAAI,UAAU,QAAW;AACvB,MAAAA,UAAS;AAAA,IACV;AACD,QAAI,UAAU,QAAW;AACvB,UAAIA,YAAW,QAAW;AACxB,eAAO;AAAA,MACR;AACD,UAAI,OAAO,SAAS,YAAY,OAAO,SAAS,UAAU;AACxD,gBAAQ,aAAa,KAAK;AAC1B,gBAAQ,aAAa,KAAK;AAAA,MAClC,OAAa;AACL,gBAAQ,aAAa,KAAK;AAC1B,gBAAQ,aAAa,KAAK;AAAA,MAC3B;AACD,MAAAA,UAAS,SAAS,OAAO,KAAK;AAAA,IAC/B;AACD,WAAOA;AAAA,EACX;AACA;AClBA,IAAI,MAAM,oBAAoB,SAAS,QAAQ,QAAQ;AACrD,SAAO,SAAS;AAClB,GAAG,CAAC;AClBJ,IAAI,eAAe;AAUnB,SAAS,gBAAgBiH,SAAQ;AAC/B,MAAI1I,SAAQ0I,QAAO;AAEnB,SAAO1I,YAAW,aAAa,KAAK0I,QAAO,OAAO1I,MAAK,CAAC,GAAG;AAAA,EAAE;AAC7D,SAAOA;AACT;ACbA,IAAI2I,gBAAc;AASlB,SAAS,SAASD,SAAQ;AACxB,SAAOA,UACHA,QAAO,MAAM,GAAG,gBAAgBA,OAAM,IAAI,CAAC,EAAE,QAAQC,eAAa,EAAE,IACpED;AACN;ACSA,SAASpK,WAAS,OAAO;AACvB,MAAI,OAAO,OAAO;AAClB,SAAO,SAAS,SAAS,QAAQ,YAAY,QAAQ;AACvD;ACvBA,IAAI+J,QAAM,IAAI;AAGd,IAAI,aAAa;AAGjB,IAAI,aAAa;AAGjB,IAAI,YAAY;AAGhB,IAAI,eAAe;AAyBnB,SAAS,SAAS,OAAO;AACvB,MAAI,OAAO,SAAS,UAAU;AAC5B,WAAO;AAAA,EACR;AACD,MAAI,SAAS,KAAK,GAAG;AACnB,WAAOA;AAAAA,EACR;AACD,MAAI/J,WAAS,KAAK,GAAG;AACnB,QAAI,QAAQ,OAAO,MAAM,WAAW,aAAa,MAAM,QAAS,IAAG;AACnE,YAAQA,WAAS,KAAK,IAAK,QAAQ,KAAM;AAAA,EAC1C;AACD,MAAI,OAAO,SAAS,UAAU;AAC5B,WAAO,UAAU,IAAI,QAAQ,CAAC;AAAA,EAC/B;AACD,UAAQ,SAAS,KAAK;AACtB,MAAI,WAAW,WAAW,KAAK,KAAK;AACpC,SAAQ,YAAY,UAAU,KAAK,KAAK,IACpC,aAAa,MAAM,MAAM,CAAC,GAAG,WAAW,IAAI,CAAC,IAC5C,WAAW,KAAK,KAAK,IAAI+J,QAAM,CAAC;AACvC;AC1DA,IAAIG,aAAW,IAAI,GACf,cAAc;AAyBlB,SAAS,SAAS,OAAO;AACvB,MAAI,CAAC,OAAO;AACV,WAAO,UAAU,IAAI,QAAQ;AAAA,EAC9B;AACD,UAAQ,SAAS,KAAK;AACtB,MAAI,UAAUA,cAAY,UAAU,CAACA,YAAU;AAC7C,QAAI,OAAQ,QAAQ,IAAI,KAAK;AAC7B,WAAO,OAAO;AAAA,EACf;AACD,SAAO,UAAU,QAAQ,QAAQ;AACnC;ACXA,SAAS,UAAU,OAAO;AACxB,MAAI/G,UAAS,SAAS,KAAK,GACvB,YAAYA,UAAS;AAEzB,SAAOA,YAAWA,UAAU,YAAYA,UAAS,YAAYA,UAAU;AACzE;AC9BA,IAAImH,oBAAkB;AA0BtB,SAAS,MAAM5J,IAAG6J,OAAM;AACtB,MAAI,OAAOA,SAAQ,YAAY;AAC7B,UAAM,IAAI,UAAUD,iBAAe;AAAA,EACpC;AACD,EAAA5J,KAAI,UAAUA,EAAC;AACf,SAAO,WAAW;AAChB,QAAI,EAAEA,KAAI,GAAG;AACX,aAAO6J,MAAK,MAAM,MAAM,SAAS;AAAA,IAClC;AAAA,EACL;AACA;ACvBA,SAAS,SAAS,OAAO;AACvB,SAAO;AACT;ACdA,IAAI,WAAW,0BACXC,YAAU,qBACVC,WAAS,8BACT,WAAW;AAmBf,SAAS5K,aAAW,OAAO;AACzB,MAAI,CAACG,WAAS,KAAK,GAAG;AACpB,WAAO;AAAA,EACR;AAGD,MAAI,MAAM,WAAW,KAAK;AAC1B,SAAO,OAAOwK,aAAW,OAAOC,YAAU,OAAO,YAAY,OAAO;AACtE;AC/BA,IAAI,aAAa,KAAK,oBAAoB;ACA1C,IAAI,aAAc,WAAW;AAC3B,MAAI5D,OAAM,SAAS,KAAK,cAAc,WAAW,QAAQ,WAAW,KAAK,YAAY,EAAE;AACvF,SAAOA,OAAO,mBAAmBA,OAAO;AAC1C,EAAC;AASD,SAAS,SAAS0D,OAAM;AACtB,SAAO,CAAC,CAAC,cAAe,cAAcA;AACxC;AChBA,IAAIG,cAAY,SAAS;AAGzB,IAAIC,iBAAeD,YAAU;AAS7B,SAAS,SAASH,OAAM;AACtB,MAAIA,SAAQ,MAAM;AAChB,QAAI;AACF,aAAOI,eAAa,KAAKJ,KAAI;AAAA,IACnC,SAAapJ,IAAG;AAAA,IAAE;AACd,QAAI;AACF,aAAQoJ,QAAO;AAAA,IACrB,SAAapJ,IAAG;AAAA,IAAE;AAAA,EACf;AACD,SAAO;AACT;ACdA,IAAIyJ,iBAAe;AAGnB,IAAI,eAAe;AAGnB,IAAIF,cAAY,SAAS,WACrBf,gBAAc,OAAO;AAGzB,IAAIgB,iBAAeD,YAAU;AAG7B,IAAInL,mBAAiBoK,cAAY;AAGjC,IAAI,aAAa;AAAA,EAAO,MACtBgB,eAAa,KAAKpL,gBAAc,EAAE,QAAQqL,gBAAc,MAAM,EAC7D,QAAQ,0DAA0D,OAAO,IAAI;AAChF;AAUA,SAAS,aAAa,OAAO;AAC3B,MAAI,CAAC5K,WAAS,KAAK,KAAK,SAAS,KAAK,GAAG;AACvC,WAAO;AAAA,EACR;AACD,MAAI,UAAUH,aAAW,KAAK,IAAI,aAAa;AAC/C,SAAO,QAAQ,KAAK,SAAS,KAAK,CAAC;AACrC;ACpCA,SAAS,SAAS8E,SAAQ,KAAK;AAC7B,SAAOA,WAAU,OAAO,SAAYA,QAAO,GAAG;AAChD;ACCA,SAAS,UAAUA,SAAQ,KAAK;AAC9B,MAAI,QAAQ,SAASA,SAAQ,GAAG;AAChC,SAAO,aAAa,KAAK,IAAI,QAAQ;AACvC;ACVA,IAAIkG,YAAU,UAAU,MAAM,SAAS;ACDvC,IAAI,UAAUA,aAAW,IAAIA;ACQ7B,IAAI,cAAc,CAAC,UAAU,WAAW,SAASN,OAAM,MAAM;AAC3D,UAAQ,IAAIA,OAAM,IAAI;AACtB,SAAOA;AACT;ACXA,IAAI,eAAe,OAAO;AAU1B,IAAI,aAAc,2BAAW;AAC3B,WAAS5F,UAAS;AAAA,EAAE;AACpB,SAAO,SAAS,OAAO;AACrB,QAAI,CAAC3E,WAAS,KAAK,GAAG;AACpB,aAAO;IACR;AACD,QAAI,cAAc;AAChB,aAAO,aAAa,KAAK;AAAA,IAC1B;AACD,IAAA2E,QAAO,YAAY;AACnB,QAAIxB,UAAS,IAAIwB;AACjB,IAAAA,QAAO,YAAY;AACnB,WAAOxB;AAAA,EACX;AACA;AChBA,SAAS,WAAW,MAAM;AACxB,SAAO,WAAW;AAIhB,QAAI,OAAO;AACX,YAAQ,KAAK,QAAM;AAAA,MACjB,KAAK;AAAG,eAAO,IAAI;AAAA,MACnB,KAAK;AAAG,eAAO,IAAI,KAAK,KAAK,CAAC,CAAC;AAAA,MAC/B,KAAK;AAAG,eAAO,IAAI,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC;AAAA,MACxC,KAAK;AAAG,eAAO,IAAI,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC;AAAA,MACjD,KAAK;AAAG,eAAO,IAAI,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC;AAAA,MAC1D,KAAK;AAAG,eAAO,IAAI,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC;AAAA,MACnE,KAAK;AAAG,eAAO,IAAI,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC;AAAA,MAC5E,KAAK;AAAG,eAAO,IAAI,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC;AAAA,IACtF;AACD,QAAI,cAAc,WAAW,KAAK,SAAS,GACvCA,UAAS,KAAK,MAAM,aAAa,IAAI;AAIzC,WAAOnD,WAASmD,OAAM,IAAIA,UAAS;AAAA,EACvC;AACA;AC9BA,IAAI2H,mBAAiB;AAYrB,SAAS,WAAWP,OAAM,SAAS,SAAS;AAC1C,MAAI,SAAS,UAAUO,kBACnB,OAAO,WAAWP,KAAI;AAE1B,WAAS,UAAU;AACjB,QAAI,KAAM,QAAQ,SAAS,QAAQ,gBAAgB,UAAW,OAAOA;AACrE,WAAO,GAAG,MAAM,SAAS,UAAU,MAAM,SAAS;AAAA,EACnD;AACD,SAAO;AACT;ACfA,SAASQ,QAAMR,OAAM,SAAS,MAAM;AAClC,UAAQ,KAAK,QAAM;AAAA,IACjB,KAAK;AAAG,aAAOA,MAAK,KAAK,OAAO;AAAA,IAChC,KAAK;AAAG,aAAOA,MAAK,KAAK,SAAS,KAAK,CAAC,CAAC;AAAA,IACzC,KAAK;AAAG,aAAOA,MAAK,KAAK,SAAS,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC;AAAA,IAClD,KAAK;AAAG,aAAOA,MAAK,KAAK,SAAS,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC;AAAA,EAC5D;AACD,SAAOA,MAAK,MAAM,SAAS,IAAI;AACjC;ACjBA,IAAIS,cAAY,KAAK;AAarB,SAAS,YAAY,MAAM,UAAU,SAAS,WAAW;AACvD,MAAI,YAAY,IACZ,aAAa,KAAK,QAClB,gBAAgB,QAAQ,QACxB,YAAY,IACZ,aAAa,SAAS,QACtB,cAAcA,YAAU,aAAa,eAAe,CAAC,GACrD7H,UAAS,MAAM,aAAa,WAAW,GACvC,cAAc,CAAC;AAEnB,SAAO,EAAE,YAAY,YAAY;AAC/B,IAAAA,QAAO,SAAS,IAAI,SAAS,SAAS;AAAA,EACvC;AACD,SAAO,EAAE,YAAY,eAAe;AAClC,QAAI,eAAe,YAAY,YAAY;AACzC,MAAAA,QAAO,QAAQ,SAAS,CAAC,IAAI,KAAK,SAAS;AAAA,IAC5C;AAAA,EACF;AACD,SAAO,eAAe;AACpB,IAAAA,QAAO,WAAW,IAAI,KAAK,WAAW;AAAA,EACvC;AACD,SAAOA;AACT;ACnCA,IAAI6H,cAAY,KAAK;AAarB,SAAS,iBAAiB,MAAM,UAAU,SAAS,WAAW;AAC5D,MAAI,YAAY,IACZ,aAAa,KAAK,QAClB,eAAe,IACf,gBAAgB,QAAQ,QACxB,aAAa,IACb,cAAc,SAAS,QACvB,cAAcA,YAAU,aAAa,eAAe,CAAC,GACrD7H,UAAS,MAAM,cAAc,WAAW,GACxC,cAAc,CAAC;AAEnB,SAAO,EAAE,YAAY,aAAa;AAChC,IAAAA,QAAO,SAAS,IAAI,KAAK,SAAS;AAAA,EACnC;AACD,MAAI,SAAS;AACb,SAAO,EAAE,aAAa,aAAa;AACjC,IAAAA,QAAO,SAAS,UAAU,IAAI,SAAS,UAAU;AAAA,EAClD;AACD,SAAO,EAAE,eAAe,eAAe;AACrC,QAAI,eAAe,YAAY,YAAY;AACzC,MAAAA,QAAO,SAAS,QAAQ,YAAY,CAAC,IAAI,KAAK,WAAW;AAAA,IAC1D;AAAA,EACF;AACD,SAAOA;AACT;AC9BA,SAAS,aAAa6G,QAAO,aAAa;AACxC,MAAI,SAASA,OAAM,QACf7G,UAAS;AAEb,SAAO,UAAU;AACf,QAAI6G,OAAM,MAAM,MAAM,aAAa;AACjC,QAAE7G;AAAA,IACH;AAAA,EACF;AACD,SAAOA;AACT;ACbA,SAAS,aAAa;AAEtB;ACHA,IAAI8H,qBAAmB;AASvB,SAAS,YAAY,OAAO;AAC1B,OAAK,cAAc;AACnB,OAAK,cAAc;AACnB,OAAK,UAAU;AACf,OAAK,eAAe;AACpB,OAAK,gBAAgB;AACrB,OAAK,gBAAgBA;AACrB,OAAK,YAAY;AACnB;AAGA,YAAY,YAAY,WAAW,WAAW,SAAS;AACvD,YAAY,UAAU,cAAc;ACbpC,SAAS,OAAO;AAEhB;ACJA,IAAI,UAAU,CAAC,UAAU,OAAO,SAASV,OAAM;AAC7C,SAAO,QAAQ,IAAIA,KAAI;AACzB;ACXA,IAAI,YAAY,CAAE;ACElB,IAAIZ,gBAAc,OAAO;AAGzB,IAAIpK,mBAAiBoK,cAAY;AASjC,SAAS,YAAYY,OAAM;AACzB,MAAIpH,UAAUoH,MAAK,OAAO,IACtBP,SAAQ,UAAU7G,OAAM,GACxB,SAAS5D,iBAAe,KAAK,WAAW4D,OAAM,IAAI6G,OAAM,SAAS;AAErE,SAAO,UAAU;AACf,QAAI,OAAOA,OAAM,MAAM,GACnB,YAAY,KAAK;AACrB,QAAI,aAAa,QAAQ,aAAaO,OAAM;AAC1C,aAAO,KAAK;AAAA,IACb;AAAA,EACF;AACD,SAAOpH;AACT;AClBA,SAAS,cAAc,OAAO,UAAU;AACtC,OAAK,cAAc;AACnB,OAAK,cAAc;AACnB,OAAK,YAAY,CAAC,CAAC;AACnB,OAAK,YAAY;AACjB,OAAK,aAAa;AACpB;AAEA,cAAc,YAAY,WAAW,WAAW,SAAS;AACzD,cAAc,UAAU,cAAc;ACXtC,SAAS,UAAU,QAAQ6G,QAAO;AAChC,MAAItI,SAAQ,IACR,SAAS,OAAO;AAEpB,EAAAsI,WAAUA,SAAQ,MAAM,MAAM;AAC9B,SAAO,EAAEtI,SAAQ,QAAQ;AACvB,IAAAsI,OAAMtI,MAAK,IAAI,OAAOA,MAAK;AAAA,EAC5B;AACD,SAAOsI;AACT;ACNA,SAAS,aAAa,SAAS;AAC7B,MAAI,mBAAmB,aAAa;AAClC,WAAO,QAAQ;EAChB;AACD,MAAI7G,UAAS,IAAI,cAAc,QAAQ,aAAa,QAAQ,SAAS;AACrE,EAAAA,QAAO,cAAc,UAAU,QAAQ,WAAW;AAClD,EAAAA,QAAO,YAAa,QAAQ;AAC5B,EAAAA,QAAO,aAAa,QAAQ;AAC5B,SAAOA;AACT;ACZA,IAAIwG,gBAAc,OAAO;AAGzB,IAAIpK,mBAAiBoK,cAAY;AAuHjC,SAAS,OAAO,OAAO;AACrB,MAAI,aAAa,KAAK,KAAK,CAAClK,UAAQ,KAAK,KAAK,EAAE,iBAAiB,cAAc;AAC7E,QAAI,iBAAiB,eAAe;AAClC,aAAO;AAAA,IACR;AACD,QAAIF,iBAAe,KAAK,OAAO,aAAa,GAAG;AAC7C,aAAO,aAAa,KAAK;AAAA,IAC1B;AAAA,EACF;AACD,SAAO,IAAI,cAAc,KAAK;AAChC;AAGA,OAAO,YAAY,WAAW;AAC9B,OAAO,UAAU,cAAc;ACnI/B,SAAS,WAAWgL,OAAM;AACxB,MAAI,WAAW,YAAYA,KAAI,GAC3B,QAAQ,OAAO,QAAQ;AAE3B,MAAI,OAAO,SAAS,cAAc,EAAE,YAAY,YAAY,YAAY;AACtE,WAAO;AAAA,EACR;AACD,MAAIA,UAAS,OAAO;AAClB,WAAO;AAAA,EACR;AACD,MAAI,OAAO,QAAQ,KAAK;AACxB,SAAO,CAAC,CAAC,QAAQA,UAAS,KAAK,CAAC;AAClC;ACxBA,IAAI,YAAY,KACZ,WAAW;AAGf,IAAI,YAAY,KAAK;AAWrB,SAAS,SAASA,OAAM;AACtB,MAAI,QAAQ,GACR,aAAa;AAEjB,SAAO,WAAW;AAChB,QAAI,QAAQ,UAAW,GACnB,YAAY,YAAY,QAAQ;AAEpC,iBAAa;AACb,QAAI,YAAY,GAAG;AACjB,UAAI,EAAE,SAAS,WAAW;AACxB,eAAO,UAAU,CAAC;AAAA,MACnB;AAAA,IACP,OAAW;AACL,cAAQ;AAAA,IACT;AACD,WAAOA,MAAK,MAAM,QAAW,SAAS;AAAA,EAC1C;AACA;ACjBA,IAAI,UAAU,SAAS,WAAW;AChBlC,IAAI,gBAAgB,qCAChB,iBAAiB;AASrB,SAAS,eAAe,QAAQ;AAC9B,MAAI,QAAQ,OAAO,MAAM,aAAa;AACtC,SAAO,QAAQ,MAAM,CAAC,EAAE,MAAM,cAAc,IAAI;AAClD;ACbA,IAAI,gBAAgB;AAUpB,SAAS,kBAAkB,QAAQ,SAAS;AAC1C,MAAI,SAAS,QAAQ;AACrB,MAAI,CAAC,QAAQ;AACX,WAAO;AAAA,EACR;AACD,MAAI,YAAY,SAAS;AACzB,UAAQ,SAAS,KAAK,SAAS,IAAI,OAAO,MAAM,QAAQ,SAAS;AACjE,YAAU,QAAQ,KAAK,SAAS,IAAI,OAAO,GAAG;AAC9C,SAAO,OAAO,QAAQ,eAAe,yBAAyB,UAAU,QAAQ;AAClF;ACDA,SAAS,SAAS,OAAO;AACvB,SAAO,WAAW;AAChB,WAAO;AAAA,EACX;AACA;ACrBA,IAAI,iBAAkB,WAAW;AAC/B,MAAI;AACF,QAAIA,QAAO,UAAU,QAAQ,gBAAgB;AAC7C,IAAAA,MAAK,CAAE,GAAE,IAAI,CAAA,CAAE;AACf,WAAOA;AAAA,EACX,SAAWpJ,IAAG;AAAA,EAAE;AAChB;ACIA,IAAI,kBAAkB,CAAC,iBAAiB,WAAW,SAASoJ,OAAMH,SAAQ;AACxE,SAAO,eAAeG,OAAM,YAAY;AAAA,IACtC,gBAAgB;AAAA,IAChB,cAAc;AAAA,IACd,SAAS,SAASH,OAAM;AAAA,IACxB,YAAY;AAAA,EAChB,CAAG;AACH;ACRA,IAAI,cAAc,SAAS,eAAe;ACF1C,SAAS,UAAUJ,QAAOC,WAAU;AAClC,MAAIvI,SAAQ,IACR,SAASsI,UAAS,OAAO,IAAIA,OAAM;AAEvC,SAAO,EAAEtI,SAAQ,QAAQ;AACvB,QAAIuI,UAASD,OAAMtI,MAAK,GAAGA,QAAOsI,MAAK,MAAM,OAAO;AAClD;AAAA,IACD;AAAA,EACF;AACD,SAAOA;AACT;ACRA,SAAS,cAAcA,QAAO,WAAW,WAAW,WAAW;AAC7D,MAAI,SAASA,OAAM,QACftI,SAAQ,aAAa,YAAY,IAAI;AAEzC,SAAQ,YAAYA,WAAU,EAAEA,SAAQ,QAAS;AAC/C,QAAI,UAAUsI,OAAMtI,MAAK,GAAGA,QAAOsI,MAAK,GAAG;AACzC,aAAOtI;AAAA,IACR;AAAA,EACF;AACD,SAAO;AACT;ACdA,SAAS,UAAU,OAAO;AACxB,SAAO,UAAU;AACnB;ACCA,SAAS,cAAcsI,QAAO,OAAO,WAAW;AAC9C,MAAItI,SAAQ,YAAY,GACpB,SAASsI,OAAM;AAEnB,SAAO,EAAEtI,SAAQ,QAAQ;AACvB,QAAIsI,OAAMtI,MAAK,MAAM,OAAO;AAC1B,aAAOA;AAAA,IACR;AAAA,EACF;AACD,SAAO;AACT;ACPA,SAAS,YAAYsI,QAAO,OAAO,WAAW;AAC5C,SAAO,UAAU,QACb,cAAcA,QAAO,OAAO,SAAS,IACrC,cAAcA,QAAO,WAAW,SAAS;AAC/C;ACNA,SAAS,cAAcA,QAAO,OAAO;AACnC,MAAI,SAASA,UAAS,OAAO,IAAIA,OAAM;AACvC,SAAO,CAAC,CAAC,UAAU,YAAYA,QAAO,OAAO,CAAC,IAAI;AACpD;ACVA,IAAIc,mBAAiB,GACjBI,uBAAqB,GACrBC,oBAAkB,GAClBC,0BAAwB,IACxBC,sBAAoB,IACpBC,4BAA0B,IAC1BC,kBAAgB,KAChBC,oBAAkB,KAClBC,mBAAiB;AAGrB,IAAI,YAAY;AAAA,EACd,CAAC,OAAOF,eAAa;AAAA,EACrB,CAAC,QAAQT,gBAAc;AAAA,EACvB,CAAC,WAAWI,oBAAkB;AAAA,EAC9B,CAAC,SAASC,iBAAe;AAAA,EACzB,CAAC,cAAcC,uBAAqB;AAAA,EACpC,CAAC,QAAQK,gBAAc;AAAA,EACvB,CAAC,WAAWJ,mBAAiB;AAAA,EAC7B,CAAC,gBAAgBC,yBAAuB;AAAA,EACxC,CAAC,SAASE,iBAAe;AAC3B;AAUA,SAAS,kBAAkB,SAAS,SAAS;AAC3C,YAAU,WAAW,SAAS,MAAM;AAClC,QAAI,QAAQ,OAAO,KAAK,CAAC;AACzB,QAAK,UAAU,KAAK,CAAC,KAAM,CAAC,cAAc,SAAS,KAAK,GAAG;AACzD,cAAQ,KAAK,KAAK;AAAA,IACnB;AAAA,EACL,CAAG;AACD,SAAO,QAAQ;AACjB;AC5BA,SAAS,gBAAgB,SAAS,WAAW,SAAS;AACpD,MAAI,SAAU,YAAY;AAC1B,SAAO,YAAY,SAAS,kBAAkB,QAAQ,kBAAkB,eAAe,MAAM,GAAG,OAAO,CAAC,CAAC;AAC3G;ACbA,IAAIV,mBAAiB,GACjBI,uBAAqB,GACrBQ,0BAAwB,GACxBP,oBAAkB,GAClBE,sBAAoB,IACpBC,4BAA0B;AAmB9B,SAAS,cAAcf,OAAM,SAAS,UAAU,aAAa,SAAS,UAAU,SAAS,QAAQoB,MAAK,OAAO;AAC3G,MAAI,UAAU,UAAUR,mBACpB,aAAa,UAAU,UAAU,QACjC,kBAAkB,UAAU,SAAY,SACxC,cAAc,UAAU,WAAW,QACnC,mBAAmB,UAAU,SAAY;AAE7C,aAAY,UAAUE,sBAAoBC;AAC1C,aAAW,EAAE,UAAUA,4BAA0BD;AAEjD,MAAI,EAAE,UAAUK,0BAAwB;AACtC,eAAW,EAAEZ,mBAAiBI;AAAAA,EAC/B;AACD,MAAI,UAAU;AAAA,IACZX;AAAA,IAAM;AAAA,IAAS;AAAA,IAAS;AAAA,IAAa;AAAA,IAAY;AAAA,IACjD;AAAA,IAAiB;AAAA,IAAQoB;AAAA,IAAK;AAAA,EAClC;AAEE,MAAIxI,UAAS,SAAS,MAAM,QAAW,OAAO;AAC9C,MAAI,WAAWoH,KAAI,GAAG;AACpB,YAAQpH,SAAQ,OAAO;AAAA,EACxB;AACD,EAAAA,QAAO,cAAc;AACrB,SAAO,gBAAgBA,SAAQoH,OAAM,OAAO;AAC9C;AC9CA,SAAS,UAAUA,OAAM;AACvB,MAAI5F,UAAS4F;AACb,SAAO5F,QAAO;AAChB;ACTA,IAAIiH,qBAAmB;AAGvB,IAAI,WAAW;AAUf,SAAS,QAAQ,OAAO,QAAQ;AAC9B,MAAI,OAAO,OAAO;AAClB,WAAS,UAAU,OAAOA,qBAAmB;AAE7C,SAAO,CAAC,CAAC,WACN,QAAQ,YACN,QAAQ,YAAY,SAAS,KAAK,KAAK,OACrC,QAAQ,MAAM,QAAQ,KAAK,KAAK,QAAQ;AACjD;AClBA,IAAIC,cAAY,KAAK;AAYrB,SAAS,QAAQ7B,QAAO,SAAS;AAC/B,MAAI,YAAYA,OAAM,QAClB,SAAS6B,YAAU,QAAQ,QAAQ,SAAS,GAC5C,WAAW,UAAU7B,MAAK;AAE9B,SAAO,UAAU;AACf,QAAItI,SAAQ,QAAQ,MAAM;AAC1B,IAAAsI,OAAM,MAAM,IAAI,QAAQtI,QAAO,SAAS,IAAI,SAASA,MAAK,IAAI;AAAA,EAC/D;AACD,SAAOsI;AACT;ACzBA,IAAI8B,gBAAc;AAWlB,SAAS,eAAe9B,QAAO,aAAa;AAC1C,MAAItI,SAAQ,IACR,SAASsI,OAAM,QACf,WAAW,GACX7G,UAAS,CAAA;AAEb,SAAO,EAAEzB,SAAQ,QAAQ;AACvB,QAAI,QAAQsI,OAAMtI,MAAK;AACvB,QAAI,UAAU,eAAe,UAAUoK,eAAa;AAClD,MAAA9B,OAAMtI,MAAK,IAAIoK;AACf,MAAA3I,QAAO,UAAU,IAAIzB;AAAA,IACtB;AAAA,EACF;AACD,SAAOyB;AACT;ACfA,IAAI2H,mBAAiB,GACjBI,uBAAqB,GACrBC,oBAAkB,GAClBC,0BAAwB,IACxBG,kBAAgB,KAChBE,mBAAiB;AAqBrB,SAAS,aAAalB,OAAM,SAAS,SAAS,UAAU,SAAS,eAAe,cAAc,QAAQoB,MAAK,OAAO;AAChH,MAAI,QAAQ,UAAUJ,iBAClB,SAAS,UAAUT,kBACnB,YAAY,UAAUI,sBACtB,YAAY,WAAWC,oBAAkBC,0BACzC,SAAS,UAAUK,kBACnB,OAAO,YAAY,SAAY,WAAWlB,KAAI;AAElD,WAAS,UAAU;AACjB,QAAI,SAAS,UAAU,QACnB,OAAO,MAAM,MAAM,GACnB7I,SAAQ;AAEZ,WAAOA,UAAS;AACd,WAAKA,MAAK,IAAI,UAAUA,MAAK;AAAA,IAC9B;AACD,QAAI,WAAW;AACb,UAAI,cAAc,UAAU,OAAO,GAC/B,eAAe,aAAa,MAAM,WAAW;AAAA,IAClD;AACD,QAAI,UAAU;AACZ,aAAO,YAAY,MAAM,UAAU,SAAS,SAAS;AAAA,IACtD;AACD,QAAI,eAAe;AACjB,aAAO,iBAAiB,MAAM,eAAe,cAAc,SAAS;AAAA,IACrE;AACD,cAAU;AACV,QAAI,aAAa,SAAS,OAAO;AAC/B,UAAI,aAAa,eAAe,MAAM,WAAW;AACjD,aAAO;AAAA,QACL6I;AAAA,QAAM;AAAA,QAAS;AAAA,QAAc,QAAQ;AAAA,QAAa;AAAA,QAClD;AAAA,QAAM;AAAA,QAAY;AAAA,QAAQoB;AAAA,QAAK,QAAQ;AAAA,MAC/C;AAAA,IACK;AACD,QAAI,cAAc,SAAS,UAAU,MACjC,KAAK,YAAY,YAAYpB,KAAI,IAAIA;AAEzC,aAAS,KAAK;AACd,QAAI,QAAQ;AACV,aAAO,QAAQ,MAAM,MAAM;AAAA,IACjC,WAAe,UAAU,SAAS,GAAG;AAC/B,WAAK,QAAO;AAAA,IACb;AACD,QAAI,SAASoB,OAAM,QAAQ;AACzB,WAAK,SAASA;AAAA,IACf;AACD,QAAI,QAAQ,SAAS,QAAQ,gBAAgB,SAAS;AACpD,WAAK,QAAQ,WAAW,EAAE;AAAA,IAC3B;AACD,WAAO,GAAG,MAAM,aAAa,IAAI;AAAA,EAClC;AACD,SAAO;AACT;ACxEA,SAAS,YAAYpB,OAAM,SAAS,OAAO;AACzC,MAAI,OAAO,WAAWA,KAAI;AAE1B,WAAS,UAAU;AACjB,QAAI,SAAS,UAAU,QACnB,OAAO,MAAM,MAAM,GACnB7I,SAAQ,QACR,cAAc,UAAU,OAAO;AAEnC,WAAOA,UAAS;AACd,WAAKA,MAAK,IAAI,UAAUA,MAAK;AAAA,IAC9B;AACD,QAAI,UAAW,SAAS,KAAK,KAAK,CAAC,MAAM,eAAe,KAAK,SAAS,CAAC,MAAM,cACzE,CAAE,IACF,eAAe,MAAM,WAAW;AAEpC,cAAU,QAAQ;AAClB,QAAI,SAAS,OAAO;AAClB,aAAO;AAAA,QACL6I;AAAA,QAAM;AAAA,QAAS;AAAA,QAAc,QAAQ;AAAA,QAAa;AAAA,QAClD;AAAA,QAAM;AAAA,QAAS;AAAA,QAAW;AAAA,QAAW,QAAQ;AAAA,MAAM;AAAA,IACtD;AACD,QAAI,KAAM,QAAQ,SAAS,QAAQ,gBAAgB,UAAW,OAAOA;AACrE,WAAOQ,QAAM,IAAI,MAAM,IAAI;AAAA,EAC5B;AACD,SAAO;AACT;ACtCA,IAAID,mBAAiB;AAcrB,SAAS,cAAcP,OAAM,SAAS,SAAS,UAAU;AACvD,MAAI,SAAS,UAAUO,kBACnB,OAAO,WAAWP,KAAI;AAE1B,WAAS,UAAU;AACjB,QAAI,YAAY,IACZ,aAAa,UAAU,QACvB,YAAY,IACZ,aAAa,SAAS,QACtB,OAAO,MAAM,aAAa,UAAU,GACpC,KAAM,QAAQ,SAAS,QAAQ,gBAAgB,UAAW,OAAOA;AAErE,WAAO,EAAE,YAAY,YAAY;AAC/B,WAAK,SAAS,IAAI,SAAS,SAAS;AAAA,IACrC;AACD,WAAO,cAAc;AACnB,WAAK,WAAW,IAAI,UAAU,EAAE,SAAS;AAAA,IAC1C;AACD,WAAOQ,QAAM,IAAI,SAAS,UAAU,MAAM,IAAI;AAAA,EAC/C;AACD,SAAO;AACT;ACnCA,IAAI,cAAc;AAGlB,IAAID,mBAAiB,GACjBI,uBAAqB,GACrB,wBAAwB,GACxBC,oBAAkB,GAClBI,kBAAgB,KAChBC,oBAAkB;AAGtB,IAAIK,cAAY,KAAK;AAkBrB,SAAS,UAAU,MAAM,QAAQ;AAC/B,MAAI,UAAU,KAAK,CAAC,GAChB,aAAa,OAAO,CAAC,GACrB,aAAa,UAAU,YACvB,WAAW,cAAcf,mBAAiBI,uBAAqBK;AAEnE,MAAI,UACA,cAAcA,mBAAmB,WAAWJ,qBAC5C,cAAcI,mBAAmB,WAAWC,qBAAqB,KAAK,CAAC,EAAE,UAAU,OAAO,CAAC,KAC3F,eAAeD,kBAAgBC,sBAAsB,OAAO,CAAC,EAAE,UAAU,OAAO,CAAC,KAAO,WAAWL;AAGvG,MAAI,EAAE,YAAY,UAAU;AAC1B,WAAO;AAAA,EACR;AAED,MAAI,aAAaL,kBAAgB;AAC/B,SAAK,CAAC,IAAI,OAAO,CAAC;AAElB,kBAAc,UAAUA,mBAAiB,IAAI;AAAA,EAC9C;AAED,MAAI,QAAQ,OAAO,CAAC;AACpB,MAAI,OAAO;AACT,QAAI,WAAW,KAAK,CAAC;AACrB,SAAK,CAAC,IAAI,WAAW,YAAY,UAAU,OAAO,OAAO,CAAC,CAAC,IAAI;AAC/D,SAAK,CAAC,IAAI,WAAW,eAAe,KAAK,CAAC,GAAG,WAAW,IAAI,OAAO,CAAC;AAAA,EACrE;AAED,UAAQ,OAAO,CAAC;AAChB,MAAI,OAAO;AACT,eAAW,KAAK,CAAC;AACjB,SAAK,CAAC,IAAI,WAAW,iBAAiB,UAAU,OAAO,OAAO,CAAC,CAAC,IAAI;AACpE,SAAK,CAAC,IAAI,WAAW,eAAe,KAAK,CAAC,GAAG,WAAW,IAAI,OAAO,CAAC;AAAA,EACrE;AAED,UAAQ,OAAO,CAAC;AAChB,MAAI,OAAO;AACT,SAAK,CAAC,IAAI;AAAA,EACX;AAED,MAAI,aAAaS,iBAAe;AAC9B,SAAK,CAAC,IAAI,KAAK,CAAC,KAAK,OAAO,OAAO,CAAC,IAAIM,YAAU,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC;AAAA,EACrE;AAED,MAAI,KAAK,CAAC,KAAK,MAAM;AACnB,SAAK,CAAC,IAAI,OAAO,CAAC;AAAA,EACnB;AAED,OAAK,CAAC,IAAI,OAAO,CAAC;AAClB,OAAK,CAAC,IAAI;AAEV,SAAO;AACT;AC3EA,IAAIvB,oBAAkB;AAGtB,IAAIQ,mBAAiB,GACjBI,uBAAqB,GACrBC,oBAAkB,GAClBC,0BAAwB,IACxBC,sBAAoB,IACpBC,4BAA0B;AAG9B,IAAIN,cAAY,KAAK;AA2BrB,SAAS,WAAWT,OAAM,SAAS,SAAS,UAAU,SAAS,QAAQoB,MAAK,OAAO;AACjF,MAAI,YAAY,UAAUT;AAC1B,MAAI,CAAC,aAAa,OAAOX,SAAQ,YAAY;AAC3C,UAAM,IAAI,UAAUD,iBAAe;AAAA,EACpC;AACD,MAAI,SAAS,WAAW,SAAS,SAAS;AAC1C,MAAI,CAAC,QAAQ;AACX,eAAW,EAAEe,sBAAoBC;AACjC,eAAW,UAAU;AAAA,EACtB;AACD,EAAAK,OAAMA,SAAQ,SAAYA,OAAMX,YAAU,UAAUW,IAAG,GAAG,CAAC;AAC3D,UAAQ,UAAU,SAAY,QAAQ,UAAU,KAAK;AACrD,YAAU,UAAU,QAAQ,SAAS;AAErC,MAAI,UAAUL,2BAAyB;AACrC,QAAI,gBAAgB,UAChB,eAAe;AAEnB,eAAW,UAAU;AAAA,EACtB;AACD,MAAI,OAAO,YAAY,SAAY,QAAQf,KAAI;AAE/C,MAAI,UAAU;AAAA,IACZA;AAAA,IAAM;AAAA,IAAS;AAAA,IAAS;AAAA,IAAU;AAAA,IAAS;AAAA,IAAe;AAAA,IAC1D;AAAA,IAAQoB;AAAA,IAAK;AAAA,EACjB;AAEE,MAAI,MAAM;AACR,cAAU,SAAS,IAAI;AAAA,EACxB;AACD,EAAApB,QAAO,QAAQ,CAAC;AAChB,YAAU,QAAQ,CAAC;AACnB,YAAU,QAAQ,CAAC;AACnB,aAAW,QAAQ,CAAC;AACpB,YAAU,QAAQ,CAAC;AACnB,UAAQ,QAAQ,CAAC,IAAI,QAAQ,CAAC,MAAM,SAC/B,YAAY,IAAIA,MAAK,SACtBS,YAAU,QAAQ,CAAC,IAAI,QAAQ,CAAC;AAEpC,MAAI,CAAC,SAAS,WAAWG,oBAAkBC,0BAAwB;AACjE,eAAW,EAAED,oBAAkBC;AAAAA,EAChC;AACD,MAAI,CAAC,WAAW,WAAWN,kBAAgB;AACzC,QAAI3H,UAAS,WAAWoH,OAAM,SAAS,OAAO;AAAA,EAC/C,WAAU,WAAWY,qBAAmB,WAAWC,yBAAuB;AACzE,IAAAjI,UAAS,YAAYoH,OAAM,SAAS,KAAK;AAAA,EAC7C,YAAc,WAAWc,uBAAqB,YAAYP,mBAAiBO,yBAAuB,CAAC,QAAQ,QAAQ;AAC/G,IAAAlI,UAAS,cAAcoH,OAAM,SAAS,SAAS,QAAQ;AAAA,EAC3D,OAAS;AACL,IAAApH,UAAS,aAAa,MAAM,QAAW,OAAO;AAAA,EAC/C;AACD,MAAI,SAAS,OAAO,cAAc;AAClC,SAAO,gBAAgB,OAAOA,SAAQ,OAAO,GAAGoH,OAAM,OAAO;AAC/D;ACpGA,IAAIgB,kBAAgB;AAmBpB,SAAS,IAAIhB,OAAM7J,IAAG,OAAO;AAC3B,EAAAA,KAAI,QAAQ,SAAYA;AACxB,EAAAA,KAAK6J,SAAQ7J,MAAK,OAAQ6J,MAAK,SAAS7J;AACxC,SAAO,WAAW6J,OAAMgB,iBAAe,QAAW,QAAW,QAAW,QAAW7K,EAAC;AACtF;ACfA,SAAS,gBAAgBiE,SAAQ,KAAK,OAAO;AAC3C,MAAI,OAAO,eAAe,gBAAgB;AACxC,mBAAeA,SAAQ,KAAK;AAAA,MAC1B,gBAAgB;AAAA,MAChB,cAAc;AAAA,MACd,SAAS;AAAA,MACT,YAAY;AAAA,IAClB,CAAK;AAAA,EACL,OAAS;AACL,IAAAA,QAAO,GAAG,IAAI;AAAA,EACf;AACH;ACUA,SAAS,GAAG,OAAO,OAAO;AACxB,SAAO,UAAU,SAAU,UAAU,SAAS,UAAU;AAC1D;AC9BA,IAAIgF,gBAAc,OAAO;AAGzB,IAAIpK,mBAAiBoK,cAAY;AAYjC,SAAS,YAAYhF,SAAQ,KAAK,OAAO;AACvC,MAAI,WAAWA,QAAO,GAAG;AACzB,MAAI,EAAEpF,iBAAe,KAAKoF,SAAQ,GAAG,KAAK,GAAG,UAAU,KAAK,MACvD,UAAU,UAAa,EAAE,OAAOA,UAAU;AAC7C,oBAAgBA,SAAQ,KAAK,KAAK;AAAA,EACnC;AACH;ACZA,SAAS,WAAW,QAAQ,OAAOA,SAAQ,YAAY;AACrD,MAAI,QAAQ,CAACA;AACb,EAAAA,YAAWA,UAAS,CAAA;AAEpB,MAAIjD,SAAQ,IACR,SAAS,MAAM;AAEnB,SAAO,EAAEA,SAAQ,QAAQ;AACvB,QAAI,MAAM,MAAMA,MAAK;AAErB,QAAI,WAAW,aACX,WAAWiD,QAAO,GAAG,GAAG,OAAO,GAAG,GAAG,KAAKA,SAAQ,MAAM,IACxD;AAEJ,QAAI,aAAa,QAAW;AAC1B,iBAAW,OAAO,GAAG;AAAA,IACtB;AACD,QAAI,OAAO;AACT,sBAAgBA,SAAQ,KAAK,QAAQ;AAAA,IAC3C,OAAW;AACL,kBAAYA,SAAQ,KAAK,QAAQ;AAAA,IAClC;AAAA,EACF;AACD,SAAOA;AACT;AClCA,IAAIqG,cAAY,KAAK;AAWrB,SAAS,SAAST,OAAM,OAAOwB,YAAW;AACxC,UAAQf,YAAU,UAAU,SAAaT,MAAK,SAAS,IAAK,OAAO,CAAC;AACpE,SAAO,WAAW;AAChB,QAAI,OAAO,WACP7I,SAAQ,IACR,SAASsJ,YAAU,KAAK,SAAS,OAAO,CAAC,GACzChB,SAAQ,MAAM,MAAM;AAExB,WAAO,EAAEtI,SAAQ,QAAQ;AACvB,MAAAsI,OAAMtI,MAAK,IAAI,KAAK,QAAQA,MAAK;AAAA,IAClC;AACD,IAAAA,SAAQ;AACR,QAAI,YAAY,MAAM,QAAQ,CAAC;AAC/B,WAAO,EAAEA,SAAQ,OAAO;AACtB,gBAAUA,MAAK,IAAI,KAAKA,MAAK;AAAA,IAC9B;AACD,cAAU,KAAK,IAAIqK,WAAU/B,MAAK;AAClC,WAAOe,QAAMR,OAAM,MAAM,SAAS;AAAA,EACtC;AACA;ACrBA,SAAS,SAASA,OAAM,OAAO;AAC7B,SAAO,YAAY,SAASA,OAAM,OAAO,QAAQ,GAAGA,QAAO,EAAE;AAC/D;ACbA,IAAIqB,qBAAmB;AA4BvB,SAAS,SAAS,OAAO;AACvB,SAAO,OAAO,SAAS,YACrB,QAAQ,MAAM,QAAQ,KAAK,KAAK,SAASA;AAC7C;ACJA,SAAS,YAAY,OAAO;AAC1B,SAAO,SAAS,QAAQ,SAAS,MAAM,MAAM,KAAK,CAAC/L,aAAW,KAAK;AACrE;ACfA,SAAS,eAAe,OAAO6B,QAAOiD,SAAQ;AAC5C,MAAI,CAAC3E,WAAS2E,OAAM,GAAG;AACrB,WAAO;AAAA,EACR;AACD,MAAI,OAAO,OAAOjD;AAClB,MAAI,QAAQ,WACH,YAAYiD,OAAM,KAAK,QAAQjD,QAAOiD,QAAO,MAAM,IACnD,QAAQ,YAAYjD,UAASiD,SAChC;AACJ,WAAO,GAAGA,QAAOjD,MAAK,GAAG,KAAK;AAAA,EAC/B;AACD,SAAO;AACT;ACjBA,SAAS,eAAe,UAAU;AAChC,SAAO,SAAS,SAASiD,SAAQ,SAAS;AACxC,QAAIjD,SAAQ,IACR,SAAS,QAAQ,QACjB,aAAa,SAAS,IAAI,QAAQ,SAAS,CAAC,IAAI,QAChD,QAAQ,SAAS,IAAI,QAAQ,CAAC,IAAI;AAEtC,iBAAc,SAAS,SAAS,KAAK,OAAO,cAAc,cACrD,UAAU,cACX;AAEJ,QAAI,SAAS,eAAe,QAAQ,CAAC,GAAG,QAAQ,CAAC,GAAG,KAAK,GAAG;AAC1D,mBAAa,SAAS,IAAI,SAAY;AACtC,eAAS;AAAA,IACV;AACD,IAAAiD,UAAS,OAAOA,OAAM;AACtB,WAAO,EAAEjD,SAAQ,QAAQ;AACvB,UAAI,SAAS,QAAQA,MAAK;AAC1B,UAAI,QAAQ;AACV,iBAASiD,SAAQ,QAAQjD,QAAO,UAAU;AAAA,MAC3C;AAAA,IACF;AACD,WAAOiD;AAAA,EACX,CAAG;AACH;ACjCA,IAAIgF,gBAAc,OAAO;AASzB,SAAS,YAAY,OAAO;AAC1B,MAAI,OAAO,SAAS,MAAM,aACtB,QAAS,OAAO,QAAQ,cAAc,KAAK,aAAcA;AAE7D,SAAO,UAAU;AACnB;ACNA,SAAS,UAAUjJ,IAAGuJ,WAAU;AAC9B,MAAIvI,SAAQ,IACRyB,UAAS,MAAMzC,EAAC;AAEpB,SAAO,EAAEgB,SAAQhB,IAAG;AAClB,IAAAyC,QAAOzB,MAAK,IAAIuI,UAASvI,MAAK;AAAA,EAC/B;AACD,SAAOyB;AACT;ACbA,IAAI6I,YAAU;AASd,SAAS,gBAAgB,OAAO;AAC9B,SAAO,aAAa,KAAK,KAAK,WAAW,KAAK,KAAKA;AACrD;ACXA,IAAIrC,gBAAc,OAAO;AAGzB,IAAIpK,mBAAiBoK,cAAY;AAGjC,IAAIsC,yBAAuBtC,cAAY;AAoBvC,IAAI,cAAc,gBAAgB,2BAAW;AAAE,SAAO;AAAU,GAAI,IAAI,kBAAkB,SAAS,OAAO;AACxG,SAAO,aAAa,KAAK,KAAKpK,iBAAe,KAAK,OAAO,QAAQ,KAC/D,CAAC0M,uBAAqB,KAAK,OAAO,QAAQ;AAC9C;ACpBA,SAAS,YAAY;AACnB,SAAO;AACT;ACXA,IAAIC,gBAAc,OAAO,WAAW,YAAY,WAAW,CAAC,QAAQ,YAAY;AAGhF,IAAIC,eAAaD,iBAAe,OAAO,UAAU,YAAY,UAAU,CAAC,OAAO,YAAY;AAG3F,IAAIE,kBAAgBD,gBAAcA,aAAW,YAAYD;AAGzD,IAAIG,WAASD,kBAAgB,KAAK,SAAS;AAG3C,IAAI,iBAAiBC,WAASA,SAAO,WAAW;AAmBhD,IAAIC,aAAW,kBAAkB;AC9BjC,IAAIN,YAAU,sBACVO,aAAW,kBACXC,YAAU,oBACVC,YAAU,iBACVC,aAAW,kBACXlC,YAAU,qBACVmC,WAAS,gBACTC,cAAY,mBACZC,cAAY,mBACZC,cAAY,mBACZC,WAAS,gBACTC,cAAY,mBACZC,eAAa;AAEjB,IAAIC,mBAAiB,wBACjBC,gBAAc,qBACdC,eAAa,yBACbC,eAAa,yBACbC,YAAU,sBACVC,aAAW,uBACXC,aAAW,uBACXC,aAAW,uBACXC,oBAAkB,8BAClBC,cAAY,wBACZC,cAAY;AAGhB,IAAI,iBAAiB,CAAA;AACrB,eAAeR,YAAU,IAAI,eAAeC,YAAU,IACtD,eAAeC,SAAO,IAAI,eAAeC,UAAQ,IACjD,eAAeC,UAAQ,IAAI,eAAeC,UAAQ,IAClD,eAAeC,iBAAe,IAAI,eAAeC,WAAS,IAC1D,eAAeC,WAAS,IAAI;AAC5B,eAAe5B,SAAO,IAAI,eAAeO,UAAQ,IACjD,eAAeW,gBAAc,IAAI,eAAeV,SAAO,IACvD,eAAeW,aAAW,IAAI,eAAeV,SAAO,IACpD,eAAeC,UAAQ,IAAI,eAAelC,SAAO,IACjD,eAAemC,QAAM,IAAI,eAAeC,WAAS,IACjD,eAAeC,WAAS,IAAI,eAAeC,WAAS,IACpD,eAAeC,QAAM,IAAI,eAAeC,WAAS,IACjD,eAAeC,YAAU,IAAI;AAS7B,SAAS,iBAAiB,OAAO;AAC/B,SAAO,aAAa,KAAK,KACvB,SAAS,MAAM,MAAM,KAAK,CAAC,CAAC,eAAe,WAAW,KAAK,CAAC;AAChE;AClDA,SAAS,UAAU1C,OAAM;AACvB,SAAO,SAAS,OAAO;AACrB,WAAOA,MAAK,KAAK;AAAA,EACrB;AACA;ACRA,IAAI2B,gBAAc,OAAO,WAAW,YAAY,WAAW,CAAC,QAAQ,YAAY;AAGhF,IAAIC,eAAaD,iBAAe,OAAO,UAAU,YAAY,UAAU,CAAC,OAAO,YAAY;AAG3F,IAAIE,kBAAgBD,gBAAcA,aAAW,YAAYD;AAGzD,IAAI,cAAcE,mBAAiB,WAAW;AAG9C,IAAI,WAAY,WAAW;AACzB,MAAI;AAEF,QAAI,QAAQD,gBAAcA,aAAW,WAAWA,aAAW,QAAQ,MAAM,EAAE;AAE3E,QAAI,OAAO;AACT,aAAO;AAAA,IACR;AAGD,WAAO,eAAe,YAAY,WAAW,YAAY,QAAQ,MAAM;AAAA,EAC3E,SAAWhL,IAAG;AAAA,EAAE;AAChB;ACtBA,IAAI,mBAAmB,YAAY,SAAS;AAmB5C,IAAI,eAAe,mBAAmB,UAAU,gBAAgB,IAAI;AChBpE,IAAIwI,gBAAc,OAAO;AAGzB,IAAIpK,mBAAiBoK,cAAY;AAUjC,SAAS,cAAc,OAAO,WAAW;AACvC,MAAI,QAAQlK,UAAQ,KAAK,GACrB,QAAQ,CAAC,SAAS,YAAY,KAAK,GACnC,SAAS,CAAC,SAAS,CAAC,SAAS6M,WAAS,KAAK,GAC3C,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,UAAU,aAAa,KAAK,GAC1D,cAAc,SAAS,SAAS,UAAU,QAC1CnJ,UAAS,cAAc,UAAU,MAAM,QAAQ,MAAM,IAAI,CAAE,GAC3D,SAASA,QAAO;AAEpB,WAAS,OAAO,OAAO;AACrB,SAAK,aAAa5D,iBAAe,KAAK,OAAO,GAAG,MAC5C,EAAE;AAAA,KAEC,OAAO;AAAA,IAEN,WAAW,OAAO,YAAY,OAAO;AAAA,IAErC,WAAW,OAAO,YAAY,OAAO,gBAAgB,OAAO;AAAA,IAE7D,QAAQ,KAAK,MAAM,KAClB;AACN,MAAA4D,QAAO,KAAK,GAAG;AAAA,IAChB;AAAA,EACF;AACD,SAAOA;AACT;ACtCA,SAAS,QAAQoH,OAAMwB,YAAW;AAChC,SAAO,SAAS,KAAK;AACnB,WAAOxB,MAAKwB,WAAU,GAAG,CAAC;AAAA,EAC9B;AACA;ACTA,IAAI,aAAa,QAAQ,OAAO,MAAM,MAAM;ACC5C,IAAIpC,gBAAc,OAAO;AAGzB,IAAIpK,mBAAiBoK,cAAY;AASjC,SAAS,SAAShF,SAAQ;AACxB,MAAI,CAAC,YAAYA,OAAM,GAAG;AACxB,WAAO,WAAWA,OAAM;AAAA,EACzB;AACD,MAAIxB,UAAS,CAAA;AACb,WAAS,OAAO,OAAOwB,OAAM,GAAG;AAC9B,QAAIpF,iBAAe,KAAKoF,SAAQ,GAAG,KAAK,OAAO,eAAe;AAC5D,MAAAxB,QAAO,KAAK,GAAG;AAAA,IAChB;AAAA,EACF;AACD,SAAOA;AACT;ACKA,SAAS,KAAKwB,SAAQ;AACpB,SAAO,YAAYA,OAAM,IAAI,cAAcA,OAAM,IAAI,SAASA,OAAM;AACtE;AC1BA,IAAIgF,gBAAc,OAAO;AAGzB,IAAIpK,mBAAiBoK,cAAY;AAkCjC,IAAIvB,WAAS,eAAe,SAASzD,SAAQ,QAAQ;AACnD,MAAI,YAAY,MAAM,KAAK,YAAY,MAAM,GAAG;AAC9C,eAAW,QAAQ,KAAK,MAAM,GAAGA,OAAM;AACvC;AAAA,EACD;AACD,WAAS,OAAO,QAAQ;AACtB,QAAIpF,iBAAe,KAAK,QAAQ,GAAG,GAAG;AACpC,kBAAYoF,SAAQ,KAAK,OAAO,GAAG,CAAC;AAAA,IACrC;AAAA,EACF;AACH,CAAC;AC9CD,SAAS,aAAaA,SAAQ;AAC5B,MAAIxB,UAAS,CAAA;AACb,MAAIwB,WAAU,MAAM;AAClB,aAAS,OAAO,OAAOA,OAAM,GAAG;AAC9B,MAAAxB,QAAO,KAAK,GAAG;AAAA,IAChB;AAAA,EACF;AACD,SAAOA;AACT;ACZA,IAAIwG,gBAAc,OAAO;AAGzB,IAAIpK,mBAAiBoK,cAAY;AASjC,SAAS,WAAWhF,SAAQ;AAC1B,MAAI,CAAC3E,WAAS2E,OAAM,GAAG;AACrB,WAAO,aAAaA,OAAM;AAAA,EAC3B;AACD,MAAI,UAAU,YAAYA,OAAM,GAC5BxB,UAAS,CAAA;AAEb,WAAS,OAAOwB,SAAQ;AACtB,QAAI,EAAE,OAAO,kBAAkB,WAAW,CAACpF,iBAAe,KAAKoF,SAAQ,GAAG,KAAK;AAC7E,MAAAxB,QAAO,KAAK,GAAG;AAAA,IAChB;AAAA,EACF;AACD,SAAOA;AACT;ACHA,SAAS,OAAOwB,SAAQ;AACtB,SAAO,YAAYA,OAAM,IAAI,cAAcA,SAAQ,IAAI,IAAI,WAAWA,OAAM;AAC9E;ACMA,IAAI,WAAW,eAAe,SAASA,SAAQ,QAAQ;AACrD,aAAW,QAAQ,OAAO,MAAM,GAAGA,OAAM;AAC3C,CAAC;ACJD,IAAI,eAAe,eAAe,SAASA,SAAQ,QAAQ,UAAU,YAAY;AAC/E,aAAW,QAAQ,OAAO,MAAM,GAAGA,SAAQ,UAAU;AACvD,CAAC;ACHD,IAAI,aAAa,eAAe,SAASA,SAAQ,QAAQ,UAAU,YAAY;AAC7E,aAAW,QAAQ,KAAK,MAAM,GAAGA,SAAQ,UAAU;AACrD,CAAC;AC9BD,IAAI,eAAe,oDACf,gBAAgB;AAUpB,SAAS,MAAM,OAAOA,SAAQ;AAC5B,MAAIlF,UAAQ,KAAK,GAAG;AAClB,WAAO;AAAA,EACR;AACD,MAAI,OAAO,OAAO;AAClB,MAAI,QAAQ,YAAY,QAAQ,YAAY,QAAQ,aAChD,SAAS,QAAQ,SAAS,KAAK,GAAG;AACpC,WAAO;AAAA,EACR;AACD,SAAO,cAAc,KAAK,KAAK,KAAK,CAAC,aAAa,KAAK,KAAK,KACzDkF,WAAU,QAAQ,SAAS,OAAOA,OAAM;AAC7C;ACvBA,IAAI,eAAe,UAAU,QAAQ,QAAQ;ACM7C,SAAS,YAAY;AACnB,OAAK,WAAW,eAAe,aAAa,IAAI,IAAI,CAAA;AACpD,OAAK,OAAO;AACd;ACFA,SAAS,WAAW,KAAK;AACvB,MAAIxB,UAAS,KAAK,IAAI,GAAG,KAAK,OAAO,KAAK,SAAS,GAAG;AACtD,OAAK,QAAQA,UAAS,IAAI;AAC1B,SAAOA;AACT;ACXA,IAAI0K,mBAAiB;AAGrB,IAAIlE,gBAAc,OAAO;AAGzB,IAAIpK,mBAAiBoK,cAAY;AAWjC,SAAS,QAAQ,KAAK;AACpB,MAAI,OAAO,KAAK;AAChB,MAAI,cAAc;AAChB,QAAIxG,UAAS,KAAK,GAAG;AACrB,WAAOA,YAAW0K,mBAAiB,SAAY1K;AAAA,EAChD;AACD,SAAO5D,iBAAe,KAAK,MAAM,GAAG,IAAI,KAAK,GAAG,IAAI;AACtD;ACxBA,IAAIoK,gBAAc,OAAO;AAGzB,IAAIpK,mBAAiBoK,cAAY;AAWjC,SAAS,QAAQ,KAAK;AACpB,MAAI,OAAO,KAAK;AAChB,SAAO,eAAgB,KAAK,GAAG,MAAM,SAAapK,iBAAe,KAAK,MAAM,GAAG;AACjF;ACjBA,IAAIsO,mBAAiB;AAYrB,SAAS,QAAQ,KAAK,OAAO;AAC3B,MAAI,OAAO,KAAK;AAChB,OAAK,QAAQ,KAAK,IAAI,GAAG,IAAI,IAAI;AACjC,OAAK,GAAG,IAAK,gBAAgB,UAAU,SAAaA,mBAAiB;AACrE,SAAO;AACT;ACPA,SAAS,KAAK,SAAS;AACrB,MAAInM,SAAQ,IACR,SAAS,WAAW,OAAO,IAAI,QAAQ;AAE3C,OAAK,MAAK;AACV,SAAO,EAAEA,SAAQ,QAAQ;AACvB,QAAI,QAAQ,QAAQA,MAAK;AACzB,SAAK,IAAI,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC;AAAA,EAC5B;AACH;AAGA,KAAK,UAAU,QAAQ;AACvB,KAAK,UAAU,QAAQ,IAAI;AAC3B,KAAK,UAAU,MAAM;AACrB,KAAK,UAAU,MAAM;AACrB,KAAK,UAAU,MAAM;ACtBrB,SAAS,iBAAiB;AACxB,OAAK,WAAW;AAChB,OAAK,OAAO;AACd;ACAA,SAAS,aAAasI,QAAO,KAAK;AAChC,MAAI,SAASA,OAAM;AACnB,SAAO,UAAU;AACf,QAAI,GAAGA,OAAM,MAAM,EAAE,CAAC,GAAG,GAAG,GAAG;AAC7B,aAAO;AAAA,IACR;AAAA,EACF;AACD,SAAO;AACT;ACfA,IAAI8D,eAAa,MAAM;AAGvB,IAAIC,WAASD,aAAW;AAWxB,SAAS,gBAAgB,KAAK;AAC5B,MAAI,OAAO,KAAK,UACZpM,SAAQ,aAAa,MAAM,GAAG;AAElC,MAAIA,SAAQ,GAAG;AACb,WAAO;AAAA,EACR;AACD,MAAI,YAAY,KAAK,SAAS;AAC9B,MAAIA,UAAS,WAAW;AACtB,SAAK,IAAG;AAAA,EACZ,OAAS;AACLqM,aAAO,KAAK,MAAMrM,QAAO,CAAC;AAAA,EAC3B;AACD,IAAE,KAAK;AACP,SAAO;AACT;ACrBA,SAAS,aAAa,KAAK;AACzB,MAAI,OAAO,KAAK,UACZA,SAAQ,aAAa,MAAM,GAAG;AAElC,SAAOA,SAAQ,IAAI,SAAY,KAAKA,MAAK,EAAE,CAAC;AAC9C;ACLA,SAAS,aAAa,KAAK;AACzB,SAAO,aAAa,KAAK,UAAU,GAAG,IAAI;AAC5C;ACDA,SAAS,aAAa,KAAK,OAAO;AAChC,MAAI,OAAO,KAAK,UACZA,SAAQ,aAAa,MAAM,GAAG;AAElC,MAAIA,SAAQ,GAAG;AACb,MAAE,KAAK;AACP,SAAK,KAAK,CAAC,KAAK,KAAK,CAAC;AAAA,EAC1B,OAAS;AACL,SAAKA,MAAK,EAAE,CAAC,IAAI;AAAA,EAClB;AACD,SAAO;AACT;ACVA,SAAS,UAAU,SAAS;AAC1B,MAAIA,SAAQ,IACR,SAAS,WAAW,OAAO,IAAI,QAAQ;AAE3C,OAAK,MAAK;AACV,SAAO,EAAEA,SAAQ,QAAQ;AACvB,QAAI,QAAQ,QAAQA,MAAK;AACzB,SAAK,IAAI,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC;AAAA,EAC5B;AACH;AAGA,UAAU,UAAU,QAAQ;AAC5B,UAAU,UAAU,QAAQ,IAAI;AAChC,UAAU,UAAU,MAAM;AAC1B,UAAU,UAAU,MAAM;AAC1B,UAAU,UAAU,MAAM;ACzB1B,IAAIsM,QAAM,UAAU,MAAM,KAAK;ACO/B,SAAS,gBAAgB;AACvB,OAAK,OAAO;AACZ,OAAK,WAAW;AAAA,IACd,QAAQ,IAAI;AAAA,IACZ,OAAO,KAAKA,SAAO;AAAA,IACnB,UAAU,IAAI;AAAA,EAClB;AACA;ACXA,SAAS,UAAU,OAAO;AACxB,MAAI,OAAO,OAAO;AAClB,SAAQ,QAAQ,YAAY,QAAQ,YAAY,QAAQ,YAAY,QAAQ,YACvE,UAAU,cACV,UAAU;AACjB;ACFA,SAAS,WAAW7J,MAAK,KAAK;AAC5B,MAAI,OAAOA,KAAI;AACf,SAAO,UAAU,GAAG,IAChB,KAAK,OAAO,OAAO,WAAW,WAAW,MAAM,IAC/C,KAAK;AACX;ACJA,SAAS,eAAe,KAAK;AAC3B,MAAIhB,UAAS,WAAW,MAAM,GAAG,EAAE,QAAQ,EAAE,GAAG;AAChD,OAAK,QAAQA,UAAS,IAAI;AAC1B,SAAOA;AACT;ACJA,SAAS,YAAY,KAAK;AACxB,SAAO,WAAW,MAAM,GAAG,EAAE,IAAI,GAAG;AACtC;ACFA,SAAS,YAAY,KAAK;AACxB,SAAO,WAAW,MAAM,GAAG,EAAE,IAAI,GAAG;AACtC;ACDA,SAAS,YAAY,KAAK,OAAO;AAC/B,MAAI,OAAO,WAAW,MAAM,GAAG,GAC3BiC,QAAO,KAAK;AAEhB,OAAK,IAAI,KAAK,KAAK;AACnB,OAAK,QAAQ,KAAK,QAAQA,QAAO,IAAI;AACrC,SAAO;AACT;ACNA,SAAS,SAAS,SAAS;AACzB,MAAI1D,SAAQ,IACR,SAAS,WAAW,OAAO,IAAI,QAAQ;AAE3C,OAAK,MAAK;AACV,SAAO,EAAEA,SAAQ,QAAQ;AACvB,QAAI,QAAQ,QAAQA,MAAK;AACzB,SAAK,IAAI,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC;AAAA,EAC5B;AACH;AAGA,SAAS,UAAU,QAAQ;AAC3B,SAAS,UAAU,QAAQ,IAAI;AAC/B,SAAS,UAAU,MAAM;AACzB,SAAS,UAAU,MAAM;AACzB,SAAS,UAAU,MAAM;AC1BzB,IAAI4I,oBAAkB;AA8CtB,SAAS,QAAQC,OAAM,UAAU;AAC/B,MAAI,OAAOA,SAAQ,cAAe,YAAY,QAAQ,OAAO,YAAY,YAAa;AACpF,UAAM,IAAI,UAAUD,iBAAe;AAAA,EACpC;AACD,MAAI,WAAW,WAAW;AACxB,QAAI,OAAO,WACP,MAAM,WAAW,SAAS,MAAM,MAAM,IAAI,IAAI,KAAK,CAAC,GACpDlK,SAAQ,SAAS;AAErB,QAAIA,OAAM,IAAI,GAAG,GAAG;AAClB,aAAOA,OAAM,IAAI,GAAG;AAAA,IACrB;AACD,QAAI+C,UAASoH,MAAK,MAAM,MAAM,IAAI;AAClC,aAAS,QAAQnK,OAAM,IAAI,KAAK+C,OAAM,KAAK/C;AAC3C,WAAO+C;AAAA,EACX;AACE,WAAS,QAAQ,KAAK,QAAQ,SAAS;AACvC,SAAO;AACT;AAGA,QAAQ,QAAQ;ACnEhB,IAAI,mBAAmB;AAUvB,SAAS,cAAcoH,OAAM;AAC3B,MAAIpH,UAAS,QAAQoH,OAAM,SAAS,KAAK;AACvC,QAAInK,OAAM,SAAS,kBAAkB;AACnC,MAAAA,OAAM,MAAK;AAAA,IACZ;AACD,WAAO;AAAA,EACX,CAAG;AAED,MAAIA,SAAQ+C,QAAO;AACnB,SAAOA;AACT;ACpBA,IAAI,aAAa;AAGjB,IAAI,eAAe;AASnB,IAAI,eAAe,cAAc,SAASiH,SAAQ;AAChD,MAAIjH,UAAS,CAAA;AACb,MAAIiH,QAAO,WAAW,CAAC,MAAM,IAAY;AACvC,IAAAjH,QAAO,KAAK,EAAE;AAAA,EACf;AACD,EAAAiH,QAAO,QAAQ,YAAY,SAAS,OAAO/G,SAAQ,OAAO,WAAW;AACnE,IAAAF,QAAO,KAAK,QAAQ,UAAU,QAAQ,cAAc,IAAI,IAAKE,WAAU,KAAM;AAAA,EACjF,CAAG;AACD,SAAOF;AACT,CAAC;ACDD,SAAS,SAAS,OAAO;AACvB,SAAO,SAAS,OAAO,KAAK,aAAa,KAAK;AAChD;ACZA,SAAS,SAAS,OAAOwB,SAAQ;AAC/B,MAAIlF,UAAQ,KAAK,GAAG;AAClB,WAAO;AAAA,EACR;AACD,SAAO,MAAM,OAAOkF,OAAM,IAAI,CAAC,KAAK,IAAI,aAAa,SAAS,KAAK,CAAC;AACtE;ACfA,IAAIuF,aAAW,IAAI;AASnB,SAAS,MAAM,OAAO;AACpB,MAAI,OAAO,SAAS,YAAY,SAAS,KAAK,GAAG;AAC/C,WAAO;AAAA,EACR;AACD,MAAI/G,UAAU,QAAQ;AACtB,SAAQA,WAAU,OAAQ,IAAI,SAAU,CAAC+G,aAAY,OAAO/G;AAC9D;ACPA,SAAS,QAAQwB,SAAQ,MAAM;AAC7B,SAAO,SAAS,MAAMA,OAAM;AAE5B,MAAIjD,SAAQ,GACR,SAAS,KAAK;AAElB,SAAOiD,WAAU,QAAQjD,SAAQ,QAAQ;AACvC,IAAAiD,UAASA,QAAO,MAAM,KAAKjD,QAAO,CAAC,CAAC;AAAA,EACrC;AACD,SAAQA,UAASA,UAAS,SAAUiD,UAAS;AAC/C;ACMA,SAASI,MAAIJ,SAAQ,MAAM,cAAc;AACvC,MAAIxB,UAASwB,WAAU,OAAO,SAAY,QAAQA,SAAQ,IAAI;AAC9D,SAAOxB,YAAW,SAAY,eAAeA;AAC/C;ACpBA,SAAS,OAAOwB,SAAQ,OAAO;AAC7B,MAAIjD,SAAQ,IACR,SAAS,MAAM,QACfyB,UAAS,MAAM,MAAM,GACrB,OAAOwB,WAAU;AAErB,SAAO,EAAEjD,SAAQ,QAAQ;AACvB,IAAAyB,QAAOzB,MAAK,IAAI,OAAO,SAAYqD,MAAIJ,SAAQ,MAAMjD,MAAK,CAAC;AAAA,EAC5D;AACD,SAAOyB;AACT;ACZA,SAAS,UAAU6G,QAAO1I,SAAQ;AAChC,MAAII,SAAQ,IACR,SAASJ,QAAO,QAChB,SAAS0I,OAAM;AAEnB,SAAO,EAAEtI,SAAQ,QAAQ;AACvB,IAAAsI,OAAM,SAAStI,MAAK,IAAIJ,QAAOI,MAAK;AAAA,EACrC;AACD,SAAOsI;AACT;ACZA,IAAI,mBAAmBN,WAASA,SAAO,qBAAqB;AAS5D,SAAS,cAAc,OAAO;AAC5B,SAAOjK,UAAQ,KAAK,KAAK,YAAY,KAAK,KACxC,CAAC,EAAE,oBAAoB,SAAS,MAAM,gBAAgB;AAC1D;ACHA,SAAS,YAAYuK,QAAO,OAAO,WAAW,UAAU7G,SAAQ;AAC9D,MAAIzB,SAAQ,IACR,SAASsI,OAAM;AAEnB,gBAAc,YAAY;AAC1B,EAAA7G,YAAWA,UAAS,CAAA;AAEpB,SAAO,EAAEzB,SAAQ,QAAQ;AACvB,QAAI,QAAQsI,OAAMtI,MAAK;AACvB,QAAI,QAAQ,KAAK,UAAU,KAAK,GAAG;AACjC,UAAI,QAAQ,GAAG;AAEb,oBAAY,OAAO,QAAQ,GAAG,WAAW,UAAUyB,OAAM;AAAA,MACjE,OAAa;AACL,kBAAUA,SAAQ,KAAK;AAAA,MACxB;AAAA,IACP,WAAe,CAAC,UAAU;AACpB,MAAAA,QAAOA,QAAO,MAAM,IAAI;AAAA,IACzB;AAAA,EACF;AACD,SAAOA;AACT;ACnBA,SAAS,QAAQ6G,QAAO;AACtB,MAAI,SAASA,UAAS,OAAO,IAAIA,OAAM;AACvC,SAAO,SAAS,YAAYA,QAAO,CAAC,IAAI,CAAA;AAC1C;ACRA,SAAS,SAASO,OAAM;AACtB,SAAO,YAAY,SAASA,OAAM,QAAW,OAAO,GAAGA,QAAO,EAAE;AAClE;ACOA,IAAI0D,OAAK,SAAS,MAAM;ACjBxB,IAAI,eAAe,QAAQ,OAAO,gBAAgB,MAAM;ACExD,IAAIpB,cAAY;AAGhB,IAAI,YAAY,SAAS,WACrBlD,gBAAc,OAAO;AAGzB,IAAI,eAAe,UAAU;AAG7B,IAAIpK,mBAAiBoK,cAAY;AAGjC,IAAI,mBAAmB,aAAa,KAAK,MAAM;AA8B/C,SAASxJ,gBAAc,OAAO;AAC5B,MAAI,CAAC,aAAa,KAAK,KAAK,WAAW,KAAK,KAAK0M,aAAW;AAC1D,WAAO;AAAA,EACR;AACD,MAAI,QAAQ,aAAa,KAAK;AAC9B,MAAI,UAAU,MAAM;AAClB,WAAO;AAAA,EACR;AACD,MAAI,OAAOtN,iBAAe,KAAK,OAAO,aAAa,KAAK,MAAM;AAC9D,SAAO,OAAO,QAAQ,cAAc,gBAAgB,QAClD,aAAa,KAAK,IAAI,KAAK;AAC/B;ACtDA,IAAI,YAAY,yBACZmN,aAAW;AAoBf,SAAS,QAAQ,OAAO;AACtB,MAAI,CAAC,aAAa,KAAK,GAAG;AACxB,WAAO;AAAA,EACR;AACD,MAAI,MAAM,WAAW,KAAK;AAC1B,SAAO,OAAOA,cAAY,OAAO,aAC9B,OAAO,MAAM,WAAW,YAAY,OAAO,MAAM,QAAQ,YAAY,CAACvM,gBAAc,KAAK;AAC9F;ACPA,IAAI,UAAU,SAAS,SAASoK,OAAM,MAAM;AAC1C,MAAI;AACF,WAAOQ,QAAMR,OAAM,QAAW,IAAI;AAAA,EACnC,SAAQpJ,IAAG;AACV,WAAO,QAAQA,EAAC,IAAIA,KAAI,IAAI,MAAMA,EAAC;AAAA,EACpC;AACH,CAAC;AC7BD,IAAImJ,oBAAkB;AAmBtB,SAAS,OAAO5J,IAAG6J,OAAM;AACvB,MAAIpH;AACJ,MAAI,OAAOoH,SAAQ,YAAY;AAC7B,UAAM,IAAI,UAAUD,iBAAe;AAAA,EACpC;AACD,EAAA5J,KAAI,UAAUA,EAAC;AACf,SAAO,WAAW;AAChB,QAAI,EAAEA,KAAI,GAAG;AACX,MAAAyC,UAASoH,MAAK,MAAM,MAAM,SAAS;AAAA,IACpC;AACD,QAAI7J,MAAK,GAAG;AACV,MAAA6J,QAAO;AAAA,IACR;AACD,WAAOpH;AAAA,EACX;AACA;AC/BA,IAAI2H,mBAAiB,GACjBO,sBAAoB;AAqCxB,IAAI,OAAO,SAAS,SAASd,OAAM,SAAS,UAAU;AACpD,MAAI,UAAUO;AACd,MAAI,SAAS,QAAQ;AACnB,QAAI,UAAU,eAAe,UAAU,UAAU,IAAI,CAAC;AACtD,eAAWO;AAAAA,EACZ;AACD,SAAO,WAAWd,OAAM,SAAS,SAAS,UAAU,OAAO;AAC7D,CAAC;AAGD,KAAK,cAAc,CAAE;ACtBrB,IAAI,UAAU,SAAS,SAAS5F,SAAQ,aAAa;AACnD,YAAU,aAAa,SAAS,KAAK;AACnC,UAAM,MAAM,GAAG;AACf,oBAAgBA,SAAQ,KAAK,KAAKA,QAAO,GAAG,GAAGA,OAAM,CAAC;AAAA,EAC1D,CAAG;AACD,SAAOA;AACT,CAAC;AChCD,IAAI,iBAAiB,GACjBuG,uBAAqB,GACrBG,sBAAoB;AA+CxB,IAAI,UAAU,SAAS,SAAS1G,SAAQ,KAAK,UAAU;AACrD,MAAI,UAAU,iBAAiBuG;AAC/B,MAAI,SAAS,QAAQ;AACnB,QAAI,UAAU,eAAe,UAAU,UAAU,OAAO,CAAC;AACzD,eAAWG;AAAAA,EACZ;AACD,SAAO,WAAW,KAAK,SAAS1G,SAAQ,UAAU,OAAO;AAC3D,CAAC;AAGD,QAAQ,cAAc,CAAE;ACxDxB,SAAS,UAAUqF,QAAO,OAAO,KAAK;AACpC,MAAItI,SAAQ,IACR,SAASsI,OAAM;AAEnB,MAAI,QAAQ,GAAG;AACb,YAAQ,CAAC,QAAQ,SAAS,IAAK,SAAS;AAAA,EACzC;AACD,QAAM,MAAM,SAAS,SAAS;AAC9B,MAAI,MAAM,GAAG;AACX,WAAO;AAAA,EACR;AACD,WAAS,QAAQ,MAAM,IAAM,MAAM,UAAW;AAC9C,aAAW;AAEX,MAAI7G,UAAS,MAAM,MAAM;AACzB,SAAO,EAAEzB,SAAQ,QAAQ;AACvB,IAAAyB,QAAOzB,MAAK,IAAIsI,OAAMtI,SAAQ,KAAK;AAAA,EACpC;AACD,SAAOyB;AACT;ACjBA,SAAS,UAAU6G,QAAO,OAAO,KAAK;AACpC,MAAI,SAASA,OAAM;AACnB,QAAM,QAAQ,SAAY,SAAS;AACnC,SAAQ,CAAC,SAAS,OAAO,SAAUA,SAAQ,UAAUA,QAAO,OAAO,GAAG;AACxE;ACdA,IAAIkE,kBAAgB,mBAChBC,sBAAoB,mBACpBC,0BAAwB,mBACxBC,wBAAsB,mBACtBC,iBAAeH,sBAAoBC,0BAAwBC,uBAC3DE,eAAa;AAGjB,IAAIC,UAAQ;AAGZ,IAAI,eAAe,OAAO,MAAMA,UAAQN,kBAAiBI,iBAAeC,eAAa,GAAG;AASxF,SAAS,WAAWnE,SAAQ;AAC1B,SAAO,aAAa,KAAKA,OAAM;AACjC;AChBA,SAAS,aAAaA,SAAQ;AAC5B,SAAOA,QAAO,MAAM,EAAE;AACxB;ACRA,IAAI8D,kBAAgB,mBAChBC,sBAAoB,mBACpBC,0BAAwB,mBACxBC,wBAAsB,mBACtBC,iBAAeH,sBAAoBC,0BAAwBC,uBAC3DE,eAAa;AAGjB,IAAIE,aAAW,MAAMP,kBAAgB,KACjCQ,YAAU,MAAMJ,iBAAe,KAC/BK,WAAS,4BACTC,eAAa,QAAQF,YAAU,MAAMC,WAAS,KAC9CE,gBAAc,OAAOX,kBAAgB,KACrCY,eAAa,mCACbC,eAAa,sCACbP,UAAQ;AAGZ,IAAIQ,aAAWJ,eAAa,KACxBK,aAAW,MAAMV,eAAa,MAC9BW,cAAY,QAAQV,UAAQ,QAAQ,CAACK,eAAaC,cAAYC,YAAU,EAAE,KAAK,GAAG,IAAI,MAAME,aAAWD,aAAW,MAClHG,UAAQF,aAAWD,aAAWE,aAC9BE,aAAW,QAAQ,CAACP,gBAAcH,YAAU,KAAKA,WAASI,cAAYC,cAAYN,UAAQ,EAAE,KAAK,GAAG,IAAI;AAG5G,IAAIY,cAAY,OAAOV,WAAS,QAAQA,WAAS,OAAOS,aAAWD,SAAO,GAAG;AAS7E,SAAS,eAAe/E,SAAQ;AAC9B,SAAOA,QAAO,MAAMiF,WAAS,KAAK,CAAA;AACpC;AC1BA,SAAS,cAAcjF,SAAQ;AAC7B,SAAO,WAAWA,OAAM,IACpB,eAAeA,OAAM,IACrB,aAAaA,OAAM;AACzB;ACHA,SAAS,gBAAgB,YAAY;AACnC,SAAO,SAASA,SAAQ;AACtB,IAAAA,UAAS,SAASA,OAAM;AAExB,QAAI,aAAa,WAAWA,OAAM,IAC9B,cAAcA,OAAM,IACpB;AAEJ,QAAI,MAAM,aACN,WAAW,CAAC,IACZA,QAAO,OAAO,CAAC;AAEnB,QAAI,WAAW,aACX,UAAU,YAAY,CAAC,EAAE,KAAK,EAAE,IAChCA,QAAO,MAAM,CAAC;AAElB,WAAO,IAAI,UAAU,EAAG,IAAG;AAAA,EAC/B;AACA;ACXA,IAAI,aAAa,gBAAgB,aAAa;ACD9C,SAAS,WAAWA,SAAQ;AAC1B,SAAO,WAAW,SAASA,OAAM,EAAE,YAAa,CAAA;AAClD;ACRA,SAAS,YAAYJ,QAAOC,WAAU,aAAa,WAAW;AAC5D,MAAIvI,SAAQ,IACR,SAASsI,UAAS,OAAO,IAAIA,OAAM;AAEvC,MAAI,aAAa,QAAQ;AACvB,kBAAcA,OAAM,EAAEtI,MAAK;AAAA,EAC5B;AACD,SAAO,EAAEA,SAAQ,QAAQ;AACvB,kBAAcuI,UAAS,aAAaD,OAAMtI,MAAK,GAAGA,QAAOsI,MAAK;AAAA,EAC/D;AACD,SAAO;AACT;AChBA,SAAS,eAAerF,SAAQ;AAC9B,SAAO,SAAS,KAAK;AACnB,WAAOA,WAAU,OAAO,SAAYA,QAAO,GAAG;AAAA,EAClD;AACA;ACRA,IAAI,kBAAkB;AAAA;AAAA,EAEpB,KAAQ;AAAA,EAAM,KAAQ;AAAA,EAAK,KAAQ;AAAA,EAAK,KAAQ;AAAA,EAAK,KAAQ;AAAA,EAAK,KAAQ;AAAA,EAC1E,KAAQ;AAAA,EAAM,KAAQ;AAAA,EAAK,KAAQ;AAAA,EAAK,KAAQ;AAAA,EAAK,KAAQ;AAAA,EAAK,KAAQ;AAAA,EAC1E,KAAQ;AAAA,EAAM,KAAQ;AAAA,EACtB,KAAQ;AAAA,EAAM,KAAQ;AAAA,EACtB,KAAQ;AAAA,EAAM,KAAQ;AAAA,EAAK,KAAQ;AAAA,EAAK,KAAQ;AAAA,EAChD,KAAQ;AAAA,EAAM,KAAQ;AAAA,EAAK,KAAQ;AAAA,EAAK,KAAQ;AAAA,EAChD,KAAQ;AAAA,EAAM,KAAQ;AAAA,EAAK,KAAQ;AAAA,EAAK,KAAQ;AAAA,EAChD,KAAQ;AAAA,EAAM,KAAQ;AAAA,EAAK,KAAQ;AAAA,EAAK,KAAQ;AAAA,EAChD,KAAQ;AAAA,EAAM,KAAQ;AAAA,EACtB,KAAQ;AAAA,EAAM,KAAQ;AAAA,EAAK,KAAQ;AAAA,EAAK,KAAQ;AAAA,EAAK,KAAQ;AAAA,EAAK,KAAQ;AAAA,EAC1E,KAAQ;AAAA,EAAM,KAAQ;AAAA,EAAK,KAAQ;AAAA,EAAK,KAAQ;AAAA,EAAK,KAAQ;AAAA,EAAK,KAAQ;AAAA,EAC1E,KAAQ;AAAA,EAAM,KAAQ;AAAA,EAAK,KAAQ;AAAA,EAAK,KAAQ;AAAA,EAChD,KAAQ;AAAA,EAAM,KAAQ;AAAA,EAAK,KAAQ;AAAA,EAAK,KAAQ;AAAA,EAChD,KAAQ;AAAA,EAAM,KAAQ;AAAA,EAAK,KAAQ;AAAA,EACnC,KAAQ;AAAA,EAAM,KAAQ;AAAA,EACtB,KAAQ;AAAA,EAAM,KAAQ;AAAA,EACtB,KAAQ;AAAA;AAAA,EAER,KAAU;AAAA,EAAM,KAAU;AAAA,EAAK,KAAU;AAAA,EACzC,KAAU;AAAA,EAAM,KAAU;AAAA,EAAK,KAAU;AAAA,EACzC,KAAU;AAAA,EAAM,KAAU;AAAA,EAAK,KAAU;AAAA,EAAK,KAAU;AAAA,EACxD,KAAU;AAAA,EAAM,KAAU;AAAA,EAAK,KAAU;AAAA,EAAK,KAAU;AAAA,EACxD,KAAU;AAAA,EAAM,KAAU;AAAA,EAAK,KAAU;AAAA,EAAK,KAAU;AAAA,EACxD,KAAU;AAAA,EAAM,KAAU;AAAA,EAAK,KAAU;AAAA,EAAK,KAAU;AAAA,EAAK,KAAU;AAAA,EACvE,KAAU;AAAA,EAAM,KAAU;AAAA,EAAK,KAAU;AAAA,EAAK,KAAU;AAAA,EAAK,KAAU;AAAA,EACvE,KAAU;AAAA,EAAM,KAAU;AAAA,EAAK,KAAU;AAAA,EAAK,KAAU;AAAA,EACxD,KAAU;AAAA,EAAM,KAAU;AAAA,EAAK,KAAU;AAAA,EAAK,KAAU;AAAA,EACxD,KAAU;AAAA,EAAM,KAAU;AAAA,EAAK,KAAU;AAAA,EAAK,KAAU;AAAA,EACxD,KAAU;AAAA,EAAM,KAAU;AAAA,EAAK,KAAU;AAAA,EAAK,KAAU;AAAA,EAAK,KAAU;AAAA,EACvE,KAAU;AAAA,EAAM,KAAU;AAAA,EAAK,KAAU;AAAA,EAAK,KAAU;AAAA,EAAK,KAAU;AAAA,EACvE,KAAU;AAAA,EAAM,KAAU;AAAA,EAC1B,KAAU;AAAA,EAAM,KAAU;AAAA,EAAK,KAAU;AAAA,EACzC,KAAU;AAAA,EAAM,KAAU;AAAA,EAAK,KAAU;AAAA,EAAK,KAAU;AAAA,EAAK,KAAU;AAAA,EACvE,KAAU;AAAA,EAAM,KAAU;AAAA,EAAK,KAAU;AAAA,EAAK,KAAU;AAAA,EAAK,KAAU;AAAA,EACvE,KAAU;AAAA,EAAM,KAAU;AAAA,EAAK,KAAU;AAAA,EAAK,KAAU;AAAA,EACxD,KAAU;AAAA,EAAM,KAAU;AAAA,EAAK,KAAU;AAAA,EAAK,KAAU;AAAA,EACxD,KAAU;AAAA,EAAM,KAAU;AAAA,EAAK,KAAU;AAAA,EACzC,KAAU;AAAA,EAAM,KAAU;AAAA,EAAK,KAAU;AAAA,EACzC,KAAU;AAAA,EAAM,KAAU;AAAA,EAAK,KAAU;AAAA,EACzC,KAAU;AAAA,EAAM,KAAU;AAAA,EAAK,KAAU;AAAA,EACzC,KAAU;AAAA,EAAM,KAAU;AAAA,EAAK,KAAU;AAAA,EAAK,KAAU;AAAA,EACxD,KAAU;AAAA,EAAM,KAAU;AAAA,EAAK,KAAU;AAAA,EAAK,KAAU;AAAA,EACxD,KAAU;AAAA,EAAM,KAAU;AAAA,EAAK,KAAU;AAAA,EACzC,KAAU;AAAA,EAAM,KAAU;AAAA,EAAK,KAAU;AAAA,EACzC,KAAU;AAAA,EAAM,KAAU;AAAA,EAAK,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ACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,EACT;AAAA,EACD,aAAa;AAAA,IACX,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,EACT;AACH;AACA,IAAI,aAAa,CAAC,MAAM,OAAO,cAAc;AAAA,EAC3C;AAAA,EACA;AAAA,EACA;AACF;AACA,SAAS,sBAAsB;AAC7B,QAAM;AAAA,IACJ,WAAW;AAAA,IACX,aAAa;AAAA,IACb,eAAe;AAAA,EAChB,IAAG;AACJ,QAAM,cAA8B,oBAAI;AACxC,SAAO,KAAK,QAAQ,EAAE,QAAQ,CAAC,SAAS;AACtC,gBAAY,IAAI,KAAK,MAAM,GAAG,CAAC,GAAG,WAAW,SAAS,IAAI,GAAG,MAAM,CAAA,CAAE,CAAC;AAAA,EAC1E,CAAG;AACD,QAAM,UAA0B,oBAAI;AACpC,SAAO,KAAK,IAAI,EAAE,QAAQ,CAAC,SAAS;AAClC,UAAM,SAAS,WAAW,KAAK,IAAI,GAAG,MAAM,CAAA,CAAE;AAC9C,YAAQ,IAAI,KAAK,MAAM,GAAG,CAAC,GAAG,MAAM;AACpC,UAAM,YAAY,YAAY,IAAI,KAAK,MAAM,GAAG,CAAC,CAAC;AAClD,QAAI,WAAW;AACb,gBAAU,SAAS,KAAK,MAAM;AAAA,IAC/B;AAAA,EACL,CAAG;AACD,SAAO,KAAK,MAAM,EAAE,QAAQ,CAAC,SAAS;AACpC,UAAM,QAAQ,QAAQ,IAAI,KAAK,MAAM,GAAG,CAAC,CAAC;AAC1C,QAAI,OAAO;AACT,YAAM,SAAS,KAAK,WAAW,OAAO,IAAI,GAAG,IAAI,CAAC;AAAA,IACnD;AAAA,EACL,CAAG;AACD,SAAO,MAAM,KAAK,YAAY,OAAQ,CAAA;AACxC;AC7zHO,SAAS,UAAa,KAAqC;AAC1D,QAAAsC,UAAS,OAAO,KAAK,IAAI;AAE/B,MAAIA,SAAQ;AACV,UAAM,WAAW;AACjB,UAAM,EAAE,MAAM,QAAQ,iBAAA,IAAqBA;AAE3C,SAAK,QAAQ;AACD,gBAAA,MAAM,OAAO,QAAQ,CAAC;AAElC,UAAM5E,SAAQ,SAAS,MAAM,iBAAiB,QAAQ,QAAQ,CAAC;AAExD,WAAA;AAAA,MACL,QAAA4E;AAAA,MACA,OAAA5E;AAAA,IAAA;AAAA,EAEJ;AAEO,SAAA;AAAA,IACL,QAAQ;AAAA,IACR,OAAO,IAAI,EAAE;AAAA,EAAA;AAEjB;AC3Ba,MAAA,qBAAyD,OAAO,mBAAmB;ACRzF,MAAM,gBAAgB,iCACxB,YADwB;AAAA,EAE3B,kBAAkB,eAAe,EAAE;AAAA,EACnC,kBAAkB,eAAe,EAAE;AAAA;AAAA;AAAA;AAAA,EAInC,YAAY;AAAA,IACV,MAAM,CAAC,QAAQ,QAAQ,OAAO;AAAA,IAC9B,UAAU;AAAA,IACV,SAAS;AAAA,EACX;AAAA;AAAA;AAAA;AAAA,EAIA,OAAO,eAA2B,QAAQ;AAAA;AAAA;AAAA;AAAA,EAI1C,cAAc;AAAA;AAAA;AAAA;AAAA,EAId,UAAU;AAAA,IACR,MAAM,CAAC,SAAS,IAAI;AAAA,IACpB,SAAS;AAAA,EACX;AAAA;AAAA;AAAA;AAAA,EAIA,WAAW;AAAA,IACT,MAAM,CAAC,QAAQ,QAAQ,OAAO;AAAA,IAC9B,SAAS;AAAA,EACX;AAAA;AAAA;AAAA;AAAA,EAIA,YAAY;AAAA,IACV,MAAM,CAAC,QAAQ,QAAQ,OAAO;AAAA,IAC9B,SAAS;AAAA,EACX;AAAA;AAAA;AAAA;AAAA,EAIA,MAAM;AAAA;AAAA;AAAA;AAAA,EAIN,UAAU;AACZ;ACrCO,MAAM,WAAW,iCACnB,YADmB;AAAA,EAEtB,aAAa,eAAe,EAAE;AAAA;AAAA;AAAA;AAAA,EAI9B,KAAK;AAAA;AAAA;AAAA;AAAA,EAIL,OAAO,gBAAgB,KAAK;AAAA;AAAA;AAAA;AAAA,EAI5B,MAAM,eAA0B,aAAa;AAAA;AAAA;AAAA;AAAA,EAI7C,UAAU,gBAAgB,KAAK;AAAA;AAAA;AAAA;AAAA,EAI/B,OAAO;AAAA;AAAA;AAAA;AAAA,EAIP,QAAQ;AAAA;AAAA;AAAA;AAAA,EAIR,QAAQ;AAAA;AAAA;AAAA;AAAA,EAIR,eAAe,gBAAgB,KAAK;AACtC;AClCa,MAAA,iBAAkD,OAAO,eAAe;ACd9E,SAAS,UAAU;AACxB,QAAM,EAAE,QAAQ,WAAW,OAAAA,OAAM,IAAI,UAAU,cAAc;AAEvD,QAAA,SAAS,SAAS,MAAM;AAC5B,WAAO,aAAa,UAAU,MAAM,UAAUA,OAAM;AAAA,EAAA,CACrD;AAED,SAAO,EAAE,OAAO;AAClB;ACMO,MAAM,kBAAkB,iCAC1B,YAD0B;AAAA;AAAA;AAAA;AAAA,EAK7B,SAAS,gBAAgB,KAAK;AAAA;AAAA;AAAA;AAAA,EAI9B,cAAc,eAAe,SAAS;AAAA;AAAA;AAAA;AAAA,EAItC,eAAe,eAAe,GAAG;AAAA;AAAA;AAAA;AAAA,EAIjC,UAAU,eAAe,OAAO;AAAA;AAAA;AAAA;AAAA,EAIhC,UAAU,eAAe,OAAO;AAAA;AAAA;AAAA;AAAA,EAIhC,iBAAiB,gBAAgB,KAAK;AAAA;AAAA;AAAA;AAAA,EAItC,YAAY;AAAA,IACV,MAAM,CAAC,QAAQ,QAAQ,SAAS,OAAe,OAAe,KAAc;AAAA,IAG5E,SAAS;AAAA,IACT,UAAU;AAAA,EACZ;AAAA;AAAA;AAAA;AAAA,EAIA,SAAS,cAAgG;AAAA;AAAA;AAAA;AAAA,EAIzG,cAAc;AAChB;AAyBgB,SAAA,YACdsI,QACA,UACA,UACgB;AAChB,MAAI,YAAuF,QAAQA,MAAK,IAAIA,SAAQ,CAACA,MAAK;AAE1H,QAAM,qBAAqB,IAAI,IAAIA,OAAM,IAAI,OAAO,CAAC;AAOrD,MAAI,mBAAmB,SAAS,KAAK,mBAAmB,IAAI,QAAQ,GAAG;AAErE,UAAM,MAAM,yBAAyB;AAAA,EACvC;AAKA,MAAI,CAAC,QAAQA,OAAM,CAAC,CAAC,GAAG;AACtB,gBAAY,CAAC,SAAgD;AAAA,EAC/D;AAEA,QAAM7G,UAAoC,UAAyD,IAAI,CAAC,QAAQ;AACvG,WAAA,IAAI,IAAI,CAAC,QAAQ;AAElB,UAAA,CAAC,MAAM,GAAG,GAAG;AACR,eAAA;AAAA,UACL,CAAC,QAAQ,GAAG;AAAA,UACZ,CAAC,QAAQ,GAAG;AAAA,QAAA;AAAA,MAEhB;AAQI,UAAA,CAAC,IAAI,eAAe,QAAQ,KAAK,CAAC,IAAI,eAAe,QAAQ,GAAG;AAEpE,cAAM,MAAM,6CAA8C;AAAA,MAC1D;AAEA,UAAI,CAAC,IAAI,eAAe,QAAQ,GAAG;AAC7B,YAAA,QAAQ,IAAI,IAAI,QAAQ;AAAA,MAC9B;AAEA,UAAI,CAAC,IAAI,eAAe,QAAQ,GAAG;AAC7B,YAAA,QAAQ,IAAI,IAAI,QAAQ;AAAA,MAC9B;AACO,aAAA;AAAA,IAAA,CACR;AAAA,EAAA,CACF;AAEM,SAAAA;AACT;AC7Ha,MAAA,WAAsC,OAAO,SAAS;AAqB5D,MAAM,YAAY,iCACpB,YADoB;AAAA;AAAA;AAAA;AAAA,EAKvB,OAAO,iBAAiB,MAAuC;AAAA;AAAA;AAAA;AAAA,EAI/D,OAAO;AAAA,IACL,MAAM;AAAA,IACN,SAAS,OAAO,CAAA;AAAA,EAClB;AAAA;AAAA;AAAA;AAAA,EAIA,eAAe,gBAAgB,IAAI;AACrC;AC3DA,MAAe,OAAA;AAAA,EACb,UAAU;AAAA,IACR,aAAa;AAAA,IACb,OAAO;AAAA,IACP,KAAK;AAAA,IACL,MAAM;AAAA,IACN,OAAO;AAAA,IACP,SAAS;AAAA,IACT,WAAW;AAAA,IACX,SAAS;AAAA,IACT,IAAI;AAAA,IACJ,YAAY;AAAA,IACZ,YAAY;AAAA,IACZ,YAAY,CAAC,MAAc,SAAiB,GAAG,IAAI,MAAM,IAAI;AAAA,IAC7D,WAAW;AAAA,IACX,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,aAAa;AAAA,EACf;AAAA,EACA,cAAc;AAAA,IACZ,WAAW;AAAA,IACX,SAAS;AAAA,IACT,OAAO;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,IACP;AAAA,IACA,aAAa,CAAC,aAAqB,WAAW,QAAQ;AAAA,IACtD,iBAAiB,CAAC,aAAqB,WAAW,QAAQ;AAAA,IAC1D,kBAAkB,CAAC,aAAqB,WAAW,QAAQ;AAAA,IAC3D,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,OAAO;AAAA,IACP,MAAM,CAAC,UAAkB,GAAG,KAAK;AAAA,IACjC,QAAQ,CAAC,UAAkB,GAAG,KAAK;AAAA,IACnC,QAAQ,CAAC,UAAkB,GAAG,KAAK;AAAA,EACrC;AAAA,EACA,UAAU;AAAA,IACR,QAAQ;AAAA,IACR,SAAS;AAAA,EACX;AAAA,EACA,WAAW;AAAA,IACT,OAAO;AAAA,IACP,aAAa;AAAA,IACb,QAAQ;AAAA,EACV;AAAA,EACA,gBAAgB;AAAA,IACd,OAAO;AAAA,IACP,KAAK;AAAA,IACL,IAAI;AAAA,IACJ,aAAa;AAAA,IACb,SAAS;AAAA,IACT,QAAQ;AAAA,EACV;AAAA,EACA,UAAU;AAAA,IACR,SAAS;AAAA,IACT,UAAU;AAAA,IACV,OAAO;AAAA,IACP,OAAO;AAAA,EACT;AAAA,EACA,YAAY;AAAA,IACV,kBAAkB;AAAA,IAClB,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,iBAAiB;AAAA,EACnB;AAAA,EACA,gBAAgB;AAAA,IACd,SAAS;AAAA,EACX;AAAA,EACA,YAAY;AAAA,IACV,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAM,CAAC,UAAkB,OAAO,KAAK;AAAA,IACrC,OAAO,CAAC,UAAkB,QAAQ,KAAK;AAAA,IACvC,MAAM,CAACiC,UAAiB,QAAQA,KAAI;AAAA,EACtC;AAAA,EACA,QAAQ;AAAA,IACN,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,aAAa;AAAA,EACf;AAAA,EACA,YAAY;AAAA,IACV,SAAS;AAAA,IACT,QAAQ;AAAA,EACV;AAAA,EACA,QAAQ;AAAA,IACN,QAAQ;AAAA,IACR,QAAQ;AAAA,EACV;AAAA,EACA,OAAO;AAAA,IACL,MAAM;AAAA,IACN,UAAU;AAAA,IACV,SAAS;AAAA,IACT,QAAQ;AAAA,EACV;AAAA,EACA,MAAM;AAAA,IACJ,KAAK;AAAA,EACP;AAAA,EACA,QAAQ;AAAA,IACN,OAAO;AAAA,EACT;AAAA,EACA,OAAO;AAAA,IACL,aAAa;AAAA,EACf;AAAA,EACA,cAAc;AAAA,IACZ,OAAO;AAAA,IACP,aAAa;AAAA,IACb,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,mBAAmB;AAAA,EACrB;AAAA,EACA,KAAK;AAAA,IACH,aAAa;AAAA,IACb,KAAK;AAAA,EACP;AAAA,EACA,UAAU;AAAA,IACR,aAAa;AAAA,EACf;AAAA,EACA,UAAU;AAAA,IACR,YAAY;AAAA,EACd;AACF;AC9GA,MAAM,OAAO,IAAY,OAAO;AAChC,MAAM,WAAW,SAAmB;AAAA,EAClC,SAAS;AACX,CAAC;AAEM,MAAM,SAAS;AAAA,EACpB,WAAoB;AACX,WAAA,SAAS,KAAK,KAAK;AAAA,EAC5B;AAAA,EAEA,IAAI,SAAiB,YAAsB;AACzC,SAAK,QAAQ;AACb,QAAI,YAAY;AACd,WAAK,IAAI,EAAE,CAAC,OAAO,GAAG,WAAY,CAAA;AAAA,IACpC;AAAA,EACF;AAAA,EAEA,IAAI,cAAwB,IAAI;AAC9B,eAAW,UAAU,WAAW;AAAA,EAClC;AACF;ACxBa,MAAA,eAAe,CAAC,SAAkB;AAC7C,QAAM,SAAS,OAAO,UAAU,IAAI,IAAI,MAAM;AACxC,QAAAyQ,aAAY,CAAC,QAAgB,SAAoB;AAC/C,UAAA,kBAAkB,OAAO;AAC/B,UAAM,UAAU,cAAc,iBAAiB,SAAS,GAAG;AAC3D,WAAO,WAAW,OAAO,IAAI,QAAQ,GAAG,IAAI,IAAI;AAAA,EAAA;AAGlD,SAAO,EAAE,WAAAA,WAAU;AACrB;AChBO,MAAM,cAAc,iCACtB,YADsB;AAAA;AAAA;AAAA;AAAA,EAKzB,kBAAkB,eAAe,EAAE;AAAA;AAAA;AAAA;AAAA,EAInC,kBAAkB,eAAe,EAAE;AAAA;AAAA;AAAA;AAAA,EAInC,iBAAiB,eAAe,EAAE;AAAA;AAAA;AAAA;AAAA,EAIlC,OAAO;AAAA;AAAA;AAAA;AAAA,EAIP,aAAa;AAAA;AAAA;AAAA;AAAA,EAIb,UAAU,gBAAgB,KAAK;AAAA;AAAA;AAAA;AAAA,EAI/B,UAAU,gBAAgB,KAAK;AAAA;AAAA;AAAA;AAAA,EAI/B,SAAS,gBAAgB,KAAK;AAAA;AAAA;AAAA;AAAA,EAI9B,cAAc,eAAe,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA,EAKtC,OAAO;AAAA;AAAA;AAAA;AAAA,EAIP,kBAAkB;AAAA;AAAA;AAAA;AAAA,EAIlB,mBAAmB;AAAA;AAAA;AAAA;AAAA,EAInB,UAAU,gBAAgB,KAAK;AAAA;AAAA;AAAA;AAAA,EAI/B,MAAM;AAAA;AAAA;AAAA;AAAA,EAIN,YAAY;AAAA;AAAA;AAAA;AAAA,EAIZ,gBAAgB,gBAAgB,KAAK;AAAA;AAAA;AAAA;AAAA,EAIrC,cAAc,gBAAgB,KAAK;AAAA;AAAA;AAAA;AAAA,EAInC,OAAO,gBAAgB,KAAK;AAAA;AAAA;AAAA;AAAA,EAI5B,YAAY,gBAAgB,KAAK;AAAA;AAAA;AAAA;AAAA,EAIjC,eAAe;AAAA;AAAA;AAAA;AAAA,EAIf,mBAAmB,gBAAgB,IAAI;AAAA;AAAA;AAAA;AAAA,EAIvC,qBAAqB,gBAAgB,IAAI;AAAA;AAAA;AAAA;AAAA,EAIzC,UAAU,gBAAgB,KAAK;AAAA;AAAA;AAAA;AAAA,EAI/B,eAAe,eAAe,GAAG;AAAA;AAAA;AAAA;AAAA,EAIjC,UAAU,eAAe,OAAO;AAAA;AAAA;AAAA;AAAA,EAIhC,UAAU,eAAe,OAAO;AAAA;AAAA;AAAA;AAAA,EAIhC,YAAY;AAAA,IACV,MAAM,CAAC,QAAQ,QAAQ,KAAK;AAAA,IAC5B,SAAS;AAAA,EACX;AAAA;AAAA;AAAA;AAAA,EAIA,SAAS;AAAA,IACP,MAAM;AAAA,IACN,SAAS,MAAM,CAAC;AAAA,EAClB;AAAA;AAAA;AAAA;AAAA,EAIA,cAAc;AAAA;AAAA;AAAA;AAAA,EAId,eAAe;AAAA;AAAA;AAAA;AAAA,EAIf,QAAQ,eAAe,EAAE;AAAA;AAAA;AAAA;AAAA,EAIzB,MAAM;AAAA;AAAA;AAAA;AAAA,EAIN,OAAO,cAA4B;AAAA;AAAA;AAAA;AAAA,EAInC,iBAAiB,gBAAgB,KAAK;AACxC;AC3IO,MAAM,mBAAmB,iCAC3B,YAD2B;AAAA;AAAA;AAAA;AAAA,EAK9B,YAAY,iBAAiB,WAAW;AAAA;AAAA;AAAA;AAAA,EAIxC,KAAK,eAAe,CAAC;AAAA;AAAA;AAAA;AAAA,EAIrB,KAAK,eAAe,OAAO,gBAAgB;AAAA;AAAA;AAAA;AAAA,EAI3C,MAAM,eAAe,CAAC;AAAA;AAAA;AAAA;AAAA,EAItB,cAAc,gBAAgB,KAAK;AAAA;AAAA;AAAA;AAAA,EAInC,WAAW,eAAe,CAAC;AAAA;AAAA;AAAA;AAAA,EAI3B,UAAU,gBAAgB,KAAK;AAAA;AAAA;AAAA;AAAA,EAI/B,cAAc,gBAAgB,KAAK;AAAA;AAAA;AAAA;AAAA,EAInC,cAAc,gBAAgB,KAAK;AAAA;AAAA;AAAA;AAAA,EAInC,aAAa,gBAAgB,KAAK;AAAA;AAAA;AAAA;AAAA,EAIlC,cAAc,gBAAgB,KAAK;AAAA;AAAA;AAAA;AAAA,EAInC,YAAY,gBAAgB,EAAE;AAAA;AAAA;AAAA;AAAA,EAI9B,WAAW,gBAAgB,KAAK;AAAA;AAAA;AAAA;AAAA,EAIhC,aAAa,eAAe,EAAE;AAChC;AChEO,MAAM,gBAAgB,iCACxB,YADwB;AAAA;AAAA;AAAA;AAAA,EAK3B,OAAO;AAAA;AAAA;AAAA;AAAA,EAIP,aAAa;AAAA;AAAA;AAAA;AAAA,EAIb,cAAc;AAAA;AAAA;AAAA;AAAA,EAId,WAAW,eAAe,WAAW;AACvC;;ACvByK,SAAS,EAAE1U,IAAE;AAAQA,SAAAA,MAAGA,GAAE,cAAY,OAAO,UAAU,eAAe,KAAKA,IAAE,SAAS,IAAEA,GAAE,UAAQA;AAAC;AAAC,SAAS,EAAEA,IAAEa,IAAEtB,IAAE;AAAQS,SAAAA,GAAET,KAAE,EAAC,MAAKsB,IAAE,SAAQ,CAAA,GAAG,SAAQ,SAASb,IAAEa,IAAE;AAAC,WAAO,WAAU;AAAO,YAAA,IAAI,MAAM,yEAAyE;AAAA,IAAG,EAAA,QAAMA,MAAGtB,GAAE,IAAI;AAAA,EAAE,EAAA,GAAEA,GAAE,OAAO,GAAEA,GAAE;AAAO;AAAC,IAAI,IAAE,EAAG,SAASS,IAAEa,IAAE;AAAKtB,MAAAA;AAAES,KAAE,WAAST,KAAEA,MAAG,SAASS,IAAEa,IAAE;AAAKtB,QAAAA,KAAE,OAAO,UAAkB,2BAAA;AAAC,eAASS,KAAG;AAAA,MAAC;AAAC,aAAO,SAASa,IAAE;AAAKtB,YAAAA;AAASS,eAAAA,GAAE,YAAUa,IAAEtB,KAAE,IAAIS,GAAEA,GAAAA,GAAE,YAAU,MAAKT;AAAAA,MAAA;AAAA,SAAMF,KAAE,CAAA,GAAGqD,KAAErD,GAAE,MAAI,IAAGlB,KAAEuE,GAAE,OAAK,EAAC,QAAO,SAAS1C,IAAE;AAAKa,UAAAA,KAAEtB,GAAE,IAAI;AAAE,aAAOS,MAAGa,GAAE,MAAMb,EAAC,GAAEa,GAAE,eAAe,MAAM,KAAG,KAAK,SAAOA,GAAE,SAAOA,GAAE,OAAK,WAAU;AAACA,WAAE,OAAO,KAAK,MAAM,MAAK,SAAS;AAAA,MAAA,IAAIA,GAAE,KAAK,YAAUA,IAAEA,GAAE,SAAO,MAAKA;AAAAA,IAAC,GAAE,QAAO,WAAU;AAAKb,UAAAA,KAAE,KAAK;AAAS,aAAOA,GAAE,KAAK,MAAMA,IAAE,SAAS,GAAEA;AAAAA,IAAC,GAAE,MAAK,WAAU;AAAA,IAAA,GAAG,OAAM,SAASA,IAAE;AAAC,eAAQa,MAAKb;AAAEA,WAAE,eAAea,EAAC,MAAI,KAAKA,EAAC,IAAEb,GAAEa,EAAC;AAAGb,SAAE,eAAe,UAAU,MAAI,KAAK,WAASA,GAAE;AAAA,IAAS,GAAE,OAAM,WAAU;AAAC,aAAO,KAAK,KAAK,UAAU,OAAO,IAAI;AAAA,IAAA,KAAIqG,KAAE3D,GAAE,YAAUvE,GAAE,OAAO,EAAC,MAAK,SAAS6B,IAAET,IAAE;AAACS,WAAE,KAAK,QAAMA,MAAG,CAAC,GAAE,KAAK,WAAST,MAAGsB,KAAEtB,KAAE,IAAES,GAAE;AAAA,IAAA,GAAQ,UAAS,SAASA,IAAE;AAAQA,cAAAA,MAAGb,IAAG,UAAU,IAAI;AAAA,IAAA,GAAG,QAAO,SAASa,IAAE;AAAKa,UAAAA,KAAE,KAAK,OAAMtB,KAAES,GAAE,OAAMX,KAAE,KAAK,UAASqD,KAAE1C,GAAE;AAAY,UAAA,KAAK,SAAQX,KAAE;AAAE,iBAAQlB,KAAE,GAAEA,KAAEuE,IAAEvE,MAAI;AAAKkI,cAAAA,KAAE9G,GAAEpB,OAAI,CAAC,MAAI,KAAGA,KAAE,IAAE,IAAE;AAAI0C,aAAExB,KAAElB,OAAI,CAAC,KAAGkI,MAAG,MAAIhH,KAAElB,MAAG,IAAE;AAAA,QAAC;AAAA;AAAM,aAAIA,KAAE,GAAEA,KAAEuE,IAAEvE,MAAG;AAAE0C,aAAExB,KAAElB,OAAI,CAAC,IAAEoB,GAAEpB,OAAI,CAAC;AAAS,aAAA,KAAK,YAAUuE,IAAE;AAAA,IAAI,GAAE,OAAM,WAAU;AAAC,UAAI7B,KAAE,KAAK,OAAMtB,KAAE,KAAK;AAASsB,SAAEtB,OAAI,CAAC,KAAG,cAAY,KAAGA,KAAE,IAAE,GAAEsB,GAAE,SAAOb,GAAE,KAAKT,KAAE,CAAC;AAAA,IAAC,GAAE,OAAM,WAAU;AAAC,UAAIS,KAAE7B,GAAE,MAAM,KAAK,IAAI;AAAE,aAAO6B,GAAE,QAAM,KAAK,MAAM,MAAM,CAAC,GAAEA;AAAAA,IAAA,GAAG,QAAO,SAASa,IAAE;AAAC,eAAQtB,IAAEF,KAAE,CAAGqD,GAAAA,KAAE,SAAS7B,IAAE;AAACA,aAAEA;AAAMtB,YAAAA,KAAE,WAAUF,KAAE;AAAW,eAAO,WAAU;AAAC,cAAIqD,OAAInD,KAAE,SAAO,QAAMA,OAAIA,MAAG,MAAIF,OAAI,OAAKwB,KAAE,QAAM,QAAMA,OAAIA,MAAG,MAAIxB,MAAGA;AAASqD,iBAAAA,MAAG,aAAYA,MAAG,QAAK1C,GAAE,OAAO,IAAE,MAAG,IAAE;AAAA,QAAA;AAAA,MAAG,GAAG7B,KAAE,GAAEA,KAAE0C,IAAE1C,MAAG,GAAE;AAAC,YAAIwE,KAAED,GAAE,cAAYnD,MAAGS,GAAE,OAAS,EAAA;AAAET,aAAE,YAAUoD,GAAE,GAAEtD,GAAE,KAAK,aAAWsD,OAAI,CAAC;AAAA,MAAC;AAAC,aAAO,IAAI0D,GAAE,KAAKhH,IAAEwB,EAAC;AAAA,IAAE,EAAA,CAAC,GAAE8B,KAAEtD,GAAE,MAAI,CAAGF,GAAAA,KAAEwD,GAAE,MAAI,EAAC,WAAU,SAAS3C,IAAE;AAAC,eAAQa,KAAEb,GAAE,OAAMT,KAAES,GAAE,UAASX,KAAE,CAAGqD,GAAAA,KAAE,GAAEA,KAAEnD,IAAEmD,MAAI;AAAKvE,YAAAA,KAAE0C,GAAE6B,OAAI,CAAC,MAAI,KAAGA,KAAE,IAAE,IAAE;AAAIrD,WAAE,MAAMlB,OAAI,GAAG,SAAS,EAAE,CAAC,GAAEkB,GAAE,MAAM,KAAGlB,IAAG,SAAS,EAAE,CAAC;AAAA,MAAC;AAAQkB,aAAAA,GAAE,KAAK,EAAE;AAAA,IAAA,GAAG,OAAM,SAASW,IAAE;AAASa,eAAAA,KAAEb,GAAE,QAAOT,KAAE,CAAA,GAAGF,KAAE,GAAEA,KAAEwB,IAAExB,MAAG;AAAEE,WAAEF,OAAI,CAAC,KAAG,SAASW,GAAE,OAAOX,IAAE,CAAC,GAAE,EAAE,KAAG,KAAGA,KAAE,IAAE;AAAE,aAAO,IAAIgH,GAAE,KAAK9G,IAAEsB,KAAE,CAAC;AAAA,IAAA,KAAIgF,KAAElD,GAAE,SAAO,EAAC,WAAU,SAAS3C,IAAE;AAAC,eAAQa,KAAEb,GAAE,OAAMT,KAAES,GAAE,UAASX,KAAE,CAAGqD,GAAAA,KAAE,GAAEA,KAAEnD,IAAEmD,MAAI;AAAKvE,YAAAA,KAAE0C,GAAE6B,OAAI,CAAC,MAAI,KAAGA,KAAE,IAAE,IAAE;AAAIrD,WAAE,KAAK,OAAO,aAAalB,EAAC,CAAC;AAAA,MAAC;AAAQkB,aAAAA,GAAE,KAAK,EAAE;AAAA,IAAA,GAAG,OAAM,SAASW,IAAE;AAASa,eAAAA,KAAEb,GAAE,QAAOT,KAAE,IAAGF,KAAE,GAAEA,KAAEwB,IAAExB;AAAIE,WAAEF,OAAI,CAAC,MAAI,MAAIW,GAAE,WAAWX,EAAC,MAAI,KAAGA,KAAE,IAAE;AAAE,aAAO,IAAIgH,GAAE,KAAK9G,IAAEsB,EAAC;AAAA,IAAA,KAAIkE,KAAEpC,GAAE,OAAK,EAAC,WAAU,SAAS3C,IAAE;AAAI,UAAA;AAAC,eAAO,mBAAmB,OAAO6F,GAAE,UAAU7F,EAAC,CAAC,CAAC;AAAA,eAAQA,IAAE;AAAO,cAAA,IAAI,MAAM,sBAAsB;AAAA,MAAC;AAAA,IAAA,GAAG,OAAM,SAASA,IAAE;AAAC,aAAO6F,GAAE,MAAM,SAAS,mBAAmB7F,EAAC,CAAC,CAAC;AAAA,IAAA,KAAImD,KAAET,GAAE,yBAAuBvE,GAAE,OAAO,EAAC,OAAM,WAAU;AAAC,WAAK,QAAM,IAAIkI,GAAE,KAAA,GAAK,KAAK,cAAY;AAAA,IAAA,GAAG,SAAQ,SAASrG,IAAE;AAAC,kBAAU,OAAOA,OAAIA,KAAE+E,GAAE,MAAM/E,EAAC,IAAG,KAAK,MAAM,OAAOA,EAAC,GAAE,KAAK,eAAaA,GAAE;AAAA,IAAA,GAAU,UAAS,SAASa,IAAE;AAAC,UAAItB,KAAE,KAAK,OAAMF,KAAEE,GAAE,OAAMmD,KAAEnD,GAAE,UAASpB,KAAE,KAAK,WAAUwE,KAAED,MAAG,IAAEvE,KAAGgB,MAAGwD,KAAE9B,KAAEb,GAAE,KAAK2C,EAAC,IAAE3C,GAAE,KAAK,IAAE2C,MAAG,KAAK,gBAAe,CAAC,KAAGxE,IAAE0H,KAAE7F,GAAE,IAAI,IAAEb,IAAEuD,EAAC;AAAE,UAAGvD,IAAE;AAAC,iBAAQ4F,KAAE,GAAEA,KAAE5F,IAAE4F,MAAG5G;AAAO,eAAA,gBAAgBkB,IAAE0F,EAAC;AAAE,YAAI5B,KAAE9D,GAAE,OAAO,GAAEF,EAAC;AAAEI,WAAE,YAAUsG;AAAAA,MAAC;AAAC,aAAO,IAAIQ,GAAE,KAAKlD,IAAE0C,EAAC;AAAA,IAAC,GAAE,OAAM,WAAU;AAAC,UAAI7F,KAAE7B,GAAE,MAAM,KAAK,IAAI;AAAE,aAAO6B,GAAE,QAAM,KAAK,MAAM,MAAQA,GAAAA;AAAAA,IAAA,GAAG,gBAAe,EAAA,CAAE;AAAE0C,OAAE,SAAOS,GAAE,OAAO,EAAC,KAAIhF,GAAE,OAAO,GAAE,MAAK,SAAS6B,IAAE;AAAC,WAAK,MAAI,KAAK,IAAI,OAAOA,EAAC,GAAE,KAAK;IAAO,GAAE,OAAM,WAAU;AAACmD,SAAE,MAAM,KAAK,IAAI,GAAE,KAAK;IAAS,GAAG,QAAO,SAASnD,IAAE;AAAC,aAAO,KAAK,QAAQA,EAAC,GAAE,KAAK,SAAW,GAAA;AAAA,IAAA,GAAM,UAAS,SAASA,IAAE;AAAC,aAAOA,MAAG,KAAK,QAAQA,EAAC,GAAE,KAAK;IAAe,GAAA,WAAU,IAAG,eAAc,SAASA,IAAE;AAAQ,aAAA,SAASa,IAAEtB,IAAE;AAAC,eAAO,IAAIS,GAAE,KAAKT,EAAC,EAAE,SAASsB,EAAC;AAAA,MAAA;AAAA,IAAC,GAAG,mBAAkB,SAASb,IAAE;AAAQ,aAAA,SAASa,IAAEtB,IAAE;AAAQ,eAAA,IAAI4S,GAAE,KAAK,KAAKnS,IAAET,EAAC,EAAE,SAASsB,EAAC;AAAA,MAAA;AAAA,OAAI;AAAMsR,QAAAA,KAAE9S,GAAE,OAAK;AAAUA,WAAAA;AAAAA,EAAA,EAAG,IAAI,GAAEE;AAAE,CAAE,GAAE,IAAE,GAAE,KAAG,EAAG,SAASS,IAAEa,IAAE;AAAKtB,MAAAA;AAAES,KAAE,WAAST,KAAE,GAAE,SAASS,IAAE;AAAC,QAAIa,KAAEtB,IAAEF,KAAEwB,GAAE,KAAI6B,KAAErD,GAAE,WAAUlB,KAAEkB,GAAE,QAAOgH,KAAExF,GAAE,MAAK8B,KAAE;AAAG,KAAC,WAAU;AAAS9B,eAAAA,KAAE,GAAEA,KAAE,IAAGA;AAAI8B,WAAE9B,EAAC,IAAE,aAAWb,GAAE,IAAIA,GAAE,IAAIa,KAAE,CAAC,CAAC,IAAE;AAAA,IAAA;AAAK,QAAI1B,KAAEkH,GAAE,MAAIlI,GAAE,OAAO,EAAC,UAAS,WAAU;AAAM,WAAA,QAAM,IAAIuE,GAAE,KAAK,CAAC,YAAW,YAAW,YAAW,SAAS,CAAC;AAAA,IAAA,GAAG,iBAAgB,SAAS1C,IAAEa,IAAE;AAAC,eAAQtB,KAAE,GAAEA,KAAE,IAAGA,MAAI;AAAC,YAAIF,KAAEwB,KAAEtB,IAAEmD,KAAE1C,GAAEX,EAAC;AAAEW,WAAEX,EAAC,IAAE,YAAUqD,MAAG,IAAEA,OAAI,MAAI,cAAYA,MAAG,KAAGA,OAAI;AAAA,MAAE;AAAKvE,UAAAA,KAAE,KAAK,MAAM,OAAMkI,KAAErG,GAAEa,KAAE,CAAC,GAAE1B,KAAEa,GAAEa,KAAE,CAAC,GAAEwD,KAAErE,GAAEa,KAAE,CAAC,GAAE0E,KAAEvF,GAAEa,KAAE,CAAC,GAAEoC,KAAEjD,GAAEa,KAAE,CAAC,GAAEmE,KAAEhF,GAAEa,KAAE,CAAC,GAAEwR,KAAErS,GAAEa,KAAE,CAAC,GAAE3B,KAAEc,GAAEa,KAAE,CAAC,GAAEyF,KAAEtG,GAAEa,KAAE,CAAC,GAAElB,KAAEK,GAAEa,KAAE,CAAC,GAAE8T,KAAE3U,GAAEa,KAAE,EAAE,GAAE2R,KAAExS,GAAEa,KAAE,EAAE,GAAEiC,KAAE9C,GAAEa,KAAE,EAAE,GAAE+T,KAAE5U,GAAEa,KAAE,EAAE,GAAEgU,KAAE7U,GAAEa,KAAE,EAAE,GAAEiU,KAAE9U,GAAEa,KAAE,EAAE,GAAEkU,KAAE5W,GAAE,CAAC,GAAE6W,KAAE7W,GAAE,CAAC,GAAE8W,KAAE9W,GAAE,CAAC,GAAEsU,KAAEtU,GAAE,CAAC;AAAE4W,WAAElP,GAAEkP,IAAEC,IAAEC,IAAExC,IAAEpM,IAAE,GAAE1D,GAAE,CAAC,CAAC,GAAE8P,KAAE5M,GAAE4M,IAAEsC,IAAEC,IAAEC,IAAE9V,IAAE,IAAGwD,GAAE,CAAC,CAAC,GAAEsS,KAAEpP,GAAEoP,IAAExC,IAAEsC,IAAEC,IAAE3Q,IAAE,IAAG1B,GAAE,CAAC,CAAC,GAAEqS,KAAEnP,GAAEmP,IAAEC,IAAExC,IAAEsC,IAAExP,IAAE,IAAG5C,GAAE,CAAC,CAAC,GAAEoS,KAAElP,GAAEkP,IAAEC,IAAEC,IAAExC,IAAExP,IAAE,GAAEN,GAAE,CAAC,CAAC,GAAE8P,KAAE5M,GAAE4M,IAAEsC,IAAEC,IAAEC,IAAEjQ,IAAE,IAAGrC,GAAE,CAAC,CAAC,GAAEsS,KAAEpP,GAAEoP,IAAExC,IAAEsC,IAAEC,IAAE3C,IAAE,IAAG1P,GAAE,CAAC,CAAC,GAAEqS,KAAEnP,GAAEmP,IAAEC,IAAExC,IAAEsC,IAAE7V,IAAE,IAAGyD,GAAE,CAAC,CAAC,GAAEoS,KAAElP,GAAEkP,IAAEC,IAAEC,IAAExC,IAAEnM,IAAE,GAAE3D,GAAE,CAAC,CAAC,GAAE8P,KAAE5M,GAAE4M,IAAEsC,IAAEC,IAAEC,IAAEtV,IAAE,IAAGgD,GAAE,CAAC,CAAC,GAAEsS,KAAEpP,GAAEoP,IAAExC,IAAEsC,IAAEC,IAAEL,IAAE,IAAGhS,GAAE,EAAE,CAAC,GAAEqS,KAAEnP,GAAEmP,IAAEC,IAAExC,IAAEsC,IAAEvC,IAAE,IAAG7P,GAAE,EAAE,CAAC,GAAEoS,KAAElP,GAAEkP,IAAEC,IAAEC,IAAExC,IAAE3P,IAAE,GAAEH,GAAE,EAAE,CAAC,GAAE8P,KAAE5M,GAAE4M,IAAEsC,IAAEC,IAAEC,IAAEL,IAAE,IAAGjS,GAAE,EAAE,CAAC,GAAEsS,KAAEpP,GAAEoP,IAAExC,IAAEsC,IAAEC,IAAEH,IAAE,IAAGlS,GAAE,EAAE,CAAC,GAAEoS,KAAEhQ,GAAEgQ,IAAEC,KAAEnP,GAAEmP,IAAEC,IAAExC,IAAEsC,IAAED,IAAE,IAAGnS,GAAE,EAAE,CAAC,GAAEsS,IAAExC,IAAEtT,IAAE,GAAEwD,GAAE,EAAE,CAAC,GAAE8P,KAAE1N,GAAE0N,IAAEsC,IAAEC,IAAEC,IAAE5C,IAAE,GAAE1P,GAAE,EAAE,CAAC,GAAEsS,KAAElQ,GAAEkQ,IAAExC,IAAEsC,IAAEC,IAAExC,IAAE,IAAG7P,GAAE,EAAE,CAAC,GAAEqS,KAAEjQ,GAAEiQ,IAAEC,IAAExC,IAAEsC,IAAE1O,IAAE,IAAG1D,GAAE,EAAE,CAAC,GAAEoS,KAAEhQ,GAAEgQ,IAAEC,IAAEC,IAAExC,IAAEzN,IAAE,GAAErC,GAAE,EAAE,CAAC,GAAE8P,KAAE1N,GAAE0N,IAAEsC,IAAEC,IAAEC,IAAEN,IAAE,GAAEhS,GAAE,EAAE,CAAC,GAAEsS,KAAElQ,GAAEkQ,IAAExC,IAAEsC,IAAEC,IAAEF,IAAE,IAAGnS,GAAE,EAAE,CAAC,GAAEqS,KAAEjQ,GAAEiQ,IAAEC,IAAExC,IAAEsC,IAAE9R,IAAE,IAAGN,GAAE,EAAE,CAAC,GAAEoS,KAAEhQ,GAAEgQ,IAAEC,IAAEC,IAAExC,IAAE9S,IAAE,GAAEgD,GAAE,EAAE,CAAC,GAAE8P,KAAE1N,GAAE0N,IAAEsC,IAAEC,IAAEC,IAAEJ,IAAE,GAAElS,GAAE,EAAE,CAAC,GAAEsS,KAAElQ,GAAEkQ,IAAExC,IAAEsC,IAAEC,IAAEzP,IAAE,IAAG5C,GAAE,EAAE,CAAC,GAAEqS,KAAEjQ,GAAEiQ,IAAEC,IAAExC,IAAEsC,IAAEzO,IAAE,IAAG3D,GAAE,EAAE,CAAC,GAAEoS,KAAEhQ,GAAEgQ,IAAEC,IAAEC,IAAExC,IAAEmC,IAAE,GAAEjS,GAAE,EAAE,CAAC,GAAE8P,KAAE1N,GAAE0N,IAAEsC,IAAEC,IAAEC,IAAE5Q,IAAE,GAAE1B,GAAE,EAAE,CAAC,GAAEsS,KAAElQ,GAAEkQ,IAAExC,IAAEsC,IAAEC,IAAE9V,IAAE,IAAGyD,GAAE,EAAE,CAAC,GAAEoS,KAAE5R,GAAE4R,IAAEC,KAAEjQ,GAAEiQ,IAAEC,IAAExC,IAAEsC,IAAEjS,IAAE,IAAGH,GAAE,EAAE,CAAC,GAAEsS,IAAExC,IAAEzN,IAAE,GAAErC,GAAE,EAAE,CAAC,GAAE8P,KAAEtP,GAAEsP,IAAEsC,IAAEC,IAAEC,IAAE3O,IAAE,IAAG3D,GAAE,EAAE,CAAC,GAAEsS,KAAE9R,GAAE8R,IAAExC,IAAEsC,IAAEC,IAAExC,IAAE,IAAG7P,GAAE,EAAE,CAAC,GAAEqS,KAAE7R,GAAE6R,IAAEC,IAAExC,IAAEsC,IAAEF,IAAE,IAAGlS,GAAE,EAAE,CAAC,GAAEoS,KAAE5R,GAAE4R,IAAEC,IAAEC,IAAExC,IAAEtT,IAAE,GAAEwD,GAAE,EAAE,CAAC,GAAE8P,KAAEtP,GAAEsP,IAAEsC,IAAEC,IAAEC,IAAEhS,IAAE,IAAGN,GAAE,EAAE,CAAC,GAAEsS,KAAE9R,GAAE8R,IAAExC,IAAEsC,IAAEC,IAAE9V,IAAE,IAAGyD,GAAE,EAAE,CAAC,GAAEqS,KAAE7R,GAAE6R,IAAEC,IAAExC,IAAEsC,IAAEJ,IAAE,IAAGhS,GAAE,EAAE,CAAC,GAAEoS,KAAE5R,GAAE4R,IAAEC,IAAEC,IAAExC,IAAEmC,IAAE,GAAEjS,GAAE,EAAE,CAAC,GAAE8P,KAAEtP,GAAEsP,IAAEsC,IAAEC,IAAEC,IAAE5O,IAAE,IAAG1D,GAAE,EAAE,CAAC,GAAEsS,KAAE9R,GAAE8R,IAAExC,IAAEsC,IAAEC,IAAEzP,IAAE,IAAG5C,GAAE,EAAE,CAAC,GAAEqS,KAAE7R,GAAE6R,IAAEC,IAAExC,IAAEsC,IAAE1C,IAAE,IAAG1P,GAAE,EAAE,CAAC,GAAEoS,KAAE5R,GAAE4R,IAAEC,IAAEC,IAAExC,IAAE9S,IAAE,GAAEgD,GAAE,EAAE,CAAC,GAAE8P,KAAEtP,GAAEsP,IAAEsC,IAAEC,IAAEC,IAAEnS,IAAE,IAAGH,GAAE,EAAE,CAAC,GAAEsS,KAAE9R,GAAE8R,IAAExC,IAAEsC,IAAEC,IAAEF,IAAE,IAAGnS,GAAE,EAAE,CAAC,GAAEoS,KAAE5C,GAAE4C,IAAEC,KAAE7R,GAAE6R,IAAEC,IAAExC,IAAEsC,IAAE1Q,IAAE,IAAG1B,GAAE,EAAE,CAAC,GAAEsS,IAAExC,IAAEpM,IAAE,GAAE1D,GAAE,EAAE,CAAC,GAAE8P,KAAEN,GAAEM,IAAEsC,IAAEC,IAAEC,IAAE/V,IAAE,IAAGyD,GAAE,EAAE,CAAC,GAAEsS,KAAE9C,GAAE8C,IAAExC,IAAEsC,IAAEC,IAAEH,IAAE,IAAGlS,GAAE,EAAE,CAAC,GAAEqS,KAAE7C,GAAE6C,IAAEC,IAAExC,IAAEsC,IAAE/P,IAAE,IAAGrC,GAAE,EAAE,CAAC,GAAEoS,KAAE5C,GAAE4C,IAAEC,IAAEC,IAAExC,IAAE3P,IAAE,GAAEH,GAAE,EAAE,CAAC,GAAE8P,KAAEN,GAAEM,IAAEsC,IAAEC,IAAEC,IAAE1P,IAAE,IAAG5C,GAAE,EAAE,CAAC,GAAEsS,KAAE9C,GAAE8C,IAAExC,IAAEsC,IAAEC,IAAEL,IAAE,IAAGhS,GAAE,EAAE,CAAC,GAAEqS,KAAE7C,GAAE6C,IAAEC,IAAExC,IAAEsC,IAAE5V,IAAE,IAAGwD,GAAE,EAAE,CAAC,GAAEoS,KAAE5C,GAAE4C,IAAEC,IAAEC,IAAExC,IAAEnM,IAAE,GAAE3D,GAAE,EAAE,CAAC,GAAE8P,KAAEN,GAAEM,IAAEsC,IAAEC,IAAEC,IAAEH,IAAE,IAAGnS,GAAE,EAAE,CAAC,GAAEsS,KAAE9C,GAAE8C,IAAExC,IAAEsC,IAAEC,IAAE3C,IAAE,IAAG1P,GAAE,EAAE,CAAC,GAAEqS,KAAE7C,GAAE6C,IAAEC,IAAExC,IAAEsC,IAAEH,IAAE,IAAGjS,GAAE,EAAE,CAAC,GAAEoS,KAAE5C,GAAE4C,IAAEC,IAAEC,IAAExC,IAAExP,IAAE,GAAEN,GAAE,EAAE,CAAC,GAAE8P,KAAEN,GAAEM,IAAEsC,IAAEC,IAAEC,IAAEzC,IAAE,IAAG7P,GAAE,EAAE,CAAC,GAAEsS,KAAE9C,GAAE8C,IAAExC,IAAEsC,IAAEC,IAAE3Q,IAAE,IAAG1B,GAAE,EAAE,CAAC,GAAEqS,KAAE7C,GAAE6C,IAAEC,IAAExC,IAAEsC,IAAEpV,IAAE,IAAGgD,GAAE,EAAE,CAAC,GAAExE,GAAE,CAAC,IAAEA,GAAE,CAAC,IAAE4W,KAAE,GAAE5W,GAAE,CAAC,IAAEA,GAAE,CAAC,IAAE6W,KAAE,GAAE7W,GAAE,CAAC,IAAEA,GAAE,CAAC,IAAE8W,KAAE,GAAE9W,GAAE,CAAC,IAAEA,GAAE,CAAC,IAAEsU,KAAE;AAAA,IAAC,GAAE,aAAY,WAAU;AAAC,UAAI5R,KAAE,KAAK,OAAMtB,KAAEsB,GAAE,OAAMxB,KAAE,IAAE,KAAK,aAAYqD,KAAE,IAAE7B,GAAE;AAAStB,SAAEmD,OAAI,CAAC,KAAG,OAAK,KAAGA,KAAE;AAAG,UAAIvE,KAAE6B,GAAE,MAAMX,KAAE,UAAU,GAAEgH,KAAEhH;AAAEE,SAAE,MAAImD,KAAE,OAAK,KAAG,EAAE,IAAE,YAAUvE,MAAG,IAAEA,OAAI,MAAI,cAAYA,MAAG,KAAGA,OAAI,IAAGoB,GAAE,MAAImD,KAAE,OAAK,KAAG,EAAE,IAAE,YAAU2D,MAAG,IAAEA,OAAI,MAAI,cAAYA,MAAG,KAAGA,OAAI,IAAGxF,GAAE,WAAS,KAAGtB,GAAE,SAAO,IAAG,KAAK;AAAmBoD,eAAAA,KAAE,KAAK,OAAMxD,KAAEwD,GAAE,OAAMkD,KAAE,GAAEA,KAAE,GAAEA,MAAI;AAAKd,YAAAA,KAAE5F,GAAE0G,EAAC;AAAE1G,WAAE0G,EAAC,IAAE,YAAUd,MAAG,IAAEA,OAAI,MAAI,cAAYA,MAAG,KAAGA,OAAI;AAAA,MAAE;AAAQpC,aAAAA;AAAAA,IAAC,GAAE,OAAM,WAAU;AAAC,UAAI3C,KAAE7B,GAAE,MAAM,KAAK,IAAI;AAAE,aAAO6B,GAAE,QAAM,KAAK,MAAM,MAAQA,GAAAA;AAAAA,OAAG;AAAE,aAAS6F,GAAE7F,IAAEa,IAAEtB,IAAEF,IAAEqD,IAAEvE,IAAEkI,IAAE;AAAC,UAAI1D,KAAE3C,MAAGa,KAAEtB,KAAE,CAACsB,KAAExB,MAAGqD,KAAE2D;AAAE,cAAO1D,MAAGxE,KAAEwE,OAAI,KAAGxE,MAAG0C;AAAAA,IAAC;AAAC,aAASkE,GAAE/E,IAAEa,IAAEtB,IAAEF,IAAEqD,IAAEvE,IAAEkI,IAAE;AAAC,UAAI1D,KAAE3C,MAAGa,KAAExB,KAAEE,KAAE,CAACF,MAAGqD,KAAE2D;AAAE,cAAO1D,MAAGxE,KAAEwE,OAAI,KAAGxE,MAAG0C;AAAAA,IAAC;AAAC,aAASsC,GAAEnD,IAAEa,IAAEtB,IAAEF,IAAEqD,IAAEvE,IAAEkI,IAAE;AAAC,UAAI1D,KAAE3C,MAAGa,KAAEtB,KAAEF,MAAGqD,KAAE2D;AAAE,cAAO1D,MAAGxE,KAAEwE,OAAI,KAAGxE,MAAG0C;AAAAA,IAAC;AAAC,aAASsR,GAAEnS,IAAEa,IAAEtB,IAAEF,IAAEqD,IAAEvE,IAAEkI,IAAE;AAAC,UAAI1D,KAAE3C,MAAGT,MAAGsB,KAAE,CAACxB,OAAIqD,KAAE2D;AAAE,cAAO1D,MAAGxE,KAAEwE,OAAI,KAAGxE,MAAG0C;AAAAA,IAAC;AAACA,OAAE,MAAI1C,GAAE,cAAcgB,EAAC,GAAE0B,GAAE,UAAQ1C,GAAE,kBAAkBgB,EAAC;AAAA,EAAC,EAAE,IAAI,GAAEI,GAAE;AAAI,CAAE,GAAE,EAAG,SAASS,IAAEa,IAAE;AAAKtB,MAAAA;AAAES,KAAE,WAAST,KAAE,GAAE,KAAK,WAAU;AAAKS,QAAAA,KAAET,IAAEsB,KAAEb,GAAE,IAAI,MAAKX,KAAEW,GAAE,IAAI;AAAKA,OAAE,KAAK,OAAKa,GAAE,OAAO,EAAC,MAAK,SAASb,IAAEa,IAAE;AAACb,WAAE,KAAK,UAAQ,IAAIA,GAAE,KAAA,GAAK,YAAU,OAAOa,OAAIA,KAAExB,GAAE,MAAMwB,EAAC;AAAG,UAAItB,KAAES,GAAE,WAAU0C,KAAE,IAAEnD;AAAEsB,SAAE,WAAS6B,OAAI7B,KAAEb,GAAE,SAASa,EAAC,IAAGA,GAAE;AAAgB1C,eAAAA,KAAE,KAAK,QAAM0C,GAAE,MAAQwF,GAAAA,KAAE,KAAK,QAAMxF,GAAE,SAAQ8B,KAAExE,GAAE,OAAMgB,KAAEkH,GAAE,OAAMR,KAAE,GAAEA,KAAEtG,IAAEsG;AAAIlD,WAAEkD,EAAC,KAAG,YAAW1G,GAAE0G,EAAC,KAAG;AAAU1H,SAAE,WAASkI,GAAE,WAAS3D,IAAE,KAAK;IAAO,GAAE,OAAM,WAAU;AAAC,UAAI1C,KAAE,KAAK;AAAQA,SAAE,MAAM,GAAEA,GAAE,OAAO,KAAK,KAAK;AAAA,IAAA,GAAG,QAAO,SAASA,IAAE;AAAC,aAAO,KAAK,QAAQ,OAAOA,EAAC,GAAE;AAAA,IAAA,GAAM,UAAS,SAASA,IAAE;AAAC,UAAIa,KAAE,KAAK,SAAQtB,KAAEsB,GAAE,SAASb,EAAC;AAASa,aAAAA,GAAE,SAAQA,GAAE,SAAS,KAAK,MAAM,MAAM,EAAE,OAAOtB,EAAC,CAAC;AAAA,OAAG;AAAA,EAAG,EAAA;AAAE,CAAE,GAAE,EAAG,SAASS,IAAEa,IAAE;AAACb,KAAE,UAAQ,EAAE;AAAO,CAAE,IAAG,IAAE,EAAG,SAASA,IAAEa,IAAE;AAACb,KAAE,UAAQ,EAAE,IAAI;AAAI,CAAE,GAAE,IAAE,EAAG,SAASA,IAAEa,IAAE;AAAKtB,MAAAA;AAAES,KAAE,WAAST,KAAE,GAAE,WAAU;AAAC,QAAIS,KAAET,IAAEsB,KAAEb,GAAE,IAAI;AAAmBX,aAAAA,GAAEW,IAAET,IAAEF,IAAE;AAASqD,eAAAA,KAAE,CAAGvE,GAAAA,KAAE,GAAEkI,KAAE,GAAEA,KAAE9G,IAAE8G;AAAI,YAAGA,KAAE,GAAE;AAAK1D,cAAAA,KAAEtD,GAAEW,GAAE,WAAWqG,KAAE,CAAC,CAAC,KAAGA,KAAE,IAAE,GAAElH,KAAEE,GAAEW,GAAE,WAAWqG,EAAC,CAAC,MAAI,IAAEA,KAAE,IAAE;AAAE3D,aAAEvE,OAAI,CAAC,MAAIwE,KAAExD,OAAI,KAAGhB,KAAE,IAAE,GAAEA;AAAAA,QAAG;AAAQ0C,aAAAA,GAAE,OAAO6B,IAAEvE,EAAC;AAAA,IAAC;AAAC6B,OAAE,IAAI,SAAO,EAAC,WAAU,SAASA,IAAE;AAAC,UAAIa,KAAEb,GAAE,OAAMT,KAAES,GAAE,UAASX,KAAE,KAAK;AAAKW,SAAE,MAAM;AAAE,eAAQ0C,KAAE,CAAA,GAAGvE,KAAE,GAAEA,KAAEoB,IAAEpB,MAAG;AAAE,iBAAQkI,MAAGxF,GAAE1C,OAAI,CAAC,MAAI,KAAGA,KAAE,IAAE,IAAE,QAAM,MAAI0C,GAAE1C,KAAE,MAAI,CAAC,MAAI,MAAIA,KAAE,KAAG,IAAE,IAAE,QAAM,IAAE0C,GAAE1C,KAAE,MAAI,CAAC,MAAI,MAAIA,KAAE,KAAG,IAAE,IAAE,KAAIwE,KAAE,GAAEA,KAAE,KAAGxE,KAAE,OAAIwE,KAAEpD,IAAEoD;AAAID,aAAE,KAAKrD,GAAE,OAAOgH,OAAI,KAAG,IAAE1D,MAAG,EAAE,CAAC;AAAMxD,UAAAA,KAAEE,GAAE,OAAO,EAAE;AAAKF,UAAAA;AAAE,eAAKuD,GAAE,SAAO;AAAGA,aAAE,KAAKvD,EAAC;AAASuD,aAAAA,GAAE,KAAK,EAAE;AAAA,IAAA,GAAG,OAAM,SAAS1C,IAAE;AAAC,UAAIa,KAAEb,GAAE,QAAOT,KAAE,KAAK,MAAKmD,KAAE,KAAK;AAAY,UAAG,CAACA,IAAE;AAACA,aAAE,KAAK,cAAY;AAAG,iBAAQvE,KAAE,GAAEA,KAAEoB,GAAE,QAAOpB;AAAIuE,aAAEnD,GAAE,WAAWpB,EAAC,CAAC,IAAEA;AAAAA,MAAC;AAAKkI,UAAAA,KAAE9G,GAAE,OAAO,EAAE;AAAE,UAAG8G,IAAE;AAAK1D,YAAAA,KAAE3C,GAAE,QAAQqG,EAAC;AAAE,eAAK1D,OAAI9B,KAAE8B;AAAAA,MAAE;AAAQtD,aAAAA,GAAEW,IAAEa,IAAE6B,EAAC;AAAA,IAAA,GAAG,MAAK;EAAoE,EAAA,GAAInD,GAAE,IAAI;AAAO,CAAE;AAAE,MAAM,IAAE,YAAW,IAAE,UAAS,IAAE,aAAY,IAAE,WAAU,IAAE,aAAY,IAAE;AAAW,SAAS,EAAES,IAAE;AAAQ,SAAA,OAAO,UAAU,SAAS,KAAKA,EAAC,EAAE,MAAM,GAAE,EAAE,EAAE,YAAY;AAAC;AAAC,SAAS,EAAEA,IAAE;AAAO,SAAA,aAAW,EAAEA,EAAC;AAAC;AAAC,SAAS,EAAEA,IAAE;AAAC,SAAM,cAAY,OAAOA;AAAC;AAAC,SAAS,EAAEA,IAAE;AAAC,SAAO,WAAU;AAAI,QAAA;AAAQA,aAAAA,GAAE,MAAMA,IAAE,SAAS;AAAA,aAAQA,IAAE;AAAC,cAAQ,MAAMA,EAAC;AAAA,IAAC;AAAA,EAAA;AAAE;AAAC,MAAM,IAAE,YAAW,IAAE;AAAc,MAAM,EAAC;AAAA,EAAC,YAAY,EAAC,eAAcA,IAAE,WAAUa,KAAE,EAAG,IAAA,IAAG;AAAM,SAAA,gBAAcb,IAAE,KAAK,SAAO,MAAK,KAAK,UAAQ,MAAK,KAAK,YAAUa;AAAAA,EAAC;AAAA,EAAC,IAAI,YAAW;AAAC,QAAG,CAAC,KAAK;AAAa,aAAA;AAAG,YAAO,KAAK,WAAU;AAAA,MAAC,KAAK;AAAE,eAAO,KAAK,WAAS;AAAA,MAAE,KAAK;AAAE,eAAO,KAAK,WAAS;AAAA,IAAC;AAAA,EAAC;AAAA,EAAC,OAAM;AAAC,WAAO,KAAK,aAAW,KAAK,SAAO,GAAE,KAAK,UAAQ,KAAK,cAAA,EAAgB,KAAM,CAAAb,QAAI,KAAK,SAAO,GAAE,QAAQ,QAAQA,EAAC,IAAK,CAAAA,QAAI,KAAK,SAAO,GAAE,QAAQ,OAAOA,EAAC,EAAG,GAAE,KAAK,WAAS,KAAK;AAAA,EAAO;AAAC;AAAC,SAAS,EAAEA,IAAE;AAAC,SAAOA,MAAG,YAAU,OAAOA,KAAE,KAAK,MAAMA,EAAC,IAAEA;AAAC;AAAC,MAAM,IAAE,MAAqC,IAAE,aAAsH,IAAE,EAAE,oDAAqC,GAAE,IAAsC,GAAE,IAAE,EAAE,EAA0B,GAAE,IAAE,EAAE,IAA8B,KAAG;AAAkC,IAAI,IAAE;AAAG,IAAG;AAAG,MAAA;AAA0B,SAAOA,IAAE;AAAC;AAAC,IAAI,IAAE,CAAA;AAAG,SAAS,EAAEA,IAAEa,KAAE,IAAG;AAAC,MAAItB,IAAEF;AAAE,SAAOE,KAAE,GAAEF,KAAEW,IAAE,OAAO,UAAU,eAAe,KAAKT,IAAEF,EAAC,MAAI,EAAEW,EAAC,IAAEa,KAAG,EAAEb,EAAC;AAAC;AAAwF,MAAM,IAAE,CAAC,UAAS,WAAU,QAAO,UAAU,GAAE,IAAE,EAAE,4BAA4B;AAAE,SAAS,EAAEA,IAAEa,IAAE;AAAC,IAAEb,EAAC,MAAI,EAAEA,EAAC,IAAE,CAAI,IAAA,EAAEa,EAAC,KAAG,OAAO,KAAKA,EAAC,EAAE,QAAS,CAAAtB,OAAG;AAAC,MAAE,QAAQA,EAAC,IAAE,MAAI,SAASS,IAAEa,IAAEtB,IAAE;AAAC,UAAIF,KAAE,EAAEW,EAAC,EAAEa,EAAC;AAAExB,aAAIA,KAAE,EAAEW,EAAC,EAAEa,EAAC,IAAE,CAAA,IAAI,OAAKxB,GAAE,QAAQE,EAAC,KAAG,EAAEA,EAAC,KAAGF,GAAE,KAAKE,EAAC;AAAA,IAAGS,EAAAA,IAAET,IAAEsB,GAAEtB,EAAC,CAAC;AAAA,EAAA,CAAG;AAAC;AAAC,SAAS,EAAES,IAAEa,IAAE;AAAC,IAAEb,EAAC,MAAI,EAAEA,EAAC,IAAE,CAAI,IAAA,EAAEa,EAAC,IAAE,OAAO,KAAKA,EAAC,EAAE,QAAS,CAAAtB,OAAG;AAAC,MAAE,QAAQA,EAAC,IAAE,MAAI,SAASS,IAAEa,IAAEtB,IAAE;AAAC,YAAMF,KAAE,EAAEW,EAAC,EAAEa,EAAC;AAAE,UAAG,CAACxB;AAAE;AAAaqD,YAAAA,KAAErD,GAAE,QAAQE,EAAC;AAAEmD,WAAE,MAAIrD,GAAE,OAAOqD,IAAE,CAAC;AAAA,IAAG1C,EAAAA,IAAET,IAAEsB,GAAEtB,EAAC,CAAC;AAAA,EAAA,CAAG,IAAE,OAAO,EAAES,EAAC;AAAC;AAAC,SAAS,EAAEA,IAAEa,IAAE;AAAQb,SAAAA,MAAG,MAAIA,GAAE,SAAOA,GAAE,OAAQ,CAACA,IAAET,OAAIS,GAAE,KAAM,MAAIT,GAAEsB,EAAC,CAAE,GAAG,QAAQ,SAAS,IAAE,QAAQ;AAAS;AAAC,SAAS,EAAEb,IAAEa,IAAE;AAAQ,SAAA,EAAEb,EAAC,KAAG,EAAEA,EAAC,EAAEa,EAAC,KAAG;AAAE;AAAC,SAAS,EAAEb,IAAE;AAAC,IAAE,cAAaA,EAAC;AAAC;AAAC,MAAM,IAAE,EAAE,yBAAyB,GAAE,IAAE,YAAW,IAAE,aAAY,IAAE,gBAAe,IAAE,YAAW,IAAE,iBAAgB,IAAE;AAAc,SAAS,EAAEA,IAAE;AAAQ,SAAA,EAAEA,EAAC,MAAI,EAAEA,EAAC,IAAE,KAAI,EAAEA,EAAC;AAAC;AAAC,SAAS,EAAEA,IAAEa,IAAE;AAAOtB,QAAAA,KAAE,EAAES,EAAC;AAAET,KAAE,SAASsB,EAAC,KAAGtB,GAAE,KAAKsB,EAAC;AAAC;AAAC,SAAS,EAAEb,IAAEa,IAAE;AAAC,QAAMtB,KAAE,EAAES,EAAC,GAAEX,KAAEE,GAAE,QAAQsB,EAAC;AAAE,SAAKxB,MAAGE,GAAE,OAAOF,IAAE,CAAC;AAAC;AAAC,SAAS,EAAEW,IAAEa,IAAE;AAAOtB,QAAAA,KAAE,EAAES,EAAC;AAAE,WAAQA,KAAE,GAAEA,KAAET,GAAE,QAAOS,MAAI;AAAC,KAAA,GAAGT,GAAES,EAAC,GAAGa,EAAC;AAAA,EAAC;AAAC;AAAC,IAAI,GAAE,IAAE;AAAG,SAAS,IAAG;AAAC,SAAO,MAAI,IAAE,IAAI,QAAS,CAAAb,OAAG;AAAIA,SAAAA,MAAI,SAASa,KAAG;AAAI,UAAA,cAAY,OAAO,iBAAgB;AAAC,cAAMA,KAAE;AAAkBA,cAAGA,GAAE,CAAC,MAAI,IAAE,MAAGb,GAAE;AAAA,MAAE;AAAC,WAAG,WAAY,MAAI;AAACa;SAAM,EAAE;AAAA,IAAA;EAAG,CAAG,GAAE;AAAE;AAAC,SAAS,GAAGb,IAAE;AAAC,QAAMa,KAAE,CAAA;AAAG,aAAUtB,MAAKS,IAAE;AAAOX,UAAAA,KAAEW,GAAET,EAAC;AAAE,MAAEF,EAAC,MAAIwB,GAAEtB,EAAC,IAAE,EAAEF,EAAC;AAAA,EAAE;AAAQwB,SAAAA;AAAC;AAAC,MAAM,WAAW,MAAK;AAAA,EAAC,YAAYb,IAAE;AAAC,UAAMA,GAAE,OAAO,GAAE,KAAK,SAAOA,GAAE,WAASA,GAAE,UAAQ,wBAAuB,KAAK,OAAK,KAAK,UAAQA,GAAE,QAAMA,GAAE,WAAS,gBAAe,KAAK,aAAW,KAAK,UAAQA,GAAE,WAASA,GAAE,YAAW,KAAK,QAAMA,GAAE,OAAM,KAAK,YAAUA,GAAE;AAAA,EAAS;AAAA,EAAC,OAAOA,KAAE,GAAE;AAAC,QAAG,EAAEA,MAAG;AAAWA,aAAAA,MAAI,EAAC,SAAQ,KAAK,SAAQ,QAAO,KAAK,QAAO,YAAW,KAAK,YAAW,OAAM,KAAK,SAAO,KAAK,MAAM,SAAO,KAAK,MAAM,OAAOA,EAAC,IAAE,KAAK,MAAK;AAAA,EAAC;AAAC;AAAC,IAAI,KAAG,EAAC,SAAQ,CAAAA,OAAGY,QAAI,QAAQZ,EAAC,GAAE,YAAW,CAAAA,OAAGY,QAAI,WAAWZ,EAAC,GAAE,gBAAe,CAACA,IAAEa,OAAID,QAAI,eAAeZ,IAAEa,EAAC,GAAE,gBAAe,CAAAb,OAAGY,QAAI,eAAeZ,EAAC,GAAE,mBAAkB,CAAAA,OAAGY,QAAI,kBAAkBZ,EAAC,GAAE,kBAAiB,MAAIY,QAAI;AAAoB,SAAS,GAAGZ,IAAE;AAAC,SAAOA,MAAG,GAAGA,GAAE,OAAO,KAAGA;AAAC;AAAC,SAAS,KAAI;AAAC,SAAM,EAAC,OAAM,GAAG,eAAe,cAAc,KAAG,GAAG,eAAe,YAAY,GAAE,cAAa,GAAG,eAAe,sBAAsB,EAAC;AAAC;AAAC,SAAS,GAAG,EAAC,OAAMA,IAAE,cAAaa,GAAC,IAAE,IAAG;AAACb,QAAG,GAAG,eAAe,gBAAeA,EAAC,GAAEa,MAAG,GAAG,eAAe,wBAAuBA,EAAC;AAAC;AAAC,IAAI,IAAG;AAAG,SAAS,KAAI;AAAC,SAAO,OAAK,KAAGD,QAAI,kBAAqB,IAAA;AAAE;AAAC,SAAS,KAAI;AAAC,MAAIZ,IAAEa;AAAK,MAAA;AAAC,QAAGD,QAAI,sBAAqB;AAAC,UAAGA,QAAI,qBAAqB,SAAA,EAAW,QAAQ,qBAAqB,IAAE;AAAG;AAAO,YAAK,EAAC,OAAMrB,IAAE,SAAQF,OAAGuB,QAAI;AAAuBZ,WAAEX,IAAEwB,KAAEtB;AAAAA,IAAC;AAAA,WAAQS,IAAE;AAAA,EAAC;AAAC,SAAM,EAAC,SAAQA,IAAE,OAAMa,GAAC;AAAC;AAAC,SAAS,KAAI;AAAC,QAAMb,KAAEY,QAAI,aAAWA,QAAI,UAAa,KAAA;AAAQ,MAAA;AAAG,WAAM,iCAAI,KAAJ,EAAO,QAAOZ,IAAE,QAAOA;AAAG,QAAMa,KAAE,GAAA,GAAK,EAAC,UAAStB,IAAE,QAAOF,IAAE,aAAYqD,IAAE,OAAMvE,GAAAA,IAAG0C,IAAEwF,KAAE,CAAC,cAAa,SAAQ,SAAQ,UAAS,YAAW,WAAU,YAAW,QAAO,cAAa,qBAAoB,OAAM,eAAc,iBAAiB;AAAE,WAAQrG,KAAE,GAAEA,KAAEqG,GAAE,QAAOrG,MAAI;AAAQa,WAAAA,GAAEwF,GAAErG,EAAC,CAAC;AAAA,EAAC;AAAQ,SAAA,KAAG,gCAAC,UAAS0C,IAAE,IAAGrD,IAAE,OAAMlB,IAAE,UAASoB,MAAK,OAAQsB,KAAG,iCAAI,KAAJ,EAAO,QAAOb,IAAE,QAAOA;AAAE;AAAC,IAAI,KAAG,EAAC,MAAK,SAASA,IAAEa,IAAE;AAAC,MAAItB,KAAE;AAAU,SAAA,OAAO,KAAKS,EAAC,EAAE,OAAO,QAAS,SAASa,IAAE;AAACb,OAAEa,EAAC,MAAItB,KAAEA,KAAE,MAAIsB,KAAE,MAAIb,GAAEa,EAAC;AAAA,EAAI,CAAA,GAAEtB,KAAEA,GAAE,MAAM,CAAC,GAAE,EAAEA,IAAEsB,EAAC,EAAE;AAAU,GAAE,gBAAe,SAASb,IAAEa,IAAE;AAAC,SAAO,IAAI,QAAS,CAACtB,IAAEF,OAAI;AAACwB,OAAE,OAAO,OAAOb,IAAE,EAAC,SAASA,IAAE;AAACA,aAAIA,KAAE,CAAA;AAA0L,YAAMa,KAAEb,GAAE,QAAMA,GAAE,KAAK,UAAQA,GAAE,KAAK,OAAO,yBAAyB,KAAGA,GAAE,UAAQA,GAAE,OAAO,YAAY;AAAE,UAAG,CAACA,GAAE,cAAYA,GAAE,cAAY,KAAI;AAAOT,cAAAA,KAAES,GAAE,QAAMA,GAAE,KAAK,SAAOA,GAAE,KAAK,MAAM,QAAM,WAAU0C,KAAE1C,GAAE,QAAMA,GAAE,KAAK,SAAOA,GAAE,KAAK,MAAM,WAASA,GAAE,UAAQ;AAAsBX,eAAAA,GAAE,IAAI,GAAG,EAAC,MAAKE,IAAE,SAAQmD,IAAE,WAAU7B,GAAC,CAAC,CAAC;AAAA,MAAC;AAAC,YAAM6B,KAAE1C,GAAE;AAAK,UAAG0C,GAAE;AAAM,eAAOrD,GAAE,IAAI,GAAG,EAAC,MAAKqD,GAAE,MAAM,MAAK,SAAQA,GAAE,MAAM,SAAQ,WAAU7B,GAAE,CAAA,CAAC;AAAE6B,SAAE,SAAOA,GAAE,MAAKA,GAAE,YAAU7B,IAAE,OAAO6B,GAAE,MAAKnD,GAAEmD,EAAC;AAAA,IAAC,EAAA,CAAE,CAAC;AAAA,EAAA,CAAG;AAAC,GAAE,UAAS,SAAS1C,IAAE;AAAC,SAAO,EAAE,UAAU,EAAE,MAAMA,EAAC,CAAC;AAAC;AAAG,IAAI,KAAG,MAAK;AAAA,EAAC,YAAYA,IAAE;AAAC,KAAC,WAAU,cAAc,EAAE,QAAS,CAAAa,OAAG;AAAC,UAAG,CAAC,OAAO,UAAU,eAAe,KAAKb,IAAEa,EAAC;AAAE,cAAM,IAAI,MAAM,GAAGA,EAAC,WAAW;AAAA,IAAA,CAAG,GAAE,KAAK,SAAO,OAAO,OAAO,CAAG,GAAA,EAAC,UAAS,MAAIb,GAAE,QAAQ,QAAQ,KAAK,IAAE,gCAA8B,yBAAA,GAA0BA,EAAC,GAAE,KAAK,OAAO,WAAS,UAAS,KAAK,OAAO,aAAW,KAAK,OAAO,WAAS,WAAU,KAAK,OAAO,UAAQ,KAAK,OAAO,WAAS,UAAS,KAAK,OAAO,iBAAe,kBAAgB,KAAK,OAAO,SAAQ,KAAK,UAAQ,IAAG,KAAK,4BAA0B,IAAI,EAAE,EAAC,eAAc,MAAI,KAAK,YAAY,KAAK,aAAa,EAAC,QAAO,2CAA0C,QAAO,KAAA,GAAM,MAAM,CAAC,EAAE,KAAM,CAAAA,OAAG;AAAC,UAAG,CAACA,GAAE,UAAQ,CAACA,GAAE,OAAO;AAAY,cAAM,IAAI,GAAG,EAAC,MAAK,eAAc,SAAQ,mBAAkB;AAAO,WAAA,eAAeA,GAAE,OAAO,WAAW;AAAA,IAAA,CAAG,GAAE,WAAU,EAAA,CAAE;AAAA,EAAC;AAAA,EAAC,IAAI,iBAAgB;AAAO,WAAA,CAAC,CAAC,KAAK;AAAA,EAAW;AAAA,EAAC,eAAeA,IAAE;AAAC,SAAK,cAAYA;AAAAA,EAAC;AAAA,EAAC,eAAeA,IAAE;AAAC,WAAO,GAAG,eAAeA,IAAE,KAAK,QAAQ,OAAO;AAAA,EAAC;AAAA,EAAC,YAAYA,IAAE;AAAQ,WAAA,KAAK,eAAeA,EAAC;AAAA,EAAC;AAAA,EAAC,QAAQA,IAAEa,IAAE;AAAQ,WAAA,QAAQ,QAAU,EAAA,KAAM,MAAI,KAAK,iBAAeA,KAAE,KAAK,eAAeb,EAAC,IAAE,KAAK,eAAeA,EAAC,EAAE,MAAO,CAAAa,OAAG,IAAI,QAAS,CAACb,IAAET,OAAI;AAAEsB,OAAAA,MAAG,4BAA0BA,GAAE,QAAM,oCAAkCA,GAAE,OAAKtB,GAAEsB,EAAC,IAAEb,GAAE;AAAA,IAAA,CAAG,EAAE,KAAM,MAAI,KAAK,eAAiB,CAAA,EAAE,KAAM,MAAI;AAAOa,YAAAA,KAAE,KAAK,eAAeb,EAAC;AAAS,aAAA,KAAK,QAAQa,IAAE,IAAE;AAAA,IAAG,CAAA,CAAE,IAAE,KAAK,eAAe,EAAE,KAAM,MAAI;AAAOA,YAAAA,KAAE,KAAK,eAAeb,EAAC;AAAS,aAAA,KAAK,QAAQa,IAAE,IAAE;AAAA,IAAG,CAAA,CAAE;AAAA,EAAC;AAAA,EAAC,eAAeb,IAAE;AAAC,UAAMa,KAAE,OAAO,OAAO,IAAGb,EAAC;AAASa,WAAAA,GAAE,KAAK,QAAM,KAAK,aAAYA,GAAE,OAAO,kBAAkB,IAAE,KAAK,aAAYA,GAAE,OAAO,mBAAmB,IAAE,GAAG,KAAKA,GAAE,MAAK,KAAK,OAAO,YAAY,GAAEA;AAAAA,EAAC;AAAA,EAAC,aAAab,IAAEa,IAAE;AAAOtB,UAAAA,KAAE,OAAO,OAAO,CAAA,GAAGS,IAAE,EAAC,SAAQ,KAAK,OAAO,SAAQ,WAAU,KAAK,MAAM,CAAA,GAAEX,KAAE,EAAC,gBAAe;AAAoB,WAAM,WAASwB,OAAItB,GAAE,QAAM,KAAK,aAAYF,GAAE,kBAAkB,IAAE,KAAK,cAAaA,GAAE,mBAAmB,IAAE,GAAG,KAAKE,IAAE,KAAK,OAAO,YAAY,GAAE,EAAC,KAAI,KAAK,OAAO,YAAW,QAAO,QAAO,MAAKA,IAAE,UAAS,QAAO,QAAOF;EAAE;AAAA,EAAC,iBAAgB;AAAQ,WAAA,KAAK,0BAA0B;EAAM;AAAA,EAAO,YAAW;AAAA;AAAC,YAAM,KAAK;IAAgB;AAAA;AAAA,EAAC,aAAaW,IAAE;AAAC,UAAMa,KAAE,EAAC,QAAO,sCAAqC,QAAO,KAAK,UAAU,EAAC,gBAAeb,GAAE,MAAK,cAAaA,GAAE,QAAM,CAAA,EAAG,CAAA;AAAG,WAAO,KAAK,QAAQ,KAAK,aAAaa,EAAC,CAAC;AAAA,EAAC;AAAA,EAAC,4BAA4Bb,IAAE;AAAOa,UAAAA,KAAE,EAAC,QAAO,iDAAgD,QAAO,KAAK,UAAUb,EAAC;AAAG,WAAO,KAAK,QAAQ,KAAK,aAAaa,EAAC,CAAC;AAAA,EAAC;AAAA,EAAC,gBAAgB,EAAC,KAAIb,IAAE,UAASa,IAAE,MAAKtB,IAAE,UAASF,IAAE,UAASqD,IAAE,kBAAiBvE,MAAG;AAAC,WAAO,IAAI,QAAS,CAACkI,IAAE1D,OAAI;AAAOxD,YAAAA,KAAE,KAAK,QAAQ,WAAW,EAAC,KAAIa,IAAE,UAASa,IAAE,MAAKtB,IAAE,UAASF,IAAE,UAASqD,IAAE,QAAO,EAAC,gCAA+B,SAAA,GAAU,QAAQ1C,IAAE;AAACA,cAAGA,GAAE,aAAW,MAAIqG,GAAErG,EAAC,IAAE2C,GAAE,IAAI,GAAG,EAAC,MAAK,iBAAgB,SAAQ,SAAS,CAAA,CAAC;AAAA,MAAA,GAAG,KAAK3C,IAAE;AAAC2C,WAAE,IAAI,GAAG,EAAC,MAAK3C,GAAE,QAAM,iBAAgB,SAAQA,GAAE,WAASA,GAAE,UAAQ,SAAA,CAAS,CAAC;AAAA,SAAG;AAAc,oBAAA,OAAO7B,MAAGgB,MAAG,cAAY,OAAOA,GAAE,oBAAkBA,GAAE,iBAAkB,CAAAa,OAAG;AAAC7B,WAAE,EAAC,QAAO6B,GAAE,gBAAe,OAAMA,GAAE,0BAAyB;AAAA,MAAA,CAAG;AAAA,IAAA,CAAG;AAAA,EAAC;AAAA,EAAC,gBAAgBA,IAAE;AAAOa,UAAAA,KAAE,EAAC,QAAO,mCAAkC,QAAO,KAAK,UAAUb,EAAC;AAAG,WAAO,KAAK,QAAQ,KAAK,aAAaa,EAAC,CAAC;AAAA,EAAC;AAAA,EAAO,WAAW,IAAiG;AAAA,+CAAjG,EAAC,UAASb,IAAE,WAAUa,IAAE,UAAStB,KAAE,SAAQ,qBAAoBF,KAAE,OAAG,kBAAiBqD,IAAE,QAAOvE,MAAG;AAAI,UAAA,aAAW,EAAE0C,EAAC;AAAE,cAAM,IAAI,GAAG,EAAC,MAAK,iBAAgB,SAAQ,qBAAoB;AAAK,UAAA,EAAEA,KAAEA,GAAE;AAAQ,cAAM,IAAI,GAAG,EAAC,MAAK,iBAAgB,SAAQ,iBAAgB;AAAK,UAAA,QAAQ,KAAKA,EAAC;AAAE,cAAM,IAAI,GAAG,EAAC,MAAK,iBAAgB,SAAQ,gBAAe;AAAE,YAAMwF,KAAElI,MAAGA,GAAE,WAAS,KAAK,OAAO;AAAWkB,UAAAA,OAAI,QAAMwB,GAAE,CAAC,MAAIA,KAAE,MAAIA,KAAGA,GAAE,QAAQ,IAAI,IAAE;AAAI,cAAM,IAAI,GAAG,EAAC,MAAK,iBAAgB,SAAQ,sCAAqC;AAAE,YAAM8B,MAAG,MAAM,KAAK,4BAA4B,EAAC,KAAI0D,IAAE,UAAShH,KAAEwB,GAAE,MAAM,GAAG,EAAE,QAAMA,IAAE,QAAOxB,KAAEwB,KAAE,OAAO,CAAA,GAAG,QAAO1B,KAAE,aAAWwD,GAAE,YAAU,MAAIA,GAAE,SAAQ,EAAC,eAAckD,IAAE,aAAYd,IAAE,WAAU5B,IAAE,MAAKgP,IAAE,SAAQ9N,IAAE,IAAGpB,IAAE,QAAO+B,IAAE,gBAAeqN,GAAG1P,IAAAA,IAAEzD,KAAE,EAAC,iBAAgB,mBAAkB,uBAAsB,cAAa,gBAAe6F,IAAE,WAAU5B,IAAE,MAAKgP,IAAE,IAAGlP,IAAE,KAAIoB,IAAE,QAAOW,IAAE,uBAAsB;AAAK,UAAGa,OAAI3G,GAAE,sBAAsB,IAAE2G,KAAGwM,IAAE;AAAOrS,cAAAA,KAAE,KAAK,UAAU,EAAC,aAAYqS,IAAE,cAAa,KAAK,UAAU,EAAC,QAAOpP,IAAE,SAAQ,KAAK,OAAO,QAAA,CAAQ,GAAE,kBAAiB,oBAAmB;AAAE/D,WAAE,WAAS,GAAG,SAASc,EAAC;AAAA,MAAC;AAAC,YAAMsG,KAAE,EAAC,KAAI,aAAW3D,GAAE,MAAK,UAASzD,IAAE,UAAS,QAAO,MAAK,QAAO,UAASc,IAAE,UAAST;AAAG,UAAG,MAAM,KAAK,gBAAgB,OAAO,OAAO,CAAA,GAAG+G,IAAE,EAAC,kBAAiB5D,GAAE,CAAA,CAAC,GAAE2P;AAAE,eAAM,EAAC,SAAQ,MAAG,UAASrS,IAAE,QAAOb;AAAG,WAAI,MAAM,KAAK,gBAAgB,EAAC,IAAG8D,GAAE,CAAA,GAAG;AAAQ,eAAM,EAAC,SAAQ,MAAG,UAASjD,IAAE,QAAOb;AAAG,YAAM,IAAI,GAAG,EAAC,MAAK,iBAAgB,SAAQ,UAAS;AAAA,IAAC;AAAA;AAAA,EAAC,eAAe,EAAC,UAASa,GAAC,IAAE,CAAA,GAAG;AAAC,WAAO,IAAI,QAAS,CAACa,IAAEtB,OAAI;AAAC,YAAM,QAAQS,EAAC,KAAG,MAAIA,GAAE,UAAQT,GAAE,IAAI,GAAG,EAAC,MAAK,iBAAgB,SAAQ,uBAAsB,CAAC,CAAC,GAAEsB,GAAE,EAAC,UAASb,GAAE,IAAK,CAAAA,QAAI,EAAC,QAAOA,IAAE,aAAYA,GAAC,EAAG,EAAE,CAAA;AAAA,IAAA,CAAG;AAAA,EAAC;AAAA,EAAO,cAA4B;AAAA,+CAAhB,EAAC,UAASA,GAAC,IAAE,CAAA,GAAG;AAAC,UAAG,CAAC,MAAM,QAAQA,EAAC,KAAG,MAAIA,GAAE;AAAO,cAAM,IAAI,GAAG,EAAC,MAAK,iBAAgB,SAAQ,wBAAuB;AAAQa,YAAAA,KAAE,EAAC,QAAO,iCAAgC,QAAO,KAAK,UAAU,EAAC,IAAGb,GAAE,IAAK,CAAAA,OAAGA,GAAE,MAAM,GAAG,EAAE,CAAC,CAAE,EAAE,KAAK,GAAG,EAAE,CAAA;AAAS,aAAA,EAAC,WAAU,MAAM,KAAK,QAAQ,KAAK,aAAaa,EAAC,CAAC,GAAG;IAAO;AAAA;AAAC;AAAE,IAAI,KAAG,EAAC,KAAKb,IAAE;AAAOa,QAAAA,KAAE,IAAI,GAAGb,EAAC,GAAET,KAAE,EAAC,mBAAkB,WAAU;AAAC,WAAOsB,GAAE;EAAW,GAAE,eAAc,WAAU;AAAQ,WAAA,QAAQ,QAAQ,KAAE;AAAA,EAAA;AAAWA,SAAAA,GAAE,OAAK,WAAU;AAAQtB,WAAAA;AAAAA,EAAGsB,GAAAA,GAAE,aAAWA,GAAE,MAAKA;AAAC;AAAG,MAAM,KAAG,eAAa,OAAO,YAAU,YAAU,SAAS,WAAS,UAAQ;AAAS,IAAI;AAAG,CAAC,SAASb,IAAE;AAACA,KAAE,QAAM,SAAQA,GAAE,OAAK,QAAOA,GAAE,UAAQ;AAAS,EAAE,OAAK,KAAG,CAAG,EAAA;AAAE,IAAI,KAAG,WAAU;AAAC,GAAE,KAAG,EAAG,SAASA,IAAEa,IAAE;AAAKtB,MAAAA;AAAES,KAAE,WAAST,KAAE,GAAE,SAASS,IAAE;AAAC,QAAIa,KAAEtB,IAAEF,KAAEwB,GAAE,KAAI6B,KAAErD,GAAE,WAAUlB,KAAEkB,GAAE,QAAOgH,KAAExF,GAAE,MAAK8B,KAAE,CAAC,GAAExD,KAAE;AAAG,KAAC,WAAU;AAAC,eAAS0B,GAAEA,IAAE;AAAStB,iBAAAA,KAAES,GAAE,KAAKa,EAAC,GAAExB,KAAE,GAAEA,MAAGE,IAAEF;AAAI,cAAG,EAAEwB,KAAExB;AAAS,mBAAA;AAAS,eAAA;AAAA,MAAE;AAAC,eAASE,GAAES,IAAE;AAAQ,eAAA,cAAYA,MAAG,IAAEA,OAAI;AAAA,MAAC;AAAC,eAAQX,KAAE,GAAEqD,KAAE,GAAEA,KAAE;AAAI7B,WAAExB,EAAC,MAAIqD,KAAE,MAAIC,GAAED,EAAC,IAAEnD,GAAES,GAAE,IAAIX,IAAE,GAAE,CAAC,IAAGF,GAAEuD,EAAC,IAAEnD,GAAES,GAAE,IAAIX,IAAE,IAAE,CAAC,CAAC,GAAEqD,OAAKrD;AAAAA,IAAA;AAAWwG,QAAAA,KAAE,IAAGd,KAAEsB,GAAE,SAAOlI,GAAE,OAAO,EAAC,UAAS,WAAU;AAAC,WAAK,QAAM,IAAIuE,GAAE,KAAKC,GAAE,MAAM,CAAC,CAAC;AAAA,IAAA,GAAG,iBAAgB,SAAS3C,IAAEa,IAAE;AAAC,eAAQtB,KAAE,KAAK,MAAM,OAAMF,KAAEE,GAAE,CAAC,GAAEmD,KAAEnD,GAAE,CAAC,GAAEpB,KAAEoB,GAAE,CAAC,GAAE8G,KAAE9G,GAAE,CAAC,GAAEoD,KAAEpD,GAAE,CAAC,GAAEwF,KAAExF,GAAE,CAAC,GAAE4D,KAAE5D,GAAE,CAAC,GAAE4S,KAAE5S,GAAE,CAAC,GAAE8E,KAAE,GAAEA,KAAE,IAAGA,MAAI;AAAC,YAAGA,KAAE;AAAGwB,aAAExB,EAAC,IAAE,IAAErE,GAAEa,KAAEwD,EAAC;AAAA,aAAM;AAAC,cAAIkB,KAAEM,GAAExB,KAAE,EAAE,GAAEpB,MAAGsC,MAAG,KAAGA,OAAI,MAAIA,MAAG,KAAGA,OAAI,MAAIA,OAAI,GAAEP,KAAEa,GAAExB,KAAE,CAAC,GAAEgO,MAAGrN,MAAG,KAAGA,OAAI,OAAKA,MAAG,KAAGA,OAAI,MAAIA,OAAI;AAAGa,aAAExB,EAAC,IAAEpB,KAAE4C,GAAExB,KAAE,CAAC,IAAEgO,KAAExM,GAAExB,KAAE,EAAE;AAAA,QAAC;AAAC,YAAInF,KAAEG,KAAEqD,KAAErD,KAAElB,KAAEuE,KAAEvE,IAAEmI,MAAGjH,MAAG,KAAGA,OAAI,MAAIA,MAAG,KAAGA,OAAI,OAAKA,MAAG,KAAGA,OAAI,KAAIM,KAAEwS,OAAIxP,MAAG,KAAGA,OAAI,MAAIA,MAAG,KAAGA,OAAI,OAAKA,MAAG,IAAEA,OAAI,QAAMA,KAAEoC,KAAE,CAACpC,KAAEQ,MAAGhE,GAAEkF,EAAC,IAAEwB,GAAExB,EAAC;AAAE8N,aAAEhP,IAAEA,KAAE4B,IAAEA,KAAEpC,IAAEA,KAAE0D,KAAE1G,KAAE,GAAE0G,KAAElI,IAAEA,KAAEuE,IAAEA,KAAErD,IAAEA,KAAEM,MAAG2G,KAAEpH,MAAG;AAAA,MAAC;AAACK,SAAE,CAAC,IAAEA,GAAE,CAAC,IAAEF,KAAE,GAAEE,GAAE,CAAC,IAAEA,GAAE,CAAC,IAAEmD,KAAE,GAAEnD,GAAE,CAAC,IAAEA,GAAE,CAAC,IAAEpB,KAAE,GAAEoB,GAAE,CAAC,IAAEA,GAAE,CAAC,IAAE8G,KAAE,GAAE9G,GAAE,CAAC,IAAEA,GAAE,CAAC,IAAEoD,KAAE,GAAEpD,GAAE,CAAC,IAAEA,GAAE,CAAC,IAAEwF,KAAE,GAAExF,GAAE,CAAC,IAAEA,GAAE,CAAC,IAAE4D,KAAE,GAAE5D,GAAE,CAAC,IAAEA,GAAE,CAAC,IAAE4S,KAAE;AAAA,IAAC,GAAE,aAAY,WAAU;AAAC,UAAItR,KAAE,KAAK,OAAMtB,KAAEsB,GAAE,OAAMxB,KAAE,IAAE,KAAK,aAAYqD,KAAE,IAAE7B,GAAE;AAAS,aAAOtB,GAAEmD,OAAI,CAAC,KAAG,OAAK,KAAGA,KAAE,IAAGnD,GAAE,MAAImD,KAAE,OAAK,KAAG,EAAE,IAAE1C,GAAE,MAAMX,KAAE,UAAU,GAAEE,GAAE,MAAImD,KAAE,OAAK,KAAG,EAAE,IAAErD,IAAEwB,GAAE,WAAS,IAAEtB,GAAE,QAAO,KAAK,YAAW,KAAK;AAAA,IAAK,GAAE,OAAM,WAAU;AAAC,UAAIS,KAAE7B,GAAE,MAAM,KAAK,IAAI;AAAE,aAAO6B,GAAE,QAAM,KAAK,MAAM,MAAQA,GAAAA;AAAAA,OAAG;AAAEa,OAAE,SAAO1C,GAAE,cAAc4G,EAAC,GAAElE,GAAE,aAAW1C,GAAE,kBAAkB4G,EAAC;AAAA,EAAC,EAAE,IAAI,GAAExF,GAAE;AAAO,CAAE,GAAE,KAAG,IAAG,KAAG,EAAG,SAASS,IAAEa,IAAE;AAACb,KAAE,UAAQ,EAAE;AAAU,CAAE;AAAE,MAAM,KAAG,MAAI;AAAKA,MAAAA;AAAE,MAAG,CAAC,SAAQ;AAACA,SAAE,MAAI;AAAA,IAAA,GAAGA,GAAE,UAAQ;AAAG,UAAMa,KAAE,MAAI;AAAC,YAAM,IAAI,GAAG,EAAC,SAAQ,kHAAkH,CAAA;AAAA,IAAA;AAAG,WAAO,OAAO,eAAeb,GAAE,SAAQ,QAAO,EAAC,KAAIa,IAAE,GAAE,OAAO,eAAeb,GAAE,SAAQ,SAAQ,EAAC,KAAIa,GAAAA,CAAE,GAAEb;AAAAA,EAAC;AAAC,QAAMa,KAAE,IAAI,QAAS,CAACA,IAAEtB,OAAI;AAACS,SAAE,CAACA,IAAEX,OAAIW,KAAET,GAAES,EAAC,IAAEa,GAAExB,EAAC;AAAA,EAAA,CAAG;AAASW,SAAAA,GAAE,UAAQa,IAAEb;AAAC;AAAE,SAAS,GAAGA,IAAE;AAAC,SAAO,WAASA;AAAC;AAAC,SAAS,GAAGA,IAAE;AAAC,SAAM,oBAAkB,OAAO,UAAU,SAAS,KAAKA,EAAC;AAAC;AAAC,IAAI;AAAG,SAAS,GAAGA,IAAE;AAAC,QAAMa,MAAGtB,KAAES,IAAE,qBAAmB,OAAO,UAAU,SAAS,KAAKT,EAAC,IAAES,KAAE,CAACA,EAAC;AAAOT,MAAAA;AAAE,aAAUS,MAAKa,IAAE;AAAC,UAAK,EAAC,SAAQA,IAAE,YAAWtB,IAAE,SAAQF,GAAGW,IAAAA;AAAE,QAAGa,GAAE;AAAE,aAAM,EAAC,SAAQtB,GAAE,GAAE,SAAQF,GAAC;AAAA,EAAC;AAAC;AAAC,CAAC,SAASW,IAAE;AAACA,KAAE,MAAI,OAAMA,GAAE,QAAM;AAAO,EAAE,OAAK,KAAG,CAAG,EAAA;AAAE,MAAM,KAAG,EAAC,SAAQ,MAAK,SAAQ,UAAQ,KAAG,CAAC,kBAAkB;AAAE,MAAM,WAAW,GAAE;AAAA,EAAC,cAAa;AAAO,aAAE,GAAG,QAAQ,KAAK,cAAY,GAAG,QAAQ,KAAK,YAAU,CAAC;AAAA,EAAE;AAAA,EAAC,QAAQA,IAAEa,IAAE;AAAC,OAAG,QAAQ,KAAK,UAAUb,EAAC,IAAEa;AAAAA,EAAC;AAAA,EAAC,QAAQb,IAAE;AAAC,WAAO,GAAG,QAAQ,KAAK,UAAUA,EAAC;AAAA,EAAC;AAAA,EAAC,WAAWA,IAAE;AAAC,WAAO,GAAG,QAAQ,KAAK,UAAUA,EAAC;AAAA,EAAC;AAAA,EAAC,QAAO;AAAQ,WAAA,GAAG,QAAQ,KAAK;AAAA,EAAS;AAAC;AAAC,SAAS,GAAGA,IAAEa,IAAE;AAAC,UAAOb,IAAE;AAAA,IAAC,KAAI;AAAea,aAAAA,GAAE,gBAAc,IAAI;IAAG,KAAI;AAAO,aAAO,IAAI,GAAA;AAAA,IAAG;AAAeA,aAAAA,GAAE,kBAAgB,IAAI;EAAE;AAAC;AAAC,MAAM,GAAE;AAAA,EAAC,YAAYb,IAAE;AAAI,QAAA,CAAC,KAAK,UAAS;AAAC,WAAK,eAAa,GAAG,QAAQ,kBAAgBA,GAAE,aAAY,KAAK,WAAS,GAAG,KAAK,cAAa,GAAG,OAAO;AAAE,YAAMa,KAAE,gBAAgBb,GAAE,GAAG,IAAGT,KAAE,uBAAuBS,GAAE,GAAG,IAAGX,KAAE,iBAAiBW,GAAE,GAAG,IAAG0C,KAAE,kBAAkB1C,GAAE,GAAG,IAAG7B,KAAE,cAAc6B,GAAE,GAAG,IAAGqG,KAAE,aAAarG,GAAE,GAAG;AAAG,WAAK,OAAK,EAAC,gBAAea,IAAE,sBAAqBtB,IAAE,iBAAgBF,IAAE,kBAAiBqD,IAAE,cAAavE,IAAE,aAAYkI;IAAE;AAAA,EAAC;AAAA,EAAC,kBAAkBrG,IAAE;AAAC,QAAGA,OAAI,KAAK;AAAa;AAAaa,UAAAA,KAAE,YAAU,KAAK;AAAa,SAAK,eAAab;AAAE,UAAMT,KAAE,GAAGS,IAAE,GAAG,OAAO;AAAYA,eAAAA,MAAK,KAAK,MAAK;AAAOX,YAAAA,KAAE,KAAK,KAAKW,EAAC;AAAKa,UAAAA,MAAG,GAAG,SAASb,EAAC;AAAE;AAAS,YAAM0C,KAAE,KAAK,SAAS,QAAQrD,EAAC;AAAE,SAAGqD,EAAC,KAAG,GAAGA,EAAC,MAAInD,GAAE,QAAQF,IAAEqD,EAAC,GAAE,KAAK,SAAS,WAAWrD,EAAC;AAAA,IAAE;AAAC,SAAK,WAASE;AAAAA,EAAC;AAAA,EAAC,SAASS,IAAEa,IAAEtB,IAAE;AAAC,QAAG,CAAC,KAAK;AAAS;AAAaF,UAAAA,KAAE,EAAC,SAAQE,MAAG,gBAAe,SAAQsB,GAAAA,GAAG6B,KAAE,KAAK,UAAUrD,EAAC;AAAK,QAAA;AAAM,WAAA,SAAS,QAAQW,IAAE0C,EAAC;AAAA,aAAQ1C,IAAE;AAAOA,YAAAA;AAAAA,IAAC;AAAA,EAAC;AAAA,EAAC,SAASA,IAAEa,IAAE;AAAI,QAAA;AAAC,UAAG,CAAC,KAAK;AAAS;AAAA,aAAab,IAAE;AAAO,aAAA;AAAA,IAAE;AAACa,SAAEA,MAAG;AAAe,UAAMtB,KAAE,KAAK,SAAS,QAAQS,EAAC;AAAE,QAAG,CAACT;AAAQ,aAAA;AAAG,QAAGA,GAAE,QAAQsB,EAAC,KAAG,GAAE;AAAQ,aAAA,KAAK,MAAMtB,EAAC,EAAE;AAAA,IAAO;AAAO,WAAA;AAAA,EAAE;AAAA,EAAC,YAAYS,IAAE;AAAM,SAAA,SAAS,WAAWA,EAAC;AAAA,EAAC;AAAC;AAAC,MAAM,KAAG,CAAA,GAAG,KAAG;AAAG,SAAS,GAAGA,IAAE;AAAC,SAAO,GAAGA,EAAC;AAAC;AAAC,MAAM,GAAE;AAAA,EAAC,YAAYA,IAAEa,IAAE;AAAC,SAAK,OAAKA,MAAG,MAAK,KAAK,OAAKb;AAAAA,EAAC;AAAC;AAAC,MAAM,WAAW,GAAE;AAAA,EAAC,YAAYA,IAAEa,IAAE;AAAO,UAAA,SAAQ,EAAC,OAAMb,IAAE,MAAKa,GAAC,CAAC,GAAE,KAAK,QAAMb;AAAAA,EAAC;AAAC;AAAC,MAAM,KAAG,IAAI,MAAK;AAAA,EAAC,cAAa;AAAC,SAAK,aAAW;EAAE;AAAA,EAAC,GAAGA,IAAEa,IAAE;AAAQ,WAAA,SAASb,IAAEa,IAAEtB,IAAE;AAACA,SAAES,EAAC,IAAET,GAAES,EAAC,KAAG,IAAGT,GAAES,EAAC,EAAE,KAAKa,EAAC;AAAA,IAAGb,EAAAA,IAAEa,IAAE,KAAK,UAAU,GAAE;AAAA,EAAI;AAAA,EAAC,IAAIb,IAAEa,IAAE;AAAQ,WAAA,SAASb,IAAEa,IAAEtB,IAAE;AAAIA,UAAAA,MAAGA,GAAES,EAAC,GAAE;AAAC,cAAMX,KAAEE,GAAES,EAAC,EAAE,QAAQa,EAAC;AAAE,eAAKxB,MAAGE,GAAES,EAAC,EAAE,OAAOX,IAAE,CAAC;AAAA,MAAC;AAAA,IAAGW,EAAAA,IAAEa,IAAE,KAAK,UAAU,GAAE;AAAA,EAAI;AAAA,EAAC,KAAKb,IAAEa,IAAE;AAAC,QAAGb,cAAa;AAAG,aAAO,QAAQ,MAAMA,GAAE,KAAK,GAAE;AAAWT,UAAAA,KAAE,YAAU,OAAOS,KAAE,IAAI,GAAGA,IAAEa,MAAG,EAAE,IAAEb;AAAE,UAAMX,KAAEE,GAAE;AAAQ,QAAA,KAAK,SAASF,EAAC,GAAE;AAACE,SAAE,SAAO;AAAK,YAAMS,KAAE,KAAK,WAAWX,EAAC,IAAE,CAAC,GAAG,KAAK,WAAWA,EAAC,CAAC,IAAE,CAAA;AAAG,iBAAUwB,MAAKb;AAAEa,WAAE,KAAK,MAAKtB,EAAC;AAAA,IAAC;AAAQ,WAAA;AAAA,EAAI;AAAA,EAAC,SAASS,IAAE;AAAQ,WAAA,KAAK,WAAWA,EAAC,KAAG,KAAK,WAAWA,EAAC,EAAE,SAAO;AAAA,EAAC;AAAC;AAAE,SAAS,GAAGA,IAAEa,IAAE;AAAI,KAAA,GAAGb,IAAEa,EAAC;AAAC;AAAC,SAAS,GAAGb,IAAEa,KAAE,IAAG;AAAI,KAAA,KAAKb,IAAEa,EAAC;AAAC;AAAC,SAAS,GAAGb,IAAEa,IAAE;AAAI,KAAA,IAAIb,IAAEa,EAAC;AAAC;AAAC,MAAM,KAAG,qBAAoB,KAAG,oBAAmB,KAAG,oBAAmB,KAAG,sBAAqB,KAAG;AAAqB,IAAI;AAAG,CAAC,SAASb,IAAE;AAACA,KAAE,YAAU,aAAYA,GAAE,SAAO,UAASA,GAAE,gBAAc,iBAAgBA,GAAE,cAAY,eAAcA,GAAE,SAAO,UAASA,GAAE,QAAM,SAAQA,GAAE,WAAS,YAAWA,GAAE,OAAK;AAAM,EAAE,OAAK,KAAG,CAAG,EAAA;AAAE,MAAM,KAAG,CAAC,eAAc,eAAc,yBAAwB,0BAAyB,eAAc,yCAAwC,mCAAkC,4BAA2B,+BAA8B,+BAA8B,2BAA2B,GAAE,KAAG,EAAC,iBAAgB;AAAS,SAAS,GAAGA,IAAEa,IAAEtB,IAAE;AAAOF,QAAAA,KAAEW,GAAEa,EAAC;AAAEb,KAAEa,EAAC,IAAE,SAASA,IAAE;AAAC,UAAM6B,KAAE,CAAA,GAAGvE,KAAE;AAAGoB,OAAE,QAAS,CAAAA,OAAG;AAAM,YAAA,EAAC,MAAKF,IAAE,SAAQgH,OAAG9G,GAAE,KAAKS,IAAEa,EAAC;AAAE,aAAO,OAAO6B,IAAErD,EAAC,GAAE,OAAO,OAAOlB,IAAEkI,EAAC;AAAA,IAAA,CAAG;AAAE,UAAMA,KAAExF,GAAE;AAAK,WAAOwF,OAAI,MAAI;AAAKrG,UAAAA;AAAE,UAAGA,KAAEqG,IAAE,wBAAsB,OAAO,UAAU,SAAS,KAAKrG,EAAC;AAAEa,WAAE,OAAK,kCAAIwF,KAAK3D;AAAAA;AAAQ,mBAAU1C,MAAK0C;AAAE2D,aAAE,OAAOrG,IAAE0C,GAAE1C,EAAC,CAAC;AAAA,UAAMa,GAAE,UAAQ,kCAAIA,GAAE,WAAS,CAAA,IAAM1C,KAAGkB,GAAE,KAAKW,IAAEa,EAAC;AAAA,EAAA;AAAE;AAAC,SAAS,KAAI;AAAOb,QAAAA,KAAE,KAAK,OAAO,EAAE,SAAS,EAAE,EAAE,MAAM,CAAC;AAAE,SAAM,EAAC,MAAK,EAAC,OAAMA,GAAC,GAAE,SAAQ,iCAAI,KAAJ,EAAO,WAAUA,GAAE,GAAA;AAAC;AAAC,MAAM,GAAE;AAAA,EAAC,YAAYA,KAAE,IAAG;AAAKa,QAAAA;AAAE,SAAK,SAAOb,IAAE,KAAK,YAAU,IAAI,GAAG,QAAQ,SAAS,EAAC,SAAQ,KAAK,OAAO,SAAQ,YAAW,MAAM,KAAK,OAAO,UAAQ,GAAG,aAAY,mBAAkB,CAAC,MAAM,EAAE,CAAA,GAAE,KAAK,SAAO,GAAG,KAAK,OAAO,GAAG,GAAE,KAAK,eAAaa,KAAE,KAAK,OAAO,KAAI,GAAGA,EAAC,IAAG,GAAG,KAAK,WAAU,QAAO,CAAC,EAAE,CAAC,GAAE,GAAG,KAAK,WAAU,UAAS,CAAC,EAAE,CAAC,GAAE,GAAG,KAAK,WAAU,YAAW,CAAC,EAAE,CAAC;AAAA,EAAC;AAAA,EAAO,KAAKb,IAAE;AAAA;AAAC,aAAO,MAAM,KAAK,UAAU,KAAKA,EAAC;AAAA,IAAC;AAAA;AAAA,EAAO,OAAOA,IAAE;AAAA;AAAC,aAAO,MAAM,KAAK,UAAU,OAAOA,EAAC;AAAA,IAAC;AAAA;AAAA,EAAO,SAASA,IAAE;AAAA;AAAC,aAAO,MAAM,KAAK,UAAU,SAASA,EAAC;AAAA,IAAC;AAAA;AAAA,EAAO,qBAAoB;AAAA;AAAC,UAAIA,IAAEa;AAAE,WAAK,+BAA6B,KAAK,6BAA2B,KAAK,oBAAoB;AAAM,UAAA;AAACb,aAAE,MAAM,KAAK;AAAA,eAAiCA,IAAE;AAACa,aAAEb;AAAAA,MAAC;AAAC,UAAG,KAAK,6BAA2B,MAAK,KAAK,gCAA8B,MAAKa;AAAQA,cAAAA;AAASb,aAAAA;AAAAA,IAAC;AAAA;AAAA,EAAO,sBAAqB;AAAA;AAAC,YAAK,EAAC,gBAAeA,IAAE,sBAAqBa,IAAE,iBAAgBtB,IAAE,cAAaF,IAAE,kBAAiBqD,GAAC,IAAE,KAAK,OAAO;AAAK,WAAK,OAAO,YAAY1C,EAAC,GAAE,KAAK,OAAO,YAAYa,EAAC;AAAE,UAAI1C,KAAE,KAAK,OAAO,SAASoB,EAAC;AAAE,UAAG,CAACpB;AAAE,cAAM,IAAI,GAAG,EAAC,SAAQ,eAAe,CAAA;AAAQkI,YAAAA,KAAE,EAAC,eAAclI,MAAGwE,KAAE,MAAM,KAAK,QAAQ,yCAAwC0D,EAAC;AAAK1D,UAAAA,GAAE,KAAK,MAAK;AAAC,cAAK,EAAC,MAAK3C,OAAG2C,GAAE;AAAK,YAAG,yBAAuB3C,MAAG,4BAA0BA,MAAG,4BAA0BA,IAAE;AAAI,cAAA,KAAK,OAAO,SAASX,EAAC,MAAI,GAAG,aAAW,4BAA0BW,IAAE;AAAOA,kBAAAA,KAAE,KAAK,OAAO,SAAS0C,EAAC,GAAE7B,KAAE,KAAK,OAAO,SAAStB,EAAC,GAAEF,KAAE,MAAM,KAAK,KAAK,0BAAyB,EAAC,gBAAeW,IAAE,eAAca,GAAAA,CAAE;AAAE,mBAAO,KAAK,gBAAgBxB,GAAE,aAAa,GAAE,KAAK;UAAqB;AAAC,aAAG,EAAE,GAAE,KAAK,OAAO,YAAYE,EAAC;AAAA,QAAC;AAAC,cAAM,IAAI,GAAG,EAAC,MAAKoD,GAAE,KAAK,MAAK,SAAQ,oBAAoBA,GAAE,KAAK,IAAI,GAAG,CAAA;AAAA,MAAC;AAAC,UAAGA,GAAE,KAAK;AAAa,eAAO,GAAG,EAAE,GAAE,KAAK,OAAO,SAAS3C,IAAE2C,GAAE,KAAK,YAAY,GAAE,KAAK,OAAO,SAAS9B,IAAE8B,GAAE,KAAK,sBAAoB,KAAK,IAAK,CAAA,GAAE,EAAC,aAAYA,GAAE,KAAK,cAAa,mBAAkBA,GAAE,KAAK,oBAAmB;AAAEA,SAAE,KAAK,kBAAgB,KAAK,OAAO,YAAYpD,EAAC,GAAE,KAAK,OAAO,SAASA,IAAEoD,GAAE,KAAK,aAAa,GAAE,KAAK,oBAAoB;AAAA,IAAE;AAAA;AAAA,EAAO,iBAAgB;AAAA;AAAM,YAAA,EAAC,gBAAe3C,IAAE,sBAAqBa,IAAE,iBAAgBtB,OAAG,KAAK,OAAO;AAAK,UAAG,CAAC,KAAK,OAAO,SAASA,EAAC;AAAE,cAAM,IAAI,GAAG,EAAC,SAAQ,0BAA0B,CAAA;AAAE,UAAIF,KAAE,KAAK,OAAO,SAASW,EAAC,GAAE0C,KAAE,KAAK,OAAO,SAAS7B,EAAC,GAAE1C,KAAE;AAAU,aAAA,KAAK,iCAA+B,EAAC,MAAM,KAAK,8BAA8BkB,IAAEqD,EAAC,OAAIvE,KAAE,SAAK,CAACkB,MAAG,CAACqD,MAAGA,KAAE,KAAK,IAAI,MAAIvE,KAAE,KAAK,mBAAmB,IAAE,EAAC,aAAYkB,IAAE,mBAAkBqD,GAAC;AAAA,IAAC;AAAA;AAAA,EAAO,QAAQ1C,IAAEa,IAAEtB,IAAE;AAAA;AAAC,YAAMF,KAAE,eAAe,KAAK,OAAO,GAAG;AAAG,UAAIqD,KAAE;AAA0CvE,YAAAA,KAAE,iBAAC,QAAO6B,IAAE,KAAI,KAAK,OAAO,KAAI,aAAY,gBAAgBa;AAAG,UAAG,OAAK,GAAG,QAAQb,EAAC,GAAE;AAAC,cAAK,EAAC,iBAAgBA,GAAC,IAAE,KAAK,OAAO;AAAU,aAAA,OAAO,SAASA,EAAC,MAAI7B,GAAE,gBAAc,MAAM,KAAK,eAAkB,GAAA;AAAA,MAAY;AAAKkI,UAAAA;AAAE,UAAG,yBAAuBrG,IAAE;AAACqG,aAAE,IAAI;AAAS,iBAAQrG,MAAKqG;AAAEA,aAAE,eAAerG,EAAC,KAAG,WAASqG,GAAErG,EAAC,KAAGqG,GAAE,OAAOrG,IAAE7B,GAAE6B,EAAC,CAAC;AAAE0C,aAAE;AAAA,MAAA,OAA0B;AAACA,aAAE,oBAAmB2D,KAAE;AAAG,iBAAQrG,MAAK7B;AAAE,qBAASA,GAAE6B,EAAC,MAAIqG,GAAErG,EAAC,IAAE7B,GAAE6B,EAAC;AAAA,MAAE;AAAC,UAAI2C,KAAE,EAAC,SAAQ,EAAC,gBAAeD,GAAE,EAAA;AAAEnD,YAAGA,GAAE,qBAAmBoD,GAAE,mBAAiBpD,GAAE;AAAkB,YAAMJ,KAAE,KAAK,YAAY,SAASE,EAAC;AAAEF,aAAIwD,GAAE,QAAQ,aAAa,IAAExD;AAAG,YAAK,EAAC,OAAM0G,IAAE,SAAQd,IAAE,QAAO5B,GAAGtC,IAAAA;AAAE,UAAIsR,KAAE,EAAC,KAAI,KAAK,OAAO,IAAG;AAAEtM,aAAIsM,GAAE,QAAM,OAAIpN,OAAIoN,KAAE,kCAAIpN,KAAKoN;AAAI,UAAI9N,KAAE,SAASrE,IAAEa,IAAEtB,KAAE,CAAA,GAAG;AAAOF,cAAAA,KAAE,KAAK,KAAKwB,EAAC;AAAE,YAAI6B,KAAE;AAAG,iBAAQ1C,MAAKT;AAAE,iBAAKmD,KAAE,CAACrD,OAAIwB,MAAG,OAAK6B,MAAG,KAAIA,MAAG,GAAG1C,EAAC,IAAI,mBAAmBT,GAAES,EAAC,CAAC,CAAC;AAAS,eAAA,kBAAkB,KAAKa,MAAG6B,EAAC,IAAE7B,KAAE,GAAGb,EAAC,GAAGa,EAAC;AAAA,MAAA,EAAI,IAAG,qCAAoCsR,EAAC;AAAEhP,aAAIkB,MAAGlB;AAAG,YAAMoC,KAAE,MAAM,KAAK,KAAK,iBAAC,KAAIlB,IAAE,MAAKgC,MAAK1D,GAAE,GAAEM,KAAEsC,GAAE,UAAQA,GAAE,OAAO,aAAa;AAAE,UAAGtC,MAAG,KAAK,YAAY,SAAS5D,IAAE4D,EAAC,GAAE,QAAM,OAAOsC,GAAE,MAAM,KAAG,QAAM,OAAOA,GAAE,UAAU,KAAG,CAACA,GAAE;AAAK,cAAM,IAAI,GAAG,EAAC,MAAK,iBAAgB,SAAQ,yBAAwB;AAASA,aAAAA;AAAAA,IAAC;AAAA;AAAA,EAAO,KAAKvF,IAAO;AAAA,+CAAPA,IAAEa,KAAE,IAAG;AAAOtB,YAAAA,KAAE,MAAM,KAAK,QAAQS,IAAEa,IAAE,EAAC,kBAAiBA,GAAE,iBAAA,CAAiB;AAAK,UAAA,2BAAyBtB,GAAE,KAAK,QAAM,OAAK,GAAG,QAAQS,EAAC,GAAE;AAAC,cAAM,KAAK;AAA2BT,cAAAA,KAAE,MAAM,KAAK,QAAQS,IAAEa,IAAE,EAAC,kBAAiBA,GAAE,iBAAA,CAAiB;AAAE,YAAGtB,GAAE,KAAK;AAAW,gBAAA,IAAI,GAAG,EAAC,MAAKA,GAAE,KAAK,MAAK,SAAQA,GAAE,KAAK,QAAQ,CAAA;AAAE,eAAOA,GAAE;AAAA,MAAI;AAAC,UAAGA,GAAE,KAAK;AAAW,cAAA,IAAI,GAAG,EAAC,MAAKA,GAAE,KAAK,MAAK,SAAQA,GAAE,KAAK,QAAQ,CAAA;AAAE,aAAOA,GAAE;AAAA,IAAI;AAAA;AAAA,EAAC,gBAAgBS,IAAE;AAAM,UAAA,EAAC,gBAAea,IAAE,sBAAqBtB,IAAE,iBAAgBF,OAAG,KAAK,OAAO;AAAK,SAAK,OAAO,YAAYwB,EAAC,GAAE,KAAK,OAAO,YAAYtB,EAAC,GAAE,KAAK,OAAO,SAASF,IAAEW,EAAC;AAAA,EAAC;AAAC;AAAC,MAAM,KAAG,CAAA;AAAG,SAAS,GAAGA,IAAE;AAAC,SAAO,GAAGA,EAAC;AAAC;AAAC,MAAM,GAAE;AAAA,EAAC,YAAYA,IAAE;AAAC,SAAK,SAAOA,IAAE,KAAK,SAAO,GAAGA,GAAE,GAAG,GAAE,KAAK,WAAS,GAAGA,GAAE,GAAG;AAAA,EAAC;AAAA,EAAC,gBAAgBA,IAAE;AAAM,UAAA,EAAC,gBAAea,IAAE,sBAAqBtB,IAAE,iBAAgBF,OAAG,KAAK,OAAO;AAAK,SAAK,OAAO,YAAYwB,EAAC,GAAE,KAAK,OAAO,YAAYtB,EAAC,GAAE,KAAK,OAAO,SAASF,IAAEW,EAAC;AAAA,EAAC;AAAA,EAAC,eAAeA,IAAEa,IAAE;AAAC,UAAK,EAAC,gBAAetB,IAAE,sBAAqBF,GAAC,IAAE,KAAK,OAAO;AAAU,SAAA,OAAO,SAASE,IAAES,EAAC,GAAE,KAAK,OAAO,SAASX,IAAEwB,EAAC;AAAA,EAAC;AAAA,EAAO,kBAAiB;AAAA;AAAM,YAAA,EAAC,MAAKb,GAAAA,IAAG,MAAM,KAAK,SAAS,KAAK,oBAAmB,CAAA,CAAE;AAAS,aAAA,KAAK,iBAAiBA,EAAC,GAAEA;AAAAA,IAAC;AAAA;AAAA,EAAC,iBAAiBA,IAAE;AAAC,UAAK,EAAC,aAAYa,GAAC,IAAE,KAAK,OAAO;AAAU,SAAA,OAAO,SAASA,IAAEb,EAAC;AAAA,EAAC;AAAC;AAAC,MAAM,GAAE;AAAA,EAAC,YAAYA,IAAE;AAAC,QAAG,CAACA;AAAE,YAAM,IAAI,GAAG,EAAC,MAAK,eAAc,SAAQ,wBAAuB;AAAE,SAAK,SAAOA,IAAE,KAAK,SAAO,GAAG,KAAK,MAAM,GAAE,KAAK,WAAS,GAAG,KAAK,MAAM,GAAE,KAAK;EAAa;AAAA,EAAC,eAAeA,IAAE;AAAC,QAAG,YAAU,OAAOA;AAAE,YAAM,IAAI,GAAG,EAAC,MAAK,eAAc,SAAQ,yBAAwB;AAAE,WAAO,KAAK,SAAS,KAAK,uBAAsB,EAAC,QAAOA,IAAE;AAAA,EAAC;AAAA,EAAC,iBAAiBA,IAAE;AAACA,OAAE,mBAAmB;AAAA,EAAC;AAAA,EAAC,eAAeA,IAAEa,IAAE;AAAQ,WAAA,KAAK,SAAS,KAAK,uBAAsB,EAAC,aAAYA,IAAE,aAAYb,GAAAA,CAAE;AAAA,EAAC;AAAA,EAAC,YAAYA,IAAE;AAAC,WAAO,KAAK,SAAS,KAAK,oBAAmB,EAAC,UAASA,IAAE;AAAA,EAAC;AAAA,EAAC,eAAeA,IAAE;AAAC,QAAG,YAAU,OAAOA;AAAE,YAAM,IAAI,GAAG,EAAC,MAAK,eAAc,SAAQ,6BAA4B;AAAE,WAAO,KAAK,SAAS,KAAK,uBAAsB,EAAC,UAASA,IAAE;AAAA,EAAC;AAAA,EAAO,mBAAkB;AAAA;AAAM,YAAA,EAAC,MAAKA,GAAAA,IAAG,MAAM,KAAK,SAAS,KAAK,yBAAwB,CAAA,CAAE;AAAE,UAAIa,KAAE;AAAQ,YAAA,EAAC,OAAMtB,GAAGS,IAAAA;AAAST,aAAAA,GAAE,QAAS,CAAAS,OAAG;AAACA,WAAE,YAAUA,GAAE,eAAaa,KAAE;AAAA,MAAK,CAAA,GAAE,EAAC,OAAMtB,IAAE,eAAcsB,GAAC;AAAA,IAAC;AAAA;AAAA,EAAC,cAAcb,IAAE;AAAC,WAAO,KAAK,SAAS,KAAK,sBAAqB,EAAC,KAAIA,IAAE;AAAA,EAAC;AAAA,EAAC,OAAOA,IAAE;AAAC,WAAO,KAAK,SAAS,KAAK,eAAc,EAAC,UAASA,IAAE;AAAA,EAAC;AAAA,EAAO,OAAOA,IAAE;AAAA;AAAC,YAAK,EAAC,UAASa,IAAE,QAAOtB,IAAE,WAAUF,IAAE,UAASqD,IAAE,SAAQvE,IAAE,MAAKkI,GAAGrG,IAAAA,IAAE,EAAC,MAAK2C,GAAG,IAAA,MAAM,KAAK,SAAS,KAAK,uBAAsB,EAAC,UAAS9B,IAAE,QAAOtB,IAAE,WAAUF,IAAE,UAASqD,IAAE,SAAQvE,IAAE,MAAKkI,IAAE;AAAE,WAAK,iBAAiB1D,EAAC;AAAA,IAAC;AAAA;AAAA,EAAO,UAAS;AAAA;AAAM,YAAA,EAAC,MAAK3C,GAAAA,IAAG,MAAM,KAAK,SAAS,KAAK,oBAAmB,CAAA,CAAE;AAAS,aAAA,KAAK,iBAAiBA,EAAC,GAAEA;AAAAA,IAAC;AAAA;AAAA,EAAC,cAAa;AAAM,UAAA,EAAC,aAAYA,GAAG,IAAA,KAAK,OAAO,MAAKa,KAAE,KAAK,OAAO,SAASb,EAAC;AAAE,KAAC,OAAM,aAAY,UAAS,YAAW,cAAa,WAAU,gBAAe,SAAQ,eAAc,gBAAe,YAAW,UAAS,WAAW,EAAE,QAAS,CAAAA,OAAG;AAAMA,WAAAA,EAAC,IAAEa,GAAEb,EAAC;AAAA,IAAG,CAAA,GAAE,KAAK,WAAS,EAAC,SAAQa,GAAE,SAAQ,UAASA,GAAE,UAAS,MAAKA,GAAE,KAAI;AAAA,EAAC;AAAA,EAAC,iBAAiBb,IAAE;AAAC,UAAK,EAAC,aAAYa,GAAC,IAAE,KAAK,OAAO;AAAK,SAAK,OAAO,SAASA,IAAEb,EAAC,GAAE,KAAK;EAAa;AAAC;AAAC,MAAM,GAAE;AAAA,EAAC,YAAYA,IAAE;AAAC,QAAG,CAACA;AAAE,YAAM,IAAI,GAAG,EAAC,MAAK,eAAc,SAAQ,wBAAuB;AAAO,SAAA,SAAO,GAAGA,EAAC;AAAO,UAAA,EAAC,iBAAgBa,IAAE,gBAAetB,IAAE,sBAAqBF,GAAG,IAAA,KAAK,OAAO,MAAKqD,KAAE,KAAK,OAAO,SAAS7B,EAAC,GAAE1C,KAAE,KAAK,OAAO,SAASoB,EAAC,GAAE8G,KAAE,KAAK,OAAO,SAAShH,EAAC;AAAE,SAAK,aAAW,EAAC,cAAaqD,IAAE,aAAYvE,IAAE,mBAAkBkI,GAAAA,GAAG,KAAK,OAAK,IAAI,GAAGrG,EAAC;AAAA,EAAC;AAAA,EAAC,IAAI,kBAAiB;AAAQ,WAAA,KAAK,cAAY,GAAG;AAAA,EAAS;AAAA,EAAC,IAAI,eAAc;AAAQ,WAAA,KAAK,cAAY,GAAG;AAAA,EAAM;AAAA,EAAC,IAAI,eAAc;AAAQ,WAAA,KAAK,cAAY,GAAG,UAAQ,KAAK,cAAY,GAAG,eAAa,KAAK,cAAY,GAAG;AAAA,EAAa;AAAA,EAAC,IAAI,YAAW;AAAC,WAAO,KAAK,OAAO,SAAS,KAAK,OAAO,KAAK,YAAY;AAAA,EAAC;AAAC;AAAC,MAAM,WAAW,GAAE;AAAA,EAAO,SAAQ;AAAA;AAAM,WAAA,OAAO,kBAAkB,OAAO;AAAE,YAAK,EAAC,kBAAiBA,IAAE,iBAAgBa,OAAG,KAAK,OAAO,MAAKtB,KAAE,KAAK,OAAO,SAASS,EAAC,KAAG,QAAOX,KAAE,KAAK,OAAO,SAASwB,EAAC,KAAG,QAAO6B,KAAE,MAAM,KAAK,SAAS,KAAK,0BAAyB,EAAC,gBAAenD,IAAE,eAAcF,IAAE;AAAKqD,UAAAA,GAAE,QAAMA,GAAE,eAAc;AAAC,aAAK,kBAAkBA,GAAE,IAAI,GAAE,KAAK,gBAAgBA,GAAE,aAAa,GAAE,MAAM,KAAK,SAAS,mBAAmB,GAAE,GAAG,EAAE,GAAE,GAAG,IAAG,EAAC,KAAI,KAAK,OAAO,KAAI,WAAU,GAAG,WAAU,aAAY,QAAQ,CAAA;AAAE,cAAM1C,KAAE,IAAI,GAAG,KAAK,OAAO,GAAG;AAAE,eAAO,MAAMA,GAAE,KAAK,QAAA,GAAUA;AAAAA,MAAC;AAAC,YAAM,IAAI,GAAG,EAAC,SAAQ,SAAS,CAAA;AAAA,IAAC;AAAA;AAAA,EAAO,8BAA8BA,IAAE;AAAA;AAAC,YAAK,EAAC,kBAAiBa,IAAE,iBAAgBtB,OAAG,KAAK,OAAO,MAAKF,KAAE,KAAK,OAAO,SAASwB,EAAC,GAAE6B,KAAE,KAAK,OAAO,SAASnD,EAAC,GAAEpB,KAAE,MAAM,KAAK,SAAS,KAAK,sCAAqC,EAAC,gBAAekB,IAAE,eAAcqD,IAAE,QAAO1C,IAAE;AAAE,UAAG7B,GAAE;AAAc,eAAO,KAAK,oBAAoB,GAAE,KAAK,gBAAgBA,GAAE,aAAa,GAAE,MAAM,KAAK,SAAS,sBAAqB,GAAG,IAAG,EAAC,KAAI,KAAK,OAAO,IAAI,CAAA,GAAE,GAAG,IAAG,EAAC,WAAU,GAAG,QAAO,aAAY,QAAQ,CAAA,GAAE,EAAC,YAAW,EAAC,cAAaA,GAAE;AAAgB,YAAM,IAAI,GAAG,EAAC,SAAQ,SAAS,CAAA;AAAA,IAAC;AAAA;AAAA,EAAC,kBAAkB6B,IAAE;AAAC,UAAK,EAAC,kBAAiBa,IAAE,cAAatB,GAAC,IAAE,KAAK,OAAO;AAAK,SAAK,OAAO,YAAYsB,EAAC,GAAE,KAAK,OAAO,SAASA,IAAEb,EAAC,GAAE,KAAK,OAAO,SAAST,IAAE,GAAG,SAAS;AAAA,EAAC;AAAA,EAAC,sBAAqB;AAAC,SAAK,OAAO,YAAY,KAAK,OAAO,KAAK,gBAAgB;AAAA,EAAC;AAAC;AAAC,MAAM,WAAW,GAAE;AAAA,EAAO,OAAOS,IAAE;AAAA;AAAC,UAAG,YAAU,OAAOA;AAAE,cAAM,IAAI,GAAG,EAAC,MAAK,eAAc,SAAQ,2BAA0B;AAAO,YAAA,EAAC,iBAAgBa,GAAC,IAAE,KAAK,OAAO,MAAKtB,KAAE,MAAM,KAAK,SAAS,KAAK,yBAAwB,EAAC,QAAOS,IAAE,eAAc,KAAK,OAAO,SAASa,EAAC,KAAG,GAAA,CAAG;AAAE,UAAGtB,GAAE;AAAc,eAAO,KAAK,gBAAgBA,GAAE,aAAa,GAAE,MAAM,KAAK,SAAS,mBAAmB,GAAE,GAAG,EAAE,GAAE,GAAG,IAAG,EAAC,KAAI,KAAK,OAAO,KAAI,WAAU,GAAG,QAAO,aAAY,KAAK,OAAO,YAAY,CAAA,GAAE,MAAM,KAAK,gBAAgB,GAAE,IAAI,GAAG,KAAK,OAAO,GAAG;AAAE,YAAM,IAAI,GAAG,EAAC,SAAQ,UAAU,CAAA;AAAA,IAAC;AAAA;AAAC;AAAC,MAAM,WAAW,GAAE;AAAA,EAAO,OAAOS,IAAEa,IAAE;AAAA;AAAC,UAAG,YAAU,OAAOb;AAAE,cAAM,IAAI,GAAG,EAAC,MAAK,eAAc,SAAQ,0BAAyB;AAAE,YAAK,EAAC,iBAAgBT,GAAAA,IAAG,KAAK,OAAO,MAAKF,KAAE,MAAM,KAAK,SAAS,KAAK,eAAc,EAAC,WAAU,SAAQ,OAAMW,IAAE,UAASa,IAAE,eAAc,KAAK,OAAO,SAAStB,EAAC,KAAG,GAAG,CAAA,GAAE,EAAC,eAAcmD,IAAE,cAAavE,IAAE,qBAAoBkI,GAAGhH,IAAAA;AAAKqD,UAAAA;AAAE,eAAO,KAAK,gBAAgBA,EAAC,GAAEvE,MAAGkI,KAAE,KAAK,eAAelI,IAAEkI,EAAC,IAAE,MAAM,KAAK,SAAS,mBAAA,GAAqB,MAAM,KAAK,mBAAkB,GAAG,EAAE,GAAE,GAAG,IAAG,EAAC,KAAI,KAAK,OAAO,KAAI,WAAU,GAAG,OAAM,aAAY,KAAK,OAAO,aAAY,GAAE,IAAI,GAAG,KAAK,OAAO,GAAG;AAAQhH,YAAAA,GAAE,OAAK,IAAI,GAAG,EAAC,MAAKA,GAAE,MAAK,SAAQ,WAAWA,GAAE,OAAO,IAAG,IAAE,IAAI,GAAG,EAAC,SAAQ,UAAS;AAAA,IAAC;AAAA;AAAA,EAAO,SAASW,IAAE;AAAA;AAAC,aAAO,KAAK,SAAS,KAAK,4BAA2B,EAAC,OAAMA,IAAE;AAAA,IAAC;AAAA;AAAA,EAAO,uBAAuBA,IAAEa,IAAE;AAAA;AAAQ,aAAA,KAAK,SAAS,KAAK,+BAA8B,EAAC,OAAMb,IAAE,aAAYa,GAAAA,CAAE;AAAA,IAAC;AAAA;AAAC;AAAC,MAAM,WAAW,GAAE;AAAA,EAAO,OAAOb,IAAEa,IAAE;AAAA;AAAC,UAAG,YAAU,OAAOb;AAAE,cAAM,IAAI,GAAG,EAAC,MAAK,eAAc,SAAQ,6BAA4B;AAAE,kBAAU,OAAOa,OAAIA,KAAE,IAAG,QAAQ,KAAK,mBAAmB;AAAG,YAAK,EAAC,iBAAgBtB,GAAG,IAAA,KAAK,OAAO,MAAKF,KAAE,MAAM,KAAK,SAAS,KAAK,eAAc,EAAC,WAAU,GAAG,UAAS,UAASW,IAAE,UAASa,IAAE,eAAc,KAAK,OAAO,SAAStB,EAAC,KAAG,GAAA,CAAG,GAAE,EAAC,eAAcmD,IAAE,qBAAoBvE,IAAE,cAAakI,GAAGhH,IAAAA;AAAKqD,UAAAA;AAAE,eAAO,KAAK,gBAAgBA,EAAC,GAAE2D,MAAGlI,KAAE,KAAK,eAAekI,IAAElI,EAAC,IAAE,MAAM,KAAK,SAAS,mBAAA,GAAqB,MAAM,KAAK,mBAAkB,GAAG,EAAE,GAAE,GAAG,IAAG,EAAC,KAAI,KAAK,OAAO,KAAI,WAAU,GAAG,UAAS,aAAY,KAAK,OAAO,aAAY,GAAE,IAAI,GAAG,KAAK,OAAO,GAAG;AAAQkB,YAAAA,GAAE,OAAK,IAAI,GAAG,EAAC,MAAKA,GAAE,MAAK,SAAQ,cAAcA,GAAE,OAAO,IAAG,IAAE,IAAI,GAAG,EAAC,SAAQ,aAAY;AAAA,IAAC;AAAA;AAAC;AAAC,MAAM,GAAE;AAAA,EAAC,YAAYW,IAAE;AAAC,SAAK,SAAOA,IAAE,KAAK,SAAO,GAAGA,GAAE,GAAG,GAAE,KAAK,WAAS,GAAGA,GAAE,GAAG,GAAE,KAAK,wBAAsB,KAAK,sBAAsB,KAAK,IAAI,GAAE,KAAK,sBAAoB,KAAK,oBAAoB,KAAK,IAAI,GAAE,GAAG,IAAG,KAAK,mBAAmB;AAAA,EAAC;AAAA,EAAC,IAAI,cAAa;AAAOA,UAAAA,KAAE,KAAK;AAAuBA,WAAAA,MAAGA,GAAE,QAAM;AAAA,EAAI;AAAA,EAAC,IAAI,YAAW;AAAC,WAAO,KAAK,OAAO,SAAS,KAAK,OAAO,KAAK,YAAY;AAAA,EAAC;AAAA,EAAC,wBAAuB;AAAQ,WAAA,IAAI,GAAG,KAAK,MAAM;AAAA,EAAC;AAAA,EAAC,qBAAoB;AAAQ,WAAA,IAAI,GAAG,KAAK,MAAM;AAAA,EAAC;AAAA,EAAC,oBAAmB;AAAQ,WAAA,IAAI,GAAG,KAAK,MAAM;AAAA,EAAC;AAAA,EAAC,uBAAsB;AAAQ,WAAA,IAAI,GAAG,KAAK,MAAM;AAAA,EAAC;AAAA,EAAO,oBAAmB;AAAA;AAAC,aAAO,IAAI,GAAG,KAAK,MAAM,EAAE,OAAO;AAAA,IAAC;AAAA;AAAA,EAAO,2BAA2BA,IAAEa,IAAE;AAAA;AAAC,aAAO,IAAI,GAAG,KAAK,MAAM,EAAE,OAAOb,IAAEa,EAAC;AAAA,IAAC;AAAA;AAAA,EAAC,8BAA8Bb,IAAEa,IAAE;AAAC,WAAO,IAAI,GAAG,KAAK,MAAM,EAAE,OAAOb,IAAEa,EAAC;AAAA,EAAC;AAAA,EAAO,8BAA8Bb,IAAE;AAAA;AAAM,WAAA,2BAAyB,KAAK,yBAAuB,IAAI,GAAG,KAAK,MAAM,IAAG,GAAG,IAAG,KAAK,qBAAqB;AAAE,aAAO,MAAM,KAAK,uBAAuB,8BAA8BA,EAAC;AAAA,IAAC;AAAA;AAAA,EAAO,UAAS;AAAA;AAAI,UAAA,KAAK,cAAY,GAAG;AAAU,cAAM,IAAI,GAAG,EAAC,SAAQ,cAAc,CAAA;AAAE,YAAK,EAAC,iBAAgBA,IAAE,gBAAea,IAAE,sBAAqBtB,GAAG,IAAA,KAAK,OAAO,MAAKF,KAAE,KAAK,OAAO,SAASW,EAAC;AAAE,UAAG,CAACX;AAAE;AAAaqD,YAAAA,KAAE,MAAM,KAAK,SAAS,KAAK,eAAc,EAAC,eAAcrD,GAAAA,CAAE;AAAE,aAAO,KAAK,OAAO,YAAYW,EAAC,GAAE,KAAK,OAAO,YAAYa,EAAC,GAAE,KAAK,OAAO,YAAYtB,EAAC,GAAE,GAAG,EAAE,GAAE,GAAG,IAAG,EAAC,KAAI,KAAK,OAAO,KAAI,WAAU,GAAG,MAAK,aAAY,KAAK,OAAO,YAAA,CAAY,GAAEmD;AAAAA,IAAC;AAAA;AAAA,EAAO,2BAA2B1C,IAAEa,IAAE;AAAA;AAAQ,aAAA,KAAK,SAAS,KAAK,mCAAkC,EAAC,OAAMb,IAAE,UAASa,GAAAA,CAAE;AAAA,IAAC;AAAA;AAAA,EAAO,uBAAuBb,IAAE;AAAA;AAAC,aAAO,KAAK,SAAS,KAAK,+BAA8B,EAAC,OAAMA,IAAE;AAAA,IAAC;AAAA;AAAA,EAAC,oBAAoBA,IAAE;AAAC,OAAG,IAAI,MAAI;AAAOa,YAAAA,KAAE,KAAK;AAAgBb,SAAE,KAAK,MAAKa,EAAC;AAAA,IAAA,CAAG;AAAQA,UAAAA,KAAE,KAAK;AAAgBb,OAAE,KAAK,MAAKa,EAAC;AAAA,EAAC;AAAA,EAAC,oBAAoBb,IAAE;AAAC,OAAG,IAAGA,GAAE,KAAK,IAAI,CAAC;AAAA,EAAC;AAAA,EAAC,uBAAuBA,IAAE;AAAC,OAAG,IAAGA,GAAE,KAAK,IAAI,CAAC;AAAA,EAAC;AAAA,EAAC,qBAAqBA,IAAE;AAAC,OAAG,IAAGA,GAAE,KAAK,IAAI,CAAC;AAAA,EAAC;AAAA,EAAC,mBAAmBA,IAAE;AAAC,OAAG,IAAI,MAAI;AAAOa,YAAAA,KAAE,KAAK;AAAgBb,SAAE,KAAK,MAAKa,EAAC;AAAA,IAAA,CAAG;AAAA,EAAC;AAAA,EAAO,iBAAgB;AAAA;AAAO,aAAA,EAAC,cAAa,MAAM,KAAK,SAAS,kBAAkB,aAAY,KAAI,KAAK,OAAO,IAAG;AAAA,IAAC;AAAA;AAAA,EAAC,gBAAe;AAAC,UAAK,EAAC,iBAAgBb,GAAC,IAAE,KAAK,OAAO;AAAY,WAAA,KAAK,OAAO,SAASA,EAAC,IAAE,IAAI,GAAG,KAAK,OAAO,GAAG,IAAE;AAAA,EAAI;AAAA,EAAO,qBAAqBA,IAAE;AAAA;AAAC,UAAG,YAAU,OAAOA;AAAE,cAAM,IAAI,GAAG,EAAC,MAAK,eAAc,SAAQ,6BAA4B;AAAE,YAAK,EAAC,MAAKa,GAAC,IAAE,MAAM,KAAK,SAAS,KAAK,6BAA4B,EAAC,UAASb,GAAE,CAAA;AAAE,aAAOa,MAAGA,GAAE;AAAA,IAAY;AAAA;AAAA,EAAC,gBAAe;AAAC,WAAO,QAAQ,QAAQ,KAAK,cAAe,CAAA;AAAA,EAAC;AAAA,EAAO,iBAAiBb,IAAE;AAAA;AAAC,aAAO,IAAI,GAAG,KAAK,MAAM,EAAE,OAAOA,EAAC;AAAA,IAAC;AAAA;AAAA,EAAC,yBAAyBA,IAAE;AAAC,SAAK,SAAS,gCAA8BA,GAAE,KAAK,IAAI;AAAA,EAAC;AAAA,EAAC,cAAa;AAAQ,WAAA,KAAK,SAAS,KAAK,oBAAmB,CAAA,CAAE,EAAE,KAAM,CAAAA,OAAGA,GAAE,OAAKA,KAAE,iCAAIA,GAAE,OAAN,EAAW,WAAUA,GAAE,QAAO;AAAA,EAAC;AAAA,EAAC,gBAAe;AAAC,UAAK,EAAC,iBAAgBA,IAAE,gBAAea,GAAC,IAAE,KAAK,OAAO,MAAKtB,KAAE,KAAK,OAAO,SAASS,EAAC;AAAQ,WAAA,EAAC,2BAA0B,KAAK,OAAO,SAASa,EAAC,IAAE,SAAOtB;EAAE;AAAA,EAAC,sBAAsBS,IAAE;AAAC,UAAK,EAAC,KAAIa,OAAGb,GAAE;AAAKa,WAAI,KAAK,OAAO,OAAK,KAAK,OAAO,kBAAkB,KAAK,OAAO,WAAW;AAAA,EAAC;AAAA,EAAC,oBAAoBb,IAAE;AAAM,UAAA,EAAC,WAAUa,IAAE,aAAYtB,IAAE,KAAIF,GAAAA,IAAGW,GAAE;AAAKX,WAAI,KAAK,OAAO,QAAM,KAAK,OAAO,kBAAkBE,EAAC,GAAE,KAAK,OAAO,SAAS,KAAK,OAAO,KAAK,cAAasB,EAAC;AAAA,EAAE;AAAC;AAAC,MAAM,KAAG,SAASb,IAAEa,IAAE;AAACA,OAAEA,MAAG;AAAK,QAAMtB,KAAE,GAAG,KAAK,OAAO,GAAG,GAAE,EAAC,WAAUF,IAAE,UAASqD,IAAE,kBAAiBvE,IAAE,UAASkI,KAAE,QAASrG,IAAAA;AAAST,SAAAA,GAAE,KAAK,6BAA4B,EAAC,MAAKF,IAAE,EAAE,KAAM,CAAAW,OAAG;AAAC,UAAK,EAAC,MAAK,EAAC,KAAI2C,IAAE,eAAcxD,IAAE,OAAM0G,IAAE,QAAOd,IAAE,WAAU5B,GAAC,GAAE,WAAUgP,GAAGnS,IAAAA,IAAEqE,KAAE,EAAC,KAAIhF,IAAE,WAAUF,IAAE,qBAAoBgE,IAAE,uBAAsB,OAAM,wBAAuB0C,GAAC;AAAEtG,OAAE,OAAO,EAAC,KAAIoD,IAAE,MAAK0B,IAAE,MAAK3B,IAAE,MAAKrD,IAAE,UAASgH,IAAE,kBAAiBlI,GAAAA,CAAE,EAAE,KAAM,CAAA6B,OAAG;AAAOA,cAAAA,GAAE,aAAWa,GAAE,MAAK,EAAC,QAAOkE,IAAE,WAAUoN,GAAAA,CAAE,IAAEtR,GAAE,IAAI,GAAG,EAAC,MAAK,wBAAuB,SAAQ,yBAAyBb,GAAE,IAAI,GAAG,CAAA,CAAC;AAAA,IAAA,CAAG,EAAE,MAAO,CAAAA,OAAG;AAACa,SAAEb,EAAC;AAAA,IAAA,CAAG;AAAA,EAAA,CAAG,EAAE,MAAO,CAAAA,OAAG;AAACa,OAAEb,EAAC;AAAA,EAAA,CAAG,GAAEa,GAAE;AAAO,GAAE,KAAG,SAASb,IAAEa,IAAE;AAACA,OAAEA,MAAG;AAAWtB,QAAAA,KAAE,GAAG,KAAK,OAAO,GAAG,GAAE,EAAC,WAAUF,GAAGW,IAAAA;AAAST,SAAAA,GAAE,KAAK,6BAA4B,EAAC,MAAKF,IAAE,EAAE,KAAM,CAAAW,OAAG;AAACa,OAAE,MAAKb,EAAC;AAAA,EAAA,CAAG,EAAE,MAAO,CAAAA,OAAG;AAACa,OAAEb,EAAC;AAAA,EAAA,CAAG,GAAEa,GAAE;AAAO,GAAE,KAAG,SAAS,EAAC,UAASb,GAAAA,GAAGa,IAAE;AAAIA,MAAAA,KAAEA,MAAG,GAAG,GAAE,CAACb,MAAG,CAAC,MAAM,QAAQA,EAAC;AAAE,WAAM,EAAC,MAAK,iBAAgB,SAAQ,mBAAkB;AAAE,WAAQa,MAAKb;AAAK,QAAA,CAACa,MAAG,YAAU,OAAOA;AAAE,aAAM,EAAC,MAAK,iBAAgB,SAAQ,uBAAsB;AAAQtB,QAAAA,KAAE,EAAC,aAAYS;AAAU,SAAA,GAAG,KAAK,OAAO,GAAG,EAAE,KAAK,2BAA0BT,EAAC,EAAE,KAAM,CAAAS,OAAG;AAACA,OAAE,OAAKa,GAAE,MAAKb,EAAC,IAAEa,GAAE,MAAK,EAAC,UAASb,GAAE,KAAK,aAAY,WAAUA,GAAE,WAAU;AAAA,EAAA,CAAG,EAAE,MAAO,CAAAA,OAAG;AAACa,OAAEb,EAAC;AAAA,EAAA,CAAG,GAAEa,GAAE;AAAO,GAAE,KAAG,SAAS,EAAC,UAASb,GAAAA,GAAGa,IAAE;AAACA,OAAEA,MAAG,GAAA,GAAKb,MAAG,MAAM,QAAQA,EAAC,KAAGa,GAAE,MAAK,EAAC,MAAK,iBAAgB,SAAQ,oBAAmB;AAAE,MAAItB,KAAE,CAAA;AAAG,WAAQF,MAAKW;AAAY,gBAAA,OAAOX,MAAGA,GAAE,eAAe,QAAQ,KAAGA,GAAE,eAAe,QAAQ,KAAGwB,GAAE,MAAK,EAAC,MAAK,iBAAgB,SAAQ,oCAAmC,GAAEtB,GAAE,KAAK,EAAC,QAAOF,GAAE,QAAO,SAAQA,GAAE,OAAO,CAAA,KAAG,YAAU,OAAOA,KAAEE,GAAE,KAAK,EAAC,QAAOF,GAAE,CAAA,IAAEwB,GAAE,MAAK,EAAC,MAAK,iBAAgB,SAAQ,oBAAA,CAAoB;AAAQxB,QAAAA,KAAE,EAAC,WAAUE;AAAU,SAAA,GAAG,KAAK,OAAO,GAAG,EAAE,KAAK,+BAA8BF,EAAC,EAAE,KAAM,CAAAW,OAAG;AAACA,OAAE,OAAKa,GAAE,MAAKb,EAAC,IAAEa,GAAE,MAAK,EAAC,UAASb,GAAE,KAAK,eAAc,WAAUA,GAAE,WAAU;AAAA,EAAA,CAAG,EAAE,MAAO,CAAAA,OAAG;AAACa,OAAEb,EAAC;AAAA,EAAA,CAAG,GAAEa,GAAE;AAAO,GAAE,KAAG,SAAe,IAAWA,IAAE;AAAA,6CAAb,EAAC,QAAOb,GAAAA,GAAGa,IAAE;AAAC,UAAMtB,MAAG,MAAM,GAAG,KAAK,MAAK,EAAC,UAAS,CAAC,EAAC,QAAOS,IAAE,QAAO,IAAI,CAAA,EAAE,CAAA,GAAG,SAAS,CAAC;AAAE,QAAG,cAAYT,GAAE;AAAK,aAAOsB,KAAEA,GAAEtB,EAAC,IAAE,IAAI,QAAS,CAAAS,OAAG;AAACA,WAAET,EAAC;AAAA,MAAA,CAAG;AAAE,UAAMF,KAAE,GAAG,KAAK,OAAO,GAAG;AAAE,QAAIqD,KAAEnD,GAAE;AAAa,QAAGmD,KAAE,UAAUA,EAAC,GAAE,CAAC7B;AAAE,aAAOxB,GAAE,SAAS,EAAC,KAAIqD,GAAE,CAAA;AAAE7B,OAAE,MAAMxB,GAAE,SAAS,EAAC,KAAIqD,GAAE,CAAA,CAAC;AAAA,EAAC;AAAA,GAAE,KAAG,SAAS,EAAC,MAAK1C,IAAE,MAAKa,IAAE,OAAMtB,IAAE,OAAMF,IAAE,QAAOqD,GAAAA,GAAGvE,IAAE;AAAOkI,QAAAA,KAAElI,MAAG;AAASwE,MAAAA;AAAK,MAAA;AAACA,SAAE9B,KAAE,KAAK,UAAUA,EAAC,IAAE;AAAA,WAASb,IAAE;AAAQ,WAAA,QAAQ,OAAOA,EAAC;AAAA,EAAC;AAAC,MAAG,CAACA;AAAS,WAAA,QAAQ,OAAO,IAAI,GAAG,EAAC,MAAK,eAAc,SAAQ,UAAU,CAAA,CAAC;AAAQb,QAAAA,KAAE,EAAC,SAAQI,IAAE,OAAMF,IAAE,QAAOqD,IAAE,eAAc1C,IAAE,cAAa2C,GAAC;AAAS,SAAA,GAAG,KAAK,OAAO,GAAG,EAAE,KAAK,4BAA2BxD,EAAC,EAAE,KAAM,CAAAa,OAAG;AAAC,QAAGA,GAAE;AAAKqG,SAAE,MAAKrG,EAAC;AAAA,SAAM;AAAKa,UAAAA,KAAEb,GAAE,KAAK;AAAiBX,UAAAA;AAAEgH,WAAE,MAAK,EAAC,QAAOxF,IAAE,WAAUb,GAAE,WAAU;AAAA;AAAU,YAAA;AAACa,eAAE,KAAK,MAAMb,GAAE,KAAK,aAAa,GAAEqG,GAAE,MAAK,EAAC,QAAOxF,IAAE,WAAUb,GAAE,WAAU;AAAA,iBAAQA,IAAE;AAACqG,aAAE,IAAI,GAAG,EAAC,SAAQ,6BAAA,CAA6B,CAAC;AAAA,QAAC;AAAA,IAAC;AAAC,WAAOA,GAAE;AAAA,EAAA,CAAS,EAAE,MAAO,CAAArG,OAAG;AAACqG,OAAErG,EAAC;AAAA,EAAA,CAAG,GAAEqG,GAAE;AAAO,GAAE,KAAG,EAAC,SAAQ,MAAK,aAAY,UAAS,GAAE,KAAG;AAAG,MAAM,GAAE;AAAA,EAAC,YAAYrG,IAAE;AAAC,SAAK,SAAOA,MAAG,KAAK,QAAO,KAAK,UAAQ;AAAA,EAAM;AAAA,EAAC,KAAKA,IAAE;AAAC,YAAO,GAAG,YAAU,KAAK,gBAAc,IAAI,GAAG,QAAQ,SAAS,EAAC,SAAQA,GAAE,WAAS,KAAI,YAAW,OAAOA,GAAE,WAAS,OAAK,GAAG,YAAY,CAAA,IAAG,KAAK,SAAO,kCAAI,KAAMA,KAAG,MAAG;AAAA,MAAC,KAAK,KAAK,OAAO,UAAQ;AAAI,gBAAQ,KAAK,+BAA+B,GAAE,KAAK,OAAO,UAAQ;AAAI;AAAA,MAAM,KAAK,KAAK,OAAO,UAAQ;AAAI,gBAAQ,KAAK,gCAAgC,GAAE,KAAK,OAAO,UAAQ;AAAA,IAAG;AAAQ,WAAA,IAAI,GAAG,KAAK,MAAM;AAAA,EAAC;AAAA,EAAC,KAAK,EAAC,aAAYA,GAAC,IAAE,CAAA,GAAG;AAAC,QAAG,KAAK;AAAQ,aAAO,KAAK;AAAQ,UAAMa,KAAEb,MAAG,GAAG,QAAQ,kBAAgB,GAAG;AAAgBT,QAAAA;AAASsB,WAAAA,OAAI,KAAK,OAAO,gBAAc,KAAK,OAAO,cAAYA,KAAG,SAASb,IAAE;AAAM,YAAA,EAAC,KAAIa,GAAGb,IAAAA;AAAE,SAAGa,EAAC,IAAE,IAAI,GAAGb,EAAC,GAAE,GAAGa,EAAC,IAAE,IAAI,GAAG,iCAAIb,KAAJ,EAAM,aAAY,QAAQ,EAAA;AAAA,IAAA,EAAG,KAAK,MAAM,GAAET,KAAE,KAAK,QAAO,GAAGA,GAAE,GAAG,IAAE,IAAI,GAAGA,EAAC,GAAE,KAAK,UAAQ,IAAI,GAAG,KAAK,MAAM,GAAE,KAAK;AAAA,EAAO;AAAA,EAAC,GAAGS,IAAEa,IAAE;AAAC,WAAO,GAAG,MAAM,MAAK,CAACb,IAAEa,EAAC,CAAC;AAAA,EAAC;AAAA,EAAC,IAAIb,IAAEa,IAAE;AAAC,WAAO,GAAG,MAAM,MAAK,CAACb,IAAEa,EAAC,CAAC;AAAA,EAAC;AAAA,EAAC,aAAab,IAAEa,IAAE;AAAC,WAAO,GAAG,MAAM,MAAK,CAACb,IAAEa,EAAC,CAAC;AAAA,EAAC;AAAA,EAAC,WAAWb,IAAEa,IAAE;AAAC,WAAO,GAAG,MAAM,MAAK,CAACb,IAAEa,EAAC,CAAC;AAAA,EAAC;AAAA,EAAC,eAAeb,IAAEa,IAAE;AAAC,WAAO,GAAG,MAAM,MAAK,CAACb,IAAEa,EAAC,CAAC;AAAA,EAAC;AAAA,EAAC,aAAab,IAAEa,IAAE;AAAC,WAAO,GAAG,MAAM,MAAK,CAACb,IAAEa,EAAC,CAAC;AAAA,EAAC;AAAA,EAAC,WAAWb,IAAEa,IAAE;AAAC,WAAO,GAAG,MAAM,MAAK,CAACb,IAAEa,EAAC,CAAC;AAAA,EAAC;AAAA,EAAC,kBAAkBb,IAAEa,IAAE;AAAC,WAAO,GAAG,MAAM,MAAK,CAACb,IAAEa,EAAC,CAAC;AAAA,EAAC;AAAA,EAAC,kBAAkBb,IAAE;AAAIA,OAAAA,GAAE,IAAI,IAAEA;AAAAA,EAAC;AAAA,EAAO,gBAAgBA,IAAEa,IAAE;AAAA;AAAOtB,YAAAA,KAAE,GAAGS,EAAC;AAAE,UAAG,CAACT;AAAE,cAAM,IAAI,GAAG,EAAC,SAAQ,KAAKS,EAAC,UAAS;AAAE,aAAO,MAAMT,GAAE,OAAOsB,IAAE,IAAI;AAAA,IAAC;AAAA;AAAA,EAAC,YAAYb,IAAE;AAAM,UAAA,EAAC,SAAQa,IAAE,SAAQtB,OAAG,GAAGS,EAAC,KAAG;AAAGa,WAAI,GAAG,UAAQA,KAAGtB,OAAI,GAAG,UAAQA;AAAAA,EAAE;AAAC;AAAC,IAAI,KAAG,IAAI;AAAG,SAAS,GAAGS,IAAEa,IAAEtB,IAAE;AAAUA,aAAAA,OAAIA,KAAE,CAAC;AAAG,MAAIF,KAAE,KAAK,KAAKwB,EAAC,GAAE6B,KAAE;AAAG,WAAQvE,MAAKoB;AAAE,WAAKmD,KAAE,CAACrD,OAAIwB,MAAG,OAAK6B,MAAG,KAAIA,MAAGvE,KAAE,MAAI,mBAAmBoB,GAAEpB,EAAC,CAAC;AAAE,SAAM,iBAAiB,KAAK0C,MAAG6B,EAAC,IAAE7B,KAAE,KAAGb,KAAEa;AAAC;AAAC,MAAM,GAAE;AAAA,EAAC,KAAKb,IAAE;AAAC,UAAK,EAAC,KAAIa,IAAE,MAAKtB,IAAE,SAAQF,GAAGW,IAAAA;AAAE,WAAO,IAAI,QAAS,CAACA,IAAE0C,OAAI;AAAC,SAAG,QAAQ,EAAC,KAAI,GAAG,UAAS7B,EAAC,GAAE,MAAKtB,IAAE,QAAO,QAAO,QAAOF,IAAE,QAAQwB,IAAE;AAACb,WAAEa,EAAC;AAAA,MAAA,GAAG,KAAKb,IAAE;AAAC0C,WAAE1C,EAAC;AAAA,SAAG;AAAA,IAAA,CAAG;AAAA,EAAC;AAAA,EAAC,OAAOA,IAAE;AAAC,WAAO,IAAI,QAAS,CAACa,IAAEtB,OAAI;AAAC,YAAK,EAAC,KAAIF,IAAE,MAAKqD,IAAE,MAAKvE,IAAE,SAAQkI,IAAE,UAAS1D,OAAG3C,IAAEb,KAAE,GAAG,WAAW,EAAC,KAAI,GAAG,UAASE,EAAC,GAAE,MAAK,QAAO,UAAS,OAAO,OAAO,IAAGlB,EAAC,GAAE,UAASuE,IAAE,UAASC,IAAE,QAAO0D,IAAE,QAAQrG,IAAE;AAAOT,cAAAA,KAAE,EAAC,YAAWS,GAAE,YAAW,MAAKA,GAAE,QAAM,CAAA;AAAI,gBAAMA,GAAE,cAAY7B,GAAE,0BAAwBoB,GAAE,aAAW,SAASpB,GAAE,uBAAsB,EAAE,IAAG0C,GAAEtB,EAAC;AAAA,MAAA,GAAG,KAAKS,IAAE;AAACT,WAAE,IAAI,MAAMS,GAAE,UAAQ,iBAAiB,CAAC;AAAA,SAAG;AAAc,oBAAA,OAAOA,GAAE,oBAAkBb,MAAG,cAAY,OAAOA,GAAE,oBAAkBA,GAAE,iBAAkB,CAAA0B,OAAG;AAACb,WAAE,iBAAiB,EAAC,QAAOa,GAAE,gBAAe,OAAMA,GAAE,yBAAA,CAAyB;AAAA,MAAA,CAAG;AAAA,IAAA,CAAG;AAAA,EAAC;AAAC;AAAC,MAAM,KAAG,EAAC,QAAQb,IAAEa,IAAE;AAAI,KAAA,eAAeb,IAAEa,EAAC;AAAC,GAAE,SAAQ,CAAAb,OAAG,GAAG,eAAeA,EAAC,GAAE,WAAWA,IAAE;AAAC,KAAG,kBAAkBA,EAAC;AAAC,GAAE,QAAO;AAAC,KAAG,iBAAiB;AAAC;AAAG,IAAI,KAAG,EAAC,YAAW,WAAU;AAAO,SAAA,EAAC,MAAK,CAAC,GAAE,UAAS,IAAG,cAAa,IAAG,gBAAe;AAAQ,GAAE,SAAQ,WAAU;AAAO,SAAA;AAAE,GAAE,SAAQ;AAAW,GAAG,YAAY,EAAE;AAAE,MAAM,KAAG,IAAG,KAAG,GAAG;AAAK,GAAG,OAAK,SAASA,IAAE;AAACA,KAAE,MAAIA,GAAE;AAAQ,QAAMa,KAAE,GAAG,KAAK,MAAKb,EAAC;AAAEa,KAAE,OAAO,WAAS,WAAUA,GAAE,OAAO,UAAQb,GAAE;AAAQ,QAAMT,KAAEsB,GAAE;AAAYA,SAAAA,GAAE,OAAK,SAASb,IAAE;AAAC,UAAMa,KAAEtB,GAAE,KAAK,MAAKS,EAAC;AAAQ,WAAA,CAAC,iCAAgC,qBAAoB,WAAU,kBAAiB,iBAAgB,oBAAmB,aAAa,EAAE,QAAS,CAAAA,OAAG;AAAKT,UAAAA;AAAEsB,SAAEb,EAAC,KAAGT,KAAEsB,GAAEb,EAAC,GAAE,SAASA,IAAE;AAACA,aAAEA,MAAG;AAAQ,cAAA,EAAC,SAAQa,IAAE,MAAKxB,IAAE,UAASqD,GAAG,IAAA,GAAG1C,EAAC;AAAK,YAAA,EAAEa,MAAGxB,MAAGqD;AAAUnD,iBAAAA,GAAE,KAAK,MAAKS,EAAC;AAAET,WAAE,KAAK,MAAKS,EAAC,EAAE,KAAM,CAAAA,OAAG;AAACa,gBAAGA,GAAEb,EAAC,GAAE0C,MAAGA,GAAE1C,EAAC;AAAA,QAAC,GAAI,CAAAA,OAAG;AAACX,gBAAGA,GAAEW,EAAC,GAAE0C,MAAGA,GAAE1C,EAAC;AAAA,QAAA,CAAG;AAAA,MAAA,GAAI,KAAKa,EAAC;AAAA,IAAG,CAAA,GAAEA;AAAAA,EAAGA,GAAAA,GAAE,aAAWA,GAAE,MAAKA;AAAC;AAAE,IAAI,KAAG;AAAG,IAAI,KAAG,cAAc,GAAE;AAAA,EAAC,iBAAgB;AAAC,WAAO,IAAI,QAAS,CAACb,IAAEa,OAAI;AAAC,YAAMtB,KAAE;AAAyB,WAAK,eAAeA,EAAC,GAAES,GAAET,EAAC;AAAA,IAAA,CAAG;AAAA,EAAC;AAAA,EAAC,aAAaS,IAAEa,IAAE;AAAOtB,UAAAA,KAAE,OAAO,OAAO,CAAA,GAAGS,IAAE,EAAC,SAAQ,KAAK,OAAO,SAAQ,WAAU,KAAK,MAAM,CAAA,GAAEX,KAAE,EAAC,gBAAe;AAAoB,eAASwB,OAAItB,GAAE,QAAM,KAAK,aAAYF,GAAE,kBAAkB,IAAE,KAAK,cAAaA,GAAE,mBAAmB,IAAE,GAAG,KAAKE,IAAE,KAAK,OAAO,YAAY;AAAE,UAAMmD,KAAE;AAAKrD,OAAE,eAAe,IAAE,mBAAmB,KAAK,UAAUqD,EAAC,CAAC;AAAE,UAAK,EAAC,OAAMvE,GAAC,IAAE,GAAG;AAASkB,WAAAA,GAAE,gBAAgB,IAAElB,IAAE,EAAC,KAAI,KAAK,OAAO,YAAW,QAAO,QAAO,MAAKoB,IAAE,UAAS,QAAO,QAAO,KAAK,MAAM,KAAK,UAAUF,EAAC,CAAC;EAAE;AAAA,EAAC,gBAAgB,EAAC,KAAIW,IAAE,UAASa,IAAE,MAAKtB,IAAE,UAASF,IAAE,UAASqD,IAAE,kBAAiBvE,MAAG;AAAC,WAAO,IAAI,QAAS,CAACkI,IAAE1D,OAAI;AAAC,YAAMxD,KAAE,KAAK,QAAQ,WAAW,EAAC,KAAIa,IAAE,UAASa,IAAE,MAAKtB,IAAE,UAASF,IAAE,UAASqD,IAAE,QAAQ1C,IAAE;AAACA,cAAGA,GAAE,aAAW,MAAIqG,GAAErG,EAAC,IAAE2C,GAAE,IAAI,GAAG,EAAC,MAAK,iBAAgB,SAAQ,SAAS,CAAA,CAAC;AAAA,MAAA,GAAG,KAAK3C,IAAE;AAAC2C,WAAE,IAAI,GAAG,EAAC,MAAK3C,GAAE,QAAM,iBAAgB,SAAQA,GAAE,WAASA,GAAE,UAAQ,SAAA,CAAS,CAAC;AAAA,SAAG;AAAc,oBAAA,OAAO7B,MAAGgB,MAAG,cAAY,OAAOA,GAAE,oBAAkBA,GAAE,iBAAkB,CAAAa,OAAG;AAAC7B,WAAE,EAAC,QAAO6B,GAAE,gBAAe,OAAMA,GAAE,0BAAyB;AAAA,MAAA,CAAG;AAAA,IAAA,CAAG;AAAA,EAAC;AAAA,EAAC,WAAW,EAAC,UAASA,IAAE,WAAUa,IAAE,UAAStB,KAAE,SAAQ,kBAAiBF,GAAAA,GAAG;AAAC,QAAG,CAACwB;AAAE,YAAM,IAAI,GAAG,EAAC,MAAK,sBAAqB,SAAQ,iBAAgB;AAAM6B,QAAAA;AAAS,WAAA,KAAK,4BAA4B,EAAC,WAAU7B,IAAE,EAAE,KAAM,CAAAA,OAAG;AAAM,YAAA,EAAC,KAAI1C,IAAE,UAASkI,IAAE,MAAK1D,GAAAA,IAAG9B,GAAE;AAAO6B,WAAE7B,GAAE,OAAO;AAAc1B,YAAAA,KAAE,EAAC,KAAIhB,IAAE,UAASkI,IAAE,MAAK1D,IAAE,UAAS3C,IAAE,UAAST,GAAC;AAAS,aAAA,KAAK,gBAAgB,OAAO,OAAO,CAAA,GAAGJ,IAAE,EAAC,kBAAiBE,GAAE,CAAA,CAAC;AAAA,IAAA,CAAG,EAAE,KAAM,MAAI,KAAK,gBAAgB,EAAC,WAAUwB,GAAAA,CAAE,CAAE,EAAE,KAAM,CAAAA,OAAG,IAAI,QAAS,CAACtB,IAAEF,OAAI;AAACwB,SAAE,UAAQtB,GAAE,EAAC,SAAQ,MAAG,UAASS,IAAE,QAAO0C,GAAE,CAAA,IAAErD,GAAE,IAAI,GAAG,EAAC,MAAK,iBAAgB,SAAQ,SAAS,CAAA,CAAC;AAAA,IAAG,CAAA,CAAE;AAAA,EAAC;AAAA,EAAC,WAAW,EAAC,UAASW,MAAG;AAAOa,UAAAA,KAAE,EAAC,QAAO,mCAAkC,QAAO,KAAK,UAAU,EAAC,UAASb,GAAC,CAAC,EAAC;AAAS,WAAA,KAAK,QAAQ,KAAK,aAAaa,EAAC,CAAC,EAAE,KAAM,CAAAb,OAAG;AAAC,UAAGA,GAAE;AAAQ,eAAOA,GAAE;AAAO,YAAM,IAAI,GAAG,EAAC,MAAK,sBAAqB,SAAQ,UAAS;AAAA,IAAA,CAAG;AAAA,EAAC;AAAA,EAAC,eAAe,EAAC,UAASA,IAAE,QAAOa,GAAC,IAAE,IAAG;AAAC,QAAG,CAAC,MAAM,QAAQb,EAAC,KAAG,MAAIA,GAAE;AAAO,YAAM,IAAI,GAAG,EAAC,MAAK,iBAAgB,SAAQ,wBAAuB;AAAE,UAAMT,KAAE,EAAC,QAAO,2CAA0C,QAAO,KAAK,UAAU,EAAC,UAASS,IAAE,QAAOa,GAAAA,CAAE,EAAC;AAAS,WAAA,KAAK,QAAQ,KAAK,aAAatB,EAAC,CAAC,EAAE,KAAM,CAAAS,OAAG;AAAC,UAAGA,GAAE;AAAQ,eAAM,EAAC,UAASA,GAAE,OAAO,SAAS,IAAK,CAAAA,QAAI,EAAC,QAAOA,GAAE,QAAO,aAAYA,GAAE,YAAA,EAAc;AAAG,YAAM,IAAI,GAAG,EAAC,MAAK,4BAA2B,SAAQ,cAAa;AAAA,IAAA,CAAG;AAAA,EAAC;AAAC;AAAE,IAAI,KAAG,EAAC,KAAKA,IAAE;AAAOa,QAAAA,KAAE,IAAI,GAAGb,EAAC,GAAET,KAAE,EAAC,mBAAkB,WAAU;AAAC,WAAOsB,GAAE;EAAW,GAAE,eAAc,WAAU;AAAQ,WAAA,QAAQ,QAAQ,KAAE;AAAA,EAAA;AAAWA,SAAAA,GAAE,OAAK,WAAU;AAAQtB,WAAAA;AAAAA,EAAGsB,GAAAA,GAAE,aAAWA,GAAE,MAAKA;AAAC,EAAA,GAAG,KAAG,EAAG,SAASb,IAAEa,IAAE;AAACb,KAAE,UAAQ,EAAE,IAAI;AAAG,CAAE;AAAE,SAAS,GAAGA,KAAE,IAAGa,KAAE,CAAA,GAAG;AAAM,QAAA,EAAC,MAAKtB,IAAE,cAAaF,IAAE,QAAOqD,IAAE,SAAQvE,IAAE,gBAAekI,KAAE,CAAC,GAAE,QAAO1D,OAAG9B,IAAE1B,KAAE,KAAK,IAAA,GAAM0G,KAAE,uCAAuC,QAAQ,SAAS,SAAS7F,IAAE;AAAC,QAAIa,KAAE,KAAG,KAAK,OAAA,IAAS;AAAE,YAAO,QAAMb,KAAEa,KAAE,IAAEA,KAAE,GAAG,SAAS,EAAE;AAAA,EAAG,CAAA,GAAEkE,KAAE,OAAO,OAAO,CAAA,GAAG5G,IAAE,EAAC,iBAAgBwE,GAAE,YAAW,iBAAgBA,GAAE,SAAQ,eAAcA,GAAE,SAAQ,sBAAqBxD,IAAE,wBAAuBE,IAAE,sBAAqBF,IAAE,mBAAkB,UAAS,gBAAe0G,IAAE,mBAAkBA,IAAE,cAAaA,IAAE,GAAE1C,KAAE,CAAC,iBAAgB,iBAAgB,eAAc,sBAAqB,wBAAuB,oBAAoB,EAAE,OAAOkD,EAAC,GAAE,CAAC8L,KAAE,IAAG9N,KAAE,EAAE,IAAErE,GAAE,MAAM,GAAG,KAAG,CAAA,GAAGuF,KAAE,SAASvF,IAAE;AAAOa,UAAAA,KAAEb,GAAE,cAAc,KAAK,GAAG,GAAET,KAAES,GAAE,cAAc,IAAK,CAAAa,OAAG,GAAGA,GAAE,YAAY,CAAC,IAAIb,GAAE,QAAQa,EAAC,CAAC;AAAA,CAAK,EAAE,KAAK,EAAE,GAAExB,KAAE,GAAGW,GAAE,IAAI,EAAE,SAAS,EAAE,GAAE0C,KAAE,GAAG1C,GAAE,OAAO,aAAa;AAAA,EAAKA,GAAE,IAAI;AAAA,EAAKA,GAAE,KAAK;AAAA,EAAKT,EAAC;AAAA,EAAKsB,EAAC;AAAA,EAAKxB,EAAC;AAAA,GAAKlB,KAAE,GAAGuE,EAAC,EAAE,SAAS,EAAE,GAAE2D,KAAE;AAAA,EAAgBrG,GAAE,SAAS;AAAA,EAAK7B,EAAC;AAAA,GAAKwE,KAAE,GAAG0D,IAAErG,GAAE,SAAS,EAAE,SAAS,EAAE;AAAE,WAAM,0BAA0BA,GAAE,QAAQ,mBAAmBa,EAAC,eAAe8B,EAAC;AAAA,EAAE,EAAE,EAAC,MAAKwP,IAAE,OAAM9N,IAAE,QAAO3B,IAAE,SAAQqC,IAAE,WAAU5F,IAAE,MAAK,KAAK,UAAUI,EAAC,GAAE,UAASoD,GAAE,WAAU,WAAUA,GAAE,WAAU,eAAcQ,GAAE,KAAK,EAAE,CAAA;AAAE,SAAM,EAAC,KAAI,GAAGR,GAAE,QAAQ,GAAG3C,EAAC,IAAG,SAAQ,OAAO,OAAO,CAAA,GAAG+E,IAAE,EAAC,eAAcQ,GAAE,CAAA;AAAE;AAAC,SAAS,GAAG,EAAC,KAAIvF,IAAE,MAAKa,IAAE,QAAOtB,KAAE,QAAO,SAAQF,KAAE,MAAI;AAAC,SAAO,IAAI,QAAS,CAACqD,IAAEvE,OAAI;AAAC,OAAG,QAAQ,EAAC,KAAI6B,IAAE,QAAOT,IAAE,MAAKsB,IAAE,QAAOxB,IAAE,UAAS,QAAO,UAAS,CAACW,KAAE,OAAK;AAAOa,YAAAA,KAAExB,GAAE,YAAY,KAAG;AAAG,UAAG,CAACW,GAAE,cAAYA,GAAE,cAAY,KAAI;AAAM,cAAA,EAAC,SAAQT,IAAE,QAAOF,IAAE,UAASqD,OAAG1C,GAAE,QAAM;AAAG,eAAO7B,GAAE,IAAI,GAAG,EAAC,MAAK,WAAU,SAAQoB,MAAGF,MAAG,gBAAe,WAAUqD,MAAG7B,GAAAA,CAAE,CAAC;AAAA,MAAC;AAAC6B,SAAE,EAAC,QAAO1C,GAAE,YAAW,MAAKA,GAAE,MAAK,SAAQA,GAAE,QAAO,WAAUa,GAAE,CAAA;AAAA,OAAG;AAAA,EAAA,CAAG;AAAC;AAAC,SAAS,GAAGb,IAAEa,IAAE;AAAM,QAAA,EAAC,MAAKtB,IAAE,MAAKF,IAAE,QAAOqD,KAAE,UAAO1C,IAAE,EAAC,KAAI7B,IAAE,SAAQkI,GAAC,IAAE,GAAG9G,IAAE,EAAC,cAAa,IAAG,MAAKF,IAAE,QAAOqD,IAAE,SAAQ,EAAC,uBAAsB,OAAM,mBAAkB,OAAM,sBAAqB,KAAK,IAAA,IAAM,IAAG,GAAE,gBAAe,CAAC,mBAAkB,oBAAoB,GAAE,QAAO7B,IAAE;AAAE,SAAO,GAAG,EAAC,KAAI1C,IAAE,MAAKkB,IAAE,QAAOqD,IAAE,SAAQ2D,GAAC,CAAC,EAAE,KAAM,CAAArG,OAAG;AAAOa,UAAAA,KAAEb,GAAE,QAAM;AAAG,QAAG,CAACa,GAAE;AAAQ,YAAM,IAAI,GAAG,EAAC,MAAKb,GAAE,SAAQ,SAAQA,GAAE,QAAO,WAAUA,GAAE,UAAU,CAAA;AAASa,WAAAA,GAAE,QAAM;EAAC,CAAG,EAAE,MAAO,CAAAb,OAAG;AAAC,UAAM,IAAI,GAAG,EAAC,MAAKA,GAAE,SAAQ,SAAQA,GAAE,QAAO,WAAUA,GAAE,UAAU,CAAA;AAAA,EAAA,CAAG;AAAC;AAAC,SAAS,GAAGA,KAAE,IAAG;AAAOa,QAAAA,KAAEb,GAAE,KAAA,EAAO,QAAQ,eAAc,EAAE,GAAET,KAAEsB,GAAE,QAAQ,GAAG;AAAE,MAAGtB,MAAG;AAAE,UAAM,IAAI,GAAG,EAAC,MAAK,iBAAgB,SAAQ,aAAY;AAAQF,QAAAA,KAAEwB,GAAE,UAAU,GAAEtB,EAAC,GAAEmD,KAAE7B,GAAE,UAAUtB,KAAE,CAAC;AAAE,SAAOF,OAAI,KAAK,OAAO,WAAS,QAAQ,KAAK,QAAQ,OAAOW,IAAE,0BAA0B,EAAE,OAAO,KAAK,OAAO,OAAO,CAAC,GAAE0C;AAAC;AAAC,SAAS,GAAG1C,KAAE,IAAG;AAAC,SAAM,WAAW,OAAO,KAAK,OAAO,SAAQ,GAAG,EAAE,OAAOA,GAAE,QAAQ,QAAO,EAAE,CAAC;AAAC;AAAC,IAAI,KAAG,MAAK;AAAA,EAAC,YAAYA,IAAE;AAAI,QAAA,CAAC,WAAU,cAAa,aAAY,WAAW,EAAE,QAAS,CAAAa,OAAG;AAAC,UAAG,CAAC,OAAO,UAAU,eAAe,KAAKb,IAAEa,EAAC;AAAE,cAAM,IAAI,MAAM,GAAGA,EAAC,WAAW;AAAA,IAAA,CAAG,GAAEb,GAAE,UAAS;AAAI,UAAA,YAAU,OAAOA,GAAE;AAAe,cAAA,IAAI,MAAM,yBAAyB;AAAE,UAAG,CAAC,cAAc,KAAKA,GAAE,QAAQ;AAAQ,cAAA,IAAI,MAAM,mCAAmC;AAAEA,SAAE,WAASA,GAAE,SAAS,QAAQ,OAAM,EAAE;AAAA,IAAC;AAAC,SAAK,SAAO,OAAO,OAAO,IAAGA,IAAE,EAAC,UAASA,GAAE,YAAU,WAAWA,GAAE,OAAO,gCAA+B;AAAA,EAAC;AAAA,EAAC,aAAaA,IAAE;AAAQ,WAAA,SAASA,IAAEa,IAAE;AAAC,YAAK,EAAC,MAAKtB,IAAE,MAAKF,OAAGW,IAAE0C,KAAE,QAAO,EAAC,KAAIvE,IAAE,SAAQkI,GAAAA,IAAG,GAAG,6BAA4B,EAAC,cAAa9G,IAAE,MAAKF,IAAE,QAAOqD,IAAE,SAAQ,EAAC,sBAAqBnD,GAAC,GAAE,gBAAe,CAAC,oBAAoB,GAAE,QAAOsB,IAAE;AAAE,aAAO,GAAG,EAAC,KAAI1C,IAAE,MAAKkB,IAAE,QAAOqD,IAAE,SAAQ2D,GAAE,CAAA,EAAE,KAAM,CAAArG,QAAI,EAAC,SAAQ,GAAE,SAAQ,MAAG,WAAUA,GAAE,WAAU,QAAOA,GAAE,KAAI,EAAG,EAAE,MAAO,CAAAA,OAAG;AAAC,cAAM,IAAI,GAAG,EAAC,MAAKA,GAAE,SAAQ,SAAQA,GAAE,QAAO,WAAUA,GAAE,UAAU,CAAA;AAAA,MAAA,CAAG;AAAA,IAAA,EAAGA,IAAE,KAAK,MAAM;AAAA,EAAC;AAAA,EAAC,gBAAgB,EAAC,KAAIA,IAAE,UAASa,IAAE,UAAStB,IAAE,UAASF,IAAE,kBAAiBqD,GAAAA,GAAG;AAAC,WAAO,IAAI,QAAS,CAACvE,IAAEkI,OAAI;AAAC,YAAM1D,KAAE,GAAG,WAAW,EAAC,KAAI3C,IAAE,UAASa,IAAE,UAAStB,IAAE,UAASF,IAAE,MAAK,QAAO,QAAQW,IAAE;AAACA,cAAGA,GAAE,aAAW,MAAI7B,GAAE6B,EAAC,IAAEqG,GAAE,IAAI,GAAG,EAAC,MAAK,iBAAgB,SAAQ,SAAS,CAAA,CAAC;AAAA,MAAA,GAAG,KAAKrG,IAAE;AAACqG,WAAE,IAAI,GAAG,EAAC,MAAKrG,GAAE,QAAM,iBAAgB,SAAQA,GAAE,WAASA,GAAE,UAAQ,SAAA,CAAS,CAAC;AAAA,SAAG;AAAc,oBAAA,OAAO0C,MAAGC,MAAG,cAAY,OAAOA,GAAE,oBAAkBA,GAAE,iBAAkB,CAAA3C,OAAG;AAAC0C,WAAE,EAAC,QAAO1C,GAAE,gBAAe,OAAMA,GAAE,0BAAyB;AAAA,MAAA,CAAG;AAAA,IAAA,CAAG;AAAA,EAAC;AAAA,EAAO,WAAW,IAAkE;AAAA,+CAAlE,EAAC,UAASA,IAAE,WAAUa,KAAE,IAAG,UAAStB,KAAE,SAAQ,kBAAiBF,MAAG;AAAI,UAAA,aAAW,EAAEwB,EAAC;AAAE,cAAM,IAAI,GAAG,EAAC,MAAK,iBAAgB,SAAQ,qBAAoB;AAAK,UAAA,EAAEA,KAAEA,GAAE;AAAQ,cAAM,IAAI,GAAG,EAAC,MAAK,iBAAgB,SAAQ,iBAAgB;AAAK,UAAA,QAAQ,KAAKA,EAAC;AAAE,cAAM,IAAI,GAAG,EAAC,MAAK,iBAAgB,SAAQ,gBAAe;AAAE,YAAM6B,KAAE,MAAM,GAAG,EAAC,MAAK,IAAI,OAAO7B,GAAE,QAAQ,OAAM,EAAE,GAAE,WAAW,EAAC,GAAE,KAAK,MAAM,GAAE,EAAC,SAAQ1C,IAAE,YAAWkI,IAAE,WAAU1D,GAAC,IAAED,IAAEvD,KAAEwD,MAAGA,GAAE,OAAQ,CAAC3C,IAAEa,QAAKb,GAAEa,GAAE,GAAG,IAAEA,GAAE,OAAMb,KAAI,CAAA,CAAE;AAAS,aAAA,KAAK,gBAAgB,EAAC,KAAIqG,IAAE,UAASrG,IAAE,UAAST,IAAE,UAASJ,IAAE,kBAAiBE,GAAAA,CAAE,EAAE,KAAM,OAAK,EAAC,QAAOlB,GAAI,EAAA;AAAA,IAAC;AAAA;AAAA,EAAO,eAAe,IAAa;AAAA,+CAAb,EAAC,UAAS6B,MAAG;AAAC,aAAO,IAAI,QAAS,CAACa,IAAEtB,OAAI;AAAC,SAAC,CAACS,MAAGA,GAAE,SAAO,MAAIT,GAAE,IAAI,GAAG,EAAC,SAAQ,iBAAgB,QAAO,iBAAgB,CAAC,CAAC,GAAES,GAAE,SAAO,MAAIT,GAAE,IAAI,GAAG,EAAC,SAAQ,iBAAgB,QAAO,qBAAoB,CAAC,CAAC;AAAE,cAAMF,KAAE,CAAA;AAAG,mBAAUwB,MAAKb,IAAE;AAAC,uBAAW,EAAEa,EAAC,KAAGtB,GAAE,IAAI,GAAG,EAAC,SAAQ,iBAAgB,QAAO,uBAAsB,CAAC,CAAC;AAAE,gBAAMS,KAAE,GAAG,KAAK,MAAKa,EAAC;AAAExB,aAAE,KAAK,EAAC,SAAQW,IAAE,QAAO,KAAI;AAAA,QAAC;AAAC,WAAG,EAAC,MAAK,kBAAiB,MAAK,EAAC,WAAUX,GAAC,GAAE,QAAO,UAAQ,KAAK,MAAM,EAAE,KAAM,CAAAW,OAAG;AAAC,gBAAK,EAAC,WAAUT,KAAE,OAAIS;AAAEa,aAAE,EAAC,UAAStB,GAAE,IAAK,CAAAS,QAAI,EAAC,QAAO,GAAG,KAAK,MAAKA,GAAE,OAAO,GAAE,aAAYA,GAAE,aAAY,EAAG,GAAE;AAAA,QAAA,CAAG,EAAE,MAAO,CAAAA,OAAGT,GAAES,EAAC,CAAE;AAAA,MAAA,CAAG;AAAA,IAAC;AAAA;AAAC;AAAE,IAAI,KAAG,EAAC,MAAK,CAAAA,OAAG;AAACA,KAAE,WAAS;AAAea,QAAAA,KAAE,IAAI,GAAGb,EAAC;AAASa,SAAAA,GAAE,OAAK,WAAU;AAAO,WAAA,EAAC,mBAAkB,WAAU;AAAC,aAAO,QAAQ;IAAS,GAAE,eAAc,WAAU;AAAQ,aAAA,QAAQ,QAAQ,IAAE;AAAA,IAAA;EAAKA,GAAAA;AAAC;AAAG,SAAS,GAAG,EAAC,MAAKb,MAAG;AAAKa,MAAAA;AAAEA,OAAE,GAAG;AAAQtB,QAAAA,KAAE,KAAK,MAAM,KAAK,UAAUS,MAAG,CAAE,CAAA,CAAC;AAAK,MAAA,OAAO,OAAOT,IAAE,EAAC,YAAWsB,IAAE,GAAE,CAACtB,GAAE,YAAW;AAAC,UAAK,EAAC,OAAMS,GAAC,IAAE,GAAG;AAAEA,WAAIT,GAAE,aAAWS;AAAAA,EAAE;AAAQT,SAAAA;AAAC;AAAC,SAAe,KAAsB;AAAA,6CAAnB,EAAC,MAAKS,IAAE,MAAKa,GAAC,IAAE,IAAG;AAAO,UAAA,KAAK,QAAQ;AAAmB,UAAK,EAAC,cAAatB,IAAE,WAAUF,GAAAA,IAAG,KAAK,SAAQqD,KAAE,EAAC,QAAO,UAAS,SAAQ,OAAM,QAAO,WAAU,KAAK,OAAO,QAAQ,GAAEvE,KAAE,KAAK,OAAO,SAAQkI,KAAE,UAAU9G,EAAC,IAAIF,EAAC,0BAAyBsD,KAAE,UAAUpD,EAAC,IAAIF,EAAC,mBAAmBW,EAAC;AAAG,WAAO,IAAI,QAAS,CAACa,IAAEtB,OAAI;AAAI,SAAA,QAAQ,EAAC,QAAO,QAAO,KAAI8G,IAAE,MAAK,EAAC,MAAKrG,IAAE,UAAS,GAAE,UAAS0C,IAAE,SAAQvE,MAAG,SAAQ,KAAI,QAAQ6B,IAAE;AAACa,WAAEb,EAAC;AAAA,SAAG,OAAM;AAACa,WAAE,EAAC,MAAK,EAAC,MAAK,iBAAgB,SAAQ,8CAA6C,EAAA,CAAE;AAAA,SAAG;AAAA,IAAA,CAAG,EAAE,KAAM,CAAC,EAAC,MAAKb,GAAAA,IAAG,CAAA,MAAK;AAAC,YAAK,EAAC,MAAKa,IAAE,SAAQtB,GAAC,IAAES,MAAG;AAAS,aAAA,EAAC,MAAK,MAAIa,KAAE,IAAEA,MAAG,WAAU,SAAQtB,MAAG;IAAS,CAAG,EAAE,KAAM,CAAC,EAAC,MAAKA,IAAE,SAAQF,SAAK;AAAC,UAAG,MAAIE,IAAE;AAAC,gBAAOA,IAAE;AAAA,UAAC,KAAI;AAA2B,oBAAA,MAAM,QAAQS,EAAC,gCAAgC;AAAE;AAAA,UAAM,KAAI;AAA6B,oBAAA,MAAM,QAAQA,EAAC,2BAA2B;AAAE;AAAA,UAAM,KAAI;AAA2B,oBAAA,MAAMX,MAAG,sCAAsC;AAAE;AAAA,UAAM,KAAI,iBAAgB;AAAC,kBAAMW,KAAE;AAAgC,kBAAM,QAAQ,MAAMA,EAAC,GAAE,IAAI,MAAMA,EAAC;AAAA,UAAC;AAAA,UAAC,KAAI;AAAkB;AAAA,UAAM,SAAQ;AAAOA,kBAAAA,KAAE,gBAAgBX,EAAC;AAAmB,kBAAM,QAAQ,MAAMW,EAAC,GAAE,IAAI,MAAMA,EAAC;AAAA,UAAC;AAAA,QAAC;AAAC,eAAO,KAAK,mBAAmB,EAAC,MAAKA,IAAE,MAAKa,IAAE;AAAA,MAAC;AAAC,aAAO,IAAI,QAAS,CAACb,IAAET,OAAI;AAAC,cAAMF,KAAE,GAAG,KAAK,MAAK,EAAC,MAAKwB,IAAE;AAAK,WAAA,QAAQ,EAAC,QAAO,QAAO,KAAI8B,IAAE,MAAK,EAAC,UAASD,IAAE,UAAS,GAAE,OAAMrD,GAAG,GAAA,SAAQ,CAAC,EAAC,YAAWwB,IAAE,MAAKxB,GAAC,IAAE,CAAC,MAAI,CAACwB,MAAGA,MAAG,MAAItB,GAAE,IAAI,GAAG,EAAC,MAAKF,GAAE,QAAM,WAAU,SAAQA,GAAE,WAAS,gBAAe,CAAC,IAAEW,GAAE,EAAC,QAAOX,GAAE,CAAA,GAAE,KAAKW,IAAE;AAACT,aAAE,IAAI,GAAG,EAAC,MAAKS,GAAE,QAAMA,GAAE,WAAS,WAAU,SAAQA,GAAE,WAASA,GAAE,UAAQ,eAAe,CAAA,CAAC;AAAA,WAAG;AAAA,MAAA,CAAG;AAAA,IAAA,CAAG;AAAA,EAAC;AAAA;AAAC,MAAM,KAAG,CAAC,EAAC,MAAK,4CAA2C,SAAQ,4DAA2D,MAAK,SAAA,CAAS;AAAE,IAAI,KAAG,uBAAsB,KAAG,OAAO,GAAG,MAAM;AAAE,SAAS,GAAGA,IAAEa,IAAEtB,IAAE;AAAC,SAAOS,GAAE,QAAQ,IAAI,QAAQX,KAAEwB,OAAI,GAAG,KAAKxB,EAAC,IAAEA,GAAE,QAAQ,IAAG,MAAM,IAAEA,IAAE,GAAG,GAAEE,EAAC;AAAMF,MAAAA;AAAC;AAAC,MAAgB,KAAG,WAAU,KAAG,YAAW,KAAG;AACtvY,MAAM,KAAG,EAAC,MAAK,KAAI,SAAQ,eAAgB,GAAA,KAAG,EAAC,MAAK,OAAM,SAAQ;AAAsS,SAAS,GAAGW,IAAE;AAAC,QAAK,EAAC,YAAWa,IAAE,SAAQtB,IAAE,SAAQF,IAAE,QAAOqD,IAAE,MAAKvE,IAAE,SAAQkI,IAAE,OAAM1D,GAAC,IAAE3C,MAAG;AAAG,SAAO,IAAI,GAAG,EAAC,SAAQa,MAAGtB,MAAG,sBAAqB,MAAKF,MAAGlB,MAAG,GAAG,MAAK,SAAQuE,MAAG2D,IAAE,OAAM1D,IAAE;AAAC;AAAK,IAAG;AAA61J,SAAS,GAAG,EAAC,YAAW3C,GAAC,IAAE,CAAA,GAAG;AAAC,SAAOA,OAAI,MAAIA,OAAI,MAAIA,OAAI;AAAE;AAAC,SAAS,GAAG,EAAC,MAAKA,IAAE,MAAKa,KAAE,CAAA,EAAI,IAAA,IAAG;AAAO,SAAA,UAAQ;AAAmF;AAAC,SAAS,GAAG,EAAC,UAASb,IAAE,SAAQa,IAAE,cAAatB,GAAG,IAAA,IAAG;AAAM,QAAA,EAAC,OAAMF,IAAE,aAAYqD,IAAE,QAAOvE,OAAG;AAAK,MAAIkI,KAAE3D;AAAE,YAAQA,OAAI2D,KAAElI;AAASwE,QAAAA,KAAE,SAAS,EAAC,UAAS3C,IAAE,SAAQa,GAAG,IAAA,IAAG;AAAC,UAAMtB,KAAE;AAAE,QAAG,CAACA;AAAE,aAAM;AAAGS,kCAAWA,IAAE;AAAO,aAAA,cAAYA,KAAE,QAAMA;AAAAA,MAAGA,EAAC;AAAQX,UAAAA,KAAEE,GAAE,KAAM,CAAAA,OAAGA,GAAE,aAAWS,MAAGT,GAAE,YAAUsB,EAAE;AAAE,WAAOxB,MAAGA,GAAE;AAAA,IAAQ,EAAC,UAASW,IAAE,SAAQa,GAAE,CAAA;AAAE,MAAG,CAAC8B,MAAG,CAACA,GAAE,iBAAe,CAACA,GAAE,cAAc;AAAa,WAAA;AAASxD,QAAAA,KAAEwD,GAAE,cAAc,YAAU,IAAGkD,KAAE,OAAO,KAAK1G,EAAC;AAAE,MAAG,MAAI0G,GAAE;AAAa,WAAA;AAASd,QAAAA,KAAE,SAAS/E,IAAEa,IAAE;AAAC,QAAItB,IAAEF,IAAEqD;AAAE,aAAQvE,KAAE,GAAEA,KAAE6B,GAAE,QAAO7B,MAAI;AAAOkI,YAAAA,KAAErG,GAAE7B,EAAC;AAAEkI,aAAIxF,KAAE,QAAMwF,KAAEA,GAAE,MAAM,GAAG,EAAE,IAAK,CAAArG,OAAGA,GAAE,MAAO,EAAE,QAAQa,EAAC,IAAE,OAAKxB,KAAEgH,MAAG3D,KAAE2D,KAAE9G,KAAE8G;AAAAA,IAAC;AAAC,WAAO9G,MAAGF,MAAGqD;AAAAA,EAAA,EAAGmD,IAAEtG,EAAC;AAAE,MAAG,CAACwF;AAAQ,WAAA;AAAO5F,OAAAA,GAAE4F,EAAC,KAAG,CAAA,GAAI,KAAM,CAAC/E,KAAE,CAAA,MAAKA,GAAE,UAAQX,OAAIW,GAAE,YAAU,IAAI,kBAAgBqG,GAAE,aAAc;AAAQ,WAAA;AAAS,QAAA,QAAQ,MAAM,cAAchH,EAAC,eAAegH,EAAC,+FAA+F,GAAE,GAAG,EAAE;AAAC;AAAC,SAAS,GAAG,EAAC,cAAarG,IAAE,QAAOa,IAAE,QAAOtB,MAAG;AAAC,MAAM,KAAK,QAAQ,YAAUsB,MAAGA,GAAE,WAAU;AAAC,UAAMxB,KAAE,KAAK,UAAU,EAAC,SAAQ,KAAK,OAAO,SAAQ,cAAaW,IAAE,WAAUa,GAAE,UAAU,CAAA;AAAE,YAAQ,IAAI,IAAItB,EAAC,YAAYF,EAAC,KAAKE,EAAC,WAAW;AAAA,EAAC;AAAC;AAAC,SAAS,GAAGS,IAAE;AAAC,QAAMa,KAAEb,GAAE,cAAaT,KAAE,SAASA,IAAE;AAAC,UAAMF,KAAEE,GAAE;AAAKA,OAAE,OAAK,GAAG,KAAKS,IAAE,EAAC,MAAKT,GAAE,KAAA,CAAK;AAAQmD,UAAAA,KAAE,EAAC,QAAO,UAAS,SAAQ,OAAM,KAAI,OAAM,QAAO,SAAU,EAAA,KAAK,OAAO,QAAQ,GAAEvE,KAAE,GAAGoB,EAAC,GAAE8G,KAAE,GAAG9G,EAAC,GAAEoD,KAAExE,MAAGkI;AAAE,WAAOxF,GAAE,KAAK,MAAKtB,EAAC,EAAE,KAAM,CAAAS,QAAIA,GAAE,UAAQ,GAAE,CAAC2C,MAAG,GAAG,KAAK,MAAK,EAAC,cAAatD,IAAE,QAAOW,IAAE,QAAO0C,GAAE,CAAA,GAAE,QAAQ,QAAQ1C,EAAC,IAAK,CAAAA,QAAI,CAAC2C,MAAG,GAAG,KAAK,MAAK,EAAC,cAAatD,IAAE,QAAOW,IAAE,QAAO0C,GAAE,CAAA,GAAE1C,MAAGA,GAAE,YAAUA,GAAE,UAAQ,SAAS,EAAC,SAAQA,KAAE,IAAG,WAAUa,KAAE,CAAG,GAAA,WAAUtB,KAAE,CAAE,EAAA,IAAE,CAAA,GAAG;AAAC,eAAQF,KAAE,GAAEA,KAAEE,GAAE,QAAOF,MAAI;AAAC,cAAK,EAAC,MAAKqD,IAAE,SAAQvE,IAAE,MAAKkI,GAAAA,IAAG9G,GAAEF,EAAC,GAAEsD,KAAE3C,GAAE,MAAM0C,EAAC;AAAE,YAAG,CAACC;AAAE;AAAS,YAAIxD,KAAEhB;AAAE,iBAAQ6B,KAAE,GAAEA,KAAE2C,GAAE,QAAO3C;AAAIb,eAAE,GAAGA,IAAE,KAAKa,EAAC,KAAI2C,GAAE3C,EAAC,CAAC;AAAE,mBAAUA,MAAKa;AAAE1B,eAAE,GAAGA,IAAE,IAAIa,EAAC,KAAIa,GAAEb,EAAC,CAAC;AAAQ,eAAA,cAAYqG,KAAElH,KAAEa,KAAEb;AAAAA,MAAC;AAAQa,aAAAA;AAAAA,IAAA,EAAG,EAAC,SAAQ,IAAIT,GAAE,IAAI,MAAMS,GAAE,OAAO,IAAG,WAAU,IAAG,WAAU,EAAC,cAAaX,KAAG,CAAA,IAAG,QAAQ,OAAOW,EAAC,EAAG;AAAA,EAAA;AAAGA,KAAE,eAAa,SAASa,IAAE;AAAM,UAAA,EAAC,UAASxB,IAAE,SAAQqD,OAAG1C,GAAE,QAAO7B,KAAE0C,GAAE;AAAK,QAAIwF,IAAE1D;AAAE,QAAG9B,GAAE,OAAKA,GAAE,QAAM,CAAA,GAAMb,GAAE,QAAQ,aAAW,CAACA,GAAE,QAAQ,UAAU,eAAa,KAAGA,GAAE,uBAAqBA,GAAE,qBAAmBT,IAAES,GAAE,qBAAmB,KAAIqG,KAAE,MAAIA,KAAE9G,IAAE8G,KAAEA,GAAE,KAAKrG,EAAC,GAAE,GAAGa,EAAC;AAAE8B;AAAAA,aAAsB,SAAS,EAAC,MAAK3C,IAAE,MAAKa,KAAE,CAAA,KAAI;AAAC,aAAuB,gBAAcb,MAAG,qCAAmCa,GAAE;AAAA,MAAQA,EAAC;AAAE8B,WAAE0D,GAAE,KAAKrG,IAAEa,EAAC;AAAA,aAAU,GAAGA,EAAC,GAAE;AAAC8B,WAAE,IAAI,GAAG,EAAC,YAAW9B,GAAE,YAAW,aAAYb,GAAE,CAAA,EAAE,4BAA4BT,GAAE,KAAKS,EAAC,CAAC,EAAEa,EAAC;AAAA,IAAA,WAAU,GAAG,EAAC,UAASxB,IAAE,SAAQqD,IAAE,cAAavE,GAAC,CAAC,GAAE;AAACwE,WAAE,IAAI,GAAG,EAAC,YAAW9B,GAAE,YAAW,aAAYb,GAAE,CAAA,EAAE,6BAA6BT,GAAE,KAAKS,EAAC,CAAC,EAAEa,EAAC;AAAA,IAAC;AAAM8B,WAAE0D,GAAExF,EAAC;AAAE,WAAO,OAAO,eAAe8B,IAAE,UAAS,EAAC,KAAI,OAAK,QAAQ,KAAK,6FAA6F,GAAE,CAAG,GAAC,CAAA,GAAEA,GAAE,KAAM,CAAA3C,QAAI,eAAa,OAAO,kBAAgBA,GAAE,SAAO,IAAI,cAAcA,GAAE,MAAM,IAAGA,GAAG;AAAA,EAAA;AAAE;AAAC,KAAmJ,MAAK;AAAA,EAAC,cAAa;AAAC,UAAM,GAAG,EAAC,SAAQ,YAAY,CAAC,gGAA+F;AAAA,EAAC;AAAC;AAAE,MAAM,KAAG,OAAO,oBAAoB;AAAE,SAAS,GAAGA,IAAEa,IAAE;AAAC,SAAOb,GAAE,OAAK,0CAAyCA,GAAE,gBAAc,IAAGA,GAAE,UAAQ,MAAKA,GAAE,UAAQ,QAAO,IAAI,MAAMA,IAAE,EAAC,IAAIA,IAAET,IAAEF,IAAE;AAAC,QAAG,iBAAeE;AAAS,aAAA;AAAK,QAAG,YAAU,OAAOA;AAAE,aAAOS,GAAET,EAAC;AAAE,QAAGA,MAAKS,MAAG,YAAU,OAAOT,IAAE;AAAOsB,YAAAA,KAAEb,GAAET,EAAC;AAAE,aAAM,cAAY,OAAOsB,KAAEA,GAAE,KAAKb,EAAC,IAAEa;AAAAA,IAAC;AAAC,WAAOA,GAAE,IAAIb,IAAET,IAAEF,EAAC;AAAA,KAAG;AAAC;AAAC,SAAS,GAAGW,IAAE;AAAC,SAAM,EAAC,IAAG,CAACa,IAAEtB,OAAI;AAACS,OAAEa,EAAC,IAAEb,GAAEa,EAAC,KAAG,CAAGb,GAAAA,GAAEa,EAAC,EAAE,QAAQtB,EAAC,IAAE,MAAIS,GAAEa,EAAC,EAAE,KAAKtB,EAAC;AAAA,EAAA,GAAG,KAAI,CAACsB,IAAEtB,OAAI;AAACS,OAAEa,EAAC,IAAEb,GAAEa,EAAC,KAAG,CAAA;AAAG,UAAMxB,KAAEW,GAAEa,EAAC,EAAE,QAAQtB,EAAC;AAAE,WAAKF,MAAGW,GAAEa,EAAC,EAAE,OAAOxB,IAAE,CAAC;AAAA,EAAA;AAAG;AAAC,MAAM,KAAG,CAAC,UAAS,cAAa,mBAAmB;AAAE,SAAS,GAAGW,IAAEa,IAAE;AAAC,SAAO,GAAG,QAAQ,GAAGb,EAAC,IAAIa,EAAC,EAAE,IAAE;AAAE;AAAC,SAAS,GAAGb,IAAE;AAAC,UAAO,EAAEA,KAAE,GAAGA,EAAC,CAAC,GAAE;AAAA,IAAC,KAAI;AAAQ,aAAOA,GAAE,IAAK,CAAAA,OAAG,GAAGA,EAAC,CAAE;AAAA,IAAE,KAAI;AAAgBA,aAAAA,GAAE,kBAAgB,MAAI,OAAO,KAAKA,EAAC,EAAE,QAAS,CAAAa,OAAG;AAACb,WAAEa,EAAC,IAAE,GAAGb,GAAEa,EAAC,CAAC;AAAA,MAAG,CAAA,GAAEb;AAAAA,IAAE,KAAI;AAAe,aAAA,EAAC,SAAQ,EAAC,QAAOA,GAAE,QAAO,OAAMA,GAAE,MAAA;IAAQ,KAAI;AAAO,aAAM,EAAC,OAAMA,GAAE,YAAa,EAAA;AAAA,IAAE;AAAeA,aAAAA;AAAAA,EAAC;AAAC;AAAC,SAAS,GAAGA,IAAE;AAAC,SAAOA,MAAGA,GAAE,WAASA,GAAE,QAAQ;AAAO;AAAC,MAAM,GAAE;AAAA,EAAC,YAAYA,IAAEa,IAAEtB,IAAE;AAAM,SAAA,UAAQS,IAAE,KAAK,YAAUa,MAAG,MAAK,KAAK,MAAI,MAAK,KAAK,YAAUtB;AAAAA,EAAC;AAAA,EAAC,SAAQ;AAAC,QAAIS,KAAE;AAAWa,UAAAA,KAAE,CAACb,GAAE,OAAO;AAAE,WAAKA,GAAE;AAAWA,WAAEA,GAAE,WAAUa,GAAE,KAAKb,GAAE,OAAO;AAAE,WAAM,EAAC,KAAIa,GAAE,QAAU,EAAA,IAAK,CAAAb,QAAI,EAAC,SAAQA,GAAE,SAAQ,QAAO,GAAGA,GAAE,MAAM,EAAA,EAAI;EAAE;AAAA,EAAC,WAAU;AAAC,WAAO,KAAK,UAAU,KAAK,OAAQ,CAAA;AAAA,EAAC;AAAA,EAAC,YAAW;AAAOA,UAAAA,KAAE,KAAK,OAAA,EAAS,IAAI,KAAM,CAAAA,OAAG,aAAWA,GAAE,OAAQ;AAAE,WAAOA,MAAGA,GAAE,UAAQA,GAAE,OAAO,CAAC;AAAA,EAAC;AAAA,EAAC,aAAY;AAAC,WAAM,EAAC,KAAI,KAAK,OAAS,EAAA,IAAI,OAAQ,CAAAA,OAAG,aAAWA,GAAE,OAAQ,EAAC;AAAA,EAAC;AAAA,EAAC,IAAI,cAAa;AAAC,QAAIA,KAAE;AAAK,WAAKA,MAAG;AAAC,YAAMa,KAAE,GAAGb,EAAC,GAAET,KAAE,GAAGS,GAAE,SAAS;AAAE,UAAG,gBAAca,MAAG,iBAAetB,MAAG,eAAasB;AAAQ,eAAA;AAAGb,WAAEA,GAAE;AAAA,IAAS;AAAO,WAAA;AAAA,EAAE;AAAA,EAAC,IAAI,YAAW;AAAC,QAAIA,KAAE;AAAK,WAAKA,MAAG;AAAI,UAAA,cAAY,GAAGA,EAAC;AAAQ,eAAA;AAAGA,WAAEA,GAAE;AAAA,IAAS;AAAO,WAAA;AAAA,EAAE;AAAA,EAAC,IAAI,qBAAoB;AAAC,QAAIA,KAAE;AAAK,WAAKA,MAAG;AAAC,YAAMa,KAAE,GAAGb,EAAC,GAAET,KAAE,GAAGS,GAAE,SAAS;AAAK,UAAA,gBAAca,MAAG,cAAYtB;AAAQ,eAAA;AAAGS,WAAEA,GAAE;AAAA,IAAS;AAAO,WAAA;AAAA,EAAE;AAAA,EAAC,eAAeA,IAAE;AAAC,UAAMa,KAAE;AAAK,WAAO,WAAU;AAAC,aAAO,GAAG,EAAC,SAAQb,IAAE,QAAO,GAAG,MAAM,KAAK,SAAS,CAAC,EAAGa,GAAAA,IAAEA,GAAE,SAAS;AAAA,IAAA;AAAA,EAAE;AAAA,EAAC,IAAI,QAAO;AAAC,WAAO,KAAK,cAAY,KAAK,eAAe,OAAO,IAAE,WAAU;AAAC,aAAO,KAAK,MAAM,SAAQ,MAAM,KAAK,SAAS,CAAC;AAAA,IAAA;AAAA,EAAE;AAAA,EAAC,IAAI,SAAQ;AAAC,WAAO,KAAK,YAAU,KAAK,eAAe,QAAQ,IAAE,WAAU;AAAC,aAAO,KAAK,MAAM,UAAS,MAAM,KAAK,SAAS,CAAC;AAAA,IAAA;AAAA,EAAE;AAAA,EAAC,MAAK;AAAC,WAAO,KAAK,MAAM,OAAM,MAAM,KAAK,SAAS,CAAC;AAAA,EAAC;AAAA,EAAC,IAAI,MAAK;AAAC,WAAO,KAAK,YAAU,KAAK,eAAe,KAAK,IAAE,WAAU;AAAC,aAAO,KAAK,MAAM,OAAM,MAAM,KAAK,SAAS,CAAC;AAAA,IAAA;AAAA,EAAE;AAAA,EAAC,SAAQ;AAAC,WAAO,KAAK,MAAM,UAAS,MAAM,KAAK,SAAS,CAAC;AAAA,EAAC;AAAA,EAAC,MAAK;AAAC,WAAO,KAAK,MAAM,OAAM,MAAM,KAAK,SAAS,CAAC;AAAA,EAAC;AAAA,EAAC,IAAI,MAAK;AAAC,WAAO,KAAK,YAAU,KAAK,eAAe,KAAK,IAAE,WAAU;AAAO,YAAA,IAAI,MAAM,cAAc;AAAA,IAAA;AAAA,EAAE;AAAA,EAAC,MAAMb,IAAEa,IAAE;AAAC,UAAMtB,KAAE,KAAK,UAAA,GAAYF,KAAE,KAAK;AAAa,QAAGA,GAAE,IAAI,KAAK,EAAC,SAAQW,IAAE,QAAO,GAAGa,EAAC,EAAE,CAAA,GAAE,GAAE;AAAC,YAAMb,KAAEX,GAAE,IAAI,KAAM,CAAAW,OAAG,iBAAeA,GAAE,OAAQ,GAAEa,KAAEb,MAAGA,GAAE;AAAOa,YAAG,MAAIA,GAAE,UAAQ,YAAU,OAAOb,GAAE,OAAO,CAAC,KAAGA,GAAE,OAAO,CAAC,EAAE,QAAQ,GAAG,IAAE,MAAI,QAAQ,KAAK,qKAAqK;AAAA,IAAC;AAAQ,WAAA,KAAK,UAAU,mBAAmB,EAAC,QAAOT,IAAE,SAAQF,IAAE;AAAA,EAAC;AAAC;AAAC,SAAS,GAAGW,IAAEa,IAAEtB,IAAE;AAAQ,SAAA,GAAG,IAAI,GAAGS,IAAEa,IAAEtB,EAAC,GAAE,EAAC,IAAIS,IAAEa,IAAE;AAAC,QAAIxB,KAAE;AAAK,WAAOW,MAAGA,GAAE,YAAUX,KAAEW,GAAE,QAAQ,UAAS,GAAGX,IAAEwB,EAAC,IAAE,GAAG,EAAC,SAAQA,GAAAA,GAAGb,IAAET,EAAC,IAAE,WAAU;AAAC,aAAO,GAAG,EAAC,SAAQsB,IAAE,QAAO,GAAG,MAAM,KAAK,SAAS,CAAC,EAAC,GAAEb,IAAET,EAAC;AAAA,IAAA;AAAA,KAAI;AAAC;AAAC,SAAS,GAAG,EAAC,MAAKS,IAAE,QAAOa,MAAG;AAAC,SAAO,MAAK;AAAA,IAAC,cAAa;AAAM,WAAA,QAAM,MAAM,KAAK,SAAS;AAAA,IAAC;AAAA,IAAC,SAAQ;AAAO,aAAA,EAAC,QAAO,CAAC,GAAGb,GAAE,IAAK,CAAAA,QAAI,EAAC,SAAQA,GAAI,EAAA,GAAE,EAAC,SAAQa,IAAE,QAAO,KAAK,MAAM,CAAA;IAAE;AAAA,IAAC,WAAU;AAAC,aAAO,KAAK,UAAU,KAAK,OAAQ,CAAA;AAAA,IAAC;AAAA,EAAA;AAAE;AAAC,SAAS,GAAGb,IAAEa,KAAE,IAAG;AAAQ,SAAA,GAAG,IAAIb,GAAEa,EAAC,GAAE,EAAC,KAAI,CAACb,IAAEa,OAAI,GAAG,MAAKA,EAAC,IAAE,GAAG,EAAC,SAAQA,MAAG,MAAKb,EAAC,IAAE,WAAU;AAAC,WAAO,GAAG,EAAC,SAAQa,IAAE,QAAO,GAAG,MAAM,KAAK,SAAS,CAAC,EAAC,GAAE,MAAKb,EAAC;AAAA,KAAG;AAAC;AAAC,MAAM,WAAW,MAAK;AAAA,EAAC,YAAY,EAAC,WAAUA,KAAE,CAAA,GAAG,OAAMa,KAAE,MAAI,IAAA,IAAG;AAAM,SAAA,aAAWb,IAAE,KAAK,iBAAe,IAAG,KAAK,eAAa,CAAC,GAAEA,GAAE,eAAa,KAAK,eAAa,EAAE,iCAAiC,IAAGa,OAAI,KAAK,OAAK,GAAG,KAAK,cAAc,IAAG,KAAK,SAAOA,IAAE,OAAO,OAAO,MAAK,GAAG,KAAK,YAAY,CAAC,GAAE,KAAK,MAAI,GAAG,CAAA,GAAG,EAAC,KAAI,CAACb,IAAEa,QAAK,EAAC,MAAKA,GAAC,GAAG,CAAA,GAAE,KAAK,MAAI,GAAG,CAAA,GAAG,EAAC,KAAI,CAACb,IAAEa,OAAI,GAAG,EAAC,MAAK,CAAC,KAAK,GAAE,QAAOA,GAAC,CAAC,EAAE,CAAA,GAAE,KAAK,aAAW,GAAG,EAAC,MAAK,IAAG,QAAO,aAAa,CAAA,GAAE,KAAK,SAAO,GAAG,EAAC,MAAK,IAAG,QAAO,SAAA,CAAS;AAAA,EAAC;AAAA,EAAC,YAAYb,IAAE;AAAC,QAAG,YAAU,OAAOA,MAAG,CAACA,GAAE,KAAK;AAAQ,YAAA,IAAI,MAAM,iBAAiB;AAAE,WAAM,EAAC,MAAKA,GAAE,QAAQ,cAAa,EAAE;EAAE;AAAA,EAAC,UAAUA,IAAEa,IAAE;AAAC,UAAMtB,KAAE,KAAK;AAAaA,OAAES,EAAC,KAAGT,GAAES,EAAC,EAAE,QAAS,CAAAA,OAAG;AAACA,SAAE,GAAGa,EAAC;AAAA,IAAA,CAAG;AAAA,EAAC;AAAA,EAAC,cAAcb,IAAEa,IAAE;AAAC,UAAMtB,KAAE,KAAK;AAAeA,OAAES,EAAC,KAAGT,GAAES,EAAC,EAAE,QAAS,CAAAA,OAAG;AAACA,SAAE,GAAGa,EAAC;AAAA,IAAA,CAAG;AAAA,EAAC;AAAA,EAAC,YAAW;AAAOb,UAAAA,KAAE,MAAM,KAAK,SAAS,GAAEa,KAAEb,GAAE,IAAK,CAAAA,OAAG;AAAC,YAAMa,KAAEb,GAAE,UAAA,GAAYT,KAAES,GAAE;AAAa,UAAG,cAAYT,GAAE,IAAIA,GAAE,IAAI,SAAO,CAAC,EAAE;AAAc,cAAA,IAAI,MAAM,2BAA2B;AAAE,aAAM,EAAC,QAAOsB,IAAE,SAAQtB,GAAC;AAAA,IAAA,CAAG;AAAE,WAAO,KAAK,mBAAmB,EAAC,cAAasB,IAAE,WAAUb,IAAE;AAAA,EAAC;AAAC,EAAC;AAAA,EAAC,aAAaA,IAAE;AAAQ,WAAA,KAAK,SAAOA,GAAE,SAAOA;AAAAA,EAAC;AAAA,EAAC,mBAAmB,EAAC,QAAOA,IAAE,SAAQa,IAAE,cAAatB,IAAE,WAAUF,MAAG;AAAUqD,aAAAA,GAAE1C,IAAEa,IAAE;AAAC,UAAGtB,MAAGF;AAAE,iBAAQE,KAAE,GAAEA,KAAEF,GAAE,QAAOE,MAAI;AAAOmD,gBAAAA,KAAErD,GAAEE,EAAC;AAAEmD,aAAE,OAAK,cAAY,OAAOA,GAAE,IAAI,cAAY7B,KAAE6B,GAAE,IAAI,UAAU7B,EAAC,IAAE6B,GAAE,IAAI,UAAU1C,GAAE,OAAO,SAAST,EAAC,CAAC;AAAA,QAAE;AAAA,IAAC;AAAC,UAAMpB,KAAE,MAAKkI,KAAE,KAAK,SAAO,mBAAiB;AAAW,aAAS1D,GAAE3C,IAAE;AAAC,aAAO7B,GAAE,UAAU,SAAQ,CAAC6B,EAAC,CAAC,GAAE,EAAE,EAAEqG,IAAE,MAAM,GAAErG,EAAC,EAAE,KAAM,MAAI,EAAE,EAAEqG,IAAE,UAAU,GAAErG,EAAC,CAAE,EAAE,KAAM,OAAK0C,GAAE,MAAK1C,EAAC,GAAE,EAAE,GAAE,EAAC,MAAK,GAAE,SAAQA,IAAE,GAAE,QAAQ,OAAOA,EAAC,EAAG;AAAA,IAAC;AAAOb,UAAAA,KAAE,EAAE,EAAEkH,IAAE,QAAQ,CAAC,GAAER,KAAE,KAAK;AAAkB1G,WAAAA,GAAE,KAAM,MAAI0G,GAAE,aAAa,EAAC,MAAK,mBAAkB,MAAK,GAAE,MAAK,EAAC,QAAO7F,IAAE,SAAQa,IAAE,cAAatB,GAAC,EAAA,CAAE,CAAE,EAAE,KAAM,CAAAS,OAAG;AAAC,YAAK,EAAC,MAAKa,IAAE,SAAQtB,IAAE,OAAMF,IAAE,cAAaF,IAAE,YAAW0G,KAAE,CAAC,EAAA,IAAG7F,GAAE;AAAU6F,UAAAA;AAAE,iBAAQ7F,KAAE,GAAEA,KAAE6F,GAAE,QAAO7F,MAAI;AAAM,gBAAA,EAAC,OAAMa,IAAE,SAAQtB,IAAE,QAAOF,OAAGwG,GAAE7F,EAAC,GAAE0C,KAAE,QAAsC7B,EAAC,KAAG,QAAQ;AAAI,cAAI1C,KAAE,kBAAgBoB;AAAEF,iBAAIlB,KAAE,GAAGA,EAAC;AAAA,OAAUkB,EAAC,KAAIqD,GAAEvE,EAAC;AAAA,QAAC;AAAC,UAAG0C,IAAE;AAAC,eAAO8B,GAAE,IAAI,GAAG,EAAC,MAAK9B,IAAE,SAAQtB,IAAE,WAAUS,GAAE,UAAS,CAAC,CAAC;AAAA,MAAC;AAACA,SAAE,OAAO,UAAQA,GAAE,OAAO,WAASA,GAAE,OAAO,MAAKA,GAAE,OAAO,SAAOA,GAAE,OAAO,UAAQA,GAAE,OAAO,SAAQX,MAAGF,OAAI,GAAG,EAAC,OAAME,IAAE,cAAaF,GAAC,CAAC,GAAE,KAAK,cAAc,gBAAe,CAAC,EAAC,OAAME,IAAE,cAAaF,GAAAA,CAAE,CAAC,GAAE,KAAK,UAAU,gBAAe,CAAC,EAAC,OAAME,IAAE,cAAaF,IAAE,CAAC,GAAE,EAAE,GAAE,EAAC,OAAME,IAAE,cAAaF,GAAAA,CAAE;AAAG,YAAM4F,KAAE,CAAC,EAAC,MAAK,gBAAe,MAAK,+DAAgE,GAAA,EAAC,MAAK,QAAO,MAAK,6BAA2B,EAAC,MAAK,WAAU,MAAK,6BAA4B;AAAE,eAAQlE,KAAE,GAAEA,KAAEkE,GAAE,QAAOlE,MAAI;AAAC,cAAK,EAAC,MAAKtB,IAAE,MAAKF,OAAG0F,GAAElE,EAAC;AAAKtB,YAAAA,MAAKS,GAAE,QAAO;AAAOa,gBAAAA,KAAEb,GAAE,OAAOT,EAAC;AAAE,iBAAO,eAAeS,GAAE,QAAOT,IAAE,EAAC,KAAI,OAAK,QAAQ,KAAKF,EAAC,GAAEwB,IAAG,CAAA;AAAA,QAAC;AAAA,MAAC;AAAC,aAAO,SAASb,IAAE;AAAC,eAAO,EAAE,EAAEqG,IAAE,SAAS,GAAErG,EAAC,EAAE,KAAM,MAAI,EAAE,EAAEqG,IAAE,UAAU,GAAErG,EAAC,CAAE,EAAE,KAAM,MAAI;AAAC0C,aAAE1C,IAAE,IAAI;AAAQa,gBAAAA,KAAE1C,GAAE,aAAa6B,EAAC;AAAS,iBAAA,EAAE,GAAE,EAAC,MAAK,GAAE,SAAQa,GAAAA,CAAE,GAAE,QAAQ,QAAQA,EAAC;AAAA,QAAA,CAAG;AAAA,QAAGb,EAAC;AAAA,IAAC,GAAI,CAAAA,OAAG;AAAC,kDAA4C,KAAKA,GAAE,OAAO,KAAG,QAAQ,KAAK,4CAA4C;AAAE,aAAO2C,GAAE,IAAI,GAAG,EAAC,MAAK3C,GAAE,QAAM,gBAAe,SAAQA,GAAE,SAAQ,WAAUA,GAAE,UAAU,CAAA,CAAC;AAAA,IAAA,CAAG;AAAA,EAAC;AAAC;AAAC,MAAM,KAAG,kBAAiB,KAAG,kBAAiB,KAAG,EAAC,6BAA4B,IAAG,gCAA+B,IAAG,eAAc,IAAG,2BAA0B,IAAG,8BAA6B,GAAI,GAAA,KAAG,EAAC,wBAAuB,IAAG,6BAA4B,IAAG,0BAAyB,IAAG,sCAAqC,GAAE;AAAE,SAAS,GAAGA,IAAEa,IAAE;AAAC,MAAItB,KAAE;AAAUA,SAAAA,KAAES,KAAE,GAAGA,EAAC,IAAIa,EAAC,KAAGA,IAAEtB,GAAE,QAAQ,OAAM,EAAE;AAAC;AAAC,SAAS,GAAGS,KAAE,IAAGa,KAAE,IAAG;AAAC,QAAMtB,KAAE,CAAA,GAAGF,KAAE;AAAUW,SAAAA,GAAE,QAAS,CAAAA,OAAG;AAAC,aAAKA,GAAE,YAAUT,GAAE,KAAK,GAAGsB,IAAEb,GAAE,IAAI,CAAC,IAAE,UAAKA,GAAE,aAAWX,GAAE,KAAK,GAAGwB,IAAEb,GAAE,IAAI,CAAC;AAAA,EAAG,CAAA,GAAE,EAAC,eAAcT,IAAE,kBAAiBF,GAAC;AAAC;AAAC,SAAS,GAAGW,IAAE;AAAQA,SAAAA,GAAE,MAAM,GAAG,EAAE,CAAC,EAAE,QAAQ,OAAM,EAAE;AAAC;AAAC,SAAS,KAAI;AAAC,SAAO,SAASA,IAAE;AAAC,QAAIa,KAAEb,MAAGA,GAAE,SAAOA,GAAE,MAAM,YAAU;AAAUa,WAAAA,MAAG,QAAMA,GAAE,OAAO,CAAC,MAAIA,KAAE,MAAIA,KAAGA,MAAGA;AAAAA,EAAA,EAAG,WAAU;AAAC,UAAMb,KAAE;AAAyBA,WAAAA,GAAEA,GAAE,SAAO,CAAC;AAAA,KAAI;AAAC;AAAC,SAAS,KAAI;AAAQ,SAAA,GAAG,IAAI;AAAC;AAAC,SAAS,GAAGA,KAAE,IAAGa,KAAE,CAAA,GAAG;AAAC,MAAG,CAACb;AAAQ,WAAA;AAAG,MAAG,EAAEa,MAAGA,GAAE,QAAMA,GAAE,KAAK;AAAc,WAAA;AAAG,QAAMtB,KAAEsB,GAAE,MAAKxB,KAAE,GAAGW,EAAC;AAAE,SAAOT,GAAE,KAAM,CAAAS,OAAGA,GAAE,aAAWX,EAAE;AAAC;AAAC,MAAM,KAAG,CAAC,CAAC,EAAE;AAAY,MAAK,EAAC,WAAU,IAAG,iBAAgB,IAAG,YAAW,IAAG,eAAc,IAAG,kBAAiB,IAAG,mBAAkB,GAAA,IAAI,SAAS,EAAC,OAAMwB,KAAE,CAAC,GAAE,aAAYtB,KAAE,CAAA,GAAG,aAAYF,KAAE,IAAG,QAAOqD,KAAE,CAAC,EAAA,IAAG,GAAE;AAAC,QAAK,EAAC,WAAUvE,IAAE,WAAUkI,KAAE,CAAA,GAAG,YAAW1D,KAAE,KAAA,IAAItD,IAAE,EAAC,eAAcF,IAAE,kBAAiB0G,GAAG,IAAA,GAAGhF,EAAC,GAAE,EAAC,eAAckE,IAAE,kBAAiB5B,GAAC,IAAE,SAASnD,KAAE,CAAA,GAAG;AAAC,UAAMa,KAAE,CAAA,GAAGtB,KAAE;AAAUS,WAAAA,GAAE,QAAS,CAAAA,OAAG;AAAC,YAAK,EAAC,MAAKX,IAAE,OAAMqD,KAAE,CAAE,EAAA,IAAE1C,IAAE,EAAC,eAAc7B,IAAE,kBAAiBkI,OAAG,GAAG3D,IAAErD,EAAC;AAAEwB,SAAE,KAAK,GAAG1C,EAAC,GAAEoB,GAAE,KAAK,GAAG8G,EAAC;AAAA,IAAG,CAAA,GAAE,EAAC,eAAcxF,IAAE,kBAAiBtB,GAAC;AAAA,IAAGA,EAAC;AAAQ,SAAA,EAAC,WAAUpB,IAAE,iBAAgBkI,IAAE,YAAW1D,IAAE,eAAc,CAAC,GAAGxD,IAAE,GAAG4F,EAAC,GAAE,kBAAiB,CAAC,GAAGc,IAAE,GAAG1C,EAAC,GAAE,mBAAkB,GAAGhF,IAAEuE,EAAC;AAAE;AAAI,IAAG,GAAG,QAAQ,EAAE,IAAE;AAAG,QAAM,IAAI,MAAM,eAAe,EAAE,2DAA2D;AAAE,SAAS,GAAG1C,IAAE;AAAC,QAAMa,KAAE;AAAQ,MAAA,QAAMb,GAAE,OAAO,CAAC;AAASA,WAAAA;AAAO,QAAA,CAACT,IAAEF,EAAC,IAAEW,GAAE,MAAM,GAAG,GAAE0C,KAAEnD,GAAE,QAAQ,OAAM,EAAE,EAAE,MAAM,GAAG,GAAEpB,KAAE0C,GAAE,MAAM,GAAG;AAAE1C,KAAE,IAAI;AAAE,WAAQ6B,KAAE,GAAEA,KAAE0C,GAAE,QAAO1C,MAAI;AAAOa,UAAAA,KAAE6B,GAAE1C,EAAC;AAASa,aAAAA,KAAE1C,GAAE,IAAI,IAAE,QAAM0C,MAAG1C,GAAE,KAAK0C,EAAC;AAAA,EAAC;AAAC,SAAM,OAAK1C,GAAE,CAAC,KAAGA,GAAE,MAAM,GAAE,MAAIA,GAAE,KAAK,GAAG,KAAGkB,KAAE,MAAIA,KAAE;AAAG;AAAC,SAAS,GAAGW,IAAE;AAAC,QAAMa,KAAE,GAAG,GAAGb,EAAC,CAAC;AAAE,SAAM,EAAE,GAAG,QAAQa,EAAC,IAAE,QAAM,GAAG,QAAQA,EAAC,IAAE,MAAI,GAAG,KAAM,CAAAA,OAAG,SAASb,IAAEa,IAAE;AAAC,WAAO,IAAI,OAAOA,EAAC,EAAE,KAAKb,EAAC;AAAA,EAAA,EAAGA,IAAEa,EAAC,CAAE;AAAE;AAAC,SAAS,GAAG,EAAC,UAASb,MAAG;AAAC,QAAMa,KAAE,GAAGb,EAAC,GAAET,KAAE,GAAG,EAAE;AAAS,SAAA,GAAOA,MAAAA,MAAGsB,OAAItB;AAAC;AAAC,SAAS,GAAG,EAAC,KAAIS,IAAE,UAASa,GAAC,IAAE,IAAG;AAAC,MAAG,CAACA,MAAG,CAAC,GAAG,EAAC,UAASA,IAAE;AAAE;AAAatB,QAAAA,KAAE,SAASS,IAAEa,IAAE;AAAO,WAAA,QAAMb,GAAE,OAAO,CAAC,MAAIA,KAAE,MAAIA,KAAGa,KAAEb,GAAE,QAAQ,GAAG,IAAE,KAAGA,KAAE,qBAAqB,mBAAmBa,EAAC,CAAC,KAAGb,KAAE,qBAAqB,mBAAmBa,EAAC,CAAC,KAAGb;AAAAA,EAAA,EAAG,IAAGa,EAAC;AAAK,OAAA,iBAAeb,MAAG,iBAAeA,OAAIA,KAAE,eAAa,gBAAcA,OAAIA,KAAE;AAAc,QAAMX,KAAE,EAAC,YAAWuB,QAAI,YAAW,YAAWA,QAAI,YAAW,WAAUA,QAAI,WAAU,UAASA,QAAI,SAAQ;AAAE,aAAY,MAAI;AAACvB,OAAEW,EAAC,EAAE,EAAC,KAAIT,GAAE,CAAA;AAAA,KAAI,CAAC;AAAC;AAAC,SAAS,GAAG,EAAC,KAAIS,GAAC,IAAE,CAAA,GAAG;AAAOa,QAAAA,KAAE,EAAC,oBAAmB,OAAG,iBAAgB,MAAE,GAAEtB,KAAE,WAAU;AAAC,UAAK,EAAC,OAAMS,IAAE,cAAaa,GAAAA,IAAG;AAAStB,QAAAA;AAAE,QAAGS,IAAE;AAAIa,UAAAA,KAAE,KAAK,OAAM;AAAC,cAAMb,KAAE;AAAuBT,aAAE,EAAC,SAAQS,IAAE,QAAO,GAAGA,EAAC;MAAE;AAAA,IAAA,OAAM;AAAC,YAAMA,KAAE;AAA4BT,WAAE,EAAC,SAAQS,IAAE,QAAO,GAAGA,EAAC;IAAE;AAAQT,WAAAA;AAAAA,EAAA;AAAQ,MAAA,GAAGS,EAAC,KAAGT,IAAE;AAACA,OAAE,mBAAiBS;AAAK,QAAA,EAAE,CAAC,EAAE,SAAO;AAAE,aAAO,WAAY,MAAI;AAAC,UAAE,GAAET,EAAC;AAAA,MAAI,GAAA,CAAC,GAAEsB,GAAE,qBAAmB,MAAGA;AAAEA,OAAE,kBAAgB;AAAA,EAAE;AAAQA,SAAAA;AAAC;AAAC,SAAS,KAAI;AAAC,GAAC,WAAU;AAAC,UAAMb,KAAE,GAAA,GAAK,EAAC,oBAAmBa,IAAE,iBAAgBtB,GAAAA,IAAG,GAAG,EAAC,KAAIS,GAAE,CAAA;AAAEa,UAAGtB,MAAG,GAAG,EAAC,KAAI,cAAa,UAASS,IAAE;AAAA,EAAA;AAAK,QAAMA,KAAE,CAAC,cAAa,cAAa,YAAW,WAAW;AAAE,WAAQa,KAAE,GAAEA,KAAEb,GAAE,QAAOa,MAAI;AAAOtB,UAAAA,KAAES,GAAEa,EAAC;AAAED,YAAI,eAAerB,IAAE,EAAC,OAAOS,IAAE;AAAM,YAAA,EAAC,oBAAmBa,IAAE,iBAAgBxB,GAAAA,IAAG,GAAG,EAAC,KAAIW,GAAE,IAAI,CAAA;AAAE,aAAOa,KAAEb,KAAEX,MAAG,GAAG,EAAC,KAAIE,IAAE,UAAS,GAAGS,GAAE,GAAG,EAAE,CAAA,GAAE,SAAIA;AAAAA,OAAG;AAAA,EAAC;AAAC;AAAC,SAAS,KAAI;AAAM,OAAA,WAAY,CAAAA,OAAG;AAAC,UAAK,EAAC,MAAKa,IAAE,SAAQtB,OAAGS;AAAE,QAAIX,KAAE;AAAG,YAAOwB,IAAE;AAAA,MAAC,KAAI;AAAcxB,aAAE,SAASW,IAAE;AAAC,cAAG,YAAU,OAAOA;AAAQ,mBAAA;AAAG,gBAAK,EAAC,SAAQa,OAAGb,MAAG,CAAA;AAAG,iBAAOa,MAAK;AAAA,UAAItB,EAAC;AAAE;AAAA,MAAM,KAAI;AAAWF,aAAE,SAASW,IAAE;AAAC,cAAG,YAAU,OAAOA;AAAQ,mBAAA;AAAG,gBAAK,EAAC,SAAQa,OAAGb,MAAG,CAAA;AAAG,iBAAOa,MAAK;AAAA,UAAItB,EAAC;AAAA,IAAC;AAACF,UAAG,SAASW,KAAE,IAAG;AAAOa,YAAAA,KAAE,EAAE,CAAC;AAAI,QAAA,EAAE,KAAM,MAAI;AAAC,cAAMtB,KAAE;AAAK,YAAGA,MAAG,GAAG,EAAC,UAASA,IAAE;AAASsB,iBAAAA,GAAE,SAAO,IAAE,EAAE,GAAE,OAAO,OAAO,EAAC,kBAAiBtB,GAAC,GAAES,EAAC,CAAC,IAAE,MAAK,MAAI,GAAG,EAAC,KAAI,cAAa,UAAST,GAAE,CAAA;AAAA,MAAA,CAAI;AAAA,MAAGA,EAAC;AAAA,EAAA,CAAG;AAAC;AAAC,SAAS,GAAGS,IAAE;AAAC,GAAC,SAASA,IAAE;AAACA,OAAE,aAAW,SAASA,IAAE;AAAC,QAAE,GAAEA,EAAC;AAAA,IAAA,GAAGA,GAAE,cAAY,SAASA,IAAE;AAAC,QAAE,GAAEA,EAAC;AAAA,IAAA;AAAA,EAAC,EAAGA,EAAC,GAAE,SAASA,IAAE;AAACA,OAAE,cAAY,SAASA,IAAE;AAAC,QAAE,GAAEA,EAAC;AAAA,IAAA,GAAGA,GAAE,eAAa,SAASA,IAAE;AAAC,QAAE,GAAEA,EAAC;AAAA,IAAG,GAAA,OAAK,EAAE,uBAAuB,EAAE,kBAAgB,EAAE,uBAAuB,EAAE,gBAAc,MAAG,EAAE,EAAE,KAAM,MAAI;AAAC,SAAG,KAAKA,EAAC;AAAA,IAAA,CAAG,GAAE,MAAI,GAAG,KAAKA,EAAC;AAAA,EAAA,EAAKA,EAAC,GAAE,SAASA,IAAE;AAACA,OAAE,iBAAe,SAASA,IAAE;AAAC,QAAE,GAAEA,EAAC;AAAA,IAAA,GAAGA,GAAE,kBAAgB,SAASA,IAAE;AAAC,QAAE,GAAEA,EAAC;AAAA,IAAA;AAAA,IAAIA,EAAC;AAAC;AAAC,IAAI;AAAG,MAAM,KAAG,qEAAoE,KAAG;AAAuE,SAAS,KAAI;AAAOA,QAAAA,KAAE,GAAK,EAAA,SAAO,IAAGa,KAAEb,GAAE,MAAM,GAAG;AAAK,MAAA,CAACA,MAAG,MAAIa,GAAE;AAAa,WAAA,EAAC,KAAI,MAAK,MAAK,CAAA,GAAG,YAAW,CAAG,GAAA,cAAa;AAAOtB,MAAAA;AAAK,MAAA;AAACA,SAAE,KAAK,OAAOF,KAAEwB,GAAE,CAAC,GAAE,mBAAmB,GAAGxB,EAAC,EAAE,MAAM,EAAE,EAAE,IAAK,SAASW,IAAE;AAAO,aAAA,OAAK,OAAKA,GAAE,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,MAAM,EAAE;AAAA,IAAG,CAAA,EAAE,KAAK,EAAE,CAAC;WAAUA,IAAE;AAAC,UAAM,IAAI,MAAM,wBAAsBA,GAAE,OAAO;AAAA,EAAC;AAAKX,MAAAA;AAASE,SAAAA,GAAE,eAAa,MAAIA,GAAE,KAAI,OAAOA,GAAE,KAAI,OAAOA,GAAE,KAAIA;AAAC;AAAC,KAAG,cAAY,OAAO,OAAK,SAASS,IAAE;AAAIA,MAAAA,KAAE,OAAOA,EAAC,EAAE,QAAQ,iBAAgB,EAAE,GAAE,CAAC,GAAG,KAAKA,EAAC;AAAQ,UAAA,IAAI,MAAM,0FAA0F;AAAMa,MAAAA;AAAEb,QAAG,KAAK,MAAM,KAAG,IAAEA,GAAE,OAAO;AAAE,WAAQT,IAAEF,IAAEqD,KAAE,IAAGvE,KAAE,GAAEA,KAAE6B,GAAE;AAAQa,SAAE,GAAG,QAAQb,GAAE,OAAO7B,IAAG,CAAC,KAAG,KAAG,GAAG,QAAQ6B,GAAE,OAAO7B,IAAG,CAAC,KAAG,MAAIoB,KAAE,GAAG,QAAQS,GAAE,OAAO7B,IAAG,CAAC,MAAI,KAAGkB,KAAE,GAAG,QAAQW,GAAE,OAAO7B,IAAG,CAAC,IAAGuE,MAAG,OAAKnD,KAAE,OAAO,aAAasB,MAAG,KAAG,GAAG,IAAE,OAAKxB,KAAE,OAAO,aAAawB,MAAG,KAAG,KAAIA,MAAG,IAAE,GAAG,IAAE,OAAO,aAAaA,MAAG,KAAG,KAAIA,MAAG,IAAE,KAAI,MAAIA,EAAC;AAAS6B,SAAAA;AAAC,IAAE;AAAK,IAAI,KAAG,EAAG,SAAS1C,IAAEa,IAAE;AAAC,SAAO,eAAeA,IAAE,cAAa,EAAC,OAAM,MAAG;AAAQtB,QAAAA,KAAE,0BAAyBF,KAAE;AAAoCqD,WAAAA,GAAE1C,IAAEa,IAAE;AAAC,WAAOb,GAAE,UAAU,QAAS,CAACA,IAAET,OAAI;AAACS,SAAE,SAAOA,GAAE,OAAKA,GAAE,KAAK,UAAUA,GAAE,KAAK,YAAY,GAAG,IAAE,CAAC,IAAGa,OAAIb,GAAE,WAASa,KAAGb,GAAE,YAAU,KAAK,IAAA,IAAM,MAAIT,KAAES,GAAE,KAAK,UAAUA,GAAE,KAAK,YAAY,GAAG,CAAC;AAAA,IAAG,CAAA,GAAEA,GAAE,kBAAgBA,GAAE,gBAAcA,GAAE,UAAU,IAAK,CAAAA,OAAGA,GAAE,IAAK,IAAGA;AAAAA,EAAC;AAAU7B,WAAAA,GAAE6B,IAAEa,IAAE,EAAC,cAAaxB,IAAE,kBAAiBqD,MAAG;AAAQ7B,WAAAA,GAAE,KAAM,CAAAb,OAAG;AAAC,UAAGX,IAAE;AAAOwB,cAAAA,KAAExB,GAAEW,EAAC;AAAE,YAAG,WAASa;AAAS,iBAAA,QAAQ,QAAQA,EAAC,EAAE,KAAM,CAAAA,OAAG,WAASA,KAAEb,KAAEa,EAAE;AAAA,MAAC;AAAQb,aAAAA;AAAAA,IAAA,CAAG,EAAE,KAAM,CAAAa,OAAG,UAAKA,KAAE,EAAC,QAAOtB,IAAE,eAAc,CAAA,GAAG,WAAU,CAAE,EAAA,IAAE,SAASS,IAAEa,IAAExB,KAAE,GAAEqD,IAAE;AAAC,OAAC7B,KAAE,OAAO,OAAO,CAAGA,GAAAA,EAAC,GAAG,SAAOtB;AAAE,YAAMpB,KAAE0C,GAAE,WAAUwF,KAAElI,GAAE;AAAO,UAAIwE,KAAE;AAAS,aAAA,IAAI,QAAS,CAAApD,OAAG;AAAC,eAAKoD,KAAEtD;AAAGF;AAAI,iBAASA,KAAG;AAAC,gBAAME,KAAEsD;AAAI,cAAGtD,MAAGgH;AAAE,mBAAO,MAAK,CAAClI,GAAE,KAAM,CAAA6B,OAAG,CAACA,GAAE,OAAK,CAACA,GAAE,MAAO,KAAGT,GAAEsB,EAAC;AAASgF,gBAAAA,KAAE1H,GAAEkB,EAAC;AAAEW,aAAE,WAAW,EAAC,UAAS6F,GAAE,UAAS,UAASA,GAAE,MAAK,WAAUA,GAAE,WAAU,UAASA,GAAE,UAAS,qBAAoBA,GAAE,qBAAoB,iBAAiB7F,IAAE;AAACA,eAAE,QAAMX,IAAEW,GAAE,WAAS6F,IAAE7F,GAAE,eAAa6F,GAAE,MAAKnD,MAAGA,GAAE1C,EAAC;AAAA,UAAA,GAAG,EAAE,KAAM,CAAAA,OAAG;AAAC6F,eAAE,MAAI7F,GAAE,QAAOX,KAAEgH,MAAGlH;UAAE,CAAG,EAAE,MAAO,CAAAa,OAAG;AAAC6F,eAAE,SAAO7F,GAAE,UAAQA,GAAE,SAAQX,KAAEgH,MAAGlH;UAAE,CAAG;AAAA,QAAC;AAAA,MAAA,CAAG;AAAA,IAAGa,EAAAA,IAAEa,IAAE,GAAE6B,EAAC,CAAE;AAAA,EAAC;AAAC7B,KAAE,0BAAwB,SAASb,IAAE;AAAC,WAAO,SAASa,KAAE,EAAC,MAAK,SAAO;AAAC,aAAM,YAAUA,GAAE,OAAK1C,GAAE6B,IAAE,SAASA,IAAE;AAAC,cAAK,EAAC,OAAMa,IAAE,UAAStB,IAAE,YAAWpB,KAAE,CAAC,SAAQ,QAAQ,GAAE,WAAUkI,OAAGrG;AAAE,eAAO,IAAI,QAAS,CAACA,IAAE2C,OAAI;AAAK/B,kBAAA,YAAY,EAAC,OAAMC,IAAE,UAAStB,IAAE,YAAWpB,IAAE,WAAUkI,IAAE,QAAQxF,IAAE;AAACb,eAAE0C,GAAE7B,IAAE,OAAO,CAAC;AAAA,UAAA,GAAG,KAAKb,IAAE;AAAC2C,eAAE,EAAC,QAAO3C,GAAE,OAAO,QAAQ,oBAAmBX,EAAC,EAAA,CAAE;AAAA,aAAG;AAAA,QAAA,CAAG;AAAA,MAAA,EAAGwB,EAAC,GAAEA,EAAC,IAAE,YAAUA,GAAE,OAAK1C,GAAE6B,IAAE,SAASA,IAAE;AAAC,cAAK,EAAC,QAAOa,IAAE,YAAWtB,IAAE,aAAYpB,IAAE,YAAWkI,KAAE,CAAC,SAAQ,QAAQ,GAAE,WAAU1D,GAAG3C,IAAAA;AAAE,eAAO,IAAI,QAAS,CAACA,IAAEb,OAAI;AAACyB,kBAAI,YAAY,EAAC,QAAOC,IAAE,YAAWtB,IAAE,aAAYpB,IAAE,YAAWkI,IAAE,WAAU1D,IAAE,QAAQ9B,IAAE;AAAM,kBAAA,EAAC,cAAatB,IAAE,UAASF,IAAE,MAAKlB,IAAE,QAAOkI,IAAE,OAAM1D,GAAAA,IAAG9B;AAAEb,eAAE0C,GAAE,EAAC,QAAO,kBAAiB,eAAc,CAACnD,EAAC,GAAE,WAAU,CAAC,EAAC,MAAKsB,GAAE,YAAUA,GAAE,SAAS,QAAM,IAAG,MAAKtB,IAAE,MAAKpB,IAAE,MAAK0C,GAAE,YAAUA,GAAE,SAAS,QAAM,IAAG,OAAM8B,IAAE,QAAO0D,IAAE,UAAShH,IAAE,UAAS,SAAQ,WAAU,IAAG,EAAC,GAAE,OAAO,CAAC;AAAA,UAAA,GAAG,KAAKW,IAAE;AAACb,eAAE,EAAC,QAAOa,GAAE,OAAO,QAAQ,oBAAmBX,EAAC,EAAA,CAAE;AAAA,aAAG;AAAA,QAAA,CAAG;AAAA,MAAA,EAAGwB,EAAC,GAAEA,EAAC,IAAE1C,GAAE6B,IAAE,SAASA,IAAE;AAAC,cAAK,EAAC,OAAMa,IAAE,WAAUtB,OAAGS;AAAE,eAAO,IAAI,QAAS,CAACA,IAAE7B,OAAI;AAAC,cAAIkI,KAAEzF,QAAI;AAAc,cAAA,eAAa,OAAOsU,QAAI,cAAY,OAAOA,KAAG,sBAAoB7O,KAAE6O,KAAG,oBAAmB,cAAY,OAAO7O;AAAE,mBAAOlI,GAAE,EAAC,QAAOkB,KAAE,uCAAuC,CAAA;AAAEgH,aAAE,EAAC,MAAK,OAAM,OAAMxF,IAAE,WAAUtB,IAAE,QAAQsB,IAAE;AAACb,eAAE0C,GAAE7B,EAAC,CAAC;AAAA,UAAA,GAAG,KAAKb,IAAE;AAAC7B,eAAE,EAAC,QAAO6B,GAAE,OAAO,QAAQ,mBAAkBX,EAAC,EAAA,CAAE;AAAA,aAAG;AAAA,QAAA,CAAG;AAAA,MAAA,EAAGwB,EAAC,GAAEA,EAAC;AAAA,IAAA;AAAA,EAAC;AAAE,CAAE,GAAE,KAAG,EAAE,EAAE;AAAE,MAAM,KAAG;AAAS,SAAS,GAAGb,IAAE;AAAO,SAAA,EAAC,OAAM,EAAC,WAAU,EAAC,MAAK,OAAM,SAAQ,MAAI,CAAA,KAAI,SAAQ,EAAC,MAAK,CAAC,QAAO,KAAK,GAAE,SAAQ,OAAK,CAAC,MAAI,WAAU,EAAC,MAAK,QAAO,SAAQ,OAAK,CAAA,GAAK,GAAA,YAAW,EAAC,MAAK,CAAC,QAAO,KAAK,GAAE,SAAQ,MAAI,QAAO,EAAC,MAAK,QAAO,SAAQ,MAAI,OAAM,EAAC,MAAK,QAAO,SAAQ,MAAI,SAAQ,EAAC,MAAK,QAAO,SAAQ,MAAI,OAAM,EAAC,MAAK,CAAC,QAAO,MAAM,GAAE,SAAQ,GAAI,GAAA,UAAS,EAAC,MAAK,QAAO,SAAQ,MAAK,GAAE,aAAY,EAAC,MAAK,QAAO,SAAQ,EAAC,GAAE,UAAS,EAAC,MAAK,QAAO,SAAQ,GAAA,GAAI,UAAS,EAAC,MAAK,CAAC,SAAQ,MAAM,GAAE,SAAQ,MAAA,GAAI,SAAQ,EAAC,MAAK,CAAC,SAAQ,MAAM,GAAE,SAAQ,MAAA,GAAI,aAAY,EAAC,MAAK,CAAC,SAAQ,MAAM,GAAE,SAAQ,SAAI,WAAU,EAAC,MAAK,QAAO,SAAQ,GAAI,GAAA,YAAW,EAAC,MAAK,QAAO,SAAQ,MAAI,SAAQ,EAAC,MAAK,QAAO,SAAQ,GAAE,GAAE,YAAW,EAAC,MAAK,QAAO,SAAQ,MAAI,UAAS,EAAC,MAAK,CAAC,SAAQ,MAAM,GAAE,SAAQ,MAAI,GAAA,YAAW,EAAC,MAAK,QAAO,SAAQ,GAAA,GAAI,UAAS,EAAC,MAAK,QAAO,SAAQ,OAAM,GAAE,QAAO,EAAC,MAAK,SAAQ,SAAQ,QAAG,GAAE,MAAK,OAAK,EAAC,qBAAoB,OAAG,qBAAoB,OAAG,qBAAoB,CAAC,GAAE,0BAAyB,IAAG,kBAAiB,CAAG,GAAA,mBAAkB,SAAO,UAAS;AAAC,SAAK,mBAAiB,EAAC,SAAQ,KAAK,aAAY,MAAK,KAAK,UAAS,OAAM,EAAG,GAAA,KAAK,OAAQ,MAAI;AAAC,UAAIA,KAAE,CAAA;AAAG,aAAM,CAAC,eAAc,YAAW,aAAY,cAAa,UAAS,SAAQ,WAAU,SAAQ,UAAS,YAAW,WAAU,WAAU,cAAa,UAAU,EAAE,QAAS,CAAAa,OAAG;AAACb,WAAE,KAAK,KAAKa,EAAC,CAAC;AAAA,MAAG,CAAA,GAAEb;AAAAA,IAAA,GAAK,CAACA,IAAEa,OAAI;AAAC,UAAG,KAAK,aAAW;AAAG;AAAO,UAAItB,KAAE;AAAG,YAAMF,KAAE,CAAA;AAAG,eAAQqD,KAAE,GAAEA,KAAE1C,GAAE,QAAO0C;AAAI1C,WAAE0C,EAAC,MAAI7B,GAAE6B,EAAC,MAAIrD,GAAE,KAAKW,GAAE0C,EAAC,CAAC,GAAEnD,KAAE;AAAIS,SAAE,CAAC,MAAIa,GAAE,CAAC,MAAI,KAAK,iBAAiB,UAAQ,KAAK,cAAa,KAAK,iBAAiB,OAAK,KAAK,UAAS,KAAK,0BAA0BtB,IAAEF,EAAC;AAAA,IAAA,CAAG;AAAA,EAAG,GAAA,SAAQ,EAAC,0BAA0BW,IAAEa,IAAE;AAAA,EAAG,GAAA,oBAAoB,EAAC,QAAOb,KAAE,OAAG,SAAQa,IAAE,MAAKtB,GAAG,IAAA,IAAG;AAAC,SAAK,wBAAsB,KAAK,sBAAoB,MAAG,KAAK,2BAAyB,IAAG,KAAK,oBAAkB,MAAK,KAAK,gBAAA,EAAkB,KAAM,CAAAA,OAAG;AAAC,WAAK,sBAAoB;AAAG,YAAK,EAAC,MAAKF,IAAE,OAAMqD,OAAGnD,GAAE;AAAY,WAAA,aAAW,KAAK,iBAAiB,QAAMmD,KAAG,KAAK,sBAAoBrD,GAAE,SAAO,KAAK;AAAS,YAAMlB,KAAE6B,KAAEX,GAAE,SAAOA,GAAE,CAAC,IAAE,SAAOA;AAAE,WAAK,sBAAoBlB,IAAE0C,MAAGA,GAAE1C,EAAC;AAAA,IAAA,CAAG,EAAE,MAAO,CAAA6B,OAAG;AAAM,WAAA,sBAAoB,OAAG,KAAK,2BAAyBA,IAAE,KAAK,oBAAkBA,IAAET,MAAGA,GAAES,EAAC;AAAA,IAAG,CAAA;AAAA,EAAA,GAAI,gBAAgBa,KAAE,IAAG;AAAKtB,QAAAA;AAAEsB,SAAEA,MAAG,IAAGtB,KAAE,eAAa,OAAO,UAAQ,SAAOS,GAAE,eAAe,KAAK,SAAS,IAAEA,GAAE,SAAS,KAAK,SAAS;AAAQX,UAAAA,KAAEwB,GAAE,UAAQ,KAAK;AAAOxB,WAAIE,KAAEA,GAAE,OAAOF,EAAC;AAASqD,UAAAA,KAAE7B,GAAE,cAAY,KAAK;AAAWtB,SAAE,MAAM,QAAQmD,EAAC,IAAEnD,GAAE,WAAW,GAAGmD,EAAC,IAAEnD,GAAE,WAAWmD,EAAC;AAAQvE,UAAAA,KAAE0C,GAAE,SAAO,KAAK;AAAM1C,UAAG,OAAO,KAAKA,EAAC,EAAE,WAASoB,KAAEA,GAAE,MAAMpB,EAAC;AAASkI,UAAAA,KAAExF,GAAE,SAAO,KAAK;AAAMwF,WAAI9G,KAAEA,GAAE,MAAM8G,EAAC;AAAS1D,UAAAA,KAAE9B,GAAE,cAAY,KAAK;AAAW8B,WAAIpD,KAAEA,GAAE,WAAWoD,EAAC;AAASxD,UAAAA,KAAE0B,GAAE,WAAS,KAAK;AAAQ1B,WAAII,KAAEA,GAAE,QAAQJ,EAAC;AAAS0G,UAAAA,KAAEhF,GAAE,cAAY,KAAK;AAAWgF,WAAItG,KAAEA,GAAE,WAAWsG,EAAC;AAAS,cAAA,WAAShF,GAAE,WAASA,GAAE,WAAS,KAAK,cAAYtB,KAAEA,GAAE,SAAS;AAASwF,UAAAA,KAAElE,GAAE,WAAS,KAAK;AAAQkE,WAAIxF,KAAEA,GAAE,QAAQwF,EAAC;AAAG,UAAM5B,KAAE,WAAStC,GAAE,cAAYA,GAAE,cAAY,KAAK,iBAAiB,SAAQsR,KAAE,WAAStR,GAAE,WAASA,GAAE,WAAS,KAAK,iBAAiB,MAAKwD,KAAE,WAASxD,GAAE,WAASA,GAAE,WAAS,KAAK,UAAS0E,KAAE,WAAS1E,GAAE,UAAQA,GAAE,UAAQ,KAAK,SAAQoC,KAAE,WAASpC,GAAE,cAAYA,GAAE,cAAY,KAAK,aAAYmE,KAAE,EAAC,UAASX,GAAAA,GAAGgO,KAAE,EAAC,YAAW,WAASxR,GAAE,aAAWA,GAAE,aAAW,KAAK,YAAW,WAAU,WAASA,GAAE,YAAUA,GAAE,YAAU,KAAK;AAAkB0E,WAAAA,OAAIP,GAAE,UAAQqN,KAAGpP,OAAI+B,GAAE,cAAYqN,KAAG9S,KAAEA,GAAE,KAAK4S,MAAGhP,KAAE,EAAE,EAAE,MAAMgP,EAAC,EAAE,IAAInN,EAAC,GAAEzF;AAAAA;AAAI;AAAC,SAAS,GAAGS,IAAE;AAAC,SAAO,SAASa,IAAEtB,KAAE,IAAG;AAACA,SAAE,SAASS,IAAEa,KAAE,IAAG;AAAC,aAAOb,GAAE,WAASa,GAAE,YAAUb,GAAE,UAASA,GAAE,mBAAiBa,GAAE,oBAAkBb,GAAE,kBAAiB,OAAO,OAAOA,GAAE,gBAAea,GAAE,cAAc,GAAE,OAAO,OAAOb,GAAE,cAAaa,GAAE,YAAY,GAAE,YAAU,OAAOA,GAAE,kBAAgBb,GAAE,gBAAca,GAAE,gBAAeb;AAAAA,IAAA,EAAG,EAAC,UAAS,OAAG,gBAAe,EAAC,OAAM,UAAS,MAAK,KAAI,GAAA,cAAa,EAAC,MAAK,SAAQ,OAAM,MAAE,EAAA,GAAGT,EAAC;AAAE,UAAK,EAAC,UAASF,IAAE,gBAAeqD,IAAE,cAAavE,IAAE,kBAAiBkI,GAAC,IAAE9G,IAAEoD,KAAE,CAACtD;AAAE,WAAO,IAAI,MAAM,IAAG,EAAC,IAAIA,IAAEF,IAAE;AAAC,cAAOA,IAAE;AAAA,QAAC,KAAI;AAAiB,iBAAA;AAAA,QAA0B,KAAI;AAAS,iBAAM;MAAE;AAAQ,aAAA,SAAS,EAAC,IAAGa,IAAE,iBAAgBa,IAAE,iBAAgBtB,GAAG,IAAA,IAAG;AAAC,eAAO,YAAkBF,IAAE;AAAA;AAAOqD,kBAAAA,KAAEnD,KAAEA,GAAE,EAAC,QAAOF,GAAC,CAAC,IAAE;AAAG,gBAAIlB,IAAEkI;AAAK,gBAAA;AAAC,qBAAO,MAAM,EAAE,EAAExF,IAAE,QAAQ,GAAE,mBAAI6B,GAAE,GAAEvE,KAAE,MAAM6B,GAAE,GAAGX,EAAC,GAAE,MAAM,EAAE,EAAEwB,IAAE,SAAS,GAAE,iCAAI6B,KAAJ,EAAM,QAAOvE,GAAE,EAAA,GAAEA;AAAAA,qBAAQ6B,IAAE;AAAC,oBAAMqG,KAAErG,IAAE,MAAM,EAAE,EAAEa,IAAE,MAAM,GAAE,iCAAI6B,KAAJ,EAAM,OAAM2D,GAAE,EAAA,GAAEA;AAAAA,YAAA,UAAE;AAAQ,oBAAM,EAAE,EAAExF,IAAE,UAAU,GAAEwF,KAAE,iCAAI3D,KAAJ,EAAM,OAAM2D,GAAG,KAAA,iCAAI3D,KAAJ,EAAM,QAAOvE,KAAE;AAAA,YAAC;AAAA,UAAA;AAAA;AAAA,MAAI,EAAA,EAAC,IAAG,SAAekB,MAAK0F,IAAE;AAAA;AAAK5B,cAAAA;AAAER,gBAAG/B,QAAI,YAAY,EAAC,OAAM8B,GAAE,OAAM,MAAKA,GAAE,KAAA,CAAK;AAAE,gBAAMyP,KAAE,EAAC,MAAKtR,IAAE,MAAK,GAAE,MAAK,EAAC,QAAO1B,IAAE,QAAO4F,GAAE,EAAA;AAAE,sBAAU,OAAOxF,GAAE,iBAAe,SAASS,IAAEa,IAAE;AAAC,kBAAMtB,KAAEsB,GAAE,KAAK,QAAOxB,KAAEW,GAAE,iBAAe,CAAA,GAAG0C,KAAErD,GAAEE,EAAC,KAAGF,GAAE,GAAG;AAAEqD,mBAAI7B,GAAE,aAAW6B;AAAAA,UAAA,EAAInD,IAAE4S,EAAC;AAAE,cAAI9N,KAAE;AAAM,cAAA;AAAClB,iBAAE,MAAMnD,GAAE,aAAamS,EAAC;AAAA,mBAAQnS,IAAE;AAACqE,iBAAE,MAAGlB,KAAE,EAAC,QAAO,IAAI,GAAGnD,EAAC;UAAE;AAAC,gBAAK,EAAC,YAAWuF,IAAE,SAAQtC,IAAE,QAAO+B,IAAE,UAASqN,GAAC,IAAElP,GAAE,UAAQ,CAAA;AAAG,cAAGR,MAAG/B,QAAI,YAAA,GAAcyR,MAAGA,GAAE,SAAOA,GAAE,iBAAe,GAAGA,EAAC,GAAE,EAAE,GAAE,mBAAIA,GAAE,IAAGpP,IAAE;AAAC,gBAAIjD,KAAEgF;AAAE,gBAAGX,MAAGgC,IAAE;AAACrG,oBAAG,MAAMqG,GAAE,EAAC,YAAWxF,IAAE,YAAW1B,IAAE,QAAO4F,IAAE,YAAWQ,IAAE,SAAQtC,IAAE,QAAO+B,IAAE,GAAG,UAAQA;AAAAA,YAAC;AAAIrC,gBAAAA;AAAE,kBAAG,YAAUxE,GAAE;AAAKyC,wBAAI,UAAU,EAAC,OAAMZ,IAAE,MAAK,QAAO;AAAA,mBAAM;AAAC,oBAAG,YAAU7B,GAAE;AAAK,wBAAM,IAAI,MAAM,8BAA8BA,GAAE,IAAI,EAAE;AAAE;AAAC,wBAAK,EAAC,SAAQ0C,OAAG,MAAM,WAA8E;AAAA,+DAA/D,EAAC,OAAMb,IAAE,SAAQa,IAAE,YAAWtB,IAAE,YAAWF,IAAE,aAAYqD,GAAC,IAAE,IAAG;AAAC,6BAAO,IAAI,QAAS,CAACvE,IAAEkI,OAAI;AAACzF,gCAAI,UAAU,EAAC,OAAMZ,IAAE,SAAQa,IAAE,YAAWtB,IAAE,YAAWF,IAAE,aAAYqD,IAAE,QAAQ1C,IAAE;AAAC7B,6BAAE6B,EAAC;AAAA,2BAAG,OAAM;AAAC7B,6BAAE,EAAC,SAAQ,OAAG,QAAO,KAAG,CAAA;AAAA,2BAAG;AAAA,sBAAA,CAAG;AAAA,oBAAA;AAAA,oBAAG,EAAC,OAAM,MAAK,SAAQ6B,IAAE,YAAW7B,GAAE,OAAM,YAAW,MAAK,aAAYA,GAAE,QAAM,OAAK,MAAK;AAAE,sBAAGA,GAAE,SAAO0C;AAASxB,2BAAAA,GAAE,GAAG0F,EAAC;AAAA,gBAAC;AAAA,cAAC;AAAC,kBAAMxF,KAAE,IAAI,GAAG,EAAC,SAAQgG,IAAE,MAAKtC,IAAE,SAAQ+B,IAAE,WAAU7B,GAAE,UAAU,CAAA;AAAE,kBAAM5D,GAAE,SAAO4D,GAAE,QAAO,EAAE,GAAE,EAAC,MAAK,GAAE,SAAQ5D,GAAE,CAAA,GAAEA;AAAAA,UAAC;AAAQ,iBAAA,EAAE,GAAE,EAAC,MAAK,GAAE,SAAQ4D,GAAE,OAAA,CAAO,GAAEA,GAAE;AAAA,QAAA;AAAA,SAAQ,iBAAgB,cAAa,iBAAgB,SAAS,EAAC,QAAOnD,GAAG,IAAA,IAAG;AAAC,eAAM,EAAC,YAAWa,IAAE,YAAW1B,IAAE,QAAOa;SAAI;AAAA,OAAG;AAAA,EAAA;AAAE;AAAC,SAAS,GAAGA,IAAE;AAAC,SAAO,EAAE,+CAA+C,QAAQ,aAAYA,GAAE,OAAO,OAAO,CAAC;AAAC;AAAC,SAAe,KAAwC;AAAA,6CAArC,EAAC,QAAOA,IAAE,mBAAkBa,KAAE,MAAI,IAAA,IAAG;AAAOtB,UAAAA,KAAE,GAAG,IAAI;AAAgI,QAAGS,MAAGa;AAAQ,YAAA,IAAI,MAAM,gFAAgF;AAAKb,QAAAA;AAAST,aAAAA,GAAE,iBAAeS,IAAE;AAAG,UAAMX,KAAE,MAAM,IAAI,QAAS,CAACW,IAAEa,OAAI;AAAKD,cAAA,MAAM,EAAC,QAAQC,IAAE;AAACb,WAAEa,GAAE,IAAI;AAAA,MAAA,GAAG,KAAKb,IAAE;AAACa,WAAE,IAAI,MAAMb,GAAE,MAAM,CAAC;AAAA,SAAG;AAAA,IAAA,CAAG,GAAE0C,KAAE,KAAK,aAAa,aAAY,EAAC,UAAS,KAAA,CAAG;AAAE,WAAO,MAAMA,GAAE,+BAA+B,EAAC,MAAKrD,IAAE,mBAAkBwB,GAAE,CAAA,GAAEtB,GAAE,eAAaF,IAAE,EAAC,MAAKA,GAAC;AAAA,EAAC;AAAA;AAAC,SAAe,GAAGW,IAAE;AAAA;AAAOa,UAAAA,KAAE,GAAG,IAAI;AAAE,WAAOA,GAAE,gBAAcA,GAAE,cAAY,GAAG,KAAK,MAAKb,EAAC,EAAE,KAAM,CAAAA,OAAGA,EAAE,EAAE,MAAO,CAAAA,OAAG;AAAO,YAAA,OAAOa,GAAE,aAAYb;AAAAA,IAAA,CAAG,IAAGa,GAAE;AAAA,EAAW;AAAA;AAAC,SAAS,GAAGb,IAAE;AAAQ,SAAA,SAAS,EAAC,QAAOa,IAAE,mBAAkBtB,KAAE,MAAI,IAAA,IAAG;AAAQ,WAAA,GAAG,KAAKS,IAAE,EAAC,QAAOa,IAAE,mBAAkBtB,IAAE;AAAA,EAAA;AAAE;AAAC,SAAS,GAAGS,IAAE;AAAC,QAAMa,KAAE,EAAC,eAAcD,QAAI,eAAc,iBAAgBA,QAAI;AAAiB,SAAO,SAASrB,IAAE;AAAC,WAAO,IAAI,QAAS,CAACF,IAAEqD,OAAI;AAAC7B,SAAEb,EAAC,EAAE,iCAAIT,KAAJ,EAAM,QAAQS,IAAE;AAACX,WAAEW,EAAC;AAAA,MAAA,GAAG,KAAKA,IAAE;AAAC0C,WAAE1C,EAAC;AAAA,UAAG;AAAA,IAAA,CAAG;AAAA,EAAA;AAAE;AAAC,MAAM,WAAW,MAAK;AAAA,EAAC,cAAa;AAAC,SAAK,YAAU;EAAE;AAAA,EAAC,YAAYA,IAAEa,IAAE;AAAC,SAAK,UAAUb,EAAC,MAAI,KAAK,UAAUA,EAAC,IAAE,CAAC,IAAG,KAAK,UAAUA,EAAC,EAAE,KAAKa,EAAC;AAAA,EAAC;AAAA,EAAC,GAAGb,IAAEa,IAAE;AAAQ,WAAA,KAAK,YAAYb,IAAEa,EAAC;AAAA,EAAC;AAAA,EAAC,eAAeb,IAAEa,IAAE;AAAC,QAAG,CAACA;AAAQ,YAAA,IAAI,MAAM,sEAAsE;AAAQtB,UAAAA,KAAE,KAAK,UAAUS,EAAC;AAAE,QAAG,CAACT;AAAE;AAAaF,UAAAA,KAAE,SAASW,IAAEa,IAAE;AAAC,eAAQtB,KAAES,GAAE,SAAO,GAAET,MAAG,GAAEA;AAAOS,YAAAA,GAAET,EAAC,MAAIsB;AAAStB,iBAAAA;AAAQ,aAAA;AAAA,IAAA,EAAIA,IAAEsB,EAAC;AAAEtB,OAAE,OAAOF,IAAE,CAAC;AAAA,EAAC;AAAA,EAAC,IAAIW,IAAEa,IAAE;AAAQ,WAAA,KAAK,eAAeb,IAAEa,EAAC;AAAA,EAAC;AAAA,EAAC,kBAAkBb,IAAE;AAAQ,WAAA,KAAK,UAAUA,EAAC;AAAA,EAAC;AAAA,EAAC,KAAKA,OAAKa,IAAE;AAAOtB,UAAAA,KAAE,KAAK,UAAUS,EAAC;AAAKT,QAAAA;AAAE,eAAQS,KAAE,GAAEA,KAAET,GAAE,QAAOS;AAAIT,WAAES,EAAC,EAAE,GAAGa,EAAC;AAAA,EAAC;AAAC,EAAC;AAAA,EAAC,cAAa;AAAC,UAAA,GAAQ,KAAK,0BAAwB,KAAK,oBAAoB,KAAK,IAAI,GAAE,KAAK,oBAAkB,IAAG,KAAK,gBAAc,CAAA;AAAA,EAAE;AAAA,EAAC,OAAM;AAAC,WAAO,QAAQ,IAAI,CAAC,GAAG,eAAe,EAAI,GAAA,GAAG,iBAAiB,EAAG,CAAA,CAAC,EAAE,KAAM,CAAC,CAAC,EAAC,OAAMb,GAAAA,IAAG,CAAG,GAAA,EAAC,KAAIa,GAAG,IAAA,EAAE,IAAE,OAAK;AAAC,UAAG,CAACb;AAAQ,cAAA,IAAI,MAAM,oDAAoD;AAAE,UAAG,CAACa;AAAQ,cAAA,IAAI,MAAM,wBAAwB;AAAO,WAAA,SAAOb,IAAE,KAAK,gBAAca,IAAE,KAAK,SAAO,KAAK,IAAI,IAAE,MAAI,KAAK,MAAM,MAAI,KAAK,OAAO,IAAE,GAAG,GAAE,KAAK,KAAK,MAAM,GAAE,KAAK,qBAAqB;AAAA,IAAC,GAAI,CAAAb,OAAG;AAAC,YAAM,KAAK,KAAK,SAAQA,EAAC,GAAE,KAAK,MAAQA,GAAAA;AAAAA,IAAA,CAAG;AAAA,EAAC;AAAA,EAAO,OAAM;AAAA;AAAC,aAAO,KAAK;IAAM;AAAA;AAAA,EAAC,eAAeA,IAAE;AAAC,QAAG,cAAYA,GAAE;AAAW,aAAA;AAAG,UAAMa,KAAEb,MAAGA,GAAE,QAAMA,GAAE,KAAK;AAAc,WAAA,EAAE,CAACa,MAAG,oBAAkBA,GAAE,WAASA,GAAE,UAAQ,KAAK;AAAA,EAAO;AAAA,EAAC,oBAAoBb,IAAE;AAAI,QAAA,CAAC,KAAK,eAAeA,EAAC;AAAE;AAAO,UAAMa,KAAEb,MAAGA,GAAE,QAAMA,GAAE,KAAK,SAAQ,EAAC,QAAOT,IAAE,WAAUF,IAAE,SAAQqD,GAAG7B,IAAAA;AAAE,SAAK,cAAc,KAAK,EAAC,QAAOtB,IAAE,WAAUF,IAAE,SAAQqD,GAAC,CAAC,GAAE,KAAK,eAAe;AAAA,EAAC;AAAA,EAAC,iBAAgB;AAAQ,eAAA;AAAO1C,YAAAA,KAAE,KAAK,cAAc,KAAM,CAAAA,OAAGA,GAAE,cAAY,KAAK,oBAAkB,CAAE;AAAE,UAAG,CAACA;AAAE;AAAW,WAAA,qBAAoB,KAAK,qBAAqBA,EAAC;AAAA,IAAC;AAAA,EAAC;AAAA,EAAC,qBAAqBA,IAAE;AAAC,UAAK,EAAC,QAAOa,IAAE,WAAUtB,IAAE,SAAQF,GAAGW,IAAAA;AAAE,cAAQa,KAAE,KAAK,KAAK,EAAC,WAAUtB,IAAE,SAAQF,GAAE,CAAA,IAAE,cAAYwB,MAAG,KAAK,eAAe,EAAC,WAAUtB,IAAE,SAAQF,IAAE;AAAA,EAAC;AAAA,EAAC,eAAe,EAAC,WAAUW,IAAE,SAAQa,GAAC,IAAE,IAAG;AAAM,SAAA,KAAK,WAAUA,EAAC;AAAA,EAAC;AAAA,EAAC,KAAK,EAAC,WAAUb,IAAE,SAAQa,GAAC,IAAE,IAAG;AAAC,SAAK,KAAK,OAAMA,EAAC,GAAE,KAAK;EAAO;AAAA,EAAC,uBAAsB;AAAKD,YAAA,cAAc,KAAK,uBAAuB;AAAA,EAAC;AAAA,EAAC,WAAU;AAAKA,YAAA,eAAe,KAAK,uBAAuB;AAAA,EAAC;AAAA,EAAC,SAAQ;AAAO,WAAA,EAAC,OAAM,KAAK,QAAO,cAAa,KAAK,eAAc,OAAM,KAAK;EAAO;AAAA,EAAC,QAAO;AAAC,SAAK,SAAS,GAAE,KAAK,KAAK,OAAO;AAAA,EAAC;AAAC;AAAC,SAAe,GAAGZ,IAAEa,IAAE;AAAA;AAAC,UAAMtB,KAAE,UAAUS,EAAC,IAAIa,EAAC;AAAkB,QAAA;AAAC,YAAMb,KAAE,OAAMX,KAAE,EAAC,KAAIE,IAAE,SAAQ,IAAK,GAAA,IAAI,QAAS,CAACS,IAAEa,OAAI;AAAC,WAAG,QAAQ,iCAAIxB,KAAJ,EAAM,QAAQwB,IAAE;AAACb,aAAEa,EAAC;AAAA,QAAA,GAAG,KAAKb,IAAE;AAACa,aAAEb,EAAC;AAAA,YAAG;AAAA,MAAG,CAAA;AAAG,aAAM,EAAE,CAACA,GAAE,QAAM,MAAIA,GAAE,KAAK;AAAA,aAAYA,IAAE;AAAO,aAAA;AAAA,IAAE;AAAKX,QAAAA;AAAAA,EAAC;AAAA;AAAC,SAAe,GAAGW,IAAE;AAAA;AAA8R,UAAMa,KAAEb,GAAE;AAAQ,QAAG,CAACa,GAAE;AAAU;AAAO,UAAK,EAAC,SAAQtB,IAAE,WAAUF,GAAGwB,IAAAA,GAAE,WAAU,EAAC,SAAQ6B,GAAC,IAAE,MAAM,SAAe1C,IAAEa,IAAE;AAAA;AAAKtB,YAAAA;AAAE,iBAAQF,KAAE,GAAEA,KAAEW,GAAE,QAAOX,MAAI;AAAOqD,gBAAAA,KAAE1C,GAAEX,EAAC;AAAE,cAAG,MAAM,GAAGqD,IAAE7B,EAAC,GAAE;AAACtB,iBAAEmD;AAAE;AAAA,UAAK;AAAA,QAAC;AAAC,eAAM,EAAC,SAAQnD,IAAE,MAAKsB,GAAC;AAAA,MAAA;AAAA,MAAGtB,IAAEF,EAAC;AAAKqD,QAAAA;AAAE,aAAO7B,GAAE,eAAa6B,IAAE,MAAK7B,GAAE,YAAUxB;AAAG,UAAMlB,KAAE,QAA0B,MAAM;AAAE,QAAIkI,KAAE;AAAM,QAAA,aAAWxF,GAAE,UAAU,qBAAmBA,GAAE,UAAU,cAAY,MAAGwF,KAAE,+JAA6JA,KAAE,8FAA6FA,MAAG,qHAA6K,MAAI,EAAE,QAAQ,KAAK,MAAIA,MAAG,wFAAuF,CAACxF,GAAE,UAAU;AAAkB,YAAA,IAAI,MAAMwF,EAAC;AAAElI,OAAEkI,EAAC;AAAA,EAAC;AAAA;AAAC,SAAS,GAAGrG,IAAE;AAACA,KAAE,oBAAkBA,GAAE,kBAAgB,IAAI,EAAE,EAAC,eAAc,WAAU;AAAKa,QAAAA,KAAE,QAAQ;AAActB,QAAAA;AAAEA,SAAE,GAAEsB,KAAE,IAAI,QAAS,CAAAb,OAAG;AAAC,iBAAY,MAAI;AAACA;SAAMT,EAAC;AAAA,IAAA,CAAG;AAAQF,UAAAA,KAAEW,GAAE;AAAO,WAAOa,GAAE,KAAM,MAAIxB,GAAE,cAAA,CAAgB,EAAE,KAAM,CAAAW,OAAGA,KAAE,QAAQ,QAAUX,IAAAA,GAAE,mBAAoB;AAAA,KAAG;AAAE;AAAC,MAAM,KAAG,EAAC,KAAI,IAAG,SAAQ,IAAG,QAAO,IAAG,SAAQ,IAAG,QAAO,GAAE;AAAE,IAAI,KAAG,IAAI,MAAK;AAAA,EAAC,KAAKW,IAAE;AAAC,QAAIa,KAAE,CAAA;AAAStB,UAAAA,KAAE,GAAGS,GAAE,QAAQ;AAAE,QAAG,CAACT;AAAQ,YAAA,IAAI,MAAM,kBAAkB;AAAEsB,SAAEtB,GAAE,KAAKS,EAAC,GAAK,SAASA,IAAE;AAAc,YAAMa,KAAE,CAAA;AAAGb,SAAE,UAAQa,IAAEA,GAAE,WAAoE,UAAQ;AAAG,YAAMtB,KAAE;AAAEA,YAAG,CAACA,GAAE,SAAOsB,GAAE,YAAUtB;AAAG,YAAMF,KAAE,IAAI,EAAE,EAAC,eAAc,WAAU;AAAC,eAAO,GAAGW,EAAC;AAAA,SAAG;AAAEa,SAAE,mBAAiB,WAAU;AAAC,eAAOxB,GAAE;MAAK;AAAA,IAAC,EAAGwB,EAAC,GAAE,GAAGA,EAAC,GAAE,GAAGA,EAAC,GAAE,SAASb,IAAE;AAAC,YAAMa,KAAEb,GAAE;AAAWA,SAAE,aAAW,SAASA,IAAE;AAAQa,eAAAA,GAAE,KAAK,MAAKb,EAAC;AAAA,MAAA;AAAA,IAAC,EAAGa,EAAC,GAAE,SAASb,IAAE;AAACA,SAAE,WAAS,SAASa,IAAE;AAAC,YAAGA,MAAG,OAAO,KAAKA,EAAC,EAAE,SAAO;AAAE,iBAAOb,GAAE,KAAKa,EAAC,EAAE,SAAS;AAAE,YAAG,KAAK;AAAU,iBAAO,KAAK;AAAU,cAAMtB,KAAE,GAAG,IAAG,EAAC,WAAUS,IAAE;AAAS,eAAA,KAAK,YAAUT,IAAEA;AAAAA,MAAA,GAAGS,GAAE,iBAAe,SAASa,IAAE;AAAC,YAAGA,MAAG,OAAO,KAAKA,EAAC,EAAE,SAAO;AAAE,iBAAOb,GAAE,KAAKa,EAAC,EAAE,eAAe;AAAE,YAAG,KAAK;AAAgB,iBAAO,KAAK;AAAsBtB,cAAAA,KAAE,GAAG,IAAG,EAAC,WAAUS,IAAE,OAAM,MAAG;AAAS,eAAA,KAAK,kBAAgBT,IAAEA;AAAAA,MAAA;AAAA,IAAC,EAAGsB,EAAC,GAAE,SAASb,IAAE;AAACA,SAAE,qBAAmB,IAAGA,GAAE,sBAAoB,GAAG,wBAAwBA,EAAC,GAAE,OAAO,OAAOA,IAAE,EAAC,IAAI,eAAc;AAAC,eAAO,GAAGA,EAAC;AAAA,MAAE,EAAA,CAAC,GAAEA,GAAE,aAAW,IAAGA,GAAE,4BAA0B,GAAGA,EAAC,GAAEA,GAAE,eAAa,GAAGA,EAAC;AAAA,MAAGa,EAAC;AAAQ,WAAA,CAAC,gBAAe,cAAa,cAAa,kBAAiB,gBAAe,qBAAqB,EAAE,QAAS,CAAAb,OAAG;AAAI,UAAA,CAACa,GAAEb,EAAC;AAAE;AAAaT,YAAAA,KAAEsB,GAAEb,EAAC;AAAEa,SAAEb,EAAC,IAAE,WAAU;AAAC,eAAOT,GAAE,MAAMsB,IAAE,MAAM,KAAK,SAAS,CAAC;AAAA,SAAGA,GAAEb,EAAC,KAAE,yBAASA,IAAEa,IAAE;AAAC,eAAO,SAAStB,IAAE;AAAC,cAAIF,KAAE;AAAG,cAAG,mBAAiBwB,IAAE;AAAOb,kBAAAA,KAAET,MAAGA,GAAE,QAAM;AAAEF,iBAAEW,OAAI;AAAA,UAAC;AAAO0C,gBAAAA,KAAE,mBAAiB7B,MAAG,CAACxB,IAAElB,KAAE,KAAK,gBAAgB;AAAOoB,eAAEA,MAAG;AAAQ,gBAAA,EAAC,SAAQ8G,IAAE,MAAK1D,IAAE,UAASkD,OAAG,GAAGtG,EAAC,GAAEwF,KAAE5G,GAAE,KAAM,MAAIkB,KAAE,QAAQ,YAAU,EAAE,EAAEwB,IAAE,QAAQ,GAAEtB,EAAC,CAAE,EAAE,KAAM,MAAIS,GAAE,KAAK,MAAKT,EAAC,CAAE,EAAE,KAAM,CAAAS,OAAGX,KAAE,QAAQ,QAAQW,EAAC,IAAE,EAAE,EAAEa,IAAE,SAAS,GAAEb,EAAC,EAAE,KAAM,MAAI,EAAE,EAAEa,IAAE,UAAU,GAAEb,EAAC,CAAE,EAAE,KAAM,OAAK0C,MAAG,EAAE,GAAE,EAAC,MAAK,GAAE,SAAQ1C,GAAC,CAAC,GAAE,QAAQ,QAAQA,EAAC,EAAG,GAAI,CAAAA,OAAGX,KAAE,QAAQ,OAAOW,EAAC,IAAE,EAAE,EAAEa,IAAE,MAAM,GAAEb,EAAC,EAAE,KAAM,MAAI,EAAE,EAAEa,IAAE,UAAU,GAAEb,EAAC,CAAE,EAAE,KAAM,OAAK,EAAE,GAAE,EAAC,MAAK,GAAE,SAAQA,GAAAA,CAAE,GAAE,QAAQ,OAAOA,EAAC,EAAG,CAAE;AAAK,cAAA,EAAEqG,MAAG1D,MAAGkD;AAAUd,mBAAAA;AAAEA,aAAE,KAAM,CAAA/E,OAAG;AAACqG,kBAAGA,GAAErG,EAAC,GAAE6F,MAAGA,GAAE7F,EAAC,GAAE0C,MAAG,EAAE,GAAE,EAAC,MAAK,GAAE,SAAQ1C,IAAE;AAAA,UAAC,GAAI,CAAAA,OAAG;AAAC2C,kBAAGA,GAAE3C,EAAC,GAAE6F,MAAGA,GAAE7F,EAAC,GAAE0C,MAAG,EAAE,GAAE,EAAC,MAAK,GAAE,SAAQ1C,IAAE;AAAA,UAAA,CAAG;AAAA,QAAA;AAAA,MAAC,EAAGa,GAAEb,EAAC,GAAEA,EAAC,GAAE,KAAKa,EAAC;AAAA,IAAG,CAAA,GAAEA,GAAE,OAAK,KAAK,MAAKA;AAAAA,EAAC;AAAC;CAAG,MAAI;AAAC,QAAMb,KAAE;AAAE,MAAIa,KAAE,CAAA;AAAMb,MAAAA,MAAG,MAAIA,GAAE;AAAOa,SAAEb,GAAE,CAAC,GAAE,KAAG,GAAG,KAAKa,EAAC,GAAE,GAAG,aAAW;AAAA,OAAO;AAAOA,UAAAA,KAAE,CAAC,QAAO,gBAAe,cAAa,cAAa,kBAAiB,gBAAe,YAAW,sBAAqB,cAAc;AAAMtB,QAAAA;AAAEA,SAAES,MAAGA,GAAE,SAAO,IAAE,2CAA4E,uEAAsEa,GAAE,QAAS,CAAAb,OAAG;AAAIA,SAAAA,EAAC,IAAE,WAAU;AAAC,eAAO,QAAQ,MAAMT,EAAC,GAAE,QAAQ,OAAO,IAAI,GAAG,EAAC,MAAK,WAAU,SAAQA,GAAAA,CAAE,CAAC;AAAA,MAAA;AAAA,IAAC,CAAG;AAAA,EAAC;AAAC,SAAO,OAAO,IAAG,EAAC,IAAI,eAAc;AAAC,WAAO,GAAG,EAAE;AAAA,KAAG,GAAE,GAAG,EAAE,GAAE,GAAG,iBAAe,GAAE,GAAG,oBAAkB,GAAE,GAAG,kBAAgB;AAAoC;AAAK,IAAI,KAAG;ACDr++E,MAAM,YAAsB,CAAC,GAAG,kEAAkE;AAClG,MAAM,aAAa,CAAC,QAAwB,IAAI,QAAQ,SAAS,CAAC,OAAgB,OAAO,MAAM,MAAM,GAAI,EAAE,QAAQ,SAAS,EAAE;AAC9H,MAAM,iBAAiB,CAAC,KAAiB,UAAU,UAAkB;AACnE,MAAI4V,OAAM;AACD,WAAAhX,KAAI,GAAGgF,KAAI,IAAI,QAAQhF,KAAIgF,IAAGhF,MAAK,GAAG;AAC7C,UAAM,CAAC,IAAI,IAAI,EAAE,IAAI,CAAC,IAAIA,EAAC,GAAG,IAAIA,KAAI,CAAC,GAAG,IAAIA,KAAI,CAAC,CAAC;AACpD,UAAM,MAAO,MAAM,KAAO,MAAM,IAAK;AAC9B,IAAAgX,QAAA,UAAU,QAAQ,EAAE;AACpB,IAAAA,QAAA,UAAW,QAAQ,KAAM,EAAE;AAClC,IAAAA,QAAO,OAAO,OAAO,cAAc,UAAW,QAAQ,IAAK,EAAE,IAAI;AACjE,IAAAA,QAAO,OAAO,OAAO,cAAc,UAAU,MAAM,EAAE,IAAI;AAAA,EAC3D;AACO,SAAA,UAAU,WAAWA,IAAG,IAAIA;AACrC;AACA,MAAM,QACJ,OAAO,SAAS,aACZ,CAAC9V,OAAc,KAAKA,EAAC,IACrB,CAACA,OAAc;AACb,MAAIA,GAAE,WAAW,CAAC,IAAI,KAAK;AACnB,UAAA,IAAI,WAAW,yCAAyC;AAAA,EAChE;AACO,SAAA,eAAe,WAAW,KAAKA,IAAG,CAACF,OAAcA,GAAE,WAAW,CAAC,CAAC,CAAC;AAC1E;AACN,MAAM,OAAO,CAAC,QAAwB,SAAS,mBAAmB,GAAG,CAAC;AAE9C,SAAAU,QAAO,KAAa,UAAU,OAAe;AACnE,QAAMsV,OAAM,MAAM,KAAK,GAAG,CAAC;AACpB,SAAA,UAAU,WAAWA,IAAG,IAAIA;AACrC;ACVO,MAAM,wBAAwB;AAG9B,MAAMC,mBAA+B;AAAA,EAC1C,KAAK;AAAA,EACL,UAAU;AAAA,EACV,aAAa;AAAA,EACb,cAAc;AAAA,EACd,WAAW;AAAA,EACX,UAAU;AAAA,EACV,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,MAAM;AAAA,EACN,QAAQ;AACV;AAyDO,MAAM,YAAY;AAAA,EACvB,UAAU;AACD,WAAA;AAAA,EACT;AAAA,EACA,UAAU;AACD,WAAA;AAAA,EACT;AAAA,EACA,OAAO;AACE,WAAA;AAAA,EACT;AAAA,EACA,QAAQ;AACC,WAAA;AAAA,EACT;AACF;ACxCO,MAAM,aAAa,iCACrB,YADqB;AAAA,EAExB,iBAAiB,eAAe,EAAE;AAAA,EAClC,UAAU,eAAe,EAAE;AAC7B;AC6CO,MAAM,kBAAkB,iCAC1B,YAD0B;AAAA,EAE7B,UAAU;AACZ;ACjGO,MAAM,0BAA0B;AAGhC,MAAM,iBAAiC;AAAA,EAC5C,OAAO;AAAA,EACP,kBAAkB;AAAA,EAClB,MAAM;AAAA,EACN,mBAAmB;AAAA,EACnB,KAAK;AAAA,EACL,MAAM;AAAA,EACN,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,eAAe;AAAA,EACf,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,YAAY;AACd;AC9BO,MAAM,sBAAsB;AAAA;AAAA;AAAA;AAAA,EAIjC,OAAO,eAAoC,OAAO;AAAA;AAAA;AAAA;AAAA,EAIlD,WAAW;AAAA,IACT,MAAM;AAAA,IACN,SAAS,OAAO,CAAA;AAAA,EAClB;AACF;ACdO,MAAM,eAAe,iCACvB,YADuB;AAAA;AAAA;AAAA;AAAA,EAK1B,MAAM,gBAAgB,KAAK;AAAA;AAAA;AAAA;AAAA,EAI3B,UAAU;AAAA,IACR,MAAM,CAAC,QAAQ,QAAQ,OAAO;AAAA,IAC9B,SAAS;AAAA,EACX;AAAA;AAAA;AAAA;AAAA,EAIA,YAAY,gBAAgB,IAAI;AAAA;AAAA;AAAA;AAAA,EAIhC,QAAQ,eAAe,EAAE;AAC3B;ACrBO,SAAS,aAAa;AACrB,QAAA,EAAE,UAAU;AACZ,QAAA,WAAW,IAAY,EAAE;AACzB,QAAA,aAAa,IAAY,EAAE;AAC3B,QAAA,YAAY,IAAY,EAAE;AAC1B,QAAA,aAAa,IAAY,EAAE;AAC3B,QAAA,WAAW,IAAY,CAAC;AACxB,QAAA,YAAY,IAAY,CAAC;AACzB,QAAA,OAAO,IAAY,CAAC;AACpB,QAAA,SAAS,IAAY,CAAC;AACtB,QAAA,QAAQ,IAAY,CAAC;AACrB,QAAA,SAAS,IAAY,CAAC;AACtB,QAAA,MAAM,IAAY,CAAC;AAEzB,WAASpO,QAAO;AAAA,EAAC;AAER,WAAA,KACP,WAaA,cACA,UACA;AAEA,QAAI,cAAc;AAChB,YAAM,gBAAgB;AAAA,QACpB,MAAM,QAAQ;AAAA,QACd,cAAc,YAAY,cAAc,kBAAkB,cAAc,eAAe,MAAM,QAAQ,eAAe;AAAA,QACpH,cAAc,UAAU,cAAc,gBAAgB,cAAc,aAAa,MAAM,QAAQ,kBAAkB;AAAA,QACjH,cAAc,WAAW,cAAc,iBAAiB,cAAc,cAAc,MAAM,QAAQ,iBAAiB;AAAA,QACnH,cAAc,SAAS,cAAc,eAAe,cAAc,YAAY,MAAM,QAAQ,iBAAiB;AAAA,MAAA;AAEpG,iBAAA,QAAQ,cAAc,KAAK,GAAG;AAAA,IAC3C;AAGA,YAAQ,WAAW,OAAO,KAAK,EAAE,KAAK,CAAC,SAAS;AAC9C,UAAI,CAAC;AAAM;AACX,WAAK,QAAQ,KAAK;AAClB,aAAO,QAAQ,KAAK;AACpB,YAAM,QAAQ,KAAK;AACnB,aAAO,QAAQ,KAAK;AACpB,UAAI,QAAQ,KAAK;AAAA,IAAA,CAClB;AAED,YAAQ,QAAQ,OAAO,KAAK,EAAE,KAAK,CAAC,SAAS;AAC3C,UAAI,CAAC;AAAM;AACX,eAAS,QAAQ,KAAK;AACtB,gBAAU,QAAQ,KAAK;AAAA,IAAA,CACxB;AAAA,EACH;AAES,WAAA,QACP,WAaA,QACA;AAEA,UAAM,YAAY;AAEZ,UAAA,YAAY,MAAM,QAAQ;AAE1B,UAAA,YAAY,YAAY,OAAO,QAAQ;AAEvC,UAAA,cAAc,MAAM,QAAQ,YAAY;AAExC,UAAA,cAAc,OAAO,QAAQ;AAEnC,UAAM,WAAW,YAAY,KAAK,IAAI,IAAI,YAAY,MAAM;AAC5D,UAAM,WAAW,cAAc,KAAK,IAAI,IAAI,cAAc,MAAM;AAE1D,UAAA,iCAAiB,IAAI;AAAA;AAAA,MAEzB,CAAC,OAAO,CAAC,SAAS,SAAS,eAAe,SAAS,oCAAoC,YAAY,CAAC;AAAA,MACpG;AAAA,QACE;AAAA,QACA;AAAA,UACE,SAAS,OAAO,eAAe,SAAS;AAAA,UACxC,UAAU,SAAS,SAAS,MAAM,QAAQ,MAAM,QAAQ,IAAI,SAAS,QAAQ,MAAM,OAAO;AAAA,QAC5F;AAAA,MACF;AAAA,MACA;AAAA,QACE;AAAA,QACA;AAAA,UACE,UAAU,OAAO,eAAe,SAAS;AAAA,UACzC,WAAW,SAAS,SAAS,MAAM,QAAQ,MAAM,QAAQ,IAAI,SAAS,QAAQ,MAAM,OAAO;AAAA,QAC7F;AAAA,MACF;AAAA;AAAA,MAEA,CAAC,UAAU,CAAC,SAAS,SAAS,YAAY,SAAS,oCAAoC,YAAY,CAAC;AAAA,MACpG;AAAA,QACE;AAAA,QACA,CAAC,SAAS,OAAO,YAAY,SAAS,OAAO,UAAU,SAAS,SAAS,MAAM,QAAQ,MAAM,QAAQ,IAAI,SAAS,QAAQ,MAAM,OAAO,KAAK;AAAA,MAC9I;AAAA,MACA;AAAA,QACE;AAAA,QACA;AAAA,UACE,UAAU,OAAO,YAAY,SAAS;AAAA,UACtC,WAAW,SAAS,SAAS,MAAM,QAAQ,MAAM,QAAQ,IAAI,SAAS,QAAQ,MAAM,OAAO;AAAA,QAC7F;AAAA,MACF;AAAA;AAAA,MAEA,CAAC,QAAQ,CAAC,UAAU,WAAW,YAAY,WAAW,oCAAoC,UAAU,CAAC;AAAA,MACrG;AAAA,QACE;AAAA,QACA;AAAA,UACE,UAAU,WAAW,YAAY,OAAO;AAAA,UACxC,SAAS,UAAU,SAAS,OAAO,QAAQ,OAAO,QAAQ,IAAI,UAAU,QAAQ,MAAM,OAAO;AAAA,QAC/F;AAAA,MACF;AAAA,MACA;AAAA,QACE;AAAA,QACA;AAAA,UACE,UAAU,WAAW,eAAe,OAAO;AAAA,UAC3C,YAAY,UAAU,SAAS,OAAO,QAAQ,OAAO,QAAQ,IAAI,UAAU,QAAQ,MAAM,OAAO;AAAA,QAClG;AAAA,MACF;AAAA;AAAA,MAEA,CAAC,SAAS,CAAC,SAAS,WAAW,YAAY,WAAW,oCAAoC,UAAU,CAAC;AAAA,MACrG;AAAA,QACE;AAAA,QACA;AAAA,UACE,SAAS,WAAW,YAAY,OAAO;AAAA,UACvC,SAAS,UAAU,SAAS,OAAO,QAAQ,OAAO,QAAQ,IAAI,UAAU,QAAQ,MAAM,OAAO;AAAA,QAC/F;AAAA,MACF;AAAA,MACA;AAAA,QACE;AAAA,QACA;AAAA,UACE,SAAS,WAAW,eAAe,OAAO;AAAA,UAC1C,YAAY,UAAU,SAAS,OAAO,QAAQ,OAAO,QAAQ,IAAI,UAAU,QAAQ,MAAM,OAAO;AAAA,QAClG;AAAA,MACF;AAAA,IAAA,CACD;AACD,aAAS,QAAQ,WAAW,IAAI,SAAS,EAAG,CAAC;AAC7C,eAAW,QAAQ,WAAW,IAAI,SAAS,EAAG,CAAC;AAAA,EACjD;AAEA,SAAO,EAAE,UAAU,YAAY,WAAW,YAAY,MAAM,SAAS,MAAAA;AACvE;AC1JA,IAAI,QAAe,CAAA;AAEZ,SAAS,YAAY,MAAW;AACrC,QAAM,KAAK,IAAI;AACjB;AAEO,SAAS,gBAAgB,MAAW;AACjC,UAAA,MAAM,OAAO,CAAC,SAAS;AAC7B,WAAO,KAAK,EAAE,QAAQ,KAAK,EAAE;AAAA,EAAA,CAC9B;AACH;AAEO,SAAS,WAAW,MAAW;AAC9B,QAAA,QAAQ,CAAC,SAAS;AACtB,QAAI,KAAK,EAAE,QAAQ,KAAK,EAAE,KAAK;AACxB,WAAA,EAAE,QAAQ;IACjB;AAAA,EAAA,CACD;AACH;ACzBO,MAAM,WAAW;ACiBjB,MAAM,eAAe,iCACvB,YADuB;AAAA,EAE1B,aAAa,eAAe,EAAE;AAAA,EAC9B,WAAW,eAAe,EAAE;AAAA;AAAA;AAAA;AAAA,EAI5B,cAAc,gBAAgB,IAAI;AAAA;AAAA;AAAA;AAAA,EAIlC,SAAS,CAAC,QAAQ,MAAM;AAAA;AAAA;AAAA;AAAA,EAIxB,WAAW,eAA8B,QAAQ;AAAA;AAAA;AAAA;AAAA,EAIjD,QAAQ,eAAe,CAAC;AAAA;AAAA;AAAA;AAAA,EAIxB,gBAAgB,gBAAgB,KAAK;AAAA;AAAA;AAAA;AAAA,EAIrC,UAAU,gBAAgB,KAAK;AAAA;AAAA;AAAA;AAAA,EAI/B,WAAW,gBAAgB,KAAK;AAAA;AAAA;AAAA;AAAA,EAIhC,YAAY,gBAAgB,KAAK;AAAA;AAAA;AAAA;AAAA,EAIjC,MAAM,eAA4B,QAAQ;AAC5C;ACzDO,MAAM,cAAc,iCACtB,YADsB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQzB,YAAY,eAAe,EAAE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQ7B,eAAe,gBAAgB,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA,EAMpC,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA,EAMb,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOX,OAAO,gBAAgB,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAO5B,YAAY,gBAAgB,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOjC,UAAU,gBAAgB,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAO/B,WAAW,gBAAgB,EAAE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAO7B,iBAAiB,gBAAgB,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQtC,OAAO,gBAAgB,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQ5B,gBAAgB,gBAAgB,KAAK;AACvC;AC/EO,MAAM,aAAa,iCACrB,YADqB;AAAA,EAExB,kBAAkB,eAAe,EAAE;AAAA,EACnC,kBAAkB,eAAe,EAAE;AAAA;AAAA;AAAA;AAAA;AAAA,EAKnC,aAAa;AAAA;AAAA;AAAA;AAAA,EAIb,kBAAkB;AAAA;AAAA;AAAA;AAAA,EAIlB,kBAAkB,eAAe,EAAE;AAAA;AAAA;AAAA;AAAA,EAInC,eAAe,eAAe,CAAC;AAAA;AAAA;AAAA;AAAA,EAI/B,QAAQ,eAAe,EAAE;AAAA;AAAA;AAAA;AAAA,EAIzB,gBAAgB,eAAe,EAAE;AAAA;AAAA;AAAA;AAAA,EAIjC,cAAc,eAAe,EAAE;AAAA;AAAA;AAAA;AAAA,EAI/B,gBAAgB,gBAAgB,IAAI;AAAA;AAAA;AAAA;AAAA,EAIpC,cAAc,gBAAgB,KAAK;AAAA;AAAA;AAAA;AAAA,EAInC,aAAa,eAAe,MAAM;AAAA;AAAA;AAAA;AAAA,EAIlC,aAAa,gBAAgB,KAAK;AAAA;AAAA;AAAA;AAAA,EAIlC,OAAO,gBAAgB,KAAK;AAAA;AAAA;AAAA;AAAA,EAI5B,MAAM,eAAe,MAAM;AAAA;AAAA;AAAA;AAAA,EAI3B,WAAW;AAAA,IACT,MAAM;AAAA,IAEN,SAAS;AAAA,EAEX;AAAA;AAAA;AAAA;AAAA,EAIA,UAAU,gBAAgB,KAAK;AAAA;AAAA;AAAA;AAAA,EAI/B,aAAa,gBAAgB,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA,EAKlC,YAAY,gBAAgB,KAAK;AAAA;AAAA;AAAA;AAAA,EAIjC,YAAY,gBAAgB,EAAE;AAAA;AAAA;AAAA;AAAA,EAI9B,cAAc,gBAAgB,KAAK;AAAA;AAAA;AAAA;AAAA,EAInC,WAAW,gBAAgB,KAAK;AAAA;AAAA;AAAA;AAAA,EAIhC,UAAU,gBAAgB,KAAK;AAAA;AAAA;AAAA;AAAA,EAI/B,eAAe,gBAAgB,KAAK;AAAA;AAAA;AAAA;AAAA,EAIpC,eAAe,gBAAgB,KAAK;AAAA;AAAA;AAAA;AAAA,EAIpC,YAAY;AAAA;AAAA;AAAA;AAAA,EAIZ,YAAY;AAAA;AAAA;AAAA;AAAA,EAIZ,eAAe,gBAAgB,KAAK;AAAA;AAAA;AAAA;AAAA,EAIpC,OAAO;AAAA;AAAA;AAAA;AAAA,EAIP,YAAY,eAAe,KAAK;AAAA;AAAA;AAAA;AAAA,EAIhC,cAAc,gBAAgB,KAAK;AAAA;AAAA;AAAA;AAAA,EAInC,MAAM;AAAA;AAAA;AAAA;AAAA,EAIN,OAAO,gBAAgB,KAAK;AAAA;AAAA;AAAA;AAAA,EAI5B,QAAQ,gBAAgB,KAAK;AAAA;AAAA;AAAA;AAAA,EAI7B,UAAU,gBAAgB,KAAK;AAAA;AAAA;AAAA;AAAA,EAI/B,UAAU,gBAAgB,KAAK;AAAA;AAAA;AAAA;AAAA,EAI/B,MAAM;AAAA;AAAA;AAAA;AAAA,EAIN,OAAO,cAA4B;AACrC;AC1JO,MAAM,iBAAiB,iCACzB,YADyB;AAAA;AAAA;AAAA;AAAA,EAK5B,YAAY,iBAAiB,KAAyC;AAAA;AAAA;AAAA;AAAA,EAItE,SAAS,cAAqC;AAAA;AAAA;AAAA;AAAA,EAI9C,OAAO;AAAA;AAAA;AAAA;AAAA,EAIP,YAAY,eAAe,KAAK;AAAA;AAAA;AAAA;AAAA,EAIhC,cAAc,gBAAgB,KAAK;AAAA;AAAA;AAAA;AAAA,EAInC,gBAAgB,gBAAgB,KAAK;AAAA;AAAA;AAAA;AAAA,EAIrC,UAAU,gBAAgB,KAAK;AAAA;AAAA;AAAA;AAAA,EAI/B,UAAU,gBAAgB,KAAK;AAAA;AAAA;AAAA;AAAA,EAI/B,aAAa;AAAA;AAAA;AAAA;AAAA,EAIb,OAAO;AAAA;AAAA;AAAA;AAAA,EAIP,cAAc;AAAA;AAAA;AAAA;AAAA,EAId,eAAe;AAAA;AAAA;AAAA;AAAA,EAIf,eAAe;AAAA;AAAA;AAAA;AAAA,EAIf,YAAY,gBAAgB,KAAK;AAAA;AAAA;AAAA;AAAA,EAIjC,OAAO,gBAAgB,KAAK;AAAA;AAAA;AAAA;AAAA,EAI5B,UAAU,gBAAgB,KAAK;AAAA;AAAA;AAAA;AAAA,EAI/B,MAAM;AAAA;AAAA;AAAA;AAAA,EAIN,UAAU,eAAe,OAAO;AAAA;AAAA;AAAA;AAAA,EAIhC,UAAU,eAAe,OAAO;AAAA;AAAA;AAAA;AAAA,EAIhC,QAAQ,eAAe,KAAK;AAAA;AAAA;AAAA;AAAA,EAI5B,cAAc,eAAe,SAAS;AAAA;AAAA;AAAA;AAAA,EAItC,mBAAmB,gBAAgB,IAAI;AAAA;AAAA;AAAA;AAAA,EAIvC,cAAc,gBAAgB,KAAK;AAAA;AAAA;AAAA;AAAA,EAInC,QAAQ,eAAe,EAAE;AAAA;AAAA;AAAA;AAAA,EAIzB,qBAAqB,gBAAgB,IAAI;AAAA;AAAA;AAAA;AAAA,EAIzC,UAAU,gBAAgB,KAAK;AAAA;AAAA;AAAA;AAAA,EAI/B,MAAM;AAAA;AAAA;AAAA;AAAA,EAIN,OAAO,cAA4B;AAAA;AAAA;AAAA;AAAA,EAInC,iBAAiB,eAAe,EAAE;AAAA;AAAA;AAAA;AAAA,EAIlC,kBAAkB,eAAe,EAAE;AAAA,EACnC,kBAAkB,eAAe,EAAE;AACrC;ACnHA,SAAS,QAAQ,OAA4B;AACpC,SAAA,QAAQ,MAAM,gBAAgB,OAAO;AAC9C;AAEO,SAAS,cAAc,UAAmC;AAC/D,QAAMhF,UAAkB,CAAA;AAElB,QAAAqT,YAAW,CAACC,cAAsC;AAClD,QAAA,MAAM,QAAQA,SAAQ,GAAG;AAC3BA,gBAAS,QAAQ,CAAC,UAAU;;AACtB,YAAA,QAAQ,KAAK,GAAG;AAClB,UAAAtT,QAAO,KAAK,KAAK;AAEb,eAAA,WAAM,cAAN,mBAAiB,SAAS;AACrB,YAAAA,QAAA,KAAK,MAAM,UAAU,OAAO;AAC1B,YAAAqT,UAAA,MAAM,UAAU,QAAQ,QAAQ;AAAA,UAC3C;AAEA,cAAI,MAAM,UAAU;AAClB,YAAAA,UAAS,MAAM,QAAQ;AAAA,UACzB;AAAA,QACF;AAAA,MAAA,CACD;AAAA,IACH;AAAA,EAAA;AAGF,EAAAA,UAAS,QAAQ;AAEV,SAAArT;AACT;AAEA,MAAM,iBAAiB,CAAC,QAAiB,UAAiB;AAClD,QAAAzB,SAAQ,OAAO,QAAQ,KAAK;AAClC,MAAIA,WAAU,IAAI;AAChB,WAAO,OAAO,UAAU,CAAC,SAAS,MAAM,QAAQ,UAAa,MAAM,QAAQ,QAAQ,KAAK,SAAS,MAAM,QAAQ,KAAK,QAAQ,MAAM,GAAG;AAAA,EACvI;AACO,SAAAA;AACT;AAGgB,SAAA,aACd4E,SACA,gBACA,kBACA;AACA,QAAM,SAASA,WAAUA,QAAO,WAAWA,QAAO,QAAQ,WAAW,cAAcA,QAAO,QAAQ,QAAQ,IAAI,CAAA;AAE9G,mBAAiB,KAAK,CAACxC,IAAGG,OAAM,eAAe,QAAQH,GAAE,KAAK,IAAI,eAAe,QAAQG,GAAE,KAAK,CAAC;AAEjG,QAAM,wBAAwB,iBAAiB,IAAI,CAAC,SAAS,KAAK,KAAM;AAEzD,iBAAA,KAAK,CAACH,IAAGG,OAAM;AACtB,UAAA,SAAS,sBAAsB,QAAQH,EAAC;AACxC,UAAA,SAAS,sBAAsB,QAAQG,EAAC;AAC9C,WAAO,SAAS;AAAA,EAAA,CACjB;AACH;AAEO,SAAS,YAId,KAAiC;AAC3B,QAAA,iBAA0B,SAAS,CAAA,CAAE;AACrC,QAAA,mBAAgD,SAAS,CAAA,CAAE;AACjE,QAAMqC,UAAS;AAET,QAAA,eAAe,CAAC,UAAyB;AACvC,UAAA,OAAO,CAAC,UAAqC;AACjD,UAAI,MAAM,OAAO;AACf,yBAAiB,KAAK,KAAK;AACZ,uBAAA,KAAK,MAAM,KAAc;AAC3B,qBAAAA,SAAQ,gBAAgB,gBAAgB;AAAA,MACvD;AAAA,IAAA;AAGI,UAAA,SAAS,CAAC,UAAqC;AAC7C,YAAA5E,SAAQ,iBAAiB,QAAQ,KAAK;AAC7B,qBAAA,OAAOA,QAAO,CAAC;AACb,uBAAA,OAAOA,QAAO,CAAC;AAAA,IAAA;AAGlC;AAAA,MACE;AAAA,MACA,OAAO;AAAA,QACL;AAAA,UACE;AAAA,UACA;AAAA,UACA,UAAU;AAAA,UACV;AAAA,QACF;AAAA,QACA;AAAA,MACF;AAAA,IAAA;AAAA,EACF;AAGK,SAAA;AAAA,IACL,UAAU;AAAA,IACV;AAAA,EAAA;AAEJ;AC7GO,MAAM,eAAe,iCACvB,YADuB;AAAA;AAAA;AAAA;AAAA,EAK1B,OAAO,eAAe,EAAE;AAC1B;ACKO,MAAM,eAAe,iCACvB,YADuB;AAAA;AAAA;AAAA;AAAA,EAK1B,MAAM,eAA4B,MAAM;AAAA;AAAA;AAAA;AAAA,EAIxC,OAAO,eAAe,SAAS;AAAA;AAAA;AAAA;AAAA,EAI/B,MAAM,gBAAgB,MAAM;AAC9B;ACZO,MAAM,kBAAkB,iCAC1B,YAD0B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQ7B,MAAM,gBAAgB,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAO3B,UAAU;AAAA,IACR,MAAM,CAAC,QAAQ,QAAQ,OAAO;AAAA,IAC9B,SAAS;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,MAAM,eAAoC,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOhD,YAAY,gBAAgB,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA,EAMhC,YAAY,eAAe,EAAE;AAAA;AAAA;AAAA;AAAA;AAAA,EAM7B,kBAAkB,eAAe,EAAE;AAAA;AAAA;AAAA;AAAA;AAAA,EAMnC,cAAc,eAAe,EAAE;AAAA;AAAA;AAAA;AAAA;AAAA,EAM/B,YAAY,eAAe,EAAE;AAAA;AAAA;AAAA;AAAA;AAAA,EAM7B,kBAAkB,eAAe,EAAE;AAAA;AAAA;AAAA;AAAA;AAAA,EAMnC,cAAc,eAAe,EAAE;AACjC;ACvEO,MAAM,cAAc,iCACtB,YADsB;AAAA;AAAA;AAAA;AAAA,EAKzB,OAAO,gBAAgB,KAAK;AAAA;AAAA;AAAA;AAAA,EAI5B,OAAO,gBAAgB,IAAI;AAAA;AAAA;AAAA;AAAA,EAI3B,UAAU,gBAAgB,KAAK;AAAA;AAAA;AAAA;AAAA,EAI/B,UAAU,gBAAgB,KAAK;AAAA;AAAA;AAAA;AAAA,EAI/B,OAAO,gBAAgB,KAAK;AAAA;AAAA;AAAA;AAAA,EAI5B,MAAM,eAA2B,SAAS;AAAA;AAAA;AAAA;AAAA,EAI1C,MAAM,eAA2B,QAAQ;AAAA;AAAA;AAAA;AAAA,EAIzC,MAAM;AAAA;AAAA;AAAA;AAAA,EAIN,SAAS,gBAAgB,KAAK;AAAA;AAAA;AAAA;AAAA,EAI9B,cAAc;AAAA;AAAA;AAAA;AAAA,EAId,UAAU;AAAA,EACV,UAAU;AAAA;AAAA;AAAA;AAAA,EAIV,sBAAsB;AAAA;AAAA;AAAA;AAAA,EAItB,MAAM;AAAA;AAAA;AAAA;AAAA,EAIN,aAAa;AAAA;AAAA;AAAA;AAAA,EAIb,kBAAkB;AAAA;AAAA;AAAA;AAAA,EAIlB,iBAAiB;AAAA;AAAA;AAAA;AAAA,EAIjB,gBAAgB;AAAA;AAAA;AAAA;AAAA,EAIhB,cAAc;AAAA;AAAA;AAAA;AAAA,EAId,iBAAiB;AACnB;AChDO,MAAM,mBAAmB,iCAC3B,YAD2B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAO9B,mBAAmB,eAAe,EAAE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMpC,YAAY,kCAAK,gBAAgB,KAAK,IAAM,iBAAiB,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMpE,SAAS,cAAsB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAM/B,QAAQ,cAA+B;AAAA;AAAA;AAAA;AAAA;AAAA,EAKvC,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA,EAKP,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMZ,oBAAoB,gBAAgB,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMxC,mBAAmB,gBAAgB,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMvC,UAAU,eAAe,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAM5B,QAAQ,eAAe,EAAE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMzB,YAAY,gBAAgB,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMhC,qBAAqB,gBAAgB,IAAI;AAC3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,483,484,485,486,487,488,489,490,491,492,493,494,495,496,497,498,499,500,501,502,503,504,505,506,507,508,509,510,511,512,513,514,515,516,517,518,519,520,521,522,523,524,525,526,527,528,529,530,531,532,533,534,535,536,537,538,539,540,541,542,543,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701]}