{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/rc-table/node_modules/classnames/index.js","webpack:///./projects/ttsMake/assets/img/ic-play-48_48.png","webpack:///./node_modules/rc-virtual-list/es/Filler.js","webpack:///./node_modules/rc-virtual-list/es/Item.js","webpack:///./node_modules/rc-virtual-list/es/hooks/useDiffItem.js","webpack:///./node_modules/rc-virtual-list/es/utils/algorithmUtil.js","webpack:///./node_modules/rc-virtual-list/es/utils/isFirefox.js","webpack:///./node_modules/rc-virtual-list/es/hooks/useOriginScroll.js","webpack:///./node_modules/rc-virtual-list/es/hooks/useFrameWheel.js","webpack:///./node_modules/rc-virtual-list/es/utils/CacheMap.js","webpack:///./node_modules/rc-virtual-list/es/hooks/useMobileTouchMove.js","webpack:///./node_modules/rc-virtual-list/es/hooks/useScrollTo.js","webpack:///./node_modules/rc-virtual-list/es/ScrollBar.js","webpack:///./node_modules/rc-virtual-list/es/utils/scrollbarUtil.js","webpack:///./node_modules/rc-virtual-list/es/List.js","webpack:///./node_modules/rc-virtual-list/es/hooks/useHeights.js","webpack:///./node_modules/rc-virtual-list/es/hooks/useGetSize.js","webpack:///./node_modules/rc-virtual-list/es/hooks/useChildren.js","webpack:///./node_modules/rc-virtual-list/es/index.js","webpack:///./node_modules/rc-util/node_modules/@babel/runtime/helpers/esm/typeof.js","webpack:///./node_modules/scheduler/cjs/scheduler.production.min.js","webpack:///./node_modules/react-redux/es/components/Context.js","webpack:///./node_modules/react-redux/es/utils/batch.js","webpack:///./node_modules/react-redux/es/utils/Subscription.js","webpack:///./node_modules/react-redux/es/utils/useIsomorphicLayoutEffect.js","webpack:///./node_modules/react-redux/es/components/Provider.js","webpack:///./node_modules/react-redux/es/hooks/useReduxContext.js","webpack:///./node_modules/react-redux/es/hooks/useStore.js","webpack:///./node_modules/react-redux/es/hooks/useDispatch.js","webpack:///./node_modules/react-redux/es/hooks/useSelector.js","webpack:///./node_modules/react-redux/es/index.js","webpack:///./projects/ttsGround/util.ts","webpack:///./node_modules/rc-util/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack:///./projects/ttsMake/components/common/VoiceItem/index.tsx","webpack:///./node_modules/react-redux/node_modules/react-is/index.js","webpack:///./node_modules/react/cjs/react-jsx-runtime.production.min.js","webpack:///./node_modules/cos-js-sdk-v5/lib/crypto.js","webpack:///./node_modules/rc-select/es/hooks/useId.js","webpack:///./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack:///./projects/ttsMake/assets/img/main-bg.jpg","webpack:///./node_modules/rc-menu/es/context/IdContext.js","webpack:///./node_modules/rc-menu/es/context/MenuContext.js","webpack:///./node_modules/rc-menu/es/context/PathContext.js","webpack:///./node_modules/rc-menu/es/context/PrivateContext.js","webpack:///./node_modules/rc-util/es/Dom/focus.js","webpack:///./node_modules/rc-menu/es/hooks/useAccessibility.js","webpack:///./node_modules/rc-menu/es/hooks/useKeyRecords.js","webpack:///./node_modules/rc-menu/es/utils/timeUtil.js","webpack:///./node_modules/rc-menu/es/hooks/useMemoCallback.js","webpack:///./node_modules/rc-menu/es/hooks/useUUID.js","webpack:///./node_modules/rc-menu/es/hooks/useActive.js","webpack:///./node_modules/rc-menu/es/hooks/useDirectionStyle.js","webpack:///./node_modules/rc-menu/es/Icon.js","webpack:///./node_modules/rc-menu/es/utils/warnUtil.js","webpack:///./node_modules/rc-menu/es/MenuItem.js","webpack:///./node_modules/rc-menu/es/SubMenu/SubMenuList.js","webpack:///./node_modules/rc-menu/es/utils/commonUtil.js","webpack:///./node_modules/rc-menu/es/placements.js","webpack:///./node_modules/rc-menu/es/utils/motionUtil.js","webpack:///./node_modules/rc-menu/es/SubMenu/PopupTrigger.js","webpack:///./node_modules/rc-menu/es/SubMenu/InlineSubMenuList.js","webpack:///./node_modules/rc-menu/es/SubMenu/index.js","webpack:///./node_modules/rc-menu/es/Divider.js","webpack:///./node_modules/rc-menu/es/MenuItemGroup.js","webpack:///./node_modules/rc-menu/es/utils/nodeUtil.js","webpack:///./node_modules/rc-menu/es/Menu.js","webpack:///./node_modules/rc-menu/es/index.js","webpack:///./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack:///./node_modules/@tencent/kg-base/lib/format.js","webpack:///./node_modules/warning/warning.js","webpack:///./node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","webpack:///./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","webpack:///./node_modules/@restart/hooks/esm/useMergedRefs.js","webpack:///./node_modules/dequal/dist/index.mjs","webpack:///./node_modules/@restart/hooks/esm/useSafeState.js","webpack:///./node_modules/@popperjs/core/lib/utils/getBasePlacement.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getWindow.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","webpack:///./node_modules/@popperjs/core/lib/utils/math.js","webpack:///./node_modules/@popperjs/core/lib/utils/userAgent.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/contains.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","webpack:///./node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","webpack:///./node_modules/@popperjs/core/lib/utils/within.js","webpack:///./node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","webpack:///./node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","webpack:///./node_modules/@popperjs/core/lib/utils/expandToHashMap.js","webpack:///./node_modules/@popperjs/core/lib/enums.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/arrow.js","webpack:///./node_modules/@popperjs/core/lib/utils/getVariation.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/computeStyles.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/eventListeners.js","webpack:///./node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","webpack:///./node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","webpack:///./node_modules/@popperjs/core/lib/utils/rectToClientRect.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","webpack:///./node_modules/@popperjs/core/lib/utils/computeOffsets.js","webpack:///./node_modules/@popperjs/core/lib/utils/detectOverflow.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/flip.js","webpack:///./node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/hide.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/offset.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","webpack:///./node_modules/@popperjs/core/lib/utils/getAltAxis.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","webpack:///./node_modules/@popperjs/core/lib/utils/orderModifiers.js","webpack:///./node_modules/@popperjs/core/lib/createPopper.js","webpack:///./node_modules/@popperjs/core/lib/utils/debounce.js","webpack:///./node_modules/@popperjs/core/lib/utils/mergeByName.js","webpack:///./node_modules/@restart/ui/esm/popper.js","webpack:///./node_modules/@restart/ui/esm/usePopper.js","webpack:///./node_modules/dom-helpers/esm/addEventListener.js","webpack:///./node_modules/dom-helpers/esm/removeEventListener.js","webpack:///./node_modules/dom-helpers/esm/listen.js","webpack:///./node_modules/dom-helpers/esm/contains.js","webpack:///./node_modules/@restart/ui/esm/useClickOutside.js","webpack:///./node_modules/@restart/ui/esm/useRootClose.js","webpack:///./node_modules/@restart/ui/esm/utils.js","webpack:///./node_modules/@restart/ui/esm/useWindow.js","webpack:///./node_modules/@restart/ui/esm/useWaitForDOMRef.js","webpack:///./node_modules/@restart/ui/esm/mergeOptionsWithPopperConfig.js","webpack:///./node_modules/@restart/ui/esm/NoopTransition.js","webpack:///./node_modules/@restart/ui/esm/useRTGTransitionProps.js","webpack:///./node_modules/@restart/ui/esm/RTGTransition.js","webpack:///./node_modules/@restart/ui/esm/ImperativeTransition.js","webpack:///./node_modules/@restart/ui/esm/Overlay.js","webpack:///./node_modules/react-bootstrap/esm/PopoverHeader.js","webpack:///./node_modules/react-bootstrap/esm/PopoverBody.js","webpack:///./node_modules/react-bootstrap/esm/helpers.js","webpack:///./node_modules/react-bootstrap/esm/getInitialPopperStyles.js","webpack:///./node_modules/react-bootstrap/esm/Popover.js","webpack:///./node_modules/react-bootstrap/esm/Tooltip.js","webpack:///./node_modules/react-transition-group/esm/config.js","webpack:///./node_modules/react-transition-group/esm/TransitionGroupContext.js","webpack:///./node_modules/react-transition-group/esm/Transition.js","webpack:///./node_modules/react-transition-group/esm/utils/reflow.js","webpack:///./node_modules/dom-helpers/esm/getComputedStyle.js","webpack:///./node_modules/dom-helpers/esm/ownerWindow.js","webpack:///./node_modules/dom-helpers/esm/hyphenate.js","webpack:///./node_modules/dom-helpers/esm/hyphenateStyle.js","webpack:///./node_modules/dom-helpers/esm/isTransform.js","webpack:///./node_modules/dom-helpers/esm/css.js","webpack:///./node_modules/dom-helpers/esm/transitionEnd.js","webpack:///./node_modules/dom-helpers/esm/triggerEvent.js","webpack:///./node_modules/react-bootstrap/esm/transitionEndListener.js","webpack:///./node_modules/react-bootstrap/esm/safeFindDOMNode.js","webpack:///./node_modules/react-bootstrap/esm/TransitionWrapper.js","webpack:///./node_modules/react-bootstrap/esm/Fade.js","webpack:///./node_modules/react-bootstrap/esm/triggerBrowserReflow.js","webpack:///./node_modules/react-bootstrap/esm/Overlay.js","webpack:///./node_modules/react-bootstrap/esm/useOverlayOffset.js","webpack:///./node_modules/antd/es/config-provider/SizeContext.js","webpack:///./node_modules/@tencent/kg-base/lib/crypto/core.js","webpack:///./node_modules/rc-util/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack:///./node_modules/rc-util/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack:///./node_modules/rc-util/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack:///./node_modules/react-bootstrap/esm/Row.js","webpack:///./projects/ttsMake/components/common/AudioPlayer.ts","webpack:///./projects/ttsMake/assets/img/ic-pause-48_48.png","webpack:///./projects/ttsMake/components/common/sidebar.tsx","webpack:///./node_modules/rc-util/es/KeyCode.js","webpack:///./node_modules/fast-xml-parser/src/util.js","webpack:///./node_modules/@ant-design/icons-svg/es/asn/CloseOutlined.js","webpack:///./node_modules/@ant-design/icons/es/icons/CloseOutlined.js","webpack:///./node_modules/strnum/strnum.js","webpack:///./node_modules/rc-util/es/isMobile.js","webpack:///./node_modules/rc-util/es/Dom/shadow.js","webpack:///./node_modules/antd/es/_util/warning.js","webpack:///./projects/ttsMake/assets/img/ic-mine-tts-pause.png","webpack:///./node_modules/antd/es/locale/useLocale.js","webpack:///./node_modules/@ant-design/icons/es/utils.js","webpack:///./node_modules/@ant-design/icons/es/components/IconBase.js","webpack:///./node_modules/@ant-design/icons/es/components/twoTonePrimaryColor.js","webpack:///./node_modules/@ant-design/icons/es/components/AntdIcon.js","webpack:///./node_modules/rc-util/es/hooks/useMergedState.js","webpack:///./node_modules/antd/es/theme/util/useResetIconStyle.js","webpack:///../src/string-similarity.ts","webpack:///./node_modules/@restart/hooks/esm/useCallbackRef.js","webpack:///./node_modules/cos-js-sdk-v5/src/tracker.js","webpack:///./node_modules/fast-xml-parser/src/xmlparser/xmlNode.js","webpack:///./node_modules/rc-tree/es/utils/treeUtil.js","webpack:///./node_modules/rc-motion/es/context.js","webpack:///./node_modules/rc-motion/es/DomWrapper.js","webpack:///./node_modules/rc-motion/es/interface.js","webpack:///./node_modules/rc-motion/es/util/motion.js","webpack:///./node_modules/rc-motion/es/hooks/useDomMotionEvents.js","webpack:///./node_modules/rc-motion/es/hooks/useIsomorphicLayoutEffect.js","webpack:///./node_modules/rc-motion/es/hooks/useStepQueue.js","webpack:///./node_modules/rc-motion/es/hooks/useNextFrame.js","webpack:///./node_modules/rc-motion/es/hooks/useStatus.js","webpack:///./node_modules/rc-util/es/hooks/useSyncState.js","webpack:///./node_modules/rc-motion/es/CSSMotion.js","webpack:///./node_modules/rc-motion/es/util/diff.js","webpack:///./node_modules/rc-motion/es/CSSMotionList.js","webpack:///./node_modules/rc-motion/es/index.js","webpack:///./node_modules/process/browser.js","webpack:///./node_modules/rc-overflow/es/Item.js","webpack:///./node_modules/rc-overflow/es/hooks/useEffectState.js","webpack:///./node_modules/rc-overflow/es/hooks/channelUpdate.js","webpack:///./node_modules/rc-overflow/es/context.js","webpack:///./node_modules/rc-overflow/es/RawItem.js","webpack:///./node_modules/rc-overflow/es/Overflow.js","webpack:///./node_modules/rc-overflow/es/index.js","webpack:///../node_modules/object-assign/index.js","webpack:///../node_modules/react/jsx-runtime.js","webpack:///../node_modules/react/cjs/react-jsx-runtime.production.min.js","webpack:///../src/lib/utils/animate.ts","webpack:///../src/lib/utils/debounce.ts","webpack:///../src/lib/utils/getNormalizedScrollLeft.ts","webpack:///../src/lib/hooks/useEventCallback.ts","webpack:///../src/lib/components/NavBtns/index.tsx","webpack:///../src/lib/components/NavBtns/LeftNavBtnIcon.tsx","webpack:///../src/lib/components/NavBtns/RightNavBtnIcon.tsx","webpack:///../src/lib/components/Tabs/index.tsx","webpack:///../src/lib/utils/ownerDocument.tsx","webpack:///../src/lib/components/Tab/index.tsx","webpack:///./node_modules/@tencent/universal-build/node_modules/style-loader/lib/urls.js","webpack:///./projects/ttsMake/assets/img/podcast-slogan.png","webpack:///./projects/ttsMake/assets/img/podcast-pause.png","webpack:///./node_modules/cos-js-sdk-v5/src/util.js","webpack:///./node_modules/redux/node_modules/@babel/runtime/helpers/esm/typeof.js","webpack:///./node_modules/redux/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack:///./node_modules/redux/node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack:///./node_modules/redux/node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack:///./node_modules/redux/node_modules/@babel/runtime/helpers/esm/objectSpread2.js","webpack:///./node_modules/redux/es/redux.js","webpack:///../src/utils/errors.ts","webpack:///../src/utils/common.ts","webpack:///../src/utils/plugins.ts","webpack:///../src/core/scope.ts","webpack:///../src/core/finalize.ts","webpack:///../src/core/proxy.ts","webpack:///../src/core/immerClass.ts","webpack:///../src/core/current.ts","webpack:///../src/plugins/es5.ts","webpack:///../src/immer.ts","webpack:///../src/utils/env.ts","webpack:///./node_modules/@tencent/kg-base/lib/Platform/web.js","webpack:///./node_modules/rc-util/es/Dom/dynamicCSS.js","webpack:///./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack:///./node_modules/@reduxjs/toolkit/node_modules/redux-thunk/es/index.js","webpack:///./node_modules/@rc-component/async-validator/es/util.js","webpack:///./projects/ttsMake/components/index/main-land/index.tsx","webpack:///./node_modules/rc-input/es/utils/commonUtils.js","webpack:///./node_modules/antd/node_modules/rc-picker/es/locale/en_US.js","webpack:///./node_modules/antd/node_modules/rc-picker/es/locale/common.js","webpack:///./node_modules/antd/es/time-picker/locale/en_US.js","webpack:///./node_modules/antd/es/date-picker/locale/en_US.js","webpack:///./node_modules/antd/es/calendar/locale/en_US.js","webpack:///./node_modules/antd/es/locale/en_US.js","webpack:///./library/h5/requestQMusic.ts","webpack:///./projects/ttsMake/api/main-land.ts","webpack:///./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack:///./node_modules/react-redux/node_modules/react-is/cjs/react-is.production.min.js","webpack:///./node_modules/antd/es/empty/empty.js","webpack:///./node_modules/antd/es/empty/simple.js","webpack:///./node_modules/antd/es/empty/style/index.js","webpack:///./node_modules/antd/es/empty/index.js","webpack:///./node_modules/rc-util/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack:///./projects/ttsMake/assets/img/minibar-play.png","webpack:///./projects/ttsMake/assets/img/right.png","webpack:///./node_modules/@emotion/hash/dist/hash.browser.esm.js","webpack:///./node_modules/@ant-design/cssinjs/es/Cache.js","webpack:///./node_modules/@ant-design/cssinjs/es/StyleContext.js","webpack:///./node_modules/@ant-design/cssinjs/es/theme/calc/CSSCalculator.js","webpack:///./node_modules/@ant-design/cssinjs/es/theme/ThemeCache.js","webpack:///./node_modules/@ant-design/cssinjs/es/theme/Theme.js","webpack:///./node_modules/@ant-design/cssinjs/es/theme/createTheme.js","webpack:///./node_modules/@ant-design/cssinjs/es/util/index.js","webpack:///./node_modules/@ant-design/cssinjs/es/util/css-variables.js","webpack:///./node_modules/@ant-design/cssinjs/es/hooks/useCompatibleInsertionEffect.js","webpack:///./node_modules/@ant-design/cssinjs/es/hooks/useEffectCleanupRegister.js","webpack:///./node_modules/@ant-design/cssinjs/es/hooks/useHMR.js","webpack:///./node_modules/@ant-design/cssinjs/es/hooks/useGlobalCache.js","webpack:///./node_modules/@ant-design/cssinjs/es/hooks/useCacheToken.js","webpack:///./node_modules/@ant-design/cssinjs/node_modules/@emotion/unitless/dist/unitless.browser.esm.js","webpack:///../src/Enum.js","webpack:///../src/Utility.js","webpack:///../src/Tokenizer.js","webpack:///../src/Parser.js","webpack:///../src/Serializer.js","webpack:///./node_modules/@ant-design/cssinjs/es/linters/legacyNotSelectorLinter.js","webpack:///./node_modules/@ant-design/cssinjs/es/util/cacheMapUtil.js","webpack:///./node_modules/@ant-design/cssinjs/es/hooks/useStyleRegister.js","webpack:///./node_modules/@ant-design/cssinjs/es/hooks/useCSSVarRegister.js","webpack:///./node_modules/@ant-design/cssinjs/es/extractStyle.js","webpack:///./node_modules/@ant-design/cssinjs/es/Keyframes.js","webpack:///./node_modules/@ant-design/cssinjs/es/transformers/legacyLogicalProperties.js","webpack:///./node_modules/@ant-design/colors/es/generate.js","webpack:///./node_modules/@ant-design/colors/es/presets.js","webpack:///./node_modules/@ctrl/tinycolor/dist/module/conversion.js","webpack:///./projects/ttsMake/assets/img/pause-white.png","webpack:///./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","webpack:///./node_modules/reselect/es/defaultMemoize.js","webpack:///./node_modules/reselect/es/index.js","webpack:///./projects/ttsMake/pages/IndexPage.tsx","webpack:///./projects/ttsMake/components/common/Login/index.tsx","webpack:///./projects/ttsMake/pages/Login.tsx","webpack:///./projects/ttsMake/utils/audio-recorder/asrauthentication.js","webpack:///./projects/ttsMake/constants/asr-config.tsx","webpack:///./projects/ttsMake/utils/audio-recorder/speechrecognizer.js","webpack:///./projects/ttsMake/utils/cos-util.ts","webpack:///./projects/ttsMake/utils/audio-recorder/webrecorder.js","webpack:///./projects/ttsMake/pages/SoundClone.tsx","webpack:///./node_modules/antd/es/_util/motion.js","webpack:///./node_modules/antd/es/_util/reactNode.js","webpack:///./node_modules/antd/es/_util/wave/style.js","webpack:///./node_modules/antd/es/_util/wave/interface.js","webpack:///./node_modules/antd/es/_util/wave/util.js","webpack:///./node_modules/antd/es/_util/wave/WaveEffect.js","webpack:///./node_modules/antd/es/_util/wave/useWave.js","webpack:///./node_modules/antd/es/_util/wave/index.js","webpack:///./node_modules/antd/es/config-provider/hooks/useSize.js","webpack:///./node_modules/antd/es/space/style/compact.js","webpack:///./node_modules/antd/es/space/style/index.js","webpack:///./node_modules/antd/es/space/Compact.js","webpack:///./node_modules/antd/es/button/button-group.js","webpack:///./node_modules/antd/es/button/buttonHelpers.js","webpack:///./node_modules/antd/es/button/IconWrapper.js","webpack:///./node_modules/antd/es/button/LoadingIcon.js","webpack:///./node_modules/antd/es/button/style/group.js","webpack:///./node_modules/@ant-design/fast-color/es/FastColor.js","webpack:///./node_modules/@rc-component/color-picker/es/color.js","webpack:///./node_modules/@rc-component/color-picker/es/util.js","webpack:///./node_modules/@rc-component/color-picker/es/ColorPicker.js","webpack:///./node_modules/antd/es/color-picker/color.js","webpack:///./node_modules/@ant-design/icons-svg/es/asn/RightOutlined.js","webpack:///./node_modules/@ant-design/icons/es/icons/RightOutlined.js","webpack:///./node_modules/rc-collapse/es/PanelContent.js","webpack:///./node_modules/rc-collapse/es/Panel.js","webpack:///./node_modules/rc-collapse/es/hooks/useItems.js","webpack:///./node_modules/rc-collapse/es/Collapse.js","webpack:///./node_modules/rc-collapse/es/index.js","webpack:///./node_modules/antd/es/collapse/CollapsePanel.js","webpack:///./node_modules/antd/es/style/motion/collapse.js","webpack:///./node_modules/antd/es/collapse/style/index.js","webpack:///./node_modules/antd/es/collapse/Collapse.js","webpack:///./node_modules/antd/es/color-picker/components/ColorPresets.js","webpack:///./node_modules/antd/es/button/style/token.js","webpack:///./node_modules/antd/es/button/style/index.js","webpack:///./node_modules/antd/es/style/compact-item.js","webpack:///./node_modules/antd/es/style/compact-item-vertical.js","webpack:///./node_modules/antd/es/button/style/compactCmp.js","webpack:///./node_modules/antd/es/button/button.js","webpack:///./node_modules/antd/es/button/index.js","webpack:///./node_modules/antd/es/_util/ActionButton.js","webpack:///./node_modules/antd/es/modal/context.js","webpack:///./node_modules/antd/es/modal/components/ConfirmCancelBtn.js","webpack:///./node_modules/antd/es/modal/components/ConfirmOkBtn.js","webpack:///./node_modules/@babel/runtime/helpers/esm/regeneratorRuntime.js","webpack:///./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack:///./node_modules/antd/node_modules/rc-field-form/es/FieldContext.js","webpack:///./node_modules/antd/node_modules/rc-field-form/es/ListContext.js","webpack:///./node_modules/antd/node_modules/rc-field-form/es/utils/typeUtil.js","webpack:///./node_modules/@rc-component/async-validator/es/messages.js","webpack:///./node_modules/@rc-component/async-validator/es/rule/url.js","webpack:///./node_modules/@rc-component/async-validator/es/rule/enum.js","webpack:///./node_modules/@rc-component/async-validator/es/rule/required.js","webpack:///./node_modules/@rc-component/async-validator/es/rule/type.js","webpack:///./node_modules/@rc-component/async-validator/es/rule/index.js","webpack:///./node_modules/@rc-component/async-validator/es/rule/whitespace.js","webpack:///./node_modules/@rc-component/async-validator/es/rule/range.js","webpack:///./node_modules/@rc-component/async-validator/es/rule/pattern.js","webpack:///./node_modules/@rc-component/async-validator/es/validator/type.js","webpack:///./node_modules/@rc-component/async-validator/es/validator/index.js","webpack:///./node_modules/@rc-component/async-validator/es/validator/string.js","webpack:///./node_modules/@rc-component/async-validator/es/validator/method.js","webpack:///./node_modules/@rc-component/async-validator/es/validator/number.js","webpack:///./node_modules/@rc-component/async-validator/es/validator/boolean.js","webpack:///./node_modules/@rc-component/async-validator/es/validator/regexp.js","webpack:///./node_modules/@rc-component/async-validator/es/validator/integer.js","webpack:///./node_modules/@rc-component/async-validator/es/validator/float.js","webpack:///./node_modules/@rc-component/async-validator/es/validator/array.js","webpack:///./node_modules/@rc-component/async-validator/es/validator/object.js","webpack:///./node_modules/@rc-component/async-validator/es/validator/enum.js","webpack:///./node_modules/@rc-component/async-validator/es/validator/pattern.js","webpack:///./node_modules/@rc-component/async-validator/es/validator/date.js","webpack:///./node_modules/@rc-component/async-validator/es/validator/required.js","webpack:///./node_modules/@rc-component/async-validator/es/validator/any.js","webpack:///./node_modules/@rc-component/async-validator/es/index.js","webpack:///./node_modules/antd/node_modules/rc-field-form/es/utils/messages.js","webpack:///./node_modules/antd/node_modules/rc-field-form/es/utils/validateUtil.js","webpack:///./node_modules/antd/node_modules/rc-field-form/es/utils/valueUtil.js","webpack:///./node_modules/antd/node_modules/rc-field-form/es/Field.js","webpack:///./node_modules/antd/node_modules/rc-field-form/es/List.js","webpack:///./node_modules/antd/node_modules/rc-field-form/es/utils/NameMap.js","webpack:///./node_modules/antd/node_modules/rc-field-form/es/useForm.js","webpack:///./node_modules/antd/node_modules/rc-field-form/es/utils/asyncUtil.js","webpack:///./node_modules/antd/node_modules/rc-field-form/es/FormContext.js","webpack:///./node_modules/antd/node_modules/rc-field-form/es/Form.js","webpack:///./node_modules/antd/node_modules/rc-field-form/es/useWatch.js","webpack:///./node_modules/antd/node_modules/rc-field-form/es/index.js","webpack:///./node_modules/antd/es/form/context.js","webpack:///./node_modules/antd/es/_util/ContextIsolator.js","webpack:///./node_modules/antd/es/_util/hooks/useClosable.js","webpack:///./node_modules/rc-util/es/Dom/styleChecker.js","webpack:///./node_modules/antd/es/_util/styleChecker.js","webpack:///./node_modules/antd/es/skeleton/Element.js","webpack:///./node_modules/antd/es/skeleton/style/index.js","webpack:///./node_modules/antd/es/skeleton/Avatar.js","webpack:///./node_modules/antd/es/skeleton/Image.js","webpack:///./node_modules/antd/es/skeleton/Input.js","webpack:///./node_modules/antd/es/skeleton/Node.js","webpack:///./node_modules/antd/es/skeleton/Paragraph.js","webpack:///./node_modules/antd/es/skeleton/Title.js","webpack:///./node_modules/antd/es/skeleton/Skeleton.js","webpack:///./node_modules/antd/es/skeleton/Button.js","webpack:///./node_modules/antd/es/skeleton/index.js","webpack:///./node_modules/antd/es/watermark/context.js","webpack:///./node_modules/antd/es/modal/components/NormalCancelBtn.js","webpack:///./node_modules/antd/es/modal/components/NormalOkBtn.js","webpack:///./node_modules/antd/es/modal/shared.js","webpack:///./node_modules/antd/es/style/motion/motion.js","webpack:///./node_modules/antd/es/style/motion/fade.js","webpack:///./node_modules/antd/es/style/motion/zoom.js","webpack:///./node_modules/antd/es/modal/style/index.js","webpack:///./node_modules/antd/es/modal/Modal.js","webpack:///./node_modules/antd/es/modal/style/confirm.js","webpack:///./node_modules/antd/es/modal/ConfirmDialog.js","webpack:///./node_modules/antd/es/modal/destroyFns.js","webpack:///./node_modules/antd/es/modal/confirm.js","webpack:///./node_modules/antd/es/_util/PurePanel.js","webpack:///./node_modules/antd/es/modal/PurePanel.js","webpack:///./node_modules/antd/es/modal/useModal/HookModal.js","webpack:///./node_modules/antd/es/modal/useModal/index.js","webpack:///./node_modules/antd/es/_util/hooks/usePatchElement.js","webpack:///./node_modules/antd/es/modal/index.js","webpack:///./node_modules/rc-table/es/constant.js","webpack:///./node_modules/@rc-component/context/es/context.js","webpack:///./node_modules/@rc-component/context/es/Immutable.js","webpack:///./node_modules/@rc-component/context/es/index.js","webpack:///./node_modules/rc-table/es/context/TableContext.js","webpack:///./node_modules/rc-table/es/context/PerfContext.js","webpack:///./node_modules/rc-table/es/utils/valueUtil.js","webpack:///./node_modules/rc-table/es/Cell/useCellRender.js","webpack:///./node_modules/rc-table/es/Cell/index.js","webpack:///./node_modules/rc-table/es/Cell/useHoverState.js","webpack:///./node_modules/rc-table/es/utils/fixUtil.js","webpack:///./node_modules/rc-table/es/Footer/SummaryContext.js","webpack:///./node_modules/rc-table/es/Footer/Row.js","webpack:///./node_modules/rc-table/es/Footer/Summary.js","webpack:///./node_modules/rc-table/es/Footer/Cell.js","webpack:///./node_modules/rc-table/es/Footer/index.js","webpack:///./node_modules/rc-table/es/sugar/Column.js","webpack:///./node_modules/rc-table/es/sugar/ColumnGroup.js","webpack:///./node_modules/rc-table/es/hooks/useFlattenRecords.js","webpack:///./node_modules/rc-table/es/hooks/useRowInfo.js","webpack:///./node_modules/rc-table/es/Body/ExpandedRow.js","webpack:///./node_modules/rc-table/es/Body/BodyRow.js","webpack:///./node_modules/rc-table/es/Body/MeasureCell.js","webpack:///./node_modules/rc-table/es/Body/MeasureRow.js","webpack:///./node_modules/rc-table/es/Body/index.js","webpack:///./node_modules/rc-table/es/utils/legacyUtil.js","webpack:///./node_modules/rc-table/es/ColGroup.js","webpack:///./node_modules/rc-table/es/FixedHolder/index.js","webpack:///./node_modules/rc-table/es/Header/HeaderRow.js","webpack:///./node_modules/rc-table/es/Header/Header.js","webpack:///./node_modules/rc-table/es/hooks/useColumns/useWidthColumns.js","webpack:///./node_modules/rc-table/es/hooks/useColumns/index.js","webpack:///./node_modules/rc-table/es/utils/expandUtil.js","webpack:///./node_modules/rc-table/es/hooks/useExpand.js","webpack:///./node_modules/rc-table/es/hooks/useFrame.js","webpack:///./node_modules/rc-table/es/hooks/useSticky.js","webpack:///./node_modules/rc-table/es/hooks/useStickyOffsets.js","webpack:///./node_modules/rc-table/es/Panel/index.js","webpack:///./node_modules/rc-table/es/stickyScrollBar.js","webpack:///./node_modules/rc-table/es/Table.js","webpack:///./node_modules/rc-table/es/hooks/useHover.js","webpack:///./node_modules/rc-table/es/hooks/useFixedInfo.js","webpack:///./node_modules/rc-table/es/VirtualTable/context.js","webpack:///./node_modules/rc-table/es/VirtualTable/VirtualCell.js","webpack:///./node_modules/rc-table/es/VirtualTable/BodyLine.js","webpack:///./node_modules/rc-table/es/VirtualTable/BodyGrid.js","webpack:///./node_modules/rc-table/es/VirtualTable/index.js","webpack:///./node_modules/antd/es/table/Column.js","webpack:///./node_modules/antd/es/table/ColumnGroup.js","webpack:///./node_modules/@ant-design/icons-svg/es/asn/DownOutlined.js","webpack:///./node_modules/@ant-design/icons/es/icons/DownOutlined.js","webpack:///./node_modules/rc-checkbox/es/index.js","webpack:///./node_modules/antd/es/checkbox/GroupContext.js","webpack:///./node_modules/antd/es/checkbox/style/index.js","webpack:///./node_modules/antd/es/checkbox/Checkbox.js","webpack:///./node_modules/antd/es/checkbox/Group.js","webpack:///./node_modules/antd/es/checkbox/index.js","webpack:///./node_modules/antd/es/style/roundedArrow.js","webpack:///./node_modules/antd/es/style/placementArrow.js","webpack:///./node_modules/antd/es/_util/placements.js","webpack:///./node_modules/@ant-design/icons/es/icons/BarsOutlined.js","webpack:///./node_modules/@ant-design/icons-svg/es/asn/LeftOutlined.js","webpack:///./node_modules/@ant-design/icons/es/icons/LeftOutlined.js","webpack:///./node_modules/antd/es/layout/Sider.js","webpack:///./node_modules/antd/es/layout/style/index.js","webpack:///./node_modules/antd/es/layout/style/sider.js","webpack:///./node_modules/@ant-design/icons-svg/es/asn/EllipsisOutlined.js","webpack:///./node_modules/@ant-design/icons/es/icons/EllipsisOutlined.js","webpack:///./node_modules/antd/es/menu/MenuContext.js","webpack:///./node_modules/antd/es/menu/MenuDivider.js","webpack:///./node_modules/rc-tooltip/es/Popup.js","webpack:///./node_modules/rc-tooltip/node_modules/@babel/runtime/helpers/esm/extends.js","webpack:///./node_modules/rc-tooltip/node_modules/@babel/runtime/helpers/esm/typeof.js","webpack:///./node_modules/rc-tooltip/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack:///./node_modules/rc-tooltip/node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack:///./node_modules/rc-tooltip/node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack:///./node_modules/rc-tooltip/node_modules/@babel/runtime/helpers/esm/objectSpread2.js","webpack:///./node_modules/rc-tooltip/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","webpack:///./node_modules/rc-tooltip/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack:///./node_modules/rc-tooltip/es/placements.js","webpack:///./node_modules/rc-tooltip/es/Tooltip.js","webpack:///./node_modules/rc-tooltip/es/index.js","webpack:///./node_modules/antd/es/theme/interface/presetColors.js","webpack:///./node_modules/antd/es/theme/util/genPresetColor.js","webpack:///./node_modules/antd/es/tooltip/style/index.js","webpack:///./node_modules/antd/es/_util/colors.js","webpack:///./node_modules/antd/es/tooltip/util.js","webpack:///./node_modules/antd/es/tooltip/PurePanel.js","webpack:///./node_modules/antd/es/tooltip/index.js","webpack:///./node_modules/antd/es/menu/MenuItem.js","webpack:///./node_modules/antd/es/menu/OverrideContext.js","webpack:///./node_modules/antd/es/style/motion/slide.js","webpack:///./node_modules/antd/es/menu/style/horizontal.js","webpack:///./node_modules/antd/es/menu/style/rtl.js","webpack:///./node_modules/antd/es/menu/style/theme.js","webpack:///./node_modules/antd/es/menu/style/vertical.js","webpack:///./node_modules/antd/es/menu/style/index.js","webpack:///./node_modules/antd/es/menu/SubMenu.js","webpack:///./node_modules/antd/es/menu/menu.js","webpack:///./node_modules/antd/es/menu/index.js","webpack:///./node_modules/antd/es/style/motion/move.js","webpack:///./node_modules/antd/es/dropdown/style/status.js","webpack:///./node_modules/antd/es/dropdown/style/index.js","webpack:///./node_modules/antd/es/dropdown/dropdown.js","webpack:///./node_modules/antd/es/_util/gapSize.js","webpack:///./node_modules/antd/es/space/context.js","webpack:///./node_modules/antd/es/space/Item.js","webpack:///./node_modules/antd/es/space/index.js","webpack:///./node_modules/antd/es/dropdown/dropdown-button.js","webpack:///./node_modules/antd/es/dropdown/index.js","webpack:///./node_modules/antd/es/radio/context.js","webpack:///./node_modules/antd/es/radio/style/index.js","webpack:///./node_modules/antd/es/radio/radio.js","webpack:///./node_modules/antd/es/radio/group.js","webpack:///./node_modules/antd/es/radio/radioButton.js","webpack:///./node_modules/antd/es/radio/index.js","webpack:///./node_modules/antd/es/table/hooks/useSelection.js","webpack:///./node_modules/antd/es/_util/hooks/useMultipleSelect.js","webpack:///./node_modules/antd/es/_util/hooks/useProxyImperativeHandle.js","webpack:///./node_modules/antd/es/_util/getScroll.js","webpack:///./node_modules/antd/es/config-provider/defaultRenderEmpty.js","webpack:///./node_modules/antd/es/_util/hooks/useForceUpdate.js","webpack:///./node_modules/antd/es/_util/responsiveObserver.js","webpack:///./node_modules/antd/es/grid/hooks/useBreakpoint.js","webpack:///./node_modules/@ant-design/icons-svg/es/asn/DoubleLeftOutlined.js","webpack:///./node_modules/@ant-design/icons/es/icons/DoubleLeftOutlined.js","webpack:///./node_modules/@ant-design/icons-svg/es/asn/DoubleRightOutlined.js","webpack:///./node_modules/@ant-design/icons/es/icons/DoubleRightOutlined.js","webpack:///./node_modules/rc-pagination/es/locale/zh_CN.js","webpack:///./node_modules/rc-pagination/es/Options.js","webpack:///./node_modules/rc-pagination/es/Pager.js","webpack:///./node_modules/rc-pagination/es/Pagination.js","webpack:///./node_modules/antd/es/_util/statusUtils.js","webpack:///./node_modules/antd/es/form/hooks/useVariants.js","webpack:///./node_modules/antd/es/select/mergedBuiltinPlacements.js","webpack:///./node_modules/antd/es/select/style/dropdown.js","webpack:///./node_modules/antd/es/select/style/multiple.js","webpack:///./node_modules/antd/es/select/style/single.js","webpack:///./node_modules/antd/es/select/style/token.js","webpack:///./node_modules/antd/es/select/style/variants.js","webpack:///./node_modules/antd/es/select/style/index.js","webpack:///./node_modules/@ant-design/icons-svg/es/asn/CheckOutlined.js","webpack:///./node_modules/@ant-design/icons/es/icons/CheckOutlined.js","webpack:///./node_modules/@ant-design/icons-svg/es/asn/SearchOutlined.js","webpack:///./node_modules/@ant-design/icons/es/icons/SearchOutlined.js","webpack:///./node_modules/antd/es/select/index.js","webpack:///./node_modules/antd/es/select/useShowArrow.js","webpack:///./node_modules/antd/es/select/useIcons.js","webpack:///./node_modules/antd/es/pagination/Select.js","webpack:///./node_modules/antd/es/input/style/token.js","webpack:///./node_modules/antd/es/input/style/variants.js","webpack:///./node_modules/antd/es/input/style/index.js","webpack:///./node_modules/antd/es/pagination/style/index.js","webpack:///./node_modules/antd/es/pagination/style/bordered.js","webpack:///./node_modules/antd/es/pagination/Pagination.js","webpack:///./node_modules/antd/es/pagination/index.js","webpack:///./node_modules/antd/es/spin/Indicator/Progress.js","webpack:///./node_modules/antd/es/spin/Indicator/Looper.js","webpack:///./node_modules/antd/es/spin/Indicator/index.js","webpack:///./node_modules/antd/es/spin/style/index.js","webpack:///./node_modules/antd/es/spin/usePercent.js","webpack:///./node_modules/antd/es/spin/index.js","webpack:///./node_modules/antd/es/table/ExpandIcon.js","webpack:///./node_modules/antd/es/table/util.js","webpack:///./node_modules/@ant-design/icons-svg/es/asn/FilterFilled.js","webpack:///./node_modules/@ant-design/icons/es/icons/FilterFilled.js","webpack:///./node_modules/@ant-design/icons-svg/es/asn/FileOutlined.js","webpack:///./node_modules/@ant-design/icons/es/icons/FileOutlined.js","webpack:///./node_modules/@ant-design/icons-svg/es/asn/FolderOpenOutlined.js","webpack:///./node_modules/@ant-design/icons/es/icons/FolderOpenOutlined.js","webpack:///./node_modules/@ant-design/icons-svg/es/asn/FolderOutlined.js","webpack:///./node_modules/@ant-design/icons/es/icons/FolderOutlined.js","webpack:///./node_modules/@ant-design/icons-svg/es/asn/HolderOutlined.js","webpack:///./node_modules/@ant-design/icons/es/icons/HolderOutlined.js","webpack:///./node_modules/antd/es/tree/style/index.js","webpack:///./node_modules/antd/es/tree/utils/dropIndicator.js","webpack:///./node_modules/@ant-design/icons-svg/es/asn/CaretDownFilled.js","webpack:///./node_modules/@ant-design/icons/es/icons/CaretDownFilled.js","webpack:///./node_modules/@ant-design/icons-svg/es/asn/MinusSquareOutlined.js","webpack:///./node_modules/@ant-design/icons/es/icons/MinusSquareOutlined.js","webpack:///./node_modules/@ant-design/icons-svg/es/asn/PlusSquareOutlined.js","webpack:///./node_modules/@ant-design/icons/es/icons/PlusSquareOutlined.js","webpack:///./node_modules/antd/es/tree/utils/iconUtil.js","webpack:///./node_modules/antd/es/tree/Tree.js","webpack:///./node_modules/antd/es/tree/utils/dictUtil.js","webpack:///./node_modules/antd/es/tree/DirectoryTree.js","webpack:///./node_modules/antd/es/tree/index.js","webpack:///./node_modules/antd/es/input/Group.js","webpack:///./node_modules/antd/es/_util/getAllowClear.js","webpack:///./node_modules/antd/es/input/hooks/useRemovePasswordTimeout.js","webpack:///./node_modules/antd/es/input/Input.js","webpack:///./node_modules/antd/es/input/utils.js","webpack:///./node_modules/antd/es/input/style/otp.js","webpack:///./node_modules/antd/es/input/OTP/OTPInput.js","webpack:///./node_modules/antd/es/input/OTP/index.js","webpack:///./node_modules/@ant-design/icons-svg/es/asn/EyeInvisibleOutlined.js","webpack:///./node_modules/@ant-design/icons/es/icons/EyeInvisibleOutlined.js","webpack:///./node_modules/@ant-design/icons-svg/es/asn/EyeOutlined.js","webpack:///./node_modules/@ant-design/icons/es/icons/EyeOutlined.js","webpack:///./node_modules/antd/es/input/Password.js","webpack:///./node_modules/antd/es/input/Search.js","webpack:///./node_modules/antd/es/input/TextArea.js","webpack:///./node_modules/antd/es/input/index.js","webpack:///./node_modules/antd/es/table/hooks/useFilter/FilterSearch.js","webpack:///./node_modules/antd/es/table/hooks/useFilter/FilterWrapper.js","webpack:///./node_modules/antd/es/table/hooks/useFilter/FilterDropdown.js","webpack:///./node_modules/antd/es/_util/hooks/useSyncState.js","webpack:///./node_modules/antd/es/table/hooks/useFilter/index.js","webpack:///./node_modules/antd/es/table/hooks/useLazyKVMap.js","webpack:///./node_modules/antd/es/_util/extendsObject.js","webpack:///./node_modules/antd/es/table/hooks/usePagination.js","webpack:///./node_modules/@ant-design/icons-svg/es/asn/CaretDownOutlined.js","webpack:///./node_modules/@ant-design/icons/es/icons/CaretDownOutlined.js","webpack:///./node_modules/@ant-design/icons-svg/es/asn/CaretUpOutlined.js","webpack:///./node_modules/@ant-design/icons/es/icons/CaretUpOutlined.js","webpack:///./node_modules/antd/es/table/hooks/useSorter.js","webpack:///./node_modules/antd/es/table/hooks/useTitleColumns.js","webpack:///./node_modules/antd/es/table/RcTable/index.js","webpack:///./node_modules/antd/es/table/RcTable/VirtualTable.js","webpack:///./node_modules/antd/es/table/style/bordered.js","webpack:///./node_modules/antd/es/table/style/ellipsis.js","webpack:///./node_modules/antd/es/table/style/empty.js","webpack:///./node_modules/antd/es/table/style/expand.js","webpack:///./node_modules/antd/es/table/style/filter.js","webpack:///./node_modules/antd/es/table/style/fixed.js","webpack:///./node_modules/antd/es/table/style/pagination.js","webpack:///./node_modules/antd/es/table/style/radius.js","webpack:///./node_modules/antd/es/table/style/rtl.js","webpack:///./node_modules/antd/es/table/style/selection.js","webpack:///./node_modules/antd/es/table/style/size.js","webpack:///./node_modules/antd/es/table/style/sorter.js","webpack:///./node_modules/antd/es/table/style/sticky.js","webpack:///./node_modules/antd/es/table/style/summary.js","webpack:///./node_modules/antd/es/table/style/virtual.js","webpack:///./node_modules/antd/es/table/style/index.js","webpack:///./node_modules/antd/es/table/InternalTable.js","webpack:///./node_modules/antd/es/table/hooks/useContainerWidth.js","webpack:///./node_modules/antd/es/_util/scrollTo.js","webpack:///./node_modules/antd/es/_util/easings.js","webpack:///./node_modules/antd/es/table/Table.js","webpack:///./node_modules/antd/es/table/index.js","webpack:///./projects/ttsMake/components/common/PodcastList/index.tsx","webpack:///./projects/ttsMake/pages/Mine.tsx","webpack:///./projects/ttsMake/util.ts","webpack:///./projects/ttsMake/components/common/PodcastInput/index.tsx","webpack:///./projects/ttsMake/pages/AIPodcast.tsx","webpack:///./projects/ttsMake/routes.ts","webpack:///./projects/ttsMake/assets/img/podcast-send-light.png","webpack:///./node_modules/rc-pagination/es/locale/en_US.js","webpack:///./node_modules/antd/es/config-provider/context.js","webpack:///./node_modules/antd/es/_util/zindexContext.js","webpack:///./node_modules/@ant-design/icons-svg/es/asn/ExclamationCircleFilled.js","webpack:///./node_modules/@ant-design/icons/es/icons/ExclamationCircleFilled.js","webpack:///./node_modules/cos-js-sdk-v5/lib/base64.js","webpack:///./node_modules/rc-util/node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack:///./node_modules/rc-util/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack:///./node_modules/@tencent/kg-base/lib/h5-side/event.js","webpack:///./node_modules/@tencent/kg-base/lib/crypto/index.js","webpack:///./node_modules/@tencent/kg-base/lib/login.js","webpack:///./node_modules/@tencent/kg-base/lib/idToCover.js","webpack:///./node_modules/@tencent/kg-base/lib/stopPropagation.js","webpack:///./node_modules/@tencent/kg-base/lib/h5-side/getIP.js","webpack:///./node_modules/@tencent/kg-base/lib/clipboard.js","webpack:///./node_modules/@tencent/kg-base/lib/screen.js","webpack:///./node_modules/@tencent/kg-base/lib/retry.js","webpack:///./node_modules/@tencent/kg-base/lib/style.web.js","webpack:///./node_modules/@tencent/kg-base/lib/webviewReady.js","webpack:///./node_modules/react-bootstrap/esm/Col.js","webpack:///./node_modules/@tencent/tme-interface-tme/node_modules/@tencent/kg-base/lib/Platform/web.js","webpack:///./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack:///./node_modules/@babel/runtime/helpers/esm/inherits.js","webpack:///./node_modules/@tencent/kg-base/lib/byteLength.js","webpack:///./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack:///./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack:///./node_modules/dom-helpers/esm/hasClass.js","webpack:///./projects/ttsMake/assets/img/qqmusic-link.png","webpack:///./node_modules/rc-util/es/warning.js","webpack:///./node_modules/@babel/runtime/helpers/esm/createSuper.js","webpack:///./node_modules/rc-select/es/TransBtn.js","webpack:///./node_modules/rc-select/es/hooks/useBaseProps.js","webpack:///./node_modules/rc-select/es/hooks/useLock.js","webpack:///./node_modules/rc-select/es/Selector/Input.js","webpack:///./node_modules/rc-select/es/utils/commonUtil.js","webpack:///./node_modules/rc-select/es/Selector/MultipleSelector.js","webpack:///./node_modules/rc-select/es/hooks/useLayoutEffect.js","webpack:///./node_modules/rc-select/es/Selector/SingleSelector.js","webpack:///./node_modules/rc-select/es/Selector/index.js","webpack:///./node_modules/rc-select/es/utils/keyUtil.js","webpack:///./node_modules/rc-select/es/SelectTrigger.js","webpack:///./node_modules/rc-select/es/utils/valueUtil.js","webpack:///./node_modules/@babel/runtime/helpers/esm/toArray.js","webpack:///./node_modules/rc-select/es/SelectContext.js","webpack:///./node_modules/rc-select/es/BaseSelect/Polite.js","webpack:///./node_modules/rc-select/es/BaseSelect/index.js","webpack:///./node_modules/rc-select/es/hooks/useDelayReset.js","webpack:///./node_modules/rc-select/es/hooks/useSelectTriggerControl.js","webpack:///./node_modules/rc-select/es/hooks/useAllowClear.js","webpack:///./node_modules/rc-select/es/OptGroup.js","webpack:///./node_modules/rc-select/es/Option.js","webpack:///./node_modules/rc-select/es/OptionList.js","webpack:///./node_modules/rc-select/es/utils/platformUtil.js","webpack:///./node_modules/rc-select/es/hooks/useFilterOptions.js","webpack:///./node_modules/rc-select/es/utils/legacyUtil.js","webpack:///./node_modules/rc-select/es/hooks/useOptions.js","webpack:///./node_modules/rc-select/es/hooks/useRefFunc.js","webpack:///./node_modules/rc-select/es/utils/warningPropsUtil.js","webpack:///./node_modules/rc-select/es/Select.js","webpack:///./node_modules/rc-select/es/hooks/useCache.js","webpack:///./node_modules/rc-select/es/index.js","webpack:///./node_modules/@tencent/wesing-base/lib/common/event.js","webpack:///./library/common/event.ts","webpack:///./node_modules/@tencent/kg-base/lib/cookie.js","webpack:///./node_modules/@ctrl/tinycolor/dist/module/format-input.js","webpack:///./node_modules/antd/es/theme/themes/shared/genRadius.js","webpack:///./node_modules/antd/es/theme/themes/shared/genControlHeight.js","webpack:///./node_modules/antd/es/theme/themes/shared/genFontMapToken.js","webpack:///./node_modules/antd/es/theme/themes/default/colorAlgorithm.js","webpack:///./node_modules/antd/es/theme/themes/default/colors.js","webpack:///./node_modules/antd/es/theme/context.js","webpack:///./node_modules/antd/es/theme/themes/default/index.js","webpack:///./node_modules/antd/es/theme/themes/shared/genColorMapToken.js","webpack:///./node_modules/antd/es/theme/themes/shared/genSizeMapToken.js","webpack:///./node_modules/antd/es/theme/themes/shared/genCommonMapToken.js","webpack:///./node_modules/rc-util/es/Dom/canUseDom.js","webpack:///./node_modules/object-assign/index.js","webpack:///./projects/ttsMake/assets/img/default_man.png","webpack:///./projects/ttsMake/assets/img/play-white.png","webpack:///./node_modules/rc-tree/es/utils/conductUtil.js","webpack:///./node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack:///./node_modules/antd/es/config-provider/hooks/useCSSVarCls.js","webpack:///./node_modules/rc-tree/es/util.js","webpack:///./node_modules/antd/es/style/index.js","webpack:///./node_modules/@tencent/kg-base/lib/crypto/md5.js","webpack:///(webpack)/buildin/amd-options.js","webpack:///./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack:///./node_modules/antd/es/theme/themes/shared/genFontSizes.js","webpack:///./projects/ttsMake/slices/ui.ts","webpack:///./projects/ttsMake/slices/index.ts","webpack:///./node_modules/@ant-design/icons/es/components/Context.js","webpack:///./node_modules/fast-xml-parser/src/xmlparser/OptionsBuilder.js","webpack:///./projects/ttsMake/assets/img/ic-microphone.png","webpack:///./node_modules/pinyin-pro/dist/index.mjs","webpack:///./node_modules/rc-tree/es/utils/keyUtil.js","webpack:///./node_modules/scheduler/index.js","webpack:///./node_modules/cos-js-sdk-v5/dist/cos-js-sdk-v5.js","webpack:///./node_modules/rc-util/node_modules/react-is/cjs/react-is.production.min.js","webpack:///./projects/ttsMake/assets/img/ic-recording.png","webpack:///./node_modules/@tencent/kg-base/lib/constants.js","webpack:///./node_modules/rc-input/es/hooks/useCount.js","webpack:///./node_modules/dom-helpers/esm/canUseDOM.js","webpack:///./node_modules/@tencent/kg-base/lib/url.js","webpack:///../dom.ts","webpack:///../index.tsx","webpack:///./node_modules/antd/es/locale/index.js","webpack:///./projects/ttsMake/assets/img/ic-download-white.png","webpack:///./node_modules/rc-util/es/hooks/useLayoutEffect.js","webpack:///./node_modules/rc-input/es/BaseInput.js","webpack:///./node_modules/rc-input/es/Input.js","webpack:///./node_modules/rc-input/es/index.js","webpack:///./node_modules/react-is/index.js","webpack:///./node_modules/classnames/index.js","webpack:///./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack:///./projects/ttsMake/assets/img/minibar-pause.png","webpack:///./node_modules/rc-util/es/hooks/useId.js","webpack:///../lib/context.ts","webpack:///../lib/hooks.tsx","webpack:///../lib/components.tsx","webpack:///../index.ts","webpack:///./node_modules/@ctrl/tinycolor/dist/module/index.js","webpack:///./node_modules/@babel/runtime/helpers/esm/objectSpread2.js","webpack:///./projects/ttsMake/assets/img/ic-clone-retry-48_48.png","webpack:///./node_modules/antd/es/style/operationUnit.js","webpack:///./node_modules/rc-tree/es/Indent.js","webpack:///./node_modules/rc-tree/es/TreeNode.js","webpack:///./node_modules/rc-util/es/isEqual.js","webpack:///./projects/ttsMake/assets/img/ic-arrow-down.png","webpack:///./node_modules/@restart/hooks/esm/useMounted.js","webpack:///./node_modules/@restart/hooks/esm/useCommittedRef.js","webpack:///./projects/ttsMake/assets/img/ic-logout-96_96.png","webpack:///./node_modules/rc-textarea/es/calculateNodeHeight.js","webpack:///./node_modules/rc-textarea/es/ResizableTextArea.js","webpack:///./node_modules/rc-textarea/es/TextArea.js","webpack:///./node_modules/rc-textarea/es/index.js","webpack:///./node_modules/fast-xml-parser/src/ignoreAttributes.js","webpack:///./node_modules/rc-util/es/hooks/useMemo.js","webpack:///./node_modules/@restart/hooks/esm/useEventCallback.js","webpack:///./node_modules/antd/es/theme/util/genStyleUtils.js","webpack:///./node_modules/rc-util/es/Children/toArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack:///./node_modules/antd/es/version/index.js","webpack:///./node_modules/antd/es/version/version.js","webpack:///./node_modules/antd/es/theme/util/getAlphaColor.js","webpack:///./node_modules/antd/es/theme/util/alias.js","webpack:///./node_modules/antd/es/theme/useToken.js","webpack:///./projects/ttsMake/assets/img/qqmusic-logo.png","webpack:///./node_modules/@ctrl/tinycolor/dist/module/util.js","webpack:///./node_modules/rc-util/es/utils/set.js","webpack:///./node_modules/rc-util/node_modules/@babel/runtime/helpers/esm/toArray.js","webpack:///./node_modules/rc-util/node_modules/@babel/runtime/helpers/esm/regeneratorRuntime.js","webpack:///./node_modules/rc-util/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack:///./node_modules/rc-util/es/React/render.js","webpack:///./node_modules/rc-util/es/omit.js","webpack:///./node_modules/@rc-component/portal/es/Context.js","webpack:///./node_modules/@rc-component/portal/es/useDom.js","webpack:///./node_modules/@rc-component/portal/es/useScrollLocker.js","webpack:///./node_modules/@rc-component/portal/es/util.js","webpack:///./node_modules/@rc-component/portal/es/mock.js","webpack:///./node_modules/@rc-component/portal/es/Portal.js","webpack:///./node_modules/@rc-component/portal/es/index.js","webpack:///./node_modules/rc-util/es/pickAttrs.js","webpack:///./node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js","webpack:///./node_modules/rc-util/es/ref.js","webpack:///./node_modules/fast-xml-parser/src/validator.js","webpack:///./node_modules/@tencent/kg-base/lib/escape.js","webpack:///./node_modules/antd/es/config-provider/DisabledContext.js","webpack:///./node_modules/@restart/hooks/esm/useIsomorphicEffect.js","webpack:///./projects/ttsMake/assets/img/podcast-send-gray.png","webpack:///./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack:///./node_modules/cos-js-sdk-v5/lib/md5.js","webpack:///./node_modules/dom-helpers/esm/ownerDocument.js","webpack:///./node_modules/antd/es/locale/context.js","webpack:///./node_modules/rc-util/es/hooks/useState.js","webpack:///./node_modules/rc-dropdown/node_modules/@babel/runtime/helpers/esm/extends.js","webpack:///./node_modules/rc-dropdown/node_modules/@babel/runtime/helpers/esm/typeof.js","webpack:///./node_modules/rc-dropdown/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack:///./node_modules/rc-dropdown/node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack:///./node_modules/rc-dropdown/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack:///./node_modules/rc-dropdown/node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack:///./node_modules/rc-dropdown/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack:///./node_modules/rc-dropdown/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack:///./node_modules/rc-dropdown/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack:///./node_modules/rc-dropdown/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack:///./node_modules/rc-dropdown/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","webpack:///./node_modules/rc-dropdown/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack:///./node_modules/rc-dropdown/es/hooks/useAccessibility.js","webpack:///./node_modules/rc-dropdown/es/Overlay.js","webpack:///./node_modules/rc-dropdown/es/placements.js","webpack:///./node_modules/rc-dropdown/es/Dropdown.js","webpack:///./node_modules/rc-dropdown/node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack:///./node_modules/rc-dropdown/es/index.js","webpack:///./projects/ttsMake/assets/img/ic-download-black-48_48.png","webpack:///./projects/ttsMake/constants/random-texts.ts","webpack:///./node_modules/@babel/runtime/helpers/esm/objectDestructuringEmpty.js","webpack:///./node_modules/rc-tree/es/MotionTreeNode.js","webpack:///./node_modules/rc-tree/es/useUnmount.js","webpack:///./node_modules/rc-tree/es/utils/diffUtil.js","webpack:///./node_modules/rc-tree/es/NodeList.js","webpack:///./node_modules/rc-tree/es/Tree.js","webpack:///./node_modules/rc-tree/es/DropIndicator.js","webpack:///./node_modules/rc-tree/es/index.js","webpack:///./node_modules/antd/es/_util/hooks/useZIndex.js","webpack:///./projects/ttsMake/slices/home.ts","webpack:///./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack:///./projects/ttsMake/assets/img/live-white.png","webpack:///./node_modules/fast-xml-parser/src/fxp.js","webpack:///./library/components/Toast.tsx","webpack:///./projects/ttsMake/components/common/MiniBar/index.tsx","webpack:///./projects/ttsMake/app.tsx","webpack:///./projects/aiAvatar/utils/index.ts","webpack:///./library/h5/env.ts","webpack:///./projects/aiAvatar/utils/sdk.ts","webpack:///./projects/ttsMake/index.web.tsx","webpack:///../history.ts","webpack:///../utils.ts","webpack:///../router.ts","webpack:///./node_modules/rc-dialog/es/context.js","webpack:///./node_modules/rc-dialog/es/util.js","webpack:///./node_modules/rc-dialog/es/Dialog/Content/MemoChildren.js","webpack:///./node_modules/rc-dialog/es/Dialog/Content/Panel.js","webpack:///./node_modules/rc-dialog/es/Dialog/Content/index.js","webpack:///./node_modules/rc-dialog/es/Dialog/Mask.js","webpack:///./node_modules/rc-dialog/es/Dialog/index.js","webpack:///./node_modules/rc-dialog/es/DialogWrap.js","webpack:///./node_modules/rc-dialog/es/index.js","webpack:///../src/devtoolsExtension.ts","webpack:///../src/isPlainObject.ts","webpack:///../src/utils.ts","webpack:///../src/getDefaultMiddleware.ts","webpack:///../src/configureStore.ts","webpack:///../src/createAction.ts","webpack:///../src/mapBuilders.ts","webpack:///../src/createSlice.ts","webpack:///../src/createReducer.ts","webpack:///../src/nanoid.ts","webpack:///../src/createAsyncThunk.ts","webpack:///../src/listenerMiddleware/index.ts","webpack:///../src/listenerMiddleware/task.ts","webpack:///../src/autoBatchEnhancer.ts","webpack:///../src/index.ts","webpack:///./node_modules/react-dom/index.js","webpack:///./node_modules/@ctrl/tinycolor/dist/module/css-color-names.js","webpack:///./projects/aiSong/utils/index.ts","webpack:///./projects/ttsMake/assets/img/ic-mine-tts-play.png","webpack:///./projects/ttsMake/contexts/AudioContext.tsx","webpack:///./node_modules/@ant-design/icons-svg/es/asn/CloseCircleFilled.js","webpack:///./node_modules/@ant-design/icons/es/icons/CloseCircleFilled.js","webpack:///./node_modules/@ant-design/icons-svg/es/asn/CheckCircleFilled.js","webpack:///./node_modules/@ant-design/icons/es/icons/CheckCircleFilled.js","webpack:///./node_modules/fast-xml-parser/src/xmlbuilder/json2xml.js","webpack:///./node_modules/rc-util/es/index.js","webpack:///./node_modules/@tencent/kg-base/lib/versionCompare.js","webpack:///./node_modules/antd/es/theme/themes/seed.js","webpack:///./node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","webpack:///./node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","webpack:///./node_modules/@babel/runtime/helpers/esm/construct.js","webpack:///./projects/ttsMake/assets/img/podcast-play.png","webpack:///./node_modules/rc-util/es/Dom/contains.js","webpack:///./node_modules/@tencent/kg-base/lib/utils/extract.js","webpack:///./node_modules/rc-util/es/Dom/findDOMNode.js","webpack:///./node_modules/rc-util/es/hooks/useEvent.js","webpack:///./node_modules/fast-xml-parser/src/xmlparser/XMLParser.js","webpack:///./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","webpack:///./node_modules/@tencent/tme-interface-tme/node_modules/@tencent/kg-base/lib/h5-side/event.js","webpack:///./node_modules/@tencent/tme-interface-tme/esm/Base.web.js","webpack:///./node_modules/@tencent/tme-interface-tme/esm/webcontain/WebContain.web.js","webpack:///./projects/ttsMake/utils/index.ts","webpack:///./node_modules/fast-xml-parser/src/xmlparser/node2json.js","webpack:///./node_modules/react/jsx-runtime.js","webpack:///../debounce.js","webpack:///../throttle.js","webpack:///./node_modules/rc-util/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack:///./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack:///./node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack:///./projects/ttsMake/assets/img/podcast-spectrum.png","webpack:///./node_modules/react/index.js","webpack:///./node_modules/bootstrap/dist/css/bootstrap.min.css?0eb2","webpack:///./node_modules/react-is/cjs/react-is.production.min.js","webpack:///./node_modules/fast-xml-parser/src/xmlbuilder/orderedJs2Xml.js","webpack:///./node_modules/rc-util/es/getScrollBarSize.js","webpack:///./node_modules/bootstrap/dist/css/bootstrap.min.css","webpack:///./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack:///./projects/ttsMake/assets/img/podcast-close.png","webpack:///./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack:///./node_modules/rc-tree/es/contextTypes.js","webpack:///./node_modules/rc-util/node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack:///./node_modules/@ant-design/cssinjs-utils/es/util/calc/calculator.js","webpack:///./node_modules/@ant-design/cssinjs-utils/es/util/calc/CSSCalculator.js","webpack:///./node_modules/@ant-design/cssinjs-utils/es/util/calc/NumCalculator.js","webpack:///./node_modules/@ant-design/cssinjs-utils/es/util/calc/index.js","webpack:///./node_modules/@ant-design/cssinjs-utils/es/util/getCompVarPrefix.js","webpack:///./node_modules/@ant-design/cssinjs-utils/es/util/getComponentToken.js","webpack:///./node_modules/@ant-design/cssinjs-utils/es/util/statistic.js","webpack:///./node_modules/@ant-design/cssinjs-utils/es/util/getDefaultComponentToken.js","webpack:///./node_modules/@ant-design/cssinjs-utils/es/util/maxmin.js","webpack:///./node_modules/@ant-design/cssinjs-utils/es/_util/hooks/useUniqueMemo.js","webpack:///./node_modules/@ant-design/cssinjs-utils/es/hooks/useCSP.js","webpack:///./node_modules/@ant-design/cssinjs-utils/es/util/genStyleUtils.js","webpack:///./node_modules/rc-resize-observer/es/Collection.js","webpack:///./node_modules/rc-resize-observer/es/utils/observerUtil.js","webpack:///./node_modules/rc-resize-observer/es/SingleObserver/DomWrapper.js","webpack:///./node_modules/rc-resize-observer/es/SingleObserver/index.js","webpack:///./node_modules/rc-resize-observer/es/index.js","webpack:///./node_modules/rc-util/node_modules/react-is/index.js","webpack:///./node_modules/rc-util/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack:///./node_modules/antd/es/app/context.js","webpack:///./node_modules/rc-notification/es/Notice.js","webpack:///./node_modules/rc-notification/es/NotificationProvider.js","webpack:///./node_modules/rc-notification/es/hooks/useStack.js","webpack:///./node_modules/rc-notification/es/NoticeList.js","webpack:///./node_modules/rc-notification/es/Notifications.js","webpack:///./node_modules/rc-notification/es/hooks/useNotification.js","webpack:///./node_modules/antd/es/message/style/index.js","webpack:///./node_modules/antd/es/message/PurePanel.js","webpack:///./node_modules/antd/es/message/util.js","webpack:///./node_modules/antd/es/message/useMessage.js","webpack:///./node_modules/antd/es/message/index.js","webpack:///./projects/ttsMake/assets/img/podcast-live.png","webpack:///./node_modules/rc-util/es/utils/get.js","webpack:///./node_modules/antd/es/modal/locale.js","webpack:///./node_modules/fast-xml-parser/src/xmlparser/DocTypeReader.js","webpack:///./node_modules/@tencent/universal-build/node_modules/style-loader/lib/addStyles.js","webpack:///./node_modules/@rc-component/trigger/es/Popup/Arrow.js","webpack:///./node_modules/@rc-component/trigger/es/Popup/Mask.js","webpack:///./node_modules/@rc-component/trigger/es/Popup/PopupContent.js","webpack:///./node_modules/@rc-component/trigger/es/Popup/index.js","webpack:///./node_modules/@rc-component/trigger/es/TriggerWrapper.js","webpack:///./node_modules/@rc-component/trigger/es/context.js","webpack:///./node_modules/@rc-component/trigger/es/hooks/useAction.js","webpack:///./node_modules/@rc-component/trigger/es/util.js","webpack:///./node_modules/@rc-component/trigger/es/hooks/useAlign.js","webpack:///./node_modules/@rc-component/trigger/es/index.js","webpack:///./node_modules/@rc-component/trigger/es/hooks/useWatch.js","webpack:///./node_modules/@rc-component/trigger/es/hooks/useWinClick.js","webpack:///./node_modules/react-bootstrap/esm/ThemeProvider.js","webpack:///./node_modules/rc-util/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack:///./node_modules/rc-util/node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack:///./node_modules/rc-util/node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack:///./node_modules/rc-util/node_modules/@babel/runtime/helpers/esm/objectSpread2.js","webpack:///./node_modules/react/cjs/react.production.min.js","webpack:///./node_modules/@babel/runtime/helpers/esm/createClass.js","webpack:///./node_modules/antd/es/form/validateMessagesContext.js","webpack:///./node_modules/antd/es/config-provider/cssVariables.js","webpack:///./node_modules/antd/es/config-provider/hooks/useConfig.js","webpack:///./node_modules/antd/es/config-provider/hooks/useThemeKey.js","webpack:///./node_modules/antd/es/config-provider/MotionWrapper.js","webpack:///./node_modules/antd/es/config-provider/PropWarning.js","webpack:///./node_modules/antd/es/config-provider/index.js","webpack:///./node_modules/antd/es/config-provider/hooks/useTheme.js","webpack:///./node_modules/@tencent/universal-build/node_modules/css-loader/dist/runtime/api.js","webpack:///./node_modules/rc-util/es/raf.js","webpack:///./projects/ttsMake/assets/img/clone-issue-head.png","webpack:///./node_modules/@babel/runtime/helpers/esm/extends.js","webpack:///./node_modules/rc-util/es/Dom/isVisible.js","webpack:///./node_modules/rc-util/es/Dom/css.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/@ant-design/icons-svg/es/asn/LoadingOutlined.js","webpack:///./node_modules/@ant-design/icons/es/icons/LoadingOutlined.js","webpack:///./node_modules/react-dom/cjs/react-dom.production.min.js","webpack:///./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack:///./node_modules/rc-util/es/Dom/addEventListener.js","webpack:///./node_modules/fast-xml-parser/src/xmlparser/OrderedObjParser.js","webpack:///./node_modules/@ant-design/icons-svg/es/asn/InfoCircleFilled.js","webpack:///./node_modules/@ant-design/icons/es/icons/InfoCircleFilled.js"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","installedModules","__webpack_require__","exports","module","l","e","promises","installedChunkData","promise","Promise","resolve","reject","onScriptComplete","script","document","createElement","charset","timeout","nc","setAttribute","src","p","jsonpScriptSrc","error","Error","event","onerror","onload","clearTimeout","chunk","errorType","type","realSrc","target","message","name","request","undefined","setTimeout","head","appendChild","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","err","console","jsonpArray","window","oldJsonpFunction","slice","s","hasOwn","classNames","classes","arguments","arg","argType","Array","isArray","inner","apply","toString","includes","join","Filler","React","_ref","ref","height","offsetY","offsetX","children","prefixCls","onInnerResize","innerProps","rtl","extra","outerStyle","innerStyle","display","flexDirection","position","overflow","_objectSpread","_defineProperty","transform","concat","style","ResizeObserver","onResize","_ref2","offsetHeight","_extends","className","displayName","Item","setRef","refFunc","node","useDiffItem","getKey","onDiff","_React$useState","_React$useState2","_slicedToArray","prevData","setPrevData","_React$useState3","_React$useState4","diffItem","setDiffItem","diff","originList","targetList","shortList","longList","originLen","targetLen","notExistKey","__EMPTY_ITEM__","getItemKey","item","diffIndex","multiple","Math","abs","shortKey","index","findListDiffIndex","isFF","navigator","_typeof","test","userAgent","isScrollAtTop","isScrollAtBottom","isScrollAtLeft","isScrollAtRight","lockRef","useRef","lockTimeoutRef","scrollPingRef","top","bottom","left","right","current","isHorizontal","delta","smoothOffset","originScroll","useFrameWheel","inVirtual","horizontalScroll","onWheelDelta","offsetRef","nextFrameRef","wheelValueRef","isMouseScrollRef","useOriginScroll","wheelDirectionRef","wheelDirectionCleanRef","raf","cancel","deltaX","deltaY","shiftKey","mergedDeltaX","mergedDeltaY","absX","absY","_virtualHandled","preventDefault","patchMultiple","onWheelY","onWheelX","detail","CacheMap","_classCallCheck","this","maps","_createClass","id","SMOOTH_PTG","MAX_TIMES","getPageXY","horizontal","touches","ScrollBar","props","scrollOffset","scrollRange","onStartMove","onStopMove","onScroll","spinSize","containerSize","propsThumbStyle","thumbStyle","dragging","setDragging","pageXY","setPageXY","_React$useState5","_React$useState6","startTop","setStartTop","isLTR","scrollbarRef","thumbRef","_React$useState7","_React$useState8","visible","setVisible","visibleTimeoutRef","delayHidden","enableScrollRange","enableOffsetRange","stateRef","pageY","onThumbMouseDown","stopPropagation","onScrollbarTouchStart","scrollbarEle","thumbEle","addEventListener","passive","removeEventListener","enableScrollRangeRef","enableOffsetRangeRef","moveRafId","onMouseMove","_stateRef$current","stateDragging","statePageY","stateStartTop","rect","getBoundingClientRect","scale","width","offset","newTop","tmpEnableScrollRange","tmpEnableOffsetRange","ptg","newScrollTop","ceil","max","min","onMouseUp","scrollbarPrefixCls","containerStyle","visibility","background","borderRadius","cursor","userSelect","onMouseDown","MIN_SIZE","getSpinSize","baseSize","isNaN","floor","_excluded","EMPTY_DATA","ScrollStyle","overflowY","overflowAnchor","RawList","_props$prefixCls","itemHeight","_props$fullHeight","fullHeight","itemKey","virtual","direction","scrollWidth","_props$component","component","Component","onVirtualScroll","onVisibleChange","extraRender","styles","restProps","_objectWithoutProperties","_useHeights","onItemAdd","onItemRemove","updatedMark","setUpdatedMark","instanceRef","Map","heightsRef","collectRafRef","cancelRaf","collectHeight","sync","doCollect","forEach","element","offsetParent","htmlElement","findDOMNode","set","useEffect","instance","origin","useHeights","_useHeights2","setInstanceRef","heights","heightUpdatedMark","useVirtual","containerHeight","values","reduce","total","curr","isRTL","mergedClassName","mergedData","componentRef","fillerInnerRef","containerRef","_useState","useState","_useState2","offsetTop","setOffsetTop","_useState3","_useState4","offsetLeft","setOffsetLeft","_useState5","_useState6","scrollMoving","setScrollMoving","onScrollbarStartMove","onScrollbarStopMove","sharedConfig","syncScrollTop","alignedTop","Number","maxScrollHeightRef","keepInRange","scrollTop","rangeRef","start","end","diffItemRef","_useDiffItem","_React$useMemo","scrollHeight","_fillerInnerRef$curre","startIndex","startOffset","endIndex","itemTop","dataLen","_item","cacheHeight","currentItemBottom","fillerOffset","size","setSize","verticalScrollBarRef","horizontalScrollBarRef","horizontalScrollBarSpinSize","verticalScrollBarSpinSize","maxScrollHeight","getVirtualScrollInfo","x","y","lastVirtualScrollInfoRef","triggerScroll","useEvent","params","nextInfo","onScrollBar","newScrollOffset","newOffset","flushSync","keepInHorizontalRange","nextOffsetLeft","tmpOffsetLeft","offsetXY","fromHorizontal","_useFrameWheel","_useFrameWheel2","onRawWheel","onFireFoxScroll","listRef","callback","cleanUpEvents","touchedRef","touchXRef","touchYRef","elementRef","intervalRef","onTouchMove","currentX","pageX","currentY","_isHorizontal","scrollHandled","clearInterval","setInterval","onTouchEnd","onTouchStart","useLayoutEffect","_listRef$current","useMobileTouchMove","onMozMousePixelScroll","componentEle","newOffsetLeft","delayHideScrollBar","_verticalScrollBarRef","_horizontalScrollBarR","_scrollTo","triggerFlash","scrollRef","syncState","setSyncState","times","ori","targetAlign","originAlign","clientHeight","needCollectHeight","newTargetAlign","targetTop","mergedAlign","stackTop","itemBottom","maxLen","leftHeight","_i","_key","_cacheHeight","lastTop","align","findIndex","_arg$offset","useScrollTo","nativeElement","getScrollInfo","scrollTo","config","renderList","getSize","_React$useMemo2","key2Index","bottomList","startKey","endKey","_heights$get","useGetSize","extraContent","listChildren","list","setNodeRef","renderFunc","map","ele","useChildren","componentStyle","overflowX","pointerEvents","containerProps","dir","sizeInfo","offsetWidth","currentTarget","onMouseEnter","verticalScrollBar","verticalScrollBarThumb","horizontalScrollBar","horizontalScrollBarThumb","List","obj","iterator","constructor","f","g","h","k","performance","now","unstable_now","Date","q","MessageChannel","u","w","a","b","unstable_shouldYield","unstable_forceFrameRate","z","cancelAnimationFrame","requestAnimationFrame","A","B","C","D","E","F","G","port2","port1","onmessage","postMessage","H","I","J","K","pop","v","sortIndex","L","M","N","O","P","Q","R","S","T","startTime","expirationTime","U","V","priorityLevel","W","unstable_IdlePriority","unstable_ImmediatePriority","unstable_LowPriority","unstable_NormalPriority","unstable_Profiling","unstable_UserBlockingPriority","unstable_cancelCallback","unstable_continueExecution","unstable_getCurrentPriorityLevel","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_requestPaint","unstable_runWithPriority","unstable_scheduleCallback","delay","unstable_wrapCallback","ReactReduxContext","createContext","batch","getBatch","nullListeners","notify","createSubscription","store","parentSub","unsubscribe","listeners","handleChangeWrapper","subscription","onStateChange","trySubscribe","first","last","addNestedSub","subscribe","clear","listener","next","isSubscribed","prev","notifyNestedSubs","Boolean","tryUnsubscribe","getListeners","useIsomorphicLayoutEffect","Provider","context","contextValue","useMemo","previousState","getState","Context","useReduxContext","useContext","createStoreHook","useDefaultReduxContext","useStore","createDispatchHook","useDefaultStore","dispatch","useDispatch","refEquality","createSelectorHook","selector","equalityFn","_useReduxContext","selectedState","contextSub","forceRender","useReducer","latestSubscriptionCallbackError","latestSelector","latestStoreState","latestSelectedState","storeState","newSelectedState","stack","checkForUpdates","newStoreState","_newSelectedState","useSelectorWithStoreAndSubscription","useDebugValue","newBatch","useSelector","cursorText","selection","getSelection","rangeCount","range","getRangeAt","textBeforeCursor","startContainer","Text","textContent","substring","childNodes","nodeType","Node","ELEMENT_NODE","firstChild","TEXT_NODE","textAfterCursor","extractContents","getCursorText","getCursorChar","editableDiv","charBeforeCursor","wholeTextBeforeCursor","_range$startContainer","_range$startContainer2","_range$startContainer3","_range$startContainer4","charAt","previousSibling","log","_node","_node2$textContent","insertContentAtCursor","html","sel","deleteContents","el","innerHTML","lastNode","frag","createDocumentFragment","insertNode","cloneRange","setStartAfter","collapse","removeAllRanges","addRange","createRange","pasteHTML","saveCursorSelection","endOffset","commonAncestorContainer","restoreCursorSelection","details","setStart","setEnd","isAllChinese","str","_arrayWithHoles","arr","VoiceItem","selectSoundId","_ref$type","_ref$subType","subType","useAppDispatch","navigate","useNavigate","contentEditable","timbre_mid","textAlign","justifyContent","alignItems","onClick","homeActions","selectSound","timbre_img","defaultMan","CloneIssueHeadImg","timbre_name","timbre_sex","timbre_desc","require","Fragment","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","ReactCurrentOwner","__self","__source","defaultProps","$$typeof","_owner","jsx","jsxs","WordArray","CryptoJS","lib","Base","extend","mixIn","init","$super","clone","words","sigBytes","stringify","clamp","random","enc","Hex","parse","parseInt","substr","j","Latin1","String","fromCharCode","charCodeAt","Utf8","decodeURIComponent","escape","unescape","encodeURIComponent","BufferedBlockAlgorithm","reset","_data","_nDataBytes","_append","_process","blockSize","_minBufferSize","_doProcessBlock","splice","Hasher","cfg","_doReset","update","finalize","_doFinalize","_createHelper","_createHmacHelper","HMAC","algo","SHA1","_hash","HmacSHA1","_hasher","_oKey","_iKey","Base64","wordArray","_map","base64Chars","triplet","paddingChar","base64Str","base64StrLength","paddingIndex","indexOf","nBytes","bits1","bits2","uuid","isBrowserClient","canUseDom","useId","innerId","setInnerId","retId","TypeError","IdContext","getMenuId","eventKey","useMenuId","MenuContext","InheritableContextProvider","locked","inheritableContext","keys","isEqual","EmptyList","PathRegisterContext","useMeasure","PathTrackerContext","useFullPath","parentKeyPath","_toConsumableArray","PathUserContext","PrivateContext","focusable","includePositive","isVisible","nodeName","toLowerCase","isFocusableElement","isContentEditable","getAttribute","tabIndexAttr","tabIndexNum","tabIndex","disabled","getFocusNodeList","res","querySelectorAll","filter","child","unshift","LEFT","KeyCode","RIGHT","UP","DOWN","ENTER","ESC","HOME","END","ArrowKeys","getFocusableElements","container","elements","has","getNextFocusElement","parentQueryContainer","focusMenuElement","sameLevelFocusableMenuElementList","count","focusIndex","refreshElements","Set","key2element","element2key","querySelector","add","useAccessibility","activeKey","isRtl","getKeys","getKeyPath","triggerActiveKey","triggerAccessibilityOpen","originOnKeyDown","rafRef","activeRef","cleanRaf","which","refreshedElements","_refreshedElements","activeElement","parentElement","getFocusElement","focusMenuKey","offsetObj","isRootLevel","_offsets","parent","inlineTrigger","inline","vertical","inlineSub","horizontalSub","verticalSub","sibling","getOffset","tryFocus","menuElement","focusTargetElement","link","targetKey","focus","targetElement","focusableElements","findContainerUL","controlId","getElementById","keyPath","parentKey","parentMenuElement","PATH_SPLIT","getPathStr","OVERFLOW_KEY","useKeyRecords","internalForceUpdate","key2pathRef","path2keyRef","overflowKeys","setOverflowKeys","updateRef","destroyRef","registerPath","useCallback","connectedPath","then","unregisterPath","refreshOverflowKeys","includeOverflow","fullPath","split","isSubPathKey","pathKeys","some","pathKey","getSubPathKeys","startsWith","useMemoCallback","func","funRef","_funRef$current","_len","args","uniquePrefix","toFixed","internalId","useActive","onMouseLeave","_React$useContext","onActive","onInactive","ret","active","domEvent","useDirectionStyle","level","inlineIndent","paddingRight","paddingLeft","Icon","iconNode","icon","warnItemProp","restInfo","warning","_excluded2","_excluded3","LegacyMenuItem","_React$Component","_inherits","_super","_createSuper","_this$props","title","attribute","passedProps","omit","Overflow","InternalMenuItem","warnKey","itemIcon","role","onKeyDown","onFocus","domDataId","onItemClick","contextDisabled","overflowDisabled","contextItemIcon","selectedKeys","_internalRenderMenuItem","itemCls","legacyMenuItemRef","mergedDisabled","mergedEleRef","useComposeRef","connectedKeys","getEventInfo","reverse","mergedItemIcon","_useActive","activeProps","selected","directionStyle","optionRoleProps","renderNode","info","isSelected","MenuItem","measure","connectedKeyPath","InternalSubMenuList","SubMenuList","parseChildren","toArray","_eventKey","_child$props","cloneProps","autoAdjustOverflow","adjustX","adjustY","placements","topLeft","points","topRight","bottomLeft","bottomRight","leftTop","leftBottom","rightTop","rightBottom","placementsRtl","getMotion","motion","defaultMotions","other","popupPlacementMap","PopupTrigger","popup","popupStyle","popupClassName","popupOffset","getPopupContainer","subMenuOpenDelay","subMenuCloseDelay","builtinPlacements","triggerSubMenuAction","forceSubMenuRender","rootClassName","innerVisible","setInnerVisible","placement","popupPlacement","targetMotion","targetMotionRef","mergedMotion","leavedClassName","removeOnLeave","motionAppear","visibleRef","Trigger","stretch","popupVisible","popupAlign","action","mouseEnterDelay","mouseLeaveDelay","onPopupVisibleChange","popupMotion","fresh","InlineSubMenuList","open","fixedMode","sameModeRef","destroy","setDestroy","mergedOpen","originOnVisibleChanged","onVisibleChanged","newVisible","MenuContextProvider","CSSMotion","motionClassName","motionStyle","InternalSubMenu","internalPopupClose","expandIcon","onTitleClick","onTitleMouseEnter","onTitleMouseLeave","openKeys","contextExpandIcon","onOpenChange","_internalRenderSubMenuItem","subMenuPrefixCls","popupRef","mergedExpandIcon","originOpen","childrenSelected","childrenActive","setChildrenActive","triggerChildrenActive","newActive","mergedActive","onMergedItemClick","popupId","titleNode","isOpen","isSubMenu","triggerModeRef","triggerMode","listNode","SubMenu","childList","Divider","InternalMenuItemGroup","groupPrefixCls","MenuItemGroup","convertItemsToNodes","components","MergedMenuItem","MergedMenuItemGroup","group","MergedSubMenu","submenu","MergedDivider","divider","opt","label","mergedKey","parseItems","items","mergedComponents","EMPTY_LIST","Menu","_childList$","_ref$prefixCls","_ref$tabIndex","_ref$mode","inlineCollapsed","disabledOverflow","_ref$subMenuOpenDelay","_ref$subMenuCloseDela","defaultOpenKeys","defaultActiveFirst","_ref$selectable","selectable","_ref$multiple","defaultSelectedKeys","onSelect","onDeselect","_ref$inlineIndent","_ref$triggerSubMenuAc","_ref$overflowedIndica","overflowedIndicator","overflowedIndicatorPopupClassName","openAnimation","openTransitionName","_internalComponents","measureChildList","mounted","setMounted","_useMergedState","useMergedState","_useMergedState2","setUUID","newId","useUUID","postState","mergedOpenKeys","setMergedOpenKeys","triggerOpenKeys","doUpdate","inlineCacheOpenKeys","setInlineCacheOpenKeys","mountRef","_React$useMemo3","_React$useMemo4","mergedMode","mergedInlineCollapsed","isInlineMode","internalMode","setInternalMode","internalInlineCollapsed","setInternalInlineCollapsed","_React$useState9","_React$useState10","lastVisibleIndex","setLastVisibleIndex","allVisible","_useKeyRecords","registerPathContext","pathUserContext","_useMergedState3","_useMergedState4","mergedActiveKey","setMergedActiveKey","useImperativeHandle","options","_childList$find","_elementToFocus$focus","_refreshElements","shouldFocusKey","find","elementToFocus","_useMergedState5","_useMergedState6","mergedSelectKeys","setMergedSelectKeys","onInternalClick","newSelectKeys","exist","selectInfo","triggerSelection","onInternalOpenChange","newOpenKeys","subPathKeys","onInternalKeyDown","nextOpen","privateContext","wrappedChildList","itemComponent","renderRawItem","renderRawRest","omitItems","len","originOmitItems","maxCount","INVALIDATE","RESPONSIVE","ssr","newLastIndex","ExportMenu","ItemGroup","_iterableToArray","from","fileSize","num","formatDate","timestamp","format","result","POSITIVE_INFINITY","NEGATIVE_INFINITY","date","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","RegExp","replaceValue","$1","replace","countFormat","_a","_c","maxlen","_d","decimallen","_e","roundType","table","en","limit","suffix","ms","th","ph","zh_Hans","zh_Hant","hi","bn","cn","factor","_num","parseFloat","round","formateNumByThree","formatMoney","createRound","methodName","number","precision","pair","_isNativeReflectConstruct","valueOf","Reflect","construct","reactIs","REACT_STATICS","childContextTypes","contextType","contextTypes","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","propTypes","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","compare","TYPE_STATICS","getStatics","isMemo","ForwardRef","render","Memo","getOwnPropertyNames","getOwnPropertySymbols","getOwnPropertyDescriptor","getPrototypeOf","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","descriptor","toFnRef","useMergedRefs","refA","refB","mergeRefs","iter","tar","_step","_iterator","_createForOfIteratorHelperLoose","done","dequal","foo","bar","ctor","tmp","getTime","_step2","_iterator2","_step3","_iterator3","ArrayBuffer","Uint8Array","DataView","byteLength","getInt8","isView","useSafeState","state","isMounted","useMounted","nextState","getBasePlacement","getWindow","ownerDocument","defaultView","isElement","Element","isHTMLElement","HTMLElement","isShadowRoot","ShadowRoot","getUAString","uaData","userAgentData","brands","brand","version","isLayoutViewport","includeScale","isFixedStrategy","clientRect","scaleX","scaleY","visualViewport","addVisualOffsets","getLayoutRect","contains","rootNode","getRootNode","isSameNode","parentNode","host","getNodeName","getComputedStyle","isTableElement","getDocumentElement","documentElement","getParentNode","assignedSlot","getTrueOffsetParent","getOffsetParent","isFirefox","currentNode","css","perspective","contain","willChange","getContainingBlock","getMainAxisFromPlacement","within","mathMax","mathMin","mergePaddingObject","paddingObject","assign","expandToHashMap","hashMap","auto","basePlacements","clippingParents","viewport","popper","reference","variationPlacements","acc","modifierPhases","enabled","phase","fn","_state$modifiersData$","arrowElement","arrow","popperOffsets","modifiersData","basePlacement","axis","padding","rects","toPaddingObject","arrowRect","minProp","maxProp","endDiff","startDiff","arrowOffsetParent","clientSize","clientWidth","centerToReference","center","axisProp","centerOffset","effect","_options$element","requires","requiresIfExists","getVariation","unsetSides","mapToStyles","_Object$assign2","popperRect","variation","offsets","gpuAcceleration","adaptive","roundOffsets","isFixed","_offsets$x","_offsets$y","_ref3","hasX","hasY","sideX","sideY","win","heightProp","widthProp","_Object$assign","commonStyles","_ref4","dpr","devicePixelRatio","roundOffsetsByDPR","_ref5","_options$gpuAccelerat","_options$adaptive","_options$roundOffsets","strategy","attributes","_options$scroll","scroll","_options$resize","resize","scrollParents","scrollParent","hash","getOppositePlacement","matched","getOppositeVariationPlacement","getWindowScroll","scrollLeft","pageXOffset","pageYOffset","getWindowScrollBarX","isScrollParent","_getComputedStyle","getScrollParent","body","listScrollParents","_element$ownerDocumen","isBody","updatedList","rectToClientRect","getClientRectFromMixedType","clippingParent","layoutViewport","getViewportRect","clientTop","clientLeft","getInnerBoundingClientRect","winScroll","getDocumentRect","getClippingRect","boundary","rootBoundary","mainClippingParents","clipperElement","getClippingParents","firstClippingParent","clippingRect","accRect","computeOffsets","commonX","commonY","mainAxis","detectOverflow","_options","_options$placement","_options$strategy","_options$boundary","_options$rootBoundary","_options$elementConte","elementContext","_options$altBoundary","altBoundary","_options$padding","altContext","clippingClientRect","contextElement","referenceClientRect","popperClientRect","elementClientRect","overflowOffsets","offsetData","multiply","_skip","_options$mainAxis","checkMainAxis","_options$altAxis","altAxis","checkAltAxis","specifiedFallbackPlacements","fallbackPlacements","_options$flipVariatio","flipVariations","allowedAutoPlacements","preferredPlacement","oppositePlacement","getExpandedFallbackPlacements","_options$allowedAutoP","allPlacements","allowedPlacements","overflows","sort","computeAutoPlacement","referenceRect","checksMap","makeFallbackChecks","firstFittingPlacement","_basePlacement","isStartVariation","isVertical","mainVariationSide","altVariationSide","checks","every","check","_loop","fittingPlacement","getSideOffsets","preventedOffsets","isAnySideFullyClipped","side","preventOverflow","referenceOverflow","popperAltOverflow","referenceClippingOffsets","popperEscapeOffsets","isReferenceHidden","hasPopperEscaped","_options$offset","invertDistance","skidding","distance","distanceAndSkiddingToXY","_data$state$placement","_options$tether","tether","_options$tetherOffset","tetherOffset","isBasePlacement","tetherOffsetValue","normalizedTetherOffsetValue","offsetModifierState","_offsetModifierState$","mainSide","altSide","additive","minLen","arrowPaddingObject","arrowPaddingMin","arrowPaddingMax","arrowLen","minOffset","maxOffset","clientOffset","offsetModifierValue","tetherMax","preventedOffset","_offsetModifierState$2","_mainSide","_altSide","_offset","_min","_max","isOriginSide","_offsetModifierValue","_tetherMin","_tetherMax","_preventedOffset","withinMaxClamp","getCompositeRect","elementOrVirtualElement","isOffsetParentAnElement","offsetParentIsScaled","isElementScaled","order","modifiers","visited","modifier","dep","depModifier","DEFAULT_OPTIONS","areValidElements","popperGenerator","generatorOptions","_generatorOptions","_generatorOptions$def","defaultModifiers","_generatorOptions$def2","defaultOptions","pending","orderedModifiers","effectCleanupFns","isDestroyed","setOptions","setOptionsAction","cleanupModifierEffects","merged","orderModifiers","existing","_ref$options","cleanupFn","noopFn","forceUpdate","_state$elements","_state$orderedModifie","_state$orderedModifie2","onFirstUpdate","createPopper","hide","computeStyles","eventListeners","flip","disabledApplyStylesModifier","ariaDescribedByModifier","ids","trim","removeAttribute","_popper$getAttribute","_state$elements2","EMPTY_MODIFIERS","usePopper","referenceElement","popperElement","_ref4$enabled","_ref4$placement","_ref4$strategy","_ref4$modifiers","_objectWithoutPropertiesLoose","prevModifiers","popperInstanceRef","_popperInstanceRef$cu","_popperInstanceRef$cu2","_useSafeState","popperState","setState","updateModifier","nextModifiers","optionsSupported","onceSupported","once","canUseDOM","eventName","handler","capture","wrappedHandler","__once","onceHandler","listen","compareDocumentPosition","noop","getRefTarget","InitialTriggerEvents","click","mouseup","pointerup","useClickOutside","onClickOutside","_temp","_ref$clickTrigger","clickTrigger","preventMouseClickOutsideRef","waitingForTrigger","handleMouseCapture","metaKey","altKey","ctrlKey","button","isLeftClickEvent","handleInitialMouse","useEventCallback","handleMouse","_ownerWindow$event","_ownerWindow$parent","doc","ownerWindow","currentEvent","removeInitialTriggerListener","removeMouseCaptureListener","removeMouseListener","mobileSafariHackListeners","remove","useRootClose","onRootClose","onClose","handleKeyUp","code","keyCode","isEscKey","removeKeyupListener","resolveContainerRef","useWaitForDOMRef","onResolved","resolvedRef","earlyRef","nextRef","mergeOptionsWithPopperConfig","_modifiers$eventListe","_modifiers$preventOve","_modifiers$preventOve2","_modifiers$offset","_modifiers$arrow","enableEvents","fixed","containerPadding","_ref$popperConfig","popperConfig","toModifierMap","NoopTransition","inProp","onExited","mountOnEnter","unmountOnExit","hasEnteredRef","handleExited","combinedRef","cloneElement","useRTGTransitionProps","parts","onEnter","onEntering","onEntered","onExit","onExiting","addEndListener","childRef","major","minor","patch","nodeRef","mergedRef","normalize","param","handleEnter","handleEntering","handleEntered","handleExit","handleExiting","handleAddEndListener","status","RTGTransition","transitionProps","_jsx","ImperativeTransition","transition","exited","setExited","onTransition","isInitialRef","handleTransition","useIsomorphicEffect","stale","in","initial","isStale","useTransition","Overlay","outerRef","_props$popperConfig","Transition","runTransition","_useCallbackRef","useCallbackRef","rootElement","attachRef","_useCallbackRef2","attachArrowRef","show","mountOverlay","onHide","rootClose","rootCloseDisabled","rootCloseEvent","arrowProps","renderTransition","appear","ReactDOM","createPortal","input","hint","prim","toPrimitive","_toPrimitive","_toPropertyKey","configurable","writable","PopoverHeader","bsPrefix","_ref$as","as","source","excluded","sourceKeys","useBootstrapPrefix","ownKeys","sym","PopoverBody","getOverlayDirection","bsDirection","getInitialPopperStyles","opacity","Popover","_ref$placement","hasDoneInitialMeasure","decoratedBsPrefix","useIsRTL","primaryPlacement","computedStyle","_jsxs","Header","Body","POPPER_OFFSET","Tooltip","TOOLTIP_OFFSET","UNMOUNTED","EXITED","ENTERING","ENTERED","EXITING","_this","initialStatus","isMounting","enter","appearStatus","nextCallback","_inheritsLoose","prevState","_proto","componentDidMount","updateStatus","componentDidUpdate","prevProps","nextStatus","componentWillUnmount","cancelNextCallback","getTimeouts","exit","mounting","forceReflow","performEnter","performExit","_this2","appearing","maybeNode","maybeAppearing","timeouts","enterTimeout","safeSetState","onTransitionEnd","_this3","setNextCallback","_this4","doesNotHaveTimeoutOrListener","maybeNextCallback","childProps","TransitionGroupContext","Children","only","psuedoElement","rUpper","msPattern","hyphenateStyleName","string","hyphenate","supportedTransforms","transforms","getPropertyValue","isTransform","removeProperty","cssText","emulateTransitionEnd","duration","called","handle","bubbles","cancelable","createEvent","initEvent","dispatchEvent","triggerEvent","transitionEnd","mult","removeEmulate","parseDuration","transitionEndListener","safeFindDOMNode","componentOrElement","TransitionWrapper","forwardRef","fadeStyles","_fadeStyles","Fade","_ref$transitionClasse","transitionClasses","isAppearing","triggerBrowserReflow","customOffset","overlayRef","popoverClass","tooltipClass","overlay","_ref$transition","_ref$rootClose","_ref$show","outerShow","outerProps","popperRef","firstRenderedState","setFirstRenderedState","_useOverlayOffset","hasClass","actualTransition","handleFirstUpdate","scheduleUpdate","BaseOverlay","overlayProps","_popperObj$state","popperObj","aRef","__wrapped","wrapRefs","updatedPlacement","outOfBoundaries","SizeContext","SizeContextProvider","originSize","getRandomValues","Uint32Array","randomBytes","readInt32LE","crypto","msCrypto","global","n_1","s_1","o_1","o_2","u_1","arrayLikeToArray","arrayWithoutHoles","iterableToArray","unsupportedIterableToArray","nonIterableSpread","Row","breakpoints","useBootstrapBreakpoints","minBreakpoint","useBootstrapMinBreakpoint","sizePrefix","brkPoint","cols","propValue","infix","AudioPlayer","subAudioList","contents","subContent","url","audio","_this2$subAudioList$_","_this2$subAudioList$_2","playCursor","playState","paused","play","hightlightCurrentRead","_this2$subAudioList$_3","_this2$subAudioList$_4","pause","totalDuraion","emit","currAudio","Audio","dlCursor","preload","dlCurrent","_subAudioList$dlCurre","_subAudioList$dlCurre2","_subAudioList$dlCurre3","_subAudioList$dlCurre4","_this2$subAudioList$","_subAudioList","_subAudioList$audio","_dlCurrent","_subAudioList$dlCurre5","_subAudioList$dlCurre6","_document$querySelect","_document$querySelect2","_document$querySelect3","classList","results","Sidebar","navRoutes","routes","route","isNav","location","useLocation","profileRef","showLogout","setShowLogout","isCollapse","setCollapse","userInfo","rootState","_rootState$home","home","jumpPage","routePath","logoutCb","logout","onDocDelegate","_e$target","_e$target$classList","_e$target2","_e$target2$classList","uid","getUserInfo","pathname","path","engname","getCookie","backgroundImage","LogoutIcon","backgroundSize","logo","DefaultManIcon","margin","textOverflow","whiteSpace","nick","ArrawDownIcon","MAC_ENTER","BACKSPACE","TAB","NUM_CENTER","SHIFT","CTRL","ALT","PAUSE","CAPS_LOCK","SPACE","PAGE_UP","PAGE_DOWN","PRINT_SCREEN","INSERT","DELETE","ZERO","ONE","TWO","THREE","FOUR","FIVE","SIX","SEVEN","EIGHT","NINE","QUESTION_MARK","X","Y","Z","META","WIN_KEY_RIGHT","CONTEXT_MENU","NUM_ZERO","NUM_ONE","NUM_TWO","NUM_THREE","NUM_FOUR","NUM_FIVE","NUM_SIX","NUM_SEVEN","NUM_EIGHT","NUM_NINE","NUM_MULTIPLY","NUM_PLUS","NUM_MINUS","NUM_PERIOD","NUM_DIVISION","F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12","NUMLOCK","SEMICOLON","DASH","EQUALS","COMMA","PERIOD","SLASH","APOSTROPHE","SINGLE_QUOTE","OPEN_SQUARE_BRACKET","BACKSLASH","CLOSE_SQUARE_BRACKET","WIN_KEY","MAC_FF_META","WIN_IME","isTextModifyingKeyEvent","isCharacterKey","nameStartChar","nameRegexp","regexName","isExist","isEmptyObject","merge","arrayMode","getValue","isName","match","exec","getAllMatches","regex","matches","allmatches","lastIndex","CloseOutlined","AntdIcon","CloseOutlinedSvg","RefIcon","hexRegex","numRegex","consider","hex","leadingZeros","decimalPoint","eNotation","trimmedStr","skipLike","sign","numTrimmedByZeros","numStr","trimZeros","search","agent","vendor","opera","getRoot","_ele$getRootNode","getShadowRoot","inShadow","WarningContext","devUseWarning","noopWarning","deprecated","useLocale","componentName","defaultLocale","fullLocale","LocaleContext","locale","defaultLocaleData","localeFromContext","localeCode","isIconDefinition","theme","normalizeAttrs","attrs","val","toUpperCase","generate","rootProps","tag","getSecondaryColor","primaryColor","generateColor","normalizeTwoToneColors","twoToneColor","twoToneColorPalette","secondaryColor","calculated","IconBase","eleRef","_useContext","csp","mergedStyleStr","valid","svgRef","colors","IconContext","shadowRoot","updateCSS","prepend","attachTo","warn","fill","getTwoToneColors","setTwoToneColors","setTwoToneColor","_normalizeTwoToneColo","_normalizeTwoToneColo2","ReactIcon","blue","primary","spin","rotate","_React$useContext$pre","classString","iconTabIndex","svgStyle","msTransform","getTwoToneColor","hasValue","defaultStateValue","option","defaultValue","onChange","innerValue","setInnerValue","mergedValue","postMergedValue","onChangeFn","prevValue","setPrevValue","useLayoutUpdateEffect","updater","ignoreDestroy","useResetIconStyle","iconPrefixCls","_useToken","useToken","token","useStyleRegister","hashId","nonce","layer","resetIcon","pkg","beacon","ms2s","utils","S4","connection","mozConnection","webkitConnection","effectiveType","protocol","isMac","isMobile","mobileOsType","pcOsType","devicePlatform","ua","camel2underline","Tracker","traceId","bucket","region","apiName","realApi","httpMethod","fileKey","accelerate","customId","deepTracker","Beacon","clsReporter","appid","lastIndexOf","sdkVersionName","sdkVersionCode","osName","networkType","requestName","requestResult","httpDomain","requestPath","networkProtocol","errorCode","errorName","errorMessage","errorRequestId","errorHttpCode","errorServiceName","errorNode","httpTookTime","httpSize","httpMd5","httpSign","httpFullTime","httpSpeed","md5StartTime","md5EndTime","signStartTime","signEndTime","httpStartTime","httpEndTime","endTime","partNumber","httpRetryTimes","partTime","appkey","versionCode","channelID","openid","unionid","strictMode","sessionDuration","getBeacon","formatResult","_err$error","_err$error2","_err$error3","_err$error4","_err$error5","_err$error6","Code","Message","resource","Resource","statusCode","requestId","headers","isSliceUploadFile","isSliceCopyFile","speed","addParamValue","fullError","JSON","execRes","report","formattedParams","api","successKeys","failureKeys","reporterKeys","formatParams","sendEventsToBeacon","sendEventsToCLS","setParams","eventCode","onDirectUserAction","onUserAction","immediate","generateSubTracker","subParams","XmlNode","tagname","_this$child$push","addChild","_this$child$push2","_this$child$push3","getPosition","pos","fillFieldNames","fieldNames","mergedTitle","_title","convertTreeToData","rootNodes","dig","treeNode","isTreeNode","_treeNode$props","rest","dataNode","parsedChildren","flattenTreeData","treeNodeList","expandedKeys","_fillFieldNames","fieldTitles","fieldKey","fieldChildren","expandedKeySet","flattenList","fieldTitle","flattenNode","isStart","isEnd","convertDataToEntities","dataNodes","initWrapper","processEntity","onProcessFinished","externalGetKey","childrenPropName","mergedExternalGetKey","posEntities","keyEntities","wrapper","syntheticGetKey","_mergedConfig","_fillFieldNames2","mergeChildrenPropName","processNode","pathNodes","connectNodes","parentPos","nodes","subNode","subIndex","traverseDataNodes","entity","getTreeNodeProps","loadedKeys","loadingKeys","checkedKeys","halfCheckedKeys","dragOverNodeKey","dropPosition","getEntity","expanded","loaded","loading","checked","halfChecked","dragOver","dragOverGapTop","dragOverGapBottom","convertNodePropsToEventData","eventData","MotionProvider","DomWrapper","STATUS_NONE","STATUS_APPEAR","STATUS_ENTER","STATUS_LEAVE","STEP_NONE","STEP_PREPARE","STEP_START","STEP_ACTIVE","STEP_ACTIVATED","STEP_PREPARED","makePrefixMap","styleProp","prefixes","domSupport","vendorPrefixes","animationend","transitionend","animation","_document$createEleme","prefixedEventNames","getVendorPrefixedEventName","prefixMap","stylePropList","internalAnimationEndName","internalTransitionEndName","supportTransition","animationEndName","transitionEndName","getTransitionName","transitionName","transitionType","onInternalMotionEnd","cacheElementRef","removeMotionEvents","FULL_STEP_QUEUE","SIMPLE_STEP_QUEUE","SkipStep","DoStep","isActive","step","prepareOnly","setStep","_useNextFrame","cancelNextFrame","nextFrame","nextFrameId","isCanceled","useNextFrame","_useNextFrame2","STEP_QUEUE","nextStep","doNext","useStatus","supportMotion","getElement","_React$useReducer","currentValueRef","_ref$motionEnter","motionEnter","_ref$motionAppear","_ref$motionLeave","motionLeave","motionDeadline","motionLeaveImmediately","onAppearPrepare","onEnterPrepare","onLeavePrepare","onAppearStart","onEnterStart","onLeaveStart","onAppearActive","onEnterActive","onLeaveActive","onAppearEnd","onEnterEnd","onLeaveEnd","asyncVisible","setAsyncVisible","_useSyncState","_useSyncState2","getStatus","setStatus","setStyle","currentStatus","mountedRef","deadlineRef","getDomElement","updateMotionEndStatus","deadline","canEnd","currentActive","_useDomMotionEvents","useDomMotionEvents","patchMotionEvents","getEventHandlers","targetStatus","eventHandlers","_useStepQueue","useStepQueue","newStep","onPrepare","_eventHandlers$step","_useStepQueue2","startStep","nextEventHandlers","firstMountChangeRef","mergedStyle","genCSSMotion","transitionSupport","_props$visible","_props$removeOnLeave","motionName","eventProps","contextMotion","isSupportTransition","wrapperNodeRef","_useStatus","_useStatus2","statusStep","statusStyle","mergedVisible","renderedRef","motionChildren","fillRef","mergedProps","statusSuffix","motionCls","supportRef","STATUS_ADD","STATUS_KEEP","STATUS_REMOVE","STATUS_REMOVED","wrapKeyToObject","keyObj","parseKeys","MOTION_PROP_NAMES","genCSSMotionList","OriginCSSMotion","CSSMotionList","_assertThisInitialized","removeKey","onAllRemoved","_onVisibleChanged","motionProps","prop","changedVisible","parsedKeyObjects","mixedKeyEntities","prevKeys","currentKeys","currentIndex","currentLen","prevKeyObjects","currentKeyObjects","hit","currentKeyObj","matchKey","diffKeys","prevEntity","cachedSetTimeout","cachedClearTimeout","process","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","run","marker","runClearTimeout","array","nextTick","browser","env","argv","versions","on","addListener","off","removeListener","removeAllListeners","prependListener","prependOnceListener","binding","cwd","chdir","umask","UNDEFINED","InternalItem","invalidate","renderItem","responsive","responsiveDisabled","registerSize","mergedHidden","internalRegisterSize","overflowStyle","childNode","overflowProps","itemNode","useBatcher","updateFuncRef","channel","channelUpdate","unstable_batchedUpdates","useEffectState","notifyEffectUpdate","stateValue","setStateValue","nextValue","OverflowContext","InternalRawItem","_restProps","contextClassName","restContext","RawItem","defaultRenderRest","omittedItems","_props$data","_props$itemWidth","itemWidth","renderRest","fullySSR","_useEffectState","_useEffectState2","containerWidth","setContainerWidth","mergedContainerWidth","_useEffectState3","_useEffectState4","itemWidths","setItemWidths","_useEffectState5","_useEffectState6","prevRestWidth","setPrevRestWidth","_useEffectState7","_useEffectState8","restWidth","setRestWidth","_useEffectState9","_useEffectState10","suffixWidth","setSuffixWidth","suffixFixedStart","setSuffixFixedStart","displayCount","setDisplayCount","mergedDisplayCount","MAX_SAFE_INTEGER","restReady","setRestReady","itemPrefixCls","mergedRestWidth","isResponsive","shouldResponsive","showRest","mergedRenderItem","updateDisplayCount","suffixFixedStartVal","notReady","getItemWidth","totalWidth","currentItemWidth","displayRest","suffixStyle","restNode","itemSharedProps","internalRenderItemNode","restContextProps","_","mergedRenderRest","overflowNode","ForwardOverflow","propIsEnumerable","propertyIsEnumerable","test1","test2","test3","letter","shouldUseNative","symbols","to","toObject","jsxRuntimeModule","require$$0","require$$1","reactJsxRuntime_production_min","easeInOutSin","time","sin","PI","wait","debounced","cachedType","inDOM","dummy","createTextNode","fontSize","removeChild","detectScrollType","NaN","useEnhancedEffect","callbackRef","NavBtn","hideNavBtnsOnMobile","navBtnStyle","navBtnContainerClassName","navBtnAs","Tag","buttonSpecialProps","containerClassNames","LeftArrowIcon","xmlns","viewBox","strokeWidth","strokeLinecap","strokeLinejoin","x1","y1","x2","y2","RightArrowIcon","nextItem","nextElementSibling","previousItem","lastChild","previousElementSibling","moveFocus","currentFocus","traversalFunction","wrappedOnce","nextFocus","nextFocusDisabled","hasAttribute","Tabs","activeTab","animationDuration","navBtnCLickAnimationDuration","selectedAnimationDuration","didReachEnd","didReachStart","onTabClick","hideNavBtns","tabsScrollAmount","tabsContainerRef","tabRef","tabsContainerStyle","tabsUpperContainerStyle","leftNavBtnClassName","rightNavBtnClassName","navBtnClassName","tabsUpperContainerClassName","tabsContainerClassName","leftNavBtnRef","rightNavBtnRef","showTabsScroll","rightBtnIcon","leftBtnIcon","getTabsBoundingClientRects","_tabRef","_tabsContainerRef","navBtnDisplay","setNavBtnDisplay","getTabsRects","tabRects","tabsContainerEl","selectedTabEl","tabsContainerRects","scrollSelectedIntoView","isClicked","centerPointOfTabs","endOfViewValue","additionalScrollValue","centerOfViewValue","scrollValue","cb","ease","cancelled","animate","updateNavBtnsState","__tabsContainerRef","showStartScroll","showEndScroll","debounce","entries","observe","onNativeTabClick","handleTabsScroll","onRightNavBtnClick","_tabsScrollAmount","onLeftNavBtnClick","goToStart","goToEnd","navBtnProps","conditionalNavBtns","previousItemKey","nextItemKey","isValidElement","Tab","tabAs","tabClassNames","baseUrl","currentDir","fullMatch","origUrl","newUrl","unquotedOrigUrl","allowArrayLike","it","_arrayLikeToArray","_unsupportedIterableToArray","arr2","md5","_require","XMLParser","XMLBuilder","xmlParser","ignoreDeclaration","ignoreAttributes","parseTagValue","xmlBuilder","base64","camSafeUrlEncode","getObjectKeys","forKey","compareVersion","signHeaders","readIntBE","bytes","buf","Uint16Array","buf2str","isUtf8","charCode","clearKey","retObj","readAsBinaryString","blob","readFun","fr","FileReader","readAsArrayBuffer","fileData","binary","reader","fileSliceNeedCopy","ChromeVersion","QBCoreVersion","QQBrowserVersion","md5ChunkSize","each","hasMissingParams","Bucket","Region","Key","Domain","checkBucket","checkRegion","Headers","util","Expect","Expires","Range","paramKey","headerKey","getSkewTime","isIOS","isQQ","apiWrapper","apiFn","tracker","self","EnableReporter","calledBySdk","UseAccelerate","BeaconReporter","ClsReporter","DeepTracker","CustomId","TrackerDelay","RequestId","VersionId","DeleteMarker","_callback","errMsg","missingResult","CompatibilityMode","AppId","UseRawKey","checkParams","isSync","xml2json","bodyStr","json2xml","json","build","fileSlice","file","isUseToUpload","mozSlice","webkitSlice","Blob","getBodyMd5","UploadCheckContentMd5","onProgress","getFileMd5","md5ctx","getCtx","digest","content","percent","b64","char","btoa","isInArray","flag","makeArray","iaArr","attr","throttleOnProgress","time1","timer","size0","size1","time0","immediately","ProgressInterval","getFileSize","ContentLength","sourceErr","obj2str","lowerCaseKey","keyList","getAuth","SecretId","SecretKey","KeyTime","method","Method","queryParams","Query","signHeaderObj","getSignHeaderObj","Pathname","forceSignHost","ForceSignHost","Host","SystemClockOffset","exp","expires","qAk","qSignTime","qKeyTime","qHeaderList","qUrlParamList","signKey","formatString","stringToSign","parseSelectPayload","header","records","totalLength","headerLength","payloadRestLength","headerNameLength","headerName","headerValueLength","headerValue","stats","Stats","errCode","errMessage","payload","getSourceParams","parser","CopySourceParser","isBrowser","isNode","globalThis","FileReaderSync","isCIHost","isIOS_QQ","encodeBase64","safe","encode","replaceAll","decodeBase64","decode","simplifyPath","parseResBody","responseBody","trimBody","isXml","isJson","formatBody","parsedBody","toPropertyKey","enumerableOnly","_objectSpread2","getOwnPropertyDescriptors","defineProperties","formatProdErrorMessage","$$observable","observable","randomString","ActionTypes","INIT","REPLACE","PROBE_UNKNOWN_ACTION","isPlainObject","proto","createStore","reducer","preloadedState","enhancer","currentReducer","currentState","currentListeners","nextListeners","isDispatching","ensureCanMutateNextListeners","replaceReducer","nextReducer","outerSubscribe","observer","observeState","combineReducers","reducers","reducerKeys","finalReducers","shapeAssertionError","finalReducerKeys","assertReducerShape","hasChanged","previousStateForKey","nextStateForKey","compose","funcs","applyMiddleware","middlewares","_dispatch","middlewareAPI","chain","middleware","die","msg","isDraft","DRAFT_STATE","isDraftable","Ctor","Function","objectCtorString","DRAFTABLE","isMap","isSet","getArchtype","entry","thing","type_","propOrOldValue","is","hasMap","hasSet","latest","copy_","base_","shallowCopy","base","descriptors","desc","freeze","deep","isFrozen","dontMutateFrozenCollections","getPlugin","pluginKey","plugin","plugins","loadPlugin","implementation","getCurrentScope","currentScope","usePatchesInScope","scope","patchListener","patches_","inversePatches_","patchListener_","revokeScope","leaveScope","drafts_","revokeDraft","parent_","enterScope","immer","immer_","canAutoFreeze_","unfinalizedDrafts_","draft","revoke_","revoked_","processResult","baseDraft","isReplaced","useProxies_","willFinalizeES5_","modified_","maybeFreeze","generateReplacementPatches_","NOTHING","rootScope","childValue","finalizeProperty","scope_","finalized_","draft_","resultEach","generatePatches_","parentState","targetObject","rootPath","targetIsSet","assigned_","autoFreeze_","peek","getDescriptorFromProto","markChanged","prepareCopy","createProxy","proxyMap_","proxySet_","isManual_","traps","objectTraps","arrayTraps","Proxy","revocable","revoke","proxy","createES5Proxy_","currentImpl","copy","archType","hasChanges_","copyHelper","enableES5","proxyProperty","markChangesSweep","drafts","hasArrayChanges","hasObjectChanges","baseValue","baseIsDraft","markChangesRecursively","hasSymbol","hasProxies","deleteProperty","owner","setPrototypeOf","Immer","recipe","defaultBase","produce","hasError","ip","produceWithPatches","patches","inversePatches","useProxies","setUseProxies","autoFreeze","setAutoFreeze","createDraft","finishDraft","applyPatches","op","applyPatchesImpl","applyPatches_","tmpResult","os","platform","webDetect","REGS","webkit","android","ipad","iphone","chrome","chromeOS","mobile","tablet","safariLike","ie","trident","ierv","wechat","qq","mi","baidu","music","qzone","qmkege","kglite","wesing","mqq","weibo","facebook","instagram","samsung","pcclient","intoo","dating","qua","mp","weband","hermes","device","xiaomi","ios","phone","pc","rn","webview","wechatmp","qqmp","isappreview","cookie","safari","wesingPage","appName","getDevice","server","webPlatform","APPEND_ORDER","APPEND_PRIORITY","MARK_KEY","containerCache","getMark","mark","getContainer","findStyles","tagName","injectCSS","_option$priority","priority","mergedOrder","getOrder","isPrependQueue","styleNode","existStyle","nodePriority","insertBefore","nextSibling","findExistNode","removeCSS","existNode","originOption","cachedRealContainer","placeholderStyle","syncRealContainer","_option$csp","_option$csp2","_option$csp3","newNode","createThunkMiddleware","extraArgument","thunk","withExtraArgument","formatRegExp","convertFieldsError","errors","fields","field","template","isEmptyValue","isNativeStringType","asyncSerialArray","arrLength","original","AsyncValidationError","_Error","_wrapNativeSuper","asyncMap","objArr","_pending","flattenArr","flattenObjArr","firstFields","objArrKeys","objArrLength","asyncParallelArray","complementError","rule","fieldValue","fullFields","fullField","deepMerge","_regeneratorRuntime","Op","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","define","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","makeInvokeMethod","tryCatch","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","_invoke","AsyncIterator","PromiseImpl","invoke","record","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iterable","iteratorMethod","isGeneratorFunction","genFun","__proto__","awrap","async","skipTempReset","stop","rootRecord","rval","exception","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","selectionDetails","PlaceholderTexts","MainLand","_getSoundItemById","_getSoundItemById2","setContent","resultContent","setResultContent","isGenerating","setGenerating","_useState7","_useState8","clickPnBtnRef","editableRef","placeholderInputRef","phoneticNotationBtnRef","_useState9","pnChoices","setPnChoices","_useState10","phoneticTargetErr","setPhoneticTargetErr","currCursorIndex","pinyinNum","pinyin","indexInGlobal","_useState11","setActiveTab","securityTaskIdRef","_useState12","iseditableDivFocus","setEditableDivFocus","audioPlayerRef","_useState13","playingState","setPlayingState","_useState14","playStart","setPlayStart","_useState15","audioMergedUrl","setAudioMergedUrl","isPlaceholderNodeRemoved","myTimbres","soundList","ttsTimbrelist","selectedSound","groups","_rootState$home2","timbreGroup","_useState16","setTotalAudioDuration","_useState17","currentDuration","setCurrentDuration","timing","getResultContent","_editableRef$current","resContent","fixedPhoneWord","innerText","getLimitVisibleContent","_editableRef$current2","visibleResContent","availLength","availContent","outerHTML","getSoundItemById","submitSubContent","_callee","_context","rej","_audioPlayerRef$curre","_audioPlayerRef$curre2","textToSound","request_key","user_id","security_task_id","text","getCurrentContent","spk_mid","version_tag","fixed_phone_word","_res$payload","_res$payload$data","_res$payload$data$dat","_res$payload2","_res$payload2$data","_res$payload2$data$da","_res$payload3","_res$payload4","_res$payload4$data","_res$payload4$data$da","_res$payload5","_res$payload5$data","_res$payload6","_res$payload6$data","_res$payload8","_res$payload8$data","_res$payload8$data$da","_res$payload9","_res$payload9$data","_res$payload9$data$da","task_id","_res$payload7","_res$payload7$data","newSubAudio","promiseSeries","isDownloadFinished","mergeAudioCb","setDlCursorNext","submit","_callee2","_getResultContent","onlyReadContent","_context2","cutsplitContent","sercurityCheck","full_text","section_text","_res$payload10","_res$payload11","_res$payload11$data","_res$payload13","_res$payload13$data","_res$payload12","_res$payload12$data","_res$payload12$data$d","_res$payload14","_res$payload14$data","_res$payload15","_res$payload15$data","reGenerate","audioPlayToggle","toggle","queryTtsResult","_callee4","needDl","_context4","poll","_callee3","_res$data","_res$data$data","_res$data2","_res$data2$data","_res$data5","_res$data6","_res$data4","_res$data4$data","_res$data3","_res$data3$data","_res$data7","_context3","QueryAudioMerge","downloadFile","t0","_x","_x2","_getResultContent2","audioMerge","url_list","getAllUrlList","_res$payload16","_res$payload17","_res$payload17$data","_res$payload18","_res$payload18$data","_res$payload18$data$d","_res$payload19","_res$payload19$data","downloadCb","showPhoneticNotations","_leftStr$match","leftStr","polyphonic","allpinyinNum","toneType","choosePhoneticNotation","_ref6","fileUrl","urlSplitParts","fetch","response","URL","createObjectURL","href","download","revokeObjectURL","phoneticNotationBtnclickCb","pasteCb","pastedData","clipboardData","getData","currContentLength","deleteFromDocument","textNode","_editableRef$current3","newContent","append","docMouseDownCb","_editableRef$current4","editableDivInputCb","editableDivBlurCb","editableDivFocusCb","_editableRef$current5","_editableRef$current6","totalDuration","_phoneticNotationBtnR","_editableRef$current7","_phoneticNotationBtnR2","_editableRef$current8","_editableRef$current9","_editableRef$current10","_editableRef$current11","_editableRef$current12","_editableRef$current13","_editableRef$current14","getTimbreGroups","_res$payload20","_res$payload20$data","_res$payload20$data$d","_groups$","timbreGroups","getTTSTimbreListWithGroup","group_id","groupId","_audioPlayerRef$curre3","_audioPlayerRef$curre4","color","fontWeight","Col","marginTop","placeholder","lineHeight","backgroundColor","objText","TTS_TEXTS","getRandomText","_ref7","_objectDestructuringEmpty","marginLeft","isPlaying","icPlay","icPause","getMMSS","border","flex","_groups$index","groupName","_groups$activeTab","Empty","description","hasAddon","addonBefore","addonAfter","hasPrefixSuffix","prefix","allowClear","cloneEvent","cloneNode","newEvent","selectionStart","selectionEnd","setSelectionRange","resolveOnChange","targetValue","triggerFocus","yearFormat","dayFormat","cellMeridiemFormat","monthBeforeYear","today","backToToday","ok","month","year","timeSelect","dateSelect","weekSelect","monthSelect","yearSelect","decadeSelect","dateFormat","dateTimeFormat","previousMonth","nextMonth","previousYear","nextYear","previousDecade","nextDecade","previousCentury","nextCentury","rangePlaceholder","lang","yearPlaceholder","quarterPlaceholder","monthPlaceholder","weekPlaceholder","rangeYearPlaceholder","rangeQuarterPlaceholder","rangeMonthPlaceholder","rangeWeekPlaceholder","CalendarLocale","timePickerLocale","TimePickerLocale","enUS","typeTemplate","localeValues","Pagination","DatePicker","TimePicker","Calendar","Table","filterTitle","filterConfirm","filterReset","filterEmptyText","filterCheckall","filterSearchPlaceholder","emptyText","selectAll","selectInvert","selectNone","selectionAll","sortTitle","expand","triggerDesc","triggerAsc","cancelSort","Tour","Next","Previous","Finish","Modal","okText","cancelText","justOkText","Popconfirm","Transfer","titles","searchPlaceholder","itemUnit","itemsUnit","selectCurrent","removeCurrent","deselectAll","removeAll","Upload","uploading","removeFile","uploadError","previewFile","edit","copied","Form","optional","defaultValidateMessages","default","required","enum","whitespace","invalid","types","boolean","integer","float","regexp","email","pattern","mismatch","Image","preview","QRCode","expired","refresh","scanned","ColorPicker","presetEmpty","transparent","singleColor","gradientColor","sendRequestWithFetch","cPath","_data$comm","comm","chid","tmeAppID","mesh_devops","ct","tmeLoginType","credentials","reqLogin","_reqLogin","strAppid","GetLoginUserInfo","_x3","_GetLoginUserInfo","mask","musicid","loginType","cv","uin","inCharset","outCharset","notice","needNewCode","GetTTSTimbreListWithGroup","_x4","_GetTTSTimbreListWithGroup","SercurityCheck","_x5","_SercurityCheck","_callee5","_context5","TextToSound","_x6","_TextToSound","_callee6","_context6","AudioMerge","_x7","_AudioMerge","_callee7","_context7","_x8","_QueryAudioMerge","_callee8","_context8","TimbreClone","_x9","_TimbreClone","_callee9","_context9","QueryTimbreClone","_x10","_QueryTimbreClone","_callee10","_context10","GetMyTasks","_x11","_GetMyTasks","_callee11","_context11","GetMyTimbres","_x12","_GetMyTimbres","_callee12","_context12","GetTimbreGroups","_x13","_GetTimbreGroups","_callee13","_context13","generateAuth","_x14","_generateAuth","_callee14","_context14","ASRTempAuth","_x15","_ASRTempAuth","_callee15","_context15","ParseContent","_x16","_ParseContent","_callee16","_context16","SubmitTask","_x17","_SubmitTask","_callee17","_context17","QueryTaskStatus","_x18","_QueryTaskStatus","_callee18","_context18","GetTaskList","_x19","_GetTaskList","_callee19","_context19","GetTaskDetail","_x20","_GetTaskDetail","_callee20","_context20","ContextConsumer","ContextProvider","Lazy","Portal","Profiler","StrictMode","Suspense","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isForwardRef","isFragment","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","themeStyle","TinyColor","colorBgBase","toHsl","fillRule","fillOpacity","cx","cy","rx","ry","Simple","colorFill","colorFillTertiary","colorFillQuaternary","colorBgContainer","_useMemo","borderColor","onBackground","toHexShortString","shadowColor","contentColor","stroke","genSharedEmptyStyle","_normal","_small","_componentCls","componentCls","marginXS","marginXL","marginInline","emptyImgHeight","marginBottom","opacityImage","img","svg","maxWidth","colorTextDescription","marginBlock","emptyImgHeightMD","emptyImgHeightSM","genStyleHooks","controlHeightLG","calc","emptyToken","mergeToken","emptyImgCls","mul","equal","__rest","defaultEmptyImg","DefaultEmptyImg","simpleEmptyImg","SimpleEmptyImg","_classNames","customizePrefixCls","_a$image","image","imageStyle","ConfigContext","getPrefixCls","empty","_useStyle","useStyle","wrapCSSVar","cssVarCls","des","alt","imageNode","PRESENTED_IMAGE_DEFAULT","PRESENTED_IMAGE_SIMPLE","murmur2","SPLIT","Entity","instanceId","opGet","keyPathStr","cache","valueFn","opUpdate","ATTR_TOKEN","ATTR_MARK","CSS_IN_JS_INSTANCE","createCache","cssinjsInstanceId","styleHash","_style$parentNode","CacheEntity","StyleContext","hashPriority","defaultCache","CALC_UNIT","ThemeCache","cacheCallTimes","derivativeOption","_cache2","_cache3","updateCallTimes","derivative","_cache","_this$internalGet","internalGet","MAX_CACHE_SIZE","MAX_CACHE_OFFSET","_this$keys$reduce","callTimes","cacheValue","currentCache","derivatives","_cache$value","deleteByPath","sameDerivativeOption","Theme","cacheThemes","createTheme","derivativeArr","resultCache","WeakMap","RESULT_VALUE","flattenTokenCache","flattenToken","hashed","token2key","salt","isClientSide","unit","toStyleStr","tokenKey","styleId","customizeAttrs","attrStr","token2CSSVar","serializeCSSVar","cssVars","transformToken","themeKey","_config$preserve","_config$ignore","preserve","ignore","_config$unitless","cssVar","unitless","useInsertionEffect","useCompatibleInsertionEffect","renderEffect","deps","useEffectCleanupRegister","effectCleanups","cleanupFlag","useGlobalCache","cacheFn","onCacheRemove","onCacheEffect","globalCache","fullPathStr","register","buildCache","useHMR","prevCache","_ref2$","cacheContent","polyfill","_ref6$","EMPTY_OVERRIDE","hashPrefix","tokenKeys","TOKEN_THRESHOLD","cleanTokenStyle","tokenKeyList","cleanableKeyList","removeStyleTags","getComputedToken","originToken","overrideToken","derivativeToken","getDerivativeToken","mergedDerivativeToken","TOKEN_PREFIX","useCacheToken","tokens","_option$salt","_option$override","override","formatToken","compute","mergedToken","memoResult","tokenStr","overrideTokenStr","cssVarStr","_cssVar$key","actualToken","cssVarsStr","_transformToken","_transformToken2","_tokenKey","_themeKey","recordCleanToken","_hashId","unitlessKeys","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","msGridRow","msGridRowSpan","msGridColumn","msGridColumnSpan","orphans","tabSize","widows","zIndex","zoom","WebkitLineClamp","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","COMMENT","RULESET","DECLARATION","IMPORT","KEYFRAMES","LAYER","replacement","indexof","charat","begin","strlen","sizeof","line","column","character","characters","root","siblings","return","caret","alloc","dealloc","delimit","delimiter","escaping","commenter","identifier","compile","rules","rulesets","pseudo","declarations","atrule","previous","variable","scanning","ampersand","comment","declaration","ruleset","post","serialize","output","cachePathMap","ATTR_CACHE_MAP","CSS_FILE_STYLE","fromCSSFile","existPath","div","_item$split","_item$split2","_inlineMapStyle$paren","inlineMapStyle","prepare","MULTI_VALUE","normalizeStyle","styleStr","injectSelectorHash","hashClassName","hashSelector","_firstPath$match","firstPath","parseStyle","interpolation","parentSelectors","injectHash","_config$transformers","transformers","linters","effectStyle","parseKeyframes","keyframes","animationName","getName","_parseStyle","_parsedStr","flattenStyleList","fullList","originStyle","_keyframe","trans","_trans$visit","visit","isCompoundCSSProperty","_value","appendStyle","cssKey","cssValue","styleName","formatValue","actualValue","subInjectHash","nextRoot","_parseStyle3","_parseStyle4","_parsedStr2","childEffectStyle","dependencies","uniqueHash","STYLE_PREFIX","styleFn","clientOnly","_info$order","autoClear","mock","ssrInline","enableLayer","isMergedClientSide","_useGlobalCache","cachePath","_getStyleAndHash","_style","getStyleAndHash","_getStyleAndHash2","inlineCacheStyleStr","styleObj","_parseStyle5","_parseStyle6","parsedStyle","fromHMR","mergedCSSConfig","nonceStr","effectLayerKeys","effectRestKeys","effectKey","_useGlobalCache2","cachedStyleStr","cachedTokenKey","cachedStyleId","dangerouslySetInnerHTML","__html","CSS_VAR_PREFIX","useCSSVarRegister","_config$scope","stylePath","effectStyles","plain","keyStyleText","sharedAttrs","effectStyleHTML","realToken","cssVarKey","Keyframe","noSplit","notSplit","hueStep","saturationStep","saturationStep2","brightnessStep1","brightnessStep2","lightColorCount","darkColorCount","darkColorMap","toHsv","hsv","rgbToHsv","toHex","rgbToHex","getHue","light","hue","getSaturation","saturation","opts","patterns","pColor","inputToRGB","colorString","_hsv","_colorString","rgb1","rgb2","presetPrimaryColors","red","volcano","orange","gold","yellow","lime","green","cyan","geekblue","purple","magenta","grey","presetPalettes","redDark","volcanoDark","orangeDark","goldDark","yellowDark","limeDark","greenDark","cyanDark","blueDark","geekblueDark","purpleDark","magentaDark","greyDark","rgbToRgb","bound01","rgbToHsl","hue2rgb","hslToRgb","hsvToRgb","mod","allow3Char","pad2","rgbaToHex","allow4Char","convertDecimalToHex","convertHexToDecimal","parseIntFromHex","numberInputToObject","objectWithoutPropertiesLoose","NOT_FOUND","defaultEqualityCheck","defaultMemoize","equalityCheckOrOptions","equals","providedOptions","equalityCheck","_providedOptions$equa","_providedOptions$maxS","maxSize","resultEqualityCheck","comparator","createCacheKeyComparator","put","getEntries","cacheIndex","createLruCache","memoized","matchingEntry","clearCache","createSelectorCreator","memoize","memoizeOptionsFromArgs","_len2","_key2","_lastResult","_recomputations","directlyPassedOptions","memoizeOptions","resultFunc","_directlyPassedOption2","finalMemoizeOptions","dependencyTypes","getDependencies","memoizedResultFunc","lastResult","recomputations","resetRecomputations","createSelector","IndexPage","LoginPop","Login","_location$href","_location$href$split","_location$href$split$","getParameter","WxLogin","redirect_uri","mainBg","backgroundPosition","marginRight","textDecoration","rel","signCallback","signStr","secretKey","tempSecretKey","dataString","Uint8ArrayToString","u8","toUint8Array","CryptoJSTest","needFiltrationParams","formatSignString","query","strParam","createQuery","_createQuery","getServerTime","_getServerTime","serverTime","tempQuery","xhr","XMLHttpRequest","send","onreadystatechange","readyState","responseText","secretid","engine_model_type","guid","voice_format","getUrl","_getUrl","urlQuery","queryStr","signature","isLog","TAG","OnError","secretkey","SpeechRecognizer","socket","isSignSuccess","isSentenceBegin","isRecognizeComplete","sendCount","getMessageList","close","_start","WebSocket","MozWebSocket","onopen","OnRecognitionStart","OnRecognitionComplete","slice_type","OnSentenceBegin","OnSentenceEnd","OnRecognitionResultChange","onclose","_this$socket","write","_defineProperties","CosUtil","customGetSts","getSts","_md","Constructor","protoProps","staticProps","_getFileKey","uploadType","filename","_getAuthToken","_getAuthToken2","_getCosClientMini","_getCosClientMini2","client","CDN","COS","tmpSecretId","tmpSecretKey","SecurityToken","sessionToken","ExpiredTime","expiredTime","auth","sliceUploadFile","_sliceUploadFile","_yield$this$_getCosCl","uploadFilePath","ChunkSize","onTaskReady","taskId","progressData","to16BitPCM","dataLength","dataBuffer","dataView","setInt16","to16kHz","audioData","sampleRate","Float32Array","fitCount","newData","springFactor","before","after","atPoint","audioWorkletCode","getUserMedia","webkitGetUserMedia","mozGetUserMedia","msGetUserMedia","WebRecorder","allAudioData","stream","audioContext","frameTime","frameCount","sampleCount","bitCount","mediaStreamSource","mediaRecorder","audioChunks","recordedAudioBlob","recordFinishedCb","isSupportMediaDevicesMedia","_navigator$mediaDevic","mediaDevices","isSupportUserMediaMedia","isSupportAudioContext","AudioContext","webkitAudioContext","isSupportMediaStreamSource","createMediaStreamSource","isSupportAudioWorklet","audioWorklet","addModule","AudioWorkletNode","isSupportCreateScriptProcessor","createScriptProcessor","getDataCount","getAudioSuccess","getAudioFail","_this$audioContext2","_this$audioContext","stopRecord","suspend","OnStop","destroyStream","getTracks","_getUserMedia","getStreamAudioSuccess","getStreamAudioFail","mediaOption","video","MediaRecorder","isTypeSupported","mimeType","ondataavailable","onstop","audioBlob","audioUrl","_this$audioContext3","_getAudioSuccess","mediaStream","disconnect","audioTrack","getAudioTracks","MediaStream","addTrack","audioWorkletNodeDealAudioData","scriptNodeDealAudioData","_this$mediaStreamSour","scriptProcessor","connect","destination","onaudioprocess","_this2$audioData","_this2$allAudioData","inputBuffer","getChannelData","Int8Array","buffer","audioDataArray","OnReceivedData","_audioWorkletNodeDealAudioData","audioWorkletBlobURL","myNode","numberOfInputs","numberOfOutputs","channelCount","onprocessorerror","port","_this3$allAudioData","onmessageerror","uploadRecord","finishCloneCb","getStsHandle","BusID","FileType","FileSize","FileName","FileMD5","SecretID","Token","Timestamp","Expired","ObjectKey","_this4$recordFinished","_auth","releaseTrack","CLONE_TYPES","CLONE_GUIDES","SoundClone","recordingStep","setRecordingStep","cloneType","setCloneType","readText","setReadText","readTextRef","cloning","setCloning","cdTime","setCdTime","cloneSound","recorderRef","speechRecognizerRef","isCanSendDataRef","isCanStopRef","recordTimeoutRef","getAsrKeyAndStartRecord","startRecord","_recorderRef$current2","randomTextCb","countdown","resultText","_recorderRef$current","tempSecretID","tempToken","hotword_id","needvad","filter_dirty","filter_modal","filter_punc","convert_num_mode","word_info","voice_text_str","asrCheckSimilar","queryCloneResult","_res$data6$data","_res$data7$data","_res$data5$data","_res$data8","_res$data9","_res$data9$data","isTimeout","jumpToTTS","_cloneType","texts","CLONE_TEXTs","showRecordContent","switchCloneType","CloneRetryImg","MicrophoneImg","RecordingImg","alignSelf","getCollapsedHeight","getRealHeight","getCurrentHeight","skipOpacityTransition","propertyName","rootPrefixCls","initCollapseMotion","rootCls","defaultPrefixCls","replaceElement","genWaveStyle","colorPrimary","boxSizing","boxShadow","motionEaseOutCirc","motionDurationSlow","motionEaseInOut","genComponentStyleHook","TARGET_CLS","isValidWaveColor","validateNum","WaveEffect","divRef","setWaveColor","setBorderRadius","setLeft","setTop","setWidth","setHeight","setEnabled","waveStyle","radius","syncPos","borderTopColor","nodeStyle","isStatic","borderLeftWidth","borderTopWidth","borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius","resizeObserver","isSmallComponent","holder","unmount","composeRef","showWaveEffect","useWave","wave","showWave","targetNode","showEffect","rafId","Wave","useSize","customSize","genSpaceCompactStyle","genSpaceStyle","antCls","genSpaceGapStyle","rowGap","spaceGapSmallSize","spaceGapMiddleSize","spaceGapLargeSize","columnGap","spaceToken","paddingXS","paddingLG","resetStyle","SpaceCompactItemContext","useCompactItemContext","compactItemContext","compactItemClassnames","compactDirection","isFirstItem","isLastItem","separator","compactSize","NoCompactStyle","CompactItem","otherProps","Compact","_classNames2","directionConfig","block","mergedSize","ctx","clx","GroupSizeContext","ButtonGroup","others","sizeCls","rxTwoCNChar","isTwoCNChar","convertLegacyProps","danger","isString","isUnBorderedButtonVariant","spaceChildren","needInserted","isPrevChildPure","isCurrentChildPure","splitCNCharsBySpace","IconWrapper","iconWrapperCls","InnerLoadingIcon","iconClassName","mergedIconCls","LoadingOutlined","getCollapsedWidth","getRealWidth","LoadingIcon","existIcon","genButtonBorderStyle","buttonTypeCls","_notLastChild","_notFirstChild","borderInlineEndColor","borderInlineStartColor","genGroupStyle","_notLastChild2","_notFirstChild2","lineWidth","groupBorderColor","colorErrorHover","borderStartEndRadius","borderEndEndRadius","marginInlineStart","borderStartStartRadius","borderEndStartRadius","splitColorStr","parseNum","numList","parseHSVorHSL","limitRange","mergedMax","FastColor","matchFormat","matchPrefix","trimStr","fromHexString","fromRgbString","fromHslString","fromHsvString","_h","_s","_l","_v","fromHsl","fromHsv","setR","_sc","setG","setB","setA","setHue","getLuminance","adjustGamma","raw","pow","getMax","getMin","getLightness","getBrightness","_brightness","darken","amount","lighten","mix","rgba","tint","shade","bg","alpha","isDark","isLight","toHexString","rHex","gHex","bHex","aHex","toHslString","toRgb","toRgbString","rgb","withoutPrefix","connectNum","index1","index2","huePrime","chroma","secondComponent","lightnessModification","vv","hh","ff","cells","txt","getRoundNumber","Color","_FastColor","resets","convertHsb2Hsv","hsb","toHsb","lightness","hsbString","hsbaString","_this$toHsv","AggregationColor","cleared","metaColor","RcColor","toHsbString","toHexFormat","colorsStr","isGradient","RightOutlined","RightOutlinedSvg","PanelContent","customizeClassNames","rendered","setRendered","classnames","CollapsePanel","_props$showArrow","showArrow","headerClass","_props$classNames","_props$styles","collapsible","accordion","panelKey","openMotion","destroyInactivePanel","resetProps","collapsibleHeader","collapsibleIcon","ifExtraExist","handleItemClick","collapsePanelClassNames","headerProps","motionRef","useItems","rawChildren","rawKey","rawCollapsible","rawOnItemClick","rawDestroyInactivePanel","mergeCollapsible","mergeDestroyInactivePanel","childDestroyInactivePanel","childCollapsible","childOnItemClick","propName","getNewChild","getActiveKeysArray","currentActiveKey","activeKeyType","Collapse","_props$destroyInactiv","rawActiveKey","defaultActiveKey","_onChange","collapseClassName","setActiveKey","mergedChildren","pickAttrs","aria","Panel","collapsePanelClassName","RcCollapse","genCollapseMotion","_token$componentCls","motionDurationMid","genBaseStyle","_lastChild","_$concat","_$concat2","_$concat3","_$concat4","_$concat5","_$concat6","_$concat7","_$concat8","_large","_$concat9","_$concat$concat","_$concat10","_$concat11","_$concat12","contentBg","headerBg","headerPadding","collapseHeaderPaddingSM","collapseHeaderPaddingLG","collapsePanelBorderRadius","lineType","colorBorder","colorText","colorTextHeading","colorTextDisabled","fontSizeLG","lineHeightLG","marginSM","paddingSM","fontSizeIcon","contentPadding","fontHeight","fontHeightLG","borderBase","resetComponent","borderBottom","flexWrap","outline","paddingInlineEnd","marginInlineEnd","borderTop","paddingInlineStart","sub","genArrowStyle","_$concat13","fixedSelector","genBorderlessStyle","_$concat14","paddingXXS","paddingTop","genGhostStyle","_$concat15","_$concat16","_$concat17","paddingBlock","collapseToken","borderRadiusLG","colorFillAlter","_props$bordered","bordered","ghost","customizeSize","_props$expandIconPosi","expandIconPosition","mergedExpandIconPosition","renderExpandIcon","panelProps","_b","isBright","bgColorToken","_value$toRgb","prepareToken","paddingInline","onlyIconSize","buttonPaddingHorizontal","buttonPaddingVertical","buttonIconOnlyFontSize","prepareComponentToken","_f","contentFontSize","contentFontSizeSM","contentFontSizeLG","contentLineHeight","getLineHeight","contentLineHeightSM","contentLineHeightLG","solidTextColor","colorBgSolid","defaultShadow","controlOutlineWidth","controlTmpOutline","primaryShadow","controlOutline","dangerShadow","colorErrorOutline","colorTextLightSolid","dangerColor","borderColorDisabled","defaultGhostColor","ghostBg","defaultGhostBorderColor","paddingContentHorizontal","paddingInlineLG","paddingInlineSM","onlyIconSizeSM","onlyIconSizeLG","colorPrimaryHover","linkHoverBg","textTextColor","textTextHoverColor","textTextActiveColor","textHoverBg","colorBgTextHover","defaultColor","defaultBg","defaultBorderColor","defaultBorderColorDisabled","defaultHoverBg","defaultHoverColor","defaultHoverBorderColor","defaultActiveBg","defaultActiveColor","colorPrimaryActive","defaultActiveBorderColor","controlHeight","paddingBlockSM","controlHeightSM","paddingBlockLG","genSharedButtonStyle","iconCls","gap","touchAction","genFocusStyle","letterSpacing","genHoverActiveButtonStyle","btnCls","hoverStyle","activeStyle","genCircleButtonStyle","minWidth","genRoundButtonStyle","genGhostButtonStyle","textColor","textColorDisabled","genSolidDisabledButtonStyle","colorBgContainerDisabled","genDisabledStyle","genPureDisabledButtonStyle","genVariantButtonStyle","variant","genDisabledButtonStyle","genSolidButtonStyle","genOutlinedDashedButtonStyle","genDashedButtonStyle","_ref8","borderStyle","genFilledButtonStyle","_ref9","genTextLinkButtonStyle","_ref10","genColorButtonStyle","_ref11","colorBgSolidHover","colorBgSolidActive","colorFillSecondary","colorLinkHover","colorLinkActive","genDefaultButtonStyle","colorPrimaryTextHover","colorPrimaryTextActive","colorPrimaryBg","colorPrimaryBgHover","colorPrimaryBorder","colorLink","genPrimaryButtonStyle","colorError","colorErrorActive","colorErrorBorderHover","colorErrorBg","colorErrorBgFilledHover","colorErrorBgActive","genDangerousStyle","genCompatibleButtonStyle","colorBgTextActive","genButtonStyle","_prefixCls","_ref12","_ref13","_ref14","iconOnlyCls","opacityLoading","genSizeBaseButtonStyle","baseToken","genSizeSmallButtonStyle","smallToken","borderRadiusSM","genSizeLargeButtonStyle","largeToken","genBlockButtonStyle","_componentCls2","_ref15","buttonToken","genCompactItemStyle","compactCls","parentCls","focusElCls","childCombinator","borderElCls","hoverEffects","compactItemBorder","_itemNot$concat$c","_itemNot$concat$c2","compactItemBorderRadius","genCompactItemVerticalStyle","_item$concat$concat","_item$concat$concat2","compactItemVerticalBorder","genButtonCompactStyle","_compactItem$conca","_compactVerticalI","insetInlineStart","genSubStyleComponent","ButtonTypeMap","dashed","Button","_props$loading","_props$danger","_props$shape","shape","customDisabled","_props$iconPosition","iconPosition","_props$ghost","_props$block","_props$htmlType","htmlType","customClassNames","_props$style","customStyle","autoInsertSpace","mergedType","colorVariantPair","mergedColor","mergedVariant","mergedColorText","mergedInsertSpace","DisabledContext","groupSize","loadingOrDelay","getLoadingConfig","innerLoading","setLoading","hasTwoCNChar","setHasTwoCNChar","internalRef","createRef","buttonRef","delayTimer","buttonText","handleClick","_useCompactItemContex","sizeClassNameMap","large","small","middle","sizeFullName","ctxSize","iconType","linkButtonRestProps","fullStyle","iconClasses","iconStyle","kids","buttonNode","CompactCmp","Group","__ANT_BUTTON","isThenable","ActionButton","buttonProps","autoFocus","emitEvent","isSilent","quitOnNullishReturnValue","actionFn","clickedRef","onInternalClose","timeoutId","returnValueOfOnOk","handlePromiseOnOk","ModalContext","ModalContextProvider","ConfirmCancelBtn","autoFocusButton","cancelButtonProps","cancelTextLocale","mergedOkCancel","onCancel","onConfirm","ConfirmOkBtn","okButtonProps","okTextLocale","okType","onOk","HOOK_MARK","warningFunc","getFieldValue","getFieldsValue","getFieldError","getFieldWarning","getFieldsError","isFieldsTouched","isFieldTouched","isFieldValidating","isFieldsValidating","resetFields","setFields","setFieldValue","setFieldsValue","validateFields","getInternalHooks","initEntityValue","registerField","useSubscribe","setInitialValues","destroyForm","setCallbacks","registerWatch","getFields","setValidateMessages","setPreserve","getInitialValue","ListContext","newMessages","cloned","urlReg","messages","ENUM","getYear","word","includeBoundaries","v4","v6seg","v6List","v6","v46Exact","v4exact","v6exact","exact","ipv4","ipv6","getUrlRegex","ruleType","dateObject","any","Schema","defaultMessages","_messages","source_","series","validator","getValidationMethod","getType","errorFields","doIt","defaultField","addFullField","schema","errorList","suppressWarning","filledErrors","fieldsSchema","paredFieldsSchema","fieldSchema","fieldSchemaList","validate","errs","finalErrors","asyncValidator","_console$error","_console","suppressValidatorError","_errors","validators","messageIndex","AsyncValidator","RawAsyncValidator","replaceMessage","kv","CODE_LOGIC_ERROR","validateRule","_validateRule","messageVariables","cloneRule","originValidator","subRuleField","subResults","fillVariableResult","ruleIndex","validateMessages","mergedMessage","subValue","validateRules","namePath","validateFirst","summaryPromise","filledRules","currentRule","originValidatorFunc","hasPromise","w1","warningOnly","i1","w2","i2","rulePromises","_finishOnFirstFailed","finishOnFirstFailed","_finishOnAllFailed","finishOnAllFailed","errorsList","ruleError","getNamePath","cloneByNamePathList","namePathList","newStore","setValue","containsNamePath","partialMatch","matchNamePath","subNamePath","nameUnit","defaultGetValueFromEvent","valuePropName","move","moveIndex","toIndex","EMPTY_ERRORS","requireUpdate","shouldUpdate","Field","resetCount","isListField","cancelRegisterFunc","_this$props2","_fieldContext$prefixN","fieldContext","prefixName","_this$props3","_this$props3$rules","onMetaChange","_meta","getMeta","metaCache","prevStore","_this$props4","_this$props4$dependen","onReset","curValue","namePathMatch","touched","dirty","validatePromise","warnings","triggerMetaEvent","reRender","validating","dependency","relatedFields","currentValue","triggerName","_ref2$validateOnly","validateOnly","rootPromise","_this$props5","_this$props5$validate","validateDebounce","filteredRules","getRules","validateTrigger","ruleErrors","_ruleErrors$forEach","nextErrors","nextWarnings","_ref4$errors","initialValue","isList","prevValidating","validated","_meta2","getOnlyChild","getControlled","isFunction","toChildrenArray","_this$props6","trigger","getValueFromEvent","getValueProps","mergedValidateTrigger","mergedGetValueProps","originTriggerFunc","valueProps","control","newValue","originTrigger","_this$props7","cancelRegister","returnChildNode","_this$getOnlyChild","FieldContext","WrapperField","listContext","wrapperListContext","keyManager","parentPrefixName","pathName","meta","_ref3$value","getNewValue","operations","indexSet","keysIndex","valueIndex","_move","listValue","__","cell","NameMap","kvs","_cell$match","_cell$match2","FormStore","forceRootUpdate","_init","formHooked","subscribable","initialValues","_this$prevWithoutPres","nextStore","prevWithoutPreserves","updateStore","clearOnDestroy","getFieldEntities","isMergedPreserve","isPreserve","initValue","callbacks","watchList","allValues","fieldEntities","pure","nameList","getFieldsMap","INVALIDATE_NAME_PATH","filterFunc","mergedNameList","mergedFilterFunc","mergedStrict","warningUnhooked","strict","getFieldEntitiesForNamePathList","filteredNameList","_isListField","_isList","getErrors","getWarnings","arg0","arg1","isAllFieldsTouched","shortNamePath","fieldNamePath","isNamePathListTouched","entities","namePathListEntities","testField","requiredFieldEntities","_requiredFieldEntitie","originValue","skipExist","resetWithFieldInitialValue","notifyObservers","notifyWatch","fieldData","fieldPreserve","mergedPreserve","_prevStore","triggerDependenciesUpdate","updateValue","_namePath","mergedInfo","onStoreChange","childrenFields","getDependencyChildrenFields","onValuesChange","triggerOnFieldsChange","rootNamePath","dependencies2fields","dependencyNamePath","fillChildren","isFieldDirty","filedErrors","onFieldsChange","changedFields","fieldName","arg2","provideNameList","promiseList","TMP_SPLIT","validateNamePathList","recursive","mergedErrors","mergedWarnings","allPromiseFinish","lastValidatePromise","resultNamePathList","returnPromise","outOfDate","triggerNamePathList","onFinish","onFinishFailed","useForm","form","formRef","formStore","getForm","FormContext","triggerFormChange","triggerFormFinish","registerForm","unregisterForm","FormProvider","onFormChange","onFormFinish","formContext","formsRef","forms","newForms","_ref$component","_ref$validateTrigger","_onFieldsChange","_onFinish","nativeElementRef","_useForm","formInstance","_getInternalHooks","childrenNode","childrenRenderProps","prevFieldsRef","targetKeys","sourceValue","isSimilar","formContextValue","wrapperNode","onSubmit","_restProps$onReset","useWatchWarning","useWatch","_args$","_form","isFormInstance","valueStr","valueStrRef","isValidForm","namePathRef","getWatchValue","watchValue","nextValueStr","RefForm","FieldForm","FormItemInputContext","NoFormStyle","formItemInputContext","newFormItemInputContext","newContext","isFormItemInput","hasFeedback","feedbackIcon","VariantContext","ContextIsolator","space","pickClosable","closable","closeIcon","useClosableConfig","closableCollection","closableConfig","assignWithoutUndefined","objList","EmptyFallbackCloseCollection","isStyleNameSupport","styleNameList","isStyleValueSupport","shapeCls","sizeStyle","skeletonClsLoading","Keyframes","genSkeletonElementCommonSize","genSkeletonElementAvatarSize","genSkeletonElementInputSize","genSkeletonElementImageSize","genSkeletonElementButtonShape","buttonCls","skeletonButtonCls","genSkeletonElementButtonSize","_skeletonTitleCls","_round$concat","_skeletonTitleCls2","_$concat$concat2","_$concat$concat3","skeletonAvatarCls","skeletonTitleCls","skeletonParagraphCls","skeletonInputCls","skeletonImageCls","gradientFromColor","titleHeight","blockRadius","paragraphLiHeight","controlHeightXS","paragraphMarginTop","verticalAlign","marginBlockStart","listStyle","_Object$assign3","_Object$assign4","genSkeletonElementButton","genSkeletonElementAvatar","genSkeletonElementInput","imageSizeBase","maxHeight","genSkeletonElementImage","skeletonLoadingBackground","skeletonLoadingMotionDuration","animationTimingFunction","genSkeletonColor","skeletonToken","gradientToColor","colorFillContent","colorGradientEnd","marginLG","marginXXS","deprecatedTokens","SkeletonAvatar","_props$size","cls","SkeletonImage","SkeletonInput","SkeletonNode","getWidth","_props$rows","rows","Paragraph","rowList","Title","getComponentProps","Skeleton","_props$avatar","avatar","_props$title","_props$paragraph","paragraph","skeleton","avatarNode","contentNode","hasAvatar","hasTitle","hasParagraph","avatarProps","getAvatarBasicProps","$title","paragraphNode","titleProps","getTitleBasicProps","paragraphProps","basicProps","getParagraphBasicProps","Avatar","Input","voidFunc","WatermarkContext","NormalCancelBtn","NormalOkBtn","confirmLoading","renderCloseIcon","Footer","footerNode","_props$okType","footer","getConfirmLocale","btnCtxValue","btnCtxValueMemo","OkBtn","CancelBtn","DisabledContextProvider","initMotion","inKeyframes","outKeyframes","sameLevelPrefix","animationFillMode","initMotionCommon","animationPlayState","initMotionCommonLeave","fadeIn","fadeOut","initFadeMotion","sameLevel","zoomIn","zoomOut","zoomBigIn","zoomBigOut","zoomUpIn","transformOrigin","zoomUpOut","zoomMotion","initZoomMotion","_zoomMotion$motionNam","motionDurationFast","motionEaseInOutCirc","box","inset","mousePosition","genModalMaskStyle","zIndexPopupBase","colorBgMask","WebkitOverflowScrolling","genModalStyle","_mediaMaxWidth$","paddingBottom","screenSMMax","titleColor","fontWeightStrong","titleFontSize","titleLineHeight","wordWrap","backgroundClip","modalHeaderHeight","modalCloseBtnSize","insetInlineEnd","modalCloseIconColor","fontStyle","textTransform","textRendering","modalCloseIconHoverColor","headerMarginBottom","headerBorderBottom","bodyPadding","footerBg","footerMarginTop","footerPadding","footerBorderTop","footerBorderRadius","genRTLStyle","headerPaddingVertical","headerFontSize","fontSizeHeading5","headerLineHeight","lineHeightHeading5","modalFooterBorderColorSplit","colorSplit","modalFooterBorderStyle","modalFooterBorderWidth","colorIcon","colorIconHover","modalConfirmIconSize","modalTitleHeight","colorBgElevated","wireframe","paddingMD","paddingContentHorizontalLG","confirmBodyPadding","confirmIconMarginInlineEnd","confirmBtnsMarginTop","modalToken","panelSelector","watermark","panelEleRef","getContextPopupContainer","modalContext","modal","handleCancel","wrapClassName","centered","_props$focusTriggerAf","focusTriggerAfterClose","_props$width","modalClassNames","modalStyles","useCSSVarCls","wrapClassNameExtended","dialogFooter","_useClosable","propCloseCollection","contextCloseCollection","fallbackCloseCollection","propCloseConfig","contextCloseConfig","closeBtnIsDisabled","mergedFallbackCloseCollection","mergedClosableConfig","closeIconRender","mergedCloseIcon","ariaProps","useClosable","mergedClosable","panelRef","innerContentEle","_useZIndex","useZIndex","contextZIndex","zIndexContext","Dialog","maskTransitionName","genModalConfirmStyle","_confirmComponentCls","confirmComponentCls","clearFix","colorWarning","colorInfo","colorSuccess","ConfirmContent","confirmPrefixCls","okCancel","staticLocale","mergedIcon","InfoCircleFilled","CheckCircleFilled","CloseCircleFilled","ExclamationCircleFilled","mergedLocale","footerOriginNode","bodyCls","Confirm","ConfirmDialog","_classNames3","afterClose","keyboard","maskStyle","bodyStyle","_props$closable","modalRender","maskClosable","mergedZIndex","CONTAINER_MAX_OFFSET","triggerCancel","ConfirmDialogWrapper","ConfigProvider","destroyFns","defaultRootPrefixCls","getRootPrefixCls","runtimeLocale","mergedGetContainer","confirm","globalConfig","currentConfig","_a2","reactUnmount","getIconPrefixCls","getTheme","dom","reactRender","holderRender","configUpdate","withWarn","withInfo","withSuccess","withError","withConfirm","withPureRenderTheme","genPurePanel","getDropdownCls","postProps","holderRef","popupHeight","setPopupHeight","popupWidth","setPopupWidth","setOpen","interval","dropdownCls","additionalProps","HookModal","hookAfterClose","innerConfig","setInnerConfig","newConfig","originConfig","contextLocale","ElementsHolder","_props","_usePatchElement","setElements","originElements","usePatchElement","patchElement","useModal","actionQueue","setActionQueue","getConfirmFunc","withFunc","resolvePromise","closeFunc","modalRef","silent","confirmed","destroyAction","updateAction","success","modalWarn","OriginModal","destroyAll","_InternalPanelDoNotUseOrYouWillBeFired","PurePanel","EXPAND_COLUMN","INTERNAL_HOOKS","valueRef","eventSelector","nextSelectorValue","createImmutable","ImmutableContext","useImmutableMark","makeImmutable","shouldTriggerRender","refAble","ImmutableComponent","refProps","renderTimesRef","responseImmutable","propsAreEqual","_createImmutable","TableContext","PerfContext","renderWithProps","INTERNAL_KEY_PREFIX","getColumnsKey","columnKeys","dataIndex","validateValue","useCellRender","renderIndex","shouldCellUpdate","perfRecord","returnCellProps","renderData","prevRecord","nextRecord","Cell","_legacyCellProps$colS","_legacyCellProps$rowS","_additionalProps$titl","ellipsis","rowType","colSpan","rowSpan","fixLeft","fixRight","firstFixLeft","lastFixLeft","firstFixRight","lastFixRight","appendNode","_props$additionalProp","isSticky","cellPrefixCls","supportSticky","allColumnsFixedLeft","rowHoverable","_useCellRender","_useCellRender2","legacyCellProps","fixedStyle","isFixLeft","isFixRight","mergedColSpan","mergedRowSpan","_useHoverState","rowIndex","cellStartRow","cellRowSpan","startRow","endRow","hoverStartRow","hoverEndRow","onHover","useHoverState","_useHoverState2","hovering","_additionalProps$onMo","_additionalProps$onMo2","ellipsisConfig","showTitle","getTitleFromCellRenderChildren","alignStyle","mergedChildNode","getCellFixedInfo","colStart","colEnd","stickyOffsets","startColumn","endColumn","nextColumn","prevColumn","canLastFix","col","SummaryContext","Summary","_ref$colSpan","scrollColumnIndex","fixedInfo","flattenColumns","lastColumnIndex","scrollColumn","summaryContext","scrollbar","FooterComponents","Column","ColumnGroup","fillRecords","indent","childrenColumnName","getRowKey","useFlattenRecords","useRowInfo","rowKey","recordIndex","computeRowClassName","expandableType","onTriggerExpand","rowExpandable","onRow","expandRowByClick","rowClassName","nestExpandable","rowSupportExpand","mergedExpandable","hasNestChildren","onInternalTriggerExpand","rowProps","onRowClick","columnsKey","expandable","ExpandedRow","cellComponent","isEmpty","scrollbarSize","fixHeader","fixColumn","componentWidth","horizonScroll","getCellProps","rowInfo","colIndex","appendCellNode","additionalCellProps","fixedInfoList","expandIconColumnIndex","indentSize","onExpand","onCell","_props$indent","RowComponent","rowComponent","scopeCellComponent","expandedRowClassName","expandedRowRender","expandedRef","expandRowNode","computedExpandedRowClassName","baseRowNode","columnClassName","_getCellProps","rowScope","expandContent","MeasureCell","columnKey","onColumnResize","cellRef","MeasureRow","Collection","onBatchResize","infoList","measureColumnWidth","getComponent","emptyNode","flattenData","perfRef","WrapperComponent","trComponent","tdComponent","thComponent","idx","BodyRow","INTERNAL_COL_DEFINE","ColGroup","colWidths","columCount","tableLayout","mustInsert","restAdditionalProps","columnType","FixedHolder","noData","stickyTopOffset","stickyBottomOffset","stickyClassName","maxContentScroll","TableComponent","combinationScrollBarSize","setScrollRef","_scrollRef$current","onWheel","_scrollRef$current2","allFlattenColumnsWithWidth","lastColumn","ScrollBarColumn","onHeaderCell","columnsWithScrollbar","flattenColumnsWithScrollbar","headerStickyOffsets","mergedColumnWidth","cloneColumns","useColumnWidth","HeaderRow","CellComponent","onHeaderRow","cellIndex","rootColumns","fillRowCells","currentColIndex","subColumns","hasSubColumns","rowCount","parseHeaderRows","row","parseColWidth","endsWith","convertChildrenToColumns","nodeChildren","filterHiddenColumns","hidden","flatColumns","parsedFixed","subColum","useColumns","transformColumns","columnTitle","columnWidth","baseColumns","withExpandColumns","expandColIndex","expandColumnIndex","fixedColumn","expandColumn","recordExpandable","mergedColumns","finalColumns","revertForRtl","hasGapFixed","lastLeftIndex","colFixed","_colFixed","firstRightIndex","_i2","_useWidthColumns","missWidthCount","colWidth","maxFitWidth","restCount","avgWidth","realTotal","filledColumns","colAvgWidth","useWidthColumns","_useWidthColumns2","realScrollWidth","expandClassName","useExpand","expandableConfig","legacyExpandableConfig","showExpandColumn","getExpandableProps","expandedRowKeys","defaultExpandedRowKeys","defaultExpandAllRows","onExpandedRowsChange","mergedChildrenColumnName","internalHooks","__PARENT_RENDER_ICON__","findAllChildrenKeys","innerExpandedKeys","setInnerExpandedKeys","mergedExpandedKeys","newExpandedKeys","hasKey","useLayoutState","defaultState","lastPromiseRef","updateBatchRef","prevBatch","batchUpdater","defaultContainer","useStickyOffsets","getOffsets","startOffsets","endOffsets","StickyScrollBar","_scrollBodyRef$curren","_scrollBodyRef$curren2","scrollBodyRef","offsetScroll","bodyScrollWidth","bodyWidth","scrollBarWidth","scrollBarRef","_useLayoutState","isHiddenScrollBar","_useLayoutState2","scrollState","setScrollState","refState","setActive","_window","buttons","checkScrollBarVisible","tableOffsetTop","tableBottomOffset","currentClientOffset","innerHeight","getScrollBarSize","setScrollLeft","onMouseUpListener","onMouseMoveListener","onScrollListener","onResizeListener","bodyNode","persist","DEFAULT_PREFIX","EMPTY_SCROLL_TARGET","defaultEmpty","tableProps","summary","caption","showHeader","internalRefs","tailor","getContainerWidth","sticky","_props$rowHoverable","hasData","useInternalHooks","defaultComponent","customizeScrollBody","_useHover","setStartRow","setEndRow","useHover","_useHover2","_useExpand","_useExpand2","scrollX","setComponentWidth","_useColumns","_useColumns2","flattenScrollX","mergedScrollX","columnContext","fullTableRef","scrollHeaderRef","scrollBodyContainerRef","_scrollBodyRef$curren3","scrollIntoView","scrollXStyle","scrollYStyle","scrollTableStyle","scrollSummaryRef","pingedLeft","setPingedLeft","pingedRight","setPingedRight","colsWidths","updateColsWidths","pureColWidths","stickyRef","_useSticky","_ref$offsetHeader","offsetHeader","_ref$offsetSummary","offsetSummary","_ref$offsetScroll","_ref$getContainer","useSticky","summaryNode","fixFooter","widths","newWidths","_useTimeoutLock","frameRef","timeoutRef","cleanUp","newState","useTimeoutLock","_useTimeoutLock2","setScrollTarget","getScrollTarget","forceScroll","onInternalScroll","_stickyRef$current","mergedScrollLeft","compareTarget","measureTarget","onBodyScroll","triggerOnScroll","_scrollBodyRef$curren4","getDOM","setScrollbarSize","setSupportSticky","styleValue","getTargetScrollBarSize","groupTableNode","renderFixedHeaderTable","fixedHolderPassProps","renderFixedFooterTable","mergedTableLayout","bodyTable","bodyColGroup","captionElement","dataProps","bodyContent","fixedHolderProps","fullTable","_stickyRef$current2","mergedWidth","useFixedInfo","TableContextValue","RefTable","genTable","ImmutableTable","StaticContext","GridContext","VirtualCell","inverse","getHeight","columnsOffset","cellStyle","_additionalCellProps$","_additionalCellProps$2","concatColWidth","getColumnWidth","marginOffset","needHide","mergedRender","cellSpan","ResponseBodyLine","rowCellCls","rowStyle","rowNode","Grid","_useContext2","scrollY","listItemHeight","onTablePropScroll","columnsWidth","_listRef$current2","_listRef$current3","_listRef$current4","getRowSpan","_flattenData$index","_cellProps$rowSpan","cellProps","gridContext","tblPrefixCls","wrapperComponent","horizontalScrollBarStyle","VirtualList","_listRef$current5","firstRowSpanColumns","lastRowSpanColumns","_loop2","spanLines","_loop3","BodyLine","endItemIndex","endItemKey","itemProps","ResponseGrid","renderBody","rawData","VirtualTable","RefVirtualTable","genVirtualTable","DownOutlined","DownOutlinedSvg","Checkbox","_props$defaultChecked","defaultChecked","_props$type","inputProps","inputRef","rawValue","setRawValue","_inputRef$current","blur","_inputRef$current2","nativeEvent","GroupContext","genCheckboxStyle","_$concat$con","_$concat$con2","_indeterminate","checkboxCls","wrapperCls","genFocusOutline","checkboxSize","borderCollapse","lineWidthBold","colorWhite","borderInlineStart","motionEaseInBack","motionEaseOutBack","getStyle","checkboxToken","controlInteractiveSize","InternalCheckbox","_props$indeterminate","indeterminate","_props$skipGroup","skipGroup","checkbox","checkboxGroup","registerValue","cancelValue","checkboxProps","toggleOption","checkboxClass","ariaChecked","RcCheckbox","CheckboxGroup","_props$options","registeredValues","setRegisteredValues","memoOptions","domProps","optionIndex","prevValues","__ANT_CHECKBOX","getArrowToken","sizePopupArrow","borderRadiusXS","borderRadiusOuter","unitWidth","ay","bx","sqrt","by","dx","dy","ex","ey","fx","fy","shadowWidth","polygonOffset","arrowPolygon","arrowShadowWidth","arrowPath","genRoundedArrow","bgColor","clipPath","_multi_value_","insetInline","_skip_check_","MAX_VERTICAL_CONTENT_RADIUS","getArrowOffsetToken","contentRadius","arrowOffset","arrowOffsetHorizontal","arrowOffsetVertical","limitVerticalRadius","isInject","getArrowStyle","colorBg","_placementTopLeft","_placementTopRight","_isInject","_placementBottomLe","_placementBottomRi","_isInject2","_isInject3","_isInject4","boxShadowPopoverArrow","_ref$arrowDistance","arrowDistance","_ref$arrowPlacement","arrowPlacement","PlacementAlignMap","ArrowCenterPlacementAlignMap","DisableAutoArrowList","getPlacements","arrowWidth","arrowPointAtCenter","visibleFirst","halfArrowWidth","placementMap","placementInfo","dynamicInset","autoArrow","baseOverflow","shiftX","shiftY","mergedOverflow","getOverflowOptions","htmlRegion","LeftOutlined","LeftOutlinedSvg","genLayoutStyle","headerHeight","headerColor","bodyBg","minHeight","colorBgLayout","colorBgHeader","colorBgBody","colorBgTrigger","siderBg","triggerHeight","triggerBg","triggerColor","zeroTriggerWidth","zeroTriggerHeight","lightSiderBg","lightTriggerBg","lightTriggerColor","DEPRECATED_TOKENS","genSiderStyle","_zeroWidth","_light","fontSizeXL","SiderContext","Sider","EllipsisOutlined","EllipsisOutlinedSvg","firstLevel","MenuDivider","Popup","overlayInnerStyle","sourceSymbolKeys","autoAdjustOverflowTopBottom","autoAdjustOverflowLeftRight","targetOffset","overlayClassName","_props$trigger","_props$mouseEnterDela","_props$mouseLeaveDela","overlayStyle","afterVisibleChange","_props$placement","_props$align","_props$destroyTooltip","destroyTooltipOnHide","defaultVisible","getTooltipContainer","arrowContent","triggerRef","extraProps","afterPopupVisibleChange","popupTransitionName","popupAnimation","defaultPopupVisible","autoDestroy","PresetColors","genPresetColor","genCss","colorKey","lightColor","lightBorderColor","darkColor","genTooltipStyle","_join","tooltipMaxWidth","tooltipColor","tooltipBg","tooltipBorderRadius","zIndexPopup","boxShadowSecondary","injectStyle","colorBgSpotlight","TooltipToken","inverseColors","parseColor","isInternalColor","isPresetColor","arrowStyle","arrowContentStyle","formattedOverlayInnerStyle","openClassName","afterOpenChange","_props$arrow","_props$arrowPointAtCe","_props$autoAdjustOver","mergedShowArrow","tooltipRef","forceAlign","forcePopupAlign","defaultOpen","noTitle","tooltipPlacements","mergedArrowPointAtCenter","pointAtCenter","memoOverlay","memoOverlayWrapper","injectFromPopover","tempOpen","childCls","customOverlayClassName","RcTooltip","vis","disableMenuItemTitleTooltip","isInlineCollapsed","siderCollapsed","tooltipTitle","tooltipProps","wrapNode","childrenLength","returnNode","OverrideContext","OverrideProvider","canRef","supportNodeRef","slideUpIn","slideUpOut","slideDownIn","slideDownOut","slideLeftIn","slideLeftOut","slideRightIn","slideRightOut","slideMotion","initSlideMotion","_slideMotion$motionNa","motionEaseOutQuint","motionEaseInQuint","getHorizontalStyle","horizontalLineHeight","itemPaddingInline","getRTLStyle","_$concat$concat$conca","menuArrowOffset","accessibilityFocus","getThemeStyle","themeSuffix","_not$concat","_$concat$concat$conca2","itemColor","itemSelectedColor","groupTitleColor","itemBg","subMenuItemBg","itemSelectedBg","activeBarHeight","activeBarWidth","activeBarBorderWidth","motionEaseOut","itemHoverColor","itemDisabledColor","dangerItemColor","dangerItemHoverColor","dangerItemSelectedColor","dangerItemActiveBg","dangerItemSelectedBg","popupBg","itemHoverBg","itemActiveBg","menuSubMenuBg","horizontalItemSelectedColor","horizontalItemSelectedBg","horizontalItemBorderRadius","horizontalItemHoverBg","borderBottomWidth","borderBottomColor","borderInlineEnd","insetBlock","getVerticalInlineStyle","itemMarginInline","menuArrowSize","itemMarginBlock","paddingWithArrow","getVerticalStyle","_$concat$concat$con","_tooltip","dropdownWidth","paddingXL","collapsedWidth","collapsedIconSize","inlineItemStyle","listStylePosition","listStyleType","textEllipsis","genMenuItemStyle","iconSize","iconMarginInlineEnd","genSubMenuArrowStyle","getBaseStyle","_overflow","_popup","_submenu","subMenuItemBorderRadius","groupTitleLineHeight","groupTitleFontSize","itemBorderRadius","fontSizeSM","borderWidth","controlItemBgActive","colorTextDark","setAlpha","radiusItem","radiusSubMenuItem","colorItemText","colorItemTextHover","colorItemTextHoverHorizontal","horizontalItemHoverColor","colorGroupTitle","colorItemTextSelected","colorItemTextSelectedHorizontal","colorItemBg","colorItemBgHover","colorItemBgActive","colorSubItemBg","colorItemBgSelected","colorItemBgSelectedHorizontal","colorActiveBarWidth","colorActiveBarHeight","colorActiveBarBorderSize","colorItemTextDisabled","colorDangerItemText","colorDangerItemTextHover","colorDangerItemTextSelected","colorDangerItemBgActive","colorDangerItemBgSelected","darkItemDisabledColor","darkItemColor","darkDangerItemColor","darkItemBg","darkPopupBg","darkSubMenuItemBg","darkItemSelectedColor","darkItemSelectedBg","darkDangerItemSelectedBg","darkItemHoverBg","darkGroupTitleColor","darkItemHoverColor","darkDangerItemHoverColor","darkDangerItemSelectedColor","darkDangerItemActiveBg","customTheme","contextTheme","parentPath","titleIsSpan","RcSubMenu","isEmptyIcon","MENU_COMPONENTS","InternalMenu","overrideObj","menu","_props$theme","_internalDisableMenuItemTitleTooltip","mergedSelectable","menuToken","menuHorizontalHeight","menuDarkToken","menuClassName","RcMenu","menuRef","moveDownIn","moveDownOut","moveLeftIn","moveLeftOut","moveRightIn","moveRightOut","moveMotion","initMoveMotion","_moveMotion$motionNam","genStatusStyle","menuCls","_trigger$concat","dropdownArrowDistance","dropdownEdgeChildPadding","controlPaddingHorizontal","controlItemBgHover","controlItemBgActiveHover","dropdownToken","Dropdown","dropdownRender","dropdown","memoTransitionName","memoPlacement","dropdownTrigger","triggerActions","alignPoint","onInnerOpenChange","overlayClassNameCustomized","onMenuClick","RcDropdown","overlayNode","isPresetSize","isValidGapNumber","SpaceContext","latestIndex","SpaceContextProvider","InternalSpace","_props$direction","_props$wrap","horizontalSize","verticalSize","isPresetVerticalSize","isPresetHorizontalSize","isValidVerticalSize","isValidHorizontalSize","keepEmpty","itemClassName","spaceContext","gapStyle","Space","DropdownButton","_props$icon","_props$buttonsRender","buttonsRender","destroyPopupOnHide","buttonPrefixCls","dropdownProps","_buttonsRender","leftButtonToRender","rightButtonToRender","InternalDropdown","RadioGroupContext","RadioGroupContextProvider","RadioOptionTypeContext","RadioOptionTypeContextProvider","getGroupRadioStyle","getRadioBasicStyle","wrapperMarginInlineEnd","radioSize","dotColorDisabled","radioColor","radioBgColor","radioInnerPrefixCls","radioDotDisabledSize","radioSizeCalc","insetBlockStart","borderBlockStart","dotSize","getRadioButtonStyle","buttonColor","buttonPaddingInline","buttonBg","buttonCheckedBg","buttonSolidCheckedColor","buttonCheckedBgDisabled","buttonCheckedColorDisabled","buttonSolidCheckedBg","buttonSolidCheckedHoverBg","buttonSolidCheckedActiveBg","borderBlockStartWidth","borderInlineStartWidth","borderInlineEndWidth","radioFocusShadow","radioButtonFocusShadow","radioToken","controlItemBgActiveDisabled","dotPadding","InternalRadio","groupContext","radioOptionTypeContext","radio","innerRef","radioPrefixCls","isButtonType","optionType","radioProps","wrapperClassString","Radio","RadioGroup","_props$buttonStyle","buttonStyle","customizedValue","onBlur","onRadioChange","lastValue","childrenToRender","memoizedValue","RadioButton","__ANT_RADIO","SELECTION_COLUMN","SELECTION_ALL","SELECTION_INVERT","SELECTION_NONE","useSelection","rowSelection","prevSelectedIndex","setPrevSelectedIndex","preserveSelectedRowKeys","selectedRowKeys","defaultSelectedRowKeys","getCheckboxProps","onSelectionChange","onSelectAll","onSelectInvert","onSelectNone","onSelectMultiple","selectionColWidth","selectionType","selections","customizeRenderCell","renderCell","hideSelectAll","_ref6$checkStrictly","checkStrictly","pageData","getRecordByKey","expandType","tableLocale","_useMultipleSelect","currentSelectedIndex","configPrevSelectedIndex","rangeKeys","shouldSelected","rangeKey","changedKeys","multipleSelect","updatePrevSelectedIndex","mergedSelectedKeys","setMergedSelectedKeys","preserveRecordsRef","updatePreserveRecordsCache","newCache","flattedData","convertData","keysSet","preserveRecords","checkboxPropsMap","isCheckboxDisabled","_useMemo2","_conductCheck","conductCheck","derivedSelectedKeys","derivedHalfSelectedKeys","derivedSelectedKeySet","derivedHalfSelectedKeySet","setSelectedKeys","availableKeys","triggerSingleSelection","mergedSelections","checkProps","keySet","_selectionColumn","columnTitleCheckbox","recordKeys","checkedCurrentAll","checkedCurrentSome","customizeSelections","onSelectionClick","allDisabledData","allDisabled","allDisabledAndChecked","allDisabledSomeChecked","changeKeys","mergedIndeterminate","isMultiple","recordKey","originCheckedKeys","arrDel","arrAdd","nextCheckedKeys","tempKeySet","_cloneColumns","restColumns","selectionColumnIndex","prevCol","nextCol","mergedFixed","columnCls","selectionColumn","_renderCell","useProxyImperativeHandle","refObj","_antProxy","isWindow","getScroll","Document","DefaultRenderEmpty","useForceUpdate","responsiveArray","getResponsiveMap","xs","screenXSMax","sm","screenSM","md","screenMD","lg","screenLG","xl","screenXL","xxl","screenXXL","validateBreakpoints","indexableToken","revBreakpoints","breakpoint","breakpointUpper","screenMin","screen","screenMax","nextBreakpointUpperMin","nextScreenMin","useBreakpoint","responsiveMap","refreshOnChange","screensRef","responsiveObserver","subscribers","subUid","screens","matchHandlers","pointMap","paramToken","unregister","matchMediaQuery","mql","matchMedia","supportScreens","DoubleLeftOutlined","DoubleLeftOutlinedSvg","DoubleRightOutlined","DoubleRightOutlinedSvg","items_per_page","jump_to","jump_to_confirm","page","prev_page","next_page","prev_5","next_5","prev_3","next_3","page_size","defaultPageSizeOptions","Options","_props$pageSizeOption","pageSizeOptions","changeSize","pageSize","goButton","quickGo","Select","selectComponentClass","selectPrefixCls","buildOptionText","showSizeChanger","goInputText","setGoInputText","getValidValue","mergeBuildOptionText","go","KEYCODE","changeSelect","goInput","gotoButton","showSizeChangerOptions","showSizeChangerClassName","Option","showSearch","optionLabelProp","popupMatchSelectWidth","triggerNode","_showSizeChanger$onCh","onKeyUp","relatedTarget","Pager","onKeyPress","itemRender","pager","defaultItemRender","isInteger","isFinite","calculatePage","_pageSize","_props$selectPrefixCl","currentProp","_props$defaultCurrent","defaultCurrent","_props$total","pageSizeProp","_props$defaultPageSiz","defaultPageSize","_props$onChange","hideOnSinglePage","_props$showPrevNextJu","showPrevNextJumpers","showQuickJumper","showLessItems","_props$showTitle","_props$onShowSizeChan","onShowSizeChange","_props$locale","zhCN","_props$totalBoundaryS","totalBoundaryShowSizeChanger","simple","showTotal","_props$showSizeChange","_props$itemRender","jumpPrevIcon","jumpNextIcon","prevIcon","nextIcon","paginationRef","setPageSize","setCurrent","internalInputVal","setInternalInputVal","jumpPrevPage","jumpNextPage","getItemIcon","inputValue","allPages","shouldDisplayQuickJumper","handleChange","isValid","currentPage","newPage","hasPrev","hasNext","prevHandle","nextHandle","jumpPrevHandle","jumpNextHandle","runIfEnter","restParams","handleGoTO","jumpPrev","dataOrAriaAttributeProps","totalText","jumpNext","pagerList","pagerProps","prevPage","nextPage","isReadOnly","readOnly","simplePager","pageBufferSize","prevItemTitle","nextItemTitle","jumpPrevContent","jumpNextContent","lastOne","prevButton","renderPrev","prevDisabled","nextDisabled","nextTabIndex","nextButton","renderNext","newCurrent","nextCurrent","getStatusClassNames","getMergedStatus","contextStatus","customStatus","useVariant","legacyBordered","configVariant","componentConfig","ctxVariant","configComponentVariant","Variants","mergedBuiltinPlacements","buildInPlacements","popupOverflow","getBuiltInPlacements","genItemStyle","optionHeight","optionFontSize","optionLineHeight","optionPadding","genSingleStyle","_has$concat$conc","_selectedNot$conc","_disabled","_option","selectItemCls","slideUpEnterActive","slideUpAppearActive","slideUpLeaveActive","dropdownPlacementCls","fontVariant","optionActiveBg","optionSelectedColor","optionSelectedFontWeight","optionSelectedBg","genSelectionStyle","INTERNAL_FIXED_ITEM_MARGIN","selectOverflowPrefixCls","selectItemHeight","multipleSelectItemHeight","selectItemDist","selectHeight","getSelectItemStyle","suffixCls","multipleSelectorUnit","basePadding","itemLineHeight","getMultipleSelectorUnit","_selectOverflowPrefix","multipleItemColorDisabled","multipleItemBorderColorDisabled","genOverflowStyle","multipleSelectorBgDisabled","inputPaddingHorizontalBase","fontFamily","genSizeStyle","_rawStyle","rawStyle","genMultipleStyle","multipleItemHeightSM","multipleItemHeightLG","controlPaddingHorizontalSM","selectHeightWithoutBorder","singleInputPaddingHorizontal","WebkitAppearance","showArrowPaddingInlineEnd","colorTextPlaceholder","_not$concat2","inputPaddingHorizontalSM","singleItemHeightLG","genBaseOutlinedStyle","_not$concat$concat","selectorBg","hoverBorderHover","activeBorderColor","activeOutlineColor","genOutlinedStatusStyle","genBaseFilledStyle","_not$concat$concat2","hoverBg","genFilledStatusStyle","genVariantsStyle","hoverBorderColor","colorWarningHover","colorWarningOutline","multipleItemBg","multipleItemBorderColor","genOutlinedStyle","colorErrorBgHover","colorWarningBg","colorWarningBgHover","genFilledStyle","_borderless","_iconCls","genSelectorStyle","appearance","getSearchInputWithoutBorderStyle","colorTextQuaternary","colorTextTertiary","genSelectStyle","genDropdownStyle","selectToken","multipleItemHeight","dblPaddingXXS","dblLineWidth","clearBg","CheckOutlined","CheckOutlinedSvg","SearchOutlined","SearchOutlinedSvg","SECRET_COMBOBOX_MODE_DO_NOT_USE","InternalSelect","mergedNotFound","dropdownClassName","_props$listHeight","listHeight","customListItemHeight","notFoundContent","dropdownMatchSelectWidth","propDirection","customizeVariant","dropdownStyle","tagRender","renderEmpty","contextDirection","contextPopupMatchSelectWidth","select","_useVariants","useVariants","enableVariantCls","showSuffixIcon","suffixIcon","useShowArrow","mergedPopupMatchSelectWidth","_React$useContext2","mergedStatus","_useIcons","clearIcon","menuItemSelectedIcon","removeIcon","mergedClearIcon","getSuffixIconNode","arrowIcon","mergedSuffixIcon","useIcons","mergedAllowClear","selectProps","mergedPopupClassName","RcSelect","OptGroup","MiniSelect","MiddleSelect","initInputToken","inputAffixPadding","initComponentToken","addonBg","activeShadow","errorActiveShadow","warningActiveShadow","activeBg","inputFontSize","inputFontSizeLG","inputFontSizeSM","genHoverStyle","affixColor","genOutlinedGroupStatusStyle","addonBorderColor","addonColor","genOutlinedGroupStyle","colorErrorText","colorWarningText","inputColor","_Object$assign6","genFilledGroupStatusStyle","genFilledGroupStyle","_Object$assign8","_Object$assign9","genInputLargeStyle","genInputSmallStyle","genBasicInputStyle","genInputStyle","_typeColor","colorSmallPadding","extraStyles","colorWarningBorderHover","_Object$assign7","_Object$assign5","genAffixStyle","_affixClsDisabled","affixCls","affixClsDisabled","genAllowClearStyle","_lg","_sm","_not$concat$concat3","_not$concat$concat4","_$concat$concat$conc","_addon","_hover","_$concat$concat4","borderSpacing","genInputGroupStyle","genSearchInputStyle","_hoverFocus","_$concat$concat5","_not$concat3","_searchPrefixCls","searchPrefixCls","insetBlockEnd","genTextAreaStyle","_showCount","_affixWrapper$conc","_affixWrapper$conc2","_textareaPrefixCls","textareaPrefixCls","genRangeStyle","inputToken","resetFont","genPaginationStyle","_mediaOnlyScreenA","_mediaOnlyScreenA2","itemSize","paginationItemPaddingInline","genPaginationItemStyle","_hover2","_$concat$concat6","_$concat$concat7","paginationEllipsisLetterSpacing","textIndent","paginationEllipsisTextIndent","paginationSlashMarginInlineEnd","paginationSlashMarginInlineStart","genPaginationJumpStyle","itemSizeSM","itemInputBg","inputOutlineOffset","genPaginationSimpleStyle","paginationMiniOptionsMarginInlineStart","miniOptionsSizeChangerTop","paginationMiniQuickJumperInputWidth","genPaginationMiniStyle","_focusVisible","itemActiveBgDisabled","itemActiveColorDisabled","genPaginationDisabledStyle","genPaginationFocusStyle","_$concat$concat8","_$concat$concat9","itemLinkBg","paginationToken","genBorderedStyle","customizeSelectPrefixCls","customLocale","_React$useContext$pag","pagination","mergedShowSizeChanger","iconsProps","isSmall","extendedClassName","BorderedStyle","RcPagination","viewSize","circumference","CustomCircle","dotClassName","hasCircleCls","Progress","holderClassName","hideClassName","setRender","safePtg","circleStyle","Looper","_props$percent","Indicator","indicator","antSpinMove","antRotate","genSpinStyle","_fullscreen","_div$concat","_nestedLoading","contentHeight","textShadow","dotSizeSM","dotSizeLG","spinDotDefault","animationDirection","animationDelay","spinToken","STEP_BUCKETS","defaultIndicator","Spin","_props$spinning","spinning","customSpinning","_props$delay","tip","wrapperClassName","_props$fullscreen","fullscreen","shouldDelay","setSpinning","mergedPercent","mockPercent","setMockPercent","mockIntervalRef","isAuto","restPTG","_STEP_BUCKETS$i","stepPtg","usePercent","showSpinning","isNestedPattern","spinClassName","containerClassName","mergedIndicator","spinElement","setDefaultIndicator","iconPrefix","getColumnKey","defaultKey","getColumnPos","renderColumnTitle","FilterFilled","FilterFilledSvg","FileOutlined","FileOutlinedSvg","FolderOpenOutlined","FolderOpenOutlinedSvg","FolderOutlined","FolderOutlinedSvg","HolderOutlined","HolderOutlinedSvg","treeNodeFX","_close","_draggable","_treeNodeCls","_close2","_showLine","treeCls","treeNodeCls","treeNodePadding","nodeSelectedBg","nodeHoverBg","treeCheckBoxMarginHorizontal","getSwitchStyle","getDropIndicatorStyle","genDirectoryStyle","_selected","_treeNodeCls2","directoryNodeSelectedBg","directoryNodeSelectedColor","genTreeStyle","treeToken","getCheckboxStyle","dropIndicatorRender","dropLevelOffset","startPosition","endPosition","CaretDownFilled","CaretDownFilledSvg","MinusSquareOutlined","MinusSquareOutlinedSvg","PlusSquareOutlined","PlusSquareOutlinedSvg","SwitcherIconCom","showLeafIcon","switcherIcon","treeNodeProps","showLine","switcherLoadingIcon","isLeaf","leafIcon","leafCls","switcherCls","switcher","Tree","tree","_props$showIcon","showIcon","_props$blockNode","blockNode","_props$checkable","checkable","_props$selectable","draggable","customMotion","newProps","draggableConfig","mergedDraggable","nodeDraggable","RcTree","nodeProps","traverseNodesKey","treeData","calcRangeKeys","convertDirectoryKeysToNodes","restKeys","getIcon","getTreeData","DirectoryTree","defaultExpandAll","defaultExpandParent","defaultExpandedKeys","lastSelectedKey","cachedSelectedKeys","conductExpandParent","setExpandedKeys","_props$expandAction","expandAction","connectClassName","newSelectedKeys","_node$key","ctrlPick","shiftPick","selectedNodes","ForwardDirectoryTree","TreePure","TreeNode","inputPrefixCls","compact","formItemContext","groupFormItemContext","getAllowClear","useRemovePasswordTimeout","triggerOnMount","removePasswordTimeoutRef","removePasswordTimeout","_classNames4","_classNames5","customVariant","inputHasPrefixSuffix","showCount","suffixNode","_useVariant","RcInput","autoComplete","affixWrapper","groupWrapper","genOTPStyle","OTPInput","onActiveChange","internalValue","syncSelection","inputEle","onInput","strToArr","OTP","_props$length","formatter","domAttrs","proxyFormContext","refs","internalFormatter","valueCells","setValueCells","triggerValueCellsChange","nextValueCells","patchValue","nextCells","formattedValue","onInputChange","nextIndex","onInputActiveChange","inputSharedProps","singleValue","htmlSize","EyeInvisibleOutlined","EyeInvisibleOutlinedSvg","EyeOutlined","EyeOutlinedSvg","defaultIconRender","actionMap","hover","Password","_props$action","_props$visibilityTogg","visibilityToggle","_props$iconRender","iconRender","visibilityControlled","customizeInputPrefixCls","_iconProps","iconTrigger","iconProps","inputClassName","omittedProps","Search","_props$enterButton","enterButton","customOnSearch","onSearch","customOnChange","onCompositionStart","onCompositionEnd","composedRef","searchIcon","btnClassName","enterButtonAsElement","isAntdButton","onPressEnter","TextArea","textArea","resizableTextArea","RcTextArea","textarea","InternalInput","FilterSearch","filterSearch","tablePrefixCls","FilterDropdownMenuWrapper","flattenKeys","filters","searchValueMatched","searchValue","renderFilterItems","filteredKeys","filterMultiple","wrapStringListType","FilterDropdown","dropdownPrefixCls","filterOnClose","_props$filterMode","filterMode","_props$filterSearch","filterState","triggerFilter","filterDropdownOpen","onFilterDropdownOpenChange","filterResetToDefaultFilteredValue","defaultFilteredValue","filterDropdownVisible","onFilterDropdownVisibleChange","filtered","forceFiltered","triggerVisible","propFilteredKeys","getFilteredKeysSync","setFilteredKeysSync","onSelectKeys","onCheck","setOpenKeys","setSearchValue","dropdownContent","internalTriggerFilter","mergedKeys","closeDropdown","dropdownMenuClass","onCheckAll","allFilterKeys","getFilterData","filterDropdown","clearFilters","autoExpandParent","filterTreeNode","getFilterComponent","filterIcon","collectFilterStates","filterStates","columnPos","filteredValues","filteredValue","injectFilter","_column$filterOnClose","_column$filterMultipl","newColumn","renderProps","generateFilterInfo","currentFilters","keyAsString","originKey","currentData","_filterState$column","onFilter","keyIndex","realKey","getMergedColumns","rawMergedColumns","flatMap","useFilter","onFilterChange","setFilterStates","mergedFilterStates","collectedStates","filteredKeysIsAllNotControlled","newFilterStates","innerColumns","useLazyKVMap","mapCacheRef","kvMap","extendsObject","_arguments","usePagination","_a$total","paginationTotal","paginationObj","innerPagination","setInnerPagination","mergedPagination","maxPage","refreshPagination","CaretDownOutlined","CaretDownOutlinedSvg","CaretUpOutlined","CaretUpOutlinedSvg","ASCEND","DESCEND","getMultiplePriority","sorter","getSortFunction","collectSortStates","sortStates","pushState","multiplePriority","sortOrder","defaultSortOrder","injectSorter","sorterStates","triggerSorter","defaultSortDirections","tableShowSorterTooltip","sortDirections","showSorterTooltip","sorterState","nextSortOrder","nextSortDirection","sortIcon","upNode","downNode","sortTip","columnSortersClass","renderColumnTitleWrapper","renderSortTitle","originOnClick","originOKeyDown","renderTitle","displayTitle","stateToInfo","generateSorterInfo","getSortData","innerSorterStates","cloneData","runningSorters","record1","record2","compareFn","compareResult","subRecords","useFilterSorter","onSorterChange","setSortStates","getColumnKeys","newKeys","childKeys","mergedSorterStates","mergedColumnsKeys","validateStates","patchStates","multipleMode","columnTitleSorterProps","sortColumns","sortColumn","sortState","newSorterStates","fillTitle","columnTitleProps","cloneColumn","useTitleColumns","RcTable","_renderTimes","RcVirtualTable","_t","_t2","_table2","_tableTbody","tableBorderColor","tableHeaderBg","tablePaddingVertical","tablePaddingHorizontal","tableBorder","getSizeBorderStyle","paddingVertical","paddingHorizontal","_table","tablePaddingVerticalMiddle","tablePaddingHorizontalMiddle","tablePaddingVerticalSmall","tablePaddingHorizontalSmall","genEllipsisStyle","_$concat$","wordBreak","genEmptyStyle","genExpandStyle","_tr$concat","tableExpandIconBg","tableExpandColumnWidth","tableExpandedRowBg","expandIconMarginTop","expandIconSize","expandIconHalfInner","expandIconScale","expandIconLineOffset","operationUnit","genFilterStyle","_input","tableFilterDropdownWidth","tableFilterDropdownSearchWidth","headerIconColor","tableHeaderFilterActiveBg","tableFilterDropdownBg","tableFilterDropdownHeight","filterDropdownMenuBg","tableFilterDropdownPrefixCls","treePrefixCls","genFixedStyle","zIndexTableFixed","tableBg","zIndexTableSticky","genRadiusStyle","tableRadius","genStyle","_tableTrTh","headerIconHoverColor","tableSelectionColumnWidth","tableSelectedRowBg","tableSelectedRowHoverBg","tableRowHoverBg","getSizeStyle","tableFontSizeMiddle","tableFontSizeSmall","genSorterStyle","tableHeaderSortHoverBg","tableFixedHeaderSortActiveBg","tableHeaderSortBg","tableBodySortBg","genStickyStyle","tableScrollThumbBg","tableScrollThumbBgHover","tableScrollThumbSize","tableScrollBg","stickyScrollBarBorderRadius","genSummaryStyle","genVirtualStyle","genTableStyle","_trTh","_$co","_thTd","tableFontSize","tableHeaderTextColor","tableHeaderCellSplitColor","tableFooterTextColor","tableFooterBg","scrollbarColor","overflowWrap","headerSortActiveBg","headerSortHoverBg","bodySortBg","rowHoverBg","rowSelectedBg","rowSelectedHoverBg","rowExpandedBg","cellPaddingBlock","cellPaddingInline","cellPaddingBlockMD","cellPaddingInlineMD","cellPaddingBlockSM","cellPaddingInlineSM","footerColor","headerBorderRadius","cellFontSize","cellFontSizeMD","cellFontSizeSM","headerSplitColor","fixedHeaderSortActiveBg","headerFilterHoverBg","filterDropdownBg","expandIconBg","selectionColumnWidth","stickyScrollBarBg","tableToken","genRtlStyle","colorBorderSecondary","colorFillSecondarySolid","colorFillContentSolid","colorFillAlterSolid","baseColorAction","baseColorActionHover","getAlpha","InternalTable","customizeDropdownPrefixCls","dataSource","_props$rowKey","legacyChildrenColumnName","_props$showSorterTool","needResponsive","_React$useContext$loc","_mergedExpandable$chi","returnWidth","borderRightWidth","useContainerWidth","rootRef","tblRef","changeEventInfo","triggerOnChange","changeInfo","resetPagination","scrollToFirstRowOnChange","_options$getContainer","_options$duration","frameFunc","cc","nextScrollTop","currentDataSource","_useSorter","useSorter","transformSorterColumns","sorterTitleProps","getSorters","sortedData","_useFilter","transformFilterColumns","mergedFilters","filterKey","transformTitleColumns","_usePagination","pageProp","getPaginationParam","_mergedPagination$cur","_mergedPagination$pag","_useSelection","transformSelectionColumns","selectedKeySet","topPaginationNode","bottomPaginationNode","spinProps","paginationSize","renderPagination","defaultPosition","topPos","bottomPos","isDisable","wrapperClassNames","virtualProps","mergedRowClassName","ForwardTable","TASK_STATUS","PodcastList","_ref$isHorizontal","_ref$taskList","taskList","_ref$loading","_ref$hasMore","hasMore","onLoadMore","scrollContainerRef","_useAudio","useAudio","audioState","audioControls","handleScroll","TaskID","Cover","Status","TASK_STATUS_AUDIO_DONE","Duration","AudioURL","_arrayWithoutHoles","_nonIterableSpread","MINE_TYPES","selectedType","setSelectedType","selectedTask","setSelectedTask","setPlaying","isPlayingRef","isSoundPlaying","setSoundPlaying","ttsAudioRef","soundAudioRef","checkDetail","res_url","source_audio_url","downloadRowCb","selectedTaskDuration","myTaskList","_rootState$home2$myTa","created_time_fmt","millisecond","thisTime","getMilliseconds","formatDateTime","created_time","duration_fmt","icDownloadBlack","aipodcastList","setAipodcastList","aipodcastLoading","setAipodcastLoading","aipodcastHasMore","setAipodcastHasMore","aipodcastPassback","setAipodcastPassback","getAIPodcastList","Passback","isLoadMore","Size","PageData","More","playCb","getMyTasks","userId","getMyTimbres","switchTypeCb","justifyItems","wrapStyle","icDownload","CONTENT_TYPE","CONTENT_TYPE_MAP","_CONTENT_TYPE_MAP","CONTENT_TYPE_SONG","CONTENT_TYPE_ALBUM","CONTENT_TYPE_SONG_LIST","PodcastInput","taskID","setLink","setType","setName","contentID","setContentID","isMusicAnalyse","parseUrl","Type","Name","ContentID","PageStatus","AIPodcast","pageStatus","setPageStatus","setTaskID","taskInfo","setTaskInfo","waitingTime","setWaitingTime","pollingTimerRef","isDownloading","setIsDownloading","checkGeneratingTasks","Done","startPolling","pollTaskStatus","currentInterval","_taskInfo$Digest","_taskInfo$Digest2","_taskInfo$Digest3","_taskInfo$Digest4","_taskInfo","newInterval","TaskInfo","PollingMs","WaitingTime","Digest","TASK_STATUS_AUDIO_PENDING","RESULT","audioURL","initTask","DEFAULT","searchParams","urlTaskID","URLSearchParams","Info","_taskInfo2$Digest","_taskInfo2$Digest2","_taskInfo2$Digest3","TASK_STATUS_TEXT_DONE","LOADING","_taskInfo$Digest6","_taskInfo$Digest7","_taskInfo$Digest8","_taskInfo$Digest9","_taskInfo$Digest10","_taskInfo$Digest11","cover","_taskInfo$Digest5","autoPlay","muted","loop","playsInline","objectFit","WebkitTransform","WebkitBoxShadow","MozBoxShadow","WebkitClipPath","clip","renderLoading","Script","currentTime","padStart","Mine","defaultIconPrefixCls","Consumer","ExclamationCircleFilledSvg","_Base64","b64chars","b64tab","bin","cb_utob","re_utob","utob","cb_encode","ccc","padlen","ord","_encode","urisafe","m0","re_btou","cb_btou","cccc","btou","cb_decode","chars","atob","_decode","VERSION","fromBase64","toBase64","encodeURI","noConflict","arrayWithHoles","_r","_arr","_n","iterableToArrayLimit","nonIterableRest","_events","one","MD5","getACSRFToken","_DJB","TOURIST_OPEN_TYPE","isTouristLogin","midToCover","coverUrl","albumMid","albumVersion","uidToAvatar","idToGiftLogo","getIntranetIP","RTCPeerConnection_1","RTCPeerConnection","webkitRTCPeerConnection","rtc_1","iceServers","createDataChannel","onicecandidate","candidate","grepSDP_1","createOffer","offer","setLocalDescription","sdp","lf","setPrivateIp","firstStartJump_strPrivateIp","clipboard","setData","execCommand","emNodeExpoType","checkNucleonExpose","exposeSize","IDLE","contentOffset","layoutOffset","layoutSize","visibleSize","END_HIDDEN","END_PARTAIL","FULL","START_PARTAIL","START_HIDEEN","checkThroughNodeExpose","JUSTIFY_PARTAIL","checkNodeExpo","retry","promiseFactory","maxRetries","WINDOW_HEIGHT","WINDOW_WIDTH","innerWidth","pt","rem","isLandscape","checkClientWidthAndHeight","webviewReady","_useCol","spans","span","useCol","_useCol$","colProps","_useCol$2","_useCol$2$as","ReferenceError","_units","Buffer","codePoint","units","Infinity","leadSurrogate","baseVal","warned","preWarningFns","note","resetWarned","warningOnce","noteOnce","preMessage","isNativeReflectConstruct","possibleConstructorReturn","TransBtn","customizeIcon","customizeIconProps","_onMouseDown","WebkitUserSelect","unselectable","BaseSelectContext","useLock","_inputNode2","inputElement","editable","activeDescendantId","maxLength","_onKeyDown","onPaste","_onCompositionStart","_onCompositionEnd","inputNode","_inputNode","originRef","originProps","onOriginKeyDown","onOriginChange","onOriginMouseDown","onOriginCompositionStart","onOriginCompositionEnd","RefInput","isTitleType","getTitle","_value$key","onPreventMouseDown","SelectSelector","autoClearSearchValue","maxTagCount","maxTagTextLength","_props$maxTagPlacehol","maxTagPlaceholder","omittedValues","onToggleOpen","onRemove","onInputPaste","onInputKeyDown","onInputMouseDown","onInputCompositionStart","onInputCompositionEnd","measureRef","inputWidth","setInputWidth","focused","setFocused","selectionPrefixCls","inputEditable","defaultRenderSelector","itemDisabled","customizeRenderSelector","isMaxTag","selectionNode","valueItem","displayLabel","strLabel","SingleSelector","activeValue","inputChanged","setInputChanged","combobox","hasTextInput","selectionTitle","placeholderNode","Selector","compositionStatusRef","tokenWithEnter","onSearchSubmit","domRef","_useLock","_useLock2","getInputMouseDown","setInputMouseDown","pastedTextRef","triggerOnSearch","sharedProps","currentKeyCode","replacedText","selectNode","MultipleSelector","msTouchAction","inputMouseDown","ForwardSelector","SelectTrigger","popupElement","dropdownAlign","getTriggerDOMNode","onPopupMouseEnter","popupNode","mergedTransitionName","isNumberPopupWidth","triggerPopupRef","getPopupElement","_triggerPopupRef$curr","showAction","hideAction","RefSelectTrigger","isValidCount","childrenAsData","mergedLabel","groupLabel","injectPropsWithOption","newOption","getSeparatedContent","separate","restTokens","prevList","unitStr","SelectContext","Polite","DEFAULT_OMIT_PROPS","BaseSelect","_customizeRawInputEle","omitDomProps","displayValues","onDisplayValuesChange","emptyOptions","_props$notFoundConten","onClear","getInputElement","getRawInputElement","onDropdownVisibleChange","onActiveValueChange","onSearchSplit","tokenSeparators","OptionList","_props$showAction","mergedShowSearch","setMobile","selectorDomRef","selectorRef","blurRef","_useDelayReset","bool","setBool","delayRef","cancelLatest","useDelayReset","_useDelayReset2","mockFocused","setMockFocused","cancelSetMockFocused","_selectorRef$current","_selectorRef$current2","mergedSearchValue","_displayValues$","customizeInputElement","customizeRawInputElement","customizeRawInputRef","innerOpen","setInnerOpen","emptyListContent","triggerOpen","newOpen","tokenSeparator","rawValues","onInternalSearch","searchText","fromTyping","isCompositing","newSearchText","separatedList","patchLabels","getClearLock","setClearLock","keyLockRef","focusRef","activeTimeoutIds","onTriggerVisibleChange","customizedTrigger","propsRef","onGlobalMouseDown","_propsRef$current","composed","composedPath","useSelectTriggerControl","_triggerRef$current2","arrowNode","baseSelectContext","toggleOpen","_useAllowClear","onClearMouseDown","useAllowClear","_selectorRef$current4","clearNode","optionList","selectorNode","newValues","_triggerRef$current","_selectorRef$current3","_len3","restArgs","_key3","clearLock","isEnterKey","cloneDisplayValues","removedDisplayValue","isSelectOptGroup","isSelectOption","_useBaseProps","onPopupScroll","flattenOptions","onActiveValue","defaultActiveFirstOption","optionRender","memoFlattenOptions","overMaxCount","onListMouseDown","getEnabledActiveIndex","activeIndex","setActiveIndex","fromKeyboard","flattenItem","onSelectValue","appVersion","nextActiveIndex","_item$data","omitFieldNameList","getLabel","getItemAriaProps","itemData","a11yProps","itemIndex","groupOption","_data$title","groupTitle","optionPrefixCls","optionClassName","iconVisible","optionTitle","RefOptionList","convertChildrenToData","optionOnly","_ref2$props","_ref$props","convertNodeToOption","useOptions","optionFilterProp","mergedOptions","valueOptions","labelOptions","setLabelOptions","labelOptionsMap","isChildren","useRefFunc","funcRef","warningProps","OMIT_DOM_PROPS","backfill","_props$autoClearSearc","_props$dropdownMatchS","filterOption","filterSort","_props$listItemHeight","labelRender","labelInValue","mergedId","mergedFilterOption","mergedFieldNames","parsedOptions","convert2LabelValues","draftValues","rawLabel","rawDisabled","rawTitle","_val$value","isRawValue","_option$key","setInternalValue","rawLabeledValues","_values$","isComboNoValue","_useCache","labeledValues","cacheRef","_cacheRef$current","prevValueCache","prevOptionCache","patchedValues","_prevValueCache$get","valueCache","optionCache","useCache","_useCache2","mergedValues","getMixedOption","firstValue","_mergedValues$","strValue","createTagOption","filteredOptions","fieldOptions","fieldLabel","customizeFilter","upperSearch","wrapOption","subOptions","subItem","useFilterOptions","cloneOptions","existOptions","filledSearchOptions","inputOptions","orderedFilteredOptions","displayOptions","isGroupOption","grpLabel","triggerChange","newVal","_mergedValues$index","returnValues","returnOptions","setActiveValue","accessibilityIndex","setAccessibilityIndex","mergedDefaultActiveFirstOption","_ref3$source","triggerSelect","getSelectEnt","_option$key2","_getSelectEnt","_getSelectEnt2","wrappedValue","_getSelectEnt3","_getSelectEnt4","_wrappedValue","_option2","onInternalSelect","cloneValues","mergedSelect","selectContext","realVirtual","nextValues","formatted","newRawValues","patchValues","newRawValue","TypedSelect","eventWeb","setCookie","domain","hour","expire","_domain","setTime","toGMTString","hasRepeatedCookie","keyName","cookieArr","cookieObj","cookieKey","getUid","named","names","matchers","hsl","hsla","hsva","hex8","hex6","hex4","hex3","stringInputToObject","isValidCSSUnit","convertToPercentage","boundAlpha","CSS_UNIT","PERMISSIVE_MATCH3","PERMISSIVE_MATCH4","genRadius","radiusBase","radiusLG","radiusSM","radiusXS","radiusOuter","genControlHeight","genFontMapToken","fontSizePairs","genFontSizes","fontSizes","lineHeights","fontSizeMD","lineHeightSM","fontSizeHeading1","fontSizeHeading2","fontSizeHeading3","fontSizeHeading4","fontHeightSM","lineHeightHeading1","lineHeightHeading2","lineHeightHeading3","lineHeightHeading4","getAlphaColor","baseColor","getSolidColor","brightness","generateColorPalettes","generateNeutralColorPalettes","bgBaseColor","textBaseColor","colorTextBase","colorTextSecondary","colorBgBlur","defaultTheme","pink","seed","colorSuccessBase","colorWarningBase","colorErrorBase","colorInfoBase","colorPrimaryBase","primaryColors","successColors","warningColors","errorColors","infoColors","neutralColors","linkColors","colorPalettes","defaultPresetColors","cur","colorPrimaryBorderHover","colorPrimaryText","colorSuccessBg","colorSuccessBgHover","colorSuccessBorder","colorSuccessBorderHover","colorSuccessHover","colorSuccessActive","colorSuccessTextHover","colorSuccessText","colorSuccessTextActive","colorErrorBorder","colorErrorTextHover","colorErrorTextActive","colorWarningBorder","colorWarningActive","colorWarningTextHover","colorWarningTextActive","colorInfoBg","colorInfoBgHover","colorInfoBorder","colorInfoBorderHover","colorInfoHover","colorInfoActive","colorInfoTextHover","colorInfoText","colorInfoTextActive","sizeUnit","sizeStep","sizeXXL","sizeXL","sizeLG","sizeMD","sizeMS","sizeSM","sizeXS","sizeXXS","genSizeMapToken","motionUnit","motionBase","genCommonMapToken","defaultConfig","defaultSeedToken","DesignTokenContext","removeFromCheckedKeys","isCheckDisabled","disableCheckbox","getCheckDisabled","syntheticGetCheckDisabled","warningMissKeys","hasEntity","levelEntities","maxLevel","levelSet","_entity$children","childEntity","visitedKeys","_level","allChecked","partialChecked","fillConductCheck","halfKeys","_entity$children2","_level2","cleanConductCheck","posToArr","getDragChildrenKeys","dragNodeKey","dragChildrenKeys","isLastChild","treeNodeEntity","posArr","calcDropPosition","dragNode","startMousePosition","allowDrop","flattenedNodes","expandKeys","_abstractDropNodeEnti","clientX","clientY","_getBoundingClientRec","rawDropLevelOffset","filteredExpandKeys","_keyEntities$key","abstractDropNodeEntity","nodeIndex","flattenedNode","prevNodeKey","initialAbstractDropNodeKey","abstractDragOverEntity","abstractDragDataNode","abstractDropDataNode","dropAllowed","dropNode","dropTargetKey","dropTargetPos","dropContainerKey","calcSelectedKeys","parseCheckedKeys","keyProps","conductUp","needInheritFontFamily","genLinkStyle","linkDecoration","linkHoverDecoration","linkFocusDecoration","genCommonStyle","componentPrefixCls","prefixSelector","rootPrefixSelector","resetFontStyle","lineWidthFocus","outlineOffset","HmacMD5","__webpack_amd_options__","_nonIterableRest","getFontSizes","intSize","uiSlice","createSlice","initialState","isShowModal","setModal","actions","rootReducer","ui","rootStore","configureStore","devTools","__DEV__","getDefaultMiddleware","serializableCheck","preserveOrder","attributeNamePrefix","attributesGroupName","textNodeName","removeNSPrefix","allowBooleanAttributes","parseAttributeValue","trimValues","cdataPropName","numberParseOptions","tagValueProcessor","attributeValueProcessor","attrName","stopNodes","alwaysCreateTextNode","commentPropName","unpairedTags","processEntities","htmlEntities","ignorePiTags","transformTagName","transformAttributeName","updateTag","jPath","buildOptions","Probability","DoubleUnicodePrefixReg","DoubleUnicodeSuffixReg","DoubleUnicodeReg","Priority","Normal","Surname","Custom","stringLength","splitString","FastDictFactory","NumberDICT","StringDICT","líng","yī","qī","shàng","xià","hǎn","zhàng","sān","miǎn","gài","chǒu","zhuān","pī","shì","qiū","bǐng","yè","cóng","dōng","sī","chéng","diū","liǎng","yǒu","yán","bìng","gǔn","jiū","yā","pán","jǐ","jiè","fēng","chuàn","chǎn","lín","zhuó","zhǔ","bā","wán","dān","jǔ","piě","fú","yì","nǎi","wǔ","jiǔ","zhī","zhà","hū","fá","yín","pīng","pāng","qiáo","hǔ","guāi","yǐ","qǐ","yě","xí","xiāng","shū","dǒu","shǐ","jī","náng","jiā","jù","shí","mǎo","mǎi","luàn","rǔ","xué","yǎn","fǔ","shā","nǎ","qián","suǒ","yú","zhù","zhě","guī","jué","zhēng","èr","chù","kuī","yún","hù","qí","jǐng","sì","suì","gèn","yà","tóu","dà","jiāo","hài","mǔ","ye","xiǎng","jīng","tíng","liàng","bó","yòu","xiè","lián","duǒ","rén","jí","wáng","lè","dīng","zè","zhǎng","jīn","bīng","réng","fó","lún","cāng","tā","fù","xiān","hóng","tóng","rèn","qiān","dài","chào","sā","cháng","yí","mù","fǎn","zhòng","wò","jiàn","dī","fǎng","zhōng","pèi","diào","dùn","wěn","xǐn","kàng","ài","dǎn","fū","tǎng","yōu","huǒ","yǔ","cuì","sǎn","wěi","yá","qiàn","shāng","chāng","xùn","xìn","chǐ","nǐ","bàn","xù","zhòu","shēn","qū","bēng","mài","dàn","bù","bǐ","cǐ","wèi","zuǒ","yǎng","zhàn","bì","tuó","shé","gōu","nìng","qú","wǎ","kǎ","bāo","lǎo","xiáng","gé","yáng","bǎi","fǎ","mǐng","hěn","huó","guǐ","quán","tiāo","jiǎo","cì","xíng","tuō","kǎn","zhí","gāi","lái","kuǎ","gōng","lì","yīn","mǐ","zhū","ān","lù","móu","ér","chà","chì","zhōu","rú","xiá","lǚ","ta","zhēn","kuài","chái","nóng","jǐn","jiǒng","zuò","qīn","jú","tǐng","shèn","nán","xiāo","tuǐ","xì","cù","é","qiú","xú","kù","wù","jùn","liáng","zǔ","yǒng","hùn","jìng","sàn","pěi","sú","xī","lǐ","bǎo","xiū","dì","chóu","zhì","jiǎn","huò","xiào","pái","biào","fèi","fèng","ǎn","bèi","yù","xīn","jiù","yáo","wǎn","zǒng","guān","tiǎn","mén","chuí","xìng","péng","hòu","tì","gàn","suī","jié","juàn","zōng","ní","zhuō","luǒ","sōng","lèng","zì","bèn","cǎi","zhài","yē","shà","qīng","yīng","ruǎn","chǔn","ruò","tí","wēi","piān","yàn","è","xié","chě","shěng","chā","huáng","yǎo","yóu","xū","zhā","cī","bī","xún","duān","ǒu","tōu","fèn","sǒu","sù","xiā","rǒng","nù","yùn","mà","bàng","diān","táng","hào","shān","róng","suō","dǎi","zài","gǔ","bīn","chǔ","nuó","lěi","cuī","yōng","sǒng","ào","chuǎng","shǎ","hàn","zhāng","liàn","màn","yíng","dòng","zhuàn","xiàng","shàn","zǔn","pú","láo","chǎng","guāng","liáo","dèng","bō","huì","chuǎn","sēng","xiàn","lǐn","gù","jiāng","mǐn","jìn","qiào","pì","sài","xuān","càn","tái","lán","méng","níng","qióng","liè","kuǎng","bào","biāo","zǎn","háo","qìng","chèn","téng","luó","léi","yǔn","zān","yuán","xiōng","chōng","zhào","kè","tù","dǎng","dōu","huǎng","rù","nèi","han","tiān","diǎn","jiān","shòu","jì","jiōng","mào","rǎn","gāng","cè","guǎ","gòu","xǔ","mì","xiě","jūn","mí","měng","zhǒng","zuì","yuān","míng","kòu","tài","kuàng","lěng","pàn","fā","xiǎn","qià","sōu","měi","tú","zhǔn","diāo","còu","ái","duó","dú","fán","jū","zhǐ","píng","kǎi","gān","tū","chū","dàng","hán","záo","dāo","chuāng","kān","cǔn","chú","lí","yuè","liú","zé","qù","guā","gēng","dào","chuàng","kū","duò","guì","lóu","cuò","tī","pōu","wān","duō","qíng","yān","huō","shèng","wū","gē","chuán","pēng","piāo","kōu","qiāo","tāng","chán","zuān","mó","zhú","quàn","kēng","nǔ","shào","miǎo","kǒu","wā","kuāng","hé","gào","láng","xūn","kài","qín","jiàng","fān","juān","lǜ","chè","sháo","cōng","páo","dá","nǎo","fāng","zā","qiè","fěi","suǎn","pǐ","biǎn","nì","niàn","sà","zú","shēng","wàn","bēi","biàn","bǔ","lú","lǔ","guà","yìn","què","luǎn","tīng","yǎ","shè","dǐ","páng","máng","zuī","áo","dū","shuāng","shōu","guái","bá","qǔ","dié","ruì","lìng","jiào","pǒ","tàn","miē","chī","yāo","zǐ","lìn","tūn","qìn","dūn","fēn","shǔn","wú","chuī","hǒu","dāi","hōng","nà","guō","shī","juǎn","pěn","rán","náo","pēi","mìng","pǒu","hāi","dā","gū","zuo","lóng","qì","zī","mī","huī","táo","xián","āi","pǐn","shěn","zāi","pài","nián","mōu","lòng","hè","zhé","hān","gěng","chún","chē","zào","dí","dóu","huàn","léng","fěng","wéi","shuā","chàng","qiàng","yō","yū","lài","tuò","kěn","qiāng","wèn","fēi","pí","shá","pā","sè","niè","bo","dìng","lāng","kā","jiē","hóu","wāi","zán","hú","xǐ","kuì","miāo","kuí","xiù","sǎng","chēn","lào","wēng","wà","hē","zi","sǎi","gě","ná","diǎ","tōng","mò","sòu","tǎn","cáo","piào","gǎ","pó","sāi","zuǐ","ě","chuáng","dēng","pū","juē","lū","zhān","ō","yuàn","gá","dāng","làn","tà","hāo","mē","mō","pín","mè","lá","chuò","chài","sū","zèng","nāng","huí","nín","nān","tuán","guó","kùn","qūn","rì","tāi","pǔ","tuǎn","lüè","luán","tǔ","zhèn","jiá","bǎn","qǐn","tān","tán","bà","fén","zhuì","pō","kūn","diàn","xuè","lā","lǒng","mín","cí","duī","chá","shǎng","shǒu","da","háng","xīng","bāng","cén","làng","huā","lǔn","kōng","běng","péi","àn","huán","ruán","gèng","méi","dǔ","féng","hèng","chūn","jiǎng","huāng","duàn","tǎ","wěng","zàng","tián","zhèng","wēn","liù","hǎi","lǎng","bèng","chén","shuǎng","shú","lǒu","chí","shù","kàn","chěn","qiǎng","zēng","qiáng","lǎn","huài","rǎng","dǎo","ruǐ","san","zhuàng","kǔn","mǎng","cún","zhāi","wài","mèng","guài","yāng","gǎo","huà","ēn","pào","nài","zòu","kāi","tào","běn","shē","yūn","nú","nuán","fàn","shuò","wàng","zhuāng","mā","dù","miào","niū","tuǒ","fáng","nī","zhóu","zhāo","tǒu","ē","mèi","mán","jiě","pīn","zhěn","héng","wá","xiē","niáng","tuì","mǎn","mián","biǎo","wǒ","hūn","nàn","jiǎ","róu","miáo","ǎo","yìng","jià","sǎo","niǎo","tāo","biáo","xuán","kāng","nèn","zhē","piè","zhǎn","liǎn","dǒng","cān","tiǎo","bí","liǔ","kǒng","zhuǎn","hái","nāo","bò","nái","zhái","sòng","ròu","zhūn","chǒng","qún","zǎi","kuān","cùn","duì","zūn","xiǎo","ěr","wāng","liào","gà","tuí","yǐn","kāo","céng","diǎo","lòu","áng","kě","gǒu","tiáo","lǐng","pò","luò","ěn","qiǎ","bū","chóng","xiáo","yào","kē","cuó","cēn","dǐng","rū","yǐng","chǎo","cuán","chuān","cháo","qiǎo","gǒng","shuài","pà","zhǒu","shuì","miè","guǎng","me","chěng","qǐng","kuò","chāo","yi","shāo","biè","tuàn","yuē","wén","wǎng","cú","huái","dé","bié","gǎi","rěn","chàn","tè","hún","niǔ","òu","zěn","yàng","xuàn","nǜ","hèn","tòng","huǐ","quān","guàn","guǒ","cǎn","cán","rě","nuò","gǎn","huàng","zhěng","cǎo","còng","chēng","biē","shéng","mèn","mǒ","ràng","huān","nǎn","zéi","děng","chuō","cái","rēng","dèn","rǎo","zhǎo","zhuā","póu","pāo","chōu","zhǎ","niān","pāi","līn","guǎi","bài","qiá","hén","nǐn","shuān","kǎo","bāi","nòng","liě","tǒng","niē","zùn","lāo","sǔn","pěng","shě","dáo","zuó","qiā","kòng","tuī","tiàn","kèn","pá","sāo","pèng","là","yé","chān","chuāi","sūn","cuō","qiǔ","bān","huá","èn","bìn","shuāi","tàng","piē","hòng","niǎn","cāo","cuān","nǎng","kuǎi","mēng","xǐng","cā","pān","lèi","zuàn","fàng","dòu","zǎo","gā","zòng","ǎi","xuǎn","hǒng","shài","shǎn","zàn","shǔ","nuǎn","zhá","xiǔ","zá","cūn","máo","àng","xín","mǒu","zhè","gēn","sāng","kuǎn","sēn","zōu","mēn","pián","lǘ","shén","nòu","gàng","gāo","xuě","rùn","shùn","ōu","cáng","pēn","sǐ","piǎo","chòu","cuàn","mú","lu","sào","shuǐ","tǔn","pìn","tu","hàng","hēng","shuàn","wō","féi","qiǎn","tuān","pén","lùn","mǎ","hēi","suǐ","shuàng","sǎ","quē","biān","quǎn","rè","kào","kuǐ","xióng","gòng","liū","tēng","āo","diē","zāng","bǎng","niú","māng","bēn","má","kuáng","kǔ","suān","cāi","ráng","fà","guǎn","cuǐ","suí","piáo","wèng","ruí","yòng","shuǎi","béng","nè","xuē","qué","bái","yuǎn","dǔn","tiào","gùn","duǎn","nüè","cǎ","suàn","zū","chèng","ròng","zuō","zhǎi","báo","shāi","gè","shi","zuǎn","nǚ","fěn","cū","miàn","zāo","fóu","hā","huǎn","cài","rào","nǒng","fǒu","nóu","ké","shuǎ","pǎng","qié","cào","chāi","āng","kuà","cuǒ","něi","niào","shuí","guò","chuái","chuài","tún","nào","pù","kuā","qiē","xiú","nié","chǎi","ráo","tiē","xu","lǎ","tiě","suò","lǎi","piǎn","tǎo","zhùn","xiòng","shuà","miù","zèn","zhán","càng","zǒu","bǒ","zhuǎi","chǎ","cèng","liāo","tǐ","bú","tòu","guàng","cà","hǎo","liǎo","niàng","běi","chòng","zhuī","ā","án","tèng","mái","bǎ","la","ēng","rǒu","duǐ","luō","yóng","mān","tiè","zǎng","piàn","chi","hōu","nàng","lōu","DICT1","InitialList","SpecialInitialList","SpecialFinalList","SpecialFinalMap","uān","uán","uǎn","uàn","uan","uē","ué","uě","uè","ue","ūn","ún","ǔn","ùn","un","ū","ú","ǔ","ù","doubleFinalList","Numbers","一","二","三","四","五","六","七","八","九","十","百","千","万","亿","单","两","双","多","几","十一","零一","第一","一十","一十一","NumberWordMap","重","行","斗","更","NumberDict","dict","〇一","genNumberDict","PatternNumberDict","zh","probability","toneSandhiMap","不","toneSandhiIgnoreSuffix","toneSandhiList","processSepecialPinyin","pre","processReduplicationChar","processToneSandhiLiao","getSingleWordPinyin","getPinyinWithoutTone","nextPinyin","nextTone","getNumOfTone","pinyinMap","processToneSandhi","TokenizationAlgorithm","Surnames","南宫","第五","万俟","司马","上官","欧阳","夏侯","诸葛","闻人","东方","赫连","皇甫","尉迟","公羊","澹台","公冶","宗政","濮阳","淳于","太叔","申屠","公孙","仲孙","轩辕","令狐","钟离","宇文","长孙","慕容","鲜于","闾丘","司徒","司空","亓官","司寇","仉督","子车","颛孙","端木","巫马","公西","漆雕","乐正","壤驷","公良","拓跋","夹谷","宰父","榖梁","段干","百里","东郭","南门","呼延","羊舌","梁丘","左丘","东门","西门","句龙","毌丘","赵","钱","孙","李","周","吴","郑","王","冯","陈","褚","卫","蒋","沈","韩","杨","朱","秦","尤","许","何","吕","施","张","孔","曹","严","华","金","魏","陶","姜","戚","谢","邹","喻","柏","水","窦","章","云","苏","潘","葛","奚","范","彭","郎","鲁","韦","昌","马","苗","凤","花","方","俞","任","袁","柳","酆","鲍","史","唐","费","廉","岑","薛","雷","贺","倪","汤","滕","殷","罗","毕","郝","邬","安","常","乐","于","时","傅","皮","卞","齐","康","伍","余","元","卜","顾","孟","平","黄","和","穆","萧","尹","姚","邵","湛","汪","祁","毛","禹","狄","米","贝","明","臧","计","伏","成","戴","谈","宋","茅","庞","熊","纪","舒","屈","项","祝","董","梁","杜","阮","蓝","闵","席","季","麻","强","贾","路","娄","危","江","童","颜","郭","梅","盛","林","刁","钟","徐","邱","骆","高","夏","蔡","田","樊","胡","凌","霍","虞","支","柯","昝","管","卢","莫","经","房","裘","缪","干","解","应","宗","丁","宣","贲","邓","郁","杭","洪","包","诸","左","石","崔","吉","钮","龚","程","嵇","邢","滑","裴","陆","荣","翁","荀","羊","於","惠","甄","曲","家","封","芮","羿","储","靳","汲","邴","糜","松","井","段","富","巫","乌","焦","巴","弓","牧","隗","山","谷","车","侯","宓","蓬","全","郗","班","仰","秋","仲","伊","宫","宁","仇","栾","暴","甘","钭","厉","戎","祖","武","符","刘","景","詹","束","龙","叶","幸","司","韶","郜","黎","蓟","薄","印","宿","白","怀","蒲","邰","从","鄂","索","咸","籍","赖","卓","蔺","屠","蒙","池","乔","阴","鬱","胥","能","苍","闻","莘","党","翟","谭","贡","劳","逄","姬","申","扶","堵","冉","宰","郦","雍","郤","璩","桑","桂","濮","牛","寿","通","边","扈","燕","冀","郏","浦","尚","农","温","别","庄","晏","柴","瞿","阎","充","慕","连","茹","习","宦","艾","鱼","容","向","古","易","慎","戈","廖","庾","终","暨","居","衡","步","都","耿","满","弘","匡","国","文","寇","广","禄","阙","东","欧","殳","沃","利","蔚","越","夔","隆","师","巩","厍","聂","晁","勾","敖","融","冷","訾","辛","阚","那","简","饶","空","曾","母","沙","乜","养","鞠","须","丰","巢","关","蒯","相","查","后","荆","红","游","竺","权","逯","盖","益","桓","公","牟","哈","言","福","肖","区","覃","朴","繁","员","句","要","过","钻","谌","折","召","郄","撒","甯","啜","PatternSurname","DICT2","这个","成为","认为","作为","部分","要求","应该","增长","提供","觉得","任务","那个","称为","为主","了解","处理","皇上","只要","大量","力量","几乎","干部","目的","行为","只见","认识","市长","师父","调查","重新","分为","知识","导弹","质量","行款","行列","行话","行业","隔行","在行","行家","内行","外行","同行","本行","行伍","洋行","银行","商行","支行","总行","行情","懂行","行规","行当","行货","太行","入行","中行","农行","工行","建行","各行","行号","行高","行首","行尾","行末","行长","行距","换行","行会","行辈","行道","道行","参与","充分","尽管","生长","数量","应当","院长","强调","只能","音乐","以为","处于","部长","蒙古","只有","适当","只好","成长","高兴","不了","产量","胖子","显得","只是","似的","率领","改为","不禁","成分","答应","少年","兴趣","太监","休息","校长","更新","合同","喝道","重庆","重建","使得","审查","累计","给予","极为","冠军","仿佛","头发","投降","家长","仔细","要是","将领","含量","更为","积累","地处","县长","少女","路上","只怕","能量","储量","供应","挑战","西藏","记得","总量","当真","将士","差别","较为","长老","大夫","差异","懂得","尽量","模样","的确","为首","便宜","更名","石头","州长","为止","漂亮","炮弹","藏族","角色","当作","尽快","人为","重复","胡同","差距","弟兄","大将","睡觉","一觉","团长","队长","区长","难得","丫头","会长","弟弟","王爷","重量","誉为","家伙","华山","椅子","流量","长大","勉强","会计","过分","济南","调动","燕京","少将","中毒","晓得","变更","打更","认得","苹果","念头","挣扎","三藏","剥削","丞相","少量","寻思","夺得","干线","呼吁","处罚","长官","柏林","亲戚","身分","胳膊","着手","炸弹","咳嗽","叶子","外长","供给","师长","变量","应有","下载","乐器","间接","底下","打扮","子弹","弹药","热量","削弱","骨干","容量","模糊","转动","称呼","科长","处置","着重","着急","强迫","庭长","首相","喇嘛","镇长","只管","重重","免得","着实","度假","真相","相貌","处分","委屈","为期","伯伯","伯子","圈子","见识","笼罩","与会","都督","都市","成都","首都","帝都","王都","东都","都护","都城","建都","迁都","故都","定都","中都","六安","宰相","较量","对称","总长","相公","空白","打量","水分","舌头","没收","行李","判处","散文","处境","孙子","拳头","打发","组长","骨头","宁可","更换","薄弱","还原","重修","重来","只顾","爱好","馒头","军长","首长","厂长","司长","长子","强劲","恰当","头儿","站长","折腾","相处","统率","中将","命中","名将","木头","动弹","地壳","干活","少爷","水量","补给","尾巴","来得","好奇","钥匙","当做","沉着","哑巴","车子","上将","恶心","担子","应届","主角","运转","兄长","格式","正月","营长","当成","女婿","咽喉","重阳","化为","吐蕃","钻进","乐队","亮相","被子","舍得","杉木","击中","排长","假期","分量","数次","提防","吆喝","查处","量子","里头","调研","伺候","重申","枕头","拚命","社长","归还","批量","畜牧","点着","甚为","小将","着眼","处死","厌恶","鼓乐","树干","秘鲁","大方","外头","班长","星宿","宁愿","钦差","为数","勾当","削减","间谍","埋怨","结实","计量","淹没","村长","连长","自给","武将","温差","直奔","供求","剂量","道长","泄露","王八","切割","间隔","一晃","长假","为害","句子","偿还","疙瘩","燕山","堵塞","夺冠","扎实","电荷","看守","复辟","郁闷","尽早","切断","指头","为生","畜生","切除","着力","着想","级差","投奔","棍子","含糊","少妇","兴致","纳闷","干流","卷起","扇子","更改","笼络","喇叭","载荷","妥当","为难","着陆","燕子","干吗","白发","总得","夹击","曝光","曲调","相机","叫化","角逐","啊哟","载重","长辈","出差","垛口","撇开","厅长","组分","误差","家当","传记","个子","铺设","干事","杆菌","定量","运载","会儿","酋长","重返","差额","露面","钻研","大城","上当","销量","作坊","照相","哎呀","调集","看中","议长","风筝","辟邪","空隙","更迭","偏差","声调","适量","屯子","无量","空地","调度","散射","创伤","海参","满载","重叠","落差","单调","老将","人参","间断","重现","夹杂","调用","萝卜","附着","应声","主将","罪过","咀嚼","为政","过量","乐曲","负荷","枪弹","悄然","处方","悄声","曲子","情调","挑衅","代为","了结","打中","酒吧","懒得","增量","衣着","部将","要塞","茶几","杠杆","出没","鲜有","间隙","重担","重演","重试","应酬","只当","毋宁","包扎","前头","卷烟","非得","弹道","杆子","门将","后头","喝彩","暖和","累积","调遣","倔强","宝藏","丧事","约莫","纤夫","更替","装载","背包","帖子","松散","呼喝","可恶","自转","供电","反省","坦率","苏打","本分","落得","鄙薄","相间","单薄","混蛋","贞观","附和","能耐","吓唬","未了","引着","抽调","沙子","席卷","标的","别扭","思量","喝采","论语","盖子","分外","弄堂","乐舞","雨量","毛发","差遣","背负","转速","声乐","夹攻","供水","主干","惩处","长相","公差","榴弹","省得","条子","重围","阻塞","劲风","纠葛","颠簸","点中","重创","姥姥","迷糊","公家","几率","苦闷","度量","差错","暑假","参差","搭载","助长","相称","红晕","舍命","喜好","列传","劲敌","蛤蟆","请假","钉子","沉没","高丽","休假","无为","巴结","了得","变相","核弹","亲家","承载","喝问","还击","交还","将令","单于","空缺","绿林","胆量","执着","低调","闭塞","轻薄","得当","占卜","扫帚","龟兹","年长","外传","头子","裁缝","礼乐","血泊","散乱","动量","倒腾","取舍","咱家","长发","爪哇","弹壳","省悟","嚷嚷","连累","应得","族长","柜子","擂鼓","眩晕","调配","躯干","差役","坎坷","少儿","乐团","养分","退还","格调","语调","音调","乐府","古朴","打点","差使","匀称","瘦削","膏药","吞没","调任","散居","上头","风靡","放假","估量","失当","中弹","妄为","长者","起哄","末了","相声","校正","劝降","矢量","沉闷","给与","解法","塞外","将校","嗜好","没落","朴刀","片子","切削","弹丸","稀薄","亏得","间歇","翘首","色调","处决","表率","尺子","招降","称职","斗篷","铺子","底子","负载","干警","倒数","将官","锄头","归降","疟疾","唠叨","限量","屏息","重逢","器乐","氢弹","脖颈","妃子","处事","参量","轻率","缥缈","中奖","才干","施舍","卷子","游说","巷子","膀胱","切勿","看管","风头","精干","高差","恐吓","扁担","给养","格子","供需","反差","飞弹","微薄","发型","即兴","攒动","间或","浅薄","乐章","顺差","调子","相位","转子","劲旅","咔嚓","了事","转悠","当铺","爪子","单子","好战","燕麦","只许","干练","女将","酒量","划船","伎俩","挑拨","少校","着落","憎恶","刻薄","要挟","用处","还手","模具","执著","喝令","保长","吸着","症结","公转","校勘","重提","扫兴","铺盖","长史","差价","压根","怔住","应允","切入","战将","年少","舍身","执拗","处世","中风","等量","放量","腔调","老少","没入","瓜葛","将帅","车载","窝囊","长进","可汗","并州","供销","切片","差事","知会","鹰爪","处女","切磋","日头","押解","滋长","道观","脚色","当量","婆家","缘分","空闲","好色","怒喝","笼统","边塞","何曾","重合","零散","轰隆","化子","内蒙","数落","逆差","牟利","栅栏","中标","调档","佝偻","场子","甲壳","重温","炮制","返还","自传","高调","殷红","固着","强求","本相","骄横","草率","气闷","着色","宁肯","兴头","拘泥","夹角","发髻","猛将","约摸","拖累","呢绒","钻探","夹层","落魄","巷道","运量","解闷","空儿","估摸","好客","钻孔","糊弄","荥阳","烦闷","仓卒","分叉","厂子","小调","少阳","受降","染坊","胳臂","将门","模板","配给","为伍","跟头","划算","累赘","哄笑","晕眩","干掉","缝制","难处","着意","蛮横","奇数","短发","生还","还清","看护","直率","奏乐","载客","专横","湮没","空格","铺垫","良将","哗啦","散漫","脱发","送还","埋没","累及","薄雾","调离","舌苔","机长","栓塞","配角","切口","创口","哈欠","实弹","铺平","哈达","懒散","实干","填空","刁钻","乐师","量变","诱降","搪塞","征调","夹道","干咳","止咳","乐工","划过","着火","更正","给付","空子","哪吒","正着","刷子","丧葬","夹带","安分","中意","校订","卷曲","载运","投弹","柞蚕","份量","调换","了然","咧嘴","典当","寒假","长兄","给水","须发","枝干","属相","哄抢","刻划","塞子","单干","还乡","兆头","寺观","督率","啊哈","割舍","抹布","好恶","下处","消长","离间","准头","校对","什物","番禺","佛爷","吗啡","盐分","虎将","薄荷","独处","空位","铺路","乌拉","调回","来头","闲散","胶卷","冒失","干劲","弦乐","相国","丹参","助兴","铺开","次长","发卡","拮据","刹车","生发","重播","缝合","音量","少尉","冲压","苍劲","厚薄","威吓","外相","呼号","着迷","挑担","纹路","还俗","强横","着数","降顺","挑明","眯缝","分内","更衣","软和","尽兴","号子","爪牙","败将","猜中","结扎","没空","夹缝","拾掇","掺和","簸箕","电量","荷载","调式","处身","打手","弹弓","横蛮","能干","校点","加载","干校","哄传","校注","淤塞","马扎","月氏","高干","经传","曾孙","好斗","关卡","逃奔","磨蹭","牟取","颤栗","蚂蚱","撮合","趔趄","摔打","台子","分得","粘着","采邑","散装","婀娜","兴味","行头","气量","调运","处治","乐音","充塞","恫吓","论调","相中","民乐","炮仗","丧服","骁将","量刑","缝补","财会","大干","历数","校场","塞北","识相","辱没","鲜亮","语塞","露脸","凉快","腰杆","溜达","嘎嘎","公干","桔梗","挑逗","看门","乐歌","拓片","挑动","准将","遒劲","磨坊","逶迤","搅和","摩挲","作弄","苗头","打颤","大藏","畜牲","勾搭","树荫","树杈","铁杆","将相","份子","视差","绿荫","枪杆","缝纫","愁闷","点将","华佗","劲射","箱笼","终了","鬓发","结巴","苦干","看家","正旦","中肯","厦门","东莞","食量","宫调","间作","弹片","差池","漂白","杠子","调处","好动","转炉","屏气","夹板","哀乐","干道","苦处","劈柴","长势","天华","共处","校验","出塞","磨盘","萎靡","奔丧","唱和","大调","非分","钻营","夹子","超载","更始","铃铛","披散","发还","转轮","横财","泡桐","抛撒","天呀","糊糊","躯壳","通量","奉还","午觉","闷棍","浪头","砚台","油坊","学长","过载","笔调","衣被","畜产","调阅","蛮干","曾祖","提干","变调","覆没","模子","乐律","称心","木杆","重印","自省","提调","看相","芋头","下切","塞上","铺张","藤蔓","薄幸","解数","褪去","霰弹","柚木","痕量","雅乐","号哭","诈降","猪圈","咋舌","铣床","防弹","健将","丽水","削发","空当","多相","鲜见","划桨","载波","跳蚤","俏皮","吧嗒","结发","了断","同调","石磨","时差","鼻塞","挑子","推磨","武侯","抹煞","调转","籍没","还债","调演","分划","奇偶","断喝","闷雷","狼藉","饭量","还礼","转调","星相","手相","配乐","盖头","连杆","簿记","刀把","量词","名角","步调","校本","账簿","隽永","稍为","易传","乐谱","牵累","答理","喝斥","吟哦","干渠","海量","精当","着床","月相","庶几","宫观","论处","征辟","厚朴","介壳","吭哧","咯血","铺陈","重生","乐理","哀号","藏历","刚劲","削平","浓荫","城垛","当差","正传","并处","创面","旦角","薄礼","晃荡","臊子","家什","闷头","美发","度数","着凉","闯将","几案","姘头","差数","散碎","壅塞","寒颤","牵强","无间","轮转","号叫","铺排","降伏","轧钢","东阿","病假","累加","梗塞","弹夹","钻心","晃眼","魔爪","标量","憋闷","猜度","处士","官差","讨还","长门","馏分","里弄","色相","雅兴","角力","弹坑","枝杈","夹具","处刑","悍将","好学","好好","银发","扫把","法相","贵干","供气","空余","捆扎","瘠薄","浆糊","嘎吱","调令","法帖","淋病","调派","转盘","供稿","差官","忧闷","教长","重唱","酒兴","乐坛","花呢","叱喝","膀臂","得空","转圈","横暴","哄抬","引吭","载货","中计","官长","相面","看头","盼头","意兴","军乐","累次","骨嘟","燕赵","报丧","弥撒","挨斗","扁舟","丑角","吊丧","强将","重奏","发辫","着魔","着法","盛放","填塞","凶横","稽首","碑帖","冲量","发菜","假发","翻卷","小量","胶着","里子","调调","散兵","高挑","播撒","夹心","扇动","叨扰","霓裳","捻子","弥缝","撒布","场院","省亲","提拉","惯量","强逼","强征","晕车","数道","带累","拓本","嫌恶","宿将","龟裂","缠夹","发式","隔扇","天分","癖好","四通","白术","划伤","角斗","听差","岁差","丧礼","脉脉","削瘦","撒播","莎草","犍为","调头","龙卷","外调","字帖","卷发","揣度","洋相","散光","骨碌","薄命","笼头","咽炎","碌碡","片儿","纤手","散体","内省","强留","解送","反间","少壮","留空","告假","咳血","薄暮","铺轨","磨削","治丧","叉子","哄动","蛾子","出落","股长","贵处","还魂","例假","刹住","身量","同好","模量","更生","服丧","率直","字模","散架","答腔","交恶","薄情","眼泡","袅娜","草垛","冲劲","呢喃","切中","挑灯","还愿","激将","更鼓","没药","败兴","切面","散户","累进","背带","秤杆","碾坊","簿子","扳手","铅山","儒将","重光","剪发","长上","小传","压轴","弱冠","花卷","横祸","夹克","光晕","披靡","对调","夹持","空额","平调","铺床","丧钟","作乐","少府","数数","奔头","进给","率性","乐子","绑扎","挑唆","漂洗","夹墙","咳喘","乜斜","错处","闷酒","时调","重孙","经幢","圩场","调门","花头","划拉","套色","粗率","相率","款识","吁请","荫蔽","文蛤","嘀嗒","调取","交差","落子","相册","絮叨","落发","异相","浸没","角抵","卸载","春卷","扎挣","畜养","吡咯","垛子","恶少","发际","红苕","糨糊","哭丧","稍息","晕船","校样","外差","脚爪","铺展","芫荽","夹紧","尿泡","丧乱","凶相","华发","打场","云量","正切","划拳","划艇","评传","拉纤","句读","散剂","骨殖","塞音","铺叙","阏氏","冷颤","煞住","少男","管乐","号啕","纳降","拥塞","万乘","杆儿","葛藤","簿籍","皮夹","校准","允当","器量","选调","扮相","干才","基干","割切","国乐","卡壳","辟谷","磨房","咿呀","芥末","薄技","产假","诗兴","重出","转椅","酌量","簿册","藏青","的士","调人","解元","茎干","巨量","榔头","率真","喷香","锁钥","虾蟆","相图","兴会","灶头","重婚","钻洞","忖度","党参","调温","杆塔","葛布","拱券","夹生","露馅","恰切","散见","哨卡","烫发","体量","挺括","系带","相士","羊圈","转矩","吧台","苍术","菲薄","蛤蚧","蛤蜊","瓜蔓","怪相","临帖","女红","刨床","翘楚","数九","谈兴","雄劲","扎染","遮荫","周正","赚头","扒手","搀和","诚朴","肚量","干结","工尺","家累","曲水","沙参","挑花","阿门","背篓","瘪三","裁处","创痛","福相","更动","豪兴","还阳","还嘴","借调","卷云","流弹","想头","削价","校阅","雅量","别传","薄酒","春假","发妻","哗哗","宽绰","了悟","切花","审度","应许","转台","仔猪","裁量","藏戏","乘兴","绸缪","摧折","调经","调职","缝缀","骨朵","核儿","恒量","还价","浑朴","苦差","面糊","煞车","省视","什锦","信差","余切","攒眉","炸糕","钻杆","扒灰","拌和","长调","大溜","抖搂","飞转","干仗","好胜","画片","搅混","螺杆","木模","怒号","频数","无宁","遗少","邮差","占卦","占星","重审","自量","调防","发廊","反调","缝子","更夫","骨子","光杆","夹棍","居丧","巨贾","看押","空转","量力","炮烙","赔还","扑扇","散记","散件","删削","射干","条几","偷空","削壁","校核","阴干","择菜","重九","主调","自禁","吧唧","便溺","词调","叨咕","落枕","铺砌","刷白","委靡","系泊","相马","熨帖","转筋","棒喝","傧相","镐头","间苗","乐池","卖相","屏弃","铅弹","切变","请调","群氓","散板","省察","事假","纤绳","重影","耕种","种地","种菜","栽种","接种","垦种","种殖","种瓜","种豆","种树","睡着","笼子","重启","重整","重弹","重足","重山","重游","重峦","爷爷","奶奶","姥爷","爸爸","妈妈","婶婶","舅舅","姑姑","叔叔","姨夫","舅母","姑父","姐夫","婆婆","公公","舅子","姐姐","哥哥","妹妹","妹夫","姨子","宝宝","娃娃","孩子","日子","样子","狮子","身子","架子","嫂子","鼻子","亭子","折子","面子","脖子","辈子","帽子","拍子","柱子","辫子","鸽子","房子","丸子","摊子","牌子","胡子","鬼子","矮子","鸭子","小子","影子","屋子","对子","点子","本子","种子","儿子","兔子","骗子","院子","猴子","嗓子","侄子","柿子","钳子","虱子","瓶子","豹子","筷子","篮子","绳子","嘴巴","耳朵","茄子","蚌埠","崆峒","琵琶","蘑菇","葫芦","狐狸","桔子","盒子","桌子","竹子","师傅","衣服","袜子","杯子","刺猬","麦子","队伍","知了","鱼儿","馄饨","灯笼","庄稼","聪明","镜子","银子","盘子","了却","力气","席子","林子","朝霞","朝夕","朝气","翅膀","省长","臧否","否泰","变得","丈夫","豆腐","笔杆","枞阳","行人","打着","万一","之一","得之","统一","唯一","专一","单一","如一","其一","合一","逐一","周一","初一","研一","归一","假一","闻一","了了","公了","私了","一月","一号","一级","一等","一哥","月一","一一","二一","三一","四一","五一","六一","七一","八一","九一","一〇","一零","一二","一三","一四","一五","一六","一七","一八","一九","一又","一饼","一楼","为例","为准","沧海","难为","责难","患难","磨难","大难","刁难","殉难","落难","罹难","灾难","难民","苦难","危难","发难","逃难","避难","遇难","阻难","厄难","徇难","空难","喜欢","朝朝","不行","轧轧","弯曲","扭曲","曲直","委曲","酒曲","曲径","曲解","歪曲","曲线","曲阜","九曲","曲折","曲肱","曲意","仡佬","Pattern2","DICT3","为什么","实际上","检察长","干什么","这会儿","尽可能","董事长","了不起","参谋长","朝鲜族","海内外","禁不住","柏拉图","不在乎","洛杉矶","有点儿","迫击炮","不得了","马尾松","运输量","发脾气","士大夫","鸭绿江","压根儿","对得起","那会儿","自个儿","物理量","怎么着","明晃晃","节假日","心里话","发行量","兴冲冲","分子量","国子监","老大难","党内外","这么着","少奶奶","暗地里","更年期","工作量","背地里","山里红","好好儿","交响乐","好意思","吐谷浑","没意思","理发师","塔什干","充其量","靠得住","车行道","人行道","中郎将","照明弹","烟幕弹","没奈何","乱哄哄","惠更斯","载重量","瞧得起","纪传体","阿房宫","卷心菜","戏班子","过得去","花岗石","外甥女","团团转","大堡礁","燃烧弹","劳什子","摇滚乐","夹竹桃","闹哄哄","三连冠","重头戏","二人转","节骨眼","知识面","护士长","信号弹","干电池","枪杆子","哭丧棒","鼻咽癌","瓦岗军","买得起","癞蛤蟆","脊梁骨","子母弹","开小差","女强人","英雄传","爵士乐","说笑话","碰头会","玻璃钢","曳光弹","少林拳","咏叹调","少先队","灵长目","对着干","蒙蒙亮","软骨头","铺盖卷","和稀泥","背黑锅","红彤彤","武侯祠","打哆嗦","户口簿","马尾藻","夜猫子","打手势","龙王爷","气头上","糊涂虫","笔杆子","占便宜","打主意","多弹头","露一手","堰塞湖","保得住","趵突泉","奥得河","司务长","禁不起","什刹海","莲花落","见世面","豁出去","电位差","挨个儿","那阵儿","肺活量","大师傅","掷弹筒","打呼噜","广渠门","未见得","大婶儿","谈得来","脚丫子","空包弹","窝里斗","弹着点","个头儿","看得起","糊涂账","大猩猩","禁得起","法相宗","可怜相","吃得下","汉堡包","闹嚷嚷","数来宝","合得来","干性油","闷葫芦","呱呱叫","西洋参","林荫道","拉家常","卷铺盖","过得硬","飞将军","挑大梁","哈巴狗","过家家","催泪弹","雨夹雪","敲竹杠","列车长","华达呢","犯得着","土疙瘩","煞风景","轻量级","羞答答","石子儿","达姆弹","科教片","侃大山","丁点儿","吃得消","捋虎须","高丽参","众生相","咽峡炎","禁得住","吃得开","柞丝绸","应声虫","数得着","傻劲儿","铅玻璃","可的松","划得来","晕乎乎","屎壳郎","尥蹶子","藏红花","闷罐车","卡脖子","红澄澄","赶得及","当间儿","露马脚","鸡内金","犯得上","钉齿耙","饱和点","龙爪槐","喝倒彩","定冠词","担担面","吃得住","爪尖儿","支着儿","折跟头","阴着儿","烟卷儿","宣传弹","信皮儿","弦切角","缩砂密","说得来","水漂儿","耍笔杆","数得上","数不着","数不清","什件儿","生死簿","扇风机","撒呓挣","日记簿","热得快","亲家公","奇函数","拍纸簿","努劲儿","泥娃娃","内切圆","哪会儿","闷头儿","没谱儿","铆劲儿","溜肩膀","了望台","老来少","坤角儿","考勤簿","卷笔刀","进给量","划不来","汗褂儿","鼓囊囊","够劲儿","公切线","搁得住","赶浪头","赶得上","干酵母","嘎渣儿","嘎嘣脆","对得住","逗闷子","顶呱呱","滴溜儿","大轴子","打板子","寸劲儿","醋劲儿","揣手儿","冲劲儿","吃得来","不更事","奔头儿","百夫长","娃娃亲","死劲儿","骨朵儿","功劳簿","都江堰","一担水","否极泰","泰来否","咳特灵","开户行","郦食其","花事了","一更更","一重山","风一更","雪一更","归一码","星期一","礼拜一","一季度","一月一","一字马","一是一","一次方","一阳指","一字决","一年级","一不做","屈戌儿","难为水","难为情","行一行","别别的","干哪行","干一行","曲别针","Pattern3","DICT4","成吉思汗","四通八达","一模一样","青藏高原","阿弥陀佛","解放思想","所作所为","迷迷糊糊","荷枪实弹","兴高采烈","无能为力","布鲁塞尔","为所欲为","克什米尔","没完没了","不为人知","结结巴巴","前仆后继","铺天盖地","直截了当","供不应求","御史大夫","不为瓦全","不可收拾","胡作非为","分毫不差","模模糊糊","不足为奇","悄无声息","了如指掌","深恶痛绝","高高兴兴","唉声叹气","汉藏语系","处心积虑","泣不成声","半夜三更","失魂落魄","二十八宿","转来转去","数以万计","相依为命","恋恋不舍","屈指可数","神出鬼没","结结实实","有的放矢","叽哩咕噜","调兵遣将","载歌载舞","转危为安","踏踏实实","桑给巴尔","装模作样","见义勇为","相差无几","叹为观止","闷闷不乐","喜怒哀乐","鲜为人知","张牙舞爪","为非作歹","含糊其辞","疲于奔命","勉为其难","依依不舍","顶头上司","不着边际","大模大样","寻欢作乐","一走了之","字里行间","含含糊糊","恰如其分","破涕为笑","深更半夜","千差万别","数不胜数","据为己有","天旋地转","养尊处优","玻璃纤维","吵吵闹闹","晕头转向","土生土长","宁死不屈","不省人事","尽力而为","精明强干","唠唠叨叨","叽叽喳喳","功不可没","锲而不舍","排忧解难","稀里糊涂","各有所长","的的确确","哄堂大笑","听而不闻","刀耕火种","内分泌腺","化险为夷","百发百中","重见天日","反败为胜","一了百了","大大咧咧","心急火燎","粗心大意","鸡皮疙瘩","夷为平地","日积月累","设身处地","投其所好","间不容发","人满为患","穷追不舍","为时已晚","如数家珍","心里有数","以牙还牙","神不守舍","孟什维克","各自为战","怨声载道","救苦救难","好好先生","怪模怪样","抛头露面","游手好闲","无所不为","调虎离山","步步为营","好大喜功","众矢之的","长生不死","蔚为壮观","不可胜数","鬼使神差","洁身自好","敢作敢为","茅塞顿开","走马换将","为时过早","为人师表","阴差阳错","油腔滑调","重蹈覆辙","骂骂咧咧","絮絮叨叨","如履薄冰","损兵折将","拐弯抹角","像模像样","供过于求","开花结果","仔仔细细","川藏公路","河北梆子","长年累月","正儿八经","不识抬举","重振旗鼓","气息奄奄","紧追不舍","服服帖帖","强词夺理","噼里啪啦","人才济济","发人深省","不足为凭","为富不仁","连篇累牍","呼天抢地","落落大方","自吹自擂","乐善好施","以攻为守","磨磨蹭蹭","削铁如泥","助纣为虐","以退为进","嘁嘁喳喳","枪林弹雨","令人发指","转败为胜","转弯抹角","在劫难逃","正当防卫","不足为怪","难兄难弟","咿咿呀呀","弹尽粮绝","阿谀奉承","稀里哗啦","返老还童","好高骛远","鹿死谁手","差强人意","大吹大擂","成家立业","自怨自艾","负债累累","古为今用","入土为安","下不为例","一哄而上","没头苍蝇","天差地远","风卷残云","多灾多难","乳臭未干","行家里手","狼狈为奸","处变不惊","一唱一和","一念之差","金蝉脱壳","滴滴答答","硕果累累","好整以暇","红得发紫","传为美谈","富商大贾","四海为家","了若指掌","大有可为","出头露面","鼓鼓囊囊","窗明几净","泰然处之","怒发冲冠","有机玻璃","骨头架子","义薄云天","一丁点儿","时来运转","陈词滥调","化整为零","火烧火燎","干脆利索","吊儿郎当","广种薄收","种瓜得瓜","种豆得豆","难舍难分","歃血为盟","奋发有为","阴错阳差","东躲西藏","烟熏火燎","钻牛角尖","乔装打扮","改弦更张","河南梆子","好吃懒做","何乐不为","大出风头","攻城掠地","漂漂亮亮","折衷主义","大马哈鱼","绿树成荫","率先垂范","家长里短","宽大为怀","左膀右臂","一笑了之","天下为公","还我河山","何足为奇","好自为之","风姿绰约","大雨滂沱","传为佳话","吃里扒外","重操旧业","小家子气","少不更事","难分难舍","添砖加瓦","是非分明","舍我其谁","偏听偏信","量入为出","降龙伏虎","钢化玻璃","正中下怀","以身许国","一语中的","丧魂落魄","三座大山","济济一堂","好事之徒","干净利索","出将入相","袅袅娜娜","狐狸尾巴","好逸恶劳","大而无当","打马虎眼","板上钉钉","吆五喝六","虾兵蟹将","水调歌头","数典忘祖","人事不省","曲高和寡","屡教不改","互为因果","互为表里","厚此薄彼","过关斩将","疙疙瘩瘩","大腹便便","走为上策","冤家对头","有隙可乘","一鳞半爪","片言只语","开花结实","经年累月","含糊其词","寡廉鲜耻","成年累月","不徇私情","不当人子","膀大腰圆","指腹为婚","这么点儿","意兴索然","绣花枕头","无的放矢","望闻问切","舍己为人","穷年累月","排难解纷","处之泰然","指鹿为马","危如累卵","天兵天将","舍近求远","南腔北调","苦中作乐","厚积薄发","臭味相投","长幼有序","逼良为娼","悲悲切切","败军之将","欺行霸市","削足适履","先睹为快","啼饥号寒","疏不间亲","神差鬼使","敲敲打打","平铺直叙","没头没尾","寥寥可数","哼哈二将","鹤发童颜","各奔前程","弹无虚发","大人先生","与民更始","树碑立传","是非得失","实逼处此","塞翁失马","日薄西山","切身体会","片言只字","跑马卖解","宁折不弯","零零散散","量体裁衣","连中三元","礼崩乐坏","不为已甚","转悲为喜","以眼还眼","蔚为大观","未为不可","童颜鹤发","朋比为奸","莫此为甚","夹枪带棒","富商巨贾","淡然处之","箪食壶浆","创巨痛深","草长莺飞","坐视不救","以己度人","随行就市","文以载道","文不对题","铁板钉钉","身体发肤","缺吃少穿","目无尊长","吉人天相","毁家纾难","钢筋铁骨","丢卒保车","丢三落四","闭目塞听","削尖脑袋","为非作恶","人才难得","情非得已","切中要害","火急火燎","画地为牢","好酒贪杯","长歌当哭","载沉载浮","遇难呈祥","榆木疙瘩","以邻为壑","洋为中用","言为心声","言必有中","图穷匕见","滂沱大雨","目不暇给","量才录用","教学相长","悔不当初","呼幺喝六","不足为训","不拘形迹","傍若无人","罪责难逃","自我吹嘘","转祸为福","勇冠三军","易地而处","卸磨杀驴","玩儿不转","天道好还","身单力薄","撒豆成兵","片纸只字","宁缺毋滥","没没无闻","量力而为","历历可数","口碑载道","君子好逑","好为人师","豪商巨贾","各有所好","度德量力","指天为誓","逸兴遄飞","心宽体胖","为德不卒","天下为家","视为畏途","三灾八难","沐猴而冠","哩哩啦啦","见缝就钻","夹层玻璃","急公好义","积年累月","划地为牢","更名改姓","奉为圭臬","多难兴邦","不破不立","坐地自划","坐不重席","坐不窥堂","作嫁衣裳","左枝右梧","左宜右有","钻头觅缝","钻天打洞","钻皮出羽","钻火得冰","钻洞觅缝","钻冰求火","子为父隐","擢发难数","着人先鞭","斫雕为朴","锥处囊中","椎心饮泣","椎心泣血","椎牛飨士","椎牛歃血","椎牛发冢","椎埋屠狗","椎埋狗窃","壮发冲冠","庄严宝相","转愁为喜","转嗔为喜","拽巷啰街","拽耙扶犁","拽布拖麻","箸长碗短","铸剑为犁","杼柚其空","杼柚空虚","助天为虐","属垣有耳","属毛离里","属辞比事","逐物不还","铢量寸度","铢两悉称","侏儒观戏","朱轓皁盖","昼度夜思","诪张为幻","重明继焰","众啄同音","众毛攒裘","众好众恶","擿埴索涂","稚齿婑媠","至当不易","指皂为白","指雁为羹","指树为姓","指山说磨","止戈为武","枝干相持","枝大于本","支吾其词","正身率下","正冠李下","整冠纳履","整躬率物","整顿干坤","针头削铁","贞松劲柏","赭衣塞路","折箭为誓","折而族之","昭德塞违","章句小儒","湛恩汪濊","占风望气","斩将搴旗","曾母投杼","曾参杀人","造谣中伤","早占勿药","凿龟数策","攒三聚五","攒眉蹙额","攒零合整","攒锋聚镝","载笑载言","载酒问字","殒身不恤","云舒霞卷","月中折桂","月落参横","鬻驽窃价","鬻鸡为凤","遇难成祥","郁郁累累","玉卮无当","语笑喧阗","与世沉浮","与时消息","逾墙钻隙","渔夺侵牟","杅穿皮蠹","余勇可贾","予智予雄","予取予求","于家为国","有借无还","有加无已","有国难投","游必有方","油干灯尽","尤云殢雨","庸中皦皦","郢书燕说","营蝇斐锦","鹰心雁爪","莺吟燕儛","应天顺时","印累绶若","隐占身体","饮犊上流","引绳切墨","龈齿弹舌","因缘为市","因树为屋","溢美溢恶","抑塞磊落","倚闾望切","以意为之","以言为讳","以疏间亲","以水济水","以书为御","以守为攻","以升量石","以慎为键","以筌为鱼","以利累形","以毁为罚","以黑为白","以规为瑱","以古为鉴","以宫笑角","以法为教","以大恶细","遗世忘累","遗寝载怀","移的就箭","依头缕当","衣租食税","衣轻乘肥","衣裳之会","衣单食薄","一还一报","叶公好龙","野调无腔","瑶池女使","幺麽小丑","养精畜锐","卬首信眉","洋洋纚纚","羊羔美酒","扬风扢雅","燕昭市骏","燕昭好马","燕石妄珍","燕骏千金","燕金募秀","燕驾越毂","燕歌赵舞","燕岱之石","燕处危巢","掞藻飞声","偃革为轩","妍蚩好恶","压良为贱","搀行夺市","泣数行下","当行出色","秀出班行","儿女成行","大行大市","寻行数墨","埙篪相和","血债累累","炫玉贾石","炫石为玉","悬石程书","悬狟素飡","悬龟系鱼","揎拳捋袖","轩鹤冠猴","畜妻养子","羞人答答","修鳞养爪","熊据虎跱","兄死弟及","腥闻在上","兴文匽武","兴观群怨","兴高彩烈","心手相应","心口相应","挟势弄权","胁肩累足","校短量长","小眼薄皮","硝云弹雨","鸮鸣鼠暴","削株掘根","削铁无声","削职为民","削木为吏","想望风褱","香培玉琢","相鼠有皮","相时而动","相切相磋","相女配夫","相门有相","挦章撦句","先我着鞭","习焉不察","歙漆阿胶","晰毛辨发","悉索薄赋","雾鳞云爪","物稀为贵","碔砆混玉","武断专横","五石六鹢","五色相宣","五侯七贵","五侯蜡烛","五羖大夫","吾自有处","无下箸处","无伤无臭","无能为役","无寇暴死","无孔不钻","无间可乘","无间冬夏","无恶不为","无动为大","诬良为盗","握拳透爪","文武差事","委委佗佗","惟日为岁","帷薄不修","为善最乐","为山止篑","为仁不富","为裘为箕","为民父母","为虺弗摧","为好成歉","为鬼为蜮","望风响应","望尘僄声","往渚还汀","王贡弹冠","亡国大夫","万贯家私","晚食当肉","晚节不保","玩岁愒时","蛙蟆胜负","吞言咽理","颓垣断堑","推干就湿","剸繁决剧","团头聚面","兔丝燕麦","兔头麞脑","兔葵燕麦","吐哺握发","投传而去","头没杯案","头昏脑闷","头会箕敛","头出头没","痛自创艾","同恶相助","同恶相恤","痌瘝在抱","通文调武","停留长智","铁树开华","条贯部分","挑牙料唇","挑么挑六","挑唇料嘴","恬不为意","恬不为怪","天下为笼","天台路迷","天年不遂","探囊胠箧","谭言微中","谈言微中","狧穅及米","随物应机","搜岩采干","宋斤鲁削","松筠之节","四亭八当","四马攒蹄","四不拗六","思所逐之","丝恩发怨","硕望宿德","铄古切今","顺风而呼","顺风吹火","水中著盐","双柑斗酒","数米而炊","数米量柴","数理逻辑","数黑论黄","数白论黄","束缊还妇","束蒲为脯","束椽为柱","书缺有间","手足重茧","手足异处","手脚干净","手不应心","螫手解腕","释知遗形","适时应务","适情率意","适当其冲","视为知己","使羊将狼","食为民天","拾掇无遗","实与有力","石英玻璃","石室金匮","什袭珍藏","什伍东西","什围伍攻","十魔九难","诗书发冢","虱处裈中","师直为壮","尸居龙见","圣经贤传","圣君贤相","生拖死拽","审己度人","神武挂冠","神龙失埶","深文曲折","深厉浅揭","深谷为陵","深恶痛疾","深仇宿怨","舍己为公","舍短取长","舍策追羊","蛇蝎为心","少成若性","上当学乖","赏不当功","善自为谋","善为说辞","善善恶恶","善财难舍","苫眼铺眉","讪牙闲嗑","山阴乘兴","山殽野湋","山溜穿石","山节藻棁","杀鸡为黍","色厉胆薄","桑荫未移","桑荫不徙","桑土绸缪","桑户棬枢","三战三北","三瓦两舍","三人为众","三差两错","塞井焚舍","洒心更始","洒扫应对","软红香土","入吾彀中","入铁主簿","入理切情","汝成人耶","如水投石","如切如磋","如登春台","肉薄骨并","柔情绰态","戎马劻勷","日中为市","日月参辰","日省月修","日削月割","日省月试","任达不拘","人言藉藉","人模狗样","人莫予毒","热熬翻饼","圈牢养物","取予有节","诎要桡腘","穷形尽相","情凄意切","情见势屈","情见乎辞","清都绛阙","倾肠倒肚","青紫被体","青林黑塞","螓首蛾眉","琴瑟之好","且住为佳","切树倒根","切理餍心","切近的当","翘足引领","巧发奇中","强嘴拗舌","强直自遂","强死强活","强食自爱","强食靡角","强弓劲弩","强聒不舍","强凫变鹤","强而后可","强得易贫","遣兴陶情","牵羊担酒","千了百当","泣下如雨","起偃为竖","岂弟君子","綦溪利跂","棋输先著","齐王舍牛","欺天诳地","普天率土","铺胸纳地","铺锦列绣","破家为国","破觚为圜","萍飘蓬转","帡天极地","屏声息气","凭几据杖","贫嘴薄舌","片语只辞","披发文身","烹龙炮凤","炰鳖脍鲤","庞眉皓发","攀花折柳","攀蟾折桂","女大难留","弄玉吹箫","弄管调弦","弄粉调朱","浓抹淡妆","捻土为香","年谊世好","年华垂暮","儗不于伦","泥而不滓","能者为师","能不称官","挠直为曲","难进易退","难得糊涂","南蛮鴂舌","南贩北贾","牧猪奴戏","目眢心忳","目挑心招","目量意营","木头木脑","木干鸟栖","侔色揣称","莫予毒也","抹粉施脂","磨砻镌切","磨棱刓角","摸门不着","摸不着边","命中注定","鸣鹤之应","明效大验","名我固当","邈处欿视","黾穴鸲巢","绵里薄材","靡有孑遗","靡衣偷食","迷恋骸骨","扪参历井","门单户薄","昧旦晨兴","冒名接脚","毛遂堕井","毛发倒竖","卖文为生","卖李钻核","买椟还珠","埋三怨四","马入华山","落魄江湖","落落难合","落草为寇","罗织构陷","鸾凤和鸣","率由旧章","率土同庆","率兽食人","率土归心","率马以骥","率尔成章","鲁斤燕削","漏尽更阑","笼鸟槛猿","笼鸟池鱼","龙游曲沼","龙血玄黄","龙雕凤咀","六尺之讬","令原之戚","令人捧腹","陵劲淬砺","临敌易将","裂裳衣疮","裂冠毁冕","了无惧色","了身达命","了然无闻","了不可见","了不长进","燎发摧枯","审时度势","量小力微","相时度力","量枘制凿","量如江海","量金买赋","量己审分","敛骨吹魂","詈夷为跖","利令志惛","李广不侯","礼为情貌","礼让为国","犁生骍角","离本徼末","楞眉横眼","擂天倒地","累足成步","累瓦结绳","累土至山","累土聚沙","累卵之危","累累如珠","累块积苏","乐山乐水","潦原浸天","老师宿儒","牢什古子","琅嬛福地","揆情度理","旷日累时","匡救弥缝","枯树生华","口轻舌薄","口角生风","口角春风","口角风情","口干舌焦","口腹之累","空腹便便","嗑牙料嘴","刻木为鹄","咳珠唾玉","咳唾成珠","抗颜为师","开华结果","峻阪盐车","嚼铁咀金","嚼墨喷纸","倔头强脑","倔头倔脑","倦鸟知还","卷席而葬","卷甲倍道","聚米为山","举手相庆","举世混浊","鞠为茂草","拘神遣将","居下讪上","久要不忘","九转功成","九蒸三熯","敬业乐群","井底虾蟆","旌旗卷舒","荆棘载途","禁舍开塞","祲威盛容","进退消长","进退应矩","进退触籓","进退跋疐","尽多尽少","锦囊还矢","矜己自饰","矜功负气","津关险塞","金吾不禁","金翅擘海","解衣衣人","解人难得","解铃系铃","解发佯狂","诘屈磝碻","教猱升木","较瘦量肥","角立杰出","焦沙烂石","骄儿騃女","浇风薄俗","降妖捉怪","将取固予","将门有将","将夺固与","槛花笼鹤","鉴影度形","渐不可长","见素抱朴","见弃于人","简丝数米","俭不中礼","间见层出","尖嘴薄舌","甲冠天下","葭莩之亲","家累千金","家给人足","家道从容","夹袋人物","霁风朗月","寄兴寓情","计深虑远","计功量罪","掎裳连襼","虮虱相吊","疾不可为","极深研几","及宾有鱼","激薄停浇","积素累旧","积时累日","积露为波","积德累功","积谗糜骨","击排冒没","祸为福先","祸福相依","获隽公车","混应滥应","毁舟为杕","毁钟为铎","毁冠裂裳","晦盲否塞","回船转舵","潢池盗弄","黄冠草履","黄发儿齿","黄发垂髫","还珠返璧","还年驻色","还年却老","坏裳为裤","画荻和丸","化枭为鸠","化腐为奇","化鸱为凤","花不棱登","户限为穿","呼卢喝雉","呼来喝去","呼不给吸","厚味腊毒","厚德载物","鸿渐于干","洪炉燎发","红绳系足","红不棱登","横抢硬夺","横恩滥赏","恨海难填","鹤发鸡皮","涸思干虑","河涸海干","和颜说色","合从连衡","浩浩汤汤","好勇斗狠","好问则裕","好为事端","好问决疑","好生之德","好奇尚异","好恶不同","好丹非素","豪干暴取","毫发不爽","寒酸落魄","含英咀华","含糊不明","过为已甚","桂折兰摧","规旋矩折","广文先生","广陵散绝","冠山戴粒","冠屦倒施","挂席为门","寡见鲜闻","瓜葛相连","鼓吻奋爪","古调单弹","古调不弹","姑射神人","苟合取容","狗续侯冠","钩爪锯牙","共枝别干","共为唇齿","拱手而降","拱肩缩背","功薄蝉翼","弓调马服","更姓改物","更仆难数","更令明号","更待干罢","更唱迭和","更长梦短","各色名样","格格不纳","格格不吐","告朔饩羊","膏车秣马","高义薄云","岗头泽底","敢为敢做","甘分随时","甘处下流","干啼湿哭","干名犯义","干将莫邪","干城之将","腹载五车","父债子还","父为子隐","辅世长民","福为祸始","符号逻辑","浮收勒折","肤受之愬","否终则泰","佛头著粪","奉为楷模","凤靡鸾吪","封豨修蛇","风影敷衍","丰屋蔀家","粪土不如","分风劈流","沸沸汤汤","菲食薄衣","飞将数奇","放辟邪侈","方领圆冠","犯而不校","返本还源","反劳为逸","法轮常转","罚不当罪","发引千钧","发奸擿伏","发短心长","二竖为虐","儿女心肠","儿女亲家","遏恶扬善","饿殍枕藉","饿殍载道","恶醉强酒","恶意中伤","恶湿居下","恶居下流","恶不去善","扼吭夺食","扼襟控咽","峨峨汤汤","屙金溺银","朵颐大嚼","夺人所好","多言数穷","多文为富","多端寡要","多财善贾","遁世无闷","遁迹黄冠","堆案盈几","断还归宗","短见薄识","蠹居棊处","度己以绳","杜默为诗","杜鹃啼血","笃近举远","独有千秋","读书得间","斗转参横","兜肚连肠","洞见症结","恫疑虚喝","动中窾要","东鸣西应","东鳞西爪","东量西折","东家西舍","东扯西拽","鼎铛有耳","鼎铛玉石","钉头磷磷","跌宕不羁","跌弹斑鸠","雕心雁爪","颠倒衣裳","德薄能鲜","得马折足","蹈其覆辙","捣虚撇抗","倒载干戈","倒裳索领","倒果为因","叨在知己","叨陪末座","党豺为虐","当轴处中","当着不着","当务始终","淡汝浓抹","弹丸脱手","弹铗无鱼","箪食瓢饮","大璞不完","大明法度","大车以载","打闷葫芦","沓来踵至","厝火燎原","撮科打哄","寸积铢累","啛啛喳喳","摧折豪强","摧刚为柔","从俗就简","此发彼应","此唱彼和","慈悲为本","纯属骗局","春笋怒发","垂头搨翼","传为笑谈","传风扇火","穿红着绿","触处机来","处尊居显","处堂燕雀","处实效功","处高临深","出入无间","出门应辙","出处语默","出处殊途","出处进退","愁山闷海","冲冠眦裂","齿牙为祸","尺二冤家","尺短寸长","尺寸之功","城北徐公","成败兴废","趁水和泥","称雨道晴","称体载衣","称体裁衣","称家有无","称德度功","沉吟章句","沉吟不决","沉疴宿疾","扯纤拉烟","扯顺风旗","车载船装","朝升暮合","朝攀暮折","超今冠古","倡而不和","畅所欲为","苌弘碧血","长幼尊卑","长绳系日","长年三老","长春不老","长傲饰非","昌亭旅食","禅絮沾泥","差三错四","层台累榭","层见迭出","藏踪蹑迹","苍蝇见血","餐松啖柏","骖风驷霞","参伍错综","参辰卯酉","材优干济","材薄质衰","才大难用","才薄智浅","不足为意","不足为据","不足为法","不足齿数","不着疼热","不知薡蕫","不越雷池","不相为谋","不贪为宝","不了而了","不可揆度","不遑启处","不当不正","不差什么","不差累黍","擘两分星","簸土扬沙","薄物细故","薄寒中人","博文约礼","播糠眯目","剥皮抽筋","剥肤椎髓","波属云委","波骇云属","兵微将寡","兵强将勇","兵多将广","兵不由将","冰解的破","彬彬济济","摽梅之年","表里为奸","飙发电举","变贪厉薄","敝盖不弃","秕言谬说","比物属事","被山带河","被甲枕戈","被甲据鞍","被褐怀玉","被发缨冠","背曲腰躬","北窗高卧","北辰星拱","北鄙之音","卑宫菲食","暴衣露冠","暴腮龙门","暴露文学","暴虎冯河","抱蔓摘瓜","抱法处势","褒贬与夺","帮闲钻懒","拜将封侯","百兽率舞","百孔千创","白衣卿相","白首为郎","白首相知","把玩无厌","拔锅卷席","拔本塞源","傲不可长","熬更守夜","安时处顺","安身为乐","安老怀少","安步当车","爱人好士","矮人观场","捱风缉缝","挨山塞海","阿家阿翁","阿党相为","追亡逐北","竹篮打水","知疼着热","语不惊人","于今为烈","一日三省","穴居野处","五脊六兽","无声无臭","谓予不信","舍身为国","杀妻求将","强作解人","气冲斗牛","临深履薄","钧天广乐","艰难竭蹶","夹七夹八","混混噩噩","厚古薄今","鬼怕恶人","伽马射线","佛头着粪","奉为至宝","登坛拜将","晨昏定省","察察为明","博闻强识","避难就易","了无生机","有一说一","独一无二","说一不二","举一反三","数一数二","杀一儆百","丁一卯二","丁一确二","不一而止","无一幸免","表里不一","良莠不一","心口不一","言行不一","政令不一","参差不一","纷纷不一","毁誉不一","不一而三","百不一遇","言行抱一","瑜百瑕一","背城借一","凭城借一","劝百讽一","群居和一","百不获一","百不失一","百无失一","万不失一","万无失一","合而为一","合两为一","合二为一","天下为一","相与为一","较若画一","较如画一","斠若画一","言行若一","始终若一","终始若一","惟精惟一","众多非一","不能赞一","问一答十","一不扭众","一以贯之","一以当百","百不当一","十不当一","以一警百","以一奉百","以一持万","以一知万","百里挑一","整齐划一","一来二去","一路公交","一路汽车","一路巴士","朝朝朝落","曲意逢迎","一行不行","行行不行","Pattern4","DICT5","巴尔干半岛","巴尔喀什湖","不幸而言中","布尔什维克","何乐而不为","苛政猛于虎","蒙得维的亚","民以食为天","事后诸葛亮","物以稀为贵","先下手为强","行行出状元","亚得里亚海","眼不见为净","竹筒倒豆子","Pattern5","getMaxProbability","decimal","checkDecimal","prob","getPatternDecimal","getMinCount","getPatternCount","TrieNode","fail","AC","dictMap","queues","_proto2","patternList","buildTrie","buildFailPointer","zhChars","trieNode","addNodeToQueues","insertPattern","addPatternToDictMap","_queue","failNode","_pattern","removeDict","dictName","surname","algorithm","filteredArr","reverseMaxMatch","dp","patternIndex","suffixDP","curDP","concatPattern","iDP","minTokenization","maxProbability","PatternsNormal","acTree","customMultipleDict","customPolyphonicDict","getCustomPolyphonicDict","getPinyin","segmentit","matchIndex","isZh","originPinyin","pinyins","pinyinIndex","getAllPinyin","customMultpileDict","surnamePinyin","py","getInitialAndFinal","initial_arr","final_arr","_pinyin","_InitialList","_initial","_final","final","getFinalParts","tail","reg_tone1","reg_tone2","reg_tone3","reg_tone4","reg_tone0","special_tone","tone_num_arr","getFirstLetter","first_letter_arr","validateType","isNonZhScope","middleWareNonZh","nonZh","nonZhScope","middlewareMultiple","getMultiplePinyin","middlewarePattern","middlewareToneType","pinyin_arr","res_arr","getPinyinWithNum","middlewareV","middlewareType","_getInitialAndFinal2","_getFinalParts","finalHead","finalBody","finalTail","inZhRange","middlewareToneSandhi","toneSandhi","DEFAULT_OPTIONS$2","removeNonZh","_list","DEFAULT_OPTIONS$1","getPolyphonicList","doubleList","getSplittedPolyphonicList","handleType","OutputFormat","_getInitialAndFinal3","_getFinalParts2","AllSegment","factory","__WEBPACK_AMD_DEFINE_RESULT__","WINDOW","JS_MD5_NO_WINDOW","buffer8","COMMON_JS","JS_MD5_NO_COMMON_JS","AMD","ARRAY_BUFFER","JS_MD5_NO_ARRAY_BUFFER","HEX_CHARS","EXTRA","OUTPUT_TYPES","BASE64_ENCODE_CHAR","blocks","JS_MD5_NO_NODE_JS","JS_MD5_NO_ARRAY_BUFFER_IS_VIEW","createOutputMethod","outputType","isBinStr","Md5","sharedMemory","h0","h1","h2","h3","hBytes","finalized","lastByteIndex","bc","arrayBuffer","v1","v2","v3","createMethod","stringifyPrimitive","xhrRes","strHeaders","getAllResponseHeaders","statusMessage","statusText","xhrBody","dataType","sep","eq","qs","qsStr","ks","responseType","xhrFields","xhrField","setRequestHeader","upload","onprogress","onDownloadProgress","ontimeout","XMLValidator","isWhiteSpace","readPI","xmlData","getErrorObject","getLineNumberForPosition","readCommentAndCDATA","angleBracketsCount","tags","tagFound","reachedRoot","tagStartPos","closingTag","readAttributeStr","attrStrStart","validateAttributeString","tagClosed","otg","openPos","afterAmp","validateAmpersand","doubleQuote","singleQuote","startChar","validAttrStrRegxp","attrNames","getPositionFromMatch","validateAttrName","re","validateNumberAmpersand","lineNumber","lines","buildFromOrderedJs","indentBy","suppressEmptyNode","suppressUnpairedNode","suppressBooleanAttributes","oneListGroup","Builder","isAttribute","attrPrefixLen","processTextOrObjNode","indentate","tagEndChar","newLine","j2x","buildTextValNode","buildObjectNode","repeat","jObj","arrayNodeName","_jObj","buildAttrPairStr","newval","replaceEntitiesValue","arrLen","listTagVal","Ks","closeTag","tagEndExp","piClosingChar","textValue","arrToStr","indentation","xmlStr","isPreviousElementTag","tagObj","newJPath","newIdentation","attStr","attr_to_str","tagStart","tagValue","tempInd","piTextNodeName","tagText","isStopNode","attrMap","attrVal","jArray","readEntityExp","entityName","isComment","isEntity","isAttlist","isNotation","validateEntityName","hasBody","_readEntityExp","regx","xmlNode","readDocType","toNumber","addExternalEntities","externalEntities","entKeys","ent","lastEntities","parseTextData","dontTrim","hasAttributes","isLeafNode","escapeEntities","parseValue","resolveNameSpace","attrsRegx","buildAttributesMap","oldVal","aName","attrCollection","parseXml","xmlObj","textData","closeIndex","findClosingIndex","colonIndex","saveTextToParentTag","lastTagName","propIndex","tagsNodeStack","tagData","readTagExp","tagExp","attrExpPresent","docTypeEntities","rawTagName","lastTag","isItStopNode","tagContent","readStopNodeData","ampEntity","currentTagName","allNodesExp","stopNodePath","stopNodeExp","closingIndex","closingChar","attrBoundary","ch","tagExpWithClosingIndex","separatorIndex","trimStart","openTagCount","shouldParse","OrderedObjParser","prettify","validationOption","orderedObjParser","orderedResult","addEntity","compress","compressedObj","newJpath","isLeafTag","assignAttributes","jpath","atrrName","propCount","webpackPolyfill","deprecate","paths","session","Async","EventProxy","getUploadIdAndPartList","TaskId","StorageClass","ETagMap","SliceSize","SliceCount","FinishSize","onHashProgress","isAvailableUploadList","PartList","PartCount","Part","PartNumber","ETag","chunkItem","getChunkETag","ep","errData","_isRunningTask","UploadData","Uploaded","_params","multipartInit","UploadId","UploadIdList","eachLimit","asyncCallback","using","wholeMultipartListPart","PartListData","removeUsing","isAvailable","AvailableUploadData","RemoteUploadIdList","getFileId","LocalUploadIdList","getUploadIdList","removeUploadId","wholeMultipartList","UploadList","UploadID","sendParams","Prefix","multipartList","IsTruncated","KeyMarker","NextKeyMarker","UploadIdMarker","NextUploadIdMarker","multipartListPart","PartNumberMarker","NextPartNumberMarker","uploadSliceList","ChunkParallel","AsyncLimit","ChunkParallelLimit","ServerSideEncryption","needUploadSlices","SliceItem","_onProgress2","currentSize","preAddSize","uploadSliceItem","SliceList","FileBody","ChunkRetryTimes","headersWhiteList","PartItem","tryCallback","multipartUpload","uploadSliceComplete","Parts","multipartComplete","abortUploadTaskArray","AbortArray","resultList","AbortItem","eachIndex","KeyNotMatch","multipartAbort","task","successList","copySliceItem","CopySource","CopySourceRange","uploadPartCopy","API_MAP","chunkSize","UploadCompleteData","_UploadCompleteData","metaHeaders","saveUploadId","UploadIdCacheLimit","setUsing","SIZE","AutoChunkSize","MaxPartNumber","SkipTask","putObject","abortUploadTask","Level","uploadFile","fileInfo","_onTaskReady","tid","_onFileFinish","onFileFinish","_addTasks","uploadFiles","TotalSize","TotalFinish","onTotalProgress","unFinishCount","files","_onTotalFileFinish","onTotalFileFinish","Index","fileParams","PreAddSize","_onProgress","sliceCopyFile","SourceBucket","SourceRegion","SourceKey","CopySliceSize","CopyChunkSize","CopyChunkParallelLimit","ChunkCount","SourceResHeaders","SourceHeaders","TargetHeader","getCopyFileId","needCopySlices","createNewUploadId","finishETagMap","restoreHeader","headObject","ErrorStatus","putObjectCopy","resHeaders","metaPrefix","transferToTaskMethod","completed","started","running","replenish","REQUEST","submitBucketInventory","InventoryConfiguration","OptionalFields","Destination","COSBucketDestination","Encryption","xml","submitRequest","Action","decodeAcl","AccessControlPolicy","GrantFullControl","GrantWrite","GrantRead","GrantReadAcp","GrantWriteAcp","ACL","GrantMap","FULL_CONTROL","WRITE","READ","READ_ACP","WRITE_ACP","Grant","AccessControlList","PublicAcl","uriMatch","Grantee","URI","ID","Permission","Owner","uniqGrant","longBucket","shortBucket","appId","ForcePathStyle","isLocation","getSignHost","useAccelerate","Url","Protocol","getAuthorizationAsync","headerHost","SignHost","cbDone","AuthData","XCosSecurityToken","KeyName","StsData","Scope","ResourceKey","ScopeKey","_StsCache","compareTime","StartTime","ScopeLimit","calcAuthByTmpKey","Authorization","TmpSecretId","TmpSecretKey","ClientIP","ClientUA","SignFrom","checkAuthError","formatAllow","getAuthorization","AuthError","getSTS","allowRetry","canRetry","isTimeError","networkError","serverDate","ServerTime","CorrectClockSkew","AutoSwitchHost","canSwitchHost","requestUrl","clientCalcSign","versionId","paramsUrl","tryTimes","oldClockOffset","SwitchHost","_submitRequest","switchHost","rawBody","repoterUrl","contentLength","DataType","Timeout","pathStyle","_opt$body","queryString","fullUrl","sender","Request","receive","hasReturned","killTask","pHeaders","CallbackError","CallbackBody","ReturnError","ReturnBody","statusSuccess","errorBody","abort","getService","ServiceDomain","standardHost","buckets","ListAllMyBucketsResult","Buckets","putBucket","CreateBucketConfiguration","BucketAZConfig","Location","headBucket","getBucket","reqParams","ListBucketResult","Contents","CommonPrefixes","deleteBucket","putBucketAcl","Grants","getBucketAcl","putBucketCors","CORSRules","sKey","Conf","CORSRule","ResponseVary","CORSConfiguration","getBucketCors","deleteBucketCors","getBucketLocation","getBucketPolicy","Policy","putBucketPolicy","PolicyStr","deleteBucketPolicy","putBucketTagging","Tagging","Tags","TagSet","getBucketTagging","deleteBucketTagging","putBucketLifecycle","Rules","LifecycleConfiguration","Rule","getBucketLifecycle","deleteBucketLifecycle","putBucketVersioning","VersioningConfiguration","getBucketVersioning","putBucketReplication","ReplicationConfiguration","getBucketReplication","deleteBucketReplication","putBucketWebsite","WebsiteConfiguration","RoutingRules","RoutingRule","getBucketWebsite","deleteBucketWebsite","putBucketReferer","RefererConfiguration","DomainList","Domains","getBucketReferer","putBucketDomain","DomainRule","DomainConfiguration","getBucketDomain","deleteBucketDomain","putBucketOrigin","OriginRule","OriginConfiguration","getBucketOrigin","deleteBucketOrigin","putBucketLogging","BucketLoggingStatus","getBucketLogging","putBucketInventory","postBucketInventory","getBucketInventory","listBucketInventory","ListInventoryConfigurationResult","InventoryConfigurations","deleteBucketInventory","putBucketAccelerate","configuration","AccelerateConfiguration","getBucketAccelerate","putBucketEncryption","conf","ServerSideEncryptionConfiguration","getBucketEncryption","EncryptionConfiguration","deleteBucketEncryption","getObject","ObjectKeySimplifyCheck","reqParamsStr","QueryString","NotModified","listObjectVersions","ListVersionsResult","DeleteMarkers","Versions","Version","needCalcMd5","UploadAddMetaMd5","deleteObject","Recursive","BucketNotFound","getObjectAcl","putObjectAcl","optionsObject","OptionsForbidden","AccessControlAllowOrigin","AccessControlAllowMethods","AccessControlAllowHeaders","AccessControlExposeHeaders","AccessControlMaxAge","CopyObjectResult","deleteMultipleObject","Objects","Quiet","Delete","DeleteResult","Deleted","Errors","restoreObject","RestoreRequest","putObjectTagging","getObjectTagging","deleteObjectTagging","selectObjectContent","SelectRequest","Payload","appendObject","Position","uploadId","CopyPartResult","InitiateMultipartUploadResult","CompleteMultipartUpload","CompleteMultipartUploadResult","ProcessResults","UploadResult","OriginalInfo","ImageInfo","CallbackResult","callbackResult","ReturnBodyResult","returnBodyResult","ListMultipartUploadsResult","ListPartsResult","RawBody","getObjectUrl","queryParamsStr","syncUrl","Sign","signUrl","urlParams","encodedParams","reg","replaceUrlParamList","oldName","warnOldApi","advance","FileParallelLimit","UploadQueueSize","cos","getList","cacheKey","getCache","localStorage","getItem","setCache","setItem","removeItem","changed","mtime","save","lastModifiedDate","copySource","sourceHeaders","etag","lastModified","originApiMap","apiMap","_addTask","tasks","uploadingFileCount","nextUploadIndex","formatTask","FilePath","hashPercent","_custom","emitListUpdate","clearQueue","startNextTask","onTaskStart","apiParams","switchToState","waiting","toState","isTaskReadyWarning","ignoreAddEvent","TaskReady","getTaskList","cancelTask","pauseTask","restartTask","isUploadRunning","_speed","_createForOfIteratorHelper","normalCompletion","didErr","_e2","SuspenseList","isSuspenseList","getModuleId","ERROR_CODE","uninitialized","parsererror","onabort","unknown","useCount","mergedConfig","showFormatter","setParameter","_url","jsonToQuery","queryToJson","bak","lists","PARSER_REG","hostname","_protocol","_hostname","_pathname","startTransitionImpl","HashRouter","basename","future","historyRef","createHashHistory","v5Compat","history","setStateImpl","v7_startTransition","Router","navigationType","DataRouterHook","DataRouterStateHook","ANT_MARK","LocaleProvider","_ANT_MARK__","changeConfirmLocale","getMemoizedContextValue","useInternalLayoutEffect","firstMountRef","firstMount","BaseInput","_element$props","_element$props2","inputEl","handleReset","dataAttrs","AffixWrapperComponent","GroupWrapperComponent","GroupAddonComponent","groupAddon","hasAffix","clsx","groupRef","needClear","clearIconCls","affixWrapperPrefixCls","affixWrapperCls","_containerRef$current","addonCls","groupWrapperCls","mergedWrapperClassName","mergedGroupClassName","compositionRef","setSelection","countConfig","valueLength","isOutOfRange","_holderRef$current","_inputRef$current3","_inputRef$current4","_inputRef$current5","cutValue","exceedFormatter","_inputRef$current6","onInternalChange","onInternalCompositionEnd","handleKeyDown","handleFocus","handleBlur","outOfRangeCls","hasMaxLength","dataCount","getSuffix","appendClass","newClass","useOriginId","reactId","nextId","DataRouterContext","DataRouterStateContext","AwaitContext","NavigationContext","LocationContext","RouteContext","outlet","isDataRoute","RouteErrorContext","useHref","relative","useInRouterContext","useResolvedPath","joinedPathname","joinPaths","createHref","router","useDataRouterContext","UseNavigateStable","useCurrentRouteId","fromRouteId","dataRouterContext","locationPathname","routePathnamesJson","getPathContributingMatches","pathnameBase","resolveTo","useNavigateUnstable","useRoutesImpl","locationArg","dataRouterState","parentMatches","routeMatch","parentParams","parentPathnameBase","locationFromContext","parsedLocationArg","parsePath","remainingPathname","matchRoutes","renderedMatches","_renderMatches","encodeLocation","NavigationType","Pop","DefaultErrorComponent","useDataRouterState","UseRouteError","routeId","useRouteError","isRouteErrorResponse","lightgrey","preStyles","defaultErrorElement","RenderErrorBoundary","revalidation","componentDidCatch","errorInfo","routeContext","RenderedRoute","staticContext","errorElement","ErrorBoundary","_deepestRenderedBoundaryId","errorIndex","reduceRight","getChildren","hookName","useRouteContext","thisRoute","useRouteId","UseRouteId","useNavigation","UseNavigation","navigation","useMatches","UseMatches","loaderData","blockerId","useBlocker","shouldBlock","UseBlocker","blockerKey","setBlockerKey","blockerFunction","currentLocation","nextLocation","historyAction","stripBasename","deleteBlocker","getBlocker","blockers","IDLE_BLOCKER","AwaitRenderStatus","Route","basenameProp","locationProp","staticProp","navigationContext","static","locationContext","trailingPathname","Routes","createRoutesFromChildren","neverSettledPromise","treePath","caseSensitive","loader","hasErrorBoundary","shouldRevalidate","lazy","mapRouteProperties","updates","originalInput","roundA","gradientType","RsRGB","GsRGB","BsRGB","isMonochrome","toHsvString","toHex8","toHex8String","allowShortChar","toPercentageRgb","fmt","toPercentageRgbString","rnd","toName","formatSet","formattedString","hasAlpha","clamp01","brighten","desaturate","saturate","greyscale","analogous","slices","part","complement","monochromatic","modification","splitcomplement","fg","triad","polyad","tetrad","increment","Indent","baseClassName","ICON_OPEN","ICON_CLOSE","InternalTreeNode","dragNodeHighlight","onNodeClick","isSelectable","onNodeDoubleClick","isDisabled","onNodeSelect","onNodeCheck","isCheckable","targetChecked","onNodeMouseEnter","onNodeMouseLeave","onNodeContextMenu","onNodeDragStart","dataTransfer","onNodeDragEnter","onNodeDragOver","onNodeDragLeave","onNodeDragEnd","onNodeDrop","onNodeExpand","selectHandle","loadData","hasChildren","treeCheckable","_this$props$context","onNodeLoad","_this$props$context2","switcherIconFromProps","switcherIconFromCtx","_switcherIconDom","renderSwitcherIconDom","switcherIconDom","$custom","getNodeState","$icon","_this$props6$title","_this$props$context3","treeIcon","titleRender","wrapClass","currentIcon","renderIcon","setSelectHandle","onContextMenu","onSelectorClick","onDoubleClick","onSelectorDoubleClick","renderDropIndicator","_this$props$context4","showIndicator","mergedIndent","cacheIndent","syncLoadData","treeSelectable","_this$props8","_this$props$context5","draggingNodeKey","isEndNode","isDraggable","draggableWithoutDisabled","ariaSelected","onDragStart","onDragEnter","onDragOver","onDragLeave","onDrop","onDragEnd","renderDragHandler","renderSwitcher","renderCheckbox","renderSelector","ContextTreeNode","TreeContext","obj1","obj2","shallow","refSet","deepEqual","circular","newLevel","useCommittedRef","hiddenTextarea","SIZING_STYLE","computedStyleCache","calculateAutoSizeStyle","uiTextNode","minRows","maxRows","_calculateNodeStyling","paddingSize","borderSize","nodeInfo","sizingStyle","calculateNodeStyling","singleRowHeight","ResizableTextArea","autoSize","onInternalAutoSize","setMergedValue","textareaRef","needAutoSize","resizeState","setResizeState","autoSizeStyle","setAutoSizeStyle","startResize","textareaStyles","_textareaRef$current","fixFirefoxAutoScroll","resizeRafRef","mergedAutoSizeStyle","_countConfig$max","customValue","textareaResized","setTextareaResized","resizableTextAreaRef","getTextArea","_resizableTextAreaRef","_getTextArea","isPureTextArea","_getTextArea2","condition","_genStyleUtils","genStyleUtils","usePrefix","_useLocalToken","useLocalToken","useCSP","getResetStyles","getCommonStyle","getCompUnitless","isStableColor","frontColor","_TinyColor$toRgb","fR","fG","fB","_TinyColor$toRgb2","bR","bG","bB","fA","restToken","overrideTokens","seedToken","fastDuration","colorFillContentHover","colorBorderBg","colorTextLabel","colorHighlight","paddingContentVerticalLG","paddingContentVertical","paddingContentHorizontalSM","paddingContentVerticalSM","marginMD","marginXXL","boxShadowTertiary","screenXS","screenXSMin","screenSMMin","screenMDMin","screenMDMax","screenLGMin","screenLGMax","screenXLMin","screenXLMax","screenXXLMin","boxShadowCard","boxShadowDrawerRight","boxShadowDrawerLeft","boxShadowDrawerUp","boxShadowDrawerDown","boxShadowTabsOverflowLeft","boxShadowTabsOverflowRight","boxShadowTabsOverflowTop","boxShadowTabsOverflowBottom","zIndexBase","componentTheme","componentTokens","mergedComponentToken","rootDesignToken","mergedTheme","_useCacheToken","isOnePointZero","isPercent","isPercentage","internalSet","removeIfUndefined","_paths","restPath","createEmpty","sources","internalMerge","parentLoopSet","loopSet","isArr","createRoot","fullClone","unmountComponentAtNode","toggleWarning","skip","usingClientEntryPoint","MARK","modernRender","legacyRender","modernUnmount","_modernUnmount","_container$MARK","legacyUnmount","_unmount","OrderContext","UNIQUE_ID","useScrollLocker","lock","mergedLock","isOverflow","getPortalContainer","autoLock","_props$autoDestroy","debug","shouldRender","setShouldRender","innerContainer","setInnerContainer","customizeContainer","_useDom","appendedRef","queueCreate","setQueue","mergedQueueCreate","appendFn","cleanup","_ele$parentElement","useDom","_useDom2","mergedContainer","nextInline","renderInline","reffedChildren","propList","ariaPrefix","dataPrefix","ariaOnly","MapShim","getIndex","class_1","__entries__","global$1","requestAnimationFrame$1","transitionKeys","mutationObserverSupported","MutationObserver","ResizeObserverController","connected_","mutationEventsAdded_","mutationsObserver_","observers_","onTransitionEnd_","leadingCall","trailingCall","lastCallTime","resolvePending","timeoutCallback","timeStamp","throttle","addObserver","connect_","removeObserver","observers","disconnect_","updateObservers_","activeObservers","gatherActive","hasActive","broadcastActive","characterData","subtree","getInstance","instance_","defineConfigurable","getWindowOf","emptyRect","createRectInit","toFloat","getBordersSize","positions","getHTMLElementContentRect","paddings","positions_1","getPaddings","horizPad","vertPad","isDocumentElement","vertScrollbar","horizScrollbar","isSVGGraphicsElement","SVGGraphicsElement","SVGElement","getBBox","getContentRect","bbox","getSVGContentRect","ResizeObservation","broadcastWidth","broadcastHeight","contentRect_","broadcastRect","ResizeObserverEntry","rectInit","Constr","contentRect","DOMRectReadOnly","ResizeObserverSPI","controller","callbackCtx","activeObservations_","observations_","callback_","controller_","callbackCtx_","observations","unobserve","clearActive","observation","refList","nodeOrComponent","_type$prototype","_nodeOrComponent$prot","isReactElement","resMap","decodeMap","REG_REPLACE","resReg","decodeReg","removeEmoji","escHTML","$0","escHTMLDecode","truncateStr","truncateNick","originDisabled","isReactNative","product","isDOM","_children$props","_props$placements","Placements","setTriggerVisible","handleVisibleChange","focusMenuRef","handleCloseMenuAndReturnFocus","_triggerRef$current$f","focusMenu","_overlayRef$current","focusResult","minOverlayWidthMatchTrigger","getMenuElement","triggerHideAction","onPopupClick","onOverlayClick","读书语境","聊天语境","MotionTreeNode","motionNodes","motionType","onOriginMotionStart","onMotionStart","onOriginMotionEnd","onMotionEnd","treeNodeRequiredProps","targetVisible","triggerMotionEndRef","triggerMotionEnd","triggerStart","triggerEnd","setFirstMount","useUnmount","nextVisible","RefMotionTreeNode","getExpandRange","shorter","longer","shorterStartIndex","shorterEndNode","longerStartIndex","longerEndIndex","HIDDEN_STYLE","MOTION_KEY","MotionNode","MotionEntity","MotionFlattenData","getMinimumRangeTransitionRange","NodeList","activeItem","onListChangeStart","onListChangeEnd","indentMeasurerRef","getIndentWidth","prevExpandedKeys","setPrevExpandedKeys","transitionData","setTransitionData","transitionRange","setTransitionRange","setMotionType","dataRef","latestData","diffExpanded","prevLen","nextLen","findExpandedKeys","rangeNodes","newTransitionData","_keyIndex","_rangeNodes","_newTransitionData","getAccessibilityPath","_args","flattenNodes","listChanging","_this$state","dragStartMousePosition","onWindowDragEnd","_this$state2","_node$props","currentMouseOverDroppableNodeKey","_calcDropPosition","delayedDragEnterLogic","resetDragState","_this$state3","_calcDropPosition2","cleanDragState","_this$getActiveItem","outsideTree","_this$state4","abstractDropNodeProps","getTreeNodeRequiredProps","getActiveItem","dropToChild","dropResult","dragNodesKeys","dropToGap","_this$state5","nodeItem","eventNode","triggerExpandActionExpand","_this$state6","targetSelected","selectedKey","setUncontrolledState","checkedObj","_this$state7","oriCheckedKeys","oriHalfCheckedKeys","eventObj","checkedNodes","checkedKey","_checkedKeys","_halfCheckedKeys","_conductCheck2","checkedNodesPositions","loadPromise","_ref$loadedKeys","_ref$loadingKeys","onLoad","currentLoadedKeys","newLoadedKeys","loadingRetryTimes","onRightClick","_this$state8","_this$state9","_this$state10","targetExpanded","newFlattenTreeData","currentExpandedKeys","expandedKeysToRestore","newActiveKey","_this$props9","_this$props9$itemScro","itemScrollOffset","_this$state11","_this$state12","_key4","_this$state13","_this$props10","offsetActiveKey","atomic","forceState","destroyed","needSync","allPassed","onUpdated","_this$props11","_this$props11$itemScr","_this$state14","_this$props12","_this$props12$tabInde","rootStyle","entitiesMap","checkedKeyEntity","cloneKeyEntities","nextExpandedKeys","defaultCheckedKeys","_checkedKeyEntity","_checkedKeyEntity$che","_checkedKeyEntity$hal","conductKeys","CONTAINER_OFFSET","containerBaseZIndexOffset","Drawer","FloatButton","consumerBaseZIndexOffset","SelectLike","ImagePreview","componentType","customZIndex","parentZIndex","isContainer","createAsyncThunk","homeSlice","extraReducers","builder","addCase","fulfilled","rejected","_action$payload","_action$payload$data","_action$payload2","_action$payload2$data","_action$payload2$data2","timbre_list","_action$payload3","_action$payload3$data","_action$payload4","_action$payload4$data","_action$payload4$data2","task_list","_action$payload5","_action$payload5$data","_action$payload6","_action$payload6$data","_action$payload6$data2","_action$payload7","_action$payload7$data","_action$payload8","_action$payload8$data","_action$payload8$data2","_action$payload9","_action$payload9$data","_action$payload10","_action$payload10$dat","_action$payload10$dat2","_getPrototypeOf","Toast","setShow","setText","isBottom","setBottom","eventHandle","MiniBar","showVolumeBar","setShowVolumeBar","isDragging","setIsDragging","dragPercent","setDragPercent","hasDragged","setHasDragged","progressRef","progressBarRef","currentDragPercent","hasDraggedRef","startX","handleClickOutside","closest","setProgress","formatTime","togglePlay","_progressBarRef$curre","clampedPercent","_progressBarRef$curre2","startMouseX","handleMouseMove","_progressBarRef$curre3","handleMouseUp","bufferedPercent","musickey","AppContent","appElement","App","AudioProvider","loadScript","getElementsByTagName","isQQMusic","isWeChatMP","__wxjs_environment","kgSdk","initSdk","_initSdk","hasReturn","Music","CommonApi","bridge","isLogin","login","PosidReport","_run","ReactDom","ResultType","PopStateEventType","createMemoryHistory","initialEntries","initialIndex","createMemoryLocation","clampIndex","getCurrentLocation","createLocation","createPath","createURL","Push","Replace","createBrowserHistory","getUrlBasedHistory","globalHistory","usr","hashIndex","invariant","cond","getHistoryState","parsedPath","searchIndex","getLocation","validateLocation","handlePop","replaceState","historyState","DOMException","immutableRouteKeys","convertRoutesToDataRoutes","manifest","isIndexRoute","indexRoute","pathOrLayoutRoute","branches","flattenRoutes","score","compareIndexes","routesMeta","childrenIndex","rankRouteBranches","matchRouteBranch","safelyDecodeURI","parentsMeta","flattenRoute","relativePath","computeScore","explodeOptionalSegments","exploded","segments","isOptional","restExploded","subpath","paramRe","dynamicSegmentValue","indexRouteValue","emptySegmentValue","staticSegmentValue","splatPenalty","isSplat","initialScore","segment","branch","matchedParams","matchedPathname","matchPath","normalizePathname","paramNames","regexpSource","paramName","matcher","compilePath","captureGroups","memo","splatValue","safelyDecodeURIComponent","decodeURI","nextChar","getInvalidPathError","dest","toArg","routePathnames","isPathRelative","isEmptyPath","toPathname","routePathnameIndex","toSegments","fromPathname","resolvePathname","normalizeSearch","normalizeHash","resolvePath","hasExplicitTrailingSlash","hasCurrentTrailingSlash","AbortedDeferredError","ErrorResponse","internal","validMutationMethodsArr","validMutationMethods","validRequestMethodsArr","validRequestMethods","redirectStatusCodes","redirectPreserveMethodStatusCodes","IDLE_NAVIGATION","formMethod","formAction","formEncType","formData","IDLE_FETCHER","proceed","ABSOLUTE_URL_REGEX","defaultMapRouteProperties","createRouter","routerWindow","isServer","detectErrorBoundary","inFlightDataRoutes","dataRoutes","v7_normalizeFormMethod","v7_prependBasename","unlistenHistory","savedScrollPositions","getScrollRestorationKey","getScrollPosition","initialScrollRestored","hydrationData","initialMatches","initialErrors","getInternalRouterError","getShortCircuitMatches","pendingNavigationController","initialized","restoreScrollPosition","preventScrollReset","actionData","fetchers","pendingAction","HistoryAction","pendingPreventScrollReset","isUninterruptedRevalidation","isRevalidationRequired","cancelledDeferredRoutes","cancelledFetcherLoads","fetchControllers","incrementingLoadId","pendingNavigationLoadId","fetchReloadIds","fetchRedirectIds","fetchLoadMatches","activeDeferreds","blockerFunctions","ignoreNextHistoryUpdate","updateState","subscriber","completeNavigation","isActionReload","isMutationMethod","_isRedirect","mergeLoaderData","getSavedScrollPosition","normalizedPath","normalizeTo","normalizeNavigateOptions","submission","userReplace","shouldBlockNavigation","updateBlocker","startNavigation","pendingError","startUninterruptedRevalidation","saveScrollPosition","routesToUse","loadingNavigation","overrideNavigation","notFoundMatches","cancelActiveDeferreds","isHashChangeOnly","AbortController","createClientSideRequest","signal","findNearestBoundary","handleAction","actionOutput","shortCircuited","pendingActionData","pendingActionError","getLoadingNavigation","handleLoaders","fetcherSubmission","interruptActiveLoads","getSubmittingNavigation","actionMatch","getTargetMatch","callLoaderOrAction","aborted","isRedirectResult","startRedirectNavigation","isErrorResult","boundaryMatch","isDeferredResult","activeSubmission","getSubmissionFromNavigation","getMatchesToLoad","matchesToLoad","revalidatingFetchers","updatedFetchers","markFetchRedirectsDone","rf","fetcher","revalidatingFetcher","getLoadingFetcher","abortFetcher","abortPendingFetchRevalidations","callLoadersAndMaybeResolveData","fetcherResults","loaderResults","redirect","findRedirect","fetcherKey","processLoaderData","deferredData","didAbortFetchLoads","abortStaleFetchLoads","shouldUpdateFetchers","getFetcher","requestMatches","setFetcherError","existingFetcher","getSubmittingFetcher","abortController","fetchRequest","originatingLoadId","actionResult","doneFetcher","getDoneFetcher","loadingFetcher","isFetchActionRedirect","revalidationRequest","loadId","loadFetcher","staleKey","resolveDeferredData","revalidate","redirectLocation","_isFetchActionRedirect","isDifferentBasename","redirectHistoryAction","currentMatches","fetchersToLoad","resolveDeferredResults","deleteFetcher","markFetchersDone","doneKeys","landedId","yeetedKeys","newBlocker","blocker","predicate","cancelledRouteIds","dfd","getScrollKey","createUseMatchesMatch","initialize","enableScrollRestoration","handleFetcherAction","handleFetcherLoader","dispose","_internalFetchControllers","_internalActiveDeferreds","_internalSetRoutes","newRoutes","prependBasename","contextualMatches","activeRouteMatch","hasNakedIndexQuery","normalizeFormMethod","isFetcher","isSubmissionNavigation","isValidMethod","getInvalidBodyError","rawFormMethod","stripHashFromPath","FormData","convertFormDataToSearchParams","convertSearchParamsToFormData","getLoaderMatchesUntilBoundary","boundaryId","boundaryMatches","currentUrl","nextUrl","navigationMatches","currentLoaderData","currentMatch","isNew","isMissingData","isNewLoader","currentRouteMatch","nextRouteMatch","shouldRevalidateLoader","currentParams","nextParams","defaultShouldRevalidate","isNewRouteInstance","fetcherMatches","fetcherMatch","currentPath","loaderMatch","routeChoice","loadLazyRouteModule","lazyRoute","lazyRouteProperty","routeToUpdate","routeUpdates","staticRouteValue","isPropertyStaticallyDefined","runHandler","abortPromise","onReject","race","requestContext","resultType","isResponse","isStaticRequest","isSameBasename","isRouteRequest","contentType","deferred","resolveData","processRouteLoaderData","foundError","loaderHeaders","newLoaderData","mergedLoaderData","signals","isRevalidatingLoader","unwrap","unwrappedData","getAll","pathMatches","RefContext","getMotionName","sentinelStyle","entityStyle","ariaId","bodyProps","panel","sentinelStartRef","sentinelEndRef","_sentinelStartRef$cur","preventScroll","changeActive","contentStyle","headerNode","closableObj","closerNode","MemoChildren","Content","destroyOnClose","dialogRef","setTransformOrigin","elementOffset","parentWindow","Mask","maskProps","_props$keyboard","wrapProps","_props$mask","maskAnimation","_props$maskClosable","lastOutSideActiveElementRef","wrapperRef","contentRef","animatedVisible","setAnimatedVisible","contentClickRef","contentTimeoutRef","onWrapperClick","_contentRef$current","DialogWrap","_props$destroyOnClose","_afterClose","refContext","composeWithDevTools","__REDUX_DEVTOOLS_EXTENSION_COMPOSE__","__REDUX_DEVTOOLS_EXTENSION__","baseProto","MiddlewareArray","species","EnhancerArray","freezeDraftable","curryGetDefaultMiddleware","middlewareArray","IS_PRODUCTION","curriedGetDefaultMiddleware","enhancers","finalMiddleware","middlewareEnhancer","finalCompose","trace","defaultEnhancers","storeEnhancers","composedEnhancer","createAction","prepareAction","actionCreator","prepared","executeReducerBuilderCallback","builderCallback","defaultCaseReducer","actionsMap","actionMatchers","typeOrActionCreator","addMatcher","addDefaultCase","_reducer","reducerNames","sliceCaseReducersByName","sliceCaseReducersByType","actionCreators","buildReducer","finalCaseReducers","mapOrBuilderCallback","getInitialState","finalActionMatchers","finalDefaultCaseReducer","caseReducers","cr","caseReducer","createReducer","reducerName","prepareCallback","maybeReducerWithPrepare","nanoid","commonProperties","miniSerializeError","simpleError","typePrefix","payloadCreator","requestStatus","serializeError","rejectedWithValue","reason","throwIfAborted","abortReason","idGenerator","conditionResult","abortedPromise","getPendingMeta","rejectWithValue","RejectWithValue","fulfillWithValue","FulfillWithMeta","finalAction","dispatchConditionRejection","unwrapResult","withTypes","alm","queueMicrotask","createQueueWithTimer","checkDCE","__REACT_DEVTOOLS_GLOBAL_HOOK__","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","goldenrod","gray","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavenderblush","lavender","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","limegreen","linen","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","plum","powderblue","rebeccapurple","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellowgreen","timerHelper","hasRetryTimes","maxRetry","timeoutInterval","execute","_execute","error_code","GlobalAudioManager","pageId","generatePageId","listenToStorageEvents","releaseAudioLock","acquireAudioLock","lockData","currentLock","CustomEvent","interruptingPageId","volume","audioLoaded","isInterrupted","setAudioState","audioRef","globalAudioManager","crossOrigin","handleLoadedMetadata","handleCanPlay","handleTimeUpdate","handlePlay","handlePause","handleEnded","handleError","handleProgress","buffered","handleAudioInterrupted","targetTime","targetPercent","setVolume","CloseCircleFilledSvg","CheckCircleFilledSvg","getIgnoreAttributesFn","ignoreAttributesFn","ajPath","listTagAttr","versionCompare","_current","targetArr","currentArr","fontFamilyCode","isNativeFunction","Wrapper","h5Reg","hippyReg","extractProjectFromUrl","getPagesPathName","_ReactDOM$findDOMNode","domNode","fnRef","memoFn","_fnRef$current","_possibleConstructorReturn","assertThisInitialized","MESSAGE","CODE","__spreadArray","il","CALLBACK_PREFIX","ActionType","callbackCnt","callbackname","_callbackname","_usePostMessgae","POSTMESSAGE","callbackName","callbackHandler","kg_postmessage_bridge","CONSOLE_AVAILABLE","PROMPT_AVAILABLE","iframe","failCallback","execEventCallback","retcode","callNativeAction","qmkegeInvoke","schemetype","newChain","extendObjectChain","emptyFn","unRegisterEvent","SUCCESS","registerEvent","callNative","moduleName","useScheme","TIME_OUT","kgbridge","wesingBridge","LightModeType","ChannelType","ForbidSlipType","CallShareChannel","__awaiter","thisArg","__generator","trys","ops","verb","WebContain","setCloseWebviewConfirm","clearCloseWebviewConfirm","closeWebview","setWebWindow","forbidSlip","setSuspensionWindow","clearSuspensionWindow","closeLoading","pageShow","postMessageToWeb","receiveMessageToWeb","lockScreen","upgrade","setStatusBar","callShareQQ","callShareWechat","callShareCopyLink","shareImage","saveImage","onKegeResume","onKegeHide","isAppFront","handleScheme","unRegisterEventAll","hideViewBackBtn","setTitleBar","execTitleBarAction","iosSlideBack","setCloseReportData","isWebViewFront","disablePushMsg","callShare","registerreceiveMessageToWeb","unregisterreceiveMessageToWeb","registeronKegeResume","unregisteronKegeResume","registeronKegeHide","unregisteronKegeHide","registerexecTitleBarAction","unregisterexecTitleBarAction","registeriosSlideBack","unregisteriosSlideBack","punctuationRegex","_ref3$upperLimit","upperLimit","_ref3$lowerLimit","lowerLimit","getDynamicUpperLimit","prevSize","specialPuncRegex","secondLevelPunctuationRegex","thirdLevelPunctuationRegex","englishRegex","curRoundCount","curRoundStr","sentenceStartIndex","lastBackwardIndex","lastThirdLevelBackwardIndex","dynamicUpperLimit","tryNextIndex","newC","engWord","mm","ss","mmStr","ssStr","getContentWithoutPunc","resultStr","originText","asrText","originTextRes","asrTextRes","stringSimilarity","_ref$atBegin","atBegin","timeoutID","_ref$noTrailing","noTrailing","_ref$noLeading","noLeading","_ref$debounceMode","debounceMode","lastExec","clearExistingTimeout","arguments_","elapsed","_ref2$upcomingOnly","upcomingOnly","locals","AsyncMode","ConcurrentMode","cached","measureScrollbarSize","randomId","measureEle","fallbackWidth","fallbackHeight","measureStyle","targetStyle","scrollbarWidth","webkitScrollbarStyle","widthStyle","heightStyle","_setPrototypeOf","AbstractCalculator","CSSCalculator","_AbstractCalculator","unitlessCssVar","numType","getResult","lowPriority","force","cssUnit","mergedUnit","NumCalculator","genCalc","Calculator","getCompVarPrefix","getComponentToken","defaultToken","customToken","_customToken$newToken","oldTokenKey","newTokenKey","enableStatistic","CSSINJS_STATISTIC","recording","objs","statistic","statisticToken","flush","_tokenKeys","componentToken","_statistic$componentN","getDefaultComponentToken","getDefaultToken","_token$component","genMaxMin","uniqueMap","ArrayKeyMap","compositeKey","getCompositeKey","lastAccessBeat","accessBeat","getObjectID","objectIDMap","nextID","beat","useUniqueMemo","cachedValue","useDefaultCSP","_config$useCSP","concatComponent","mergedLayer","_useToken3","_usePrefix","_genMaxMin","_statisticToken","proxyToken","defaultComponentToken","styleInterpolation","commonStyle","prefixToken","originUnitless","originCompUnitless","compUnitless","useCSSVar","_options$injectStyle","CSSVarRegister","_ref$cssVar","genCSSVarRegister","_useCSSVar","_useCSSVar2","_ref2$rootCls","CollectionContext","elementListeners","_elementListeners$get","SingleObserver","onCollectionResize","isRenderProps","sizeRef","getDom","_elementRef$current","onInternalResize","_target$getBoundingCl","fixedWidth","fixedHeight","mergedOffsetWidth","mergedOffsetHeight","currentElement","RefSingleObserver","RefResizeObserver","resizeIdRef","resizeInfosRef","currentId","AppConfigContext","Notify","_props$duration","showProgress","_props$pauseOnHover","pauseOnHover","_props$closeIcon","divProps","onNoticeClose","forcedHovering","setHovering","setPercent","spentTime","setSpentTime","mergedHovering","mergedShowProgress","animationFrame","calculate","runtime","progress","validPercent","noticePrefixCls","_divProps$onMouseEnte","_divProps$onMouseLeav","NotificationContext","NotificationProvider","useStack","_config$offset","_config$threshold","_config$gap","threshold","NoticeList","configList","onAllNoticeRemoved","stackConfig","ctxCls","dictRef","latestNoticeRef","hoverKeys","setHoverKeys","_useStack","_useStack2","_useStack2$","placementMotion","dataKey","_keys","_keys2","motionIndex","strKey","configClassName","configStyle","configClassNames","configStyles","restConfig","stackStyle","transformX","_dictRef$current$strK","_latestNoticeRef$curr","_latestNoticeRef$curr2","_dictRef$current$strK2","_latestNoticeRef$curr3","_dictRef$current$strK3","verticalOffset","_dictRef$current$keys","transformY","Notice","Notifications","renderNotifications","setConfigList","_config$onClose","_list$index","setPlacements","nextPlacements","_config$placement","originPlacements","emptyRef","placementList","placementConfigList","defaultGetContainer","uniqueKey","useNotification","rootConfig","_rootConfig$getContai","shareConfig","setContainer","notificationsRef","contextHolder","taskQueue","setTaskQueue","mergeConfig","oriQueue","genMessageStyle","_noticeStyle","noticeCls","messageMoveIn","messageMoveOut","noticeStyle","combinedToken","TypeIcon","PureContent","staticPrefixCls","wrapPromiseFn","openFn","closeFn","closePromise","filled","Holder","staticGetContainer","_useRcNotification","useRcNotification","useInternalMessage","messageConfig","fakeResult","jointContent","mergedDuration","mergedOnClose","act","defaultGlobalConfig","getGlobalContext","_defaultGlobalConfig","GlobalHolder","appConfig","_useInternalMessage","GlobalHolderWrapper","setMessageConfig","rootIconPrefixCls","flushNotice","holderFragment","newMessage","fragment","skipped","setCloseFn","_message$instance","staticMethods","useMessage","typeOpen","localeList","generateLocale","newLocale","cloneLocale","stylesInDom","isOldIE","getTarget","styleTarget","HTMLIFrameElement","contentDocument","singleton","singletonCounter","stylesInsertedAtTop","fixUrls","addStylesToDom","domStyle","addStyle","listToStyles","newStyles","media","sourceMap","insertStyleElement","insertInto","lastStyleElementInsertedAtTop","insertAt","removeStyleElement","createStyleElement","addAttrs","styleIndex","applyToSingletonTag","createLinkElement","updateLink","applyToTag","newObj","DEBUG","newList","mayRemove","textStore","replaceText","styleSheet","cssNode","autoFixUrls","convertToAbsoluteUrls","oldSrc","Arrow","arrowPos","_arrowPos$x","_arrowPos$y","arrowRef","popupPoints","targetPoints","popupTB","popupLR","targetTB","targetLR","PopupContent","keepDom","maskMotion","portal","onPointerEnter","ready","offsetR","offsetB","onAlign","targetWidth","targetHeight","isNodeVisible","getPopupContainerNeedParams","AUTO","offsetStyle","_experimental","alignRight","alignBottom","miscStyle","resizeObserverRef","_motion$onVisibleChan","TriggerWrapper","canUseRef","TriggerContext","isPointsEq","a1","a2","getWin","collectScroller","scrollerList","scrollStyle","_getWin$getComputedSt","toNum","getPxValue","getVisibleArea","initArea","visibleArea","HTMLBodyElement","HTMLHtmlElement","_getWin$getComputedSt2","overflowClipMargin","eleRect","eleOutHeight","eleInnerHeight","eleOutWidth","eleInnerWidth","borderTopNum","borderBottomNum","borderLeftNum","borderRightNum","eleScrollWidth","eleScrollHeight","scaledBorderTopWidth","scaledBorderBottomWidth","scaledBorderLeftWidth","scaledBorderRightWidth","clipMarginWidth","clipMarginHeight","clipNum","eleLeft","eleTop","eleRight","eleBottom","getUnitOffset","offsetStr","getNumberOffset","splitPoints","getAlignPoint","topBottom","leftRight","reversePoints","reverseMap","point","generateTrigger","PortalComponent","focusDelay","blurDelay","_props$builtinPlaceme","getPopupClassNameFromAlign","onPopupAlign","mergedAutoDestroy","subPopupElements","parentContext","registerSubPopup","subPopupEle","popupEle","setPopupEle","externalPopupRef","setPopupRef","targetEle","setTargetEle","externalForwardRef","setTargetRef","originChildProps","inPopupOrChild","_getShadowRoot","_getShadowRoot2","childDOM","mergePopupMotion","mergeMaskMotion","internalOpen","setInternalOpen","setMergedOpen","openRef","lastTriggerRef","internalTriggerOpen","_lastTriggerRef$curre","clearDelay","inMotion","setInMotion","_React$useState11","_React$useState12","motionPrepareResolve","setMotionPrepareResolve","_React$useState13","_React$useState14","mousePos","setMousePos","setMousePosByEvent","_useAlign","arrowX","arrowY","offsetInfo","setOffsetInfo","alignCountRef","prevFlipRef","_popupElement$parentE","_popupRect$x","_popupRect$y","_popupElement$parentE2","targetRect","getIntersectionVisibleArea","area","popupRect","visibleL","visibleT","visibleR","visibleB","syncNextPopupPosition","nextPopupY","nextOffsetY","nextPopupBottom","nextPopupX","nextOffsetX","nextPopupRight","_win$getComputedStyle","popupPosition","originLeft","originTop","originRight","originBottom","originOverflow","placeholderElement","_rect$x","_rect$y","_doc$documentElement","visibleRegion","scrollRegion","VISIBLE","VISIBLE_FIRST","isVisibleFirst","scrollRegionArea","visibleRegionArea","adjustCheckVisibleArea","popupMirrorRect","_scaleX","_scaleY","_getNumberOffset","_getNumberOffset2","popupOffsetX","popupOffsetY","_getNumberOffset3","_getNumberOffset4","targetOffsetX","targetOffsetY","popupPoint","targetAlignPoint","popupAlignPoint","nextAlignInfo","originIntersectionVisibleArea","originIntersectionRecommendArea","targetAlignPointTL","popupAlignPointTL","targetAlignPointBR","popupAlignPointBR","supportAdjust","needAdjustY","sameTB","bt","tmpNextOffsetY","newVisibleArea","newVisibleRecommendArea","tb","_tmpNextOffsetY","_newVisibleArea","_newVisibleRecommendArea","needAdjustX","sameLR","rl","tmpNextOffsetX","_newVisibleArea2","_newVisibleRecommendArea2","lr","_tmpNextOffsetX","_newVisibleArea3","_newVisibleRecommendArea3","numShiftX","numShiftY","popupLeft","popupRight","popupTop","popupBottom","targetLeft","targetRight","targetBottom","nextArrowX","nextArrowY","offsetX4Right","offsetY4Bottom","resetReady","useAlign","_useAlign2","alignInfo","_useAction","mergedShowAction","mergedHideAction","showActionSet","hideActionSet","useAction","_useAction2","showActions","hideActions","clickToShow","clickToHide","triggerAlign","notifyScroll","targetScrollList","popupScrollList","mergedList","scroller","alignedClassName","isAlignPoint","_builtinPlacements$pl","getAlignPopupClassName","_React$useState15","_React$useState16","setTargetWidth","_React$useState17","_React$useState18","setTargetHeight","syncTargetSize","wrapperAction","preEvent","_originChildProps$eve","_originChildProps$onC","onTriggerClose","_e$composedPath","targetShadowRoot","useWinClick","onPopupMouseLeave","hoverToShow","hoverToHide","_originChildProps$onM","_originChildProps$onC2","mergedChildrenProps","_mergedChildrenProps$","_len4","innerArrow","DEFAULT_BREAKPOINTS","ThemeContext","defaultPrefix","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","isReactComponent","isPureReactComponent","_status","_result","ReactCurrentDispatcher","ReactCurrentBatchConfig","IsSomeRendererActing","PureComponent","_calculateChangedBits","_currentValue","_currentValue2","_threadCount","createFactory","_payload","dynamicStyleMark","registerTheme","globalPrefixCls","variables","formatColor","fillColor","colorVal","primaryActiveColor","successColor","warningColor","errorColor","infoColor","cssList","useConfig","componentDisabled","componentSize","useThemeKey","MotionWrapper","needWrapMotionProviderRef","globalIconPrefixCls","globalTheme","globalHolderRender","PASSED_PROPS","getGlobalPrefixCls","getGlobalIconPrefixCls","ProviderChildren","customCsp","autoInsertSpaceInButton","alert","anchor","splitter","legacyLocale","customIconPrefixCls","segmented","calendar","carousel","cascader","typography","descriptions","drawer","steps","layout","mentions","slider","breadcrumb","badge","rate","SWITCH","transfer","card","tabs","timeline","timePicker","notification","colorPicker","datePicker","rangePicker","warningConfig","tour","floatButtonGroup","inputNumber","treeSelect","mergedPrefixCls","parentTheme","themeConfig","parentThemeConfig","inherit","mergedCssVar","prevTheme","nextTheme","useTheme","baseConfig","switch","memoedConfig","prevConfig","memoIconContextValue","PropWarning","ValidateMessagesContext","memoTheme","themeObj","parsedComponents","parsedToken","antLocale","isLegacyTheme","useSourceMap","cssMapping","sourceMapping","sourceURLs","sourceRoot","cssWithMappingToString","mediaQuery","alreadyImportedModules","caf","rafUUID","rafIds","wrapperRaf","callRef","leftTimes","realId","_getBBox","_element$getBoundingC","_width","_height","docElem","LoadingOutlinedSvg","aa","ba","ca","ea","fa","ha","ia","ja","ka","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","sanitizeURL","removeEmptyString","oa","pa","qa","ma","na","setAttributeNS","xlinkHref","ra","sa","wa","xa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ma","Ka","La","Na","Oa","Pa","prepareStackTrace","Qa","_render","Ra","Sa","Ta","Va","_valueTracker","stopTracking","Ua","Wa","Xa","Ya","_wrapperState","initialChecked","Za","controlled","$a","ab","bb","eb","db","fb","defaultSelected","gb","hb","ib","jb","kb","mathml","lb","mb","nb","ob","namespaceURI","MSApp","execUnsafeLocalFunction","pb","nodeValue","qb","gridArea","lineClamp","rb","sb","setProperty","ub","menuitem","br","embed","hr","keygen","track","wbr","vb","wb","xb","srcElement","correspondingUseElement","yb","zb","Ab","Bb","Cb","stateNode","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","Ob","Pb","Qb","Rb","onError","Sb","Tb","Ub","Vb","Wb","Xb","Zb","alternate","flags","$b","memoizedState","dehydrated","ac","dc","ec","fc","gc","hc","ic","jc","kc","lc","mc","oc","qc","rc","blockedOn","domEventName","eventSystemFlags","targetContainers","sc","pointerId","tc","vc","wc","lanePriority","hydrate","containerInfo","xc","yc","zc","Ac","Bc","Cc","Dc","Ec","animationiteration","animationstart","Fc","Gc","Hc","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Pc","Qc","Rc","Uc","pendingLanes","expiredLanes","suspendedLanes","pingedLanes","Vc","entangledLanes","entanglements","Wc","Xc","Yc","Zc","$c","eventTimes","clz32","bd","cd","LN2","dd","ed","fd","gd","hd","uc","jd","kd","ld","nd","od","pd","qd","rd","_reactName","_targetInst","isDefaultPrevented","defaultPrevented","returnValue","isPropagationStopped","cancelBubble","isPersistent","wd","xd","yd","sd","eventPhase","isTrusted","td","ud","view","vd","Ad","screenX","screenY","getModifierState","zd","fromElement","toElement","movementX","movementY","Bd","Dd","Fd","Hd","elapsedTime","pseudoElement","Id","Jd","Ld","Md","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Apps","Scroll","MozPrintableKey","Nd","Od","Alt","Control","Meta","Shift","Pd","Qd","Rd","Td","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Vd","targetTouches","changedTouches","Xd","Yd","wheelDeltaX","wheelDeltaY","wheelDelta","deltaZ","deltaMode","Zd","$d","ae","be","documentMode","ce","de","ee","fe","ge","he","le","datetime","password","tel","week","ne","pe","qe","se","te","ve","we","xe","ze","oninput","Ae","detachEvent","Be","Ce","attachEvent","De","Ee","Fe","He","Ie","Je","Ke","Le","Me","Ne","contentWindow","Oe","Pe","Qe","Re","Se","Te","Ue","anchorNode","anchorOffset","focusNode","focusOffset","Ve","We","Xe","Ye","Ze","Yb","$e","af","bf","cf","df","Nb","ef","gf","hf","je","ke","jf","kf","mf","nf","of","pf","qf","sf","tf","vf","wf","xf","yf","zf","Af","Bf","Cf","Df","Ef","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Ff","Gf","Hf","If","getChildContext","Jf","__reactInternalMemoizedMergedChildContext","Kf","Lf","Mf","Nf","Of","Pf","Qf","Rf","Sf","Tf","Uf","Vf","Wf","Xf","Yf","Zf","$f","ag","cg","dg","eg","gg","hg","ig","jg","kg","mg","ng","og","pg","qg","rg","sg","childLanes","tg","firstContext","lanes","ug","vg","observedBits","responders","wg","xg","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","shared","effects","yg","zg","eventTime","lane","Ag","Bg","Cg","Dg","Eg","Fg","Gg","Kg","_reactInternals","Hg","Ig","Jg","Lg","shouldComponentUpdate","Mg","Ng","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","Og","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","Pg","Qg","_stringRef","Rg","Sg","lastEffect","nextEffect","firstEffect","Tg","Ug","elementType","Vg","Wg","Xg","Yg","Zg","$g","ah","bh","dh","eh","fh","gh","ih","memoizedProps","revealOrder","jh","kh","lh","mh","nh","oh","pendingProps","qh","rh","sh","uh","_workInProgressVersionPrimary","vh","wh","xh","yh","Ah","Bh","Ch","Dh","Eh","Fh","Gh","Hh","baseQueue","Ih","Jh","Kh","lastRenderedReducer","eagerReducer","eagerState","lastRenderedState","Lh","Mh","_getVersion","_source","mutableReadLanes","Nh","getSnapshot","setSnapshot","Oh","Ph","Qh","Rh","Sh","Th","Uh","Vh","Wh","Xh","Yh","Zh","$h","ai","bi","ci","di","readContext","useDeferredValue","useMutableSource","useOpaqueIdentifier","unstable_isNewReconciler","uf","ei","fi","gi","ii","ji","ki","li","baseLanes","ni","oi","pi","UNSAFE_componentWillUpdate","componentWillUpdate","qi","ri","pendingContext","Bi","Ci","Di","Ei","si","retryLane","ti","fallback","unstable_avoidThisFallback","unstable_expectedLoadTime","vi","wi","xi","isBackwards","rendering","renderingStartTime","tailMode","Ai","Fi","Gi","wasMultiple","onclick","createElementNS","Hi","Ii","Ji","Ki","Li","Mi","Ni","Oi","Pi","Qi","Ri","Si","Ti","componentStack","Ui","WeakSet","Vi","Wi","Xi","__reactInternalSnapshotBeforeUpdate","Yi","Zi","$i","aj","bj","onCommitFiberUnmount","cj","dj","ej","fj","gj","hj","_reactRootContainer","ij","jj","kj","lj","mj","nj","oj","pj","qj","rj","sj","tj","uj","vj","wj","ck","xj","yj","zj","Aj","Bj","Cj","Dj","Ej","Fj","Gj","Hj","Ij","Jj","Sc","Kj","Lj","Mj","callbackNode","expirationTimes","callbackPriority","Tc","Nj","Oj","Pj","Qj","Rj","Sj","Tj","finishedWork","finishedLanes","Uj","timeoutHandle","Wj","Xj","pingCache","Yj","Zj","va","ak","bk","dk","focusedElem","selectionRange","ek","onCommitFiberRoot","fk","gk","ik","pendingChildren","jk","mutableSourceEagerHydrationData","lk","mk","nk","qk","hydrationOptions","mutableSources","_internalRoot","rk","tk","sk","uk","kk","hk","unstable_observedBits","Vj","vk","Events","wk","findFiberByHostInstance","bundleType","rendererPackageName","xk","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setSuspenseHandler","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","yk","supportsFiber","inject","unstable_createPortal","unstable_renderSubtreeIntoContainer","addEventListenerWrap","eventType","InfoCircleFilledSvg"],"mappings":"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,KACrC4uC,EAAOpuC,KAAKu+G,EAAKx1F,UAAUvpB,EAAGA,EAAI,IAClCA,GAAK,IAGL4uC,EAAOpuC,KAAKy8F,GACZj9F,GAAK,EAEb,CACA,OAAO4uC,CACX,CAAC,IACKqlP,EAAe,WACjB,SAAAA,IACI7mR,KAAK8mR,WAAa,GAClB9mR,KAAK+mR,WAAa,IAAI9/Q,GAC1B,CAAC,IAAAmjD,EAAAy8N,EAAA7zR,UAsBA,OAtBAo3D,EACD3zD,IAAA,SAAI8sK,GACA,GAAIA,EAAKzwK,OAAS,EACd,OAAOkN,KAAK+mR,WAAWtwR,IAAI8sK,GAG3B,IAAMhiH,EAAOgiH,EAAKzgJ,WAAW,GAC7B,OAAO9iB,KAAK8mR,WAAWvlO,EAE/B,EAAC6I,EACDviD,IAAA,SAAI07J,EAAMl1D,GACN,GAAIk1D,EAAKzwK,OAAS,EACdkN,KAAK+mR,WAAWl/Q,IAAI07J,EAAMl1D,OAEzB,CACD,IAAM9sD,EAAOgiH,EAAKzgJ,WAAW,GAC7B9iB,KAAK8mR,WAAWvlO,GAAQ8sD,CAC5B,CACJ,EAACjkD,EACD5xC,MAAA,WACIxY,KAAK8mR,WAAa,GAClB9mR,KAAK+mR,WAAWvuQ,OACpB,EAACquQ,CAAA,CA1BgB,GA6Bfj1Q,EAAM,CACR,iBAAkB,CAAC,KACnBo1Q,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,aAAc,CAAC,KACf,cAAe,CAAC,KAChBC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,QAAO,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,KACjCC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,KAC/B,SAAU,CAAC,KACXC,QAAO,CACH,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAC9C,oBAAqB,CAAC,KACtB,QAAS,CAAC,IAAK,IAAK,KACpB,SAAU,CAAC,KACX,WAAY,CAAC,KACbC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MAEJC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MAEJC,OAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAC/CC,QAAO,CACH,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,SAAU,CAAC,KACXC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MAEJC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MAEJC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MAEJC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,QAAO,CACH,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CAAC,IAAK,IAAK,IAAK,KACrBC,QAAO,CACH,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MAEJC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MAEJC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,YAAa,CAAC,KACdC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,QAAS,CAAC,IAAK,IAAK,KACpBC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,cAAe,CAAC,KAChBC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,aAAc,CAAC,KACfC,QAAO,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,KACjCC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MAEJC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,MAEJC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MAEJC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MAEJC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,UAAW,CAAC,KACZ,WAAY,CAAC,KACb,QAAS,CAAC,KACVC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CAAC,IAAK,IAAK,IAAK,MACrBC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,QAAS,CAAC,KACVC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,IACA,KACA,MAEJC,MAAK,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnDC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MAEJC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,UAAW,CAAC,IAAK,IAAK,KACtB,eAAgB,CAAC,KACjBC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MAEJ,QAAS,CAAC,KACVC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,iBAAkB,CAAC,IAAK,KACxBC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,OAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAC/CC,OAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,KAChCC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,KAAI,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnCC,OAAM,CAAC,KACP,cAAe,CAAC,IAAK,IAAK,KAC1BC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,MAEJ,SAAU,CAAC,KACX,UAAW,CAAC,KACZC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,KAAI,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnCC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,MAEJC,QAAO,CACH,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MAEJC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACpCC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,MAEJC,OAAM,CAAC,IAAK,IAAK,IAAK,IAAK,KAC3BC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MAEJC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACxDC,MAAK,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,KAC/BC,OAAM,CAAC,IAAK,IAAK,KACjBC,KAAI,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,KAC9BC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,MAEJC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MAEJC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,KAAI,CAAC,IAAK,KACVC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACzC,WAAY,CAAC,KACb,WAAY,CAAC,KACbC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,UAAW,CAAC,KACZC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,IACA,MAEJ,UAAW,CAAC,KACZ,QAAS,CAAC,KACV,QAAS,CAAC,IAAK,KACfC,QAAO,CACH,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,KAAI,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACvDC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACxDC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KAEJC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,MAEJC,MAAK,CAAC,IAAK,IAAK,IAAK,IAAK,KAC1BC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,UAAW,CAAC,KACZ,UAAW,CAAC,IAAK,KACjB,QAAS,CAAC,IAAK,IAAK,IAAK,IAAK,KAC9B,QAAS,CAAC,IAAK,KACfC,MAAK,CAAC,IAAK,IAAK,IAAK,KACrB,UAAW,CAAC,KACZ,iBAAkB,CAAC,KACnBC,KAAI,CAAC,IAAK,KACVC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAC9C,YAAa,CAAC,KACdC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,MAEJC,GAAI,CAAC,KACLC,QAAO,CACH,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,QAAO,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAC1D,WAAY,CAAC,IAAK,KAClBC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,MAEJ,UAAW,CAAC,IAAK,KACjBC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,UAAW,CAAC,IAAK,KACjBC,MAAK,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACxDC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,OAAM,CAAC,IAAK,IAAK,IAAK,IAAK,KAC3B,WAAY,CAAC,KACbC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,OAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAC/CC,KAAI,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnC,UAAW,CAAC,IAAK,IAAK,KACtB,QAAS,CAAC,KACV,WAAY,CAAC,KACbC,QAAO,CAAC,IAAK,IAAK,IAAK,KACvBC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MAEJC,OAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAC1CC,OAAM,CAAC,IAAK,IAAK,IAAK,IAAK,KAC3BC,KAAI,CAAC,IAAK,IAAK,KACf,UAAW,CAAC,KACZC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MAEJC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,YAAa,CAAC,KACdC,KAAI,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACvDC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MAEJ,cAAe,CAAC,KAChBC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,MAEJC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,MAEJC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,UAAW,CAAC,KACZ,QAAS,CAAC,KACVC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,iBAAkB,CAAC,KACnBC,OAAM,CAAC,IAAK,IAAK,KACjB,cAAe,CAAC,IAAK,IAAK,IAAK,KAC/BC,KAAI,CAAC,KACLC,QAAO,CACH,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,UAAW,CAAC,KACZC,MAAK,CAAC,IAAK,IAAK,IAAK,KACrB,YAAa,CAAC,KACd,WAAY,CAAC,KACbC,QAAO,CACH,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,QAAS,CAAC,KACVC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MAEJ,cAAe,CAAC,KAChB,SAAU,CAAC,KACX,UAAW,CAAC,KACZ,UAAW,CAAC,KACZC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,QAAO,CACH,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAC7DC,MAAK,CAAC,KACNC,OAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACrCC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,QAAS,CAAC,IAAK,KACf,SAAU,CAAC,KACX,UAAW,CAAC,KACZC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MAEJC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MAEJC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACpC,WAAY,CAAC,IAAK,IAAK,IAAK,KAC5BC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,KAC/BC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,MAEJ,cAAe,CAAC,IAAK,KACrB,SAAU,CAAC,IAAK,IAAK,KACrB,SAAU,CAAC,KACXC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MAEJC,QAAO,CACH,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,QAAO,CACH,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,YAAa,CAAC,KACdC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnDC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,YAAa,CAAC,KACd,QAAS,CAAC,KACV,SAAU,CAAC,KACX,QAAS,CAAC,KACVC,KAAI,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAC5D,QAAS,CAAC,KACVC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MAEJC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KAEJ,QAAS,CAAC,KACVC,OAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,KAChC,SAAU,CAAC,KACX,aAAc,CAAC,KACf,SAAU,CAAC,KACX,YAAa,CAAC,IAAK,KACnB,UAAW,CAAC,KACZC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MAEJC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,YAAa,CAAC,KACdC,KAAI,CAAC,IAAK,IAAK,IAAK,IAAK,MACzBC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CAAC,IAAK,IAAK,KAChBC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,QAAS,CAAC,IAAK,KACfC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,WAAY,CAAC,KACbC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MAEJC,MAAK,CAAC,IAAK,IAAK,IAAK,KACrB,SAAU,CAAC,IAAK,IAAK,IAAK,KAC1B,cAAe,CAAC,KAChB,UAAW,CAAC,KACZC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,OAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACrCC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,YAAa,CAAC,KACdC,KAAI,CAAC,IAAK,IAAK,IAAK,KACpBC,KAAI,CAAC,IAAK,IAAK,IAAK,IAAK,KACzBC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,WAAY,CAAC,KACb,QAAS,CAAC,KACVC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,QAAO,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAC3CC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAC9CC,KAAI,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,KAC9BC,OAAM,CAAC,IAAK,IAAK,IAAK,IAAK,KAC3B,SAAU,CAAC,KACXC,MAAK,CAAC,IAAK,IAAK,IAAK,IAAK,MAC1BC,MAAK,CAAC,IAAK,KACXC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,OAAM,CAAC,IAAK,IAAK,IAAK,IAAK,KAC3BC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MAEJC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnDC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CAAC,IAAK,IAAK,IAAK,KACrBC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,MAEJC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,MAEJC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MAEJC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MAEJC,MAAK,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACxDC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,iBAAkB,CAAC,KACnBC,MAAK,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACpCC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,YAAa,CAAC,IAAK,KACnBC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,WAAY,CAAC,KACbC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,GAAI,CAAC,KACL,WAAY,CAAC,IAAK,IAAK,KACvBC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,aAAc,CAAC,IAAK,KACpBC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,OAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACrCC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MAEJC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,UAAW,CAAC,IAAK,KACjBC,QAAO,CACH,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,aAAc,CAAC,KACf,YAAa,CAAC,IAAK,KACnBC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,UAAW,CAAC,KACZC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,UAAW,CAAC,KACZC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,YAAa,CAAC,IAAK,IAAK,KACxBC,MAAK,CAAC,IAAK,IAAK,IAAK,KACrBC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,IAAG,CACC,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MAEJC,KAAI,CAAC,IAAK,IAAK,KACf,cAAe,CAAC,KAChBC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,QAAO,CACH,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MAEJC,KAAI,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACvD,YAAa,CAAC,KACdC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAC7DC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CAAC,IAAK,KACXC,MAAK,CAAC,KACNC,KAAI,CAAC,KACLC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,YAAa,CAAC,KACd,QAAS,CAAC,KACV,WAAY,CAAC,KACbC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KAEJC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MAEJ,YAAa,CAAC,KACdC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,QAAS,CAAC,IAAK,IAAK,IAAK,KACzBC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACzCC,OAAM,CAAC,IAAK,IAAK,KACjB,SAAU,CAAC,KACXC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,OAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACzDC,KAAI,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnCC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MAEJC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MAEJ,SAAU,CAAC,KACXC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,SAAU,CAAC,KACX,YAAa,CAAC,KACdC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAC7D,UAAW,CAAC,KACZ,UAAW,CAAC,IAAK,KACjB,UAAW,CAAC,KACZC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,aAAc,CAAC,KACfC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,aAAc,CAAC,IAAK,KACpBC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,cAAe,CAAC,KAChBC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,YAAa,CAAC,KACdC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,MAEJC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,SAAU,CAAC,KACXC,MAAK,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnDC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,OAAM,CAAC,IAAK,IAAK,IAAK,IAAK,KAC3BC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACpCC,MAAK,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACxDC,OAAM,CAAC,IAAK,IAAK,IAAK,IAAK,KAC3BC,KAAI,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAC7CC,MAAK,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnDC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,aAAc,CAAC,IAAK,KACpBC,OAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACzD,aAAc,CAAC,KACfC,OAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,KAChC,UAAW,CAAC,KACZ,SAAU,CAAC,KACX,YAAa,CAAC,KACdC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MAEJC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,OAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAC1CC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,YAAa,CAAC,KACdC,IAAG,CACC,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,MAEJC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CAAC,IAAK,IAAK,KAChBC,QAAO,CAAC,IAAK,IAAK,KAClBC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,QAAO,CACH,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MAEJC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,YAAa,CAAC,KACdC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MAEJC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,MAEJC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,KAAI,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnCC,KAAI,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAC7CC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,MAEJ,SAAU,CAAC,KACXC,OAAM,CAAC,IAAK,IAAK,IAAK,IAAK,KAC3BC,KAAI,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,MAC9CC,MAAK,CAAC,IAAK,IAAK,KAChB,YAAa,CAAC,KACd,SAAU,CAAC,IAAK,KAChBC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,UAAW,CAAC,KACZC,MAAK,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACzC,YAAa,CAAC,KACdC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MAEJC,MAAK,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACpC,YAAa,CAAC,IAAK,KACnBC,OAAM,CAAC,IAAK,IAAK,IAAK,IAAK,KAC3BC,KAAI,CAAC,IAAK,KACVC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,YAAa,CAAC,KACdC,KAAI,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACvDC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,QAAS,CAAC,KACVC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,YAAa,CAAC,KACd,UAAW,CAAC,IAAK,KACjB,YAAa,CAAC,KACdC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,SAAU,CAAC,KACXC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CAAC,IAAK,KACXC,MAAK,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACzCC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MAEJC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MAEJC,MAAK,CAAC,IAAK,IAAK,IAAK,IAAK,KAC1B,UAAW,CAAC,KACZC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACxDC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,UAAW,CAAC,KACZC,OAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACzDC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,SAAU,CAAC,KACXC,SAAQ,CAAC,IAAK,IAAK,IAAK,KACxBC,MAAK,CAAC,IAAK,KACXC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,QAAO,CACH,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,UAAW,CAAC,IAAK,IAAK,KACtB,YAAa,CAAC,IAAK,KACnBC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MAEJC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MAEJ,UAAW,CAAC,KACZC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,QAAO,CACH,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,QAAO,CACH,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MAEJ,UAAW,CAAC,KACZC,MAAK,CAAC,IAAK,IAAK,IAAK,KACrBC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MAEJC,QAAO,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAC3CC,QAAO,CACH,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MAEJC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,OAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACzD,kBAAmB,CAAC,KACpBC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MAEJC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,MAEJC,QAAO,CAAC,IAAK,IAAK,IAAK,IAAK,KAC5B,WAAY,CAAC,KACbC,OAAM,CAAC,IAAK,KACZC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,MAEJ,QAAS,CAAC,KACV,OAAQ,CAAC,KACT,cAAe,CAAC,KAChBC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,QAAO,CACH,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,UAAW,CAAC,KACZC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,KAAI,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAC5DC,MAAK,CAAC,IAAK,IAAK,IAAK,KACrB,gBAAiB,CAAC,KAClB,YAAa,CAAC,IAAK,IAAK,KACxBC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,MAEJ,UAAW,CAAC,IAAK,IAAK,KACtBC,MAAK,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACzC,UAAW,CAAC,KACZ,QAAS,CAAC,KACVC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MAEJ,cAAe,CAAC,KAChBC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KAEJC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,QAAO,CACH,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MAEJC,QAAO,CAAC,IAAK,IAAK,KAClBC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACpCC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,OAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACpDC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,iBAAkB,CAAC,KACnB,YAAa,CAAC,KACd,aAAc,CAAC,IAAK,KACpB,UAAW,CAAC,KACZC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,YAAa,CAAC,KACd,QAAS,CAAC,KACVC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACzCC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MAEJC,QAAO,CACH,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,QAAO,CACH,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MAEJ,cAAe,CAAC,IAAK,IAAK,KAC1BC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,KAAI,CAAC,IAAK,IAAK,IAAK,IAAK,KACzBC,OAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAC1CC,MAAK,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,KAC/BC,QAAO,CACH,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,KAAI,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAC5DC,MAAK,CAAC,IAAK,IAAK,IAAK,KACrB,SAAU,CAAC,KACX,SAAU,CAAC,KACXC,IAAK,CAAC,IAAK,KACXC,OAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAC1C,YAAa,CAAC,KACdC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,QAAS,CAAC,KACVC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,MAEJC,QAAO,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MACrDC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAC9C,SAAU,CAAC,KACXC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CAAC,IAAK,IAAK,IAAK,IAAK,KAC1B,SAAU,CAAC,KACXC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,KAAI,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAC5DC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,UAAW,CAAC,KACZC,MAAK,CAAC,IAAK,IAAK,KAChBC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,YAAa,CAAC,IAAK,IAAK,IAAK,IAAK,KAClCC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,QAAO,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAChDC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,YAAa,CAAC,IAAK,KACnB,cAAe,CAAC,KAChBC,QAAO,CACH,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,OAAM,CAAC,KACPC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,KAAI,CAAC,IAAK,IAAK,IAAK,IAAK,KACzBC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAC9C,aAAc,CAAC,IAAK,IAAK,KACzBC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MAEJC,OAAM,CAAC,IAAK,IAAK,IAAK,IAAK,MAC3B,cAAe,CAAC,IAAK,IAAK,KAC1BC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CAAC,IAAK,IAAK,IAAK,IAAK,KAC1BC,KAAI,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACxCC,MAAK,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAC9CC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,QAAS,CAAC,KACVC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,MAEJC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MAEJ,UAAW,CAAC,IAAK,KACjBC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,WAAY,CAAC,KACbC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,QAAS,CAAC,KACVC,MAAK,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnDC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MAEJC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CAAC,IAAK,KACXC,MAAK,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAC9CC,SAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACjD,UAAW,CAAC,KACZ,UAAW,CAAC,KACZC,MAAK,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACpCC,MAAK,CAAC,IAAK,KACXC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,UAAW,CAAC,KACZC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,MAEJC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,gBAAiB,CAAC,IAAK,KACvBC,KAAI,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACxC,UAAW,CAAC,IAAK,KACjB,UAAW,CAAC,KACZ,YAAa,CAAC,IAAK,IAAK,KACxBC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,SAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,KAC7BC,KAAI,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAC5DC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,YAAa,CAAC,KACd,YAAa,CAAC,KACd,UAAW,CAAC,IAAK,KACjB,QAAS,CAAC,KACVC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MAEJC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,WAAY,CAAC,KACb,SAAU,CAAC,IAAK,KAChB,QAAS,CAAC,KACVC,KAAI,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAC7CC,MAAK,CAAC,KACNC,MAAK,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAC7D,SAAU,CAAC,IAAK,KAChBC,MAAK,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACxDC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,WAAY,CAAC,KACb,UAAW,CAAC,KACZC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAC9CC,QAAO,CACH,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,WAAY,CAAC,KACbC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,SAAU,CAAC,KACXC,QAAO,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAChD,aAAc,CAAC,IAAK,IAAK,KACzB,SAAU,CAAC,KACXC,OAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACzDC,OAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACzDC,MAAK,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MACzC,YAAa,CAAC,IAAK,IAAK,IAAK,KAC7BC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,UAAW,CAAC,KACZ,UAAW,CAAC,KACZ,QAAS,CAAC,IAAK,KACfC,OAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAC1CC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,OAAM,CAAC,IAAK,IAAK,IAAK,IAAK,KAC3BC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,OAAM,CAAC,IAAK,IAAK,IAAK,IAAK,KAC3B,WAAY,CAAC,IAAK,IAAK,KACvBC,OAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACzD,UAAW,CAAC,KACZ,UAAW,CAAC,KACZC,KAAI,CAAC,IAAK,IAAK,IAAK,KACpBC,OAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAC/CC,OAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACzDC,MAAK,CAAC,IAAK,KACXC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,QAAO,CACH,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MAEJC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,SAAU,CAAC,KACXC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MAEJ,YAAa,CAAC,IAAK,KACnB,SAAU,CAAC,KACXC,MAAK,CAAC,IAAK,IAAK,IAAK,KACrB,YAAa,CAAC,KACdC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,QAAO,CACH,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,OAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACzD,YAAa,CAAC,IAAK,IAAK,IAAK,KAC7BC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,OAAM,CAAC,IAAK,IAAK,KACjB,UAAW,CAAC,KACZC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,UAAW,CAAC,IAAK,KACjBC,MAAK,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACxDC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MAEJ,UAAW,CAAC,KACZ,UAAW,CAAC,KACZC,MAAK,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAC7D,UAAW,CAAC,KACZC,OAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACzDC,KAAI,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAC7CC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,YAAa,CAAC,KACdC,MAAK,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,UAAW,CAAC,IAAK,KACjBC,OAAM,CAAC,KACPC,KAAI,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACvD,QAAS,CAAC,IAAK,KACf,SAAU,CAAC,KACX,UAAW,CAAC,IAAK,KACjBC,OAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACzDC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MAEJC,OAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACrCC,KAAI,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACvDC,KAAI,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACxCC,QAAO,CACH,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MAEJ,cAAe,CAAC,IAAK,KACrBC,MAAK,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,QAAS,CAAC,KACV,gBAAiB,CAAC,IAAK,KACvB,SAAU,CAAC,KACX,WAAY,CAAC,KACb,WAAY,CAAC,KACb,aAAc,CAAC,KACfC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MAEJC,KAAI,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MACnC,YAAa,CAAC,IAAK,KACnB,SAAU,CAAC,KACXC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MAEJC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACzC,WAAY,CAAC,KACbC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MAEJC,OAAM,CAAC,KACP,YAAa,CAAC,IAAK,KACnB,eAAgB,CAAC,KACjB,UAAW,CAAC,KACZC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MAEJ,WAAY,CAAC,KACb,SAAU,CAAC,IAAK,KAChBC,KAAI,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,KAC9BC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,WAAY,CAAC,KACbC,OAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACzD,UAAW,CAAC,KACZC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CAAC,IAAK,IAAK,IAAK,KACrB,UAAW,CAAC,IAAK,KACjBC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,WAAY,CAAC,KACb,SAAU,CAAC,KACX,YAAa,CAAC,KACd,WAAY,CAAC,KACb,UAAW,CAAC,KACZC,KAAI,CAAC,IAAK,IAAK,IAAK,KACpB,YAAa,CAAC,IAAK,KACnB,mBAAoB,CAAC,IAAK,IAAK,IAAK,KACpC,QAAS,CAAC,KACV,kBAAmB,CAAC,KACpBC,SAAQ,CACJ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,OAAM,CAAC,IAAK,KACZC,OAAM,CAAC,KACPC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,QAAS,CAAC,KACV,iBAAkB,CAAC,KACnBC,KAAI,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnC,UAAW,CAAC,IAAK,KACjB,SAAU,CAAC,IAAK,IAAK,KACrBC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MAEJC,MAAK,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACxD,SAAU,CAAC,KACXC,OAAM,CAAC,IAAK,IAAK,IAAK,KACtB,cAAe,CAAC,KAChB,UAAW,CAAC,KACZC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,YAAa,CAAC,KACd,QAAS,CAAC,KACV,UAAW,CAAC,IAAK,KACjBC,KAAI,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnC,SAAU,CAAC,KACX,UAAW,CAAC,KACZC,MAAK,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACzC,YAAa,CAAC,KACdC,MAAK,CAAC,IAAK,IAAK,IAAK,KACrB,WAAY,CAAC,KACbC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MAEJ,YAAa,CAAC,KACdC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,QAAS,CAAC,IAAK,KACf,UAAW,CAAC,KACZ,YAAa,CAAC,KACd,QAAS,CAAC,IAAK,KACf,UAAW,CAAC,IAAK,KACjB,SAAU,CAAC,KACX,OAAQ,CAAC,KACT,WAAY,CAAC,KACbC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CAAC,IAAK,IAAK,IAAK,KACrB,QAAS,CAAC,KACVC,MAAK,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACxD,SAAU,CAAC,KACX,SAAU,CAAC,KACX,QAAS,CAAC,KACVC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,QAAS,CAAC,KACV,YAAa,CAAC,IAAK,KACnBC,OAAM,CAAC,KACP,SAAU,CAAC,KACX,WAAY,CAAC,KACbC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,YAAa,CAAC,KACd,QAAS,CAAC,KACV,eAAgB,CAAC,KACjBC,OAAM,CAAC,IAAK,IAAK,KACjB,SAAU,CAAC,KACXC,MAAK,CAAC,IAAK,KACX,cAAe,CAAC,KAChB,QAAS,CAAC,KACV,QAAS,CAAC,KACV,MAAO,CAAC,KACRC,MAAK,CAAC,IAAK,IAAK,KAChB,SAAU,CAAC,KACXC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,WAAY,CAAC,KACb,OAAQ,CAAC,IAAK,KACd,UAAW,CAAC,KACZ,WAAY,CAAC,KACb,UAAW,CAAC,KACZ,eAAgB,CAAC,IAAK,KACtBC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,SAAU,CAAC,KACX,cAAe,CAAC,IAAK,KACrBC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MAEJC,OAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,KAChCC,MAAK,CAAC,IAAK,KACX,UAAW,CAAC,KACZ,QAAS,CAAC,KACV,WAAY,CAAC,KACbC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,UAAW,CAAC,KACZ,SAAU,CAAC,KACX,QAAS,CAAC,KACV,aAAc,CAAC,KACf,QAAS,CAAC,KACV,aAAc,CAAC,KACf,eAAgB,CAAC,KACjBC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,SAAU,CAAC,KACXC,MAAK,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,KAC/B,WAAY,CAAC,KACbC,OAAM,CAAC,IAAK,KACZ,SAAU,CAAC,KACX,SAAU,CAAC,KACX,WAAY,CAAC,KACbC,MAAK,CAAC,IAAK,IAAK,KAChB,YAAa,CAAC,KACd,YAAa,CAAC,KACd,mBAAoB,CAAC,KACrBC,MAAK,CAAC,KACNC,KAAI,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAClD,QAAS,CAAC,KACVC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,QAAS,CAAC,KACVC,IAAK,CAAC,KACNC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,YAAa,CAAC,KACdC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,SAAU,CAAC,KACX,kBAAmB,CAAC,KACpBC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,KAAI,CAAC,KACL,YAAa,CAAC,KACd,eAAgB,CAAC,KACjB,UAAW,CAAC,KACZ,gBAAiB,CAAC,KAClB,SAAU,CAAC,KACXC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,WAAY,CAAC,KACbC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MAEJC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MAEJ,OAAQ,CAAC,KACT,YAAa,CAAC,IAAK,KACnB,oBAAqB,CAAC,KACtB,aAAc,CAAC,KACfC,KAAI,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnCC,MAAK,CAAC,IAAK,KACXC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,iBAAkB,CAAC,KACnB,QAAS,CAAC,KACV,WAAY,CAAC,KACbC,MAAK,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAC9C,SAAU,CAAC,KACXC,MAAK,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACpC,UAAW,CAAC,KACZ,QAAS,CAAC,IAAK,KACf,UAAW,CAAC,IAAK,KACjBC,OAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACpD,UAAW,CAAC,IAAK,KACjB,cAAe,CAAC,IAAK,KACrBC,MAAK,CAAC,KACN,QAAS,CAAC,IAAK,KACfC,OAAM,CAAC,IAAK,IAAK,KACjB,QAAS,CAAC,KACV,WAAY,CAAC,KACb,mBAAoB,CAAC,KACrBC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,WAAY,CAAC,KACbC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,aAAc,CAAC,KACf,SAAU,CAAC,KACXC,MAAK,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,WAAY,CAAC,KACbC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MAEJ,WAAY,CAAC,KACb,SAAU,CAAC,KACX,UAAW,CAAC,KACZ,UAAW,CAAC,KACZC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MAEJ,QAAS,CAAC,KACV,WAAY,CAAC,KACb,eAAgB,CAAC,KACjBC,MAAK,CAAC,IAAK,IAAK,IAAK,IAAK,KAC1B,UAAW,CAAC,KACZC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MAEJC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MAEJ,iBAAkB,CAAC,IAAK,KACxBC,MAAK,CAAC,KACN,UAAW,CAAC,IAAK,IAAK,KACtBC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,OAAM,CAAC,IAAK,IAAK,IAAK,IAAK,KAC3B,SAAU,CAAC,KACXC,OAAM,CAAC,IAAK,IAAK,IAAK,KACtB,UAAW,CAAC,KACZ,SAAU,CAAC,KACXC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,MAEJC,OAAM,CAAC,KACPC,QAAO,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACrD,QAAS,CAAC,KACVC,QAAO,CAAC,IAAK,IAAK,IAAK,KACvBC,KAAI,CAAC,KACLC,KAAI,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACvDC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,iBAAkB,CAAC,KACnBC,MAAK,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,YAAa,CAAC,IAAK,KACnB,YAAa,CAAC,IAAK,KACnB,UAAW,CAAC,KACZ,YAAa,CAAC,KACdC,QAAO,CACH,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,qBAAsB,CAAC,KACvBC,MAAK,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACpC,SAAU,CAAC,KACX,iBAAkB,CAAC,KACnB,SAAU,CAAC,KACX,QAAS,CAAC,KACV,QAAS,CAAC,KACV,aAAc,CAAC,KACf,UAAW,CAAC,KACZC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MAEJC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CAAC,KACN,QAAS,CAAC,KACV,YAAa,CAAC,KACdC,KAAI,CAAC,IAAK,IAAK,IAAK,IAAK,KACzB,UAAW,CAAC,KACZC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MAEJ,cAAe,CAAC,IAAK,KACrB,eAAgB,CAAC,KACjBC,GAAI,CAAC,IAAK,KACVC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,OAAM,CAAC,KACP,QAAS,CAAC,KACVC,KAAI,CAAC,IAAK,KACV,UAAW,CAAC,KACZ,WAAY,CAAC,KACbC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MAEJ,UAAW,CAAC,KACZC,MAAK,CAAC,IAAK,IAAK,KAChB,SAAU,CAAC,KACX,aAAc,CAAC,KACfC,MAAK,CAAC,KACN,OAAQ,CAAC,KACTC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,oBAAqB,CAAC,KACtBC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,MAEJ,WAAY,CAAC,KACbC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,eAAgB,CAAC,KACjB,UAAW,CAAC,IAAK,IAAK,KACtB,UAAW,CAAC,KACZ,YAAa,CAAC,KACd,YAAa,CAAC,KACd,UAAW,CAAC,KACZ,aAAc,CAAC,KACf,UAAW,CAAC,KACZC,OAAM,CAAC,KACP,UAAW,CAAC,KACZC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,UAAW,CAAC,KACZ,WAAY,CAAC,KACb,kBAAmB,CAAC,KACpB,QAAS,CAAC,KACVC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,cAAe,CAAC,IAAK,IAAK,IAAK,IAAK,KACpC,QAAS,CAAC,IAAK,KA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,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,YAAa,CAAC,KACdC,MAAK,CAAC,IAAK,IAAK,IAAK,KACrB,SAAU,CAAC,KACX,SAAU,CAAC,KACX,YAAa,CAAC,IAAK,IAAK,KACxBC,KAAI,CAAC,KACL,SAAU,CAAC,KACX,aAAc,CAAC,KACf,YAAa,CAAC,KACd,UAAW,CAAC,KACZ,UAAW,CAAC,KACZC,KAAI,CAAC,IAAK,KACVC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MAEJC,KAAI,CAAC,IAAK,KACV,YAAa,CAAC,KACdC,KAAI,CAAC,IAAK,KACV,gBAAiB,CAAC,KAClBC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,YAAa,CAAC,KACd,QAAS,CAAC,KACVC,OAAM,CAAC,IAAK,IAAK,IAAK,IAAK,KAC3B,YAAa,CAAC,KACd,aAAc,CAAC,KACfC,KAAI,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAClDC,OAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACrC,aAAc,CAAC,KACfC,OAAM,CAAC,KACP,cAAe,CAAC,KAChB,UAAW,CAAC,KACZC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CAAC,IAAK,IAAK,KAChB,WAAY,CAAC,KACbC,MAAK,CAAC,KACNC,OAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACzD,UAAW,CAAC,IAAK,KACjBC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MAEJC,MAAK,CAAC,IAAK,IAAK,KAChB,WAAY,CAAC,KACbC,MAAK,CAAC,IAAK,IAAK,KAChBC,KAAI,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,KAC9BC,MAAK,CAAC,IAAK,IAAK,KAChBC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,iBAAkB,CAAC,IAAK,KACxB,aAAc,CAAC,KACfC,OAAM,CAAC,IAAK,IAAK,KACjBC,MAAK,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAC9C,YAAa,CAAC,KACdC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,KAAI,CAAC,IAAK,IAAK,IAAK,KACpB,SAAU,CAAC,KACX,QAAS,CAAC,IAAK,KACf,UAAW,CAAC,KACZC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,cAAe,CAAC,IAAK,IAAK,KAC1B,SAAU,CAAC,KACXC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,UAAW,CAAC,KACZC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACxD,UAAW,CAAC,KACZ,YAAa,CAAC,KACd,YAAa,CAAC,KACd,UAAW,CAAC,KACZC,MAAK,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAC7D,kBAAmB,CAAC,KACpB,SAAU,CAAC,KACXC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,KAAI,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAC5DC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MAEJC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,KAAI,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACvD,UAAW,CAAC,KACZC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,QAAS,CAAC,KACV,QAAS,CAAC,IAAK,KACfC,MAAK,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAC9C,SAAU,CAAC,IAAK,KAChBC,KAAI,CAAC,IAAK,IAAK,IAAK,KACpBC,OAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MACpDC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,YAAa,CAAC,IAAK,IAAK,KACxBC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACzC,UAAW,CAAC,KACZ,UAAW,CAAC,IAAK,KACjBC,MAAK,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAC7DC,QAAO,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAChDC,OAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,KAChCC,GAAI,CAAC,IAAK,IAAK,KACfC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,QAAS,CAAC,KACVC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,YAAa,CAAC,KACdC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MAEJ,SAAU,CAAC,KACXC,MAAK,CAAC,IAAK,IAAK,KAChB,YAAa,CAAC,KACd,UAAW,CAAC,KACZ,UAAW,CAAC,KACZ,UAAW,CAAC,KACZC,OAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,KAChC,WAAY,CAAC,KACb,UAAW,CAAC,KACZ,QAAS,CAAC,KACVC,MAAK,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,SAAU,CAAC,KACX,QAAS,CAAC,KACV,aAAc,CAAC,IAAK,KACpB,UAAW,CAAC,KACZC,MAAK,CAAC,IAAK,IAAK,MAChB,cAAe,CAAC,KAChBC,OAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,KAChC,UAAW,CAAC,IAAK,IAAK,KACtB,UAAW,CAAC,KACZC,OAAM,CAAC,IAAK,IAAK,IAAK,KACtB,WAAY,CAAC,KACb,SAAU,CAAC,IAAK,KAChBC,MAAK,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,UAAW,CAAC,KACZ,cAAe,CAAC,KAChB,YAAa,CAAC,KACd,gBAAiB,CAAC,KAClBC,KAAI,CACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,UAAW,CAAC,IAAK,KACjBC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,MAEJ,YAAa,CAAC,KACd,aAAc,CAAC,KACfC,OAAM,CAAC,IAAK,IAAK,KACjB,UAAW,CAAC,KACZC,OAAM,CAAC,IAAK,KACZC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,KAAI,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACxCC,OAAM,CAAC,IAAK,IAAK,IAAK,KACtBC,OAAM,CAAC,KACPC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,QAAO,CACH,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,QAAO,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,KACjCC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,KAAI,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnCC,OAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACrC,aAAc,CAAC,KACfC,OAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACrCC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,QAAO,CACH,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,YAAa,CAAC,KACdC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnDC,MAAK,CAAC,IAAK,IAAK,IAAK,IAAK,KAC1BC,OAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACrCC,OAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACpDC,OAAM,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,SAAU,CAAC,KACX,YAAa,CAAC,KACd,aAAc,CAAC,KACfC,SAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,KAClCC,MAAK,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACpCC,MAAK,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,KAC/BC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,MAAK,CACD,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MAEJ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CHC,IAAG,MACHC,IAAG,OACHC,IAAG,MACHC,IAAG,OACHC,IAAG,MACHC,IAAG,MACHC,IAAG,MACHC,IAAG,KACHC,IAAG,KACHC,IAAG,OACHC,IAAG,OACHC,IAAG,MACHC,IAAG,MACHC,IAAG,KACHC,IAAG,MACHC,IAAG,KACHC,IAAG,KACHC,IAAG,QACHC,IAAG,MACHC,IAAG,KACHC,IAAG,MACHC,IAAG,KACHC,IAAG,KACHC,IAAG,OACHC,IAAG,KACHC,IAAG,OACHC,IAAG,KACHC,IAAG,KACHC,IAAG,OACHC,IAAG,KACHC,IAAG,KACHC,IAAG,OACHC,IAAG,OACHC,IAAG,QACHC,IAAG,KACHC,IAAG,KACHC,IAAG,OACHC,IAAG,MACHC,IAAG,MACHC,IAAG,OACHC,IAAG,OACHC,IAAG,OACHC,IAAG,KACHC,IAAG,MACHC,IAAG,KACHC,IAAG,KACHC,IAAG,KACHC,IAAG,MACHC,IAAG,OACHC,IAAG,OACHC,IAAG,KACHC,IAAG,KACHC,IAAG,QACHC,IAAG,MACHC,IAAG,MACHC,IAAG,OACHC,IAAG,MACHC,IAAG,OACHC,IAAG,QACHC,IAAG,KACHC,IAAG,MACHC,IAAG,KACHC,IAAG,QACHC,IAAG,MACHC,IAAG,OACHC,IAAG,QACHC,IAAG,KACHC,IAAG,OACHC,IAAG,MACHC,IAAG,MACHC,IAAG,KACHC,IAAG,KACHC,IAAG,KACHC,IAAG,QACHC,IAAG,MACHC,IAAG,KACHC,IAAG,MACHC,IAAG,MACHC,IAAG,QACHC,IAAG,OACHC,IAAG,MACHC,IAAG,MACHC,IAAG,MACHC,IAAG,QACHC,IAAG,MACHC,IAAG,OACHC,IAAG,QACHC,IAAG,KACHC,IAAG,MACHC,IAAG,MACHC,IAAG,MACHC,IAAG,MACHC,IAAG,MACHC,IAAG,OACHC,IAAG,MACHC,IAAG,KACHC,IAAG,OACHC,IAAG,MACHC,IAAG,KACHtQ,IAAG,MACHuQ,IAAG,MACHC,IAAG,KACHC,IAAG,MACHC,IAAG,OACHC,IAAG,KACHC,IAAG,KACHC,IAAG,OACHC,IAAG,OACHC,IAAG,MACHC,IAAG,OACHC,IAAG,MACHC,IAAG,MACHC,IAAG,OACHC,IAAG,OACHC,IAAG,OACHC,IAAG,OACHC,IAAG,MACHC,IAAG,OACHC,IAAG,KACHvR,IAAG,OACHwR,IAAG,OACHC,IAAG,OACHC,IAAG,MACHC,IAAG,MACHC,IAAG,MACHC,IAAG,MACHC,IAAG,MACHC,IAAG,KACHC,IAAG,MACHC,IAAG,OACHC,IAAG,QACHC,IAAG,KACHC,IAAG,OACHC,IAAG,MACHC,IAAG,MACHC,IAAG,KACHC,IAAG,OACHC,IAAG,OACHC,IAAG,MACHC,IAAG,OACHC,IAAG,KACHC,IAAG,MACHC,IAAG,OACHC,IAAG,KACHC,IAAG,MACHC,IAAG,OACHC,IAAG,MACHC,IAAG,KACHC,IAAG,MACHC,IAAG,MACHC,IAAG,KACHC,IAAG,OACHC,IAAG,KACHC,IAAG,OACHC,IAAG,OACHC,IAAG,OACHC,IAAG,KACHC,IAAG,KACHC,IAAG,KACHC,IAAG,OACHC,IAAG,KACHC,IAAG,OACHC,IAAG,KACHC,IAAG,MACHC,IAAG,OACHC,IAAG,KACHC,IAAG,MACHC,IAAG,MACHC,IAAG,KACHC,IAAG,OACHC,IAAG,OACHC,IAAG,KACHC,IAAG,MACHC,IAAG,OACHC,IAAG,MACHC,IAAG,QACHC,IAAG,KACHC,IAAG,OACHC,IAAG,OACHC,IAAG,MACHC,IAAG,OACHC,IAAG,MACHC,IAAG,MACHC,IAAG,MACHC,IAAG,KACHC,IAAG,OACHC,IAAG,KACHC,IAAG,KACHC,IAAG,KACHC,IAAG,MACHC,IAAG,OACHC,IAAG,OACHC,IAAG,MACHC,IAAG,OACHC,IAAG,KACHC,IAAG,OACHC,IAAG,KACHC,IAAG,OACHC,IAAG,MACHC,IAAG,KACHC,IAAG,KACHC,IAAG,KACHC,IAAG,MACHC,IAAG,KACHC,IAAG,MACHC,IAAG,OACHC,IAAG,KACHC,IAAG,MACHC,IAAG,OACHC,IAAG,IACHC,IAAG,MACHC,IAAG,OACHC,IAAG,KACHC,IAAG,MACHC,IAAG,OACHC,IAAG,MACHC,IAAG,KACHC,IAAG,OACHC,IAAG,MACHC,IAAG,OACHC,IAAG,MACHC,IAAG,KACHC,IAAG,KACHC,IAAG,MACHC,IAAG,OACH9X,IAAG,SACH+X,IAAG,MACHC,IAAG,OACHC,IAAG,OACHC,IAAG,OACHC,IAAG,MACHC,IAAG,OACHC,IAAG,MACHC,IAAG,OACHC,IAAG,KACHC,IAAG,OACHC,IAAG,KACHC,IAAG,KACHC,IAAG,MACHC,IAAG,MACHC,IAAG,KACHC,IAAG,OACHC,IAAG,KACHC,IAAG,KACHC,IAAG,OACHC,IAAG,MACHC,IAAG,KACHC,IAAG,MACHC,IAAG,OACHC,IAAG,OACHC,IAAG,OACHC,IAAG,KACHC,IAAG,MACHC,IAAG,KACHC,IAAG,MACHC,IAAG,KACHC,IAAG,QACHC,IAAG,OACHC,IAAG,MACHC,IAAG,MACHC,IAAG,SACHC,IAAG,MACHC,IAAG,OACHC,IAAG,KACHC,IAAG,MACHC,IAAG,QACHC,IAAG,KACHC,IAAG,OACHC,IAAG,KACHC,IAAG,KACHC,IAAG,OACHC,IAAG,KACHC,IAAG,KACHC,IAAG,OACHC,IAAG,QACHC,IAAG,KACHC,IAAG,KACHC,IAAG,OACHC,IAAG,KACHC,IAAG,OACHC,IAAG,KACHC,IAAG,QACHC,IAAG,KACHC,IAAG,KACHC,IAAG,OACHC,IAAG,KACHC,IAAG,KACHC,IAAG,OACHC,IAAG,MACHC,IAAG,OACHC,IAAG,QACHC,IAAG,MACHC,IAAG,MACHC,IAAG,MACHC,IAAG,QACHC,IAAG,KACHC,IAAG,MACHC,IAAG,OACHC,IAAG,KACHC,IAAG,MACHC,IAAG,KACHC,IAAG,KACHC,IAAG,MACHC,IAAG,MACHC,IAAG,MACHC,IAAG,OACHC,IAAG,MACHC,IAAG,OACHC,IAAG,MACHC,IAAG,MACHC,IAAG,OACHC,IAAG,MACHC,IAAG,KACHC,IAAG,OACHC,IAAG,OACHC,IAAG,KACHC,IAAG,MACHC,IAAG,MACHC,IAAG,KACHC,IAAG,OACHC,IAAG,MACHC,IAAG,OACHC,IAAG,OACHC,IAAG,KACHC,IAAG,MACHC,IAAG,MACHC,IAAG,OACHC,IAAG,KACHC,IAAG,KACHC,IAAG,OACHC,IAAG,OACHC,IAAG,OACHC,IAAG,OACHC,IAAG,QACHC,IAAG,MACHC,IAAG,MACHC,IAAG,OACHC,IAAG,OACHC,IAAG,MACHC,IAAG,MACHC,IAAG,OACHC,IAAG,KACHC,IAAG,KACHC,IAAG,KACHC,IAAG,OACHC,IAAG,OACHC,IAAG,MACHC,IAAG,KACHC,IAAG,MACHC,IAAG,KACHC,IAAG,OACHC,IAAG,KACHC,IAAG,MACHC,IAAG,OACHC,IAAG,KACHC,IAAG,MACHC,IAAG,MACHC,IAAG,MACHC,IAAG,MACHC,IAAG,OACHC,IAAG,OACHC,IAAG,MACHC,IAAG,OACHC,IAAG,MACHC,IAAG,KACHC,IAAG,OACHrhB,IAAG,KACHshB,IAAG,QACHjgB,IAAG,QAEDkgB,EAAiB9lV,OAAO4zB,KAAK0zS,GAAUzoT,KAAI,SAACza,GAAG,MAAM,CACvDgiU,GAAIhiU,EACJk3G,OAAQgsN,EAASljU,GACjBiiU,YAAa,EAA8BzyC,EAAaxvR,GACxDrE,OAAQ6zR,EAAaxvR,GACrBstG,SAAU8hL,EAASE,QACnBsyC,KAAMpiU,OAAO,WAChB,IAEKmiV,EAAQ,CACVC,KAAI,SACJC,KAAI,YACJC,KAAI,UACJC,KAAI,UACJC,KAAI,SACJC,KAAI,UACJC,KAAI,WACJC,KAAI,aACJC,KAAI,UACJC,KAAI,SACJC,KAAI,SACJC,KAAI,QACJC,KAAI,YACJC,KAAI,UACJC,KAAI,WACJC,KAAI,SACJC,KAAI,cACJC,KAAI,UACJC,KAAI,WACJC,KAAI,WACJC,KAAI,QACJC,KAAI,SACJC,KAAI,QACJC,KAAI,WACJC,KAAI,WACJC,KAAI,UACJC,KAAI,YACJC,KAAI,SACJC,KAAI,WACJC,KAAI,YACJC,KAAI,UACJC,KAAI,UACJC,KAAI,UACJC,KAAI,YACJC,KAAI,YACJC,KAAI,WACJC,KAAI,WACJC,KAAI,UACJC,KAAI,UACJC,KAAI,WACJC,KAAI,WACJC,KAAI,WACJC,KAAI,WACJC,KAAI,YACJC,KAAI,WACJC,KAAI,UACJC,KAAI,YACJC,KAAI,WACJC,KAAI,aACJC,KAAI,WACJC,KAAI,YACJC,KAAI,YACJC,KAAI,YACJC,KAAI,WACJC,KAAI,YACJC,KAAI,WACJC,KAAI,WACJC,KAAI,UACJC,KAAI,aACJC,KAAI,YACJC,KAAI,YACJC,KAAI,YACJC,KAAI,UACJC,KAAI,WACJC,KAAI,WACJC,KAAI,YACJC,KAAI,WACJC,KAAI,UACJC,KAAI,aACJC,KAAI,UACJC,KAAI,YACJC,KAAI,WACJC,KAAI,WACJC,KAAI,WACJC,KAAI,WACJC,KAAI,SACJC,KAAI,YACJC,KAAI,WACJC,KAAI,cACJC,KAAI,YACJC,KAAI,YACJC,KAAI,aACJC,KAAI,aACJC,KAAI,WACJC,KAAI,UACJC,KAAI,SACJC,KAAI,SACJC,KAAI,WACJC,KAAI,UACJC,KAAI,UACJC,KAAI,WACJC,KAAI,UACJC,KAAI,cACJC,KAAI,WACJC,KAAI,UACJC,KAAI,aACJC,KAAI,UACJC,KAAI,UACJC,KAAI,UACJC,KAAI,SACJC,KAAI,aACJC,KAAI,UACJC,KAAI,SACJC,KAAI,YACJC,KAAI,UACJC,KAAI,YACJC,KAAI,UACJC,KAAI,WACJC,KAAI,SACJC,KAAI,aACJC,KAAI,WACJC,KAAI,UACJC,KAAI,SACJC,KAAI,aACJC,KAAI,aACJC,KAAI,SACJC,KAAI,WACJC,KAAI,SACJC,KAAI,QACJC,KAAI,SACJC,KAAI,WACJC,KAAI,UACJC,KAAI,SACJC,KAAI,YACJC,KAAI,YACJC,KAAI,QACJC,KAAI,UACJC,KAAI,aACJC,KAAI,YACJC,KAAI,WACJC,KAAI,SACJC,KAAI,SACJC,KAAI,aACJC,KAAI,UACJC,KAAI,WACJC,KAAI,SACJC,KAAI,aACJC,KAAI,YACJC,KAAI,YACJC,KAAI,YACJC,KAAI,UACJC,KAAI,QACJC,KAAI,aACJC,KAAI,YACJC,KAAI,YACJC,KAAI,UACJC,KAAI,WACJC,KAAI,YACJC,KAAI,SACJC,KAAI,SACJC,KAAI,UACJC,KAAI,YACJC,KAAI,UACJC,KAAI,SACJC,KAAI,WACJC,KAAI,UACJC,KAAI,YACJC,KAAI,UACJC,KAAI,aACJC,KAAI,UACJC,KAAI,aACJC,KAAI,UACJC,KAAI,UACJC,KAAI,SACJC,KAAI,WACJC,KAAI,WACJC,KAAI,UACJC,KAAI,WACJC,KAAI,UACJC,KAAI,SACJC,KAAI,WACJC,KAAI,WACJC,KAAI,YACJC,KAAI,UACJC,KAAI,aACJC,KAAI,YACJC,KAAI,WACJC,KAAI,SACJC,KAAI,SACJC,KAAI,YACJC,KAAI,QACJC,KAAI,UACJC,KAAI,cACJC,KAAI,SACJC,KAAI,UACJC,KAAI,WACJC,KAAI,QACJC,KAAI,YACJC,KAAI,WACJC,KAAI,aACJC,KAAI,UACJC,KAAI,UACJC,KAAI,SACJC,KAAI,YACJC,KAAI,WACJC,KAAI,aACJC,KAAI,WACJC,KAAI,UACJC,KAAI,YACJC,KAAI,UACJC,KAAI,SACJC,KAAI,WACJC,KAAI,WACJC,KAAI,YACJC,KAAI,WACJC,KAAI,SACJC,KAAI,cACJC,KAAI,aACJC,KAAI,SACJC,KAAI,SACJC,KAAI,WACJC,KAAI,QACJC,KAAI,SACJC,KAAI,aACJC,KAAI,SACJC,KAAI,SACJC,KAAI,WACJC,KAAI,QACJC,KAAI,YACJC,KAAI,UACJC,KAAI,SACJC,KAAI,QACJC,KAAI,YACJC,KAAI,UACJC,KAAI,YACJC,KAAI,aACJC,KAAI,WACJC,KAAI,UACJC,KAAI,SACJC,KAAI,WACJC,KAAI,SACJC,KAAI,SACJC,KAAI,SACJC,KAAI,UACJC,KAAI,WACJC,KAAI,UACJC,KAAI,SACJC,KAAI,aACJC,KAAI,QACJC,KAAI,aACJC,KAAI,WACJC,KAAI,WACJC,KAAI,UACJC,KAAI,aACJC,KAAI,UACJC,KAAI,WACJC,KAAI,aACJC,KAAI,aACJC,KAAI,QACJC,KAAI,aACJC,KAAI,WACJC,KAAI,cACJC,KAAI,UACJC,KAAI,WACJC,KAAI,SACJC,KAAI,aACJC,KAAI,YACJC,KAAI,UACJC,KAAI,SACJC,KAAI,SACJC,KAAI,QACJC,KAAI,SACJC,KAAI,UACJC,KAAI,WACJC,KAAI,YACJC,KAAI,SACJC,KAAI,QACJC,KAAI,SACJC,KAAI,WACJC,KAAI,UACJC,KAAI,QACJC,KAAI,UACJC,KAAI,UACJC,KAAI,QACJC,KAAI,WACJC,KAAI,UACJC,KAAI,UACJC,KAAI,QACJC,KAAI,UACJC,KAAI,WACJC,KAAI,QACJC,KAAI,YACJC,KAAI,aACJC,KAAI,WACJC,KAAI,aACJC,KAAI,aACJC,KAAI,WACJC,KAAI,WACJC,KAAI,WACJC,KAAI,UACJC,KAAI,UACJC,KAAI,UACJC,KAAI,UACJC,KAAI,UACJC,KAAI,WACJC,KAAI,SACJC,KAAI,WACJC,KAAI,QACJC,KAAI,WACJC,KAAI,SACJC,KAAI,UACJC,KAAI,YACJC,KAAI,SACJC,KAAI,YACJC,KAAI,YACJC,KAAI,YACJC,KAAI,SACJC,KAAI,SACJC,KAAI,UACJC,KAAI,YACJC,KAAI,aACJC,KAAI,cACJC,KAAI,WACJC,KAAI,WACJC,KAAI,aACJC,KAAI,WACJC,KAAI,SACJC,KAAI,aACJC,KAAI,WACJC,KAAI,YACJC,KAAI,aACJC,KAAI,cACJC,KAAI,aACJC,KAAI,aACJC,KAAI,SACJC,KAAI,WACJC,KAAI,UACJC,KAAI,UACJC,KAAI,UACJC,KAAI,aACJC,KAAI,QACJC,KAAI,SACJC,KAAI,SACJC,KAAI,SACJC,KAAI,UACJC,KAAI,WACJC,KAAI,YACJC,KAAI,QACJC,KAAI,SACJC,KAAI,cACJC,KAAI,QACJC,KAAI,SACJC,KAAI,WACJC,KAAI,UACJC,KAAI,YACJC,KAAI,cACJC,KAAI,SACJC,KAAI,YACJC,KAAI,aACJC,KAAI,aACJC,KAAI,QACJC,KAAI,UACJC,KAAI,aACJC,KAAI,UACJC,KAAI,QACJC,KAAI,WACJC,KAAI,UACJC,KAAI,cACJC,KAAI,SACJC,KAAI,SACJC,KAAI,SACJC,KAAI,WACJC,KAAI,YACJC,KAAI,SACJC,KAAI,YACJC,KAAI,SACJC,KAAI,UACJC,KAAI,SACJC,KAAI,UACJC,KAAI,WACJC,KAAI,SACJC,KAAI,WACJC,KAAI,SACJC,KAAI,aACJC,KAAI,WACJC,KAAI,WACJC,KAAI,YACJC,KAAI,WACJC,KAAI,WACJC,KAAI,QACJC,KAAI,YACJC,KAAI,WACJC,KAAI,aACJC,KAAI,WACJC,KAAI,SACJC,KAAI,SACJC,KAAI,SACJC,KAAI,UACJC,KAAI,QACJC,KAAI,UACJC,KAAI,UACJC,KAAI,YACJC,KAAI,WACJC,KAAI,YACJC,KAAI,WACJC,KAAI,UACJC,KAAI,WACJC,KAAI,WACJC,KAAI,WACJC,KAAI,WACJC,KAAI,UACJC,KAAI,WACJC,KAAI,SACJC,KAAI,YACJC,KAAI,aACJC,KAAI,QACJC,KAAI,WACJC,KAAI,UACJC,KAAI,UACJC,KAAI,WACJC,KAAI,WACJC,KAAI,YACJC,KAAI,UACJC,KAAI,UACJC,KAAI,SACJC,KAAI,UACJC,KAAI,WACJC,KAAI,YACJl3B,KAAI,UACJm3B,KAAI,UACJC,KAAI,QACJC,KAAI,aACJC,KAAI,QACJC,KAAI,WACJC,KAAI,QACJC,KAAI,WACJC,KAAI,UACJC,KAAI,UACJC,KAAI,WACJC,KAAI,QACJC,KAAI,SACJC,KAAI,UACJC,KAAI,WACJC,KAAI,UACJC,KAAI,YACJC,KAAI,YACJC,KAAI,UACJC,KAAI,UACJC,KAAI,aACJC,KAAI,SACJC,KAAI,UACJC,KAAI,SACJC,KAAI,SACJC,KAAI,UACJC,KAAI,WACJC,KAAI,SACJC,KAAI,UACJC,KAAI,UACJC,KAAI,UACJC,KAAI,WACJC,KAAI,WACJC,KAAI,QACJC,KAAI,SACJC,KAAI,WACJC,KAAI,UACJC,KAAI,UACJC,KAAI,SACJC,KAAI,SACJC,KAAI,SACJC,KAAI,WACJC,KAAI,SACJC,KAAI,YACJC,KAAI,UACJC,KAAI,WACJC,KAAI,WACJC,KAAI,UACJC,KAAI,OACJC,KAAI,YACJC,KAAI,YACJC,KAAI,WACJC,KAAI,UACJC,KAAI,UACJC,KAAI,aACJC,KAAI,SACJC,KAAI,SACJC,KAAI,WACJC,KAAI,WACJC,KAAI,QACJC,KAAI,SACJC,KAAI,UACJC,KAAI,UACJC,KAAI,aACJC,KAAI,UACJC,KAAI,SACJC,KAAI,YACJC,KAAI,YACJC,KAAI,QACJC,KAAI,WACJC,KAAI,WACJC,KAAI,YACJC,KAAI,aACJC,KAAI,aACJC,KAAI,WACJC,KAAI,aACJC,KAAI,QACJC,KAAI,UACJC,KAAI,YACJC,KAAI,WACJC,KAAI,aACJC,KAAI,SACJC,KAAI,UACJC,KAAI,WACJC,KAAI,WACJC,KAAI,aACJC,KAAI,YACJC,KAAI,SACJC,KAAI,WACJC,KAAI,UACJC,KAAI,UACJC,KAAI,UACJC,KAAI,eACJC,KAAI,WACJC,KAAI,UACJC,KAAI,YACJC,KAAI,UACJC,KAAI,WACJC,KAAI,YACJC,KAAI,WACJC,KAAI,YACJC,KAAI,aACJC,KAAI,SACJC,KAAI,YACJC,KAAI,SACJC,KAAI,UACJC,KAAI,aACJC,KAAI,YACJC,KAAI,UACJC,KAAI,SACJC,KAAI,YACJC,KAAI,YACJC,KAAI,SACJC,KAAI,QACJC,KAAI,YACJC,KAAI,WACJC,KAAI,WACJC,KAAI,aACJC,KAAI,QACJC,KAAI,YACJC,KAAI,WACJC,KAAI,UACJC,KAAI,WACJC,KAAI,WACJC,KAAI,SACJC,KAAI,SACJC,KAAI,aACJC,KAAI,UACJC,KAAI,WACJC,KAAI,UACJC,KAAI,SACJC,KAAI,WACJC,KAAI,SACJC,KAAI,WACJC,KAAI,UACJC,KAAI,YACJC,KAAI,YACJC,KAAI,YACJC,KAAI,YACJC,KAAI,WACJC,KAAI,UACJC,KAAI,SACJC,KAAI,WACJC,KAAI,WACJC,KAAI,UACJC,KAAI,UACJC,KAAI,SACJC,KAAI,YACJC,KAAI,UACJC,KAAI,SACJC,KAAI,WACJC,KAAI,SACJC,KAAI,YACJC,KAAI,YACJC,KAAI,WACJC,KAAI,WACJC,KAAI,SACJC,KAAI,UACJC,KAAI,UACJC,KAAI,aACJC,KAAI,UACJC,KAAI,SACJC,KAAI,WACJC,KAAI,QACJC,KAAI,QACJC,KAAI,WACJC,KAAI,YACJC,KAAI,WACJC,KAAI,YACJC,KAAI,QACJC,KAAI,UACJC,KAAI,SACJC,KAAI,QACJC,KAAI,aACJC,KAAI,SACJC,KAAI,UACJC,KAAI,YACJC,KAAI,QACJC,KAAI,WACJC,KAAI,SACJC,KAAI,WACJC,KAAI,WACJC,KAAI,YACJC,KAAI,SACJC,KAAI,UACJC,KAAI,UACJC,KAAI,UACJC,KAAI,WACJC,KAAI,SACJC,KAAI,SACJC,KAAI,SACJC,KAAI,UACJC,KAAI,YACJC,KAAI,SACJC,KAAI,WACJC,KAAI,SACJC,KAAI,YACJC,KAAI,SACJC,KAAI,WACJC,KAAI,YACJC,KAAI,WACJC,KAAI,YACJC,KAAI,UACJC,KAAI,YACJC,KAAI,cACJC,KAAI,YACJC,KAAI,UACJC,KAAI,WACJC,KAAI,UACJC,KAAI,YACJC,KAAI,QACJC,KAAI,YACJC,KAAI,SACJC,KAAI,UACJC,KAAI,aACJC,KAAI,eACJC,KAAI,UACJC,KAAI,QACJC,KAAI,WACJC,KAAI,QACJC,KAAI,SACJC,KAAI,WACJC,KAAI,UACJC,KAAI,UACJC,KAAI,SACJC,KAAI,SACJC,KAAI,YACJC,KAAI,aACJC,KAAI,WACJC,KAAI,WACJC,KAAI,SACJC,KAAI,YACJC,KAAI,UACJC,KAAI,QACJC,KAAI,WACJC,KAAI,UACJC,KAAI,UACJC,KAAI,SACJC,KAAI,UACJC,KAAI,SACJC,KAAI,SACJC,KAAI,UACJC,KAAI,aACJC,KAAI,SACJC,KAAI,WACJC,KAAI,YACJC,KAAI,SACJC,KAAI,UACJC,KAAI,YACJC,KAAI,aACJC,KAAI,UACJC,KAAI,WACJC,KAAI,SACJC,KAAI,YACJC,KAAI,WACJC,KAAI,UACJC,KAAI,QACJC,KAAI,UACJC,KAAI,UACJC,KAAI,UACJC,KAAI,WACJC,KAAI,SACJC,KAAI,aACJC,KAAI,YACJC,KAAI,SACJC,KAAI,WACJC,KAAI,SACJC,KAAI,SACJC,KAAI,WACJC,KAAI,aACJC,KAAI,WACJC,KAAI,SACJC,KAAI,UACJC,KAAI,WACJC,KAAI,UACJC,KAAI,SACJC,KAAI,UACJC,KAAI,YACJC,KAAI,WACJC,KAAI,UACJC,KAAI,WACJC,KAAI,SACJC,KAAI,SACJC,KAAI,WACJC,KAAI,WACJC,KAAI,SACJC,KAAI,UACJC,KAAI,SACJC,KAAI,UACJC,KAAI,WACJC,KAAI,WACJC,KAAI,WACJC,KAAI,UACJC,KAAI,UACJC,KAAI,WACJC,KAAI,SACJC,KAAI,QACJC,KAAI,UACJC,KAAI,WACJC,KAAI,WACJC,KAAI,WACJC,KAAI,UACJC,KAAI,SACJC,KAAI,WACJC,KAAI,SACJC,KAAI,YACJC,KAAI,UACJC,KAAI,WACJC,KAAI,WACJC,KAAI,WACJC,KAAI,YACJC,KAAI,WACJC,KAAI,YACJC,KAAI,UACJC,KAAI,UACJC,KAAI,cACJC,KAAI,aACJC,KAAI,aACJC,KAAI,YACJC,KAAI,WACJC,KAAI,QACJC,KAAI,SACJC,KAAI,UACJC,KAAI,aACJC,KAAI,UACJC,KAAI,SACJC,KAAI,SACJC,KAAI,UACJC,KAAI,WACJC,KAAI,UACJC,KAAI,QACJC,KAAI,SACJC,KAAI,WACJC,KAAI,YACJC,KAAI,UACJC,KAAI,UACJC,KAAI,aACJC,KAAI,SACJC,KAAI,aACJC,KAAI,WACJC,KAAI,WACJC,KAAI,QACJC,KAAI,QACJC,KAAI,SACJC,KAAI,WACJC,KAAI,UACJC,KAAI,aACJC,KAAI,UACJC,KAAI,YACJC,KAAI,SACJC,KAAI,UACJC,KAAI,aACJC,KAAI,UACJC,KAAI,aACJC,KAAI,SACJC,KAAI,WACJC,KAAI,UACJC,KAAI,SACJC,KAAI,UACJC,KAAI,YACJC,KAAI,aACJC,KAAI,YACJC,KAAI,cACJC,KAAI,UACJC,KAAI,UACJC,KAAI,UACJC,KAAI,WACJC,KAAI,WACJC,KAAI,aACJC,KAAI,SACJC,KAAI,WACJC,KAAI,WACJC,KAAI,WACJC,KAAI,UACJC,KAAI,UACJC,KAAI,WACJC,KAAI,UACJC,KAAI,QACJC,KAAI,UACJC,KAAI,UACJC,KAAI,UACJC,KAAI,SACJC,KAAI,UACJC,KAAI,UACJC,KAAI,YACJC,KAAI,WACJC,KAAI,UACJC,KAAI,YACJC,KAAI,WACJC,KAAI,UACJC,KAAI,YACJC,KAAI,WACJC,KAAI,UACJC,KAAI,SACJC,KAAI,WACJC,KAAI,YACJC,KAAI,UACJC,KAAI,UACJC,KAAI,SACJC,KAAI,WACJC,KAAI,UACJC,KAAI,SACJC,KAAI,WACJC,KAAI,WACJC,KAAI,YACJC,KAAI,YACJC,KAAI,WACJC,KAAI,UACJC,KAAI,YACJC,KAAI,WACJC,KAAI,UACJC,KAAI,QACJC,KAAI,UACJC,KAAI,WACJC,KAAI,YACJC,KAAI,QACJC,KAAI,WACJC,KAAI,UACJC,KAAI,YACJC,KAAI,SACJC,KAAI,YACJC,KAAI,aACJC,KAAI,WACJC,KAAI,WACJC,KAAI,WACJC,KAAI,SACJC,KAAI,YACJC,KAAI,UACJC,KAAI,SACJC,KAAI,YACJC,KAAI,WACJC,KAAI,SACJC,KAAI,aACJC,KAAI,YACJC,KAAI,WACJC,KAAI,UACJC,KAAI,UACJC,KAAI,aACJC,KAAI,aACJC,KAAI,aACJC,KAAI,aACJC,KAAI,WACJC,KAAI,QACJC,KAAI,SACJC,KAAI,cACJC,KAAI,UACJC,KAAI,UACJC,KAAI,YACJC,KAAI,SACJC,KAAI,YACJC,KAAI,YACJC,KAAI,WACJC,KAAI,WACJC,KAAI,UACJC,KAAI,YACJC,KAAI,SACJC,KAAI,UACJC,KAAI,SACJC,KAAI,SACJC,KAAI,WACJC,KAAI,WACJC,KAAI,SACJC,KAAI,aACJC,KAAI,SACJC,KAAI,WACJC,KAAI,YACJC,KAAI,SACJC,KAAI,QACJC,KAAI,YACJC,KAAI,WACJC,KAAI,UACJC,KAAI,WACJC,KAAI,WACJC,KAAI,YACJC,KAAI,SACJC,KAAI,WACJC,KAAI,UACJC,KAAI,SACJC,KAAI,SACJC,KAAI,UACJC,KAAI,aACJC,KAAI,YACJC,KAAI,UACJC,KAAI,WACJC,KAAI,WACJC,KAAI,YACJC,KAAI,UACJC,KAAI,WACJC,KAAI,WACJC,KAAI,WACJC,KAAI,WACJC,KAAI,UACJC,KAAI,YACJC,KAAI,YACJC,KAAI,YACJC,KAAI,YACJC,KAAI,SACJC,KAAI,UACJC,KAAI,WACJC,KAAI,WACJC,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C,KAAI,SACJC,KAAI,UACJC,KAAI,WACJC,KAAI,SACJC,KAAI,SACJC,KAAI,YACJC,KAAI,SACJC,KAAI,aACJC,KAAI,QACJC,KAAI,WACJC,KAAI,WACJC,KAAI,WACJC,KAAI,WACJC,KAAI,UACJC,KAAI,UACJC,KAAI,WACJC,KAAI,UACJC,KAAI,WACJC,KAAI,cACJC,KAAI,UACJC,KAAI,YACJC,KAAI,UACJC,KAAI,aACJC,KAAI,aACJC,KAAI,UACJC,KAAI,WACJC,KAAI,SACJC,KAAI,SACJC,KAAI,aACJC,KAAI,UACJC,KAAI,YACJC,KAAI,QACJC,KAAI,aACJC,KAAI,QACJC,KAAI,WACJC,KAAI,aACJC,KAAI,UACJC,KAAI,SACJC,KAAI,QACJC,KAAI,WACJC,KAAI,WACJC,KAAI,WACJC,KAAI,UACJC,KAAI,SACJC,KAAI,UACJC,KAAI,YACJC,KAAI,aACJC,KAAI,WACJC,KAAI,UACJC,KAAI,SACJC,KAAI,WACJC,KAAI,SACJC,KAAI,WACJC,KAAI,WACJC,KAAI,UACJC,KAAI,UACJC,KAAI,YACJC,KAAI,SACJC,KAAI,UACJC,KAAI,UACJC,KAAI,UACJC,KAAI,cACJC,KAAI,SACJC,KAAI,UACJC,KAAI,SACJC,KAAI,YACJC,KAAI,WACJC,KAAI,WACJC,KAAI,aACJC,KAAI,UACJC,KAAI,WACJC,KAAI,aACJC,KAAI,aACJC,KAAI,SACJC,KAAI,SACJC,KAAI,SACJC,KAAI,UACJC,KAAI,YACJC,KAAI,YACJC,KAAI,UACJC,KAAI,YACJC,KAAI,YACJC,KAAI,YACJC,KAAI,WACJC,KAAI,WACJC,KAAI,UACJC,KAAI,WACJC,KAAI,UACJC,KAAI,WACJC,KAAI,WACJC,KAAI,WACJC,KAAI,UACJC,KAAI,UACJC,KAAI,SACJC,KAAI,UACJC,KAAI,SACJC,KAAI,UACJC,KAAI,YACJC,KAAI,WACJC,KAAI,WACJC,KAAI,WACJC,KAAI,UACJC,KAAI,SACJC,KAAI,SACJC,KAAI,WACJC,KAAI,WACJC,KAAI,UACJC,KAAI,UACJC,KAAI,YACJC,KAAI,SACJC,KAAI,WACJC,KAAI,WACJC,KAAI,YACJC,KAAI,SACJC,KAAI,UACJC,KAAI,YACJC,KAAI,WACJC,KAAI,WACJC,KAAI,SACJC,KAAI,UACJC,KAAI,QACJC,KAAI,UACJC,KAAI,aACJC,KAAI,YACJC,KAAI,UACJC,KAAI,UACJC,KAAI,WACJC,KAAI,UACJC,KAAI,WACJC,KAAI,YACJC,KAAI,UACJC,KAAI,UACJC,KAAI,SACJC,KAAI,UACJC,KAAI,WACJC,KAAI,UACJC,KAAI,UACJC,KAAI,SACJC,KAAI,YACJC,KAAI,QACJC,KAAI,QACJC,KAAI,SACJC,KAAI,WACJC,KAAI,SACJC,KAAI,YACJC,KAAI,UACJC,KAAI,UACJC,KAAI,YACJC,KAAI,SACJC,KAAI,UACJC,KAAI,YACJC,KAAI,WACJC,KAAI,WACJC,KAAI,UACJC,KAAI,UACJC,KAAI,SACJC,KAAI,WACJC,KAAI,SACJC,KAAI,YACJC,KAAI,SACJC,KAAI,SACJC,KAAI,YACJC,KAAI,WACJC,KAAI,SACJC,KAAI,YACJC,KAAI,WACJC,KAAI,aACJC,KAAI,UACJC,KAAI,SACJC,KAAI,YACJC,KAAI,YACJC,KAAI,YACJC,KAAI,YACJC,KAAI,SACJC,KAAI,WACJC,KAAI,UACJC,KAAI,QACJC,KAAI,SACJC,KAAI,YACJC,KAAI,YACJC,KAAI,SACJC,KAAI,UACJC,KAAI,QACJC,KAAI,UACJC,KAAI,SACJC,KAAI,SACJC,KAAI,SACJC,KAAI,aACJC,KAAI,QACJC,KAAI,YACJC,KAAI,WACJC,KAAI,UACJC,KAAI,QACJC,KAAI,UACJC,KAAI,UACJC,KAAI,UACJC,KAAI,YACJC,KAAI,UACJC,KAAI,aACJC,KAAI,aACJC,KAAI,aACJC,KAAI,UACJC,KAAI,UACJC,KAAI,WACJC,KAAI,QACJC,KAAI,SACJC,KAAI,WACJC,KAAI,WACJC,KAAI,UACJC,KAAI,WACJC,KAAI,WACJC,KAAI,YACJC,KAAI,WACJC,KAAI,WACJC,KAAI,SACJC,KAAI,WACJC,KAAI,QACJC,KAAI,SACJC,KAAI,QACJC,KAAI,SACJC,KAAI,YACJC,KAAI,YACJC,KAAI,cACJC,KAAI,YACJC,KAAI,SACJC,KAAI,YACJC,KAAI,UACJC,KAAI,WACJC,KAAI,SACJC,KAAI,WACJC,KAAI,WACJC,KAAI,SACJC,KAAI,UACJC,KAAI,cACJC,KAAI,SACJC,KAAI,SACJC,KAAI,UACJC,KAAI,YACJC,KAAI,WACJC,KAAI,WACJC,KAAI,YACJC,KAAI,YACJC,KAAI,cACJC,KAAI,WACJC,KAAI,cACJC,KAAI,UACJC,KAAI,QACJC,KAAI,aACJC,KAAI,SACJC,KAAI,UACJC,KAAI,UACJC,KAAI,SACJC,KAAI,SACJC,KAAI,aACJC,KAAI,eACJC,KAAI,QACJC,KAAI,UACJC,KAAI,UACJC,KAAI,UACJC,KAAI,UACJC,KAAI,WACJC,KAAI,aACJC,KAAI,UACJC,KAAI,YACJC,KAAI,WACJC,KAAI,SACJC,KAAI,WACJC,KAAI,WACJC,KAAI,SACJC,KAAI,WACJC,KAAI,UACJC,KAAI,UACJC,KAAI,UACJC,KAAI,WACJC,KAAI,YACJC,KAAI,UACJC,KAAI,aACJC,KAAI,UACJC,KAAI,UACJC,KAAI,UACJC,KAAI,YACJC,KAAI,WACJC,KAAI,YACJC,KAAI,UACJC,KAAI,UACJC,KAAI,WACJC,KAAI,UACJC,KAAI,SACJC,KAAI,WACJC,KAAI,UACJC,KAAI,SACJC,KAAI,WACJC,KAAI,YACJC,KAAI,UACJC,KAAI,UACJC,KAAI,SACJC,KAAI,SACJC,KAAI,WACJC,KAAI,UACJC,KAAI,UACJC,KAAI,UACJC,KAAI,SACJC,KAAI,QACJC,KAAI,WACJC,KAAI,SACJC,KAAI,YACJC,KAAI,SACJC,KAAI,WACJC,KAAI,WACJC,KAAI,YACJC,KAAI,WACJC,KAAI,YACJC,KAAI,UACJC,KAAI,aACJC,KAAI,cACJC,KAAI,WACJC,KAAI,UACJC,KAAI,SACJC,KAAI,SACJC,KAAI,UACJC,KAAI,UACJC,KAAI,aACJC,KAAI,WACJC,KAAI,WACJC,KAAI,WACJC,KAAI,UACJC,KAAI,WACJC,KAAI,aACJC,KAAI,aACJC,KAAI,UACJC,KAAI,UACJC,KAAI,UACJC,KAAI,UACJC,KAAI,SACJC,KAAI,QACJC,KAAI,WACJC,KAAI,WACJC,KAAI,QACJC,KAAI,SACJC,KAAI,YACJC,KAAI,WACJC,KAAI,YACJC,KAAI,cACJC,KAAI,YACJC,KAAI,UACJC,KAAI,UACJC,KAAI,UACJC,KAAI,aACJC,KAAI,UACJC,KAAI,aACJC,KAAI,UACJC,KAAI,UACJC,KAAI,cACJC,KAAI,SACJC,KAAI,SACJC,KAAI,WACJC,KAAI,aACJC,KAAI,YACJC,KAAI,QACJC,KAAI,YACJC,KAAI,WACJC,KAAI,WACJC,KAAI,QACJC,KAAI,UACJC,KAAI,YACJC,KAAI,UACJC,KAAI,WACJC,KAAI,UACJC,KAAI,UACJC,KAAI,QACJC,KAAI,aACJC,KAAI,WACJC,KAAI,QACJC,KAAI,aACJC,KAAI,WACJC,KAAI,cACJC,KAAI,UACJC,KAAI,UACJC,KAAI,UACJC,KAAI,SACJC,KAAI,UACJC,KAAI,WACJC,KAAI,UACJC,KAAI,WACJC,KAAI,SACJC,KAAI,UACJC,KAAI,WACJC,KAAI,SACJC,KAAI,UACJC,KAAI,UACJC,KAAI,YACJC,KAAI,UACJC,KAAI,YACJC,KAAI,UACJC,KAAI,UACJC,KAAI,QACJC,KAAI,WACJC,KAAI,QACJC,KAAI,UACJC,KAAI,WACJC,KAAI,WACJC,KAAI,YACJC,KAAI,WACJC,KAAI,SACJC,KAAI,UACJC,KAAI,YACJC,KAAI,aACJC,KAAI,YACJC,KAAI,QACJC,KAAI,UACJC,KAAI,WACJC,KAAI,UACJC,KAAI,WACJC,KAAI,UACJC,KAAI,YACJC,KAAI,SACJC,KAAI,WACJC,KAAI,YACJC,KAAI,WACJC,KAAI,WACJC,KAAI,cACJC,KAAI,WACJC,KAAI,UACJC,KAAI,SACJC,KAAI,QACJC,KAAI,SACJC,KAAI,SACJC,KAAI,WACJC,KAAI,SACJC,KAAI,YACJC,KAAI,OACJC,KAAI,UACJC,KAAI,WACJC,KAAI,UACJC,KAAI,WACJC,KAAI,SACJC,KAAI,UACJC,KAAI,aACJC,KAAI,WACJC,KAAI,WACJC,KAAI,aACJC,KAAI,UACJC,KAAI,YACJC,KAAI,QACJC,KAAI,UACJC,KAAI,WACJC,KAAI,UACJC,KAAI,UACJC,KAAI,UACJC,KAAI,WACJC,KAAI,UACJC,KAAI,YACJC,KAAI,SACJC,KAAI,YACJC,KAAI,YACJC,KAAI,YACJC,KAAI,WACJC,KAAI,UACJC,KAAI,SACJC,KAAI,WACJC,KAAI,WACJC,KAAI,SACJC,KAAI,UACJC,KAAI,UACJC,KAAI,YACJC,KAAI,YACJC,KAAI,QACJC,KAAI,WACJC,KAAI,WACJC,KAAI,WACJC,KAAI,cACJC,KAAI,UACJC,KAAI,cACJC,KAAI,aACJC,KAAI,UACJC,KAAI,WACJC,KAAI,WACJC,KAAI,WACJC,KAAI,SACJC,KAAI,YACJC,KAAI,QACJC,KAAI,WACJC,KAAI,UACJC,KAAI,SACJC,KAAI,YACJC,KAAI,YACJC,KAAI,aACJC,KAAI,SACJC,KAAI,UACJC,KAAI,YACJC,KAAI,UACJC,KAAI,SACJC,KAAI,aACJC,KAAI,QACJC,KAAI,UACJC,KAAI,WACJC,KAAI,UACJC,KAAI,YACJC,KAAI,WACJC,KAAI,UACJC,KAAI,UACJC,KAAI,UACJC,KAAI,WACJC,KAAI,YACJC,KAAI,cACJC,KAAI,WACJC,KAAI,WACJC,KAAI,UACJC,KAAI,SACJC,KAAI,WACJC,KAAI,WACJC,KAAI,cACJC,KAAI,WACJC,KAAI,UACJC,KAAI,SACJC,KAAI,SACJC,KAAI,QACJC,KAAI,UACJC,KAAI,YACJC,KAAI,SACJC,KAAI,WACJC,KAAI,SACJC,KAAI,SACJC,KAAI,WACJC,KAAI,SACJC,KAAI,SACJC,KAAI,UACJC,KAAI,YACJC,KAAI,YACJC,KAAI,UACJC,KAAI,SACJC,KAAI,SACJC,KAAI,SACJC,KAAI,QACJC,KAAI,YACJC,KAAI,WACJC,KAAI,UACJC,KAAI,UACJC,KAAI,YACJC,KAAI,YACJC,KAAI,UACJC,KAAI,YACJC,KAAI,UACJC,KAAI,UACJC,KAAI,UACJC,KAAI,UACJC,KAAI,YACJC,KAAI,cACJC,KAAI,SACJC,KAAI,WACJC,KAAI,YACJC,KAAI,YACJC,KAAI,WACJC,KAAI,WACJC,KAAI,aACJC,KAAI,UACJC,KAAI,SACJC,KAAI,SACJC,KAAI,SACJC,KAAI,SACJC,KAAI,QACJC,KAAI,UACJC,KAAI,YACJC,KAAI,UACJC,KAAI,WACJC,KAAI,WACJC,KAAI,UACJC,KAAI,WACJC,KAAI,UACJC,KAAI,YACJC,KAAI,SACJC,KAAI,UACJC,KAAI,QACJC,KAAI,SACJC,KAAI,YACJC,KAAI,WACJC,KAAI,WACJC,KAAI,YACJC,KAAI,YACJC,KAAI,UACJC,KAAI,SACJC,KAAI,SACJC,KAAI,UACJC,KAAI,SACJC,KAAI,QACJC,KAAI,UACJC,KAAI,QACJC,KAAI,SACJC,KAAI,QACJC,KAAI,WACJC,KAAI,WACJC,KAAI,YACJC,KAAI,WACJC,KAAI,aACJC,KAAI,QACJC,KAAI,YACJC,KAAI,SACJC,KAAI,WACJC,KAAI,WACJC,KAAI,WACJC,KAAI,WACJC,KAAI,WACJC,KAAI,aACJC,KAAI,YACJC,KAAI,UACJC,KAAI,QACJC,KAAI,WACJC,KAAI,WACJC,KAAI,UACJC,KAAI,YACJC,KAAI,YACJC,KAAI,UACJC,KAAI,YACJC,KAAI,WACJC,KAAI,SACJC,KAAI,QACJC,KAAI,YACJC,KAAI,YACJC,KAAI,WACJC,KAAI,UACJC,KAAI,WACJC,KAAI,WACJC,KAAI,UACJC,KAAI,WACJC,KAAI,WACJC,KAAI,SACJC,KAAI,YACJC,KAAI,YACJC,KAAI,WACJC,KAAI,SACJC,KAAI,WACJC,KAAI,SACJC,KAAI,SACJC,KAAI,QACJC,KAAI,UACJC,KAAI,aACJC,KAAI,UACJC,KAAI,UACJC,KAAI,aACJC,KAAI,WACJC,KAAI,UACJC,KAAI,WACJC,KAAI,aACJC,KAAI,SACJC,KAAI,UACJC,KAAI,aACJC,KAAI,YACJC,KAAI,UACJC,KAAI,WACJC,KAAI,WACJC,KAAI,WACJC,KAAI,UACJC,KAAI,WACJC,KAAI,UACJC,KAAI,UACJC,KAAI,WACJC,KAAI,WACJC,KAAI,QACJC,KAAI,UACJC,KAAI,UACJC,KAAI,UACJC,KAAI,cACJC,KAAI,WACJC,KAAI,YACJC,KAAI,WACJC,KAAI,YACJC,KAAI,WACJC,KAAI,WACJC,KAAI,WACJC,KAAI,UACJC,KAAI,YACJC,KAAI,UACJC,KAAI,WACJC,KAAI,WACJC,KAAI,YACJC,KAAI,SACJC,KAAI,WACJC,KAAI,QACJC,KAAI,UACJC,KAAI,YACJC,KAAI,UACJC,KAAI,UACJC,KAAI,WACJC,KAAI,UACJC,KAAI,YACJC,KAAI,SACJC,KAAI,YACJC,KAAI,UACJC,KAAI,aACJC,KAAI,WACJC,KAAI,UACJC,KAAI,YACJC,KAAI,WACJC,KAAI,YACJC,KAAI,SACJC,KAAI,QACJC,KAAI,aACJC,KAAI,WACJC,KAAI,SACJC,KAAI,UACJC,KAAI,UACJC,KAAI,UACJC,KAAI,WACJC,KAAI,UACJC,KAAI,WACJC,KAAI,SACJC,KAAI,WACJC,KAAI,UACJC,KAAI,WACJC,KAAI,SACJC,KAAI,UACJC,KAAI,aACJC,KAAI,SACJC,KAAI,UACJC,KAAI,YACJC,KAAI,YACJC,KAAI,YACJC,KAAI,WACJC,KAAI,WACJC,KAAI,UACJC,KAAI,QACJC,KAAI,SACJC,KAAI,UACJC,KAAI,UACJC,KAAI,UACJC,KAAI,WACJC,KAAI,WACJC,KAAI,YACJC,KAAI,aACJC,KAAI,WACJC,KAAI,YACJC,KAAI,UACJC,KAAI,WACJC,KAAI,UACJC,KAAI,UACJC,KAAI,QACJC,KAAI,YACJC,KAAI,UACJC,KAAI,UACJC,KAAI,QACJC,KAAI,SACJC,KAAI,aACJC,KAAI,WACJC,KAAI,UACJC,KAAI,WACJC,KAAI,UACJC,KAAI,SACJC,KAAI,WACJC,KAAI,WACJC,KAAI,UACJC,KAAI,UACJC,KAAI,WACJC,KAAI,SACJC,KAAI,UACJC,KAAI,UACJC,KAAI,WACJC,KAAI,YACJC,KAAI,WACJC,KAAI,SACJC,KAAI,QACJC,KAAI,YACJC,KAAI,UACJC,KAAI,SACJC,KAAI,WACJC,KAAI,QACJC,KAAI,WACJC,KAAI,SACJC,KAAI,QACJC,KAAI,WACJC,KAAI,SACJC,KAAI,YACJC,KAAI,UACJC,KAAI,YACJC,KAAI,UACJC,KAAI,YACJC,KAAI,UACJC,KAAI,YACJC,KAAI,UACJC,KAAI,WACJC,KAAI,WACJC,KAAI,YACJC,KAAI,WACJC,KAAI,UACJC,KAAI,WACJC,KAAI,UACJC,KAAI,aACJC,KAAI,aACJC,KAAI,aACJC,KAAI,WACJC,KAAI,YACJC,KAAI,YACJC,KAAI,YACJC,KAAI,YACJC,KAAI,YACJC,KAAI,YACJC,KAAI,YACJC,KAAI,YACJC,KAAI,YACJC,KAAI,UACJC,KAAI,WACJC,KAAI,cACJC,KAAI,YACJC,KAAI,WACJC,KAAI,aACJC,KAAI,YACJC,KAAI,aACJC,KAAI,QACJC,KAAI,UACJC,KAAI,SACJC,KAAI,QACJC,KAAI,QACJC,KAAI,YACJC,KAAI,UACJC,KAAI,QACJC,KAAI,UACJC,KAAI,QACJC,KAAI,SACJC,KAAI,QACJC,KAAI,SACJC,KAAI,QACJC,KAAI,YACJC,KAAI,SACJC,KAAI,UACJC,KAAI,QACJC,KAAI,UACJC,KAAI,SACJC,KAAI,QACJC,KAAI,UACJC,KAAI,QACJC,KAAI,SACJC,KAAI,QACJC,KAAI,UACJC,KAAI,SACJC,KAAI,UACJC,KAAI,SACJC,KAAI,SACJC,KAAI,QACJC,KAAI,UACJC,KAAI,SACJC,KAAI,UACJC,KAAI,QACJC,KAAI,SACJC,KAAI,SACJC,KAAI,SACJC,KAAI,SACJC,KAAI,UACJC,KAAI,QACJC,KAAI,UACJC,KAAI,SACJC,KAAI,SACJC,KAAI,SACJC,KAAI,QACJC,KAAI,SACJC,KAAI,QACJC,KAAI,QACJC,KAAI,UACJC,KAAI,UACJC,KAAI,QACJC,KAAI,SACJC,KAAI,UACJC,KAAI,SACJC,KAAI,WACJC,KAAI,QACJC,KAAI,QACJC,KAAI,UACJC,KAAI,UACJC,KAAI,SACJC,KAAI,UACJC,KAAI,SACJC,KAAI,SACJC,KAAI,UACJC,KAAI,SACJC,KAAI,U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OAAM,kBACNC,OAAM,gBACNC,OAAM,kBACNC,OAAM,kBACNC,OAAM,sBACNC,OAAM,gBACNC,OAAM,kBACNC,OAAM,gBACNC,OAAM,mBACNC,OAAM,iBACNC,OAAM,gBACNC,OAAM,iBACNC,OAAM,iBACNC,OAAM,kBACNC,OAAM,kBACNC,OAAM,kBACNC,OAAM,iBACNC,OAAM,kBACNC,OAAM,mBACNC,OAAM,iBACNC,OAAM,eACNC,OAAM,kBACNC,OAAM,sBACNC,OAAM,gBACNC,OAAM,mBACNC,OAAM,kBACNC,OAAM,sBACNC,OAAM,iBACNC,OAAM,oBACNC,OAAM,iBACNC,OAAM,qBACNC,OAAM,iBACNC,OAAM,kBACNC,OAAM,gBACNC,OAAM,oBACNC,OAAM,iBACNC,OAAM,kBACNC,OAAM,iBACNC,OAAM,iBACNC,OAAM,iBACNC,OAAM,iBACNC,OAAM,mBACNC,OAAM,mBACNC,OAAM,gBACNC,OAAM,gBACNC,OAAM,gBACNC,OAAM,iBACNC,OAAM,iBACNC,OAAM,kBACNC,OAAM,iBACNC,OAAM,iBACNC,OAAM,kBACNC,OAAM,qBACNC,OAAM,iBACNC,OAAM,mBACNC,OAAM,kBACNC,OAAM,iBACNC,OAAM,oBACNC,OAAM,iBACNC,OAAM,qBACNC,OAAM,mBACNC,OAAM,eACNC,OAAM,kBACNC,OAAM,gBACNC,OAAM,iBACNC,OAAM,iBACNC,OAAM,kBACNC,OAAM,iBACNC,OAAM,sBACNC,OAAM,oBACNC,OAAM,sBACNC,OAAM,gBACNC,OAAM,sBACNC,OAAM,oBACNC,OAAM,mBACNC,OAAM,oBACNC,OAAM,kBACNC,OAAM,oBACNC,OAAM,oBACNC,OAAM,oBACNC,OAAM,mBACNC,OAAM,iBACNC,OAAM,kBACNC,OAAM,oBACNC,OAAM,oBACNC,OAAM,kBACNC,OAAM,eACNC,OAAM,gBACNC,OAAM,kBACNC,OAAM,iBACNC,OAAM,qBACNC,OAAM,kBACNC,OAAM,iBACNC,OAAM,iBACNC,OAAM,oBACNC,OAAM,sBACNC,OAAM,oBACNC,OAAM,oBACNC,OAAM,iBACNC,OAAM,mBACNC,OAA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","file":"web/ttsMake/index.web-25082001.js?ver=4474d08bcf6ee025dacc","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t};\n\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t0: 0\n \t};\n\n\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"web/ttsMake/chunks/index.web.\" + ({\"1\":\"kgBridge\"}[chunkId]||chunkId) + \"-25082001.js?ver=\" + {\"1\":\"ad58fb550651fb601c61\",\"2\":\"bb1cbeeb0e7d2be8db8a\",\"3\":\"a29d26bc9fb57372c89a\",\"4\":\"4b2573571873256ce710\",\"5\":\"a395a32ec25e90b4db0f\"}[chunkId] + \"&max_age=36148900000\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"//static-lyralab.tencentmusic.com/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\tvar nativeCodeString = '[native code]';\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","module.exports = \"data:image/png;base64,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\"","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nimport ResizeObserver from 'rc-resize-observer';\nimport classNames from 'classnames';\n/**\n * Fill component to provided the scroll content real height.\n */\nvar Filler = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n  var height = _ref.height,\n    offsetY = _ref.offsetY,\n    offsetX = _ref.offsetX,\n    children = _ref.children,\n    prefixCls = _ref.prefixCls,\n    onInnerResize = _ref.onInnerResize,\n    innerProps = _ref.innerProps,\n    rtl = _ref.rtl,\n    extra = _ref.extra;\n  var outerStyle = {};\n  var innerStyle = {\n    display: 'flex',\n    flexDirection: 'column'\n  };\n  if (offsetY !== undefined) {\n    // Not set `width` since this will break `sticky: right`\n    outerStyle = {\n      height: height,\n      position: 'relative',\n      overflow: 'hidden'\n    };\n    innerStyle = _objectSpread(_objectSpread({}, innerStyle), {}, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({\n      transform: \"translateY(\".concat(offsetY, \"px)\")\n    }, rtl ? 'marginRight' : 'marginLeft', -offsetX), \"position\", 'absolute'), \"left\", 0), \"right\", 0), \"top\", 0));\n  }\n  return /*#__PURE__*/React.createElement(\"div\", {\n    style: outerStyle\n  }, /*#__PURE__*/React.createElement(ResizeObserver, {\n    onResize: function onResize(_ref2) {\n      var offsetHeight = _ref2.offsetHeight;\n      if (offsetHeight && onInnerResize) {\n        onInnerResize();\n      }\n    }\n  }, /*#__PURE__*/React.createElement(\"div\", _extends({\n    style: innerStyle,\n    className: classNames(_defineProperty({}, \"\".concat(prefixCls, \"-holder-inner\"), prefixCls)),\n    ref: ref\n  }, innerProps), children, extra)));\n});\nFiller.displayName = 'Filler';\nexport default Filler;","import * as React from 'react';\nexport function Item(_ref) {\n  var children = _ref.children,\n    setRef = _ref.setRef;\n  var refFunc = React.useCallback(function (node) {\n    setRef(node);\n  }, []);\n  return /*#__PURE__*/React.cloneElement(children, {\n    ref: refFunc\n  });\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { findListDiffIndex } from \"../utils/algorithmUtil\";\nexport default function useDiffItem(data, getKey, onDiff) {\n  var _React$useState = React.useState(data),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    prevData = _React$useState2[0],\n    setPrevData = _React$useState2[1];\n  var _React$useState3 = React.useState(null),\n    _React$useState4 = _slicedToArray(_React$useState3, 2),\n    diffItem = _React$useState4[0],\n    setDiffItem = _React$useState4[1];\n  React.useEffect(function () {\n    var diff = findListDiffIndex(prevData || [], data || [], getKey);\n    if ((diff === null || diff === void 0 ? void 0 : diff.index) !== undefined) {\n      onDiff === null || onDiff === void 0 || onDiff(diff.index);\n      setDiffItem(data[diff.index]);\n    }\n    setPrevData(data);\n  }, [data]);\n  return [diffItem];\n}","/**\n * Get index with specific start index one by one. e.g.\n * min: 3, max: 9, start: 6\n *\n * Return index is:\n * [0]: 6\n * [1]: 7\n * [2]: 5\n * [3]: 8\n * [4]: 4\n * [5]: 9\n * [6]: 3\n */\nexport function getIndexByStartLoc(min, max, start, index) {\n  var beforeCount = start - min;\n  var afterCount = max - start;\n  var balanceCount = Math.min(beforeCount, afterCount) * 2;\n\n  // Balance\n  if (index <= balanceCount) {\n    var stepIndex = Math.floor(index / 2);\n    if (index % 2) {\n      return start + stepIndex + 1;\n    }\n    return start - stepIndex;\n  }\n\n  // One is out of range\n  if (beforeCount > afterCount) {\n    return start - (index - afterCount);\n  }\n  return start + (index - beforeCount);\n}\n\n/**\n * We assume that 2 list has only 1 item diff and others keeping the order.\n * So we can use dichotomy algorithm to find changed one.\n */\nexport function findListDiffIndex(originList, targetList, getKey) {\n  var originLen = originList.length;\n  var targetLen = targetList.length;\n  var shortList;\n  var longList;\n  if (originLen === 0 && targetLen === 0) {\n    return null;\n  }\n  if (originLen < targetLen) {\n    shortList = originList;\n    longList = targetList;\n  } else {\n    shortList = targetList;\n    longList = originList;\n  }\n  var notExistKey = {\n    __EMPTY_ITEM__: true\n  };\n  function getItemKey(item) {\n    if (item !== undefined) {\n      return getKey(item);\n    }\n    return notExistKey;\n  }\n\n  // Loop to find diff one\n  var diffIndex = null;\n  var multiple = Math.abs(originLen - targetLen) !== 1;\n  for (var i = 0; i < longList.length; i += 1) {\n    var shortKey = getItemKey(shortList[i]);\n    var longKey = getItemKey(longList[i]);\n    if (shortKey !== longKey) {\n      diffIndex = i;\n      multiple = multiple || shortKey !== getItemKey(longList[i + 1]);\n      break;\n    }\n  }\n  return diffIndex === null ? null : {\n    index: diffIndex,\n    multiple: multiple\n  };\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nvar isFF = (typeof navigator === \"undefined\" ? \"undefined\" : _typeof(navigator)) === 'object' && /Firefox/i.test(navigator.userAgent);\nexport default isFF;","import { useRef } from 'react';\nexport default (function (isScrollAtTop, isScrollAtBottom, isScrollAtLeft, isScrollAtRight) {\n  // Do lock for a wheel when scrolling\n  var lockRef = useRef(false);\n  var lockTimeoutRef = useRef(null);\n  function lockScroll() {\n    clearTimeout(lockTimeoutRef.current);\n    lockRef.current = true;\n    lockTimeoutRef.current = setTimeout(function () {\n      lockRef.current = false;\n    }, 50);\n  }\n\n  // Pass to ref since global add is in closure\n  var scrollPingRef = useRef({\n    top: isScrollAtTop,\n    bottom: isScrollAtBottom,\n    left: isScrollAtLeft,\n    right: isScrollAtRight\n  });\n  scrollPingRef.current.top = isScrollAtTop;\n  scrollPingRef.current.bottom = isScrollAtBottom;\n  scrollPingRef.current.left = isScrollAtLeft;\n  scrollPingRef.current.right = isScrollAtRight;\n  return function (isHorizontal, delta) {\n    var smoothOffset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n    var originScroll = isHorizontal ?\n    // Pass origin wheel when on the left\n    delta < 0 && scrollPingRef.current.left ||\n    // Pass origin wheel when on the right\n    delta > 0 && scrollPingRef.current.right // Pass origin wheel when on the top\n    : delta < 0 && scrollPingRef.current.top ||\n    // Pass origin wheel when on the bottom\n    delta > 0 && scrollPingRef.current.bottom;\n    if (smoothOffset && originScroll) {\n      // No need lock anymore when it's smooth offset from touchMove interval\n      clearTimeout(lockTimeoutRef.current);\n      lockRef.current = false;\n    } else if (!originScroll || lockRef.current) {\n      lockScroll();\n    }\n    return !lockRef.current && originScroll;\n  };\n});","import raf from \"rc-util/es/raf\";\nimport { useRef } from 'react';\nimport isFF from \"../utils/isFirefox\";\nimport useOriginScroll from \"./useOriginScroll\";\nexport default function useFrameWheel(inVirtual, isScrollAtTop, isScrollAtBottom, isScrollAtLeft, isScrollAtRight, horizontalScroll,\n/***\n * Return `true` when you need to prevent default event\n */\nonWheelDelta) {\n  var offsetRef = useRef(0);\n  var nextFrameRef = useRef(null);\n\n  // Firefox patch\n  var wheelValueRef = useRef(null);\n  var isMouseScrollRef = useRef(false);\n\n  // Scroll status sync\n  var originScroll = useOriginScroll(isScrollAtTop, isScrollAtBottom, isScrollAtLeft, isScrollAtRight);\n  function onWheelY(e, deltaY) {\n    raf.cancel(nextFrameRef.current);\n\n    // Do nothing when scroll at the edge, Skip check when is in scroll\n    if (originScroll(false, deltaY)) return;\n\n    // Skip if nest List has handled this event\n    var event = e;\n    if (!event._virtualHandled) {\n      event._virtualHandled = true;\n    } else {\n      return;\n    }\n    offsetRef.current += deltaY;\n    wheelValueRef.current = deltaY;\n\n    // Proxy of scroll events\n    if (!isFF) {\n      event.preventDefault();\n    }\n    nextFrameRef.current = raf(function () {\n      // Patch a multiple for Firefox to fix wheel number too small\n      // ref: https://github.com/ant-design/ant-design/issues/26372#issuecomment-679460266\n      var patchMultiple = isMouseScrollRef.current ? 10 : 1;\n      onWheelDelta(offsetRef.current * patchMultiple, false);\n      offsetRef.current = 0;\n    });\n  }\n  function onWheelX(event, deltaX) {\n    onWheelDelta(deltaX, true);\n    if (!isFF) {\n      event.preventDefault();\n    }\n  }\n\n  // Check for which direction does wheel do. `sx` means `shift + wheel`\n  var wheelDirectionRef = useRef(null);\n  var wheelDirectionCleanRef = useRef(null);\n  function onWheel(event) {\n    if (!inVirtual) return;\n\n    // Wait for 2 frame to clean direction\n    raf.cancel(wheelDirectionCleanRef.current);\n    wheelDirectionCleanRef.current = raf(function () {\n      wheelDirectionRef.current = null;\n    }, 2);\n    var deltaX = event.deltaX,\n      deltaY = event.deltaY,\n      shiftKey = event.shiftKey;\n    var mergedDeltaX = deltaX;\n    var mergedDeltaY = deltaY;\n    if (wheelDirectionRef.current === 'sx' || !wheelDirectionRef.current && (shiftKey || false) && deltaY && !deltaX) {\n      mergedDeltaX = deltaY;\n      mergedDeltaY = 0;\n      wheelDirectionRef.current = 'sx';\n    }\n    var absX = Math.abs(mergedDeltaX);\n    var absY = Math.abs(mergedDeltaY);\n    if (wheelDirectionRef.current === null) {\n      wheelDirectionRef.current = horizontalScroll && absX > absY ? 'x' : 'y';\n    }\n    if (wheelDirectionRef.current === 'y') {\n      onWheelY(event, mergedDeltaY);\n    } else {\n      onWheelX(event, mergedDeltaX);\n    }\n  }\n\n  // A patch for firefox\n  function onFireFoxScroll(event) {\n    if (!inVirtual) return;\n    isMouseScrollRef.current = event.detail === wheelValueRef.current;\n  }\n  return [onWheel, onFireFoxScroll];\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n// Firefox has low performance of map.\nvar CacheMap = /*#__PURE__*/function () {\n  function CacheMap() {\n    _classCallCheck(this, CacheMap);\n    _defineProperty(this, \"maps\", void 0);\n    // Used for cache key\n    // `useMemo` no need to update if `id` not change\n    _defineProperty(this, \"id\", 0);\n    this.maps = Object.create(null);\n  }\n  _createClass(CacheMap, [{\n    key: \"set\",\n    value: function set(key, value) {\n      this.maps[key] = value;\n      this.id += 1;\n    }\n  }, {\n    key: \"get\",\n    value: function get(key) {\n      return this.maps[key];\n    }\n  }]);\n  return CacheMap;\n}();\nexport default CacheMap;","import useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport { useRef } from 'react';\nvar SMOOTH_PTG = 14 / 15;\nexport default function useMobileTouchMove(inVirtual, listRef, callback) {\n  var touchedRef = useRef(false);\n  var touchXRef = useRef(0);\n  var touchYRef = useRef(0);\n  var elementRef = useRef(null);\n\n  // Smooth scroll\n  var intervalRef = useRef(null);\n\n  /* eslint-disable prefer-const */\n  var cleanUpEvents;\n  var onTouchMove = function onTouchMove(e) {\n    if (touchedRef.current) {\n      var currentX = Math.ceil(e.touches[0].pageX);\n      var currentY = Math.ceil(e.touches[0].pageY);\n      var offsetX = touchXRef.current - currentX;\n      var offsetY = touchYRef.current - currentY;\n      var _isHorizontal = Math.abs(offsetX) > Math.abs(offsetY);\n      if (_isHorizontal) {\n        touchXRef.current = currentX;\n      } else {\n        touchYRef.current = currentY;\n      }\n      var scrollHandled = callback(_isHorizontal, _isHorizontal ? offsetX : offsetY, false, e);\n      if (scrollHandled) {\n        e.preventDefault();\n      }\n\n      // Smooth interval\n      clearInterval(intervalRef.current);\n      if (scrollHandled) {\n        intervalRef.current = setInterval(function () {\n          if (_isHorizontal) {\n            offsetX *= SMOOTH_PTG;\n          } else {\n            offsetY *= SMOOTH_PTG;\n          }\n          var offset = Math.floor(_isHorizontal ? offsetX : offsetY);\n          if (!callback(_isHorizontal, offset, true) || Math.abs(offset) <= 0.1) {\n            clearInterval(intervalRef.current);\n          }\n        }, 16);\n      }\n    }\n  };\n  var onTouchEnd = function onTouchEnd() {\n    touchedRef.current = false;\n    cleanUpEvents();\n  };\n  var onTouchStart = function onTouchStart(e) {\n    cleanUpEvents();\n    if (e.touches.length === 1 && !touchedRef.current) {\n      touchedRef.current = true;\n      touchXRef.current = Math.ceil(e.touches[0].pageX);\n      touchYRef.current = Math.ceil(e.touches[0].pageY);\n      elementRef.current = e.target;\n      elementRef.current.addEventListener('touchmove', onTouchMove, {\n        passive: false\n      });\n      elementRef.current.addEventListener('touchend', onTouchEnd, {\n        passive: true\n      });\n    }\n  };\n  cleanUpEvents = function cleanUpEvents() {\n    if (elementRef.current) {\n      elementRef.current.removeEventListener('touchmove', onTouchMove);\n      elementRef.current.removeEventListener('touchend', onTouchEnd);\n    }\n  };\n  useLayoutEffect(function () {\n    if (inVirtual) {\n      listRef.current.addEventListener('touchstart', onTouchStart, {\n        passive: true\n      });\n    }\n    return function () {\n      var _listRef$current;\n      (_listRef$current = listRef.current) === null || _listRef$current === void 0 || _listRef$current.removeEventListener('touchstart', onTouchStart);\n      cleanUpEvents();\n      clearInterval(intervalRef.current);\n    };\n  }, [inVirtual]);\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\n/* eslint-disable no-param-reassign */\nimport * as React from 'react';\nimport raf from \"rc-util/es/raf\";\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport { warning } from 'rc-util';\nvar MAX_TIMES = 10;\nexport default function useScrollTo(containerRef, data, heights, itemHeight, getKey, collectHeight, syncScrollTop, triggerFlash) {\n  var scrollRef = React.useRef();\n  var _React$useState = React.useState(null),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    syncState = _React$useState2[0],\n    setSyncState = _React$useState2[1];\n\n  // ========================== Sync Scroll ==========================\n  useLayoutEffect(function () {\n    if (syncState && syncState.times < MAX_TIMES) {\n      // Never reach\n      if (!containerRef.current) {\n        setSyncState(function (ori) {\n          return _objectSpread({}, ori);\n        });\n        return;\n      }\n      collectHeight();\n      var targetAlign = syncState.targetAlign,\n        originAlign = syncState.originAlign,\n        index = syncState.index,\n        offset = syncState.offset;\n      var height = containerRef.current.clientHeight;\n      var needCollectHeight = false;\n      var newTargetAlign = targetAlign;\n      var targetTop = null;\n\n      // Go to next frame if height not exist\n      if (height) {\n        var mergedAlign = targetAlign || originAlign;\n\n        // Get top & bottom\n        var stackTop = 0;\n        var itemTop = 0;\n        var itemBottom = 0;\n        var maxLen = Math.min(data.length - 1, index);\n        for (var i = 0; i <= maxLen; i += 1) {\n          var key = getKey(data[i]);\n          itemTop = stackTop;\n          var cacheHeight = heights.get(key);\n          itemBottom = itemTop + (cacheHeight === undefined ? itemHeight : cacheHeight);\n          stackTop = itemBottom;\n        }\n\n        // Check if need sync height (visible range has item not record height)\n        var leftHeight = mergedAlign === 'top' ? offset : height - offset;\n        for (var _i = maxLen; _i >= 0; _i -= 1) {\n          var _key = getKey(data[_i]);\n          var _cacheHeight = heights.get(_key);\n          if (_cacheHeight === undefined) {\n            needCollectHeight = true;\n            break;\n          }\n          leftHeight -= _cacheHeight;\n          if (leftHeight <= 0) {\n            break;\n          }\n        }\n\n        // Scroll to\n        switch (mergedAlign) {\n          case 'top':\n            targetTop = itemTop - offset;\n            break;\n          case 'bottom':\n            targetTop = itemBottom - height + offset;\n            break;\n          default:\n            {\n              var scrollTop = containerRef.current.scrollTop;\n              var scrollBottom = scrollTop + height;\n              if (itemTop < scrollTop) {\n                newTargetAlign = 'top';\n              } else if (itemBottom > scrollBottom) {\n                newTargetAlign = 'bottom';\n              }\n            }\n        }\n        if (targetTop !== null) {\n          syncScrollTop(targetTop);\n        }\n\n        // One more time for sync\n        if (targetTop !== syncState.lastTop) {\n          needCollectHeight = true;\n        }\n      }\n\n      // Trigger next effect\n      if (needCollectHeight) {\n        setSyncState(_objectSpread(_objectSpread({}, syncState), {}, {\n          times: syncState.times + 1,\n          targetAlign: newTargetAlign,\n          lastTop: targetTop\n        }));\n      }\n    } else if (process.env.NODE_ENV !== 'production' && (syncState === null || syncState === void 0 ? void 0 : syncState.times) === MAX_TIMES) {\n      warning(false, 'Seems `scrollTo` with `rc-virtual-list` reach the max limitation. Please fire issue for us. Thanks.');\n    }\n  }, [syncState, containerRef.current]);\n\n  // =========================== Scroll To ===========================\n  return function (arg) {\n    // When not argument provided, we think dev may want to show the scrollbar\n    if (arg === null || arg === undefined) {\n      triggerFlash();\n      return;\n    }\n\n    // Normal scroll logic\n    raf.cancel(scrollRef.current);\n    if (typeof arg === 'number') {\n      syncScrollTop(arg);\n    } else if (arg && _typeof(arg) === 'object') {\n      var index;\n      var align = arg.align;\n      if ('index' in arg) {\n        index = arg.index;\n      } else {\n        index = data.findIndex(function (item) {\n          return getKey(item) === arg.key;\n        });\n      }\n      var _arg$offset = arg.offset,\n        offset = _arg$offset === void 0 ? 0 : _arg$offset;\n      setSyncState({\n        times: 0,\n        index: index,\n        offset: offset,\n        originAlign: align\n      });\n    }\n  };\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport classNames from 'classnames';\nimport raf from \"rc-util/es/raf\";\nimport * as React from 'react';\nfunction getPageXY(e, horizontal) {\n  var obj = 'touches' in e ? e.touches[0] : e;\n  return obj[horizontal ? 'pageX' : 'pageY'];\n}\nvar ScrollBar = /*#__PURE__*/React.forwardRef(function (props, ref) {\n  var prefixCls = props.prefixCls,\n    rtl = props.rtl,\n    scrollOffset = props.scrollOffset,\n    scrollRange = props.scrollRange,\n    onStartMove = props.onStartMove,\n    onStopMove = props.onStopMove,\n    onScroll = props.onScroll,\n    horizontal = props.horizontal,\n    spinSize = props.spinSize,\n    containerSize = props.containerSize,\n    style = props.style,\n    propsThumbStyle = props.thumbStyle;\n  var _React$useState = React.useState(false),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    dragging = _React$useState2[0],\n    setDragging = _React$useState2[1];\n  var _React$useState3 = React.useState(null),\n    _React$useState4 = _slicedToArray(_React$useState3, 2),\n    pageXY = _React$useState4[0],\n    setPageXY = _React$useState4[1];\n  var _React$useState5 = React.useState(null),\n    _React$useState6 = _slicedToArray(_React$useState5, 2),\n    startTop = _React$useState6[0],\n    setStartTop = _React$useState6[1];\n  var isLTR = !rtl;\n\n  // ========================= Refs =========================\n  var scrollbarRef = React.useRef();\n  var thumbRef = React.useRef();\n\n  // ======================= Visible ========================\n  var _React$useState7 = React.useState(false),\n    _React$useState8 = _slicedToArray(_React$useState7, 2),\n    visible = _React$useState8[0],\n    setVisible = _React$useState8[1];\n  var visibleTimeoutRef = React.useRef();\n  var delayHidden = function delayHidden() {\n    clearTimeout(visibleTimeoutRef.current);\n    setVisible(true);\n    visibleTimeoutRef.current = setTimeout(function () {\n      setVisible(false);\n    }, 3000);\n  };\n\n  // ======================== Range =========================\n  var enableScrollRange = scrollRange - containerSize || 0;\n  var enableOffsetRange = containerSize - spinSize || 0;\n\n  // ========================= Top ==========================\n  var top = React.useMemo(function () {\n    if (scrollOffset === 0 || enableScrollRange === 0) {\n      return 0;\n    }\n    var ptg = scrollOffset / enableScrollRange;\n    return ptg * enableOffsetRange;\n  }, [scrollOffset, enableScrollRange, enableOffsetRange]);\n\n  // ====================== Container =======================\n  var onContainerMouseDown = function onContainerMouseDown(e) {\n    e.stopPropagation();\n    e.preventDefault();\n  };\n\n  // ======================== Thumb =========================\n  var stateRef = React.useRef({\n    top: top,\n    dragging: dragging,\n    pageY: pageXY,\n    startTop: startTop\n  });\n  stateRef.current = {\n    top: top,\n    dragging: dragging,\n    pageY: pageXY,\n    startTop: startTop\n  };\n  var onThumbMouseDown = function onThumbMouseDown(e) {\n    setDragging(true);\n    setPageXY(getPageXY(e, horizontal));\n    setStartTop(stateRef.current.top);\n    onStartMove();\n    e.stopPropagation();\n    e.preventDefault();\n  };\n\n  // ======================== Effect ========================\n\n  // React make event as passive, but we need to preventDefault\n  // Add event on dom directly instead.\n  // ref: https://github.com/facebook/react/issues/9809\n  React.useEffect(function () {\n    var onScrollbarTouchStart = function onScrollbarTouchStart(e) {\n      e.preventDefault();\n    };\n    var scrollbarEle = scrollbarRef.current;\n    var thumbEle = thumbRef.current;\n    scrollbarEle.addEventListener('touchstart', onScrollbarTouchStart, {\n      passive: false\n    });\n    thumbEle.addEventListener('touchstart', onThumbMouseDown, {\n      passive: false\n    });\n    return function () {\n      scrollbarEle.removeEventListener('touchstart', onScrollbarTouchStart);\n      thumbEle.removeEventListener('touchstart', onThumbMouseDown);\n    };\n  }, []);\n\n  // Pass to effect\n  var enableScrollRangeRef = React.useRef();\n  enableScrollRangeRef.current = enableScrollRange;\n  var enableOffsetRangeRef = React.useRef();\n  enableOffsetRangeRef.current = enableOffsetRange;\n  React.useEffect(function () {\n    if (dragging) {\n      var moveRafId;\n      var onMouseMove = function onMouseMove(e) {\n        var _stateRef$current = stateRef.current,\n          stateDragging = _stateRef$current.dragging,\n          statePageY = _stateRef$current.pageY,\n          stateStartTop = _stateRef$current.startTop;\n        raf.cancel(moveRafId);\n        var rect = scrollbarRef.current.getBoundingClientRect();\n        var scale = containerSize / (horizontal ? rect.width : rect.height);\n        if (stateDragging) {\n          var offset = (getPageXY(e, horizontal) - statePageY) * scale;\n          var newTop = stateStartTop;\n          if (!isLTR && horizontal) {\n            newTop -= offset;\n          } else {\n            newTop += offset;\n          }\n          var tmpEnableScrollRange = enableScrollRangeRef.current;\n          var tmpEnableOffsetRange = enableOffsetRangeRef.current;\n          var ptg = tmpEnableOffsetRange ? newTop / tmpEnableOffsetRange : 0;\n          var newScrollTop = Math.ceil(ptg * tmpEnableScrollRange);\n          newScrollTop = Math.max(newScrollTop, 0);\n          newScrollTop = Math.min(newScrollTop, tmpEnableScrollRange);\n          moveRafId = raf(function () {\n            onScroll(newScrollTop, horizontal);\n          });\n        }\n      };\n      var onMouseUp = function onMouseUp() {\n        setDragging(false);\n        onStopMove();\n      };\n      window.addEventListener('mousemove', onMouseMove, {\n        passive: true\n      });\n      window.addEventListener('touchmove', onMouseMove, {\n        passive: true\n      });\n      window.addEventListener('mouseup', onMouseUp, {\n        passive: true\n      });\n      window.addEventListener('touchend', onMouseUp, {\n        passive: true\n      });\n      return function () {\n        window.removeEventListener('mousemove', onMouseMove);\n        window.removeEventListener('touchmove', onMouseMove);\n        window.removeEventListener('mouseup', onMouseUp);\n        window.removeEventListener('touchend', onMouseUp);\n        raf.cancel(moveRafId);\n      };\n    }\n  }, [dragging]);\n  React.useEffect(function () {\n    delayHidden();\n    return function () {\n      clearTimeout(visibleTimeoutRef.current);\n    };\n  }, [scrollOffset]);\n\n  // ====================== Imperative ======================\n  React.useImperativeHandle(ref, function () {\n    return {\n      delayHidden: delayHidden\n    };\n  });\n\n  // ======================== Render ========================\n  var scrollbarPrefixCls = \"\".concat(prefixCls, \"-scrollbar\");\n  var containerStyle = {\n    position: 'absolute',\n    visibility: visible ? null : 'hidden'\n  };\n  var thumbStyle = {\n    position: 'absolute',\n    background: 'rgba(0, 0, 0, 0.5)',\n    borderRadius: 99,\n    cursor: 'pointer',\n    userSelect: 'none'\n  };\n  if (horizontal) {\n    // Container\n    containerStyle.height = 8;\n    containerStyle.left = 0;\n    containerStyle.right = 0;\n    containerStyle.bottom = 0;\n\n    // Thumb\n    thumbStyle.height = '100%';\n    thumbStyle.width = spinSize;\n    if (isLTR) {\n      thumbStyle.left = top;\n    } else {\n      thumbStyle.right = top;\n    }\n  } else {\n    // Container\n    containerStyle.width = 8;\n    containerStyle.top = 0;\n    containerStyle.bottom = 0;\n    if (isLTR) {\n      containerStyle.right = 0;\n    } else {\n      containerStyle.left = 0;\n    }\n\n    // Thumb\n    thumbStyle.width = '100%';\n    thumbStyle.height = spinSize;\n    thumbStyle.top = top;\n  }\n  return /*#__PURE__*/React.createElement(\"div\", {\n    ref: scrollbarRef,\n    className: classNames(scrollbarPrefixCls, _defineProperty(_defineProperty(_defineProperty({}, \"\".concat(scrollbarPrefixCls, \"-horizontal\"), horizontal), \"\".concat(scrollbarPrefixCls, \"-vertical\"), !horizontal), \"\".concat(scrollbarPrefixCls, \"-visible\"), visible)),\n    style: _objectSpread(_objectSpread({}, containerStyle), style),\n    onMouseDown: onContainerMouseDown,\n    onMouseMove: delayHidden\n  }, /*#__PURE__*/React.createElement(\"div\", {\n    ref: thumbRef,\n    className: classNames(\"\".concat(scrollbarPrefixCls, \"-thumb\"), _defineProperty({}, \"\".concat(scrollbarPrefixCls, \"-thumb-moving\"), dragging)),\n    style: _objectSpread(_objectSpread({}, thumbStyle), propsThumbStyle),\n    onMouseDown: onThumbMouseDown\n  }));\n});\nif (process.env.NODE_ENV !== 'production') {\n  ScrollBar.displayName = 'ScrollBar';\n}\nexport default ScrollBar;","var MIN_SIZE = 20;\nexport function getSpinSize() {\n  var containerSize = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n  var scrollRange = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n  var baseSize = containerSize / scrollRange * containerSize;\n  if (isNaN(baseSize)) {\n    baseSize = 0;\n  }\n  baseSize = Math.max(baseSize, MIN_SIZE);\n  return Math.floor(baseSize);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"className\", \"height\", \"itemHeight\", \"fullHeight\", \"style\", \"data\", \"children\", \"itemKey\", \"virtual\", \"direction\", \"scrollWidth\", \"component\", \"onScroll\", \"onVirtualScroll\", \"onVisibleChange\", \"innerProps\", \"extraRender\", \"styles\"];\nimport classNames from 'classnames';\nimport ResizeObserver from 'rc-resize-observer';\nimport { useEvent } from 'rc-util';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport * as React from 'react';\nimport { useRef, useState } from 'react';\nimport { flushSync } from 'react-dom';\nimport Filler from \"./Filler\";\nimport useChildren from \"./hooks/useChildren\";\nimport useDiffItem from \"./hooks/useDiffItem\";\nimport useFrameWheel from \"./hooks/useFrameWheel\";\nimport { useGetSize } from \"./hooks/useGetSize\";\nimport useHeights from \"./hooks/useHeights\";\nimport useMobileTouchMove from \"./hooks/useMobileTouchMove\";\nimport useOriginScroll from \"./hooks/useOriginScroll\";\nimport useScrollTo from \"./hooks/useScrollTo\";\nimport ScrollBar from \"./ScrollBar\";\nimport { getSpinSize } from \"./utils/scrollbarUtil\";\nvar EMPTY_DATA = [];\nvar ScrollStyle = {\n  overflowY: 'auto',\n  overflowAnchor: 'none'\n};\nexport function RawList(props, ref) {\n  var _props$prefixCls = props.prefixCls,\n    prefixCls = _props$prefixCls === void 0 ? 'rc-virtual-list' : _props$prefixCls,\n    className = props.className,\n    height = props.height,\n    itemHeight = props.itemHeight,\n    _props$fullHeight = props.fullHeight,\n    fullHeight = _props$fullHeight === void 0 ? true : _props$fullHeight,\n    style = props.style,\n    data = props.data,\n    children = props.children,\n    itemKey = props.itemKey,\n    virtual = props.virtual,\n    direction = props.direction,\n    scrollWidth = props.scrollWidth,\n    _props$component = props.component,\n    Component = _props$component === void 0 ? 'div' : _props$component,\n    onScroll = props.onScroll,\n    onVirtualScroll = props.onVirtualScroll,\n    onVisibleChange = props.onVisibleChange,\n    innerProps = props.innerProps,\n    extraRender = props.extraRender,\n    styles = props.styles,\n    restProps = _objectWithoutProperties(props, _excluded);\n\n  // =============================== Item Key ===============================\n  var getKey = React.useCallback(function (item) {\n    if (typeof itemKey === 'function') {\n      return itemKey(item);\n    }\n    return item === null || item === void 0 ? void 0 : item[itemKey];\n  }, [itemKey]);\n\n  // ================================ Height ================================\n  var _useHeights = useHeights(getKey, null, null),\n    _useHeights2 = _slicedToArray(_useHeights, 4),\n    setInstanceRef = _useHeights2[0],\n    collectHeight = _useHeights2[1],\n    heights = _useHeights2[2],\n    heightUpdatedMark = _useHeights2[3];\n\n  // ================================= MISC =================================\n  var useVirtual = !!(virtual !== false && height && itemHeight);\n  var containerHeight = React.useMemo(function () {\n    return Object.values(heights.maps).reduce(function (total, curr) {\n      return total + curr;\n    }, 0);\n  }, [heights.id, heights.maps]);\n  var inVirtual = useVirtual && data && (Math.max(itemHeight * data.length, containerHeight) > height || !!scrollWidth);\n  var isRTL = direction === 'rtl';\n  var mergedClassName = classNames(prefixCls, _defineProperty({}, \"\".concat(prefixCls, \"-rtl\"), isRTL), className);\n  var mergedData = data || EMPTY_DATA;\n  var componentRef = useRef();\n  var fillerInnerRef = useRef();\n  var containerRef = useRef();\n\n  // =============================== Item Key ===============================\n\n  var _useState = useState(0),\n    _useState2 = _slicedToArray(_useState, 2),\n    offsetTop = _useState2[0],\n    setOffsetTop = _useState2[1];\n  var _useState3 = useState(0),\n    _useState4 = _slicedToArray(_useState3, 2),\n    offsetLeft = _useState4[0],\n    setOffsetLeft = _useState4[1];\n  var _useState5 = useState(false),\n    _useState6 = _slicedToArray(_useState5, 2),\n    scrollMoving = _useState6[0],\n    setScrollMoving = _useState6[1];\n  var onScrollbarStartMove = function onScrollbarStartMove() {\n    setScrollMoving(true);\n  };\n  var onScrollbarStopMove = function onScrollbarStopMove() {\n    setScrollMoving(false);\n  };\n  var sharedConfig = {\n    getKey: getKey\n  };\n\n  // ================================ Scroll ================================\n  function syncScrollTop(newTop) {\n    setOffsetTop(function (origin) {\n      var value;\n      if (typeof newTop === 'function') {\n        value = newTop(origin);\n      } else {\n        value = newTop;\n      }\n      var alignedTop = keepInRange(value);\n      componentRef.current.scrollTop = alignedTop;\n      return alignedTop;\n    });\n  }\n\n  // ================================ Legacy ================================\n  // Put ref here since the range is generate by follow\n  var rangeRef = useRef({\n    start: 0,\n    end: mergedData.length\n  });\n  var diffItemRef = useRef();\n  var _useDiffItem = useDiffItem(mergedData, getKey),\n    _useDiffItem2 = _slicedToArray(_useDiffItem, 1),\n    diffItem = _useDiffItem2[0];\n  diffItemRef.current = diffItem;\n\n  // ========================== Visible Calculation =========================\n  var _React$useMemo = React.useMemo(function () {\n      if (!useVirtual) {\n        return {\n          scrollHeight: undefined,\n          start: 0,\n          end: mergedData.length - 1,\n          offset: undefined\n        };\n      }\n\n      // Always use virtual scroll bar in avoid shaking\n      if (!inVirtual) {\n        var _fillerInnerRef$curre;\n        return {\n          scrollHeight: ((_fillerInnerRef$curre = fillerInnerRef.current) === null || _fillerInnerRef$curre === void 0 ? void 0 : _fillerInnerRef$curre.offsetHeight) || 0,\n          start: 0,\n          end: mergedData.length - 1,\n          offset: undefined\n        };\n      }\n      var itemTop = 0;\n      var startIndex;\n      var startOffset;\n      var endIndex;\n      var dataLen = mergedData.length;\n      for (var i = 0; i < dataLen; i += 1) {\n        var _item = mergedData[i];\n        var key = getKey(_item);\n        var cacheHeight = heights.get(key);\n        var currentItemBottom = itemTop + (cacheHeight === undefined ? itemHeight : cacheHeight);\n\n        // Check item top in the range\n        if (currentItemBottom >= offsetTop && startIndex === undefined) {\n          startIndex = i;\n          startOffset = itemTop;\n        }\n\n        // Check item bottom in the range. We will render additional one item for motion usage\n        if (currentItemBottom > offsetTop + height && endIndex === undefined) {\n          endIndex = i;\n        }\n        itemTop = currentItemBottom;\n      }\n\n      // When scrollTop at the end but data cut to small count will reach this\n      if (startIndex === undefined) {\n        startIndex = 0;\n        startOffset = 0;\n        endIndex = Math.ceil(height / itemHeight);\n      }\n      if (endIndex === undefined) {\n        endIndex = mergedData.length - 1;\n      }\n\n      // Give cache to improve scroll experience\n      endIndex = Math.min(endIndex + 1, mergedData.length - 1);\n      return {\n        scrollHeight: itemTop,\n        start: startIndex,\n        end: endIndex,\n        offset: startOffset\n      };\n    }, [inVirtual, useVirtual, offsetTop, mergedData, heightUpdatedMark, height]),\n    scrollHeight = _React$useMemo.scrollHeight,\n    start = _React$useMemo.start,\n    end = _React$useMemo.end,\n    fillerOffset = _React$useMemo.offset;\n  rangeRef.current.start = start;\n  rangeRef.current.end = end;\n\n  // ================================= Size =================================\n  var _React$useState = React.useState({\n      width: 0,\n      height: height\n    }),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    size = _React$useState2[0],\n    setSize = _React$useState2[1];\n  var onHolderResize = function onHolderResize(sizeInfo) {\n    setSize({\n      width: sizeInfo.offsetWidth,\n      height: sizeInfo.offsetHeight\n    });\n  };\n\n  // Hack on scrollbar to enable flash call\n  var verticalScrollBarRef = useRef();\n  var horizontalScrollBarRef = useRef();\n  var horizontalScrollBarSpinSize = React.useMemo(function () {\n    return getSpinSize(size.width, scrollWidth);\n  }, [size.width, scrollWidth]);\n  var verticalScrollBarSpinSize = React.useMemo(function () {\n    return getSpinSize(size.height, scrollHeight);\n  }, [size.height, scrollHeight]);\n\n  // =============================== In Range ===============================\n  var maxScrollHeight = scrollHeight - height;\n  var maxScrollHeightRef = useRef(maxScrollHeight);\n  maxScrollHeightRef.current = maxScrollHeight;\n  function keepInRange(newScrollTop) {\n    var newTop = newScrollTop;\n    if (!Number.isNaN(maxScrollHeightRef.current)) {\n      newTop = Math.min(newTop, maxScrollHeightRef.current);\n    }\n    newTop = Math.max(newTop, 0);\n    return newTop;\n  }\n  var isScrollAtTop = offsetTop <= 0;\n  var isScrollAtBottom = offsetTop >= maxScrollHeight;\n  var isScrollAtLeft = offsetLeft <= 0;\n  var isScrollAtRight = offsetLeft >= scrollWidth;\n  var originScroll = useOriginScroll(isScrollAtTop, isScrollAtBottom, isScrollAtLeft, isScrollAtRight);\n\n  // ================================ Scroll ================================\n  var getVirtualScrollInfo = function getVirtualScrollInfo() {\n    return {\n      x: isRTL ? -offsetLeft : offsetLeft,\n      y: offsetTop\n    };\n  };\n  var lastVirtualScrollInfoRef = useRef(getVirtualScrollInfo());\n  var triggerScroll = useEvent(function (params) {\n    if (onVirtualScroll) {\n      var nextInfo = _objectSpread(_objectSpread({}, getVirtualScrollInfo()), params);\n\n      // Trigger when offset changed\n      if (lastVirtualScrollInfoRef.current.x !== nextInfo.x || lastVirtualScrollInfoRef.current.y !== nextInfo.y) {\n        onVirtualScroll(nextInfo);\n        lastVirtualScrollInfoRef.current = nextInfo;\n      }\n    }\n  });\n  function onScrollBar(newScrollOffset, horizontal) {\n    var newOffset = newScrollOffset;\n    if (horizontal) {\n      flushSync(function () {\n        setOffsetLeft(newOffset);\n      });\n      triggerScroll();\n    } else {\n      syncScrollTop(newOffset);\n    }\n  }\n\n  // When data size reduce. It may trigger native scroll event back to fit scroll position\n  function onFallbackScroll(e) {\n    var newScrollTop = e.currentTarget.scrollTop;\n    if (newScrollTop !== offsetTop) {\n      syncScrollTop(newScrollTop);\n    }\n\n    // Trigger origin onScroll\n    onScroll === null || onScroll === void 0 || onScroll(e);\n    triggerScroll();\n  }\n  var keepInHorizontalRange = function keepInHorizontalRange(nextOffsetLeft) {\n    var tmpOffsetLeft = nextOffsetLeft;\n    var max = !!scrollWidth ? scrollWidth - size.width : 0;\n    tmpOffsetLeft = Math.max(tmpOffsetLeft, 0);\n    tmpOffsetLeft = Math.min(tmpOffsetLeft, max);\n    return tmpOffsetLeft;\n  };\n  var onWheelDelta = useEvent(function (offsetXY, fromHorizontal) {\n    if (fromHorizontal) {\n      flushSync(function () {\n        setOffsetLeft(function (left) {\n          var nextOffsetLeft = left + (isRTL ? -offsetXY : offsetXY);\n          return keepInHorizontalRange(nextOffsetLeft);\n        });\n      });\n      triggerScroll();\n    } else {\n      syncScrollTop(function (top) {\n        var newTop = top + offsetXY;\n        return newTop;\n      });\n    }\n  });\n\n  // Since this added in global,should use ref to keep update\n  var _useFrameWheel = useFrameWheel(useVirtual, isScrollAtTop, isScrollAtBottom, isScrollAtLeft, isScrollAtRight, !!scrollWidth, onWheelDelta),\n    _useFrameWheel2 = _slicedToArray(_useFrameWheel, 2),\n    onRawWheel = _useFrameWheel2[0],\n    onFireFoxScroll = _useFrameWheel2[1];\n\n  // Mobile touch move\n  useMobileTouchMove(useVirtual, componentRef, function (isHorizontal, delta, smoothOffset, e) {\n    var event = e;\n    if (originScroll(isHorizontal, delta, smoothOffset)) {\n      return false;\n    }\n\n    // Fix nest List trigger TouchMove event\n    if (!event || !event._virtualHandled) {\n      if (event) {\n        event._virtualHandled = true;\n      }\n      onRawWheel({\n        preventDefault: function preventDefault() {},\n        deltaX: isHorizontal ? delta : 0,\n        deltaY: isHorizontal ? 0 : delta\n      });\n      return true;\n    }\n    return false;\n  });\n  useLayoutEffect(function () {\n    // Firefox only\n    function onMozMousePixelScroll(e) {\n      if (useVirtual) {\n        e.preventDefault();\n      }\n    }\n    var componentEle = componentRef.current;\n    componentEle.addEventListener('wheel', onRawWheel, {\n      passive: false\n    });\n    componentEle.addEventListener('DOMMouseScroll', onFireFoxScroll, {\n      passive: true\n    });\n    componentEle.addEventListener('MozMousePixelScroll', onMozMousePixelScroll, {\n      passive: false\n    });\n    return function () {\n      componentEle.removeEventListener('wheel', onRawWheel);\n      componentEle.removeEventListener('DOMMouseScroll', onFireFoxScroll);\n      componentEle.removeEventListener('MozMousePixelScroll', onMozMousePixelScroll);\n    };\n  }, [useVirtual]);\n\n  // Sync scroll left\n  useLayoutEffect(function () {\n    if (scrollWidth) {\n      var newOffsetLeft = keepInHorizontalRange(offsetLeft);\n      setOffsetLeft(newOffsetLeft);\n      triggerScroll({\n        x: newOffsetLeft\n      });\n    }\n  }, [size.width, scrollWidth]);\n\n  // ================================= Ref ==================================\n  var delayHideScrollBar = function delayHideScrollBar() {\n    var _verticalScrollBarRef, _horizontalScrollBarR;\n    (_verticalScrollBarRef = verticalScrollBarRef.current) === null || _verticalScrollBarRef === void 0 || _verticalScrollBarRef.delayHidden();\n    (_horizontalScrollBarR = horizontalScrollBarRef.current) === null || _horizontalScrollBarR === void 0 || _horizontalScrollBarR.delayHidden();\n  };\n  var _scrollTo = useScrollTo(componentRef, mergedData, heights, itemHeight, getKey, function () {\n    return collectHeight(true);\n  }, syncScrollTop, delayHideScrollBar);\n  React.useImperativeHandle(ref, function () {\n    return {\n      nativeElement: containerRef.current,\n      getScrollInfo: getVirtualScrollInfo,\n      scrollTo: function scrollTo(config) {\n        function isPosScroll(arg) {\n          return arg && _typeof(arg) === 'object' && ('left' in arg || 'top' in arg);\n        }\n        if (isPosScroll(config)) {\n          // Scroll X\n          if (config.left !== undefined) {\n            setOffsetLeft(keepInHorizontalRange(config.left));\n          }\n\n          // Scroll Y\n          _scrollTo(config.top);\n        } else {\n          _scrollTo(config);\n        }\n      }\n    };\n  });\n\n  // ================================ Effect ================================\n  /** We need told outside that some list not rendered */\n  useLayoutEffect(function () {\n    if (onVisibleChange) {\n      var renderList = mergedData.slice(start, end + 1);\n      onVisibleChange(renderList, mergedData);\n    }\n  }, [start, end, mergedData]);\n\n  // ================================ Extra =================================\n  var getSize = useGetSize(mergedData, getKey, heights, itemHeight);\n  var extraContent = extraRender === null || extraRender === void 0 ? void 0 : extraRender({\n    start: start,\n    end: end,\n    virtual: inVirtual,\n    offsetX: offsetLeft,\n    offsetY: fillerOffset,\n    rtl: isRTL,\n    getSize: getSize\n  });\n\n  // ================================ Render ================================\n  var listChildren = useChildren(mergedData, start, end, scrollWidth, offsetLeft, setInstanceRef, children, sharedConfig);\n  var componentStyle = null;\n  if (height) {\n    componentStyle = _objectSpread(_defineProperty({}, fullHeight ? 'height' : 'maxHeight', height), ScrollStyle);\n    if (useVirtual) {\n      componentStyle.overflowY = 'hidden';\n      if (scrollWidth) {\n        componentStyle.overflowX = 'hidden';\n      }\n      if (scrollMoving) {\n        componentStyle.pointerEvents = 'none';\n      }\n    }\n  }\n  var containerProps = {};\n  if (isRTL) {\n    containerProps.dir = 'rtl';\n  }\n  return /*#__PURE__*/React.createElement(\"div\", _extends({\n    ref: containerRef,\n    style: _objectSpread(_objectSpread({}, style), {}, {\n      position: 'relative'\n    }),\n    className: mergedClassName\n  }, containerProps, restProps), /*#__PURE__*/React.createElement(ResizeObserver, {\n    onResize: onHolderResize\n  }, /*#__PURE__*/React.createElement(Component, {\n    className: \"\".concat(prefixCls, \"-holder\"),\n    style: componentStyle,\n    ref: componentRef,\n    onScroll: onFallbackScroll,\n    onMouseEnter: delayHideScrollBar\n  }, /*#__PURE__*/React.createElement(Filler, {\n    prefixCls: prefixCls,\n    height: scrollHeight,\n    offsetX: offsetLeft,\n    offsetY: fillerOffset,\n    scrollWidth: scrollWidth,\n    onInnerResize: collectHeight,\n    ref: fillerInnerRef,\n    innerProps: innerProps,\n    rtl: isRTL,\n    extra: extraContent\n  }, listChildren))), inVirtual && scrollHeight > height && /*#__PURE__*/React.createElement(ScrollBar, {\n    ref: verticalScrollBarRef,\n    prefixCls: prefixCls,\n    scrollOffset: offsetTop,\n    scrollRange: scrollHeight,\n    rtl: isRTL,\n    onScroll: onScrollBar,\n    onStartMove: onScrollbarStartMove,\n    onStopMove: onScrollbarStopMove,\n    spinSize: verticalScrollBarSpinSize,\n    containerSize: size.height,\n    style: styles === null || styles === void 0 ? void 0 : styles.verticalScrollBar,\n    thumbStyle: styles === null || styles === void 0 ? void 0 : styles.verticalScrollBarThumb\n  }), inVirtual && scrollWidth > size.width && /*#__PURE__*/React.createElement(ScrollBar, {\n    ref: horizontalScrollBarRef,\n    prefixCls: prefixCls,\n    scrollOffset: offsetLeft,\n    scrollRange: scrollWidth,\n    rtl: isRTL,\n    onScroll: onScrollBar,\n    onStartMove: onScrollbarStartMove,\n    onStopMove: onScrollbarStopMove,\n    spinSize: horizontalScrollBarSpinSize,\n    containerSize: size.width,\n    horizontal: true,\n    style: styles === null || styles === void 0 ? void 0 : styles.horizontalScrollBar,\n    thumbStyle: styles === null || styles === void 0 ? void 0 : styles.horizontalScrollBarThumb\n  }));\n}\nvar List = /*#__PURE__*/React.forwardRef(RawList);\nList.displayName = 'List';\nexport default List;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { useRef, useEffect } from 'react';\nimport findDOMNode from \"rc-util/es/Dom/findDOMNode\";\nimport raf from \"rc-util/es/raf\";\nimport CacheMap from \"../utils/CacheMap\";\nexport default function useHeights(getKey, onItemAdd, onItemRemove) {\n  var _React$useState = React.useState(0),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    updatedMark = _React$useState2[0],\n    setUpdatedMark = _React$useState2[1];\n  var instanceRef = useRef(new Map());\n  var heightsRef = useRef(new CacheMap());\n  var collectRafRef = useRef();\n  function cancelRaf() {\n    raf.cancel(collectRafRef.current);\n  }\n  function collectHeight() {\n    var sync = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n    cancelRaf();\n    var doCollect = function doCollect() {\n      instanceRef.current.forEach(function (element, key) {\n        if (element && element.offsetParent) {\n          var htmlElement = findDOMNode(element);\n          var offsetHeight = htmlElement.offsetHeight;\n          if (heightsRef.current.get(key) !== offsetHeight) {\n            heightsRef.current.set(key, htmlElement.offsetHeight);\n          }\n        }\n      });\n\n      // Always trigger update mark to tell parent that should re-calculate heights when resized\n      setUpdatedMark(function (c) {\n        return c + 1;\n      });\n    };\n    if (sync) {\n      doCollect();\n    } else {\n      collectRafRef.current = raf(doCollect);\n    }\n  }\n  function setInstanceRef(item, instance) {\n    var key = getKey(item);\n    var origin = instanceRef.current.get(key);\n    if (instance) {\n      instanceRef.current.set(key, instance);\n      collectHeight();\n    } else {\n      instanceRef.current.delete(key);\n    }\n\n    // Instance changed\n    if (!origin !== !instance) {\n      if (instance) {\n        onItemAdd === null || onItemAdd === void 0 || onItemAdd(item);\n      } else {\n        onItemRemove === null || onItemRemove === void 0 || onItemRemove(item);\n      }\n    }\n  }\n  useEffect(function () {\n    return cancelRaf;\n  }, []);\n  return [setInstanceRef, collectHeight, heightsRef.current, updatedMark];\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\n\n/**\n * Size info need loop query for the `heights` which will has the perf issue.\n * Let cache result for each render phase.\n */\nexport function useGetSize(mergedData, getKey, heights, itemHeight) {\n  var _React$useMemo = React.useMemo(function () {\n      return [new Map(), []];\n    }, [mergedData, heights.id, itemHeight]),\n    _React$useMemo2 = _slicedToArray(_React$useMemo, 2),\n    key2Index = _React$useMemo2[0],\n    bottomList = _React$useMemo2[1];\n  var getSize = function getSize(startKey) {\n    var endKey = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : startKey;\n    // Get from cache first\n    var startIndex = key2Index.get(startKey);\n    var endIndex = key2Index.get(endKey);\n\n    // Loop to fill the cache\n    if (startIndex === undefined || endIndex === undefined) {\n      var dataLen = mergedData.length;\n      for (var i = bottomList.length; i < dataLen; i += 1) {\n        var _heights$get;\n        var item = mergedData[i];\n        var key = getKey(item);\n        key2Index.set(key, i);\n        var cacheHeight = (_heights$get = heights.get(key)) !== null && _heights$get !== void 0 ? _heights$get : itemHeight;\n        bottomList[i] = (bottomList[i - 1] || 0) + cacheHeight;\n        if (key === startKey) {\n          startIndex = i;\n        }\n        if (key === endKey) {\n          endIndex = i;\n        }\n        if (startIndex !== undefined && endIndex !== undefined) {\n          break;\n        }\n      }\n    }\n    return {\n      top: bottomList[startIndex - 1] || 0,\n      bottom: bottomList[endIndex]\n    };\n  };\n  return getSize;\n}","import * as React from 'react';\nimport { Item } from \"../Item\";\nexport default function useChildren(list, startIndex, endIndex, scrollWidth, offsetX, setNodeRef, renderFunc, _ref) {\n  var getKey = _ref.getKey;\n  return list.slice(startIndex, endIndex + 1).map(function (item, index) {\n    var eleIndex = startIndex + index;\n    var node = renderFunc(item, eleIndex, {\n      style: {\n        width: scrollWidth\n      },\n      offsetX: offsetX\n    });\n    var key = getKey(item);\n    return /*#__PURE__*/React.createElement(Item, {\n      key: key,\n      setRef: function setRef(ele) {\n        return setNodeRef(item, ele);\n      }\n    }, node);\n  });\n}","import List from \"./List\";\nexport default List;","export default function _typeof(obj) {\n  \"@babel/helpers - typeof\";\n\n  return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n    return typeof obj;\n  } : function (obj) {\n    return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n  }, _typeof(obj);\n}","/** @license React v0.20.2\n * scheduler.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f,g,h,k;if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}\nif(\"undefined\"===typeof window||\"function\"!==typeof MessageChannel){var t=null,u=null,w=function(){if(null!==t)try{var a=exports.unstable_now();t(!0,a);t=null}catch(b){throw setTimeout(w,0),b;}};f=function(a){null!==t?setTimeout(f,0,a):(t=a,setTimeout(w,0))};g=function(a,b){u=setTimeout(a,b)};h=function(){clearTimeout(u)};exports.unstable_shouldYield=function(){return!1};k=exports.unstable_forceFrameRate=function(){}}else{var x=window.setTimeout,y=window.clearTimeout;if(\"undefined\"!==typeof console){var z=\nwindow.cancelAnimationFrame;\"function\"!==typeof window.requestAnimationFrame&&console.error(\"This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills\");\"function\"!==typeof z&&console.error(\"This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills\")}var A=!1,B=null,C=-1,D=5,E=0;exports.unstable_shouldYield=function(){return exports.unstable_now()>=\nE};k=function(){};exports.unstable_forceFrameRate=function(a){0>a||125<a?console.error(\"forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported\"):D=0<a?Math.floor(1E3/a):5};var F=new MessageChannel,G=F.port2;F.port1.onmessage=function(){if(null!==B){var a=exports.unstable_now();E=a+D;try{B(!0,a)?G.postMessage(null):(A=!1,B=null)}catch(b){throw G.postMessage(null),b;}}else A=!1};f=function(a){B=a;A||(A=!0,G.postMessage(null))};g=function(a,b){C=\nx(function(){a(exports.unstable_now())},b)};h=function(){y(C);C=-1}}function H(a,b){var c=a.length;a.push(b);a:for(;;){var d=c-1>>>1,e=a[d];if(void 0!==e&&0<I(e,b))a[d]=b,a[c]=e,c=d;else break a}}function J(a){a=a[0];return void 0===a?null:a}\nfunction K(a){var b=a[0];if(void 0!==b){var c=a.pop();if(c!==b){a[0]=c;a:for(var d=0,e=a.length;d<e;){var m=2*(d+1)-1,n=a[m],v=m+1,r=a[v];if(void 0!==n&&0>I(n,c))void 0!==r&&0>I(r,n)?(a[d]=r,a[v]=c,d=v):(a[d]=n,a[m]=c,d=m);else if(void 0!==r&&0>I(r,c))a[d]=r,a[v]=c,d=v;else break a}}return b}return null}function I(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var L=[],M=[],N=1,O=null,P=3,Q=!1,R=!1,S=!1;\nfunction T(a){for(var b=J(M);null!==b;){if(null===b.callback)K(M);else if(b.startTime<=a)K(M),b.sortIndex=b.expirationTime,H(L,b);else break;b=J(M)}}function U(a){S=!1;T(a);if(!R)if(null!==J(L))R=!0,f(V);else{var b=J(M);null!==b&&g(U,b.startTime-a)}}\nfunction V(a,b){R=!1;S&&(S=!1,h());Q=!0;var c=P;try{T(b);for(O=J(L);null!==O&&(!(O.expirationTime>b)||a&&!exports.unstable_shouldYield());){var d=O.callback;if(\"function\"===typeof d){O.callback=null;P=O.priorityLevel;var e=d(O.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?O.callback=e:O===J(L)&&K(L);T(b)}else K(L);O=J(L)}if(null!==O)var m=!0;else{var n=J(M);null!==n&&g(U,n.startTime-b);m=!1}return m}finally{O=null,P=c,Q=!1}}var W=k;exports.unstable_IdlePriority=5;\nexports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){R||Q||(R=!0,f(V))};exports.unstable_getCurrentPriorityLevel=function(){return P};exports.unstable_getFirstCallbackNode=function(){return J(L)};\nexports.unstable_next=function(a){switch(P){case 1:case 2:case 3:var b=3;break;default:b=P}var c=P;P=b;try{return a()}finally{P=c}};exports.unstable_pauseExecution=function(){};exports.unstable_requestPaint=W;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=P;P=a;try{return b()}finally{P=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();\"object\"===typeof c&&null!==c?(c=c.delay,c=\"number\"===typeof c&&0<c?d+c:d):c=d;switch(a){case 1:var e=-1;break;case 2:e=250;break;case 5:e=1073741823;break;case 4:e=1E4;break;default:e=5E3}e=c+e;a={id:N++,callback:b,priorityLevel:a,startTime:c,expirationTime:e,sortIndex:-1};c>d?(a.sortIndex=c,H(M,a),null===J(L)&&a===J(M)&&(S?h():S=!0,g(U,c-d))):(a.sortIndex=e,H(L,a),R||Q||(R=!0,f(V)));return a};\nexports.unstable_wrapCallback=function(a){var b=P;return function(){var c=P;P=b;try{return a.apply(this,arguments)}finally{P=c}}};\n","import React from 'react';\nexport var ReactReduxContext = /*#__PURE__*/React.createContext(null);\n\nif (process.env.NODE_ENV !== 'production') {\n  ReactReduxContext.displayName = 'ReactRedux';\n}\n\nexport default ReactReduxContext;","// Default to a dummy \"batch\" implementation that just runs the callback\nfunction defaultNoopBatch(callback) {\n  callback();\n}\n\nvar batch = defaultNoopBatch; // Allow injecting another batching function later\n\nexport var setBatch = function setBatch(newBatch) {\n  return batch = newBatch;\n}; // Supply a getter just to skip dealing with ESM bindings\n\nexport var getBatch = function getBatch() {\n  return batch;\n};","import { getBatch } from './batch'; // encapsulates the subscription logic for connecting a component to the redux store, as\n// well as nesting subscriptions of descendant components, so that we can ensure the\n// ancestor components re-render before descendants\n\nfunction createListenerCollection() {\n  var batch = getBatch();\n  var first = null;\n  var last = null;\n  return {\n    clear: function clear() {\n      first = null;\n      last = null;\n    },\n    notify: function notify() {\n      batch(function () {\n        var listener = first;\n\n        while (listener) {\n          listener.callback();\n          listener = listener.next;\n        }\n      });\n    },\n    get: function get() {\n      var listeners = [];\n      var listener = first;\n\n      while (listener) {\n        listeners.push(listener);\n        listener = listener.next;\n      }\n\n      return listeners;\n    },\n    subscribe: function subscribe(callback) {\n      var isSubscribed = true;\n      var listener = last = {\n        callback: callback,\n        next: null,\n        prev: last\n      };\n\n      if (listener.prev) {\n        listener.prev.next = listener;\n      } else {\n        first = listener;\n      }\n\n      return function unsubscribe() {\n        if (!isSubscribed || first === null) return;\n        isSubscribed = false;\n\n        if (listener.next) {\n          listener.next.prev = listener.prev;\n        } else {\n          last = listener.prev;\n        }\n\n        if (listener.prev) {\n          listener.prev.next = listener.next;\n        } else {\n          first = listener.next;\n        }\n      };\n    }\n  };\n}\n\nvar nullListeners = {\n  notify: function notify() {},\n  get: function get() {\n    return [];\n  }\n};\nexport function createSubscription(store, parentSub) {\n  var unsubscribe;\n  var listeners = nullListeners;\n\n  function addNestedSub(listener) {\n    trySubscribe();\n    return listeners.subscribe(listener);\n  }\n\n  function notifyNestedSubs() {\n    listeners.notify();\n  }\n\n  function handleChangeWrapper() {\n    if (subscription.onStateChange) {\n      subscription.onStateChange();\n    }\n  }\n\n  function isSubscribed() {\n    return Boolean(unsubscribe);\n  }\n\n  function trySubscribe() {\n    if (!unsubscribe) {\n      unsubscribe = parentSub ? parentSub.addNestedSub(handleChangeWrapper) : store.subscribe(handleChangeWrapper);\n      listeners = createListenerCollection();\n    }\n  }\n\n  function tryUnsubscribe() {\n    if (unsubscribe) {\n      unsubscribe();\n      unsubscribe = undefined;\n      listeners.clear();\n      listeners = nullListeners;\n    }\n  }\n\n  var subscription = {\n    addNestedSub: addNestedSub,\n    notifyNestedSubs: notifyNestedSubs,\n    handleChangeWrapper: handleChangeWrapper,\n    isSubscribed: isSubscribed,\n    trySubscribe: trySubscribe,\n    tryUnsubscribe: tryUnsubscribe,\n    getListeners: function getListeners() {\n      return listeners;\n    }\n  };\n  return subscription;\n}","import { useEffect, useLayoutEffect } from 'react'; // React currently throws a warning when using useLayoutEffect on the server.\n// To get around it, we can conditionally useEffect on the server (no-op) and\n// useLayoutEffect in the browser. We need useLayoutEffect to ensure the store\n// subscription callback always has the selector from the latest render commit\n// available, otherwise a store update may happen between render and the effect,\n// which may cause missed updates; we also must ensure the store subscription\n// is created synchronously, otherwise a store update may occur before the\n// subscription is created and an inconsistent state may be observed\n\nexport var useIsomorphicLayoutEffect = typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined' ? useLayoutEffect : useEffect;","import React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport { ReactReduxContext } from './Context';\nimport { createSubscription } from '../utils/Subscription';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\n\nfunction Provider(_ref) {\n  var store = _ref.store,\n      context = _ref.context,\n      children = _ref.children;\n  var contextValue = useMemo(function () {\n    var subscription = createSubscription(store);\n    return {\n      store: store,\n      subscription: subscription\n    };\n  }, [store]);\n  var previousState = useMemo(function () {\n    return store.getState();\n  }, [store]);\n  useIsomorphicLayoutEffect(function () {\n    var subscription = contextValue.subscription;\n    subscription.onStateChange = subscription.notifyNestedSubs;\n    subscription.trySubscribe();\n\n    if (previousState !== store.getState()) {\n      subscription.notifyNestedSubs();\n    }\n\n    return function () {\n      subscription.tryUnsubscribe();\n      subscription.onStateChange = null;\n    };\n  }, [contextValue, previousState]);\n  var Context = context || ReactReduxContext;\n  return /*#__PURE__*/React.createElement(Context.Provider, {\n    value: contextValue\n  }, children);\n}\n\nif (process.env.NODE_ENV !== 'production') {\n  Provider.propTypes = {\n    store: PropTypes.shape({\n      subscribe: PropTypes.func.isRequired,\n      dispatch: PropTypes.func.isRequired,\n      getState: PropTypes.func.isRequired\n    }),\n    context: PropTypes.object,\n    children: PropTypes.any\n  };\n}\n\nexport default Provider;","import { useContext } from 'react';\nimport { ReactReduxContext } from '../components/Context';\n/**\r\n * A hook to access the value of the `ReactReduxContext`. This is a low-level\r\n * hook that you should usually not need to call directly.\r\n *\r\n * @returns {any} the value of the `ReactReduxContext`\r\n *\r\n * @example\r\n *\r\n * import React from 'react'\r\n * import { useReduxContext } from 'react-redux'\r\n *\r\n * export const CounterComponent = ({ value }) => {\r\n *   const { store } = useReduxContext()\r\n *   return <div>{store.getState()}</div>\r\n * }\r\n */\n\nexport function useReduxContext() {\n  var contextValue = useContext(ReactReduxContext);\n\n  if (process.env.NODE_ENV !== 'production' && !contextValue) {\n    throw new Error('could not find react-redux context value; please ensure the component is wrapped in a <Provider>');\n  }\n\n  return contextValue;\n}","import { useContext } from 'react';\nimport { ReactReduxContext } from '../components/Context';\nimport { useReduxContext as useDefaultReduxContext } from './useReduxContext';\n/**\r\n * Hook factory, which creates a `useStore` hook bound to a given context.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your `<Provider>`.\r\n * @returns {Function} A `useStore` hook bound to the specified context.\r\n */\n\nexport function createStoreHook(context) {\n  if (context === void 0) {\n    context = ReactReduxContext;\n  }\n\n  var useReduxContext = context === ReactReduxContext ? useDefaultReduxContext : function () {\n    return useContext(context);\n  };\n  return function useStore() {\n    var _useReduxContext = useReduxContext(),\n        store = _useReduxContext.store;\n\n    return store;\n  };\n}\n/**\r\n * A hook to access the redux store.\r\n *\r\n * @returns {any} the redux store\r\n *\r\n * @example\r\n *\r\n * import React from 'react'\r\n * import { useStore } from 'react-redux'\r\n *\r\n * export const ExampleComponent = () => {\r\n *   const store = useStore()\r\n *   return <div>{store.getState()}</div>\r\n * }\r\n */\n\nexport var useStore = /*#__PURE__*/createStoreHook();","import { ReactReduxContext } from '../components/Context';\nimport { useStore as useDefaultStore, createStoreHook } from './useStore';\n/**\r\n * Hook factory, which creates a `useDispatch` hook bound to a given context.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your `<Provider>`.\r\n * @returns {Function} A `useDispatch` hook bound to the specified context.\r\n */\n\nexport function createDispatchHook(context) {\n  if (context === void 0) {\n    context = ReactReduxContext;\n  }\n\n  var useStore = context === ReactReduxContext ? useDefaultStore : createStoreHook(context);\n  return function useDispatch() {\n    var store = useStore();\n    return store.dispatch;\n  };\n}\n/**\r\n * A hook to access the redux `dispatch` function.\r\n *\r\n * @returns {any|function} redux store's `dispatch` function\r\n *\r\n * @example\r\n *\r\n * import React, { useCallback } from 'react'\r\n * import { useDispatch } from 'react-redux'\r\n *\r\n * export const CounterComponent = ({ value }) => {\r\n *   const dispatch = useDispatch()\r\n *   const increaseCounter = useCallback(() => dispatch({ type: 'increase-counter' }), [])\r\n *   return (\r\n *     <div>\r\n *       <span>{value}</span>\r\n *       <button onClick={increaseCounter}>Increase counter</button>\r\n *     </div>\r\n *   )\r\n * }\r\n */\n\nexport var useDispatch = /*#__PURE__*/createDispatchHook();","import { useReducer, useRef, useMemo, useContext, useDebugValue } from 'react';\nimport { useReduxContext as useDefaultReduxContext } from './useReduxContext';\nimport { createSubscription } from '../utils/Subscription';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\nimport { ReactReduxContext } from '../components/Context';\n\nvar refEquality = function refEquality(a, b) {\n  return a === b;\n};\n\nfunction useSelectorWithStoreAndSubscription(selector, equalityFn, store, contextSub) {\n  var _useReducer = useReducer(function (s) {\n    return s + 1;\n  }, 0),\n      forceRender = _useReducer[1];\n\n  var subscription = useMemo(function () {\n    return createSubscription(store, contextSub);\n  }, [store, contextSub]);\n  var latestSubscriptionCallbackError = useRef();\n  var latestSelector = useRef();\n  var latestStoreState = useRef();\n  var latestSelectedState = useRef();\n  var storeState = store.getState();\n  var selectedState;\n\n  try {\n    if (selector !== latestSelector.current || storeState !== latestStoreState.current || latestSubscriptionCallbackError.current) {\n      var newSelectedState = selector(storeState); // ensure latest selected state is reused so that a custom equality function can result in identical references\n\n      if (latestSelectedState.current === undefined || !equalityFn(newSelectedState, latestSelectedState.current)) {\n        selectedState = newSelectedState;\n      } else {\n        selectedState = latestSelectedState.current;\n      }\n    } else {\n      selectedState = latestSelectedState.current;\n    }\n  } catch (err) {\n    if (latestSubscriptionCallbackError.current) {\n      err.message += \"\\nThe error may be correlated with this previous error:\\n\" + latestSubscriptionCallbackError.current.stack + \"\\n\\n\";\n    }\n\n    throw err;\n  }\n\n  useIsomorphicLayoutEffect(function () {\n    latestSelector.current = selector;\n    latestStoreState.current = storeState;\n    latestSelectedState.current = selectedState;\n    latestSubscriptionCallbackError.current = undefined;\n  });\n  useIsomorphicLayoutEffect(function () {\n    function checkForUpdates() {\n      try {\n        var newStoreState = store.getState(); // Avoid calling selector multiple times if the store's state has not changed\n\n        if (newStoreState === latestStoreState.current) {\n          return;\n        }\n\n        var _newSelectedState = latestSelector.current(newStoreState);\n\n        if (equalityFn(_newSelectedState, latestSelectedState.current)) {\n          return;\n        }\n\n        latestSelectedState.current = _newSelectedState;\n        latestStoreState.current = newStoreState;\n      } catch (err) {\n        // we ignore all errors here, since when the component\n        // is re-rendered, the selectors are called again, and\n        // will throw again, if neither props nor store state\n        // changed\n        latestSubscriptionCallbackError.current = err;\n      }\n\n      forceRender();\n    }\n\n    subscription.onStateChange = checkForUpdates;\n    subscription.trySubscribe();\n    checkForUpdates();\n    return function () {\n      return subscription.tryUnsubscribe();\n    };\n  }, [store, subscription]);\n  return selectedState;\n}\n/**\r\n * Hook factory, which creates a `useSelector` hook bound to a given context.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your `<Provider>`.\r\n * @returns {Function} A `useSelector` hook bound to the specified context.\r\n */\n\n\nexport function createSelectorHook(context) {\n  if (context === void 0) {\n    context = ReactReduxContext;\n  }\n\n  var useReduxContext = context === ReactReduxContext ? useDefaultReduxContext : function () {\n    return useContext(context);\n  };\n  return function useSelector(selector, equalityFn) {\n    if (equalityFn === void 0) {\n      equalityFn = refEquality;\n    }\n\n    if (process.env.NODE_ENV !== 'production') {\n      if (!selector) {\n        throw new Error(\"You must pass a selector to useSelector\");\n      }\n\n      if (typeof selector !== 'function') {\n        throw new Error(\"You must pass a function as a selector to useSelector\");\n      }\n\n      if (typeof equalityFn !== 'function') {\n        throw new Error(\"You must pass a function as an equality function to useSelector\");\n      }\n    }\n\n    var _useReduxContext = useReduxContext(),\n        store = _useReduxContext.store,\n        contextSub = _useReduxContext.subscription;\n\n    var selectedState = useSelectorWithStoreAndSubscription(selector, equalityFn, store, contextSub);\n    useDebugValue(selectedState);\n    return selectedState;\n  };\n}\n/**\r\n * A hook to access the redux store's state. This hook takes a selector function\r\n * as an argument. The selector is called with the store state.\r\n *\r\n * This hook takes an optional equality comparison function as the second parameter\r\n * that allows you to customize the way the selected state is compared to determine\r\n * whether the component needs to be re-rendered.\r\n *\r\n * @param {Function} selector the selector function\r\n * @param {Function=} equalityFn the function that will be used to determine equality\r\n *\r\n * @returns {any} the selected state\r\n *\r\n * @example\r\n *\r\n * import React from 'react'\r\n * import { useSelector } from 'react-redux'\r\n *\r\n * export const CounterComponent = () => {\r\n *   const counter = useSelector(state => state.counter)\r\n *   return <div>{counter}</div>\r\n * }\r\n */\n\nexport var useSelector = /*#__PURE__*/createSelectorHook();","export * from './exports';\nimport { unstable_batchedUpdates as batch } from './utils/reactBatchedUpdates';\nimport { setBatch } from './utils/batch'; // Enable batched updates in our subscriptions for use\n// with standard React renderers (ReactDOM, React Native)\n\nsetBatch(batch);\nexport { batch };","// @ts-nocheck\n\nimport { getParameter } from \"@tencent/kg-base\";\n\nexport function getRobotId() {\n  return parseInt(getParameter(\"robotId\"), 10);\n}\n\nexport function cacheSet(key: string, value: any) {\n  localStorage.setItem(key, JSON.stringify(value));\n}\n\nexport function cacheGet(key: string) {\n  const res = localStorage.getItem(key);\n  return res ? JSON.parse(res) : \"\";\n}\n\nexport function getCursorText() {\n  // 获取当前选区对象\n  let selection = window.getSelection();\n  if (selection.rangeCount > 0) {\n    // 如果有选区存在\n    let range = selection.getRangeAt(0); // 获取第一个选区\n    let textBeforeCursor = \"\"; // 初始化变量，用于存储光标前的文本\n    let textAfterCursor = \"\"; // 初始化变量，用于存储光标后的文本\n\n    // 获取光标前的文本\n    if (range.startContainer instanceof Text) {\n      // 如果选区的开始容器是文本节点\n      textBeforeCursor = range.startContainer.textContent.substring(0, range.startOffset);\n    } else {\n      // 否则，递归查找包含光标开始位置的文本节点\n      let node = range.startContainer.childNodes[range.startOffset];\n      while (node.nodeType === Node.ELEMENT_NODE && node.firstChild) {\n        node = node.firstChild;\n      }\n      if (node.nodeType === Node.TEXT_NODE) {\n        textBeforeCursor = node.textContent.substring(0, range.startOffset + 1);\n      }\n    }\n\n    // 获取光标后的文本\n    let cursorText = range.extractContents();\n    textAfterCursor = cursorText.textContent;\n\n    // 返回光标前的文本和光标后的文本\n    return {\n      textBeforeCursor: textBeforeCursor,\n      textAfterCursor: textAfterCursor,\n    };\n  }\n  return null; // 如果没有选区，返回null\n}\n\n// 使用示例\nlet cursorText = getCursorText();\nif (cursorText) {\n  console.log(\"Before cursor: \" + cursorText.textBeforeCursor);\n  console.log(\"After cursor: \" + cursorText.textAfterCursor);\n} else {\n  console.log(\"No text selected\");\n}\n\nexport function getCursorChar(editableDiv) {\n  let selection = window.getSelection();\n  if (selection?.rangeCount && selection.rangeCount > 0) {\n    let range = selection.getRangeAt(0);\n    let charBeforeCursor = \"\";\n    let wholeTextBeforeCursor = \"\";\n    if (range.startContainer instanceof Text) {\n      charBeforeCursor = range?.startContainer?.textContent?.charAt(range.startOffset - 1);\n      wholeTextBeforeCursor = range?.startContainer?.textContent?.substring(0, range.startOffset); // 先取当前光标区域前半段\n      let node = range.startContainer.previousSibling; // 设置节点为下个兄弟节点开始遍历\n      console.log(\"start previousSibling:\", node, \" range.startContainer:\", range.startContainer);\n      while (node && node !== editableDiv) {\n        if (node.nodeType === Node.TEXT_NODE) {\n          wholeTextBeforeCursor = node.textContent + wholeTextBeforeCursor;\n        }\n        node = node?.previousSibling;\n        console.log(\"=== previousSibling:\", node);\n      }\n    } else {\n      console.error(\"不应该走到这个逻辑，请联系开发者排查。。。。\");\n      let node = range.startContainer.childNodes[range.startOffset - 1];\n      console.log(\"not text charBeforeCursor:\", charBeforeCursor);\n      if (node.nodeType === Node.TEXT_NODE && range.startOffset > 0) {\n        charBeforeCursor = node?.textContent?.charAt(range.startOffset - 1);\n        console.log(\"inner text charBeforeCursor:\", charBeforeCursor);\n      }\n    }\n\n    console.log(\n      \"text charBeforeCursor:\",\n      charBeforeCursor,\n      \" startOffseet:\",\n      range.startOffset,\n      \" wholeTextBeforeCursor:\",\n      wholeTextBeforeCursor,\n    );\n    return [charBeforeCursor, wholeTextBeforeCursor];\n  }\n  return null;\n}\n\nexport function insertContentAtCursor(html) {\n  let sel;\n  let range;\n  if (window.getSelection) {\n    sel = window.getSelection();\n    if (sel.getRangeAt && sel.rangeCount) {\n      range = sel.getRangeAt(0);\n      range.deleteContents();\n      let el = document.createElement(\"div\");\n      el.innerHTML = html;\n      let frag = document.createDocumentFragment();\n      let node;\n      let lastNode;\n      while ((node = el.firstChild)) {\n        lastNode = frag.appendChild(node);\n      }\n      range.insertNode(frag);\n      if (lastNode) {\n        range = range.cloneRange();\n        range.setStartAfter(lastNode);\n        range.collapse(true);\n        sel.removeAllRanges();\n        sel.addRange(range);\n      }\n    }\n  } else if (document.selection && document.selection.type !== \"Control\") {\n    document.selection.createRange().pasteHTML(html);\n  }\n}\n\nexport function getFileExtension(url: string) {\n  // 首先获取最后一个点（.）的位置\n  const lastDotIndex = url.lastIndexOf(\".\");\n  // 如果没有找到点或者点是最后一个字符，说明没有后缀名\n  if (lastDotIndex === -1 || lastDotIndex === url.length - 1) {\n    return \"\";\n  }\n  // 返回最后一个点之后的所有字符，即文件后缀名\n  return url.substring(lastDotIndex + 1);\n}\n\n// 保存光标位置的函数\nexport function saveCursorSelection() {\n  const selection = window.getSelection();\n  if (selection.rangeCount > 0) {\n    const range = selection.getRangeAt(0);\n    return {\n      start: range.startOffset,\n      end: range.endOffset,\n      node: range.commonAncestorContainer,\n    };\n  }\n  return null;\n}\n\n// 恢复光标位置的函数\nexport function restoreCursorSelection(details) {\n  if (!details) return;\n  const range = document.createRange();\n  range.setStart(details.node, details.start);\n  range.setEnd(details.node, details.end);\n  const selection = window.getSelection();\n  selection.removeAllRanges();\n  selection.addRange(range);\n}\n\nexport function isAllChinese(str: string) {\n  return /^[\\u4e00-\\u9fa5]+$/.test(str);\n}\n","export default function _arrayWithHoles(arr) {\n  if (Array.isArray(arr)) return arr;\n}","import React, { FC, useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport { getParameter } from \"@tencent/kg-base\";\nimport defaultMan from \"../../../assets/img/default_man.png\";\nimport CloneIssueHeadImg from \"../../../assets/img/clone-issue-head.png\";\nimport CardPlayIcon from \"../../../assets/img/ic-card-play.png\";\nimport CardPauseIcon from \"../../../assets/img/ic-card-stop.png\";\nimport { TTS_Webapp } from \"jce/qqmusic/tianqin_tts/TTS_Webapp.jce?emit=module\";\nimport { useAppDispatch } from \"projects/ttsMake/slices\";\nimport { homeActions } from \"projects/ttsMake/slices/home\";\n\nconst VoiceItem: FC<{\n  item: TTS_Webapp.$TTSTimbre;\n  selectSoundId?: string;\n  type?: \"TTS\" | \"MINE\";\n  style?: {};\n  subType?: \"MINE\" | \"COMMON\";\n}> = ({ item, selectSoundId, type = \"TTS\", style, subType = \"COMMON\" }) => {\n  const dispatch = useAppDispatch();\n  const navigate = useNavigate();\n  const [isPlaying, setPlaying] = useState<boolean>(false);\n  const audioRef = useRef<any>(null);\n  const chooseSound = (index: string) => {\n    // setCurrSoundIndex(index);\n    dispatch(homeActions.selectSound(item));\n  };\n  const togglePlayCb = () => {\n    setPlaying(!isPlaying);\n    if (isPlaying) {\n      audioRef.current.pause();\n    } else {\n      if (!audioRef.current) {\n        audioRef.current = new Audio((item as any)?.source_audio_url);\n        audioRef.current.preload = \"auto\";\n        audioRef.current.addEventListener(\"ended\", function () {\n          setPlaying(false);\n        });\n      }\n      audioRef.current.play().then((res: any) => {\n        setPlaying(true);\n      });\n    }\n  };\n  const jumpToTTS = () => {\n    dispatch(homeActions.selectSound(item));\n    navigate(\"/\");\n  };\n  useEffect(() => {\n    // dispatch(getRobotIndex({ lUid: Number(getCookie(\"uid\")) || 1000249 }));\n    // dispatch(getRobotList({ uid: Number(getCookie(\"uid\")) || 1000249 }));\n    // dispatch(getRobotSearchList({}));\n  }, []);\n\n  return (\n    <div\n      contentEditable={false}\n      className={`voice-item ${item.timbre_mid === selectSoundId ? \"active\" : \"\"}`}\n      style={{\n        textAlign: \"center\",\n        display: \"flex\",\n        flexDirection: \"column\",\n        justifyContent: \"center\",\n        alignItems: \"flex-start\",\n        ...style,\n      }}\n      key={item.timbre_mid}\n      onClick={() => chooseSound(item.timbre_mid)}\n    >\n      <div className=\"head\">\n        <img\n          src={type === \"TTS\" && subType !== \"MINE\" ? item?.timbre_img || defaultMan : CloneIssueHeadImg}\n          className=\"head-img\"\n        />\n        {/* {type === \"MINE\" ? (\n          <div\n            className=\"audition\"\n            style={{ backgroundImage: `url(${!isPlaying ? CardPlayIcon : CardPauseIcon})` }}\n            onClick={togglePlayCb}\n          />\n        ) : null} */}\n      </div>\n      <div className=\"name\">\n        {item?.timbre_name}\n        <span className={`sex ${item?.timbre_sex === \"0\" ? \"female\" : \"male\"}`} />\n      </div>\n      <div className=\"tags\">{item?.timbre_desc}</div>\n      <div className=\"extra-tags\" style={subType === \"MINE\" ? {} : { visibility: \"hidden\" }}>\n        {subType === \"MINE\" ? \"录制\" : \"\"}\n      </div>\n      {type === \"MINE\" ? (\n        <div className=\"hover-layer flex-column-center\">\n          <div className=\"card-create-btn flex-row-center\" onClick={jumpToTTS}>\n            一键创作\n          </div>\n        </div>\n      ) : null}\n    </div>\n  );\n};\n\nexport default VoiceItem;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n  module.exports = require('./cjs/react-is.production.min.js');\n} else {\n  module.exports = require('./cjs/react-is.development.js');\n}\n","/** @license React v17.0.2\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';require(\"object-assign\");var f=require(\"react\"),g=60103;exports.Fragment=60107;if(\"function\"===typeof Symbol&&Symbol.for){var h=Symbol.for;g=h(\"react.element\");exports.Fragment=h(\"react.fragment\")}var m=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,n=Object.prototype.hasOwnProperty,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,k){var b,d={},e=null,l=null;void 0!==k&&(e=\"\"+k);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(l=a.ref);for(b in a)n.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:g,type:c,key:e,ref:l,props:d,_owner:m.current}}exports.jsx=q;exports.jsxs=q;\n","/*\n CryptoJS v3.1.2\n code.google.com/p/crypto-js\n (c) 2009-2013 by Jeff Mott. All rights reserved.\n code.google.com/p/crypto-js/wiki/License\n */\nvar CryptoJS=CryptoJS||function(g,l){var e={},d=e.lib={},m=function(){},k=d.Base={extend:function(a){m.prototype=this;var c=new m;a&&c.mixIn(a);c.hasOwnProperty(\"init\")||(c.init=function(){c.$super.init.apply(this,arguments)});c.init.prototype=c;c.$super=this;return c},create:function(){var a=this.extend();a.init.apply(a,arguments);return a},init:function(){},mixIn:function(a){for(var c in a)a.hasOwnProperty(c)&&(this[c]=a[c]);a.hasOwnProperty(\"toString\")&&(this.toString=a.toString)},clone:function(){return this.init.prototype.extend(this)}},\n        p=d.WordArray=k.extend({init:function(a,c){a=this.words=a||[];this.sigBytes=c!=l?c:4*a.length},toString:function(a){return(a||n).stringify(this)},concat:function(a){var c=this.words,q=a.words,f=this.sigBytes;a=a.sigBytes;this.clamp();if(f%4)for(var b=0;b<a;b++)c[f+b>>>2]|=(q[b>>>2]>>>24-8*(b%4)&255)<<24-8*((f+b)%4);else if(65535<q.length)for(b=0;b<a;b+=4)c[f+b>>>2]=q[b>>>2];else c.push.apply(c,q);this.sigBytes+=a;return this},clamp:function(){var a=this.words,c=this.sigBytes;a[c>>>2]&=4294967295<<\n            32-8*(c%4);a.length=g.ceil(c/4)},clone:function(){var a=k.clone.call(this);a.words=this.words.slice(0);return a},random:function(a){for(var c=[],b=0;b<a;b+=4)c.push(4294967296*g.random()|0);return new p.init(c,a)}}),b=e.enc={},n=b.Hex={stringify:function(a){var c=a.words;a=a.sigBytes;for(var b=[],f=0;f<a;f++){var d=c[f>>>2]>>>24-8*(f%4)&255;b.push((d>>>4).toString(16));b.push((d&15).toString(16))}return b.join(\"\")},parse:function(a){for(var c=a.length,b=[],f=0;f<c;f+=2)b[f>>>3]|=parseInt(a.substr(f,\n                2),16)<<24-4*(f%8);return new p.init(b,c/2)}},j=b.Latin1={stringify:function(a){var c=a.words;a=a.sigBytes;for(var b=[],f=0;f<a;f++)b.push(String.fromCharCode(c[f>>>2]>>>24-8*(f%4)&255));return b.join(\"\")},parse:function(a){for(var c=a.length,b=[],f=0;f<c;f++)b[f>>>2]|=(a.charCodeAt(f)&255)<<24-8*(f%4);return new p.init(b,c)}},h=b.Utf8={stringify:function(a){try{return decodeURIComponent(escape(j.stringify(a)))}catch(c){throw Error(\"Malformed UTF-8 data\");}},parse:function(a){return j.parse(unescape(encodeURIComponent(a)))}},\n        r=d.BufferedBlockAlgorithm=k.extend({reset:function(){this._data=new p.init;this._nDataBytes=0},_append:function(a){\"string\"==typeof a&&(a=h.parse(a));this._data.concat(a);this._nDataBytes+=a.sigBytes},_process:function(a){var c=this._data,b=c.words,f=c.sigBytes,d=this.blockSize,e=f/(4*d),e=a?g.ceil(e):g.max((e|0)-this._minBufferSize,0);a=e*d;f=g.min(4*a,f);if(a){for(var k=0;k<a;k+=d)this._doProcessBlock(b,k);k=b.splice(0,a);c.sigBytes-=f}return new p.init(k,f)},clone:function(){var a=k.clone.call(this);\n            a._data=this._data.clone();return a},_minBufferSize:0});d.Hasher=r.extend({cfg:k.extend(),init:function(a){this.cfg=this.cfg.extend(a);this.reset()},reset:function(){r.reset.call(this);this._doReset()},update:function(a){this._append(a);this._process();return this},finalize:function(a){a&&this._append(a);return this._doFinalize()},blockSize:16,_createHelper:function(a){return function(b,d){return(new a.init(d)).finalize(b)}},_createHmacHelper:function(a){return function(b,d){return(new s.HMAC.init(a,\n        d)).finalize(b)}}});var s=e.algo={};return e}(Math);\n(function(){var g=CryptoJS,l=g.lib,e=l.WordArray,d=l.Hasher,m=[],l=g.algo.SHA1=d.extend({_doReset:function(){this._hash=new e.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(d,e){for(var b=this._hash.words,n=b[0],j=b[1],h=b[2],g=b[3],l=b[4],a=0;80>a;a++){if(16>a)m[a]=d[e+a]|0;else{var c=m[a-3]^m[a-8]^m[a-14]^m[a-16];m[a]=c<<1|c>>>31}c=(n<<5|n>>>27)+l+m[a];c=20>a?c+((j&h|~j&g)+1518500249):40>a?c+((j^h^g)+1859775393):60>a?c+((j&h|j&g|h&g)-1894007588):c+((j^h^\ng)-899497514);l=g;g=h;h=j<<30|j>>>2;j=n;n=c}b[0]=b[0]+n|0;b[1]=b[1]+j|0;b[2]=b[2]+h|0;b[3]=b[3]+g|0;b[4]=b[4]+l|0},_doFinalize:function(){var d=this._data,e=d.words,b=8*this._nDataBytes,g=8*d.sigBytes;e[g>>>5]|=128<<24-g%32;e[(g+64>>>9<<4)+14]=Math.floor(b/4294967296);e[(g+64>>>9<<4)+15]=b;d.sigBytes=4*e.length;this._process();return this._hash},clone:function(){var e=d.clone.call(this);e._hash=this._hash.clone();return e}});g.SHA1=d._createHelper(l);g.HmacSHA1=d._createHmacHelper(l)})();\n(function(){var g=CryptoJS,l=g.enc.Utf8;g.algo.HMAC=g.lib.Base.extend({init:function(e,d){e=this._hasher=new e.init;\"string\"==typeof d&&(d=l.parse(d));var g=e.blockSize,k=4*g;d.sigBytes>k&&(d=e.finalize(d));d.clamp();for(var p=this._oKey=d.clone(),b=this._iKey=d.clone(),n=p.words,j=b.words,h=0;h<g;h++)n[h]^=1549556828,j[h]^=909522486;p.sigBytes=b.sigBytes=k;this.reset()},reset:function(){var e=this._hasher;e.reset();e.update(this._iKey)},update:function(e){this._hasher.update(e);return this},finalize:function(e){var d=\n    this._hasher;e=d.finalize(e);d.reset();return d.finalize(this._oKey.clone().concat(e))}})})();\n\n\n(function () {\n    // Shortcuts\n    var C = CryptoJS;\n    var C_lib = C.lib;\n    var WordArray = C_lib.WordArray;\n    var C_enc = C.enc;\n\n    /**\n     * Base64 encoding strategy.\n     */\n    var Base64 = C_enc.Base64 = {\n        /**\n         * Converts a word array to a Base64 string.\n         *\n         * @param {WordArray} wordArray The word array.\n         *\n         * @return {string} The Base64 string.\n         *\n         * @static\n         *\n         * @example\n         *\n         *     var base64String = CryptoJS.enc.Base64.stringify(wordArray);\n         */\n        stringify: function (wordArray) {\n            // Shortcuts\n            var words = wordArray.words;\n            var sigBytes = wordArray.sigBytes;\n            var map = this._map;\n\n            // Clamp excess bits\n            wordArray.clamp();\n\n            // Convert\n            var base64Chars = [];\n            for (var i = 0; i < sigBytes; i += 3) {\n                var byte1 = (words[i >>> 2]       >>> (24 - (i % 4) * 8))       & 0xff;\n                var byte2 = (words[(i + 1) >>> 2] >>> (24 - ((i + 1) % 4) * 8)) & 0xff;\n                var byte3 = (words[(i + 2) >>> 2] >>> (24 - ((i + 2) % 4) * 8)) & 0xff;\n\n                var triplet = (byte1 << 16) | (byte2 << 8) | byte3;\n\n                for (var j = 0; (j < 4) && (i + j * 0.75 < sigBytes); j++) {\n                    base64Chars.push(map.charAt((triplet >>> (6 * (3 - j))) & 0x3f));\n                }\n            }\n\n            // Add padding\n            var paddingChar = map.charAt(64);\n            if (paddingChar) {\n                while (base64Chars.length % 4) {\n                    base64Chars.push(paddingChar);\n                }\n            }\n\n            return base64Chars.join('');\n        },\n\n        /**\n         * Converts a Base64 string to a word array.\n         *\n         * @param {string} base64Str The Base64 string.\n         *\n         * @return {WordArray} The word array.\n         *\n         * @static\n         *\n         * @example\n         *\n         *     var wordArray = CryptoJS.enc.Base64.parse(base64String);\n         */\n        parse: function (base64Str) {\n            // Shortcuts\n            var base64StrLength = base64Str.length;\n            var map = this._map;\n\n            // Ignore padding\n            var paddingChar = map.charAt(64);\n            if (paddingChar) {\n                var paddingIndex = base64Str.indexOf(paddingChar);\n                if (paddingIndex != -1) {\n                    base64StrLength = paddingIndex;\n                }\n            }\n\n            // Convert\n            var words = [];\n            var nBytes = 0;\n            for (var i = 0; i < base64StrLength; i++) {\n                if (i % 4) {\n                    var bits1 = map.indexOf(base64Str.charAt(i - 1)) << ((i % 4) * 2);\n                    var bits2 = map.indexOf(base64Str.charAt(i)) >>> (6 - (i % 4) * 2);\n                    words[nBytes >>> 2] |= (bits1 | bits2) << (24 - (nBytes % 4) * 8);\n                    nBytes++;\n                }\n            }\n\n            return WordArray.create(words, nBytes);\n        },\n\n        _map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='\n    };\n}());\n\nif(typeof module === 'object'){\n    module.exports = CryptoJS;\n}else{\n    window.CryptoJS = CryptoJS;\n}\n","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport canUseDom from \"rc-util/es/Dom/canUseDom\";\nvar uuid = 0;\n\n/** Is client side and not jsdom */\nexport var isBrowserClient = process.env.NODE_ENV !== 'test' && canUseDom();\n\n/** Get unique id for accessibility usage */\nexport function getUUID() {\n  var retId;\n\n  // Test never reach\n  /* istanbul ignore if */\n  if (isBrowserClient) {\n    retId = uuid;\n    uuid += 1;\n  } else {\n    retId = 'TEST_OR_SSR';\n  }\n  return retId;\n}\nexport default function useId(id) {\n  // Inner id for accessibility usage. Only work in client side\n  var _React$useState = React.useState(),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    innerId = _React$useState2[0],\n    setInnerId = _React$useState2[1];\n  React.useEffect(function () {\n    setInnerId(\"rc_select_\".concat(getUUID()));\n  }, []);\n  return id || innerId;\n}","function _classCallCheck(a, n) {\n  if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\nexport { _classCallCheck as default };","module.exports = __webpack_public_path__ + \"web/ttsMake/statics/main-bg-a575a16a.jpg\";","import * as React from 'react';\nexport var IdContext = /*#__PURE__*/React.createContext(null);\nexport function getMenuId(uuid, eventKey) {\n  if (uuid === undefined) {\n    return null;\n  }\n  return \"\".concat(uuid, \"-\").concat(eventKey);\n}\n\n/**\n * Get `data-menu-id`\n */\nexport function useMenuId(eventKey) {\n  var id = React.useContext(IdContext);\n  return getMenuId(id, eventKey);\n}","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nvar _excluded = [\"children\", \"locked\"];\nimport * as React from 'react';\nimport useMemo from \"rc-util/es/hooks/useMemo\";\nimport isEqual from \"rc-util/es/isEqual\";\nexport var MenuContext = /*#__PURE__*/React.createContext(null);\nfunction mergeProps(origin, target) {\n  var clone = _objectSpread({}, origin);\n  Object.keys(target).forEach(function (key) {\n    var value = target[key];\n    if (value !== undefined) {\n      clone[key] = value;\n    }\n  });\n  return clone;\n}\nexport default function InheritableContextProvider(_ref) {\n  var children = _ref.children,\n    locked = _ref.locked,\n    restProps = _objectWithoutProperties(_ref, _excluded);\n  var context = React.useContext(MenuContext);\n  var inheritableContext = useMemo(function () {\n    return mergeProps(context, restProps);\n  }, [context, restProps], function (prev, next) {\n    return !locked && (prev[0] !== next[0] || !isEqual(prev[1], next[1], true));\n  });\n  return /*#__PURE__*/React.createElement(MenuContext.Provider, {\n    value: inheritableContext\n  }, children);\n}","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\nvar EmptyList = [];\n\n// ========================= Path Register =========================\n\nexport var PathRegisterContext = /*#__PURE__*/React.createContext(null);\nexport function useMeasure() {\n  return React.useContext(PathRegisterContext);\n}\n\n// ========================= Path Tracker ==========================\nexport var PathTrackerContext = /*#__PURE__*/React.createContext(EmptyList);\nexport function useFullPath(eventKey) {\n  var parentKeyPath = React.useContext(PathTrackerContext);\n  return React.useMemo(function () {\n    return eventKey !== undefined ? [].concat(_toConsumableArray(parentKeyPath), [eventKey]) : parentKeyPath;\n  }, [parentKeyPath, eventKey]);\n}\n\n// =========================== Path User ===========================\n\nexport var PathUserContext = /*#__PURE__*/React.createContext(null);","import * as React from 'react';\nvar PrivateContext = /*#__PURE__*/React.createContext({});\nexport default PrivateContext;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport isVisible from \"./isVisible\";\nfunction focusable(node) {\n  var includePositive = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n  if (isVisible(node)) {\n    var nodeName = node.nodeName.toLowerCase();\n    var isFocusableElement =\n    // Focusable element\n    ['input', 'select', 'textarea', 'button'].includes(nodeName) ||\n    // Editable element\n    node.isContentEditable ||\n    // Anchor with href element\n    nodeName === 'a' && !!node.getAttribute('href');\n\n    // Get tabIndex\n    var tabIndexAttr = node.getAttribute('tabindex');\n    var tabIndexNum = Number(tabIndexAttr);\n\n    // Parse as number if validate\n    var tabIndex = null;\n    if (tabIndexAttr && !Number.isNaN(tabIndexNum)) {\n      tabIndex = tabIndexNum;\n    } else if (isFocusableElement && tabIndex === null) {\n      tabIndex = 0;\n    }\n\n    // Block focusable if disabled\n    if (isFocusableElement && node.disabled) {\n      tabIndex = null;\n    }\n    return tabIndex !== null && (tabIndex >= 0 || includePositive && tabIndex < 0);\n  }\n  return false;\n}\nexport function getFocusNodeList(node) {\n  var includePositive = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n  var res = _toConsumableArray(node.querySelectorAll('*')).filter(function (child) {\n    return focusable(child, includePositive);\n  });\n  if (focusable(node, includePositive)) {\n    res.unshift(node);\n  }\n  return res;\n}\nvar lastFocusElement = null;\n\n/** @deprecated Do not use since this may failed when used in async */\nexport function saveLastFocusNode() {\n  lastFocusElement = document.activeElement;\n}\n\n/** @deprecated Do not use since this may failed when used in async */\nexport function clearLastFocusNode() {\n  lastFocusElement = null;\n}\n\n/** @deprecated Do not use since this may failed when used in async */\nexport function backLastFocusNode() {\n  if (lastFocusElement) {\n    try {\n      // 元素可能已经被移动了\n      lastFocusElement.focus();\n\n      /* eslint-disable no-empty */\n    } catch (e) {\n      // empty\n    }\n    /* eslint-enable no-empty */\n  }\n}\nexport function limitTabRange(node, e) {\n  if (e.keyCode === 9) {\n    var tabNodeList = getFocusNodeList(node);\n    var lastTabNode = tabNodeList[e.shiftKey ? 0 : tabNodeList.length - 1];\n    var leavingTab = lastTabNode === document.activeElement || node === document.activeElement;\n    if (leavingTab) {\n      var target = tabNodeList[e.shiftKey ? tabNodeList.length - 1 : 0];\n      target.focus();\n      e.preventDefault();\n    }\n  }\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { getFocusNodeList } from \"rc-util/es/Dom/focus\";\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport raf from \"rc-util/es/raf\";\nimport * as React from 'react';\nimport { getMenuId } from \"../context/IdContext\";\n// destruct to reduce minify size\nvar LEFT = KeyCode.LEFT,\n  RIGHT = KeyCode.RIGHT,\n  UP = KeyCode.UP,\n  DOWN = KeyCode.DOWN,\n  ENTER = KeyCode.ENTER,\n  ESC = KeyCode.ESC,\n  HOME = KeyCode.HOME,\n  END = KeyCode.END;\nvar ArrowKeys = [UP, DOWN, LEFT, RIGHT];\nfunction getOffset(mode, isRootLevel, isRtl, which) {\n  var _offsets;\n  var prev = 'prev';\n  var next = 'next';\n  var children = 'children';\n  var parent = 'parent';\n\n  // Inline enter is special that we use unique operation\n  if (mode === 'inline' && which === ENTER) {\n    return {\n      inlineTrigger: true\n    };\n  }\n  var inline = _defineProperty(_defineProperty({}, UP, prev), DOWN, next);\n  var horizontal = _defineProperty(_defineProperty(_defineProperty(_defineProperty({}, LEFT, isRtl ? next : prev), RIGHT, isRtl ? prev : next), DOWN, children), ENTER, children);\n  var vertical = _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, UP, prev), DOWN, next), ENTER, children), ESC, parent), LEFT, isRtl ? children : parent), RIGHT, isRtl ? parent : children);\n  var offsets = {\n    inline: inline,\n    horizontal: horizontal,\n    vertical: vertical,\n    inlineSub: inline,\n    horizontalSub: vertical,\n    verticalSub: vertical\n  };\n  var type = (_offsets = offsets[\"\".concat(mode).concat(isRootLevel ? '' : 'Sub')]) === null || _offsets === void 0 ? void 0 : _offsets[which];\n  switch (type) {\n    case prev:\n      return {\n        offset: -1,\n        sibling: true\n      };\n    case next:\n      return {\n        offset: 1,\n        sibling: true\n      };\n    case parent:\n      return {\n        offset: -1,\n        sibling: false\n      };\n    case children:\n      return {\n        offset: 1,\n        sibling: false\n      };\n    default:\n      return null;\n  }\n}\nfunction findContainerUL(element) {\n  var current = element;\n  while (current) {\n    if (current.getAttribute('data-menu-list')) {\n      return current;\n    }\n    current = current.parentElement;\n  }\n\n  // Normally should not reach this line\n  /* istanbul ignore next */\n  return null;\n}\n\n/**\n * Find focused element within element set provided\n */\nfunction getFocusElement(activeElement, elements) {\n  var current = activeElement || document.activeElement;\n  while (current) {\n    if (elements.has(current)) {\n      return current;\n    }\n    current = current.parentElement;\n  }\n  return null;\n}\n\n/**\n * Get focusable elements from the element set under provided container\n */\nexport function getFocusableElements(container, elements) {\n  var list = getFocusNodeList(container, true);\n  return list.filter(function (ele) {\n    return elements.has(ele);\n  });\n}\nfunction getNextFocusElement(parentQueryContainer, elements, focusMenuElement) {\n  var offset = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;\n  // Key on the menu item will not get validate parent container\n  if (!parentQueryContainer) {\n    return null;\n  }\n\n  // List current level menu item elements\n  var sameLevelFocusableMenuElementList = getFocusableElements(parentQueryContainer, elements);\n\n  // Find next focus index\n  var count = sameLevelFocusableMenuElementList.length;\n  var focusIndex = sameLevelFocusableMenuElementList.findIndex(function (ele) {\n    return focusMenuElement === ele;\n  });\n  if (offset < 0) {\n    if (focusIndex === -1) {\n      focusIndex = count - 1;\n    } else {\n      focusIndex -= 1;\n    }\n  } else if (offset > 0) {\n    focusIndex += 1;\n  }\n  focusIndex = (focusIndex + count) % count;\n\n  // Focus menu item\n  return sameLevelFocusableMenuElementList[focusIndex];\n}\nexport var refreshElements = function refreshElements(keys, id) {\n  var elements = new Set();\n  var key2element = new Map();\n  var element2key = new Map();\n  keys.forEach(function (key) {\n    var element = document.querySelector(\"[data-menu-id='\".concat(getMenuId(id, key), \"']\"));\n    if (element) {\n      elements.add(element);\n      element2key.set(element, key);\n      key2element.set(key, element);\n    }\n  });\n  return {\n    elements: elements,\n    key2element: key2element,\n    element2key: element2key\n  };\n};\nexport function useAccessibility(mode, activeKey, isRtl, id, containerRef, getKeys, getKeyPath, triggerActiveKey, triggerAccessibilityOpen, originOnKeyDown) {\n  var rafRef = React.useRef();\n  var activeRef = React.useRef();\n  activeRef.current = activeKey;\n  var cleanRaf = function cleanRaf() {\n    raf.cancel(rafRef.current);\n  };\n  React.useEffect(function () {\n    return function () {\n      cleanRaf();\n    };\n  }, []);\n  return function (e) {\n    var which = e.which;\n    if ([].concat(ArrowKeys, [ENTER, ESC, HOME, END]).includes(which)) {\n      var keys = getKeys();\n      var refreshedElements = refreshElements(keys, id);\n      var _refreshedElements = refreshedElements,\n        elements = _refreshedElements.elements,\n        key2element = _refreshedElements.key2element,\n        element2key = _refreshedElements.element2key;\n\n      // First we should find current focused MenuItem/SubMenu element\n      var activeElement = key2element.get(activeKey);\n      var focusMenuElement = getFocusElement(activeElement, elements);\n      var focusMenuKey = element2key.get(focusMenuElement);\n      var offsetObj = getOffset(mode, getKeyPath(focusMenuKey, true).length === 1, isRtl, which);\n\n      // Some mode do not have fully arrow operation like inline\n      if (!offsetObj && which !== HOME && which !== END) {\n        return;\n      }\n\n      // Arrow prevent default to avoid page scroll\n      if (ArrowKeys.includes(which) || [HOME, END].includes(which)) {\n        e.preventDefault();\n      }\n      var tryFocus = function tryFocus(menuElement) {\n        if (menuElement) {\n          var focusTargetElement = menuElement;\n\n          // Focus to link instead of menu item if possible\n          var link = menuElement.querySelector('a');\n          if (link !== null && link !== void 0 && link.getAttribute('href')) {\n            focusTargetElement = link;\n          }\n          var targetKey = element2key.get(menuElement);\n          triggerActiveKey(targetKey);\n\n          /**\n           * Do not `useEffect` here since `tryFocus` may trigger async\n           * which makes React sync update the `activeKey`\n           * that force render before `useRef` set the next activeKey\n           */\n          cleanRaf();\n          rafRef.current = raf(function () {\n            if (activeRef.current === targetKey) {\n              focusTargetElement.focus();\n            }\n          });\n        }\n      };\n      if ([HOME, END].includes(which) || offsetObj.sibling || !focusMenuElement) {\n        // ========================== Sibling ==========================\n        // Find walkable focus menu element container\n        var parentQueryContainer;\n        if (!focusMenuElement || mode === 'inline') {\n          parentQueryContainer = containerRef.current;\n        } else {\n          parentQueryContainer = findContainerUL(focusMenuElement);\n        }\n\n        // Get next focus element\n        var targetElement;\n        var focusableElements = getFocusableElements(parentQueryContainer, elements);\n        if (which === HOME) {\n          targetElement = focusableElements[0];\n        } else if (which === END) {\n          targetElement = focusableElements[focusableElements.length - 1];\n        } else {\n          targetElement = getNextFocusElement(parentQueryContainer, elements, focusMenuElement, offsetObj.offset);\n        }\n        // Focus menu item\n        tryFocus(targetElement);\n\n        // ======================= InlineTrigger =======================\n      } else if (offsetObj.inlineTrigger) {\n        // Inline trigger no need switch to sub menu item\n        triggerAccessibilityOpen(focusMenuKey);\n        // =========================== Level ===========================\n      } else if (offsetObj.offset > 0) {\n        triggerAccessibilityOpen(focusMenuKey, true);\n        cleanRaf();\n        rafRef.current = raf(function () {\n          // Async should resync elements\n          refreshedElements = refreshElements(keys, id);\n          var controlId = focusMenuElement.getAttribute('aria-controls');\n          var subQueryContainer = document.getElementById(controlId);\n\n          // Get sub focusable menu item\n          var targetElement = getNextFocusElement(subQueryContainer, refreshedElements.elements);\n\n          // Focus menu item\n          tryFocus(targetElement);\n        }, 5);\n      } else if (offsetObj.offset < 0) {\n        var keyPath = getKeyPath(focusMenuKey, true);\n        var parentKey = keyPath[keyPath.length - 2];\n        var parentMenuElement = key2element.get(parentKey);\n\n        // Focus menu item\n        triggerAccessibilityOpen(parentKey, false);\n        tryFocus(parentMenuElement);\n      }\n    }\n\n    // Pass origin key down event\n    originOnKeyDown === null || originOnKeyDown === void 0 || originOnKeyDown(e);\n  };\n}","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { useRef, useCallback } from 'react';\nimport warning from \"rc-util/es/warning\";\nimport { nextSlice } from \"../utils/timeUtil\";\nvar PATH_SPLIT = '__RC_UTIL_PATH_SPLIT__';\nvar getPathStr = function getPathStr(keyPath) {\n  return keyPath.join(PATH_SPLIT);\n};\nvar getPathKeys = function getPathKeys(keyPathStr) {\n  return keyPathStr.split(PATH_SPLIT);\n};\nexport var OVERFLOW_KEY = 'rc-menu-more';\nexport default function useKeyRecords() {\n  var _React$useState = React.useState({}),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    internalForceUpdate = _React$useState2[1];\n  var key2pathRef = useRef(new Map());\n  var path2keyRef = useRef(new Map());\n  var _React$useState3 = React.useState([]),\n    _React$useState4 = _slicedToArray(_React$useState3, 2),\n    overflowKeys = _React$useState4[0],\n    setOverflowKeys = _React$useState4[1];\n  var updateRef = useRef(0);\n  var destroyRef = useRef(false);\n  var forceUpdate = function forceUpdate() {\n    if (!destroyRef.current) {\n      internalForceUpdate({});\n    }\n  };\n  var registerPath = useCallback(function (key, keyPath) {\n    // Warning for invalidate or duplicated `key`\n    if (process.env.NODE_ENV !== 'production') {\n      warning(!key2pathRef.current.has(key), \"Duplicated key '\".concat(key, \"' used in Menu by path [\").concat(keyPath.join(' > '), \"]\"));\n    }\n\n    // Fill map\n    var connectedPath = getPathStr(keyPath);\n    path2keyRef.current.set(connectedPath, key);\n    key2pathRef.current.set(key, connectedPath);\n    updateRef.current += 1;\n    var id = updateRef.current;\n    nextSlice(function () {\n      if (id === updateRef.current) {\n        forceUpdate();\n      }\n    });\n  }, []);\n  var unregisterPath = useCallback(function (key, keyPath) {\n    var connectedPath = getPathStr(keyPath);\n    path2keyRef.current.delete(connectedPath);\n    key2pathRef.current.delete(key);\n  }, []);\n  var refreshOverflowKeys = useCallback(function (keys) {\n    setOverflowKeys(keys);\n  }, []);\n  var getKeyPath = useCallback(function (eventKey, includeOverflow) {\n    var fullPath = key2pathRef.current.get(eventKey) || '';\n    var keys = getPathKeys(fullPath);\n    if (includeOverflow && overflowKeys.includes(keys[0])) {\n      keys.unshift(OVERFLOW_KEY);\n    }\n    return keys;\n  }, [overflowKeys]);\n  var isSubPathKey = useCallback(function (pathKeys, eventKey) {\n    return pathKeys.filter(function (item) {\n      return item !== undefined;\n    }).some(function (pathKey) {\n      var pathKeyList = getKeyPath(pathKey, true);\n      return pathKeyList.includes(eventKey);\n    });\n  }, [getKeyPath]);\n  var getKeys = function getKeys() {\n    var keys = _toConsumableArray(key2pathRef.current.keys());\n    if (overflowKeys.length) {\n      keys.push(OVERFLOW_KEY);\n    }\n    return keys;\n  };\n\n  /**\n   * Find current key related child path keys\n   */\n  var getSubPathKeys = useCallback(function (key) {\n    var connectedPath = \"\".concat(key2pathRef.current.get(key)).concat(PATH_SPLIT);\n    var pathKeys = new Set();\n    _toConsumableArray(path2keyRef.current.keys()).forEach(function (pathKey) {\n      if (pathKey.startsWith(connectedPath)) {\n        pathKeys.add(path2keyRef.current.get(pathKey));\n      }\n    });\n    return pathKeys;\n  }, []);\n  React.useEffect(function () {\n    return function () {\n      destroyRef.current = true;\n    };\n  }, []);\n  return {\n    // Register\n    registerPath: registerPath,\n    unregisterPath: unregisterPath,\n    refreshOverflowKeys: refreshOverflowKeys,\n    // Util\n    isSubPathKey: isSubPathKey,\n    getKeyPath: getKeyPath,\n    getKeys: getKeys,\n    getSubPathKeys: getSubPathKeys\n  };\n}","export function nextSlice(callback) {\n  /* istanbul ignore next */\n  Promise.resolve().then(callback);\n}","import * as React from 'react';\n\n/**\n * Cache callback function that always return same ref instead.\n * This is used for context optimization.\n */\nexport default function useMemoCallback(func) {\n  var funRef = React.useRef(func);\n  funRef.current = func;\n  var callback = React.useCallback(function () {\n    var _funRef$current;\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n    return (_funRef$current = funRef.current) === null || _funRef$current === void 0 ? void 0 : _funRef$current.call.apply(_funRef$current, [funRef].concat(args));\n  }, []);\n  return func ? callback : undefined;\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nvar uniquePrefix = Math.random().toFixed(5).toString().slice(2);\nvar internalId = 0;\nexport default function useUUID(id) {\n  var _useMergedState = useMergedState(id, {\n      value: id\n    }),\n    _useMergedState2 = _slicedToArray(_useMergedState, 2),\n    uuid = _useMergedState2[0],\n    setUUID = _useMergedState2[1];\n  React.useEffect(function () {\n    internalId += 1;\n    var newId = process.env.NODE_ENV === 'test' ? 'test' : \"\".concat(uniquePrefix, \"-\").concat(internalId);\n    setUUID(\"rc-menu-uuid-\".concat(newId));\n  }, []);\n  return uuid;\n}","import * as React from 'react';\nimport { MenuContext } from \"../context/MenuContext\";\nexport default function useActive(eventKey, disabled, onMouseEnter, onMouseLeave) {\n  var _React$useContext = React.useContext(MenuContext),\n    activeKey = _React$useContext.activeKey,\n    onActive = _React$useContext.onActive,\n    onInactive = _React$useContext.onInactive;\n  var ret = {\n    active: activeKey === eventKey\n  };\n\n  // Skip when disabled\n  if (!disabled) {\n    ret.onMouseEnter = function (domEvent) {\n      onMouseEnter === null || onMouseEnter === void 0 || onMouseEnter({\n        key: eventKey,\n        domEvent: domEvent\n      });\n      onActive(eventKey);\n    };\n    ret.onMouseLeave = function (domEvent) {\n      onMouseLeave === null || onMouseLeave === void 0 || onMouseLeave({\n        key: eventKey,\n        domEvent: domEvent\n      });\n      onInactive(eventKey);\n    };\n  }\n  return ret;\n}","import * as React from 'react';\nimport { MenuContext } from \"../context/MenuContext\";\nexport default function useDirectionStyle(level) {\n  var _React$useContext = React.useContext(MenuContext),\n    mode = _React$useContext.mode,\n    rtl = _React$useContext.rtl,\n    inlineIndent = _React$useContext.inlineIndent;\n  if (mode !== 'inline') {\n    return null;\n  }\n  var len = level;\n  return rtl ? {\n    paddingRight: len * inlineIndent\n  } : {\n    paddingLeft: len * inlineIndent\n  };\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nexport default function Icon(_ref) {\n  var icon = _ref.icon,\n    props = _ref.props,\n    children = _ref.children;\n  var iconNode;\n  if (icon === null || icon === false) {\n    return null;\n  }\n  if (typeof icon === 'function') {\n    iconNode = /*#__PURE__*/React.createElement(icon, _objectSpread({}, props));\n  } else if (typeof icon !== \"boolean\") {\n    // Compatible for origin definition\n    iconNode = icon;\n  }\n  return iconNode || children || null;\n}","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"item\"];\nimport warning from \"rc-util/es/warning\";\n\n/**\n * `onClick` event return `info.item` which point to react node directly.\n * We should warning this since it will not work on FC.\n */\nexport function warnItemProp(_ref) {\n  var item = _ref.item,\n    restInfo = _objectWithoutProperties(_ref, _excluded);\n  Object.defineProperty(restInfo, 'item', {\n    get: function get() {\n      warning(false, '`info.item` is deprecated since we will move to function component that not provides React Node instance in future.');\n      return item;\n    }\n  });\n  return restInfo;\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nvar _excluded = [\"title\", \"attribute\", \"elementRef\"],\n  _excluded2 = [\"style\", \"className\", \"eventKey\", \"warnKey\", \"disabled\", \"itemIcon\", \"children\", \"role\", \"onMouseEnter\", \"onMouseLeave\", \"onClick\", \"onKeyDown\", \"onFocus\"],\n  _excluded3 = [\"active\"];\nimport classNames from 'classnames';\nimport Overflow from 'rc-overflow';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport omit from \"rc-util/es/omit\";\nimport { useComposeRef } from \"rc-util/es/ref\";\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport { useMenuId } from \"./context/IdContext\";\nimport { MenuContext } from \"./context/MenuContext\";\nimport { useFullPath, useMeasure } from \"./context/PathContext\";\nimport PrivateContext from \"./context/PrivateContext\";\nimport useActive from \"./hooks/useActive\";\nimport useDirectionStyle from \"./hooks/useDirectionStyle\";\nimport Icon from \"./Icon\";\nimport { warnItemProp } from \"./utils/warnUtil\";\n// Since Menu event provide the `info.item` which point to the MenuItem node instance.\n// We have to use class component here.\n// This should be removed from doc & api in future.\nvar LegacyMenuItem = /*#__PURE__*/function (_React$Component) {\n  _inherits(LegacyMenuItem, _React$Component);\n  var _super = _createSuper(LegacyMenuItem);\n  function LegacyMenuItem() {\n    _classCallCheck(this, LegacyMenuItem);\n    return _super.apply(this, arguments);\n  }\n  _createClass(LegacyMenuItem, [{\n    key: \"render\",\n    value: function render() {\n      var _this$props = this.props,\n        title = _this$props.title,\n        attribute = _this$props.attribute,\n        elementRef = _this$props.elementRef,\n        restProps = _objectWithoutProperties(_this$props, _excluded);\n\n      // Here the props are eventually passed to the DOM element.\n      // React does not recognize non-standard attributes.\n      // Therefore, remove the props that is not used here.\n      // ref: https://github.com/ant-design/ant-design/issues/41395\n      var passedProps = omit(restProps, ['eventKey', 'popupClassName', 'popupOffset', 'onTitleClick']);\n      warning(!attribute, '`attribute` of Menu.Item is deprecated. Please pass attribute directly.');\n      return /*#__PURE__*/React.createElement(Overflow.Item, _extends({}, attribute, {\n        title: typeof title === 'string' ? title : undefined\n      }, passedProps, {\n        ref: elementRef\n      }));\n    }\n  }]);\n  return LegacyMenuItem;\n}(React.Component);\n/**\n * Real Menu Item component\n */\nvar InternalMenuItem = /*#__PURE__*/React.forwardRef(function (props, ref) {\n  var style = props.style,\n    className = props.className,\n    eventKey = props.eventKey,\n    warnKey = props.warnKey,\n    disabled = props.disabled,\n    itemIcon = props.itemIcon,\n    children = props.children,\n    role = props.role,\n    onMouseEnter = props.onMouseEnter,\n    onMouseLeave = props.onMouseLeave,\n    onClick = props.onClick,\n    onKeyDown = props.onKeyDown,\n    onFocus = props.onFocus,\n    restProps = _objectWithoutProperties(props, _excluded2);\n  var domDataId = useMenuId(eventKey);\n  var _React$useContext = React.useContext(MenuContext),\n    prefixCls = _React$useContext.prefixCls,\n    onItemClick = _React$useContext.onItemClick,\n    contextDisabled = _React$useContext.disabled,\n    overflowDisabled = _React$useContext.overflowDisabled,\n    contextItemIcon = _React$useContext.itemIcon,\n    selectedKeys = _React$useContext.selectedKeys,\n    onActive = _React$useContext.onActive;\n  var _React$useContext2 = React.useContext(PrivateContext),\n    _internalRenderMenuItem = _React$useContext2._internalRenderMenuItem;\n  var itemCls = \"\".concat(prefixCls, \"-item\");\n  var legacyMenuItemRef = React.useRef();\n  var elementRef = React.useRef();\n  var mergedDisabled = contextDisabled || disabled;\n  var mergedEleRef = useComposeRef(ref, elementRef);\n  var connectedKeys = useFullPath(eventKey);\n\n  // ================================ Warn ================================\n  if (process.env.NODE_ENV !== 'production' && warnKey) {\n    warning(false, 'MenuItem should not leave undefined `key`.');\n  }\n\n  // ============================= Info =============================\n  var getEventInfo = function getEventInfo(e) {\n    return {\n      key: eventKey,\n      // Note: For legacy code is reversed which not like other antd component\n      keyPath: _toConsumableArray(connectedKeys).reverse(),\n      item: legacyMenuItemRef.current,\n      domEvent: e\n    };\n  };\n\n  // ============================= Icon =============================\n  var mergedItemIcon = itemIcon || contextItemIcon;\n\n  // ============================ Active ============================\n  var _useActive = useActive(eventKey, mergedDisabled, onMouseEnter, onMouseLeave),\n    active = _useActive.active,\n    activeProps = _objectWithoutProperties(_useActive, _excluded3);\n\n  // ============================ Select ============================\n  var selected = selectedKeys.includes(eventKey);\n\n  // ======================== DirectionStyle ========================\n  var directionStyle = useDirectionStyle(connectedKeys.length);\n\n  // ============================ Events ============================\n  var onInternalClick = function onInternalClick(e) {\n    if (mergedDisabled) {\n      return;\n    }\n    var info = getEventInfo(e);\n    onClick === null || onClick === void 0 || onClick(warnItemProp(info));\n    onItemClick(info);\n  };\n  var onInternalKeyDown = function onInternalKeyDown(e) {\n    onKeyDown === null || onKeyDown === void 0 || onKeyDown(e);\n    if (e.which === KeyCode.ENTER) {\n      var info = getEventInfo(e);\n\n      // Legacy. Key will also trigger click event\n      onClick === null || onClick === void 0 || onClick(warnItemProp(info));\n      onItemClick(info);\n    }\n  };\n\n  /**\n   * Used for accessibility. Helper will focus element without key board.\n   * We should manually trigger an active\n   */\n  var onInternalFocus = function onInternalFocus(e) {\n    onActive(eventKey);\n    onFocus === null || onFocus === void 0 || onFocus(e);\n  };\n\n  // ============================ Render ============================\n  var optionRoleProps = {};\n  if (props.role === 'option') {\n    optionRoleProps['aria-selected'] = selected;\n  }\n  var renderNode = /*#__PURE__*/React.createElement(LegacyMenuItem, _extends({\n    ref: legacyMenuItemRef,\n    elementRef: mergedEleRef,\n    role: role === null ? 'none' : role || 'menuitem',\n    tabIndex: disabled ? null : -1,\n    \"data-menu-id\": overflowDisabled && domDataId ? null : domDataId\n  }, restProps, activeProps, optionRoleProps, {\n    component: \"li\",\n    \"aria-disabled\": disabled,\n    style: _objectSpread(_objectSpread({}, directionStyle), style),\n    className: classNames(itemCls, _defineProperty(_defineProperty(_defineProperty({}, \"\".concat(itemCls, \"-active\"), active), \"\".concat(itemCls, \"-selected\"), selected), \"\".concat(itemCls, \"-disabled\"), mergedDisabled), className),\n    onClick: onInternalClick,\n    onKeyDown: onInternalKeyDown,\n    onFocus: onInternalFocus\n  }), children, /*#__PURE__*/React.createElement(Icon, {\n    props: _objectSpread(_objectSpread({}, props), {}, {\n      isSelected: selected\n    }),\n    icon: mergedItemIcon\n  }));\n  if (_internalRenderMenuItem) {\n    renderNode = _internalRenderMenuItem(renderNode, props, {\n      selected: selected\n    });\n  }\n  return renderNode;\n});\nfunction MenuItem(props, ref) {\n  var eventKey = props.eventKey;\n\n  // ==================== Record KeyPath ====================\n  var measure = useMeasure();\n  var connectedKeyPath = useFullPath(eventKey);\n\n  // eslint-disable-next-line consistent-return\n  React.useEffect(function () {\n    if (measure) {\n      measure.registerPath(eventKey, connectedKeyPath);\n      return function () {\n        measure.unregisterPath(eventKey, connectedKeyPath);\n      };\n    }\n  }, [connectedKeyPath]);\n  if (measure) {\n    return null;\n  }\n\n  // ======================== Render ========================\n  return /*#__PURE__*/React.createElement(InternalMenuItem, _extends({}, props, {\n    ref: ref\n  }));\n}\nexport default /*#__PURE__*/React.forwardRef(MenuItem);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"className\", \"children\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { MenuContext } from \"../context/MenuContext\";\nvar InternalSubMenuList = function InternalSubMenuList(_ref, ref) {\n  var className = _ref.className,\n    children = _ref.children,\n    restProps = _objectWithoutProperties(_ref, _excluded);\n  var _React$useContext = React.useContext(MenuContext),\n    prefixCls = _React$useContext.prefixCls,\n    mode = _React$useContext.mode,\n    rtl = _React$useContext.rtl;\n  return /*#__PURE__*/React.createElement(\"ul\", _extends({\n    className: classNames(prefixCls, rtl && \"\".concat(prefixCls, \"-rtl\"), \"\".concat(prefixCls, \"-sub\"), \"\".concat(prefixCls, \"-\").concat(mode === 'inline' ? 'inline' : 'vertical'), className),\n    role: \"menu\"\n  }, restProps, {\n    \"data-menu-list\": true,\n    ref: ref\n  }), children);\n};\nvar SubMenuList = /*#__PURE__*/React.forwardRef(InternalSubMenuList);\nSubMenuList.displayName = 'SubMenuList';\nexport default SubMenuList;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport toArray from \"rc-util/es/Children/toArray\";\nimport * as React from 'react';\nexport function parseChildren(children, keyPath) {\n  return toArray(children).map(function (child, index) {\n    if ( /*#__PURE__*/React.isValidElement(child)) {\n      var _eventKey, _child$props;\n      var key = child.key;\n      var eventKey = (_eventKey = (_child$props = child.props) === null || _child$props === void 0 ? void 0 : _child$props.eventKey) !== null && _eventKey !== void 0 ? _eventKey : key;\n      var emptyKey = eventKey === null || eventKey === undefined;\n      if (emptyKey) {\n        eventKey = \"tmp_key-\".concat([].concat(_toConsumableArray(keyPath), [index]).join('-'));\n      }\n      var cloneProps = {\n        key: eventKey,\n        eventKey: eventKey\n      };\n      if (process.env.NODE_ENV !== 'production' && emptyKey) {\n        cloneProps.warnKey = true;\n      }\n      return /*#__PURE__*/React.cloneElement(child, cloneProps);\n    }\n    return child;\n  });\n}","var autoAdjustOverflow = {\n  adjustX: 1,\n  adjustY: 1\n};\nexport var placements = {\n  topLeft: {\n    points: ['bl', 'tl'],\n    overflow: autoAdjustOverflow\n  },\n  topRight: {\n    points: ['br', 'tr'],\n    overflow: autoAdjustOverflow\n  },\n  bottomLeft: {\n    points: ['tl', 'bl'],\n    overflow: autoAdjustOverflow\n  },\n  bottomRight: {\n    points: ['tr', 'br'],\n    overflow: autoAdjustOverflow\n  },\n  leftTop: {\n    points: ['tr', 'tl'],\n    overflow: autoAdjustOverflow\n  },\n  leftBottom: {\n    points: ['br', 'bl'],\n    overflow: autoAdjustOverflow\n  },\n  rightTop: {\n    points: ['tl', 'tr'],\n    overflow: autoAdjustOverflow\n  },\n  rightBottom: {\n    points: ['bl', 'br'],\n    overflow: autoAdjustOverflow\n  }\n};\nexport var placementsRtl = {\n  topLeft: {\n    points: ['bl', 'tl'],\n    overflow: autoAdjustOverflow\n  },\n  topRight: {\n    points: ['br', 'tr'],\n    overflow: autoAdjustOverflow\n  },\n  bottomLeft: {\n    points: ['tl', 'bl'],\n    overflow: autoAdjustOverflow\n  },\n  bottomRight: {\n    points: ['tr', 'br'],\n    overflow: autoAdjustOverflow\n  },\n  rightTop: {\n    points: ['tr', 'tl'],\n    overflow: autoAdjustOverflow\n  },\n  rightBottom: {\n    points: ['br', 'bl'],\n    overflow: autoAdjustOverflow\n  },\n  leftTop: {\n    points: ['tl', 'tr'],\n    overflow: autoAdjustOverflow\n  },\n  leftBottom: {\n    points: ['bl', 'br'],\n    overflow: autoAdjustOverflow\n  }\n};\nexport default placements;","export function getMotion(mode, motion, defaultMotions) {\n  if (motion) {\n    return motion;\n  }\n  if (defaultMotions) {\n    return defaultMotions[mode] || defaultMotions.other;\n  }\n  return undefined;\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport Trigger from '@rc-component/trigger';\nimport classNames from 'classnames';\nimport raf from \"rc-util/es/raf\";\nimport { MenuContext } from \"../context/MenuContext\";\nimport { placements, placementsRtl } from \"../placements\";\nimport { getMotion } from \"../utils/motionUtil\";\nvar popupPlacementMap = {\n  horizontal: 'bottomLeft',\n  vertical: 'rightTop',\n  'vertical-left': 'rightTop',\n  'vertical-right': 'leftTop'\n};\nexport default function PopupTrigger(_ref) {\n  var prefixCls = _ref.prefixCls,\n    visible = _ref.visible,\n    children = _ref.children,\n    popup = _ref.popup,\n    popupStyle = _ref.popupStyle,\n    popupClassName = _ref.popupClassName,\n    popupOffset = _ref.popupOffset,\n    disabled = _ref.disabled,\n    mode = _ref.mode,\n    onVisibleChange = _ref.onVisibleChange;\n  var _React$useContext = React.useContext(MenuContext),\n    getPopupContainer = _React$useContext.getPopupContainer,\n    rtl = _React$useContext.rtl,\n    subMenuOpenDelay = _React$useContext.subMenuOpenDelay,\n    subMenuCloseDelay = _React$useContext.subMenuCloseDelay,\n    builtinPlacements = _React$useContext.builtinPlacements,\n    triggerSubMenuAction = _React$useContext.triggerSubMenuAction,\n    forceSubMenuRender = _React$useContext.forceSubMenuRender,\n    rootClassName = _React$useContext.rootClassName,\n    motion = _React$useContext.motion,\n    defaultMotions = _React$useContext.defaultMotions;\n  var _React$useState = React.useState(false),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    innerVisible = _React$useState2[0],\n    setInnerVisible = _React$useState2[1];\n  var placement = rtl ? _objectSpread(_objectSpread({}, placementsRtl), builtinPlacements) : _objectSpread(_objectSpread({}, placements), builtinPlacements);\n  var popupPlacement = popupPlacementMap[mode];\n  var targetMotion = getMotion(mode, motion, defaultMotions);\n  var targetMotionRef = React.useRef(targetMotion);\n  if (mode !== 'inline') {\n    /**\n     * PopupTrigger is only used for vertical and horizontal types.\n     * When collapsed is unfolded, the inline animation will destroy the vertical animation.\n     */\n    targetMotionRef.current = targetMotion;\n  }\n  var mergedMotion = _objectSpread(_objectSpread({}, targetMotionRef.current), {}, {\n    leavedClassName: \"\".concat(prefixCls, \"-hidden\"),\n    removeOnLeave: false,\n    motionAppear: true\n  });\n\n  // Delay to change visible\n  var visibleRef = React.useRef();\n  React.useEffect(function () {\n    visibleRef.current = raf(function () {\n      setInnerVisible(visible);\n    });\n    return function () {\n      raf.cancel(visibleRef.current);\n    };\n  }, [visible]);\n  return /*#__PURE__*/React.createElement(Trigger, {\n    prefixCls: prefixCls,\n    popupClassName: classNames(\"\".concat(prefixCls, \"-popup\"), _defineProperty({}, \"\".concat(prefixCls, \"-rtl\"), rtl), popupClassName, rootClassName),\n    stretch: mode === 'horizontal' ? 'minWidth' : null,\n    getPopupContainer: getPopupContainer,\n    builtinPlacements: placement,\n    popupPlacement: popupPlacement,\n    popupVisible: innerVisible,\n    popup: popup,\n    popupStyle: popupStyle,\n    popupAlign: popupOffset && {\n      offset: popupOffset\n    },\n    action: disabled ? [] : [triggerSubMenuAction],\n    mouseEnterDelay: subMenuOpenDelay,\n    mouseLeaveDelay: subMenuCloseDelay,\n    onPopupVisibleChange: onVisibleChange,\n    forceRender: forceSubMenuRender,\n    popupMotion: mergedMotion,\n    fresh: true\n  }, children);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport CSSMotion from 'rc-motion';\nimport { getMotion } from \"../utils/motionUtil\";\nimport MenuContextProvider, { MenuContext } from \"../context/MenuContext\";\nimport SubMenuList from \"./SubMenuList\";\nexport default function InlineSubMenuList(_ref) {\n  var id = _ref.id,\n    open = _ref.open,\n    keyPath = _ref.keyPath,\n    children = _ref.children;\n  var fixedMode = 'inline';\n  var _React$useContext = React.useContext(MenuContext),\n    prefixCls = _React$useContext.prefixCls,\n    forceSubMenuRender = _React$useContext.forceSubMenuRender,\n    motion = _React$useContext.motion,\n    defaultMotions = _React$useContext.defaultMotions,\n    mode = _React$useContext.mode;\n\n  // Always use latest mode check\n  var sameModeRef = React.useRef(false);\n  sameModeRef.current = mode === fixedMode;\n\n  // We record `destroy` mark here since when mode change from `inline` to others.\n  // The inline list should remove when motion end.\n  var _React$useState = React.useState(!sameModeRef.current),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    destroy = _React$useState2[0],\n    setDestroy = _React$useState2[1];\n  var mergedOpen = sameModeRef.current ? open : false;\n\n  // ================================= Effect =================================\n  // Reset destroy state when mode change back\n  React.useEffect(function () {\n    if (sameModeRef.current) {\n      setDestroy(false);\n    }\n  }, [mode]);\n\n  // ================================= Render =================================\n  var mergedMotion = _objectSpread({}, getMotion(fixedMode, motion, defaultMotions));\n\n  // No need appear since nest inlineCollapse changed\n  if (keyPath.length > 1) {\n    mergedMotion.motionAppear = false;\n  }\n\n  // Hide inline list when mode changed and motion end\n  var originOnVisibleChanged = mergedMotion.onVisibleChanged;\n  mergedMotion.onVisibleChanged = function (newVisible) {\n    if (!sameModeRef.current && !newVisible) {\n      setDestroy(true);\n    }\n    return originOnVisibleChanged === null || originOnVisibleChanged === void 0 ? void 0 : originOnVisibleChanged(newVisible);\n  };\n  if (destroy) {\n    return null;\n  }\n  return /*#__PURE__*/React.createElement(MenuContextProvider, {\n    mode: fixedMode,\n    locked: !sameModeRef.current\n  }, /*#__PURE__*/React.createElement(CSSMotion, _extends({\n    visible: mergedOpen\n  }, mergedMotion, {\n    forceRender: forceSubMenuRender,\n    removeOnLeave: false,\n    leavedClassName: \"\".concat(prefixCls, \"-hidden\")\n  }), function (_ref2) {\n    var motionClassName = _ref2.className,\n      motionStyle = _ref2.style;\n    return /*#__PURE__*/React.createElement(SubMenuList, {\n      id: id,\n      className: motionClassName,\n      style: motionStyle\n    }, children);\n  }));\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"style\", \"className\", \"title\", \"eventKey\", \"warnKey\", \"disabled\", \"internalPopupClose\", \"children\", \"itemIcon\", \"expandIcon\", \"popupClassName\", \"popupOffset\", \"popupStyle\", \"onClick\", \"onMouseEnter\", \"onMouseLeave\", \"onTitleClick\", \"onTitleMouseEnter\", \"onTitleMouseLeave\"],\n  _excluded2 = [\"active\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport Overflow from 'rc-overflow';\nimport warning from \"rc-util/es/warning\";\nimport SubMenuList from \"./SubMenuList\";\nimport { parseChildren } from \"../utils/commonUtil\";\nimport MenuContextProvider, { MenuContext } from \"../context/MenuContext\";\nimport useMemoCallback from \"../hooks/useMemoCallback\";\nimport PopupTrigger from \"./PopupTrigger\";\nimport Icon from \"../Icon\";\nimport useActive from \"../hooks/useActive\";\nimport { warnItemProp } from \"../utils/warnUtil\";\nimport useDirectionStyle from \"../hooks/useDirectionStyle\";\nimport InlineSubMenuList from \"./InlineSubMenuList\";\nimport { PathTrackerContext, PathUserContext, useFullPath, useMeasure } from \"../context/PathContext\";\nimport { useMenuId } from \"../context/IdContext\";\nimport PrivateContext from \"../context/PrivateContext\";\nvar InternalSubMenu = /*#__PURE__*/React.forwardRef(function (props, ref) {\n  var style = props.style,\n    className = props.className,\n    title = props.title,\n    eventKey = props.eventKey,\n    warnKey = props.warnKey,\n    disabled = props.disabled,\n    internalPopupClose = props.internalPopupClose,\n    children = props.children,\n    itemIcon = props.itemIcon,\n    expandIcon = props.expandIcon,\n    popupClassName = props.popupClassName,\n    popupOffset = props.popupOffset,\n    popupStyle = props.popupStyle,\n    onClick = props.onClick,\n    onMouseEnter = props.onMouseEnter,\n    onMouseLeave = props.onMouseLeave,\n    onTitleClick = props.onTitleClick,\n    onTitleMouseEnter = props.onTitleMouseEnter,\n    onTitleMouseLeave = props.onTitleMouseLeave,\n    restProps = _objectWithoutProperties(props, _excluded);\n  var domDataId = useMenuId(eventKey);\n  var _React$useContext = React.useContext(MenuContext),\n    prefixCls = _React$useContext.prefixCls,\n    mode = _React$useContext.mode,\n    openKeys = _React$useContext.openKeys,\n    contextDisabled = _React$useContext.disabled,\n    overflowDisabled = _React$useContext.overflowDisabled,\n    activeKey = _React$useContext.activeKey,\n    selectedKeys = _React$useContext.selectedKeys,\n    contextItemIcon = _React$useContext.itemIcon,\n    contextExpandIcon = _React$useContext.expandIcon,\n    onItemClick = _React$useContext.onItemClick,\n    onOpenChange = _React$useContext.onOpenChange,\n    onActive = _React$useContext.onActive;\n  var _React$useContext2 = React.useContext(PrivateContext),\n    _internalRenderSubMenuItem = _React$useContext2._internalRenderSubMenuItem;\n  var _React$useContext3 = React.useContext(PathUserContext),\n    isSubPathKey = _React$useContext3.isSubPathKey;\n  var connectedPath = useFullPath();\n  var subMenuPrefixCls = \"\".concat(prefixCls, \"-submenu\");\n  var mergedDisabled = contextDisabled || disabled;\n  var elementRef = React.useRef();\n  var popupRef = React.useRef();\n\n  // ================================ Warn ================================\n  if (process.env.NODE_ENV !== 'production' && warnKey) {\n    warning(false, 'SubMenu should not leave undefined `key`.');\n  }\n\n  // ================================ Icon ================================\n  var mergedItemIcon = itemIcon !== null && itemIcon !== void 0 ? itemIcon : contextItemIcon;\n  var mergedExpandIcon = expandIcon !== null && expandIcon !== void 0 ? expandIcon : contextExpandIcon;\n\n  // ================================ Open ================================\n  var originOpen = openKeys.includes(eventKey);\n  var open = !overflowDisabled && originOpen;\n\n  // =============================== Select ===============================\n  var childrenSelected = isSubPathKey(selectedKeys, eventKey);\n\n  // =============================== Active ===============================\n  var _useActive = useActive(eventKey, mergedDisabled, onTitleMouseEnter, onTitleMouseLeave),\n    active = _useActive.active,\n    activeProps = _objectWithoutProperties(_useActive, _excluded2);\n\n  // Fallback of active check to avoid hover on menu title or disabled item\n  var _React$useState = React.useState(false),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    childrenActive = _React$useState2[0],\n    setChildrenActive = _React$useState2[1];\n  var triggerChildrenActive = function triggerChildrenActive(newActive) {\n    if (!mergedDisabled) {\n      setChildrenActive(newActive);\n    }\n  };\n  var onInternalMouseEnter = function onInternalMouseEnter(domEvent) {\n    triggerChildrenActive(true);\n    onMouseEnter === null || onMouseEnter === void 0 || onMouseEnter({\n      key: eventKey,\n      domEvent: domEvent\n    });\n  };\n  var onInternalMouseLeave = function onInternalMouseLeave(domEvent) {\n    triggerChildrenActive(false);\n    onMouseLeave === null || onMouseLeave === void 0 || onMouseLeave({\n      key: eventKey,\n      domEvent: domEvent\n    });\n  };\n  var mergedActive = React.useMemo(function () {\n    if (active) {\n      return active;\n    }\n    if (mode !== 'inline') {\n      return childrenActive || isSubPathKey([activeKey], eventKey);\n    }\n    return false;\n  }, [mode, active, activeKey, childrenActive, eventKey, isSubPathKey]);\n\n  // ========================== DirectionStyle ==========================\n  var directionStyle = useDirectionStyle(connectedPath.length);\n\n  // =============================== Events ===============================\n  // >>>> Title click\n  var onInternalTitleClick = function onInternalTitleClick(e) {\n    // Skip if disabled\n    if (mergedDisabled) {\n      return;\n    }\n    onTitleClick === null || onTitleClick === void 0 || onTitleClick({\n      key: eventKey,\n      domEvent: e\n    });\n\n    // Trigger open by click when mode is `inline`\n    if (mode === 'inline') {\n      onOpenChange(eventKey, !originOpen);\n    }\n  };\n\n  // >>>> Context for children click\n  var onMergedItemClick = useMemoCallback(function (info) {\n    onClick === null || onClick === void 0 || onClick(warnItemProp(info));\n    onItemClick(info);\n  });\n\n  // >>>>> Visible change\n  var onPopupVisibleChange = function onPopupVisibleChange(newVisible) {\n    if (mode !== 'inline') {\n      onOpenChange(eventKey, newVisible);\n    }\n  };\n\n  /**\n   * Used for accessibility. Helper will focus element without key board.\n   * We should manually trigger an active\n   */\n  var onInternalFocus = function onInternalFocus() {\n    onActive(eventKey);\n  };\n\n  // =============================== Render ===============================\n  var popupId = domDataId && \"\".concat(domDataId, \"-popup\");\n\n  // >>>>> Title\n  var titleNode = /*#__PURE__*/React.createElement(\"div\", _extends({\n    role: \"menuitem\",\n    style: directionStyle,\n    className: \"\".concat(subMenuPrefixCls, \"-title\"),\n    tabIndex: mergedDisabled ? null : -1,\n    ref: elementRef,\n    title: typeof title === 'string' ? title : null,\n    \"data-menu-id\": overflowDisabled && domDataId ? null : domDataId,\n    \"aria-expanded\": open,\n    \"aria-haspopup\": true,\n    \"aria-controls\": popupId,\n    \"aria-disabled\": mergedDisabled,\n    onClick: onInternalTitleClick,\n    onFocus: onInternalFocus\n  }, activeProps), title, /*#__PURE__*/React.createElement(Icon, {\n    icon: mode !== 'horizontal' ? mergedExpandIcon : undefined,\n    props: _objectSpread(_objectSpread({}, props), {}, {\n      isOpen: open,\n      // [Legacy] Not sure why need this mark\n      isSubMenu: true\n    })\n  }, /*#__PURE__*/React.createElement(\"i\", {\n    className: \"\".concat(subMenuPrefixCls, \"-arrow\")\n  })));\n\n  // Cache mode if it change to `inline` which do not have popup motion\n  var triggerModeRef = React.useRef(mode);\n  if (mode !== 'inline' && connectedPath.length > 1) {\n    triggerModeRef.current = 'vertical';\n  } else {\n    triggerModeRef.current = mode;\n  }\n  if (!overflowDisabled) {\n    var triggerMode = triggerModeRef.current;\n\n    // Still wrap with Trigger here since we need avoid react re-mount dom node\n    // Which makes motion failed\n    titleNode = /*#__PURE__*/React.createElement(PopupTrigger, {\n      mode: triggerMode,\n      prefixCls: subMenuPrefixCls,\n      visible: !internalPopupClose && open && mode !== 'inline',\n      popupClassName: popupClassName,\n      popupOffset: popupOffset,\n      popupStyle: popupStyle,\n      popup: /*#__PURE__*/React.createElement(MenuContextProvider\n      // Special handle of horizontal mode\n      , {\n        mode: triggerMode === 'horizontal' ? 'vertical' : triggerMode\n      }, /*#__PURE__*/React.createElement(SubMenuList, {\n        id: popupId,\n        ref: popupRef\n      }, children)),\n      disabled: mergedDisabled,\n      onVisibleChange: onPopupVisibleChange\n    }, titleNode);\n  }\n\n  // >>>>> List node\n  var listNode = /*#__PURE__*/React.createElement(Overflow.Item, _extends({\n    ref: ref,\n    role: \"none\"\n  }, restProps, {\n    component: \"li\",\n    style: style,\n    className: classNames(subMenuPrefixCls, \"\".concat(subMenuPrefixCls, \"-\").concat(mode), className, _defineProperty(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(subMenuPrefixCls, \"-open\"), open), \"\".concat(subMenuPrefixCls, \"-active\"), mergedActive), \"\".concat(subMenuPrefixCls, \"-selected\"), childrenSelected), \"\".concat(subMenuPrefixCls, \"-disabled\"), mergedDisabled)),\n    onMouseEnter: onInternalMouseEnter,\n    onMouseLeave: onInternalMouseLeave\n  }), titleNode, !overflowDisabled && /*#__PURE__*/React.createElement(InlineSubMenuList, {\n    id: popupId,\n    open: open,\n    keyPath: connectedPath\n  }, children));\n  if (_internalRenderSubMenuItem) {\n    listNode = _internalRenderSubMenuItem(listNode, props, {\n      selected: childrenSelected,\n      active: mergedActive,\n      open: open,\n      disabled: mergedDisabled\n    });\n  }\n\n  // >>>>> Render\n  return /*#__PURE__*/React.createElement(MenuContextProvider, {\n    onItemClick: onMergedItemClick,\n    mode: mode === 'horizontal' ? 'vertical' : mode,\n    itemIcon: mergedItemIcon,\n    expandIcon: mergedExpandIcon\n  }, listNode);\n});\nvar SubMenu = /*#__PURE__*/React.forwardRef(function (props, ref) {\n  var eventKey = props.eventKey,\n    children = props.children;\n  var connectedKeyPath = useFullPath(eventKey);\n  var childList = parseChildren(children, connectedKeyPath);\n\n  // ==================== Record KeyPath ====================\n  var measure = useMeasure();\n\n  // eslint-disable-next-line consistent-return\n  React.useEffect(function () {\n    if (measure) {\n      measure.registerPath(eventKey, connectedKeyPath);\n      return function () {\n        measure.unregisterPath(eventKey, connectedKeyPath);\n      };\n    }\n  }, [connectedKeyPath]);\n  var renderNode;\n\n  // ======================== Render ========================\n  if (measure) {\n    renderNode = childList;\n  } else {\n    renderNode = /*#__PURE__*/React.createElement(InternalSubMenu, _extends({\n      ref: ref\n    }, props), childList);\n  }\n  return /*#__PURE__*/React.createElement(PathTrackerContext.Provider, {\n    value: connectedKeyPath\n  }, renderNode);\n});\nif (process.env.NODE_ENV !== 'production') {\n  SubMenu.displayName = 'SubMenu';\n}\nexport default SubMenu;","import * as React from 'react';\nimport classNames from 'classnames';\nimport { MenuContext } from \"./context/MenuContext\";\nimport { useMeasure } from \"./context/PathContext\";\nexport default function Divider(_ref) {\n  var className = _ref.className,\n    style = _ref.style;\n  var _React$useContext = React.useContext(MenuContext),\n    prefixCls = _React$useContext.prefixCls;\n  var measure = useMeasure();\n  if (measure) {\n    return null;\n  }\n  return /*#__PURE__*/React.createElement(\"li\", {\n    role: \"separator\",\n    className: classNames(\"\".concat(prefixCls, \"-item-divider\"), className),\n    style: style\n  });\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"className\", \"title\", \"eventKey\", \"children\"];\nimport classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport { MenuContext } from \"./context/MenuContext\";\nimport { useFullPath, useMeasure } from \"./context/PathContext\";\nimport { parseChildren } from \"./utils/commonUtil\";\nvar InternalMenuItemGroup = /*#__PURE__*/React.forwardRef(function (props, ref) {\n  var className = props.className,\n    title = props.title,\n    eventKey = props.eventKey,\n    children = props.children,\n    restProps = _objectWithoutProperties(props, _excluded);\n  var _React$useContext = React.useContext(MenuContext),\n    prefixCls = _React$useContext.prefixCls;\n  var groupPrefixCls = \"\".concat(prefixCls, \"-item-group\");\n  return /*#__PURE__*/React.createElement(\"li\", _extends({\n    ref: ref,\n    role: \"presentation\"\n  }, restProps, {\n    onClick: function onClick(e) {\n      return e.stopPropagation();\n    },\n    className: classNames(groupPrefixCls, className)\n  }), /*#__PURE__*/React.createElement(\"div\", {\n    role: \"presentation\",\n    className: \"\".concat(groupPrefixCls, \"-title\"),\n    title: typeof title === 'string' ? title : undefined\n  }, title), /*#__PURE__*/React.createElement(\"ul\", {\n    role: \"group\",\n    className: \"\".concat(groupPrefixCls, \"-list\")\n  }, children));\n});\nvar MenuItemGroup = /*#__PURE__*/React.forwardRef(function (props, ref) {\n  var eventKey = props.eventKey,\n    children = props.children;\n  var connectedKeyPath = useFullPath(eventKey);\n  var childList = parseChildren(children, connectedKeyPath);\n  var measure = useMeasure();\n  if (measure) {\n    return childList;\n  }\n  return /*#__PURE__*/React.createElement(InternalMenuItemGroup, _extends({\n    ref: ref\n  }, omit(props, ['warnKey'])), childList);\n});\nif (process.env.NODE_ENV !== 'production') {\n  MenuItemGroup.displayName = 'MenuItemGroup';\n}\nexport default MenuItemGroup;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nvar _excluded = [\"label\", \"children\", \"key\", \"type\", \"extra\"];\nimport * as React from 'react';\nimport Divider from \"../Divider\";\nimport MenuItem from \"../MenuItem\";\nimport MenuItemGroup from \"../MenuItemGroup\";\nimport SubMenu from \"../SubMenu\";\nimport { parseChildren } from \"./commonUtil\";\nfunction convertItemsToNodes(list, components, prefixCls) {\n  var MergedMenuItem = components.item,\n    MergedMenuItemGroup = components.group,\n    MergedSubMenu = components.submenu,\n    MergedDivider = components.divider;\n  return (list || []).map(function (opt, index) {\n    if (opt && _typeof(opt) === 'object') {\n      var _ref = opt,\n        label = _ref.label,\n        children = _ref.children,\n        key = _ref.key,\n        type = _ref.type,\n        extra = _ref.extra,\n        restProps = _objectWithoutProperties(_ref, _excluded);\n      var mergedKey = key !== null && key !== void 0 ? key : \"tmp-\".concat(index);\n\n      // MenuItemGroup & SubMenuItem\n      if (children || type === 'group') {\n        if (type === 'group') {\n          // Group\n          return /*#__PURE__*/React.createElement(MergedMenuItemGroup, _extends({\n            key: mergedKey\n          }, restProps, {\n            title: label\n          }), convertItemsToNodes(children, components, prefixCls));\n        }\n\n        // Sub Menu\n        return /*#__PURE__*/React.createElement(MergedSubMenu, _extends({\n          key: mergedKey\n        }, restProps, {\n          title: label\n        }), convertItemsToNodes(children, components, prefixCls));\n      }\n\n      // MenuItem & Divider\n      if (type === 'divider') {\n        return /*#__PURE__*/React.createElement(MergedDivider, _extends({\n          key: mergedKey\n        }, restProps));\n      }\n      return /*#__PURE__*/React.createElement(MergedMenuItem, _extends({\n        key: mergedKey\n      }, restProps), label, (!!extra || extra === 0) && /*#__PURE__*/React.createElement(\"span\", {\n        className: \"\".concat(prefixCls, \"-item-extra\")\n      }, extra));\n    }\n    return null;\n  }).filter(function (opt) {\n    return opt;\n  });\n}\nexport function parseItems(children, items, keyPath, components, prefixCls) {\n  var childNodes = children;\n  var mergedComponents = _objectSpread({\n    divider: Divider,\n    item: MenuItem,\n    group: MenuItemGroup,\n    submenu: SubMenu\n  }, components);\n  if (items) {\n    childNodes = convertItemsToNodes(items, mergedComponents, prefixCls);\n  }\n  return parseChildren(childNodes, keyPath);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"rootClassName\", \"style\", \"className\", \"tabIndex\", \"items\", \"children\", \"direction\", \"id\", \"mode\", \"inlineCollapsed\", \"disabled\", \"disabledOverflow\", \"subMenuOpenDelay\", \"subMenuCloseDelay\", \"forceSubMenuRender\", \"defaultOpenKeys\", \"openKeys\", \"activeKey\", \"defaultActiveFirst\", \"selectable\", \"multiple\", \"defaultSelectedKeys\", \"selectedKeys\", \"onSelect\", \"onDeselect\", \"inlineIndent\", \"motion\", \"defaultMotions\", \"triggerSubMenuAction\", \"builtinPlacements\", \"itemIcon\", \"expandIcon\", \"overflowedIndicator\", \"overflowedIndicatorPopupClassName\", \"getPopupContainer\", \"onClick\", \"onOpenChange\", \"onKeyDown\", \"openAnimation\", \"openTransitionName\", \"_internalRenderMenuItem\", \"_internalRenderSubMenuItem\", \"_internalComponents\"];\nimport classNames from 'classnames';\nimport Overflow from 'rc-overflow';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport isEqual from \"rc-util/es/isEqual\";\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport { useImperativeHandle } from 'react';\nimport { flushSync } from 'react-dom';\nimport { IdContext } from \"./context/IdContext\";\nimport MenuContextProvider from \"./context/MenuContext\";\nimport { PathRegisterContext, PathUserContext } from \"./context/PathContext\";\nimport PrivateContext from \"./context/PrivateContext\";\nimport { getFocusableElements, refreshElements, useAccessibility } from \"./hooks/useAccessibility\";\nimport useKeyRecords, { OVERFLOW_KEY } from \"./hooks/useKeyRecords\";\nimport useMemoCallback from \"./hooks/useMemoCallback\";\nimport useUUID from \"./hooks/useUUID\";\nimport MenuItem from \"./MenuItem\";\nimport SubMenu from \"./SubMenu\";\nimport { parseItems } from \"./utils/nodeUtil\";\nimport { warnItemProp } from \"./utils/warnUtil\";\n\n/**\n * Menu modify after refactor:\n * ## Add\n * - disabled\n *\n * ## Remove\n * - openTransitionName\n * - openAnimation\n * - onDestroy\n * - siderCollapsed: Seems antd do not use this prop (Need test in antd)\n * - collapsedWidth: Seems this logic should be handle by antd Layout.Sider\n */\n\n// optimize for render\nvar EMPTY_LIST = [];\nvar Menu = /*#__PURE__*/React.forwardRef(function (props, ref) {\n  var _childList$;\n  var _ref = props,\n    _ref$prefixCls = _ref.prefixCls,\n    prefixCls = _ref$prefixCls === void 0 ? 'rc-menu' : _ref$prefixCls,\n    rootClassName = _ref.rootClassName,\n    style = _ref.style,\n    className = _ref.className,\n    _ref$tabIndex = _ref.tabIndex,\n    tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex,\n    items = _ref.items,\n    children = _ref.children,\n    direction = _ref.direction,\n    id = _ref.id,\n    _ref$mode = _ref.mode,\n    mode = _ref$mode === void 0 ? 'vertical' : _ref$mode,\n    inlineCollapsed = _ref.inlineCollapsed,\n    disabled = _ref.disabled,\n    disabledOverflow = _ref.disabledOverflow,\n    _ref$subMenuOpenDelay = _ref.subMenuOpenDelay,\n    subMenuOpenDelay = _ref$subMenuOpenDelay === void 0 ? 0.1 : _ref$subMenuOpenDelay,\n    _ref$subMenuCloseDela = _ref.subMenuCloseDelay,\n    subMenuCloseDelay = _ref$subMenuCloseDela === void 0 ? 0.1 : _ref$subMenuCloseDela,\n    forceSubMenuRender = _ref.forceSubMenuRender,\n    defaultOpenKeys = _ref.defaultOpenKeys,\n    openKeys = _ref.openKeys,\n    activeKey = _ref.activeKey,\n    defaultActiveFirst = _ref.defaultActiveFirst,\n    _ref$selectable = _ref.selectable,\n    selectable = _ref$selectable === void 0 ? true : _ref$selectable,\n    _ref$multiple = _ref.multiple,\n    multiple = _ref$multiple === void 0 ? false : _ref$multiple,\n    defaultSelectedKeys = _ref.defaultSelectedKeys,\n    selectedKeys = _ref.selectedKeys,\n    onSelect = _ref.onSelect,\n    onDeselect = _ref.onDeselect,\n    _ref$inlineIndent = _ref.inlineIndent,\n    inlineIndent = _ref$inlineIndent === void 0 ? 24 : _ref$inlineIndent,\n    motion = _ref.motion,\n    defaultMotions = _ref.defaultMotions,\n    _ref$triggerSubMenuAc = _ref.triggerSubMenuAction,\n    triggerSubMenuAction = _ref$triggerSubMenuAc === void 0 ? 'hover' : _ref$triggerSubMenuAc,\n    builtinPlacements = _ref.builtinPlacements,\n    itemIcon = _ref.itemIcon,\n    expandIcon = _ref.expandIcon,\n    _ref$overflowedIndica = _ref.overflowedIndicator,\n    overflowedIndicator = _ref$overflowedIndica === void 0 ? '...' : _ref$overflowedIndica,\n    overflowedIndicatorPopupClassName = _ref.overflowedIndicatorPopupClassName,\n    getPopupContainer = _ref.getPopupContainer,\n    onClick = _ref.onClick,\n    onOpenChange = _ref.onOpenChange,\n    onKeyDown = _ref.onKeyDown,\n    openAnimation = _ref.openAnimation,\n    openTransitionName = _ref.openTransitionName,\n    _internalRenderMenuItem = _ref._internalRenderMenuItem,\n    _internalRenderSubMenuItem = _ref._internalRenderSubMenuItem,\n    _internalComponents = _ref._internalComponents,\n    restProps = _objectWithoutProperties(_ref, _excluded);\n  var _React$useMemo = React.useMemo(function () {\n      return [parseItems(children, items, EMPTY_LIST, _internalComponents, prefixCls), parseItems(children, items, EMPTY_LIST, {}, prefixCls)];\n    }, [children, items, _internalComponents]),\n    _React$useMemo2 = _slicedToArray(_React$useMemo, 2),\n    childList = _React$useMemo2[0],\n    measureChildList = _React$useMemo2[1];\n  var _React$useState = React.useState(false),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    mounted = _React$useState2[0],\n    setMounted = _React$useState2[1];\n  var containerRef = React.useRef();\n  var uuid = useUUID(id);\n  var isRtl = direction === 'rtl';\n\n  // ========================= Warn =========================\n  if (process.env.NODE_ENV !== 'production') {\n    warning(!openAnimation && !openTransitionName, '`openAnimation` and `openTransitionName` is removed. Please use `motion` or `defaultMotion` instead.');\n  }\n\n  // ========================= Open =========================\n  var _useMergedState = useMergedState(defaultOpenKeys, {\n      value: openKeys,\n      postState: function postState(keys) {\n        return keys || EMPTY_LIST;\n      }\n    }),\n    _useMergedState2 = _slicedToArray(_useMergedState, 2),\n    mergedOpenKeys = _useMergedState2[0],\n    setMergedOpenKeys = _useMergedState2[1];\n\n  // React 18 will merge mouse event which means we open key will not sync\n  // ref: https://github.com/ant-design/ant-design/issues/38818\n  var triggerOpenKeys = function triggerOpenKeys(keys) {\n    var forceFlush = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n    function doUpdate() {\n      setMergedOpenKeys(keys);\n      onOpenChange === null || onOpenChange === void 0 || onOpenChange(keys);\n    }\n    if (forceFlush) {\n      flushSync(doUpdate);\n    } else {\n      doUpdate();\n    }\n  };\n\n  // >>>>> Cache & Reset open keys when inlineCollapsed changed\n  var _React$useState3 = React.useState(mergedOpenKeys),\n    _React$useState4 = _slicedToArray(_React$useState3, 2),\n    inlineCacheOpenKeys = _React$useState4[0],\n    setInlineCacheOpenKeys = _React$useState4[1];\n  var mountRef = React.useRef(false);\n\n  // ========================= Mode =========================\n  var _React$useMemo3 = React.useMemo(function () {\n      if ((mode === 'inline' || mode === 'vertical') && inlineCollapsed) {\n        return ['vertical', inlineCollapsed];\n      }\n      return [mode, false];\n    }, [mode, inlineCollapsed]),\n    _React$useMemo4 = _slicedToArray(_React$useMemo3, 2),\n    mergedMode = _React$useMemo4[0],\n    mergedInlineCollapsed = _React$useMemo4[1];\n  var isInlineMode = mergedMode === 'inline';\n  var _React$useState5 = React.useState(mergedMode),\n    _React$useState6 = _slicedToArray(_React$useState5, 2),\n    internalMode = _React$useState6[0],\n    setInternalMode = _React$useState6[1];\n  var _React$useState7 = React.useState(mergedInlineCollapsed),\n    _React$useState8 = _slicedToArray(_React$useState7, 2),\n    internalInlineCollapsed = _React$useState8[0],\n    setInternalInlineCollapsed = _React$useState8[1];\n  React.useEffect(function () {\n    setInternalMode(mergedMode);\n    setInternalInlineCollapsed(mergedInlineCollapsed);\n    if (!mountRef.current) {\n      return;\n    }\n    // Synchronously update MergedOpenKeys\n    if (isInlineMode) {\n      setMergedOpenKeys(inlineCacheOpenKeys);\n    } else {\n      // Trigger open event in case its in control\n      triggerOpenKeys(EMPTY_LIST);\n    }\n  }, [mergedMode, mergedInlineCollapsed]);\n\n  // ====================== Responsive ======================\n  var _React$useState9 = React.useState(0),\n    _React$useState10 = _slicedToArray(_React$useState9, 2),\n    lastVisibleIndex = _React$useState10[0],\n    setLastVisibleIndex = _React$useState10[1];\n  var allVisible = lastVisibleIndex >= childList.length - 1 || internalMode !== 'horizontal' || disabledOverflow;\n\n  // Cache\n  React.useEffect(function () {\n    if (isInlineMode) {\n      setInlineCacheOpenKeys(mergedOpenKeys);\n    }\n  }, [mergedOpenKeys]);\n  React.useEffect(function () {\n    mountRef.current = true;\n    return function () {\n      mountRef.current = false;\n    };\n  }, []);\n\n  // ========================= Path =========================\n  var _useKeyRecords = useKeyRecords(),\n    registerPath = _useKeyRecords.registerPath,\n    unregisterPath = _useKeyRecords.unregisterPath,\n    refreshOverflowKeys = _useKeyRecords.refreshOverflowKeys,\n    isSubPathKey = _useKeyRecords.isSubPathKey,\n    getKeyPath = _useKeyRecords.getKeyPath,\n    getKeys = _useKeyRecords.getKeys,\n    getSubPathKeys = _useKeyRecords.getSubPathKeys;\n  var registerPathContext = React.useMemo(function () {\n    return {\n      registerPath: registerPath,\n      unregisterPath: unregisterPath\n    };\n  }, [registerPath, unregisterPath]);\n  var pathUserContext = React.useMemo(function () {\n    return {\n      isSubPathKey: isSubPathKey\n    };\n  }, [isSubPathKey]);\n  React.useEffect(function () {\n    refreshOverflowKeys(allVisible ? EMPTY_LIST : childList.slice(lastVisibleIndex + 1).map(function (child) {\n      return child.key;\n    }));\n  }, [lastVisibleIndex, allVisible]);\n\n  // ======================== Active ========================\n  var _useMergedState3 = useMergedState(activeKey || defaultActiveFirst && ((_childList$ = childList[0]) === null || _childList$ === void 0 ? void 0 : _childList$.key), {\n      value: activeKey\n    }),\n    _useMergedState4 = _slicedToArray(_useMergedState3, 2),\n    mergedActiveKey = _useMergedState4[0],\n    setMergedActiveKey = _useMergedState4[1];\n  var onActive = useMemoCallback(function (key) {\n    setMergedActiveKey(key);\n  });\n  var onInactive = useMemoCallback(function () {\n    setMergedActiveKey(undefined);\n  });\n  useImperativeHandle(ref, function () {\n    return {\n      list: containerRef.current,\n      focus: function focus(options) {\n        var _childList$find;\n        var keys = getKeys();\n        var _refreshElements = refreshElements(keys, uuid),\n          elements = _refreshElements.elements,\n          key2element = _refreshElements.key2element,\n          element2key = _refreshElements.element2key;\n        var focusableElements = getFocusableElements(containerRef.current, elements);\n        var shouldFocusKey = mergedActiveKey !== null && mergedActiveKey !== void 0 ? mergedActiveKey : focusableElements[0] ? element2key.get(focusableElements[0]) : (_childList$find = childList.find(function (node) {\n          return !node.props.disabled;\n        })) === null || _childList$find === void 0 ? void 0 : _childList$find.key;\n        var elementToFocus = key2element.get(shouldFocusKey);\n        if (shouldFocusKey && elementToFocus) {\n          var _elementToFocus$focus;\n          elementToFocus === null || elementToFocus === void 0 || (_elementToFocus$focus = elementToFocus.focus) === null || _elementToFocus$focus === void 0 || _elementToFocus$focus.call(elementToFocus, options);\n        }\n      }\n    };\n  });\n\n  // ======================== Select ========================\n  // >>>>> Select keys\n  var _useMergedState5 = useMergedState(defaultSelectedKeys || [], {\n      value: selectedKeys,\n      // Legacy convert key to array\n      postState: function postState(keys) {\n        if (Array.isArray(keys)) {\n          return keys;\n        }\n        if (keys === null || keys === undefined) {\n          return EMPTY_LIST;\n        }\n        return [keys];\n      }\n    }),\n    _useMergedState6 = _slicedToArray(_useMergedState5, 2),\n    mergedSelectKeys = _useMergedState6[0],\n    setMergedSelectKeys = _useMergedState6[1];\n\n  // >>>>> Trigger select\n  var triggerSelection = function triggerSelection(info) {\n    if (selectable) {\n      // Insert or Remove\n      var targetKey = info.key;\n      var exist = mergedSelectKeys.includes(targetKey);\n      var newSelectKeys;\n      if (multiple) {\n        if (exist) {\n          newSelectKeys = mergedSelectKeys.filter(function (key) {\n            return key !== targetKey;\n          });\n        } else {\n          newSelectKeys = [].concat(_toConsumableArray(mergedSelectKeys), [targetKey]);\n        }\n      } else {\n        newSelectKeys = [targetKey];\n      }\n      setMergedSelectKeys(newSelectKeys);\n\n      // Trigger event\n      var selectInfo = _objectSpread(_objectSpread({}, info), {}, {\n        selectedKeys: newSelectKeys\n      });\n      if (exist) {\n        onDeselect === null || onDeselect === void 0 || onDeselect(selectInfo);\n      } else {\n        onSelect === null || onSelect === void 0 || onSelect(selectInfo);\n      }\n    }\n\n    // Whatever selectable, always close it\n    if (!multiple && mergedOpenKeys.length && internalMode !== 'inline') {\n      triggerOpenKeys(EMPTY_LIST);\n    }\n  };\n\n  // ========================= Open =========================\n  /**\n   * Click for item. SubMenu do not have selection status\n   */\n  var onInternalClick = useMemoCallback(function (info) {\n    onClick === null || onClick === void 0 || onClick(warnItemProp(info));\n    triggerSelection(info);\n  });\n  var onInternalOpenChange = useMemoCallback(function (key, open) {\n    var newOpenKeys = mergedOpenKeys.filter(function (k) {\n      return k !== key;\n    });\n    if (open) {\n      newOpenKeys.push(key);\n    } else if (internalMode !== 'inline') {\n      // We need find all related popup to close\n      var subPathKeys = getSubPathKeys(key);\n      newOpenKeys = newOpenKeys.filter(function (k) {\n        return !subPathKeys.has(k);\n      });\n    }\n    if (!isEqual(mergedOpenKeys, newOpenKeys, true)) {\n      triggerOpenKeys(newOpenKeys, true);\n    }\n  });\n\n  // ==================== Accessibility =====================\n  var triggerAccessibilityOpen = function triggerAccessibilityOpen(key, open) {\n    var nextOpen = open !== null && open !== void 0 ? open : !mergedOpenKeys.includes(key);\n    onInternalOpenChange(key, nextOpen);\n  };\n  var onInternalKeyDown = useAccessibility(internalMode, mergedActiveKey, isRtl, uuid, containerRef, getKeys, getKeyPath, setMergedActiveKey, triggerAccessibilityOpen, onKeyDown);\n\n  // ======================== Effect ========================\n  React.useEffect(function () {\n    setMounted(true);\n  }, []);\n\n  // ======================= Context ========================\n  var privateContext = React.useMemo(function () {\n    return {\n      _internalRenderMenuItem: _internalRenderMenuItem,\n      _internalRenderSubMenuItem: _internalRenderSubMenuItem\n    };\n  }, [_internalRenderMenuItem, _internalRenderSubMenuItem]);\n\n  // ======================== Render ========================\n\n  // >>>>> Children\n  var wrappedChildList = internalMode !== 'horizontal' || disabledOverflow ? childList :\n  // Need wrap for overflow dropdown that do not response for open\n  childList.map(function (child, index) {\n    return (\n      /*#__PURE__*/\n      // Always wrap provider to avoid sub node re-mount\n      React.createElement(MenuContextProvider, {\n        key: child.key,\n        overflowDisabled: index > lastVisibleIndex\n      }, child)\n    );\n  });\n\n  // >>>>> Container\n  var container = /*#__PURE__*/React.createElement(Overflow, _extends({\n    id: id,\n    ref: containerRef,\n    prefixCls: \"\".concat(prefixCls, \"-overflow\"),\n    component: \"ul\",\n    itemComponent: MenuItem,\n    className: classNames(prefixCls, \"\".concat(prefixCls, \"-root\"), \"\".concat(prefixCls, \"-\").concat(internalMode), className, _defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-inline-collapsed\"), internalInlineCollapsed), \"\".concat(prefixCls, \"-rtl\"), isRtl), rootClassName),\n    dir: direction,\n    style: style,\n    role: \"menu\",\n    tabIndex: tabIndex,\n    data: wrappedChildList,\n    renderRawItem: function renderRawItem(node) {\n      return node;\n    },\n    renderRawRest: function renderRawRest(omitItems) {\n      // We use origin list since wrapped list use context to prevent open\n      var len = omitItems.length;\n      var originOmitItems = len ? childList.slice(-len) : null;\n      return /*#__PURE__*/React.createElement(SubMenu, {\n        eventKey: OVERFLOW_KEY,\n        title: overflowedIndicator,\n        disabled: allVisible,\n        internalPopupClose: len === 0,\n        popupClassName: overflowedIndicatorPopupClassName\n      }, originOmitItems);\n    },\n    maxCount: internalMode !== 'horizontal' || disabledOverflow ? Overflow.INVALIDATE : Overflow.RESPONSIVE,\n    ssr: \"full\",\n    \"data-menu-list\": true,\n    onVisibleChange: function onVisibleChange(newLastIndex) {\n      setLastVisibleIndex(newLastIndex);\n    },\n    onKeyDown: onInternalKeyDown\n  }, restProps));\n\n  // >>>>> Render\n  return /*#__PURE__*/React.createElement(PrivateContext.Provider, {\n    value: privateContext\n  }, /*#__PURE__*/React.createElement(IdContext.Provider, {\n    value: uuid\n  }, /*#__PURE__*/React.createElement(MenuContextProvider, {\n    prefixCls: prefixCls,\n    rootClassName: rootClassName,\n    mode: internalMode,\n    openKeys: mergedOpenKeys,\n    rtl: isRtl\n    // Disabled\n    ,\n    disabled: disabled\n    // Motion\n    ,\n    motion: mounted ? motion : null,\n    defaultMotions: mounted ? defaultMotions : null\n    // Active\n    ,\n    activeKey: mergedActiveKey,\n    onActive: onActive,\n    onInactive: onInactive\n    // Selection\n    ,\n    selectedKeys: mergedSelectKeys\n    // Level\n    ,\n    inlineIndent: inlineIndent\n    // Popup\n    ,\n    subMenuOpenDelay: subMenuOpenDelay,\n    subMenuCloseDelay: subMenuCloseDelay,\n    forceSubMenuRender: forceSubMenuRender,\n    builtinPlacements: builtinPlacements,\n    triggerSubMenuAction: triggerSubMenuAction,\n    getPopupContainer: getPopupContainer\n    // Icon\n    ,\n    itemIcon: itemIcon,\n    expandIcon: expandIcon\n    // Events\n    ,\n    onItemClick: onInternalClick,\n    onOpenChange: onInternalOpenChange\n  }, /*#__PURE__*/React.createElement(PathUserContext.Provider, {\n    value: pathUserContext\n  }, container), /*#__PURE__*/React.createElement(\"div\", {\n    style: {\n      display: 'none'\n    },\n    \"aria-hidden\": true\n  }, /*#__PURE__*/React.createElement(PathRegisterContext.Provider, {\n    value: registerPathContext\n  }, measureChildList)))));\n});\nexport default Menu;","import Menu from \"./Menu\";\nimport MenuItem from \"./MenuItem\";\nimport SubMenu from \"./SubMenu\";\nimport MenuItemGroup from \"./MenuItemGroup\";\nimport { useFullPath } from \"./context/PathContext\";\nimport Divider from \"./Divider\";\nexport { SubMenu, MenuItem as Item, MenuItem, MenuItemGroup, MenuItemGroup as ItemGroup, Divider, /** @private Only used for antd internal. Do not use in your production. */\nuseFullPath };\nvar ExportMenu = Menu;\nExportMenu.Item = MenuItem;\nExportMenu.SubMenu = SubMenu;\nExportMenu.ItemGroup = MenuItemGroup;\nExportMenu.Divider = Divider;\nexport default ExportMenu;","function _iterableToArray(r) {\n  if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nexport { _iterableToArray as default };","/**\n * 文件大小格式化为KB、M\n * @param {number} num 文件大小\n * @example\n * // returns 1.0KB\n * import { fileSize } from \"@tencent/kg-base\";\n * fileSize(1024);\n * @returns {string}\n * @category kg-base\n */\nexport function fileSize(num) {\n    var b = num / 1024;\n    var m = b / 1024;\n    if (b && m) {\n        if (m < 1) {\n            return b.toFixed(1) + \"KB\";\n        }\n        else {\n            return m.toFixed(1) + \"M\";\n        }\n    }\n    return \"\";\n}\n/**\n * 时间戳格式化\n * @param {string|number} timestamp 只支持毫秒，\n * @param {string} [format] \"yyyy-MM-dd hh:mm:ss\"\n * @returns {string}\n * @example\n * //return \"2020-07-02 16:46:25\"\n * import { formatDate } from \"@tencent/kg-base\";\n * formatDate(1593679585358)\n * @category kg-base\n */\nexport function formatDate(timestamp, format) {\n    if (format === void 0) { format = \"yyyy-MM-dd hh:mm:ss\"; }\n    var result = format;\n    if (!timestamp ||\n        timestamp === Number.POSITIVE_INFINITY ||\n        timestamp === Number.NEGATIVE_INFINITY)\n        return \"\";\n    var date = new Date(timestamp);\n    var obj = {\n        \"y+\": date.getFullYear(),\n        \"M+\": date.getMonth() + 1,\n        \"d+\": date.getDate(),\n        \"h+\": date.getHours(),\n        \"m+\": date.getMinutes(),\n        \"s+\": date.getSeconds()\n    };\n    for (var j in obj) {\n        if (new RegExp(\"(\" + j + \")\").test(format)) {\n            var replaceValue = \"\";\n            switch (RegExp.$1.length) {\n                case 1:\n                    replaceValue = obj[j];\n                    break;\n                case 4:\n                    replaceValue = obj[j];\n                    break;\n                default:\n                    replaceValue = (\"00\" + obj[j]).substr(String(obj[j]).length);\n            }\n            result = result.replace(RegExp.$1, replaceValue);\n        }\n    }\n    return result;\n}\n/**\n * 数字缩略显示，缩略规则根据CountTable，并限制最大长度\n * @param {object} param\n * @param {string | number} param.num 须缩略的数字\n * @param {number} [param.maxlen] 最大长度\n * @param {string} [param.type] [en | cn] 缩略数字语言类型，默认中文\n * @param {number} [param.decimallen] 小数位长度，默认10\n * @param {\"round\" | \"floor\"} [param.roundType] round：四舍五入，floor：向下取整，默认是round\n * @return {string}\n * @example\n * // return \"98.77万\"\n * import { countFormat } from \"@tencent/kg-base\";\n * countFormat({num:987654,decimallen:2})\n * @example\n * // return \"987.7k\"\n * countFormat({num:987654,decimallen:2,type:\"en\"})\n * @category kg-base\n */\nexport function countFormat(_a) {\n    var num = _a.num, _b = _a.maxlen, maxlen = _b === void 0 ? 5 : _b, _c = _a.type, type = _c === void 0 ? \"cn\" : _c, _d = _a.decimallen, decimallen = _d === void 0 ? 10 : _d, _e = _a.roundType, roundType = _e === void 0 ? \"round\" : _e;\n    var CountTable = {\n        en: [\n            { limit: 1e6, floor: 1e6, suffix: \"m\" },\n            { limit: 1e4, floor: 1e3, suffix: \"k\" }\n        ],\n        id: [\n            { limit: 1e6, floor: 1e6, suffix: \"jt\" },\n            { limit: 1e4, floor: 1e3, suffix: \"k\" }\n        ],\n        ms: [\n            { limit: 1e6, floor: 1e6, suffix: \"j\" },\n            { limit: 1e4, floor: 1e3, suffix: \"k\" }\n        ],\n        th: [\n            { limit: 1e6, floor: 1e6, suffix: \"ล.\" },\n            { limit: 1e4, floor: 1e3, suffix: \"พัน\" }\n        ],\n        ph: [\n            { limit: 1e6, floor: 1e6, suffix: \"m\" },\n            { limit: 1e4, floor: 1e3, suffix: \"k\" }\n        ],\n        zh_Hans: [{ limit: 1e4, floor: 1e4, suffix: \"万\" }],\n        zh_Hant: [{ limit: 1e4, floor: 1e4, suffix: \"萬\" }],\n        hi: [\n            { limit: 1e6, floor: 1e6, suffix: \"m\" },\n            { limit: 1e4, floor: 1e3, suffix: \"হাজার\" }\n        ],\n        bn: [\n            { limit: 1e6, floor: 1e6, suffix: \"মিলিয়ন\" },\n            { limit: 1e4, floor: 1e3, suffix: \"k\" }\n        ],\n        cn: [{ limit: 1e4, floor: 1e4, suffix: \"万\" }]\n    };\n    var table = CountTable[type];\n    var factor = { limit: 0, floor: 0, suffix: \"\" };\n    var _num = parseFloat(String(num));\n    for (var i = 0; i < table.length; i++) {\n        if (num >= table[i].limit) {\n            factor = table[i];\n            break;\n        }\n    }\n    if (factor.floor) {\n        _num /= factor.floor;\n    }\n    if (roundType === \"floor\") {\n        _num = floor(_num, decimallen);\n    }\n    else if (roundType === \"ceil\") {\n        _num = ceil(_num, decimallen);\n    }\n    else {\n        _num = round(_num, decimallen);\n    }\n    return _num + factor.suffix;\n}\n/**\n * 整数逗号分隔显示\n * @param {number} num 整数\n * @returns {string}\n * @category kg-base\n * @example\n * // return '1,234,567'\n * formateNumByThree(1234567)\n */\nexport function formateNumByThree(num) {\n    return num.toString().replace(/(\\d+?)(?=(\\d\\d\\d)+$)/g, \"$1,\");\n}\n/**\n * 金额显示（向下取整，不带单位后缀，不做“万”缩略）\n * @param {number} num 后台返回的金额\n * @param {number} decimallen 小数位长度，默认2位\n * @returns {string}\n * @category kg-base\n * @example\n * // return '0.13'\n * formatMoney(136)\n */\nexport function formatMoney(num, decimallen) {\n    if (decimallen === void 0) { decimallen = 2; }\n    var _num = (num / 1000).toString();\n    var index = _num.indexOf(\".\");\n    if (index !== -1) {\n        _num = _num.substring(0, decimallen + index + 1);\n    }\n    return parseFloat(_num).toFixed(decimallen);\n}\n/**\n * 保留小数（向下取整）\n * @param {number} num 后台返回的金额\n * @param {number} precision 小数位长度，默认2位\n * @returns {string}\n * @category kg-base\n */\nexport var floor = createRound(\"floor\");\n/**\n * 保留小数（向上取整）\n * @param {number} num 后台返回的金额\n * @param {number} precision 小数位长度，默认2位\n * @returns {string}\n * @category kg-base\n */\nexport var ceil = createRound(\"ceil\");\n/**\n * 保留小数（向上取整）\n * @param {number} num 后台返回的金额\n * @param {number} precision 小数位长度，默认2位\n * @returns {string}\n * @category kg-base\n */\nexport var round = createRound(\"round\");\nfunction createRound(methodName) {\n    var func = Math[methodName];\n    return function (number, precision) {\n        if (precision === void 0) { precision = 0; }\n        var _precision = precision >= 0 ? Math.min(precision, 292) : Math.max(precision, -292);\n        if (_precision) {\n            var pair = (number + \"e\").split(\"e\");\n            var value = func(Number(pair[0] + \"e\" + (Number(pair[1]) + precision)));\n            pair = (value + \"e\").split(\"e\");\n            return Number(pair[0] + \"e\" + (Number(pair[1]) - precision));\n        }\n        return func(number);\n    };\n}\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar warning = function() {};\n\nif (__DEV__) {\n  var printWarning = function printWarning(format, args) {\n    var len = arguments.length;\n    args = new Array(len > 1 ? len - 1 : 0);\n    for (var key = 1; key < len; key++) {\n      args[key - 1] = arguments[key];\n    }\n    var argIndex = 0;\n    var message = 'Warning: ' +\n      format.replace(/%s/g, function() {\n        return args[argIndex++];\n      });\n    if (typeof console !== 'undefined') {\n      console.error(message);\n    }\n    try {\n      // --- Welcome to debugging React ---\n      // This error was thrown as a convenience so that you can use this stack\n      // to find the callsite that caused this warning to fire.\n      throw new Error(message);\n    } catch (x) {}\n  }\n\n  warning = function(condition, format, args) {\n    var len = arguments.length;\n    args = new Array(len > 2 ? len - 2 : 0);\n    for (var key = 2; key < len; key++) {\n      args[key - 2] = arguments[key];\n    }\n    if (format === undefined) {\n      throw new Error(\n          '`warning(condition, format, ...args)` requires a warning ' +\n          'message argument'\n      );\n    }\n    if (!condition) {\n      printWarning.apply(null, [format].concat(args));\n    }\n  };\n}\n\nmodule.exports = warning;\n","function _isNativeReflectConstruct() {\n  try {\n    var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n  } catch (t) {}\n  return (_isNativeReflectConstruct = function _isNativeReflectConstruct() {\n    return !!t;\n  })();\n}\nexport { _isNativeReflectConstruct as default };","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n  childContextTypes: true,\n  contextType: true,\n  contextTypes: true,\n  defaultProps: true,\n  displayName: true,\n  getDefaultProps: true,\n  getDerivedStateFromError: true,\n  getDerivedStateFromProps: true,\n  mixins: true,\n  propTypes: true,\n  type: true\n};\nvar KNOWN_STATICS = {\n  name: true,\n  length: true,\n  prototype: true,\n  caller: true,\n  callee: true,\n  arguments: true,\n  arity: true\n};\nvar FORWARD_REF_STATICS = {\n  '$$typeof': true,\n  render: true,\n  defaultProps: true,\n  displayName: true,\n  propTypes: true\n};\nvar MEMO_STATICS = {\n  '$$typeof': true,\n  compare: true,\n  defaultProps: true,\n  displayName: true,\n  propTypes: true,\n  type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n  // React v16.11 and below\n  if (reactIs.isMemo(component)) {\n    return MEMO_STATICS;\n  } // React v16.12 and above\n\n\n  return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n  if (typeof sourceComponent !== 'string') {\n    // don't hoist over string (html) components\n    if (objectPrototype) {\n      var inheritedComponent = getPrototypeOf(sourceComponent);\n\n      if (inheritedComponent && inheritedComponent !== objectPrototype) {\n        hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n      }\n    }\n\n    var keys = getOwnPropertyNames(sourceComponent);\n\n    if (getOwnPropertySymbols) {\n      keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n    }\n\n    var targetStatics = getStatics(targetComponent);\n    var sourceStatics = getStatics(sourceComponent);\n\n    for (var i = 0; i < keys.length; ++i) {\n      var key = keys[i];\n\n      if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n        var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n        try {\n          // Avoid failures from read-only properties\n          defineProperty(targetComponent, key, descriptor);\n        } catch (e) {}\n      }\n    }\n  }\n\n  return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","import { useMemo } from 'react';\nconst toFnRef = ref => !ref || typeof ref === 'function' ? ref : value => {\n  ref.current = value;\n};\nexport function mergeRefs(refA, refB) {\n  const a = toFnRef(refA);\n  const b = toFnRef(refB);\n  return value => {\n    if (a) a(value);\n    if (b) b(value);\n  };\n}\n\n/**\n * Create and returns a single callback ref composed from two other Refs.\n *\n * ```tsx\n * const Button = React.forwardRef((props, ref) => {\n *   const [element, attachRef] = useCallbackRef<HTMLButtonElement>();\n *   const mergedRef = useMergedRefs(ref, attachRef);\n *\n *   return <button ref={mergedRef} {...props}/>\n * })\n * ```\n *\n * @param refA A Callback or mutable Ref\n * @param refB A Callback or mutable Ref\n * @category refs\n */\nfunction useMergedRefs(refA, refB) {\n  return useMemo(() => mergeRefs(refA, refB), [refA, refB]);\n}\nexport default useMergedRefs;","var has = Object.prototype.hasOwnProperty;\n\nfunction find(iter, tar, key) {\n\tfor (key of iter.keys()) {\n\t\tif (dequal(key, tar)) return key;\n\t}\n}\n\nexport function dequal(foo, bar) {\n\tvar ctor, len, tmp;\n\tif (foo === bar) return true;\n\n\tif (foo && bar && (ctor=foo.constructor) === bar.constructor) {\n\t\tif (ctor === Date) return foo.getTime() === bar.getTime();\n\t\tif (ctor === RegExp) return foo.toString() === bar.toString();\n\n\t\tif (ctor === Array) {\n\t\t\tif ((len=foo.length) === bar.length) {\n\t\t\t\twhile (len-- && dequal(foo[len], bar[len]));\n\t\t\t}\n\t\t\treturn len === -1;\n\t\t}\n\n\t\tif (ctor === Set) {\n\t\t\tif (foo.size !== bar.size) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tfor (len of foo) {\n\t\t\t\ttmp = len;\n\t\t\t\tif (tmp && typeof tmp === 'object') {\n\t\t\t\t\ttmp = find(bar, tmp);\n\t\t\t\t\tif (!tmp) return false;\n\t\t\t\t}\n\t\t\t\tif (!bar.has(tmp)) return false;\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\n\t\tif (ctor === Map) {\n\t\t\tif (foo.size !== bar.size) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tfor (len of foo) {\n\t\t\t\ttmp = len[0];\n\t\t\t\tif (tmp && typeof tmp === 'object') {\n\t\t\t\t\ttmp = find(bar, tmp);\n\t\t\t\t\tif (!tmp) return false;\n\t\t\t\t}\n\t\t\t\tif (!dequal(len[1], bar.get(tmp))) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\n\t\tif (ctor === ArrayBuffer) {\n\t\t\tfoo = new Uint8Array(foo);\n\t\t\tbar = new Uint8Array(bar);\n\t\t} else if (ctor === DataView) {\n\t\t\tif ((len=foo.byteLength) === bar.byteLength) {\n\t\t\t\twhile (len-- && foo.getInt8(len) === bar.getInt8(len));\n\t\t\t}\n\t\t\treturn len === -1;\n\t\t}\n\n\t\tif (ArrayBuffer.isView(foo)) {\n\t\t\tif ((len=foo.byteLength) === bar.byteLength) {\n\t\t\t\twhile (len-- && foo[len] === bar[len]);\n\t\t\t}\n\t\t\treturn len === -1;\n\t\t}\n\n\t\tif (!ctor || typeof foo === 'object') {\n\t\t\tlen = 0;\n\t\t\tfor (ctor in foo) {\n\t\t\t\tif (has.call(foo, ctor) && ++len && !has.call(bar, ctor)) return false;\n\t\t\t\tif (!(ctor in bar) || !dequal(foo[ctor], bar[ctor])) return false;\n\t\t\t}\n\t\t\treturn Object.keys(bar).length === len;\n\t\t}\n\t}\n\n\treturn foo !== foo && bar !== bar;\n}\n","import { useCallback } from 'react';\nimport useMounted from './useMounted';\n\n/**\n * `useSafeState` takes the return value of a `useState` hook and wraps the\n * setter to prevent updates onces the component has unmounted. Can used\n * with `useMergeState` and `useStateAsync` as well\n *\n * @param state The return value of a useStateHook\n *\n * ```ts\n * const [show, setShow] = useSafeState(useState(true));\n * ```\n */\n\nfunction useSafeState(state) {\n  const isMounted = useMounted();\n  return [state[0], useCallback(nextState => {\n    if (!isMounted()) return;\n    return state[1](nextState);\n  }, [isMounted, state[1]])];\n}\nexport default useSafeState;","import { auto } from \"../enums.js\";\nexport default function getBasePlacement(placement) {\n  return placement.split('-')[0];\n}","export default function getWindow(node) {\n  if (node == null) {\n    return window;\n  }\n\n  if (node.toString() !== '[object Window]') {\n    var ownerDocument = node.ownerDocument;\n    return ownerDocument ? ownerDocument.defaultView || window : window;\n  }\n\n  return node;\n}","import getWindow from \"./getWindow.js\";\n\nfunction isElement(node) {\n  var OwnElement = getWindow(node).Element;\n  return node instanceof OwnElement || node instanceof Element;\n}\n\nfunction isHTMLElement(node) {\n  var OwnElement = getWindow(node).HTMLElement;\n  return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\nfunction isShadowRoot(node) {\n  // IE 11 has no ShadowRoot\n  if (typeof ShadowRoot === 'undefined') {\n    return false;\n  }\n\n  var OwnElement = getWindow(node).ShadowRoot;\n  return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\nexport { isElement, isHTMLElement, isShadowRoot };","export var max = Math.max;\nexport var min = Math.min;\nexport var round = Math.round;","export default function getUAString() {\n  var uaData = navigator.userAgentData;\n\n  if (uaData != null && uaData.brands && Array.isArray(uaData.brands)) {\n    return uaData.brands.map(function (item) {\n      return item.brand + \"/\" + item.version;\n    }).join(' ');\n  }\n\n  return navigator.userAgent;\n}","import getUAString from \"../utils/userAgent.js\";\nexport default function isLayoutViewport() {\n  return !/^((?!chrome|android).)*safari/i.test(getUAString());\n}","import { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport { round } from \"../utils/math.js\";\nimport getWindow from \"./getWindow.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getBoundingClientRect(element, includeScale, isFixedStrategy) {\n  if (includeScale === void 0) {\n    includeScale = false;\n  }\n\n  if (isFixedStrategy === void 0) {\n    isFixedStrategy = false;\n  }\n\n  var clientRect = element.getBoundingClientRect();\n  var scaleX = 1;\n  var scaleY = 1;\n\n  if (includeScale && isHTMLElement(element)) {\n    scaleX = element.offsetWidth > 0 ? round(clientRect.width) / element.offsetWidth || 1 : 1;\n    scaleY = element.offsetHeight > 0 ? round(clientRect.height) / element.offsetHeight || 1 : 1;\n  }\n\n  var _ref = isElement(element) ? getWindow(element) : window,\n      visualViewport = _ref.visualViewport;\n\n  var addVisualOffsets = !isLayoutViewport() && isFixedStrategy;\n  var x = (clientRect.left + (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) / scaleX;\n  var y = (clientRect.top + (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) / scaleY;\n  var width = clientRect.width / scaleX;\n  var height = clientRect.height / scaleY;\n  return {\n    width: width,\n    height: height,\n    top: y,\n    right: x + width,\n    bottom: y + height,\n    left: x,\n    x: x,\n    y: y\n  };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\"; // Returns the layout rect of an element relative to its offsetParent. Layout\n// means it doesn't take into account transforms.\n\nexport default function getLayoutRect(element) {\n  var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed.\n  // Fixes https://github.com/popperjs/popper-core/issues/1223\n\n  var width = element.offsetWidth;\n  var height = element.offsetHeight;\n\n  if (Math.abs(clientRect.width - width) <= 1) {\n    width = clientRect.width;\n  }\n\n  if (Math.abs(clientRect.height - height) <= 1) {\n    height = clientRect.height;\n  }\n\n  return {\n    x: element.offsetLeft,\n    y: element.offsetTop,\n    width: width,\n    height: height\n  };\n}","import { isShadowRoot } from \"./instanceOf.js\";\nexport default function contains(parent, child) {\n  var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method\n\n  if (parent.contains(child)) {\n    return true;\n  } // then fallback to custom implementation with Shadow DOM support\n  else if (rootNode && isShadowRoot(rootNode)) {\n      var next = child;\n\n      do {\n        if (next && parent.isSameNode(next)) {\n          return true;\n        } // $FlowFixMe[prop-missing]: need a better way to handle this...\n\n\n        next = next.parentNode || next.host;\n      } while (next);\n    } // Give up, the result is false\n\n\n  return false;\n}","export default function getNodeName(element) {\n  return element ? (element.nodeName || '').toLowerCase() : null;\n}","import getWindow from \"./getWindow.js\";\nexport default function getComputedStyle(element) {\n  return getWindow(element).getComputedStyle(element);\n}","import getNodeName from \"./getNodeName.js\";\nexport default function isTableElement(element) {\n  return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}","import { isElement } from \"./instanceOf.js\";\nexport default function getDocumentElement(element) {\n  // $FlowFixMe[incompatible-return]: assume body is always available\n  return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing]\n  element.document) || window.document).documentElement;\n}","import getNodeName from \"./getNodeName.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport { isShadowRoot } from \"./instanceOf.js\";\nexport default function getParentNode(element) {\n  if (getNodeName(element) === 'html') {\n    return element;\n  }\n\n  return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle\n    // $FlowFixMe[incompatible-return]\n    // $FlowFixMe[prop-missing]\n    element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n    element.parentNode || ( // DOM Element detected\n    isShadowRoot(element) ? element.host : null) || // ShadowRoot detected\n    // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n    getDocumentElement(element) // fallback\n\n  );\n}","import getWindow from \"./getWindow.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isHTMLElement, isShadowRoot } from \"./instanceOf.js\";\nimport isTableElement from \"./isTableElement.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getUAString from \"../utils/userAgent.js\";\n\nfunction getTrueOffsetParent(element) {\n  if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837\n  getComputedStyle(element).position === 'fixed') {\n    return null;\n  }\n\n  return element.offsetParent;\n} // `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\n\n\nfunction getContainingBlock(element) {\n  var isFirefox = /firefox/i.test(getUAString());\n  var isIE = /Trident/i.test(getUAString());\n\n  if (isIE && isHTMLElement(element)) {\n    // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport\n    var elementCss = getComputedStyle(element);\n\n    if (elementCss.position === 'fixed') {\n      return null;\n    }\n  }\n\n  var currentNode = getParentNode(element);\n\n  if (isShadowRoot(currentNode)) {\n    currentNode = currentNode.host;\n  }\n\n  while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {\n    var css = getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that\n    // create a containing block.\n    // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n\n    if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') {\n      return currentNode;\n    } else {\n      currentNode = currentNode.parentNode;\n    }\n  }\n\n  return null;\n} // Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\n\n\nexport default function getOffsetParent(element) {\n  var window = getWindow(element);\n  var offsetParent = getTrueOffsetParent(element);\n\n  while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n    offsetParent = getTrueOffsetParent(offsetParent);\n  }\n\n  if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static')) {\n    return window;\n  }\n\n  return offsetParent || getContainingBlock(element) || window;\n}","export default function getMainAxisFromPlacement(placement) {\n  return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}","import { max as mathMax, min as mathMin } from \"./math.js\";\nexport function within(min, value, max) {\n  return mathMax(min, mathMin(value, max));\n}\nexport function withinMaxClamp(min, value, max) {\n  var v = within(min, value, max);\n  return v > max ? max : v;\n}","import getFreshSideObject from \"./getFreshSideObject.js\";\nexport default function mergePaddingObject(paddingObject) {\n  return Object.assign({}, getFreshSideObject(), paddingObject);\n}","export default function getFreshSideObject() {\n  return {\n    top: 0,\n    right: 0,\n    bottom: 0,\n    left: 0\n  };\n}","export default function expandToHashMap(value, keys) {\n  return keys.reduce(function (hashMap, key) {\n    hashMap[key] = value;\n    return hashMap;\n  }, {});\n}","export var top = 'top';\nexport var bottom = 'bottom';\nexport var right = 'right';\nexport var left = 'left';\nexport var auto = 'auto';\nexport var basePlacements = [top, bottom, right, left];\nexport var start = 'start';\nexport var end = 'end';\nexport var clippingParents = 'clippingParents';\nexport var viewport = 'viewport';\nexport var popper = 'popper';\nexport var reference = 'reference';\nexport var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {\n  return acc.concat([placement + \"-\" + start, placement + \"-\" + end]);\n}, []);\nexport var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {\n  return acc.concat([placement, placement + \"-\" + start, placement + \"-\" + end]);\n}, []); // modifiers that need to read the DOM\n\nexport var beforeRead = 'beforeRead';\nexport var read = 'read';\nexport var afterRead = 'afterRead'; // pure-logic modifiers\n\nexport var beforeMain = 'beforeMain';\nexport var main = 'main';\nexport var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)\n\nexport var beforeWrite = 'beforeWrite';\nexport var write = 'write';\nexport var afterWrite = 'afterWrite';\nexport var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport contains from \"../dom-utils/contains.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport { within } from \"../utils/within.js\";\nimport mergePaddingObject from \"../utils/mergePaddingObject.js\";\nimport expandToHashMap from \"../utils/expandToHashMap.js\";\nimport { left, right, basePlacements, top, bottom } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar toPaddingObject = function toPaddingObject(padding, state) {\n  padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, {\n    placement: state.placement\n  })) : padding;\n  return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n};\n\nfunction arrow(_ref) {\n  var _state$modifiersData$;\n\n  var state = _ref.state,\n      name = _ref.name,\n      options = _ref.options;\n  var arrowElement = state.elements.arrow;\n  var popperOffsets = state.modifiersData.popperOffsets;\n  var basePlacement = getBasePlacement(state.placement);\n  var axis = getMainAxisFromPlacement(basePlacement);\n  var isVertical = [left, right].indexOf(basePlacement) >= 0;\n  var len = isVertical ? 'height' : 'width';\n\n  if (!arrowElement || !popperOffsets) {\n    return;\n  }\n\n  var paddingObject = toPaddingObject(options.padding, state);\n  var arrowRect = getLayoutRect(arrowElement);\n  var minProp = axis === 'y' ? top : left;\n  var maxProp = axis === 'y' ? bottom : right;\n  var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len];\n  var startDiff = popperOffsets[axis] - state.rects.reference[axis];\n  var arrowOffsetParent = getOffsetParent(arrowElement);\n  var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;\n  var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is\n  // outside of the popper bounds\n\n  var min = paddingObject[minProp];\n  var max = clientSize - arrowRect[len] - paddingObject[maxProp];\n  var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;\n  var offset = within(min, center, max); // Prevents breaking syntax highlighting...\n\n  var axisProp = axis;\n  state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$);\n}\n\nfunction effect(_ref2) {\n  var state = _ref2.state,\n      options = _ref2.options;\n  var _options$element = options.element,\n      arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element;\n\n  if (arrowElement == null) {\n    return;\n  } // CSS selector\n\n\n  if (typeof arrowElement === 'string') {\n    arrowElement = state.elements.popper.querySelector(arrowElement);\n\n    if (!arrowElement) {\n      return;\n    }\n  }\n\n  if (!contains(state.elements.popper, arrowElement)) {\n    return;\n  }\n\n  state.elements.arrow = arrowElement;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n  name: 'arrow',\n  enabled: true,\n  phase: 'main',\n  fn: arrow,\n  effect: effect,\n  requires: ['popperOffsets'],\n  requiresIfExists: ['preventOverflow']\n};","export default function getVariation(placement) {\n  return placement.split('-')[1];\n}","import { top, left, right, bottom, end } from \"../enums.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getWindow from \"../dom-utils/getWindow.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getComputedStyle from \"../dom-utils/getComputedStyle.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport { round } from \"../utils/math.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar unsetSides = {\n  top: 'auto',\n  right: 'auto',\n  bottom: 'auto',\n  left: 'auto'\n}; // Round the offsets to the nearest suitable subpixel based on the DPR.\n// Zooming can change the DPR, but it seems to report a value that will\n// cleanly divide the values into the appropriate subpixels.\n\nfunction roundOffsetsByDPR(_ref, win) {\n  var x = _ref.x,\n      y = _ref.y;\n  var dpr = win.devicePixelRatio || 1;\n  return {\n    x: round(x * dpr) / dpr || 0,\n    y: round(y * dpr) / dpr || 0\n  };\n}\n\nexport function mapToStyles(_ref2) {\n  var _Object$assign2;\n\n  var popper = _ref2.popper,\n      popperRect = _ref2.popperRect,\n      placement = _ref2.placement,\n      variation = _ref2.variation,\n      offsets = _ref2.offsets,\n      position = _ref2.position,\n      gpuAcceleration = _ref2.gpuAcceleration,\n      adaptive = _ref2.adaptive,\n      roundOffsets = _ref2.roundOffsets,\n      isFixed = _ref2.isFixed;\n  var _offsets$x = offsets.x,\n      x = _offsets$x === void 0 ? 0 : _offsets$x,\n      _offsets$y = offsets.y,\n      y = _offsets$y === void 0 ? 0 : _offsets$y;\n\n  var _ref3 = typeof roundOffsets === 'function' ? roundOffsets({\n    x: x,\n    y: y\n  }) : {\n    x: x,\n    y: y\n  };\n\n  x = _ref3.x;\n  y = _ref3.y;\n  var hasX = offsets.hasOwnProperty('x');\n  var hasY = offsets.hasOwnProperty('y');\n  var sideX = left;\n  var sideY = top;\n  var win = window;\n\n  if (adaptive) {\n    var offsetParent = getOffsetParent(popper);\n    var heightProp = 'clientHeight';\n    var widthProp = 'clientWidth';\n\n    if (offsetParent === getWindow(popper)) {\n      offsetParent = getDocumentElement(popper);\n\n      if (getComputedStyle(offsetParent).position !== 'static' && position === 'absolute') {\n        heightProp = 'scrollHeight';\n        widthProp = 'scrollWidth';\n      }\n    } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it\n\n\n    offsetParent = offsetParent;\n\n    if (placement === top || (placement === left || placement === right) && variation === end) {\n      sideY = bottom;\n      var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing]\n      offsetParent[heightProp];\n      y -= offsetY - popperRect.height;\n      y *= gpuAcceleration ? 1 : -1;\n    }\n\n    if (placement === left || (placement === top || placement === bottom) && variation === end) {\n      sideX = right;\n      var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing]\n      offsetParent[widthProp];\n      x -= offsetX - popperRect.width;\n      x *= gpuAcceleration ? 1 : -1;\n    }\n  }\n\n  var commonStyles = Object.assign({\n    position: position\n  }, adaptive && unsetSides);\n\n  var _ref4 = roundOffsets === true ? roundOffsetsByDPR({\n    x: x,\n    y: y\n  }, getWindow(popper)) : {\n    x: x,\n    y: y\n  };\n\n  x = _ref4.x;\n  y = _ref4.y;\n\n  if (gpuAcceleration) {\n    var _Object$assign;\n\n    return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? \"translate(\" + x + \"px, \" + y + \"px)\" : \"translate3d(\" + x + \"px, \" + y + \"px, 0)\", _Object$assign));\n  }\n\n  return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + \"px\" : '', _Object$assign2[sideX] = hasX ? x + \"px\" : '', _Object$assign2.transform = '', _Object$assign2));\n}\n\nfunction computeStyles(_ref5) {\n  var state = _ref5.state,\n      options = _ref5.options;\n  var _options$gpuAccelerat = options.gpuAcceleration,\n      gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,\n      _options$adaptive = options.adaptive,\n      adaptive = _options$adaptive === void 0 ? true : _options$adaptive,\n      _options$roundOffsets = options.roundOffsets,\n      roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;\n  var commonStyles = {\n    placement: getBasePlacement(state.placement),\n    variation: getVariation(state.placement),\n    popper: state.elements.popper,\n    popperRect: state.rects.popper,\n    gpuAcceleration: gpuAcceleration,\n    isFixed: state.options.strategy === 'fixed'\n  };\n\n  if (state.modifiersData.popperOffsets != null) {\n    state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {\n      offsets: state.modifiersData.popperOffsets,\n      position: state.options.strategy,\n      adaptive: adaptive,\n      roundOffsets: roundOffsets\n    })));\n  }\n\n  if (state.modifiersData.arrow != null) {\n    state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {\n      offsets: state.modifiersData.arrow,\n      position: 'absolute',\n      adaptive: false,\n      roundOffsets: roundOffsets\n    })));\n  }\n\n  state.attributes.popper = Object.assign({}, state.attributes.popper, {\n    'data-popper-placement': state.placement\n  });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n  name: 'computeStyles',\n  enabled: true,\n  phase: 'beforeWrite',\n  fn: computeStyles,\n  data: {}\n};","import getWindow from \"../dom-utils/getWindow.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar passive = {\n  passive: true\n};\n\nfunction effect(_ref) {\n  var state = _ref.state,\n      instance = _ref.instance,\n      options = _ref.options;\n  var _options$scroll = options.scroll,\n      scroll = _options$scroll === void 0 ? true : _options$scroll,\n      _options$resize = options.resize,\n      resize = _options$resize === void 0 ? true : _options$resize;\n  var window = getWindow(state.elements.popper);\n  var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);\n\n  if (scroll) {\n    scrollParents.forEach(function (scrollParent) {\n      scrollParent.addEventListener('scroll', instance.update, passive);\n    });\n  }\n\n  if (resize) {\n    window.addEventListener('resize', instance.update, passive);\n  }\n\n  return function () {\n    if (scroll) {\n      scrollParents.forEach(function (scrollParent) {\n        scrollParent.removeEventListener('scroll', instance.update, passive);\n      });\n    }\n\n    if (resize) {\n      window.removeEventListener('resize', instance.update, passive);\n    }\n  };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n  name: 'eventListeners',\n  enabled: true,\n  phase: 'write',\n  fn: function fn() {},\n  effect: effect,\n  data: {}\n};","var hash = {\n  left: 'right',\n  right: 'left',\n  bottom: 'top',\n  top: 'bottom'\n};\nexport default function getOppositePlacement(placement) {\n  return placement.replace(/left|right|bottom|top/g, function (matched) {\n    return hash[matched];\n  });\n}","var hash = {\n  start: 'end',\n  end: 'start'\n};\nexport default function getOppositeVariationPlacement(placement) {\n  return placement.replace(/start|end/g, function (matched) {\n    return hash[matched];\n  });\n}","import getWindow from \"./getWindow.js\";\nexport default function getWindowScroll(node) {\n  var win = getWindow(node);\n  var scrollLeft = win.pageXOffset;\n  var scrollTop = win.pageYOffset;\n  return {\n    scrollLeft: scrollLeft,\n    scrollTop: scrollTop\n  };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nexport default function getWindowScrollBarX(element) {\n  // If <html> has a CSS width greater than the viewport, then this will be\n  // incorrect for RTL.\n  // Popper 1 is broken in this case and never had a bug report so let's assume\n  // it's not an issue. I don't think anyone ever specifies width on <html>\n  // anyway.\n  // Browsers where the left scrollbar doesn't cause an issue report `0` for\n  // this (e.g. Edge 2019, IE11, Safari)\n  return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;\n}","import getComputedStyle from \"./getComputedStyle.js\";\nexport default function isScrollParent(element) {\n  // Firefox wants us to check `-x` and `-y` variations as well\n  var _getComputedStyle = getComputedStyle(element),\n      overflow = _getComputedStyle.overflow,\n      overflowX = _getComputedStyle.overflowX,\n      overflowY = _getComputedStyle.overflowY;\n\n  return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}","import getParentNode from \"./getParentNode.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nexport default function getScrollParent(node) {\n  if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n    // $FlowFixMe[incompatible-return]: assume body is always available\n    return node.ownerDocument.body;\n  }\n\n  if (isHTMLElement(node) && isScrollParent(node)) {\n    return node;\n  }\n\n  return getScrollParent(getParentNode(node));\n}","import getScrollParent from \"./getScrollParent.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getWindow from \"./getWindow.js\";\nimport isScrollParent from \"./isScrollParent.js\";\n/*\ngiven a DOM element, return the list of all scroll parents, up the list of ancesors\nuntil we get to the top window object. This list is what we attach scroll listeners\nto, because if any of these parent elements scroll, we'll need to re-calculate the\nreference element's position.\n*/\n\nexport default function listScrollParents(element, list) {\n  var _element$ownerDocumen;\n\n  if (list === void 0) {\n    list = [];\n  }\n\n  var scrollParent = getScrollParent(element);\n  var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);\n  var win = getWindow(scrollParent);\n  var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;\n  var updatedList = list.concat(target);\n  return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here\n  updatedList.concat(listScrollParents(getParentNode(target)));\n}","export default function rectToClientRect(rect) {\n  return Object.assign({}, rect, {\n    left: rect.x,\n    top: rect.y,\n    right: rect.x + rect.width,\n    bottom: rect.y + rect.height\n  });\n}","import { viewport } from \"../enums.js\";\nimport getViewportRect from \"./getViewportRect.js\";\nimport getDocumentRect from \"./getDocumentRect.js\";\nimport listScrollParents from \"./listScrollParents.js\";\nimport getOffsetParent from \"./getOffsetParent.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport contains from \"./contains.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport rectToClientRect from \"../utils/rectToClientRect.js\";\nimport { max, min } from \"../utils/math.js\";\n\nfunction getInnerBoundingClientRect(element, strategy) {\n  var rect = getBoundingClientRect(element, false, strategy === 'fixed');\n  rect.top = rect.top + element.clientTop;\n  rect.left = rect.left + element.clientLeft;\n  rect.bottom = rect.top + element.clientHeight;\n  rect.right = rect.left + element.clientWidth;\n  rect.width = element.clientWidth;\n  rect.height = element.clientHeight;\n  rect.x = rect.left;\n  rect.y = rect.top;\n  return rect;\n}\n\nfunction getClientRectFromMixedType(element, clippingParent, strategy) {\n  return clippingParent === viewport ? rectToClientRect(getViewportRect(element, strategy)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent, strategy) : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n} // A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\n\n\nfunction getClippingParents(element) {\n  var clippingParents = listScrollParents(getParentNode(element));\n  var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;\n  var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;\n\n  if (!isElement(clipperElement)) {\n    return [];\n  } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414\n\n\n  return clippingParents.filter(function (clippingParent) {\n    return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body';\n  });\n} // Gets the maximum area that the element is visible in due to any number of\n// clipping parents\n\n\nexport default function getClippingRect(element, boundary, rootBoundary, strategy) {\n  var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);\n  var clippingParents = [].concat(mainClippingParents, [rootBoundary]);\n  var firstClippingParent = clippingParents[0];\n  var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {\n    var rect = getClientRectFromMixedType(element, clippingParent, strategy);\n    accRect.top = max(rect.top, accRect.top);\n    accRect.right = min(rect.right, accRect.right);\n    accRect.bottom = min(rect.bottom, accRect.bottom);\n    accRect.left = max(rect.left, accRect.left);\n    return accRect;\n  }, getClientRectFromMixedType(element, firstClippingParent, strategy));\n  clippingRect.width = clippingRect.right - clippingRect.left;\n  clippingRect.height = clippingRect.bottom - clippingRect.top;\n  clippingRect.x = clippingRect.left;\n  clippingRect.y = clippingRect.top;\n  return clippingRect;\n}","import getWindow from \"./getWindow.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getViewportRect(element, strategy) {\n  var win = getWindow(element);\n  var html = getDocumentElement(element);\n  var visualViewport = win.visualViewport;\n  var width = html.clientWidth;\n  var height = html.clientHeight;\n  var x = 0;\n  var y = 0;\n\n  if (visualViewport) {\n    width = visualViewport.width;\n    height = visualViewport.height;\n    var layoutViewport = isLayoutViewport();\n\n    if (layoutViewport || !layoutViewport && strategy === 'fixed') {\n      x = visualViewport.offsetLeft;\n      y = visualViewport.offsetTop;\n    }\n  }\n\n  return {\n    width: width,\n    height: height,\n    x: x + getWindowScrollBarX(element),\n    y: y\n  };\n}","import getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nimport { max } from \"../utils/math.js\"; // Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable\n\nexport default function getDocumentRect(element) {\n  var _element$ownerDocumen;\n\n  var html = getDocumentElement(element);\n  var winScroll = getWindowScroll(element);\n  var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;\n  var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);\n  var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);\n  var x = -winScroll.scrollLeft + getWindowScrollBarX(element);\n  var y = -winScroll.scrollTop;\n\n  if (getComputedStyle(body || html).direction === 'rtl') {\n    x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n  }\n\n  return {\n    width: width,\n    height: height,\n    x: x,\n    y: y\n  };\n}","import getBasePlacement from \"./getBasePlacement.js\";\nimport getVariation from \"./getVariation.js\";\nimport getMainAxisFromPlacement from \"./getMainAxisFromPlacement.js\";\nimport { top, right, bottom, left, start, end } from \"../enums.js\";\nexport default function computeOffsets(_ref) {\n  var reference = _ref.reference,\n      element = _ref.element,\n      placement = _ref.placement;\n  var basePlacement = placement ? getBasePlacement(placement) : null;\n  var variation = placement ? getVariation(placement) : null;\n  var commonX = reference.x + reference.width / 2 - element.width / 2;\n  var commonY = reference.y + reference.height / 2 - element.height / 2;\n  var offsets;\n\n  switch (basePlacement) {\n    case top:\n      offsets = {\n        x: commonX,\n        y: reference.y - element.height\n      };\n      break;\n\n    case bottom:\n      offsets = {\n        x: commonX,\n        y: reference.y + reference.height\n      };\n      break;\n\n    case right:\n      offsets = {\n        x: reference.x + reference.width,\n        y: commonY\n      };\n      break;\n\n    case left:\n      offsets = {\n        x: reference.x - element.width,\n        y: commonY\n      };\n      break;\n\n    default:\n      offsets = {\n        x: reference.x,\n        y: reference.y\n      };\n  }\n\n  var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;\n\n  if (mainAxis != null) {\n    var len = mainAxis === 'y' ? 'height' : 'width';\n\n    switch (variation) {\n      case start:\n        offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n        break;\n\n      case end:\n        offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n        break;\n\n      default:\n    }\n  }\n\n  return offsets;\n}","import getClippingRect from \"../dom-utils/getClippingRect.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getBoundingClientRect from \"../dom-utils/getBoundingClientRect.js\";\nimport computeOffsets from \"./computeOffsets.js\";\nimport rectToClientRect from \"./rectToClientRect.js\";\nimport { clippingParents, reference, popper, bottom, top, right, basePlacements, viewport } from \"../enums.js\";\nimport { isElement } from \"../dom-utils/instanceOf.js\";\nimport mergePaddingObject from \"./mergePaddingObject.js\";\nimport expandToHashMap from \"./expandToHashMap.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport default function detectOverflow(state, options) {\n  if (options === void 0) {\n    options = {};\n  }\n\n  var _options = options,\n      _options$placement = _options.placement,\n      placement = _options$placement === void 0 ? state.placement : _options$placement,\n      _options$strategy = _options.strategy,\n      strategy = _options$strategy === void 0 ? state.strategy : _options$strategy,\n      _options$boundary = _options.boundary,\n      boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,\n      _options$rootBoundary = _options.rootBoundary,\n      rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary,\n      _options$elementConte = _options.elementContext,\n      elementContext = _options$elementConte === void 0 ? popper : _options$elementConte,\n      _options$altBoundary = _options.altBoundary,\n      altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,\n      _options$padding = _options.padding,\n      padding = _options$padding === void 0 ? 0 : _options$padding;\n  var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n  var altContext = elementContext === popper ? reference : popper;\n  var popperRect = state.rects.popper;\n  var element = state.elements[altBoundary ? altContext : elementContext];\n  var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary, strategy);\n  var referenceClientRect = getBoundingClientRect(state.elements.reference);\n  var popperOffsets = computeOffsets({\n    reference: referenceClientRect,\n    element: popperRect,\n    strategy: 'absolute',\n    placement: placement\n  });\n  var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets));\n  var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect\n  // 0 or negative = within the clipping rect\n\n  var overflowOffsets = {\n    top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n    bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,\n    left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n    right: elementClientRect.right - clippingClientRect.right + paddingObject.right\n  };\n  var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element\n\n  if (elementContext === popper && offsetData) {\n    var offset = offsetData[placement];\n    Object.keys(overflowOffsets).forEach(function (key) {\n      var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n      var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n      overflowOffsets[key] += offset[axis] * multiply;\n    });\n  }\n\n  return overflowOffsets;\n}","import getOppositePlacement from \"../utils/getOppositePlacement.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getOppositeVariationPlacement from \"../utils/getOppositeVariationPlacement.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport computeAutoPlacement from \"../utils/computeAutoPlacement.js\";\nimport { bottom, top, start, right, left, auto } from \"../enums.js\";\nimport getVariation from \"../utils/getVariation.js\"; // eslint-disable-next-line import/no-unused-modules\n\nfunction getExpandedFallbackPlacements(placement) {\n  if (getBasePlacement(placement) === auto) {\n    return [];\n  }\n\n  var oppositePlacement = getOppositePlacement(placement);\n  return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)];\n}\n\nfunction flip(_ref) {\n  var state = _ref.state,\n      options = _ref.options,\n      name = _ref.name;\n\n  if (state.modifiersData[name]._skip) {\n    return;\n  }\n\n  var _options$mainAxis = options.mainAxis,\n      checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n      _options$altAxis = options.altAxis,\n      checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis,\n      specifiedFallbackPlacements = options.fallbackPlacements,\n      padding = options.padding,\n      boundary = options.boundary,\n      rootBoundary = options.rootBoundary,\n      altBoundary = options.altBoundary,\n      _options$flipVariatio = options.flipVariations,\n      flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio,\n      allowedAutoPlacements = options.allowedAutoPlacements;\n  var preferredPlacement = state.options.placement;\n  var basePlacement = getBasePlacement(preferredPlacement);\n  var isBasePlacement = basePlacement === preferredPlacement;\n  var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));\n  var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) {\n    return acc.concat(getBasePlacement(placement) === auto ? computeAutoPlacement(state, {\n      placement: placement,\n      boundary: boundary,\n      rootBoundary: rootBoundary,\n      padding: padding,\n      flipVariations: flipVariations,\n      allowedAutoPlacements: allowedAutoPlacements\n    }) : placement);\n  }, []);\n  var referenceRect = state.rects.reference;\n  var popperRect = state.rects.popper;\n  var checksMap = new Map();\n  var makeFallbackChecks = true;\n  var firstFittingPlacement = placements[0];\n\n  for (var i = 0; i < placements.length; i++) {\n    var placement = placements[i];\n\n    var _basePlacement = getBasePlacement(placement);\n\n    var isStartVariation = getVariation(placement) === start;\n    var isVertical = [top, bottom].indexOf(_basePlacement) >= 0;\n    var len = isVertical ? 'width' : 'height';\n    var overflow = detectOverflow(state, {\n      placement: placement,\n      boundary: boundary,\n      rootBoundary: rootBoundary,\n      altBoundary: altBoundary,\n      padding: padding\n    });\n    var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top;\n\n    if (referenceRect[len] > popperRect[len]) {\n      mainVariationSide = getOppositePlacement(mainVariationSide);\n    }\n\n    var altVariationSide = getOppositePlacement(mainVariationSide);\n    var checks = [];\n\n    if (checkMainAxis) {\n      checks.push(overflow[_basePlacement] <= 0);\n    }\n\n    if (checkAltAxis) {\n      checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);\n    }\n\n    if (checks.every(function (check) {\n      return check;\n    })) {\n      firstFittingPlacement = placement;\n      makeFallbackChecks = false;\n      break;\n    }\n\n    checksMap.set(placement, checks);\n  }\n\n  if (makeFallbackChecks) {\n    // `2` may be desired in some cases – research later\n    var numberOfChecks = flipVariations ? 3 : 1;\n\n    var _loop = function _loop(_i) {\n      var fittingPlacement = placements.find(function (placement) {\n        var checks = checksMap.get(placement);\n\n        if (checks) {\n          return checks.slice(0, _i).every(function (check) {\n            return check;\n          });\n        }\n      });\n\n      if (fittingPlacement) {\n        firstFittingPlacement = fittingPlacement;\n        return \"break\";\n      }\n    };\n\n    for (var _i = numberOfChecks; _i > 0; _i--) {\n      var _ret = _loop(_i);\n\n      if (_ret === \"break\") break;\n    }\n  }\n\n  if (state.placement !== firstFittingPlacement) {\n    state.modifiersData[name]._skip = true;\n    state.placement = firstFittingPlacement;\n    state.reset = true;\n  }\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n  name: 'flip',\n  enabled: true,\n  phase: 'main',\n  fn: flip,\n  requiresIfExists: ['offset'],\n  data: {\n    _skip: false\n  }\n};","import getVariation from \"./getVariation.js\";\nimport { variationPlacements, basePlacements, placements as allPlacements } from \"../enums.js\";\nimport detectOverflow from \"./detectOverflow.js\";\nimport getBasePlacement from \"./getBasePlacement.js\";\nexport default function computeAutoPlacement(state, options) {\n  if (options === void 0) {\n    options = {};\n  }\n\n  var _options = options,\n      placement = _options.placement,\n      boundary = _options.boundary,\n      rootBoundary = _options.rootBoundary,\n      padding = _options.padding,\n      flipVariations = _options.flipVariations,\n      _options$allowedAutoP = _options.allowedAutoPlacements,\n      allowedAutoPlacements = _options$allowedAutoP === void 0 ? allPlacements : _options$allowedAutoP;\n  var variation = getVariation(placement);\n  var placements = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {\n    return getVariation(placement) === variation;\n  }) : basePlacements;\n  var allowedPlacements = placements.filter(function (placement) {\n    return allowedAutoPlacements.indexOf(placement) >= 0;\n  });\n\n  if (allowedPlacements.length === 0) {\n    allowedPlacements = placements;\n  } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions...\n\n\n  var overflows = allowedPlacements.reduce(function (acc, placement) {\n    acc[placement] = detectOverflow(state, {\n      placement: placement,\n      boundary: boundary,\n      rootBoundary: rootBoundary,\n      padding: padding\n    })[getBasePlacement(placement)];\n    return acc;\n  }, {});\n  return Object.keys(overflows).sort(function (a, b) {\n    return overflows[a] - overflows[b];\n  });\n}","import { top, bottom, left, right } from \"../enums.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\n\nfunction getSideOffsets(overflow, rect, preventedOffsets) {\n  if (preventedOffsets === void 0) {\n    preventedOffsets = {\n      x: 0,\n      y: 0\n    };\n  }\n\n  return {\n    top: overflow.top - rect.height - preventedOffsets.y,\n    right: overflow.right - rect.width + preventedOffsets.x,\n    bottom: overflow.bottom - rect.height + preventedOffsets.y,\n    left: overflow.left - rect.width - preventedOffsets.x\n  };\n}\n\nfunction isAnySideFullyClipped(overflow) {\n  return [top, right, bottom, left].some(function (side) {\n    return overflow[side] >= 0;\n  });\n}\n\nfunction hide(_ref) {\n  var state = _ref.state,\n      name = _ref.name;\n  var referenceRect = state.rects.reference;\n  var popperRect = state.rects.popper;\n  var preventedOffsets = state.modifiersData.preventOverflow;\n  var referenceOverflow = detectOverflow(state, {\n    elementContext: 'reference'\n  });\n  var popperAltOverflow = detectOverflow(state, {\n    altBoundary: true\n  });\n  var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);\n  var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);\n  var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);\n  var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);\n  state.modifiersData[name] = {\n    referenceClippingOffsets: referenceClippingOffsets,\n    popperEscapeOffsets: popperEscapeOffsets,\n    isReferenceHidden: isReferenceHidden,\n    hasPopperEscaped: hasPopperEscaped\n  };\n  state.attributes.popper = Object.assign({}, state.attributes.popper, {\n    'data-popper-reference-hidden': isReferenceHidden,\n    'data-popper-escaped': hasPopperEscaped\n  });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n  name: 'hide',\n  enabled: true,\n  phase: 'main',\n  requiresIfExists: ['preventOverflow'],\n  fn: hide\n};","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport { top, left, right, placements } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport function distanceAndSkiddingToXY(placement, rects, offset) {\n  var basePlacement = getBasePlacement(placement);\n  var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;\n\n  var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, {\n    placement: placement\n  })) : offset,\n      skidding = _ref[0],\n      distance = _ref[1];\n\n  skidding = skidding || 0;\n  distance = (distance || 0) * invertDistance;\n  return [left, right].indexOf(basePlacement) >= 0 ? {\n    x: distance,\n    y: skidding\n  } : {\n    x: skidding,\n    y: distance\n  };\n}\n\nfunction offset(_ref2) {\n  var state = _ref2.state,\n      options = _ref2.options,\n      name = _ref2.name;\n  var _options$offset = options.offset,\n      offset = _options$offset === void 0 ? [0, 0] : _options$offset;\n  var data = placements.reduce(function (acc, placement) {\n    acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);\n    return acc;\n  }, {});\n  var _data$state$placement = data[state.placement],\n      x = _data$state$placement.x,\n      y = _data$state$placement.y;\n\n  if (state.modifiersData.popperOffsets != null) {\n    state.modifiersData.popperOffsets.x += x;\n    state.modifiersData.popperOffsets.y += y;\n  }\n\n  state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n  name: 'offset',\n  enabled: true,\n  phase: 'main',\n  requires: ['popperOffsets'],\n  fn: offset\n};","import computeOffsets from \"../utils/computeOffsets.js\";\n\nfunction popperOffsets(_ref) {\n  var state = _ref.state,\n      name = _ref.name;\n  // Offsets are the actual position the popper needs to have to be\n  // properly positioned near its reference element\n  // This is the most basic placement, and will be adjusted by\n  // the modifiers in the next step\n  state.modifiersData[name] = computeOffsets({\n    reference: state.rects.reference,\n    element: state.rects.popper,\n    strategy: 'absolute',\n    placement: state.placement\n  });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n  name: 'popperOffsets',\n  enabled: true,\n  phase: 'read',\n  fn: popperOffsets,\n  data: {}\n};","import { top, left, right, bottom, start } from \"../enums.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport getAltAxis from \"../utils/getAltAxis.js\";\nimport { within, withinMaxClamp } from \"../utils/within.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport getFreshSideObject from \"../utils/getFreshSideObject.js\";\nimport { min as mathMin, max as mathMax } from \"../utils/math.js\";\n\nfunction preventOverflow(_ref) {\n  var state = _ref.state,\n      options = _ref.options,\n      name = _ref.name;\n  var _options$mainAxis = options.mainAxis,\n      checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n      _options$altAxis = options.altAxis,\n      checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis,\n      boundary = options.boundary,\n      rootBoundary = options.rootBoundary,\n      altBoundary = options.altBoundary,\n      padding = options.padding,\n      _options$tether = options.tether,\n      tether = _options$tether === void 0 ? true : _options$tether,\n      _options$tetherOffset = options.tetherOffset,\n      tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;\n  var overflow = detectOverflow(state, {\n    boundary: boundary,\n    rootBoundary: rootBoundary,\n    padding: padding,\n    altBoundary: altBoundary\n  });\n  var basePlacement = getBasePlacement(state.placement);\n  var variation = getVariation(state.placement);\n  var isBasePlacement = !variation;\n  var mainAxis = getMainAxisFromPlacement(basePlacement);\n  var altAxis = getAltAxis(mainAxis);\n  var popperOffsets = state.modifiersData.popperOffsets;\n  var referenceRect = state.rects.reference;\n  var popperRect = state.rects.popper;\n  var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, {\n    placement: state.placement\n  })) : tetherOffset;\n  var normalizedTetherOffsetValue = typeof tetherOffsetValue === 'number' ? {\n    mainAxis: tetherOffsetValue,\n    altAxis: tetherOffsetValue\n  } : Object.assign({\n    mainAxis: 0,\n    altAxis: 0\n  }, tetherOffsetValue);\n  var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null;\n  var data = {\n    x: 0,\n    y: 0\n  };\n\n  if (!popperOffsets) {\n    return;\n  }\n\n  if (checkMainAxis) {\n    var _offsetModifierState$;\n\n    var mainSide = mainAxis === 'y' ? top : left;\n    var altSide = mainAxis === 'y' ? bottom : right;\n    var len = mainAxis === 'y' ? 'height' : 'width';\n    var offset = popperOffsets[mainAxis];\n    var min = offset + overflow[mainSide];\n    var max = offset - overflow[altSide];\n    var additive = tether ? -popperRect[len] / 2 : 0;\n    var minLen = variation === start ? referenceRect[len] : popperRect[len];\n    var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go\n    // outside the reference bounds\n\n    var arrowElement = state.elements.arrow;\n    var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : {\n      width: 0,\n      height: 0\n    };\n    var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject();\n    var arrowPaddingMin = arrowPaddingObject[mainSide];\n    var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want\n    // to include its full size in the calculation. If the reference is small\n    // and near the edge of a boundary, the popper can overflow even if the\n    // reference is not overflowing as well (e.g. virtual elements with no\n    // width or height)\n\n    var arrowLen = within(0, referenceRect[len], arrowRect[len]);\n    var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis;\n    var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis;\n    var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);\n    var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;\n    var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0;\n    var tetherMin = offset + minOffset - offsetModifierValue - clientOffset;\n    var tetherMax = offset + maxOffset - offsetModifierValue;\n    var preventedOffset = within(tether ? mathMin(min, tetherMin) : min, offset, tether ? mathMax(max, tetherMax) : max);\n    popperOffsets[mainAxis] = preventedOffset;\n    data[mainAxis] = preventedOffset - offset;\n  }\n\n  if (checkAltAxis) {\n    var _offsetModifierState$2;\n\n    var _mainSide = mainAxis === 'x' ? top : left;\n\n    var _altSide = mainAxis === 'x' ? bottom : right;\n\n    var _offset = popperOffsets[altAxis];\n\n    var _len = altAxis === 'y' ? 'height' : 'width';\n\n    var _min = _offset + overflow[_mainSide];\n\n    var _max = _offset - overflow[_altSide];\n\n    var isOriginSide = [top, left].indexOf(basePlacement) !== -1;\n\n    var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0;\n\n    var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis;\n\n    var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max;\n\n    var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max);\n\n    popperOffsets[altAxis] = _preventedOffset;\n    data[altAxis] = _preventedOffset - _offset;\n  }\n\n  state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n  name: 'preventOverflow',\n  enabled: true,\n  phase: 'main',\n  fn: preventOverflow,\n  requiresIfExists: ['offset']\n};","export default function getAltAxis(axis) {\n  return axis === 'x' ? 'y' : 'x';\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getNodeScroll from \"./getNodeScroll.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport { round } from \"../utils/math.js\";\n\nfunction isElementScaled(element) {\n  var rect = element.getBoundingClientRect();\n  var scaleX = round(rect.width) / element.offsetWidth || 1;\n  var scaleY = round(rect.height) / element.offsetHeight || 1;\n  return scaleX !== 1 || scaleY !== 1;\n} // Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\n\n\nexport default function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {\n  if (isFixed === void 0) {\n    isFixed = false;\n  }\n\n  var isOffsetParentAnElement = isHTMLElement(offsetParent);\n  var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);\n  var documentElement = getDocumentElement(offsetParent);\n  var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled, isFixed);\n  var scroll = {\n    scrollLeft: 0,\n    scrollTop: 0\n  };\n  var offsets = {\n    x: 0,\n    y: 0\n  };\n\n  if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n    if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078\n    isScrollParent(documentElement)) {\n      scroll = getNodeScroll(offsetParent);\n    }\n\n    if (isHTMLElement(offsetParent)) {\n      offsets = getBoundingClientRect(offsetParent, true);\n      offsets.x += offsetParent.clientLeft;\n      offsets.y += offsetParent.clientTop;\n    } else if (documentElement) {\n      offsets.x = getWindowScrollBarX(documentElement);\n    }\n  }\n\n  return {\n    x: rect.left + scroll.scrollLeft - offsets.x,\n    y: rect.top + scroll.scrollTop - offsets.y,\n    width: rect.width,\n    height: rect.height\n  };\n}","import getWindowScroll from \"./getWindowScroll.js\";\nimport getWindow from \"./getWindow.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getHTMLElementScroll from \"./getHTMLElementScroll.js\";\nexport default function getNodeScroll(node) {\n  if (node === getWindow(node) || !isHTMLElement(node)) {\n    return getWindowScroll(node);\n  } else {\n    return getHTMLElementScroll(node);\n  }\n}","export default function getHTMLElementScroll(element) {\n  return {\n    scrollLeft: element.scrollLeft,\n    scrollTop: element.scrollTop\n  };\n}","import { modifierPhases } from \"../enums.js\"; // source: https://stackoverflow.com/questions/49875255\n\nfunction order(modifiers) {\n  var map = new Map();\n  var visited = new Set();\n  var result = [];\n  modifiers.forEach(function (modifier) {\n    map.set(modifier.name, modifier);\n  }); // On visiting object, check for its dependencies and visit them recursively\n\n  function sort(modifier) {\n    visited.add(modifier.name);\n    var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);\n    requires.forEach(function (dep) {\n      if (!visited.has(dep)) {\n        var depModifier = map.get(dep);\n\n        if (depModifier) {\n          sort(depModifier);\n        }\n      }\n    });\n    result.push(modifier);\n  }\n\n  modifiers.forEach(function (modifier) {\n    if (!visited.has(modifier.name)) {\n      // check for visited object\n      sort(modifier);\n    }\n  });\n  return result;\n}\n\nexport default function orderModifiers(modifiers) {\n  // order based on dependencies\n  var orderedModifiers = order(modifiers); // order based on phase\n\n  return modifierPhases.reduce(function (acc, phase) {\n    return acc.concat(orderedModifiers.filter(function (modifier) {\n      return modifier.phase === phase;\n    }));\n  }, []);\n}","import getCompositeRect from \"./dom-utils/getCompositeRect.js\";\nimport getLayoutRect from \"./dom-utils/getLayoutRect.js\";\nimport listScrollParents from \"./dom-utils/listScrollParents.js\";\nimport getOffsetParent from \"./dom-utils/getOffsetParent.js\";\nimport orderModifiers from \"./utils/orderModifiers.js\";\nimport debounce from \"./utils/debounce.js\";\nimport mergeByName from \"./utils/mergeByName.js\";\nimport detectOverflow from \"./utils/detectOverflow.js\";\nimport { isElement } from \"./dom-utils/instanceOf.js\";\nvar DEFAULT_OPTIONS = {\n  placement: 'bottom',\n  modifiers: [],\n  strategy: 'absolute'\n};\n\nfunction areValidElements() {\n  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n    args[_key] = arguments[_key];\n  }\n\n  return !args.some(function (element) {\n    return !(element && typeof element.getBoundingClientRect === 'function');\n  });\n}\n\nexport function popperGenerator(generatorOptions) {\n  if (generatorOptions === void 0) {\n    generatorOptions = {};\n  }\n\n  var _generatorOptions = generatorOptions,\n      _generatorOptions$def = _generatorOptions.defaultModifiers,\n      defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def,\n      _generatorOptions$def2 = _generatorOptions.defaultOptions,\n      defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;\n  return function createPopper(reference, popper, options) {\n    if (options === void 0) {\n      options = defaultOptions;\n    }\n\n    var state = {\n      placement: 'bottom',\n      orderedModifiers: [],\n      options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),\n      modifiersData: {},\n      elements: {\n        reference: reference,\n        popper: popper\n      },\n      attributes: {},\n      styles: {}\n    };\n    var effectCleanupFns = [];\n    var isDestroyed = false;\n    var instance = {\n      state: state,\n      setOptions: function setOptions(setOptionsAction) {\n        var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction;\n        cleanupModifierEffects();\n        state.options = Object.assign({}, defaultOptions, state.options, options);\n        state.scrollParents = {\n          reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [],\n          popper: listScrollParents(popper)\n        }; // Orders the modifiers based on their dependencies and `phase`\n        // properties\n\n        var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers\n\n        state.orderedModifiers = orderedModifiers.filter(function (m) {\n          return m.enabled;\n        });\n        runModifierEffects();\n        return instance.update();\n      },\n      // Sync update – it will always be executed, even if not necessary. This\n      // is useful for low frequency updates where sync behavior simplifies the\n      // logic.\n      // For high frequency updates (e.g. `resize` and `scroll` events), always\n      // prefer the async Popper#update method\n      forceUpdate: function forceUpdate() {\n        if (isDestroyed) {\n          return;\n        }\n\n        var _state$elements = state.elements,\n            reference = _state$elements.reference,\n            popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements\n        // anymore\n\n        if (!areValidElements(reference, popper)) {\n          return;\n        } // Store the reference and popper rects to be read by modifiers\n\n\n        state.rects = {\n          reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'),\n          popper: getLayoutRect(popper)\n        }; // Modifiers have the ability to reset the current update cycle. The\n        // most common use case for this is the `flip` modifier changing the\n        // placement, which then needs to re-run all the modifiers, because the\n        // logic was previously ran for the previous placement and is therefore\n        // stale/incorrect\n\n        state.reset = false;\n        state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier\n        // is filled with the initial data specified by the modifier. This means\n        // it doesn't persist and is fresh on each update.\n        // To ensure persistent data, use `${name}#persistent`\n\n        state.orderedModifiers.forEach(function (modifier) {\n          return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);\n        });\n\n        for (var index = 0; index < state.orderedModifiers.length; index++) {\n          if (state.reset === true) {\n            state.reset = false;\n            index = -1;\n            continue;\n          }\n\n          var _state$orderedModifie = state.orderedModifiers[index],\n              fn = _state$orderedModifie.fn,\n              _state$orderedModifie2 = _state$orderedModifie.options,\n              _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,\n              name = _state$orderedModifie.name;\n\n          if (typeof fn === 'function') {\n            state = fn({\n              state: state,\n              options: _options,\n              name: name,\n              instance: instance\n            }) || state;\n          }\n        }\n      },\n      // Async and optimistically optimized update – it will not be executed if\n      // not necessary (debounced to run at most once-per-tick)\n      update: debounce(function () {\n        return new Promise(function (resolve) {\n          instance.forceUpdate();\n          resolve(state);\n        });\n      }),\n      destroy: function destroy() {\n        cleanupModifierEffects();\n        isDestroyed = true;\n      }\n    };\n\n    if (!areValidElements(reference, popper)) {\n      return instance;\n    }\n\n    instance.setOptions(options).then(function (state) {\n      if (!isDestroyed && options.onFirstUpdate) {\n        options.onFirstUpdate(state);\n      }\n    }); // Modifiers have the ability to execute arbitrary code before the first\n    // update cycle runs. They will be executed in the same order as the update\n    // cycle. This is useful when a modifier adds some persistent data that\n    // other modifiers need to use, but the modifier is run after the dependent\n    // one.\n\n    function runModifierEffects() {\n      state.orderedModifiers.forEach(function (_ref) {\n        var name = _ref.name,\n            _ref$options = _ref.options,\n            options = _ref$options === void 0 ? {} : _ref$options,\n            effect = _ref.effect;\n\n        if (typeof effect === 'function') {\n          var cleanupFn = effect({\n            state: state,\n            name: name,\n            instance: instance,\n            options: options\n          });\n\n          var noopFn = function noopFn() {};\n\n          effectCleanupFns.push(cleanupFn || noopFn);\n        }\n      });\n    }\n\n    function cleanupModifierEffects() {\n      effectCleanupFns.forEach(function (fn) {\n        return fn();\n      });\n      effectCleanupFns = [];\n    }\n\n    return instance;\n  };\n}\nexport var createPopper = /*#__PURE__*/popperGenerator(); // eslint-disable-next-line import/no-unused-modules\n\nexport { detectOverflow };","export default function debounce(fn) {\n  var pending;\n  return function () {\n    if (!pending) {\n      pending = new Promise(function (resolve) {\n        Promise.resolve().then(function () {\n          pending = undefined;\n          resolve(fn());\n        });\n      });\n    }\n\n    return pending;\n  };\n}","export default function mergeByName(modifiers) {\n  var merged = modifiers.reduce(function (merged, current) {\n    var existing = merged[current.name];\n    merged[current.name] = existing ? Object.assign({}, existing, current, {\n      options: Object.assign({}, existing.options, current.options),\n      data: Object.assign({}, existing.data, current.data)\n    }) : current;\n    return merged;\n  }, {}); // IE11 does not support Object.values\n\n  return Object.keys(merged).map(function (key) {\n    return merged[key];\n  });\n}","import arrow from '@popperjs/core/lib/modifiers/arrow';\nimport computeStyles from '@popperjs/core/lib/modifiers/computeStyles';\nimport eventListeners from '@popperjs/core/lib/modifiers/eventListeners';\nimport flip from '@popperjs/core/lib/modifiers/flip';\nimport hide from '@popperjs/core/lib/modifiers/hide';\nimport offset from '@popperjs/core/lib/modifiers/offset';\nimport popperOffsets from '@popperjs/core/lib/modifiers/popperOffsets';\nimport preventOverflow from '@popperjs/core/lib/modifiers/preventOverflow';\nimport { placements } from '@popperjs/core/lib/enums';\nimport { popperGenerator } from '@popperjs/core/lib/popper-base';\n\n// For the common JS build we will turn this file into a bundle with no imports.\n// This is b/c the Popper lib is all esm files, and would break in a common js only environment\nexport const createPopper = popperGenerator({\n  defaultModifiers: [hide, popperOffsets, computeStyles, eventListeners, offset, flip, preventOverflow, arrow]\n});\nexport { placements };","const _excluded = [\"enabled\", \"placement\", \"strategy\", \"modifiers\"];\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.indexOf(n) >= 0) continue; t[n] = r[n]; } return t; }\nimport { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { dequal } from 'dequal';\nimport useSafeState from '@restart/hooks/useSafeState';\nimport { createPopper } from './popper';\nconst disabledApplyStylesModifier = {\n  name: 'applyStyles',\n  enabled: false,\n  phase: 'afterWrite',\n  fn: () => undefined\n};\n\n// until docjs supports type exports...\n\nconst ariaDescribedByModifier = {\n  name: 'ariaDescribedBy',\n  enabled: true,\n  phase: 'afterWrite',\n  effect: ({\n    state\n  }) => () => {\n    const {\n      reference,\n      popper\n    } = state.elements;\n    if ('removeAttribute' in reference) {\n      const ids = (reference.getAttribute('aria-describedby') || '').split(',').filter(id => id.trim() !== popper.id);\n      if (!ids.length) reference.removeAttribute('aria-describedby');else reference.setAttribute('aria-describedby', ids.join(','));\n    }\n  },\n  fn: ({\n    state\n  }) => {\n    var _popper$getAttribute;\n    const {\n      popper,\n      reference\n    } = state.elements;\n    const role = (_popper$getAttribute = popper.getAttribute('role')) == null ? void 0 : _popper$getAttribute.toLowerCase();\n    if (popper.id && role === 'tooltip' && 'setAttribute' in reference) {\n      const ids = reference.getAttribute('aria-describedby');\n      if (ids && ids.split(',').indexOf(popper.id) !== -1) {\n        return;\n      }\n      reference.setAttribute('aria-describedby', ids ? `${ids},${popper.id}` : popper.id);\n    }\n  }\n};\nconst EMPTY_MODIFIERS = [];\n/**\n * Position an element relative some reference element using Popper.js\n *\n * @param referenceElement\n * @param popperElement\n * @param {object}      options\n * @param {object=}     options.modifiers Popper.js modifiers\n * @param {boolean=}    options.enabled toggle the popper functionality on/off\n * @param {string=}     options.placement The popper element placement relative to the reference element\n * @param {string=}     options.strategy the positioning strategy\n * @param {function=}   options.onCreate called when the popper is created\n * @param {function=}   options.onUpdate called when the popper is updated\n *\n * @returns {UsePopperState} The popper state\n */\nfunction usePopper(referenceElement, popperElement, _ref = {}) {\n  let {\n      enabled = true,\n      placement = 'bottom',\n      strategy = 'absolute',\n      modifiers = EMPTY_MODIFIERS\n    } = _ref,\n    config = _objectWithoutPropertiesLoose(_ref, _excluded);\n  const prevModifiers = useRef(modifiers);\n  const popperInstanceRef = useRef();\n  const update = useCallback(() => {\n    var _popperInstanceRef$cu;\n    (_popperInstanceRef$cu = popperInstanceRef.current) == null ? void 0 : _popperInstanceRef$cu.update();\n  }, []);\n  const forceUpdate = useCallback(() => {\n    var _popperInstanceRef$cu2;\n    (_popperInstanceRef$cu2 = popperInstanceRef.current) == null ? void 0 : _popperInstanceRef$cu2.forceUpdate();\n  }, []);\n  const [popperState, setState] = useSafeState(useState({\n    placement,\n    update,\n    forceUpdate,\n    attributes: {},\n    styles: {\n      popper: {},\n      arrow: {}\n    }\n  }));\n  const updateModifier = useMemo(() => ({\n    name: 'updateStateModifier',\n    enabled: true,\n    phase: 'write',\n    requires: ['computeStyles'],\n    fn: ({\n      state\n    }) => {\n      const styles = {};\n      const attributes = {};\n      Object.keys(state.elements).forEach(element => {\n        styles[element] = state.styles[element];\n        attributes[element] = state.attributes[element];\n      });\n      setState({\n        state,\n        styles,\n        attributes,\n        update,\n        forceUpdate,\n        placement: state.placement\n      });\n    }\n  }), [update, forceUpdate, setState]);\n  const nextModifiers = useMemo(() => {\n    if (!dequal(prevModifiers.current, modifiers)) {\n      prevModifiers.current = modifiers;\n    }\n    return prevModifiers.current;\n  }, [modifiers]);\n  useEffect(() => {\n    if (!popperInstanceRef.current || !enabled) return;\n    popperInstanceRef.current.setOptions({\n      placement,\n      strategy,\n      modifiers: [...nextModifiers, updateModifier, disabledApplyStylesModifier]\n    });\n  }, [strategy, placement, updateModifier, enabled, nextModifiers]);\n  useEffect(() => {\n    if (!enabled || referenceElement == null || popperElement == null) {\n      return undefined;\n    }\n    popperInstanceRef.current = createPopper(referenceElement, popperElement, Object.assign({}, config, {\n      placement,\n      strategy,\n      modifiers: [...nextModifiers, ariaDescribedByModifier, updateModifier]\n    }));\n    return () => {\n      if (popperInstanceRef.current != null) {\n        popperInstanceRef.current.destroy();\n        popperInstanceRef.current = undefined;\n        setState(s => Object.assign({}, s, {\n          attributes: {},\n          styles: {\n            popper: {}\n          }\n        }));\n      }\n    };\n    // This is only run once to _create_ the popper\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n  }, [enabled, referenceElement, popperElement]);\n  return popperState;\n}\nexport default usePopper;","/* eslint-disable no-return-assign */\nimport canUseDOM from './canUseDOM';\nexport var optionsSupported = false;\nexport var onceSupported = false;\n\ntry {\n  var options = {\n    get passive() {\n      return optionsSupported = true;\n    },\n\n    get once() {\n      // eslint-disable-next-line no-multi-assign\n      return onceSupported = optionsSupported = true;\n    }\n\n  };\n\n  if (canUseDOM) {\n    window.addEventListener('test', options, options);\n    window.removeEventListener('test', options, true);\n  }\n} catch (e) {\n  /* */\n}\n\n/**\n * An `addEventListener` ponyfill, supports the `once` option\n * \n * @param node the element\n * @param eventName the event name\n * @param handle the handler\n * @param options event options\n */\nfunction addEventListener(node, eventName, handler, options) {\n  if (options && typeof options !== 'boolean' && !onceSupported) {\n    var once = options.once,\n        capture = options.capture;\n    var wrappedHandler = handler;\n\n    if (!onceSupported && once) {\n      wrappedHandler = handler.__once || function onceHandler(event) {\n        this.removeEventListener(eventName, onceHandler, capture);\n        handler.call(this, event);\n      };\n\n      handler.__once = wrappedHandler;\n    }\n\n    node.addEventListener(eventName, wrappedHandler, optionsSupported ? options : capture);\n  }\n\n  node.addEventListener(eventName, handler, options);\n}\n\nexport default addEventListener;","/**\n * A `removeEventListener` ponyfill\n * \n * @param node the element\n * @param eventName the event name\n * @param handle the handler\n * @param options event options\n */\nfunction removeEventListener(node, eventName, handler, options) {\n  var capture = options && typeof options !== 'boolean' ? options.capture : options;\n  node.removeEventListener(eventName, handler, capture);\n\n  if (handler.__once) {\n    node.removeEventListener(eventName, handler.__once, capture);\n  }\n}\n\nexport default removeEventListener;","import addEventListener from './addEventListener';\nimport removeEventListener from './removeEventListener';\n\nfunction listen(node, eventName, handler, options) {\n  addEventListener(node, eventName, handler, options);\n  return function () {\n    removeEventListener(node, eventName, handler, options);\n  };\n}\n\nexport default listen;","/* eslint-disable no-bitwise, no-cond-assign */\n\n/**\n * Checks if an element contains another given element.\n * \n * @param context the context element\n * @param node the element to check\n */\nexport default function contains(context, node) {\n  // HTML DOM and SVG DOM may have different support levels,\n  // so we need to check on context instead of a document root element.\n  if (context.contains) return context.contains(node);\n  if (context.compareDocumentPosition) return context === node || !!(context.compareDocumentPosition(node) & 16);\n}","import contains from 'dom-helpers/contains';\nimport listen from 'dom-helpers/listen';\nimport ownerDocument from 'dom-helpers/ownerDocument';\nimport { useCallback, useEffect, useRef } from 'react';\nimport useEventCallback from '@restart/hooks/useEventCallback';\nimport warning from 'warning';\nconst noop = () => {};\nfunction isLeftClickEvent(event) {\n  return event.button === 0;\n}\nfunction isModifiedEvent(event) {\n  return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\nexport const getRefTarget = ref => ref && ('current' in ref ? ref.current : ref);\nconst InitialTriggerEvents = {\n  click: 'mousedown',\n  mouseup: 'mousedown',\n  pointerup: 'pointerdown'\n};\n\n/**\n * The `useClickOutside` hook registers your callback on the document that fires\n * when a pointer event is registered outside of the provided ref or element.\n *\n * @param {Ref<HTMLElement>| HTMLElement} ref  The element boundary\n * @param {function} onClickOutside\n * @param {object=}  options\n * @param {boolean=} options.disabled\n * @param {string=}  options.clickTrigger The DOM event name (click, mousedown, etc) to attach listeners on\n */\nfunction useClickOutside(ref, onClickOutside = noop, {\n  disabled,\n  clickTrigger = 'click'\n} = {}) {\n  const preventMouseClickOutsideRef = useRef(false);\n  const waitingForTrigger = useRef(false);\n  const handleMouseCapture = useCallback(e => {\n    const currentTarget = getRefTarget(ref);\n    warning(!!currentTarget, 'ClickOutside captured a close event but does not have a ref to compare it to. ' + 'useClickOutside(), should be passed a ref that resolves to a DOM node');\n    preventMouseClickOutsideRef.current = !currentTarget || isModifiedEvent(e) || !isLeftClickEvent(e) || !!contains(currentTarget, e.target) || waitingForTrigger.current;\n    waitingForTrigger.current = false;\n  }, [ref]);\n  const handleInitialMouse = useEventCallback(e => {\n    const currentTarget = getRefTarget(ref);\n    if (currentTarget && contains(currentTarget, e.target)) {\n      waitingForTrigger.current = true;\n    }\n  });\n  const handleMouse = useEventCallback(e => {\n    if (!preventMouseClickOutsideRef.current) {\n      onClickOutside(e);\n    }\n  });\n  useEffect(() => {\n    var _ownerWindow$event, _ownerWindow$parent;\n    if (disabled || ref == null) return undefined;\n    const doc = ownerDocument(getRefTarget(ref));\n    const ownerWindow = doc.defaultView || window;\n\n    // Store the current event to avoid triggering handlers immediately\n    // For things rendered in an iframe, the event might originate on the parent window\n    // so we should fall back to that global event if the local one doesn't exist\n    // https://github.com/facebook/react/issues/20074\n    let currentEvent = (_ownerWindow$event = ownerWindow.event) != null ? _ownerWindow$event : (_ownerWindow$parent = ownerWindow.parent) == null ? void 0 : _ownerWindow$parent.event;\n    let removeInitialTriggerListener = null;\n    if (InitialTriggerEvents[clickTrigger]) {\n      removeInitialTriggerListener = listen(doc, InitialTriggerEvents[clickTrigger], handleInitialMouse, true);\n    }\n\n    // Use capture for this listener so it fires before React's listener, to\n    // avoid false positives in the contains() check below if the target DOM\n    // element is removed in the React mouse callback.\n    const removeMouseCaptureListener = listen(doc, clickTrigger, handleMouseCapture, true);\n    const removeMouseListener = listen(doc, clickTrigger, e => {\n      // skip if this event is the same as the one running when we added the handlers\n      if (e === currentEvent) {\n        currentEvent = undefined;\n        return;\n      }\n      handleMouse(e);\n    });\n    let mobileSafariHackListeners = [];\n    if ('ontouchstart' in doc.documentElement) {\n      mobileSafariHackListeners = [].slice.call(doc.body.children).map(el => listen(el, 'mousemove', noop));\n    }\n    return () => {\n      removeInitialTriggerListener == null ? void 0 : removeInitialTriggerListener();\n      removeMouseCaptureListener();\n      removeMouseListener();\n      mobileSafariHackListeners.forEach(remove => remove());\n    };\n  }, [ref, disabled, clickTrigger, handleMouseCapture, handleInitialMouse, handleMouse]);\n}\nexport default useClickOutside;","import listen from 'dom-helpers/listen';\nimport ownerDocument from 'dom-helpers/ownerDocument';\nimport { useEffect } from 'react';\nimport useEventCallback from '@restart/hooks/useEventCallback';\nimport useClickOutside, { getRefTarget } from './useClickOutside';\nimport { isEscKey } from './utils';\nconst noop = () => {};\n/**\n * The `useRootClose` hook registers your callback on the document\n * when rendered. Powers the `<Overlay/>` component. This is used achieve modal\n * style behavior where your callback is triggered when the user tries to\n * interact with the rest of the document or hits the `esc` key.\n *\n * @param {Ref<HTMLElement>| HTMLElement} ref  The element boundary\n * @param {function} onRootClose\n * @param {object=}  options\n * @param {boolean=} options.disabled\n * @param {string=}  options.clickTrigger The DOM event name (click, mousedown, etc) to attach listeners on\n */\nfunction useRootClose(ref, onRootClose, {\n  disabled,\n  clickTrigger\n} = {}) {\n  const onClose = onRootClose || noop;\n  useClickOutside(ref, onClose, {\n    disabled,\n    clickTrigger\n  });\n  const handleKeyUp = useEventCallback(e => {\n    if (isEscKey(e)) {\n      onClose(e);\n    }\n  });\n  useEffect(() => {\n    if (disabled || ref == null) return undefined;\n    const doc = ownerDocument(getRefTarget(ref));\n\n    // Store the current event to avoid triggering handlers immediately\n    // https://github.com/facebook/react/issues/20074\n    let currentEvent = (doc.defaultView || window).event;\n    const removeKeyupListener = listen(doc, 'keyup', e => {\n      // skip if this event is the same as the one running when we added the handlers\n      if (e === currentEvent) {\n        currentEvent = undefined;\n        return;\n      }\n      handleKeyUp(e);\n    });\n    return () => {\n      removeKeyupListener();\n    };\n  }, [ref, disabled, handleKeyUp]);\n}\nexport default useRootClose;","import * as React from 'react';\nexport function isEscKey(e) {\n  return e.code === 'Escape' || e.keyCode === 27;\n}\nexport function getReactVersion() {\n  const parts = React.version.split('.');\n  return {\n    major: +parts[0],\n    minor: +parts[1],\n    patch: +parts[2]\n  };\n}","import { createContext, useContext } from 'react';\nimport canUseDOM from 'dom-helpers/canUseDOM';\nconst Context = /*#__PURE__*/createContext(canUseDOM ? window : undefined);\nexport const WindowProvider = Context.Provider;\n\n/**\n * The document \"window\" placed in React context. Helpful for determining\n * SSR context, or when rendering into an iframe.\n *\n * @returns the current window\n */\nexport default function useWindow() {\n  return useContext(Context);\n}","import ownerDocument from 'dom-helpers/ownerDocument';\nimport canUseDOM from 'dom-helpers/canUseDOM';\nimport { useState, useEffect } from 'react';\nimport useWindow from './useWindow';\nexport const resolveContainerRef = (ref, document) => {\n  if (!canUseDOM) return null;\n  if (ref == null) return (document || ownerDocument()).body;\n  if (typeof ref === 'function') ref = ref();\n  if (ref && 'current' in ref) ref = ref.current;\n  if (ref && ('nodeType' in ref || ref.getBoundingClientRect)) return ref;\n  return null;\n};\nexport default function useWaitForDOMRef(ref, onResolved) {\n  const window = useWindow();\n  const [resolvedRef, setRef] = useState(() => resolveContainerRef(ref, window == null ? void 0 : window.document));\n  if (!resolvedRef) {\n    const earlyRef = resolveContainerRef(ref);\n    if (earlyRef) setRef(earlyRef);\n  }\n  useEffect(() => {\n    if (onResolved && resolvedRef) {\n      onResolved(resolvedRef);\n    }\n  }, [onResolved, resolvedRef]);\n  useEffect(() => {\n    const nextRef = resolveContainerRef(ref);\n    if (nextRef !== resolvedRef) {\n      setRef(nextRef);\n    }\n  }, [ref, resolvedRef]);\n  return resolvedRef;\n}","export function toModifierMap(modifiers) {\n  const result = {};\n  if (!Array.isArray(modifiers)) {\n    return modifiers || result;\n  }\n\n  // eslint-disable-next-line no-unused-expressions\n  modifiers == null ? void 0 : modifiers.forEach(m => {\n    result[m.name] = m;\n  });\n  return result;\n}\nexport function toModifierArray(map = {}) {\n  if (Array.isArray(map)) return map;\n  return Object.keys(map).map(k => {\n    map[k].name = k;\n    return map[k];\n  });\n}\nexport default function mergeOptionsWithPopperConfig({\n  enabled,\n  enableEvents,\n  placement,\n  flip,\n  offset,\n  fixed,\n  containerPadding,\n  arrowElement,\n  popperConfig = {}\n}) {\n  var _modifiers$eventListe, _modifiers$preventOve, _modifiers$preventOve2, _modifiers$offset, _modifiers$arrow;\n  const modifiers = toModifierMap(popperConfig.modifiers);\n  return Object.assign({}, popperConfig, {\n    placement,\n    enabled,\n    strategy: fixed ? 'fixed' : popperConfig.strategy,\n    modifiers: toModifierArray(Object.assign({}, modifiers, {\n      eventListeners: {\n        enabled: enableEvents,\n        options: (_modifiers$eventListe = modifiers.eventListeners) == null ? void 0 : _modifiers$eventListe.options\n      },\n      preventOverflow: Object.assign({}, modifiers.preventOverflow, {\n        options: containerPadding ? Object.assign({\n          padding: containerPadding\n        }, (_modifiers$preventOve = modifiers.preventOverflow) == null ? void 0 : _modifiers$preventOve.options) : (_modifiers$preventOve2 = modifiers.preventOverflow) == null ? void 0 : _modifiers$preventOve2.options\n      }),\n      offset: {\n        options: Object.assign({\n          offset\n        }, (_modifiers$offset = modifiers.offset) == null ? void 0 : _modifiers$offset.options)\n      },\n      arrow: Object.assign({}, modifiers.arrow, {\n        enabled: !!arrowElement,\n        options: Object.assign({}, (_modifiers$arrow = modifiers.arrow) == null ? void 0 : _modifiers$arrow.options, {\n          element: arrowElement\n        })\n      }),\n      flip: Object.assign({\n        enabled: !!flip\n      }, modifiers.flip)\n    }))\n  });\n}","import useEventCallback from '@restart/hooks/useEventCallback';\nimport useMergedRefs from '@restart/hooks/useMergedRefs';\nimport { cloneElement, useEffect, useRef } from 'react';\nfunction NoopTransition({\n  children,\n  in: inProp,\n  onExited,\n  mountOnEnter,\n  unmountOnExit\n}) {\n  const ref = useRef(null);\n  const hasEnteredRef = useRef(inProp);\n  const handleExited = useEventCallback(onExited);\n  useEffect(() => {\n    if (inProp) hasEnteredRef.current = true;else {\n      handleExited(ref.current);\n    }\n  }, [inProp, handleExited]);\n  const combinedRef = useMergedRefs(ref, children.ref);\n  const child = /*#__PURE__*/cloneElement(children, {\n    ref: combinedRef\n  });\n  if (inProp) return child;\n  if (unmountOnExit) {\n    return null;\n  }\n  if (!hasEnteredRef.current && mountOnEnter) {\n    return null;\n  }\n  return child;\n}\nexport default NoopTransition;","const _excluded = [\"onEnter\", \"onEntering\", \"onEntered\", \"onExit\", \"onExiting\", \"onExited\", \"addEndListener\", \"children\"];\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.indexOf(n) >= 0) continue; t[n] = r[n]; } return t; }\nimport { cloneElement, useCallback, useRef } from 'react';\nimport useMergedRefs from '@restart/hooks/useMergedRefs';\nimport { getReactVersion } from './utils';\n/**\n * Normalizes RTG transition callbacks with nodeRef to better support\n * strict mode.\n *\n * @param props Transition props.\n * @returns Normalized transition props.\n */\nexport default function useRTGTransitionProps(_ref) {\n  let {\n      onEnter,\n      onEntering,\n      onEntered,\n      onExit,\n      onExiting,\n      onExited,\n      addEndListener,\n      children\n    } = _ref,\n    props = _objectWithoutPropertiesLoose(_ref, _excluded);\n  const {\n    major\n  } = getReactVersion();\n  const childRef = major >= 19 ? children.props.ref : children.ref;\n  const nodeRef = useRef(null);\n  const mergedRef = useMergedRefs(nodeRef, typeof children === 'function' ? null : childRef);\n  const normalize = callback => param => {\n    if (callback && nodeRef.current) {\n      callback(nodeRef.current, param);\n    }\n  };\n\n  /* eslint-disable react-hooks/exhaustive-deps */\n  const handleEnter = useCallback(normalize(onEnter), [onEnter]);\n  const handleEntering = useCallback(normalize(onEntering), [onEntering]);\n  const handleEntered = useCallback(normalize(onEntered), [onEntered]);\n  const handleExit = useCallback(normalize(onExit), [onExit]);\n  const handleExiting = useCallback(normalize(onExiting), [onExiting]);\n  const handleExited = useCallback(normalize(onExited), [onExited]);\n  const handleAddEndListener = useCallback(normalize(addEndListener), [addEndListener]);\n  /* eslint-enable react-hooks/exhaustive-deps */\n\n  return Object.assign({}, props, {\n    nodeRef\n  }, onEnter && {\n    onEnter: handleEnter\n  }, onEntering && {\n    onEntering: handleEntering\n  }, onEntered && {\n    onEntered: handleEntered\n  }, onExit && {\n    onExit: handleExit\n  }, onExiting && {\n    onExiting: handleExiting\n  }, onExited && {\n    onExited: handleExited\n  }, addEndListener && {\n    addEndListener: handleAddEndListener\n  }, {\n    children: typeof children === 'function' ? (status, innerProps) =>\n    // TODO: Types for RTG missing innerProps, so need to cast.\n    children(status, Object.assign({}, innerProps, {\n      ref: mergedRef\n    })) : /*#__PURE__*/cloneElement(children, {\n      ref: mergedRef\n    })\n  });\n}","const _excluded = [\"component\"];\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.indexOf(n) >= 0) continue; t[n] = r[n]; } return t; }\nimport * as React from 'react';\nimport useRTGTransitionProps from './useRTGTransitionProps';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n// Normalizes Transition callbacks when nodeRef is used.\nconst RTGTransition = /*#__PURE__*/React.forwardRef((_ref, ref) => {\n  let {\n      component: Component\n    } = _ref,\n    props = _objectWithoutPropertiesLoose(_ref, _excluded);\n  const transitionProps = useRTGTransitionProps(props);\n  return /*#__PURE__*/_jsx(Component, Object.assign({\n    ref: ref\n  }, transitionProps));\n});\nexport default RTGTransition;","import useMergedRefs from '@restart/hooks/useMergedRefs';\nimport useEventCallback from '@restart/hooks/useEventCallback';\nimport useIsomorphicEffect from '@restart/hooks/useIsomorphicEffect';\nimport React, { useRef, cloneElement, useState } from 'react';\nimport NoopTransition from './NoopTransition';\nimport RTGTransition from './RTGTransition';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport function useTransition({\n  in: inProp,\n  onTransition\n}) {\n  const ref = useRef(null);\n  const isInitialRef = useRef(true);\n  const handleTransition = useEventCallback(onTransition);\n  useIsomorphicEffect(() => {\n    if (!ref.current) {\n      return undefined;\n    }\n    let stale = false;\n    handleTransition({\n      in: inProp,\n      element: ref.current,\n      initial: isInitialRef.current,\n      isStale: () => stale\n    });\n    return () => {\n      stale = true;\n    };\n  }, [inProp, handleTransition]);\n  useIsomorphicEffect(() => {\n    isInitialRef.current = false;\n    // this is for strict mode\n    return () => {\n      isInitialRef.current = true;\n    };\n  }, []);\n  return ref;\n}\n/**\n * Adapts an imperative transition function to a subset of the RTG `<Transition>` component API.\n *\n * ImperativeTransition does not support mounting options or `appear` at the moment, meaning\n * that it always acts like: `mountOnEnter={true} unmountOnExit={true} appear={true}`\n */\nexport default function ImperativeTransition({\n  children,\n  in: inProp,\n  onExited,\n  onEntered,\n  transition\n}) {\n  const [exited, setExited] = useState(!inProp);\n\n  // TODO: I think this needs to be in an effect\n  if (inProp && exited) {\n    setExited(false);\n  }\n  const ref = useTransition({\n    in: !!inProp,\n    onTransition: options => {\n      const onFinish = () => {\n        if (options.isStale()) return;\n        if (options.in) {\n          onEntered == null ? void 0 : onEntered(options.element, options.initial);\n        } else {\n          setExited(true);\n          onExited == null ? void 0 : onExited(options.element);\n        }\n      };\n      Promise.resolve(transition(options)).then(onFinish, error => {\n        if (!options.in) setExited(true);\n        throw error;\n      });\n    }\n  });\n  const combinedRef = useMergedRefs(ref, children.ref);\n  return exited && !inProp ? null : /*#__PURE__*/cloneElement(children, {\n    ref: combinedRef\n  });\n}\nexport function renderTransition(component, runTransition, props) {\n  if (component) {\n    return /*#__PURE__*/_jsx(RTGTransition, Object.assign({}, props, {\n      component: component\n    }));\n  }\n  if (runTransition) {\n    return /*#__PURE__*/_jsx(ImperativeTransition, Object.assign({}, props, {\n      transition: runTransition\n    }));\n  }\n  return /*#__PURE__*/_jsx(NoopTransition, Object.assign({}, props));\n}","import * as React from 'react';\nimport ReactDOM from 'react-dom';\nimport useCallbackRef from '@restart/hooks/useCallbackRef';\nimport useMergedRefs from '@restart/hooks/useMergedRefs';\nimport { useState } from 'react';\nimport usePopper from './usePopper';\nimport useRootClose from './useRootClose';\nimport useWaitForDOMRef from './useWaitForDOMRef';\nimport mergeOptionsWithPopperConfig from './mergeOptionsWithPopperConfig';\nimport { renderTransition } from './ImperativeTransition';\n/**\n * Built on top of `Popper.js`, the overlay component is\n * great for custom tooltip overlays.\n */\nconst Overlay = /*#__PURE__*/React.forwardRef((props, outerRef) => {\n  const {\n    flip,\n    offset,\n    placement,\n    containerPadding,\n    popperConfig = {},\n    transition: Transition,\n    runTransition\n  } = props;\n  const [rootElement, attachRef] = useCallbackRef();\n  const [arrowElement, attachArrowRef] = useCallbackRef();\n  const mergedRef = useMergedRefs(attachRef, outerRef);\n  const container = useWaitForDOMRef(props.container);\n  const target = useWaitForDOMRef(props.target);\n  const [exited, setExited] = useState(!props.show);\n  const popper = usePopper(target, rootElement, mergeOptionsWithPopperConfig({\n    placement,\n    enableEvents: !!props.show,\n    containerPadding: containerPadding || 5,\n    flip,\n    offset,\n    arrowElement,\n    popperConfig\n  }));\n\n  // TODO: I think this needs to be in an effect\n  if (props.show && exited) {\n    setExited(false);\n  }\n  const handleHidden = (...args) => {\n    setExited(true);\n    if (props.onExited) {\n      props.onExited(...args);\n    }\n  };\n\n  // Don't un-render the overlay while it's transitioning out.\n  const mountOverlay = props.show || !exited;\n  useRootClose(rootElement, props.onHide, {\n    disabled: !props.rootClose || props.rootCloseDisabled,\n    clickTrigger: props.rootCloseEvent\n  });\n  if (!mountOverlay) {\n    // Don't bother showing anything if we don't have to.\n    return null;\n  }\n  const {\n    onExit,\n    onExiting,\n    onEnter,\n    onEntering,\n    onEntered\n  } = props;\n  let child = props.children(Object.assign({}, popper.attributes.popper, {\n    style: popper.styles.popper,\n    ref: mergedRef\n  }), {\n    popper,\n    placement,\n    show: !!props.show,\n    arrowProps: Object.assign({}, popper.attributes.arrow, {\n      style: popper.styles.arrow,\n      ref: attachArrowRef\n    })\n  });\n  child = renderTransition(Transition, runTransition, {\n    in: !!props.show,\n    appear: true,\n    mountOnEnter: true,\n    unmountOnExit: true,\n    children: child,\n    onExit,\n    onExiting,\n    onExited: handleHidden,\n    onEnter,\n    onEntering,\n    onEntered\n  });\n  return container ? /*#__PURE__*/ReactDOM.createPortal(child, container) : null;\n});\nOverlay.displayName = 'Overlay';\nexport default Overlay;","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst PopoverHeader = /*#__PURE__*/React.forwardRef(({\n  className,\n  bsPrefix,\n  as: Component = 'div',\n  ...props\n}, ref) => {\n  bsPrefix = useBootstrapPrefix(bsPrefix, 'popover-header');\n  return /*#__PURE__*/_jsx(Component, {\n    ref: ref,\n    className: classNames(className, bsPrefix),\n    ...props\n  });\n});\nPopoverHeader.displayName = 'PopoverHeader';\nexport default PopoverHeader;","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst PopoverBody = /*#__PURE__*/React.forwardRef(({\n  className,\n  bsPrefix,\n  as: Component = 'div',\n  ...props\n}, ref) => {\n  bsPrefix = useBootstrapPrefix(bsPrefix, 'popover-body');\n  return /*#__PURE__*/_jsx(Component, {\n    ref: ref,\n    className: classNames(className, bsPrefix),\n    ...props\n  });\n});\nPopoverBody.displayName = 'PopoverBody';\nexport default PopoverBody;","import * as React from 'react';\nexport class BsPrefixComponent extends React.Component {}\n\n// Need to use this instead of typeof Component to get proper type checking.\n\nexport function getOverlayDirection(placement, isRTL) {\n  let bsDirection = placement;\n  if (placement === 'left') {\n    bsDirection = isRTL ? 'end' : 'start';\n  } else if (placement === 'right') {\n    bsDirection = isRTL ? 'start' : 'end';\n  }\n  return bsDirection;\n}","export default function getInitialPopperStyles(position = 'absolute') {\n  return {\n    position,\n    top: '0',\n    left: '0',\n    opacity: '0',\n    pointerEvents: 'none'\n  };\n}","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix, useIsRTL } from './ThemeProvider';\nimport PopoverHeader from './PopoverHeader';\nimport PopoverBody from './PopoverBody';\nimport { getOverlayDirection } from './helpers';\nimport getInitialPopperStyles from './getInitialPopperStyles';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst Popover = /*#__PURE__*/React.forwardRef(({\n  bsPrefix,\n  placement = 'right',\n  className,\n  style,\n  children,\n  body,\n  arrowProps,\n  hasDoneInitialMeasure,\n  popper,\n  show,\n  ...props\n}, ref) => {\n  const decoratedBsPrefix = useBootstrapPrefix(bsPrefix, 'popover');\n  const isRTL = useIsRTL();\n  const [primaryPlacement] = (placement == null ? void 0 : placement.split('-')) || [];\n  const bsDirection = getOverlayDirection(primaryPlacement, isRTL);\n  let computedStyle = style;\n  if (show && !hasDoneInitialMeasure) {\n    computedStyle = {\n      ...style,\n      ...getInitialPopperStyles(popper == null ? void 0 : popper.strategy)\n    };\n  }\n  return /*#__PURE__*/_jsxs(\"div\", {\n    ref: ref,\n    role: \"tooltip\",\n    style: computedStyle,\n    \"x-placement\": primaryPlacement,\n    className: classNames(className, decoratedBsPrefix, primaryPlacement && `bs-popover-${bsDirection}`),\n    ...props,\n    children: [/*#__PURE__*/_jsx(\"div\", {\n      className: \"popover-arrow\",\n      ...arrowProps\n    }), body ? /*#__PURE__*/_jsx(PopoverBody, {\n      children: children\n    }) : children]\n  });\n});\nexport default Object.assign(Popover, {\n  Header: PopoverHeader,\n  Body: PopoverBody,\n  // Default popover offset.\n  // https://github.com/twbs/bootstrap/blob/5c32767e0e0dbac2d934bcdee03719a65d3f1187/js/src/popover.js#L28\n  POPPER_OFFSET: [0, 8]\n});","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix, useIsRTL } from './ThemeProvider';\nimport { getOverlayDirection } from './helpers';\nimport getInitialPopperStyles from './getInitialPopperStyles';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst Tooltip = /*#__PURE__*/React.forwardRef(({\n  bsPrefix,\n  placement = 'right',\n  className,\n  style,\n  children,\n  arrowProps,\n  hasDoneInitialMeasure,\n  popper,\n  show,\n  ...props\n}, ref) => {\n  bsPrefix = useBootstrapPrefix(bsPrefix, 'tooltip');\n  const isRTL = useIsRTL();\n  const [primaryPlacement] = (placement == null ? void 0 : placement.split('-')) || [];\n  const bsDirection = getOverlayDirection(primaryPlacement, isRTL);\n  let computedStyle = style;\n  if (show && !hasDoneInitialMeasure) {\n    computedStyle = {\n      ...style,\n      ...getInitialPopperStyles(popper == null ? void 0 : popper.strategy)\n    };\n  }\n  return /*#__PURE__*/_jsxs(\"div\", {\n    ref: ref,\n    style: computedStyle,\n    role: \"tooltip\",\n    \"x-placement\": primaryPlacement,\n    className: classNames(className, bsPrefix, `bs-tooltip-${bsDirection}`),\n    ...props,\n    children: [/*#__PURE__*/_jsx(\"div\", {\n      className: \"tooltip-arrow\",\n      ...arrowProps\n    }), /*#__PURE__*/_jsx(\"div\", {\n      className: `${bsPrefix}-inner`,\n      children: children\n    })]\n  });\n});\nTooltip.displayName = 'Tooltip';\nexport default Object.assign(Tooltip, {\n  // Default tooltip offset.\n  // https://github.com/twbs/bootstrap/blob/beca2a6c7f6bc88b6449339fc76edcda832c59e5/js/src/tooltip.js#L65\n  TOOLTIP_OFFSET: [0, 6]\n});","export default {\n  disabled: false\n};","import React from 'react';\nexport default React.createContext(null);","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport config from './config';\nimport { timeoutsShape } from './utils/PropTypes';\nimport TransitionGroupContext from './TransitionGroupContext';\nimport { forceReflow } from './utils/reflow';\nexport var UNMOUNTED = 'unmounted';\nexport var EXITED = 'exited';\nexport var ENTERING = 'entering';\nexport var ENTERED = 'entered';\nexport var EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n *   transition: `opacity ${duration}ms ease-in-out`,\n *   opacity: 0,\n * }\n *\n * const transitionStyles = {\n *   entering: { opacity: 1 },\n *   entered:  { opacity: 1 },\n *   exiting:  { opacity: 0 },\n *   exited:  { opacity: 0 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n *   <Transition in={inProp} timeout={duration}>\n *     {state => (\n *       <div style={{\n *         ...defaultStyle,\n *         ...transitionStyles[state]\n *       }}>\n *         I'm a fade Transition!\n *       </div>\n *     )}\n *   </Transition>\n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n *  - `'entering'`\n *  - `'entered'`\n *  - `'exiting'`\n *  - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n *   const [inProp, setInProp] = useState(false);\n *   return (\n *     <div>\n *       <Transition in={inProp} timeout={500}>\n *         {state => (\n *           // ...\n *         )}\n *       </Transition>\n *       <button onClick={() => setInProp(true)}>\n *         Click to Enter\n *       </button>\n *     </div>\n *   );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nvar Transition = /*#__PURE__*/function (_React$Component) {\n  _inheritsLoose(Transition, _React$Component);\n\n  function Transition(props, context) {\n    var _this;\n\n    _this = _React$Component.call(this, props, context) || this;\n    var parentGroup = context; // In the context of a TransitionGroup all enters are really appears\n\n    var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n    var initialStatus;\n    _this.appearStatus = null;\n\n    if (props.in) {\n      if (appear) {\n        initialStatus = EXITED;\n        _this.appearStatus = ENTERING;\n      } else {\n        initialStatus = ENTERED;\n      }\n    } else {\n      if (props.unmountOnExit || props.mountOnEnter) {\n        initialStatus = UNMOUNTED;\n      } else {\n        initialStatus = EXITED;\n      }\n    }\n\n    _this.state = {\n      status: initialStatus\n    };\n    _this.nextCallback = null;\n    return _this;\n  }\n\n  Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n    var nextIn = _ref.in;\n\n    if (nextIn && prevState.status === UNMOUNTED) {\n      return {\n        status: EXITED\n      };\n    }\n\n    return null;\n  } // getSnapshotBeforeUpdate(prevProps) {\n  //   let nextStatus = null\n  //   if (prevProps !== this.props) {\n  //     const { status } = this.state\n  //     if (this.props.in) {\n  //       if (status !== ENTERING && status !== ENTERED) {\n  //         nextStatus = ENTERING\n  //       }\n  //     } else {\n  //       if (status === ENTERING || status === ENTERED) {\n  //         nextStatus = EXITING\n  //       }\n  //     }\n  //   }\n  //   return { nextStatus }\n  // }\n  ;\n\n  var _proto = Transition.prototype;\n\n  _proto.componentDidMount = function componentDidMount() {\n    this.updateStatus(true, this.appearStatus);\n  };\n\n  _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n    var nextStatus = null;\n\n    if (prevProps !== this.props) {\n      var status = this.state.status;\n\n      if (this.props.in) {\n        if (status !== ENTERING && status !== ENTERED) {\n          nextStatus = ENTERING;\n        }\n      } else {\n        if (status === ENTERING || status === ENTERED) {\n          nextStatus = EXITING;\n        }\n      }\n    }\n\n    this.updateStatus(false, nextStatus);\n  };\n\n  _proto.componentWillUnmount = function componentWillUnmount() {\n    this.cancelNextCallback();\n  };\n\n  _proto.getTimeouts = function getTimeouts() {\n    var timeout = this.props.timeout;\n    var exit, enter, appear;\n    exit = enter = appear = timeout;\n\n    if (timeout != null && typeof timeout !== 'number') {\n      exit = timeout.exit;\n      enter = timeout.enter; // TODO: remove fallback for next major\n\n      appear = timeout.appear !== undefined ? timeout.appear : enter;\n    }\n\n    return {\n      exit: exit,\n      enter: enter,\n      appear: appear\n    };\n  };\n\n  _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n    if (mounting === void 0) {\n      mounting = false;\n    }\n\n    if (nextStatus !== null) {\n      // nextStatus will always be ENTERING or EXITING.\n      this.cancelNextCallback();\n\n      if (nextStatus === ENTERING) {\n        if (this.props.unmountOnExit || this.props.mountOnEnter) {\n          var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this); // https://github.com/reactjs/react-transition-group/pull/749\n          // With unmountOnExit or mountOnEnter, the enter animation should happen at the transition between `exited` and `entering`.\n          // To make the animation happen,  we have to separate each rendering and avoid being processed as batched.\n\n          if (node) forceReflow(node);\n        }\n\n        this.performEnter(mounting);\n      } else {\n        this.performExit();\n      }\n    } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n      this.setState({\n        status: UNMOUNTED\n      });\n    }\n  };\n\n  _proto.performEnter = function performEnter(mounting) {\n    var _this2 = this;\n\n    var enter = this.props.enter;\n    var appearing = this.context ? this.context.isMounting : mounting;\n\n    var _ref2 = this.props.nodeRef ? [appearing] : [ReactDOM.findDOMNode(this), appearing],\n        maybeNode = _ref2[0],\n        maybeAppearing = _ref2[1];\n\n    var timeouts = this.getTimeouts();\n    var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n    // if we are mounting and running this it means appear _must_ be set\n\n    if (!mounting && !enter || config.disabled) {\n      this.safeSetState({\n        status: ENTERED\n      }, function () {\n        _this2.props.onEntered(maybeNode);\n      });\n      return;\n    }\n\n    this.props.onEnter(maybeNode, maybeAppearing);\n    this.safeSetState({\n      status: ENTERING\n    }, function () {\n      _this2.props.onEntering(maybeNode, maybeAppearing);\n\n      _this2.onTransitionEnd(enterTimeout, function () {\n        _this2.safeSetState({\n          status: ENTERED\n        }, function () {\n          _this2.props.onEntered(maybeNode, maybeAppearing);\n        });\n      });\n    });\n  };\n\n  _proto.performExit = function performExit() {\n    var _this3 = this;\n\n    var exit = this.props.exit;\n    var timeouts = this.getTimeouts();\n    var maybeNode = this.props.nodeRef ? undefined : ReactDOM.findDOMNode(this); // no exit animation skip right to EXITED\n\n    if (!exit || config.disabled) {\n      this.safeSetState({\n        status: EXITED\n      }, function () {\n        _this3.props.onExited(maybeNode);\n      });\n      return;\n    }\n\n    this.props.onExit(maybeNode);\n    this.safeSetState({\n      status: EXITING\n    }, function () {\n      _this3.props.onExiting(maybeNode);\n\n      _this3.onTransitionEnd(timeouts.exit, function () {\n        _this3.safeSetState({\n          status: EXITED\n        }, function () {\n          _this3.props.onExited(maybeNode);\n        });\n      });\n    });\n  };\n\n  _proto.cancelNextCallback = function cancelNextCallback() {\n    if (this.nextCallback !== null) {\n      this.nextCallback.cancel();\n      this.nextCallback = null;\n    }\n  };\n\n  _proto.safeSetState = function safeSetState(nextState, callback) {\n    // This shouldn't be necessary, but there are weird race conditions with\n    // setState callbacks and unmounting in testing, so always make sure that\n    // we can cancel any pending setState callbacks after we unmount.\n    callback = this.setNextCallback(callback);\n    this.setState(nextState, callback);\n  };\n\n  _proto.setNextCallback = function setNextCallback(callback) {\n    var _this4 = this;\n\n    var active = true;\n\n    this.nextCallback = function (event) {\n      if (active) {\n        active = false;\n        _this4.nextCallback = null;\n        callback(event);\n      }\n    };\n\n    this.nextCallback.cancel = function () {\n      active = false;\n    };\n\n    return this.nextCallback;\n  };\n\n  _proto.onTransitionEnd = function onTransitionEnd(timeout, handler) {\n    this.setNextCallback(handler);\n    var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this);\n    var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n    if (!node || doesNotHaveTimeoutOrListener) {\n      setTimeout(this.nextCallback, 0);\n      return;\n    }\n\n    if (this.props.addEndListener) {\n      var _ref3 = this.props.nodeRef ? [this.nextCallback] : [node, this.nextCallback],\n          maybeNode = _ref3[0],\n          maybeNextCallback = _ref3[1];\n\n      this.props.addEndListener(maybeNode, maybeNextCallback);\n    }\n\n    if (timeout != null) {\n      setTimeout(this.nextCallback, timeout);\n    }\n  };\n\n  _proto.render = function render() {\n    var status = this.state.status;\n\n    if (status === UNMOUNTED) {\n      return null;\n    }\n\n    var _this$props = this.props,\n        children = _this$props.children,\n        _in = _this$props.in,\n        _mountOnEnter = _this$props.mountOnEnter,\n        _unmountOnExit = _this$props.unmountOnExit,\n        _appear = _this$props.appear,\n        _enter = _this$props.enter,\n        _exit = _this$props.exit,\n        _timeout = _this$props.timeout,\n        _addEndListener = _this$props.addEndListener,\n        _onEnter = _this$props.onEnter,\n        _onEntering = _this$props.onEntering,\n        _onEntered = _this$props.onEntered,\n        _onExit = _this$props.onExit,\n        _onExiting = _this$props.onExiting,\n        _onExited = _this$props.onExited,\n        _nodeRef = _this$props.nodeRef,\n        childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"in\", \"mountOnEnter\", \"unmountOnExit\", \"appear\", \"enter\", \"exit\", \"timeout\", \"addEndListener\", \"onEnter\", \"onEntering\", \"onEntered\", \"onExit\", \"onExiting\", \"onExited\", \"nodeRef\"]);\n\n    return (\n      /*#__PURE__*/\n      // allows for nested Transitions\n      React.createElement(TransitionGroupContext.Provider, {\n        value: null\n      }, typeof children === 'function' ? children(status, childProps) : React.cloneElement(React.Children.only(children), childProps))\n    );\n  };\n\n  return Transition;\n}(React.Component);\n\nTransition.contextType = TransitionGroupContext;\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * A React reference to DOM element that need to transition:\n   * https://stackoverflow.com/a/51127130/4671932\n   *\n   *   - When `nodeRef` prop is used, `node` is not passed to callback functions\n   *      (e.g. `onEnter`) because user already has direct access to the node.\n   *   - When changing `key` prop of `Transition` in a `TransitionGroup` a new\n   *     `nodeRef` need to be provided to `Transition` with changed `key` prop\n   *     (see\n   *     [test/CSSTransition-test.js](https://github.com/reactjs/react-transition-group/blob/13435f897b3ab71f6e19d724f145596f5910581c/test/CSSTransition-test.js#L362-L437)).\n   */\n  nodeRef: PropTypes.shape({\n    current: typeof Element === 'undefined' ? PropTypes.any : function (propValue, key, componentName, location, propFullName, secret) {\n      var value = propValue[key];\n      return PropTypes.instanceOf(value && 'ownerDocument' in value ? value.ownerDocument.defaultView.Element : Element)(propValue, key, componentName, location, propFullName, secret);\n    }\n  }),\n\n  /**\n   * A `function` child can be used instead of a React element. This function is\n   * called with the current transition status (`'entering'`, `'entered'`,\n   * `'exiting'`, `'exited'`), which can be used to apply context\n   * specific props to a component.\n   *\n   * ```jsx\n   * <Transition in={this.state.in} timeout={150}>\n   *   {state => (\n   *     <MyComponent className={`fade fade-${state}`} />\n   *   )}\n   * </Transition>\n   * ```\n   */\n  children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n  /**\n   * Show the component; triggers the enter or exit states\n   */\n  in: PropTypes.bool,\n\n  /**\n   * By default the child component is mounted immediately along with\n   * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n   * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n   * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n   */\n  mountOnEnter: PropTypes.bool,\n\n  /**\n   * By default the child component stays mounted after it reaches the `'exited'` state.\n   * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n   */\n  unmountOnExit: PropTypes.bool,\n\n  /**\n   * By default the child component does not perform the enter transition when\n   * it first mounts, regardless of the value of `in`. If you want this\n   * behavior, set both `appear` and `in` to `true`.\n   *\n   * > **Note**: there are no special appear states like `appearing`/`appeared`, this prop\n   * > only adds an additional enter transition. However, in the\n   * > `<CSSTransition>` component that first enter transition does result in\n   * > additional `.appear-*` classes, that way you can choose to style it\n   * > differently.\n   */\n  appear: PropTypes.bool,\n\n  /**\n   * Enable or disable enter transitions.\n   */\n  enter: PropTypes.bool,\n\n  /**\n   * Enable or disable exit transitions.\n   */\n  exit: PropTypes.bool,\n\n  /**\n   * The duration of the transition, in milliseconds.\n   * Required unless `addEndListener` is provided.\n   *\n   * You may specify a single timeout for all transitions:\n   *\n   * ```jsx\n   * timeout={500}\n   * ```\n   *\n   * or individually:\n   *\n   * ```jsx\n   * timeout={{\n   *  appear: 500,\n   *  enter: 300,\n   *  exit: 500,\n   * }}\n   * ```\n   *\n   * - `appear` defaults to the value of `enter`\n   * - `enter` defaults to `0`\n   * - `exit` defaults to `0`\n   *\n   * @type {number | { enter?: number, exit?: number, appear?: number }}\n   */\n  timeout: function timeout(props) {\n    var pt = timeoutsShape;\n    if (!props.addEndListener) pt = pt.isRequired;\n\n    for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n      args[_key - 1] = arguments[_key];\n    }\n\n    return pt.apply(void 0, [props].concat(args));\n  },\n\n  /**\n   * Add a custom transition end trigger. Called with the transitioning\n   * DOM node and a `done` callback. Allows for more fine grained transition end\n   * logic. Timeouts are still used as a fallback if provided.\n   *\n   * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n   *\n   * ```jsx\n   * addEndListener={(node, done) => {\n   *   // use the css transitionend event to mark the finish of a transition\n   *   node.addEventListener('transitionend', done, false);\n   * }}\n   * ```\n   */\n  addEndListener: PropTypes.func,\n\n  /**\n   * Callback fired before the \"entering\" status is applied. An extra parameter\n   * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n   *\n   * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n   *\n   * @type Function(node: HtmlElement, isAppearing: bool) -> void\n   */\n  onEnter: PropTypes.func,\n\n  /**\n   * Callback fired after the \"entering\" status is applied. An extra parameter\n   * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n   *\n   * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n   *\n   * @type Function(node: HtmlElement, isAppearing: bool)\n   */\n  onEntering: PropTypes.func,\n\n  /**\n   * Callback fired after the \"entered\" status is applied. An extra parameter\n   * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n   *\n   * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n   *\n   * @type Function(node: HtmlElement, isAppearing: bool) -> void\n   */\n  onEntered: PropTypes.func,\n\n  /**\n   * Callback fired before the \"exiting\" status is applied.\n   *\n   * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n   *\n   * @type Function(node: HtmlElement) -> void\n   */\n  onExit: PropTypes.func,\n\n  /**\n   * Callback fired after the \"exiting\" status is applied.\n   *\n   * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n   *\n   * @type Function(node: HtmlElement) -> void\n   */\n  onExiting: PropTypes.func,\n\n  /**\n   * Callback fired after the \"exited\" status is applied.\n   *\n   * **Note**: when `nodeRef` prop is passed, `node` is not passed\n   *\n   * @type Function(node: HtmlElement) -> void\n   */\n  onExited: PropTypes.func\n} : {}; // Name the function so it is clearer in the documentation\n\nfunction noop() {}\n\nTransition.defaultProps = {\n  in: false,\n  mountOnEnter: false,\n  unmountOnExit: false,\n  appear: false,\n  enter: true,\n  exit: true,\n  onEnter: noop,\n  onEntering: noop,\n  onEntered: noop,\n  onExit: noop,\n  onExiting: noop,\n  onExited: noop\n};\nTransition.UNMOUNTED = UNMOUNTED;\nTransition.EXITED = EXITED;\nTransition.ENTERING = ENTERING;\nTransition.ENTERED = ENTERED;\nTransition.EXITING = EXITING;\nexport default Transition;","export var forceReflow = function forceReflow(node) {\n  return node.scrollTop;\n};","import ownerWindow from './ownerWindow';\n/**\n * Returns one or all computed style properties of an element.\n * \n * @param node the element\n * @param psuedoElement the style property\n */\n\nexport default function getComputedStyle(node, psuedoElement) {\n  return ownerWindow(node).getComputedStyle(node, psuedoElement);\n}","import ownerDocument from './ownerDocument';\n/**\n * Returns the owner window of a given element.\n * \n * @param node the element\n */\n\nexport default function ownerWindow(node) {\n  var doc = ownerDocument(node);\n  return doc && doc.defaultView || window;\n}","var rUpper = /([A-Z])/g;\nexport default function hyphenate(string) {\n  return string.replace(rUpper, '-$1').toLowerCase();\n}","/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n * https://github.com/facebook/react/blob/2aeb8a2a6beb00617a4217f7f8284924fa2ad819/src/vendor/core/hyphenateStyleName.js\n */\nimport hyphenate from './hyphenate';\nvar msPattern = /^ms-/;\nexport default function hyphenateStyleName(string) {\n  return hyphenate(string).replace(msPattern, '-ms-');\n}","var supportedTransforms = /^((translate|rotate|scale)(X|Y|Z|3d)?|matrix(3d)?|perspective|skew(X|Y)?)$/i;\nexport default function isTransform(value) {\n  return !!(value && supportedTransforms.test(value));\n}","import getComputedStyle from './getComputedStyle';\nimport hyphenate from './hyphenateStyle';\nimport isTransform from './isTransform';\n\nfunction style(node, property) {\n  var css = '';\n  var transforms = '';\n\n  if (typeof property === 'string') {\n    return node.style.getPropertyValue(hyphenate(property)) || getComputedStyle(node).getPropertyValue(hyphenate(property));\n  }\n\n  Object.keys(property).forEach(function (key) {\n    var value = property[key];\n\n    if (!value && value !== 0) {\n      node.style.removeProperty(hyphenate(key));\n    } else if (isTransform(key)) {\n      transforms += key + \"(\" + value + \") \";\n    } else {\n      css += hyphenate(key) + \": \" + value + \";\";\n    }\n  });\n\n  if (transforms) {\n    css += \"transform: \" + transforms + \";\";\n  }\n\n  node.style.cssText += \";\" + css;\n}\n\nexport default style;","import css from './css';\nimport listen from './listen';\nimport triggerEvent from './triggerEvent';\n\nfunction parseDuration(node) {\n  var str = css(node, 'transitionDuration') || '';\n  var mult = str.indexOf('ms') === -1 ? 1000 : 1;\n  return parseFloat(str) * mult;\n}\n\nfunction emulateTransitionEnd(element, duration, padding) {\n  if (padding === void 0) {\n    padding = 5;\n  }\n\n  var called = false;\n  var handle = setTimeout(function () {\n    if (!called) triggerEvent(element, 'transitionend', true);\n  }, duration + padding);\n  var remove = listen(element, 'transitionend', function () {\n    called = true;\n  }, {\n    once: true\n  });\n  return function () {\n    clearTimeout(handle);\n    remove();\n  };\n}\n\nexport default function transitionEnd(element, handler, duration, padding) {\n  if (duration == null) duration = parseDuration(element) || 0;\n  var removeEmulate = emulateTransitionEnd(element, duration, padding);\n  var remove = listen(element, 'transitionend', handler);\n  return function () {\n    removeEmulate();\n    remove();\n  };\n}","/**\n * Triggers an event on a given element.\n * \n * @param node the element\n * @param eventName the event name to trigger\n * @param bubbles whether the event should bubble up\n * @param cancelable whether the event should be cancelable\n */\nexport default function triggerEvent(node, eventName, bubbles, cancelable) {\n  if (bubbles === void 0) {\n    bubbles = false;\n  }\n\n  if (cancelable === void 0) {\n    cancelable = true;\n  }\n\n  if (node) {\n    var event = document.createEvent('HTMLEvents');\n    event.initEvent(eventName, bubbles, cancelable);\n    node.dispatchEvent(event);\n  }\n}","import css from 'dom-helpers/css';\nimport transitionEnd from 'dom-helpers/transitionEnd';\nfunction parseDuration(node, property) {\n  const str = css(node, property) || '';\n  const mult = str.indexOf('ms') === -1 ? 1000 : 1;\n  return parseFloat(str) * mult;\n}\nexport default function transitionEndListener(element, handler) {\n  const duration = parseDuration(element, 'transitionDuration');\n  const delay = parseDuration(element, 'transitionDelay');\n  const remove = transitionEnd(element, e => {\n    if (e.target === element) {\n      remove();\n      handler(e);\n    }\n  }, duration + delay);\n}","import ReactDOM from 'react-dom';\nexport default function safeFindDOMNode(componentOrElement) {\n  if (componentOrElement && 'setState' in componentOrElement) {\n    return ReactDOM.findDOMNode(componentOrElement);\n  }\n  return componentOrElement != null ? componentOrElement : null;\n}","\"use client\";\n\nimport React, { useCallback, useRef } from 'react';\nimport Transition from 'react-transition-group/Transition';\nimport useMergedRefs from '@restart/hooks/useMergedRefs';\nimport safeFindDOMNode from './safeFindDOMNode';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n// Normalizes Transition callbacks when nodeRef is used.\nconst TransitionWrapper = /*#__PURE__*/React.forwardRef(({\n  onEnter,\n  onEntering,\n  onEntered,\n  onExit,\n  onExiting,\n  onExited,\n  addEndListener,\n  children,\n  childRef,\n  ...props\n}, ref) => {\n  const nodeRef = useRef(null);\n  const mergedRef = useMergedRefs(nodeRef, childRef);\n  const attachRef = r => {\n    mergedRef(safeFindDOMNode(r));\n  };\n  const normalize = callback => param => {\n    if (callback && nodeRef.current) {\n      callback(nodeRef.current, param);\n    }\n  };\n\n  /* eslint-disable react-hooks/exhaustive-deps */\n  const handleEnter = useCallback(normalize(onEnter), [onEnter]);\n  const handleEntering = useCallback(normalize(onEntering), [onEntering]);\n  const handleEntered = useCallback(normalize(onEntered), [onEntered]);\n  const handleExit = useCallback(normalize(onExit), [onExit]);\n  const handleExiting = useCallback(normalize(onExiting), [onExiting]);\n  const handleExited = useCallback(normalize(onExited), [onExited]);\n  const handleAddEndListener = useCallback(normalize(addEndListener), [addEndListener]);\n  /* eslint-enable react-hooks/exhaustive-deps */\n\n  return /*#__PURE__*/_jsx(Transition, {\n    ref: ref,\n    ...props,\n    onEnter: handleEnter,\n    onEntered: handleEntered,\n    onEntering: handleEntering,\n    onExit: handleExit,\n    onExited: handleExited,\n    onExiting: handleExiting,\n    addEndListener: handleAddEndListener,\n    nodeRef: nodeRef,\n    children: typeof children === 'function' ? (status, innerProps) =>\n    // TODO: Types for RTG missing innerProps, so need to cast.\n    children(status, {\n      ...innerProps,\n      ref: attachRef\n    }) : /*#__PURE__*/React.cloneElement(children, {\n      ref: attachRef\n    })\n  });\n});\nexport default TransitionWrapper;","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useCallback } from 'react';\nimport { ENTERED, ENTERING } from 'react-transition-group/Transition';\nimport transitionEndListener from './transitionEndListener';\nimport triggerBrowserReflow from './triggerBrowserReflow';\nimport TransitionWrapper from './TransitionWrapper';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst fadeStyles = {\n  [ENTERING]: 'show',\n  [ENTERED]: 'show'\n};\nconst Fade = /*#__PURE__*/React.forwardRef(({\n  className,\n  children,\n  transitionClasses = {},\n  onEnter,\n  ...rest\n}, ref) => {\n  const props = {\n    in: false,\n    timeout: 300,\n    mountOnEnter: false,\n    unmountOnExit: false,\n    appear: false,\n    ...rest\n  };\n  const handleEnter = useCallback((node, isAppearing) => {\n    triggerBrowserReflow(node);\n    onEnter == null || onEnter(node, isAppearing);\n  }, [onEnter]);\n  return /*#__PURE__*/_jsx(TransitionWrapper, {\n    ref: ref,\n    addEndListener: transitionEndListener,\n    ...props,\n    onEnter: handleEnter,\n    childRef: children.ref,\n    children: (status, innerProps) => /*#__PURE__*/React.cloneElement(children, {\n      ...innerProps,\n      className: classNames('fade', className, children.props.className, fadeStyles[status], transitionClasses[status])\n    })\n  });\n});\nFade.displayName = 'Fade';\nexport default Fade;","// reading a dimension prop will cause the browser to recalculate,\n// which will let our animations work\nexport default function triggerBrowserReflow(node) {\n  // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n  node.offsetHeight;\n}","\"use client\";\n\nimport * as React from 'react';\nimport { useEffect, useRef, useState } from 'react';\nimport classNames from 'classnames';\nimport BaseOverlay from '@restart/ui/Overlay';\nimport useEventCallback from '@restart/hooks/useEventCallback';\nimport useIsomorphicEffect from '@restart/hooks/useIsomorphicEffect';\nimport useMergedRefs from '@restart/hooks/useMergedRefs';\nimport useOverlayOffset from './useOverlayOffset';\nimport Fade from './Fade';\nimport safeFindDOMNode from './safeFindDOMNode';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction wrapRefs(props, arrowProps) {\n  const {\n    ref\n  } = props;\n  const {\n    ref: aRef\n  } = arrowProps;\n  props.ref = ref.__wrapped || (ref.__wrapped = r => ref(safeFindDOMNode(r)));\n  arrowProps.ref = aRef.__wrapped || (aRef.__wrapped = r => aRef(safeFindDOMNode(r)));\n}\nconst Overlay = /*#__PURE__*/React.forwardRef(({\n  children: overlay,\n  transition = Fade,\n  popperConfig = {},\n  rootClose = false,\n  placement = 'top',\n  show: outerShow = false,\n  ...outerProps\n}, outerRef) => {\n  const popperRef = useRef({});\n  const [firstRenderedState, setFirstRenderedState] = useState(null);\n  const [ref, modifiers] = useOverlayOffset(outerProps.offset);\n  const mergedRef = useMergedRefs(outerRef, ref);\n  const actualTransition = transition === true ? Fade : transition || undefined;\n  const handleFirstUpdate = useEventCallback(state => {\n    setFirstRenderedState(state);\n    popperConfig == null || popperConfig.onFirstUpdate == null || popperConfig.onFirstUpdate(state);\n  });\n  useIsomorphicEffect(() => {\n    if (firstRenderedState && outerProps.target) {\n      // Must wait for target element to resolve before updating popper.\n      popperRef.current.scheduleUpdate == null || popperRef.current.scheduleUpdate();\n    }\n  }, [firstRenderedState, outerProps.target]);\n  useEffect(() => {\n    if (!outerShow) {\n      setFirstRenderedState(null);\n    }\n  }, [outerShow]);\n  return /*#__PURE__*/_jsx(BaseOverlay, {\n    ...outerProps,\n    ref: mergedRef,\n    popperConfig: {\n      ...popperConfig,\n      modifiers: modifiers.concat(popperConfig.modifiers || []),\n      onFirstUpdate: handleFirstUpdate\n    },\n    transition: actualTransition,\n    rootClose: rootClose,\n    placement: placement,\n    show: outerShow,\n    children: (overlayProps, {\n      arrowProps,\n      popper: popperObj,\n      show\n    }) => {\n      var _popperObj$state;\n      wrapRefs(overlayProps, arrowProps);\n      // Need to get placement from popper object, handling case when overlay is flipped using 'flip' prop\n      const updatedPlacement = popperObj == null ? void 0 : popperObj.placement;\n      const popper = Object.assign(popperRef.current, {\n        state: popperObj == null ? void 0 : popperObj.state,\n        scheduleUpdate: popperObj == null ? void 0 : popperObj.update,\n        placement: updatedPlacement,\n        outOfBoundaries: (popperObj == null || (_popperObj$state = popperObj.state) == null || (_popperObj$state = _popperObj$state.modifiersData.hide) == null ? void 0 : _popperObj$state.isReferenceHidden) || false,\n        strategy: popperConfig.strategy\n      });\n      const hasDoneInitialMeasure = !!firstRenderedState;\n      if (typeof overlay === 'function') return overlay({\n        ...overlayProps,\n        placement: updatedPlacement,\n        show,\n        ...(!transition && show && {\n          className: 'show'\n        }),\n        popper,\n        arrowProps,\n        hasDoneInitialMeasure\n      });\n      return /*#__PURE__*/React.cloneElement(overlay, {\n        ...overlayProps,\n        placement: updatedPlacement,\n        arrowProps,\n        popper,\n        hasDoneInitialMeasure,\n        className: classNames(overlay.props.className, !transition && show && 'show'),\n        style: {\n          ...overlay.props.style,\n          ...overlayProps.style\n        }\n      });\n    }\n  });\n});\nOverlay.displayName = 'Overlay';\nexport default Overlay;","\"use client\";\n\nimport { useMemo, useRef } from 'react';\nimport hasClass from 'dom-helpers/hasClass';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport Popover from './Popover';\nimport Tooltip from './Tooltip';\n\n// This is meant for internal use.\n// This applies a custom offset to the overlay if it's a popover or tooltip.\nexport default function useOverlayOffset(customOffset) {\n  const overlayRef = useRef(null);\n  const popoverClass = useBootstrapPrefix(undefined, 'popover');\n  const tooltipClass = useBootstrapPrefix(undefined, 'tooltip');\n  const offset = useMemo(() => ({\n    name: 'offset',\n    options: {\n      offset: () => {\n        if (customOffset) {\n          return customOffset;\n        }\n        if (overlayRef.current) {\n          if (hasClass(overlayRef.current, popoverClass)) {\n            return Popover.POPPER_OFFSET;\n          }\n          if (hasClass(overlayRef.current, tooltipClass)) {\n            return Tooltip.TOOLTIP_OFFSET;\n          }\n        }\n        return [0, 0];\n      }\n    }\n  }), [customOffset, popoverClass, tooltipClass]);\n  return [overlayRef, [offset]];\n}","\"use client\";\n\nimport * as React from 'react';\nconst SizeContext = /*#__PURE__*/React.createContext(undefined);\nexport const SizeContextProvider = _ref => {\n  let {\n    children,\n    size\n  } = _ref;\n  const originSize = React.useContext(SizeContext);\n  return /*#__PURE__*/React.createElement(SizeContext.Provider, {\n    value: size || originSize\n  }, children);\n};\nexport default SizeContext;","\"use strict\";\n/* eslint-disable */\n// @ts-nocheck\n!(function (t, n) {\n    typeof exports === \"object\"\n        ? (module.exports = exports = n())\n        : typeof define === \"function\" && define.amd\n            ? define([], n)\n            : (t.CryptoJS = n());\n})(this, function () {\n    var t = t ||\n        (function (f) {\n            var t;\n            if ((\"undefined\" !== typeof window && window.crypto && (t = window.crypto),\n                !t &&\n                    \"undefined\" !== typeof window &&\n                    window.msCrypto &&\n                    (t = window.msCrypto),\n                !t &&\n                    \"undefined\" !== typeof global &&\n                    global.crypto &&\n                    (t = global.crypto),\n                !t && typeof require === \"function\"))\n                try {\n                    // t = require(\"crypto\");\n                }\n                catch (t) { }\n            function i() {\n                if (t) {\n                    if (typeof t.getRandomValues === \"function\")\n                        try {\n                            return t.getRandomValues(new Uint32Array(1))[0];\n                        }\n                        catch (t) { }\n                    if (typeof t.randomBytes === \"function\")\n                        try {\n                            return t.randomBytes(4).readInt32LE();\n                        }\n                        catch (t) { }\n                }\n                throw new Error(\"Native crypto module could not be used to get secure random number.\");\n            }\n            var e = Object.create ||\n                function (t) {\n                    var n;\n                    return (r.prototype = t), (n = new r()), (r.prototype = null), n;\n                };\n            function r() { }\n            var n = {};\n            var o = (n.lib = {});\n            var s = (o.Base = {\n                extend: function (t) {\n                    var n = e(this);\n                    return (t && n.mixIn(t),\n                        (n.hasOwnProperty(\"init\") && this.init !== n.init) ||\n                            (n.init = function () {\n                                n.$super.init.apply(this, arguments);\n                            }),\n                        ((n.init.prototype = n).$super = this),\n                        n);\n                },\n                create: function () {\n                    var t = this.extend();\n                    return t.init.apply(t, arguments), t;\n                },\n                init: function () { },\n                mixIn: function (t) {\n                    for (var n_1 in t)\n                        t.hasOwnProperty(n_1) && (this[n_1] = t[n_1]);\n                    t.hasOwnProperty(\"toString\") && (this.toString = t.toString);\n                },\n                clone: function () {\n                    return this.init.prototype.extend(this);\n                }\n            });\n            var p = (o.WordArray = s.extend({\n                init: function (t, n) {\n                    (t = this.words = t || []),\n                        (this.sigBytes = null != n ? n : 4 * t.length);\n                },\n                toString: function (t) {\n                    return (t || c).stringify(this);\n                },\n                concat: function (t) {\n                    var n = this.words;\n                    var e = t.words;\n                    var i = this.sigBytes;\n                    var r = t.sigBytes;\n                    if ((this.clamp(), i % 4))\n                        for (var o = 0; o < r; o++) {\n                            var s_1 = (e[o >>> 2] >>> (24 - (o % 4) * 8)) & 255;\n                            n[(i + o) >>> 2] |= s_1 << (24 - ((i + o) % 4) * 8);\n                        }\n                    else\n                        for (o = 0; o < r; o += 4)\n                            n[(i + o) >>> 2] = e[o >>> 2];\n                    return (this.sigBytes += r), this;\n                },\n                clamp: function () {\n                    var t = this.words;\n                    var n = this.sigBytes;\n                    (t[n >>> 2] &= 4294967295 << (32 - (n % 4) * 8)),\n                        (t.length = f.ceil(n / 4));\n                },\n                clone: function () {\n                    var t = s.clone.call(this);\n                    return (t.words = this.words.slice(0)), t;\n                },\n                random: function (t) {\n                    for (var n = [], e = 0; e < t; e += 4)\n                        n.push(i());\n                    return new p.init(n, t);\n                }\n            }));\n            var a = (n.enc = {});\n            var c = (a.Hex = {\n                stringify: function (t) {\n                    for (var n = t.words, e = t.sigBytes, i = [], r = 0; r < e; r++) {\n                        var o_1 = (n[r >>> 2] >>> (24 - (r % 4) * 8)) & 255;\n                        i.push((o_1 >>> 4).toString(16)), i.push((15 & o_1).toString(16));\n                    }\n                    return i.join(\"\");\n                },\n                parse: function (t) {\n                    for (var n = t.length, e = [], i = 0; i < n; i += 2)\n                        e[i >>> 3] |= parseInt(t.substr(i, 2), 16) << (24 - (i % 8) * 4);\n                    return new p.init(e, n / 2);\n                }\n            });\n            var u = (a.Latin1 = {\n                stringify: function (t) {\n                    for (var n = t.words, e = t.sigBytes, i = [], r = 0; r < e; r++) {\n                        var o_2 = (n[r >>> 2] >>> (24 - (r % 4) * 8)) & 255;\n                        i.push(String.fromCharCode(o_2));\n                    }\n                    return i.join(\"\");\n                },\n                parse: function (t) {\n                    for (var n = t.length, e = [], i = 0; i < n; i++)\n                        e[i >>> 2] |= (255 & t.charCodeAt(i)) << (24 - (i % 4) * 8);\n                    return new p.init(e, n);\n                }\n            });\n            var d = (a.Utf8 = {\n                stringify: function (t) {\n                    try {\n                        return decodeURIComponent(escape(u.stringify(t)));\n                    }\n                    catch (t) {\n                        throw new Error(\"Malformed UTF-8 data\");\n                    }\n                },\n                parse: function (t) {\n                    return u.parse(unescape(encodeURIComponent(t)));\n                }\n            });\n            var h = (o.BufferedBlockAlgorithm = s.extend({\n                reset: function () {\n                    (this._data = new p.init()), (this._nDataBytes = 0);\n                },\n                _append: function (t) {\n                    typeof t === \"string\" && (t = d.parse(t)),\n                        this._data.concat(t),\n                        (this._nDataBytes += t.sigBytes);\n                },\n                _process: function (t) {\n                    var n;\n                    var e = this._data;\n                    var i = e.words;\n                    var r = e.sigBytes;\n                    var o = this.blockSize;\n                    var s = r / (4 * o);\n                    var a = (s = t ? f.ceil(s) : f.max((0 | s) - this._minBufferSize, 0)) * o;\n                    var c = f.min(4 * a, r);\n                    if (a) {\n                        for (var u_1 = 0; u_1 < a; u_1 += o)\n                            this._doProcessBlock(i, u_1);\n                        (n = i.splice(0, a)), (e.sigBytes -= c);\n                    }\n                    return new p.init(n, c);\n                },\n                clone: function () {\n                    var t = s.clone.call(this);\n                    return (t._data = this._data.clone()), t;\n                },\n                _minBufferSize: 0\n            }));\n            var l = ((o.Hasher = h.extend({\n                cfg: s.extend(),\n                init: function (t) {\n                    (this.cfg = this.cfg.extend(t)), this.reset();\n                },\n                reset: function () {\n                    h.reset.call(this), this._doReset();\n                },\n                update: function (t) {\n                    return this._append(t), this._process(), this;\n                },\n                finalize: function (t) {\n                    return t && this._append(t), this._doFinalize();\n                },\n                blockSize: 16,\n                _createHelper: function (e) {\n                    return function (t, n) {\n                        return new e.init(n).finalize(t);\n                    };\n                },\n                _createHmacHelper: function (e) {\n                    return function (t, n) {\n                        return new l.HMAC.init(e, n).finalize(t);\n                    };\n                }\n            })),\n                (n.algo = {}));\n            return n;\n        })(Math);\n    return t;\n});\n","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n  return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n  if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _nonIterableSpread() {\n  throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix, useBootstrapBreakpoints, useBootstrapMinBreakpoint } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst Row = /*#__PURE__*/React.forwardRef(({\n  bsPrefix,\n  className,\n  // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n  as: Component = 'div',\n  ...props\n}, ref) => {\n  const decoratedBsPrefix = useBootstrapPrefix(bsPrefix, 'row');\n  const breakpoints = useBootstrapBreakpoints();\n  const minBreakpoint = useBootstrapMinBreakpoint();\n  const sizePrefix = `${decoratedBsPrefix}-cols`;\n  const classes = [];\n  breakpoints.forEach(brkPoint => {\n    const propValue = props[brkPoint];\n    delete props[brkPoint];\n    let cols;\n    if (propValue != null && typeof propValue === 'object') {\n      ({\n        cols\n      } = propValue);\n    } else {\n      cols = propValue;\n    }\n    const infix = brkPoint !== minBreakpoint ? `-${brkPoint}` : '';\n    if (cols != null) classes.push(`${sizePrefix}${infix}-${cols}`);\n  });\n  return /*#__PURE__*/_jsx(Component, {\n    ref: ref,\n    ...props,\n    className: classNames(className, decoratedBsPrefix, ...classes)\n  });\n});\nRow.displayName = 'Row';\nexport default Row;","import { emit } from \"library/common/event\";\n\nclass AudioPlayer {\n  subAudioList: { subContent: string; url: string; audio: HTMLAudioElement | null }[];\n  dlCursor: number; // 下载游标\n  playCursor: number; // 播放游标\n  playState: \"play\" | \"pause\"; // 播放状态\n  totalDuraion: number;\n  constructor() {\n    this.subAudioList = [];\n    this.dlCursor = 0;\n    this.playCursor = -1;\n    this.playState = \"play\";\n    this.totalDuraion = 0;\n  }\n  init = ({ contents }: { contents: string[] }) => {\n    const subAudioList = contents.map((item) => {\n      return {\n        subContent: item,\n        url: \"\",\n        audio: null,\n      };\n    });\n    this.subAudioList = subAudioList;\n  };\n  play = () => {\n    console.log(\"== playCursor:\", this.playCursor);\n    this.playState = \"play\";\n    if (this.subAudioList[this.playCursor].audio?.paused) {\n      this.subAudioList[this.playCursor].audio?.play().then(() => {\n        this.hightlightCurrentRead();\n      });\n    }\n  };\n  pause = () => {\n    console.log(\"== pause playCursor:\", this.playCursor);\n    this.playState = \"pause\";\n    if (!this.subAudioList[this.playCursor].audio?.paused) {\n      this.subAudioList[this.playCursor].audio?.pause();\n    }\n  };\n  newSubAudio = (url: string, duration: number) => {\n    this.totalDuraion += duration;\n    emit(\"TotalDuration:update\", this.totalDuraion);\n    const currAudio = new Audio(url);\n    const subAudioList = this.subAudioList;\n    subAudioList[this.dlCursor].audio = currAudio;\n    subAudioList[this.dlCursor].url = url;\n    currAudio.preload = \"auto\";\n    // eslint-disable-next-line @typescript-eslint/no-this-alias\n    let _this = this;\n    (function (dlCurrent: number) {\n      // eslint-disable-next-line max-nested-callbacks\n      subAudioList[dlCurrent]?.audio?.addEventListener(\"ended\", function () {\n        const _dlCurrent = dlCurrent;\n        console.log(\"ended current:\", _dlCurrent);\n        if (_dlCurrent === _this.subAudioList.length - 1) {\n          _this.playState = \"pause\";\n          emit(\"play:end\");\n          console.log(\"emit play:end......\");\n          _this.playCursor = 0; // 重置播放游标\n          return;\n        }\n        if (!subAudioList[_dlCurrent + 1]) {\n          // 必须使用强条件判断，音频片段未合成好，才标记为pause\n          _this.playState = \"pause\";\n          _this.playCursor = _dlCurrent + 1; // 方便下一段准备好时可以播放\n        } else {\n          subAudioList[_dlCurrent + 1]?.audio?.play().then(() => {\n            _this.playCursor = _dlCurrent + 1;\n            _this.playState = \"play\";\n            _this.hightlightCurrentRead();\n          });\n        }\n      });\n      subAudioList[dlCurrent]?.audio?.addEventListener(\"canplaythrough\", (event) => {\n        console.log(\"canplaythrough event:\", event, ` 第 ${dlCurrent} 段可播状态`);\n        if (_this.playState === \"pause\" && dlCurrent === _this.playCursor) {\n          // 如果当前播放状态为pause，说明前面部分已播完并停止，当前内容可以继续播放\n          subAudioList[dlCurrent]?.audio?.play().then(() => {\n            _this.playCursor = dlCurrent;\n            _this.playState = \"play\";\n            _this.hightlightCurrentRead();\n          });\n        }\n      });\n    })(this.dlCursor);\n    if (this.dlCursor === 0 && this.playState === \"play\") {\n      this.subAudioList[0].audio?.play().then(() => {\n        this.hightlightCurrentRead();\n        // 第一个播放成功事件回调通知\n        emit(\"play:start\");\n        console.log(\"!!! =========================start play\");\n      });\n      this.playCursor = 0;\n    }\n  };\n  getCurrentContent = () => {\n    return this.subAudioList[this.dlCursor].subContent;\n  };\n  isDownloadFinished = () => {\n    return (\n      (this.subAudioList.length === 1 && this.dlCursor === 0) ||\n      (this.dlCursor > 0 && this.dlCursor >= this.subAudioList.length - 1)\n    );\n  };\n  setDlCursorNext = () => {\n    this.dlCursor++;\n  };\n  getPlayerState = () => {\n    return this.playState;\n  };\n  isPlaying = () => {\n    return this.playState === \"play\";\n  };\n  toggle = () => {\n    if (this.playState === \"pause\") {\n      this.play();\n    } else {\n      this.pause();\n    }\n  };\n  hightlightCurrentRead = () => {\n    document.querySelector(\".reading-text\")?.classList.remove(\"reading-text\");\n    document.querySelector(\"#readpart-\" + this.playCursor)?.classList?.add(\"reading-text\");\n  };\n  preloadSubAudio = () => {};\n  getAllUrlList = () => {\n    const results: string[] = [];\n    this.subAudioList.forEach((audio) => {\n      results.push(audio.url);\n    });\n    return results;\n  };\n}\n\nexport default AudioPlayer;\n","module.exports = \"data:image/png;base64,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\"","import { i18n } from \"@lingui/core\";\nimport routes from \"projects/ttsMake/routes\";\nimport { FC, useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport { useLocation, useNavigate } from \"react-router-dom\";\nimport ArrawDownIcon from \"../../assets/img/ic-arrow-down.png\";\nimport LogoutIcon from \"../../assets/img/ic-logout-96_96.png\";\nimport DefaultManIcon from \"../../assets/img/default_man.png\";\nimport { Overlay } from \"react-bootstrap\";\nimport { logout } from \"projects/ttsMake/utils\";\nimport { useSelector } from \"react-redux\";\nimport { RootStore, useAppDispatch } from \"projects/ttsMake/slices\";\nimport { getUserInfo } from \"projects/ttsMake/slices/home\";\nimport { getCookie } from \"@tencent/kg-base\";\n\ninterface SidebarProps {}\n\nconst Sidebar: FC<SidebarProps> = () => {\n  const dispatch = useAppDispatch();\n  const navRoutes = useMemo(() => {\n    return routes.filter((route) => route.isNav);\n  }, []);\n  const navigate = useNavigate();\n  const location = useLocation();\n  const profileRef = useRef(null);\n  const [showLogout, setShowLogout] = useState(false);\n  const [isCollapse, setCollapse] = useState(false);\n  const userInfo = useSelector((rootState: RootStore) => rootState?.home?.userInfo);\n\n  const jumpPage = useCallback(\n    (routePath) => {\n      navigate(routePath);\n    },\n    [navigate],\n  );\n\n  const collapseCb = () => {\n    setCollapse(!isCollapse);\n  };\n\n  const logoutCb = () => {\n    logout();\n    setShowLogout(!showLogout);\n    navigate(\"/login\");\n  };\n\n  const onDocDelegate = useCallback(\n    (e) => {\n      // console.log(\"== sidebar onDocDelegate:\", e, e?.target?.classList);\n      e.stopPropagation();\n      if (e?.target?.classList?.contains(\"profile-btn\")) {\n        return;\n      }\n      if (!e?.target?.classList?.contains(\"logout-overlay\") && showLogout) {\n        setShowLogout(false);\n      }\n    },\n    [showLogout],\n  );\n\n  useEffect(() => {\n    document.addEventListener(\"click\", onDocDelegate);\n    return () => {\n      document.removeEventListener(\"click\", onDocDelegate);\n    };\n  }, [onDocDelegate]);\n\n  const myProfile = () => {\n    const uid = getCookie(\"tts_euin\");\n    return (\n      <>\n        <div\n          ref={profileRef}\n          style={{ position: \"absolute\", bottom: 36, left: 36 }}\n          className=\"flex-flex-center profile-btn\"\n          onClick={() => {\n            setShowLogout(!showLogout);\n          }}\n        >\n          {!isCollapse ? (\n            <div className=\"flex-column-center\" style={{ alignItems: \"flex-start\" }}>\n              <div className=\"flex-row-center profile-btn cursor-pointer\">\n                <div style={{ width: 40, height: 40, borderRadius: 50, overflow: \"hidden\" }} className=\"profile-btn\">\n                  <img src={userInfo?.logo || DefaultManIcon} width={40} height={40} className=\"profile-btn\" />\n                </div>\n                <div style={{}} className=\"flex-row-center profile-btn\">\n                  <span\n                    style={{\n                      margin: \"0 10px 0 20px\",\n                      width: 100,\n                      overflow: \"hidden\",\n                      textOverflow: \"ellipsis\",\n                      whiteSpace: \"nowrap\",\n                    }}\n                    className=\"profile-btn\"\n                  >\n                    {userInfo?.nick}\n                  </span>\n                  <div\n                    className=\"profile-btn\"\n                    style={{\n                      width: 16,\n                      height: 16,\n                      backgroundImage: `url(${ArrawDownIcon})`,\n                      backgroundSize: \"100%\",\n                    }}\n                  />\n                </div>\n              </div>\n              {/* <div style={{ color: \"\", fontSize: 12 }}>ID: {uid}</div> */}\n            </div>\n          ) : (\n            <div\n              style={{ width: 24, height: 24, backgroundImage: `url(${LogoutIcon})`, backgroundSize: \"100%\" }}\n              className=\"profile-btn\"\n            />\n          )}\n        </div>\n\n        <Overlay target={profileRef.current} show={showLogout} placement=\"right\">\n          <div className=\"cursor-pointer logout-overlay\">\n            <div className=\"logout-overlay-content\">\n              <p className=\"logout-overlay-content-nick\">{userInfo?.nick}</p>\n              <p className=\"logout-overlay-content-id\">ID: {uid}</p>\n            </div>\n            <div className=\"logout-btn\" onClick={logoutCb}>\n              退出登录\n            </div>\n          </div>\n        </Overlay>\n      </>\n    );\n  };\n\n  useEffect(() => {\n    dispatch(getUserInfo({}));\n  }, []);\n\n  return (\n    <div className={`sidebar ${isCollapse ? \"collapsings\" : \"\"}`}>\n      <div className=\"logo-wrapper\">\n        {!isCollapse ? (\n          <>\n            <div className=\"logo\" />\n            {/* <div className=\"ic-split\" /> */}\n            {/* <div className=\"tts-text\" /> */}\n          </>\n        ) : null}\n        <div className=\"ic-collapsings\" onClick={collapseCb} />\n      </div>\n      <div className=\"side-wrapper\">\n        <div className=\"side-menu\">\n          {navRoutes.map((route) => {\n            return (\n              <div\n                key={route.name}\n                className={`sidebar-item ${location.pathname === route.path ? \"item-selected\" : \"\"}`}\n                onClick={() => jumpPage(`${route.path}`)}\n              >\n                {!isCollapse ? (\n                  <div className={`item-triangle ${location.pathname === route.path ? \"item-selected\" : \"\"}`} />\n                ) : null}\n                {isCollapse ? (\n                  <div className=\"icon-item-wrapper flex-column-center\">\n                    <div className={`icon-item ${route?.engname} ${isCollapse ? \"collapse-nav\" : \"\"}`} />\n                  </div>\n                ) : (\n                  <div className={`icon-item ${route?.engname} ${isCollapse ? \"collapse-nav\" : \"\"}`} />\n                )}\n                {!isCollapse ? (\n                  <a className={`sidebar-link discover ${location.pathname === route.path && \"is-active\"}`}>\n                    {route.name}\n                  </a>\n                ) : null}\n              </div>\n            );\n          })}\n        </div>\n      </div>\n      {myProfile()}\n      <div className=\"sb-block-split\">\n        <div className=\"long-split-line\" />\n      </div>\n    </div>\n  );\n};\n\nexport default Sidebar;\n","/**\n * @ignore\n * some key-codes definition and utils from closure-library\n * @author yiminghe@gmail.com\n */\n\nvar KeyCode = {\n  /**\n   * MAC_ENTER\n   */\n  MAC_ENTER: 3,\n  /**\n   * BACKSPACE\n   */\n  BACKSPACE: 8,\n  /**\n   * TAB\n   */\n  TAB: 9,\n  /**\n   * NUMLOCK on FF/Safari Mac\n   */\n  NUM_CENTER: 12,\n  // NUMLOCK on FF/Safari Mac\n  /**\n   * ENTER\n   */\n  ENTER: 13,\n  /**\n   * SHIFT\n   */\n  SHIFT: 16,\n  /**\n   * CTRL\n   */\n  CTRL: 17,\n  /**\n   * ALT\n   */\n  ALT: 18,\n  /**\n   * PAUSE\n   */\n  PAUSE: 19,\n  /**\n   * CAPS_LOCK\n   */\n  CAPS_LOCK: 20,\n  /**\n   * ESC\n   */\n  ESC: 27,\n  /**\n   * SPACE\n   */\n  SPACE: 32,\n  /**\n   * PAGE_UP\n   */\n  PAGE_UP: 33,\n  // also NUM_NORTH_EAST\n  /**\n   * PAGE_DOWN\n   */\n  PAGE_DOWN: 34,\n  // also NUM_SOUTH_EAST\n  /**\n   * END\n   */\n  END: 35,\n  // also NUM_SOUTH_WEST\n  /**\n   * HOME\n   */\n  HOME: 36,\n  // also NUM_NORTH_WEST\n  /**\n   * LEFT\n   */\n  LEFT: 37,\n  // also NUM_WEST\n  /**\n   * UP\n   */\n  UP: 38,\n  // also NUM_NORTH\n  /**\n   * RIGHT\n   */\n  RIGHT: 39,\n  // also NUM_EAST\n  /**\n   * DOWN\n   */\n  DOWN: 40,\n  // also NUM_SOUTH\n  /**\n   * PRINT_SCREEN\n   */\n  PRINT_SCREEN: 44,\n  /**\n   * INSERT\n   */\n  INSERT: 45,\n  // also NUM_INSERT\n  /**\n   * DELETE\n   */\n  DELETE: 46,\n  // also NUM_DELETE\n  /**\n   * ZERO\n   */\n  ZERO: 48,\n  /**\n   * ONE\n   */\n  ONE: 49,\n  /**\n   * TWO\n   */\n  TWO: 50,\n  /**\n   * THREE\n   */\n  THREE: 51,\n  /**\n   * FOUR\n   */\n  FOUR: 52,\n  /**\n   * FIVE\n   */\n  FIVE: 53,\n  /**\n   * SIX\n   */\n  SIX: 54,\n  /**\n   * SEVEN\n   */\n  SEVEN: 55,\n  /**\n   * EIGHT\n   */\n  EIGHT: 56,\n  /**\n   * NINE\n   */\n  NINE: 57,\n  /**\n   * QUESTION_MARK\n   */\n  QUESTION_MARK: 63,\n  // needs localization\n  /**\n   * A\n   */\n  A: 65,\n  /**\n   * B\n   */\n  B: 66,\n  /**\n   * C\n   */\n  C: 67,\n  /**\n   * D\n   */\n  D: 68,\n  /**\n   * E\n   */\n  E: 69,\n  /**\n   * F\n   */\n  F: 70,\n  /**\n   * G\n   */\n  G: 71,\n  /**\n   * H\n   */\n  H: 72,\n  /**\n   * I\n   */\n  I: 73,\n  /**\n   * J\n   */\n  J: 74,\n  /**\n   * K\n   */\n  K: 75,\n  /**\n   * L\n   */\n  L: 76,\n  /**\n   * M\n   */\n  M: 77,\n  /**\n   * N\n   */\n  N: 78,\n  /**\n   * O\n   */\n  O: 79,\n  /**\n   * P\n   */\n  P: 80,\n  /**\n   * Q\n   */\n  Q: 81,\n  /**\n   * R\n   */\n  R: 82,\n  /**\n   * S\n   */\n  S: 83,\n  /**\n   * T\n   */\n  T: 84,\n  /**\n   * U\n   */\n  U: 85,\n  /**\n   * V\n   */\n  V: 86,\n  /**\n   * W\n   */\n  W: 87,\n  /**\n   * X\n   */\n  X: 88,\n  /**\n   * Y\n   */\n  Y: 89,\n  /**\n   * Z\n   */\n  Z: 90,\n  /**\n   * META\n   */\n  META: 91,\n  // WIN_KEY_LEFT\n  /**\n   * WIN_KEY_RIGHT\n   */\n  WIN_KEY_RIGHT: 92,\n  /**\n   * CONTEXT_MENU\n   */\n  CONTEXT_MENU: 93,\n  /**\n   * NUM_ZERO\n   */\n  NUM_ZERO: 96,\n  /**\n   * NUM_ONE\n   */\n  NUM_ONE: 97,\n  /**\n   * NUM_TWO\n   */\n  NUM_TWO: 98,\n  /**\n   * NUM_THREE\n   */\n  NUM_THREE: 99,\n  /**\n   * NUM_FOUR\n   */\n  NUM_FOUR: 100,\n  /**\n   * NUM_FIVE\n   */\n  NUM_FIVE: 101,\n  /**\n   * NUM_SIX\n   */\n  NUM_SIX: 102,\n  /**\n   * NUM_SEVEN\n   */\n  NUM_SEVEN: 103,\n  /**\n   * NUM_EIGHT\n   */\n  NUM_EIGHT: 104,\n  /**\n   * NUM_NINE\n   */\n  NUM_NINE: 105,\n  /**\n   * NUM_MULTIPLY\n   */\n  NUM_MULTIPLY: 106,\n  /**\n   * NUM_PLUS\n   */\n  NUM_PLUS: 107,\n  /**\n   * NUM_MINUS\n   */\n  NUM_MINUS: 109,\n  /**\n   * NUM_PERIOD\n   */\n  NUM_PERIOD: 110,\n  /**\n   * NUM_DIVISION\n   */\n  NUM_DIVISION: 111,\n  /**\n   * F1\n   */\n  F1: 112,\n  /**\n   * F2\n   */\n  F2: 113,\n  /**\n   * F3\n   */\n  F3: 114,\n  /**\n   * F4\n   */\n  F4: 115,\n  /**\n   * F5\n   */\n  F5: 116,\n  /**\n   * F6\n   */\n  F6: 117,\n  /**\n   * F7\n   */\n  F7: 118,\n  /**\n   * F8\n   */\n  F8: 119,\n  /**\n   * F9\n   */\n  F9: 120,\n  /**\n   * F10\n   */\n  F10: 121,\n  /**\n   * F11\n   */\n  F11: 122,\n  /**\n   * F12\n   */\n  F12: 123,\n  /**\n   * NUMLOCK\n   */\n  NUMLOCK: 144,\n  /**\n   * SEMICOLON\n   */\n  SEMICOLON: 186,\n  // needs localization\n  /**\n   * DASH\n   */\n  DASH: 189,\n  // needs localization\n  /**\n   * EQUALS\n   */\n  EQUALS: 187,\n  // needs localization\n  /**\n   * COMMA\n   */\n  COMMA: 188,\n  // needs localization\n  /**\n   * PERIOD\n   */\n  PERIOD: 190,\n  // needs localization\n  /**\n   * SLASH\n   */\n  SLASH: 191,\n  // needs localization\n  /**\n   * APOSTROPHE\n   */\n  APOSTROPHE: 192,\n  // needs localization\n  /**\n   * SINGLE_QUOTE\n   */\n  SINGLE_QUOTE: 222,\n  // needs localization\n  /**\n   * OPEN_SQUARE_BRACKET\n   */\n  OPEN_SQUARE_BRACKET: 219,\n  // needs localization\n  /**\n   * BACKSLASH\n   */\n  BACKSLASH: 220,\n  // needs localization\n  /**\n   * CLOSE_SQUARE_BRACKET\n   */\n  CLOSE_SQUARE_BRACKET: 221,\n  // needs localization\n  /**\n   * WIN_KEY\n   */\n  WIN_KEY: 224,\n  /**\n   * MAC_FF_META\n   */\n  MAC_FF_META: 224,\n  // Firefox (Gecko) fires this for the meta key instead of 91\n  /**\n   * WIN_IME\n   */\n  WIN_IME: 229,\n  // ======================== Function ========================\n  /**\n   * whether text and modified key is entered at the same time.\n   */\n  isTextModifyingKeyEvent: function isTextModifyingKeyEvent(e) {\n    var keyCode = e.keyCode;\n    if (e.altKey && !e.ctrlKey || e.metaKey ||\n    // Function keys don't generate text\n    keyCode >= KeyCode.F1 && keyCode <= KeyCode.F12) {\n      return false;\n    }\n\n    // The following keys are quite harmless, even in combination with\n    // CTRL, ALT or SHIFT.\n    switch (keyCode) {\n      case KeyCode.ALT:\n      case KeyCode.CAPS_LOCK:\n      case KeyCode.CONTEXT_MENU:\n      case KeyCode.CTRL:\n      case KeyCode.DOWN:\n      case KeyCode.END:\n      case KeyCode.ESC:\n      case KeyCode.HOME:\n      case KeyCode.INSERT:\n      case KeyCode.LEFT:\n      case KeyCode.MAC_FF_META:\n      case KeyCode.META:\n      case KeyCode.NUMLOCK:\n      case KeyCode.NUM_CENTER:\n      case KeyCode.PAGE_DOWN:\n      case KeyCode.PAGE_UP:\n      case KeyCode.PAUSE:\n      case KeyCode.PRINT_SCREEN:\n      case KeyCode.RIGHT:\n      case KeyCode.SHIFT:\n      case KeyCode.UP:\n      case KeyCode.WIN_KEY:\n      case KeyCode.WIN_KEY_RIGHT:\n        return false;\n      default:\n        return true;\n    }\n  },\n  /**\n   * whether character is entered.\n   */\n  isCharacterKey: function isCharacterKey(keyCode) {\n    if (keyCode >= KeyCode.ZERO && keyCode <= KeyCode.NINE) {\n      return true;\n    }\n    if (keyCode >= KeyCode.NUM_ZERO && keyCode <= KeyCode.NUM_MULTIPLY) {\n      return true;\n    }\n    if (keyCode >= KeyCode.A && keyCode <= KeyCode.Z) {\n      return true;\n    }\n\n    // Safari sends zero key code for non-latin characters.\n    if (window.navigator.userAgent.indexOf('WebKit') !== -1 && keyCode === 0) {\n      return true;\n    }\n    switch (keyCode) {\n      case KeyCode.SPACE:\n      case KeyCode.QUESTION_MARK:\n      case KeyCode.NUM_PLUS:\n      case KeyCode.NUM_MINUS:\n      case KeyCode.NUM_PERIOD:\n      case KeyCode.NUM_DIVISION:\n      case KeyCode.SEMICOLON:\n      case KeyCode.DASH:\n      case KeyCode.EQUALS:\n      case KeyCode.COMMA:\n      case KeyCode.PERIOD:\n      case KeyCode.SLASH:\n      case KeyCode.APOSTROPHE:\n      case KeyCode.SINGLE_QUOTE:\n      case KeyCode.OPEN_SQUARE_BRACKET:\n      case KeyCode.BACKSLASH:\n      case KeyCode.CLOSE_SQUARE_BRACKET:\n        return true;\n      default:\n        return false;\n    }\n  }\n};\nexport default KeyCode;","'use strict';\n\nconst nameStartChar = ':A-Za-z_\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD';\nconst nameChar = nameStartChar + '\\\\-.\\\\d\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040';\nconst nameRegexp = '[' + nameStartChar + '][' + nameChar + ']*'\nconst regexName = new RegExp('^' + nameRegexp + '$');\n\nconst getAllMatches = function(string, regex) {\n  const matches = [];\n  let match = regex.exec(string);\n  while (match) {\n    const allmatches = [];\n    allmatches.startIndex = regex.lastIndex - match[0].length;\n    const len = match.length;\n    for (let index = 0; index < len; index++) {\n      allmatches.push(match[index]);\n    }\n    matches.push(allmatches);\n    match = regex.exec(string);\n  }\n  return matches;\n};\n\nconst isName = function(string) {\n  const match = regexName.exec(string);\n  return !(match === null || typeof match === 'undefined');\n};\n\nexports.isExist = function(v) {\n  return typeof v !== 'undefined';\n};\n\nexports.isEmptyObject = function(obj) {\n  return Object.keys(obj).length === 0;\n};\n\n/**\n * Copy all the properties of a into b.\n * @param {*} target\n * @param {*} a\n */\nexports.merge = function(target, a, arrayMode) {\n  if (a) {\n    const keys = Object.keys(a); // will return an array of own properties\n    const len = keys.length; //don't make it inline\n    for (let i = 0; i < len; i++) {\n      if (arrayMode === 'strict') {\n        target[keys[i]] = [ a[keys[i]] ];\n      } else {\n        target[keys[i]] = a[keys[i]];\n      }\n    }\n  }\n};\n/* exports.merge =function (b,a){\n  return Object.assign(b,a);\n} */\n\nexports.getValue = function(v) {\n  if (exports.isExist(v)) {\n    return v;\n  } else {\n    return '';\n  }\n};\n\n// const fakeCall = function(a) {return a;};\n// const fakeCallNoReturn = function() {};\n\nexports.isName = isName;\nexports.getAllMatches = getAllMatches;\nexports.nameRegexp = nameRegexp;\n","// This icon file is generated automatically.\nvar CloseOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"fill-rule\": \"evenodd\", \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M799.86 166.31c.02 0 .04.02.08.06l57.69 57.7c.04.03.05.05.06.08a.12.12 0 010 .06c0 .03-.02.05-.06.09L569.93 512l287.7 287.7c.04.04.05.06.06.09a.12.12 0 010 .07c0 .02-.02.04-.06.08l-57.7 57.69c-.03.04-.05.05-.07.06a.12.12 0 01-.07 0c-.03 0-.05-.02-.09-.06L512 569.93l-287.7 287.7c-.04.04-.06.05-.09.06a.12.12 0 01-.07 0c-.02 0-.04-.02-.08-.06l-57.69-57.7c-.04-.03-.05-.05-.06-.07a.12.12 0 010-.07c0-.03.02-.05.06-.09L454.07 512l-287.7-287.7c-.04-.04-.05-.06-.06-.09a.12.12 0 010-.07c0-.02.02-.04.06-.08l57.7-57.69c.03-.04.05-.05.07-.06a.12.12 0 01.07 0c.03 0 .05.02.09.06L512 454.07l287.7-287.7c.04-.04.06-.05.09-.06a.12.12 0 01.07 0z\" } }] }, \"name\": \"close\", \"theme\": \"outlined\" };\nexport default CloseOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport CloseOutlinedSvg from \"@ant-design/icons-svg/es/asn/CloseOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar CloseOutlined = function CloseOutlined(props, ref) {\n  return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n    ref: ref,\n    icon: CloseOutlinedSvg\n  }));\n};\n\n/**![close](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIGZpbGwtcnVsZT0iZXZlbm9kZCIgdmlld0JveD0iNjQgNjQgODk2IDg5NiIgZm9jdXNhYmxlPSJmYWxzZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNNzk5Ljg2IDE2Ni4zMWMuMDIgMCAuMDQuMDIuMDguMDZsNTcuNjkgNTcuN2MuMDQuMDMuMDUuMDUuMDYuMDhhLjEyLjEyIDAgMDEwIC4wNmMwIC4wMy0uMDIuMDUtLjA2LjA5TDU2OS45MyA1MTJsMjg3LjcgMjg3LjdjLjA0LjA0LjA1LjA2LjA2LjA5YS4xMi4xMiAwIDAxMCAuMDdjMCAuMDItLjAyLjA0LS4wNi4wOGwtNTcuNyA1Ny42OWMtLjAzLjA0LS4wNS4wNS0uMDcuMDZhLjEyLjEyIDAgMDEtLjA3IDBjLS4wMyAwLS4wNS0uMDItLjA5LS4wNkw1MTIgNTY5LjkzbC0yODcuNyAyODcuN2MtLjA0LjA0LS4wNi4wNS0uMDkuMDZhLjEyLjEyIDAgMDEtLjA3IDBjLS4wMiAwLS4wNC0uMDItLjA4LS4wNmwtNTcuNjktNTcuN2MtLjA0LS4wMy0uMDUtLjA1LS4wNi0uMDdhLjEyLjEyIDAgMDEwLS4wN2MwLS4wMy4wMi0uMDUuMDYtLjA5TDQ1NC4wNyA1MTJsLTI4Ny43LTI4Ny43Yy0uMDQtLjA0LS4wNS0uMDYtLjA2LS4wOWEuMTIuMTIgMCAwMTAtLjA3YzAtLjAyLjAyLS4wNC4wNi0uMDhsNTcuNy01Ny42OWMuMDMtLjA0LjA1LS4wNS4wNy0uMDZhLjEyLjEyIDAgMDEuMDcgMGMuMDMgMCAuMDUuMDIuMDkuMDZMNTEyIDQ1NC4wN2wyODcuNy0yODcuN2MuMDQtLjA0LjA2LS4wNS4wOS0uMDZhLjEyLjEyIDAgMDEuMDcgMHoiIC8+PC9zdmc+) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(CloseOutlined);\nif (process.env.NODE_ENV !== 'production') {\n  RefIcon.displayName = 'CloseOutlined';\n}\nexport default RefIcon;","const hexRegex = /^[-+]?0x[a-fA-F0-9]+$/;\nconst numRegex = /^([\\-\\+])?(0*)(\\.[0-9]+([eE]\\-?[0-9]+)?|[0-9]+(\\.[0-9]+([eE]\\-?[0-9]+)?)?)$/;\n// const octRegex = /0x[a-z0-9]+/;\n// const binRegex = /0x[a-z0-9]+/;\n\n\n//polyfill\nif (!Number.parseInt && window.parseInt) {\n    Number.parseInt = window.parseInt;\n}\nif (!Number.parseFloat && window.parseFloat) {\n    Number.parseFloat = window.parseFloat;\n}\n\n  \nconst consider = {\n    hex :  true,\n    leadingZeros: true,\n    decimalPoint: \"\\.\",\n    eNotation: true\n    //skipLike: /regex/\n};\n\nfunction toNumber(str, options = {}){\n    // const options = Object.assign({}, consider);\n    // if(opt.leadingZeros === false){\n    //     options.leadingZeros = false;\n    // }else if(opt.hex === false){\n    //     options.hex = false;\n    // }\n\n    options = Object.assign({}, consider, options );\n    if(!str || typeof str !== \"string\" ) return str;\n    \n    let trimmedStr  = str.trim();\n    // if(trimmedStr === \"0.0\") return 0;\n    // else if(trimmedStr === \"+0.0\") return 0;\n    // else if(trimmedStr === \"-0.0\") return -0;\n\n    if(options.skipLike !== undefined && options.skipLike.test(trimmedStr)) return str;\n    else if (options.hex && hexRegex.test(trimmedStr)) {\n        return Number.parseInt(trimmedStr, 16);\n    // } else if (options.parseOct && octRegex.test(str)) {\n    //     return Number.parseInt(val, 8);\n    // }else if (options.parseBin && binRegex.test(str)) {\n    //     return Number.parseInt(val, 2);\n    }else{\n        //separate negative sign, leading zeros, and rest number\n        const match = numRegex.exec(trimmedStr);\n        if(match){\n            const sign = match[1];\n            const leadingZeros = match[2];\n            let numTrimmedByZeros = trimZeros(match[3]); //complete num without leading zeros\n            //trim ending zeros for floating number\n            \n            const eNotation = match[4] || match[6];\n            if(!options.leadingZeros && leadingZeros.length > 0 && sign && trimmedStr[2] !== \".\") return str; //-0123\n            else if(!options.leadingZeros && leadingZeros.length > 0 && !sign && trimmedStr[1] !== \".\") return str; //0123\n            else{//no leading zeros or leading zeros are allowed\n                const num = Number(trimmedStr);\n                const numStr = \"\" + num;\n                if(numStr.search(/[eE]/) !== -1){ //given number is long and parsed to eNotation\n                    if(options.eNotation) return num;\n                    else return str;\n                }else if(eNotation){ //given number has enotation\n                    if(options.eNotation) return num;\n                    else return str;\n                }else if(trimmedStr.indexOf(\".\") !== -1){ //floating number\n                    // const decimalPart = match[5].substr(1);\n                    // const intPart = trimmedStr.substr(0,trimmedStr.indexOf(\".\"));\n\n                    \n                    // const p = numStr.indexOf(\".\");\n                    // const givenIntPart = numStr.substr(0,p);\n                    // const givenDecPart = numStr.substr(p+1);\n                    if(numStr === \"0\" && (numTrimmedByZeros === \"\") ) return num; //0.0\n                    else if(numStr === numTrimmedByZeros) return num; //0.456. 0.79000\n                    else if( sign && numStr === \"-\"+numTrimmedByZeros) return num;\n                    else return str;\n                }\n                \n                if(leadingZeros){\n                    // if(numTrimmedByZeros === numStr){\n                    //     if(options.leadingZeros) return num;\n                    //     else return str;\n                    // }else return str;\n                    if(numTrimmedByZeros === numStr) return num;\n                    else if(sign+numTrimmedByZeros === numStr) return num;\n                    else return str;\n                }\n\n                if(trimmedStr === numStr) return num;\n                else if(trimmedStr === sign+numStr) return num;\n                // else{\n                //     //number with +/- sign\n                //     trimmedStr.test(/[-+][0-9]);\n\n                // }\n                return str;\n            }\n            // else if(!eNotation && trimmedStr && trimmedStr !== Number(trimmedStr) ) return str;\n            \n        }else{ //non-numeric string\n            return str;\n        }\n    }\n}\n\n/**\n * \n * @param {string} numStr without leading zeros\n * @returns \n */\nfunction trimZeros(numStr){\n    if(numStr && numStr.indexOf(\".\") !== -1){//float\n        numStr = numStr.replace(/0+$/, \"\"); //remove ending zeros\n        if(numStr === \".\")  numStr = \"0\";\n        else if(numStr[0] === \".\")  numStr = \"0\"+numStr;\n        else if(numStr[numStr.length-1] === \".\")  numStr = numStr.substr(0,numStr.length-1);\n        return numStr;\n    }\n    return numStr;\n}\nmodule.exports = toNumber\n","export default (function () {\n  if (typeof navigator === 'undefined' || typeof window === 'undefined') {\n    return false;\n  }\n  var agent = navigator.userAgent || navigator.vendor || window.opera;\n  return /(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(agent) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw-(n|u)|c55\\/|capi|ccwa|cdm-|cell|chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob|do(c|p)o|ds(12|-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(-|_)|g1 u|g560|gene|gf-5|g-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd-(m|p|t)|hei-|hi(pt|ta)|hp( i|ip)|hs-c|ht(c(-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac( |-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|-[a-w])|libw|lynx|m1-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|-([1-8]|c))|phil|pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt-g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p-)|sdk\\/|se(c(-|0|1)|47|mc|nd|ri)|sgh-|shar|sie(-|m)|sk-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h-|v-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl-|tdg-|tel(i|m)|tim-|t-mo|to(pl|sh)|ts(70|m-|m3|m5)|tx-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas-|your|zeto|zte-/i.test(agent === null || agent === void 0 ? void 0 : agent.substr(0, 4));\n});","function getRoot(ele) {\n  var _ele$getRootNode;\n  return ele === null || ele === void 0 || (_ele$getRootNode = ele.getRootNode) === null || _ele$getRootNode === void 0 ? void 0 : _ele$getRootNode.call(ele);\n}\n\n/**\n * Check if is in shadowRoot\n */\nexport function inShadow(ele) {\n  return getRoot(ele) instanceof ShadowRoot;\n}\n\n/**\n * Return shadowRoot if possible\n */\nexport function getShadowRoot(ele) {\n  return inShadow(ele) ? getRoot(ele) : null;\n}","import * as React from 'react';\nimport rcWarning, { resetWarned as rcResetWarned } from \"rc-util/es/warning\";\nexport function noop() {}\nlet deprecatedWarnList = null;\nexport function resetWarned() {\n  deprecatedWarnList = null;\n  rcResetWarned();\n}\n// eslint-disable-next-line import/no-mutable-exports\nlet warning = noop;\nif (process.env.NODE_ENV !== 'production') {\n  warning = (valid, component, message) => {\n    rcWarning(valid, `[antd: ${component}] ${message}`);\n    // StrictMode will inject console which will not throw warning in React 17.\n    if (process.env.NODE_ENV === 'test') {\n      resetWarned();\n    }\n  };\n}\nexport const WarningContext = /*#__PURE__*/React.createContext({});\n/**\n * This is a hook but we not named as `useWarning`\n * since this is only used in development.\n * We should always wrap this in `if (process.env.NODE_ENV !== 'production')` condition\n */\nexport const devUseWarning = process.env.NODE_ENV !== 'production' ? component => {\n  const {\n    strict\n  } = React.useContext(WarningContext);\n  const typeWarning = (valid, type, message) => {\n    if (!valid) {\n      if (strict === false && type === 'deprecated') {\n        const existWarning = deprecatedWarnList;\n        if (!deprecatedWarnList) {\n          deprecatedWarnList = {};\n        }\n        deprecatedWarnList[component] = deprecatedWarnList[component] || [];\n        if (!deprecatedWarnList[component].includes(message || '')) {\n          deprecatedWarnList[component].push(message || '');\n        }\n        // Warning for the first time\n        if (!existWarning) {\n          console.warn('[antd] There exists deprecated usage in your code:', deprecatedWarnList);\n        }\n      } else {\n        process.env.NODE_ENV !== \"production\" ? warning(valid, component, message) : void 0;\n      }\n    }\n  };\n  typeWarning.deprecated = (valid, oldProp, newProp, message) => {\n    typeWarning(valid, 'deprecated', `\\`${oldProp}\\` is deprecated. Please use \\`${newProp}\\` instead.${message ? ` ${message}` : ''}`);\n  };\n  return typeWarning;\n} : () => {\n  const noopWarning = () => {};\n  noopWarning.deprecated = noop;\n  return noopWarning;\n};\nexport default warning;","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAABYlAAAWJQFJUiTwAAABaWlDQ1BEaXNwbGF5IFAzAAB4nHWQvUvDUBTFT6tS0DqIDh0cMolD1NIKdnFoKxRFMFQFq1OafgltfCQpUnETVyn4H1jBWXCwiFRwcXAQRAcR3Zw6KbhoeN6XVNoi3sfl/Ticc7lcwBtQGSv2AijplpFMxKS11Lrke4OHnlOqZrKooiwK/v276/PR9d5PiFlNu3YQ2U9cl84ul3aeAlN//V3Vn8maGv3f1EGNGRbgkYmVbYsJ3iUeMWgp4qrgvMvHgtMunzuelWSc+JZY0gpqhrhJLKc79HwHl4plrbWD2N6f1VeXxRzqUcxhEyYYilBRgQQF4X/8044/ji1yV2BQLo8CLMpESRETssTz0KFhEjJxCEHqkLhz634PrfvJbW3vFZhtcM4v2tpCAzidoZPV29p4BBgaAG7qTDVUR+qh9uZywPsJMJgChu8os2HmwiF3e38M6Hvh/GMM8B0CdpXzryPO7RqFn4Er/QcXKWq8MSlPPgAAAsZJREFUeAHtmo11ozAMgJWbICN4g2aDeoSMkA2aDZIN0g16G+Q2gE6Q3gRwE7gb6KwgNcKlSQwG3Pf6vafnh/GfZCMsA8AP87KABCDi0ifWy6MX42XlZclCvHupOX3z8uqlXCwW7zAnfuDWS+HFYT+OXtYwNdSplyoYTOHlme8ZnhUpv/Sy4nt7LquhtjYwNjww3bnjAS17trUJDHGifBgD3/ATXpYKpVtIRKBI0ralg52y0nMfi9/RB83Ib9XPDlIQDD6tZbr72yZTQg2eptXCRPAD7wYpwWteWMHEYOOi+808r0fXq3JC1HJyUd6J3RnxAjPDToMo7q2w4QoVjuWTI8DmJSir4fZbGy/+eAOZoJZSdavg+q6CM6BmwV4rdOxjfXZ7lRJqJ9wLFer+KdazYbNl+fpZ4E4EAxFg+w2KoRHUzGqiHIQan9PG+aXKWE5pn15DWgZvPTh2KLktK/ldCrxCvvzl1EqGVuCB0zfIl5JTIxlaAZnmGvJFjCvGbilgOK0hXySG7nyIz5mzB9pXUGPrVOBbohU4a4cjRFupUGP7WCWfFIAEPntEDKe1ZGgF5AmfPHiJwHDaOQP/OLWQL2JceaG1FCg5fYB8eeS0lIxQAZoam+hBTuqOeYNp+bL8qlDBO749xDW+4i1yxVJ0bKePA7fTEin+uVZITgIcZAZeIsX1vQVnO40IUda/HSmq4KMVOMwFNkc8VRgk3apUcIUDzAxFbjyWU0ylXA62ntRqMDF1w0NWCxPDng0HGREvJwEOJzwfZW/o+rj0rsb2gy0R158+VN5DCgIlXnCEI0dsXnaH5INXHWzVtFaY8OgRR/x8FXZE3umkrHRWpM+MsMV32P5EW+AUB8r4+euidE5LjV6E5EHCvZDhewfs/sw62/fiI/bDsSIWBpD6VwMSiifo2kD7VwP5zYACpxJy+NXghwT8B0suxXdIjDJ7AAAAAElFTkSuQmCC\"","import * as React from 'react';\nimport LocaleContext from './context';\nimport defaultLocaleData from './en_US';\nconst useLocale = (componentName, defaultLocale) => {\n  const fullLocale = React.useContext(LocaleContext);\n  const getLocale = React.useMemo(() => {\n    var _a;\n    const locale = defaultLocale || defaultLocaleData[componentName];\n    const localeFromContext = (_a = fullLocale === null || fullLocale === void 0 ? void 0 : fullLocale[componentName]) !== null && _a !== void 0 ? _a : {};\n    return Object.assign(Object.assign({}, typeof locale === 'function' ? locale() : locale), localeFromContext || {});\n  }, [componentName, defaultLocale, fullLocale]);\n  const getLocaleCode = React.useMemo(() => {\n    const localeCode = fullLocale === null || fullLocale === void 0 ? void 0 : fullLocale.locale;\n    // Had use LocaleProvide but didn't set locale\n    if ((fullLocale === null || fullLocale === void 0 ? void 0 : fullLocale.exist) && !localeCode) {\n      return defaultLocaleData.locale;\n    }\n    return localeCode;\n  }, [fullLocale]);\n  return [getLocale, getLocaleCode];\n};\nexport default useLocale;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport { generate as generateColor } from '@ant-design/colors';\nimport { updateCSS } from \"rc-util/es/Dom/dynamicCSS\";\nimport { getShadowRoot } from \"rc-util/es/Dom/shadow\";\nimport warn from \"rc-util/es/warning\";\nimport React, { useContext, useEffect } from 'react';\nimport IconContext from \"./components/Context\";\nfunction camelCase(input) {\n  return input.replace(/-(.)/g, function (match, g) {\n    return g.toUpperCase();\n  });\n}\nexport function warning(valid, message) {\n  warn(valid, \"[@ant-design/icons] \".concat(message));\n}\nexport function isIconDefinition(target) {\n  return _typeof(target) === 'object' && typeof target.name === 'string' && typeof target.theme === 'string' && (_typeof(target.icon) === 'object' || typeof target.icon === 'function');\n}\nexport function normalizeAttrs() {\n  var attrs = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  return Object.keys(attrs).reduce(function (acc, key) {\n    var val = attrs[key];\n    switch (key) {\n      case 'class':\n        acc.className = val;\n        delete acc.class;\n        break;\n      default:\n        delete acc[key];\n        acc[camelCase(key)] = val;\n    }\n    return acc;\n  }, {});\n}\nexport function generate(node, key, rootProps) {\n  if (!rootProps) {\n    return /*#__PURE__*/React.createElement(node.tag, _objectSpread({\n      key: key\n    }, normalizeAttrs(node.attrs)), (node.children || []).map(function (child, index) {\n      return generate(child, \"\".concat(key, \"-\").concat(node.tag, \"-\").concat(index));\n    }));\n  }\n  return /*#__PURE__*/React.createElement(node.tag, _objectSpread(_objectSpread({\n    key: key\n  }, normalizeAttrs(node.attrs)), rootProps), (node.children || []).map(function (child, index) {\n    return generate(child, \"\".concat(key, \"-\").concat(node.tag, \"-\").concat(index));\n  }));\n}\nexport function getSecondaryColor(primaryColor) {\n  // choose the second color\n  return generateColor(primaryColor)[0];\n}\nexport function normalizeTwoToneColors(twoToneColor) {\n  if (!twoToneColor) {\n    return [];\n  }\n  return Array.isArray(twoToneColor) ? twoToneColor : [twoToneColor];\n}\n\n// These props make sure that the SVG behaviours like general text.\n// Reference: https://blog.prototypr.io/align-svg-icons-to-text-and-say-goodbye-to-font-icons-d44b3d7b26b4\nexport var svgBaseProps = {\n  width: '1em',\n  height: '1em',\n  fill: 'currentColor',\n  'aria-hidden': 'true',\n  focusable: 'false'\n};\nexport var iconStyles = \"\\n.anticon {\\n  display: inline-flex;\\n  align-items: center;\\n  color: inherit;\\n  font-style: normal;\\n  line-height: 0;\\n  text-align: center;\\n  text-transform: none;\\n  vertical-align: -0.125em;\\n  text-rendering: optimizeLegibility;\\n  -webkit-font-smoothing: antialiased;\\n  -moz-osx-font-smoothing: grayscale;\\n}\\n\\n.anticon > * {\\n  line-height: 1;\\n}\\n\\n.anticon svg {\\n  display: inline-block;\\n}\\n\\n.anticon::before {\\n  display: none;\\n}\\n\\n.anticon .anticon-icon {\\n  display: block;\\n}\\n\\n.anticon[tabindex] {\\n  cursor: pointer;\\n}\\n\\n.anticon-spin::before,\\n.anticon-spin {\\n  display: inline-block;\\n  -webkit-animation: loadingCircle 1s infinite linear;\\n  animation: loadingCircle 1s infinite linear;\\n}\\n\\n@-webkit-keyframes loadingCircle {\\n  100% {\\n    -webkit-transform: rotate(360deg);\\n    transform: rotate(360deg);\\n  }\\n}\\n\\n@keyframes loadingCircle {\\n  100% {\\n    -webkit-transform: rotate(360deg);\\n    transform: rotate(360deg);\\n  }\\n}\\n\";\nexport var useInsertStyles = function useInsertStyles(eleRef) {\n  var _useContext = useContext(IconContext),\n    csp = _useContext.csp,\n    prefixCls = _useContext.prefixCls;\n  var mergedStyleStr = iconStyles;\n  if (prefixCls) {\n    mergedStyleStr = mergedStyleStr.replace(/anticon/g, prefixCls);\n  }\n  useEffect(function () {\n    var ele = eleRef.current;\n    var shadowRoot = getShadowRoot(ele);\n    updateCSS(mergedStyleStr, '@ant-design-icons', {\n      prepend: true,\n      csp: csp,\n      attachTo: shadowRoot\n    });\n  }, []);\n};","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nvar _excluded = [\"icon\", \"className\", \"onClick\", \"style\", \"primaryColor\", \"secondaryColor\"];\nimport * as React from 'react';\nimport { generate, getSecondaryColor, isIconDefinition, warning, useInsertStyles } from \"../utils\";\nvar twoToneColorPalette = {\n  primaryColor: '#333',\n  secondaryColor: '#E6E6E6',\n  calculated: false\n};\nfunction setTwoToneColors(_ref) {\n  var primaryColor = _ref.primaryColor,\n    secondaryColor = _ref.secondaryColor;\n  twoToneColorPalette.primaryColor = primaryColor;\n  twoToneColorPalette.secondaryColor = secondaryColor || getSecondaryColor(primaryColor);\n  twoToneColorPalette.calculated = !!secondaryColor;\n}\nfunction getTwoToneColors() {\n  return _objectSpread({}, twoToneColorPalette);\n}\nvar IconBase = function IconBase(props) {\n  var icon = props.icon,\n    className = props.className,\n    onClick = props.onClick,\n    style = props.style,\n    primaryColor = props.primaryColor,\n    secondaryColor = props.secondaryColor,\n    restProps = _objectWithoutProperties(props, _excluded);\n  var svgRef = React.useRef();\n  var colors = twoToneColorPalette;\n  if (primaryColor) {\n    colors = {\n      primaryColor: primaryColor,\n      secondaryColor: secondaryColor || getSecondaryColor(primaryColor)\n    };\n  }\n  useInsertStyles(svgRef);\n  warning(isIconDefinition(icon), \"icon should be icon definiton, but got \".concat(icon));\n  if (!isIconDefinition(icon)) {\n    return null;\n  }\n  var target = icon;\n  if (target && typeof target.icon === 'function') {\n    target = _objectSpread(_objectSpread({}, target), {}, {\n      icon: target.icon(colors.primaryColor, colors.secondaryColor)\n    });\n  }\n  return generate(target.icon, \"svg-\".concat(target.name), _objectSpread(_objectSpread({\n    className: className,\n    onClick: onClick,\n    style: style,\n    'data-icon': target.name,\n    width: '1em',\n    height: '1em',\n    fill: 'currentColor',\n    'aria-hidden': 'true'\n  }, restProps), {}, {\n    ref: svgRef\n  }));\n};\nIconBase.displayName = 'IconReact';\nIconBase.getTwoToneColors = getTwoToneColors;\nIconBase.setTwoToneColors = setTwoToneColors;\nexport default IconBase;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport ReactIcon from \"./IconBase\";\nimport { normalizeTwoToneColors } from \"../utils\";\nexport function setTwoToneColor(twoToneColor) {\n  var _normalizeTwoToneColo = normalizeTwoToneColors(twoToneColor),\n    _normalizeTwoToneColo2 = _slicedToArray(_normalizeTwoToneColo, 2),\n    primaryColor = _normalizeTwoToneColo2[0],\n    secondaryColor = _normalizeTwoToneColo2[1];\n  return ReactIcon.setTwoToneColors({\n    primaryColor: primaryColor,\n    secondaryColor: secondaryColor\n  });\n}\nexport function getTwoToneColor() {\n  var colors = ReactIcon.getTwoToneColors();\n  if (!colors.calculated) {\n    return colors.primaryColor;\n  }\n  return [colors.primaryColor, colors.secondaryColor];\n}","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"className\", \"icon\", \"spin\", \"rotate\", \"tabIndex\", \"onClick\", \"twoToneColor\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { blue } from '@ant-design/colors';\nimport Context from \"./Context\";\nimport ReactIcon from \"./IconBase\";\nimport { getTwoToneColor, setTwoToneColor } from \"./twoTonePrimaryColor\";\nimport { normalizeTwoToneColors } from \"../utils\";\n// Initial setting\n// should move it to antd main repo?\nsetTwoToneColor(blue.primary);\n\n// https://github.com/DefinitelyTyped/DefinitelyTyped/issues/34757#issuecomment-488848720\n\nvar Icon = /*#__PURE__*/React.forwardRef(function (props, ref) {\n  var className = props.className,\n    icon = props.icon,\n    spin = props.spin,\n    rotate = props.rotate,\n    tabIndex = props.tabIndex,\n    onClick = props.onClick,\n    twoToneColor = props.twoToneColor,\n    restProps = _objectWithoutProperties(props, _excluded);\n  var _React$useContext = React.useContext(Context),\n    _React$useContext$pre = _React$useContext.prefixCls,\n    prefixCls = _React$useContext$pre === void 0 ? 'anticon' : _React$useContext$pre,\n    rootClassName = _React$useContext.rootClassName;\n  var classString = classNames(rootClassName, prefixCls, _defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-\").concat(icon.name), !!icon.name), \"\".concat(prefixCls, \"-spin\"), !!spin || icon.name === 'loading'), className);\n  var iconTabIndex = tabIndex;\n  if (iconTabIndex === undefined && onClick) {\n    iconTabIndex = -1;\n  }\n  var svgStyle = rotate ? {\n    msTransform: \"rotate(\".concat(rotate, \"deg)\"),\n    transform: \"rotate(\".concat(rotate, \"deg)\")\n  } : undefined;\n  var _normalizeTwoToneColo = normalizeTwoToneColors(twoToneColor),\n    _normalizeTwoToneColo2 = _slicedToArray(_normalizeTwoToneColo, 2),\n    primaryColor = _normalizeTwoToneColo2[0],\n    secondaryColor = _normalizeTwoToneColo2[1];\n  return /*#__PURE__*/React.createElement(\"span\", _extends({\n    role: \"img\",\n    \"aria-label\": icon.name\n  }, restProps, {\n    ref: ref,\n    tabIndex: iconTabIndex,\n    onClick: onClick,\n    className: classString\n  }), /*#__PURE__*/React.createElement(ReactIcon, {\n    icon: icon,\n    primaryColor: primaryColor,\n    secondaryColor: secondaryColor,\n    style: svgStyle\n  }));\n});\nIcon.displayName = 'AntdIcon';\nIcon.getTwoToneColor = getTwoToneColor;\nIcon.setTwoToneColor = setTwoToneColor;\nexport default Icon;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport useEvent from \"./useEvent\";\nimport { useLayoutUpdateEffect } from \"./useLayoutEffect\";\nimport useState from \"./useState\";\n/** We only think `undefined` is empty */\nfunction hasValue(value) {\n  return value !== undefined;\n}\n\n/**\n * Similar to `useState` but will use props value if provided.\n * Note that internal use rc-util `useState` hook.\n */\nexport default function useMergedState(defaultStateValue, option) {\n  var _ref = option || {},\n    defaultValue = _ref.defaultValue,\n    value = _ref.value,\n    onChange = _ref.onChange,\n    postState = _ref.postState;\n\n  // ======================= Init =======================\n  var _useState = useState(function () {\n      if (hasValue(value)) {\n        return value;\n      } else if (hasValue(defaultValue)) {\n        return typeof defaultValue === 'function' ? defaultValue() : defaultValue;\n      } else {\n        return typeof defaultStateValue === 'function' ? defaultStateValue() : defaultStateValue;\n      }\n    }),\n    _useState2 = _slicedToArray(_useState, 2),\n    innerValue = _useState2[0],\n    setInnerValue = _useState2[1];\n  var mergedValue = value !== undefined ? value : innerValue;\n  var postMergedValue = postState ? postState(mergedValue) : mergedValue;\n\n  // ====================== Change ======================\n  var onChangeFn = useEvent(onChange);\n  var _useState3 = useState([mergedValue]),\n    _useState4 = _slicedToArray(_useState3, 2),\n    prevValue = _useState4[0],\n    setPrevValue = _useState4[1];\n  useLayoutUpdateEffect(function () {\n    var prev = prevValue[0];\n    if (innerValue !== prev) {\n      onChangeFn(innerValue, prev);\n    }\n  }, [prevValue]);\n\n  // Sync value back to `undefined` when it from control to un-control\n  useLayoutUpdateEffect(function () {\n    if (!hasValue(value)) {\n      setInnerValue(value);\n    }\n  }, [value]);\n\n  // ====================== Update ======================\n  var triggerChange = useEvent(function (updater, ignoreDestroy) {\n    setInnerValue(updater, ignoreDestroy);\n    setPrevValue([mergedValue], ignoreDestroy);\n  });\n  return [postMergedValue, triggerChange];\n}","import { useStyleRegister } from '@ant-design/cssinjs';\nimport { resetIcon } from '../../style';\nimport useToken from '../useToken';\nconst useResetIconStyle = (iconPrefixCls, csp) => {\n  const [theme, token] = useToken();\n  // Generate style for icons\n  return useStyleRegister({\n    theme,\n    token,\n    hashId: '',\n    path: ['ant-design-icons', iconPrefixCls],\n    nonce: () => csp === null || csp === void 0 ? void 0 : csp.nonce,\n    layer: {\n      name: 'antd'\n    }\n  }, () => [{\n    [`.${iconPrefixCls}`]: Object.assign(Object.assign({}, resetIcon()), {\n      [`.${iconPrefixCls} .${iconPrefixCls}-icon`]: {\n        display: 'block'\n      }\n    })\n  }]);\n};\nexport default useResetIconStyle;","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.stringSimilarity = void 0;\n/* global exports, Map */\n/**\n * Calculate similarity between two strings\n * @param {string} str1 First string to match\n * @param {string} str2 Second string to match\n * @param {number} [substringLength=2] Optional. Length of substring to be used in calculating similarity. Default 2.\n * @param {boolean} [caseSensitive=false] Optional. Whether you want to consider case in string matching. Default false;\n * @returns Number between 0 and 1, with 0 being a low match score.\n */\nvar stringSimilarity = function (str1, str2, substringLength, caseSensitive) {\n    if (substringLength === void 0) { substringLength = 2; }\n    if (caseSensitive === void 0) { caseSensitive = false; }\n    if (!caseSensitive) {\n        str1 = str1.toLowerCase();\n        str2 = str2.toLowerCase();\n    }\n    if (str1.length < substringLength || str2.length < substringLength)\n        return 0;\n    var map = new Map();\n    for (var i = 0; i < str1.length - (substringLength - 1); i++) {\n        var substr1 = str1.substr(i, substringLength);\n        map.set(substr1, map.has(substr1) ? map.get(substr1) + 1 : 1);\n    }\n    var match = 0;\n    for (var j = 0; j < str2.length - (substringLength - 1); j++) {\n        var substr2 = str2.substr(j, substringLength);\n        var count = map.has(substr2) ? map.get(substr2) : 0;\n        if (count > 0) {\n            map.set(substr2, count - 1);\n            match++;\n        }\n    }\n    return (match * 2) / (str1.length + str2.length - ((substringLength - 1) * 2));\n};\nexports.stringSimilarity = stringSimilarity;\nexports.default = exports.stringSimilarity;\n//# sourceMappingURL=string-similarity.js.map","import { useState } from 'react';\n\n/**\n * A convenience hook around `useState` designed to be paired with\n * the component [callback ref](https://reactjs.org/docs/refs-and-the-dom.html#callback-refs) api.\n * Callback refs are useful over `useRef()` when you need to respond to the ref being set\n * instead of lazily accessing it in an effect.\n *\n * ```ts\n * const [element, attachRef] = useCallbackRef<HTMLDivElement>()\n *\n * useEffect(() => {\n *   if (!element) return\n *\n *   const calendar = new FullCalendar.Calendar(element)\n *\n *   return () => {\n *     calendar.destroy()\n *   }\n * }, [element])\n *\n * return <div ref={attachRef} />\n * ```\n *\n * @category refs\n */\nexport default function useCallbackRef() {\n  return useState(null);\n}","const pkg = require('../package.json');\nlet beacon = null;\n\nconst getBeacon = (Beacon, delay) => {\n  if (!beacon) {\n    // 生成 beacon\n    if (typeof Beacon !== 'function') {\n      throw new Error('Beacon not found');\n    }\n    beacon = new Beacon({\n      appkey: '0WEB05PY6MHRGK0U',\n      versionCode: pkg.version,\n      channelID: 'js_sdk', //渠道,选填\n      openid: 'openid', // 用户id, 选填\n      unionid: 'unid', //用户unionid , 类似idfv,选填\n      strictMode: false, //严苛模式开关, 打开严苛模式会主动抛出异常, 上线请务必关闭!!!\n      delay, // 普通事件延迟上报时间(单位毫秒), 默认1000(1秒),选填\n      sessionDuration: 60 * 1000, // session变更的时间间隔, 一个用户持续30分钟(默认值)没有任何上报则算另一次 session,每变更一次session上报一次启动事件(rqd_applaunched),使用毫秒(ms),最小值30秒,选填\n    });\n  }\n  return beacon;\n};\n\n// 毫秒转秒\nconst ms2s = function (ms) {\n  if (!ms || ms < 0) return 0;\n  return (ms / 1000).toFixed(3);\n};\n\nconst utils = {\n  // 生成uid 每个链路对应唯一一条uid\n  getUid() {\n    var S4 = function () {\n      return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);\n    };\n    return S4() + S4() + '-' + S4() + '-' + S4() + '-' + S4() + '-' + S4() + S4() + S4();\n  },\n  // 获取网络类型 4g ｜ wifi\n  getNetType() {\n    if (typeof navigator === 'object') {\n      const connection = navigator.connection || navigator.mozConnection || navigator.webkitConnection;\n      return connection?.type || connection?.effectiveType || 'unknown';\n    }\n    return 'unknown';\n  },\n  // http | https\n  getProtocol() {\n    if (typeof location === 'object') {\n      return location.protocol.replace(/:/, '');\n    }\n    return 'unknown protocol';\n  },\n  // 获取pc端操作系统类型\n  getOsType() {\n    if (typeof navigator !== 'object') {\n      return 'unknown os';\n    }\n    var agent = navigator.userAgent.toLowerCase();\n    var isMac = /macintosh|mac os x/i.test(navigator.userAgent);\n    if (agent.indexOf('win32') >= 0 || agent.indexOf('wow32') >= 0) {\n      return 'win32';\n    }\n    if (agent.indexOf('win64') >= 0 || agent.indexOf('wow64') >= 0) {\n      return 'win64';\n    }\n    if (isMac) {\n      return 'mac';\n    }\n    return 'unknown os';\n  },\n  isMobile() {\n    const exp =\n      /(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i;\n    if (typeof navigator === 'object' && navigator.userAgent.match(exp)) {\n      return true; // 移动端\n    }\n    return false; // PC端\n  },\n  isAndroid() {\n    const exp = /(Android|Adr|Linux)/i;\n    if (typeof navigator === 'object' && navigator.userAgent.match(exp)) {\n      return true;\n    }\n    return false;\n  },\n  isIOS() {\n    const exp = /(iPhone|iPod|iPad|iOS)/i;\n    if (typeof navigator === 'object' && navigator.userAgent.match(exp)) {\n      return true;\n    }\n    return false;\n  },\n  isOtherMobile() {\n    return isMobile && !isAndroid && !isIOS;\n  },\n  getUA() {\n    if (typeof navigator !== 'object') {\n      return 'unknown device';\n    }\n    const explorer = navigator.userAgent;\n    return explorer;\n  },\n};\n\nconst isMobile = utils.isMobile();\nconst mobileOsType = utils.isAndroid() ? 'android' : utils.isIOS ? 'ios' : 'other_mobile';\nconst pcOsType = utils.getOsType();\nconst devicePlatform = isMobile ? mobileOsType : pcOsType;\nconst ua = utils.getUA();\nconst protocol = utils.getProtocol();\n\nconst transApiName = (api) => {\n  if (['putObject', 'sliceUploadFile', 'uploadFile', 'uploadFiles'].includes(api)) {\n    return 'UploadTask';\n  } else if (api === 'getObject') {\n    return 'DownloadTask';\n  } else if (['putObjectCopy', 'sliceCopyFile'].includes(api)) {\n    return 'CopyTask';\n  }\n  return api;\n};\n\n// 上报参数驼峰改下划线\nfunction camel2underline(key) {\n  return key.replace(/([A-Z])/g, '_$1').toLowerCase();\n}\nfunction formatParams(params) {\n  const formattedParams = {};\n  const successKeys = [\n    'sdkVersionName',\n    'sdkVersionCode',\n    'osName',\n    'networkType',\n    'requestName',\n    'requestResult',\n    'bucket',\n    'region',\n    'appid',\n    'accelerate',\n    'url',\n    'host',\n    'requestPath',\n    'userAgent',\n    'networkProtocol',\n    'httpMethod',\n    'httpSize',\n    'httpSpeed',\n    'httpTookTime',\n    'httpMd5',\n    'httpSign',\n    'httpFullTime',\n    'httpDomain',\n    'partNumber',\n    'httpRetryTimes',\n    'customId',\n    'traceId',\n    'realApi',\n  ];\n  const failureKeys = [\n    ...successKeys,\n    'errorNode',\n    'errorCode',\n    'errorName',\n    'errorMessage',\n    'errorRequestId',\n    'errorHttpCode',\n    'errorServiceName',\n    'errorType',\n    'fullError',\n  ];\n  // 需要上报的参数字段\n  const reporterKeys = params.requestResult === 'Success' ? successKeys : failureKeys;\n  for (let key in params) {\n    if (!reporterKeys.includes(key)) continue;\n    const formattedKey = camel2underline(key);\n    formattedParams[formattedKey] = params[key];\n  }\n  formattedParams['request_name'] = params.realApi ? transApiName(params.realApi) : params.requestName;\n  return formattedParams;\n}\n\n// 链路追踪器\nclass Tracker {\n  constructor(opt) {\n    const {\n      parent,\n      traceId,\n      bucket,\n      region,\n      apiName,\n      realApi,\n      httpMethod,\n      fileKey,\n      fileSize,\n      accelerate,\n      customId,\n      delay,\n      deepTracker,\n      Beacon,\n      clsReporter,\n    } = opt;\n    const appid = (bucket && bucket.substr(bucket.lastIndexOf('-') + 1)) || '';\n    this.parent = parent;\n    this.deepTracker = deepTracker;\n    this.delay = delay;\n    if (clsReporter && !this.clsReporter) {\n      this.clsReporter = clsReporter;\n    }\n    // 上报用到的字段\n    this.params = {\n      // 通用字段\n      sdkVersionName: 'cos-js-sdk-v5',\n      sdkVersionCode: pkg.version,\n      osName: devicePlatform,\n      networkType: '',\n\n      requestName: apiName || '',\n      requestResult: '', // sdk api调用结果Success、Failure\n      realApi,\n\n      bucket,\n      region,\n      accelerate,\n      httpMethod,\n      url: '', // 请求url\n      host: '',\n      httpDomain: '',\n      requestPath: fileKey || '',\n      userAgent: ua,\n      networkProtocol: protocol,\n\n      errorType: '',\n      errorCode: '',\n      errorName: '',\n      errorMessage: '',\n      errorRequestId: '',\n      errorHttpCode: 0,\n      errorServiceName: '',\n      errorNode: '',\n\n      httpTookTime: 0, // http整体耗时\n      httpSize: fileSize || 0, // 主要是文件大小，大小 B\n      httpMd5: 0, // MD5耗时\n      httpSign: 0, // 计算签名耗时\n      httpFullTime: 0, // 任务整体耗时(包括md5、签名等)\n      httpSpeed: 0, // 主要关注上传速度，KB/s\n\n      md5StartTime: 0, // md5计算开始时间\n      md5EndTime: 0, // md5计算结束时间\n      signStartTime: 0, // 计算签名开始时间\n      signEndTime: 0, // 计算签名结束时间\n      httpStartTime: 0, // 发起网络请求开始时间\n      httpEndTime: 0, // 网路请求结束时间\n      startTime: new Date().getTime(), // sdk api调用起始时间，不是纯网络耗时\n      endTime: 0, //  sdk api调用结束时间，不是纯网络耗时\n\n      // js补充字段\n      traceId: traceId || utils.getUid(), // 每条上报唯一标识\n      appid,\n      partNumber: 0, // 分块上传编号\n      httpRetryTimes: 0, // sdk内部发起的请求重试\n      customId: customId || '', // 业务id\n      partTime: 0,\n    };\n    if (Beacon) {\n      this.beacon = getBeacon(Beacon, delay);\n    }\n  }\n\n  // 格式化sdk回调\n  formatResult(err, data) {\n    const now = new Date().getTime();\n    const networkType = utils.getNetType();\n    const errorCode = err ? err?.code || err?.error?.code || err?.error?.Code : '';\n    const errorMessage = err ? err?.message || err?.error?.message || err?.error?.Message : '';\n    const errorName = errorMessage;\n    const errorServiceName = err ? err?.resource || err?.error?.resource || err?.error?.Resource : '';\n    const errorHttpCode = err ? err?.statusCode : data.statusCode;\n    const requestId = err\n      ? err?.headers && err?.headers['x-cos-request-id']\n      : data?.headers && data?.headers['x-cos-request-id'];\n    const errorType = err ? (requestId ? 'Server' : 'Client') : '';\n\n    if (this.params.requestName === 'getObject') {\n      this.params.httpSize = data ? data.headers && data.headers['content-length'] : 0;\n    }\n\n    // 上报 sliceUploadFile || uploadFile || uploadFiles 命中分块上传时\n    const isSliceUploadFile = this.params.realApi === 'sliceUploadFile';\n    const isSliceCopyFile = this.params.realApi === 'sliceCopyFile';\n\n    if (isSliceUploadFile || isSliceCopyFile) {\n      const speed = this.params.httpSize / 1024 / this.params.partTime;\n      Object.assign(this.params, { httpSpeed: speed < 0 ? 0 : speed.toFixed(3) });\n    } else {\n      const httpFullTime = now - this.params.startTime;\n      const httpTookTime = this.params.httpEndTime - this.params.httpStartTime;\n      const speed = this.params.httpSize / 1024 / (httpTookTime / 1000);\n      const httpMd5 = this.params.md5EndTime - this.params.md5StartTime;\n      const httpSign = this.params.signEndTime - this.params.signStartTime;\n\n      if (this.parent) {\n        this.parent.addParamValue('httpTookTime', ms2s(httpTookTime));\n        this.parent.addParamValue('httpFullTime', ms2s(httpFullTime));\n        this.parent.addParamValue('httpMd5', ms2s(httpMd5));\n        this.parent.addParamValue('httpSign', ms2s(httpSign));\n        if (['multipartUpload', 'uploadPartCopy', 'putObjectCopy'].includes(this.params.requestName)) {\n          // 只有小分块上传|复制才累计纯请求耗时，计算速度时用到\n          this.parent.addParamValue('partTime', ms2s(httpTookTime));\n        }\n      }\n      Object.assign(this.params, {\n        httpFullTime: ms2s(httpFullTime),\n        httpMd5: ms2s(httpMd5),\n        httpSign: ms2s(httpSign),\n        httpTookTime: ms2s(httpTookTime),\n        httpSpeed: speed < 0 ? 0 : speed.toFixed(3),\n      });\n    }\n\n    Object.assign(this.params, {\n      networkType,\n      requestResult: err ? 'Failure' : 'Success',\n      errorType,\n      errorCode,\n      errorHttpCode,\n      errorName,\n      errorMessage,\n      errorServiceName,\n      errorRequestId: requestId,\n    });\n\n    if (err && (!errorCode || !errorMessage)) {\n      // 暂存全量err一段时间 观察是否所有err格式都可被解析\n      this.params.fullError = err ? JSON.stringify(err) : '';\n    }\n\n    if (this.params.url) {\n      try {\n        const execRes = /^http(s)?:\\/\\/(.*?)\\//.exec(this.params.url);\n        this.params.host = execRes[2];\n      } catch (e) {\n        this.params.host = this.params.url;\n      }\n      this.params.httpDomain = this.params.host;\n    }\n  }\n\n  // 上报\n  report(err, data) {\n    if (!this.beacon && !this.clsReporter) return;\n    this.formatResult(err, data);\n    const formattedParams = formatParams(this.params);\n    if (this.beacon) {\n      this.sendEventsToBeacon(formattedParams);\n    }\n    if (this.clsReporter) {\n      this.sendEventsToCLS(formattedParams);\n    }\n  }\n\n  // 设置当前链路的参数\n  setParams(params) {\n    Object.assign(this.params, params);\n  }\n\n  addParamValue(key, value) {\n    this.params[key] = (+this.params[key] + +value).toFixed(3);\n  }\n\n  // 上报灯塔\n  sendEventsToBeacon(formattedParams) {\n    // DeepTracker模式下才会上报分块上传内部细节\n    const isSliceUploadFile =\n      this.params.requestName === 'sliceUploadFile' || this.params.realApi === 'sliceUploadFile';\n    if (isSliceUploadFile && !this.deepTracker) {\n      return;\n    }\n    const eventCode = 'qcloud_track_cos_sdk';\n\n    if (this.delay === 0) {\n      // 实时上报\n      this.beacon && this.beacon.onDirectUserAction(eventCode, formattedParams);\n    } else {\n      // 周期性上报\n      this.beacon && this.beacon.onUserAction(eventCode, formattedParams);\n    }\n  }\n\n  // 上报 cls\n  sendEventsToCLS(formattedParams) {\n    // 是否实时上报\n    const immediate = !!(this.delay === 0);\n\n    this.clsReporter.log(formattedParams, immediate);\n  }\n\n  // 生成子实例，与父所属一个链路，可用于分块上传内部流程上报单个分块操作\n  generateSubTracker(subParams) {\n    Object.assign(subParams, {\n      parent: this,\n      deepTracker: this.deepTracker,\n      traceId: this.params.traceId,\n      bucket: this.params.bucket,\n      region: this.params.region,\n      accelerate: this.params.accelerate,\n      fileKey: this.params.requestPath,\n      customId: this.params.customId,\n      delay: this.delay,\n      clsReporter: this.clsReporter,\n    });\n    return new Tracker(subParams);\n  }\n}\n\nmodule.exports = Tracker;\n","'use strict';\n\nclass XmlNode{\n  constructor(tagname) {\n    this.tagname = tagname;\n    this.child = []; //nested tags, text, cdata, comments in order\n    this[\":@\"] = {}; //attributes map\n  }\n  add(key,val){\n    // this.child.push( {name : key, val: val, isCdata: isCdata });\n    if(key === \"__proto__\") key = \"#__proto__\";\n    this.child.push( {[key]: val });\n  }\n  addChild(node) {\n    if(node.tagname === \"__proto__\") node.tagname = \"#__proto__\";\n    if(node[\":@\"] && Object.keys(node[\":@\"]).length > 0){\n      this.child.push( { [node.tagname]: node.child, [\":@\"]: node[\":@\"] });\n    }else{\n      this.child.push( { [node.tagname]: node.child });\n    }\n  };\n};\n\n\nmodule.exports = XmlNode;","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"children\"];\nimport toArray from \"rc-util/es/Children/toArray\";\nimport omit from \"rc-util/es/omit\";\nimport warning from \"rc-util/es/warning\";\nimport getEntity from \"./keyUtil\";\nexport function getPosition(level, index) {\n  return \"\".concat(level, \"-\").concat(index);\n}\nexport function isTreeNode(node) {\n  return node && node.type && node.type.isTreeNode;\n}\nexport function getKey(key, pos) {\n  if (key !== null && key !== undefined) {\n    return key;\n  }\n  return pos;\n}\nexport function fillFieldNames(fieldNames) {\n  var _ref = fieldNames || {},\n    title = _ref.title,\n    _title = _ref._title,\n    key = _ref.key,\n    children = _ref.children;\n  var mergedTitle = title || 'title';\n  return {\n    title: mergedTitle,\n    _title: _title || [mergedTitle],\n    key: key || 'key',\n    children: children || 'children'\n  };\n}\n\n/**\n * Warning if TreeNode do not provides key\n */\nexport function warningWithoutKey(treeData, fieldNames) {\n  var keys = new Map();\n  function dig(list) {\n    var path = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n    (list || []).forEach(function (treeNode) {\n      var key = treeNode[fieldNames.key];\n      var children = treeNode[fieldNames.children];\n      warning(key !== null && key !== undefined, \"Tree node must have a certain key: [\".concat(path).concat(key, \"]\"));\n      var recordKey = String(key);\n      warning(!keys.has(recordKey) || key === null || key === undefined, \"Same 'key' exist in the Tree: \".concat(recordKey));\n      keys.set(recordKey, true);\n      dig(children, \"\".concat(path).concat(recordKey, \" > \"));\n    });\n  }\n  dig(treeData);\n}\n\n/**\n * Convert `children` of Tree into `treeData` structure.\n */\nexport function convertTreeToData(rootNodes) {\n  function dig(node) {\n    var treeNodes = toArray(node);\n    return treeNodes.map(function (treeNode) {\n      // Filter invalidate node\n      if (!isTreeNode(treeNode)) {\n        warning(!treeNode, 'Tree/TreeNode can only accept TreeNode as children.');\n        return null;\n      }\n      var key = treeNode.key;\n      var _treeNode$props = treeNode.props,\n        children = _treeNode$props.children,\n        rest = _objectWithoutProperties(_treeNode$props, _excluded);\n      var dataNode = _objectSpread({\n        key: key\n      }, rest);\n      var parsedChildren = dig(children);\n      if (parsedChildren.length) {\n        dataNode.children = parsedChildren;\n      }\n      return dataNode;\n    }).filter(function (dataNode) {\n      return dataNode;\n    });\n  }\n  return dig(rootNodes);\n}\n\n/**\n * Flat nest tree data into flatten list. This is used for virtual list render.\n * @param treeNodeList Origin data node list\n * @param expandedKeys\n * need expanded keys, provides `true` means all expanded (used in `rc-tree-select`).\n */\nexport function flattenTreeData(treeNodeList, expandedKeys, fieldNames) {\n  var _fillFieldNames = fillFieldNames(fieldNames),\n    fieldTitles = _fillFieldNames._title,\n    fieldKey = _fillFieldNames.key,\n    fieldChildren = _fillFieldNames.children;\n  var expandedKeySet = new Set(expandedKeys === true ? [] : expandedKeys);\n  var flattenList = [];\n  function dig(list) {\n    var parent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n    return list.map(function (treeNode, index) {\n      var pos = getPosition(parent ? parent.pos : '0', index);\n      var mergedKey = getKey(treeNode[fieldKey], pos);\n\n      // Pick matched title in field title list\n      var mergedTitle;\n      for (var i = 0; i < fieldTitles.length; i += 1) {\n        var fieldTitle = fieldTitles[i];\n        if (treeNode[fieldTitle] !== undefined) {\n          mergedTitle = treeNode[fieldTitle];\n          break;\n        }\n      }\n\n      // Add FlattenDataNode into list\n      // We use `Object.assign` here to save perf since babel's `objectSpread` has perf issue\n      var flattenNode = Object.assign(omit(treeNode, [].concat(_toConsumableArray(fieldTitles), [fieldKey, fieldChildren])), {\n        title: mergedTitle,\n        key: mergedKey,\n        parent: parent,\n        pos: pos,\n        children: null,\n        data: treeNode,\n        isStart: [].concat(_toConsumableArray(parent ? parent.isStart : []), [index === 0]),\n        isEnd: [].concat(_toConsumableArray(parent ? parent.isEnd : []), [index === list.length - 1])\n      });\n      flattenList.push(flattenNode);\n\n      // Loop treeNode children\n      if (expandedKeys === true || expandedKeySet.has(mergedKey)) {\n        flattenNode.children = dig(treeNode[fieldChildren] || [], flattenNode);\n      } else {\n        flattenNode.children = [];\n      }\n      return flattenNode;\n    });\n  }\n  dig(treeNodeList);\n  return flattenList;\n}\n/**\n * Traverse all the data by `treeData`.\n * Please not use it out of the `rc-tree` since we may refactor this code.\n */\nexport function traverseDataNodes(dataNodes, callback,\n// To avoid too many params, let use config instead of origin param\nconfig) {\n  var mergedConfig = {};\n  if (_typeof(config) === 'object') {\n    mergedConfig = config;\n  } else {\n    mergedConfig = {\n      externalGetKey: config\n    };\n  }\n  mergedConfig = mergedConfig || {};\n\n  // Init config\n  var _mergedConfig = mergedConfig,\n    childrenPropName = _mergedConfig.childrenPropName,\n    externalGetKey = _mergedConfig.externalGetKey,\n    fieldNames = _mergedConfig.fieldNames;\n  var _fillFieldNames2 = fillFieldNames(fieldNames),\n    fieldKey = _fillFieldNames2.key,\n    fieldChildren = _fillFieldNames2.children;\n  var mergeChildrenPropName = childrenPropName || fieldChildren;\n\n  // Get keys\n  var syntheticGetKey;\n  if (externalGetKey) {\n    if (typeof externalGetKey === 'string') {\n      syntheticGetKey = function syntheticGetKey(node) {\n        return node[externalGetKey];\n      };\n    } else if (typeof externalGetKey === 'function') {\n      syntheticGetKey = function syntheticGetKey(node) {\n        return externalGetKey(node);\n      };\n    }\n  } else {\n    syntheticGetKey = function syntheticGetKey(node, pos) {\n      return getKey(node[fieldKey], pos);\n    };\n  }\n\n  // Process\n  function processNode(node, index, parent, pathNodes) {\n    var children = node ? node[mergeChildrenPropName] : dataNodes;\n    var pos = node ? getPosition(parent.pos, index) : '0';\n    var connectNodes = node ? [].concat(_toConsumableArray(pathNodes), [node]) : [];\n\n    // Process node if is not root\n    if (node) {\n      var key = syntheticGetKey(node, pos);\n      var _data = {\n        node: node,\n        index: index,\n        pos: pos,\n        key: key,\n        parentPos: parent.node ? parent.pos : null,\n        level: parent.level + 1,\n        nodes: connectNodes\n      };\n      callback(_data);\n    }\n\n    // Process children node\n    if (children) {\n      children.forEach(function (subNode, subIndex) {\n        processNode(subNode, subIndex, {\n          node: node,\n          pos: pos,\n          level: parent ? parent.level + 1 : -1\n        }, connectNodes);\n      });\n    }\n  }\n  processNode(null);\n}\n/**\n * Convert `treeData` into entity records.\n */\nexport function convertDataToEntities(dataNodes) {\n  var _ref2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n    initWrapper = _ref2.initWrapper,\n    processEntity = _ref2.processEntity,\n    onProcessFinished = _ref2.onProcessFinished,\n    externalGetKey = _ref2.externalGetKey,\n    childrenPropName = _ref2.childrenPropName,\n    fieldNames = _ref2.fieldNames;\n  var /** @deprecated Use `config.externalGetKey` instead */\n  legacyExternalGetKey = arguments.length > 2 ? arguments[2] : undefined;\n  // Init config\n  var mergedExternalGetKey = externalGetKey || legacyExternalGetKey;\n  var posEntities = {};\n  var keyEntities = {};\n  var wrapper = {\n    posEntities: posEntities,\n    keyEntities: keyEntities\n  };\n  if (initWrapper) {\n    wrapper = initWrapper(wrapper) || wrapper;\n  }\n  traverseDataNodes(dataNodes, function (item) {\n    var node = item.node,\n      index = item.index,\n      pos = item.pos,\n      key = item.key,\n      parentPos = item.parentPos,\n      level = item.level,\n      nodes = item.nodes;\n    var entity = {\n      node: node,\n      nodes: nodes,\n      index: index,\n      key: key,\n      pos: pos,\n      level: level\n    };\n    var mergedKey = getKey(key, pos);\n    posEntities[pos] = entity;\n    keyEntities[mergedKey] = entity;\n\n    // Fill children\n    entity.parent = posEntities[parentPos];\n    if (entity.parent) {\n      entity.parent.children = entity.parent.children || [];\n      entity.parent.children.push(entity);\n    }\n    if (processEntity) {\n      processEntity(entity, wrapper);\n    }\n  }, {\n    externalGetKey: mergedExternalGetKey,\n    childrenPropName: childrenPropName,\n    fieldNames: fieldNames\n  });\n  if (onProcessFinished) {\n    onProcessFinished(wrapper);\n  }\n  return wrapper;\n}\n/**\n * Get TreeNode props with Tree props.\n */\nexport function getTreeNodeProps(key, _ref3) {\n  var expandedKeys = _ref3.expandedKeys,\n    selectedKeys = _ref3.selectedKeys,\n    loadedKeys = _ref3.loadedKeys,\n    loadingKeys = _ref3.loadingKeys,\n    checkedKeys = _ref3.checkedKeys,\n    halfCheckedKeys = _ref3.halfCheckedKeys,\n    dragOverNodeKey = _ref3.dragOverNodeKey,\n    dropPosition = _ref3.dropPosition,\n    keyEntities = _ref3.keyEntities;\n  var entity = getEntity(keyEntities, key);\n  var treeNodeProps = {\n    eventKey: key,\n    expanded: expandedKeys.indexOf(key) !== -1,\n    selected: selectedKeys.indexOf(key) !== -1,\n    loaded: loadedKeys.indexOf(key) !== -1,\n    loading: loadingKeys.indexOf(key) !== -1,\n    checked: checkedKeys.indexOf(key) !== -1,\n    halfChecked: halfCheckedKeys.indexOf(key) !== -1,\n    pos: String(entity ? entity.pos : ''),\n    // [Legacy] Drag props\n    // Since the interaction of drag is changed, the semantic of the props are\n    // not accuracy, I think it should be finally removed\n    dragOver: dragOverNodeKey === key && dropPosition === 0,\n    dragOverGapTop: dragOverNodeKey === key && dropPosition === -1,\n    dragOverGapBottom: dragOverNodeKey === key && dropPosition === 1\n  };\n  return treeNodeProps;\n}\nexport function convertNodePropsToEventData(props) {\n  var data = props.data,\n    expanded = props.expanded,\n    selected = props.selected,\n    checked = props.checked,\n    loaded = props.loaded,\n    loading = props.loading,\n    halfChecked = props.halfChecked,\n    dragOver = props.dragOver,\n    dragOverGapTop = props.dragOverGapTop,\n    dragOverGapBottom = props.dragOverGapBottom,\n    pos = props.pos,\n    active = props.active,\n    eventKey = props.eventKey;\n  var eventData = _objectSpread(_objectSpread({}, data), {}, {\n    expanded: expanded,\n    selected: selected,\n    checked: checked,\n    loaded: loaded,\n    loading: loading,\n    halfChecked: halfChecked,\n    dragOver: dragOver,\n    dragOverGapTop: dragOverGapTop,\n    dragOverGapBottom: dragOverGapBottom,\n    pos: pos,\n    active: active,\n    key: eventKey\n  });\n  if (!('props' in eventData)) {\n    Object.defineProperty(eventData, 'props', {\n      get: function get() {\n        warning(false, 'Second param return from event is node data instead of TreeNode instance. Please read value directly instead of reading from `props`.');\n        return props;\n      }\n    });\n  }\n  return eventData;\n}","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"children\"];\nimport * as React from 'react';\nexport var Context = /*#__PURE__*/React.createContext({});\nexport default function MotionProvider(_ref) {\n  var children = _ref.children,\n    props = _objectWithoutProperties(_ref, _excluded);\n  return /*#__PURE__*/React.createElement(Context.Provider, {\n    value: props\n  }, children);\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport * as React from 'react';\nvar DomWrapper = /*#__PURE__*/function (_React$Component) {\n  _inherits(DomWrapper, _React$Component);\n  var _super = _createSuper(DomWrapper);\n  function DomWrapper() {\n    _classCallCheck(this, DomWrapper);\n    return _super.apply(this, arguments);\n  }\n  _createClass(DomWrapper, [{\n    key: \"render\",\n    value: function render() {\n      return this.props.children;\n    }\n  }]);\n  return DomWrapper;\n}(React.Component);\nexport default DomWrapper;","export var STATUS_NONE = 'none';\nexport var STATUS_APPEAR = 'appear';\nexport var STATUS_ENTER = 'enter';\nexport var STATUS_LEAVE = 'leave';\nexport var STEP_NONE = 'none';\nexport var STEP_PREPARE = 'prepare';\nexport var STEP_START = 'start';\nexport var STEP_ACTIVE = 'active';\nexport var STEP_ACTIVATED = 'end';\n/**\n * Used for disabled motion case.\n * Prepare stage will still work but start & active will be skipped.\n */\nexport var STEP_PREPARED = 'prepared';","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport canUseDOM from \"rc-util/es/Dom/canUseDom\";\n// ================= Transition =================\n// Event wrapper. Copy from react source code\nfunction makePrefixMap(styleProp, eventName) {\n  var prefixes = {};\n  prefixes[styleProp.toLowerCase()] = eventName.toLowerCase();\n  prefixes[\"Webkit\".concat(styleProp)] = \"webkit\".concat(eventName);\n  prefixes[\"Moz\".concat(styleProp)] = \"moz\".concat(eventName);\n  prefixes[\"ms\".concat(styleProp)] = \"MS\".concat(eventName);\n  prefixes[\"O\".concat(styleProp)] = \"o\".concat(eventName.toLowerCase());\n  return prefixes;\n}\nexport function getVendorPrefixes(domSupport, win) {\n  var prefixes = {\n    animationend: makePrefixMap('Animation', 'AnimationEnd'),\n    transitionend: makePrefixMap('Transition', 'TransitionEnd')\n  };\n  if (domSupport) {\n    if (!('AnimationEvent' in win)) {\n      delete prefixes.animationend.animation;\n    }\n    if (!('TransitionEvent' in win)) {\n      delete prefixes.transitionend.transition;\n    }\n  }\n  return prefixes;\n}\nvar vendorPrefixes = getVendorPrefixes(canUseDOM(), typeof window !== 'undefined' ? window : {});\nvar style = {};\nif (canUseDOM()) {\n  var _document$createEleme = document.createElement('div');\n  style = _document$createEleme.style;\n}\nvar prefixedEventNames = {};\nexport function getVendorPrefixedEventName(eventName) {\n  if (prefixedEventNames[eventName]) {\n    return prefixedEventNames[eventName];\n  }\n  var prefixMap = vendorPrefixes[eventName];\n  if (prefixMap) {\n    var stylePropList = Object.keys(prefixMap);\n    var len = stylePropList.length;\n    for (var i = 0; i < len; i += 1) {\n      var styleProp = stylePropList[i];\n      if (Object.prototype.hasOwnProperty.call(prefixMap, styleProp) && styleProp in style) {\n        prefixedEventNames[eventName] = prefixMap[styleProp];\n        return prefixedEventNames[eventName];\n      }\n    }\n  }\n  return '';\n}\nvar internalAnimationEndName = getVendorPrefixedEventName('animationend');\nvar internalTransitionEndName = getVendorPrefixedEventName('transitionend');\nexport var supportTransition = !!(internalAnimationEndName && internalTransitionEndName);\nexport var animationEndName = internalAnimationEndName || 'animationend';\nexport var transitionEndName = internalTransitionEndName || 'transitionend';\nexport function getTransitionName(transitionName, transitionType) {\n  if (!transitionName) return null;\n  if (_typeof(transitionName) === 'object') {\n    var type = transitionType.replace(/-\\w/g, function (match) {\n      return match[1].toUpperCase();\n    });\n    return transitionName[type];\n  }\n  return \"\".concat(transitionName, \"-\").concat(transitionType);\n}","import * as React from 'react';\nimport { useRef } from 'react';\nimport { animationEndName, transitionEndName } from \"../util/motion\";\nexport default (function (onInternalMotionEnd) {\n  var cacheElementRef = useRef();\n\n  // Remove events\n  function removeMotionEvents(element) {\n    if (element) {\n      element.removeEventListener(transitionEndName, onInternalMotionEnd);\n      element.removeEventListener(animationEndName, onInternalMotionEnd);\n    }\n  }\n\n  // Patch events\n  function patchMotionEvents(element) {\n    if (cacheElementRef.current && cacheElementRef.current !== element) {\n      removeMotionEvents(cacheElementRef.current);\n    }\n    if (element && element !== cacheElementRef.current) {\n      element.addEventListener(transitionEndName, onInternalMotionEnd);\n      element.addEventListener(animationEndName, onInternalMotionEnd);\n\n      // Save as cache in case dom removed trigger by `motionDeadline`\n      cacheElementRef.current = element;\n    }\n  }\n\n  // Clean up when removed\n  React.useEffect(function () {\n    return function () {\n      removeMotionEvents(cacheElementRef.current);\n    };\n  }, []);\n  return [patchMotionEvents, removeMotionEvents];\n});","import canUseDom from \"rc-util/es/Dom/canUseDom\";\nimport { useEffect, useLayoutEffect } from 'react';\n\n// It's safe to use `useLayoutEffect` but the warning is annoying\nvar useIsomorphicLayoutEffect = canUseDom() ? useLayoutEffect : useEffect;\nexport default useIsomorphicLayoutEffect;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport useState from \"rc-util/es/hooks/useState\";\nimport * as React from 'react';\nimport { STEP_ACTIVATED, STEP_ACTIVE, STEP_NONE, STEP_PREPARE, STEP_PREPARED, STEP_START } from \"../interface\";\nimport useIsomorphicLayoutEffect from \"./useIsomorphicLayoutEffect\";\nimport useNextFrame from \"./useNextFrame\";\nvar FULL_STEP_QUEUE = [STEP_PREPARE, STEP_START, STEP_ACTIVE, STEP_ACTIVATED];\nvar SIMPLE_STEP_QUEUE = [STEP_PREPARE, STEP_PREPARED];\n\n/** Skip current step */\nexport var SkipStep = false;\n/** Current step should be update in */\nexport var DoStep = true;\nexport function isActive(step) {\n  return step === STEP_ACTIVE || step === STEP_ACTIVATED;\n}\nexport default (function (status, prepareOnly, callback) {\n  var _useState = useState(STEP_NONE),\n    _useState2 = _slicedToArray(_useState, 2),\n    step = _useState2[0],\n    setStep = _useState2[1];\n  var _useNextFrame = useNextFrame(),\n    _useNextFrame2 = _slicedToArray(_useNextFrame, 2),\n    nextFrame = _useNextFrame2[0],\n    cancelNextFrame = _useNextFrame2[1];\n  function startQueue() {\n    setStep(STEP_PREPARE, true);\n  }\n  var STEP_QUEUE = prepareOnly ? SIMPLE_STEP_QUEUE : FULL_STEP_QUEUE;\n  useIsomorphicLayoutEffect(function () {\n    if (step !== STEP_NONE && step !== STEP_ACTIVATED) {\n      var index = STEP_QUEUE.indexOf(step);\n      var nextStep = STEP_QUEUE[index + 1];\n      var result = callback(step);\n      if (result === SkipStep) {\n        // Skip when no needed\n        setStep(nextStep, true);\n      } else if (nextStep) {\n        // Do as frame for step update\n        nextFrame(function (info) {\n          function doNext() {\n            // Skip since current queue is ood\n            if (info.isCanceled()) return;\n            setStep(nextStep, true);\n          }\n          if (result === true) {\n            doNext();\n          } else {\n            // Only promise should be async\n            Promise.resolve(result).then(doNext);\n          }\n        });\n      }\n    }\n  }, [status, step]);\n  React.useEffect(function () {\n    return function () {\n      cancelNextFrame();\n    };\n  }, []);\n  return [startQueue, step];\n});","import raf from \"rc-util/es/raf\";\nimport * as React from 'react';\nexport default (function () {\n  var nextFrameRef = React.useRef(null);\n  function cancelNextFrame() {\n    raf.cancel(nextFrameRef.current);\n  }\n  function nextFrame(callback) {\n    var delay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2;\n    cancelNextFrame();\n    var nextFrameId = raf(function () {\n      if (delay <= 1) {\n        callback({\n          isCanceled: function isCanceled() {\n            return nextFrameId !== nextFrameRef.current;\n          }\n        });\n      } else {\n        nextFrame(callback, delay - 1);\n      }\n    });\n    nextFrameRef.current = nextFrameId;\n  }\n  React.useEffect(function () {\n    return function () {\n      cancelNextFrame();\n    };\n  }, []);\n  return [nextFrame, cancelNextFrame];\n});","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useEvent } from 'rc-util';\nimport useState from \"rc-util/es/hooks/useState\";\nimport useSyncState from \"rc-util/es/hooks/useSyncState\";\nimport * as React from 'react';\nimport { useEffect, useRef } from 'react';\nimport { STATUS_APPEAR, STATUS_ENTER, STATUS_LEAVE, STATUS_NONE, STEP_ACTIVE, STEP_PREPARE, STEP_PREPARED, STEP_START } from \"../interface\";\nimport useDomMotionEvents from \"./useDomMotionEvents\";\nimport useIsomorphicLayoutEffect from \"./useIsomorphicLayoutEffect\";\nimport useStepQueue, { DoStep, isActive, SkipStep } from \"./useStepQueue\";\nexport default function useStatus(supportMotion, visible, getElement, _ref) {\n  var _ref$motionEnter = _ref.motionEnter,\n    motionEnter = _ref$motionEnter === void 0 ? true : _ref$motionEnter,\n    _ref$motionAppear = _ref.motionAppear,\n    motionAppear = _ref$motionAppear === void 0 ? true : _ref$motionAppear,\n    _ref$motionLeave = _ref.motionLeave,\n    motionLeave = _ref$motionLeave === void 0 ? true : _ref$motionLeave,\n    motionDeadline = _ref.motionDeadline,\n    motionLeaveImmediately = _ref.motionLeaveImmediately,\n    onAppearPrepare = _ref.onAppearPrepare,\n    onEnterPrepare = _ref.onEnterPrepare,\n    onLeavePrepare = _ref.onLeavePrepare,\n    onAppearStart = _ref.onAppearStart,\n    onEnterStart = _ref.onEnterStart,\n    onLeaveStart = _ref.onLeaveStart,\n    onAppearActive = _ref.onAppearActive,\n    onEnterActive = _ref.onEnterActive,\n    onLeaveActive = _ref.onLeaveActive,\n    onAppearEnd = _ref.onAppearEnd,\n    onEnterEnd = _ref.onEnterEnd,\n    onLeaveEnd = _ref.onLeaveEnd,\n    onVisibleChanged = _ref.onVisibleChanged;\n  // Used for outer render usage to avoid `visible: false & status: none` to render nothing\n  var _useState = useState(),\n    _useState2 = _slicedToArray(_useState, 2),\n    asyncVisible = _useState2[0],\n    setAsyncVisible = _useState2[1];\n  var _useSyncState = useSyncState(STATUS_NONE),\n    _useSyncState2 = _slicedToArray(_useSyncState, 2),\n    getStatus = _useSyncState2[0],\n    setStatus = _useSyncState2[1];\n  var _useState3 = useState(null),\n    _useState4 = _slicedToArray(_useState3, 2),\n    style = _useState4[0],\n    setStyle = _useState4[1];\n  var currentStatus = getStatus();\n  var mountedRef = useRef(false);\n  var deadlineRef = useRef(null);\n\n  // =========================== Dom Node ===========================\n  function getDomElement() {\n    return getElement();\n  }\n\n  // ========================== Motion End ==========================\n  var activeRef = useRef(false);\n\n  /**\n   * Clean up status & style\n   */\n  function updateMotionEndStatus() {\n    setStatus(STATUS_NONE);\n    setStyle(null, true);\n  }\n  var onInternalMotionEnd = useEvent(function (event) {\n    var status = getStatus();\n    // Do nothing since not in any transition status.\n    // This may happen when `motionDeadline` trigger.\n    if (status === STATUS_NONE) {\n      return;\n    }\n    var element = getDomElement();\n    if (event && !event.deadline && event.target !== element) {\n      // event exists\n      // not initiated by deadline\n      // transitionEnd not fired by inner elements\n      return;\n    }\n    var currentActive = activeRef.current;\n    var canEnd;\n    if (status === STATUS_APPEAR && currentActive) {\n      canEnd = onAppearEnd === null || onAppearEnd === void 0 ? void 0 : onAppearEnd(element, event);\n    } else if (status === STATUS_ENTER && currentActive) {\n      canEnd = onEnterEnd === null || onEnterEnd === void 0 ? void 0 : onEnterEnd(element, event);\n    } else if (status === STATUS_LEAVE && currentActive) {\n      canEnd = onLeaveEnd === null || onLeaveEnd === void 0 ? void 0 : onLeaveEnd(element, event);\n    }\n\n    // Only update status when `canEnd` and not destroyed\n    if (currentActive && canEnd !== false) {\n      updateMotionEndStatus();\n    }\n  });\n  var _useDomMotionEvents = useDomMotionEvents(onInternalMotionEnd),\n    _useDomMotionEvents2 = _slicedToArray(_useDomMotionEvents, 1),\n    patchMotionEvents = _useDomMotionEvents2[0];\n\n  // ============================= Step =============================\n  var getEventHandlers = function getEventHandlers(targetStatus) {\n    switch (targetStatus) {\n      case STATUS_APPEAR:\n        return _defineProperty(_defineProperty(_defineProperty({}, STEP_PREPARE, onAppearPrepare), STEP_START, onAppearStart), STEP_ACTIVE, onAppearActive);\n      case STATUS_ENTER:\n        return _defineProperty(_defineProperty(_defineProperty({}, STEP_PREPARE, onEnterPrepare), STEP_START, onEnterStart), STEP_ACTIVE, onEnterActive);\n      case STATUS_LEAVE:\n        return _defineProperty(_defineProperty(_defineProperty({}, STEP_PREPARE, onLeavePrepare), STEP_START, onLeaveStart), STEP_ACTIVE, onLeaveActive);\n      default:\n        return {};\n    }\n  };\n  var eventHandlers = React.useMemo(function () {\n    return getEventHandlers(currentStatus);\n  }, [currentStatus]);\n  var _useStepQueue = useStepQueue(currentStatus, !supportMotion, function (newStep) {\n      // Only prepare step can be skip\n      if (newStep === STEP_PREPARE) {\n        var onPrepare = eventHandlers[STEP_PREPARE];\n        if (!onPrepare) {\n          return SkipStep;\n        }\n        return onPrepare(getDomElement());\n      }\n\n      // Rest step is sync update\n      if (step in eventHandlers) {\n        var _eventHandlers$step;\n        setStyle(((_eventHandlers$step = eventHandlers[step]) === null || _eventHandlers$step === void 0 ? void 0 : _eventHandlers$step.call(eventHandlers, getDomElement(), null)) || null);\n      }\n      if (step === STEP_ACTIVE && currentStatus !== STATUS_NONE) {\n        // Patch events when motion needed\n        patchMotionEvents(getDomElement());\n        if (motionDeadline > 0) {\n          clearTimeout(deadlineRef.current);\n          deadlineRef.current = setTimeout(function () {\n            onInternalMotionEnd({\n              deadline: true\n            });\n          }, motionDeadline);\n        }\n      }\n      if (step === STEP_PREPARED) {\n        updateMotionEndStatus();\n      }\n      return DoStep;\n    }),\n    _useStepQueue2 = _slicedToArray(_useStepQueue, 2),\n    startStep = _useStepQueue2[0],\n    step = _useStepQueue2[1];\n  var active = isActive(step);\n  activeRef.current = active;\n\n  // ============================ Status ============================\n  // Update with new status\n  useIsomorphicLayoutEffect(function () {\n    setAsyncVisible(visible);\n    var isMounted = mountedRef.current;\n    mountedRef.current = true;\n\n    // if (!supportMotion) {\n    //   return;\n    // }\n\n    var nextStatus;\n\n    // Appear\n    if (!isMounted && visible && motionAppear) {\n      nextStatus = STATUS_APPEAR;\n    }\n\n    // Enter\n    if (isMounted && visible && motionEnter) {\n      nextStatus = STATUS_ENTER;\n    }\n\n    // Leave\n    if (isMounted && !visible && motionLeave || !isMounted && motionLeaveImmediately && !visible && motionLeave) {\n      nextStatus = STATUS_LEAVE;\n    }\n    var nextEventHandlers = getEventHandlers(nextStatus);\n\n    // Update to next status\n    if (nextStatus && (supportMotion || nextEventHandlers[STEP_PREPARE])) {\n      setStatus(nextStatus);\n      startStep();\n    } else {\n      // Set back in case no motion but prev status has prepare step\n      setStatus(STATUS_NONE);\n    }\n  }, [visible]);\n\n  // ============================ Effect ============================\n  // Reset when motion changed\n  useEffect(function () {\n    if (\n    // Cancel appear\n    currentStatus === STATUS_APPEAR && !motionAppear ||\n    // Cancel enter\n    currentStatus === STATUS_ENTER && !motionEnter ||\n    // Cancel leave\n    currentStatus === STATUS_LEAVE && !motionLeave) {\n      setStatus(STATUS_NONE);\n    }\n  }, [motionAppear, motionEnter, motionLeave]);\n  useEffect(function () {\n    return function () {\n      mountedRef.current = false;\n      clearTimeout(deadlineRef.current);\n    };\n  }, []);\n\n  // Trigger `onVisibleChanged`\n  var firstMountChangeRef = React.useRef(false);\n  useEffect(function () {\n    // [visible & motion not end] => [!visible & motion end] still need trigger onVisibleChanged\n    if (asyncVisible) {\n      firstMountChangeRef.current = true;\n    }\n    if (asyncVisible !== undefined && currentStatus === STATUS_NONE) {\n      // Skip first render is invisible since it's nothing changed\n      if (firstMountChangeRef.current || asyncVisible) {\n        onVisibleChanged === null || onVisibleChanged === void 0 || onVisibleChanged(asyncVisible);\n      }\n      firstMountChangeRef.current = true;\n    }\n  }, [asyncVisible, currentStatus]);\n\n  // ============================ Styles ============================\n  var mergedStyle = style;\n  if (eventHandlers[STEP_PREPARE] && step === STEP_START) {\n    mergedStyle = _objectSpread({\n      transition: 'none'\n    }, mergedStyle);\n  }\n  return [currentStatus, step, mergedStyle, asyncVisible !== null && asyncVisible !== void 0 ? asyncVisible : visible];\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport useEvent from \"./useEvent\";\n/**\n * Same as React.useState but will always get latest state.\n * This is useful when React merge multiple state updates into one.\n * e.g. onTransitionEnd trigger multiple event at once will be merged state update in React.\n */\nexport default function useSyncState(defaultValue) {\n  var _React$useReducer = React.useReducer(function (x) {\n      return x + 1;\n    }, 0),\n    _React$useReducer2 = _slicedToArray(_React$useReducer, 2),\n    forceUpdate = _React$useReducer2[1];\n  var currentValueRef = React.useRef(defaultValue);\n  var getValue = useEvent(function () {\n    return currentValueRef.current;\n  });\n  var setValue = useEvent(function (updater) {\n    currentValueRef.current = typeof updater === 'function' ? updater(currentValueRef.current) : updater;\n    forceUpdate();\n  });\n  return [getValue, setValue];\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\n/* eslint-disable react/default-props-match-prop-types, react/no-multi-comp, react/prop-types */\nimport classNames from 'classnames';\nimport findDOMNode from \"rc-util/es/Dom/findDOMNode\";\nimport { fillRef, supportRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport { useRef } from 'react';\nimport { Context } from \"./context\";\nimport DomWrapper from \"./DomWrapper\";\nimport useStatus from \"./hooks/useStatus\";\nimport { isActive } from \"./hooks/useStepQueue\";\nimport { STATUS_NONE, STEP_PREPARE, STEP_START } from \"./interface\";\nimport { getTransitionName, supportTransition } from \"./util/motion\";\n/**\n * `transitionSupport` is used for none transition test case.\n * Default we use browser transition event support check.\n */\nexport function genCSSMotion(config) {\n  var transitionSupport = config;\n  if (_typeof(config) === 'object') {\n    transitionSupport = config.transitionSupport;\n  }\n  function isSupportTransition(props, contextMotion) {\n    return !!(props.motionName && transitionSupport && contextMotion !== false);\n  }\n  var CSSMotion = /*#__PURE__*/React.forwardRef(function (props, ref) {\n    var _props$visible = props.visible,\n      visible = _props$visible === void 0 ? true : _props$visible,\n      _props$removeOnLeave = props.removeOnLeave,\n      removeOnLeave = _props$removeOnLeave === void 0 ? true : _props$removeOnLeave,\n      forceRender = props.forceRender,\n      children = props.children,\n      motionName = props.motionName,\n      leavedClassName = props.leavedClassName,\n      eventProps = props.eventProps;\n    var _React$useContext = React.useContext(Context),\n      contextMotion = _React$useContext.motion;\n    var supportMotion = isSupportTransition(props, contextMotion);\n\n    // Ref to the react node, it may be a HTMLElement\n    var nodeRef = useRef();\n    // Ref to the dom wrapper in case ref can not pass to HTMLElement\n    var wrapperNodeRef = useRef();\n    function getDomElement() {\n      try {\n        // Here we're avoiding call for findDOMNode since it's deprecated\n        // in strict mode. We're calling it only when node ref is not\n        // an instance of DOM HTMLElement. Otherwise use\n        // findDOMNode as a final resort\n        return nodeRef.current instanceof HTMLElement ? nodeRef.current : findDOMNode(wrapperNodeRef.current);\n      } catch (e) {\n        // Only happen when `motionDeadline` trigger but element removed.\n        return null;\n      }\n    }\n    var _useStatus = useStatus(supportMotion, visible, getDomElement, props),\n      _useStatus2 = _slicedToArray(_useStatus, 4),\n      status = _useStatus2[0],\n      statusStep = _useStatus2[1],\n      statusStyle = _useStatus2[2],\n      mergedVisible = _useStatus2[3];\n\n    // Record whether content has rendered\n    // Will return null for un-rendered even when `removeOnLeave={false}`\n    var renderedRef = React.useRef(mergedVisible);\n    if (mergedVisible) {\n      renderedRef.current = true;\n    }\n\n    // ====================== Refs ======================\n    var setNodeRef = React.useCallback(function (node) {\n      nodeRef.current = node;\n      fillRef(ref, node);\n    }, [ref]);\n\n    // ===================== Render =====================\n    var motionChildren;\n    var mergedProps = _objectSpread(_objectSpread({}, eventProps), {}, {\n      visible: visible\n    });\n    if (!children) {\n      // No children\n      motionChildren = null;\n    } else if (status === STATUS_NONE) {\n      // Stable children\n      if (mergedVisible) {\n        motionChildren = children(_objectSpread({}, mergedProps), setNodeRef);\n      } else if (!removeOnLeave && renderedRef.current && leavedClassName) {\n        motionChildren = children(_objectSpread(_objectSpread({}, mergedProps), {}, {\n          className: leavedClassName\n        }), setNodeRef);\n      } else if (forceRender || !removeOnLeave && !leavedClassName) {\n        motionChildren = children(_objectSpread(_objectSpread({}, mergedProps), {}, {\n          style: {\n            display: 'none'\n          }\n        }), setNodeRef);\n      } else {\n        motionChildren = null;\n      }\n    } else {\n      // In motion\n      var statusSuffix;\n      if (statusStep === STEP_PREPARE) {\n        statusSuffix = 'prepare';\n      } else if (isActive(statusStep)) {\n        statusSuffix = 'active';\n      } else if (statusStep === STEP_START) {\n        statusSuffix = 'start';\n      }\n      var motionCls = getTransitionName(motionName, \"\".concat(status, \"-\").concat(statusSuffix));\n      motionChildren = children(_objectSpread(_objectSpread({}, mergedProps), {}, {\n        className: classNames(getTransitionName(motionName, status), _defineProperty(_defineProperty({}, motionCls, motionCls && statusSuffix), motionName, typeof motionName === 'string')),\n        style: statusStyle\n      }), setNodeRef);\n    }\n\n    // Auto inject ref if child node not have `ref` props\n    if ( /*#__PURE__*/React.isValidElement(motionChildren) && supportRef(motionChildren)) {\n      var _ref = motionChildren,\n        originNodeRef = _ref.ref;\n      if (!originNodeRef) {\n        motionChildren = /*#__PURE__*/React.cloneElement(motionChildren, {\n          ref: setNodeRef\n        });\n      }\n    }\n    return /*#__PURE__*/React.createElement(DomWrapper, {\n      ref: wrapperNodeRef\n    }, motionChildren);\n  });\n  CSSMotion.displayName = 'CSSMotion';\n  return CSSMotion;\n}\nexport default genCSSMotion(supportTransition);","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nexport var STATUS_ADD = 'add';\nexport var STATUS_KEEP = 'keep';\nexport var STATUS_REMOVE = 'remove';\nexport var STATUS_REMOVED = 'removed';\nexport function wrapKeyToObject(key) {\n  var keyObj;\n  if (key && _typeof(key) === 'object' && 'key' in key) {\n    keyObj = key;\n  } else {\n    keyObj = {\n      key: key\n    };\n  }\n  return _objectSpread(_objectSpread({}, keyObj), {}, {\n    key: String(keyObj.key)\n  });\n}\nexport function parseKeys() {\n  var keys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n  return keys.map(wrapKeyToObject);\n}\nexport function diffKeys() {\n  var prevKeys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n  var currentKeys = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n  var list = [];\n  var currentIndex = 0;\n  var currentLen = currentKeys.length;\n  var prevKeyObjects = parseKeys(prevKeys);\n  var currentKeyObjects = parseKeys(currentKeys);\n\n  // Check prev keys to insert or keep\n  prevKeyObjects.forEach(function (keyObj) {\n    var hit = false;\n    for (var i = currentIndex; i < currentLen; i += 1) {\n      var currentKeyObj = currentKeyObjects[i];\n      if (currentKeyObj.key === keyObj.key) {\n        // New added keys should add before current key\n        if (currentIndex < i) {\n          list = list.concat(currentKeyObjects.slice(currentIndex, i).map(function (obj) {\n            return _objectSpread(_objectSpread({}, obj), {}, {\n              status: STATUS_ADD\n            });\n          }));\n          currentIndex = i;\n        }\n        list.push(_objectSpread(_objectSpread({}, currentKeyObj), {}, {\n          status: STATUS_KEEP\n        }));\n        currentIndex += 1;\n        hit = true;\n        break;\n      }\n    }\n\n    // If not hit, it means key is removed\n    if (!hit) {\n      list.push(_objectSpread(_objectSpread({}, keyObj), {}, {\n        status: STATUS_REMOVE\n      }));\n    }\n  });\n\n  // Add rest to the list\n  if (currentIndex < currentLen) {\n    list = list.concat(currentKeyObjects.slice(currentIndex).map(function (obj) {\n      return _objectSpread(_objectSpread({}, obj), {}, {\n        status: STATUS_ADD\n      });\n    }));\n  }\n\n  /**\n   * Merge same key when it remove and add again:\n   *    [1 - add, 2 - keep, 1 - remove] -> [1 - keep, 2 - keep]\n   */\n  var keys = {};\n  list.forEach(function (_ref) {\n    var key = _ref.key;\n    keys[key] = (keys[key] || 0) + 1;\n  });\n  var duplicatedKeys = Object.keys(keys).filter(function (key) {\n    return keys[key] > 1;\n  });\n  duplicatedKeys.forEach(function (matchKey) {\n    // Remove `STATUS_REMOVE` node.\n    list = list.filter(function (_ref2) {\n      var key = _ref2.key,\n        status = _ref2.status;\n      return key !== matchKey || status !== STATUS_REMOVE;\n    });\n\n    // Update `STATUS_ADD` to `STATUS_KEEP`\n    list.forEach(function (node) {\n      if (node.key === matchKey) {\n        // eslint-disable-next-line no-param-reassign\n        node.status = STATUS_KEEP;\n      }\n    });\n  });\n  return list;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar _excluded = [\"component\", \"children\", \"onVisibleChanged\", \"onAllRemoved\"],\n  _excluded2 = [\"status\"];\n/* eslint react/prop-types: 0 */\nimport * as React from 'react';\nimport OriginCSSMotion from \"./CSSMotion\";\nimport { diffKeys, parseKeys, STATUS_ADD, STATUS_KEEP, STATUS_REMOVE, STATUS_REMOVED } from \"./util/diff\";\nimport { supportTransition } from \"./util/motion\";\nvar MOTION_PROP_NAMES = ['eventProps', 'visible', 'children', 'motionName', 'motionAppear', 'motionEnter', 'motionLeave', 'motionLeaveImmediately', 'motionDeadline', 'removeOnLeave', 'leavedClassName', 'onAppearPrepare', 'onAppearStart', 'onAppearActive', 'onAppearEnd', 'onEnterStart', 'onEnterActive', 'onEnterEnd', 'onLeaveStart', 'onLeaveActive', 'onLeaveEnd'];\n/**\n * Generate a CSSMotionList component with config\n * @param transitionSupport No need since CSSMotionList no longer depends on transition support\n * @param CSSMotion CSSMotion component\n */\nexport function genCSSMotionList(transitionSupport) {\n  var CSSMotion = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : OriginCSSMotion;\n  var CSSMotionList = /*#__PURE__*/function (_React$Component) {\n    _inherits(CSSMotionList, _React$Component);\n    var _super = _createSuper(CSSMotionList);\n    function CSSMotionList() {\n      var _this;\n      _classCallCheck(this, CSSMotionList);\n      for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n        args[_key] = arguments[_key];\n      }\n      _this = _super.call.apply(_super, [this].concat(args));\n      _defineProperty(_assertThisInitialized(_this), \"state\", {\n        keyEntities: []\n      });\n      // ZombieJ: Return the count of rest keys. It's safe to refactor if need more info.\n      _defineProperty(_assertThisInitialized(_this), \"removeKey\", function (removeKey) {\n        _this.setState(function (prevState) {\n          var nextKeyEntities = prevState.keyEntities.map(function (entity) {\n            if (entity.key !== removeKey) return entity;\n            return _objectSpread(_objectSpread({}, entity), {}, {\n              status: STATUS_REMOVED\n            });\n          });\n          return {\n            keyEntities: nextKeyEntities\n          };\n        }, function () {\n          var keyEntities = _this.state.keyEntities;\n          var restKeysCount = keyEntities.filter(function (_ref) {\n            var status = _ref.status;\n            return status !== STATUS_REMOVED;\n          }).length;\n          if (restKeysCount === 0 && _this.props.onAllRemoved) {\n            _this.props.onAllRemoved();\n          }\n        });\n      });\n      return _this;\n    }\n    _createClass(CSSMotionList, [{\n      key: \"render\",\n      value: function render() {\n        var _this2 = this;\n        var keyEntities = this.state.keyEntities;\n        var _this$props = this.props,\n          component = _this$props.component,\n          children = _this$props.children,\n          _onVisibleChanged = _this$props.onVisibleChanged,\n          onAllRemoved = _this$props.onAllRemoved,\n          restProps = _objectWithoutProperties(_this$props, _excluded);\n        var Component = component || React.Fragment;\n        var motionProps = {};\n        MOTION_PROP_NAMES.forEach(function (prop) {\n          motionProps[prop] = restProps[prop];\n          delete restProps[prop];\n        });\n        delete restProps.keys;\n        return /*#__PURE__*/React.createElement(Component, restProps, keyEntities.map(function (_ref2, index) {\n          var status = _ref2.status,\n            eventProps = _objectWithoutProperties(_ref2, _excluded2);\n          var visible = status === STATUS_ADD || status === STATUS_KEEP;\n          return /*#__PURE__*/React.createElement(CSSMotion, _extends({}, motionProps, {\n            key: eventProps.key,\n            visible: visible,\n            eventProps: eventProps,\n            onVisibleChanged: function onVisibleChanged(changedVisible) {\n              _onVisibleChanged === null || _onVisibleChanged === void 0 || _onVisibleChanged(changedVisible, {\n                key: eventProps.key\n              });\n              if (!changedVisible) {\n                _this2.removeKey(eventProps.key);\n              }\n            }\n          }), function (props, ref) {\n            return children(_objectSpread(_objectSpread({}, props), {}, {\n              index: index\n            }), ref);\n          });\n        }));\n      }\n    }], [{\n      key: \"getDerivedStateFromProps\",\n      value: function getDerivedStateFromProps(_ref3, _ref4) {\n        var keys = _ref3.keys;\n        var keyEntities = _ref4.keyEntities;\n        var parsedKeyObjects = parseKeys(keys);\n        var mixedKeyEntities = diffKeys(keyEntities, parsedKeyObjects);\n        return {\n          keyEntities: mixedKeyEntities.filter(function (entity) {\n            var prevEntity = keyEntities.find(function (_ref5) {\n              var key = _ref5.key;\n              return entity.key === key;\n            });\n\n            // Remove if already mark as removed\n            if (prevEntity && prevEntity.status === STATUS_REMOVED && entity.status === STATUS_REMOVE) {\n              return false;\n            }\n            return true;\n          })\n        };\n      }\n    }]);\n    return CSSMotionList;\n  }(React.Component);\n  _defineProperty(CSSMotionList, \"defaultProps\", {\n    component: 'div'\n  });\n  return CSSMotionList;\n}\nexport default genCSSMotionList(supportTransition);","import CSSMotion from \"./CSSMotion\";\nimport CSSMotionList from \"./CSSMotionList\";\nexport { default as Provider } from \"./context\";\nexport { CSSMotionList };\nexport default CSSMotion;","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things.  But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals.  It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n    throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n    throw new Error('clearTimeout has not been defined');\n}\n(function () {\n    try {\n        if (typeof setTimeout === 'function') {\n            cachedSetTimeout = setTimeout;\n        } else {\n            cachedSetTimeout = defaultSetTimout;\n        }\n    } catch (e) {\n        cachedSetTimeout = defaultSetTimout;\n    }\n    try {\n        if (typeof clearTimeout === 'function') {\n            cachedClearTimeout = clearTimeout;\n        } else {\n            cachedClearTimeout = defaultClearTimeout;\n        }\n    } catch (e) {\n        cachedClearTimeout = defaultClearTimeout;\n    }\n} ())\nfunction runTimeout(fun) {\n    if (cachedSetTimeout === setTimeout) {\n        //normal enviroments in sane situations\n        return setTimeout(fun, 0);\n    }\n    // if setTimeout wasn't available but was latter defined\n    if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n        cachedSetTimeout = setTimeout;\n        return setTimeout(fun, 0);\n    }\n    try {\n        // when when somebody has screwed with setTimeout but no I.E. maddness\n        return cachedSetTimeout(fun, 0);\n    } catch(e){\n        try {\n            // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n            return cachedSetTimeout.call(null, fun, 0);\n        } catch(e){\n            // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n            return cachedSetTimeout.call(this, fun, 0);\n        }\n    }\n\n\n}\nfunction runClearTimeout(marker) {\n    if (cachedClearTimeout === clearTimeout) {\n        //normal enviroments in sane situations\n        return clearTimeout(marker);\n    }\n    // if clearTimeout wasn't available but was latter defined\n    if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n        cachedClearTimeout = clearTimeout;\n        return clearTimeout(marker);\n    }\n    try {\n        // when when somebody has screwed with setTimeout but no I.E. maddness\n        return cachedClearTimeout(marker);\n    } catch (e){\n        try {\n            // When we are in I.E. but the script has been evaled so I.E. doesn't  trust the global object when called normally\n            return cachedClearTimeout.call(null, marker);\n        } catch (e){\n            // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n            // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n            return cachedClearTimeout.call(this, marker);\n        }\n    }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n    if (!draining || !currentQueue) {\n        return;\n    }\n    draining = false;\n    if (currentQueue.length) {\n        queue = currentQueue.concat(queue);\n    } else {\n        queueIndex = -1;\n    }\n    if (queue.length) {\n        drainQueue();\n    }\n}\n\nfunction drainQueue() {\n    if (draining) {\n        return;\n    }\n    var timeout = runTimeout(cleanUpNextTick);\n    draining = true;\n\n    var len = queue.length;\n    while(len) {\n        currentQueue = queue;\n        queue = [];\n        while (++queueIndex < len) {\n            if (currentQueue) {\n                currentQueue[queueIndex].run();\n            }\n        }\n        queueIndex = -1;\n        len = queue.length;\n    }\n    currentQueue = null;\n    draining = false;\n    runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n    var args = new Array(arguments.length - 1);\n    if (arguments.length > 1) {\n        for (var i = 1; i < arguments.length; i++) {\n            args[i - 1] = arguments[i];\n        }\n    }\n    queue.push(new Item(fun, args));\n    if (queue.length === 1 && !draining) {\n        runTimeout(drainQueue);\n    }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n    this.fun = fun;\n    this.array = array;\n}\nItem.prototype.run = function () {\n    this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n    throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n    throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"invalidate\", \"item\", \"renderItem\", \"responsive\", \"responsiveDisabled\", \"registerSize\", \"itemKey\", \"className\", \"style\", \"children\", \"display\", \"order\", \"component\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport ResizeObserver from 'rc-resize-observer';\n// Use shared variable to save bundle size\nvar UNDEFINED = undefined;\nfunction InternalItem(props, ref) {\n  var prefixCls = props.prefixCls,\n    invalidate = props.invalidate,\n    item = props.item,\n    renderItem = props.renderItem,\n    responsive = props.responsive,\n    responsiveDisabled = props.responsiveDisabled,\n    registerSize = props.registerSize,\n    itemKey = props.itemKey,\n    className = props.className,\n    style = props.style,\n    children = props.children,\n    display = props.display,\n    order = props.order,\n    _props$component = props.component,\n    Component = _props$component === void 0 ? 'div' : _props$component,\n    restProps = _objectWithoutProperties(props, _excluded);\n  var mergedHidden = responsive && !display;\n  // ================================ Effect ================================\n  function internalRegisterSize(width) {\n    registerSize(itemKey, width);\n  }\n  React.useEffect(function () {\n    return function () {\n      internalRegisterSize(null);\n    };\n  }, []);\n  // ================================ Render ================================\n  var childNode = renderItem && item !== UNDEFINED ? renderItem(item) : children;\n  var overflowStyle;\n  if (!invalidate) {\n    overflowStyle = {\n      opacity: mergedHidden ? 0 : 1,\n      height: mergedHidden ? 0 : UNDEFINED,\n      overflowY: mergedHidden ? 'hidden' : UNDEFINED,\n      order: responsive ? order : UNDEFINED,\n      pointerEvents: mergedHidden ? 'none' : UNDEFINED,\n      position: mergedHidden ? 'absolute' : UNDEFINED\n    };\n  }\n  var overflowProps = {};\n  if (mergedHidden) {\n    overflowProps['aria-hidden'] = true;\n  }\n  var itemNode = /*#__PURE__*/React.createElement(Component, _extends({\n    className: classNames(!invalidate && prefixCls, className),\n    style: _objectSpread(_objectSpread({}, overflowStyle), style)\n  }, overflowProps, restProps, {\n    ref: ref\n  }), childNode);\n  if (responsive) {\n    itemNode = /*#__PURE__*/React.createElement(ResizeObserver, {\n      onResize: function onResize(_ref) {\n        var offsetWidth = _ref.offsetWidth;\n        internalRegisterSize(offsetWidth);\n      },\n      disabled: responsiveDisabled\n    }, itemNode);\n  }\n  return itemNode;\n}\nvar Item = /*#__PURE__*/React.forwardRef(InternalItem);\nItem.displayName = 'Item';\nexport default Item;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport useEvent from \"rc-util/es/hooks/useEvent\";\nimport * as React from 'react';\nimport { unstable_batchedUpdates } from 'react-dom';\nimport channelUpdate from './channelUpdate';\n/**\n * Batcher for record any `useEffectState` need update.\n */\nexport function useBatcher() {\n  // Updater Trigger\n  var updateFuncRef = React.useRef(null);\n  // Notify update\n  var notifyEffectUpdate = function notifyEffectUpdate(callback) {\n    if (!updateFuncRef.current) {\n      updateFuncRef.current = [];\n      channelUpdate(function () {\n        unstable_batchedUpdates(function () {\n          updateFuncRef.current.forEach(function (fn) {\n            fn();\n          });\n          updateFuncRef.current = null;\n        });\n      });\n    }\n    updateFuncRef.current.push(callback);\n  };\n  return notifyEffectUpdate;\n}\n/**\n * Trigger state update by `useLayoutEffect` to save perf.\n */\nexport default function useEffectState(notifyEffectUpdate, defaultValue) {\n  // Value\n  var _React$useState = React.useState(defaultValue),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    stateValue = _React$useState2[0],\n    setStateValue = _React$useState2[1];\n  // Set State\n  var setEffectVal = useEvent(function (nextValue) {\n    notifyEffectUpdate(function () {\n      setStateValue(nextValue);\n    });\n  });\n  return [stateValue, setEffectVal];\n}","import raf from \"rc-util/es/raf\";\nexport default function channelUpdate(callback) {\n  if (typeof MessageChannel === 'undefined') {\n    raf(callback);\n  } else {\n    var channel = new MessageChannel();\n    channel.port1.onmessage = function () {\n      return callback();\n    };\n    channel.port2.postMessage(undefined);\n  }\n}","import React from 'react';\nexport var OverflowContext = /*#__PURE__*/React.createContext(null);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"component\"],\n  _excluded2 = [\"className\"],\n  _excluded3 = [\"className\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport Item from './Item';\nimport { OverflowContext } from './context';\nvar InternalRawItem = function InternalRawItem(props, ref) {\n  var context = React.useContext(OverflowContext);\n  // Render directly when context not provided\n  if (!context) {\n    var _props$component = props.component,\n      Component = _props$component === void 0 ? 'div' : _props$component,\n      _restProps = _objectWithoutProperties(props, _excluded);\n    return /*#__PURE__*/React.createElement(Component, _extends({}, _restProps, {\n      ref: ref\n    }));\n  }\n  var contextClassName = context.className,\n    restContext = _objectWithoutProperties(context, _excluded2);\n  var className = props.className,\n    restProps = _objectWithoutProperties(props, _excluded3);\n  // Do not pass context to sub item to avoid multiple measure\n  return /*#__PURE__*/React.createElement(OverflowContext.Provider, {\n    value: null\n  }, /*#__PURE__*/React.createElement(Item, _extends({\n    ref: ref,\n    className: classNames(contextClassName, className)\n  }, restContext, restProps)));\n};\nvar RawItem = /*#__PURE__*/React.forwardRef(InternalRawItem);\nRawItem.displayName = 'RawItem';\nexport default RawItem;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"data\", \"renderItem\", \"renderRawItem\", \"itemKey\", \"itemWidth\", \"ssr\", \"style\", \"className\", \"maxCount\", \"renderRest\", \"renderRawRest\", \"suffix\", \"component\", \"itemComponent\", \"onVisibleChange\"];\nimport * as React from 'react';\nimport { useState, useMemo, useCallback } from 'react';\nimport classNames from 'classnames';\nimport ResizeObserver from 'rc-resize-observer';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport Item from './Item';\nimport useEffectState, { useBatcher } from './hooks/useEffectState';\nimport RawItem from './RawItem';\nimport { OverflowContext } from './context';\nvar RESPONSIVE = 'responsive';\nvar INVALIDATE = 'invalidate';\nexport { OverflowContext } from './context';\nfunction defaultRenderRest(omittedItems) {\n  return \"+ \".concat(omittedItems.length, \" ...\");\n}\nfunction Overflow(props, ref) {\n  var _props$prefixCls = props.prefixCls,\n    prefixCls = _props$prefixCls === void 0 ? 'rc-overflow' : _props$prefixCls,\n    _props$data = props.data,\n    data = _props$data === void 0 ? [] : _props$data,\n    renderItem = props.renderItem,\n    renderRawItem = props.renderRawItem,\n    itemKey = props.itemKey,\n    _props$itemWidth = props.itemWidth,\n    itemWidth = _props$itemWidth === void 0 ? 10 : _props$itemWidth,\n    ssr = props.ssr,\n    style = props.style,\n    className = props.className,\n    maxCount = props.maxCount,\n    renderRest = props.renderRest,\n    renderRawRest = props.renderRawRest,\n    suffix = props.suffix,\n    _props$component = props.component,\n    Component = _props$component === void 0 ? 'div' : _props$component,\n    itemComponent = props.itemComponent,\n    onVisibleChange = props.onVisibleChange,\n    restProps = _objectWithoutProperties(props, _excluded);\n  var fullySSR = ssr === 'full';\n  var notifyEffectUpdate = useBatcher();\n  var _useEffectState = useEffectState(notifyEffectUpdate, null),\n    _useEffectState2 = _slicedToArray(_useEffectState, 2),\n    containerWidth = _useEffectState2[0],\n    setContainerWidth = _useEffectState2[1];\n  var mergedContainerWidth = containerWidth || 0;\n  var _useEffectState3 = useEffectState(notifyEffectUpdate, new Map()),\n    _useEffectState4 = _slicedToArray(_useEffectState3, 2),\n    itemWidths = _useEffectState4[0],\n    setItemWidths = _useEffectState4[1];\n  var _useEffectState5 = useEffectState(notifyEffectUpdate, 0),\n    _useEffectState6 = _slicedToArray(_useEffectState5, 2),\n    prevRestWidth = _useEffectState6[0],\n    setPrevRestWidth = _useEffectState6[1];\n  var _useEffectState7 = useEffectState(notifyEffectUpdate, 0),\n    _useEffectState8 = _slicedToArray(_useEffectState7, 2),\n    restWidth = _useEffectState8[0],\n    setRestWidth = _useEffectState8[1];\n  var _useEffectState9 = useEffectState(notifyEffectUpdate, 0),\n    _useEffectState10 = _slicedToArray(_useEffectState9, 2),\n    suffixWidth = _useEffectState10[0],\n    setSuffixWidth = _useEffectState10[1];\n  var _useState = useState(null),\n    _useState2 = _slicedToArray(_useState, 2),\n    suffixFixedStart = _useState2[0],\n    setSuffixFixedStart = _useState2[1];\n  var _useState3 = useState(null),\n    _useState4 = _slicedToArray(_useState3, 2),\n    displayCount = _useState4[0],\n    setDisplayCount = _useState4[1];\n  var mergedDisplayCount = React.useMemo(function () {\n    if (displayCount === null && fullySSR) {\n      return Number.MAX_SAFE_INTEGER;\n    }\n    return displayCount || 0;\n  }, [displayCount, containerWidth]);\n  var _useState5 = useState(false),\n    _useState6 = _slicedToArray(_useState5, 2),\n    restReady = _useState6[0],\n    setRestReady = _useState6[1];\n  var itemPrefixCls = \"\".concat(prefixCls, \"-item\");\n  // Always use the max width to avoid blink\n  var mergedRestWidth = Math.max(prevRestWidth, restWidth);\n  // ================================= Data =================================\n  var isResponsive = maxCount === RESPONSIVE;\n  var shouldResponsive = data.length && isResponsive;\n  var invalidate = maxCount === INVALIDATE;\n  /**\n   * When is `responsive`, we will always render rest node to get the real width of it for calculation\n   */\n  var showRest = shouldResponsive || typeof maxCount === 'number' && data.length > maxCount;\n  var mergedData = useMemo(function () {\n    var items = data;\n    if (shouldResponsive) {\n      if (containerWidth === null && fullySSR) {\n        items = data;\n      } else {\n        items = data.slice(0, Math.min(data.length, mergedContainerWidth / itemWidth));\n      }\n    } else if (typeof maxCount === 'number') {\n      items = data.slice(0, maxCount);\n    }\n    return items;\n  }, [data, itemWidth, containerWidth, maxCount, shouldResponsive]);\n  var omittedItems = useMemo(function () {\n    if (shouldResponsive) {\n      return data.slice(mergedDisplayCount + 1);\n    }\n    return data.slice(mergedData.length);\n  }, [data, mergedData, shouldResponsive, mergedDisplayCount]);\n  // ================================= Item =================================\n  var getKey = useCallback(function (item, index) {\n    var _ref;\n    if (typeof itemKey === 'function') {\n      return itemKey(item);\n    }\n    return (_ref = itemKey && (item === null || item === void 0 ? void 0 : item[itemKey])) !== null && _ref !== void 0 ? _ref : index;\n  }, [itemKey]);\n  var mergedRenderItem = useCallback(renderItem || function (item) {\n    return item;\n  }, [renderItem]);\n  function updateDisplayCount(count, suffixFixedStartVal, notReady) {\n    // React 18 will sync render even when the value is same in some case.\n    // We take `mergedData` as deps which may cause dead loop if it's dynamic generate.\n    // ref: https://github.com/ant-design/ant-design/issues/36559\n    if (displayCount === count && (suffixFixedStartVal === undefined || suffixFixedStartVal === suffixFixedStart)) {\n      return;\n    }\n    setDisplayCount(count);\n    if (!notReady) {\n      setRestReady(count < data.length - 1);\n      onVisibleChange === null || onVisibleChange === void 0 ? void 0 : onVisibleChange(count);\n    }\n    if (suffixFixedStartVal !== undefined) {\n      setSuffixFixedStart(suffixFixedStartVal);\n    }\n  }\n  // ================================= Size =================================\n  function onOverflowResize(_, element) {\n    setContainerWidth(element.clientWidth);\n  }\n  function registerSize(key, width) {\n    setItemWidths(function (origin) {\n      var clone = new Map(origin);\n      if (width === null) {\n        clone.delete(key);\n      } else {\n        clone.set(key, width);\n      }\n      return clone;\n    });\n  }\n  function registerOverflowSize(_, width) {\n    setRestWidth(width);\n    setPrevRestWidth(restWidth);\n  }\n  function registerSuffixSize(_, width) {\n    setSuffixWidth(width);\n  }\n  // ================================ Effect ================================\n  function getItemWidth(index) {\n    return itemWidths.get(getKey(mergedData[index], index));\n  }\n  useLayoutEffect(function () {\n    if (mergedContainerWidth && typeof mergedRestWidth === 'number' && mergedData) {\n      var totalWidth = suffixWidth;\n      var len = mergedData.length;\n      var lastIndex = len - 1;\n      // When data count change to 0, reset this since not loop will reach\n      if (!len) {\n        updateDisplayCount(0, null);\n        return;\n      }\n      for (var i = 0; i < len; i += 1) {\n        var currentItemWidth = getItemWidth(i);\n        // Fully will always render\n        if (fullySSR) {\n          currentItemWidth = currentItemWidth || 0;\n        }\n        // Break since data not ready\n        if (currentItemWidth === undefined) {\n          updateDisplayCount(i - 1, undefined, true);\n          break;\n        }\n        // Find best match\n        totalWidth += currentItemWidth;\n        if (\n        // Only one means `totalWidth` is the final width\n        lastIndex === 0 && totalWidth <= mergedContainerWidth ||\n        // Last two width will be the final width\n        i === lastIndex - 1 && totalWidth + getItemWidth(lastIndex) <= mergedContainerWidth) {\n          // Additional check if match the end\n          updateDisplayCount(lastIndex, null);\n          break;\n        } else if (totalWidth + mergedRestWidth > mergedContainerWidth) {\n          // Can not hold all the content to show rest\n          updateDisplayCount(i - 1, totalWidth - currentItemWidth - suffixWidth + restWidth);\n          break;\n        }\n      }\n      if (suffix && getItemWidth(0) + suffixWidth > mergedContainerWidth) {\n        setSuffixFixedStart(null);\n      }\n    }\n  }, [mergedContainerWidth, itemWidths, restWidth, suffixWidth, getKey, mergedData]);\n  // ================================ Render ================================\n  var displayRest = restReady && !!omittedItems.length;\n  var suffixStyle = {};\n  if (suffixFixedStart !== null && shouldResponsive) {\n    suffixStyle = {\n      position: 'absolute',\n      left: suffixFixedStart,\n      top: 0\n    };\n  }\n  var itemSharedProps = {\n    prefixCls: itemPrefixCls,\n    responsive: shouldResponsive,\n    component: itemComponent,\n    invalidate: invalidate\n  };\n  // >>>>> Choice render fun by `renderRawItem`\n  var internalRenderItemNode = renderRawItem ? function (item, index) {\n    var key = getKey(item, index);\n    return /*#__PURE__*/React.createElement(OverflowContext.Provider, {\n      key: key,\n      value: _objectSpread(_objectSpread({}, itemSharedProps), {}, {\n        order: index,\n        item: item,\n        itemKey: key,\n        registerSize: registerSize,\n        display: index <= mergedDisplayCount\n      })\n    }, renderRawItem(item, index));\n  } : function (item, index) {\n    var key = getKey(item, index);\n    return /*#__PURE__*/React.createElement(Item, _extends({}, itemSharedProps, {\n      order: index,\n      key: key,\n      item: item,\n      renderItem: mergedRenderItem,\n      itemKey: key,\n      registerSize: registerSize,\n      display: index <= mergedDisplayCount\n    }));\n  };\n  // >>>>> Rest node\n  var restNode;\n  var restContextProps = {\n    order: displayRest ? mergedDisplayCount : Number.MAX_SAFE_INTEGER,\n    className: \"\".concat(itemPrefixCls, \"-rest\"),\n    registerSize: registerOverflowSize,\n    display: displayRest\n  };\n  if (!renderRawRest) {\n    var mergedRenderRest = renderRest || defaultRenderRest;\n    restNode = /*#__PURE__*/React.createElement(Item, _extends({}, itemSharedProps, restContextProps), typeof mergedRenderRest === 'function' ? mergedRenderRest(omittedItems) : mergedRenderRest);\n  } else if (renderRawRest) {\n    restNode = /*#__PURE__*/React.createElement(OverflowContext.Provider, {\n      value: _objectSpread(_objectSpread({}, itemSharedProps), restContextProps)\n    }, renderRawRest(omittedItems));\n  }\n  var overflowNode = /*#__PURE__*/React.createElement(Component, _extends({\n    className: classNames(!invalidate && prefixCls, className),\n    style: style,\n    ref: ref\n  }, restProps), mergedData.map(internalRenderItemNode), showRest ? restNode : null, suffix && /*#__PURE__*/React.createElement(Item, _extends({}, itemSharedProps, {\n    responsive: isResponsive,\n    responsiveDisabled: !shouldResponsive,\n    order: mergedDisplayCount,\n    className: \"\".concat(itemPrefixCls, \"-suffix\"),\n    registerSize: registerSuffixSize,\n    display: true,\n    style: suffixStyle\n  }), suffix));\n  if (isResponsive) {\n    overflowNode = /*#__PURE__*/React.createElement(ResizeObserver, {\n      onResize: onOverflowResize,\n      disabled: !shouldResponsive\n    }, overflowNode);\n  }\n  return overflowNode;\n}\nvar ForwardOverflow = /*#__PURE__*/React.forwardRef(Overflow);\nForwardOverflow.displayName = 'Overflow';\nForwardOverflow.Item = RawItem;\nForwardOverflow.RESPONSIVE = RESPONSIVE;\nForwardOverflow.INVALIDATE = INVALIDATE;\n// Convert to generic type\nexport default ForwardOverflow;","import Overflow from './Overflow';\nexport default Overflow;","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc');  // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n  module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n  module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","/** @license React v17.0.2\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';require(\"object-assign\");var f=require(\"react\"),g=60103;exports.Fragment=60107;if(\"function\"===typeof Symbol&&Symbol.for){var h=Symbol.for;g=h(\"react.element\");exports.Fragment=h(\"react.fragment\")}var m=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,n=Object.prototype.hasOwnProperty,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,k){var b,d={},e=null,l=null;void 0!==k&&(e=\"\"+k);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(l=a.ref);for(b in a)n.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:g,type:c,key:e,ref:l,props:d,_owner:m.current}}exports.jsx=q;exports.jsxs=q;\n","// based on https://github.com/mui/material-ui/blob/17d4b9e037c90903e7d57fce36db4e58e2ee7494/packages/mui-material/src/internal/animate.js#L3\nfunction easeInOutSin(time: number) {\n    return (1 + Math.sin(Math.PI * time - Math.PI / 2)) / 2\n  }\n  \n  export default function animate(\n    property: string | number,\n    element: { [x: string]: any },\n    to: number,\n    options : any = {},\n    cb : any = () => {}\n  ) {\n    const {\n      ease = easeInOutSin,\n      duration = 300 // standard\n    } = options\n    let start: number | null = null\n    const from = element[property]\n  \n    let cancelled = false\n  \n    const cancel = () => {\n      cancelled = true\n    }\n  \n    const step = (timestamp: number) => {\n      if (cancelled) {\n        cb(new Error('Animation cancelled'))\n        return\n      }\n  \n      if (start === null) {\n        start = timestamp\n      }\n  \n      const time = Math.min(1, (timestamp - start) / duration)\n      element[property] = ease(time) * (to - from) + from\n  \n      if (time >= 1) {\n        // eslint-disable-next-line no-undef\n        requestAnimationFrame(() => {\n          cb(null)\n        })\n        return\n      }\n  \n      // eslint-disable-next-line no-undef\n      requestAnimationFrame(step)\n    }\n  \n    if (from === to) {\n      cb(new Error('Element already at target position'))\n      return cancel\n    }\n    // eslint-disable-next-line no-undef\n    requestAnimationFrame(step)\n    return cancel\n  }\n  ","type DebouncedFunction<T extends (...args: any[]) => any> = {\n  (...args: Parameters<T>): void;\n  clear(): void;\n};\n\nexport default function debounce<T extends (...args: any[]) => any>(\n  func: T,\n  wait: number = 166\n): DebouncedFunction<T> {\n  let timeout: ReturnType<typeof setTimeout>;\n\n  function debounced(this: any, ...args: Parameters<T>): void {\n    const later = () => {\n      func.apply(this, args);\n    };\n    clearTimeout(timeout);\n    timeout = setTimeout(later, wait);\n  }\n\n  debounced.clear = (): void => {\n    clearTimeout(timeout);\n  };\n\n  return debounced as DebouncedFunction<T>;\n}\n","// Based on https://github.com/alitaheri/normalize-scroll-left\n\n'use strict'\n\n// Based on https://github.com/react-bootstrap/dom-helpers/blob/master/src/util/inDOM.js\nvar inDOM = !!(\n  typeof window !== 'undefined' &&\n  window.document &&\n  window.document.createElement\n)\nvar cachedType: string\nexport function _setScrollType(type: any) {\n  cachedType = type\n}\n\n// Based on the jquery plugin https://github.com/othree/jquery.rtl-scroll-type\nexport function detectScrollType() {\n  if (cachedType) {\n    return cachedType\n  }\n  if (!inDOM || !window.document.body) {\n    return 'indeterminate'\n  }\n  var dummy = window.document.createElement('div')\n  dummy.appendChild(document.createTextNode('ABCD'))\n  dummy.dir = 'rtl'\n  dummy.style.fontSize = '14px'\n  dummy.style.width = '4px'\n  dummy.style.height = '1px'\n  dummy.style.position = 'absolute'\n  dummy.style.top = '-1000px'\n  dummy.style.overflow = 'scroll'\n  document.body.appendChild(dummy)\n  cachedType = 'reverse'\n  if (dummy.scrollLeft > 0) {\n    cachedType = 'default'\n  } else {\n    dummy.scrollLeft = 2\n    if (dummy.scrollLeft < 2) {\n      cachedType = 'negative'\n    }\n  }\n  document.body.removeChild(dummy)\n  return cachedType\n}\n\n// Based on https://stackoverflow.com/a/24394376\nexport function getNormalizedScrollLeft(element: { scrollLeft: any; scrollWidth: number; clientWidth: number }, direction: string) {\n  var scrollLeft = element.scrollLeft\n  // Perform the calculations only when direction is rtl to avoid messing up the ltr behavior\n  if (direction !== 'rtl') {\n    return scrollLeft\n  }\n  var type = detectScrollType()\n  if (type === 'indeterminate') {\n    return Number.NaN\n  }\n  switch (type) {\n    case 'negative':\n      return element.scrollWidth - element.clientWidth + scrollLeft\n    case 'reverse':\n      return element.scrollWidth - element.clientWidth - scrollLeft\n  }\n  return scrollLeft\n}\n\nexport function setNormalizedScrollLeft(element: { scrollLeft: number; clientWidth: number; scrollWidth: number }, scrollLeft: number, direction: string) {\n  // Perform the calculations only when direction is rtl to avoid messing up the ltr behavior\n  if (direction !== 'rtl') {\n    element.scrollLeft = scrollLeft\n    return\n  }\n  var type = detectScrollType()\n  if (type === 'indeterminate') {\n    return\n  }\n  switch (type) {\n    case 'negative':\n      element.scrollLeft =\n        element.clientWidth - element.scrollWidth + scrollLeft\n      break\n    case 'reverse':\n      element.scrollLeft =\n        element.scrollWidth - element.clientWidth - scrollLeft\n      break\n    default:\n      element.scrollLeft = scrollLeft\n      break\n  }\n}\n","import {\n  useCallback,\n  useEffect,\n  useLayoutEffect,\n  useRef,\n  DependencyList,\n} from \"react\";\n\n// Determine whether to use useEffect or useLayoutEffect based on the environment\nexport const useEnhancedEffect =\n  typeof window === \"undefined\" ? useEffect : useLayoutEffect;\n\n// Define the type for the callback function\ntype CallbackFunction<T extends any[]> = (...args: T) => void;\n\n// Define the type for the useEventCallback hook\nconst useEventCallback = <T extends any[]>(fn: CallbackFunction<T>) => {\n  const callbackRef = useRef<CallbackFunction<T>>(fn);\n\n  useEnhancedEffect(() => {\n    callbackRef.current = fn;\n  });\n\n  return useCallback((...args: T) => callbackRef.current(...args), []);\n};\n\nexport default useEventCallback;\n","import React from \"react\";\n\ntype NavBtnProps = {\n  hideNavBtnsOnMobile?: boolean;\n  navBtnDisplay?: object | any;\n  disabled: boolean;\n  onClick?: () => void;\n  children: React.ReactNode | any;\n  navBtnStyle?: object;\n  className?: string;\n  navBtnContainerClassName?: string;\n  navBtnAs?: keyof JSX.IntrinsicElements &\n    React.HTMLAttributes<HTMLOrSVGElement>;\n};\n\nconst NavBtn = React.forwardRef(\n  (\n    {\n      hideNavBtnsOnMobile,\n      disabled,\n      onClick = () => null,\n      children,\n      navBtnStyle,\n      className = \"\",\n      navBtnContainerClassName,\n      navBtnAs = \"button\",\n    }: NavBtnProps,\n    ref\n  ) => {\n    const containerClassNames = `rts___nav___btn___container ${\n      hideNavBtnsOnMobile ? \"display___md___none\" : \"\"\n    } ${navBtnContainerClassName}`.trim();\n    const Tag = navBtnAs as React.ElementType;\n\n    const buttonSpecialProps = {\n      disabled,\n      type: \"button\",\n    };\n\n    return (\n      <div className={containerClassNames}>\n        <Tag\n          {...(navBtnAs === \"button\" ? buttonSpecialProps : {})}\n          className={`rts___btn rts___nav___btn ${className}`}\n          onClick={onClick}\n          style={navBtnStyle}\n          dir=\"ltr\"\n          aria-hidden=\"true\"\n          ref={ref as React.Ref<HTMLButtonElement>}\n        >\n          {children}\n        </Tag>\n      </div>\n    );\n  }\n);\n\nexport default NavBtn;\n","const LeftArrowIcon = () => {\n  return (\n    <svg\n      xmlns=\"http://www.w3.org/2000/svg\"\n      width=\"24\"\n      height=\"24\"\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      strokeWidth=\"2\"\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      className=\"feather feather-arrow-left rts___svg___icon\"\n    >\n      <line x1=\"19\" y1=\"12\" x2=\"5\" y2=\"12\" />\n      <polyline points=\"12 19 5 12 12 5\" />\n    </svg>\n  );\n};\n\nexport default LeftArrowIcon;\n","const RightArrowIcon = () => {\n  return (\n    <svg\n      xmlns=\"http://www.w3.org/2000/svg\"\n      width=\"24\"\n      height=\"24\"\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      strokeWidth=\"2\"\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      className=\"feather feather-arrow-right rts___svg___icon\"\n    >\n      <line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\" />\n      <polyline points=\"12 5 19 12 12 19\" />\n    </svg>\n  );\n};\n\nexport default RightArrowIcon;\n","/* eslint-disable prettier/prettier */\nimport React from \"react\";\nimport animate from \"../../utils/animate\";\nimport debounce from \"../../utils/debounce\";\nimport { getNormalizedScrollLeft } from \"../../utils/getNormalizedScrollLeft\";\nimport ownerDocument from \"../../utils/ownerDocument\";\nimport useEventCallback from \"../../hooks/useEventCallback\";\nimport NavBtn from \"../NavBtns\";\nimport LeftArrowIcon from \"../NavBtns/LeftNavBtnIcon\";\nimport RightArrowIcon from \"../NavBtns/RightNavBtnIcon\";\ntype Mode =\n  | \"scrollSelectedToCenterFromView\"\n  | \"scrollSelectedToCenter\"\n  | \"scrollSelectedToEnd\";\n\ninterface TabsProps {\n  children: React.ReactNode;\n  activeTab: number;\n  onTabClick: (e: React.BaseSyntheticEvent, id: number) => void;\n  animationDuration?: number;\n  navBtnCLickAnimationDuration?: number;\n  selectedAnimationDuration?: number;\n  isRTL?: boolean;\n  didReachEnd?: Function;\n  didReachStart?: Function;\n  hideNavBtnsOnMobile?: boolean;\n  hideNavBtns?: boolean;\n  tabsScrollAmount?: number;\n  mode?: Mode;\n  tabsContainerRef?: React.RefObject<HTMLDivElement> | any;\n  tabRef?: React.RefObject<HTMLDivElement> | any;\n  leftNavBtnRef?: React.Ref<HTMLButtonElement> | any;\n  rightNavBtnRef?: React.Ref<HTMLButtonElement> | any;\n  navBtnStyle?: object;\n  tabsContainerStyle?: object;\n  tabsUpperContainerStyle?: object;\n  leftNavBtnClassName?: string;\n  rightNavBtnClassName?: string;\n  navBtnClassName?: string;\n  navBtnContainerClassName?: string;\n  tabsUpperContainerClassName?: string;\n  tabsContainerClassName?: string;\n  showTabsScroll?: boolean;\n  navBtnAs?: any;\n  getTabsBoundingClientRects?: Function;\n  action?: React.Ref<{\n    onLeftNavBtnClick: () => void;\n    onRightNavBtnClick: () => void;\n    goToStart: () => void;\n    goToEnd: () => void;\n  }>;\n  rightBtnIcon?: React.FunctionComponent | string | JSX.Element;\n  leftBtnIcon?: React.FunctionComponent | string | JSX.Element;\n}\ntype conditionalNavBtnsObjType = {\n  start?: any;\n  end?: any;\n};\n\nconst nextItem = (list: any, item: any) => {\n  if (list === item) {\n    return list.firstChild;\n  }\n\n  if (item && item.nextElementSibling) {\n    return item.nextElementSibling;\n  }\n\n  return list.firstChild;\n};\n\nconst previousItem = (list: any, item: any) => {\n  if (list === item) {\n    return list.lastChild;\n  }\n\n  if (item && item.previousElementSibling) {\n    return item.previousElementSibling;\n  }\n\n  return list.lastChild;\n};\n\nconst moveFocus = (list: any, currentFocus: any, traversalFunction: any) => {\n  let wrappedOnce = false;\n  let nextFocus = traversalFunction(list, currentFocus);\n\n  while (nextFocus) {\n    if (nextFocus === list.firstChild) {\n      if (wrappedOnce) {\n        return;\n      }\n\n      wrappedOnce = true;\n    }\n\n    const nextFocusDisabled =\n      nextFocus.disabled || nextFocus.getAttribute(\"aria-disabled\") === \"true\";\n\n    if (!nextFocus.hasAttribute(\"tabindex\") || nextFocusDisabled) {\n      // Move to the next element.\n      nextFocus = traversalFunction(list, nextFocus);\n    } else {\n      nextFocus.focus();\n      return;\n    }\n  }\n};\n\nlet isAnimationActive = false;\nconst start = \"left\";\nconst end = \"right\";\nconst scrollLeft = \"scrollLeft\";\n\nconst Tabs: React.FC<TabsProps> = (props) => {\n  const {\n    children,\n    activeTab,\n    animationDuration = 300,\n    navBtnCLickAnimationDuration = 300,\n    selectedAnimationDuration = 300,\n    isRTL = false,\n    didReachEnd = () => null,\n    didReachStart = () => null,\n    onTabClick = () => null,\n    hideNavBtnsOnMobile = true,\n    hideNavBtns = false,\n    tabsScrollAmount = 3,\n    tabsContainerRef = null,\n    tabRef = null,\n    mode = \"\",\n    tabsContainerStyle = {},\n    navBtnStyle = {},\n    tabsUpperContainerStyle = {},\n    leftNavBtnClassName = \"\",\n    rightNavBtnClassName = \"\",\n    navBtnClassName = \"\",\n    navBtnContainerClassName = \"\",\n    tabsUpperContainerClassName = \"\",\n    tabsContainerClassName = \"\",\n    leftNavBtnRef = null,\n    rightNavBtnRef = null,\n    showTabsScroll = false,\n    navBtnAs = \"button\",\n    action,\n    rightBtnIcon = <RightArrowIcon />,\n    leftBtnIcon = <LeftArrowIcon />,\n    getTabsBoundingClientRects = () => null,\n  } = props;\n\n  const _tabRef = React.useRef<any>([]);\n  const _tabsContainerRef = React.useRef<any>(null);\n  const [navBtnDisplay, setNavBtnDisplay] = React.useState({\n    start: false,\n    end: false,\n  });\n  const getTabsRects = (index: number = activeTab): any => {\n    const tabsContainerEl = _tabsContainerRef?.current;\n    const selectedTabEl = _tabRef.current?.[index];\n\n    let tabsContainerRects;\n    let tabRects;\n    if (!activeTab && activeTab !== 0) {\n      console.error(\"react-tabs-scrollable : You have to add activeTab prop\");\n      return;\n    }\n    if (tabsContainerEl) {\n      const rect = tabsContainerEl.getBoundingClientRect();\n      tabsContainerRects = {\n        top: rect.top,\n        right: rect.right,\n        bottom: rect.bottom,\n        left: rect.left,\n        width: rect.width,\n        height: rect.height,\n        x: rect.x,\n        y: rect.y,\n        scrollLeft: tabsContainerEl.scrollLeft,\n        clientWidth: tabsContainerEl?.clientWidth,\n        scrollWidth: tabsContainerEl?.scrollWidth,\n      };\n      tabRects = selectedTabEl?.getBoundingClientRect();\n    }\n    getTabsBoundingClientRects({ tabsContainerRects, tabRects });\n    return { tabsContainerRects, tabRects };\n  };\n\n  const scrollSelectedIntoView = useEventCallback(\n    (\n      index: number = activeTab,\n      animation: boolean = true,\n      isClicked?: boolean\n    ) => {\n      if (!_tabsContainerRef.current) {\n        return;\n      }\n\n      const { tabsContainerRects, tabRects } = getTabsRects(index);\n\n      const centerPointOfTabs =\n        tabsContainerRects.clientWidth / 2 - tabRects?.width / 2;\n\n      if (!tabsContainerRects || !tabRects) {\n        return;\n      }\n\n      // TODO find a better way to handle modes and use Switch to handle conditions!!\n      const centerOfViewValue =\n        mode === \"scrollSelectedToCenter\" ||\n        mode === \"scrollSelectedToCenterFromView\"\n          ? tabsContainerRects.clientWidth / 2 - tabRects?.width / 2\n          : 0;\n      const endOfViewValue =\n        mode === \"scrollSelectedToEnd\"\n          ? tabsContainerRects.clientWidth - tabRects?.width\n          : 0;\n      const additionalScrollValue = centerOfViewValue || endOfViewValue;\n      if (tabRects[start] < tabsContainerRects[start]) {\n        // left side of button is out of view\n        const nextScrollStart =\n          tabsContainerRects[scrollLeft] +\n          (tabRects[start] - tabsContainerRects[start]) -\n          additionalScrollValue;\n        scroll(\n          nextScrollStart,\n          animationDuration || selectedAnimationDuration,\n          animation\n        );\n      } else if (tabRects[end] > tabsContainerRects[end]) {\n        // right side of button is out of view\n        const nextScrollStart =\n          tabsContainerRects[scrollLeft] +\n          (tabRects[end] - tabsContainerRects[end]) +\n          additionalScrollValue;\n\n        scroll(\n          nextScrollStart,\n          selectedAnimationDuration || animationDuration,\n          animation\n        );\n      }\n      if (\n        centerPointOfTabs > tabRects[start] &&\n        isClicked &&\n        mode === \"scrollSelectedToCenterFromView\"\n      ) {\n        isClicked = false;\n        const nextScrollStart =\n          tabsContainerRects[scrollLeft] +\n          (tabRects[start] - tabsContainerRects[start]) -\n          additionalScrollValue;\n        scroll(\n          nextScrollStart,\n          animationDuration || selectedAnimationDuration,\n          animation\n        );\n      } else if (\n        centerPointOfTabs < tabRects[start] &&\n        isClicked &&\n        mode === \"scrollSelectedToCenterFromView\"\n      ) {\n        isClicked = false;\n        const nextScrollStart =\n          tabsContainerRects[scrollLeft] +\n          (tabRects[end] - tabsContainerRects[end]) +\n          additionalScrollValue;\n\n        scroll(\n          nextScrollStart,\n          selectedAnimationDuration || animationDuration,\n          animation\n        );\n      }\n    }\n  );\n\n  const scroll = (\n    scrollValue: number,\n    duration: number = 300,\n    animation: boolean = true\n  ) => {\n    if (animation) {\n      animate(scrollLeft, _tabsContainerRef.current, scrollValue, {\n        duration: duration,\n      });\n    } else {\n      _tabsContainerRef.current.scrollLeft = scrollValue;\n    }\n  };\n\n  const updateNavBtnsState = useEventCallback(\n    (__tabsContainerRef = _tabsContainerRef) => {\n      if (!__tabsContainerRef.current) return;\n      const scrollLeft = isRTL\n        ? getNormalizedScrollLeft(\n            __tabsContainerRef.current,\n            isRTL ? \"rtl\" : \"ltr\"\n          )\n        : __tabsContainerRef.current.scrollLeft;\n\n      const scrollWidth = __tabsContainerRef.current.scrollWidth;\n      const clientWidth = __tabsContainerRef.current.clientWidth;\n\n      const showStartScroll = Math.floor(scrollLeft) > 1;\n      const showEndScroll =\n        Math.ceil(scrollLeft) < scrollWidth - clientWidth - 1;\n\n      setNavBtnDisplay({\n        start: isRTL ? showEndScroll : showStartScroll,\n        end: isRTL ? showStartScroll : showEndScroll,\n      });\n      didReachStart(!showStartScroll);\n      didReachEnd(!showEndScroll);\n    }\n  );\n\n  React.useEffect(() => {\n    const handleResize = debounce(() => {\n      // const { tabsRects, tabRects } = getTabsRects();\n      updateNavBtnsState(_tabsContainerRef);\n      scrollSelectedIntoView();\n    });\n\n    if (typeof ResizeObserver !== \"undefined\") {\n      const resizeObserver = new ResizeObserver((entries) => {\n        handleResize();\n      });\n\n      resizeObserver.observe(_tabsContainerRef.current);\n    }\n  }, [isRTL]);\n  React.useEffect(() => {\n    scrollSelectedIntoView(activeTab, true, true);\n  }, [activeTab]);\n\n  const onNativeTabClick = useEventCallback(\n    (e: React.BaseSyntheticEvent, index: number) => {\n      onTabClick(e, index);\n    }\n  );\n\n  const handleTabsScroll = React.useMemo(\n    () =>\n      debounce(() => {\n        updateNavBtnsState(_tabsContainerRef);\n      }),\n    [updateNavBtnsState]\n  );\n  React.useEffect(() => {\n    return () => {\n      handleTabsScroll.clear();\n    };\n  }, [handleTabsScroll]);\n\n  const onRightNavBtnClick = (\n    e?: undefined,\n    _tabsScrollAmount = tabsScrollAmount\n  ) => {\n    const { tabsContainerRects } = getTabsRects();\n\n    scroll(\n      tabsContainerRects[scrollLeft] +\n        _tabRef.current[activeTab]?.clientWidth * _tabsScrollAmount,\n      animationDuration || navBtnCLickAnimationDuration\n    );\n  };\n  const onLeftNavBtnClick = (\n    e?: undefined,\n    _tabsScrollAmount = tabsScrollAmount\n  ) => {\n    const { tabsContainerRects } = getTabsRects();\n\n    scroll(\n      tabsContainerRects[scrollLeft] -\n        _tabRef.current[activeTab]?.clientWidth * _tabsScrollAmount,\n      animationDuration || navBtnCLickAnimationDuration\n    );\n  };\n\n  const handleKeyDown = (event: React.KeyboardEvent) => {\n    const list = _tabsContainerRef.current;\n    const currentFocus = ownerDocument(list).activeElement;\n\n    const role = currentFocus?.getAttribute(\"role\");\n\n    if (role !== \"tab\") {\n      return;\n    }\n\n    let previousItemKey = \"ArrowLeft\";\n    let nextItemKey = \"ArrowRight\";\n\n    if (isRTL) {\n      // swap previousItemKey with nextItemKey\n      previousItemKey = \"ArrowRight\";\n      nextItemKey = \"ArrowLeft\";\n    }\n\n    switch (event.key) {\n      case previousItemKey:\n        event.preventDefault();\n        moveFocus(list, currentFocus, previousItem);\n        break;\n\n      case nextItemKey:\n        event.preventDefault();\n        moveFocus(list, currentFocus, nextItem);\n        break;\n\n      case \"Home\":\n        event.preventDefault();\n        moveFocus(list, null, nextItem);\n        break;\n\n      case \"End\":\n        event.preventDefault();\n        moveFocus(list, null, previousItem);\n        break;\n\n      default:\n        break;\n    }\n  };\n\n  const goToStart = () => {\n    scroll(0);\n  };\n  const goToEnd = () => {\n    const { tabsContainerRects } = getTabsRects();\n    const { scrollWidth } = tabsContainerRects;\n    scroll((isRTL ? -1 : 1) * scrollWidth);\n  };\n\n  React.useImperativeHandle(\n    action,\n    () => ({\n      onLeftNavBtnClick,\n      onRightNavBtnClick,\n      goToStart,\n      goToEnd,\n    }),\n    [onLeftNavBtnClick, onRightNavBtnClick, goToStart, goToEnd]\n  );\n\n  const navBtnProps = {\n    [\"aria-hidden\"]: \"true\",\n    hideNavBtnsOnMobile,\n    navBtnStyle,\n    navBtnContainerClassName,\n    navBtnAs,\n  };\n\n  const getNavBtns = () => {\n    if (hideNavBtns) return null;\n    let conditionalNavBtns: conditionalNavBtnsObjType = {};\n\n    if (!navBtnDisplay.start && !navBtnDisplay.end) {\n      return (conditionalNavBtns = {\n        end: null,\n        start: null,\n      });\n    }\n    conditionalNavBtns[isRTL ? \"end\" : \"start\"] = (\n      <NavBtn\n        disabled={!navBtnDisplay[isRTL ? \"end\" : \"start\"]}\n        onClick={onLeftNavBtnClick}\n        ref={leftNavBtnRef}\n        className={`${leftNavBtnClassName} ${navBtnClassName}`.trim()}\n        {...navBtnProps}\n      >\n        {leftBtnIcon}\n      </NavBtn>\n    );\n\n    conditionalNavBtns[isRTL ? \"start\" : \"end\"] = (\n      <NavBtn\n        disabled={!navBtnDisplay[isRTL ? \"start\" : \"end\"]}\n        onClick={onRightNavBtnClick}\n        ref={rightNavBtnRef}\n        className={`${rightNavBtnClassName} ${navBtnClassName}`.trim()}\n        {...navBtnProps}\n      >\n        {rightBtnIcon}\n      </NavBtn>\n    );\n\n    return conditionalNavBtns;\n  };\n\n  const conditionalNavBtns = getNavBtns();\n  return (\n    <div\n      className={`rts___tabs___container ${tabsUpperContainerClassName}`.trim()}\n      style={tabsUpperContainerStyle}\n    >\n      {conditionalNavBtns?.start}\n\n      <div\n        ref={(ref) => {\n          _tabsContainerRef.current = ref;\n          if (tabsContainerRef) {\n            tabsContainerRef.current = ref;\n          }\n        }}\n        role=\"tablist\"\n        aria-label=\"tabs\"\n        onKeyDown={handleKeyDown}\n        onScroll={handleTabsScroll}\n        style={tabsContainerStyle}\n        className={`rts___tabs ${\n          !showTabsScroll ? \"hide___rts___tabs___scroll\" : \"\"\n        } ${tabsContainerClassName}`.trim()}\n      >\n        <React.Fragment>\n          {React.Children.map(children, (child, index) => {\n            if (!React.isValidElement(child)) {\n              return null;\n            }\n            const selected = index === activeTab;\n            return React.cloneElement(child as any, {\n              ref: (ref: HTMLDivElement) => {\n                _tabRef.current[index] = ref;\n                if (tabRef) {\n                  tabRef.current[index] = ref;\n                }\n              },\n\n              onClick: (e: React.BaseSyntheticEvent) => {\n                onNativeTabClick(e, index);\n              },\n              [\"data-index\"]: index,\n              role: \"tab\",\n              [\"aria-selected\"]: selected ? \"true\" : \"false\",\n              tabIndex: selected ? \"0\" : \"-1\",\n              selected: selected,\n              className: `rts___tab rts___btn ${\n                child.props.className || \"\"\n              }`.trim(),\n            });\n          })}\n        </React.Fragment>\n      </div>\n\n      {conditionalNavBtns?.end}\n    </div>\n  );\n};\n\nexport default Tabs;\n","// based on https://github.com/mui/material-ui/blob/17d4b9e037c90903e7d57fce36db4e58e2ee7494/packages/mui-utils/src/ownerDocument.ts#L4\n\nexport default function ownerDocument(node: Node | null | undefined): Document {\n  return (node && node.ownerDocument) || document;\n}\n","import React from \"react\";\n\ninterface TabProps {\n  children: React.ReactNode;\n  className?: string;\n  style?: React.CSSProperties;\n  selected?: boolean;\n  tabAs?: keyof JSX.IntrinsicElements;\n  onClick?: (event: React.MouseEvent<HTMLElement>) => void;\n  [key: string]: any; // For any additional props\n}\n\nconst Tab = React.forwardRef<HTMLDivElement, TabProps>(\n  (\n    {\n      className = \"\",\n      selected,\n      style,\n      tabAs = \"button\",\n      onTabClick,\n      ...props\n    }: TabProps,\n    ref\n  ) => {\n    const Tag = tabAs as React.ElementType;\n\n    const buttonSpecialProps = {\n      type: \"button\",\n    };\n\n    const tabClassNames = `${className} ${\n      selected ? \"rts___tab___selected\" : \"\"\n    }`.trim();\n\n    const handleClick = (e: React.MouseEvent<HTMLElement>) => {\n      if (onTabClick) {\n        onTabClick(e);\n      }\n      if (props?.onClick) {\n        (props.onClick as (event: React.MouseEvent<HTMLElement>) => void)(e);\n      }\n    };\n\n    return (\n      <Tag\n        onClick={handleClick}\n        // {...props}\n        className={tabClassNames}\n        ref={ref as React.RefObject<HTMLDivElement>}\n        style={style}\n        {...(tabAs === \"button\" ? buttonSpecialProps : {})}\n      >\n        {props.children}\n      </Tag>\n    );\n  }\n);\n\nexport default Tab;\n","\n/**\n * When source maps are enabled, `style-loader` uses a link element with a data-uri to\n * embed the css on the page. This breaks all relative urls because now they are relative to a\n * bundle instead of the current page.\n *\n * One solution is to only use full urls, but that may be impossible.\n *\n * Instead, this function \"fixes\" the relative urls to be absolute according to the current page location.\n *\n * A rudimentary test suite is located at `test/fixUrls.js` and can be run via the `npm test` command.\n *\n */\n\nmodule.exports = function (css) {\n  // get current location\n  var location = typeof window !== \"undefined\" && window.location;\n\n  if (!location) {\n    throw new Error(\"fixUrls requires window.location\");\n  }\n\n\t// blank or null?\n\tif (!css || typeof css !== \"string\") {\n\t  return css;\n  }\n\n  var baseUrl = location.protocol + \"//\" + location.host;\n  var currentDir = baseUrl + location.pathname.replace(/\\/[^\\/]*$/, \"/\");\n\n\t// convert each url(...)\n\t/*\n\tThis regular expression is just a way to recursively match brackets within\n\ta string.\n\n\t /url\\s*\\(  = Match on the word \"url\" with any whitespace after it and then a parens\n\t   (  = Start a capturing group\n\t     (?:  = Start a non-capturing group\n\t         [^)(]  = Match anything that isn't a parentheses\n\t         |  = OR\n\t         \\(  = Match a start parentheses\n\t             (?:  = Start another non-capturing groups\n\t                 [^)(]+  = Match anything that isn't a parentheses\n\t                 |  = OR\n\t                 \\(  = Match a start parentheses\n\t                     [^)(]*  = Match anything that isn't a parentheses\n\t                 \\)  = Match a end parentheses\n\t             )  = End Group\n              *\\) = Match anything and then a close parens\n          )  = Close non-capturing group\n          *  = Match anything\n       )  = Close capturing group\n\t \\)  = Match a close parens\n\n\t /gi  = Get all matches, not the first.  Be case insensitive.\n\t */\n\tvar fixedCss = css.replace(/url\\s*\\(((?:[^)(]|\\((?:[^)(]+|\\([^)(]*\\))*\\))*)\\)/gi, function(fullMatch, origUrl) {\n\t\t// strip quotes (if they exist)\n\t\tvar unquotedOrigUrl = origUrl\n\t\t\t.trim()\n\t\t\t.replace(/^\"(.*)\"$/, function(o, $1){ return $1; })\n\t\t\t.replace(/^'(.*)'$/, function(o, $1){ return $1; });\n\n\t\t// already a full url? no change\n\t\tif (/^(#|data:|http:\\/\\/|https:\\/\\/|file:\\/\\/\\/|\\s*$)/i.test(unquotedOrigUrl)) {\n\t\t  return fullMatch;\n\t\t}\n\n\t\t// convert the url to a full url\n\t\tvar newUrl;\n\n\t\tif (unquotedOrigUrl.indexOf(\"//\") === 0) {\n\t\t  \t//TODO: should we add protocol?\n\t\t\tnewUrl = unquotedOrigUrl;\n\t\t} else if (unquotedOrigUrl.indexOf(\"/\") === 0) {\n\t\t\t// path should be relative to the base url\n\t\t\tnewUrl = baseUrl + unquotedOrigUrl; // already starts with '/'\n\t\t} else {\n\t\t\t// path should be relative to current directory\n\t\t\tnewUrl = currentDir + unquotedOrigUrl.replace(/^\\.\\//, \"\"); // Strip leading './'\n\t\t}\n\n\t\t// send back the fixed url(...)\n\t\treturn \"url(\" + JSON.stringify(newUrl) + \")\";\n\t});\n\n\t// send back the fixed css\n\treturn fixedCss;\n};\n","module.exports = __webpack_public_path__ + \"web/ttsMake/statics/podcast-slogan-becefe85.png\";","module.exports = \"data:image/png;base64,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\"","'use strict';\n\nvar md5 = require('../lib/md5');\nvar CryptoJS = require('../lib/crypto');\nvar { XMLParser, XMLBuilder } = require('fast-xml-parser');\nvar xmlParser = new XMLParser({\n  ignoreDeclaration: true, // 忽略 XML 声明\n  ignoreAttributes: true, // 忽略属性\n  parseTagValue: false, // 关闭自动解析\n});\nvar xmlBuilder = new XMLBuilder();\nvar base64 = require('../lib/base64');\nvar Tracker = require('./tracker');\n\n// XML 对象转 JSON 对象\nvar xml2json = function (bodyStr) {\n  var d = xmlParser.parse(bodyStr);\n  return d;\n};\n\n// JSON 对象转 XML 对象\nvar json2xml = function (json) {\n  var xml = xmlBuilder.build(json);\n  return xml;\n};\n\nfunction camSafeUrlEncode(str) {\n  return encodeURIComponent(str)\n    .replace(/!/g, '%21')\n    .replace(/'/g, '%27')\n    .replace(/\\(/g, '%28')\n    .replace(/\\)/g, '%29')\n    .replace(/\\*/g, '%2A');\n}\n\nfunction getObjectKeys(obj, forKey) {\n  var list = [];\n  for (var key in obj) {\n    if (obj.hasOwnProperty(key)) {\n      list.push(forKey ? camSafeUrlEncode(key).toLowerCase() : key);\n    }\n  }\n  return list.sort(function (a, b) {\n    a = a.toLowerCase();\n    b = b.toLowerCase();\n    return a === b ? 0 : a > b ? 1 : -1;\n  });\n}\n\n/**\n * obj转为string\n * @param  {Object}  obj                需要转的对象，必须\n * @param  {Boolean} lowerCaseKey       key是否转为小写，默认false，非必须\n * @return {String}  data               返回字符串\n */\nvar obj2str = function (obj, lowerCaseKey) {\n  var i, key, val;\n  var list = [];\n  var keyList = getObjectKeys(obj);\n  for (i = 0; i < keyList.length; i++) {\n    key = keyList[i];\n    val = obj[key] === undefined || obj[key] === null ? '' : '' + obj[key];\n    key = lowerCaseKey ? camSafeUrlEncode(key).toLowerCase() : camSafeUrlEncode(key);\n    val = camSafeUrlEncode(val) || '';\n    list.push(key + '=' + val);\n  }\n  return list.join('&');\n};\n\n// 可以签入签名的headers\nvar signHeaders = [\n  'cache-control',\n  'content-disposition',\n  'content-encoding',\n  'content-length',\n  'content-md5',\n  'expect',\n  'expires',\n  'host',\n  'if-match',\n  'if-modified-since',\n  'if-none-match',\n  'if-unmodified-since',\n  'origin',\n  'range',\n  'transfer-encoding',\n  'pic-operations',\n];\n\nvar getSignHeaderObj = function (headers) {\n  var signHeaderObj = {};\n  for (var i in headers) {\n    var key = i.toLowerCase();\n    if (key.indexOf('x-cos-') > -1 || signHeaders.indexOf(key) > -1) {\n      signHeaderObj[i] = headers[i];\n    }\n  }\n  return signHeaderObj;\n};\n\n//测试用的key后面可以去掉\nvar getAuth = function (opt) {\n  opt = opt || {};\n\n  var SecretId = opt.SecretId;\n  var SecretKey = opt.SecretKey;\n  var KeyTime = opt.KeyTime;\n  var method = (opt.method || opt.Method || 'get').toLowerCase();\n  var queryParams = clone(opt.Query || opt.params || {});\n  var headers = getSignHeaderObj(clone(opt.Headers || opt.headers || {}));\n\n  var Key = opt.Key || '';\n  var pathname;\n  if (opt.UseRawKey) {\n    pathname = opt.Pathname || opt.pathname || '/' + Key;\n  } else {\n    pathname = opt.Pathname || opt.pathname || Key;\n    pathname.indexOf('/') !== 0 && (pathname = '/' + pathname);\n  }\n\n  // ForceSignHost明确传入false才不加入host签名\n  var forceSignHost = opt.ForceSignHost === false ? false : true;\n\n  // 如果有传入存储桶且需要强制签名，那么签名默认加 Host 参与计算，避免跨桶访问\n  if (!headers.Host && !headers.host && opt.Bucket && opt.Region && forceSignHost)\n    headers.Host = opt.Bucket + '.cos.' + opt.Region + '.myqcloud.com';\n\n  if (!SecretId) throw new Error('missing param SecretId');\n  if (!SecretKey) throw new Error('missing param SecretKey');\n\n  // 签名有效起止时间\n  var now = Math.round(getSkewTime(opt.SystemClockOffset) / 1000) - 1;\n  var exp = now;\n\n  var Expires = opt.Expires || opt.expires;\n  if (Expires === undefined) {\n    exp += 900; // 签名过期时间为当前 + 900s\n  } else {\n    exp += Expires * 1 || 0;\n  }\n\n  // 要用到的 Authorization 参数列表\n  var qSignAlgorithm = 'sha1';\n  var qAk = SecretId;\n  var qSignTime = KeyTime || now + ';' + exp;\n  var qKeyTime = KeyTime || now + ';' + exp;\n  var qHeaderList = getObjectKeys(headers, true).join(';').toLowerCase();\n  var qUrlParamList = getObjectKeys(queryParams, true).join(';').toLowerCase();\n\n  // 签名算法说明文档：https://www.qcloud.com/document/product/436/7778\n  // 步骤一：计算 SignKey\n  var signKey = CryptoJS.HmacSHA1(qKeyTime, SecretKey).toString();\n\n  // 步骤二：构成 FormatString\n  var formatString = [method, pathname, util.obj2str(queryParams, true), util.obj2str(headers, true), ''].join('\\n');\n\n  // 步骤三：计算 StringToSign\n  var stringToSign = ['sha1', qSignTime, CryptoJS.SHA1(formatString).toString(), ''].join('\\n');\n\n  // 步骤四：计算 Signature\n  var qSignature = CryptoJS.HmacSHA1(stringToSign, signKey).toString();\n\n  // 步骤五：构造 Authorization\n  var authorization = [\n    'q-sign-algorithm=' + qSignAlgorithm,\n    'q-ak=' + qAk,\n    'q-sign-time=' + qSignTime,\n    'q-key-time=' + qKeyTime,\n    'q-header-list=' + qHeaderList,\n    'q-url-param-list=' + qUrlParamList,\n    'q-signature=' + qSignature,\n  ].join('&');\n\n  return authorization;\n};\n\nvar readIntBE = function (chunk, size, offset) {\n  var bytes = size / 8;\n  var buf = chunk.slice(offset, offset + bytes);\n  new Uint8Array(buf).reverse();\n  return new { 8: Uint8Array, 16: Uint16Array, 32: Uint32Array }[size](buf)[0];\n};\nvar buf2str = function (chunk, start, end, isUtf8) {\n  var buf = chunk.slice(start, end);\n  var str = '';\n  new Uint8Array(buf).forEach(function (charCode) {\n    str += String.fromCharCode(charCode);\n  });\n  if (isUtf8) str = decodeURIComponent(escape(str));\n  return str;\n};\nvar parseSelectPayload = function (chunk) {\n  var header = {};\n  var body = buf2str(chunk);\n  var result = { records: [] };\n  while (chunk.byteLength) {\n    var totalLength = readIntBE(chunk, 32, 0);\n    var headerLength = readIntBE(chunk, 32, 4);\n    var payloadRestLength = totalLength - headerLength - 16;\n    var offset = 0;\n    var content;\n    chunk = chunk.slice(12);\n    // 获取 Message 的 header 信息\n    while (offset < headerLength) {\n      var headerNameLength = readIntBE(chunk, 8, offset);\n      var headerName = buf2str(chunk, offset + 1, offset + 1 + headerNameLength);\n      var headerValueLength = readIntBE(chunk, 16, offset + headerNameLength + 2);\n      var headerValue = buf2str(\n        chunk,\n        offset + headerNameLength + 4,\n        offset + headerNameLength + 4 + headerValueLength\n      );\n      header[headerName] = headerValue;\n      offset += headerNameLength + 4 + headerValueLength;\n    }\n    if (header[':event-type'] === 'Records') {\n      content = buf2str(chunk, offset, offset + payloadRestLength, true);\n      result.records.push(content);\n    } else if (header[':event-type'] === 'Stats') {\n      content = buf2str(chunk, offset, offset + payloadRestLength, true);\n      result.stats = util.xml2json(content).Stats;\n    } else if (header[':event-type'] === 'error') {\n      var errCode = header[':error-code'];\n      var errMessage = header[':error-message'];\n      var err = new Error(errMessage);\n      err.message = errMessage;\n      err.name = err.code = errCode;\n      result.error = err;\n    } else if (['Progress', 'Continuation', 'End'].includes(header[':event-type'])) {\n      // do nothing\n    }\n    chunk = chunk.slice(offset + payloadRestLength + 4);\n  }\n  return {\n    payload: result.records.join(''),\n    body: body,\n  };\n};\n\nvar getSourceParams = function (source) {\n  var parser = this.options.CopySourceParser;\n  if (parser) return parser(source);\n  var m = source.match(\n    /^([^.]+-\\d+)\\.cos(v6|-cdc|-cdz|-internal)?\\.([^.]+)\\.((myqcloud\\.com)|(tencentcos\\.cn))\\/(.+)$/\n  );\n  if (!m) return null;\n  return { Bucket: m[1], Region: m[3], Key: m[7] };\n};\n\nvar noop = function () {};\n\n// 清除对象里值为的 undefined 或 null 的属性\nvar clearKey = function (obj) {\n  var retObj = {};\n  for (var key in obj) {\n    if (obj.hasOwnProperty(key) && obj[key] !== undefined && obj[key] !== null) {\n      retObj[key] = obj[key];\n    }\n  }\n  return retObj;\n};\n\nvar readAsBinaryString = function (blob, callback) {\n  var readFun;\n  var fr = new FileReader();\n  if (FileReader.prototype.readAsBinaryString) {\n    readFun = FileReader.prototype.readAsBinaryString;\n    fr.onload = function () {\n      callback(this.result);\n    };\n  } else if (FileReader.prototype.readAsArrayBuffer) {\n    // 在 ie11 添加 readAsBinaryString 兼容\n    readFun = function (fileData) {\n      var binary = '';\n      var pt = this;\n      var reader = new FileReader();\n      reader.onload = function (e) {\n        var bytes = new Uint8Array(reader.result);\n        var length = bytes.byteLength;\n        for (var i = 0; i < length; i++) {\n          binary += String.fromCharCode(bytes[i]);\n        }\n        callback(binary);\n      };\n      reader.readAsArrayBuffer(fileData);\n    };\n  } else {\n    console.error('FileReader not support readAsBinaryString');\n  }\n  readFun.call(fr, blob);\n};\n\nvar fileSliceNeedCopy = (function () {\n  var compareVersion = function (a, b) {\n    a = a.split('.');\n    b = b.split('.');\n    for (var i = 0; i < b.length; i++) {\n      if (a[i] !== b[i]) {\n        return parseInt(a[i]) > parseInt(b[i]) ? 1 : -1;\n      }\n    }\n    return 0;\n  };\n  var check = function (ua) {\n    if (!ua) return false;\n    var ChromeVersion = (ua.match(/Chrome\\/([.\\d]+)/) || [])[1];\n    var QBCoreVersion = (ua.match(/QBCore\\/([.\\d]+)/) || [])[1];\n    var QQBrowserVersion = (ua.match(/QQBrowser\\/([.\\d]+)/) || [])[1];\n    var need =\n      (ChromeVersion &&\n        compareVersion(ChromeVersion, '53.0.2785.116') < 0 &&\n        QBCoreVersion &&\n        compareVersion(QBCoreVersion, '3.53.991.400') < 0 &&\n        QQBrowserVersion &&\n        compareVersion(QQBrowserVersion, '9.0.2524.400') <= 0) ||\n      false;\n    return need;\n  };\n  return check(typeof navigator !== 'undefined' && navigator.userAgent);\n})();\n\n// 获取文件分片\nvar fileSlice = function (file, start, end, isUseToUpload, callback) {\n  var blob;\n  if (file.slice) {\n    blob = file.slice(start, end);\n  } else if (file.mozSlice) {\n    blob = file.mozSlice(start, end);\n  } else if (file.webkitSlice) {\n    blob = file.webkitSlice(start, end);\n  }\n  if (isUseToUpload && fileSliceNeedCopy) {\n    var reader = new FileReader();\n    reader.onload = function (e) {\n      blob = null;\n      callback(new Blob([reader.result]));\n    };\n    reader.readAsArrayBuffer(blob);\n  } else {\n    callback(blob);\n  }\n};\n\n// 获取文件内容的 MD5\nvar getBodyMd5 = function (UploadCheckContentMd5, Body, callback, onProgress) {\n  callback = callback || noop;\n  if (UploadCheckContentMd5) {\n    if (typeof Body === 'string') {\n      callback(util.md5(Body, true));\n    } else if (Blob && Body instanceof Blob) {\n      util.getFileMd5(\n        Body,\n        function (err, md5) {\n          callback(md5);\n        },\n        onProgress\n      );\n    } else {\n      callback();\n    }\n  } else {\n    callback();\n  }\n};\n\n// 获取文件 md5 值\nvar md5ChunkSize = 1024 * 1024;\nvar getFileMd5 = function (blob, callback, onProgress) {\n  var size = blob.size;\n  var loaded = 0;\n  var md5ctx = md5.getCtx();\n  var next = function (start) {\n    if (start >= size) {\n      var hash = md5ctx.digest('hex');\n      callback(null, hash);\n      return;\n    }\n    var end = Math.min(size, start + md5ChunkSize);\n    util.fileSlice(blob, start, end, false, function (chunk) {\n      readAsBinaryString(chunk, function (content) {\n        chunk = null;\n        md5ctx = md5ctx.update(content, true);\n        loaded += content.length;\n        content = null;\n        if (onProgress)\n          onProgress({ loaded: loaded, total: size, percent: Math.round((loaded / size) * 10000) / 10000 });\n        next(start + md5ChunkSize);\n      });\n    });\n  };\n  next(0);\n};\n\nfunction clone(obj) {\n  return map(obj, function (v) {\n    return typeof v === 'object' && v !== null ? clone(v) : v;\n  });\n}\n\nfunction attr(obj, name, defaultValue) {\n  return obj && name in obj ? obj[name] : defaultValue;\n}\n\nfunction extend(target, source) {\n  each(source, function (val, key) {\n    target[key] = source[key];\n  });\n  return target;\n}\n\nfunction isArray(arr) {\n  return arr instanceof Array;\n}\n\nfunction isInArray(arr, item) {\n  var flag = false;\n  for (var i = 0; i < arr.length; i++) {\n    if (item === arr[i]) {\n      flag = true;\n      break;\n    }\n  }\n  return flag;\n}\n\nfunction makeArray(arr) {\n  return isArray(arr) ? arr : [arr];\n}\n\nfunction each(obj, fn) {\n  for (var i in obj) {\n    if (obj.hasOwnProperty(i)) {\n      fn(obj[i], i);\n    }\n  }\n}\n\nfunction map(obj, fn) {\n  var o = isArray(obj) ? [] : {};\n  for (var i in obj) {\n    if (obj.hasOwnProperty(i)) {\n      o[i] = fn(obj[i], i);\n    }\n  }\n  return o;\n}\n\nfunction filter(obj, fn) {\n  var iaArr = isArray(obj);\n  var o = iaArr ? [] : {};\n  for (var i in obj) {\n    if (obj.hasOwnProperty(i)) {\n      if (fn(obj[i], i)) {\n        if (iaArr) {\n          o.push(obj[i]);\n        } else {\n          o[i] = obj[i];\n        }\n      }\n    }\n  }\n  return o;\n}\n\nvar b64 = function (str) {\n  var i,\n    len,\n    char,\n    res = '';\n  for (i = 0, len = str.length / 2; i < len; i++) {\n    char = parseInt(str[i * 2] + str[i * 2 + 1], 16);\n    res += String.fromCharCode(char);\n  }\n  return btoa(res);\n};\nvar uuid = function () {\n  var S4 = function () {\n    return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);\n  };\n  return S4() + S4() + '-' + S4() + '-' + S4() + '-' + S4() + '-' + S4() + S4() + S4();\n};\n\nvar hasMissingParams = function (apiName, params) {\n  var Bucket = params.Bucket;\n  var Region = params.Region;\n  var Key = params.Key;\n  var Domain = this.options.Domain;\n  var checkBucket = !Domain || (typeof Domain === 'string' && Domain.indexOf('{Bucket}') > -1);\n  var checkRegion = !Domain || (typeof Domain === 'string' && Domain.indexOf('{Region}') > -1);\n  if (\n    apiName.indexOf('Bucket') > -1 ||\n    apiName === 'deleteMultipleObject' ||\n    apiName === 'multipartList' ||\n    apiName === 'listObjectVersions'\n  ) {\n    if (checkBucket && !Bucket) return 'Bucket';\n    if (checkRegion && !Region) return 'Region';\n  } else if (\n    apiName.indexOf('Object') > -1 ||\n    apiName.indexOf('multipart') > -1 ||\n    apiName === 'sliceUploadFile' ||\n    apiName === 'abortUploadTask' ||\n    apiName === 'uploadFile'\n  ) {\n    if (checkBucket && !Bucket) return 'Bucket';\n    if (checkRegion && !Region) return 'Region';\n    if (!Key) return 'Key';\n  }\n  return false;\n};\n\nvar formatParams = function (apiName, params) {\n  // 复制参数对象\n  params = extend({}, params);\n\n  // 统一处理 Headers\n  if (apiName !== 'getAuth' && apiName !== 'getV4Auth' && apiName !== 'getObjectUrl') {\n    var Headers = params.Headers || {};\n    if (params && typeof params === 'object') {\n      (function () {\n        for (var key in params) {\n          if (params.hasOwnProperty(key) && key.indexOf('x-cos-') > -1) {\n            Headers[key] = params[key];\n          }\n        }\n      })();\n\n      var headerMap = {\n        // params headers\n        'x-cos-mfa': 'MFA',\n        'Content-MD5': 'ContentMD5',\n        'Content-Length': 'ContentLength',\n        'Content-Type': 'ContentType',\n        Expect: 'Expect',\n        Expires: 'Expires',\n        'Cache-Control': 'CacheControl',\n        'Content-Disposition': 'ContentDisposition',\n        'Content-Encoding': 'ContentEncoding',\n        Range: 'Range',\n        'If-Modified-Since': 'IfModifiedSince',\n        'If-Unmodified-Since': 'IfUnmodifiedSince',\n        'If-Match': 'IfMatch',\n        'If-None-Match': 'IfNoneMatch',\n        'x-cos-copy-source': 'CopySource',\n        'x-cos-copy-source-Range': 'CopySourceRange',\n        'x-cos-metadata-directive': 'MetadataDirective',\n        'x-cos-copy-source-If-Modified-Since': 'CopySourceIfModifiedSince',\n        'x-cos-copy-source-If-Unmodified-Since': 'CopySourceIfUnmodifiedSince',\n        'x-cos-copy-source-If-Match': 'CopySourceIfMatch',\n        'x-cos-copy-source-If-None-Match': 'CopySourceIfNoneMatch',\n        'x-cos-acl': 'ACL',\n        'x-cos-grant-read': 'GrantRead',\n        'x-cos-grant-write': 'GrantWrite',\n        'x-cos-grant-full-control': 'GrantFullControl',\n        'x-cos-grant-read-acp': 'GrantReadAcp',\n        'x-cos-grant-write-acp': 'GrantWriteAcp',\n        'x-cos-storage-class': 'StorageClass',\n        'x-cos-traffic-limit': 'TrafficLimit',\n        'x-cos-mime-limit': 'MimeLimit',\n        // SSE-C\n        'x-cos-server-side-encryption-customer-algorithm': 'SSECustomerAlgorithm',\n        'x-cos-server-side-encryption-customer-key': 'SSECustomerKey',\n        'x-cos-server-side-encryption-customer-key-MD5': 'SSECustomerKeyMD5',\n        // SSE-COS、SSE-KMS\n        'x-cos-server-side-encryption': 'ServerSideEncryption',\n        'x-cos-server-side-encryption-cos-kms-key-id': 'SSEKMSKeyId',\n        'x-cos-server-side-encryption-context': 'SSEContext',\n        // 上传时图片处理\n        'Pic-Operations': 'PicOperations',\n        'x-cos-callback': 'Callback',\n        'x-cos-callback-var': 'CallbackVar',\n        'x-cos-return-body': 'ReturnBody',\n      };\n      util.each(headerMap, function (paramKey, headerKey) {\n        if (params[paramKey] !== undefined) {\n          Headers[headerKey] = params[paramKey];\n        }\n      });\n\n      params.Headers = clearKey(Headers);\n    }\n  }\n\n  return params;\n};\n\nvar apiWrapper = function (apiName, apiFn) {\n  return function (params, callback) {\n    var self = this;\n\n    // 处理参数\n    if (typeof params === 'function') {\n      callback = params;\n      params = {};\n    }\n\n    // 整理参数格式\n    params = formatParams(apiName, params);\n\n    // tracker传递\n    var tracker;\n    if (self.options.EnableReporter) {\n      if (params.calledBySdk === 'sliceUploadFile' || params.calledBySdk === 'sliceCopyFile') {\n        // 分块上传内部方法使用sliceUploadFile的子链路\n        tracker = params.tracker && params.tracker.generateSubTracker({ apiName });\n      } else if (['uploadFile', 'uploadFiles'].includes(apiName)) {\n        // uploadFile、uploadFiles方法在内部处理，此处不处理\n        tracker = null;\n      } else {\n        var fileSize = 0;\n        if (params.Body) {\n          fileSize =\n            typeof params.Body === 'string' ? params.Body.length : params.Body.size || params.Body.byteLength || 0;\n        }\n        const accelerate =\n          self.options.UseAccelerate ||\n          (typeof self.options.Domain === 'string' && self.options.Domain.includes('accelerate.'));\n        tracker = new Tracker({\n          Beacon: self.options.BeaconReporter,\n          clsReporter: self.options.ClsReporter,\n          bucket: params.Bucket,\n          region: params.Region,\n          apiName: apiName,\n          realApi: apiName,\n          accelerate,\n          fileKey: params.Key,\n          fileSize: fileSize,\n          deepTracker: self.options.DeepTracker,\n          customId: self.options.CustomId,\n          delay: self.options.TrackerDelay,\n        });\n      }\n    }\n    params.tracker = tracker;\n\n    // 代理回调函数\n    var formatResult = function (result) {\n      if (result && result.headers) {\n        result.headers['x-cos-request-id'] && (result.RequestId = result.headers['x-cos-request-id']);\n        result.headers['x-ci-request-id'] && (result.RequestId = result.headers['x-ci-request-id']);\n        result.headers['x-cos-version-id'] && (result.VersionId = result.headers['x-cos-version-id']);\n        result.headers['x-cos-delete-marker'] && (result.DeleteMarker = result.headers['x-cos-delete-marker']);\n      }\n      return result;\n    };\n    var _callback = function (err, data) {\n      // 格式化上报参数并上报\n      tracker && tracker.report(err, data);\n      callback && callback(formatResult(err), formatResult(data));\n    };\n\n    var checkParams = function () {\n      if (apiName !== 'getService' && apiName !== 'abortUploadTask') {\n        // 判断参数是否完整\n        var missingResult = hasMissingParams.call(self, apiName, params);\n        if (missingResult) {\n          return 'missing param ' + missingResult;\n        }\n        // 判断 region 格式\n        if (params.Region) {\n          if (self.options.CompatibilityMode) {\n            if (!/^([a-z\\d-.]+)$/.test(params.Region)) {\n              return 'Region format error.';\n            }\n          } else {\n            if (params.Region.indexOf('cos.') > -1) {\n              return 'param Region should not be start with \"cos.\"';\n            } else if (!/^([a-z\\d-]+)$/.test(params.Region)) {\n              return 'Region format error.';\n            }\n          }\n          // 判断 region 格式\n          if (\n            !self.options.CompatibilityMode &&\n            params.Region.indexOf('-') === -1 &&\n            params.Region !== 'yfb' &&\n            params.Region !== 'default' &&\n            params.Region !== 'accelerate'\n          ) {\n            console.warn(\n              'warning: param Region format error, find help here: https://cloud.tencent.com/document/product/436/6224'\n            );\n          }\n        }\n        // 兼容不带 AppId 的 Bucket\n        if (params.Bucket) {\n          if (!/^([a-z\\d-]+)-(\\d+)$/.test(params.Bucket)) {\n            if (params.AppId) {\n              params.Bucket = params.Bucket + '-' + params.AppId;\n            } else if (self.options.AppId) {\n              params.Bucket = params.Bucket + '-' + self.options.AppId;\n            } else {\n              return 'Bucket should format as \"test-1250000000\".';\n            }\n          }\n          if (params.AppId) {\n            console.warn(\n              'warning: AppId has been deprecated, Please put it at the end of parameter Bucket(E.g Bucket:\"test-1250000000\" ).'\n            );\n            delete params.AppId;\n          }\n        }\n        // 如果 Key 是 / 开头，强制去掉第一个 /\n        if (!self.options.UseRawKey && params.Key && params.Key.substr(0, 1) === '/') {\n          params.Key = params.Key.substr(1);\n        }\n      }\n    };\n\n    var errMsg = checkParams();\n    var isSync = ['getAuth', 'getObjectUrl'].includes(apiName);\n    if (typeof Promise === 'function' && !isSync && !callback) {\n      return new Promise(function (resolve, reject) {\n        callback = function (err, data) {\n          err ? reject(err) : resolve(data);\n        };\n        if (errMsg) return _callback(util.error(new Error(errMsg)));\n        apiFn.call(self, params, _callback);\n      });\n    } else {\n      if (errMsg) return _callback(util.error(new Error(errMsg)));\n      var res = apiFn.call(self, params, _callback);\n      if (isSync) return res;\n    }\n  };\n};\n\nvar throttleOnProgress = function (total, onProgress) {\n  var self = this;\n  var size0 = 0;\n  var size1 = 0;\n  var time0 = Date.now();\n  var time1;\n  var timer;\n\n  function update() {\n    timer = 0;\n    if (onProgress && typeof onProgress === 'function') {\n      time1 = Date.now();\n      var speed = Math.max(0, Math.round(((size1 - size0) / ((time1 - time0) / 1000)) * 100) / 100) || 0;\n      var percent;\n      if (size1 === 0 && total === 0) {\n        percent = 1;\n      } else {\n        percent = Math.floor((size1 / total) * 100) / 100 || 0;\n      }\n      time0 = time1;\n      size0 = size1;\n      try {\n        onProgress({ loaded: size1, total: total, speed: speed, percent: percent });\n      } catch (e) {}\n    }\n  }\n\n  return function (info, immediately) {\n    if (info) {\n      size1 = info.loaded;\n      total = info.total;\n    }\n    if (immediately) {\n      clearTimeout(timer);\n      update();\n    } else {\n      if (timer) return;\n      timer = setTimeout(update, self.options.ProgressInterval);\n    }\n  };\n};\n\nvar getFileSize = function (api, params, callback) {\n  var size;\n  if (typeof params.Body === 'string') {\n    params.Body = new Blob([params.Body], { type: 'text/plain' });\n  } else if (params.Body instanceof ArrayBuffer) {\n    params.Body = new Blob([params.Body]);\n  }\n  if (\n    params.Body &&\n    (params.Body instanceof Blob ||\n      params.Body.toString() === '[object File]' ||\n      params.Body.toString() === '[object Blob]')\n  ) {\n    size = params.Body.size;\n  } else {\n    callback(util.error(new Error('params body format error, Only allow File|Blob|String.')));\n    return;\n  }\n  params.ContentLength = size;\n  callback(null, size);\n};\n\n// 获取调正的时间戳\nvar getSkewTime = function (offset) {\n  return Date.now() + (offset || 0);\n};\n\nvar error = function (err, opt) {\n  var sourceErr = err;\n  err.message = err.message || null;\n\n  if (typeof opt === 'string') {\n    err.error = opt;\n    err.message = opt;\n  } else if (typeof opt === 'object' && opt !== null) {\n    extend(err, opt);\n    if (opt.code || opt.name) err.code = opt.code || opt.name;\n    if (opt.message) err.message = opt.message;\n    if (opt.stack) err.stack = opt.stack;\n  }\n\n  if (typeof Object.defineProperty === 'function') {\n    Object.defineProperty(err, 'name', { writable: true, enumerable: false });\n    Object.defineProperty(err, 'message', { enumerable: true });\n  }\n\n  err.name = (opt && opt.name) || err.name || err.code || 'Error';\n  if (!err.code) err.code = err.name;\n  if (!err.error) err.error = clone(sourceErr); // 兼容老的错误格式\n\n  return err;\n};\n\nvar isWebWorker = function () {\n  // 有限判断 worker 环境的 constructor name 其次用 worker 独有的 FileReaderSync 兜底 详细参考 https://developer.mozilla.org/zh-CN/docs/Web/API/Web_Workers_API/Using_web_workers\n  return (\n    typeof globalThis === 'object' &&\n    (globalThis.constructor.name === 'DedicatedWorkerGlobalScope' || globalThis.FileReaderSync)\n  );\n};\n\nvar isNode = function () {\n  // 得兜底 web worker 环境中 webpack 用了 process 插件之类的情况\n  return typeof window !== 'object' && typeof process === 'object' && typeof require === 'function' && !isWebWorker();\n};\n\nvar isCIHost = function (url) {\n  return /^https?:\\/\\/([^/]+\\.)?ci\\.[^/]+/.test(url);\n};\n\n//判断是否是ios\nvar isIOS = (function () {\n  if (typeof navigator !== 'object') {\n    return false;\n  }\n  var u = navigator.userAgent;\n  var isIOS = !!u.match(/\\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端\n  return isIOS;\n})();\n\n// 判断是qq内置浏览器\nvar isQQ = (function () {\n  if (typeof navigator !== 'object') {\n    return false;\n  }\n  return /\\sQQ/i.test(navigator.userAgent);\n})();\n\nvar encodeBase64 = function (str, safe) {\n  let base64Str = base64.encode(str);\n  // 万象使用的安全base64格式需要特殊处理\n  if (safe) {\n    base64Str = base64Str.replaceAll('+', '-').replaceAll('/', '_').replaceAll('=', '');\n  }\n  return base64Str;\n};\n\nvar decodeBase64 = function (base64Str) {\n  if (!base64Str) return '';\n  return base64.decode(base64Str);\n};\n\nvar simplifyPath = function (path) {\n  const names = path.split('/');\n  const stack = [];\n  for (const name of names) {\n    if (name === '..') {\n      if (stack.length) {\n        stack.pop();\n      }\n    } else if (name.length && name !== '.') {\n      stack.push(name);\n    }\n  }\n  return '/' + stack.join('/');\n};\n\n// 解析响应体，兼容 xml、json\nvar parseResBody = function (responseBody) {\n  var json;\n  if (responseBody && typeof responseBody === 'string') {\n    var trimBody = responseBody.trim();\n    var isXml = trimBody.indexOf('<') === 0;\n    var isJson = trimBody.indexOf('{') === 0;\n    if (isXml) {\n      // xml 解析，解析失败返回{}\n      json = util.xml2json(responseBody) || {};\n    } else if (isJson) {\n      // json解析，解析失败返回原始 Body\n      try {\n        // 替换 json 中的换行符为空格，否则解析会出错\n        var formatBody = responseBody.replace(/\\n/g, ' ');\n        var parsedBody = JSON.parse(formatBody);\n        // 确保解析出 json 对象\n        if (Object.prototype.toString.call(parsedBody) === '[object Object]') {\n          json = parsedBody;\n        } else {\n          json = responseBody;\n        }\n      } catch (e) {\n        json = responseBody;\n      }\n    } else {\n      json = responseBody;\n    }\n  } else {\n    json = responseBody || {};\n  }\n  return json;\n};\n\nvar util = {\n  noop: noop,\n  formatParams: formatParams,\n  apiWrapper: apiWrapper,\n  xml2json: xml2json,\n  json2xml: json2xml,\n  md5: md5,\n  clearKey: clearKey,\n  fileSlice: fileSlice,\n  getBodyMd5: getBodyMd5,\n  getFileMd5: getFileMd5,\n  b64: b64,\n  extend: extend,\n  isArray: isArray,\n  isInArray: isInArray,\n  makeArray: makeArray,\n  each: each,\n  map: map,\n  filter: filter,\n  clone: clone,\n  attr: attr,\n  uuid: uuid,\n  camSafeUrlEncode: camSafeUrlEncode,\n  throttleOnProgress: throttleOnProgress,\n  getFileSize: getFileSize,\n  getSkewTime: getSkewTime,\n  error: error,\n  obj2str: obj2str,\n  getAuth: getAuth,\n  parseSelectPayload: parseSelectPayload,\n  getSourceParams: getSourceParams,\n  isBrowser: true,\n  isNode: isNode,\n  isCIHost: isCIHost,\n  isIOS_QQ: isIOS && isQQ,\n  encodeBase64: encodeBase64,\n  decodeBase64: decodeBase64,\n  simplifyPath: simplifyPath,\n  readAsBinaryString: readAsBinaryString,\n  parseResBody: parseResBody,\n};\n\nmodule.exports = util;\n","export default function _typeof(obj) {\n  \"@babel/helpers - typeof\";\n\n  return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n    return typeof obj;\n  } : function (obj) {\n    return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n  }, _typeof(obj);\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function _toPropertyKey(arg) {\n  var key = toPrimitive(arg, \"string\");\n  return _typeof(key) === \"symbol\" ? key : String(key);\n}","import _typeof from \"./typeof.js\";\nexport default function _toPrimitive(input, hint) {\n  if (_typeof(input) !== \"object\" || input === null) return input;\n  var prim = input[Symbol.toPrimitive];\n  if (prim !== undefined) {\n    var res = prim.call(input, hint || \"default\");\n    if (_typeof(res) !== \"object\") return res;\n    throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n  }\n  return (hint === \"string\" ? String : Number)(input);\n}","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n  key = toPropertyKey(key);\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n  return obj;\n}","import defineProperty from \"./defineProperty.js\";\nfunction ownKeys(object, enumerableOnly) {\n  var keys = Object.keys(object);\n  if (Object.getOwnPropertySymbols) {\n    var symbols = Object.getOwnPropertySymbols(object);\n    enumerableOnly && (symbols = symbols.filter(function (sym) {\n      return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n    })), keys.push.apply(keys, symbols);\n  }\n  return keys;\n}\nexport default function _objectSpread2(target) {\n  for (var i = 1; i < arguments.length; i++) {\n    var source = null != arguments[i] ? arguments[i] : {};\n    i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n      defineProperty(target, key, source[key]);\n    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n      Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n    });\n  }\n  return target;\n}","import _objectSpread from '@babel/runtime/helpers/esm/objectSpread2';\n\n/**\n * Adapted from React: https://github.com/facebook/react/blob/master/packages/shared/formatProdErrorMessage.js\n *\n * Do not require this module directly! Use normal throw error calls. These messages will be replaced with error codes\n * during build.\n * @param {number} code\n */\nfunction formatProdErrorMessage(code) {\n  return \"Minified Redux error #\" + code + \"; visit https://redux.js.org/Errors?code=\" + code + \" for the full message or \" + 'use the non-minified dev environment for full errors. ';\n}\n\n// Inlined version of the `symbol-observable` polyfill\nvar $$observable = (function () {\n  return typeof Symbol === 'function' && Symbol.observable || '@@observable';\n})();\n\n/**\n * These are private action types reserved by Redux.\n * For any unknown actions, you must return the current state.\n * If the current state is undefined, you must return the initial state.\n * Do not reference these action types directly in your code.\n */\nvar randomString = function randomString() {\n  return Math.random().toString(36).substring(7).split('').join('.');\n};\n\nvar ActionTypes = {\n  INIT: \"@@redux/INIT\" + randomString(),\n  REPLACE: \"@@redux/REPLACE\" + randomString(),\n  PROBE_UNKNOWN_ACTION: function PROBE_UNKNOWN_ACTION() {\n    return \"@@redux/PROBE_UNKNOWN_ACTION\" + randomString();\n  }\n};\n\n/**\n * @param {any} obj The object to inspect.\n * @returns {boolean} True if the argument appears to be a plain object.\n */\nfunction isPlainObject(obj) {\n  if (typeof obj !== 'object' || obj === null) return false;\n  var proto = obj;\n\n  while (Object.getPrototypeOf(proto) !== null) {\n    proto = Object.getPrototypeOf(proto);\n  }\n\n  return Object.getPrototypeOf(obj) === proto;\n}\n\n// Inlined / shortened version of `kindOf` from https://github.com/jonschlinkert/kind-of\nfunction miniKindOf(val) {\n  if (val === void 0) return 'undefined';\n  if (val === null) return 'null';\n  var type = typeof val;\n\n  switch (type) {\n    case 'boolean':\n    case 'string':\n    case 'number':\n    case 'symbol':\n    case 'function':\n      {\n        return type;\n      }\n  }\n\n  if (Array.isArray(val)) return 'array';\n  if (isDate(val)) return 'date';\n  if (isError(val)) return 'error';\n  var constructorName = ctorName(val);\n\n  switch (constructorName) {\n    case 'Symbol':\n    case 'Promise':\n    case 'WeakMap':\n    case 'WeakSet':\n    case 'Map':\n    case 'Set':\n      return constructorName;\n  } // other\n\n\n  return type.slice(8, -1).toLowerCase().replace(/\\s/g, '');\n}\n\nfunction ctorName(val) {\n  return typeof val.constructor === 'function' ? val.constructor.name : null;\n}\n\nfunction isError(val) {\n  return val instanceof Error || typeof val.message === 'string' && val.constructor && typeof val.constructor.stackTraceLimit === 'number';\n}\n\nfunction isDate(val) {\n  if (val instanceof Date) return true;\n  return typeof val.toDateString === 'function' && typeof val.getDate === 'function' && typeof val.setDate === 'function';\n}\n\nfunction kindOf(val) {\n  var typeOfVal = typeof val;\n\n  if (process.env.NODE_ENV !== 'production') {\n    typeOfVal = miniKindOf(val);\n  }\n\n  return typeOfVal;\n}\n\n/**\n * @deprecated\n *\n * **We recommend using the `configureStore` method\n * of the `@reduxjs/toolkit` package**, which replaces `createStore`.\n *\n * Redux Toolkit is our recommended approach for writing Redux logic today,\n * including store setup, reducers, data fetching, and more.\n *\n * **For more details, please read this Redux docs page:**\n * **https://redux.js.org/introduction/why-rtk-is-redux-today**\n *\n * `configureStore` from Redux Toolkit is an improved version of `createStore` that\n * simplifies setup and helps avoid common bugs.\n *\n * You should not be using the `redux` core package by itself today, except for learning purposes.\n * The `createStore` method from the core `redux` package will not be removed, but we encourage\n * all users to migrate to using Redux Toolkit for all Redux code.\n *\n * If you want to use `createStore` without this visual deprecation warning, use\n * the `legacy_createStore` import instead:\n *\n * `import { legacy_createStore as createStore} from 'redux'`\n *\n */\n\nfunction createStore(reducer, preloadedState, enhancer) {\n  var _ref2;\n\n  if (typeof preloadedState === 'function' && typeof enhancer === 'function' || typeof enhancer === 'function' && typeof arguments[3] === 'function') {\n    throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(0) : 'It looks like you are passing several store enhancers to ' + 'createStore(). This is not supported. Instead, compose them ' + 'together to a single function. See https://redux.js.org/tutorials/fundamentals/part-4-store#creating-a-store-with-enhancers for an example.');\n  }\n\n  if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n    enhancer = preloadedState;\n    preloadedState = undefined;\n  }\n\n  if (typeof enhancer !== 'undefined') {\n    if (typeof enhancer !== 'function') {\n      throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(1) : \"Expected the enhancer to be a function. Instead, received: '\" + kindOf(enhancer) + \"'\");\n    }\n\n    return enhancer(createStore)(reducer, preloadedState);\n  }\n\n  if (typeof reducer !== 'function') {\n    throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(2) : \"Expected the root reducer to be a function. Instead, received: '\" + kindOf(reducer) + \"'\");\n  }\n\n  var currentReducer = reducer;\n  var currentState = preloadedState;\n  var currentListeners = [];\n  var nextListeners = currentListeners;\n  var isDispatching = false;\n  /**\n   * This makes a shallow copy of currentListeners so we can use\n   * nextListeners as a temporary list while dispatching.\n   *\n   * This prevents any bugs around consumers calling\n   * subscribe/unsubscribe in the middle of a dispatch.\n   */\n\n  function ensureCanMutateNextListeners() {\n    if (nextListeners === currentListeners) {\n      nextListeners = currentListeners.slice();\n    }\n  }\n  /**\n   * Reads the state tree managed by the store.\n   *\n   * @returns {any} The current state tree of your application.\n   */\n\n\n  function getState() {\n    if (isDispatching) {\n      throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(3) : 'You may not call store.getState() while the reducer is executing. ' + 'The reducer has already received the state as an argument. ' + 'Pass it down from the top reducer instead of reading it from the store.');\n    }\n\n    return currentState;\n  }\n  /**\n   * Adds a change listener. It will be called any time an action is dispatched,\n   * and some part of the state tree may potentially have changed. You may then\n   * call `getState()` to read the current state tree inside the callback.\n   *\n   * You may call `dispatch()` from a change listener, with the following\n   * caveats:\n   *\n   * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n   * If you subscribe or unsubscribe while the listeners are being invoked, this\n   * will not have any effect on the `dispatch()` that is currently in progress.\n   * However, the next `dispatch()` call, whether nested or not, will use a more\n   * recent snapshot of the subscription list.\n   *\n   * 2. The listener should not expect to see all state changes, as the state\n   * might have been updated multiple times during a nested `dispatch()` before\n   * the listener is called. It is, however, guaranteed that all subscribers\n   * registered before the `dispatch()` started will be called with the latest\n   * state by the time it exits.\n   *\n   * @param {Function} listener A callback to be invoked on every dispatch.\n   * @returns {Function} A function to remove this change listener.\n   */\n\n\n  function subscribe(listener) {\n    if (typeof listener !== 'function') {\n      throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(4) : \"Expected the listener to be a function. Instead, received: '\" + kindOf(listener) + \"'\");\n    }\n\n    if (isDispatching) {\n      throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(5) : 'You may not call store.subscribe() while the reducer is executing. ' + 'If you would like to be notified after the store has been updated, subscribe from a ' + 'component and invoke store.getState() in the callback to access the latest state. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n    }\n\n    var isSubscribed = true;\n    ensureCanMutateNextListeners();\n    nextListeners.push(listener);\n    return function unsubscribe() {\n      if (!isSubscribed) {\n        return;\n      }\n\n      if (isDispatching) {\n        throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(6) : 'You may not unsubscribe from a store listener while the reducer is executing. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n      }\n\n      isSubscribed = false;\n      ensureCanMutateNextListeners();\n      var index = nextListeners.indexOf(listener);\n      nextListeners.splice(index, 1);\n      currentListeners = null;\n    };\n  }\n  /**\n   * Dispatches an action. It is the only way to trigger a state change.\n   *\n   * The `reducer` function, used to create the store, will be called with the\n   * current state tree and the given `action`. Its return value will\n   * be considered the **next** state of the tree, and the change listeners\n   * will be notified.\n   *\n   * The base implementation only supports plain object actions. If you want to\n   * dispatch a Promise, an Observable, a thunk, or something else, you need to\n   * wrap your store creating function into the corresponding middleware. For\n   * example, see the documentation for the `redux-thunk` package. Even the\n   * middleware will eventually dispatch plain object actions using this method.\n   *\n   * @param {Object} action A plain object representing “what changed”. It is\n   * a good idea to keep actions serializable so you can record and replay user\n   * sessions, or use the time travelling `redux-devtools`. An action must have\n   * a `type` property which may not be `undefined`. It is a good idea to use\n   * string constants for action types.\n   *\n   * @returns {Object} For convenience, the same action object you dispatched.\n   *\n   * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n   * return something else (for example, a Promise you can await).\n   */\n\n\n  function dispatch(action) {\n    if (!isPlainObject(action)) {\n      throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(7) : \"Actions must be plain objects. Instead, the actual type was: '\" + kindOf(action) + \"'. You may need to add middleware to your store setup to handle dispatching other values, such as 'redux-thunk' to handle dispatching functions. See https://redux.js.org/tutorials/fundamentals/part-4-store#middleware and https://redux.js.org/tutorials/fundamentals/part-6-async-logic#using-the-redux-thunk-middleware for examples.\");\n    }\n\n    if (typeof action.type === 'undefined') {\n      throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(8) : 'Actions may not have an undefined \"type\" property. You may have misspelled an action type string constant.');\n    }\n\n    if (isDispatching) {\n      throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(9) : 'Reducers may not dispatch actions.');\n    }\n\n    try {\n      isDispatching = true;\n      currentState = currentReducer(currentState, action);\n    } finally {\n      isDispatching = false;\n    }\n\n    var listeners = currentListeners = nextListeners;\n\n    for (var i = 0; i < listeners.length; i++) {\n      var listener = listeners[i];\n      listener();\n    }\n\n    return action;\n  }\n  /**\n   * Replaces the reducer currently used by the store to calculate the state.\n   *\n   * You might need this if your app implements code splitting and you want to\n   * load some of the reducers dynamically. You might also need this if you\n   * implement a hot reloading mechanism for Redux.\n   *\n   * @param {Function} nextReducer The reducer for the store to use instead.\n   * @returns {void}\n   */\n\n\n  function replaceReducer(nextReducer) {\n    if (typeof nextReducer !== 'function') {\n      throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(10) : \"Expected the nextReducer to be a function. Instead, received: '\" + kindOf(nextReducer));\n    }\n\n    currentReducer = nextReducer; // This action has a similiar effect to ActionTypes.INIT.\n    // Any reducers that existed in both the new and old rootReducer\n    // will receive the previous state. This effectively populates\n    // the new state tree with any relevant data from the old one.\n\n    dispatch({\n      type: ActionTypes.REPLACE\n    });\n  }\n  /**\n   * Interoperability point for observable/reactive libraries.\n   * @returns {observable} A minimal observable of state changes.\n   * For more information, see the observable proposal:\n   * https://github.com/tc39/proposal-observable\n   */\n\n\n  function observable() {\n    var _ref;\n\n    var outerSubscribe = subscribe;\n    return _ref = {\n      /**\n       * The minimal observable subscription method.\n       * @param {Object} observer Any object that can be used as an observer.\n       * The observer object should have a `next` method.\n       * @returns {subscription} An object with an `unsubscribe` method that can\n       * be used to unsubscribe the observable from the store, and prevent further\n       * emission of values from the observable.\n       */\n      subscribe: function subscribe(observer) {\n        if (typeof observer !== 'object' || observer === null) {\n          throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(11) : \"Expected the observer to be an object. Instead, received: '\" + kindOf(observer) + \"'\");\n        }\n\n        function observeState() {\n          if (observer.next) {\n            observer.next(getState());\n          }\n        }\n\n        observeState();\n        var unsubscribe = outerSubscribe(observeState);\n        return {\n          unsubscribe: unsubscribe\n        };\n      }\n    }, _ref[$$observable] = function () {\n      return this;\n    }, _ref;\n  } // When a store is created, an \"INIT\" action is dispatched so that every\n  // reducer returns their initial state. This effectively populates\n  // the initial state tree.\n\n\n  dispatch({\n    type: ActionTypes.INIT\n  });\n  return _ref2 = {\n    dispatch: dispatch,\n    subscribe: subscribe,\n    getState: getState,\n    replaceReducer: replaceReducer\n  }, _ref2[$$observable] = observable, _ref2;\n}\n/**\n * Creates a Redux store that holds the state tree.\n *\n * **We recommend using `configureStore` from the\n * `@reduxjs/toolkit` package**, which replaces `createStore`:\n * **https://redux.js.org/introduction/why-rtk-is-redux-today**\n *\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} [enhancer] The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\n\nvar legacy_createStore = createStore;\n\n/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\nfunction warning(message) {\n  /* eslint-disable no-console */\n  if (typeof console !== 'undefined' && typeof console.error === 'function') {\n    console.error(message);\n  }\n  /* eslint-enable no-console */\n\n\n  try {\n    // This error was thrown as a convenience so that if you enable\n    // \"break on all exceptions\" in your console,\n    // it would pause the execution at this line.\n    throw new Error(message);\n  } catch (e) {} // eslint-disable-line no-empty\n\n}\n\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n  var reducerKeys = Object.keys(reducers);\n  var argumentName = action && action.type === ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';\n\n  if (reducerKeys.length === 0) {\n    return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n  }\n\n  if (!isPlainObject(inputState)) {\n    return \"The \" + argumentName + \" has unexpected type of \\\"\" + kindOf(inputState) + \"\\\". Expected argument to be an object with the following \" + (\"keys: \\\"\" + reducerKeys.join('\", \"') + \"\\\"\");\n  }\n\n  var unexpectedKeys = Object.keys(inputState).filter(function (key) {\n    return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key];\n  });\n  unexpectedKeys.forEach(function (key) {\n    unexpectedKeyCache[key] = true;\n  });\n  if (action && action.type === ActionTypes.REPLACE) return;\n\n  if (unexpectedKeys.length > 0) {\n    return \"Unexpected \" + (unexpectedKeys.length > 1 ? 'keys' : 'key') + \" \" + (\"\\\"\" + unexpectedKeys.join('\", \"') + \"\\\" found in \" + argumentName + \". \") + \"Expected to find one of the known reducer keys instead: \" + (\"\\\"\" + reducerKeys.join('\", \"') + \"\\\". Unexpected keys will be ignored.\");\n  }\n}\n\nfunction assertReducerShape(reducers) {\n  Object.keys(reducers).forEach(function (key) {\n    var reducer = reducers[key];\n    var initialState = reducer(undefined, {\n      type: ActionTypes.INIT\n    });\n\n    if (typeof initialState === 'undefined') {\n      throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(12) : \"The slice reducer for key \\\"\" + key + \"\\\" returned undefined during initialization. \" + \"If the state passed to the reducer is undefined, you must \" + \"explicitly return the initial state. The initial state may \" + \"not be undefined. If you don't want to set a value for this reducer, \" + \"you can use null instead of undefined.\");\n    }\n\n    if (typeof reducer(undefined, {\n      type: ActionTypes.PROBE_UNKNOWN_ACTION()\n    }) === 'undefined') {\n      throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(13) : \"The slice reducer for key \\\"\" + key + \"\\\" returned undefined when probed with a random type. \" + (\"Don't try to handle '\" + ActionTypes.INIT + \"' or other actions in \\\"redux/*\\\" \") + \"namespace. They are considered private. Instead, you must return the \" + \"current state for any unknown actions, unless it is undefined, \" + \"in which case you must return the initial state, regardless of the \" + \"action type. The initial state may not be undefined, but can be null.\");\n    }\n  });\n}\n/**\n * Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * @param {Object} reducers An object whose values correspond to different\n * reducer functions that need to be combined into one. One handy way to obtain\n * it is to use ES6 `import * as reducers` syntax. The reducers may never return\n * undefined for any action. Instead, they should return their initial state\n * if the state passed to them was undefined, and the current state for any\n * unrecognized action.\n *\n * @returns {Function} A reducer function that invokes every reducer inside the\n * passed object, and builds a state object with the same shape.\n */\n\n\nfunction combineReducers(reducers) {\n  var reducerKeys = Object.keys(reducers);\n  var finalReducers = {};\n\n  for (var i = 0; i < reducerKeys.length; i++) {\n    var key = reducerKeys[i];\n\n    if (process.env.NODE_ENV !== 'production') {\n      if (typeof reducers[key] === 'undefined') {\n        warning(\"No reducer provided for key \\\"\" + key + \"\\\"\");\n      }\n    }\n\n    if (typeof reducers[key] === 'function') {\n      finalReducers[key] = reducers[key];\n    }\n  }\n\n  var finalReducerKeys = Object.keys(finalReducers); // This is used to make sure we don't warn about the same\n  // keys multiple times.\n\n  var unexpectedKeyCache;\n\n  if (process.env.NODE_ENV !== 'production') {\n    unexpectedKeyCache = {};\n  }\n\n  var shapeAssertionError;\n\n  try {\n    assertReducerShape(finalReducers);\n  } catch (e) {\n    shapeAssertionError = e;\n  }\n\n  return function combination(state, action) {\n    if (state === void 0) {\n      state = {};\n    }\n\n    if (shapeAssertionError) {\n      throw shapeAssertionError;\n    }\n\n    if (process.env.NODE_ENV !== 'production') {\n      var warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n\n      if (warningMessage) {\n        warning(warningMessage);\n      }\n    }\n\n    var hasChanged = false;\n    var nextState = {};\n\n    for (var _i = 0; _i < finalReducerKeys.length; _i++) {\n      var _key = finalReducerKeys[_i];\n      var reducer = finalReducers[_key];\n      var previousStateForKey = state[_key];\n      var nextStateForKey = reducer(previousStateForKey, action);\n\n      if (typeof nextStateForKey === 'undefined') {\n        var actionType = action && action.type;\n        throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(14) : \"When called with an action of type \" + (actionType ? \"\\\"\" + String(actionType) + \"\\\"\" : '(unknown type)') + \", the slice reducer for key \\\"\" + _key + \"\\\" returned undefined. \" + \"To ignore an action, you must explicitly return the previous state. \" + \"If you want this reducer to hold no value, you can return null instead of undefined.\");\n      }\n\n      nextState[_key] = nextStateForKey;\n      hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n    }\n\n    hasChanged = hasChanged || finalReducerKeys.length !== Object.keys(state).length;\n    return hasChanged ? nextState : state;\n  };\n}\n\nfunction bindActionCreator(actionCreator, dispatch) {\n  return function () {\n    return dispatch(actionCreator.apply(this, arguments));\n  };\n}\n/**\n * Turns an object whose values are action creators, into an object with the\n * same keys, but with every function wrapped into a `dispatch` call so they\n * may be invoked directly. This is just a convenience method, as you can call\n * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n *\n * For convenience, you can also pass an action creator as the first argument,\n * and get a dispatch wrapped function in return.\n *\n * @param {Function|Object} actionCreators An object whose values are action\n * creator functions. One handy way to obtain it is to use ES6 `import * as`\n * syntax. You may also pass a single function.\n *\n * @param {Function} dispatch The `dispatch` function available on your Redux\n * store.\n *\n * @returns {Function|Object} The object mimicking the original object, but with\n * every action creator wrapped into the `dispatch` call. If you passed a\n * function as `actionCreators`, the return value will also be a single\n * function.\n */\n\n\nfunction bindActionCreators(actionCreators, dispatch) {\n  if (typeof actionCreators === 'function') {\n    return bindActionCreator(actionCreators, dispatch);\n  }\n\n  if (typeof actionCreators !== 'object' || actionCreators === null) {\n    throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(16) : \"bindActionCreators expected an object or a function, but instead received: '\" + kindOf(actionCreators) + \"'. \" + \"Did you write \\\"import ActionCreators from\\\" instead of \\\"import * as ActionCreators from\\\"?\");\n  }\n\n  var boundActionCreators = {};\n\n  for (var key in actionCreators) {\n    var actionCreator = actionCreators[key];\n\n    if (typeof actionCreator === 'function') {\n      boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n    }\n  }\n\n  return boundActionCreators;\n}\n\n/**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for\n * the resulting composite function.\n *\n * @param {...Function} funcs The functions to compose.\n * @returns {Function} A function obtained by composing the argument functions\n * from right to left. For example, compose(f, g, h) is identical to doing\n * (...args) => f(g(h(...args))).\n */\nfunction compose() {\n  for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n    funcs[_key] = arguments[_key];\n  }\n\n  if (funcs.length === 0) {\n    return function (arg) {\n      return arg;\n    };\n  }\n\n  if (funcs.length === 1) {\n    return funcs[0];\n  }\n\n  return funcs.reduce(function (a, b) {\n    return function () {\n      return a(b.apply(void 0, arguments));\n    };\n  });\n}\n\n/**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param {...Function} middlewares The middleware chain to be applied.\n * @returns {Function} A store enhancer applying the middleware.\n */\n\nfunction applyMiddleware() {\n  for (var _len = arguments.length, middlewares = new Array(_len), _key = 0; _key < _len; _key++) {\n    middlewares[_key] = arguments[_key];\n  }\n\n  return function (createStore) {\n    return function () {\n      var store = createStore.apply(void 0, arguments);\n\n      var _dispatch = function dispatch() {\n        throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(15) : 'Dispatching while constructing your middleware is not allowed. ' + 'Other middleware would not be applied to this dispatch.');\n      };\n\n      var middlewareAPI = {\n        getState: store.getState,\n        dispatch: function dispatch() {\n          return _dispatch.apply(void 0, arguments);\n        }\n      };\n      var chain = middlewares.map(function (middleware) {\n        return middleware(middlewareAPI);\n      });\n      _dispatch = compose.apply(void 0, chain)(store.dispatch);\n      return _objectSpread(_objectSpread({}, store), {}, {\n        dispatch: _dispatch\n      });\n    };\n  };\n}\n\nexport { ActionTypes as __DO_NOT_USE__ActionTypes, applyMiddleware, bindActionCreators, combineReducers, compose, createStore, legacy_createStore };\n","const errors = {\n\t0: \"Illegal state\",\n\t1: \"Immer drafts cannot have computed properties\",\n\t2: \"This object has been frozen and should not be mutated\",\n\t3(data: any) {\n\t\treturn (\n\t\t\t\"Cannot use a proxy that has been revoked. Did you pass an object from inside an immer function to an async process? \" +\n\t\t\tdata\n\t\t)\n\t},\n\t4: \"An immer producer returned a new value *and* modified its draft. Either return a new value *or* modify the draft.\",\n\t5: \"Immer forbids circular references\",\n\t6: \"The first or second argument to `produce` must be a function\",\n\t7: \"The third argument to `produce` must be a function or undefined\",\n\t8: \"First argument to `createDraft` must be a plain object, an array, or an immerable object\",\n\t9: \"First argument to `finishDraft` must be a draft returned by `createDraft`\",\n\t10: \"The given draft is already finalized\",\n\t11: \"Object.defineProperty() cannot be used on an Immer draft\",\n\t12: \"Object.setPrototypeOf() cannot be used on an Immer draft\",\n\t13: \"Immer only supports deleting array indices\",\n\t14: \"Immer only supports setting array indices and the 'length' property\",\n\t15(path: string) {\n\t\treturn \"Cannot apply patch, path doesn't resolve: \" + path\n\t},\n\t16: 'Sets cannot have \"replace\" patches.',\n\t17(op: string) {\n\t\treturn \"Unsupported patch operation: \" + op\n\t},\n\t18(plugin: string) {\n\t\treturn `The plugin for '${plugin}' has not been loaded into Immer. To enable the plugin, import and call \\`enable${plugin}()\\` when initializing your application.`\n\t},\n\t20: \"Cannot use proxies if Proxy, Proxy.revocable or Reflect are not available\",\n\t21(thing: string) {\n\t\treturn `produce can only be called on things that are draftable: plain objects, arrays, Map, Set or classes that are marked with '[immerable]: true'. Got '${thing}'`\n\t},\n\t22(thing: string) {\n\t\treturn `'current' expects a draft, got: ${thing}`\n\t},\n\t23(thing: string) {\n\t\treturn `'original' expects a draft, got: ${thing}`\n\t},\n\t24: \"Patching reserved attributes like __proto__, prototype and constructor is not allowed\"\n} as const\n\nexport function die(error: keyof typeof errors, ...args: any[]): never {\n\tif (__DEV__) {\n\t\tconst e = errors[error]\n\t\tconst msg = !e\n\t\t\t? \"unknown error nr: \" + error\n\t\t\t: typeof e === \"function\"\n\t\t\t? e.apply(null, args as any)\n\t\t\t: e\n\t\tthrow new Error(`[Immer] ${msg}`)\n\t}\n\tthrow new Error(\n\t\t`[Immer] minified error nr: ${error}${\n\t\t\targs.length ? \" \" + args.map(s => `'${s}'`).join(\",\") : \"\"\n\t\t}. Find the full error at: https://bit.ly/3cXEKWf`\n\t)\n}\n","import {\n\tDRAFT_STATE,\n\tDRAFTABLE,\n\thasSet,\n\tObjectish,\n\tDrafted,\n\tAnyObject,\n\tAnyMap,\n\tAnySet,\n\tImmerState,\n\thasMap,\n\tArchtype,\n\tdie\n} from \"../internal\"\n\n/** Returns true if the given value is an Immer draft */\n/*#__PURE__*/\nexport function isDraft(value: any): boolean {\n\treturn !!value && !!value[DRAFT_STATE]\n}\n\n/** Returns true if the given value can be drafted by Immer */\n/*#__PURE__*/\nexport function isDraftable(value: any): boolean {\n\tif (!value) return false\n\treturn (\n\t\tisPlainObject(value) ||\n\t\tArray.isArray(value) ||\n\t\t!!value[DRAFTABLE] ||\n\t\t!!value.constructor?.[DRAFTABLE] ||\n\t\tisMap(value) ||\n\t\tisSet(value)\n\t)\n}\n\nconst objectCtorString = Object.prototype.constructor.toString()\n/*#__PURE__*/\nexport function isPlainObject(value: any): boolean {\n\tif (!value || typeof value !== \"object\") return false\n\tconst proto = Object.getPrototypeOf(value)\n\tif (proto === null) {\n\t\treturn true\n\t}\n\tconst Ctor =\n\t\tObject.hasOwnProperty.call(proto, \"constructor\") && proto.constructor\n\n\tif (Ctor === Object) return true\n\n\treturn (\n\t\ttypeof Ctor == \"function\" &&\n\t\tFunction.toString.call(Ctor) === objectCtorString\n\t)\n}\n\n/** Get the underlying object that is represented by the given draft */\n/*#__PURE__*/\nexport function original<T>(value: T): T | undefined\nexport function original(value: Drafted<any>): any {\n\tif (!isDraft(value)) die(23, value)\n\treturn value[DRAFT_STATE].base_\n}\n\n/*#__PURE__*/\nexport const ownKeys: (target: AnyObject) => PropertyKey[] =\n\ttypeof Reflect !== \"undefined\" && Reflect.ownKeys\n\t\t? Reflect.ownKeys\n\t\t: typeof Object.getOwnPropertySymbols !== \"undefined\"\n\t\t? obj =>\n\t\t\t\tObject.getOwnPropertyNames(obj).concat(\n\t\t\t\t\tObject.getOwnPropertySymbols(obj) as any\n\t\t\t\t)\n\t\t: /* istanbul ignore next */ Object.getOwnPropertyNames\n\nexport const getOwnPropertyDescriptors =\n\tObject.getOwnPropertyDescriptors ||\n\tfunction getOwnPropertyDescriptors(target: any) {\n\t\t// Polyfill needed for Hermes and IE, see https://github.com/facebook/hermes/issues/274\n\t\tconst res: any = {}\n\t\townKeys(target).forEach(key => {\n\t\t\tres[key] = Object.getOwnPropertyDescriptor(target, key)\n\t\t})\n\t\treturn res\n\t}\n\nexport function each<T extends Objectish>(\n\tobj: T,\n\titer: (key: string | number, value: any, source: T) => void,\n\tenumerableOnly?: boolean\n): void\nexport function each(obj: any, iter: any, enumerableOnly = false) {\n\tif (getArchtype(obj) === Archtype.Object) {\n\t\t;(enumerableOnly ? Object.keys : ownKeys)(obj).forEach(key => {\n\t\t\tif (!enumerableOnly || typeof key !== \"symbol\") iter(key, obj[key], obj)\n\t\t})\n\t} else {\n\t\tobj.forEach((entry: any, index: any) => iter(index, entry, obj))\n\t}\n}\n\n/*#__PURE__*/\nexport function getArchtype(thing: any): Archtype {\n\t/* istanbul ignore next */\n\tconst state: undefined | ImmerState = thing[DRAFT_STATE]\n\treturn state\n\t\t? state.type_ > 3\n\t\t\t? state.type_ - 4 // cause Object and Array map back from 4 and 5\n\t\t\t: (state.type_ as any) // others are the same\n\t\t: Array.isArray(thing)\n\t\t? Archtype.Array\n\t\t: isMap(thing)\n\t\t? Archtype.Map\n\t\t: isSet(thing)\n\t\t? Archtype.Set\n\t\t: Archtype.Object\n}\n\n/*#__PURE__*/\nexport function has(thing: any, prop: PropertyKey): boolean {\n\treturn getArchtype(thing) === Archtype.Map\n\t\t? thing.has(prop)\n\t\t: Object.prototype.hasOwnProperty.call(thing, prop)\n}\n\n/*#__PURE__*/\nexport function get(thing: AnyMap | AnyObject, prop: PropertyKey): any {\n\t// @ts-ignore\n\treturn getArchtype(thing) === Archtype.Map ? thing.get(prop) : thing[prop]\n}\n\n/*#__PURE__*/\nexport function set(thing: any, propOrOldValue: PropertyKey, value: any) {\n\tconst t = getArchtype(thing)\n\tif (t === Archtype.Map) thing.set(propOrOldValue, value)\n\telse if (t === Archtype.Set) {\n\t\tthing.add(value)\n\t} else thing[propOrOldValue] = value\n}\n\n/*#__PURE__*/\nexport function is(x: any, y: any): boolean {\n\t// From: https://github.com/facebook/fbjs/blob/c69904a511b900266935168223063dd8772dfc40/packages/fbjs/src/core/shallowEqual.js\n\tif (x === y) {\n\t\treturn x !== 0 || 1 / x === 1 / y\n\t} else {\n\t\treturn x !== x && y !== y\n\t}\n}\n\n/*#__PURE__*/\nexport function isMap(target: any): target is AnyMap {\n\treturn hasMap && target instanceof Map\n}\n\n/*#__PURE__*/\nexport function isSet(target: any): target is AnySet {\n\treturn hasSet && target instanceof Set\n}\n/*#__PURE__*/\nexport function latest(state: ImmerState): any {\n\treturn state.copy_ || state.base_\n}\n\n/*#__PURE__*/\nexport function shallowCopy(base: any) {\n\tif (Array.isArray(base)) return Array.prototype.slice.call(base)\n\tconst descriptors = getOwnPropertyDescriptors(base)\n\tdelete descriptors[DRAFT_STATE as any]\n\tlet keys = ownKeys(descriptors)\n\tfor (let i = 0; i < keys.length; i++) {\n\t\tconst key: any = keys[i]\n\t\tconst desc = descriptors[key]\n\t\tif (desc.writable === false) {\n\t\t\tdesc.writable = true\n\t\t\tdesc.configurable = true\n\t\t}\n\t\t// like object.assign, we will read any _own_, get/set accessors. This helps in dealing\n\t\t// with libraries that trap values, like mobx or vue\n\t\t// unlike object.assign, non-enumerables will be copied as well\n\t\tif (desc.get || desc.set)\n\t\t\tdescriptors[key] = {\n\t\t\t\tconfigurable: true,\n\t\t\t\twritable: true, // could live with !!desc.set as well here...\n\t\t\t\tenumerable: desc.enumerable,\n\t\t\t\tvalue: base[key]\n\t\t\t}\n\t}\n\treturn Object.create(Object.getPrototypeOf(base), descriptors)\n}\n\n/**\n * Freezes draftable objects. Returns the original object.\n * By default freezes shallowly, but if the second argument is `true` it will freeze recursively.\n *\n * @param obj\n * @param deep\n */\nexport function freeze<T>(obj: T, deep?: boolean): T\nexport function freeze<T>(obj: any, deep: boolean = false): T {\n\tif (isFrozen(obj) || isDraft(obj) || !isDraftable(obj)) return obj\n\tif (getArchtype(obj) > 1 /* Map or Set */) {\n\t\tobj.set = obj.add = obj.clear = obj.delete = dontMutateFrozenCollections as any\n\t}\n\tObject.freeze(obj)\n\tif (deep) each(obj, (key, value) => freeze(value, true), true)\n\treturn obj\n}\n\nfunction dontMutateFrozenCollections() {\n\tdie(2)\n}\n\nexport function isFrozen(obj: any): boolean {\n\tif (obj == null || typeof obj !== \"object\") return true\n\t// See #600, IE dies on non-objects in Object.isFrozen\n\treturn Object.isFrozen(obj)\n}\n","import {\n\tImmerState,\n\tPatch,\n\tImmerScope,\n\tDrafted,\n\tAnyObject,\n\tImmerBaseState,\n\tAnyMap,\n\tAnySet,\n\tProxyType,\n\tdie\n} from \"../internal\"\n\n/** Plugin utilities */\nconst plugins: {\n\tPatches?: {\n\t\tgeneratePatches_(\n\t\t\tstate: ImmerState,\n\t\t\tbasePath: PatchPath,\n\t\t\tpatches: Patch[],\n\t\t\tinversePatches: Patch[]\n\t\t): void\n\t\tgenerateReplacementPatches_(\n\t\t\tbase: any,\n\t\t\treplacement: any,\n\t\t\tpatches: Patch[],\n\t\t\tinversePatches: Patch[]\n\t\t): void\n\t\tapplyPatches_<T>(draft: T, patches: Patch[]): T\n\t}\n\tES5?: {\n\t\twillFinalizeES5_(scope: ImmerScope, result: any, isReplaced: boolean): void\n\t\tcreateES5Proxy_<T>(\n\t\t\tbase: T,\n\t\t\tparent?: ImmerState\n\t\t): Drafted<T, ES5ObjectState | ES5ArrayState>\n\t\thasChanges_(state: ES5ArrayState | ES5ObjectState): boolean\n\t}\n\tMapSet?: {\n\t\tproxyMap_<T extends AnyMap>(target: T, parent?: ImmerState): T\n\t\tproxySet_<T extends AnySet>(target: T, parent?: ImmerState): T\n\t}\n} = {}\n\ntype Plugins = typeof plugins\n\nexport function getPlugin<K extends keyof Plugins>(\n\tpluginKey: K\n): Exclude<Plugins[K], undefined> {\n\tconst plugin = plugins[pluginKey]\n\tif (!plugin) {\n\t\tdie(18, pluginKey)\n\t}\n\t// @ts-ignore\n\treturn plugin\n}\n\nexport function loadPlugin<K extends keyof Plugins>(\n\tpluginKey: K,\n\timplementation: Plugins[K]\n): void {\n\tif (!plugins[pluginKey]) plugins[pluginKey] = implementation\n}\n\n/** ES5 Plugin */\n\ninterface ES5BaseState extends ImmerBaseState {\n\tassigned_: {[key: string]: any}\n\tparent_?: ImmerState\n\trevoked_: boolean\n}\n\nexport interface ES5ObjectState extends ES5BaseState {\n\ttype_: ProxyType.ES5Object\n\tdraft_: Drafted<AnyObject, ES5ObjectState>\n\tbase_: AnyObject\n\tcopy_: AnyObject | null\n}\n\nexport interface ES5ArrayState extends ES5BaseState {\n\ttype_: ProxyType.ES5Array\n\tdraft_: Drafted<AnyObject, ES5ArrayState>\n\tbase_: any\n\tcopy_: any\n}\n\n/** Map / Set plugin */\n\nexport interface MapState extends ImmerBaseState {\n\ttype_: ProxyType.Map\n\tcopy_: AnyMap | undefined\n\tassigned_: Map<any, boolean> | undefined\n\tbase_: AnyMap\n\trevoked_: boolean\n\tdraft_: Drafted<AnyMap, MapState>\n}\n\nexport interface SetState extends ImmerBaseState {\n\ttype_: ProxyType.Set\n\tcopy_: AnySet | undefined\n\tbase_: AnySet\n\tdrafts_: Map<any, Drafted> // maps the original value to the draft value in the new set\n\trevoked_: boolean\n\tdraft_: Drafted<AnySet, SetState>\n}\n\n/** Patches plugin */\n\nexport type PatchPath = (string | number)[]\n","import {\n\tPatch,\n\tPatchListener,\n\tDrafted,\n\tImmer,\n\tDRAFT_STATE,\n\tImmerState,\n\tProxyType,\n\tgetPlugin\n} from \"../internal\"\nimport {die} from \"../utils/errors\"\n\n/** Each scope represents a `produce` call. */\n\nexport interface ImmerScope {\n\tpatches_?: Patch[]\n\tinversePatches_?: Patch[]\n\tcanAutoFreeze_: boolean\n\tdrafts_: any[]\n\tparent_?: ImmerScope\n\tpatchListener_?: PatchListener\n\timmer_: Immer\n\tunfinalizedDrafts_: number\n}\n\nlet currentScope: ImmerScope | undefined\n\nexport function getCurrentScope() {\n\tif (__DEV__ && !currentScope) die(0)\n\treturn currentScope!\n}\n\nfunction createScope(\n\tparent_: ImmerScope | undefined,\n\timmer_: Immer\n): ImmerScope {\n\treturn {\n\t\tdrafts_: [],\n\t\tparent_,\n\t\timmer_,\n\t\t// Whenever the modified draft contains a draft from another scope, we\n\t\t// need to prevent auto-freezing so the unowned draft can be finalized.\n\t\tcanAutoFreeze_: true,\n\t\tunfinalizedDrafts_: 0\n\t}\n}\n\nexport function usePatchesInScope(\n\tscope: ImmerScope,\n\tpatchListener?: PatchListener\n) {\n\tif (patchListener) {\n\t\tgetPlugin(\"Patches\") // assert we have the plugin\n\t\tscope.patches_ = []\n\t\tscope.inversePatches_ = []\n\t\tscope.patchListener_ = patchListener\n\t}\n}\n\nexport function revokeScope(scope: ImmerScope) {\n\tleaveScope(scope)\n\tscope.drafts_.forEach(revokeDraft)\n\t// @ts-ignore\n\tscope.drafts_ = null\n}\n\nexport function leaveScope(scope: ImmerScope) {\n\tif (scope === currentScope) {\n\t\tcurrentScope = scope.parent_\n\t}\n}\n\nexport function enterScope(immer: Immer) {\n\treturn (currentScope = createScope(currentScope, immer))\n}\n\nfunction revokeDraft(draft: Drafted) {\n\tconst state: ImmerState = draft[DRAFT_STATE]\n\tif (\n\t\tstate.type_ === ProxyType.ProxyObject ||\n\t\tstate.type_ === ProxyType.ProxyArray\n\t)\n\t\tstate.revoke_()\n\telse state.revoked_ = true\n}\n","import {\n\tImmerScope,\n\tDRAFT_STATE,\n\tisDraftable,\n\tNOTHING,\n\tPatchPath,\n\teach,\n\thas,\n\tfreeze,\n\tImmerState,\n\tisDraft,\n\tSetState,\n\tset,\n\tProxyType,\n\tgetPlugin,\n\tdie,\n\trevokeScope,\n\tisFrozen,\n\tshallowCopy\n} from \"../internal\"\n\nexport function processResult(result: any, scope: ImmerScope) {\n\tscope.unfinalizedDrafts_ = scope.drafts_.length\n\tconst baseDraft = scope.drafts_![0]\n\tconst isReplaced = result !== undefined && result !== baseDraft\n\tif (!scope.immer_.useProxies_)\n\t\tgetPlugin(\"ES5\").willFinalizeES5_(scope, result, isReplaced)\n\tif (isReplaced) {\n\t\tif (baseDraft[DRAFT_STATE].modified_) {\n\t\t\trevokeScope(scope)\n\t\t\tdie(4)\n\t\t}\n\t\tif (isDraftable(result)) {\n\t\t\t// Finalize the result in case it contains (or is) a subset of the draft.\n\t\t\tresult = finalize(scope, result)\n\t\t\tif (!scope.parent_) maybeFreeze(scope, result)\n\t\t}\n\t\tif (scope.patches_) {\n\t\t\tgetPlugin(\"Patches\").generateReplacementPatches_(\n\t\t\t\tbaseDraft[DRAFT_STATE].base_,\n\t\t\t\tresult,\n\t\t\t\tscope.patches_,\n\t\t\t\tscope.inversePatches_!\n\t\t\t)\n\t\t}\n\t} else {\n\t\t// Finalize the base draft.\n\t\tresult = finalize(scope, baseDraft, [])\n\t}\n\trevokeScope(scope)\n\tif (scope.patches_) {\n\t\tscope.patchListener_!(scope.patches_, scope.inversePatches_!)\n\t}\n\treturn result !== NOTHING ? result : undefined\n}\n\nfunction finalize(rootScope: ImmerScope, value: any, path?: PatchPath) {\n\t// Don't recurse in tho recursive data structures\n\tif (isFrozen(value)) return value\n\n\tconst state: ImmerState = value[DRAFT_STATE]\n\t// A plain object, might need freezing, might contain drafts\n\tif (!state) {\n\t\teach(\n\t\t\tvalue,\n\t\t\t(key, childValue) =>\n\t\t\t\tfinalizeProperty(rootScope, state, value, key, childValue, path),\n\t\t\ttrue // See #590, don't recurse into non-enumerable of non drafted objects\n\t\t)\n\t\treturn value\n\t}\n\t// Never finalize drafts owned by another scope.\n\tif (state.scope_ !== rootScope) return value\n\t// Unmodified draft, return the (frozen) original\n\tif (!state.modified_) {\n\t\tmaybeFreeze(rootScope, state.base_, true)\n\t\treturn state.base_\n\t}\n\t// Not finalized yet, let's do that now\n\tif (!state.finalized_) {\n\t\tstate.finalized_ = true\n\t\tstate.scope_.unfinalizedDrafts_--\n\t\tconst result =\n\t\t\t// For ES5, create a good copy from the draft first, with added keys and without deleted keys.\n\t\t\tstate.type_ === ProxyType.ES5Object || state.type_ === ProxyType.ES5Array\n\t\t\t\t? (state.copy_ = shallowCopy(state.draft_))\n\t\t\t\t: state.copy_\n\t\t// Finalize all children of the copy\n\t\t// For sets we clone before iterating, otherwise we can get in endless loop due to modifying during iteration, see #628\n\t\t// To preserve insertion order in all cases we then clear the set\n\t\t// And we let finalizeProperty know it needs to re-add non-draft children back to the target\n\t\tlet resultEach = result\n\t\tlet isSet = false\n\t\tif (state.type_ === ProxyType.Set) {\n\t\t\tresultEach = new Set(result)\n\t\t\tresult.clear()\n\t\t\tisSet = true\n\t\t}\n\t\teach(resultEach, (key, childValue) =>\n\t\t\tfinalizeProperty(rootScope, state, result, key, childValue, path, isSet)\n\t\t)\n\t\t// everything inside is frozen, we can freeze here\n\t\tmaybeFreeze(rootScope, result, false)\n\t\t// first time finalizing, let's create those patches\n\t\tif (path && rootScope.patches_) {\n\t\t\tgetPlugin(\"Patches\").generatePatches_(\n\t\t\t\tstate,\n\t\t\t\tpath,\n\t\t\t\trootScope.patches_,\n\t\t\t\trootScope.inversePatches_!\n\t\t\t)\n\t\t}\n\t}\n\treturn state.copy_\n}\n\nfunction finalizeProperty(\n\trootScope: ImmerScope,\n\tparentState: undefined | ImmerState,\n\ttargetObject: any,\n\tprop: string | number,\n\tchildValue: any,\n\trootPath?: PatchPath,\n\ttargetIsSet?: boolean\n) {\n\tif (__DEV__ && childValue === targetObject) die(5)\n\tif (isDraft(childValue)) {\n\t\tconst path =\n\t\t\trootPath &&\n\t\t\tparentState &&\n\t\t\tparentState!.type_ !== ProxyType.Set && // Set objects are atomic since they have no keys.\n\t\t\t!has((parentState as Exclude<ImmerState, SetState>).assigned_!, prop) // Skip deep patches for assigned keys.\n\t\t\t\t? rootPath!.concat(prop)\n\t\t\t\t: undefined\n\t\t// Drafts owned by `scope` are finalized here.\n\t\tconst res = finalize(rootScope, childValue, path)\n\t\tset(targetObject, prop, res)\n\t\t// Drafts from another scope must prevented to be frozen\n\t\t// if we got a draft back from finalize, we're in a nested produce and shouldn't freeze\n\t\tif (isDraft(res)) {\n\t\t\trootScope.canAutoFreeze_ = false\n\t\t} else return\n\t} else if (targetIsSet) {\n\t\ttargetObject.add(childValue)\n\t}\n\t// Search new objects for unfinalized drafts. Frozen objects should never contain drafts.\n\tif (isDraftable(childValue) && !isFrozen(childValue)) {\n\t\tif (!rootScope.immer_.autoFreeze_ && rootScope.unfinalizedDrafts_ < 1) {\n\t\t\t// optimization: if an object is not a draft, and we don't have to\n\t\t\t// deepfreeze everything, and we are sure that no drafts are left in the remaining object\n\t\t\t// cause we saw and finalized all drafts already; we can stop visiting the rest of the tree.\n\t\t\t// This benefits especially adding large data tree's without further processing.\n\t\t\t// See add-data.js perf test\n\t\t\treturn\n\t\t}\n\t\tfinalize(rootScope, childValue)\n\t\t// immer deep freezes plain objects, so if there is no parent state, we freeze as well\n\t\tif (!parentState || !parentState.scope_.parent_)\n\t\t\tmaybeFreeze(rootScope, childValue)\n\t}\n}\n\nfunction maybeFreeze(scope: ImmerScope, value: any, deep = false) {\n\t// we never freeze for a non-root scope; as it would prevent pruning for drafts inside wrapping objects\n\tif (!scope.parent_ && scope.immer_.autoFreeze_ && scope.canAutoFreeze_) {\n\t\tfreeze(value, deep)\n\t}\n}\n","import {\n\teach,\n\thas,\n\tis,\n\tisDraftable,\n\tshallowCopy,\n\tlatest,\n\tImmerBaseState,\n\tImmerState,\n\tDrafted,\n\tAnyObject,\n\tAnyArray,\n\tObjectish,\n\tgetCurrentScope,\n\tDRAFT_STATE,\n\tdie,\n\tcreateProxy,\n\tProxyType\n} from \"../internal\"\n\ninterface ProxyBaseState extends ImmerBaseState {\n\tassigned_: {\n\t\t[property: string]: boolean\n\t}\n\tparent_?: ImmerState\n\trevoke_(): void\n}\n\nexport interface ProxyObjectState extends ProxyBaseState {\n\ttype_: ProxyType.ProxyObject\n\tbase_: any\n\tcopy_: any\n\tdraft_: Drafted<AnyObject, ProxyObjectState>\n}\n\nexport interface ProxyArrayState extends ProxyBaseState {\n\ttype_: ProxyType.ProxyArray\n\tbase_: AnyArray\n\tcopy_: AnyArray | null\n\tdraft_: Drafted<AnyArray, ProxyArrayState>\n}\n\ntype ProxyState = ProxyObjectState | ProxyArrayState\n\n/**\n * Returns a new draft of the `base` object.\n *\n * The second argument is the parent draft-state (used internally).\n */\nexport function createProxyProxy<T extends Objectish>(\n\tbase: T,\n\tparent?: ImmerState\n): Drafted<T, ProxyState> {\n\tconst isArray = Array.isArray(base)\n\tconst state: ProxyState = {\n\t\ttype_: isArray ? ProxyType.ProxyArray : (ProxyType.ProxyObject as any),\n\t\t// Track which produce call this is associated with.\n\t\tscope_: parent ? parent.scope_ : getCurrentScope()!,\n\t\t// True for both shallow and deep changes.\n\t\tmodified_: false,\n\t\t// Used during finalization.\n\t\tfinalized_: false,\n\t\t// Track which properties have been assigned (true) or deleted (false).\n\t\tassigned_: {},\n\t\t// The parent draft state.\n\t\tparent_: parent,\n\t\t// The base state.\n\t\tbase_: base,\n\t\t// The base proxy.\n\t\tdraft_: null as any, // set below\n\t\t// The base copy with any updated values.\n\t\tcopy_: null,\n\t\t// Called by the `produce` function.\n\t\trevoke_: null as any,\n\t\tisManual_: false\n\t}\n\n\t// the traps must target something, a bit like the 'real' base.\n\t// but also, we need to be able to determine from the target what the relevant state is\n\t// (to avoid creating traps per instance to capture the state in closure,\n\t// and to avoid creating weird hidden properties as well)\n\t// So the trick is to use 'state' as the actual 'target'! (and make sure we intercept everything)\n\t// Note that in the case of an array, we put the state in an array to have better Reflect defaults ootb\n\tlet target: T = state as any\n\tlet traps: ProxyHandler<object | Array<any>> = objectTraps\n\tif (isArray) {\n\t\ttarget = [state] as any\n\t\ttraps = arrayTraps\n\t}\n\n\tconst {revoke, proxy} = Proxy.revocable(target, traps)\n\tstate.draft_ = proxy as any\n\tstate.revoke_ = revoke\n\treturn proxy as any\n}\n\n/**\n * Object drafts\n */\nexport const objectTraps: ProxyHandler<ProxyState> = {\n\tget(state, prop) {\n\t\tif (prop === DRAFT_STATE) return state\n\n\t\tconst source = latest(state)\n\t\tif (!has(source, prop)) {\n\t\t\t// non-existing or non-own property...\n\t\t\treturn readPropFromProto(state, source, prop)\n\t\t}\n\t\tconst value = source[prop]\n\t\tif (state.finalized_ || !isDraftable(value)) {\n\t\t\treturn value\n\t\t}\n\t\t// Check for existing draft in modified state.\n\t\t// Assigned values are never drafted. This catches any drafts we created, too.\n\t\tif (value === peek(state.base_, prop)) {\n\t\t\tprepareCopy(state)\n\t\t\treturn (state.copy_![prop as any] = createProxy(\n\t\t\t\tstate.scope_.immer_,\n\t\t\t\tvalue,\n\t\t\t\tstate\n\t\t\t))\n\t\t}\n\t\treturn value\n\t},\n\thas(state, prop) {\n\t\treturn prop in latest(state)\n\t},\n\townKeys(state) {\n\t\treturn Reflect.ownKeys(latest(state))\n\t},\n\tset(\n\t\tstate: ProxyObjectState,\n\t\tprop: string /* strictly not, but helps TS */,\n\t\tvalue\n\t) {\n\t\tconst desc = getDescriptorFromProto(latest(state), prop)\n\t\tif (desc?.set) {\n\t\t\t// special case: if this write is captured by a setter, we have\n\t\t\t// to trigger it with the correct context\n\t\t\tdesc.set.call(state.draft_, value)\n\t\t\treturn true\n\t\t}\n\t\tif (!state.modified_) {\n\t\t\t// the last check is because we need to be able to distinguish setting a non-existing to undefined (which is a change)\n\t\t\t// from setting an existing property with value undefined to undefined (which is not a change)\n\t\t\tconst current = peek(latest(state), prop)\n\t\t\t// special case, if we assigning the original value to a draft, we can ignore the assignment\n\t\t\tconst currentState: ProxyObjectState = current?.[DRAFT_STATE]\n\t\t\tif (currentState && currentState.base_ === value) {\n\t\t\t\tstate.copy_![prop] = value\n\t\t\t\tstate.assigned_[prop] = false\n\t\t\t\treturn true\n\t\t\t}\n\t\t\tif (is(value, current) && (value !== undefined || has(state.base_, prop)))\n\t\t\t\treturn true\n\t\t\tprepareCopy(state)\n\t\t\tmarkChanged(state)\n\t\t}\n\n\t\tif (\n\t\t\t(state.copy_![prop] === value &&\n\t\t\t\t// special case: handle new props with value 'undefined'\n\t\t\t\t(value !== undefined || prop in state.copy_)) ||\n\t\t\t// special case: NaN\n\t\t\t(Number.isNaN(value) && Number.isNaN(state.copy_![prop]))\n\t\t)\n\t\t\treturn true\n\n\t\t// @ts-ignore\n\t\tstate.copy_![prop] = value\n\t\tstate.assigned_[prop] = true\n\t\treturn true\n\t},\n\tdeleteProperty(state, prop: string) {\n\t\t// The `undefined` check is a fast path for pre-existing keys.\n\t\tif (peek(state.base_, prop) !== undefined || prop in state.base_) {\n\t\t\tstate.assigned_[prop] = false\n\t\t\tprepareCopy(state)\n\t\t\tmarkChanged(state)\n\t\t} else {\n\t\t\t// if an originally not assigned property was deleted\n\t\t\tdelete state.assigned_[prop]\n\t\t}\n\t\t// @ts-ignore\n\t\tif (state.copy_) delete state.copy_[prop]\n\t\treturn true\n\t},\n\t// Note: We never coerce `desc.value` into an Immer draft, because we can't make\n\t// the same guarantee in ES5 mode.\n\tgetOwnPropertyDescriptor(state, prop) {\n\t\tconst owner = latest(state)\n\t\tconst desc = Reflect.getOwnPropertyDescriptor(owner, prop)\n\t\tif (!desc) return desc\n\t\treturn {\n\t\t\twritable: true,\n\t\t\tconfigurable: state.type_ !== ProxyType.ProxyArray || prop !== \"length\",\n\t\t\tenumerable: desc.enumerable,\n\t\t\tvalue: owner[prop]\n\t\t}\n\t},\n\tdefineProperty() {\n\t\tdie(11)\n\t},\n\tgetPrototypeOf(state) {\n\t\treturn Object.getPrototypeOf(state.base_)\n\t},\n\tsetPrototypeOf() {\n\t\tdie(12)\n\t}\n}\n\n/**\n * Array drafts\n */\n\nconst arrayTraps: ProxyHandler<[ProxyArrayState]> = {}\neach(objectTraps, (key, fn) => {\n\t// @ts-ignore\n\tarrayTraps[key] = function() {\n\t\targuments[0] = arguments[0][0]\n\t\treturn fn.apply(this, arguments)\n\t}\n})\narrayTraps.deleteProperty = function(state, prop) {\n\tif (__DEV__ && isNaN(parseInt(prop as any))) die(13)\n\t// @ts-ignore\n\treturn arrayTraps.set!.call(this, state, prop, undefined)\n}\narrayTraps.set = function(state, prop, value) {\n\tif (__DEV__ && prop !== \"length\" && isNaN(parseInt(prop as any))) die(14)\n\treturn objectTraps.set!.call(this, state[0], prop, value, state[0])\n}\n\n// Access a property without creating an Immer draft.\nfunction peek(draft: Drafted, prop: PropertyKey) {\n\tconst state = draft[DRAFT_STATE]\n\tconst source = state ? latest(state) : draft\n\treturn source[prop]\n}\n\nfunction readPropFromProto(state: ImmerState, source: any, prop: PropertyKey) {\n\tconst desc = getDescriptorFromProto(source, prop)\n\treturn desc\n\t\t? `value` in desc\n\t\t\t? desc.value\n\t\t\t: // This is a very special case, if the prop is a getter defined by the\n\t\t\t  // prototype, we should invoke it with the draft as context!\n\t\t\t  desc.get?.call(state.draft_)\n\t\t: undefined\n}\n\nfunction getDescriptorFromProto(\n\tsource: any,\n\tprop: PropertyKey\n): PropertyDescriptor | undefined {\n\t// 'in' checks proto!\n\tif (!(prop in source)) return undefined\n\tlet proto = Object.getPrototypeOf(source)\n\twhile (proto) {\n\t\tconst desc = Object.getOwnPropertyDescriptor(proto, prop)\n\t\tif (desc) return desc\n\t\tproto = Object.getPrototypeOf(proto)\n\t}\n\treturn undefined\n}\n\nexport function markChanged(state: ImmerState) {\n\tif (!state.modified_) {\n\t\tstate.modified_ = true\n\t\tif (state.parent_) {\n\t\t\tmarkChanged(state.parent_)\n\t\t}\n\t}\n}\n\nexport function prepareCopy(state: {base_: any; copy_: any}) {\n\tif (!state.copy_) {\n\t\tstate.copy_ = shallowCopy(state.base_)\n\t}\n}\n","import {\n\tIProduceWithPatches,\n\tIProduce,\n\tImmerState,\n\tDrafted,\n\tisDraftable,\n\tprocessResult,\n\tPatch,\n\tObjectish,\n\tDRAFT_STATE,\n\tDraft,\n\tPatchListener,\n\tisDraft,\n\tisMap,\n\tisSet,\n\tcreateProxyProxy,\n\tgetPlugin,\n\tdie,\n\thasProxies,\n\tenterScope,\n\trevokeScope,\n\tleaveScope,\n\tusePatchesInScope,\n\tgetCurrentScope,\n\tNOTHING,\n\tfreeze,\n\tcurrent\n} from \"../internal\"\n\ninterface ProducersFns {\n\tproduce: IProduce\n\tproduceWithPatches: IProduceWithPatches\n}\n\nexport class Immer implements ProducersFns {\n\tuseProxies_: boolean = hasProxies\n\n\tautoFreeze_: boolean = true\n\n\tconstructor(config?: {useProxies?: boolean; autoFreeze?: boolean}) {\n\t\tif (typeof config?.useProxies === \"boolean\")\n\t\t\tthis.setUseProxies(config!.useProxies)\n\t\tif (typeof config?.autoFreeze === \"boolean\")\n\t\t\tthis.setAutoFreeze(config!.autoFreeze)\n\t}\n\n\t/**\n\t * The `produce` function takes a value and a \"recipe function\" (whose\n\t * return value often depends on the base state). The recipe function is\n\t * free to mutate its first argument however it wants. All mutations are\n\t * only ever applied to a __copy__ of the base state.\n\t *\n\t * Pass only a function to create a \"curried producer\" which relieves you\n\t * from passing the recipe function every time.\n\t *\n\t * Only plain objects and arrays are made mutable. All other objects are\n\t * considered uncopyable.\n\t *\n\t * Note: This function is __bound__ to its `Immer` instance.\n\t *\n\t * @param {any} base - the initial state\n\t * @param {Function} recipe - function that receives a proxy of the base state as first argument and which can be freely modified\n\t * @param {Function} patchListener - optional function that will be called with all the patches produced here\n\t * @returns {any} a new state, or the initial state if nothing was modified\n\t */\n\tproduce: IProduce = (base: any, recipe?: any, patchListener?: any) => {\n\t\t// curried invocation\n\t\tif (typeof base === \"function\" && typeof recipe !== \"function\") {\n\t\t\tconst defaultBase = recipe\n\t\t\trecipe = base\n\n\t\t\tconst self = this\n\t\t\treturn function curriedProduce(\n\t\t\t\tthis: any,\n\t\t\t\tbase = defaultBase,\n\t\t\t\t...args: any[]\n\t\t\t) {\n\t\t\t\treturn self.produce(base, (draft: Drafted) => recipe.call(this, draft, ...args)) // prettier-ignore\n\t\t\t}\n\t\t}\n\n\t\tif (typeof recipe !== \"function\") die(6)\n\t\tif (patchListener !== undefined && typeof patchListener !== \"function\")\n\t\t\tdie(7)\n\n\t\tlet result\n\n\t\t// Only plain objects, arrays, and \"immerable classes\" are drafted.\n\t\tif (isDraftable(base)) {\n\t\t\tconst scope = enterScope(this)\n\t\t\tconst proxy = createProxy(this, base, undefined)\n\t\t\tlet hasError = true\n\t\t\ttry {\n\t\t\t\tresult = recipe(proxy)\n\t\t\t\thasError = false\n\t\t\t} finally {\n\t\t\t\t// finally instead of catch + rethrow better preserves original stack\n\t\t\t\tif (hasError) revokeScope(scope)\n\t\t\t\telse leaveScope(scope)\n\t\t\t}\n\t\t\tif (typeof Promise !== \"undefined\" && result instanceof Promise) {\n\t\t\t\treturn result.then(\n\t\t\t\t\tresult => {\n\t\t\t\t\t\tusePatchesInScope(scope, patchListener)\n\t\t\t\t\t\treturn processResult(result, scope)\n\t\t\t\t\t},\n\t\t\t\t\terror => {\n\t\t\t\t\t\trevokeScope(scope)\n\t\t\t\t\t\tthrow error\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t}\n\t\t\tusePatchesInScope(scope, patchListener)\n\t\t\treturn processResult(result, scope)\n\t\t} else if (!base || typeof base !== \"object\") {\n\t\t\tresult = recipe(base)\n\t\t\tif (result === undefined) result = base\n\t\t\tif (result === NOTHING) result = undefined\n\t\t\tif (this.autoFreeze_) freeze(result, true)\n\t\t\tif (patchListener) {\n\t\t\t\tconst p: Patch[] = []\n\t\t\t\tconst ip: Patch[] = []\n\t\t\t\tgetPlugin(\"Patches\").generateReplacementPatches_(base, result, p, ip)\n\t\t\t\tpatchListener(p, ip)\n\t\t\t}\n\t\t\treturn result\n\t\t} else die(21, base)\n\t}\n\n\tproduceWithPatches: IProduceWithPatches = (base: any, recipe?: any): any => {\n\t\t// curried invocation\n\t\tif (typeof base === \"function\") {\n\t\t\treturn (state: any, ...args: any[]) =>\n\t\t\t\tthis.produceWithPatches(state, (draft: any) => base(draft, ...args))\n\t\t}\n\n\t\tlet patches: Patch[], inversePatches: Patch[]\n\t\tconst result = this.produce(base, recipe, (p: Patch[], ip: Patch[]) => {\n\t\t\tpatches = p\n\t\t\tinversePatches = ip\n\t\t})\n\n\t\tif (typeof Promise !== \"undefined\" && result instanceof Promise) {\n\t\t\treturn result.then(nextState => [nextState, patches!, inversePatches!])\n\t\t}\n\t\treturn [result, patches!, inversePatches!]\n\t}\n\n\tcreateDraft<T extends Objectish>(base: T): Draft<T> {\n\t\tif (!isDraftable(base)) die(8)\n\t\tif (isDraft(base)) base = current(base)\n\t\tconst scope = enterScope(this)\n\t\tconst proxy = createProxy(this, base, undefined)\n\t\tproxy[DRAFT_STATE].isManual_ = true\n\t\tleaveScope(scope)\n\t\treturn proxy as any\n\t}\n\n\tfinishDraft<D extends Draft<any>>(\n\t\tdraft: D,\n\t\tpatchListener?: PatchListener\n\t): D extends Draft<infer T> ? T : never {\n\t\tconst state: ImmerState = draft && (draft as any)[DRAFT_STATE]\n\t\tif (__DEV__) {\n\t\t\tif (!state || !state.isManual_) die(9)\n\t\t\tif (state.finalized_) die(10)\n\t\t}\n\t\tconst {scope_: scope} = state\n\t\tusePatchesInScope(scope, patchListener)\n\t\treturn processResult(undefined, scope)\n\t}\n\n\t/**\n\t * Pass true to automatically freeze all copies created by Immer.\n\t *\n\t * By default, auto-freezing is enabled.\n\t */\n\tsetAutoFreeze(value: boolean) {\n\t\tthis.autoFreeze_ = value\n\t}\n\n\t/**\n\t * Pass true to use the ES2015 `Proxy` class when creating drafts, which is\n\t * always faster than using ES5 proxies.\n\t *\n\t * By default, feature detection is used, so calling this is rarely necessary.\n\t */\n\tsetUseProxies(value: boolean) {\n\t\tif (value && !hasProxies) {\n\t\t\tdie(20)\n\t\t}\n\t\tthis.useProxies_ = value\n\t}\n\n\tapplyPatches<T extends Objectish>(base: T, patches: Patch[]): T {\n\t\t// If a patch replaces the entire state, take that replacement as base\n\t\t// before applying patches\n\t\tlet i: number\n\t\tfor (i = patches.length - 1; i >= 0; i--) {\n\t\t\tconst patch = patches[i]\n\t\t\tif (patch.path.length === 0 && patch.op === \"replace\") {\n\t\t\t\tbase = patch.value\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\t// If there was a patch that replaced the entire state, start from the\n\t\t// patch after that.\n\t\tif (i > -1) {\n\t\t\tpatches = patches.slice(i + 1)\n\t\t}\n\n\t\tconst applyPatchesImpl = getPlugin(\"Patches\").applyPatches_\n\t\tif (isDraft(base)) {\n\t\t\t// N.B: never hits if some patch a replacement, patches are never drafts\n\t\t\treturn applyPatchesImpl(base, patches)\n\t\t}\n\t\t// Otherwise, produce a copy of the base state.\n\t\treturn this.produce(base, (draft: Drafted) =>\n\t\t\tapplyPatchesImpl(draft, patches)\n\t\t)\n\t}\n}\n\nexport function createProxy<T extends Objectish>(\n\timmer: Immer,\n\tvalue: T,\n\tparent?: ImmerState\n): Drafted<T, ImmerState> {\n\t// precondition: createProxy should be guarded by isDraftable, so we know we can safely draft\n\tconst draft: Drafted = isMap(value)\n\t\t? getPlugin(\"MapSet\").proxyMap_(value, parent)\n\t\t: isSet(value)\n\t\t? getPlugin(\"MapSet\").proxySet_(value, parent)\n\t\t: immer.useProxies_\n\t\t? createProxyProxy(value, parent)\n\t\t: getPlugin(\"ES5\").createES5Proxy_(value, parent)\n\n\tconst scope = parent ? parent.scope_ : getCurrentScope()\n\tscope.drafts_.push(draft)\n\treturn draft\n}\n","import {\n\tdie,\n\tisDraft,\n\tshallowCopy,\n\teach,\n\tDRAFT_STATE,\n\tget,\n\tset,\n\tImmerState,\n\tisDraftable,\n\tArchtype,\n\tgetArchtype,\n\tgetPlugin\n} from \"../internal\"\n\n/** Takes a snapshot of the current state of a draft and finalizes it (but without freezing). This is a great utility to print the current state during debugging (no Proxies in the way). The output of current can also be safely leaked outside the producer. */\nexport function current<T>(value: T): T\nexport function current(value: any): any {\n\tif (!isDraft(value)) die(22, value)\n\treturn currentImpl(value)\n}\n\nfunction currentImpl(value: any): any {\n\tif (!isDraftable(value)) return value\n\tconst state: ImmerState | undefined = value[DRAFT_STATE]\n\tlet copy: any\n\tconst archType = getArchtype(value)\n\tif (state) {\n\t\tif (\n\t\t\t!state.modified_ &&\n\t\t\t(state.type_ < 4 || !getPlugin(\"ES5\").hasChanges_(state as any))\n\t\t)\n\t\t\treturn state.base_\n\t\t// Optimization: avoid generating new drafts during copying\n\t\tstate.finalized_ = true\n\t\tcopy = copyHelper(value, archType)\n\t\tstate.finalized_ = false\n\t} else {\n\t\tcopy = copyHelper(value, archType)\n\t}\n\n\teach(copy, (key, childValue) => {\n\t\tif (state && get(state.base_, key) === childValue) return // no need to copy or search in something that didn't change\n\t\tset(copy, key, currentImpl(childValue))\n\t})\n\t// In the future, we might consider freezing here, based on the current settings\n\treturn archType === Archtype.Set ? new Set(copy) : copy\n}\n\nfunction copyHelper(value: any, archType: number): any {\n\t// creates a shallow copy, even if it is a map or set\n\tswitch (archType) {\n\t\tcase Archtype.Map:\n\t\t\treturn new Map(value)\n\t\tcase Archtype.Set:\n\t\t\t// Set will be cloned as array temporarily, so that we can replace individual items\n\t\t\treturn Array.from(value)\n\t}\n\treturn shallowCopy(value)\n}\n","import {\n\tImmerState,\n\tDrafted,\n\tES5ArrayState,\n\tES5ObjectState,\n\teach,\n\thas,\n\tisDraft,\n\tlatest,\n\tDRAFT_STATE,\n\tis,\n\tloadPlugin,\n\tImmerScope,\n\tProxyType,\n\tgetCurrentScope,\n\tdie,\n\tmarkChanged,\n\tobjectTraps,\n\townKeys,\n\tgetOwnPropertyDescriptors\n} from \"../internal\"\n\ntype ES5State = ES5ArrayState | ES5ObjectState\n\nexport function enableES5() {\n\tfunction willFinalizeES5_(\n\t\tscope: ImmerScope,\n\t\tresult: any,\n\t\tisReplaced: boolean\n\t) {\n\t\tif (!isReplaced) {\n\t\t\tif (scope.patches_) {\n\t\t\t\tmarkChangesRecursively(scope.drafts_![0])\n\t\t\t}\n\t\t\t// This is faster when we don't care about which attributes changed.\n\t\t\tmarkChangesSweep(scope.drafts_)\n\t\t}\n\t\t// When a child draft is returned, look for changes.\n\t\telse if (\n\t\t\tisDraft(result) &&\n\t\t\t(result[DRAFT_STATE] as ES5State).scope_ === scope\n\t\t) {\n\t\t\tmarkChangesSweep(scope.drafts_)\n\t\t}\n\t}\n\n\tfunction createES5Draft(isArray: boolean, base: any) {\n\t\tif (isArray) {\n\t\t\tconst draft = new Array(base.length)\n\t\t\tfor (let i = 0; i < base.length; i++)\n\t\t\t\tObject.defineProperty(draft, \"\" + i, proxyProperty(i, true))\n\t\t\treturn draft\n\t\t} else {\n\t\t\tconst descriptors = getOwnPropertyDescriptors(base)\n\t\t\tdelete descriptors[DRAFT_STATE as any]\n\t\t\tconst keys = ownKeys(descriptors)\n\t\t\tfor (let i = 0; i < keys.length; i++) {\n\t\t\t\tconst key: any = keys[i]\n\t\t\t\tdescriptors[key] = proxyProperty(\n\t\t\t\t\tkey,\n\t\t\t\t\tisArray || !!descriptors[key].enumerable\n\t\t\t\t)\n\t\t\t}\n\t\t\treturn Object.create(Object.getPrototypeOf(base), descriptors)\n\t\t}\n\t}\n\n\tfunction createES5Proxy_<T>(\n\t\tbase: T,\n\t\tparent?: ImmerState\n\t): Drafted<T, ES5ObjectState | ES5ArrayState> {\n\t\tconst isArray = Array.isArray(base)\n\t\tconst draft = createES5Draft(isArray, base)\n\n\t\tconst state: ES5ObjectState | ES5ArrayState = {\n\t\t\ttype_: isArray ? ProxyType.ES5Array : (ProxyType.ES5Object as any),\n\t\t\tscope_: parent ? parent.scope_ : getCurrentScope(),\n\t\t\tmodified_: false,\n\t\t\tfinalized_: false,\n\t\t\tassigned_: {},\n\t\t\tparent_: parent,\n\t\t\t// base is the object we are drafting\n\t\t\tbase_: base,\n\t\t\t// draft is the draft object itself, that traps all reads and reads from either the base (if unmodified) or copy (if modified)\n\t\t\tdraft_: draft,\n\t\t\tcopy_: null,\n\t\t\trevoked_: false,\n\t\t\tisManual_: false\n\t\t}\n\n\t\tObject.defineProperty(draft, DRAFT_STATE, {\n\t\t\tvalue: state,\n\t\t\t// enumerable: false <- the default\n\t\t\twritable: true\n\t\t})\n\t\treturn draft\n\t}\n\n\t// property descriptors are recycled to make sure we don't create a get and set closure per property,\n\t// but share them all instead\n\tconst descriptors: {[prop: string]: PropertyDescriptor} = {}\n\n\tfunction proxyProperty(\n\t\tprop: string | number,\n\t\tenumerable: boolean\n\t): PropertyDescriptor {\n\t\tlet desc = descriptors[prop]\n\t\tif (desc) {\n\t\t\tdesc.enumerable = enumerable\n\t\t} else {\n\t\t\tdescriptors[prop] = desc = {\n\t\t\t\tconfigurable: true,\n\t\t\t\tenumerable,\n\t\t\t\tget(this: any) {\n\t\t\t\t\tconst state = this[DRAFT_STATE]\n\t\t\t\t\tif (__DEV__) assertUnrevoked(state)\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\treturn objectTraps.get(state, prop)\n\t\t\t\t},\n\t\t\t\tset(this: any, value) {\n\t\t\t\t\tconst state = this[DRAFT_STATE]\n\t\t\t\t\tif (__DEV__) assertUnrevoked(state)\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tobjectTraps.set(state, prop, value)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn desc\n\t}\n\n\t// This looks expensive, but only proxies are visited, and only objects without known changes are scanned.\n\tfunction markChangesSweep(drafts: Drafted<any, ImmerState>[]) {\n\t\t// The natural order of drafts in the `scope` array is based on when they\n\t\t// were accessed. By processing drafts in reverse natural order, we have a\n\t\t// better chance of processing leaf nodes first. When a leaf node is known to\n\t\t// have changed, we can avoid any traversal of its ancestor nodes.\n\t\tfor (let i = drafts.length - 1; i >= 0; i--) {\n\t\t\tconst state: ES5State = drafts[i][DRAFT_STATE]\n\t\t\tif (!state.modified_) {\n\t\t\t\tswitch (state.type_) {\n\t\t\t\t\tcase ProxyType.ES5Array:\n\t\t\t\t\t\tif (hasArrayChanges(state)) markChanged(state)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase ProxyType.ES5Object:\n\t\t\t\t\t\tif (hasObjectChanges(state)) markChanged(state)\n\t\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction markChangesRecursively(object: any) {\n\t\tif (!object || typeof object !== \"object\") return\n\t\tconst state: ES5State | undefined = object[DRAFT_STATE]\n\t\tif (!state) return\n\t\tconst {base_, draft_, assigned_, type_} = state\n\t\tif (type_ === ProxyType.ES5Object) {\n\t\t\t// Look for added keys.\n\t\t\t// probably there is a faster way to detect changes, as sweep + recurse seems to do some\n\t\t\t// unnecessary work.\n\t\t\t// also: probably we can store the information we detect here, to speed up tree finalization!\n\t\t\teach(draft_, key => {\n\t\t\t\tif ((key as any) === DRAFT_STATE) return\n\t\t\t\t// The `undefined` check is a fast path for pre-existing keys.\n\t\t\t\tif ((base_ as any)[key] === undefined && !has(base_, key)) {\n\t\t\t\t\tassigned_[key] = true\n\t\t\t\t\tmarkChanged(state)\n\t\t\t\t} else if (!assigned_[key]) {\n\t\t\t\t\t// Only untouched properties trigger recursion.\n\t\t\t\t\tmarkChangesRecursively(draft_[key])\n\t\t\t\t}\n\t\t\t})\n\t\t\t// Look for removed keys.\n\t\t\teach(base_, key => {\n\t\t\t\t// The `undefined` check is a fast path for pre-existing keys.\n\t\t\t\tif (draft_[key] === undefined && !has(draft_, key)) {\n\t\t\t\t\tassigned_[key] = false\n\t\t\t\t\tmarkChanged(state)\n\t\t\t\t}\n\t\t\t})\n\t\t} else if (type_ === ProxyType.ES5Array) {\n\t\t\tif (hasArrayChanges(state as ES5ArrayState)) {\n\t\t\t\tmarkChanged(state)\n\t\t\t\tassigned_.length = true\n\t\t\t}\n\n\t\t\tif (draft_.length < base_.length) {\n\t\t\t\tfor (let i = draft_.length; i < base_.length; i++) assigned_[i] = false\n\t\t\t} else {\n\t\t\t\tfor (let i = base_.length; i < draft_.length; i++) assigned_[i] = true\n\t\t\t}\n\n\t\t\t// Minimum count is enough, the other parts has been processed.\n\t\t\tconst min = Math.min(draft_.length, base_.length)\n\n\t\t\tfor (let i = 0; i < min; i++) {\n\t\t\t\t// Only untouched indices trigger recursion.\n\t\t\t\tif (!draft_.hasOwnProperty(i)) {\n\t\t\t\t\tassigned_[i] = true\n\t\t\t\t}\n\t\t\t\tif (assigned_[i] === undefined) markChangesRecursively(draft_[i])\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction hasObjectChanges(state: ES5ObjectState) {\n\t\tconst {base_, draft_} = state\n\n\t\t// Search for added keys and changed keys. Start at the back, because\n\t\t// non-numeric keys are ordered by time of definition on the object.\n\t\tconst keys = ownKeys(draft_)\n\t\tfor (let i = keys.length - 1; i >= 0; i--) {\n\t\t\tconst key: any = keys[i]\n\t\t\tif (key === DRAFT_STATE) continue\n\t\t\tconst baseValue = base_[key]\n\t\t\t// The `undefined` check is a fast path for pre-existing keys.\n\t\t\tif (baseValue === undefined && !has(base_, key)) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\t// Once a base key is deleted, future changes go undetected, because its\n\t\t\t// descriptor is erased. This branch detects any missed changes.\n\t\t\telse {\n\t\t\t\tconst value = draft_[key]\n\t\t\t\tconst state: ImmerState = value && value[DRAFT_STATE]\n\t\t\t\tif (state ? state.base_ !== baseValue : !is(value, baseValue)) {\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// At this point, no keys were added or changed.\n\t\t// Compare key count to determine if keys were deleted.\n\t\tconst baseIsDraft = !!base_[DRAFT_STATE as any]\n\t\treturn keys.length !== ownKeys(base_).length + (baseIsDraft ? 0 : 1) // + 1 to correct for DRAFT_STATE\n\t}\n\n\tfunction hasArrayChanges(state: ES5ArrayState) {\n\t\tconst {draft_} = state\n\t\tif (draft_.length !== state.base_.length) return true\n\t\t// See #116\n\t\t// If we first shorten the length, our array interceptors will be removed.\n\t\t// If after that new items are added, result in the same original length,\n\t\t// those last items will have no intercepting property.\n\t\t// So if there is no own descriptor on the last position, we know that items were removed and added\n\t\t// N.B.: splice, unshift, etc only shift values around, but not prop descriptors, so we only have to check\n\t\t// the last one\n\t\t// last descriptor can be not a trap, if the array was extended\n\t\tconst descriptor = Object.getOwnPropertyDescriptor(\n\t\t\tdraft_,\n\t\t\tdraft_.length - 1\n\t\t)\n\t\t// descriptor can be null, but only for newly created sparse arrays, eg. new Array(10)\n\t\tif (descriptor && !descriptor.get) return true\n\t\t// if we miss a property, it has been deleted, so array probobaly changed\n\t\tfor (let i = 0; i < draft_.length; i++) {\n\t\t\tif (!draft_.hasOwnProperty(i)) return true\n\t\t}\n\t\t// For all other cases, we don't have to compare, as they would have been picked up by the index setters\n\t\treturn false\n\t}\n\n\tfunction hasChanges_(state: ES5State) {\n\t\treturn state.type_ === ProxyType.ES5Object\n\t\t\t? hasObjectChanges(state)\n\t\t\t: hasArrayChanges(state)\n\t}\n\n\tfunction assertUnrevoked(state: any /*ES5State | MapState | SetState*/) {\n\t\tif (state.revoked_) die(3, JSON.stringify(latest(state)))\n\t}\n\n\tloadPlugin(\"ES5\", {\n\t\tcreateES5Proxy_,\n\t\twillFinalizeES5_,\n\t\thasChanges_\n\t})\n}\n","import {\n\tIProduce,\n\tIProduceWithPatches,\n\tImmer,\n\tDraft,\n\tImmutable\n} from \"./internal\"\n\nexport {\n\tDraft,\n\tImmutable,\n\tPatch,\n\tPatchListener,\n\toriginal,\n\tcurrent,\n\tisDraft,\n\tisDraftable,\n\tNOTHING as nothing,\n\tDRAFTABLE as immerable,\n\tfreeze\n} from \"./internal\"\n\nconst immer = new Immer()\n\n/**\n * The `produce` function takes a value and a \"recipe function\" (whose\n * return value often depends on the base state). The recipe function is\n * free to mutate its first argument however it wants. All mutations are\n * only ever applied to a __copy__ of the base state.\n *\n * Pass only a function to create a \"curried producer\" which relieves you\n * from passing the recipe function every time.\n *\n * Only plain objects and arrays are made mutable. All other objects are\n * considered uncopyable.\n *\n * Note: This function is __bound__ to its `Immer` instance.\n *\n * @param {any} base - the initial state\n * @param {Function} producer - function that receives a proxy of the base state as first argument and which can be freely modified\n * @param {Function} patchListener - optional function that will be called with all the patches produced here\n * @returns {any} a new state, or the initial state if nothing was modified\n */\nexport const produce: IProduce = immer.produce\nexport default produce\n\n/**\n * Like `produce`, but `produceWithPatches` always returns a tuple\n * [nextState, patches, inversePatches] (instead of just the next state)\n */\nexport const produceWithPatches: IProduceWithPatches = immer.produceWithPatches.bind(\n\timmer\n)\n\n/**\n * Pass true to automatically freeze all copies created by Immer.\n *\n * Always freeze by default, even in production mode\n */\nexport const setAutoFreeze = immer.setAutoFreeze.bind(immer)\n\n/**\n * Pass true to use the ES2015 `Proxy` class when creating drafts, which is\n * always faster than using ES5 proxies.\n *\n * By default, feature detection is used, so calling this is rarely necessary.\n */\nexport const setUseProxies = immer.setUseProxies.bind(immer)\n\n/**\n * Apply an array of Immer patches to the first argument.\n *\n * This function is a producer, which means copy-on-write is in effect.\n */\nexport const applyPatches = immer.applyPatches.bind(immer)\n\n/**\n * Create an Immer draft from the given base state, which may be a draft itself.\n * The draft can be modified until you finalize it with the `finishDraft` function.\n */\nexport const createDraft = immer.createDraft.bind(immer)\n\n/**\n * Finalize an Immer draft from a `createDraft` call, returning the base state\n * (if no changes were made) or a modified copy. The draft must *not* be\n * mutated afterwards.\n *\n * Pass a function as the 2nd argument to generate Immer patches based on the\n * changes that were made.\n */\nexport const finishDraft = immer.finishDraft.bind(immer)\n\n/**\n * This function is actually a no-op, but can be used to cast an immutable type\n * to an draft type and make TypeScript happy\n *\n * @param value\n */\nexport function castDraft<T>(value: T): Draft<T> {\n\treturn value as any\n}\n\n/**\n * This function is actually a no-op, but can be used to cast a mutable type\n * to an immutable type and make TypeScript happy\n * @param value\n */\nexport function castImmutable<T>(value: T): Immutable<T> {\n\treturn value as any\n}\n\nexport {Immer}\n\nexport {enableES5} from \"./plugins/es5\"\nexport {enablePatches} from \"./plugins/patches\"\nexport {enableMapSet} from \"./plugins/mapset\"\nexport {enableAllPlugins} from \"./plugins/all\"\n","// Should be no imports here!\n\n// Some things that should be evaluated before all else...\n\n// We only want to know if non-polyfilled symbols are available\nconst hasSymbol =\n\ttypeof Symbol !== \"undefined\" && typeof Symbol(\"x\") === \"symbol\"\nexport const hasMap = typeof Map !== \"undefined\"\nexport const hasSet = typeof Set !== \"undefined\"\nexport const hasProxies =\n\ttypeof Proxy !== \"undefined\" &&\n\ttypeof Proxy.revocable !== \"undefined\" &&\n\ttypeof Reflect !== \"undefined\"\n\n/**\n * The sentinel value returned by producers to replace the draft with undefined.\n */\nexport const NOTHING: Nothing = hasSymbol\n\t? Symbol.for(\"immer-nothing\")\n\t: ({[\"immer-nothing\"]: true} as any)\n\n/**\n * To let Immer treat your class instances as plain immutable objects\n * (albeit with a custom prototype), you must define either an instance property\n * or a static property on each of your custom classes.\n *\n * Otherwise, your class instance will never be drafted, which means it won't be\n * safe to mutate in a produce callback.\n */\nexport const DRAFTABLE: unique symbol = hasSymbol\n\t? Symbol.for(\"immer-draftable\")\n\t: (\"__$immer_draftable\" as any)\n\nexport const DRAFT_STATE: unique symbol = hasSymbol\n\t? Symbol.for(\"immer-state\")\n\t: (\"__$immer_state\" as any)\n\n// Even a polyfilled Symbol might provide Symbol.iterator\nexport const iteratorSymbol: typeof Symbol.iterator =\n\t(typeof Symbol != \"undefined\" && Symbol.iterator) || (\"@@iterator\" as any)\n\n/** Use a class type for `nothing` so its type is unique */\nexport class Nothing {\n\t// This lets us do `Exclude<T, Nothing>`\n\t// @ts-ignore\n\tprivate _!: unique symbol\n}\n","var tmpResult = {\n    os: {},\n    platform: {},\n    browser: {}\n};\n/* eslint-disable complexity */\nfunction webDetect() {\n    if (JSON.stringify(tmpResult.platform) !== \"{}\" ||\n        !window.navigator.userAgent) {\n        return tmpResult;\n    }\n    var ua = window.navigator.userAgent;\n    var REGS = {\n        webkit: /WebKit\\/([\\d.]+)/,\n        android: /(Android)(?:\\s+|\\/)(?:[A-z\\-]*)([\\d.]+)/,\n        ipad: /(iPad).*OS\\s([\\d_]+)/,\n        iphone: /(iPhone\\sOS)\\s([\\d_]+)/,\n        chrome: /Chrome\\/([\\d.]+)/,\n        chromeOS: /CriOS\\/([\\d.]+)/,\n        // firefox:/Firefox\\/([\\d.]+)/,\n        mobile: /Mobile(\\/|\\s)/,\n        tablet: /Tablet/,\n        safariLike: /Safari\\/([\\d.]+)/,\n        // webview:/(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/,\n        ie: /MSIE\\s([\\d.]+)/,\n        // ieMobi:/IEMobile\\/([\\d.]+)/,\n        trident: /Trident\\/([\\d.]+)/,\n        ierv: /\\srv\\:([\\d.]+)/,\n        wechat: /MicroMessenger\\/([\\d\\.]+)/,\n        // uc:/\\s?UC|JUC|UCWEB/,\n        qq: /MQQBrowser\\/([\\d\\.]+)/,\n        mi: /MiuiBrowser\\/([\\d\\.]+)/,\n        baidu: /baiduboxapp\\/([\\d\\.]+)/i,\n        music: /\\sqqmusic\\/([\\d\\.]+)/i,\n        qzone: /qzone\\/.+qz_([\\d\\.]+)/i,\n        qmkege: /qmkege\\/([\\d\\.]+)/i,\n        kglite: /kglite\\/([\\d\\.]+)/i,\n        wesing: /wesing\\/([\\d\\.]+)/i,\n        mqq: /QQ\\/([\\d\\.]+)/,\n        weibo: /Weibo/,\n        facebook: /\\[[^\\]]+FBAV\\/([\\d\\.]+)[^\\]]+\\]/,\n        instagram: /Instagram \\/([\\d\\.]+)/,\n        samsung: /SamsungBrowser\\/([\\d\\.]+)/,\n        pcclient: /V1_WIN_KG_([\\d\\.]+)/,\n        intoo: /intoo\\/([\\d\\.]+)/i,\n        dating: /tmedt\\/([\\d\\.]+)/i,\n        qua: /qua\\/[a-z0-9_]*_([0-9\\._]*)_[a-z0-9_]*/i,\n        mp: /miniprogram/i,\n        weband: /weband/i,\n        hermes: /Hermes/i\n    };\n    function getDevice(ua) {\n        var str = ua.toUpperCase();\n        var match = str.match(/(HONOR|HUAWEI|OPPO|VIVO|IPAD|IPHONE)/) ||\n            str.match(/; ([A-Z0-9\\s-_+\\?\\(\\)]+) BUILD\\//);\n        return (match ? match[1] : \"PC\").split(/[\\s-_]/)[0];\n    }\n    var os = {};\n    var browser = {};\n    var platform = {};\n    var device = \"\";\n    // firefox = ua.match(REGS.firefox),\n    // ieMobile = ua.match(REGS.ieMobi),\n    // uc = ua.match(REGS.uc),\n    /* webkit, chrome */\n    var webkit;\n    var chrome;\n    if ((webkit = ua.match(REGS.webkit))) {\n        browser.webkit = true;\n        browser.version = webkit[1];\n    }\n    if ((chrome = ua.match(REGS.chrome) || ua.match(REGS.chromeOS))) {\n        browser.chrome = true;\n        browser.version = chrome[1];\n    }\n    /* OS */\n    var ie;\n    var trident;\n    var android;\n    var iphone;\n    var ipad;\n    if ((android = ua.match(REGS.android))) {\n        // android\n        os.android = true;\n        os.version = android[2];\n    }\n    else if ((ie = ua.match(REGS.ie)) || (trident = ua.match(REGS.trident))) {\n        // ie\n        if (ie) {\n            browser.ie = true;\n            browser.version = ie[1];\n        }\n        // ie 11 and above\n        var ierv = ua.match(REGS.ierv);\n        if (trident && ierv) {\n            browser.ie = true;\n            browser.version = ierv[1];\n        }\n    }\n    else {\n        ipad = ua.match(REGS.ipad);\n        iphone = !ipad && ua.match(REGS.iphone);\n        // ios\n        if (iphone) {\n            os.ios = os.iphone = true;\n            os.version = iphone[2].replace(/_/g, \".\");\n        }\n        else if (ipad) {\n            os.ios = os.ipad = true;\n            os.version = ipad[2].replace(/_/g, \".\");\n        }\n    }\n    // tablet OR phone OR pc\n    if (ua.match(REGS.tablet) || ipad) {\n        os.tablet = true;\n    }\n    else if (android || iphone || REGS.mobile.test(ua)) {\n        os.phone = true;\n    }\n    else {\n        os.pc = true;\n        platform.pc = true;\n        platform.name = \"pc\";\n    }\n    /* webview platform */\n    var wechat;\n    var music;\n    var qzone;\n    var qmkege;\n    var kglite;\n    var wesing;\n    var weibo;\n    var mqq;\n    var facebook;\n    var samsung;\n    var pcclient;\n    var intoo;\n    var instagram;\n    var qua;\n    var dating;\n    var weband;\n    platform.rn = false;\n    browser.webview = true;\n    if ((wechat = ua.match(REGS.wechat))) {\n        platform.wechat = true;\n        platform.name = \"wechat\";\n        platform.version = wechat[1];\n        if (ua.match(REGS.mp)) {\n            platform.mp = true;\n            platform.wechatmp = true;\n        }\n    }\n    else if ((mqq = ua.match(REGS.mqq))) {\n        platform.qq = true;\n        platform.name = \"qq\";\n        platform.version = mqq[1];\n        if (ua.match(REGS.mp)) {\n            platform.mp = true;\n            platform.qqmp = true;\n        }\n    }\n    else if ((qmkege = ua.match(REGS.qmkege)) ||\n        (wesing = ua.match(REGS.wesing)) ||\n        (kglite = ua.match(REGS.kglite))) {\n        // 国际版也通过判断，用wesing区分\n        platform.qmkege = true;\n        qua = ua.match(REGS.qua);\n        platform.qua = qua && qua[0] ? qua[0] : \"\";\n        // iOS通过UA是否带有Hermes关键词来区分引擎\n        platform.hermes = os.ios && Boolean(ua.match(REGS.hermes));\n        if (wesing) {\n            platform.wesing = true;\n            platform.name = \"wesing\";\n            platform.version = wesing[1];\n        }\n        else {\n            platform.name = kglite ? \"kglite\" : \"qmkege\";\n            // 由于这里会匹配到 qmkege/6.2.2 version = \"6.2.2\"\n            // 但上报需求精确到小版本 6.2.2.274，所以从qua中取 qua/V1_AND_KG_6.2.2_274_SJTX_D\n            // platform.version = qmkege[1];\n            platform.version = qua && qua[1] ? qua[1].replace(\"_\", \".\") : qmkege[1];\n        }\n        // 是否为ios审核版本\n        platform.isappreview = os.ios && /appreview=1/.test(document.cookie);\n    }\n    else if ((dating = ua.match(REGS.dating))) {\n        qua = ua.match(REGS.qua);\n        platform.version = qua && qua[1] ? qua[1].replace(\"_\", \".\") : dating[1];\n        platform.dating = true;\n        platform.name = \"dating\";\n        platform.qua = qua && qua[0] ? qua[0] : \"\";\n        // 是否为ios审核版本\n        platform.isappreview = os.ios && /appreview=1/.test(document.cookie);\n    }\n    else if ((weband = ua.match(REGS.weband))) {\n        qua = ua.match(REGS.qua);\n        platform.version = qua && qua[1] ? qua[1].replace(\"_\", \".\") : weband[1];\n        platform.weband = true;\n        platform.name = \"weband\";\n        platform.qua = qua && qua[0] ? qua[0] : \"\";\n        // 是否为ios审核版本\n        platform.isappreview = os.ios && /appreview=1/.test(document.cookie);\n    }\n    else if ((intoo = ua.match(REGS.intoo))) {\n        platform.intoo = true;\n        platform.name = \"intoo\";\n        platform.version = intoo[1];\n    }\n    else if ((weibo = REGS.weibo.test(ua))) {\n        platform.weibo = true;\n        platform.name = \"weibo\";\n    }\n    else if ((music = ua.match(REGS.music))) {\n        platform.music = true;\n        platform.name = \"music\";\n        platform.version = music[1];\n    }\n    else if ((qzone = ua.match(REGS.qzone))) {\n        platform.qzone = true;\n        platform.name = \"qzone\";\n        platform.version = qzone[1];\n    }\n    else if ((facebook = ua.match(REGS.facebook))) {\n        platform.facebook = true;\n        platform.name = \"facebook\";\n        platform.version = facebook[1];\n    }\n    else if ((samsung = ua.match(REGS.samsung))) {\n        platform.samsung = true;\n        platform.name = \"samsung\";\n        platform.version = samsung[1];\n    }\n    else if ((pcclient = ua.match(REGS.pcclient))) {\n        platform.pcclient = true;\n        platform.name = \"pcclient\";\n        platform.version = pcclient[1];\n    }\n    else if ((instagram = ua.match(REGS.instagram))) {\n        platform.instagram = true;\n        platform.name = \"instagram\";\n        platform.version = instagram[1];\n    }\n    else {\n        delete browser.webview; // androidmusic 之类UA里包含了chrome和safari，挨个判断\n    }\n    /* Other Broswer */\n    var safariLike;\n    var xiaomi;\n    var qq;\n    var baidu;\n    if (!browser.webview &&\n        os.ios &&\n        webkit &&\n        !chrome &&\n        (safariLike = ua.match(REGS.safariLike))) {\n        browser.safari = true;\n        browser.version = safariLike[1];\n    }\n    else if (android && (xiaomi = ua.match(REGS.mi))) {\n        browser.xiaomi = true;\n        browser.version = xiaomi[1];\n    }\n    else if ((qq = ua.match(REGS.qq))) {\n        browser.qq = true;\n        var v = qq[1] || \"4.5\";\n        // ios qq browser的版本号是xxx，没有点，5.0改掉了\n        if (v.indexOf(\".\") < 0) {\n            v = v[0] + \".\" + v.substring(1);\n        }\n        browser.version = v;\n    }\n    else if ((baidu = ua.match(REGS.baidu))) {\n        browser.baidu = true;\n        browser.version = baidu[1];\n    }\n    /*\n     * 区分国际版业务\n     * ($.platform.wesing 为国际版客户端内, wesingPage为走国际版业务逻辑)\n     */\n    if (window.location && window.location.host === \"wesingapp.com\") {\n        platform.wesingPage = true;\n        platform.appName = \"WeSing\";\n    }\n    else {\n        // 非国际版显示全民K歌\n        platform.appName = \"全民K歌\";\n    }\n    device = getDevice(ua);\n    // 判断server\n    if (global &&\n        global.process &&\n        global.process.versions &&\n        global.process.versions.node) {\n        platform.server = true;\n    }\n    tmpResult = { os: os, platform: platform, browser: browser, device: device };\n    return tmpResult;\n}\nexport var webPlatform = {\n    get os() {\n        return webDetect().os;\n    },\n    get platform() {\n        return webDetect().platform;\n    },\n    get browser() {\n        return webDetect().browser;\n    },\n    get device() {\n        return webDetect().device;\n    }\n};\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport canUseDom from \"./canUseDom\";\nimport contains from \"./contains\";\nvar APPEND_ORDER = 'data-rc-order';\nvar APPEND_PRIORITY = 'data-rc-priority';\nvar MARK_KEY = \"rc-util-key\";\nvar containerCache = new Map();\nfunction getMark() {\n  var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n    mark = _ref.mark;\n  if (mark) {\n    return mark.startsWith('data-') ? mark : \"data-\".concat(mark);\n  }\n  return MARK_KEY;\n}\nfunction getContainer(option) {\n  if (option.attachTo) {\n    return option.attachTo;\n  }\n  var head = document.querySelector('head');\n  return head || document.body;\n}\nfunction getOrder(prepend) {\n  if (prepend === 'queue') {\n    return 'prependQueue';\n  }\n  return prepend ? 'prepend' : 'append';\n}\n\n/**\n * Find style which inject by rc-util\n */\nfunction findStyles(container) {\n  return Array.from((containerCache.get(container) || container).children).filter(function (node) {\n    return node.tagName === 'STYLE';\n  });\n}\nexport function injectCSS(css) {\n  var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n  if (!canUseDom()) {\n    return null;\n  }\n  var csp = option.csp,\n    prepend = option.prepend,\n    _option$priority = option.priority,\n    priority = _option$priority === void 0 ? 0 : _option$priority;\n  var mergedOrder = getOrder(prepend);\n  var isPrependQueue = mergedOrder === 'prependQueue';\n  var styleNode = document.createElement('style');\n  styleNode.setAttribute(APPEND_ORDER, mergedOrder);\n  if (isPrependQueue && priority) {\n    styleNode.setAttribute(APPEND_PRIORITY, \"\".concat(priority));\n  }\n  if (csp !== null && csp !== void 0 && csp.nonce) {\n    styleNode.nonce = csp === null || csp === void 0 ? void 0 : csp.nonce;\n  }\n  styleNode.innerHTML = css;\n  var container = getContainer(option);\n  var firstChild = container.firstChild;\n  if (prepend) {\n    // If is queue `prepend`, it will prepend first style and then append rest style\n    if (isPrependQueue) {\n      var existStyle = (option.styles || findStyles(container)).filter(function (node) {\n        // Ignore style which not injected by rc-util with prepend\n        if (!['prepend', 'prependQueue'].includes(node.getAttribute(APPEND_ORDER))) {\n          return false;\n        }\n\n        // Ignore style which priority less then new style\n        var nodePriority = Number(node.getAttribute(APPEND_PRIORITY) || 0);\n        return priority >= nodePriority;\n      });\n      if (existStyle.length) {\n        container.insertBefore(styleNode, existStyle[existStyle.length - 1].nextSibling);\n        return styleNode;\n      }\n    }\n\n    // Use `insertBefore` as `prepend`\n    container.insertBefore(styleNode, firstChild);\n  } else {\n    container.appendChild(styleNode);\n  }\n  return styleNode;\n}\nfunction findExistNode(key) {\n  var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n  var container = getContainer(option);\n  return (option.styles || findStyles(container)).find(function (node) {\n    return node.getAttribute(getMark(option)) === key;\n  });\n}\nexport function removeCSS(key) {\n  var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n  var existNode = findExistNode(key, option);\n  if (existNode) {\n    var container = getContainer(option);\n    container.removeChild(existNode);\n  }\n}\n\n/**\n * qiankun will inject `appendChild` to insert into other\n */\nfunction syncRealContainer(container, option) {\n  var cachedRealContainer = containerCache.get(container);\n\n  // Find real container when not cached or cached container removed\n  if (!cachedRealContainer || !contains(document, cachedRealContainer)) {\n    var placeholderStyle = injectCSS('', option);\n    var parentNode = placeholderStyle.parentNode;\n    containerCache.set(container, parentNode);\n    container.removeChild(placeholderStyle);\n  }\n}\n\n/**\n * manually clear container cache to avoid global cache in unit testes\n */\nexport function clearContainerCache() {\n  containerCache.clear();\n}\nexport function updateCSS(css, key) {\n  var originOption = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  var container = getContainer(originOption);\n  var styles = findStyles(container);\n  var option = _objectSpread(_objectSpread({}, originOption), {}, {\n    styles: styles\n  });\n\n  // Sync real parent\n  syncRealContainer(container, option);\n  var existNode = findExistNode(key, option);\n  if (existNode) {\n    var _option$csp, _option$csp2;\n    if ((_option$csp = option.csp) !== null && _option$csp !== void 0 && _option$csp.nonce && existNode.nonce !== ((_option$csp2 = option.csp) === null || _option$csp2 === void 0 ? void 0 : _option$csp2.nonce)) {\n      var _option$csp3;\n      existNode.nonce = (_option$csp3 = option.csp) === null || _option$csp3 === void 0 ? void 0 : _option$csp3.nonce;\n    }\n    if (existNode.innerHTML !== css) {\n      existNode.innerHTML = css;\n    }\n    return existNode;\n  }\n  var newNode = injectCSS(css, option);\n  newNode.setAttribute(getMark(option), key);\n  return newNode;\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n  if (r) {\n    if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n    var t = {}.toString.call(r).slice(8, -1);\n    return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n  }\n}\nexport { _unsupportedIterableToArray as default };","/** A function that accepts a potential \"extra argument\" value to be injected later,\r\n * and returns an instance of the thunk middleware that uses that value\r\n */\nfunction createThunkMiddleware(extraArgument) {\n  // Standard Redux middleware definition pattern:\n  // See: https://redux.js.org/tutorials/fundamentals/part-4-store#writing-custom-middleware\n  var middleware = function middleware(_ref) {\n    var dispatch = _ref.dispatch,\n        getState = _ref.getState;\n    return function (next) {\n      return function (action) {\n        // The thunk middleware looks for any functions that were passed to `store.dispatch`.\n        // If this \"action\" is really a function, call it and return the result.\n        if (typeof action === 'function') {\n          // Inject the store's `dispatch` and `getState` methods, as well as any \"extra arg\"\n          return action(dispatch, getState, extraArgument);\n        } // Otherwise, pass the action down the middleware chain as usual\n\n\n        return next(action);\n      };\n    };\n  };\n\n  return middleware;\n}\n\nvar thunk = createThunkMiddleware(); // Attach the factory function so users can create a customized version\n// with whatever \"extra arg\" they want to inject into their thunks\n\nthunk.withExtraArgument = createThunkMiddleware;\nexport default thunk;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _wrapNativeSuper from \"@babel/runtime/helpers/esm/wrapNativeSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\n/* eslint no-console:0 */\n\nvar formatRegExp = /%[sdj%]/g;\nexport var warning = function warning() {};\n\n// don't print warning message when in production env or node runtime\nif (typeof process !== 'undefined' && process.env && process.env.NODE_ENV !== 'production' && typeof window !== 'undefined' && typeof document !== 'undefined') {\n  warning = function warning(type, errors) {\n    if (typeof console !== 'undefined' && console.warn && typeof ASYNC_VALIDATOR_NO_WARNING === 'undefined') {\n      if (errors.every(function (e) {\n        return typeof e === 'string';\n      })) {\n        console.warn(type, errors);\n      }\n    }\n  };\n}\nexport function convertFieldsError(errors) {\n  if (!errors || !errors.length) return null;\n  var fields = {};\n  errors.forEach(function (error) {\n    var field = error.field;\n    fields[field] = fields[field] || [];\n    fields[field].push(error);\n  });\n  return fields;\n}\nexport function format(template) {\n  for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n    args[_key - 1] = arguments[_key];\n  }\n  var i = 0;\n  var len = args.length;\n  if (typeof template === 'function') {\n    // eslint-disable-next-line prefer-spread\n    return template.apply(null, args);\n  }\n  if (typeof template === 'string') {\n    var str = template.replace(formatRegExp, function (x) {\n      if (x === '%%') {\n        return '%';\n      }\n      if (i >= len) {\n        return x;\n      }\n      switch (x) {\n        case '%s':\n          return String(args[i++]);\n        case '%d':\n          return Number(args[i++]);\n        case '%j':\n          try {\n            return JSON.stringify(args[i++]);\n          } catch (_) {\n            return '[Circular]';\n          }\n          break;\n        default:\n          return x;\n      }\n    });\n    return str;\n  }\n  return template;\n}\nfunction isNativeStringType(type) {\n  return type === 'string' || type === 'url' || type === 'hex' || type === 'email' || type === 'date' || type === 'pattern';\n}\nexport function isEmptyValue(value, type) {\n  if (value === undefined || value === null) {\n    return true;\n  }\n  if (type === 'array' && Array.isArray(value) && !value.length) {\n    return true;\n  }\n  if (isNativeStringType(type) && typeof value === 'string' && !value) {\n    return true;\n  }\n  return false;\n}\nexport function isEmptyObject(obj) {\n  return Object.keys(obj).length === 0;\n}\nfunction asyncParallelArray(arr, func, callback) {\n  var results = [];\n  var total = 0;\n  var arrLength = arr.length;\n  function count(errors) {\n    results.push.apply(results, _toConsumableArray(errors || []));\n    total++;\n    if (total === arrLength) {\n      callback(results);\n    }\n  }\n  arr.forEach(function (a) {\n    func(a, count);\n  });\n}\nfunction asyncSerialArray(arr, func, callback) {\n  var index = 0;\n  var arrLength = arr.length;\n  function next(errors) {\n    if (errors && errors.length) {\n      callback(errors);\n      return;\n    }\n    var original = index;\n    index = index + 1;\n    if (original < arrLength) {\n      func(arr[original], next);\n    } else {\n      callback([]);\n    }\n  }\n  next([]);\n}\nfunction flattenObjArr(objArr) {\n  var ret = [];\n  Object.keys(objArr).forEach(function (k) {\n    ret.push.apply(ret, _toConsumableArray(objArr[k] || []));\n  });\n  return ret;\n}\nexport var AsyncValidationError = /*#__PURE__*/function (_Error) {\n  _inherits(AsyncValidationError, _Error);\n  var _super = _createSuper(AsyncValidationError);\n  function AsyncValidationError(errors, fields) {\n    var _this;\n    _classCallCheck(this, AsyncValidationError);\n    _this = _super.call(this, 'Async Validation Error');\n    _defineProperty(_assertThisInitialized(_this), \"errors\", void 0);\n    _defineProperty(_assertThisInitialized(_this), \"fields\", void 0);\n    _this.errors = errors;\n    _this.fields = fields;\n    return _this;\n  }\n  return _createClass(AsyncValidationError);\n}( /*#__PURE__*/_wrapNativeSuper(Error));\nexport function asyncMap(objArr, option, func, callback, source) {\n  if (option.first) {\n    var _pending = new Promise(function (resolve, reject) {\n      var next = function next(errors) {\n        callback(errors);\n        return errors.length ? reject(new AsyncValidationError(errors, convertFieldsError(errors))) : resolve(source);\n      };\n      var flattenArr = flattenObjArr(objArr);\n      asyncSerialArray(flattenArr, func, next);\n    });\n    _pending.catch(function (e) {\n      return e;\n    });\n    return _pending;\n  }\n  var firstFields = option.firstFields === true ? Object.keys(objArr) : option.firstFields || [];\n  var objArrKeys = Object.keys(objArr);\n  var objArrLength = objArrKeys.length;\n  var total = 0;\n  var results = [];\n  var pending = new Promise(function (resolve, reject) {\n    var next = function next(errors) {\n      // eslint-disable-next-line prefer-spread\n      results.push.apply(results, errors);\n      total++;\n      if (total === objArrLength) {\n        callback(results);\n        return results.length ? reject(new AsyncValidationError(results, convertFieldsError(results))) : resolve(source);\n      }\n    };\n    if (!objArrKeys.length) {\n      callback(results);\n      resolve(source);\n    }\n    objArrKeys.forEach(function (key) {\n      var arr = objArr[key];\n      if (firstFields.indexOf(key) !== -1) {\n        asyncSerialArray(arr, func, next);\n      } else {\n        asyncParallelArray(arr, func, next);\n      }\n    });\n  });\n  pending.catch(function (e) {\n    return e;\n  });\n  return pending;\n}\nfunction isErrorObj(obj) {\n  return !!(obj && obj.message !== undefined);\n}\nfunction getValue(value, path) {\n  var v = value;\n  for (var i = 0; i < path.length; i++) {\n    if (v == undefined) {\n      return v;\n    }\n    v = v[path[i]];\n  }\n  return v;\n}\nexport function complementError(rule, source) {\n  return function (oe) {\n    var fieldValue;\n    if (rule.fullFields) {\n      fieldValue = getValue(source, rule.fullFields);\n    } else {\n      fieldValue = source[oe.field || rule.fullField];\n    }\n    if (isErrorObj(oe)) {\n      oe.field = oe.field || rule.fullField;\n      oe.fieldValue = fieldValue;\n      return oe;\n    }\n    return {\n      message: typeof oe === 'function' ? oe() : oe,\n      fieldValue: fieldValue,\n      field: oe.field || rule.fullField\n    };\n  };\n}\nexport function deepMerge(target, source) {\n  if (source) {\n    for (var s in source) {\n      if (source.hasOwnProperty(s)) {\n        var value = source[s];\n        if (_typeof(value) === 'object' && _typeof(target[s]) === 'object') {\n          target[s] = _objectSpread(_objectSpread({}, target[s]), value);\n        } else {\n          target[s] = value;\n        }\n      }\n    }\n  }\n  return target;\n}","import {\n  $GenerateTTSTaskReq,\n  $GenerateTTSTaskRsp,\n  $GetSpkListReq,\n  $GetSpkListRsp,\n  $QueryTTSTaskReq,\n  $QueryTTSTaskRsp,\n  $TTSTaskRes,\n  tts_basic,\n} from \"jce/qqmusic/tianqin_tts/TTS_Basic.jce?emit=module\";\nimport { requestAvatar } from \"library/h5/requestAvatar\";\nimport { RootStore, useAppDispatch } from \"projects/ttsMake/slices\";\nimport { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport { CardGroup, Col, Row, Container, ListGroup, Button, Overlay } from \"react-bootstrap\";\nimport FloatingLabel from \"react-bootstrap/FloatingLabel\";\nimport Form from \"react-bootstrap/Form\";\nimport { useSelector } from \"react-redux\";\nimport { poll } from \"projects/aiSong/utils\";\nimport Loading from \"projects/aiSong/components/Loading\";\nimport {\n  getCursorChar,\n  getFileExtension,\n  insertContentAtCursor,\n  isAllChinese,\n  restoreCursorSelection,\n  saveCursorSelection,\n} from \"projects/ttsGround/util\";\nimport { polyphonic, pinyin } from \"pinyin-pro\";\nimport { SERVER_URL, soundGroups } from \"../../../constants\";\nimport { Tabs, Tab } from \"react-tabs-scrollable\";\nimport \"react-tabs-scrollable/dist/rts.css\";\nimport __MOCK__ from \"./__MOCK__\";\nimport { cutsplitContent, getMMSS } from \"projects/ttsMake/utils\";\nimport VoiceItem from \"../../common/VoiceItem\";\nimport {\n  audioMerge,\n  getMyTimbres,\n  getTTSTimbreListWithGroup,\n  getTimbreGroups,\n  sercurityCheck,\n  textToSound,\n} from \"projects/ttsMake/slices/home\";\nimport { QueryAudioMerge, TextToSound } from \"projects/ttsMake/api/main-land\";\nimport AudioPlayer from \"../../common/AudioPlayer\";\nimport icPause from \"../../../assets/img/ic-play-48_48.png\";\nimport icPlay from \"../../../assets/img/ic-pause-48_48.png\";\nimport { on } from \"library/common/event\";\nimport { TTS_TEXTS } from \"projects/ttsMake/constants/random-texts\";\nimport { Empty, message } from \"antd\";\n\nlet selectionDetails: any = null;\nconst PlaceholderTexts = [\"随机生成\"]; // \"琴语TTS是一款先进的文本到语音转换工具\",\n\nconst MainLand = () => {\n  const dispatch = useAppDispatch();\n  // const token = useSelector((rootState: RootStore) => rootState?.home?.token);\n  // const userId = useSelector((rootState: RootStore) => rootState?.home?.user_id);\n  const [audioInfo, setAudoInfo] = useState({} as unknown as $TTSTaskRes);\n  // const [soundList, setSoundList] = useState(__MOCK__ as tts_basic.$SpkInfo[]);\n  const soundListLoadedRef = useRef<boolean>(false);\n  const [currSoundIndex, setCurrSoundIndex] = useState(\"\");\n  const [content, setContent] = useState(\"\"); // 好的啊，我们打的去吗\n  const [resultContent, setResultContent] = useState(\"\");\n  const [contentErrorAlert, setContentErrorAlert] = useState(false);\n  const [isGenerating, setGenerating] = useState(false);\n  const [limit, setLimit] = useState(2000);\n  const [isClickPNBtn, setClickPNBtn] = useState(false); // 点击注音，光标不能消失\n  const clickPnBtnRef = useRef(false);\n  const editableRef = useRef<HTMLDivElement>(null);\n  const placeholderInputRef = useRef<HTMLDivElement>(null);\n  const phoneticNotationBtnRef = useRef<HTMLDivElement>(null);\n  const [pnChoices, setPnChoices] = useState([] as any[]);\n  const [phoneticTargetErr, setPhoneticTargetErr] = useState(false);\n  const pinyinCharsRef = useRef<\n    {\n      char: string;\n      index: number;\n      pinyinNum: number;\n      pinyin: string;\n      indexInGlobal: number;\n    }[]\n  >([]); // 拼音数组\n  const currCursorIndex = useRef({\n    char: \"\",\n    index: -1,\n    pinyinNum: -1,\n    pinyin: \"\",\n    indexInGlobal: -1,\n  });\n  const [activeTab, setActiveTab] = useState(0);\n  const securityTaskIdRef = useRef<string>(\"\");\n  const [iseditableDivFocus, setEditableDivFocus] = useState(false);\n  const subAudioListRef = useRef<{ subContent: string; url: string; audio: HTMLAudioElement }[]>([]);\n  const dlCursorRef = useRef<number>(0);\n  const audioPlayerRef = useRef<AudioPlayer>(new AudioPlayer());\n  const [playingState, setPlayingState] = useState(1);\n  const [playStart, setPlayStart] = useState(false);\n  const [audioMergedUrl, setAudioMergedUrl] = useState(\"\"); // 完成合成后的url\n  const myTimbres = useSelector((rootState: RootStore) => rootState?.home?.myTimbres);\n  const isPlaceholderNodeRemoved = useRef<boolean>(false);\n  // const soundMap = useMemo(() => {\n  //   const resultMap: Record<string, tts_basic.$SpkInfo[]> = {};\n  //   soundList.forEach((sound) => {\n  //     if (!resultMap[sound.spk_group]) {\n  //       resultMap[sound.spk_group] = [] as tts_basic.$SpkInfo[];\n  //     }\n  //     resultMap[sound.spk_group].push(sound);\n  //   });\n  //   return resultMap;\n  // }, [soundList]);\n  const soundList = useSelector((rootState: RootStore) => {\n    // if (soundGroups[activeTab]?.type === \"mine\") {\n    //   return myTimbres;\n    // } else {\n    return rootState.home.ttsTimbrelist;\n    // }\n  });\n  console.log(\"====== soundList:\", soundList);\n  const selectedSound = useSelector((rootState: RootStore) => rootState.home.selectedSound);\n  console.log(\"====== selectedSound:\", selectedSound);\n\n  const groups = useSelector((rootState: RootStore) => rootState?.home?.timbreGroup);\n  const [totalAudioDuration, setTotalAudioDuration] = useState(0);\n  const [currentDuration, setCurrentDuration] = useState(0);\n\n  const timing = useCallback((currentDuration: number) => {\n    setTimeout(() => {\n      setCurrentDuration((currentDuration || 0) + 1);\n      console.log(\"===== currentDuration:\", currentDuration);\n      if (audioPlayerRef.current.totalDuraion > (currentDuration || 0) && audioPlayerRef.current.playState === \"play\") {\n        timing((currentDuration || 0) + 1);\n      }\n    }, 1000);\n  }, []);\n\n  const getResultContent = useCallback(() => {\n    const childNodes = (editableRef?.current as any)?.childNodes;\n    console.log(\"getResultContent:\", childNodes);\n    let resContent = \"\";\n    const fixedPhoneWord: string[] = [];\n    childNodes.forEach((node: any) => {\n      if (node.nodeType === Node.TEXT_NODE) {\n        resContent = `${resContent}${node.textContent}`;\n      } else if (\n        !(\n          node?.nodeType === Node.ELEMENT_NODE &&\n          (node.classList.contains(\"pinyin\") || node.classList.contains(\"tts-input-placeholder\"))\n        )\n      ) {\n        resContent = `${resContent}${node.innerText}`;\n      } else if (node) {\n        fixedPhoneWord.push(node.getAttribute(\"data\"));\n      }\n    });\n    console.log(\"result content:\", resContent);\n    setResultContent(resContent);\n    return [resContent, fixedPhoneWord];\n  }, []);\n\n  /**\n   * 根据限制截取长度，避免过长\n   */\n  const getLimitVisibleContent = useCallback(() => {\n    const childNodes = (editableRef?.current as any)?.childNodes;\n    console.log(\"getLimitVisibleContent getResultContent:\", childNodes);\n    let visibleResContent = \"\";\n    let resContent = \"\";\n    // eslint-disable-next-line @typescript-eslint/prefer-for-of\n    for (let i = 0; i < childNodes.length; i++) {\n      const node = childNodes[i];\n      let availLength = limit - resContent.length; // 剩余可用长度\n      if (availLength <= 0) {\n        break;\n      }\n      if (node.nodeType === Node.TEXT_NODE) {\n        let availContent = node.textContent;\n        if (node.textContent.length > availLength) {\n          availContent = node.textContent.substring(0, availLength);\n        }\n        resContent = `${resContent}${availContent}`;\n        visibleResContent = `${visibleResContent}${availContent}`;\n      } else if (node?.nodeType === Node.ELEMENT_NODE && node.classList.contains(\"pinyin\")) {\n        visibleResContent = `${visibleResContent}${node.outerHTML}`;\n      } else {\n        let availContent = node.innerText;\n        if (node.innerText.length > availLength) {\n          availContent = node.innerText.substring(0, availLength);\n        }\n        resContent = `${resContent}${availContent}`;\n        visibleResContent = `${visibleResContent}${availContent}`;\n      }\n    }\n    setResultContent(resContent);\n    console.log(\"result content:\", resContent, \" ----- visibleResContent:\", visibleResContent);\n    editableRef.current && (editableRef.current.innerHTML = visibleResContent);\n    isPlaceholderNodeRemoved.current = true;\n    return visibleResContent;\n  }, [limit]);\n\n  const getSoundItemById = (id: string) => {\n    return soundList?.find((item) => item?.timbre_mid === id);\n  };\n\n  const submitSubContent = async () => {\n    return new Promise((r, rej) => {\n      dispatch(\n        textToSound({\n          request_key: `${Date.now()}`,\n          user_id: \"\",\n          security_task_id: securityTaskIdRef.current,\n          param: {\n            text: audioPlayerRef.current?.getCurrentContent?.(), // subAudioListRef.current[dlCursorRef.current]?.subContent,\n            spk_mid: selectedSound?.timbre_mid || \"\",\n            version_tag: \"version3Live\",\n            fixed_phone_word: [],\n          },\n        }),\n      )\n        .then((res) => {\n          console.log(\n            \"TextToSound===>\",\n            res,\n            \" audio url:\",\n            res?.payload?.data?.data?.url,\n            \" taskid:\",\n            res?.payload?.data?.data?.task_id,\n            \" securityTaskIdRef.current:\",\n            securityTaskIdRef.current,\n          );\n          if (res?.payload?.code === 0 && res?.payload?.data?.data?.task_id !== securityTaskIdRef.current) {\n            rej(new Error(\"!!!音色切换，取消前一次请求...\"));\n            return;\n          }\n          if (res?.payload?.data?.code === 30012) {\n            message.error(\"当前使用人数较多，请稍后再试！！！\");\n            setGenerating(false);\n            rej(new Error(\"!!!服务超时\"));\n            return;\n          } else if (res?.payload?.data?.code !== 0) {\n            message.warning(`系统繁忙，请稍后重试！！！【code: ${res.payload?.data?.code}】`);\n            setGenerating(false);\n            rej(new Error(\"!!!系统错误\"));\n            return;\n          }\n          audioPlayerRef.current.newSubAudio(\n            res?.payload?.data?.data?.url,\n            Math.ceil(Number(res?.payload?.data?.data?.duration)),\n          );\n          r({});\n        })\n        .catch(() => {\n          setGenerating(false);\n        });\n    });\n  };\n\n  const promiseSeries = () => {\n    submitSubContent()\n      .then((res) => {\n        if (!audioPlayerRef.current.isDownloadFinished()) {\n          audioPlayerRef.current.setDlCursorNext();\n          promiseSeries();\n        } else {\n          console.log(\"is downloaded......\");\n          // setGenerating(false);\n          mergeAudioCb(false); // 分片段生成结束后自动合并\n        }\n      })\n      .catch((e) => {\n        console.warn(e);\n      });\n  };\n\n  const submit = async () => {\n    console.log(\"submit isGenerating:\", isGenerating);\n    if (isGenerating) {\n      return;\n    }\n    const [resultContent, fixed_phone_word] = getResultContent();\n    if (!resultContent) {\n      message.error(\"内容不能为空\");\n      return;\n    }\n    if (!selectedSound?.timbre_mid) {\n      message.error(\"请先选择音色\");\n      return;\n    }\n    setGenerating(true);\n    console.log(\"submit fixed_phone_word:\", fixed_phone_word, \" resultContent:\", resultContent);\n    const results = cutsplitContent({ content: resultContent as string });\n    // for (let i = 0; i < results.length; i++) {\n    //   console.log(`!!!!!!sub splitContent ${i}:`, results[i], \" length:\", results[i].length);\n    // }\n    // console.log(\"!!!!!!cutsplitContent results:\", results);\n    // return;\n    let onlyReadContent = \"\";\n    results.forEach((content, index) => {\n      onlyReadContent = `${onlyReadContent}<span id=\"readpart-${index}\">${content}</span>`;\n    });\n    editableRef.current && (editableRef.current.innerHTML = onlyReadContent);\n    isPlaceholderNodeRemoved.current = true;\n    audioPlayerRef.current.init({ contents: results });\n    dispatch(\n      sercurityCheck({\n        full_text: resultContent as string,\n        section_text: results,\n        timbre_mid: selectedSound?.timbre_mid,\n      }),\n    ).then((res) => {\n      console.log(\"sercurityCheck:::, \", res.payload);\n      if (res.payload?.code === 0 && res.payload?.data?.code === 0) {\n        securityTaskIdRef.current = res.payload?.data?.data?.task_id;\n        promiseSeries();\n        return;\n      } else if (res.payload?.data?.code === 50016) {\n        message.error(`请注意输入文本有敏感词，请检查!【code: ${res.payload?.data?.code}】`);\n      } else {\n        message.error(`系统有误，请稍后再试!【code: ${res.payload?.data?.code}】`);\n      }\n      setGenerating(false);\n    });\n  };\n\n  const reGenerate = () => {\n    securityTaskIdRef.current = \"\"; // 先重置taskid，避免更新不及时导致音频播放串播\n    audioPlayerRef.current.pause();\n    setPlayStart(false);\n    audioPlayerRef.current = new AudioPlayer();\n    setPlayingState(1);\n    submit();\n  };\n\n  const audioPlayToggle = () => {\n    audioPlayerRef.current.toggle();\n    setPlayingState(playingState + 1);\n    if (audioPlayerRef.current.playState === \"play\") {\n      if (audioPlayerRef.current.playCursor === 0) {\n        timing(0);\n      } else {\n        timing(currentDuration);\n      }\n    }\n  };\n\n  const queryTtsResult = async (task_id: string, needDl?: boolean) => {\n    poll(async () => {\n      try {\n        const res: any = await QueryAudioMerge({ task_id });\n        console.log(\"poll mergeAudio:\", res);\n        if (res?.data?.data?.task_id !== securityTaskIdRef.current) {\n          console.warn(\"!!!音色切换，取消前一次合并音频展示\");\n          return false;\n        }\n        if (res?.code === 0 && res.data?.data?.url) {\n          if (needDl) {\n            downloadFile(res.data?.data?.url);\n          }\n          setAudioMergedUrl(res.data?.data?.url);\n          return false;\n        } else if (res?.code === 0 && (res?.data?.code === 0 || res?.data?.code === -1)) {\n          return 500;\n        } else {\n          message.error(`系统有误，请重试!【code: ${res?.data?.code}】`);\n          return false;\n        }\n      } catch (err) {\n        // Loading.hide();\n        message.error(\"系统错误，请重试!\");\n        return false;\n      }\n    });\n  };\n\n  const mergeAudioCb = (needDl?: boolean) => {\n    const [resultContent, fixed_phone_word] = getResultContent();\n    if (!resultContent) {\n      return;\n    }\n    dispatch(\n      audioMerge({\n        task_id: securityTaskIdRef.current,\n        url_list: audioPlayerRef.current.getAllUrlList(),\n        full_text: resultContent as string,\n      }),\n    )\n      .then((res: any) => {\n        if (res?.payload?.code === 0 && res?.payload?.data?.code === 0) {\n          queryTtsResult(res?.payload?.data?.data?.task_id, needDl);\n        } else {\n          message.error(`系统有误，请重试!【code: ${res?.payload?.data?.code}】`);\n          setGenerating(false);\n        }\n      })\n      .catch(() => {\n        setGenerating(false);\n      });\n  };\n\n  const downloadCb = () => {\n    if (audioMergedUrl) {\n      downloadFile(audioMergedUrl);\n    } else {\n      mergeAudioCb(true);\n    }\n  };\n\n  const chooseSound = (index: string) => {\n    setCurrSoundIndex(index);\n  };\n\n  const showPhoneticNotations = useCallback(() => {\n    console.log(\"showPhoneticNotations====\");\n    // editableRef?.current?.focus();\n    const [char, leftStr] = getCursorChar(editableRef?.current) || [];\n    if (!char) return;\n    if (!isAllChinese(char)) {\n      // 判断是否中文字符\n      setPhoneticTargetErr(true);\n    }\n    // setClickPNBtn(true);\n    console.log(\"cursor char:\", char);\n    // editableRef?.current?.focus();\n    const [results] = polyphonic(char!, { type: \"all\" });\n    const [allpinyinNum] = polyphonic(char, { toneType: \"num\", type: \"array\" });\n    results.forEach((item: any, index) => {\n      item.pinyinNum = allpinyinNum[index];\n    });\n    const justpinyin = pinyin(char, { toneType: \"none\" });\n    console.log(\"results: \", results, \" allpinyinNum:\", allpinyinNum);\n    setPnChoices(results);\n    console.log(\"===leftStr:\", leftStr);\n    currCursorIndex.current.index = (leftStr.match(new RegExp(char, \"g\"))?.length || 0) - 1;\n    currCursorIndex.current.char = char;\n    // currCursorIndex.\n    // currCursorIndex.current.pinyin = justpinyin;\n    console.log(\"currCursorIndex:\", currCursorIndex.current);\n  }, []);\n\n  const choosePhoneticNotation = useCallback((item) => {\n    const { char, index } = currCursorIndex?.current || {};\n    insertContentAtCursor(\n      `<span class=\"pinyin\" contenteditable=\"false\" data=\"${`${char}:${index}:${item.pinyinNum}`}\">${\n        item.pinyin\n      }</span>`,\n    );\n    // const currCharPnData = `${char}:${index}:${item.pinyinNum}`;\n    setPnChoices([]);\n    // fixed_phone_word.push(currCharPnData);\n    // setFixed_phone_word(fixed_phone_word);\n    // getResultContent();\n  }, []);\n\n  function downloadFile(fileUrl: string) {\n    const urlSplitParts = fileUrl?.split(\".\");\n    const suffix = urlSplitParts[urlSplitParts.length - 1];\n    console.log(\"downloadFile suffix:\", suffix);\n    fetch(fileUrl)\n      .then((response) => response.blob())\n      .then((blob) => {\n        const url = window.URL.createObjectURL(blob);\n        const a = document.createElement(\"a\");\n        a.style.display = \"none\";\n        a.href = url;\n        a.download = `audiofile_${Date.now()}.${suffix}`;\n        document.body.appendChild(a);\n        a.click();\n        window.URL.revokeObjectURL(url);\n        document.body.removeChild(a);\n      })\n      .catch((e) => console.error(e));\n  }\n\n  const downloadAudio = () => {\n    console.log(\"downloading:\", audioInfo?.cos_url);\n    downloadFile(audioInfo?.cos_url);\n  };\n\n  const phoneticNotationBtnclickCb = useCallback(\n    (event: any) => {\n      // 获取可编辑的 div 元素\n      const editableDiv = editableRef?.current;\n      console.log(\"zhuyin mousedown event:\", event);\n      if (clickPnBtnRef.current) {\n        clickPnBtnRef.current = false;\n        return;\n      }\n      clickPnBtnRef.current = true;\n      // 检查点击的目标是否是外部按钮或链接\n      // if (event.target.hasClass(\"phoneticNotationBtn\")) {\n      // 阻止默认行为和事件冒泡\n      event.preventDefault();\n      event.stopPropagation();\n      selectionDetails = saveCursorSelection();\n\n      // 执行按钮点击时的操作\n      editableDiv?.focus();\n      restoreCursorSelection(selectionDetails);\n      showPhoneticNotations();\n      // }\n    },\n    [showPhoneticNotations],\n  );\n\n  const pasteCb = useCallback(\n    (event: any) => {\n      console.log(\"Paste event triggered\");\n\n      // 事件对象包含了粘贴的数据\n      const pastedData = event.clipboardData.getData(\"text/plain\");\n      console.log(\"pastedData:\", pastedData);\n\n      // 可以阻止默认的粘贴行为\n      event.preventDefault();\n      const [resContent] = getResultContent();\n      const currContentLength = resContent.length;\n      const availLength = limit - currContentLength; // 剩余可用字数\n      // 获取当前的选区\n      const sel: any = window.getSelection();\n      if (availLength > 0 || sel.rangeCount) {\n        console.log(\"sel rangeCount:\", sel?.rangeCount);\n        if (sel.rangeCount) {\n          // 清除选区中的内容\n          sel.deleteFromDocument();\n\n          // 插入新的内容\n          const range = sel.getRangeAt(0);\n          const textNode = document.createTextNode(pastedData);\n          range.insertNode(textNode);\n\n          // 粘贴后重新计算内容，避免过长\n          getLimitVisibleContent();\n          // 移动光标到插入内容之后\n          range.setStartAfter(textNode);\n          range.collapse(true);\n          sel.removeAllRanges();\n          sel.addRange(range);\n        } else {\n          const newContent = pastedData.substring(0, availLength);\n          setResultContent(`${resContent}${newContent}`); // 这里主要是为了设置实际内容值，计算字数\n          editableRef?.current?.append(newContent);\n        }\n      }\n    },\n    [getLimitVisibleContent, getResultContent, limit],\n  );\n\n  const docMouseDownCb = useCallback((event) => {\n    // 获取可编辑的 div 元素\n    const editableDiv = editableRef?.current;\n    console.log(\"doc mousedown event:\", event);\n    clickPnBtnRef.current = false;\n    setPnChoices([]);\n    setPhoneticTargetErr(false);\n    if (event.target.matches(\"#editableDiv\") || event.target.matches(\".input-placeholder\")) {\n      editableRef?.current?.focus();\n      console.log(\"editableDiv mousedown event...\");\n    }\n    // }\n  }, []);\n\n  const editableDivInputCb = useCallback(\n    (e: any) => {\n      const childNodes = e.target.childNodes;\n      console.log(\"....input:\", childNodes);\n      // eslint-disable-next-line max-nested-callbacks\n      const [resContent] = getResultContent();\n      console.log(\"resContent:\", resContent);\n      setResultContent(`${resContent}`);\n      setEditableDivFocus(true);\n    },\n    [getResultContent],\n  );\n\n  const getRandomText = (e: any, type: number) => {\n    // e.stopPo\n    console.log(\"getRandomText...\", e);\n    let objText = \"\";\n    // if (type === 0) {\n    //   objText = PlaceholderTexts[0];\n    // } else {\n    objText = TTS_TEXTS[Math.round(Math.random() * 100) % TTS_TEXTS.length];\n    // }\n    console.log(\"getRandomText objText: \", objText);\n    setContent(objText);\n    setResultContent(objText);\n    setEditableDivFocus(true);\n    // editableRef.current && (editableRef.current.innerHTML = objText);\n  };\n\n  const placeholder = () => {\n    return (\n      <div\n        className=\"tts-input-placeholder input-placeholder\"\n        style={{ display: \"flex\", flexDirection: \"column\", justifyContent: \"flex-start\", padding: 9 }}\n      >\n        <div\n          ref={placeholderInputRef}\n          contentEditable={false}\n          style={{ fontSize: 16, fontWeight: 600, lineHeight: \"36px\", color: \"#919193\" }}\n          className=\"input-placeholder\"\n        >\n          输入一段文字，点击生成后可以试听。你也可以使用以下文案快速试听：\n        </div>\n        <div>\n          {PlaceholderTexts.map((item, index) => {\n            return (\n              <div\n                className=\"input-placeholder-btn\"\n                key={index}\n                style={{\n                  fontSize: 16,\n                  fontWeight: 600,\n                  color: \"#919193\",\n                  padding: \"12px 20px\",\n                  backgroundColor: \"#F1F2F5\",\n                  borderRadius: 100,\n                  display: \"inline-block\",\n                  marginTop: 16,\n                  cursor: \"pointer\",\n                }}\n                onMouseDown={(e) => getRandomText(e, index)}\n              >\n                {item}\n              </div>\n            );\n          })}\n        </div>\n      </div>\n    );\n  };\n\n  const resultBtns = () => {\n    return (\n      <div\n        style={{\n          display: \"flex\",\n          flexDirection: \"row\",\n          justifyContent: \"space-between\",\n          alignItems: \"center\",\n          backgroundColor: \"#F1F2F5\",\n          borderRadius: 8,\n          padding: \"0 20px\",\n          width: \"calc(100% - 40px)\",\n          height: 60,\n        }}\n      >\n        <div\n          style={{ display: \"flex\", flexDirection: \"row\", justifyContent: \"center\", alignItems: \"center\" }}\n          onClick={audioPlayToggle}\n        >\n          <div style={{ width: 31, height: 31 }} className=\"flex-column-center\">\n            {playingState && audioPlayerRef?.current?.isPlaying() ? (\n              <img src={icPlay} width={31} height={31} />\n            ) : (\n              <img src={icPause} width={24} height={24} />\n            )}\n          </div>\n          <span style={{ color: \"#919193\", marginLeft: 8 }}>\n            {getMMSS(Math.min(currentDuration, audioPlayerRef.current.totalDuraion))}/\n            {getMMSS(audioPlayerRef?.current?.totalDuraion)}\n          </span>\n        </div>\n        <div style={{ display: \"flex\", flexDirection: \"row\", justifyContent: \"center\", alignItems: \"center\" }}>\n          {audioMergedUrl ? (\n            <div\n              className=\"cusor-pointer\"\n              style={{\n                padding: \"8px 14px\",\n                fontWeight: 500,\n                fontSize: 14,\n                border: \"1px solid #000\",\n                borderRadius: 100,\n              }}\n              onClick={downloadCb}\n            >\n              下载\n            </div>\n          ) : null}\n          <div\n            className=\"cusor-pointer\"\n            style={{\n              padding: \"8px 14px\",\n              fontWeight: 500,\n              fontSize: 14,\n              borderRadius: 100,\n              color: \"#fff\",\n              backgroundImage: \"linear-gradient(180deg, #2F00FF 0%, rgba(92, 34, 255, 0.90) 90.83%, #984EFF 100%)\",\n              marginLeft: 20,\n            }}\n            onClick={reGenerate}\n          >\n            重新生成\n          </div>\n        </div>\n      </div>\n    );\n  };\n\n  const editableDivBlurCb = useCallback(() => {\n    setEditableDivFocus(false);\n  }, []);\n\n  const editableDivFocusCb = useCallback(() => {\n    console.log(\"focus...\");\n    setTimeout(() => {\n      editableRef?.current?.focus();\n    }, 100);\n    setEditableDivFocus(true);\n  }, []);\n\n  const placeholderInputClickCb = useCallback(() => {\n    console.log(\"placeholderInputRef mousedown...\");\n    editableRef?.current?.focus();\n  }, []);\n\n  useEffect(() => {\n    on(\"play:end\", () => {\n      console.log(\"on play:end......\");\n      setPlayingState(0); // 播放结束，状态为0\n    });\n    on(\"TotalDuration:update\", (totalDuration?: number) => {\n      setTotalAudioDuration(totalDuration || 0);\n    });\n    on(\"play:start\", () => {\n      console.log(\"play:start event, playingState:\", playingState);\n      setGenerating(false);\n      timing(0);\n      setPlayingState(playingState + 1);\n      setPlayStart(true);\n    });\n  }, []);\n\n  useEffect(() => {\n    (phoneticNotationBtnRef?.current as any)?.addEventListener(\"mousedown\", phoneticNotationBtnclickCb);\n    editableRef?.current?.addEventListener(\"paste\", pasteCb);\n    return () => {\n      phoneticNotationBtnRef?.current?.removeEventListener(\"mousedown\", phoneticNotationBtnclickCb);\n      editableRef?.current?.removeEventListener(\"paste\", pasteCb);\n    };\n  }, [pasteCb, phoneticNotationBtnclickCb, showPhoneticNotations]);\n\n  useEffect(() => {\n    setTimeout(() => {\n      console.log(\"===========\", editableRef?.current);\n      document.addEventListener(\"mousedown\", docMouseDownCb);\n      // placeholderInputRef?.current?.addEventListener(\"mousedown\", placeholderInputClickCb);\n      editableRef?.current?.addEventListener(\"input\", editableDivInputCb);\n      editableRef?.current?.addEventListener(\"blur\", editableDivBlurCb);\n      editableRef?.current?.addEventListener(\"focus\", editableDivFocusCb);\n    }, 1000);\n    return () => {\n      document.removeEventListener(\"mousedown\", docMouseDownCb);\n      editableRef?.current?.removeEventListener(\"input\", editableDivInputCb);\n      editableRef?.current?.removeEventListener(\"blur\", editableDivBlurCb);\n      editableRef?.current?.removeEventListener(\"focus\", editableDivFocusCb);\n      // placeholderInputRef?.current?.removeEventListener(\"mousedown\", placeholderInputClickCb);\n    };\n  }, [docMouseDownCb, editableDivBlurCb, editableDivFocusCb, editableDivInputCb]);\n\n  useEffect(() => {\n    dispatch(getTimbreGroups({})).then((res: any) => {\n      const groups = res.payload?.data?.data?.timbreGroups;\n      console.log(\"==== getTimbreGroups groups: \", groups);\n      dispatch(\n        getTTSTimbreListWithGroup({\n          group_id: String(groups?.[0]?.groupId),\n        }),\n      );\n    });\n  }, []);\n\n  const onTabClick = (e: any, index: number) => {\n    console.log(e, index);\n    setActiveTab(index);\n    dispatch(\n      getTTSTimbreListWithGroup({\n        group_id: String(groups[index]?.groupId),\n      }),\n    );\n  };\n\n  return (\n    <div style={{ width: \"100%\" }} className=\"mainland-wrapper\">\n      <h3 style={{ color: \"#000\", fontSize: 36, fontWeight: 600 }}>文本转语音</h3>\n      <Row className=\"justify-content-md-center tts-input-wrapper\">\n        <Col\n          className=\"editable-wrapper-col\"\n          style={{\n            display: \"flex\",\n            flexDirection: \"column\",\n            // width: 408,\n            height: 657,\n            // flexGrow: \"initial\",\n            marginTop: 50,\n          }}\n        >\n          <div style={{ position: \"relative\" }} className=\"editable-wrapper\">\n            <p\n              id=\"editableDiv\"\n              ref={editableRef}\n              placeholder=\"Leave a comment here\"\n              style={\n                getSoundItemById(selectedSound?.timbre_mid || \"\")?.timbre_mid === \"000R8OTZ0dWQh7\"\n                  ? { height: 480 }\n                  : {}\n              }\n              contentEditable={true}\n            >\n              {content}\n              {!iseditableDivFocus && !resultContent && !isPlaceholderNodeRemoved.current ? placeholder() : \"\"}\n            </p>\n            <div\n              style={{\n                position: \"absolute\",\n                left: 12,\n                bottom: 124,\n                color: \"#a7a1a1\",\n                visibility:\n                  getSoundItemById(selectedSound?.timbre_mid || \"\")?.timbre_mid === \"000R8OTZ0dWQh7\"\n                    ? \"hidden\"\n                    : \"hidden\",\n              }}\n              onClick={showPhoneticNotations}\n              ref={phoneticNotationBtnRef}\n              className=\"phoneticNotationBtn\"\n            >\n              <span className=\"pinyin-title\" contentEditable={false}>\n                注音\n              </span>\n            </div>\n            <Overlay\n              target={phoneticNotationBtnRef.current}\n              show={!!pnChoices.length && clickPnBtnRef.current}\n              placement=\"right\"\n            >\n              {({ ...props }) =>\n                phoneticTargetErr ? (\n                  <div\n                    {...props}\n                    style={{\n                      position: \"absolute\",\n                      backgroundColor: \"rgba(255, 100, 100, 0.85)\",\n                      padding: \"2px 10px\",\n                      color: \"white\",\n                      borderRadius: 3,\n                      ...props.style,\n                    }}\n                  >\n                    请选择正确字符\n                  </div>\n                ) : (\n                  <div\n                    className=\"phonetic-notation-box\"\n                    {...props}\n                    style={{\n                      marginLeft: \"4px\",\n                      color: \"#000\",\n                      display: \"flex\",\n                      ...props.style,\n                    }}\n                  >\n                    {pnChoices.length ? <div>多音字</div> : null}\n                    {pnChoices.map((item, index) => {\n                      return (\n                        <div key={index}>\n                          <button\n                            className=\"ant-btn ant-btn-default polyphonic-item text\"\n                            onClick={() => choosePhoneticNotation(item)}\n                            onMouseDown={(e) => {\n                              e.stopPropagation();\n                              console.log(\"react mouse down:\", e);\n                            }}\n                          >\n                            {item.pinyin}\n                          </button>\n                        </div>\n                      );\n                    })}\n                  </div>\n                )\n              }\n            </Overlay>\n            <div style={{ position: \"absolute\", left: 12, bottom: 98, color: \"#666\", fontSize: 16 }}>\n              当前音色 <span style={{ color: \"#000\" }}>{selectedSound?.timbre_name}</span>\n            </div>\n            <div style={{ position: \"absolute\", right: 12, bottom: 98, color: \"#a7a1a1\" }}>\n              {resultContent.length}/{limit}\n            </div>\n            <div className=\"operation-btns-wrapper\">\n              {!playStart ? (\n                <div style={{ marginTop: 12 }} className=\"submit-btn\" onClick={submit}>\n                  {isGenerating ? <div className=\"generate-loading loading\" /> : null}\n                  {isGenerating ? \"生成中\" : \"合成\"}\n                </div>\n              ) : (\n                resultBtns()\n              )}\n            </div>\n          </div>\n          <div style={{ color: \"rgba(0, 0, 0, 0.2)\", textAlign: \"center\", marginTop: 10 }}>含ai生成内容，仅供参考</div>\n        </Col>\n        <Col style={{ flex: 1 }} className=\"source-group-area\">\n          {/* <div\n              style={{\n                float: \"left\",\n                width: 2,\n                height: 100,\n                backgroundColor: \"#58563c\",\n                marginLeft: 16,\n                marginRight: 16,\n              }}\n            /> */}\n          <div style={{ marginLeft: 48, display: \"flex\", flexDirection: \"column\", flex: 1, overflow: \"hidden\" }}>\n            <Tabs activeTab={activeTab} onTabClick={onTabClick} hideNavBtns={true} navBtnStyle={{ padding: \"5px 8px\" }}>\n              {/* generating an array to loop through it  */}\n              {groups?.map((item) => <Tab key={item?.groupId}>{item?.groupName}</Tab>)}\n            </Tabs>\n            <div className=\"voice-wrapper\">\n              {soundList?.length ? (\n                soundList?.map((item, index) => {\n                  return (\n                    <VoiceItem\n                      style={{}}\n                      key={item?.timbre_mid}\n                      item={item}\n                      selectSoundId={selectedSound?.timbre_mid || \"\"}\n                      subType={String(groups[activeTab]?.groupId) === \"100001\" ? \"MINE\" : \"COMMON\"}\n                    />\n                  );\n                })\n              ) : (\n                <div style={{ display: \"flex\", flex: 1, justifyContent: \"center\", alignItems: \"center\" }}>\n                  <Empty description=\"暂无数据\" />\n                </div>\n              )}\n            </div>\n          </div>\n        </Col>\n      </Row>\n    </div>\n  );\n};\n\nexport default MainLand;\n","export function hasAddon(props) {\n  return !!(props.addonBefore || props.addonAfter);\n}\nexport function hasPrefixSuffix(props) {\n  return !!(props.prefix || props.suffix || props.allowClear);\n}\n\n// TODO: It's better to use `Proxy` replace the `element.value`. But we still need support IE11.\nfunction cloneEvent(event, target, value) {\n  // A bug report filed on WebKit's Bugzilla tracker, dating back to 2009, specifically addresses the issue of cloneNode() not copying files of <input type=\"file\"> elements.\n  // As of the last update, this bug was still marked as \"NEW,\" indicating that it might not have been resolved yet​​.\n  // https://bugs.webkit.org/show_bug.cgi?id=28123\n  var currentTarget = target.cloneNode(true);\n\n  // click clear icon\n  var newEvent = Object.create(event, {\n    target: {\n      value: currentTarget\n    },\n    currentTarget: {\n      value: currentTarget\n    }\n  });\n\n  // Fill data\n  currentTarget.value = value;\n\n  // Fill selection. Some type like `email` not support selection\n  // https://github.com/ant-design/ant-design/issues/47833\n  if (typeof target.selectionStart === 'number' && typeof target.selectionEnd === 'number') {\n    currentTarget.selectionStart = target.selectionStart;\n    currentTarget.selectionEnd = target.selectionEnd;\n  }\n  currentTarget.setSelectionRange = function () {\n    target.setSelectionRange.apply(target, arguments);\n  };\n  return newEvent;\n}\nexport function resolveOnChange(target, e, onChange, targetValue) {\n  if (!onChange) {\n    return;\n  }\n  var event = e;\n  if (e.type === 'click') {\n    // Clone a new target for event.\n    // Avoid the following usage, the setQuery method gets the original value.\n    //\n    // const [query, setQuery] = React.useState('');\n    // <Input\n    //   allowClear\n    //   value={query}\n    //   onChange={(e)=> {\n    //     setQuery((prevStatus) => e.target.value);\n    //   }}\n    // />\n\n    event = cloneEvent(e, target, '');\n    onChange(event);\n    return;\n  }\n\n  // Trigger by composition event, this means we need force change the input value\n  // https://github.com/ant-design/ant-design/issues/45737\n  // https://github.com/ant-design/ant-design/issues/46598\n  if (target.type !== 'file' && targetValue !== undefined) {\n    event = cloneEvent(e, target, targetValue);\n    onChange(event);\n    return;\n  }\n  onChange(event);\n}\nexport function triggerFocus(element, option) {\n  if (!element) return;\n  element.focus(option);\n\n  // Selection content\n  var _ref = option || {},\n    cursor = _ref.cursor;\n  if (cursor) {\n    var len = element.value.length;\n    switch (cursor) {\n      case 'start':\n        element.setSelectionRange(0, 0);\n        break;\n      case 'end':\n        element.setSelectionRange(len, len);\n        break;\n      default:\n        element.setSelectionRange(0, len);\n    }\n  }\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport { commonLocale } from \"./common\";\nvar locale = _objectSpread(_objectSpread({}, commonLocale), {}, {\n  locale: 'en_US',\n  today: 'Today',\n  now: 'Now',\n  backToToday: 'Back to today',\n  ok: 'OK',\n  clear: 'Clear',\n  month: 'Month',\n  year: 'Year',\n  timeSelect: 'select time',\n  dateSelect: 'select date',\n  weekSelect: 'Choose a week',\n  monthSelect: 'Choose a month',\n  yearSelect: 'Choose a year',\n  decadeSelect: 'Choose a decade',\n  dateFormat: 'M/D/YYYY',\n  dateTimeFormat: 'M/D/YYYY HH:mm:ss',\n  previousMonth: 'Previous month (PageUp)',\n  nextMonth: 'Next month (PageDown)',\n  previousYear: 'Last year (Control + left)',\n  nextYear: 'Next year (Control + right)',\n  previousDecade: 'Last decade',\n  nextDecade: 'Next decade',\n  previousCentury: 'Last century',\n  nextCentury: 'Next century'\n});\nexport default locale;","export var commonLocale = {\n  yearFormat: 'YYYY',\n  dayFormat: 'D',\n  cellMeridiemFormat: 'A',\n  monthBeforeYear: true\n};","const locale = {\n  placeholder: 'Select time',\n  rangePlaceholder: ['Start time', 'End time']\n};\nexport default locale;","import CalendarLocale from \"rc-picker/es/locale/en_US\";\nimport TimePickerLocale from '../../time-picker/locale/en_US';\n// Merge into a locale object\nconst locale = {\n  lang: Object.assign({\n    placeholder: 'Select date',\n    yearPlaceholder: 'Select year',\n    quarterPlaceholder: 'Select quarter',\n    monthPlaceholder: 'Select month',\n    weekPlaceholder: 'Select week',\n    rangePlaceholder: ['Start date', 'End date'],\n    rangeYearPlaceholder: ['Start year', 'End year'],\n    rangeQuarterPlaceholder: ['Start quarter', 'End quarter'],\n    rangeMonthPlaceholder: ['Start month', 'End month'],\n    rangeWeekPlaceholder: ['Start week', 'End week']\n  }, CalendarLocale),\n  timePickerLocale: Object.assign({}, TimePickerLocale)\n};\n// All settings at:\n// https://github.com/ant-design/ant-design/blob/master/components/date-picker/locale/example.json\nexport default locale;","import enUS from '../../date-picker/locale/en_US';\nexport default enUS;","import Pagination from \"rc-pagination/es/locale/en_US\";\nimport Calendar from '../calendar/locale/en_US';\nimport DatePicker from '../date-picker/locale/en_US';\nimport TimePicker from '../time-picker/locale/en_US';\nconst typeTemplate = '${label} is not a valid ${type}';\nconst localeValues = {\n  locale: 'en',\n  Pagination,\n  DatePicker,\n  TimePicker,\n  Calendar,\n  global: {\n    placeholder: 'Please select'\n  },\n  Table: {\n    filterTitle: 'Filter menu',\n    filterConfirm: 'OK',\n    filterReset: 'Reset',\n    filterEmptyText: 'No filters',\n    filterCheckall: 'Select all items',\n    filterSearchPlaceholder: 'Search in filters',\n    emptyText: 'No data',\n    selectAll: 'Select current page',\n    selectInvert: 'Invert current page',\n    selectNone: 'Clear all data',\n    selectionAll: 'Select all data',\n    sortTitle: 'Sort',\n    expand: 'Expand row',\n    collapse: 'Collapse row',\n    triggerDesc: 'Click to sort descending',\n    triggerAsc: 'Click to sort ascending',\n    cancelSort: 'Click to cancel sorting'\n  },\n  Tour: {\n    Next: 'Next',\n    Previous: 'Previous',\n    Finish: 'Finish'\n  },\n  Modal: {\n    okText: 'OK',\n    cancelText: 'Cancel',\n    justOkText: 'OK'\n  },\n  Popconfirm: {\n    okText: 'OK',\n    cancelText: 'Cancel'\n  },\n  Transfer: {\n    titles: ['', ''],\n    searchPlaceholder: 'Search here',\n    itemUnit: 'item',\n    itemsUnit: 'items',\n    remove: 'Remove',\n    selectCurrent: 'Select current page',\n    removeCurrent: 'Remove current page',\n    selectAll: 'Select all data',\n    deselectAll: 'Deselect all data',\n    removeAll: 'Remove all data',\n    selectInvert: 'Invert current page'\n  },\n  Upload: {\n    uploading: 'Uploading...',\n    removeFile: 'Remove file',\n    uploadError: 'Upload error',\n    previewFile: 'Preview file',\n    downloadFile: 'Download file'\n  },\n  Empty: {\n    description: 'No data'\n  },\n  Icon: {\n    icon: 'icon'\n  },\n  Text: {\n    edit: 'Edit',\n    copy: 'Copy',\n    copied: 'Copied',\n    expand: 'Expand',\n    collapse: 'Collapse'\n  },\n  Form: {\n    optional: '(optional)',\n    defaultValidateMessages: {\n      default: 'Field validation error for ${label}',\n      required: 'Please enter ${label}',\n      enum: '${label} must be one of [${enum}]',\n      whitespace: '${label} cannot be a blank character',\n      date: {\n        format: '${label} date format is invalid',\n        parse: '${label} cannot be converted to a date',\n        invalid: '${label} is an invalid date'\n      },\n      types: {\n        string: typeTemplate,\n        method: typeTemplate,\n        array: typeTemplate,\n        object: typeTemplate,\n        number: typeTemplate,\n        date: typeTemplate,\n        boolean: typeTemplate,\n        integer: typeTemplate,\n        float: typeTemplate,\n        regexp: typeTemplate,\n        email: typeTemplate,\n        url: typeTemplate,\n        hex: typeTemplate\n      },\n      string: {\n        len: '${label} must be ${len} characters',\n        min: '${label} must be at least ${min} characters',\n        max: '${label} must be up to ${max} characters',\n        range: '${label} must be between ${min}-${max} characters'\n      },\n      number: {\n        len: '${label} must be equal to ${len}',\n        min: '${label} must be minimum ${min}',\n        max: '${label} must be maximum ${max}',\n        range: '${label} must be between ${min}-${max}'\n      },\n      array: {\n        len: 'Must be ${len} ${label}',\n        min: 'At least ${min} ${label}',\n        max: 'At most ${max} ${label}',\n        range: 'The amount of ${label} must be between ${min}-${max}'\n      },\n      pattern: {\n        mismatch: '${label} does not match the pattern ${pattern}'\n      }\n    }\n  },\n  Image: {\n    preview: 'Preview'\n  },\n  QRCode: {\n    expired: 'QR code expired',\n    refresh: 'Refresh',\n    scanned: 'Scanned'\n  },\n  ColorPicker: {\n    presetEmpty: 'Empty',\n    transparent: 'Transparent',\n    singleColor: 'Single',\n    gradientColor: 'Gradient'\n  }\n};\nexport default localeValues;","export const sendRequestWithFetch = (data: any, cPath?: string) => {\n  const path = {\n    test: \"https://ut.y.qq.com/cgi-bin/musicu.fcg\",\n    prod: \"https://u.y.qq.com/cgi-bin/musicu.fcg\",\n  };\n  if (!data.data.module) {\n    data.data.module = \"music.TTS_Webapp.TextToSoundSvr\";\n  }\n  const isProd = true; // import.meta.env.MODE === \"prod\"; TODO: 暂时发布手动更新\n  if (isProd && data.data.method === \"GetLoginUserInfo\") {\n    // 特殊接口访问\n    // eslint-disable-next-line no-param-reassign\n    cPath = \"https://u.y.qq.com/cgi-bin/musicu.fcg\";\n  }\n  data.comm = {\n    chid: \"tts\",\n    tmeAppID: \"tts\",\n    mesh_devops: \"DevopsBase\",\n    ct: 24,\n    tmeLoginType: \"1\",\n    ...data.comm,\n  };\n  if (isProd) {\n    delete data?.comm?.mesh_devops;\n  }\n  return fetch(cPath || path[isProd ? \"prod\" : \"test\"], {\n    method: \"POST\",\n    credentials: \"include\", // 允许后台setcookie\n    headers: { \"Content-Type\": \"application/json\" },\n    body: `${JSON.stringify(data)}`,\n  })\n    .then((res) => res.json())\n    .then((res) => {\n      if (res.data.code === 1000) {\n        // 登录态过期\n        console.log(\"=== res:\", res);\n      }\n      return res;\n    });\n};\n","import { getCookie } from \"@tencent/kg-base\";\nimport {\n  $AudioMergeReq,\n  $GetMyTaskReq,\n  $GetMyTimbresReq,\n  $GetTTSTimbreListReq,\n  $GetTimbreGroupsReq,\n  $QueryAudioMergeReq,\n  $QueryAudioMergeRsp,\n  $QueryTimbreCloneReq,\n  $QueryTimbreCloneRsp,\n  $SercurityCheckReq,\n  $TextToSoundReq,\n  $TimbreCloneReq,\n  $TimbreCloneRsp,\n} from \"jce/qqmusic/tianqin_tts/TTS_Webapp.jce?emit=module\";\nimport {\n  $ParseContentReq,\n  $ParseContentRsp,\n  $SubmitTaskReq,\n  $SubmitTaskRsp,\n  $QueryTaskStatusReq,\n  $QueryTaskStatusRsp,\n  $GetTaskListReq,\n  $GetTaskListRsp,\n  $GetTaskDetailReq,\n  $GetTaskDetailRsp,\n} from \"jce/qqmusic/lyraPodcast/lyraPodcast.jce?emit=module\";\nimport { sendRequestWithFetch } from \"library/h5/requestQMusic\";\n\nexport interface GenerateAuthReq {\n  BusID: string; // 业务ID\n  FileType: string; // 文件类型后缀 .jpg/.png/.mp4\n\n  FileMD5: string; // 文件的md5\n  FileSize: number; // 文件大小\n  FileName: string; // 完整的文件名,需要带扩展名,比如.jpg/.png/.mp4\n}\n\nexport interface GenerateAuthResp {\n  ErrCode: number;\n  ErrMsg: string;\n  Bucket: string; // bucket  COS块\n  Region: string; // region  地域\n  COSPath: string; //\n  SecretKey: string; // 临时密钥secretKey\n  SecretID: string; // 临时密钥secretID\n  Token: string; // 临时密钥 token\n  Timestamp: number; // timestamp token生成时间，单位秒\n  Expired: number; // expired   token过期时间，单位秒\n\n  ObjectKey: string; // 文件对象key, 文件需要上传到的路径\n  URL: string; //\n  CDN: string; // 文件的CDN URL,业务使用\n}\n\nexport interface RequestOptions<Req = any> {\n  module: string;\n  cmd: string;\n  data: Req;\n  devopsId: number;\n  timeout?: number;\n  url?: string;\n}\n\nconst devopsId = 115052;\n\nconst request = async (data: any): Promise<any> => {\n  const res = await sendRequestWithFetch(data);\n  if (res?.data?.code === 1000) {\n    console.log(\"登录态过期。。。\");\n    window.location.href = \"#/login\";\n    return { code: 1000 };\n  }\n  return res;\n};\n\nexport async function reqLogin(code: string) {\n  const data = {\n    data: {\n      module: \"music.login.LoginServer\",\n      method: \"Login\",\n      param: {\n        ct: 24,\n        tmeAppID: \"tts\",\n        // tmeLoginType: \"1\",\n        strAppid: \"wx3a2cadc629d57d05\",\n        code,\n      },\n    },\n    comm: {\n      mesh_devops: \"DevopsBase\",\n      ct: 24,\n      tmeLoginType: \"1\",\n    },\n  };\n  return await request(data);\n}\n\nexport async function GetLoginUserInfo(params: any) {\n  const data = {\n    data: {\n      module: \"music.UserInfo.userInfoServer\",\n      method: \"GetLoginUserInfo\",\n      param: {\n        mask: 3,\n        musicid: Number(getCookie(\"musicid\")) || undefined,\n        tmeAppID: \"tts\",\n        loginType: Number(getCookie(\"loginType\")) || undefined,\n        ...params,\n      },\n    },\n    comm: {\n      mesh_devops: \"DevopsBase\",\n      ct: 23,\n      cv: 0,\n      tmeLoginType: 1,\n      tmeAppID: \"tts\",\n      uin: getCookie(\"tts_uin\"),\n      uid: 10000,\n      format: \"json\",\n      inCharset: \"utf-8\",\n      outCharset: \"utf-8\",\n      notice: 0,\n      platform: \"h5\",\n      needNewCode: 1,\n    },\n  };\n  return await request(data);\n}\n\nexport async function GetTTSTimbreListWithGroup(params: Partial<$GetTTSTimbreListReq>) {\n  const data = {\n    data: {\n      method: \"GetTTSTimbreListWithGroup\",\n      param: {\n        ...params,\n      },\n    },\n  };\n  return await request(data);\n}\n\nexport async function SercurityCheck(params: Partial<$SercurityCheckReq>) {\n  const data = {\n    data: {\n      method: \"SercurityCheck\",\n      param: {\n        ...params,\n      },\n    },\n  };\n  return await request(data);\n}\n\nexport async function TextToSound(params: Partial<$TextToSoundReq>) {\n  const data = {\n    data: {\n      method: \"TextToSound\",\n      param: {\n        ...params,\n      },\n    },\n  };\n  return await request(data);\n}\n\nexport async function AudioMerge(params: Partial<$AudioMergeReq>) {\n  const data = {\n    data: {\n      method: \"AudioMerge\",\n      param: {\n        ...params,\n      },\n    },\n  };\n  return await request(data);\n}\n\nexport async function QueryAudioMerge(params: Partial<$QueryAudioMergeReq>): Promise<$QueryAudioMergeRsp> {\n  const data = {\n    data: {\n      method: \"QueryAudioMerge\",\n      param: {\n        ...params,\n      },\n    },\n  };\n  return await request(data);\n}\n\nexport async function TimbreClone(params: Partial<$TimbreCloneReq>) {\n  const data = {\n    data: {\n      method: \"TimbreClone\",\n      param: {\n        ...params,\n      },\n    },\n  };\n  return await request(data);\n}\n\nexport async function QueryTimbreClone(params: Partial<$QueryTimbreCloneReq>): Promise<$QueryTimbreCloneRsp> {\n  const data = {\n    data: {\n      method: \"QueryTimbreClone\",\n      param: {\n        ...params,\n      },\n    },\n  };\n  return await request(data);\n}\n\nexport async function GetMyTasks(params: Partial<$GetMyTaskReq>) {\n  const data = {\n    data: {\n      method: \"GetMyTasks\",\n      param: {\n        ...params,\n      },\n    },\n  };\n  return await request(data);\n}\n\nexport async function GetMyTimbres(params: Partial<$GetMyTimbresReq>) {\n  const data = {\n    data: {\n      method: \"GetMyTimbres\",\n      param: {\n        ...params,\n      },\n    },\n  };\n  return await request(data);\n}\n\nexport async function GetTimbreGroups(params: Partial<$GetTimbreGroupsReq>) {\n  const data = {\n    data: {\n      method: \"GetTimbreGroups\",\n      param: {\n        ...params,\n      },\n    },\n  };\n  return await request(data);\n}\n\nexport async function generateAuth(params: GenerateAuthReq): Promise<GenerateAuthResp> {\n  const data = {\n    data: {\n      module: \"music.filesys.FileSystem\",\n      method: \"GenerateAuth\",\n      param: {\n        ...params,\n      },\n    },\n  };\n  return await request(data);\n}\n\nexport async function ASRTempAuth(params: any): Promise<any> {\n  const data = {\n    data: {\n      method: \"ASRTempAuth\",\n      param: {\n        ...params,\n      },\n    },\n  };\n  return await request(data);\n}\n\nexport async function ParseContent(params: $ParseContentReq): Promise<any> {\n  const data = {\n    data: {\n      module: \"music.lyraPodcast.LyraPodcastSvr\",\n      method: \"ParseContent\",\n      param: {\n        ...params,\n      },\n    },\n  };\n  return await request(data);\n}\n\nexport async function SubmitTask(params: $SubmitTaskReq): Promise<any> {\n  const data = {\n    data: {\n      module: \"music.lyraPodcast.LyraPodcastSvr\",\n      method: \"SubmitTask\",\n      param: {\n        ...params,\n      },\n    },\n  };\n  return await request(data);\n}\n\nexport async function QueryTaskStatus(params: $QueryTaskStatusReq): Promise<any> {\n  const data = {\n    data: {\n      module: \"music.lyraPodcast.LyraPodcastSvr\",\n      method: \"QueryTaskStatus\",\n      param: {\n        ...params,\n      },\n    },\n  };\n  return await request(data);\n}\n\nexport async function GetTaskList(params: $GetTaskListReq): Promise<any> {\n  const data = {\n    data: {\n      module: \"music.lyraPodcast.LyraPodcastSvr\",\n      method: \"GetTaskList\",\n      param: {\n        ...params,\n      },\n    },\n  };\n  return await request(data);\n}\n\nexport async function GetTaskDetail(params: $GetTaskDetailReq): Promise<any> {\n  const data = {\n    data: {\n      module: \"music.lyraPodcast.LyraPodcastSvr\",\n      method: \"GetTaskDetail\",\n      param: {\n        ...params,\n      },\n    },\n  };\n  return await request(data);\n}\n","function _arrayWithHoles(r) {\n  if (Array.isArray(r)) return r;\n}\nexport { _arrayWithHoles as default };","/** @license React v17.0.2\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var b=60103,c=60106,d=60107,e=60108,f=60114,g=60109,h=60110,k=60112,l=60113,m=60120,n=60115,p=60116,q=60121,r=60122,u=60117,v=60129,w=60131;\nif(\"function\"===typeof Symbol&&Symbol.for){var x=Symbol.for;b=x(\"react.element\");c=x(\"react.portal\");d=x(\"react.fragment\");e=x(\"react.strict_mode\");f=x(\"react.profiler\");g=x(\"react.provider\");h=x(\"react.context\");k=x(\"react.forward_ref\");l=x(\"react.suspense\");m=x(\"react.suspense_list\");n=x(\"react.memo\");p=x(\"react.lazy\");q=x(\"react.block\");r=x(\"react.server.block\");u=x(\"react.fundamental\");v=x(\"react.debug_trace_mode\");w=x(\"react.legacy_hidden\")}\nfunction y(a){if(\"object\"===typeof a&&null!==a){var t=a.$$typeof;switch(t){case b:switch(a=a.type,a){case d:case f:case e:case l:case m:return a;default:switch(a=a&&a.$$typeof,a){case h:case k:case p:case n:case g:return a;default:return t}}case c:return t}}}var z=g,A=b,B=k,C=d,D=p,E=n,F=c,G=f,H=e,I=l;exports.ContextConsumer=h;exports.ContextProvider=z;exports.Element=A;exports.ForwardRef=B;exports.Fragment=C;exports.Lazy=D;exports.Memo=E;exports.Portal=F;exports.Profiler=G;exports.StrictMode=H;\nexports.Suspense=I;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return y(a)===h};exports.isContextProvider=function(a){return y(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return y(a)===k};exports.isFragment=function(a){return y(a)===d};exports.isLazy=function(a){return y(a)===p};exports.isMemo=function(a){return y(a)===n};\nexports.isPortal=function(a){return y(a)===c};exports.isProfiler=function(a){return y(a)===f};exports.isStrictMode=function(a){return y(a)===e};exports.isSuspense=function(a){return y(a)===l};exports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===v||a===e||a===l||a===m||a===w||\"object\"===typeof a&&null!==a&&(a.$$typeof===p||a.$$typeof===n||a.$$typeof===g||a.$$typeof===h||a.$$typeof===k||a.$$typeof===u||a.$$typeof===q||a[0]===r)?!0:!1};\nexports.typeOf=y;\n","\"use client\";\n\nimport * as React from 'react';\nimport { TinyColor } from '@ctrl/tinycolor';\nimport { useToken } from '../theme/internal';\nconst Empty = () => {\n  const [, token] = useToken();\n  const bgColor = new TinyColor(token.colorBgBase);\n  // Dark Theme need more dark of this\n  const themeStyle = bgColor.toHsl().l < 0.5 ? {\n    opacity: 0.65\n  } : {};\n  return /*#__PURE__*/React.createElement(\"svg\", {\n    style: themeStyle,\n    width: \"184\",\n    height: \"152\",\n    viewBox: \"0 0 184 152\",\n    xmlns: \"http://www.w3.org/2000/svg\"\n  }, /*#__PURE__*/React.createElement(\"title\", null, \"empty image\"), /*#__PURE__*/React.createElement(\"g\", {\n    fill: \"none\",\n    fillRule: \"evenodd\"\n  }, /*#__PURE__*/React.createElement(\"g\", {\n    transform: \"translate(24 31.67)\"\n  }, /*#__PURE__*/React.createElement(\"ellipse\", {\n    fillOpacity: \".8\",\n    fill: \"#F5F5F7\",\n    cx: \"67.797\",\n    cy: \"106.89\",\n    rx: \"67.797\",\n    ry: \"12.668\"\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    d: \"M122.034 69.674L98.109 40.229c-1.148-1.386-2.826-2.225-4.593-2.225h-51.44c-1.766 0-3.444.839-4.592 2.225L13.56 69.674v15.383h108.475V69.674z\",\n    fill: \"#AEB8C2\"\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    d: \"M101.537 86.214L80.63 61.102c-1.001-1.207-2.507-1.867-4.048-1.867H31.724c-1.54 0-3.047.66-4.048 1.867L6.769 86.214v13.792h94.768V86.214z\",\n    fill: \"url(#linearGradient-1)\",\n    transform: \"translate(13.56)\"\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    d: \"M33.83 0h67.933a4 4 0 0 1 4 4v93.344a4 4 0 0 1-4 4H33.83a4 4 0 0 1-4-4V4a4 4 0 0 1 4-4z\",\n    fill: \"#F5F5F7\"\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    d: \"M42.678 9.953h50.237a2 2 0 0 1 2 2V36.91a2 2 0 0 1-2 2H42.678a2 2 0 0 1-2-2V11.953a2 2 0 0 1 2-2zM42.94 49.767h49.713a2.262 2.262 0 1 1 0 4.524H42.94a2.262 2.262 0 0 1 0-4.524zM42.94 61.53h49.713a2.262 2.262 0 1 1 0 4.525H42.94a2.262 2.262 0 0 1 0-4.525zM121.813 105.032c-.775 3.071-3.497 5.36-6.735 5.36H20.515c-3.238 0-5.96-2.29-6.734-5.36a7.309 7.309 0 0 1-.222-1.79V69.675h26.318c2.907 0 5.25 2.448 5.25 5.42v.04c0 2.971 2.37 5.37 5.277 5.37h34.785c2.907 0 5.277-2.421 5.277-5.393V75.1c0-2.972 2.343-5.426 5.25-5.426h26.318v33.569c0 .617-.077 1.216-.221 1.789z\",\n    fill: \"#DCE0E6\"\n  })), /*#__PURE__*/React.createElement(\"path\", {\n    d: \"M149.121 33.292l-6.83 2.65a1 1 0 0 1-1.317-1.23l1.937-6.207c-2.589-2.944-4.109-6.534-4.109-10.408C138.802 8.102 148.92 0 161.402 0 173.881 0 184 8.102 184 18.097c0 9.995-10.118 18.097-22.599 18.097-4.528 0-8.744-1.066-12.28-2.902z\",\n    fill: \"#DCE0E6\"\n  }), /*#__PURE__*/React.createElement(\"g\", {\n    transform: \"translate(149.65 15.383)\",\n    fill: \"#FFF\"\n  }, /*#__PURE__*/React.createElement(\"ellipse\", {\n    cx: \"20.654\",\n    cy: \"3.167\",\n    rx: \"2.849\",\n    ry: \"2.815\"\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    d: \"M5.698 5.63H0L2.898.704zM9.259.704h4.985V5.63H9.259z\"\n  }))));\n};\nif (process.env.NODE_ENV !== 'production') {\n  Empty.displayName = 'EmptyImage';\n}\nexport default Empty;","\"use client\";\n\nimport * as React from 'react';\nimport { useMemo } from 'react';\nimport { TinyColor } from '@ctrl/tinycolor';\nimport { useToken } from '../theme/internal';\nconst Simple = () => {\n  const [, token] = useToken();\n  const {\n    colorFill,\n    colorFillTertiary,\n    colorFillQuaternary,\n    colorBgContainer\n  } = token;\n  const {\n    borderColor,\n    shadowColor,\n    contentColor\n  } = useMemo(() => ({\n    borderColor: new TinyColor(colorFill).onBackground(colorBgContainer).toHexShortString(),\n    shadowColor: new TinyColor(colorFillTertiary).onBackground(colorBgContainer).toHexShortString(),\n    contentColor: new TinyColor(colorFillQuaternary).onBackground(colorBgContainer).toHexShortString()\n  }), [colorFill, colorFillTertiary, colorFillQuaternary, colorBgContainer]);\n  return /*#__PURE__*/React.createElement(\"svg\", {\n    width: \"64\",\n    height: \"41\",\n    viewBox: \"0 0 64 41\",\n    xmlns: \"http://www.w3.org/2000/svg\"\n  }, /*#__PURE__*/React.createElement(\"title\", null, \"Simple Empty\"), /*#__PURE__*/React.createElement(\"g\", {\n    transform: \"translate(0 1)\",\n    fill: \"none\",\n    fillRule: \"evenodd\"\n  }, /*#__PURE__*/React.createElement(\"ellipse\", {\n    fill: shadowColor,\n    cx: \"32\",\n    cy: \"33\",\n    rx: \"32\",\n    ry: \"7\"\n  }), /*#__PURE__*/React.createElement(\"g\", {\n    fillRule: \"nonzero\",\n    stroke: borderColor\n  }, /*#__PURE__*/React.createElement(\"path\", {\n    d: \"M55 12.76L44.854 1.258C44.367.474 43.656 0 42.907 0H21.093c-.749 0-1.46.474-1.947 1.257L9 12.761V22h46v-9.24z\"\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    d: \"M41.613 15.931c0-1.605.994-2.93 2.227-2.931H55v18.137C55 33.26 53.68 35 52.05 35h-40.1C10.32 35 9 33.259 9 31.137V13h11.16c1.233 0 2.227 1.323 2.227 2.928v.022c0 1.605 1.005 2.901 2.237 2.901h14.752c1.232 0 2.237-1.308 2.237-2.913v-.007z\",\n    fill: contentColor\n  }))));\n};\nif (process.env.NODE_ENV !== 'production') {\n  Simple.displayName = 'SimpleImage';\n}\nexport default Simple;","import { genStyleHooks, mergeToken } from '../../theme/internal';\n// ============================== Shared ==============================\nconst genSharedEmptyStyle = token => {\n  const {\n    componentCls,\n    margin,\n    marginXS,\n    marginXL,\n    fontSize,\n    lineHeight\n  } = token;\n  return {\n    [componentCls]: {\n      marginInline: marginXS,\n      fontSize,\n      lineHeight,\n      textAlign: 'center',\n      // 原来 &-image 没有父子结构，现在为了外层承担我们的 hashId，改成父子结构\n      [`${componentCls}-image`]: {\n        height: token.emptyImgHeight,\n        marginBottom: marginXS,\n        opacity: token.opacityImage,\n        img: {\n          height: '100%'\n        },\n        svg: {\n          maxWidth: '100%',\n          height: '100%',\n          margin: 'auto'\n        }\n      },\n      [`${componentCls}-description`]: {\n        color: token.colorTextDescription\n      },\n      // 原来 &-footer 没有父子结构，现在为了外层承担我们的 hashId，改成父子结构\n      [`${componentCls}-footer`]: {\n        marginTop: margin\n      },\n      '&-normal': {\n        marginBlock: marginXL,\n        color: token.colorTextDescription,\n        [`${componentCls}-description`]: {\n          color: token.colorTextDescription\n        },\n        [`${componentCls}-image`]: {\n          height: token.emptyImgHeightMD\n        }\n      },\n      '&-small': {\n        marginBlock: marginXS,\n        color: token.colorTextDescription,\n        [`${componentCls}-image`]: {\n          height: token.emptyImgHeightSM\n        }\n      }\n    }\n  };\n};\n// ============================== Export ==============================\nexport default genStyleHooks('Empty', token => {\n  const {\n    componentCls,\n    controlHeightLG,\n    calc\n  } = token;\n  const emptyToken = mergeToken(token, {\n    emptyImgCls: `${componentCls}-img`,\n    emptyImgHeight: calc(controlHeightLG).mul(2.5).equal(),\n    emptyImgHeightMD: controlHeightLG,\n    emptyImgHeightSM: calc(controlHeightLG).mul(0.875).equal()\n  });\n  return [genSharedEmptyStyle(emptyToken)];\n});","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n  var t = {};\n  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n  }\n  return t;\n};\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider';\nimport { useLocale } from '../locale';\nimport DefaultEmptyImg from './empty';\nimport SimpleEmptyImg from './simple';\nimport useStyle from './style';\nconst defaultEmptyImg = /*#__PURE__*/React.createElement(DefaultEmptyImg, null);\nconst simpleEmptyImg = /*#__PURE__*/React.createElement(SimpleEmptyImg, null);\nconst Empty = _a => {\n  var {\n      className,\n      rootClassName,\n      prefixCls: customizePrefixCls,\n      image = defaultEmptyImg,\n      description,\n      children,\n      imageStyle,\n      style\n    } = _a,\n    restProps = __rest(_a, [\"className\", \"rootClassName\", \"prefixCls\", \"image\", \"description\", \"children\", \"imageStyle\", \"style\"]);\n  const {\n    getPrefixCls,\n    direction,\n    empty\n  } = React.useContext(ConfigContext);\n  const prefixCls = getPrefixCls('empty', customizePrefixCls);\n  const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls);\n  const [locale] = useLocale('Empty');\n  const des = typeof description !== 'undefined' ? description : locale === null || locale === void 0 ? void 0 : locale.description;\n  const alt = typeof des === 'string' ? des : 'empty';\n  let imageNode = null;\n  if (typeof image === 'string') {\n    imageNode = /*#__PURE__*/React.createElement(\"img\", {\n      alt: alt,\n      src: image\n    });\n  } else {\n    imageNode = image;\n  }\n  return wrapCSSVar(/*#__PURE__*/React.createElement(\"div\", Object.assign({\n    className: classNames(hashId, cssVarCls, prefixCls, empty === null || empty === void 0 ? void 0 : empty.className, {\n      [`${prefixCls}-normal`]: image === simpleEmptyImg,\n      [`${prefixCls}-rtl`]: direction === 'rtl'\n    }, className, rootClassName),\n    style: Object.assign(Object.assign({}, empty === null || empty === void 0 ? void 0 : empty.style), style)\n  }, restProps), /*#__PURE__*/React.createElement(\"div\", {\n    className: `${prefixCls}-image`,\n    style: imageStyle\n  }, imageNode), des && /*#__PURE__*/React.createElement(\"div\", {\n    className: `${prefixCls}-description`\n  }, des), children && /*#__PURE__*/React.createElement(\"div\", {\n    className: `${prefixCls}-footer`\n  }, children)));\n};\nEmpty.PRESENTED_IMAGE_DEFAULT = defaultEmptyImg;\nEmpty.PRESENTED_IMAGE_SIMPLE = simpleEmptyImg;\nif (process.env.NODE_ENV !== 'production') {\n  Empty.displayName = 'Empty';\n}\nexport default Empty;","export default function _arrayLikeToArray(arr, len) {\n  if (len == null || len > arr.length) len = arr.length;\n  for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n  return arr2;\n}","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAABYlAAAWJQFJUiTwAAABaWlDQ1BEaXNwbGF5IFAzAAB4nHWQvUvDUBTFT6tS0DqIDh0cMolD1NIKdnFoKxRFMFQFq1OafgltfCQpUnETVyn4H1jBWXCwiFRwcXAQRAcR3Zw6KbhoeN6XVNoi3sfl/Ticc7lcwBtQGSv2AijplpFMxKS11Lrke4OHnlOqZrKooiwK/v276/PR9d5PiFlNu3YQ2U9cl84ul3aeAlN//V3Vn8maGv3f1EGNGRbgkYmVbYsJ3iUeMWgp4qrgvMvHgtMunzuelWSc+JZY0gpqhrhJLKc79HwHl4plrbWD2N6f1VeXxRzqUcxhEyYYilBRgQQF4X/8044/ji1yV2BQLo8CLMpESRETssTz0KFhEjJxCEHqkLhz634PrfvJbW3vFZhtcM4v2tpCAzidoZPV29p4BBgaAG7qTDVUR+qh9uZywPsJMJgChu8os2HmwiF3e38M6Hvh/GMM8B0CdpXzryPO7RqFn4Er/QcXKWq8MSlPPgAAAVNJREFUeAHt1sFtwjAUBuAXewFGYISO0N6qMgTqsYeoygRNJ3BRVPXaLXKk3aAjMEIHSJz6IVARJOSZ2AmH/7sAEVb+XzwcEwEAAAAAhFAUxbMxH3OfNYquhAv/Yi29KVWvfUokdAV24fP/K8nGWn2XZU+bvrWT/wKn4Vkz17oykvWTFmgPv/VT19UjCUw2QufCW1u58cl+SWCSAqHCM68RMub9hm9OA4QMz7T0ixxeKbtuGrpfLB6oLMtv8hQ6PBMV2Id3b2f82ZW49S0RIzwTjZDWzZJ24fc4jHScYoVn4j/xalV8upfl8XWlKE/T9LVrXczwzGsX8i0ROzzz3kalJcYIzy56DvSVGCs8u/hB1lUiSeiLd6mWJcHDb+9HA3SVaBElPBt8lBCUiBaeBTkLnSkRNTwLdphrKRE9PAt6Gj0oMUr4KFyJ3BgzIwAAAACAPn/sXQNf/GaJNAAAAABJRU5ErkJggg==\"","/* eslint-disable */\n// Inspired by https://github.com/garycourt/murmurhash-js\n// Ported from https://github.com/aappleby/smhasher/blob/61a0530f28277f2e850bfc39600ce61d02b518de/src/MurmurHash2.cpp#L37-L86\nfunction murmur2(str) {\n  // 'm' and 'r' are mixing constants generated offline.\n  // They're not really 'magic', they just happen to work well.\n  // const m = 0x5bd1e995;\n  // const r = 24;\n  // Initialize the hash\n  var h = 0; // Mix 4 bytes at a time into the hash\n\n  var k,\n      i = 0,\n      len = str.length;\n\n  for (; len >= 4; ++i, len -= 4) {\n    k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;\n    k =\n    /* Math.imul(k, m): */\n    (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16);\n    k ^=\n    /* k >>> r: */\n    k >>> 24;\n    h =\n    /* Math.imul(k, m): */\n    (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16) ^\n    /* Math.imul(h, m): */\n    (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n  } // Handle the last few bytes of the input array\n\n\n  switch (len) {\n    case 3:\n      h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n\n    case 2:\n      h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n\n    case 1:\n      h ^= str.charCodeAt(i) & 0xff;\n      h =\n      /* Math.imul(h, m): */\n      (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n  } // Do a few final mixes of the hash to ensure the last few\n  // bytes are well-incorporated.\n\n\n  h ^= h >>> 13;\n  h =\n  /* Math.imul(h, m): */\n  (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n  return ((h ^ h >>> 15) >>> 0).toString(36);\n}\n\nexport default murmur2;\n","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n// [times, realValue]\n\nvar SPLIT = '%';\n\n/** Connect key with `SPLIT` */\nexport function pathKey(keys) {\n  return keys.join(SPLIT);\n}\nvar Entity = /*#__PURE__*/function () {\n  function Entity(instanceId) {\n    _classCallCheck(this, Entity);\n    _defineProperty(this, \"instanceId\", void 0);\n    /** @private Internal cache map. Do not access this directly */\n    _defineProperty(this, \"cache\", new Map());\n    this.instanceId = instanceId;\n  }\n  _createClass(Entity, [{\n    key: \"get\",\n    value: function get(keys) {\n      return this.opGet(pathKey(keys));\n    }\n\n    /** A fast get cache with `get` concat. */\n  }, {\n    key: \"opGet\",\n    value: function opGet(keyPathStr) {\n      return this.cache.get(keyPathStr) || null;\n    }\n  }, {\n    key: \"update\",\n    value: function update(keys, valueFn) {\n      return this.opUpdate(pathKey(keys), valueFn);\n    }\n\n    /** A fast get cache with `get` concat. */\n  }, {\n    key: \"opUpdate\",\n    value: function opUpdate(keyPathStr, valueFn) {\n      var prevValue = this.cache.get(keyPathStr);\n      var nextValue = valueFn(prevValue);\n      if (nextValue === null) {\n        this.cache.delete(keyPathStr);\n      } else {\n        this.cache.set(keyPathStr, nextValue);\n      }\n    }\n  }]);\n  return Entity;\n}();\nexport default Entity;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"children\"];\nimport useMemo from \"rc-util/es/hooks/useMemo\";\nimport isEqual from \"rc-util/es/isEqual\";\nimport * as React from 'react';\nimport CacheEntity from \"./Cache\";\nexport var ATTR_TOKEN = 'data-token-hash';\nexport var ATTR_MARK = 'data-css-hash';\nexport var ATTR_CACHE_PATH = 'data-cache-path';\n\n// Mark css-in-js instance in style element\nexport var CSS_IN_JS_INSTANCE = '__cssinjs_instance__';\nexport function createCache() {\n  var cssinjsInstanceId = Math.random().toString(12).slice(2);\n\n  // Tricky SSR: Move all inline style to the head.\n  // PS: We do not recommend tricky mode.\n  if (typeof document !== 'undefined' && document.head && document.body) {\n    var styles = document.body.querySelectorAll(\"style[\".concat(ATTR_MARK, \"]\")) || [];\n    var firstChild = document.head.firstChild;\n    Array.from(styles).forEach(function (style) {\n      style[CSS_IN_JS_INSTANCE] = style[CSS_IN_JS_INSTANCE] || cssinjsInstanceId;\n\n      // Not force move if no head\n      if (style[CSS_IN_JS_INSTANCE] === cssinjsInstanceId) {\n        document.head.insertBefore(style, firstChild);\n      }\n    });\n\n    // Deduplicate of moved styles\n    var styleHash = {};\n    Array.from(document.querySelectorAll(\"style[\".concat(ATTR_MARK, \"]\"))).forEach(function (style) {\n      var hash = style.getAttribute(ATTR_MARK);\n      if (styleHash[hash]) {\n        if (style[CSS_IN_JS_INSTANCE] === cssinjsInstanceId) {\n          var _style$parentNode;\n          (_style$parentNode = style.parentNode) === null || _style$parentNode === void 0 || _style$parentNode.removeChild(style);\n        }\n      } else {\n        styleHash[hash] = true;\n      }\n    });\n  }\n  return new CacheEntity(cssinjsInstanceId);\n}\nvar StyleContext = /*#__PURE__*/React.createContext({\n  hashPriority: 'low',\n  cache: createCache(),\n  defaultCache: true\n});\nexport var StyleProvider = function StyleProvider(props) {\n  var children = props.children,\n    restProps = _objectWithoutProperties(props, _excluded);\n  var parentContext = React.useContext(StyleContext);\n  var context = useMemo(function () {\n    var mergedContext = _objectSpread({}, parentContext);\n    Object.keys(restProps).forEach(function (key) {\n      var value = restProps[key];\n      if (restProps[key] !== undefined) {\n        mergedContext[key] = value;\n      }\n    });\n    var cache = restProps.cache;\n    mergedContext.cache = mergedContext.cache || createCache();\n    mergedContext.defaultCache = !cache && parentContext.defaultCache;\n    return mergedContext;\n  }, [parentContext, restProps], function (prev, next) {\n    return !isEqual(prev[0], next[0], true) || !isEqual(prev[1], next[1], true);\n  });\n  return /*#__PURE__*/React.createElement(StyleContext.Provider, {\n    value: context\n  }, children);\n};\nexport default StyleContext;","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport AbstractCalculator from \"./calculator\";\nvar CALC_UNIT = 'CALC_UNIT';\nvar regexp = new RegExp(CALC_UNIT, 'g');\nfunction unit(value) {\n  if (typeof value === 'number') {\n    return \"\".concat(value).concat(CALC_UNIT);\n  }\n  return value;\n}\nvar CSSCalculator = /*#__PURE__*/function (_AbstractCalculator) {\n  _inherits(CSSCalculator, _AbstractCalculator);\n  var _super = _createSuper(CSSCalculator);\n  function CSSCalculator(num, unitlessCssVar) {\n    var _this;\n    _classCallCheck(this, CSSCalculator);\n    _this = _super.call(this);\n    _defineProperty(_assertThisInitialized(_this), \"result\", '');\n    _defineProperty(_assertThisInitialized(_this), \"unitlessCssVar\", void 0);\n    _defineProperty(_assertThisInitialized(_this), \"lowPriority\", void 0);\n    var numType = _typeof(num);\n    _this.unitlessCssVar = unitlessCssVar;\n    if (num instanceof CSSCalculator) {\n      _this.result = \"(\".concat(num.result, \")\");\n    } else if (numType === 'number') {\n      _this.result = unit(num);\n    } else if (numType === 'string') {\n      _this.result = num;\n    }\n    return _this;\n  }\n  _createClass(CSSCalculator, [{\n    key: \"add\",\n    value: function add(num) {\n      if (num instanceof CSSCalculator) {\n        this.result = \"\".concat(this.result, \" + \").concat(num.getResult());\n      } else if (typeof num === 'number' || typeof num === 'string') {\n        this.result = \"\".concat(this.result, \" + \").concat(unit(num));\n      }\n      this.lowPriority = true;\n      return this;\n    }\n  }, {\n    key: \"sub\",\n    value: function sub(num) {\n      if (num instanceof CSSCalculator) {\n        this.result = \"\".concat(this.result, \" - \").concat(num.getResult());\n      } else if (typeof num === 'number' || typeof num === 'string') {\n        this.result = \"\".concat(this.result, \" - \").concat(unit(num));\n      }\n      this.lowPriority = true;\n      return this;\n    }\n  }, {\n    key: \"mul\",\n    value: function mul(num) {\n      if (this.lowPriority) {\n        this.result = \"(\".concat(this.result, \")\");\n      }\n      if (num instanceof CSSCalculator) {\n        this.result = \"\".concat(this.result, \" * \").concat(num.getResult(true));\n      } else if (typeof num === 'number' || typeof num === 'string') {\n        this.result = \"\".concat(this.result, \" * \").concat(num);\n      }\n      this.lowPriority = false;\n      return this;\n    }\n  }, {\n    key: \"div\",\n    value: function div(num) {\n      if (this.lowPriority) {\n        this.result = \"(\".concat(this.result, \")\");\n      }\n      if (num instanceof CSSCalculator) {\n        this.result = \"\".concat(this.result, \" / \").concat(num.getResult(true));\n      } else if (typeof num === 'number' || typeof num === 'string') {\n        this.result = \"\".concat(this.result, \" / \").concat(num);\n      }\n      this.lowPriority = false;\n      return this;\n    }\n  }, {\n    key: \"getResult\",\n    value: function getResult(force) {\n      return this.lowPriority || force ? \"(\".concat(this.result, \")\") : this.result;\n    }\n  }, {\n    key: \"equal\",\n    value: function equal(options) {\n      var _this2 = this;\n      var _ref = options || {},\n        cssUnit = _ref.unit;\n      var mergedUnit = true;\n      if (typeof cssUnit === 'boolean') {\n        mergedUnit = cssUnit;\n      } else if (Array.from(this.unitlessCssVar).some(function (cssVar) {\n        return _this2.result.includes(cssVar);\n      })) {\n        mergedUnit = false;\n      }\n      this.result = this.result.replace(regexp, mergedUnit ? 'px' : '');\n      if (typeof this.lowPriority !== 'undefined') {\n        return \"calc(\".concat(this.result, \")\");\n      }\n      return this.result;\n    }\n  }]);\n  return CSSCalculator;\n}(AbstractCalculator);\nexport { CSSCalculator as default };","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n// ================================== Cache ==================================\n\nexport function sameDerivativeOption(left, right) {\n  if (left.length !== right.length) {\n    return false;\n  }\n  for (var i = 0; i < left.length; i++) {\n    if (left[i] !== right[i]) {\n      return false;\n    }\n  }\n  return true;\n}\nvar ThemeCache = /*#__PURE__*/function () {\n  function ThemeCache() {\n    _classCallCheck(this, ThemeCache);\n    _defineProperty(this, \"cache\", void 0);\n    _defineProperty(this, \"keys\", void 0);\n    _defineProperty(this, \"cacheCallTimes\", void 0);\n    this.cache = new Map();\n    this.keys = [];\n    this.cacheCallTimes = 0;\n  }\n  _createClass(ThemeCache, [{\n    key: \"size\",\n    value: function size() {\n      return this.keys.length;\n    }\n  }, {\n    key: \"internalGet\",\n    value: function internalGet(derivativeOption) {\n      var _cache2, _cache3;\n      var updateCallTimes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n      var cache = {\n        map: this.cache\n      };\n      derivativeOption.forEach(function (derivative) {\n        if (!cache) {\n          cache = undefined;\n        } else {\n          var _cache;\n          cache = (_cache = cache) === null || _cache === void 0 || (_cache = _cache.map) === null || _cache === void 0 ? void 0 : _cache.get(derivative);\n        }\n      });\n      if ((_cache2 = cache) !== null && _cache2 !== void 0 && _cache2.value && updateCallTimes) {\n        cache.value[1] = this.cacheCallTimes++;\n      }\n      return (_cache3 = cache) === null || _cache3 === void 0 ? void 0 : _cache3.value;\n    }\n  }, {\n    key: \"get\",\n    value: function get(derivativeOption) {\n      var _this$internalGet;\n      return (_this$internalGet = this.internalGet(derivativeOption, true)) === null || _this$internalGet === void 0 ? void 0 : _this$internalGet[0];\n    }\n  }, {\n    key: \"has\",\n    value: function has(derivativeOption) {\n      return !!this.internalGet(derivativeOption);\n    }\n  }, {\n    key: \"set\",\n    value: function set(derivativeOption, value) {\n      var _this = this;\n      // New cache\n      if (!this.has(derivativeOption)) {\n        if (this.size() + 1 > ThemeCache.MAX_CACHE_SIZE + ThemeCache.MAX_CACHE_OFFSET) {\n          var _this$keys$reduce = this.keys.reduce(function (result, key) {\n              var _result = _slicedToArray(result, 2),\n                callTimes = _result[1];\n              if (_this.internalGet(key)[1] < callTimes) {\n                return [key, _this.internalGet(key)[1]];\n              }\n              return result;\n            }, [this.keys[0], this.cacheCallTimes]),\n            _this$keys$reduce2 = _slicedToArray(_this$keys$reduce, 1),\n            targetKey = _this$keys$reduce2[0];\n          this.delete(targetKey);\n        }\n        this.keys.push(derivativeOption);\n      }\n      var cache = this.cache;\n      derivativeOption.forEach(function (derivative, index) {\n        if (index === derivativeOption.length - 1) {\n          cache.set(derivative, {\n            value: [value, _this.cacheCallTimes++]\n          });\n        } else {\n          var cacheValue = cache.get(derivative);\n          if (!cacheValue) {\n            cache.set(derivative, {\n              map: new Map()\n            });\n          } else if (!cacheValue.map) {\n            cacheValue.map = new Map();\n          }\n          cache = cache.get(derivative).map;\n        }\n      });\n    }\n  }, {\n    key: \"deleteByPath\",\n    value: function deleteByPath(currentCache, derivatives) {\n      var cache = currentCache.get(derivatives[0]);\n      if (derivatives.length === 1) {\n        var _cache$value;\n        if (!cache.map) {\n          currentCache.delete(derivatives[0]);\n        } else {\n          currentCache.set(derivatives[0], {\n            map: cache.map\n          });\n        }\n        return (_cache$value = cache.value) === null || _cache$value === void 0 ? void 0 : _cache$value[0];\n      }\n      var result = this.deleteByPath(cache.map, derivatives.slice(1));\n      if ((!cache.map || cache.map.size === 0) && !cache.value) {\n        currentCache.delete(derivatives[0]);\n      }\n      return result;\n    }\n  }, {\n    key: \"delete\",\n    value: function _delete(derivativeOption) {\n      // If cache exists\n      if (this.has(derivativeOption)) {\n        this.keys = this.keys.filter(function (item) {\n          return !sameDerivativeOption(item, derivativeOption);\n        });\n        return this.deleteByPath(this.cache, derivativeOption);\n      }\n      return undefined;\n    }\n  }]);\n  return ThemeCache;\n}();\n_defineProperty(ThemeCache, \"MAX_CACHE_SIZE\", 20);\n_defineProperty(ThemeCache, \"MAX_CACHE_OFFSET\", 5);\nexport { ThemeCache as default };","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { warning } from \"rc-util/es/warning\";\nvar uuid = 0;\n\n/**\n * Theme with algorithms to derive tokens from design tokens.\n * Use `createTheme` first which will help to manage the theme instance cache.\n */\nvar Theme = /*#__PURE__*/function () {\n  function Theme(derivatives) {\n    _classCallCheck(this, Theme);\n    _defineProperty(this, \"derivatives\", void 0);\n    _defineProperty(this, \"id\", void 0);\n    this.derivatives = Array.isArray(derivatives) ? derivatives : [derivatives];\n    this.id = uuid;\n    if (derivatives.length === 0) {\n      warning(derivatives.length > 0, '[Ant Design CSS-in-JS] Theme should have at least one derivative function.');\n    }\n    uuid += 1;\n  }\n  _createClass(Theme, [{\n    key: \"getDerivativeToken\",\n    value: function getDerivativeToken(token) {\n      return this.derivatives.reduce(function (result, derivative) {\n        return derivative(token, result);\n      }, undefined);\n    }\n  }]);\n  return Theme;\n}();\nexport { Theme as default };","import ThemeCache from \"./ThemeCache\";\nimport Theme from \"./Theme\";\nvar cacheThemes = new ThemeCache();\n\n/**\n * Same as new Theme, but will always return same one if `derivative` not changed.\n */\nexport default function createTheme(derivatives) {\n  var derivativeArr = Array.isArray(derivatives) ? derivatives : [derivatives];\n  // Create new theme if not exist\n  if (!cacheThemes.has(derivativeArr)) {\n    cacheThemes.set(derivativeArr, new Theme(derivativeArr));\n  }\n\n  // Get theme from cache and return\n  return cacheThemes.get(derivativeArr);\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport hash from '@emotion/hash';\nimport canUseDom from \"rc-util/es/Dom/canUseDom\";\nimport { removeCSS, updateCSS } from \"rc-util/es/Dom/dynamicCSS\";\nimport { ATTR_MARK, ATTR_TOKEN } from \"../StyleContext\";\nimport { Theme } from \"../theme\";\n\n// Create a cache for memo concat\n\nvar resultCache = new WeakMap();\nvar RESULT_VALUE = {};\nexport function memoResult(callback, deps) {\n  var current = resultCache;\n  for (var i = 0; i < deps.length; i += 1) {\n    var dep = deps[i];\n    if (!current.has(dep)) {\n      current.set(dep, new WeakMap());\n    }\n    current = current.get(dep);\n  }\n  if (!current.has(RESULT_VALUE)) {\n    current.set(RESULT_VALUE, callback());\n  }\n  return current.get(RESULT_VALUE);\n}\n\n// Create a cache here to avoid always loop generate\nvar flattenTokenCache = new WeakMap();\n\n/**\n * Flatten token to string, this will auto cache the result when token not change\n */\nexport function flattenToken(token) {\n  var hashed = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n  var str = flattenTokenCache.get(token) || '';\n  if (!str) {\n    Object.keys(token).forEach(function (key) {\n      var value = token[key];\n      str += key;\n      if (value instanceof Theme) {\n        str += value.id;\n      } else if (value && _typeof(value) === 'object') {\n        str += flattenToken(value, hashed);\n      } else {\n        str += value;\n      }\n    });\n\n    // https://github.com/ant-design/ant-design/issues/48386\n    // Should hash the string to avoid style tag name too long\n    if (hashed) {\n      str = hash(str);\n    }\n\n    // Put in cache\n    flattenTokenCache.set(token, str);\n  }\n  return str;\n}\n\n/**\n * Convert derivative token to key string\n */\nexport function token2key(token, salt) {\n  return hash(\"\".concat(salt, \"_\").concat(flattenToken(token, true)));\n}\nvar randomSelectorKey = \"random-\".concat(Date.now(), \"-\").concat(Math.random()).replace(/\\./g, '');\n\n// Magic `content` for detect selector support\nvar checkContent = '_bAmBoO_';\nfunction supportSelector(styleStr, handleElement, supportCheck) {\n  if (canUseDom()) {\n    var _getComputedStyle$con, _ele$parentNode;\n    updateCSS(styleStr, randomSelectorKey);\n    var _ele = document.createElement('div');\n    _ele.style.position = 'fixed';\n    _ele.style.left = '0';\n    _ele.style.top = '0';\n    handleElement === null || handleElement === void 0 || handleElement(_ele);\n    document.body.appendChild(_ele);\n    if (process.env.NODE_ENV !== 'production') {\n      _ele.innerHTML = 'Test';\n      _ele.style.zIndex = '9999999';\n    }\n    var support = supportCheck ? supportCheck(_ele) : (_getComputedStyle$con = getComputedStyle(_ele).content) === null || _getComputedStyle$con === void 0 ? void 0 : _getComputedStyle$con.includes(checkContent);\n    (_ele$parentNode = _ele.parentNode) === null || _ele$parentNode === void 0 || _ele$parentNode.removeChild(_ele);\n    removeCSS(randomSelectorKey);\n    return support;\n  }\n  return false;\n}\nvar canLayer = undefined;\nexport function supportLayer() {\n  if (canLayer === undefined) {\n    canLayer = supportSelector(\"@layer \".concat(randomSelectorKey, \" { .\").concat(randomSelectorKey, \" { content: \\\"\").concat(checkContent, \"\\\"!important; } }\"), function (ele) {\n      ele.className = randomSelectorKey;\n    });\n  }\n  return canLayer;\n}\nvar canWhere = undefined;\nexport function supportWhere() {\n  if (canWhere === undefined) {\n    canWhere = supportSelector(\":where(.\".concat(randomSelectorKey, \") { content: \\\"\").concat(checkContent, \"\\\"!important; }\"), function (ele) {\n      ele.className = randomSelectorKey;\n    });\n  }\n  return canWhere;\n}\nvar canLogic = undefined;\nexport function supportLogicProps() {\n  if (canLogic === undefined) {\n    canLogic = supportSelector(\".\".concat(randomSelectorKey, \" { inset-block: 93px !important; }\"), function (ele) {\n      ele.className = randomSelectorKey;\n    }, function (ele) {\n      return getComputedStyle(ele).bottom === '93px';\n    });\n  }\n  return canLogic;\n}\nexport var isClientSide = canUseDom();\nexport function unit(num) {\n  if (typeof num === 'number') {\n    return \"\".concat(num, \"px\");\n  }\n  return num;\n}\nexport function toStyleStr(style, tokenKey, styleId) {\n  var customizeAttrs = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n  var plain = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n  if (plain) {\n    return style;\n  }\n  var attrs = _objectSpread(_objectSpread({}, customizeAttrs), {}, _defineProperty(_defineProperty({}, ATTR_TOKEN, tokenKey), ATTR_MARK, styleId));\n  var attrStr = Object.keys(attrs).map(function (attr) {\n    var val = attrs[attr];\n    return val ? \"\".concat(attr, \"=\\\"\").concat(val, \"\\\"\") : null;\n  }).filter(function (v) {\n    return v;\n  }).join(' ');\n  return \"<style \".concat(attrStr, \">\").concat(style, \"</style>\");\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nexport var token2CSSVar = function token2CSSVar(token) {\n  var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n  return \"--\".concat(prefix ? \"\".concat(prefix, \"-\") : '').concat(token).replace(/([a-z0-9])([A-Z])/g, '$1-$2').replace(/([A-Z]+)([A-Z][a-z0-9]+)/g, '$1-$2').replace(/([a-z])([A-Z0-9])/g, '$1-$2').toLowerCase();\n};\nexport var serializeCSSVar = function serializeCSSVar(cssVars, hashId, options) {\n  if (!Object.keys(cssVars).length) {\n    return '';\n  }\n  return \".\".concat(hashId).concat(options !== null && options !== void 0 && options.scope ? \".\".concat(options.scope) : '', \"{\").concat(Object.entries(cssVars).map(function (_ref) {\n    var _ref2 = _slicedToArray(_ref, 2),\n      key = _ref2[0],\n      value = _ref2[1];\n    return \"\".concat(key, \":\").concat(value, \";\");\n  }).join(''), \"}\");\n};\nexport var transformToken = function transformToken(token, themeKey, config) {\n  var cssVars = {};\n  var result = {};\n  Object.entries(token).forEach(function (_ref3) {\n    var _config$preserve, _config$ignore;\n    var _ref4 = _slicedToArray(_ref3, 2),\n      key = _ref4[0],\n      value = _ref4[1];\n    if (config !== null && config !== void 0 && (_config$preserve = config.preserve) !== null && _config$preserve !== void 0 && _config$preserve[key]) {\n      result[key] = value;\n    } else if ((typeof value === 'string' || typeof value === 'number') && !(config !== null && config !== void 0 && (_config$ignore = config.ignore) !== null && _config$ignore !== void 0 && _config$ignore[key])) {\n      var _config$unitless;\n      var cssVar = token2CSSVar(key, config === null || config === void 0 ? void 0 : config.prefix);\n      cssVars[cssVar] = typeof value === 'number' && !(config !== null && config !== void 0 && (_config$unitless = config.unitless) !== null && _config$unitless !== void 0 && _config$unitless[key]) ? \"\".concat(value, \"px\") : String(value);\n      result[key] = \"var(\".concat(cssVar, \")\");\n    }\n  });\n  return [result, serializeCSSVar(cssVars, themeKey, {\n    scope: config === null || config === void 0 ? void 0 : config.scope\n  })];\n};","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// import canUseDom from 'rc-util/lib/Dom/canUseDom';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport * as React from 'react';\n\n// We need fully clone React function here\n// to avoid webpack warning React 17 do not export `useId`\nvar fullClone = _objectSpread({}, React);\nvar useInsertionEffect = fullClone.useInsertionEffect;\n/**\n * Polyfill `useInsertionEffect` for React < 18\n * @param renderEffect will be executed in `useMemo`, and do not have callback\n * @param effect will be executed in `useLayoutEffect`\n * @param deps\n */\nvar useInsertionEffectPolyfill = function useInsertionEffectPolyfill(renderEffect, effect, deps) {\n  React.useMemo(renderEffect, deps);\n  useLayoutEffect(function () {\n    return effect(true);\n  }, deps);\n};\n\n/**\n * Compatible `useInsertionEffect`\n * will use `useInsertionEffect` if React version >= 18,\n * otherwise use `useInsertionEffectPolyfill`.\n */\nvar useCompatibleInsertionEffect = useInsertionEffect ? function (renderEffect, effect, deps) {\n  return useInsertionEffect(function () {\n    renderEffect();\n    return effect();\n  }, deps);\n} : useInsertionEffectPolyfill;\nexport default useCompatibleInsertionEffect;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport { warning } from \"rc-util/es/warning\";\nimport * as React from 'react';\nvar fullClone = _objectSpread({}, React);\nvar useInsertionEffect = fullClone.useInsertionEffect;\n\n// DO NOT register functions in useEffect cleanup function, or functions that registered will never be called.\nvar useCleanupRegister = function useCleanupRegister(deps) {\n  var effectCleanups = [];\n  var cleanupFlag = false;\n  function register(fn) {\n    if (cleanupFlag) {\n      if (process.env.NODE_ENV !== 'production') {\n        warning(false, '[Ant Design CSS-in-JS] You are registering a cleanup function after unmount, which will not have any effect.');\n      }\n      return;\n    }\n    effectCleanups.push(fn);\n  }\n  React.useEffect(function () {\n    // Compatible with strict mode\n    cleanupFlag = false;\n    return function () {\n      cleanupFlag = true;\n      if (effectCleanups.length) {\n        effectCleanups.forEach(function (fn) {\n          return fn();\n        });\n      }\n    };\n  }, deps);\n  return register;\n};\nvar useRun = function useRun() {\n  return function (fn) {\n    fn();\n  };\n};\n\n// Only enable register in React 18\nvar useEffectCleanupRegister = typeof useInsertionEffect !== 'undefined' ? useCleanupRegister : useRun;\nexport default useEffectCleanupRegister;","function useProdHMR() {\n  return false;\n}\nvar webpackHMR = false;\nfunction useDevHMR() {\n  return webpackHMR;\n}\nexport default process.env.NODE_ENV === 'production' ? useProdHMR : useDevHMR;\n\n// Webpack `module.hot.accept` do not support any deps update trigger\n// We have to hack handler to force mark as HRM\nif (process.env.NODE_ENV !== 'production' && typeof module !== 'undefined' && module && module.hot && typeof window !== 'undefined') {\n  var win = window;\n  if (typeof win.webpackHotUpdate === 'function') {\n    var originWebpackHotUpdate = win.webpackHotUpdate;\n    win.webpackHotUpdate = function () {\n      webpackHMR = true;\n      setTimeout(function () {\n        webpackHMR = false;\n      }, 0);\n      return originWebpackHotUpdate.apply(void 0, arguments);\n    };\n  }\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\nimport { pathKey } from \"../Cache\";\nimport StyleContext from \"../StyleContext\";\nimport useCompatibleInsertionEffect from \"./useCompatibleInsertionEffect\";\nimport useEffectCleanupRegister from \"./useEffectCleanupRegister\";\nimport useHMR from \"./useHMR\";\nexport default function useGlobalCache(prefix, keyPath, cacheFn, onCacheRemove,\n// Add additional effect trigger by `useInsertionEffect`\nonCacheEffect) {\n  var _React$useContext = React.useContext(StyleContext),\n    globalCache = _React$useContext.cache;\n  var fullPath = [prefix].concat(_toConsumableArray(keyPath));\n  var fullPathStr = pathKey(fullPath);\n  var register = useEffectCleanupRegister([fullPathStr]);\n  var HMRUpdate = useHMR();\n  var buildCache = function buildCache(updater) {\n    globalCache.opUpdate(fullPathStr, function (prevCache) {\n      var _ref = prevCache || [undefined, undefined],\n        _ref2 = _slicedToArray(_ref, 2),\n        _ref2$ = _ref2[0],\n        times = _ref2$ === void 0 ? 0 : _ref2$,\n        cache = _ref2[1];\n\n      // HMR should always ignore cache since developer may change it\n      var tmpCache = cache;\n      if (process.env.NODE_ENV !== 'production' && cache && HMRUpdate) {\n        onCacheRemove === null || onCacheRemove === void 0 || onCacheRemove(tmpCache, HMRUpdate);\n        tmpCache = null;\n      }\n      var mergedCache = tmpCache || cacheFn();\n      var data = [times, mergedCache];\n\n      // Call updater if need additional logic\n      return updater ? updater(data) : data;\n    });\n  };\n\n  // Create cache\n  React.useMemo(function () {\n    buildCache();\n  }, /* eslint-disable react-hooks/exhaustive-deps */\n  [fullPathStr]\n  /* eslint-enable */);\n  var cacheEntity = globalCache.opGet(fullPathStr);\n\n  // HMR clean the cache but not trigger `useMemo` again\n  // Let's fallback of this\n  // ref https://github.com/ant-design/cssinjs/issues/127\n  if (process.env.NODE_ENV !== 'production' && !cacheEntity) {\n    buildCache();\n    cacheEntity = globalCache.opGet(fullPathStr);\n  }\n  var cacheContent = cacheEntity[1];\n\n  // Remove if no need anymore\n  useCompatibleInsertionEffect(function () {\n    onCacheEffect === null || onCacheEffect === void 0 || onCacheEffect(cacheContent);\n  }, function (polyfill) {\n    // It's bad to call build again in effect.\n    // But we have to do this since StrictMode will call effect twice\n    // which will clear cache on the first time.\n    buildCache(function (_ref3) {\n      var _ref4 = _slicedToArray(_ref3, 2),\n        times = _ref4[0],\n        cache = _ref4[1];\n      if (polyfill && times === 0) {\n        onCacheEffect === null || onCacheEffect === void 0 || onCacheEffect(cacheContent);\n      }\n      return [times + 1, cache];\n    });\n    return function () {\n      globalCache.opUpdate(fullPathStr, function (prevCache) {\n        var _ref5 = prevCache || [],\n          _ref6 = _slicedToArray(_ref5, 2),\n          _ref6$ = _ref6[0],\n          times = _ref6$ === void 0 ? 0 : _ref6$,\n          cache = _ref6[1];\n        var nextCount = times - 1;\n        if (nextCount === 0) {\n          // Always remove styles in useEffect callback\n          register(function () {\n            // With polyfill, registered callback will always be called synchronously\n            // But without polyfill, it will be called in effect clean up,\n            // And by that time this cache is cleaned up.\n            if (polyfill || !globalCache.opGet(fullPathStr)) {\n              onCacheRemove === null || onCacheRemove === void 0 || onCacheRemove(cache, false);\n            }\n          });\n          return null;\n        }\n        return [times - 1, cache];\n      });\n    };\n  }, [fullPathStr]);\n  return cacheContent;\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport hash from '@emotion/hash';\nimport { updateCSS } from \"rc-util/es/Dom/dynamicCSS\";\nimport { useContext } from 'react';\nimport StyleContext, { ATTR_MARK, ATTR_TOKEN, CSS_IN_JS_INSTANCE } from \"../StyleContext\";\nimport { flattenToken, memoResult, token2key, toStyleStr } from \"../util\";\nimport { transformToken } from \"../util/css-variables\";\nimport useGlobalCache from \"./useGlobalCache\";\nvar EMPTY_OVERRIDE = {};\n\n// Generate different prefix to make user selector break in production env.\n// This helps developer not to do style override directly on the hash id.\nvar hashPrefix = process.env.NODE_ENV !== 'production' ? 'css-dev-only-do-not-override' : 'css';\nvar tokenKeys = new Map();\nfunction recordCleanToken(tokenKey) {\n  tokenKeys.set(tokenKey, (tokenKeys.get(tokenKey) || 0) + 1);\n}\nfunction removeStyleTags(key, instanceId) {\n  if (typeof document !== 'undefined') {\n    var styles = document.querySelectorAll(\"style[\".concat(ATTR_TOKEN, \"=\\\"\").concat(key, \"\\\"]\"));\n    styles.forEach(function (style) {\n      if (style[CSS_IN_JS_INSTANCE] === instanceId) {\n        var _style$parentNode;\n        (_style$parentNode = style.parentNode) === null || _style$parentNode === void 0 || _style$parentNode.removeChild(style);\n      }\n    });\n  }\n}\nvar TOKEN_THRESHOLD = 0;\n\n// Remove will check current keys first\nfunction cleanTokenStyle(tokenKey, instanceId) {\n  tokenKeys.set(tokenKey, (tokenKeys.get(tokenKey) || 0) - 1);\n  var tokenKeyList = Array.from(tokenKeys.keys());\n  var cleanableKeyList = tokenKeyList.filter(function (key) {\n    var count = tokenKeys.get(key) || 0;\n    return count <= 0;\n  });\n\n  // Should keep tokens under threshold for not to insert style too often\n  if (tokenKeyList.length - cleanableKeyList.length > TOKEN_THRESHOLD) {\n    cleanableKeyList.forEach(function (key) {\n      removeStyleTags(key, instanceId);\n      tokenKeys.delete(key);\n    });\n  }\n}\nexport var getComputedToken = function getComputedToken(originToken, overrideToken, theme, format) {\n  var derivativeToken = theme.getDerivativeToken(originToken);\n\n  // Merge with override\n  var mergedDerivativeToken = _objectSpread(_objectSpread({}, derivativeToken), overrideToken);\n\n  // Format if needed\n  if (format) {\n    mergedDerivativeToken = format(mergedDerivativeToken);\n  }\n  return mergedDerivativeToken;\n};\nexport var TOKEN_PREFIX = 'token';\n/**\n * Cache theme derivative token as global shared one\n * @param theme Theme entity\n * @param tokens List of tokens, used for cache. Please do not dynamic generate object directly\n * @param option Additional config\n * @returns Call Theme.getDerivativeToken(tokenObject) to get token\n */\nexport default function useCacheToken(theme, tokens) {\n  var option = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  var _useContext = useContext(StyleContext),\n    instanceId = _useContext.cache.instanceId,\n    container = _useContext.container;\n  var _option$salt = option.salt,\n    salt = _option$salt === void 0 ? '' : _option$salt,\n    _option$override = option.override,\n    override = _option$override === void 0 ? EMPTY_OVERRIDE : _option$override,\n    formatToken = option.formatToken,\n    compute = option.getComputedToken,\n    cssVar = option.cssVar;\n\n  // Basic - We do basic cache here\n  var mergedToken = memoResult(function () {\n    return Object.assign.apply(Object, [{}].concat(_toConsumableArray(tokens)));\n  }, tokens);\n  var tokenStr = flattenToken(mergedToken);\n  var overrideTokenStr = flattenToken(override);\n  var cssVarStr = cssVar ? flattenToken(cssVar) : '';\n  var cachedToken = useGlobalCache(TOKEN_PREFIX, [salt, theme.id, tokenStr, overrideTokenStr, cssVarStr], function () {\n    var _cssVar$key;\n    var mergedDerivativeToken = compute ? compute(mergedToken, override, theme) : getComputedToken(mergedToken, override, theme, formatToken);\n\n    // Replace token value with css variables\n    var actualToken = _objectSpread({}, mergedDerivativeToken);\n    var cssVarsStr = '';\n    if (!!cssVar) {\n      var _transformToken = transformToken(mergedDerivativeToken, cssVar.key, {\n        prefix: cssVar.prefix,\n        ignore: cssVar.ignore,\n        unitless: cssVar.unitless,\n        preserve: cssVar.preserve\n      });\n      var _transformToken2 = _slicedToArray(_transformToken, 2);\n      mergedDerivativeToken = _transformToken2[0];\n      cssVarsStr = _transformToken2[1];\n    }\n\n    // Optimize for `useStyleRegister` performance\n    var tokenKey = token2key(mergedDerivativeToken, salt);\n    mergedDerivativeToken._tokenKey = tokenKey;\n    actualToken._tokenKey = token2key(actualToken, salt);\n    var themeKey = (_cssVar$key = cssVar === null || cssVar === void 0 ? void 0 : cssVar.key) !== null && _cssVar$key !== void 0 ? _cssVar$key : tokenKey;\n    mergedDerivativeToken._themeKey = themeKey;\n    recordCleanToken(themeKey);\n    var hashId = \"\".concat(hashPrefix, \"-\").concat(hash(tokenKey));\n    mergedDerivativeToken._hashId = hashId; // Not used\n\n    return [mergedDerivativeToken, hashId, actualToken, cssVarsStr, (cssVar === null || cssVar === void 0 ? void 0 : cssVar.key) || ''];\n  }, function (cache) {\n    // Remove token will remove all related style\n    cleanTokenStyle(cache[0]._themeKey, instanceId);\n  }, function (_ref) {\n    var _ref2 = _slicedToArray(_ref, 4),\n      token = _ref2[0],\n      cssVarsStr = _ref2[3];\n    if (cssVar && cssVarsStr) {\n      var style = updateCSS(cssVarsStr, hash(\"css-variables-\".concat(token._themeKey)), {\n        mark: ATTR_MARK,\n        prepend: 'queue',\n        attachTo: container,\n        priority: -999\n      });\n      style[CSS_IN_JS_INSTANCE] = instanceId;\n\n      // Used for `useCacheToken` to remove on batch when token removed\n      style.setAttribute(ATTR_TOKEN, token._themeKey);\n    }\n  });\n  return cachedToken;\n}\nexport var extract = function extract(cache, effectStyles, options) {\n  var _cache = _slicedToArray(cache, 5),\n    realToken = _cache[2],\n    styleStr = _cache[3],\n    cssVarKey = _cache[4];\n  var _ref3 = options || {},\n    plain = _ref3.plain;\n  if (!styleStr) {\n    return null;\n  }\n  var styleId = realToken._tokenKey;\n  var order = -999;\n\n  // ====================== Style ======================\n  // Used for rc-util\n  var sharedAttrs = {\n    'data-rc-order': 'prependQueue',\n    'data-rc-priority': \"\".concat(order)\n  };\n  var styleText = toStyleStr(styleStr, cssVarKey, styleId, sharedAttrs, plain);\n  return [order, styleId, styleText];\n};","var unitlessKeys = {\n  animationIterationCount: 1,\n  borderImageOutset: 1,\n  borderImageSlice: 1,\n  borderImageWidth: 1,\n  boxFlex: 1,\n  boxFlexGroup: 1,\n  boxOrdinalGroup: 1,\n  columnCount: 1,\n  columns: 1,\n  flex: 1,\n  flexGrow: 1,\n  flexPositive: 1,\n  flexShrink: 1,\n  flexNegative: 1,\n  flexOrder: 1,\n  gridRow: 1,\n  gridRowEnd: 1,\n  gridRowSpan: 1,\n  gridRowStart: 1,\n  gridColumn: 1,\n  gridColumnEnd: 1,\n  gridColumnSpan: 1,\n  gridColumnStart: 1,\n  msGridRow: 1,\n  msGridRowSpan: 1,\n  msGridColumn: 1,\n  msGridColumnSpan: 1,\n  fontWeight: 1,\n  lineHeight: 1,\n  opacity: 1,\n  order: 1,\n  orphans: 1,\n  tabSize: 1,\n  widows: 1,\n  zIndex: 1,\n  zoom: 1,\n  WebkitLineClamp: 1,\n  // SVG-related properties\n  fillOpacity: 1,\n  floodOpacity: 1,\n  stopOpacity: 1,\n  strokeDasharray: 1,\n  strokeDashoffset: 1,\n  strokeMiterlimit: 1,\n  strokeOpacity: 1,\n  strokeWidth: 1\n};\n\nexport default unitlessKeys;\n","export var MS = '-ms-'\nexport var MOZ = '-moz-'\nexport var WEBKIT = '-webkit-'\n\nexport var COMMENT = 'comm'\nexport var RULESET = 'rule'\nexport var DECLARATION = 'decl'\n\nexport var PAGE = '@page'\nexport var MEDIA = '@media'\nexport var IMPORT = '@import'\nexport var CHARSET = '@charset'\nexport var VIEWPORT = '@viewport'\nexport var SUPPORTS = '@supports'\nexport var DOCUMENT = '@document'\nexport var NAMESPACE = '@namespace'\nexport var KEYFRAMES = '@keyframes'\nexport var FONT_FACE = '@font-face'\nexport var COUNTER_STYLE = '@counter-style'\nexport var FONT_FEATURE_VALUES = '@font-feature-values'\nexport var LAYER = '@layer'\nexport var SCOPE = '@scope'\n","/**\n * @param {number}\n * @return {number}\n */\nexport var abs = Math.abs\n\n/**\n * @param {number}\n * @return {string}\n */\nexport var from = String.fromCharCode\n\n/**\n * @param {object}\n * @return {object}\n */\nexport var assign = Object.assign\n\n/**\n * @param {string} value\n * @param {number} length\n * @return {number}\n */\nexport function hash (value, length) {\n\treturn charat(value, 0) ^ 45 ? (((((((length << 2) ^ charat(value, 0)) << 2) ^ charat(value, 1)) << 2) ^ charat(value, 2)) << 2) ^ charat(value, 3) : 0\n}\n\n/**\n * @param {string} value\n * @return {string}\n */\nexport function trim (value) {\n\treturn value.trim()\n}\n\n/**\n * @param {string} value\n * @param {RegExp} pattern\n * @return {string?}\n */\nexport function match (value, pattern) {\n\treturn (value = pattern.exec(value)) ? value[0] : value\n}\n\n/**\n * @param {string} value\n * @param {(string|RegExp)} pattern\n * @param {string} replacement\n * @return {string}\n */\nexport function replace (value, pattern, replacement) {\n\treturn value.replace(pattern, replacement)\n}\n\n/**\n * @param {string} value\n * @param {string} search\n * @param {number} position\n * @return {number}\n */\nexport function indexof (value, search, position) {\n\treturn value.indexOf(search, position)\n}\n\n/**\n * @param {string} value\n * @param {number} index\n * @return {number}\n */\nexport function charat (value, index) {\n\treturn value.charCodeAt(index) | 0\n}\n\n/**\n * @param {string} value\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function substr (value, begin, end) {\n\treturn value.slice(begin, end)\n}\n\n/**\n * @param {string} value\n * @return {number}\n */\nexport function strlen (value) {\n\treturn value.length\n}\n\n/**\n * @param {any[]} value\n * @return {number}\n */\nexport function sizeof (value) {\n\treturn value.length\n}\n\n/**\n * @param {any} value\n * @param {any[]} array\n * @return {any}\n */\nexport function append (value, array) {\n\treturn array.push(value), value\n}\n\n/**\n * @param {string[]} array\n * @param {function} callback\n * @return {string}\n */\nexport function combine (array, callback) {\n\treturn array.map(callback).join('')\n}\n\n/**\n * @param {string[]} array\n * @param {RegExp} pattern\n * @return {string[]}\n */\nexport function filter (array, pattern) {\n\treturn array.filter(function (value) { return !match(value, pattern) })\n}\n","import {from, trim, charat, strlen, substr, append, assign} from './Utility.js'\n\nexport var line = 1\nexport var column = 1\nexport var length = 0\nexport var position = 0\nexport var character = 0\nexport var characters = ''\n\n/**\n * @param {string} value\n * @param {object | null} root\n * @param {object | null} parent\n * @param {string} type\n * @param {string[] | string} props\n * @param {object[] | string} children\n * @param {object[]} siblings\n * @param {number} length\n */\nexport function node (value, root, parent, type, props, children, length, siblings) {\n\treturn {value: value, root: root, parent: parent, type: type, props: props, children: children, line: line, column: column, length: length, return: '', siblings: siblings}\n}\n\n/**\n * @param {object} root\n * @param {object} props\n * @return {object}\n */\nexport function copy (root, props) {\n\treturn assign(node('', null, null, '', null, null, 0, root.siblings), root, {length: -root.length}, props)\n}\n\n/**\n * @param {object} root\n */\nexport function lift (root) {\n\twhile (root.root)\n\t\troot = copy(root.root, {children: [root]})\n\n\tappend(root, root.siblings)\n}\n\n/**\n * @return {number}\n */\nexport function char () {\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function prev () {\n\tcharacter = position > 0 ? charat(characters, --position) : 0\n\n\tif (column--, character === 10)\n\t\tcolumn = 1, line--\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function next () {\n\tcharacter = position < length ? charat(characters, position++) : 0\n\n\tif (column++, character === 10)\n\t\tcolumn = 1, line++\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function peek () {\n\treturn charat(characters, position)\n}\n\n/**\n * @return {number}\n */\nexport function caret () {\n\treturn position\n}\n\n/**\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function slice (begin, end) {\n\treturn substr(characters, begin, end)\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function token (type) {\n\tswitch (type) {\n\t\t// \\0 \\t \\n \\r \\s whitespace token\n\t\tcase 0: case 9: case 10: case 13: case 32:\n\t\t\treturn 5\n\t\t// ! + , / > @ ~ isolate token\n\t\tcase 33: case 43: case 44: case 47: case 62: case 64: case 126:\n\t\t// ; { } breakpoint token\n\t\tcase 59: case 123: case 125:\n\t\t\treturn 4\n\t\t// : accompanied token\n\t\tcase 58:\n\t\t\treturn 3\n\t\t// \" ' ( [ opening delimit token\n\t\tcase 34: case 39: case 40: case 91:\n\t\t\treturn 2\n\t\t// ) ] closing delimit token\n\t\tcase 41: case 93:\n\t\t\treturn 1\n\t}\n\n\treturn 0\n}\n\n/**\n * @param {string} value\n * @return {any[]}\n */\nexport function alloc (value) {\n\treturn line = column = 1, length = strlen(characters = value), position = 0, []\n}\n\n/**\n * @param {any} value\n * @return {any}\n */\nexport function dealloc (value) {\n\treturn characters = '', value\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function delimit (type) {\n\treturn trim(slice(position - 1, delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type)))\n}\n\n/**\n * @param {string} value\n * @return {string[]}\n */\nexport function tokenize (value) {\n\treturn dealloc(tokenizer(alloc(value)))\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function whitespace (type) {\n\twhile (character = peek())\n\t\tif (character < 33)\n\t\t\tnext()\n\t\telse\n\t\t\tbreak\n\n\treturn token(type) > 2 || token(character) > 3 ? '' : ' '\n}\n\n/**\n * @param {string[]} children\n * @return {string[]}\n */\nexport function tokenizer (children) {\n\twhile (next())\n\t\tswitch (token(character)) {\n\t\t\tcase 0: append(identifier(position - 1), children)\n\t\t\t\tbreak\n\t\t\tcase 2: append(delimit(character), children)\n\t\t\t\tbreak\n\t\t\tdefault: append(from(character), children)\n\t\t}\n\n\treturn children\n}\n\n/**\n * @param {number} index\n * @param {number} count\n * @return {string}\n */\nexport function escaping (index, count) {\n\twhile (--count && next())\n\t\t// not 0-9 A-F a-f\n\t\tif (character < 48 || character > 102 || (character > 57 && character < 65) || (character > 70 && character < 97))\n\t\t\tbreak\n\n\treturn slice(index, caret() + (count < 6 && peek() == 32 && next() == 32))\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function delimiter (type) {\n\twhile (next())\n\t\tswitch (character) {\n\t\t\t// ] ) \" '\n\t\t\tcase type:\n\t\t\t\treturn position\n\t\t\t// \" '\n\t\t\tcase 34: case 39:\n\t\t\t\tif (type !== 34 && type !== 39)\n\t\t\t\t\tdelimiter(character)\n\t\t\t\tbreak\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (type === 41)\n\t\t\t\t\tdelimiter(type)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tnext()\n\t\t\t\tbreak\n\t\t}\n\n\treturn position\n}\n\n/**\n * @param {number} type\n * @param {number} index\n * @return {number}\n */\nexport function commenter (type, index) {\n\twhile (next())\n\t\t// //\n\t\tif (type + character === 47 + 10)\n\t\t\tbreak\n\t\t// /*\n\t\telse if (type + character === 42 + 42 && peek() === 47)\n\t\t\tbreak\n\n\treturn '/*' + slice(index, position - 1) + '*' + from(type === 47 ? type : next())\n}\n\n/**\n * @param {number} index\n * @return {string}\n */\nexport function identifier (index) {\n\twhile (!token(peek()))\n\t\tnext()\n\n\treturn slice(index, position)\n}\n","import {COMMENT, RULESET, DECLARATION} from './Enum.js'\nimport {abs, charat, trim, from, sizeof, strlen, substr, append, replace, indexof} from './Utility.js'\nimport {node, char, prev, next, peek, token, caret, alloc, dealloc, delimit, whitespace, escaping, identifier, commenter} from './Tokenizer.js'\n\n/**\n * @param {string} value\n * @return {object[]}\n */\nexport function compile (value) {\n\treturn dealloc(parse('', null, null, null, [''], value = alloc(value), 0, [0], value))\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {string[]} rule\n * @param {string[]} rules\n * @param {string[]} rulesets\n * @param {number[]} pseudo\n * @param {number[]} points\n * @param {string[]} declarations\n * @return {object}\n */\nexport function parse (value, root, parent, rule, rules, rulesets, pseudo, points, declarations) {\n\tvar index = 0\n\tvar offset = 0\n\tvar length = pseudo\n\tvar atrule = 0\n\tvar property = 0\n\tvar previous = 0\n\tvar variable = 1\n\tvar scanning = 1\n\tvar ampersand = 1\n\tvar character = 0\n\tvar type = ''\n\tvar props = rules\n\tvar children = rulesets\n\tvar reference = rule\n\tvar characters = type\n\n\twhile (scanning)\n\t\tswitch (previous = character, character = next()) {\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (previous != 108 && charat(characters, length - 1) == 58) {\n\t\t\t\t\tif (indexof(characters += replace(delimit(character), '&', '&\\f'), '&\\f', abs(index ? points[index - 1] : 0)) != -1)\n\t\t\t\t\t\tampersand = -1\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t// \" ' [\n\t\t\tcase 34: case 39: case 91:\n\t\t\t\tcharacters += delimit(character)\n\t\t\t\tbreak\n\t\t\t// \\t \\n \\r \\s\n\t\t\tcase 9: case 10: case 13: case 32:\n\t\t\t\tcharacters += whitespace(previous)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tcharacters += escaping(caret() - 1, 7)\n\t\t\t\tcontinue\n\t\t\t// /\n\t\t\tcase 47:\n\t\t\t\tswitch (peek()) {\n\t\t\t\t\tcase 42: case 47:\n\t\t\t\t\t\tappend(comment(commenter(next(), caret()), root, parent, declarations), declarations)\n\t\t\t\t\t\tif ((token(previous || 1) == 5 || token(peek() || 1) == 5) && strlen(characters) && substr(characters, -1, void 0) !== ' ') characters += ' '\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcharacters += '/'\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t// {\n\t\t\tcase 123 * variable:\n\t\t\t\tpoints[index++] = strlen(characters) * ampersand\n\t\t\t// } ; \\0\n\t\t\tcase 125 * variable: case 59: case 0:\n\t\t\t\tswitch (character) {\n\t\t\t\t\t// \\0 }\n\t\t\t\t\tcase 0: case 125: scanning = 0\n\t\t\t\t\t// ;\n\t\t\t\t\tcase 59 + offset: if (ampersand == -1) characters = replace(characters, /\\f/g, '')\n\t\t\t\t\t\tif (property > 0 && (strlen(characters) - length || (variable === 0 && previous === 47)))\n\t\t\t\t\t\t\tappend(property > 32 ? declaration(characters + ';', rule, parent, length - 1, declarations) : declaration(replace(characters, ' ', '') + ';', rule, parent, length - 2, declarations), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @ ;\n\t\t\t\t\tcase 59: characters += ';'\n\t\t\t\t\t// { rule/at-rule\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tappend(reference = ruleset(characters, root, parent, index, offset, rules, points, type, props = [], children = [], length, rulesets), rulesets)\n\n\t\t\t\t\t\tif (character === 123)\n\t\t\t\t\t\t\tif (offset === 0)\n\t\t\t\t\t\t\t\tparse(characters, root, reference, reference, props, rulesets, length, points, children)\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tswitch (atrule === 99 && charat(characters, 3) === 110 ? 100 : atrule) {\n\t\t\t\t\t\t\t\t\t// d l m s\n\t\t\t\t\t\t\t\t\tcase 100: case 108: case 109: case 115:\n\t\t\t\t\t\t\t\t\t\tparse(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length, children), children), rules, children, length, points, rule ? props : children)\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\tparse(characters, reference, reference, reference, [''], children, 0, points, children)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tindex = offset = property = 0, variable = ampersand = 1, type = characters = '', length = pseudo\n\t\t\t\tbreak\n\t\t\t// :\n\t\t\tcase 58:\n\t\t\t\tlength = 1 + strlen(characters), property = previous\n\t\t\tdefault:\n\t\t\t\tif (variable < 1)\n\t\t\t\t\tif (character == 123)\n\t\t\t\t\t\t--variable\n\t\t\t\t\telse if (character == 125 && variable++ == 0 && prev() == 125)\n\t\t\t\t\t\tcontinue\n\n\t\t\t\tswitch (characters += from(character), character * variable) {\n\t\t\t\t\t// &\n\t\t\t\t\tcase 38:\n\t\t\t\t\t\tampersand = offset > 0 ? 1 : (characters += '\\f', -1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// ,\n\t\t\t\t\tcase 44:\n\t\t\t\t\t\tpoints[index++] = (strlen(characters) - 1) * ampersand, ampersand = 1\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @\n\t\t\t\t\tcase 64:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (peek() === 45)\n\t\t\t\t\t\t\tcharacters += delimit(next())\n\n\t\t\t\t\t\tatrule = peek(), offset = length = strlen(type = characters += identifier(caret())), character++\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// -\n\t\t\t\t\tcase 45:\n\t\t\t\t\t\tif (previous === 45 && strlen(characters) == 2)\n\t\t\t\t\t\t\tvariable = 0\n\t\t\t\t}\n\t\t}\n\n\treturn rulesets\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} index\n * @param {number} offset\n * @param {string[]} rules\n * @param {number[]} points\n * @param {string} type\n * @param {string[]} props\n * @param {string[]} children\n * @param {number} length\n * @param {object[]} siblings\n * @return {object}\n */\nexport function ruleset (value, root, parent, index, offset, rules, points, type, props, children, length, siblings) {\n\tvar post = offset - 1\n\tvar rule = offset === 0 ? rules : ['']\n\tvar size = sizeof(rule)\n\n\tfor (var i = 0, j = 0, k = 0; i < index; ++i)\n\t\tfor (var x = 0, y = substr(value, post + 1, post = abs(j = points[i])), z = value; x < size; ++x)\n\t\t\tif (z = trim(j > 0 ? rule[x] + ' ' + y : replace(y, /&\\f/g, rule[x])))\n\t\t\t\tprops[k++] = z\n\n\treturn node(value, root, parent, offset === 0 ? RULESET : type, props, children, length, siblings)\n}\n\n/**\n * @param {number} value\n * @param {object} root\n * @param {object?} parent\n * @param {object[]} siblings\n * @return {object}\n */\nexport function comment (value, root, parent, siblings) {\n\treturn node(value, root, parent, COMMENT, from(char()), substr(value, 2, -2), 0, siblings)\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} length\n * @param {object[]} siblings\n * @return {object}\n */\nexport function declaration (value, root, parent, length, siblings) {\n\treturn node(value, root, parent, DECLARATION, substr(value, 0, length), substr(value, length + 1, -1), length, siblings)\n}\n","import {IMPORT, LAYER, COMMENT, RULESET, DECLARATION, KEYFRAMES} from './Enum.js'\nimport {strlen} from './Utility.js'\n\n/**\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function serialize (children, callback) {\n\tvar output = ''\n\n\tfor (var i = 0; i < children.length; i++)\n\t\toutput += callback(children[i], i, children, callback) || ''\n\n\treturn output\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function stringify (element, index, children, callback) {\n\tswitch (element.type) {\n\t\tcase LAYER: if (element.children.length) break\n\t\tcase IMPORT: case DECLARATION: return element.return = element.return || element.value\n\t\tcase COMMENT: return ''\n\t\tcase KEYFRAMES: return element.return = element.value + '{' + serialize(element.children, callback) + '}'\n\t\tcase RULESET: if (!strlen(element.value = element.props.join(','))) return ''\n\t}\n\n\treturn strlen(children = serialize(element.children, callback)) ? element.return = element.value + '{' + children + '}' : ''\n}\n","import { lintWarning } from \"./utils\";\nfunction isConcatSelector(selector) {\n  var _selector$match;\n  var notContent = ((_selector$match = selector.match(/:not\\(([^)]*)\\)/)) === null || _selector$match === void 0 ? void 0 : _selector$match[1]) || '';\n\n  // split selector. e.g.\n  // `h1#a.b` => ['h1', #a', '.b']\n  var splitCells = notContent.split(/(\\[[^[]*])|(?=[.#])/).filter(function (str) {\n    return str;\n  });\n  return splitCells.length > 1;\n}\nfunction parsePath(info) {\n  return info.parentSelectors.reduce(function (prev, cur) {\n    if (!prev) {\n      return cur;\n    }\n    return cur.includes('&') ? cur.replace(/&/g, prev) : \"\".concat(prev, \" \").concat(cur);\n  }, '');\n}\nvar linter = function linter(key, value, info) {\n  var parentSelectorPath = parsePath(info);\n  var notList = parentSelectorPath.match(/:not\\([^)]*\\)/g) || [];\n  if (notList.length > 0 && notList.some(isConcatSelector)) {\n    lintWarning(\"Concat ':not' selector not support in legacy browsers.\", info);\n  }\n};\nexport default linter;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport canUseDom from \"rc-util/es/Dom/canUseDom\";\nimport { ATTR_MARK } from \"../StyleContext\";\nexport var ATTR_CACHE_MAP = 'data-ant-cssinjs-cache-path';\n\n/**\n * This marks style from the css file.\n * Which means not exist in `<style />` tag.\n */\nexport var CSS_FILE_STYLE = '_FILE_STYLE__';\nexport function serialize(cachePathMap) {\n  return Object.keys(cachePathMap).map(function (path) {\n    var hash = cachePathMap[path];\n    return \"\".concat(path, \":\").concat(hash);\n  }).join(';');\n}\nvar cachePathMap;\nvar fromCSSFile = true;\n\n/**\n * @private Test usage only. Can save remove if no need.\n */\nexport function reset(mockCache) {\n  var fromFile = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n  cachePathMap = mockCache;\n  fromCSSFile = fromFile;\n}\nexport function prepare() {\n  if (!cachePathMap) {\n    cachePathMap = {};\n    if (canUseDom()) {\n      var div = document.createElement('div');\n      div.className = ATTR_CACHE_MAP;\n      div.style.position = 'fixed';\n      div.style.visibility = 'hidden';\n      div.style.top = '-9999px';\n      document.body.appendChild(div);\n      var content = getComputedStyle(div).content || '';\n      content = content.replace(/^\"/, '').replace(/\"$/, '');\n\n      // Fill data\n      content.split(';').forEach(function (item) {\n        var _item$split = item.split(':'),\n          _item$split2 = _slicedToArray(_item$split, 2),\n          path = _item$split2[0],\n          hash = _item$split2[1];\n        cachePathMap[path] = hash;\n      });\n\n      // Remove inline record style\n      var inlineMapStyle = document.querySelector(\"style[\".concat(ATTR_CACHE_MAP, \"]\"));\n      if (inlineMapStyle) {\n        var _inlineMapStyle$paren;\n        fromCSSFile = false;\n        (_inlineMapStyle$paren = inlineMapStyle.parentNode) === null || _inlineMapStyle$paren === void 0 || _inlineMapStyle$paren.removeChild(inlineMapStyle);\n      }\n      document.body.removeChild(div);\n    }\n  }\n}\nexport function existPath(path) {\n  prepare();\n  return !!cachePathMap[path];\n}\nexport function getStyleAndHash(path) {\n  var hash = cachePathMap[path];\n  var styleStr = null;\n  if (hash && canUseDom()) {\n    if (fromCSSFile) {\n      styleStr = CSS_FILE_STYLE;\n    } else {\n      var _style = document.querySelector(\"style[\".concat(ATTR_MARK, \"=\\\"\").concat(cachePathMap[path], \"\\\"]\"));\n      if (_style) {\n        styleStr = _style.innerHTML;\n      } else {\n        // Clean up since not exist anymore\n        delete cachePathMap[path];\n      }\n    }\n  }\n  return [styleStr, hash];\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport hash from '@emotion/hash';\nimport { removeCSS, updateCSS } from \"rc-util/es/Dom/dynamicCSS\";\nimport * as React from 'react';\n// @ts-ignore\nimport unitless from '@emotion/unitless';\nimport { compile, serialize, stringify } from 'stylis';\nimport { contentQuotesLinter, hashedAnimationLinter } from \"../linters\";\nimport StyleContext, { ATTR_CACHE_PATH, ATTR_MARK, ATTR_TOKEN, CSS_IN_JS_INSTANCE } from \"../StyleContext\";\nimport { isClientSide, toStyleStr } from \"../util\";\nimport { CSS_FILE_STYLE, existPath, getStyleAndHash } from \"../util/cacheMapUtil\";\nimport useGlobalCache from \"./useGlobalCache\";\nvar SKIP_CHECK = '_skip_check_';\nvar MULTI_VALUE = '_multi_value_';\n// ============================================================================\n// ==                                 Parser                                 ==\n// ============================================================================\n// Preprocessor style content to browser support one\nexport function normalizeStyle(styleStr) {\n  var serialized = serialize(compile(styleStr), stringify);\n  return serialized.replace(/\\{%%%\\:[^;];}/g, ';');\n}\nfunction isCompoundCSSProperty(value) {\n  return _typeof(value) === 'object' && value && (SKIP_CHECK in value || MULTI_VALUE in value);\n}\n\n// 注入 hash 值\nfunction injectSelectorHash(key, hashId, hashPriority) {\n  if (!hashId) {\n    return key;\n  }\n  var hashClassName = \".\".concat(hashId);\n  var hashSelector = hashPriority === 'low' ? \":where(\".concat(hashClassName, \")\") : hashClassName;\n\n  // 注入 hashId\n  var keys = key.split(',').map(function (k) {\n    var _firstPath$match;\n    var fullPath = k.trim().split(/\\s+/);\n\n    // 如果 Selector 第一个是 HTML Element，那我们就插到它的后面。反之，就插到最前面。\n    var firstPath = fullPath[0] || '';\n    var htmlElement = ((_firstPath$match = firstPath.match(/^\\w+/)) === null || _firstPath$match === void 0 ? void 0 : _firstPath$match[0]) || '';\n    firstPath = \"\".concat(htmlElement).concat(hashSelector).concat(firstPath.slice(htmlElement.length));\n    return [firstPath].concat(_toConsumableArray(fullPath.slice(1))).join(' ');\n  });\n  return keys.join(',');\n}\n// Parse CSSObject to style content\nexport var parseStyle = function parseStyle(interpolation) {\n  var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n  var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {\n      root: true,\n      parentSelectors: []\n    },\n    root = _ref.root,\n    injectHash = _ref.injectHash,\n    parentSelectors = _ref.parentSelectors;\n  var hashId = config.hashId,\n    layer = config.layer,\n    path = config.path,\n    hashPriority = config.hashPriority,\n    _config$transformers = config.transformers,\n    transformers = _config$transformers === void 0 ? [] : _config$transformers,\n    _config$linters = config.linters,\n    linters = _config$linters === void 0 ? [] : _config$linters;\n  var styleStr = '';\n  var effectStyle = {};\n  function parseKeyframes(keyframes) {\n    var animationName = keyframes.getName(hashId);\n    if (!effectStyle[animationName]) {\n      var _parseStyle = parseStyle(keyframes.style, config, {\n          root: false,\n          parentSelectors: parentSelectors\n        }),\n        _parseStyle2 = _slicedToArray(_parseStyle, 1),\n        _parsedStr = _parseStyle2[0];\n      effectStyle[animationName] = \"@keyframes \".concat(keyframes.getName(hashId)).concat(_parsedStr);\n    }\n  }\n  function flattenList(list) {\n    var fullList = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n    list.forEach(function (item) {\n      if (Array.isArray(item)) {\n        flattenList(item, fullList);\n      } else if (item) {\n        fullList.push(item);\n      }\n    });\n    return fullList;\n  }\n  var flattenStyleList = flattenList(Array.isArray(interpolation) ? interpolation : [interpolation]);\n  flattenStyleList.forEach(function (originStyle) {\n    // Only root level can use raw string\n    var style = typeof originStyle === 'string' && !root ? {} : originStyle;\n    if (typeof style === 'string') {\n      styleStr += \"\".concat(style, \"\\n\");\n    } else if (style._keyframe) {\n      // Keyframe\n      parseKeyframes(style);\n    } else {\n      var mergedStyle = transformers.reduce(function (prev, trans) {\n        var _trans$visit;\n        return (trans === null || trans === void 0 || (_trans$visit = trans.visit) === null || _trans$visit === void 0 ? void 0 : _trans$visit.call(trans, prev)) || prev;\n      }, style);\n\n      // Normal CSSObject\n      Object.keys(mergedStyle).forEach(function (key) {\n        var value = mergedStyle[key];\n        if (_typeof(value) === 'object' && value && (key !== 'animationName' || !value._keyframe) && !isCompoundCSSProperty(value)) {\n          var subInjectHash = false;\n\n          // 当成嵌套对象来处理\n          var mergedKey = key.trim();\n          // Whether treat child as root. In most case it is false.\n          var nextRoot = false;\n\n          // 拆分多个选择器\n          if ((root || injectHash) && hashId) {\n            if (mergedKey.startsWith('@')) {\n              // 略过媒体查询，交给子节点继续插入 hashId\n              subInjectHash = true;\n            } else if (mergedKey === '&') {\n              // 抹掉 root selector 上的单个 &\n              mergedKey = injectSelectorHash('', hashId, hashPriority);\n            } else {\n              // 注入 hashId\n              mergedKey = injectSelectorHash(key, hashId, hashPriority);\n            }\n          } else if (root && !hashId && (mergedKey === '&' || mergedKey === '')) {\n            // In case of `{ '&': { a: { color: 'red' } } }` or `{ '': { a: { color: 'red' } } }` without hashId,\n            // we will get `&{a:{color:red;}}` or `{a:{color:red;}}` string for stylis to compile.\n            // But it does not conform to stylis syntax,\n            // and finally we will get `{color:red;}` as css, which is wrong.\n            // So we need to remove key in root, and treat child `{ a: { color: 'red' } }` as root.\n            mergedKey = '';\n            nextRoot = true;\n          }\n          var _parseStyle3 = parseStyle(value, config, {\n              root: nextRoot,\n              injectHash: subInjectHash,\n              parentSelectors: [].concat(_toConsumableArray(parentSelectors), [mergedKey])\n            }),\n            _parseStyle4 = _slicedToArray(_parseStyle3, 2),\n            _parsedStr2 = _parseStyle4[0],\n            childEffectStyle = _parseStyle4[1];\n          effectStyle = _objectSpread(_objectSpread({}, effectStyle), childEffectStyle);\n          styleStr += \"\".concat(mergedKey).concat(_parsedStr2);\n        } else {\n          var _value;\n          function appendStyle(cssKey, cssValue) {\n            if (process.env.NODE_ENV !== 'production' && (_typeof(value) !== 'object' || !(value !== null && value !== void 0 && value[SKIP_CHECK]))) {\n              [contentQuotesLinter, hashedAnimationLinter].concat(_toConsumableArray(linters)).forEach(function (linter) {\n                return linter(cssKey, cssValue, {\n                  path: path,\n                  hashId: hashId,\n                  parentSelectors: parentSelectors\n                });\n              });\n            }\n\n            // 如果是样式则直接插入\n            var styleName = cssKey.replace(/[A-Z]/g, function (match) {\n              return \"-\".concat(match.toLowerCase());\n            });\n\n            // Auto suffix with px\n            var formatValue = cssValue;\n            if (!unitless[cssKey] && typeof formatValue === 'number' && formatValue !== 0) {\n              formatValue = \"\".concat(formatValue, \"px\");\n            }\n\n            // handle animationName & Keyframe value\n            if (cssKey === 'animationName' && cssValue !== null && cssValue !== void 0 && cssValue._keyframe) {\n              parseKeyframes(cssValue);\n              formatValue = cssValue.getName(hashId);\n            }\n            styleStr += \"\".concat(styleName, \":\").concat(formatValue, \";\");\n          }\n          var actualValue = (_value = value === null || value === void 0 ? void 0 : value.value) !== null && _value !== void 0 ? _value : value;\n          if (_typeof(value) === 'object' && value !== null && value !== void 0 && value[MULTI_VALUE] && Array.isArray(actualValue)) {\n            actualValue.forEach(function (item) {\n              appendStyle(key, item);\n            });\n          } else {\n            appendStyle(key, actualValue);\n          }\n        }\n      });\n    }\n  });\n  if (!root) {\n    styleStr = \"{\".concat(styleStr, \"}\");\n  } else if (layer) {\n    styleStr = \"@layer \".concat(layer.name, \" {\").concat(styleStr, \"}\");\n    if (layer.dependencies) {\n      effectStyle[\"@layer \".concat(layer.name)] = layer.dependencies.map(function (deps) {\n        return \"@layer \".concat(deps, \", \").concat(layer.name, \";\");\n      }).join('\\n');\n    }\n  }\n  return [styleStr, effectStyle];\n};\n\n// ============================================================================\n// ==                                Register                                ==\n// ============================================================================\nexport function uniqueHash(path, styleStr) {\n  return hash(\"\".concat(path.join('%')).concat(styleStr));\n}\nfunction Empty() {\n  return null;\n}\nexport var STYLE_PREFIX = 'style';\n/**\n * Register a style to the global style sheet.\n */\nexport default function useStyleRegister(info, styleFn) {\n  var token = info.token,\n    path = info.path,\n    hashId = info.hashId,\n    layer = info.layer,\n    nonce = info.nonce,\n    clientOnly = info.clientOnly,\n    _info$order = info.order,\n    order = _info$order === void 0 ? 0 : _info$order;\n  var _React$useContext = React.useContext(StyleContext),\n    autoClear = _React$useContext.autoClear,\n    mock = _React$useContext.mock,\n    defaultCache = _React$useContext.defaultCache,\n    hashPriority = _React$useContext.hashPriority,\n    container = _React$useContext.container,\n    ssrInline = _React$useContext.ssrInline,\n    transformers = _React$useContext.transformers,\n    linters = _React$useContext.linters,\n    cache = _React$useContext.cache,\n    enableLayer = _React$useContext.layer;\n  var tokenKey = token._tokenKey;\n  var fullPath = [tokenKey];\n  if (enableLayer) {\n    fullPath.push('layer');\n  }\n  fullPath.push.apply(fullPath, _toConsumableArray(path));\n\n  // Check if need insert style\n  var isMergedClientSide = isClientSide;\n  if (process.env.NODE_ENV !== 'production' && mock !== undefined) {\n    isMergedClientSide = mock === 'client';\n  }\n  var _useGlobalCache = useGlobalCache(STYLE_PREFIX, fullPath,\n    // Create cache if needed\n    function () {\n      var cachePath = fullPath.join('|');\n\n      // Get style from SSR inline style directly\n      if (existPath(cachePath)) {\n        var _getStyleAndHash = getStyleAndHash(cachePath),\n          _getStyleAndHash2 = _slicedToArray(_getStyleAndHash, 2),\n          inlineCacheStyleStr = _getStyleAndHash2[0],\n          styleHash = _getStyleAndHash2[1];\n        if (inlineCacheStyleStr) {\n          return [inlineCacheStyleStr, tokenKey, styleHash, {}, clientOnly, order];\n        }\n      }\n\n      // Generate style\n      var styleObj = styleFn();\n      var _parseStyle5 = parseStyle(styleObj, {\n          hashId: hashId,\n          hashPriority: hashPriority,\n          layer: enableLayer ? layer : undefined,\n          path: path.join('-'),\n          transformers: transformers,\n          linters: linters\n        }),\n        _parseStyle6 = _slicedToArray(_parseStyle5, 2),\n        parsedStyle = _parseStyle6[0],\n        effectStyle = _parseStyle6[1];\n      var styleStr = normalizeStyle(parsedStyle);\n      var styleId = uniqueHash(fullPath, styleStr);\n      return [styleStr, tokenKey, styleId, effectStyle, clientOnly, order];\n    },\n    // Remove cache if no need\n    function (_ref2, fromHMR) {\n      var _ref3 = _slicedToArray(_ref2, 3),\n        styleId = _ref3[2];\n      if ((fromHMR || autoClear) && isClientSide) {\n        removeCSS(styleId, {\n          mark: ATTR_MARK\n        });\n      }\n    },\n    // Effect: Inject style here\n    function (_ref4) {\n      var _ref5 = _slicedToArray(_ref4, 4),\n        styleStr = _ref5[0],\n        _ = _ref5[1],\n        styleId = _ref5[2],\n        effectStyle = _ref5[3];\n      if (isMergedClientSide && styleStr !== CSS_FILE_STYLE) {\n        var mergedCSSConfig = {\n          mark: ATTR_MARK,\n          prepend: enableLayer ? false : 'queue',\n          attachTo: container,\n          priority: order\n        };\n        var nonceStr = typeof nonce === 'function' ? nonce() : nonce;\n        if (nonceStr) {\n          mergedCSSConfig.csp = {\n            nonce: nonceStr\n          };\n        }\n\n        // ================= Split Effect Style =================\n        // We will split effectStyle here since @layer should be at the top level\n        var effectLayerKeys = [];\n        var effectRestKeys = [];\n        Object.keys(effectStyle).forEach(function (key) {\n          if (key.startsWith('@layer')) {\n            effectLayerKeys.push(key);\n          } else {\n            effectRestKeys.push(key);\n          }\n        });\n\n        // ================= Inject Layer Style =================\n        // Inject layer style\n        effectLayerKeys.forEach(function (effectKey) {\n          updateCSS(normalizeStyle(effectStyle[effectKey]), \"_layer-\".concat(effectKey), _objectSpread(_objectSpread({}, mergedCSSConfig), {}, {\n            prepend: true\n          }));\n        });\n\n        // ==================== Inject Style ====================\n        // Inject style\n        var style = updateCSS(styleStr, styleId, mergedCSSConfig);\n        style[CSS_IN_JS_INSTANCE] = cache.instanceId;\n\n        // Used for `useCacheToken` to remove on batch when token removed\n        style.setAttribute(ATTR_TOKEN, tokenKey);\n\n        // Debug usage. Dev only\n        if (process.env.NODE_ENV !== 'production') {\n          style.setAttribute(ATTR_CACHE_PATH, fullPath.join('|'));\n        }\n\n        // ================ Inject Effect Style =================\n        // Inject client side effect style\n        effectRestKeys.forEach(function (effectKey) {\n          updateCSS(normalizeStyle(effectStyle[effectKey]), \"_effect-\".concat(effectKey), mergedCSSConfig);\n        });\n      }\n    }),\n    _useGlobalCache2 = _slicedToArray(_useGlobalCache, 3),\n    cachedStyleStr = _useGlobalCache2[0],\n    cachedTokenKey = _useGlobalCache2[1],\n    cachedStyleId = _useGlobalCache2[2];\n  return function (node) {\n    var styleNode;\n    if (!ssrInline || isMergedClientSide || !defaultCache) {\n      styleNode = /*#__PURE__*/React.createElement(Empty, null);\n    } else {\n      styleNode = /*#__PURE__*/React.createElement(\"style\", _extends({}, _defineProperty(_defineProperty({}, ATTR_TOKEN, cachedTokenKey), ATTR_MARK, cachedStyleId), {\n        dangerouslySetInnerHTML: {\n          __html: cachedStyleStr\n        }\n      }));\n    }\n    return /*#__PURE__*/React.createElement(React.Fragment, null, styleNode, node);\n  };\n}\nexport var extract = function extract(cache, effectStyles, options) {\n  var _cache = _slicedToArray(cache, 6),\n    styleStr = _cache[0],\n    tokenKey = _cache[1],\n    styleId = _cache[2],\n    effectStyle = _cache[3],\n    clientOnly = _cache[4],\n    order = _cache[5];\n  var _ref7 = options || {},\n    plain = _ref7.plain;\n\n  // Skip client only style\n  if (clientOnly) {\n    return null;\n  }\n  var keyStyleText = styleStr;\n\n  // ====================== Share ======================\n  // Used for rc-util\n  var sharedAttrs = {\n    'data-rc-order': 'prependQueue',\n    'data-rc-priority': \"\".concat(order)\n  };\n\n  // ====================== Style ======================\n  keyStyleText = toStyleStr(styleStr, tokenKey, styleId, sharedAttrs, plain);\n\n  // =============== Create effect style ===============\n  if (effectStyle) {\n    Object.keys(effectStyle).forEach(function (effectKey) {\n      // Effect style can be reused\n      if (!effectStyles[effectKey]) {\n        effectStyles[effectKey] = true;\n        var effectStyleStr = normalizeStyle(effectStyle[effectKey]);\n        var effectStyleHTML = toStyleStr(effectStyleStr, tokenKey, \"_effect-\".concat(effectKey), sharedAttrs, plain);\n        if (effectKey.startsWith('@layer')) {\n          keyStyleText = effectStyleHTML + keyStyleText;\n        } else {\n          keyStyleText += effectStyleHTML;\n        }\n      }\n    });\n  }\n  return [order, styleId, keyStyleText];\n};","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport { removeCSS, updateCSS } from \"rc-util/es/Dom/dynamicCSS\";\nimport { useContext } from 'react';\nimport StyleContext, { ATTR_MARK, ATTR_TOKEN, CSS_IN_JS_INSTANCE } from \"../StyleContext\";\nimport { isClientSide, toStyleStr } from \"../util\";\nimport { transformToken } from \"../util/css-variables\";\nimport useGlobalCache from \"./useGlobalCache\";\nimport { uniqueHash } from \"./useStyleRegister\";\nexport var CSS_VAR_PREFIX = 'cssVar';\nvar useCSSVarRegister = function useCSSVarRegister(config, fn) {\n  var key = config.key,\n    prefix = config.prefix,\n    unitless = config.unitless,\n    ignore = config.ignore,\n    token = config.token,\n    _config$scope = config.scope,\n    scope = _config$scope === void 0 ? '' : _config$scope;\n  var _useContext = useContext(StyleContext),\n    instanceId = _useContext.cache.instanceId,\n    container = _useContext.container;\n  var tokenKey = token._tokenKey;\n  var stylePath = [].concat(_toConsumableArray(config.path), [key, scope, tokenKey]);\n  var cache = useGlobalCache(CSS_VAR_PREFIX, stylePath, function () {\n    var originToken = fn();\n    var _transformToken = transformToken(originToken, key, {\n        prefix: prefix,\n        unitless: unitless,\n        ignore: ignore,\n        scope: scope\n      }),\n      _transformToken2 = _slicedToArray(_transformToken, 2),\n      mergedToken = _transformToken2[0],\n      cssVarsStr = _transformToken2[1];\n    var styleId = uniqueHash(stylePath, cssVarsStr);\n    return [mergedToken, cssVarsStr, styleId, key];\n  }, function (_ref) {\n    var _ref2 = _slicedToArray(_ref, 3),\n      styleId = _ref2[2];\n    if (isClientSide) {\n      removeCSS(styleId, {\n        mark: ATTR_MARK\n      });\n    }\n  }, function (_ref3) {\n    var _ref4 = _slicedToArray(_ref3, 3),\n      cssVarsStr = _ref4[1],\n      styleId = _ref4[2];\n    if (!cssVarsStr) {\n      return;\n    }\n    var style = updateCSS(cssVarsStr, styleId, {\n      mark: ATTR_MARK,\n      prepend: 'queue',\n      attachTo: container,\n      priority: -999\n    });\n    style[CSS_IN_JS_INSTANCE] = instanceId;\n\n    // Used for `useCacheToken` to remove on batch when token removed\n    style.setAttribute(ATTR_TOKEN, key);\n  });\n  return cache;\n};\nexport var extract = function extract(cache, effectStyles, options) {\n  var _cache = _slicedToArray(cache, 4),\n    styleStr = _cache[1],\n    styleId = _cache[2],\n    cssVarKey = _cache[3];\n  var _ref5 = options || {},\n    plain = _ref5.plain;\n  if (!styleStr) {\n    return null;\n  }\n  var order = -999;\n\n  // ====================== Style ======================\n  // Used for rc-util\n  var sharedAttrs = {\n    'data-rc-order': 'prependQueue',\n    'data-rc-priority': \"\".concat(order)\n  };\n  var styleText = toStyleStr(styleStr, cssVarKey, styleId, sharedAttrs, plain);\n  return [order, styleId, styleText];\n};\nexport default useCSSVarRegister;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { extract as tokenExtractStyle, TOKEN_PREFIX } from \"./hooks/useCacheToken\";\nimport { CSS_VAR_PREFIX, extract as cssVarExtractStyle } from \"./hooks/useCSSVarRegister\";\nimport { extract as styleExtractStyle, STYLE_PREFIX } from \"./hooks/useStyleRegister\";\nimport { toStyleStr } from \"./util\";\nimport { ATTR_CACHE_MAP, serialize as serializeCacheMap } from \"./util/cacheMapUtil\";\nvar ExtractStyleFns = _defineProperty(_defineProperty(_defineProperty({}, STYLE_PREFIX, styleExtractStyle), TOKEN_PREFIX, tokenExtractStyle), CSS_VAR_PREFIX, cssVarExtractStyle);\nfunction isNotNull(value) {\n  return value !== null;\n}\nexport default function extractStyle(cache, options) {\n  var _ref = typeof options === 'boolean' ? {\n      plain: options\n    } : options || {},\n    _ref$plain = _ref.plain,\n    plain = _ref$plain === void 0 ? false : _ref$plain,\n    _ref$types = _ref.types,\n    types = _ref$types === void 0 ? ['style', 'token', 'cssVar'] : _ref$types;\n  var matchPrefixRegexp = new RegExp(\"^(\".concat((typeof types === 'string' ? [types] : types).join('|'), \")%\"));\n\n  // prefix with `style` is used for `useStyleRegister` to cache style context\n  var styleKeys = Array.from(cache.cache.keys()).filter(function (key) {\n    return matchPrefixRegexp.test(key);\n  });\n\n  // Common effect styles like animation\n  var effectStyles = {};\n\n  // Mapping of cachePath to style hash\n  var cachePathMap = {};\n  var styleText = '';\n  styleKeys.map(function (key) {\n    var cachePath = key.replace(matchPrefixRegexp, '').replace(/%/g, '|');\n    var _key$split = key.split('%'),\n      _key$split2 = _slicedToArray(_key$split, 1),\n      prefix = _key$split2[0];\n    var extractFn = ExtractStyleFns[prefix];\n    var extractedStyle = extractFn(cache.cache.get(key)[1], effectStyles, {\n      plain: plain\n    });\n    if (!extractedStyle) {\n      return null;\n    }\n    var _extractedStyle = _slicedToArray(extractedStyle, 3),\n      order = _extractedStyle[0],\n      styleId = _extractedStyle[1],\n      styleStr = _extractedStyle[2];\n    if (key.startsWith('style')) {\n      cachePathMap[cachePath] = styleId;\n    }\n    return [order, styleStr];\n  }).filter(isNotNull).sort(function (_ref2, _ref3) {\n    var _ref4 = _slicedToArray(_ref2, 1),\n      o1 = _ref4[0];\n    var _ref5 = _slicedToArray(_ref3, 1),\n      o2 = _ref5[0];\n    return o1 - o2;\n  }).forEach(function (_ref6) {\n    var _ref7 = _slicedToArray(_ref6, 2),\n      style = _ref7[1];\n    styleText += style;\n  });\n\n  // ==================== Fill Cache Path ====================\n  styleText += toStyleStr(\".\".concat(ATTR_CACHE_MAP, \"{content:\\\"\").concat(serializeCacheMap(cachePathMap), \"\\\";}\"), undefined, undefined, _defineProperty({}, ATTR_CACHE_MAP, ATTR_CACHE_MAP), plain);\n  return styleText;\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar Keyframe = /*#__PURE__*/function () {\n  function Keyframe(name, style) {\n    _classCallCheck(this, Keyframe);\n    _defineProperty(this, \"name\", void 0);\n    _defineProperty(this, \"style\", void 0);\n    _defineProperty(this, \"_keyframe\", true);\n    this.name = name;\n    this.style = style;\n  }\n  _createClass(Keyframe, [{\n    key: \"getName\",\n    value: function getName() {\n      var hashId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n      return hashId ? \"\".concat(hashId, \"-\").concat(this.name) : this.name;\n    }\n  }]);\n  return Keyframe;\n}();\nexport default Keyframe;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nfunction splitValues(value) {\n  if (typeof value === 'number') {\n    return [[value], false];\n  }\n  var rawStyle = String(value).trim();\n  var importantCells = rawStyle.match(/(.*)(!important)/);\n  var splitStyle = (importantCells ? importantCells[1] : rawStyle).trim().split(/\\s+/);\n\n  // Combine styles split in brackets, like `calc(1px + 2px)`\n  var temp = [];\n  var brackets = 0;\n  return [splitStyle.reduce(function (list, item) {\n    if (item.includes('(') || item.includes(')')) {\n      var left = item.split('(').length - 1;\n      var right = item.split(')').length - 1;\n      brackets += left - right;\n    }\n    if (brackets >= 0) temp.push(item);\n    if (brackets === 0) {\n      list.push(temp.join(' '));\n      temp = [];\n    }\n    return list;\n  }, []), !!importantCells];\n}\nfunction noSplit(list) {\n  list.notSplit = true;\n  return list;\n}\nvar keyMap = {\n  // Inset\n  inset: ['top', 'right', 'bottom', 'left'],\n  insetBlock: ['top', 'bottom'],\n  insetBlockStart: ['top'],\n  insetBlockEnd: ['bottom'],\n  insetInline: ['left', 'right'],\n  insetInlineStart: ['left'],\n  insetInlineEnd: ['right'],\n  // Margin\n  marginBlock: ['marginTop', 'marginBottom'],\n  marginBlockStart: ['marginTop'],\n  marginBlockEnd: ['marginBottom'],\n  marginInline: ['marginLeft', 'marginRight'],\n  marginInlineStart: ['marginLeft'],\n  marginInlineEnd: ['marginRight'],\n  // Padding\n  paddingBlock: ['paddingTop', 'paddingBottom'],\n  paddingBlockStart: ['paddingTop'],\n  paddingBlockEnd: ['paddingBottom'],\n  paddingInline: ['paddingLeft', 'paddingRight'],\n  paddingInlineStart: ['paddingLeft'],\n  paddingInlineEnd: ['paddingRight'],\n  // Border\n  borderBlock: noSplit(['borderTop', 'borderBottom']),\n  borderBlockStart: noSplit(['borderTop']),\n  borderBlockEnd: noSplit(['borderBottom']),\n  borderInline: noSplit(['borderLeft', 'borderRight']),\n  borderInlineStart: noSplit(['borderLeft']),\n  borderInlineEnd: noSplit(['borderRight']),\n  // Border width\n  borderBlockWidth: ['borderTopWidth', 'borderBottomWidth'],\n  borderBlockStartWidth: ['borderTopWidth'],\n  borderBlockEndWidth: ['borderBottomWidth'],\n  borderInlineWidth: ['borderLeftWidth', 'borderRightWidth'],\n  borderInlineStartWidth: ['borderLeftWidth'],\n  borderInlineEndWidth: ['borderRightWidth'],\n  // Border style\n  borderBlockStyle: ['borderTopStyle', 'borderBottomStyle'],\n  borderBlockStartStyle: ['borderTopStyle'],\n  borderBlockEndStyle: ['borderBottomStyle'],\n  borderInlineStyle: ['borderLeftStyle', 'borderRightStyle'],\n  borderInlineStartStyle: ['borderLeftStyle'],\n  borderInlineEndStyle: ['borderRightStyle'],\n  // Border color\n  borderBlockColor: ['borderTopColor', 'borderBottomColor'],\n  borderBlockStartColor: ['borderTopColor'],\n  borderBlockEndColor: ['borderBottomColor'],\n  borderInlineColor: ['borderLeftColor', 'borderRightColor'],\n  borderInlineStartColor: ['borderLeftColor'],\n  borderInlineEndColor: ['borderRightColor'],\n  // Border radius\n  borderStartStartRadius: ['borderTopLeftRadius'],\n  borderStartEndRadius: ['borderTopRightRadius'],\n  borderEndStartRadius: ['borderBottomLeftRadius'],\n  borderEndEndRadius: ['borderBottomRightRadius']\n};\nfunction wrapImportantAndSkipCheck(value, important) {\n  var parsedValue = value;\n  if (important) {\n    parsedValue = \"\".concat(parsedValue, \" !important\");\n  }\n  return {\n    _skip_check_: true,\n    value: parsedValue\n  };\n}\n\n/**\n * Convert css logical properties to legacy properties.\n * Such as: `margin-block-start` to `margin-top`.\n * Transform list:\n * - inset\n * - margin\n * - padding\n * - border\n */\nvar transform = {\n  visit: function visit(cssObj) {\n    var clone = {};\n    Object.keys(cssObj).forEach(function (key) {\n      var value = cssObj[key];\n      var matchValue = keyMap[key];\n      if (matchValue && (typeof value === 'number' || typeof value === 'string')) {\n        var _splitValues = splitValues(value),\n          _splitValues2 = _slicedToArray(_splitValues, 2),\n          _values = _splitValues2[0],\n          _important = _splitValues2[1];\n        if (matchValue.length && matchValue.notSplit) {\n          // not split means always give same value like border\n          matchValue.forEach(function (matchKey) {\n            clone[matchKey] = wrapImportantAndSkipCheck(value, _important);\n          });\n        } else if (matchValue.length === 1) {\n          // Handle like `marginBlockStart` => `marginTop`\n          clone[matchValue[0]] = wrapImportantAndSkipCheck(_values[0], _important);\n        } else if (matchValue.length === 2) {\n          // Handle like `marginBlock` => `marginTop` & `marginBottom`\n          matchValue.forEach(function (matchKey, index) {\n            var _values$index;\n            clone[matchKey] = wrapImportantAndSkipCheck((_values$index = _values[index]) !== null && _values$index !== void 0 ? _values$index : _values[0], _important);\n          });\n        } else if (matchValue.length === 4) {\n          // Handle like `inset` => `top` & `right` & `bottom` & `left`\n          matchValue.forEach(function (matchKey, index) {\n            var _ref, _values$index2;\n            clone[matchKey] = wrapImportantAndSkipCheck((_ref = (_values$index2 = _values[index]) !== null && _values$index2 !== void 0 ? _values$index2 : _values[index - 2]) !== null && _ref !== void 0 ? _ref : _values[0], _important);\n          });\n        } else {\n          clone[key] = value;\n        }\n      } else {\n        clone[key] = value;\n      }\n    });\n    return clone;\n  }\n};\nexport default transform;","import { inputToRGB, rgbToHex, rgbToHsv } from '@ctrl/tinycolor';\nvar hueStep = 2; // 色相阶梯\nvar saturationStep = 0.16; // 饱和度阶梯，浅色部分\nvar saturationStep2 = 0.05; // 饱和度阶梯，深色部分\nvar brightnessStep1 = 0.05; // 亮度阶梯，浅色部分\nvar brightnessStep2 = 0.15; // 亮度阶梯，深色部分\nvar lightColorCount = 5; // 浅色数量，主色上\nvar darkColorCount = 4; // 深色数量，主色下\n// 暗色主题颜色映射关系表\nvar darkColorMap = [{\n  index: 7,\n  opacity: 0.15\n}, {\n  index: 6,\n  opacity: 0.25\n}, {\n  index: 5,\n  opacity: 0.3\n}, {\n  index: 5,\n  opacity: 0.45\n}, {\n  index: 5,\n  opacity: 0.65\n}, {\n  index: 5,\n  opacity: 0.85\n}, {\n  index: 4,\n  opacity: 0.9\n}, {\n  index: 3,\n  opacity: 0.95\n}, {\n  index: 2,\n  opacity: 0.97\n}, {\n  index: 1,\n  opacity: 0.98\n}];\n// Wrapper function ported from TinyColor.prototype.toHsv\n// Keep it here because of `hsv.h * 360`\nfunction toHsv(_ref) {\n  var r = _ref.r,\n    g = _ref.g,\n    b = _ref.b;\n  var hsv = rgbToHsv(r, g, b);\n  return {\n    h: hsv.h * 360,\n    s: hsv.s,\n    v: hsv.v\n  };\n}\n\n// Wrapper function ported from TinyColor.prototype.toHexString\n// Keep it here because of the prefix `#`\nfunction toHex(_ref2) {\n  var r = _ref2.r,\n    g = _ref2.g,\n    b = _ref2.b;\n  return \"#\".concat(rgbToHex(r, g, b, false));\n}\n\n// Wrapper function ported from TinyColor.prototype.mix, not treeshakable.\n// Amount in range [0, 1]\n// Assume color1 & color2 has no alpha, since the following src code did so.\nfunction mix(rgb1, rgb2, amount) {\n  var p = amount / 100;\n  var rgb = {\n    r: (rgb2.r - rgb1.r) * p + rgb1.r,\n    g: (rgb2.g - rgb1.g) * p + rgb1.g,\n    b: (rgb2.b - rgb1.b) * p + rgb1.b\n  };\n  return rgb;\n}\nfunction getHue(hsv, i, light) {\n  var hue;\n  // 根据色相不同，色相转向不同\n  if (Math.round(hsv.h) >= 60 && Math.round(hsv.h) <= 240) {\n    hue = light ? Math.round(hsv.h) - hueStep * i : Math.round(hsv.h) + hueStep * i;\n  } else {\n    hue = light ? Math.round(hsv.h) + hueStep * i : Math.round(hsv.h) - hueStep * i;\n  }\n  if (hue < 0) {\n    hue += 360;\n  } else if (hue >= 360) {\n    hue -= 360;\n  }\n  return hue;\n}\nfunction getSaturation(hsv, i, light) {\n  // grey color don't change saturation\n  if (hsv.h === 0 && hsv.s === 0) {\n    return hsv.s;\n  }\n  var saturation;\n  if (light) {\n    saturation = hsv.s - saturationStep * i;\n  } else if (i === darkColorCount) {\n    saturation = hsv.s + saturationStep;\n  } else {\n    saturation = hsv.s + saturationStep2 * i;\n  }\n  // 边界值修正\n  if (saturation > 1) {\n    saturation = 1;\n  }\n  // 第一格的 s 限制在 0.06-0.1 之间\n  if (light && i === lightColorCount && saturation > 0.1) {\n    saturation = 0.1;\n  }\n  if (saturation < 0.06) {\n    saturation = 0.06;\n  }\n  return Number(saturation.toFixed(2));\n}\nfunction getValue(hsv, i, light) {\n  var value;\n  if (light) {\n    value = hsv.v + brightnessStep1 * i;\n  } else {\n    value = hsv.v - brightnessStep2 * i;\n  }\n  if (value > 1) {\n    value = 1;\n  }\n  return Number(value.toFixed(2));\n}\nexport default function generate(color) {\n  var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n  var patterns = [];\n  var pColor = inputToRGB(color);\n  for (var i = lightColorCount; i > 0; i -= 1) {\n    var hsv = toHsv(pColor);\n    var colorString = toHex(inputToRGB({\n      h: getHue(hsv, i, true),\n      s: getSaturation(hsv, i, true),\n      v: getValue(hsv, i, true)\n    }));\n    patterns.push(colorString);\n  }\n  patterns.push(toHex(pColor));\n  for (var _i = 1; _i <= darkColorCount; _i += 1) {\n    var _hsv = toHsv(pColor);\n    var _colorString = toHex(inputToRGB({\n      h: getHue(_hsv, _i),\n      s: getSaturation(_hsv, _i),\n      v: getValue(_hsv, _i)\n    }));\n    patterns.push(_colorString);\n  }\n\n  // dark theme patterns\n  if (opts.theme === 'dark') {\n    return darkColorMap.map(function (_ref3) {\n      var index = _ref3.index,\n        opacity = _ref3.opacity;\n      var darkColorString = toHex(mix(inputToRGB(opts.backgroundColor || '#141414'), inputToRGB(patterns[index]), opacity * 100));\n      return darkColorString;\n    });\n  }\n  return patterns;\n}","// Generated by script. Do NOT modify!\n\nexport var presetPrimaryColors = {\n  \"red\": \"#F5222D\",\n  \"volcano\": \"#FA541C\",\n  \"orange\": \"#FA8C16\",\n  \"gold\": \"#FAAD14\",\n  \"yellow\": \"#FADB14\",\n  \"lime\": \"#A0D911\",\n  \"green\": \"#52C41A\",\n  \"cyan\": \"#13C2C2\",\n  \"blue\": \"#1677FF\",\n  \"geekblue\": \"#2F54EB\",\n  \"purple\": \"#722ED1\",\n  \"magenta\": \"#EB2F96\",\n  \"grey\": \"#666666\"\n};\nexport var red = [\"#fff1f0\", \"#ffccc7\", \"#ffa39e\", \"#ff7875\", \"#ff4d4f\", \"#f5222d\", \"#cf1322\", \"#a8071a\", \"#820014\", \"#5c0011\"];\nred.primary = red[5];\nexport var volcano = [\"#fff2e8\", \"#ffd8bf\", \"#ffbb96\", \"#ff9c6e\", \"#ff7a45\", \"#fa541c\", \"#d4380d\", \"#ad2102\", \"#871400\", \"#610b00\"];\nvolcano.primary = volcano[5];\nexport var orange = [\"#fff7e6\", \"#ffe7ba\", \"#ffd591\", \"#ffc069\", \"#ffa940\", \"#fa8c16\", \"#d46b08\", \"#ad4e00\", \"#873800\", \"#612500\"];\norange.primary = orange[5];\nexport var gold = [\"#fffbe6\", \"#fff1b8\", \"#ffe58f\", \"#ffd666\", \"#ffc53d\", \"#faad14\", \"#d48806\", \"#ad6800\", \"#874d00\", \"#613400\"];\ngold.primary = gold[5];\nexport var yellow = [\"#feffe6\", \"#ffffb8\", \"#fffb8f\", \"#fff566\", \"#ffec3d\", \"#fadb14\", \"#d4b106\", \"#ad8b00\", \"#876800\", \"#614700\"];\nyellow.primary = yellow[5];\nexport var lime = [\"#fcffe6\", \"#f4ffb8\", \"#eaff8f\", \"#d3f261\", \"#bae637\", \"#a0d911\", \"#7cb305\", \"#5b8c00\", \"#3f6600\", \"#254000\"];\nlime.primary = lime[5];\nexport var green = [\"#f6ffed\", \"#d9f7be\", \"#b7eb8f\", \"#95de64\", \"#73d13d\", \"#52c41a\", \"#389e0d\", \"#237804\", \"#135200\", \"#092b00\"];\ngreen.primary = green[5];\nexport var cyan = [\"#e6fffb\", \"#b5f5ec\", \"#87e8de\", \"#5cdbd3\", \"#36cfc9\", \"#13c2c2\", \"#08979c\", \"#006d75\", \"#00474f\", \"#002329\"];\ncyan.primary = cyan[5];\nexport var blue = [\"#e6f4ff\", \"#bae0ff\", \"#91caff\", \"#69b1ff\", \"#4096ff\", \"#1677ff\", \"#0958d9\", \"#003eb3\", \"#002c8c\", \"#001d66\"];\nblue.primary = blue[5];\nexport var geekblue = [\"#f0f5ff\", \"#d6e4ff\", \"#adc6ff\", \"#85a5ff\", \"#597ef7\", \"#2f54eb\", \"#1d39c4\", \"#10239e\", \"#061178\", \"#030852\"];\ngeekblue.primary = geekblue[5];\nexport var purple = [\"#f9f0ff\", \"#efdbff\", \"#d3adf7\", \"#b37feb\", \"#9254de\", \"#722ed1\", \"#531dab\", \"#391085\", \"#22075e\", \"#120338\"];\npurple.primary = purple[5];\nexport var magenta = [\"#fff0f6\", \"#ffd6e7\", \"#ffadd2\", \"#ff85c0\", \"#f759ab\", \"#eb2f96\", \"#c41d7f\", \"#9e1068\", \"#780650\", \"#520339\"];\nmagenta.primary = magenta[5];\nexport var grey = [\"#a6a6a6\", \"#999999\", \"#8c8c8c\", \"#808080\", \"#737373\", \"#666666\", \"#404040\", \"#1a1a1a\", \"#000000\", \"#000000\"];\ngrey.primary = grey[5];\nexport var gray = grey;\nexport var presetPalettes = {\n  red: red,\n  volcano: volcano,\n  orange: orange,\n  gold: gold,\n  yellow: yellow,\n  lime: lime,\n  green: green,\n  cyan: cyan,\n  blue: blue,\n  geekblue: geekblue,\n  purple: purple,\n  magenta: magenta,\n  grey: grey\n};\nexport var redDark = [\"#2a1215\", \"#431418\", \"#58181c\", \"#791a1f\", \"#a61d24\", \"#d32029\", \"#e84749\", \"#f37370\", \"#f89f9a\", \"#fac8c3\"];\nredDark.primary = redDark[5];\nexport var volcanoDark = [\"#2b1611\", \"#441d12\", \"#592716\", \"#7c3118\", \"#aa3e19\", \"#d84a1b\", \"#e87040\", \"#f3956a\", \"#f8b692\", \"#fad4bc\"];\nvolcanoDark.primary = volcanoDark[5];\nexport var orangeDark = [\"#2b1d11\", \"#442a11\", \"#593815\", \"#7c4a15\", \"#aa6215\", \"#d87a16\", \"#e89a3c\", \"#f3b765\", \"#f8cf8d\", \"#fae3b7\"];\norangeDark.primary = orangeDark[5];\nexport var goldDark = [\"#2b2111\", \"#443111\", \"#594214\", \"#7c5914\", \"#aa7714\", \"#d89614\", \"#e8b339\", \"#f3cc62\", \"#f8df8b\", \"#faedb5\"];\ngoldDark.primary = goldDark[5];\nexport var yellowDark = [\"#2b2611\", \"#443b11\", \"#595014\", \"#7c6e14\", \"#aa9514\", \"#d8bd14\", \"#e8d639\", \"#f3ea62\", \"#f8f48b\", \"#fafab5\"];\nyellowDark.primary = yellowDark[5];\nexport var limeDark = [\"#1f2611\", \"#2e3c10\", \"#3e4f13\", \"#536d13\", \"#6f9412\", \"#8bbb11\", \"#a9d134\", \"#c9e75d\", \"#e4f88b\", \"#f0fab5\"];\nlimeDark.primary = limeDark[5];\nexport var greenDark = [\"#162312\", \"#1d3712\", \"#274916\", \"#306317\", \"#3c8618\", \"#49aa19\", \"#6abe39\", \"#8fd460\", \"#b2e58b\", \"#d5f2bb\"];\ngreenDark.primary = greenDark[5];\nexport var cyanDark = [\"#112123\", \"#113536\", \"#144848\", \"#146262\", \"#138585\", \"#13a8a8\", \"#33bcb7\", \"#58d1c9\", \"#84e2d8\", \"#b2f1e8\"];\ncyanDark.primary = cyanDark[5];\nexport var blueDark = [\"#111a2c\", \"#112545\", \"#15325b\", \"#15417e\", \"#1554ad\", \"#1668dc\", \"#3c89e8\", \"#65a9f3\", \"#8dc5f8\", \"#b7dcfa\"];\nblueDark.primary = blueDark[5];\nexport var geekblueDark = [\"#131629\", \"#161d40\", \"#1c2755\", \"#203175\", \"#263ea0\", \"#2b4acb\", \"#5273e0\", \"#7f9ef3\", \"#a8c1f8\", \"#d2e0fa\"];\ngeekblueDark.primary = geekblueDark[5];\nexport var purpleDark = [\"#1a1325\", \"#24163a\", \"#301c4d\", \"#3e2069\", \"#51258f\", \"#642ab5\", \"#854eca\", \"#ab7ae0\", \"#cda8f0\", \"#ebd7fa\"];\npurpleDark.primary = purpleDark[5];\nexport var magentaDark = [\"#291321\", \"#40162f\", \"#551c3b\", \"#75204f\", \"#a02669\", \"#cb2b83\", \"#e0529c\", \"#f37fb7\", \"#f8a8cc\", \"#fad2e3\"];\nmagentaDark.primary = magentaDark[5];\nexport var greyDark = [\"#151515\", \"#1f1f1f\", \"#2d2d2d\", \"#393939\", \"#494949\", \"#5a5a5a\", \"#6a6a6a\", \"#7b7b7b\", \"#888888\", \"#969696\"];\ngreyDark.primary = greyDark[5];\nexport var presetDarkPalettes = {\n  red: redDark,\n  volcano: volcanoDark,\n  orange: orangeDark,\n  gold: goldDark,\n  yellow: yellowDark,\n  lime: limeDark,\n  green: greenDark,\n  cyan: cyanDark,\n  blue: blueDark,\n  geekblue: geekblueDark,\n  purple: purpleDark,\n  magenta: magentaDark,\n  grey: greyDark\n};","import { bound01, pad2 } from './util.js';\n// `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n// <http://mjijackson.com/2008/02/rgb-to-hsl-and-rgb-to-hsv-color-model-conversion-algorithms-in-javascript>\n/**\n * Handle bounds / percentage checking to conform to CSS color spec\n * <http://www.w3.org/TR/css3-color/>\n * *Assumes:* r, g, b in [0, 255] or [0, 1]\n * *Returns:* { r, g, b } in [0, 255]\n */\nexport function rgbToRgb(r, g, b) {\n    return {\n        r: bound01(r, 255) * 255,\n        g: bound01(g, 255) * 255,\n        b: bound01(b, 255) * 255,\n    };\n}\n/**\n * Converts an RGB color value to HSL.\n * *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\n * *Returns:* { h, s, l } in [0,1]\n */\nexport function rgbToHsl(r, g, b) {\n    r = bound01(r, 255);\n    g = bound01(g, 255);\n    b = bound01(b, 255);\n    var max = Math.max(r, g, b);\n    var min = Math.min(r, g, b);\n    var h = 0;\n    var s = 0;\n    var l = (max + min) / 2;\n    if (max === min) {\n        s = 0;\n        h = 0; // achromatic\n    }\n    else {\n        var d = max - min;\n        s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n        switch (max) {\n            case r:\n                h = (g - b) / d + (g < b ? 6 : 0);\n                break;\n            case g:\n                h = (b - r) / d + 2;\n                break;\n            case b:\n                h = (r - g) / d + 4;\n                break;\n            default:\n                break;\n        }\n        h /= 6;\n    }\n    return { h: h, s: s, l: l };\n}\nfunction hue2rgb(p, q, t) {\n    if (t < 0) {\n        t += 1;\n    }\n    if (t > 1) {\n        t -= 1;\n    }\n    if (t < 1 / 6) {\n        return p + (q - p) * (6 * t);\n    }\n    if (t < 1 / 2) {\n        return q;\n    }\n    if (t < 2 / 3) {\n        return p + (q - p) * (2 / 3 - t) * 6;\n    }\n    return p;\n}\n/**\n * Converts an HSL color value to RGB.\n *\n * *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n * *Returns:* { r, g, b } in the set [0, 255]\n */\nexport function hslToRgb(h, s, l) {\n    var r;\n    var g;\n    var b;\n    h = bound01(h, 360);\n    s = bound01(s, 100);\n    l = bound01(l, 100);\n    if (s === 0) {\n        // achromatic\n        g = l;\n        b = l;\n        r = l;\n    }\n    else {\n        var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n        var p = 2 * l - q;\n        r = hue2rgb(p, q, h + 1 / 3);\n        g = hue2rgb(p, q, h);\n        b = hue2rgb(p, q, h - 1 / 3);\n    }\n    return { r: r * 255, g: g * 255, b: b * 255 };\n}\n/**\n * Converts an RGB color value to HSV\n *\n * *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n * *Returns:* { h, s, v } in [0,1]\n */\nexport function rgbToHsv(r, g, b) {\n    r = bound01(r, 255);\n    g = bound01(g, 255);\n    b = bound01(b, 255);\n    var max = Math.max(r, g, b);\n    var min = Math.min(r, g, b);\n    var h = 0;\n    var v = max;\n    var d = max - min;\n    var s = max === 0 ? 0 : d / max;\n    if (max === min) {\n        h = 0; // achromatic\n    }\n    else {\n        switch (max) {\n            case r:\n                h = (g - b) / d + (g < b ? 6 : 0);\n                break;\n            case g:\n                h = (b - r) / d + 2;\n                break;\n            case b:\n                h = (r - g) / d + 4;\n                break;\n            default:\n                break;\n        }\n        h /= 6;\n    }\n    return { h: h, s: s, v: v };\n}\n/**\n * Converts an HSV color value to RGB.\n *\n * *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n * *Returns:* { r, g, b } in the set [0, 255]\n */\nexport function hsvToRgb(h, s, v) {\n    h = bound01(h, 360) * 6;\n    s = bound01(s, 100);\n    v = bound01(v, 100);\n    var i = Math.floor(h);\n    var f = h - i;\n    var p = v * (1 - s);\n    var q = v * (1 - f * s);\n    var t = v * (1 - (1 - f) * s);\n    var mod = i % 6;\n    var r = [v, q, p, p, t, v][mod];\n    var g = [t, v, v, q, p, p][mod];\n    var b = [p, p, t, v, v, q][mod];\n    return { r: r * 255, g: g * 255, b: b * 255 };\n}\n/**\n * Converts an RGB color to hex\n *\n * Assumes r, g, and b are contained in the set [0, 255]\n * Returns a 3 or 6 character hex\n */\nexport function rgbToHex(r, g, b, allow3Char) {\n    var hex = [\n        pad2(Math.round(r).toString(16)),\n        pad2(Math.round(g).toString(16)),\n        pad2(Math.round(b).toString(16)),\n    ];\n    // Return a 3 character hex if possible\n    if (allow3Char &&\n        hex[0].startsWith(hex[0].charAt(1)) &&\n        hex[1].startsWith(hex[1].charAt(1)) &&\n        hex[2].startsWith(hex[2].charAt(1))) {\n        return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n    }\n    return hex.join('');\n}\n/**\n * Converts an RGBA color plus alpha transparency to hex\n *\n * Assumes r, g, b are contained in the set [0, 255] and\n * a in [0, 1]. Returns a 4 or 8 character rgba hex\n */\n// eslint-disable-next-line max-params\nexport function rgbaToHex(r, g, b, a, allow4Char) {\n    var hex = [\n        pad2(Math.round(r).toString(16)),\n        pad2(Math.round(g).toString(16)),\n        pad2(Math.round(b).toString(16)),\n        pad2(convertDecimalToHex(a)),\n    ];\n    // Return a 4 character hex if possible\n    if (allow4Char &&\n        hex[0].startsWith(hex[0].charAt(1)) &&\n        hex[1].startsWith(hex[1].charAt(1)) &&\n        hex[2].startsWith(hex[2].charAt(1)) &&\n        hex[3].startsWith(hex[3].charAt(1))) {\n        return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);\n    }\n    return hex.join('');\n}\n/**\n * Converts an RGBA color to an ARGB Hex8 string\n * Rarely used, but required for \"toFilter()\"\n */\nexport function rgbaToArgbHex(r, g, b, a) {\n    var hex = [\n        pad2(convertDecimalToHex(a)),\n        pad2(Math.round(r).toString(16)),\n        pad2(Math.round(g).toString(16)),\n        pad2(Math.round(b).toString(16)),\n    ];\n    return hex.join('');\n}\n/** Converts a decimal to a hex value */\nexport function convertDecimalToHex(d) {\n    return Math.round(parseFloat(d) * 255).toString(16);\n}\n/** Converts a hex value to a decimal */\nexport function convertHexToDecimal(h) {\n    return parseIntFromHex(h) / 255;\n}\n/** Parse a base-16 hex value into a base-10 integer */\nexport function parseIntFromHex(val) {\n    return parseInt(val, 16);\n}\nexport function numberInputToObject(color) {\n    return {\n        r: color >> 16,\n        g: (color & 0xff00) >> 8,\n        b: color & 0xff,\n    };\n}\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAABYlAAAWJQFJUiTwAAABaWlDQ1BEaXNwbGF5IFAzAAB4nHWQvUvDUBTFT6tS0DqIDh0cMolD1NIKdnFoKxRFMFQFq1OafgltfCQpUnETVyn4H1jBWXCwiFRwcXAQRAcR3Zw6KbhoeN6XVNoi3sfl/Ticc7lcwBtQGSv2AijplpFMxKS11Lrke4OHnlOqZrKooiwK/v276/PR9d5PiFlNu3YQ2U9cl84ul3aeAlN//V3Vn8maGv3f1EGNGRbgkYmVbYsJ3iUeMWgp4qrgvMvHgtMunzuelWSc+JZY0gpqhrhJLKc79HwHl4plrbWD2N6f1VeXxRzqUcxhEyYYilBRgQQF4X/8044/ji1yV2BQLo8CLMpESRETssTz0KFhEjJxCEHqkLhz634PrfvJbW3vFZhtcM4v2tpCAzidoZPV29p4BBgaAG7qTDVUR+qh9uZywPsJMJgChu8os2HmwiF3e38M6Hvh/GMM8B0CdpXzryPO7RqFn4Er/QcXKWq8MSlPPgAAAsVJREFUeAHtWg114zAMVg9BIZjBymCGUAhlsDJoGXQMdgx6DJIh6A5Bcgg8BjqrkVbFy9o6cRLvvX3v6enF8Z8kR7bkAPxgXiwgARBx6Zn19OjJeFp5WjIR3j3VzN88vXoqF4vFO8wJP3HrqfDksB+OntYwNWhQT1UwmcLTM78zbBWpv/S04nd7rqtBfW1gbPDE9OCOJ7Ts2dcmUMSJymEM+I6f8LJUiG8hEQJBkvYtA+yUlp77aPyOMcgiv9U4O0iBYPJpNdM93jaZEGryZFYLE4E/eDdICF7zghVMDGxcdD/L83p0vRonhFpOLso7sTsjvMDMYKdBKO5tsOEGFY7lkyOAzSYoq+H2ro0Xf7yBTKCWUnWr4vquijNAWcFeq3Tso312eye2XsX9hGehQr0/xXo2bI4sX38LPIjAQASwvYNiqARlWY0oB6Hm57Ryfqk6ljmd02tIi8FHD44dSu7LSnmXAK+QL/4yt1KgBXhg/gb5omRupEALIGauIV+IckXZLQEM8xryhcTQnR/xuXD2QPsK1Nw6BfiW0AKcpcMRoq1UUHP7WCWfBIAEPntEGOa1FGgB5AufPHiJgGHeaYF/zC3kC1GubGgtAUrmD5AvHpmXUhAKQKaxiT7kpO6YD5iWH8uvKhV84ttDXOfhcbroOE4fBx6nJVL8c62SZAIcZAa8RIrreyvOlo0IobR/O1JUwUcrcJgL2KR4qjBIutWo4AYHmBkUufFcTjGNcklsPanVYGLahklWCxODPRsOUiJeMgEOJ8yPsjd0fVx6V2f7wZqIG08nlfeQAoEQLzhCyhGbze6QfPJqgK0ya4UJU4844vVVOBB5p5PS0lmQPhZhje+wfUVb4BQJZfx8uyiD01KjjZA8SHgWMvzugN3XrLPdFx+xHxwLYmEAUv9qQETxBD0baP9qIL8ZUOBUQg6/GvwgAf4DzdDFZ3Lww6AAAAAASUVORK5CYII=\"","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nfunction _objectWithoutProperties(e, t) {\n  if (null == e) return {};\n  var o,\n    r,\n    i = objectWithoutPropertiesLoose(e, t);\n  if (Object.getOwnPropertySymbols) {\n    var s = Object.getOwnPropertySymbols(e);\n    for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);\n  }\n  return i;\n}\nexport { _objectWithoutProperties as default };","// Cache implementation based on Erik Rasmussen's `lru-memoize`:\n// https://github.com/erikras/lru-memoize\nvar NOT_FOUND = 'NOT_FOUND';\n\nfunction createSingletonCache(equals) {\n  var entry;\n  return {\n    get: function get(key) {\n      if (entry && equals(entry.key, key)) {\n        return entry.value;\n      }\n\n      return NOT_FOUND;\n    },\n    put: function put(key, value) {\n      entry = {\n        key: key,\n        value: value\n      };\n    },\n    getEntries: function getEntries() {\n      return entry ? [entry] : [];\n    },\n    clear: function clear() {\n      entry = undefined;\n    }\n  };\n}\n\nfunction createLruCache(maxSize, equals) {\n  var entries = [];\n\n  function get(key) {\n    var cacheIndex = entries.findIndex(function (entry) {\n      return equals(key, entry.key);\n    }); // We found a cached entry\n\n    if (cacheIndex > -1) {\n      var entry = entries[cacheIndex]; // Cached entry not at top of cache, move it to the top\n\n      if (cacheIndex > 0) {\n        entries.splice(cacheIndex, 1);\n        entries.unshift(entry);\n      }\n\n      return entry.value;\n    } // No entry found in cache, return sentinel\n\n\n    return NOT_FOUND;\n  }\n\n  function put(key, value) {\n    if (get(key) === NOT_FOUND) {\n      // TODO Is unshift slow?\n      entries.unshift({\n        key: key,\n        value: value\n      });\n\n      if (entries.length > maxSize) {\n        entries.pop();\n      }\n    }\n  }\n\n  function getEntries() {\n    return entries;\n  }\n\n  function clear() {\n    entries = [];\n  }\n\n  return {\n    get: get,\n    put: put,\n    getEntries: getEntries,\n    clear: clear\n  };\n}\n\nexport var defaultEqualityCheck = function defaultEqualityCheck(a, b) {\n  return a === b;\n};\nexport function createCacheKeyComparator(equalityCheck) {\n  return function areArgumentsShallowlyEqual(prev, next) {\n    if (prev === null || next === null || prev.length !== next.length) {\n      return false;\n    } // Do this in a for loop (and not a `forEach` or an `every`) so we can determine equality as fast as possible.\n\n\n    var length = prev.length;\n\n    for (var i = 0; i < length; i++) {\n      if (!equalityCheck(prev[i], next[i])) {\n        return false;\n      }\n    }\n\n    return true;\n  };\n}\n// defaultMemoize now supports a configurable cache size with LRU behavior,\n// and optional comparison of the result value with existing values\nexport function defaultMemoize(func, equalityCheckOrOptions) {\n  var providedOptions = typeof equalityCheckOrOptions === 'object' ? equalityCheckOrOptions : {\n    equalityCheck: equalityCheckOrOptions\n  };\n  var _providedOptions$equa = providedOptions.equalityCheck,\n      equalityCheck = _providedOptions$equa === void 0 ? defaultEqualityCheck : _providedOptions$equa,\n      _providedOptions$maxS = providedOptions.maxSize,\n      maxSize = _providedOptions$maxS === void 0 ? 1 : _providedOptions$maxS,\n      resultEqualityCheck = providedOptions.resultEqualityCheck;\n  var comparator = createCacheKeyComparator(equalityCheck);\n  var cache = maxSize === 1 ? createSingletonCache(comparator) : createLruCache(maxSize, comparator); // we reference arguments instead of spreading them for performance reasons\n\n  function memoized() {\n    var value = cache.get(arguments);\n\n    if (value === NOT_FOUND) {\n      // @ts-ignore\n      value = func.apply(null, arguments);\n\n      if (resultEqualityCheck) {\n        var entries = cache.getEntries();\n        var matchingEntry = entries.find(function (entry) {\n          return resultEqualityCheck(entry.value, value);\n        });\n\n        if (matchingEntry) {\n          value = matchingEntry.value;\n        }\n      }\n\n      cache.put(arguments, value);\n    }\n\n    return value;\n  }\n\n  memoized.clearCache = function () {\n    return cache.clear();\n  };\n\n  return memoized;\n}","import { defaultMemoize, defaultEqualityCheck } from './defaultMemoize';\nexport { defaultMemoize, defaultEqualityCheck };\n\nfunction getDependencies(funcs) {\n  var dependencies = Array.isArray(funcs[0]) ? funcs[0] : funcs;\n\n  if (!dependencies.every(function (dep) {\n    return typeof dep === 'function';\n  })) {\n    var dependencyTypes = dependencies.map(function (dep) {\n      return typeof dep === 'function' ? \"function \" + (dep.name || 'unnamed') + \"()\" : typeof dep;\n    }).join(', ');\n    throw new Error(\"createSelector expects all input-selectors to be functions, but received the following types: [\" + dependencyTypes + \"]\");\n  }\n\n  return dependencies;\n}\n\nexport function createSelectorCreator(memoize) {\n  for (var _len = arguments.length, memoizeOptionsFromArgs = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n    memoizeOptionsFromArgs[_key - 1] = arguments[_key];\n  }\n\n  var createSelector = function createSelector() {\n    for (var _len2 = arguments.length, funcs = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n      funcs[_key2] = arguments[_key2];\n    }\n\n    var _recomputations = 0;\n\n    var _lastResult; // Due to the intricacies of rest params, we can't do an optional arg after `...funcs`.\n    // So, start by declaring the default value here.\n    // (And yes, the words 'memoize' and 'options' appear too many times in this next sequence.)\n\n\n    var directlyPassedOptions = {\n      memoizeOptions: undefined\n    }; // Normally, the result func or \"output selector\" is the last arg\n\n    var resultFunc = funcs.pop(); // If the result func is actually an _object_, assume it's our options object\n\n    if (typeof resultFunc === 'object') {\n      directlyPassedOptions = resultFunc; // and pop the real result func off\n\n      resultFunc = funcs.pop();\n    }\n\n    if (typeof resultFunc !== 'function') {\n      throw new Error(\"createSelector expects an output function after the inputs, but received: [\" + typeof resultFunc + \"]\");\n    } // Determine which set of options we're using. Prefer options passed directly,\n    // but fall back to options given to createSelectorCreator.\n\n\n    var _directlyPassedOption = directlyPassedOptions,\n        _directlyPassedOption2 = _directlyPassedOption.memoizeOptions,\n        memoizeOptions = _directlyPassedOption2 === void 0 ? memoizeOptionsFromArgs : _directlyPassedOption2; // Simplifying assumption: it's unlikely that the first options arg of the provided memoizer\n    // is an array. In most libs I've looked at, it's an equality function or options object.\n    // Based on that, if `memoizeOptions` _is_ an array, we assume it's a full\n    // user-provided array of options. Otherwise, it must be just the _first_ arg, and so\n    // we wrap it in an array so we can apply it.\n\n    var finalMemoizeOptions = Array.isArray(memoizeOptions) ? memoizeOptions : [memoizeOptions];\n    var dependencies = getDependencies(funcs);\n    var memoizedResultFunc = memoize.apply(void 0, [function recomputationWrapper() {\n      _recomputations++; // apply arguments instead of spreading for performance.\n\n      return resultFunc.apply(null, arguments);\n    }].concat(finalMemoizeOptions)); // If a selector is called with the exact same arguments we don't need to traverse our dependencies again.\n\n    var selector = memoize(function dependenciesChecker() {\n      var params = [];\n      var length = dependencies.length;\n\n      for (var i = 0; i < length; i++) {\n        // apply arguments instead of spreading and mutate a local list of params for performance.\n        // @ts-ignore\n        params.push(dependencies[i].apply(null, arguments));\n      } // apply arguments instead of spreading for performance.\n\n\n      _lastResult = memoizedResultFunc.apply(null, params);\n      return _lastResult;\n    });\n    Object.assign(selector, {\n      resultFunc: resultFunc,\n      memoizedResultFunc: memoizedResultFunc,\n      dependencies: dependencies,\n      lastResult: function lastResult() {\n        return _lastResult;\n      },\n      recomputations: function recomputations() {\n        return _recomputations;\n      },\n      resetRecomputations: function resetRecomputations() {\n        return _recomputations = 0;\n      }\n    });\n    return selector;\n  }; // @ts-ignore\n\n\n  return createSelector;\n}\nexport var createSelector = /* #__PURE__ */createSelectorCreator(defaultMemoize);\n// Manual definition of state and output arguments\nexport var createStructuredSelector = function createStructuredSelector(selectors, selectorCreator) {\n  if (selectorCreator === void 0) {\n    selectorCreator = createSelector;\n  }\n\n  if (typeof selectors !== 'object') {\n    throw new Error('createStructuredSelector expects first argument to be an object ' + (\"where each property is a selector, instead received a \" + typeof selectors));\n  }\n\n  var objectKeys = Object.keys(selectors);\n  var resultSelector = selectorCreator( // @ts-ignore\n  objectKeys.map(function (key) {\n    return selectors[key];\n  }), function () {\n    for (var _len3 = arguments.length, values = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n      values[_key3] = arguments[_key3];\n    }\n\n    return values.reduce(function (composition, value, index) {\n      composition[objectKeys[index]] = value;\n      return composition;\n    }, {});\n  });\n  return resultSelector;\n};","import React, { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport MainLand from \"../components/index/main-land\";\nimport { useAppDispatch } from \"../slices\";\nimport { getParameter } from \"@tencent/kg-base\";\n\nconst IndexPage = () => {\n  const dispatch = useAppDispatch();\n\n  useEffect(() => {\n    // dispatch(getRobotIndex({ lUid: Number(getCookie(\"uid\")) || 1000249 }));\n    // dispatch(getRobotList({ uid: Number(getCookie(\"uid\")) || 1000249 }));\n    // dispatch(getRobotSearchList({}));\n  }, []);\n\n  return (\n    <div className=\"ai-container\">\n      <div className=\"wrapper\">\n        <div className=\"header\" />\n        <div className=\"main-container\">\n          {/* <LoginPop /> */}\n          {/* <div className=\"main-header anim\">{i18n._(\"Discover\")}</div> */}\n          <MainLand />\n        </div>\n      </div>\n    </div>\n  );\n};\n\nexport default IndexPage;\n","import React, { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport { reqLogin } from \"../../../api/main-land\";\nimport { getParameter } from \"@tencent/kg-base\";\n\nconst LoginPop = () => {\n  // const dispatch = useAppDispatch();\n\n  const Login = async (code: string) => {\n    const res = await reqLogin(code);\n    console.log(\"reqLogin res: \", res);\n    if (res?.code === 0 && res?.data?.code === 0) {\n      window.location.replace(location.href?.split?.(\"?\")?.[0]);\n    }\n  };\n\n  useEffect(() => {\n    console.log(\"========================-----========================\");\n    // dispatch(getRobotIndex({ lUid: Number(getCookie(\"uid\")) || 1000249 }));\n    // dispatch(getRobotList({ uid: Number(getCookie(\"uid\")) || 1000249 }));\n    // dispatch(getRobotSearchList({}));\n    const code = getParameter(\"code\");\n    console.log(\"code:===>\", code);\n    if (code) {\n      Login(code);\n    } else {\n      let obj = new WxLogin({\n        id: \"wx_container\",\n        appid: \"wx3a2cadc629d57d05\",\n        scope: \"snsapi_login\",\n        redirect_uri: encodeURIComponent(location.href.split(\"#\")[0]),\n        state: \"1234ejvaQTYGWIa3MKRlFXuwtEFbW7Gr\",\n        style: \"black\",\n        href: \"\",\n      });\n    }\n  }, []);\n\n  return (\n    <div\n      style={{\n        width: 351,\n        height: 460,\n        backgroundColor: \"rgba(255, 255, 255, 0.8)\",\n        borderRadius: 10,\n        display: \"flex\",\n        justifyContent: \"center\",\n        alignItems: \"center\",\n      }}\n      id=\"wx_container\"\n    />\n  );\n};\n\nexport default LoginPop;\n","import React, { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport { getParameter } from \"@tencent/kg-base\";\nimport LoginPop from \"../components/common/Login\";\n// @ts-ignore\nimport mainBg from \"../assets/img/main-bg.jpg\";\n\nconst Login = () => {\n  // const dispatch = useAppDispatch();\n\n  const footer = () => {\n    return (\n      <div style={{ color: \"#fff\", position: \"absolute\", bottom: 40, width: \"100%\" }} className=\"flex-row-center\">\n        <div style={{}}>\n          友情链接：\n          <a href=\"https://y.qq.com\" style={{ textDecoration: \"none\", color: \"#fff\" }}>\n            QQ音乐 ｜ 腾讯音乐\n          </a>\n        </div>\n        <div className=\"\" style={{ textAlign: \"center\", margin: \"0 56px\" }}>\n          <div>\n            Copyright © 1998 - 2024 Tencent.\n            <a\n              target=\"_blank\"\n              rel=\"nofollow noopener noreferrer\"\n              href=\"http://www.tencent.com/en-us/le/copyrightstatement.shtml\"\n              title=\"All Rights Reserved.\"\n              style={{ color: \"#fff\", textDecoration: \"none\" }}\n            >\n              All Rights Reserved.\n            </a>\n          </div>\n        </div>\n        <div>腾讯音乐娱乐（深圳）有限公司 版权所有</div>\n      </div>\n    );\n  };\n\n  return (\n    <div\n      style={{\n        display: \"flex\",\n        flexDirection: \"row\",\n        justifyContent: \"center\",\n        alignItems: \"center\",\n        position: \"absolute\",\n        width: \"100vw\",\n        height: \"100vh\",\n        left: 0,\n        top: 0,\n        zIndex: 100,\n        backgroundImage: `url(${mainBg})`,\n        backgroundSize: \"cover\",\n        backgroundPosition: \"center\",\n      }}\n    >\n      <div className=\"logo-wrapper\" style={{ left: 30, top: 35 }}>\n        <div className=\"logo\" />\n        {/* <div className=\"ic-split\" />\n        <div className=\"tts-text\" /> */}\n      </div>\n      <div style={{ color: \"#fff\", fontWeight: 400, marginRight: 100 }}>\n        <div style={{ fontSize: 57 }}>琴语传声 赋能语音 塑造未来</div>\n        <div style={{ fontSize: 30, marginTop: 86, marginBottom: 27 }}>腾讯音乐TTS，让每一句话都绽放独特魅力！</div>\n        <div style={{ fontSize: 17, display: \"flex\", flexDirection: \"row\" }}>\n          <div>文本转语言</div>\n          <div style={{ marginLeft: 64 }}>声音克隆</div>\n          <div style={{ marginLeft: 64 }}>AI播客</div>\n        </div>\n      </div>\n      <LoginPop />\n      {footer()}\n    </div>\n  );\n};\n\nexport default Login;\n","/* eslint-disable prettier/prettier */\nimport { config } from \"../../constants/asr-config\";\n/** 获取签名 start */\n\nexport function toUint8Array(wordArray) {\n  // Shortcuts\n  const words = wordArray.words;\n  const sigBytes = wordArray.sigBytes;\n\n  // Convert\n  const u8 = new Uint8Array(sigBytes);\n  for (let i = 0; i < sigBytes; i++) {\n    u8[i] = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n  }\n  return u8;\n}\n\nexport function Uint8ArrayToString(fileData) {\n  let dataString = \"\";\n  // eslint-disable-next-line @typescript-eslint/prefer-for-of\n  for (let i = 0; i < fileData.length; i++) {\n    dataString += String.fromCharCode(fileData[i]);\n  }\n  return dataString;\n}\n// 签名函数示例\nexport function signCallback(signStr) {\n  const secretKey = window.config.tempSecretKey; // config.secretKey;\n  const hash = window.CryptoJSTest.HmacSHA1(signStr, secretKey);\n  const bytes = Uint8ArrayToString(toUint8Array(hash));\n  return window.btoa(bytes);\n}\n\n/** 获取签名 end */\n","export const config = {\n  appId: \"1258344705\",\n};\n","/* eslint-disable prettier/prettier */\n// 识别需要过滤的参数\nconst needFiltrationParams = [\"appid\", \"secretkey\", \"signCallback\"];\n\nfunction formatSignString(query, params) {\n  let strParam = \"\";\n  let signStr = \"asr.cloud.tencent.com/asr/v2/\";\n  if (query[\"appid\"]) {\n    signStr += query[\"appid\"];\n  }\n  const keys = Object.keys(params);\n  keys.sort();\n  for (let i = 0, len = keys.length; i < len; i++) {\n    strParam += `&${keys[i]}=${params[keys[i]]}`;\n  }\n  return `${signStr}?${strParam.slice(1)}`;\n}\nasync function createQuery(query) {\n  let params = {};\n  const time = new Date().getTime();\n\n  async function getServerTime() {\n    return new Promise((resolve, reject) => {\n      try {\n        const xhr = new XMLHttpRequest();\n        xhr.open(\"GET\", \"https://asr.cloud.tencent.com/server_time\", true);\n        xhr.send();\n        xhr.onreadystatechange = function () {\n          if (xhr.readyState === 4 && xhr.status === 200) {\n            resolve(xhr.responseText);\n          }\n        };\n      } catch (error) {\n        reject(error);\n      }\n    });\n  }\n  const serverTime = await getServerTime();\n  params[\"secretid\"] = query.secretid || \"\";\n  params[\"engine_model_type\"] = query.engine_model_type || \"16k_zh\";\n  params[\"timestamp\"] = parseInt(serverTime, 10) || Math.round(time / 1000);\n  params[\"expired\"] = Math.round(time / 1000) + 24 * 60 * 60;\n  params[\"nonce\"] = Math.round(time / 100000);\n  params[\"voice_id\"] = guid();\n  params[\"voice_format\"] = query.voice_format || 1;\n\n  const tempQuery = { ...query };\n  for (let i = 0, len = needFiltrationParams.length; i < len; i++) {\n    if (tempQuery.hasOwnProperty(needFiltrationParams[i])) {\n      delete tempQuery[needFiltrationParams[i]];\n    }\n  }\n\n  params = {\n    ...tempQuery,\n    ...params,\n  };\n  return params;\n}\n\nexport const guid = () => {\n  return \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g, function (c) {\n    const r = (Math.random() * 16) | 0;\n    const v = c === \"x\" ? r : (r & 0x3) | 0x8;\n    return v.toString(16);\n  });\n};\n// 获取签名原文\nasync function getUrl(self, params) {\n  if (!params.appid || !params.secretid) {\n    self.isLog && console.log(self.requestId, \"请确认是否填入账号信息\", TAG);\n    self.OnError(\"请确认是否填入账号信息\");\n    return false;\n  }\n  const urlQuery = await createQuery(params);\n  const queryStr = formatSignString(params, urlQuery);\n  let signature = \"\";\n  if (params.signCallback) {\n    signature = params.signCallback(queryStr);\n  } else {\n    signature = signCallback(params.secretkey, queryStr);\n  }\n  return `wss://${queryStr}&signature=${encodeURIComponent(signature)}`;\n}\n/** 获取签名 start */\n\nfunction toUint8Array(wordArray) {\n  // Shortcuts\n  const words = wordArray.words;\n  const sigBytes = wordArray.sigBytes;\n\n  // Convert\n  const u8 = new Uint8Array(sigBytes);\n  for (let i = 0; i < sigBytes; i++) {\n    u8[i] = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n  }\n  return u8;\n}\n\nfunction Uint8ArrayToString(fileData) {\n  let dataString = \"\";\n  // eslint-disable-next-line @typescript-eslint/prefer-for-of\n  for (let i = 0; i < fileData.length; i++) {\n    dataString += String.fromCharCode(fileData[i]);\n  }\n  return dataString;\n}\n// 签名函数示例\nfunction signCallback(secretKey, signStr) {\n  const hash = window.CryptoJSTest.HmacSHA1(signStr, secretKey);\n  const bytes = Uint8ArrayToString(toUint8Array(hash));\n  return window.btoa(bytes);\n}\n\n/** 获取签名 end */\n\nconst TAG = \"SpeechRecognizer\";\nexport class SpeechRecognizer {\n  constructor(params, requestId, isLog) {\n    this.socket = null;\n    this.isSignSuccess = false; // 是否鉴权成功\n    this.isSentenceBegin = false; // 是否一句话开始\n    this.query = {\n      ...params,\n    };\n    this.isRecognizeComplete = false; // 当前是否识别结束\n    this.requestId = requestId;\n    this.isLog = isLog;\n    this.sendCount = 0;\n    this.getMessageList = [];\n  }\n  // 暂停识别，关闭连接\n  stop() {\n    if (this.socket && this.socket.readyState === 1) {\n      this.socket.send(JSON.stringify({ type: \"end\" }));\n      this.isRecognizeComplete = true;\n    } else {\n      // this.OnError({ code : 6003, message: '连接未建立或连接已关闭' });\n      if (this.socket && this.socket.readyState === 1) {\n        this.socket.close();\n      }\n    }\n  }\n  // 建立websocket链接 data 为用户收集的音频数据\n  async start() {\n    this.socket = null;\n    this.getMessageList = [];\n    const url = await getUrl(this, this.query);\n    if (!url) {\n      this.isLog && console.log(this.requestId, \"鉴权失败\", TAG);\n      this.OnError(\"鉴权失败\");\n      return;\n    }\n    this.isLog && console.log(this.requestId, \"get ws url\", url, TAG);\n    if (\"WebSocket\" in window) {\n      this.socket = new WebSocket(url);\n    } else if (\"MozWebSocket\" in window) {\n      this.socket = new MozWebSocket(url);\n    } else {\n      this.isLog && console.log(this.requestId, \"浏览器不支持WebSocket\", TAG);\n      this.OnError(\"浏览器不支持WebSocket\");\n      return;\n    }\n    this.socket.onopen = (e) => {\n      // 连接建立时触发\n      this.isLog && console.log(this.requestId, \"连接建立\", e, TAG);\n    };\n    this.socket.onmessage = async (e) => {\n      // 连接建立时触发\n      try {\n        this.getMessageList.push(JSON.stringify(e));\n        const response = JSON.parse(e.data);\n        if (response.code !== 0) {\n          if (this.socket.readyState === 1) {\n            this.socket.close();\n          }\n          this.isLog && console.log(this.requestId, JSON.stringify(response), TAG);\n          this.OnError(response);\n        } else {\n          if (!this.isSignSuccess) {\n            this.OnRecognitionStart(response);\n            this.isSignSuccess = true;\n          }\n          if (response.final === 1) {\n            this.OnRecognitionComplete(response);\n            return;\n          }\n          if (response.result) {\n            if (response.result.slice_type === 0) {\n              this.OnSentenceBegin(response);\n              this.isSentenceBegin = true;\n            } else if (response.result.slice_type === 2) {\n              if (!this.isSentenceBegin) {\n                this.OnSentenceBegin(response);\n              }\n              this.OnSentenceEnd(response);\n            } else {\n              this.OnRecognitionResultChange(response);\n            }\n          }\n          this.isLog && console.log(this.requestId, response, TAG);\n        }\n      } catch (e) {\n        this.isLog && console.log(this.requestId, \"socket.onmessage catch error\", JSON.stringify(e), TAG);\n      }\n    };\n    this.socket.onerror = (e) => {\n      // 通信发生错误时触发\n      this.isLog && console.log(this.requestId, \"socket error callback\", e, TAG);\n      this.socket.close();\n      this.OnError(e);\n    };\n    this.socket.onclose = (event) => {\n      try {\n        if (!this.isRecognizeComplete) {\n          this.isLog && console.log(this.requestId, \"socket is close and error\", JSON.stringify(event), TAG);\n          this.OnError(event);\n        }\n      } catch (e) {\n        this.isLog && console.log(this.requestId, \"socket is onclose catch\" + this.sendCount, JSON.stringify(e), TAG);\n      }\n    };\n  }\n  close() {\n    this.socket?.close(1000);\n  }\n  // 发送数据\n  write(data) {\n    try {\n      if (!this.socket || String(this.socket.readyState) !== \"1\") {\n        setTimeout(() => {\n          if (!this.socket || this.socket.readyState !== 1) {\n            this.socket.send(data);\n          }\n        }, 40);\n        // this.OnError({ code : 6001, message: '连接未建立，请稍后发送数据！' });\n      }\n      this.sendCount += 1;\n      this.socket.send(data);\n    } catch (e) {\n      this.isLog && console.log(this.requestId, \"发送数据 error catch\", e, TAG);\n    }\n  }\n  // 开始识别的时候\n  OnRecognitionStart(res) {}\n  // 一句话开始的时候\n  OnSentenceBegin(res) {}\n  // 识别结果发生变化的时候\n  OnRecognitionResultChange() {}\n  // 一句话结束的时候\n  OnSentenceEnd() {}\n  // 识别结束的时候\n  OnRecognitionComplete() {}\n  // 识别失败\n  OnError() {}\n}\ntypeof window !== \"undefined\" && (window.SpeechRecognizer = SpeechRecognizer);\n","import COS from \"cos-js-sdk-v5\";\n// @ts-ignore\nimport util from \"cos-js-sdk-v5/src/util\";\n\ninterface UploadFileInput {\n  uploadType: string;\n  filename: string;\n  file: File;\n  isSign?: boolean;\n}\n\ninterface CosUtilAuth {\n  bucket: string;\n  region: string;\n  tmpSecretId: string;\n  tmpSecretKey: string;\n  sessionToken: string;\n  startTime: number;\n  expiredTime: number;\n  uploadFilePath: string;\n  CDN: string;\n  md5?: string;\n  URL?: string;\n}\n\nexport type GetCosSts = (key: string) => Promise<CosUtilAuth>;\n\nclass CosUtil {\n  private client: any;\n  private auth: any;\n  private customGetSts: GetCosSts;\n  private CDN = \"\";\n\n  constructor(opts: { getSts: GetCosSts }) {\n    this.customGetSts = opts.getSts;\n  }\n\n  // eslint-disable-next-line @typescript-eslint/member-ordering\n  static async md5(file: any) {\n    return new Promise<string>(function (r, j) {\n      util.getFileMd5(file, function (err: any, data: any) {\n        if (err) {\n          j(err);\n          return;\n        }\n        r(data);\n      });\n    });\n  }\n\n  get cosClient() {\n    return this.client;\n  }\n\n  _getFileKey(uploadType: string, filename: string) {\n    return `${uploadType}/${filename}`;\n  }\n\n  async _getAuthToken(key: string) {\n    const ret = await this.customGetSts(key);\n\n    if (!ret || !Object.keys(ret).includes(\"tmpSecretId\")) {\n      throw new Error(\"获取上传文件凭证出错\");\n    }\n    return ret;\n  }\n\n  async _getCosClientMini(key: string) {\n    const data = await this._getAuthToken(key);\n    this.CDN = data.URL!;\n    const client = new COS({\n      SecretId: data.tmpSecretId,\n      SecretKey: data.tmpSecretKey,\n      SecurityToken: data.sessionToken,\n      ExpiredTime: data.expiredTime,\n      //   SimpleUploadMethod: \"putObject\", // 强烈建议，高级上传、批量上传内部对小文件做简单上传时使用putObject,sdk版本至少需要v1.3.0\n    });\n    return { client, auth: data };\n  }\n\n  async sliceUploadFile({ file }: { file: any }) {\n    const { client, auth } = await this._getCosClientMini(\"key\");\n    console.log(\"auth:::::::>\", auth);\n    return new Promise((resolve, reject) => {\n      client.sliceUploadFile(\n        {\n          Bucket: auth.bucket, // 填入您自己的存储桶，必须字段\n          Region: auth.region, // 存储桶所在地域，例如ap-beijing，必须字段\n          Key: auth.uploadFilePath, // `image_clone/${Date.now()}.${suffix}`,       // 存储在桶里的对象键（例如1.jpg，a/b/test.txt），必须字段\n          Body: file, // 必须\n          ChunkSize: 1024 * 1024 * 5, // 触发分块上传的阈值，超过5MB使用分块上传，非必须，按需调整，最小支持1MB\n          onTaskReady: function (taskId) {\n            // 非必须\n            console.log(\"=======>\", taskId);\n          },\n          onProgress: function (progressData) {\n            // 非必须\n            console.log(\">>>>>>>>>>\", JSON.stringify(progressData));\n          },\n          Headers: {\n            // 'Content-Type': `image/${suffix}`\n            \"x-cos-meta-md5\": auth.md5,\n          },\n        },\n        function (err, data) {\n          if (err) {\n            console.log(\"上传失败\", err);\n            reject(err);\n          } else {\n            console.log(\"上传成功\", data);\n            resolve(data);\n          }\n        },\n      );\n    });\n  }\n}\n\nexport default CosUtil;\n","/* eslint-disable prettier/prettier */\n/* eslint-disable @typescript-eslint/no-unused-expressions */\n/* eslint-disable @typescript-eslint/member-ordering */\nimport { SpeechRecognizer } from \"./speechrecognizer.js\";\nimport { generateAuth } from \"projects/ttsMake/api/main-land\";\nimport CosUtil from \"../cos-util\";\n\nexport function to16BitPCM(input) {\n  const dataLength = input.length * (16 / 8);\n  const dataBuffer = new ArrayBuffer(dataLength);\n  const dataView = new DataView(dataBuffer);\n  let offset = 0;\n  for (let i = 0; i < input.length; i++, offset += 2) {\n    const s = Math.max(-1, Math.min(1, input[i]));\n    dataView.setInt16(offset, s < 0 ? s * 0x8000 : s * 0x7fff, true);\n  }\n  return dataView;\n}\nexport function to16kHz(audioData, sampleRate = 44100) {\n  const data = new Float32Array(audioData);\n  const fitCount = Math.round(data.length * (16000 / sampleRate));\n  const newData = new Float32Array(fitCount);\n  const springFactor = (data.length - 1) / (fitCount - 1);\n  newData[0] = data[0];\n  for (let i = 1; i < fitCount - 1; i++) {\n    const tmp = i * springFactor;\n    const before = Math.floor(tmp).toFixed();\n    const after = Math.ceil(tmp).toFixed();\n    const atPoint = tmp - before;\n    newData[i] = data[before] + (data[after] - data[before]) * atPoint;\n  }\n  newData[fitCount - 1] = data[data.length - 1];\n  return newData;\n}\n\nconst audioWorkletCode = `\nclass MyProcessor extends AudioWorkletProcessor {\n  constructor(options) {\n    super(options);\n    this.audioData = [];\n    this.nextUpdateFrame = 40;\n    this.sampleCount = 0;\n    this.bitCount = 0;\n  }\n\n  get intervalInFrames() {\n    return 40 / 1000 * sampleRate;\n  }\n\n  process(inputs) {\n    // 去处理音频数据\n    // eslint-disable-next-line no-undef\n    if (inputs[0][0]) {\n      const output = ${to16kHz}(inputs[0][0], sampleRate);\n      this.sampleCount += 1;\n      const audioData = ${to16BitPCM}(output);\n      this.bitCount += 1;\n      const data = [...new Int8Array(audioData.buffer)];\n      this.audioData = this.audioData.concat(data);\n      this.nextUpdateFrame -= inputs[0][0].length;\n      if (this.nextUpdateFrame < 0) {\n        this.nextUpdateFrame += this.intervalInFrames;\n        this.port.postMessage({\n          audioData: new Int8Array(this.audioData),\n          sampleCount: this.sampleCount,\n          bitCount: this.bitCount\n        });\n        this.audioData = [];\n      }\n        return true;\n      }\n  }\n}\n\nregisterProcessor('my-processor', MyProcessor);\n`;\nconst TAG = \"WebRecorder\";\nnavigator.getUserMedia =\n  navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia;\n\nexport default class WebRecorder {\n  constructor(requestId, isLog) {\n    this.audioData = [];\n    this.allAudioData = [];\n    this.stream = null;\n    this.audioContext = null;\n    this.requestId = requestId;\n    this.frameTime = [];\n    this.frameCount = 0;\n    this.sampleCount = 0;\n    this.bitCount = 0;\n    this.mediaStreamSource = null;\n    this.isLog = true;\n    this.mediaRecorder;\n    this.audioChunks = [];\n    this.recordedAudioBlob = null;\n    this.recordFinishedCb = null; // 录制结束回调\n    console.log(\"-------------------********--------------------\");\n  }\n  static isSupportMediaDevicesMedia() {\n    return !!(navigator.getUserMedia || navigator.mediaDevices?.getUserMedia);\n  }\n  static isSupportUserMediaMedia() {\n    return !!navigator.getUserMedia;\n  }\n  static isSupportAudioContext() {\n    return typeof AudioContext !== \"undefined\" || typeof webkitAudioContext !== \"undefined\";\n  }\n  static isSupportMediaStreamSource(requestId, audioContext) {\n    return typeof audioContext.createMediaStreamSource === \"function\";\n  }\n  static isSupportAudioWorklet(audioContext) {\n    return (\n      audioContext.audioWorklet &&\n      typeof audioContext.audioWorklet.addModule === \"function\" &&\n      typeof AudioWorkletNode !== \"undefined\"\n    );\n  }\n  static isSupportCreateScriptProcessor(requestId, audioContext) {\n    return typeof audioContext.createScriptProcessor === \"function\";\n  }\n  start() {\n    this.frameTime = [];\n    this.frameCount = 0;\n    this.allAudioData = [];\n    this.audioData = [];\n    this.sampleCount = 0;\n    this.bitCount = 0;\n    this.getDataCount = 0;\n    this.audioContext = null;\n    this.mediaStreamSource = null;\n    this.stream = null;\n    try {\n      if (WebRecorder.isSupportAudioContext()) {\n        this.audioContext = new (window.AudioContext || window.webkitAudioContext)();\n      } else {\n        this.isLog && console.log(this.requestId, \"浏览器不支持AudioContext\", TAG);\n        this.OnError(\"浏览器不支持AudioContext\");\n      }\n    } catch (e) {\n      this.isLog && console.log(this.requestId, \"浏览器不支持webAudioApi相关接口\", e, TAG);\n      this.OnError(\"浏览器不支持webAudioApi相关接口\");\n    }\n    return this.getUserMedia(this.requestId, this.getAudioSuccess, this.getAudioFail);\n  }\n  stop(recordFinishedCb) {\n    this.recordFinishedCb = recordFinishedCb;\n    this.stopRecord();\n    if (!(/Safari/.test(navigator.userAgent) && !/Chrome/.test(navigator.userAgent))) {\n      this.audioContext?.suspend();\n    }\n    this.audioContext?.suspend();\n    this.isLog &&\n      console.log(\n        this.requestId,\n        `webRecorder stop ${this.sampleCount}/${this.bitCount}/${this.getDataCount}`,\n        JSON.stringify(this.frameTime),\n        TAG\n      );\n    this.OnStop(this.allAudioData);\n  }\n  destroyStream() {\n    // 关闭通道\n    if (this.stream) {\n      // eslint-disable-next-line array-callback-return\n      this.stream.getTracks().map((val) => {\n        val.stop();\n      });\n      this.stream = null;\n    }\n  }\n  async getUserMedia(requestId, getStreamAudioSuccess, getStreamAudioFail) {\n    const mediaOption = {\n      audio: true,\n      video: false,\n    };\n    // 获取用户的麦克风\n    if (WebRecorder.isSupportMediaDevicesMedia()) {\n      return navigator.mediaDevices\n        .getUserMedia(mediaOption)\n        .then((stream) => {\n          console.log(\"MediaRecorder.isTypeSupported audio/webm :\", MediaRecorder.isTypeSupported(\"audio/webm\"));\n          console.log(\"navigator.mediaDevices===\", stream);\n          this.mediaRecorder = new MediaRecorder(stream, { audio: true, mimeType: \"audio/webm\" });\n          // this.mediaRecorder = new MediaStreamRecorder(stream);\n          // this.mediaRecorder.mimeType = \"audio/wav\";\n          this.mediaRecorder.ondataavailable = (event) => {\n            this.audioChunks.push(event.data);\n            // this.audioChunks.push(event);\n            console.warn(\"ondataavailable............\", event);\n          };\n          // this.mediaRecorder.addEventListener(\"dataavailable\", (event) => {\n          //   this.audioChunks.push(event.data);\n          //   console.warn(\"ondataavailable............==\");\n          // });\n          this.mediaRecorder.onstop = () => {\n            console.error(\"(((((((((((((((((((((((((\");\n            // 生成本地录音文件\n            const audioBlob = new Blob(this.audioChunks, { type: \"audio/webm\" });\n            console.log(\"audioBlob:\", audioBlob);\n            this.recordedAudioBlob = audioBlob;\n            // Promise.all(this.audioChunks.map(blob => getAudioBuffer(blob)))\n            //   .then(concatAudioBuffers)\n            //   .then((mergedBuffer) => {\n            //     console.log(\"merge blob......\")\n            //     // 将合并后的 AudioBuffer 导出为 Blob\n            //     const mergedBlob = audioBufferToBlob(mergedBuffer);\n            //     // 现在您可以下载或使用 mergedBlob\n            //     this.recordedAudioBlob = mergedBlob;\n            //     this.uploadRecord();\n            //     const audioBlob = new Blob(mergedBlob, { type: \"audio/wav\" });\n            //     // console.log(\"audioBlob:\", audioBlob)\n            //     const audioUrl = URL.createObjectURL(audioBlob);\n            //     console.log(\"==== Audio recorded:\", audioUrl);\n            //   });\n            // this.uploadRecord();\n            const audioUrl = URL.createObjectURL(audioBlob);\n            console.log(\"==== Audio recorded:\", audioUrl);\n          };\n          this.mediaRecorder.start();\n          this.stream = stream;\n          getStreamAudioSuccess.call(this, requestId, stream);\n          return true;\n        })\n        .catch((e) => {\n          getStreamAudioFail.call(this, requestId, e);\n          return false;\n        });\n    } else if (WebRecorder.isSupportUserMediaMedia()) {\n      return new Promise((resolve, reject) => {\n        navigator.getUserMedia(\n          mediaOption,\n          (stream) => {\n            console.log(\"!!!navigator.getUserMedia\");\n            console.log(\"MediaRecorder.isTypeSupported audio/webm :\", MediaRecorder.isTypeSupported(\"audio/webm\"));\n            console.log(\"navigator.mediaDevices===\", stream);\n            this.mediaRecorder = new MediaRecorder(stream, { audio: true, mimeType: \"audio/webm\" });\n            // this.mediaRecorder = new MediaStreamRecorder(stream);\n            // this.mediaRecorder.mimeType = \"audio/wav\";\n            this.mediaRecorder.ondataavailable = (event) => {\n              this.audioChunks.push(event.data);\n              // this.audioChunks.push(event);\n              console.warn(\"ondataavailable............\", event);\n            };\n            // this.mediaRecorder.addEventListener(\"dataavailable\", (event) => {\n            //   this.audioChunks.push(event.data);\n            //   console.warn(\"ondataavailable............==\");\n            // });\n            this.mediaRecorder.onstop = () => {\n              console.error(\"(((((((((((((((((((((((((\");\n              // 生成本地录音文件\n              const audioBlob = new Blob(this.audioChunks, { type: \"audio/webm\" });\n              console.log(\"audioBlob:\", audioBlob);\n              this.recordedAudioBlob = audioBlob;\n              const audioUrl = URL.createObjectURL(audioBlob);\n              console.log(\"==== Audio recorded:\", audioUrl);\n            };\n            this.mediaRecorder.start();\n            this.stream = stream;\n            getStreamAudioSuccess.call(this, requestId, stream);\n            resolve(true);\n          },\n          function (err) {\n            // eslint-disable-next-line @typescript-eslint/no-invalid-this\n            getStreamAudioFail.call(this, requestId, err);\n            // eslint-disable-next-line prefer-promise-reject-errors\n            reject(false);\n          }\n        );\n      });\n    } else {\n      return new Promise((resolve, reject) => {\n        if (navigator.userAgent.toLowerCase().match(/chrome/) && location.origin.indexOf(\"https://\") < 0) {\n          this.isLog &&\n            console.log(\n              this.requestId,\n              \"chrome下获取浏览器录音功能，因为安全性问题，需要在localhost或127.0.0.1或https下才能获取权限\",\n              TAG\n            );\n          this.OnError(\"chrome下获取浏览器录音功能，因为安全性问题，需要在localhost或127.0.0.1或https下才能获取权限\");\n        } else {\n          this.isLog && console.log(this.requestId, \"无法获取浏览器录音功能，请升级浏览器或使用chrome\", TAG);\n          this.OnError(\"无法获取浏览器录音功能，请升级浏览器或使用chrome\");\n        }\n        this.audioContext?.close();\n        // eslint-disable-next-line prefer-promise-reject-errors\n        reject(false);\n      });\n    }\n  }\n  async getAudioSuccess(requestId, stream) {\n    if (!this.audioContext) {\n      return false;\n    }\n    if (this.mediaStreamSource) {\n      this.mediaStreamSource.disconnect();\n      this.mediaStreamSource = null;\n    }\n    this.audioTrack = stream.getAudioTracks()[0];\n    const mediaStream = new MediaStream();\n    mediaStream.addTrack(this.audioTrack);\n    this.mediaStreamSource = this.audioContext.createMediaStreamSource(mediaStream);\n    // this.audioTrack.stop(); // 停止音频轨道\n    if (WebRecorder.isSupportMediaStreamSource(requestId, this.audioContext)) {\n      if (WebRecorder.isSupportAudioWorklet(this.audioContext)) {\n        // 不支持 AudioWorklet 降级\n        this.audioWorkletNodeDealAudioData(this.mediaStreamSource, requestId);\n      } else {\n        this.scriptNodeDealAudioData(this.mediaStreamSource, requestId);\n      }\n    } else {\n      // 不支持 MediaStreamSource\n      this.isLog && console.log(this.requestId, \"不支持MediaStreamSource\", TAG);\n      this.OnError(\"不支持MediaStreamSource\");\n    }\n  }\n  getAudioFail(requestId, err) {\n    if (err?.err && err.err.name === \"NotAllowedError\") {\n      this.isLog && console.log(requestId, \"授权失败\", JSON.stringify(err.err), TAG);\n    }\n    this.isLog && console.log(this.requestId, \"getAudioFail\", JSON.stringify(err), TAG);\n    this.OnError(err);\n    this.stop();\n  }\n  scriptNodeDealAudioData(mediaStreamSource, requestId) {\n    if (WebRecorder.isSupportCreateScriptProcessor(requestId, this.audioContext)) {\n      // 创建一个音频分析对象，采样的缓冲区大小为0（自动适配），输入和输出都是单声道\n      const scriptProcessor = this.audioContext.createScriptProcessor(1024, 1, 1);\n      // 连接\n      this.mediaStreamSource?.connect(scriptProcessor);\n      scriptProcessor?.connect(this.audioContext.destination);\n      scriptProcessor.onaudioprocess = (e) => {\n        this.getDataCount += 1;\n        // 去处理音频数据\n        const inputData = e.inputBuffer.getChannelData(0);\n        const output = to16kHz(inputData, this.audioContext.sampleRate);\n        const audioData = to16BitPCM(output);\n        this.audioData.push(...new Int8Array(audioData.buffer));\n        this.allAudioData.push(...new Int8Array(audioData.buffer));\n        // console.log(\"---======= OnReceivedData:\", event.data.audioData, \" allAudioData: \", this.allAudioData)\n        if (this.audioData.length > 1280) {\n          this.frameTime.push(`${Date.now()}-${this.frameCount}`);\n          this.frameCount += 1;\n          const audioDataArray = new Int8Array(this.audioData);\n          this.OnReceivedData(audioDataArray);\n          this.audioData = [];\n          this.sampleCount += 1;\n          this.bitCount += 1;\n        }\n      };\n    } else {\n      // 不支持\n      this.isLog && console.log(this.requestId, \"不支持createScriptProcessor\", TAG);\n    }\n  }\n  async audioWorkletNodeDealAudioData(mediaStreamSource, requestId) {\n    try {\n      const audioWorkletBlobURL = window.URL.createObjectURL(new Blob([audioWorkletCode], { type: \"text/javascript\" }));\n      await this.audioContext.audioWorklet.addModule(audioWorkletBlobURL);\n      const myNode = new AudioWorkletNode(this.audioContext, \"my-processor\", {\n        numberOfInputs: 1,\n        numberOfOutputs: 1,\n        channelCount: 1,\n      });\n      myNode.onprocessorerror = (event) => {\n        // 降级\n        this.scriptNodeDealAudioData(mediaStreamSource, this.requestId);\n        return false;\n      };\n      myNode.port.onmessage = (event) => {\n        this.frameTime.push(`${Date.now()}-${this.frameCount}`);\n        this.OnReceivedData(event.data.audioData);\n        this.frameCount += 1;\n        this.allAudioData.push(...event.data.audioData);\n        // console.error(\"***======= OnReceivedData:\", event.data.audioData, \" allAudioData: \", this.allAudioData)\n        this.sampleCount = event.data.sampleCount;\n        this.bitCount = event.data.bitCount;\n      };\n      myNode.port.onmessageerror = (event) => {\n        // 降级\n        this.scriptNodeDealAudioData(mediaStreamSource, requestId);\n        return false;\n      };\n      mediaStreamSource?.connect(myNode).connect(this.audioContext.destination);\n    } catch (e) {\n      this.isLog && console.log(this.requestId, \"audioWorkletNodeDealAudioData catch error\", JSON.stringify(e), TAG);\n      this.OnError(e);\n    }\n  }\n  stopRecord() {\n    console.log(\"====== stopRecord ======\");\n    this.mediaRecorder.stop();\n  }\n  uploadRecord({ finishCloneCb }) {\n    let auth = {};\n    const getStsHandle = async () => {\n      const md5 = await CosUtil.md5(this.recordedAudioBlob);\n      const res = await generateAuth({\n        BusID: \"cosyvoice\",\n        FileType: \".opus\",\n        FileSize: this.recordedAudioBlob.size,\n        FileName: `record-${Date.now()}-${Math.random().toString().split(\".\")[1]}.opus`,\n        FileMD5: md5,\n      });\n      console.log(\"generateAuth res:\", res);\n      if (res?.code === 0 && res?.data?.code === 0 && res?.data?.data) {\n        const ret = res?.data?.data || {};\n        auth = ret;\n        return {\n          bucket: ret.Bucket,\n          region: ret.Region,\n          tmpSecretId: ret.SecretID,\n          tmpSecretKey: ret.SecretKey,\n          sessionToken: ret.Token,\n          startTime: ret.Timestamp,\n          expiredTime: ret.Expired,\n          uploadFilePath: ret.ObjectKey,\n          CDN: ret.CDN,\n          md5,\n        };\n      } else {\n        return {};\n      }\n    };\n    const cosUtil = new CosUtil({\n      getSts: getStsHandle,\n    });\n    return cosUtil\n      .sliceUploadFile({\n        file: this.recordedAudioBlob,\n      })\n      .then((res) => {\n        console.log(\"before recordFinishedCb auth:\", auth);\n        this.recordFinishedCb?.({ audioUrl: auth?.URL });\n        this.audioTrack.stop(); // 停止音频轨道\n      })\n      .catch((err) => {\n        finishCloneCb(); // 失败，通知克隆结束\n        this.audioTrack.stop(); // 停止音频轨道\n      });\n  }\n  releaseTrack() {\n    this.audioTrack.stop(); // 异常情况手动停止音频轨道\n  }\n  // 获取音频数据\n  OnReceivedData(data) {}\n  OnError(res) {}\n  OnStop(res) {}\n}\ntypeof window !== \"undefined\" && (window.WebRecorder = WebRecorder);\n","import React, { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport MainLand from \"../components/index/main-land\";\nimport { RootStore, useAppDispatch } from \"../slices\";\nimport { getParameter } from \"@tencent/kg-base\";\nimport LoginPop from \"../components/common/Login\";\nimport \"../assets/style/sound-clone.less\";\nimport { signCallback } from \"../utils/audio-recorder/asrauthentication\";\nimport { config } from \"../constants/asr-config\";\nimport { SpeechRecognizer, guid } from \"../utils/audio-recorder/speechrecognizer\";\nimport WebRecorder from \"../utils/audio-recorder/webrecorder\";\nimport { ASRTempAuth, QueryTimbreClone, TimbreClone } from \"../api/main-land\";\nimport { poll } from \"projects/aiSong/utils\";\nimport CloneIssueHeadImg from \"../assets/img/clone-issue-head.png\";\nimport RecordingImg from \"../assets/img/ic-recording.png\";\nimport MicrophoneImg from \"../assets/img/ic-microphone.png\";\nimport CloneRetryImg from \"../assets/img/ic-clone-retry-48_48.png\";\nimport { homeActions } from \"../slices/home\";\nimport { asrCheck, asrCheckSimilar } from \"../utils\";\nimport Loading from \"../components/common/Loading\";\nimport { message } from \"antd\";\nimport { CLONE_TEXTs } from \"../constants/random-texts\";\nimport { cacheSet } from \"../util\";\n// import { stringSimilarity } from \"string-similarity-js\";\n\nconst CLONE_TYPES = [\"聊天语境\", \"读书语境\"];\nconst CLONE_GUIDES = [\n  \"请在安静环境下，尽可能放松，以平时说话聊天的方式，录音以下内容\",\n  \"请在安静环境下朗读，录音以下内容\",\n];\n\nconst SoundClone = () => {\n  const dispatch = useAppDispatch();\n  const navigate = useNavigate();\n  const [recordingStep, setRecordingStep] = useState(0); // 0: 未录制，1:开始录制，2: 结束录制\n  const [cloneType, setCloneType] = useState(0);\n  const [readText, setReadText] = useState(\"\");\n  const readTextRef = useRef<string>(\"\");\n  const [cloning, setCloning] = useState<boolean>(false);\n  const [cdTime, setCdTime] = useState(-1);\n  // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n  const cloneSound = useSelector((rootState: RootStore) => rootState?.home?.selectedSound);\n  let recorderRef = useRef<any>(null);\n  let speechRecognizerRef = useRef<any>(null);\n  let isCanSendDataRef = useRef<any>(false);\n  let isCanStopRef = useRef<any>(false);\n  let recordTimeoutRef = useRef<any>(0);\n  let isFinishedRecordRef = useRef<boolean>(true);\n\n  const params = () => {\n    return {\n      signCallback: signCallback, // 鉴权函数 用户提供鉴权函数，不传则为null\n      // secretkey: config.secretKey,\n      // 用户参数\n      secretid: (window as any).config.tempSecretID,\n      appid: config.appId,\n      token: (window as any).config.tempToken, // 选填参数，若密钥为临时密钥，需传此参数。\n      // 实时识别接口参数\n      engine_model_type: \"16k_zh\", // 引擎\n      voice_format: 1,\n      // 以下为非必填参数，可跟据业务自行修改\n      hotword_id: \"08003a00000000000000000000000000\",\n      needvad: 1,\n      filter_dirty: 1,\n      filter_modal: 1,\n      filter_punc: 1,\n      convert_num_mode: 1,\n      word_info: 2,\n    };\n  };\n\n  const finishCloneCb = () => {\n    setCloning(false);\n  };\n\n  const recordTimeoutCheck = () => {\n    recordTimeoutRef.current = setTimeout(() => {\n      message.warning(\"录音时间过长，请重新录音\");\n      recordTimeoutRef.current = null;\n      setRecordingStep(0); // 回到初始界面\n      stopRecord(true); // 关闭录音\n    }, 15000);\n  };\n\n  const getAsrKeyAndStartRecord = () => {\n    setRecordingStep(1);\n    ASRTempAuth({}).then((res) => {\n      if (res?.code === 0 && res?.data?.code === 0) {\n        const config = res?.data?.data;\n        (window as any).config = config;\n        console.log(\"!!!ASRTempAuth window config:\", config);\n        // cacheSet(\"temp-config\", config);\n        startRecord();\n      } else {\n        message.error(\"系统错误，请稍后重试！\");\n        setRecordingStep(0);\n      }\n    });\n  };\n\n  const startRecord = () => {\n    recordTimeoutCheck();\n    randomTextCb();\n    countdown(3);\n    console.log(\"==============\");\n    // const areaDom = $(\"#recognizeText\");\n    let resultText = \"\";\n    // 获取录音数据\n    recorderRef.current = new WebRecorder();\n    recorderRef.current.OnReceivedData = (res: any) => {\n      // console.log(\"data::===>\", res) // res 为采集到浏览器数据\n      if (isCanSendDataRef?.current) {\n        // 发送数据\n        speechRecognizerRef.current.write(res);\n      }\n    };\n    // 录音失败时\n    recorderRef.current.OnError = (err: any) => {\n      console.log(err);\n      recorderRef?.current?.stop();\n    };\n    recorderRef?.current\n      ?.start()\n      .then((res: any) => {\n        console.log(\"是否可以建立连接：\", res);\n        // 建立连接\n        speechRecognizerRef.current.start();\n      })\n      .catch((e: any) => {\n        console.log(\"录音权限：\", e);\n        message.error(\"录音权限未开启，请先开启录音权限\");\n        setTimeout(() => {\n          setRecordingStep(0);\n          // speechRecognizerRef.current.stop();\n        }, 1000);\n      });\n\n    // if (!speechRecognizerRef.current) {\n    speechRecognizerRef.current = new SpeechRecognizer(params());\n    // }\n\n    // 开始识别\n    speechRecognizerRef.current.OnRecognitionStart = (res: any) => {\n      console.log(\"开始识别\", res);\n      isCanSendDataRef.current = true;\n      isCanStopRef.current = true;\n    };\n    // 一句话开始\n    speechRecognizerRef.current.OnSentenceBegin = (res: any) => {\n      console.log(\"一句话开始\", res);\n    };\n    // 识别变化时\n    speechRecognizerRef.current.OnRecognitionResultChange = (res: any) => {\n      console.log(\"识别变化时\", res);\n      const currentText = `${resultText}${res.result.voice_text_str}`;\n      // areaDom.text(currentText);\n    };\n    // 一句话结束\n    speechRecognizerRef.current.OnSentenceEnd = (res: any) => {\n      console.log(\"一句话结束\", res);\n      resultText += res.result.voice_text_str;\n      // areaDom.text(resultText);\n      console.log(\"录音结束：\", resultText);\n    };\n    // 识别结束\n    speechRecognizerRef.current.OnRecognitionComplete = (res: any) => {\n      console.log(\"识别结束\", res);\n      isCanSendDataRef.current = false;\n      if (!resultText) {\n        if (recordTimeoutRef.current) {\n          // 录音超时计时器还在，说明未超时情况，正常显示信息\n          message.warning(\"未识别到录音内容，请重新录音\");\n        }\n        setRecordingStep(0);\n      }\n      if (asrCheckSimilar(readTextRef.current, resultText)) {\n        console.log(\"!!!asr匹配成功\");\n        setCloning(true);\n        recorderRef.current.uploadRecord({ finishCloneCb });\n      } else {\n        if (recordTimeoutRef.current) {\n          message.error(\"录音内容与文本不一致，请重录\");\n        }\n        recorderRef.current.releaseTrack();\n        finishCloneCb();\n        setRecordingStep(0);\n      }\n    };\n    // 识别错误\n    speechRecognizerRef.current.OnError = (res: any) => {\n      console.log(\"识别失败\", res);\n      isCanSendDataRef.current = false;\n    };\n\n    // // 建立连接\n    // speechRecognizerRef.current.start();\n  };\n\n  const queryCloneResult = async (task_id: string) => {\n    poll(async () => {\n      try {\n        const res: any = await QueryTimbreClone({ task_id });\n        console.log(\"poll mergeAudio:\", res);\n        if (res?.code === 0 && res.data?.data?.timbre_mid) {\n          // setCloneSound({\n          //   timbre_mid: res.data?.data?.timbre_mid,\n          //   timbre_name: res.data?.data?.timbre_name,\n          // });\n          dispatch(\n            homeActions.selectSound({\n              timbre_mid: res.data?.data?.timbre_mid,\n              timbre_name: res.data?.data?.timbre_name,\n            }),\n          );\n          finishCloneCb();\n          setRecordingStep(2);\n          return false;\n        } else if (res?.code === 0 && (res?.data?.data?.code === 0 || res?.data?.data?.code === -1)) {\n          return 500;\n        } else {\n          message.error(`系统有误，请重试!【code: ${res?.code}】`);\n          finishCloneCb();\n          setRecordingStep(0);\n          return false;\n        }\n      } catch (err) {\n        // Loading.hide();\n        message.error(\"系统错误，请重试!\");\n        finishCloneCb();\n        setRecordingStep(0);\n        return false;\n      }\n    });\n  };\n\n  const recordFinishedCb = ({ audioUrl }: { audioUrl: string }) => {\n    console.log(\"===== recordFinishedCb audioUrl:\", audioUrl);\n    TimbreClone({\n      text: readText,\n      url: audioUrl,\n    })\n      .then((res) => {\n        console.log(\"TimbreClone res:\", res);\n        if (res?.code === 0 && res?.data?.code === 0) {\n          queryCloneResult(res?.data?.data?.task_id);\n        } else {\n          message.error(`系统有误，请重试!【code: ${res?.code}】`);\n          finishCloneCb();\n          setRecordingStep(0);\n        }\n      })\n      .catch((e: any) => {\n        message.error(\"系统错误，请重试!\");\n        finishCloneCb();\n        setRecordingStep(0);\n      });\n  };\n\n  const stopRecord = (isTimeout?: boolean) => {\n    if (cdTime > 0) {\n      message.warning(\"录音时间过短\");\n      return;\n    }\n    clearTimeout(recordTimeoutRef.current);\n    if (!isTimeout) {\n      recorderRef.current.stop(recordFinishedCb);\n    } else {\n      recorderRef.current.stop();\n    }\n    if (isCanStopRef.current) {\n      speechRecognizerRef.current.stop();\n    }\n  };\n\n  const switchCloneType = (index: number) => {\n    setCloneType(index);\n    randomTextCb(index);\n  };\n\n  const jumpToTTS = () => {\n    navigate(\"/\");\n  };\n\n  const countdown = (cdTime: number) => {\n    setCdTime(cdTime);\n    setTimeout(() => {\n      console.log(\"===== cdTime:\", cdTime);\n      if (cdTime >= 0) {\n        countdown((cdTime || 0) - 1);\n      }\n    }, 1000);\n  };\n\n  const randomTextCb = (_cloneType?: number) => {\n    const type = CLONE_TYPES[typeof _cloneType !== \"undefined\" ? _cloneType : cloneType];\n    console.log(\"!!! randomTextCb type:\", type);\n    const texts = CLONE_TEXTs[type];\n    const objText = texts[Math.round(Math.random() * 100) % texts.length];\n    readTextRef.current = objText;\n    setReadText(objText);\n  };\n\n  const showRecordContent = () => {\n    return (\n      <div style={{ display: \"flex\", flexDirection: \"column\", alignItems: \"center\", marginBottom: 48 }}>\n        <div style={{ display: \"flex\", flexDirection: \"row\", marginBottom: 50 }}>\n          {CLONE_TYPES.map((item, index) => {\n            return (\n              <div\n                key={index}\n                className=\"cursor-pointer\"\n                style={{\n                  padding: \"8px 14px\",\n                  border: \"1px solid #D9D9D9\",\n                  borderRadius: 100,\n                  color: \"#D9D9D9\",\n                  ...(index === 0 ? { marginRight: 30 } : {}),\n                  ...(index === cloneType ? { borderColor: \"#000\", color: \"#000\" } : {}),\n                }}\n                onClick={() => switchCloneType(index)}\n              >\n                {item}\n              </div>\n            );\n          })}\n        </div>\n        <div style={{ color: \"#919193\", fontSize: 16, fontWeight: 600, marginBottom: 20 }}>\n          {CLONE_GUIDES[cloneType]}\n        </div>\n        <div>\n          <span style={{ fontSize: 20, fontWeight: 600 }}>{readText}</span>\n        </div>\n        <div\n          className=\"flex-row-center cursor-pointer\"\n          onClick={() => randomTextCb()}\n          style={{ fontSize: 16, color: \"#919193\", marginTop: 20 }}\n        >\n          <div\n            style={{\n              width: 24,\n              height: 24,\n              backgroundImage: `url(${CloneRetryImg})`,\n              backgroundSize: \"100%\",\n              marginRight: 3,\n            }}\n          />\n          换一换\n        </div>\n      </div>\n    );\n  };\n\n  const beforeRecord = () => {\n    return (\n      <>\n        {recordingStep === 0 ? (\n          <div\n            className=\"record-tips\"\n            style={{ display: \"flex\", flexDirection: \"column\", alignItems: \"center\", marginBottom: 118 }}\n          >\n            <div className=\"\" style={{ fontSize: 36, fontWeight: 600 }}>\n              <span>录制音频</span>\n              <span style={{ color: \"#2A00FF\" }}>轻松克隆</span>\n            </div>\n            <div style={{ fontSize: 16, fontWeight: 600, color: \"rgba(0, 0, 0, 0.6)\" }}>\n              录制10-15秒音频,请避免多人对话、明显杂音、噪音、混响的情况\n            </div>\n          </div>\n        ) : (\n          showRecordContent()\n        )}\n        {recordingStep === 0 ? (\n          <div className=\"clone-sound-btn\" onClick={getAsrKeyAndStartRecord}>\n            <div\n              style={{\n                width: 24,\n                height: 24,\n                backgroundImage: `url(${MicrophoneImg})`,\n                backgroundSize: \"100%\",\n                marginRight: 3,\n              }}\n            />\n            开始录音\n          </div>\n        ) : !cloning ? (\n          <div className=\"clone-sound-btn\" onClick={() => stopRecord()}>\n            <div\n              style={{\n                width: 24,\n                height: 24,\n                backgroundImage: `url(${RecordingImg})`,\n                backgroundSize: \"100%\",\n                marginRight: 3,\n              }}\n            />\n            录音中 {cdTime >= 0 ? `${cdTime}s` : \"\"}\n          </div>\n        ) : (\n          <div className=\"clone-sound-btn\">\n            <div className=\"loading-div loading\" style={{ marginRight: 3 }} />\n            提交中，请稍后\n          </div>\n        )}\n      </>\n    );\n  };\n\n  const afterRecord = () => {\n    return (\n      <>\n        <div\n          style={{\n            width: 204,\n            height: 292,\n            backgroundColor: \"#fff\",\n            borderRadius: 16,\n            display: \"flex\",\n            flexDirection: \"column\",\n            justifyContent: \"center\",\n            alignItems: \"flex-start\",\n          }}\n        >\n          <div\n            style={{\n              width: 100,\n              height: 100,\n              backgroundImage: `url(${CloneIssueHeadImg})`,\n              backgroundSize: \"100%\",\n              alignSelf: \"center\",\n            }}\n          />\n          <div\n            style={{ color: \"#000\", fontSize: 16, fontWeight: 600, marginTop: 30, marginBottom: 10, marginLeft: 20 }}\n          >\n            {cloneSound?.timbre_name}\n          </div>\n          <div style={{ fontSize: 16, fontWeight: 400, marginBottom: 10, marginLeft: 20 }} className=\"cursor-pointer\">\n            {CLONE_TYPES[cloneType]}\n          </div>\n          <div\n            style={{ padding: \"8px 14px\", borderRadius: 100, backgroundColor: \"#F7F7F7\", marginLeft: 20, fontSize: 14 }}\n          >\n            克隆音\n          </div>\n        </div>\n        <div style={{ color: \"rgba(0, 0, 0, 0.6)\", fontSize: 16, fontWeight: 600, marginTop: 40, marginBottom: 40 }}>\n          克隆音色已保存至-我的创作，快来创作录音吧～\n        </div>\n        <div style={{ display: \"flex\", flexDirection: \"row\", justifyContent: \"center\" }}>\n          <div\n            className=\"clone-sound-btn\"\n            style={{ borderRadius: 100, width: 260, marginRight: 24 }}\n            onClick={() => setRecordingStep(0)}\n          >\n            再次录制\n          </div>\n          <div className=\"clone-sound-btn\" style={{ borderRadius: 100, width: 260 }} onClick={jumpToTTS}>\n            一键创作\n          </div>\n        </div>\n      </>\n    );\n  };\n\n  useEffect(() => {\n    // dispatch(getRobotIndex({ lUid: Number(getCookie(\"uid\")) || 1000249 }));\n    // dispatch(getRobotList({ uid: Number(getCookie(\"uid\")) || 1000249 }));\n    // dispatch(getRobotSearchList({}));\n    randomTextCb();\n  }, []);\n\n  return (\n    <>\n      <div className=\"ai-container\">\n        <div className=\"wrapper\">\n          <div className=\"header\" />\n          <div className=\"main-container page-sound-clone\">\n            {recordingStep !== 2 ? beforeRecord() : afterRecord()}\n            <div id=\"recognizeText\" className=\"recognize-content\" />\n          </div>\n        </div>\n      </div>\n      {/* {cloning ? <Loading /> : null} */}\n    </>\n  );\n};\n\nexport default SoundClone;\n","import { defaultPrefixCls } from '../config-provider';\n// ================== Collapse Motion ==================\nconst getCollapsedHeight = () => ({\n  height: 0,\n  opacity: 0\n});\nconst getRealHeight = node => {\n  const {\n    scrollHeight\n  } = node;\n  return {\n    height: scrollHeight,\n    opacity: 1\n  };\n};\nconst getCurrentHeight = node => ({\n  height: node ? node.offsetHeight : 0\n});\nconst skipOpacityTransition = (_, event) => (event === null || event === void 0 ? void 0 : event.deadline) === true || event.propertyName === 'height';\nconst initCollapseMotion = function () {\n  let rootCls = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultPrefixCls;\n  return {\n    motionName: `${rootCls}-motion-collapse`,\n    onAppearStart: getCollapsedHeight,\n    onEnterStart: getCollapsedHeight,\n    onAppearActive: getRealHeight,\n    onEnterActive: getRealHeight,\n    onLeaveStart: getCurrentHeight,\n    onLeaveActive: getCollapsedHeight,\n    onAppearEnd: skipOpacityTransition,\n    onEnterEnd: skipOpacityTransition,\n    onLeaveEnd: skipOpacityTransition,\n    motionDeadline: 500\n  };\n};\nconst _SelectPlacements = ['bottomLeft', 'bottomRight', 'topLeft', 'topRight'];\nconst getTransitionName = (rootPrefixCls, motion, transitionName) => {\n  if (transitionName !== undefined) {\n    return transitionName;\n  }\n  return `${rootPrefixCls}-${motion}`;\n};\nexport { getTransitionName };\nexport default initCollapseMotion;","import React from 'react';\nexport function isFragment(child) {\n  return child && /*#__PURE__*/React.isValidElement(child) && child.type === React.Fragment;\n}\nexport const replaceElement = (element, replacement, props) => {\n  if (! /*#__PURE__*/React.isValidElement(element)) {\n    return replacement;\n  }\n  return /*#__PURE__*/React.cloneElement(element, typeof props === 'function' ? props(element.props || {}) : props);\n};\nexport function cloneElement(element, props) {\n  return replaceElement(element, element, props);\n}","import { genComponentStyleHook } from '../../theme/internal';\nconst genWaveStyle = token => {\n  const {\n    componentCls,\n    colorPrimary\n  } = token;\n  return {\n    [componentCls]: {\n      position: 'absolute',\n      background: 'transparent',\n      pointerEvents: 'none',\n      boxSizing: 'border-box',\n      color: `var(--wave-color, ${colorPrimary})`,\n      boxShadow: `0 0 0 0 currentcolor`,\n      opacity: 0.2,\n      // =================== Motion ===================\n      '&.wave-motion-appear': {\n        transition: [`box-shadow 0.4s ${token.motionEaseOutCirc}`, `opacity 2s ${token.motionEaseOutCirc}`].join(','),\n        '&-active': {\n          boxShadow: `0 0 0 6px currentcolor`,\n          opacity: 0\n        },\n        '&.wave-quick': {\n          transition: [`box-shadow ${token.motionDurationSlow} ${token.motionEaseInOut}`, `opacity ${token.motionDurationSlow} ${token.motionEaseInOut}`].join(',')\n        }\n      }\n    }\n  };\n};\nexport default genComponentStyleHook('Wave', token => [genWaveStyle(token)]);","import { defaultPrefixCls } from '../../config-provider';\nexport const TARGET_CLS = `${defaultPrefixCls}-wave-target`;","export function isValidWaveColor(color) {\n  return color && color !== '#fff' && color !== '#ffffff' && color !== 'rgb(255, 255, 255)' && color !== 'rgba(255, 255, 255, 1)' && !/rgba\\((?:\\d*, ){3}0\\)/.test(color) &&\n  // any transparent rgba color\n  color !== 'transparent';\n}\nexport function getTargetWaveColor(node) {\n  const {\n    borderTopColor,\n    borderColor,\n    backgroundColor\n  } = getComputedStyle(node);\n  if (isValidWaveColor(borderTopColor)) {\n    return borderTopColor;\n  }\n  if (isValidWaveColor(borderColor)) {\n    return borderColor;\n  }\n  if (isValidWaveColor(backgroundColor)) {\n    return backgroundColor;\n  }\n  return null;\n}","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport raf from \"rc-util/es/raf\";\nimport { render, unmount } from \"rc-util/es/React/render\";\nimport { composeRef } from \"rc-util/es/ref\";\nimport { TARGET_CLS } from './interface';\nimport { getTargetWaveColor } from './util';\nfunction validateNum(value) {\n  return Number.isNaN(value) ? 0 : value;\n}\nconst WaveEffect = props => {\n  const {\n    className,\n    target,\n    component\n  } = props;\n  const divRef = React.useRef(null);\n  const [color, setWaveColor] = React.useState(null);\n  const [borderRadius, setBorderRadius] = React.useState([]);\n  const [left, setLeft] = React.useState(0);\n  const [top, setTop] = React.useState(0);\n  const [width, setWidth] = React.useState(0);\n  const [height, setHeight] = React.useState(0);\n  const [enabled, setEnabled] = React.useState(false);\n  const waveStyle = {\n    left,\n    top,\n    width,\n    height,\n    borderRadius: borderRadius.map(radius => `${radius}px`).join(' ')\n  };\n  if (color) {\n    waveStyle['--wave-color'] = color;\n  }\n  function syncPos() {\n    const nodeStyle = getComputedStyle(target);\n    // Get wave color from target\n    setWaveColor(getTargetWaveColor(target));\n    const isStatic = nodeStyle.position === 'static';\n    // Rect\n    const {\n      borderLeftWidth,\n      borderTopWidth\n    } = nodeStyle;\n    setLeft(isStatic ? target.offsetLeft : validateNum(-parseFloat(borderLeftWidth)));\n    setTop(isStatic ? target.offsetTop : validateNum(-parseFloat(borderTopWidth)));\n    setWidth(target.offsetWidth);\n    setHeight(target.offsetHeight);\n    // Get border radius\n    const {\n      borderTopLeftRadius,\n      borderTopRightRadius,\n      borderBottomLeftRadius,\n      borderBottomRightRadius\n    } = nodeStyle;\n    setBorderRadius([borderTopLeftRadius, borderTopRightRadius, borderBottomRightRadius, borderBottomLeftRadius].map(radius => validateNum(parseFloat(radius))));\n  }\n  React.useEffect(() => {\n    if (target) {\n      // We need delay to check position here\n      // since UI may change after click\n      const id = raf(() => {\n        syncPos();\n        setEnabled(true);\n      });\n      // Add resize observer to follow size\n      let resizeObserver;\n      if (typeof ResizeObserver !== 'undefined') {\n        resizeObserver = new ResizeObserver(syncPos);\n        resizeObserver.observe(target);\n      }\n      return () => {\n        raf.cancel(id);\n        resizeObserver === null || resizeObserver === void 0 ? void 0 : resizeObserver.disconnect();\n      };\n    }\n  }, []);\n  if (!enabled) {\n    return null;\n  }\n  const isSmallComponent = (component === 'Checkbox' || component === 'Radio') && (target === null || target === void 0 ? void 0 : target.classList.contains(TARGET_CLS));\n  return /*#__PURE__*/React.createElement(CSSMotion, {\n    visible: true,\n    motionAppear: true,\n    motionName: \"wave-motion\",\n    motionDeadline: 5000,\n    onAppearEnd: (_, event) => {\n      var _a;\n      if (event.deadline || event.propertyName === 'opacity') {\n        const holder = (_a = divRef.current) === null || _a === void 0 ? void 0 : _a.parentElement;\n        unmount(holder).then(() => {\n          holder === null || holder === void 0 ? void 0 : holder.remove();\n        });\n      }\n      return false;\n    }\n  }, (_ref, ref) => {\n    let {\n      className: motionClassName\n    } = _ref;\n    return /*#__PURE__*/React.createElement(\"div\", {\n      ref: composeRef(divRef, ref),\n      className: classNames(className, motionClassName, {\n        'wave-quick': isSmallComponent\n      }),\n      style: waveStyle\n    });\n  });\n};\nconst showWaveEffect = (target, info) => {\n  var _a;\n  const {\n    component\n  } = info;\n  // Skip for unchecked checkbox\n  if (component === 'Checkbox' && !((_a = target.querySelector('input')) === null || _a === void 0 ? void 0 : _a.checked)) {\n    return;\n  }\n  // Create holder\n  const holder = document.createElement('div');\n  holder.style.position = 'absolute';\n  holder.style.left = '0px';\n  holder.style.top = '0px';\n  target === null || target === void 0 ? void 0 : target.insertBefore(holder, target === null || target === void 0 ? void 0 : target.firstChild);\n  render(/*#__PURE__*/React.createElement(WaveEffect, Object.assign({}, info, {\n    target: target\n  })), holder);\n};\nexport default showWaveEffect;","import * as React from 'react';\nimport { useEvent } from 'rc-util';\nimport raf from \"rc-util/es/raf\";\nimport { ConfigContext } from '../../config-provider';\nimport useToken from '../../theme/useToken';\nimport { TARGET_CLS } from './interface';\nimport showWaveEffect from './WaveEffect';\nconst useWave = (nodeRef, className, component) => {\n  const {\n    wave\n  } = React.useContext(ConfigContext);\n  const [, token, hashId] = useToken();\n  const showWave = useEvent(event => {\n    const node = nodeRef.current;\n    if ((wave === null || wave === void 0 ? void 0 : wave.disabled) || !node) {\n      return;\n    }\n    const targetNode = node.querySelector(`.${TARGET_CLS}`) || node;\n    const {\n      showEffect\n    } = wave || {};\n    // Customize wave effect\n    (showEffect || showWaveEffect)(targetNode, {\n      className,\n      token,\n      component,\n      event,\n      hashId\n    });\n  });\n  const rafId = React.useRef();\n  // Merge trigger event into one for each frame\n  const showDebounceWave = event => {\n    raf.cancel(rafId.current);\n    rafId.current = raf(() => {\n      showWave(event);\n    });\n  };\n  return showDebounceWave;\n};\nexport default useWave;","import React, { useContext, useRef } from 'react';\nimport classNames from 'classnames';\nimport isVisible from \"rc-util/es/Dom/isVisible\";\nimport { composeRef, supportRef } from \"rc-util/es/ref\";\nimport { ConfigContext } from '../../config-provider';\nimport { cloneElement } from '../reactNode';\nimport useStyle from './style';\nimport useWave from './useWave';\nconst Wave = props => {\n  const {\n    children,\n    disabled,\n    component\n  } = props;\n  const {\n    getPrefixCls\n  } = useContext(ConfigContext);\n  const containerRef = useRef(null);\n  // ============================== Style ===============================\n  const prefixCls = getPrefixCls('wave');\n  const [, hashId] = useStyle(prefixCls);\n  // =============================== Wave ===============================\n  const showWave = useWave(containerRef, classNames(prefixCls, hashId), component);\n  // ============================== Effect ==============================\n  React.useEffect(() => {\n    const node = containerRef.current;\n    if (!node || node.nodeType !== 1 || disabled) {\n      return;\n    }\n    // Click handler\n    const onClick = e => {\n      // Fix radio button click twice\n      if (!isVisible(e.target) ||\n      // No need wave\n      !node.getAttribute || node.getAttribute('disabled') || node.disabled || node.className.includes('disabled') || node.className.includes('-leave')) {\n        return;\n      }\n      showWave(e);\n    };\n    // Bind events\n    node.addEventListener('click', onClick, true);\n    return () => {\n      node.removeEventListener('click', onClick, true);\n    };\n  }, [disabled]);\n  // ============================== Render ==============================\n  if (! /*#__PURE__*/React.isValidElement(children)) {\n    return children !== null && children !== void 0 ? children : null;\n  }\n  const ref = supportRef(children) ? composeRef(children.ref, containerRef) : containerRef;\n  return cloneElement(children, {\n    ref\n  });\n};\nif (process.env.NODE_ENV !== 'production') {\n  Wave.displayName = 'Wave';\n}\nexport default Wave;","import React from 'react';\nimport SizeContext from '../SizeContext';\nconst useSize = customSize => {\n  const size = React.useContext(SizeContext);\n  const mergedSize = React.useMemo(() => {\n    if (!customSize) {\n      return size;\n    }\n    if (typeof customSize === 'string') {\n      return customSize !== null && customSize !== void 0 ? customSize : size;\n    }\n    if (customSize instanceof Function) {\n      return customSize(size);\n    }\n    return size;\n  }, [customSize, size]);\n  return mergedSize;\n};\nexport default useSize;","const genSpaceCompactStyle = token => {\n  const {\n    componentCls\n  } = token;\n  return {\n    [componentCls]: {\n      '&-block': {\n        display: 'flex',\n        width: '100%'\n      },\n      '&-vertical': {\n        flexDirection: 'column'\n      }\n    }\n  };\n};\n// ============================== Export ==============================\nexport default genSpaceCompactStyle;","import { genStyleHooks, mergeToken } from '../../theme/internal';\nimport genSpaceCompactStyle from './compact';\nconst genSpaceStyle = token => {\n  const {\n    componentCls,\n    antCls\n  } = token;\n  return {\n    [componentCls]: {\n      display: 'inline-flex',\n      '&-rtl': {\n        direction: 'rtl'\n      },\n      '&-vertical': {\n        flexDirection: 'column'\n      },\n      '&-align': {\n        flexDirection: 'column',\n        '&-center': {\n          alignItems: 'center'\n        },\n        '&-start': {\n          alignItems: 'flex-start'\n        },\n        '&-end': {\n          alignItems: 'flex-end'\n        },\n        '&-baseline': {\n          alignItems: 'baseline'\n        }\n      },\n      [`${componentCls}-item:empty`]: {\n        display: 'none'\n      },\n      // https://github.com/ant-design/ant-design/issues/47875\n      [`${componentCls}-item > ${antCls}-badge-not-a-wrapper:only-child`]: {\n        display: 'block'\n      }\n    }\n  };\n};\nconst genSpaceGapStyle = token => {\n  const {\n    componentCls\n  } = token;\n  return {\n    [componentCls]: {\n      '&-gap-row-small': {\n        rowGap: token.spaceGapSmallSize\n      },\n      '&-gap-row-middle': {\n        rowGap: token.spaceGapMiddleSize\n      },\n      '&-gap-row-large': {\n        rowGap: token.spaceGapLargeSize\n      },\n      '&-gap-col-small': {\n        columnGap: token.spaceGapSmallSize\n      },\n      '&-gap-col-middle': {\n        columnGap: token.spaceGapMiddleSize\n      },\n      '&-gap-col-large': {\n        columnGap: token.spaceGapLargeSize\n      }\n    }\n  };\n};\n// ============================== Export ==============================\nexport const prepareComponentToken = () => ({});\nexport default genStyleHooks('Space', token => {\n  const spaceToken = mergeToken(token, {\n    spaceGapSmallSize: token.paddingXS,\n    spaceGapMiddleSize: token.padding,\n    spaceGapLargeSize: token.paddingLG\n  });\n  return [genSpaceStyle(spaceToken), genSpaceGapStyle(spaceToken), genSpaceCompactStyle(spaceToken)];\n}, () => ({}), {\n  // Space component don't apply extra font style\n  // https://github.com/ant-design/ant-design/issues/40315\n  resetStyle: false\n});","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n  var t = {};\n  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n  }\n  return t;\n};\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport { ConfigContext } from '../config-provider';\nimport useSize from '../config-provider/hooks/useSize';\nimport useStyle from './style';\nexport const SpaceCompactItemContext = /*#__PURE__*/React.createContext(null);\nexport const useCompactItemContext = (prefixCls, direction) => {\n  const compactItemContext = React.useContext(SpaceCompactItemContext);\n  const compactItemClassnames = React.useMemo(() => {\n    if (!compactItemContext) {\n      return '';\n    }\n    const {\n      compactDirection,\n      isFirstItem,\n      isLastItem\n    } = compactItemContext;\n    const separator = compactDirection === 'vertical' ? '-vertical-' : '-';\n    return classNames(`${prefixCls}-compact${separator}item`, {\n      [`${prefixCls}-compact${separator}first-item`]: isFirstItem,\n      [`${prefixCls}-compact${separator}last-item`]: isLastItem,\n      [`${prefixCls}-compact${separator}item-rtl`]: direction === 'rtl'\n    });\n  }, [prefixCls, direction, compactItemContext]);\n  return {\n    compactSize: compactItemContext === null || compactItemContext === void 0 ? void 0 : compactItemContext.compactSize,\n    compactDirection: compactItemContext === null || compactItemContext === void 0 ? void 0 : compactItemContext.compactDirection,\n    compactItemClassnames\n  };\n};\nexport const NoCompactStyle = _ref => {\n  let {\n    children\n  } = _ref;\n  return /*#__PURE__*/React.createElement(SpaceCompactItemContext.Provider, {\n    value: null\n  }, children);\n};\nconst CompactItem = _a => {\n  var {\n      children\n    } = _a,\n    otherProps = __rest(_a, [\"children\"]);\n  return /*#__PURE__*/React.createElement(SpaceCompactItemContext.Provider, {\n    value: otherProps\n  }, children);\n};\nconst Compact = props => {\n  const {\n    getPrefixCls,\n    direction: directionConfig\n  } = React.useContext(ConfigContext);\n  const {\n      size,\n      direction,\n      block,\n      prefixCls: customizePrefixCls,\n      className,\n      rootClassName,\n      children\n    } = props,\n    restProps = __rest(props, [\"size\", \"direction\", \"block\", \"prefixCls\", \"className\", \"rootClassName\", \"children\"]);\n  const mergedSize = useSize(ctx => size !== null && size !== void 0 ? size : ctx);\n  const prefixCls = getPrefixCls('space-compact', customizePrefixCls);\n  const [wrapCSSVar, hashId] = useStyle(prefixCls);\n  const clx = classNames(prefixCls, hashId, {\n    [`${prefixCls}-rtl`]: directionConfig === 'rtl',\n    [`${prefixCls}-block`]: block,\n    [`${prefixCls}-vertical`]: direction === 'vertical'\n  }, className, rootClassName);\n  const compactItemContext = React.useContext(SpaceCompactItemContext);\n  const childNodes = toArray(children);\n  const nodes = React.useMemo(() => childNodes.map((child, i) => {\n    const key = (child === null || child === void 0 ? void 0 : child.key) || `${prefixCls}-item-${i}`;\n    return /*#__PURE__*/React.createElement(CompactItem, {\n      key: key,\n      compactSize: mergedSize,\n      compactDirection: direction,\n      isFirstItem: i === 0 && (!compactItemContext || (compactItemContext === null || compactItemContext === void 0 ? void 0 : compactItemContext.isFirstItem)),\n      isLastItem: i === childNodes.length - 1 && (!compactItemContext || (compactItemContext === null || compactItemContext === void 0 ? void 0 : compactItemContext.isLastItem))\n    }, child);\n  }), [size, childNodes, compactItemContext]);\n  // =========================== Render ===========================\n  if (childNodes.length === 0) {\n    return null;\n  }\n  return wrapCSSVar(/*#__PURE__*/React.createElement(\"div\", Object.assign({\n    className: clx\n  }, restProps), nodes));\n};\nexport default Compact;","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n  var t = {};\n  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n  }\n  return t;\n};\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { devUseWarning } from '../_util/warning';\nimport { ConfigContext } from '../config-provider';\nimport { useToken } from '../theme/internal';\nexport const GroupSizeContext = /*#__PURE__*/React.createContext(undefined);\nconst ButtonGroup = props => {\n  const {\n    getPrefixCls,\n    direction\n  } = React.useContext(ConfigContext);\n  const {\n      prefixCls: customizePrefixCls,\n      size,\n      className\n    } = props,\n    others = __rest(props, [\"prefixCls\", \"size\", \"className\"]);\n  const prefixCls = getPrefixCls('btn-group', customizePrefixCls);\n  const [,, hashId] = useToken();\n  let sizeCls = '';\n  switch (size) {\n    case 'large':\n      sizeCls = 'lg';\n      break;\n    case 'small':\n      sizeCls = 'sm';\n      break;\n    default:\n    // Do nothing\n  }\n  if (process.env.NODE_ENV !== 'production') {\n    const warning = devUseWarning('Button.Group');\n    process.env.NODE_ENV !== \"production\" ? warning(!size || ['large', 'small', 'middle'].includes(size), 'usage', 'Invalid prop `size`.') : void 0;\n  }\n  const classes = classNames(prefixCls, {\n    [`${prefixCls}-${sizeCls}`]: sizeCls,\n    [`${prefixCls}-rtl`]: direction === 'rtl'\n  }, className, hashId);\n  return /*#__PURE__*/React.createElement(GroupSizeContext.Provider, {\n    value: size\n  }, /*#__PURE__*/React.createElement(\"div\", Object.assign({}, others, {\n    className: classes\n  })));\n};\nexport default ButtonGroup;","\"use client\";\n\nimport React from 'react';\nimport { cloneElement, isFragment } from '../_util/reactNode';\nconst rxTwoCNChar = /^[\\u4E00-\\u9FA5]{2}$/;\nexport const isTwoCNChar = rxTwoCNChar.test.bind(rxTwoCNChar);\nexport function convertLegacyProps(type) {\n  if (type === 'danger') {\n    return {\n      danger: true\n    };\n  }\n  return {\n    type\n  };\n}\nexport function isString(str) {\n  return typeof str === 'string';\n}\nexport function isUnBorderedButtonVariant(type) {\n  return type === 'text' || type === 'link';\n}\nfunction splitCNCharsBySpace(child, needInserted) {\n  if (child === null || child === undefined) {\n    return;\n  }\n  const SPACE = needInserted ? ' ' : '';\n  if (typeof child !== 'string' && typeof child !== 'number' && isString(child.type) && isTwoCNChar(child.props.children)) {\n    return cloneElement(child, {\n      children: child.props.children.split('').join(SPACE)\n    });\n  }\n  if (isString(child)) {\n    return isTwoCNChar(child) ? /*#__PURE__*/React.createElement(\"span\", null, child.split('').join(SPACE)) : /*#__PURE__*/React.createElement(\"span\", null, child);\n  }\n  if (isFragment(child)) {\n    return /*#__PURE__*/React.createElement(\"span\", null, child);\n  }\n  return child;\n}\nexport function spaceChildren(children, needInserted) {\n  let isPrevChildPure = false;\n  const childList = [];\n  React.Children.forEach(children, child => {\n    const type = typeof child;\n    const isCurrentChildPure = type === 'string' || type === 'number';\n    if (isPrevChildPure && isCurrentChildPure) {\n      const lastIndex = childList.length - 1;\n      const lastChild = childList[lastIndex];\n      childList[lastIndex] = `${lastChild}${child}`;\n    } else {\n      childList.push(child);\n    }\n    isPrevChildPure = isCurrentChildPure;\n  });\n  return React.Children.map(childList, child => splitCNCharsBySpace(child, needInserted));\n}\nconst _ButtonTypes = ['default', 'primary', 'dashed', 'link', 'text'];\nconst _ButtonShapes = ['default', 'circle', 'round'];\nconst _ButtonHTMLTypes = ['submit', 'button', 'reset'];\nexport const _ButtonVariantTypes = ['outlined', 'dashed', 'solid', 'filled', 'text', 'link'];\nexport const _ButtonColorTypes = ['default', 'primary', 'danger'];","\"use client\";\n\nimport React, { forwardRef } from 'react';\nimport classNames from 'classnames';\nconst IconWrapper = /*#__PURE__*/forwardRef((props, ref) => {\n  const {\n    className,\n    style,\n    children,\n    prefixCls\n  } = props;\n  const iconWrapperCls = classNames(`${prefixCls}-icon`, className);\n  return /*#__PURE__*/React.createElement(\"span\", {\n    ref: ref,\n    className: iconWrapperCls,\n    style: style\n  }, children);\n});\nexport default IconWrapper;","\"use client\";\n\nimport React, { forwardRef } from 'react';\nimport LoadingOutlined from \"@ant-design/icons/es/icons/LoadingOutlined\";\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport IconWrapper from './IconWrapper';\nconst InnerLoadingIcon = /*#__PURE__*/forwardRef((props, ref) => {\n  const {\n    prefixCls,\n    className,\n    style,\n    iconClassName\n  } = props;\n  const mergedIconCls = classNames(`${prefixCls}-loading-icon`, className);\n  return /*#__PURE__*/React.createElement(IconWrapper, {\n    prefixCls: prefixCls,\n    className: mergedIconCls,\n    style: style,\n    ref: ref\n  }, /*#__PURE__*/React.createElement(LoadingOutlined, {\n    className: iconClassName\n  }));\n});\nconst getCollapsedWidth = () => ({\n  width: 0,\n  opacity: 0,\n  transform: 'scale(0)'\n});\nconst getRealWidth = node => ({\n  width: node.scrollWidth,\n  opacity: 1,\n  transform: 'scale(1)'\n});\nconst LoadingIcon = props => {\n  const {\n    prefixCls,\n    loading,\n    existIcon,\n    className,\n    style\n  } = props;\n  const visible = !!loading;\n  if (existIcon) {\n    return /*#__PURE__*/React.createElement(InnerLoadingIcon, {\n      prefixCls: prefixCls,\n      className: className,\n      style: style\n    });\n  }\n  return /*#__PURE__*/React.createElement(CSSMotion, {\n    visible: visible,\n    // We do not really use this motionName\n    motionName: `${prefixCls}-loading-icon-motion`,\n    motionLeave: visible,\n    removeOnLeave: true,\n    onAppearStart: getCollapsedWidth,\n    onAppearActive: getRealWidth,\n    onEnterStart: getCollapsedWidth,\n    onEnterActive: getRealWidth,\n    onLeaveStart: getRealWidth,\n    onLeaveActive: getCollapsedWidth\n  }, (_ref, ref) => {\n    let {\n      className: motionCls,\n      style: motionStyle\n    } = _ref;\n    return /*#__PURE__*/React.createElement(InnerLoadingIcon, {\n      prefixCls: prefixCls,\n      className: className,\n      style: Object.assign(Object.assign({}, style), motionStyle),\n      ref: ref,\n      iconClassName: motionCls\n    });\n  });\n};\nexport default LoadingIcon;","const genButtonBorderStyle = (buttonTypeCls, borderColor) => ({\n  // Border\n  [`> span, > ${buttonTypeCls}`]: {\n    '&:not(:last-child)': {\n      [`&, & > ${buttonTypeCls}`]: {\n        '&:not(:disabled)': {\n          borderInlineEndColor: borderColor\n        }\n      }\n    },\n    '&:not(:first-child)': {\n      [`&, & > ${buttonTypeCls}`]: {\n        '&:not(:disabled)': {\n          borderInlineStartColor: borderColor\n        }\n      }\n    }\n  }\n});\nconst genGroupStyle = token => {\n  const {\n    componentCls,\n    fontSize,\n    lineWidth,\n    groupBorderColor,\n    colorErrorHover\n  } = token;\n  return {\n    [`${componentCls}-group`]: [{\n      position: 'relative',\n      display: 'inline-flex',\n      // Border\n      [`> span, > ${componentCls}`]: {\n        '&:not(:last-child)': {\n          [`&, & > ${componentCls}`]: {\n            borderStartEndRadius: 0,\n            borderEndEndRadius: 0\n          }\n        },\n        '&:not(:first-child)': {\n          marginInlineStart: token.calc(lineWidth).mul(-1).equal(),\n          [`&, & > ${componentCls}`]: {\n            borderStartStartRadius: 0,\n            borderEndStartRadius: 0\n          }\n        }\n      },\n      [componentCls]: {\n        position: 'relative',\n        zIndex: 1,\n        '&:hover, &:focus, &:active': {\n          zIndex: 2\n        },\n        '&[disabled]': {\n          zIndex: 0\n        }\n      },\n      [`${componentCls}-icon-only`]: {\n        fontSize\n      }\n    },\n    // Border Color\n    genButtonBorderStyle(`${componentCls}-primary`, groupBorderColor), genButtonBorderStyle(`${componentCls}-danger`, colorErrorHover)]\n  };\n};\nexport default genGroupStyle;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nconst round = Math.round;\n\n/**\n * Support format, alpha unit will check the % mark:\n * - rgba(102, 204, 255, .5)      -> [102, 204, 255, 0.5]\n * - rgb(102 204 255 / .5)        -> [102, 204, 255, 0.5]\n * - rgb(100%, 50%, 0% / 50%)     -> [255, 128, 0, 0.5]\n * - hsl(270, 60, 40, .5)         -> [270, 60, 40, 0.5]\n * - hsl(270deg 60% 40% / 50%)   -> [270, 60, 40, 0.5]\n *\n * When `base` is provided, the percentage value will be divided by `base`.\n */\nfunction splitColorStr(str, parseNum) {\n  const match = str\n  // Remove str before `(`\n  .replace(/^[^(]*\\((.*)/, '$1')\n  // Remove str after `)`\n  .replace(/\\).*/, '').match(/\\d*\\.?\\d+%?/g) || [];\n  const numList = match.map(item => parseFloat(item));\n  for (let i = 0; i < 3; i += 1) {\n    numList[i] = parseNum(numList[i] || 0, match[i] || '', i);\n  }\n\n  // For alpha. 50% should be 0.5\n  if (match[3]) {\n    numList[3] = match[3].includes('%') ? numList[3] / 100 : numList[3];\n  } else {\n    // By default, alpha is 1\n    numList[3] = 1;\n  }\n  return numList;\n}\nconst parseHSVorHSL = (num, _, index) => index === 0 ? num : num / 100;\n\n/** round and limit number to integer between 0-255 */\nfunction limitRange(value, max) {\n  const mergedMax = max || 255;\n  if (value > mergedMax) {\n    return mergedMax;\n  }\n  if (value < 0) {\n    return 0;\n  }\n  return value;\n}\nexport class FastColor {\n  constructor(input) {\n    /**\n     * All FastColor objects are valid. So isValid is always true. This property is kept to be compatible with TinyColor.\n     */\n    _defineProperty(this, \"isValid\", true);\n    /**\n     * Red, R in RGB\n     */\n    _defineProperty(this, \"r\", 0);\n    /**\n     * Green, G in RGB\n     */\n    _defineProperty(this, \"g\", 0);\n    /**\n     * Blue, B in RGB\n     */\n    _defineProperty(this, \"b\", 0);\n    /**\n     * Alpha/Opacity, A in RGBA/HSLA\n     */\n    _defineProperty(this, \"a\", 1);\n    // HSV privates\n    _defineProperty(this, \"_h\", void 0);\n    _defineProperty(this, \"_s\", void 0);\n    _defineProperty(this, \"_l\", void 0);\n    _defineProperty(this, \"_v\", void 0);\n    // intermediate variables to calculate HSL/HSV\n    _defineProperty(this, \"_max\", void 0);\n    _defineProperty(this, \"_min\", void 0);\n    _defineProperty(this, \"_brightness\", void 0);\n    /**\n     * Always check 3 char in the object to determine the format.\n     * We not use function in check to save bundle size.\n     * e.g. 'rgb' -> { r: 0, g: 0, b: 0 }.\n     */\n    function matchFormat(str) {\n      return str[0] in input && str[1] in input && str[2] in input;\n    }\n    if (!input) {\n      // Do nothing since already initialized\n    } else if (typeof input === 'string') {\n      const trimStr = input.trim();\n      function matchPrefix(prefix) {\n        return trimStr.startsWith(prefix);\n      }\n      if (/^#?[A-F\\d]{3,8}$/i.test(trimStr)) {\n        this.fromHexString(trimStr);\n      } else if (matchPrefix('rgb')) {\n        this.fromRgbString(trimStr);\n      } else if (matchPrefix('hsl')) {\n        this.fromHslString(trimStr);\n      } else if (matchPrefix('hsv') || matchPrefix('hsb')) {\n        this.fromHsvString(trimStr);\n      }\n    } else if (input instanceof FastColor) {\n      this.r = input.r;\n      this.g = input.g;\n      this.b = input.b;\n      this.a = input.a;\n      this._h = input._h;\n      this._s = input._s;\n      this._l = input._l;\n      this._v = input._v;\n    } else if (matchFormat('rgb')) {\n      this.r = limitRange(input.r);\n      this.g = limitRange(input.g);\n      this.b = limitRange(input.b);\n      this.a = typeof input.a === 'number' ? limitRange(input.a, 1) : 1;\n    } else if (matchFormat('hsl')) {\n      this.fromHsl(input);\n    } else if (matchFormat('hsv')) {\n      this.fromHsv(input);\n    } else {\n      throw new Error('@ant-design/fast-color: unsupported input ' + JSON.stringify(input));\n    }\n  }\n\n  // ======================= Setter =======================\n\n  setR(value) {\n    return this._sc('r', value);\n  }\n  setG(value) {\n    return this._sc('g', value);\n  }\n  setB(value) {\n    return this._sc('b', value);\n  }\n  setA(value) {\n    return this._sc('a', value, 1);\n  }\n  setHue(value) {\n    const hsv = this.toHsv();\n    hsv.h = value;\n    return this._c(hsv);\n  }\n\n  // ======================= Getter =======================\n  /**\n   * Returns the perceived luminance of a color, from 0-1.\n   * @see http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n   */\n  getLuminance() {\n    function adjustGamma(raw) {\n      const val = raw / 255;\n      return val <= 0.03928 ? val / 12.92 : Math.pow((val + 0.055) / 1.055, 2.4);\n    }\n    const R = adjustGamma(this.r);\n    const G = adjustGamma(this.g);\n    const B = adjustGamma(this.b);\n    return 0.2126 * R + 0.7152 * G + 0.0722 * B;\n  }\n  getHue() {\n    if (typeof this._h === 'undefined') {\n      const delta = this.getMax() - this.getMin();\n      if (delta === 0) {\n        this._h = 0;\n      } else {\n        this._h = round(60 * (this.r === this.getMax() ? (this.g - this.b) / delta + (this.g < this.b ? 6 : 0) : this.g === this.getMax() ? (this.b - this.r) / delta + 2 : (this.r - this.g) / delta + 4));\n      }\n    }\n    return this._h;\n  }\n  getSaturation() {\n    if (typeof this._s === 'undefined') {\n      const delta = this.getMax() - this.getMin();\n      if (delta === 0) {\n        this._s = 0;\n      } else {\n        this._s = delta / this.getMax();\n      }\n    }\n    return this._s;\n  }\n  getLightness() {\n    if (typeof this._l === 'undefined') {\n      this._l = (this.getMax() + this.getMin()) / 510;\n    }\n    return this._l;\n  }\n  getValue() {\n    if (typeof this._v === 'undefined') {\n      this._v = this.getMax() / 255;\n    }\n    return this._v;\n  }\n\n  /**\n   * Returns the perceived brightness of the color, from 0-255.\n   * Note: this is not the b of HSB\n   * @see http://www.w3.org/TR/AERT#color-contrast\n   */\n  getBrightness() {\n    if (typeof this._brightness === 'undefined') {\n      this._brightness = (this.r * 299 + this.g * 587 + this.b * 114) / 1000;\n    }\n    return this._brightness;\n  }\n\n  // ======================== Func ========================\n\n  darken(amount = 10) {\n    const h = this.getHue();\n    const s = this.getSaturation();\n    let l = this.getLightness() - amount / 100;\n    if (l < 0) {\n      l = 0;\n    }\n    return this._c({\n      h,\n      s,\n      l,\n      a: this.a\n    });\n  }\n  lighten(amount = 10) {\n    const h = this.getHue();\n    const s = this.getSaturation();\n    let l = this.getLightness() + amount / 100;\n    if (l > 1) {\n      l = 1;\n    }\n    return this._c({\n      h,\n      s,\n      l,\n      a: this.a\n    });\n  }\n\n  /**\n   * Mix the current color a given amount with another color, from 0 to 100.\n   * 0 means no mixing (return current color).\n   */\n  mix(input, amount = 50) {\n    const color = this._c(input);\n    const p = amount / 100;\n    const calc = key => (color[key] - this[key]) * p + this[key];\n    const rgba = {\n      r: round(calc('r')),\n      g: round(calc('g')),\n      b: round(calc('b')),\n      a: round(calc('a') * 100) / 100\n    };\n    return this._c(rgba);\n  }\n\n  /**\n   * Mix the color with pure white, from 0 to 100.\n   * Providing 0 will do nothing, providing 100 will always return white.\n   */\n  tint(amount = 10) {\n    return this.mix({\n      r: 255,\n      g: 255,\n      b: 255,\n      a: 1\n    }, amount);\n  }\n\n  /**\n   * Mix the color with pure black, from 0 to 100.\n   * Providing 0 will do nothing, providing 100 will always return black.\n   */\n  shade(amount = 10) {\n    return this.mix({\n      r: 0,\n      g: 0,\n      b: 0,\n      a: 1\n    }, amount);\n  }\n  onBackground(background) {\n    const bg = this._c(background);\n    const alpha = this.a + bg.a * (1 - this.a);\n    const calc = key => {\n      return round((this[key] * this.a + bg[key] * bg.a * (1 - this.a)) / alpha);\n    };\n    return this._c({\n      r: calc('r'),\n      g: calc('g'),\n      b: calc('b'),\n      a: alpha\n    });\n  }\n\n  // ======================= Status =======================\n  isDark() {\n    return this.getBrightness() < 128;\n  }\n  isLight() {\n    return this.getBrightness() >= 128;\n  }\n\n  // ======================== MISC ========================\n  equals(other) {\n    return this.r === other.r && this.g === other.g && this.b === other.b && this.a === other.a;\n  }\n  clone() {\n    return this._c(this);\n  }\n\n  // ======================= Format =======================\n  toHexString() {\n    let hex = '#';\n    const rHex = (this.r || 0).toString(16);\n    hex += rHex.length === 2 ? rHex : '0' + rHex;\n    const gHex = (this.g || 0).toString(16);\n    hex += gHex.length === 2 ? gHex : '0' + gHex;\n    const bHex = (this.b || 0).toString(16);\n    hex += bHex.length === 2 ? bHex : '0' + bHex;\n    if (typeof this.a === 'number' && this.a >= 0 && this.a < 1) {\n      const aHex = round(this.a * 255).toString(16);\n      hex += aHex.length === 2 ? aHex : '0' + aHex;\n    }\n    return hex;\n  }\n\n  /** CSS support color pattern */\n  toHsl() {\n    return {\n      h: this.getHue(),\n      s: this.getSaturation(),\n      l: this.getLightness(),\n      a: this.a\n    };\n  }\n\n  /** CSS support color pattern */\n  toHslString() {\n    const h = this.getHue();\n    const s = round(this.getSaturation() * 100);\n    const l = round(this.getLightness() * 100);\n    return this.a !== 1 ? `hsla(${h},${s}%,${l}%,${this.a})` : `hsl(${h},${s}%,${l}%)`;\n  }\n\n  /** Same as toHsb */\n  toHsv() {\n    return {\n      h: this.getHue(),\n      s: this.getSaturation(),\n      v: this.getValue(),\n      a: this.a\n    };\n  }\n  toRgb() {\n    return {\n      r: this.r,\n      g: this.g,\n      b: this.b,\n      a: this.a\n    };\n  }\n  toRgbString() {\n    return this.a !== 1 ? `rgba(${this.r},${this.g},${this.b},${this.a})` : `rgb(${this.r},${this.g},${this.b})`;\n  }\n  toString() {\n    return this.toRgbString();\n  }\n\n  // ====================== Privates ======================\n  /** Return a new FastColor object with one channel changed */\n  _sc(rgb, value, max) {\n    const clone = this.clone();\n    clone[rgb] = limitRange(value, max);\n    return clone;\n  }\n  _c(input) {\n    return new this.constructor(input);\n  }\n  getMax() {\n    if (typeof this._max === 'undefined') {\n      this._max = Math.max(this.r, this.g, this.b);\n    }\n    return this._max;\n  }\n  getMin() {\n    if (typeof this._min === 'undefined') {\n      this._min = Math.min(this.r, this.g, this.b);\n    }\n    return this._min;\n  }\n  fromHexString(trimStr) {\n    const withoutPrefix = trimStr.replace('#', '');\n    function connectNum(index1, index2) {\n      return parseInt(withoutPrefix[index1] + withoutPrefix[index2 || index1], 16);\n    }\n    if (withoutPrefix.length < 6) {\n      // #rgb or #rgba\n      this.r = connectNum(0);\n      this.g = connectNum(1);\n      this.b = connectNum(2);\n      this.a = withoutPrefix[3] ? connectNum(3) / 255 : 1;\n    } else {\n      // #rrggbb or #rrggbbaa\n      this.r = connectNum(0, 1);\n      this.g = connectNum(2, 3);\n      this.b = connectNum(4, 5);\n      this.a = withoutPrefix[6] ? connectNum(6, 7) / 255 : 1;\n    }\n  }\n  fromHsl({\n    h,\n    s,\n    l,\n    a\n  }) {\n    this._h = h % 360;\n    this._s = s;\n    this._l = l;\n    this.a = typeof a === 'number' ? a : 1;\n    if (s <= 0) {\n      const rgb = round(l * 255);\n      this.r = rgb;\n      this.g = rgb;\n      this.b = rgb;\n    }\n    let r = 0,\n      g = 0,\n      b = 0;\n    const huePrime = h / 60;\n    const chroma = (1 - Math.abs(2 * l - 1)) * s;\n    const secondComponent = chroma * (1 - Math.abs(huePrime % 2 - 1));\n    if (huePrime >= 0 && huePrime < 1) {\n      r = chroma;\n      g = secondComponent;\n    } else if (huePrime >= 1 && huePrime < 2) {\n      r = secondComponent;\n      g = chroma;\n    } else if (huePrime >= 2 && huePrime < 3) {\n      g = chroma;\n      b = secondComponent;\n    } else if (huePrime >= 3 && huePrime < 4) {\n      g = secondComponent;\n      b = chroma;\n    } else if (huePrime >= 4 && huePrime < 5) {\n      r = secondComponent;\n      b = chroma;\n    } else if (huePrime >= 5 && huePrime < 6) {\n      r = chroma;\n      b = secondComponent;\n    }\n    const lightnessModification = l - chroma / 2;\n    this.r = round((r + lightnessModification) * 255);\n    this.g = round((g + lightnessModification) * 255);\n    this.b = round((b + lightnessModification) * 255);\n  }\n  fromHsv({\n    h,\n    s,\n    v,\n    a\n  }) {\n    this._h = h % 360;\n    this._s = s;\n    this._v = v;\n    this.a = typeof a === 'number' ? a : 1;\n    const vv = round(v * 255);\n    this.r = vv;\n    this.g = vv;\n    this.b = vv;\n    if (s <= 0) {\n      return;\n    }\n    const hh = h / 60;\n    const i = Math.floor(hh);\n    const ff = hh - i;\n    const p = round(v * (1.0 - s) * 255);\n    const q = round(v * (1.0 - s * ff) * 255);\n    const t = round(v * (1.0 - s * (1.0 - ff)) * 255);\n    switch (i) {\n      case 0:\n        this.g = t;\n        this.b = p;\n        break;\n      case 1:\n        this.r = q;\n        this.b = p;\n        break;\n      case 2:\n        this.r = p;\n        this.b = t;\n        break;\n      case 3:\n        this.r = p;\n        this.g = q;\n        break;\n      case 4:\n        this.r = t;\n        this.g = p;\n        break;\n      case 5:\n      default:\n        this.g = p;\n        this.b = q;\n        break;\n    }\n  }\n  fromHsvString(trimStr) {\n    const cells = splitColorStr(trimStr, parseHSVorHSL);\n    this.fromHsv({\n      h: cells[0],\n      s: cells[1],\n      v: cells[2],\n      a: cells[3]\n    });\n  }\n  fromHslString(trimStr) {\n    const cells = splitColorStr(trimStr, parseHSVorHSL);\n    this.fromHsl({\n      h: cells[0],\n      s: cells[1],\n      l: cells[2],\n      a: cells[3]\n    });\n  }\n  fromRgbString(trimStr) {\n    const cells = splitColorStr(trimStr, (num, txt) =>\n    // Convert percentage to number. e.g. 50% -> 128\n    txt.includes('%') ? round(num / 100 * 255) : num);\n    this.r = cells[0];\n    this.g = cells[1];\n    this.b = cells[2];\n    this.a = cells[3];\n  }\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nvar _excluded = [\"b\"],\n  _excluded2 = [\"v\"];\nimport { FastColor } from '@ant-design/fast-color';\nexport var getRoundNumber = function getRoundNumber(value) {\n  return Math.round(Number(value || 0));\n};\nvar convertHsb2Hsv = function convertHsb2Hsv(color) {\n  if (color instanceof FastColor) {\n    return color;\n  }\n  if (color && _typeof(color) === 'object' && 'h' in color && 'b' in color) {\n    var _ref = color,\n      b = _ref.b,\n      resets = _objectWithoutProperties(_ref, _excluded);\n    return _objectSpread(_objectSpread({}, resets), {}, {\n      v: b\n    });\n  }\n  if (typeof color === 'string' && /hsb/.test(color)) {\n    return color.replace(/hsb/, 'hsv');\n  }\n  return color;\n};\nexport var Color = /*#__PURE__*/function (_FastColor) {\n  _inherits(Color, _FastColor);\n  var _super = _createSuper(Color);\n  function Color(color) {\n    _classCallCheck(this, Color);\n    return _super.call(this, convertHsb2Hsv(color));\n  }\n  _createClass(Color, [{\n    key: \"toHsbString\",\n    value: function toHsbString() {\n      var hsb = this.toHsb();\n      var saturation = getRoundNumber(hsb.s * 100);\n      var lightness = getRoundNumber(hsb.b * 100);\n      var hue = getRoundNumber(hsb.h);\n      var alpha = hsb.a;\n      var hsbString = \"hsb(\".concat(hue, \", \").concat(saturation, \"%, \").concat(lightness, \"%)\");\n      var hsbaString = \"hsba(\".concat(hue, \", \").concat(saturation, \"%, \").concat(lightness, \"%, \").concat(alpha.toFixed(alpha === 0 ? 0 : 2), \")\");\n      return alpha === 1 ? hsbString : hsbaString;\n    }\n  }, {\n    key: \"toHsb\",\n    value: function toHsb() {\n      var _this$toHsv = this.toHsv(),\n        v = _this$toHsv.v,\n        resets = _objectWithoutProperties(_this$toHsv, _excluded2);\n      return _objectSpread(_objectSpread({}, resets), {}, {\n        b: v,\n        a: this.a\n      });\n    }\n  }]);\n  return Color;\n}(FastColor);","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport { Color } from \"./color\";\nexport var ColorPickerPrefixCls = 'rc-color-picker';\nexport var generateColor = function generateColor(color) {\n  if (color instanceof Color) {\n    return color;\n  }\n  return new Color(color);\n};\nexport var defaultColor = generateColor('#1677ff');\nexport var calculateColor = function calculateColor(props) {\n  var offset = props.offset,\n    targetRef = props.targetRef,\n    containerRef = props.containerRef,\n    color = props.color,\n    type = props.type;\n  var _containerRef$current = containerRef.current.getBoundingClientRect(),\n    width = _containerRef$current.width,\n    height = _containerRef$current.height;\n  var _targetRef$current$ge = targetRef.current.getBoundingClientRect(),\n    targetWidth = _targetRef$current$ge.width,\n    targetHeight = _targetRef$current$ge.height;\n  var centerOffsetX = targetWidth / 2;\n  var centerOffsetY = targetHeight / 2;\n  var saturation = (offset.x + centerOffsetX) / width;\n  var bright = 1 - (offset.y + centerOffsetY) / height;\n  var hsb = color.toHsb();\n  var alphaOffset = saturation;\n  var hueOffset = (offset.x + centerOffsetX) / width * 360;\n  if (type) {\n    switch (type) {\n      case 'hue':\n        return generateColor(_objectSpread(_objectSpread({}, hsb), {}, {\n          h: hueOffset <= 0 ? 0 : hueOffset\n        }));\n      case 'alpha':\n        return generateColor(_objectSpread(_objectSpread({}, hsb), {}, {\n          a: alphaOffset <= 0 ? 0 : alphaOffset\n        }));\n    }\n  }\n  return generateColor({\n    h: hsb.h,\n    s: saturation <= 0 ? 0 : saturation,\n    b: bright >= 1 ? 1 : bright,\n    a: hsb.a\n  });\n};\nexport var calcOffset = function calcOffset(color, type) {\n  var hsb = color.toHsb();\n  switch (type) {\n    case 'hue':\n      return {\n        x: hsb.h / 360 * 100,\n        y: 50\n      };\n    case 'alpha':\n      return {\n        x: color.a * 100,\n        y: 50\n      };\n\n    // Picker panel\n    default:\n      return {\n        x: hsb.s * 100,\n        y: (1 - hsb.b) * 100\n      };\n  }\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport React, { forwardRef, useMemo } from 'react';\nimport { ColorPickerPrefixCls, defaultColor } from \"./util\";\nimport classNames from 'classnames';\nimport { Color } from \"./color\";\nimport ColorBlock from \"./components/ColorBlock\";\nimport Picker from \"./components/Picker\";\nimport useColorState from \"./hooks/useColorState\";\nimport useComponent from \"./hooks/useComponent\";\nvar HUE_COLORS = [{\n  color: 'rgb(255, 0, 0)',\n  percent: 0\n}, {\n  color: 'rgb(255, 255, 0)',\n  percent: 17\n}, {\n  color: 'rgb(0, 255, 0)',\n  percent: 33\n}, {\n  color: 'rgb(0, 255, 255)',\n  percent: 50\n}, {\n  color: 'rgb(0, 0, 255)',\n  percent: 67\n}, {\n  color: 'rgb(255, 0, 255)',\n  percent: 83\n}, {\n  color: 'rgb(255, 0, 0)',\n  percent: 100\n}];\nvar ColorPicker = /*#__PURE__*/forwardRef(function (props, ref) {\n  var value = props.value,\n    defaultValue = props.defaultValue,\n    _props$prefixCls = props.prefixCls,\n    prefixCls = _props$prefixCls === void 0 ? ColorPickerPrefixCls : _props$prefixCls,\n    onChange = props.onChange,\n    onChangeComplete = props.onChangeComplete,\n    className = props.className,\n    style = props.style,\n    panelRender = props.panelRender,\n    _props$disabledAlpha = props.disabledAlpha,\n    disabledAlpha = _props$disabledAlpha === void 0 ? false : _props$disabledAlpha,\n    _props$disabled = props.disabled,\n    disabled = _props$disabled === void 0 ? false : _props$disabled,\n    components = props.components;\n\n  // ========================== Components ==========================\n  var _useComponent = useComponent(components),\n    _useComponent2 = _slicedToArray(_useComponent, 1),\n    Slider = _useComponent2[0];\n\n  // ============================ Color =============================\n  var _useColorState = useColorState(defaultValue || defaultColor, value),\n    _useColorState2 = _slicedToArray(_useColorState, 2),\n    colorValue = _useColorState2[0],\n    setColorValue = _useColorState2[1];\n  var alphaColor = useMemo(function () {\n    return colorValue.setA(1).toRgbString();\n  }, [colorValue]);\n\n  // ============================ Events ============================\n  var handleChange = function handleChange(data, type) {\n    if (!value) {\n      setColorValue(data);\n    }\n    onChange === null || onChange === void 0 || onChange(data, type);\n  };\n\n  // Convert\n  var getHueColor = function getHueColor(hue) {\n    return new Color(colorValue.setHue(hue));\n  };\n  var getAlphaColor = function getAlphaColor(alpha) {\n    return new Color(colorValue.setA(alpha / 100));\n  };\n\n  // Slider change\n  var onHueChange = function onHueChange(hue) {\n    handleChange(getHueColor(hue), {\n      type: 'hue',\n      value: hue\n    });\n  };\n  var onAlphaChange = function onAlphaChange(alpha) {\n    handleChange(getAlphaColor(alpha), {\n      type: 'alpha',\n      value: alpha\n    });\n  };\n\n  // Complete\n  var onHueChangeComplete = function onHueChangeComplete(hue) {\n    if (onChangeComplete) {\n      onChangeComplete(getHueColor(hue));\n    }\n  };\n  var onAlphaChangeComplete = function onAlphaChangeComplete(alpha) {\n    if (onChangeComplete) {\n      onChangeComplete(getAlphaColor(alpha));\n    }\n  };\n\n  // ============================ Render ============================\n  var mergeCls = classNames(\"\".concat(prefixCls, \"-panel\"), className, _defineProperty({}, \"\".concat(prefixCls, \"-panel-disabled\"), disabled));\n  var sharedSliderProps = {\n    prefixCls: prefixCls,\n    disabled: disabled,\n    color: colorValue\n  };\n  var defaultPanel = /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Picker, _extends({\n    onChange: handleChange\n  }, sharedSliderProps, {\n    onChangeComplete: onChangeComplete\n  })), /*#__PURE__*/React.createElement(\"div\", {\n    className: \"\".concat(prefixCls, \"-slider-container\")\n  }, /*#__PURE__*/React.createElement(\"div\", {\n    className: classNames(\"\".concat(prefixCls, \"-slider-group\"), _defineProperty({}, \"\".concat(prefixCls, \"-slider-group-disabled-alpha\"), disabledAlpha))\n  }, /*#__PURE__*/React.createElement(Slider, _extends({}, sharedSliderProps, {\n    type: \"hue\",\n    colors: HUE_COLORS,\n    min: 0,\n    max: 359,\n    value: colorValue.getHue(),\n    onChange: onHueChange,\n    onChangeComplete: onHueChangeComplete\n  })), !disabledAlpha && /*#__PURE__*/React.createElement(Slider, _extends({}, sharedSliderProps, {\n    type: \"alpha\",\n    colors: [{\n      percent: 0,\n      color: 'rgba(255, 0, 4, 0)'\n    }, {\n      percent: 100,\n      color: alphaColor\n    }],\n    min: 0,\n    max: 100,\n    value: colorValue.a * 100,\n    onChange: onAlphaChange,\n    onChangeComplete: onAlphaChangeComplete\n  }))), /*#__PURE__*/React.createElement(ColorBlock, {\n    color: colorValue.toRgbString(),\n    prefixCls: prefixCls\n  })));\n  return /*#__PURE__*/React.createElement(\"div\", {\n    className: mergeCls,\n    style: style,\n    ref: ref\n  }, typeof panelRender === 'function' ? panelRender(defaultPanel) : defaultPanel);\n});\nif (process.env.NODE_ENV !== 'production') {\n  ColorPicker.displayName = 'ColorPicker';\n}\nexport default ColorPicker;","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport { Color as RcColor } from '@rc-component/color-picker';\nexport const toHexFormat = (value, alpha) => (value === null || value === void 0 ? void 0 : value.replace(/[^\\w/]/g, '').slice(0, alpha ? 8 : 6)) || '';\nexport const getHex = (value, alpha) => value ? toHexFormat(value, alpha) : '';\nexport let AggregationColor = /*#__PURE__*/function () {\n  function AggregationColor(color) {\n    _classCallCheck(this, AggregationColor);\n    var _a;\n    this.cleared = false;\n    // Clone from another AggregationColor\n    if (color instanceof AggregationColor) {\n      this.metaColor = color.metaColor.clone();\n      this.colors = (_a = color.colors) === null || _a === void 0 ? void 0 : _a.map(info => ({\n        color: new AggregationColor(info.color),\n        percent: info.percent\n      }));\n      this.cleared = color.cleared;\n      return;\n    }\n    const isArray = Array.isArray(color);\n    if (isArray && color.length) {\n      this.colors = color.map(_ref => {\n        let {\n          color: c,\n          percent\n        } = _ref;\n        return {\n          color: new AggregationColor(c),\n          percent\n        };\n      });\n      this.metaColor = new RcColor(this.colors[0].color.metaColor);\n    } else {\n      this.metaColor = new RcColor(isArray ? '' : color);\n    }\n    if (!color || isArray && !this.colors) {\n      this.metaColor = this.metaColor.setA(0);\n      this.cleared = true;\n    }\n  }\n  return _createClass(AggregationColor, [{\n    key: \"toHsb\",\n    value: function toHsb() {\n      return this.metaColor.toHsb();\n    }\n  }, {\n    key: \"toHsbString\",\n    value: function toHsbString() {\n      return this.metaColor.toHsbString();\n    }\n  }, {\n    key: \"toHex\",\n    value: function toHex() {\n      return getHex(this.toHexString(), this.metaColor.a < 1);\n    }\n  }, {\n    key: \"toHexString\",\n    value: function toHexString() {\n      return this.metaColor.toHexString();\n    }\n  }, {\n    key: \"toRgb\",\n    value: function toRgb() {\n      return this.metaColor.toRgb();\n    }\n  }, {\n    key: \"toRgbString\",\n    value: function toRgbString() {\n      return this.metaColor.toRgbString();\n    }\n  }, {\n    key: \"isGradient\",\n    value: function isGradient() {\n      return !!this.colors && !this.cleared;\n    }\n  }, {\n    key: \"getColors\",\n    value: function getColors() {\n      return this.colors || [{\n        color: this,\n        percent: 0\n      }];\n    }\n  }, {\n    key: \"toCssString\",\n    value: function toCssString() {\n      const {\n        colors\n      } = this;\n      // CSS line-gradient\n      if (colors) {\n        const colorsStr = colors.map(c => `${c.color.toRgbString()} ${c.percent}%`).join(', ');\n        return `linear-gradient(90deg, ${colorsStr})`;\n      }\n      return this.metaColor.toRgbString();\n    }\n  }, {\n    key: \"equals\",\n    value: function equals(color) {\n      if (!color || this.isGradient() !== color.isGradient()) {\n        return false;\n      }\n      if (!this.isGradient()) {\n        return this.toHexString() === color.toHexString();\n      }\n      return this.colors.length === color.colors.length && this.colors.every((c, i) => {\n        const target = color.colors[i];\n        return c.percent === target.percent && c.color.equals(target.color);\n      });\n    }\n  }]);\n}();","// This icon file is generated automatically.\nvar RightOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M765.7 486.8L314.9 134.7A7.97 7.97 0 00302 141v77.3c0 4.9 2.3 9.6 6.1 12.6l360 281.1-360 281.1c-3.9 3-6.1 7.7-6.1 12.6V883c0 6.7 7.7 10.4 12.9 6.3l450.8-352.1a31.96 31.96 0 000-50.4z\" } }] }, \"name\": \"right\", \"theme\": \"outlined\" };\nexport default RightOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport RightOutlinedSvg from \"@ant-design/icons-svg/es/asn/RightOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar RightOutlined = function RightOutlined(props, ref) {\n  return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n    ref: ref,\n    icon: RightOutlinedSvg\n  }));\n};\n\n/**![right](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTc2NS43IDQ4Ni44TDMxNC45IDEzNC43QTcuOTcgNy45NyAwIDAwMzAyIDE0MXY3Ny4zYzAgNC45IDIuMyA5LjYgNi4xIDEyLjZsMzYwIDI4MS4xLTM2MCAyODEuMWMtMy45IDMtNi4xIDcuNy02LjEgMTIuNlY4ODNjMCA2LjcgNy43IDEwLjQgMTIuOSA2LjNsNDUwLjgtMzUyLjFhMzEuOTYgMzEuOTYgMCAwMDAtNTAuNHoiIC8+PC9zdmc+) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(RightOutlined);\nif (process.env.NODE_ENV !== 'production') {\n  RefIcon.displayName = 'RightOutlined';\n}\nexport default RefIcon;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport classnames from 'classnames';\nimport React from 'react';\nvar PanelContent = /*#__PURE__*/React.forwardRef(function (props, ref) {\n  var prefixCls = props.prefixCls,\n    forceRender = props.forceRender,\n    className = props.className,\n    style = props.style,\n    children = props.children,\n    isActive = props.isActive,\n    role = props.role,\n    customizeClassNames = props.classNames,\n    styles = props.styles;\n  var _React$useState = React.useState(isActive || forceRender),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    rendered = _React$useState2[0],\n    setRendered = _React$useState2[1];\n  React.useEffect(function () {\n    if (forceRender || isActive) {\n      setRendered(true);\n    }\n  }, [forceRender, isActive]);\n  if (!rendered) {\n    return null;\n  }\n  return /*#__PURE__*/React.createElement(\"div\", {\n    ref: ref,\n    className: classnames(\"\".concat(prefixCls, \"-content\"), _defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-content-active\"), isActive), \"\".concat(prefixCls, \"-content-inactive\"), !isActive), className),\n    style: style,\n    role: role\n  }, /*#__PURE__*/React.createElement(\"div\", {\n    className: classnames(\"\".concat(prefixCls, \"-content-box\"), customizeClassNames === null || customizeClassNames === void 0 ? void 0 : customizeClassNames.body),\n    style: styles === null || styles === void 0 ? void 0 : styles.body\n  }, children));\n});\nPanelContent.displayName = 'PanelContent';\nexport default PanelContent;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"showArrow\", \"headerClass\", \"isActive\", \"onItemClick\", \"forceRender\", \"className\", \"classNames\", \"styles\", \"prefixCls\", \"collapsible\", \"accordion\", \"panelKey\", \"extra\", \"header\", \"expandIcon\", \"openMotion\", \"destroyInactivePanel\", \"children\"];\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport React from 'react';\nimport PanelContent from \"./PanelContent\";\nvar CollapsePanel = /*#__PURE__*/React.forwardRef(function (props, ref) {\n  var _props$showArrow = props.showArrow,\n    showArrow = _props$showArrow === void 0 ? true : _props$showArrow,\n    headerClass = props.headerClass,\n    isActive = props.isActive,\n    onItemClick = props.onItemClick,\n    forceRender = props.forceRender,\n    className = props.className,\n    _props$classNames = props.classNames,\n    customizeClassNames = _props$classNames === void 0 ? {} : _props$classNames,\n    _props$styles = props.styles,\n    styles = _props$styles === void 0 ? {} : _props$styles,\n    prefixCls = props.prefixCls,\n    collapsible = props.collapsible,\n    accordion = props.accordion,\n    panelKey = props.panelKey,\n    extra = props.extra,\n    header = props.header,\n    expandIcon = props.expandIcon,\n    openMotion = props.openMotion,\n    destroyInactivePanel = props.destroyInactivePanel,\n    children = props.children,\n    resetProps = _objectWithoutProperties(props, _excluded);\n  var disabled = collapsible === 'disabled';\n  var collapsibleHeader = collapsible === 'header';\n  var collapsibleIcon = collapsible === 'icon';\n  var ifExtraExist = extra !== null && extra !== undefined && typeof extra !== 'boolean';\n  var handleItemClick = function handleItemClick() {\n    onItemClick === null || onItemClick === void 0 || onItemClick(panelKey);\n  };\n  var handleKeyDown = function handleKeyDown(e) {\n    if (e.key === 'Enter' || e.keyCode === KeyCode.ENTER || e.which === KeyCode.ENTER) {\n      handleItemClick();\n    }\n  };\n\n  // ======================== Icon ========================\n  var iconNode = typeof expandIcon === 'function' ? expandIcon(props) : /*#__PURE__*/React.createElement(\"i\", {\n    className: \"arrow\"\n  });\n  if (iconNode) {\n    iconNode = /*#__PURE__*/React.createElement(\"div\", {\n      className: \"\".concat(prefixCls, \"-expand-icon\"),\n      onClick: ['header', 'icon'].includes(collapsible) ? handleItemClick : undefined\n    }, iconNode);\n  }\n  var collapsePanelClassNames = classNames(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-item\"), true), \"\".concat(prefixCls, \"-item-active\"), isActive), \"\".concat(prefixCls, \"-item-disabled\"), disabled), className);\n  var headerClassName = classNames(headerClass, _defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-header\"), true), \"\".concat(prefixCls, \"-header-collapsible-only\"), collapsibleHeader), \"\".concat(prefixCls, \"-icon-collapsible-only\"), collapsibleIcon), customizeClassNames.header);\n\n  // ======================== HeaderProps ========================\n  var headerProps = {\n    className: headerClassName,\n    'aria-expanded': isActive,\n    'aria-disabled': disabled,\n    onKeyDown: handleKeyDown,\n    style: styles.header\n  };\n  if (!collapsibleHeader && !collapsibleIcon) {\n    headerProps.onClick = handleItemClick;\n    headerProps.role = accordion ? 'tab' : 'button';\n    headerProps.tabIndex = disabled ? -1 : 0;\n  }\n\n  // ======================== Render ========================\n  return /*#__PURE__*/React.createElement(\"div\", _extends({}, resetProps, {\n    ref: ref,\n    className: collapsePanelClassNames\n  }), /*#__PURE__*/React.createElement(\"div\", headerProps, showArrow && iconNode, /*#__PURE__*/React.createElement(\"span\", {\n    className: \"\".concat(prefixCls, \"-header-text\"),\n    onClick: collapsible === 'header' ? handleItemClick : undefined\n  }, header), ifExtraExist && /*#__PURE__*/React.createElement(\"div\", {\n    className: \"\".concat(prefixCls, \"-extra\")\n  }, extra)), /*#__PURE__*/React.createElement(CSSMotion, _extends({\n    visible: isActive,\n    leavedClassName: \"\".concat(prefixCls, \"-content-hidden\")\n  }, openMotion, {\n    forceRender: forceRender,\n    removeOnLeave: destroyInactivePanel\n  }), function (_ref, motionRef) {\n    var motionClassName = _ref.className,\n      motionStyle = _ref.style;\n    return /*#__PURE__*/React.createElement(PanelContent, {\n      ref: motionRef,\n      prefixCls: prefixCls,\n      className: motionClassName,\n      classNames: customizeClassNames,\n      style: motionStyle,\n      styles: styles,\n      isActive: isActive,\n      forceRender: forceRender,\n      role: accordion ? 'tabpanel' : void 0\n    }, children);\n  }));\n});\nexport default CollapsePanel;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"children\", \"label\", \"key\", \"collapsible\", \"onItemClick\", \"destroyInactivePanel\"];\nimport toArray from \"rc-util/es/Children/toArray\";\nimport React from 'react';\nimport CollapsePanel from \"../Panel\";\nvar convertItemsToNodes = function convertItemsToNodes(items, props) {\n  var prefixCls = props.prefixCls,\n    accordion = props.accordion,\n    collapsible = props.collapsible,\n    destroyInactivePanel = props.destroyInactivePanel,\n    onItemClick = props.onItemClick,\n    activeKey = props.activeKey,\n    openMotion = props.openMotion,\n    expandIcon = props.expandIcon;\n  return items.map(function (item, index) {\n    var children = item.children,\n      label = item.label,\n      rawKey = item.key,\n      rawCollapsible = item.collapsible,\n      rawOnItemClick = item.onItemClick,\n      rawDestroyInactivePanel = item.destroyInactivePanel,\n      restProps = _objectWithoutProperties(item, _excluded);\n\n    // You may be puzzled why you want to convert them all into strings, me too.\n    // Maybe: https://github.com/react-component/collapse/blob/aac303a8b6ff30e35060b4f8fecde6f4556fcbe2/src/Collapse.tsx#L15\n    var key = String(rawKey !== null && rawKey !== void 0 ? rawKey : index);\n    var mergeCollapsible = rawCollapsible !== null && rawCollapsible !== void 0 ? rawCollapsible : collapsible;\n    var mergeDestroyInactivePanel = rawDestroyInactivePanel !== null && rawDestroyInactivePanel !== void 0 ? rawDestroyInactivePanel : destroyInactivePanel;\n    var handleItemClick = function handleItemClick(value) {\n      if (mergeCollapsible === 'disabled') return;\n      onItemClick(value);\n      rawOnItemClick === null || rawOnItemClick === void 0 || rawOnItemClick(value);\n    };\n    var isActive = false;\n    if (accordion) {\n      isActive = activeKey[0] === key;\n    } else {\n      isActive = activeKey.indexOf(key) > -1;\n    }\n    return /*#__PURE__*/React.createElement(CollapsePanel, _extends({}, restProps, {\n      prefixCls: prefixCls,\n      key: key,\n      panelKey: key,\n      isActive: isActive,\n      accordion: accordion,\n      openMotion: openMotion,\n      expandIcon: expandIcon,\n      header: label,\n      collapsible: mergeCollapsible,\n      onItemClick: handleItemClick,\n      destroyInactivePanel: mergeDestroyInactivePanel\n    }), children);\n  });\n};\n\n/**\n * @deprecated The next major version will be removed\n */\nvar getNewChild = function getNewChild(child, index, props) {\n  if (!child) return null;\n  var prefixCls = props.prefixCls,\n    accordion = props.accordion,\n    collapsible = props.collapsible,\n    destroyInactivePanel = props.destroyInactivePanel,\n    onItemClick = props.onItemClick,\n    activeKey = props.activeKey,\n    openMotion = props.openMotion,\n    expandIcon = props.expandIcon;\n  var key = child.key || String(index);\n  var _child$props = child.props,\n    header = _child$props.header,\n    headerClass = _child$props.headerClass,\n    childDestroyInactivePanel = _child$props.destroyInactivePanel,\n    childCollapsible = _child$props.collapsible,\n    childOnItemClick = _child$props.onItemClick;\n  var isActive = false;\n  if (accordion) {\n    isActive = activeKey[0] === key;\n  } else {\n    isActive = activeKey.indexOf(key) > -1;\n  }\n  var mergeCollapsible = childCollapsible !== null && childCollapsible !== void 0 ? childCollapsible : collapsible;\n  var handleItemClick = function handleItemClick(value) {\n    if (mergeCollapsible === 'disabled') return;\n    onItemClick(value);\n    childOnItemClick === null || childOnItemClick === void 0 || childOnItemClick(value);\n  };\n  var childProps = {\n    key: key,\n    panelKey: key,\n    header: header,\n    headerClass: headerClass,\n    isActive: isActive,\n    prefixCls: prefixCls,\n    destroyInactivePanel: childDestroyInactivePanel !== null && childDestroyInactivePanel !== void 0 ? childDestroyInactivePanel : destroyInactivePanel,\n    openMotion: openMotion,\n    accordion: accordion,\n    children: child.props.children,\n    onItemClick: handleItemClick,\n    expandIcon: expandIcon,\n    collapsible: mergeCollapsible\n  };\n\n  // https://github.com/ant-design/ant-design/issues/20479\n  if (typeof child.type === 'string') {\n    return child;\n  }\n  Object.keys(childProps).forEach(function (propName) {\n    if (typeof childProps[propName] === 'undefined') {\n      delete childProps[propName];\n    }\n  });\n  return /*#__PURE__*/React.cloneElement(child, childProps);\n};\nfunction useItems(items, rawChildren, props) {\n  if (Array.isArray(items)) {\n    return convertItemsToNodes(items, props);\n  }\n  return toArray(rawChildren).map(function (child, index) {\n    return getNewChild(child, index, props);\n  });\n}\nexport default useItems;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport classNames from 'classnames';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport warning from \"rc-util/es/warning\";\nimport React from 'react';\nimport useItems from \"./hooks/useItems\";\nimport CollapsePanel from \"./Panel\";\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nfunction getActiveKeysArray(activeKey) {\n  var currentActiveKey = activeKey;\n  if (!Array.isArray(currentActiveKey)) {\n    var activeKeyType = _typeof(currentActiveKey);\n    currentActiveKey = activeKeyType === 'number' || activeKeyType === 'string' ? [currentActiveKey] : [];\n  }\n  return currentActiveKey.map(function (key) {\n    return String(key);\n  });\n}\nvar Collapse = /*#__PURE__*/React.forwardRef(function (props, ref) {\n  var _props$prefixCls = props.prefixCls,\n    prefixCls = _props$prefixCls === void 0 ? 'rc-collapse' : _props$prefixCls,\n    _props$destroyInactiv = props.destroyInactivePanel,\n    destroyInactivePanel = _props$destroyInactiv === void 0 ? false : _props$destroyInactiv,\n    style = props.style,\n    accordion = props.accordion,\n    className = props.className,\n    children = props.children,\n    collapsible = props.collapsible,\n    openMotion = props.openMotion,\n    expandIcon = props.expandIcon,\n    rawActiveKey = props.activeKey,\n    defaultActiveKey = props.defaultActiveKey,\n    _onChange = props.onChange,\n    items = props.items;\n  var collapseClassName = classNames(prefixCls, className);\n  var _useMergedState = useMergedState([], {\n      value: rawActiveKey,\n      onChange: function onChange(v) {\n        return _onChange === null || _onChange === void 0 ? void 0 : _onChange(v);\n      },\n      defaultValue: defaultActiveKey,\n      postState: getActiveKeysArray\n    }),\n    _useMergedState2 = _slicedToArray(_useMergedState, 2),\n    activeKey = _useMergedState2[0],\n    setActiveKey = _useMergedState2[1];\n  var onItemClick = function onItemClick(key) {\n    return setActiveKey(function () {\n      if (accordion) {\n        return activeKey[0] === key ? [] : [key];\n      }\n      var index = activeKey.indexOf(key);\n      var isActive = index > -1;\n      if (isActive) {\n        return activeKey.filter(function (item) {\n          return item !== key;\n        });\n      }\n      return [].concat(_toConsumableArray(activeKey), [key]);\n    });\n  };\n\n  // ======================== Children ========================\n  warning(!children, '[rc-collapse] `children` will be removed in next major version. Please use `items` instead.');\n  var mergedChildren = useItems(items, children, {\n    prefixCls: prefixCls,\n    accordion: accordion,\n    openMotion: openMotion,\n    expandIcon: expandIcon,\n    collapsible: collapsible,\n    destroyInactivePanel: destroyInactivePanel,\n    onItemClick: onItemClick,\n    activeKey: activeKey\n  });\n\n  // ======================== Render ========================\n  return /*#__PURE__*/React.createElement(\"div\", _extends({\n    ref: ref,\n    className: collapseClassName,\n    style: style,\n    role: accordion ? 'tablist' : undefined\n  }, pickAttrs(props, {\n    aria: true,\n    data: true\n  })), mergedChildren);\n});\nexport default Object.assign(Collapse, {\n  /**\n   * @deprecated use `items` instead, will be removed in `v4.0.0`\n   */\n  Panel: CollapsePanel\n});","import Collapse from \"./Collapse\";\nexport default Collapse;\n\n/**\n * @deprecated use `items` instead, will be removed in `v4.0.0`\n */\nvar Panel = Collapse.Panel;\nexport { Panel };","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport RcCollapse from 'rc-collapse';\nimport { devUseWarning } from '../_util/warning';\nimport { ConfigContext } from '../config-provider';\nconst CollapsePanel = /*#__PURE__*/React.forwardRef((props, ref) => {\n  if (process.env.NODE_ENV !== 'production') {\n    const warning = devUseWarning('Collapse.Panel');\n    warning.deprecated(!('disabled' in props), 'disabled', 'collapsible=\"disabled\"');\n  }\n  const {\n    getPrefixCls\n  } = React.useContext(ConfigContext);\n  const {\n    prefixCls: customizePrefixCls,\n    className,\n    showArrow = true\n  } = props;\n  const prefixCls = getPrefixCls('collapse', customizePrefixCls);\n  const collapsePanelClassName = classNames({\n    [`${prefixCls}-no-arrow`]: !showArrow\n  }, className);\n  return /*#__PURE__*/React.createElement(RcCollapse.Panel, Object.assign({\n    ref: ref\n  }, props, {\n    prefixCls: prefixCls,\n    className: collapsePanelClassName\n  }));\n});\nexport default CollapsePanel;","const genCollapseMotion = token => ({\n  [token.componentCls]: {\n    // For common/openAnimation\n    [`${token.antCls}-motion-collapse-legacy`]: {\n      overflow: 'hidden',\n      '&-active': {\n        transition: `height ${token.motionDurationMid} ${token.motionEaseInOut},\n        opacity ${token.motionDurationMid} ${token.motionEaseInOut} !important`\n      }\n    },\n    [`${token.antCls}-motion-collapse`]: {\n      overflow: 'hidden',\n      transition: `height ${token.motionDurationMid} ${token.motionEaseInOut},\n        opacity ${token.motionDurationMid} ${token.motionEaseInOut} !important`\n    }\n  }\n});\nexport default genCollapseMotion;","import { unit } from '@ant-design/cssinjs';\nimport { resetComponent, resetIcon } from '../../style';\nimport { genCollapseMotion } from '../../style/motion';\nimport { genStyleHooks, mergeToken } from '../../theme/internal';\nexport const genBaseStyle = token => {\n  const {\n    componentCls,\n    contentBg,\n    padding,\n    headerBg,\n    headerPadding,\n    collapseHeaderPaddingSM,\n    collapseHeaderPaddingLG,\n    collapsePanelBorderRadius,\n    lineWidth,\n    lineType,\n    colorBorder,\n    colorText,\n    colorTextHeading,\n    colorTextDisabled,\n    fontSizeLG,\n    lineHeight,\n    lineHeightLG,\n    marginSM,\n    paddingSM,\n    paddingLG,\n    paddingXS,\n    motionDurationSlow,\n    fontSizeIcon,\n    contentPadding,\n    fontHeight,\n    fontHeightLG\n  } = token;\n  const borderBase = `${unit(lineWidth)} ${lineType} ${colorBorder}`;\n  return {\n    [componentCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n      backgroundColor: headerBg,\n      border: borderBase,\n      borderRadius: collapsePanelBorderRadius,\n      '&-rtl': {\n        direction: 'rtl'\n      },\n      [`& > ${componentCls}-item`]: {\n        borderBottom: borderBase,\n        '&:last-child': {\n          [`\n            &,\n            & > ${componentCls}-header`]: {\n            borderRadius: `0 0 ${unit(collapsePanelBorderRadius)} ${unit(collapsePanelBorderRadius)}`\n          }\n        },\n        [`> ${componentCls}-header`]: {\n          position: 'relative',\n          // Compatible with old version of antd, should remove in next version\n          display: 'flex',\n          flexWrap: 'nowrap',\n          alignItems: 'flex-start',\n          padding: headerPadding,\n          color: colorTextHeading,\n          lineHeight,\n          cursor: 'pointer',\n          transition: `all ${motionDurationSlow}, visibility 0s`,\n          [`> ${componentCls}-header-text`]: {\n            flex: 'auto'\n          },\n          '&:focus': {\n            outline: 'none'\n          },\n          // >>>>> Arrow\n          [`${componentCls}-expand-icon`]: {\n            height: fontHeight,\n            display: 'flex',\n            alignItems: 'center',\n            paddingInlineEnd: marginSM\n          },\n          [`${componentCls}-arrow`]: Object.assign(Object.assign({}, resetIcon()), {\n            fontSize: fontSizeIcon,\n            // when `transform: rotate()` is applied to icon's root element\n            transition: `transform ${motionDurationSlow}`,\n            // when `transform: rotate()` is applied to icon's child element\n            svg: {\n              transition: `transform ${motionDurationSlow}`\n            }\n          }),\n          // >>>>> Text\n          [`${componentCls}-header-text`]: {\n            marginInlineEnd: 'auto'\n          }\n        },\n        [`${componentCls}-icon-collapsible-only`]: {\n          cursor: 'unset',\n          [`${componentCls}-expand-icon`]: {\n            cursor: 'pointer'\n          }\n        }\n      },\n      [`${componentCls}-content`]: {\n        color: colorText,\n        backgroundColor: contentBg,\n        borderTop: borderBase,\n        [`& > ${componentCls}-content-box`]: {\n          padding: contentPadding\n        },\n        '&-hidden': {\n          display: 'none'\n        }\n      },\n      '&-small': {\n        [`> ${componentCls}-item`]: {\n          [`> ${componentCls}-header`]: {\n            padding: collapseHeaderPaddingSM,\n            paddingInlineStart: paddingXS,\n            [`> ${componentCls}-expand-icon`]: {\n              // Arrow offset\n              marginInlineStart: token.calc(paddingSM).sub(paddingXS).equal()\n            }\n          },\n          [`> ${componentCls}-content > ${componentCls}-content-box`]: {\n            padding: paddingSM\n          }\n        }\n      },\n      '&-large': {\n        [`> ${componentCls}-item`]: {\n          fontSize: fontSizeLG,\n          lineHeight: lineHeightLG,\n          [`> ${componentCls}-header`]: {\n            padding: collapseHeaderPaddingLG,\n            paddingInlineStart: padding,\n            [`> ${componentCls}-expand-icon`]: {\n              height: fontHeightLG,\n              // Arrow offset\n              marginInlineStart: token.calc(paddingLG).sub(padding).equal()\n            }\n          },\n          [`> ${componentCls}-content > ${componentCls}-content-box`]: {\n            padding: paddingLG\n          }\n        }\n      },\n      [`${componentCls}-item:last-child`]: {\n        borderBottom: 0,\n        [`> ${componentCls}-content`]: {\n          borderRadius: `0 0 ${unit(collapsePanelBorderRadius)} ${unit(collapsePanelBorderRadius)}`\n        }\n      },\n      [`& ${componentCls}-item-disabled > ${componentCls}-header`]: {\n        [`\n          &,\n          & > .arrow\n        `]: {\n          color: colorTextDisabled,\n          cursor: 'not-allowed'\n        }\n      },\n      // ========================== Icon Position ==========================\n      [`&${componentCls}-icon-position-end`]: {\n        [`& > ${componentCls}-item`]: {\n          [`> ${componentCls}-header`]: {\n            [`${componentCls}-expand-icon`]: {\n              order: 1,\n              paddingInlineEnd: 0,\n              paddingInlineStart: marginSM\n            }\n          }\n        }\n      }\n    })\n  };\n};\nconst genArrowStyle = token => {\n  const {\n    componentCls\n  } = token;\n  const fixedSelector = `> ${componentCls}-item > ${componentCls}-header ${componentCls}-arrow`;\n  return {\n    [`${componentCls}-rtl`]: {\n      [fixedSelector]: {\n        transform: `rotate(180deg)`\n      }\n    }\n  };\n};\nconst genBorderlessStyle = token => {\n  const {\n    componentCls,\n    headerBg,\n    paddingXXS,\n    colorBorder\n  } = token;\n  return {\n    [`${componentCls}-borderless`]: {\n      backgroundColor: headerBg,\n      border: 0,\n      [`> ${componentCls}-item`]: {\n        borderBottom: `1px solid ${colorBorder}`\n      },\n      [`\n        > ${componentCls}-item:last-child,\n        > ${componentCls}-item:last-child ${componentCls}-header\n      `]: {\n        borderRadius: 0\n      },\n      [`> ${componentCls}-item:last-child`]: {\n        borderBottom: 0\n      },\n      [`> ${componentCls}-item > ${componentCls}-content`]: {\n        backgroundColor: 'transparent',\n        borderTop: 0\n      },\n      [`> ${componentCls}-item > ${componentCls}-content > ${componentCls}-content-box`]: {\n        paddingTop: paddingXXS\n      }\n    }\n  };\n};\nconst genGhostStyle = token => {\n  const {\n    componentCls,\n    paddingSM\n  } = token;\n  return {\n    [`${componentCls}-ghost`]: {\n      backgroundColor: 'transparent',\n      border: 0,\n      [`> ${componentCls}-item`]: {\n        borderBottom: 0,\n        [`> ${componentCls}-content`]: {\n          backgroundColor: 'transparent',\n          border: 0,\n          [`> ${componentCls}-content-box`]: {\n            paddingBlock: paddingSM\n          }\n        }\n      }\n    }\n  };\n};\nexport const prepareComponentToken = token => ({\n  headerPadding: `${token.paddingSM}px ${token.padding}px`,\n  headerBg: token.colorFillAlter,\n  contentPadding: `${token.padding}px 16px`,\n  // Fixed Value\n  contentBg: token.colorBgContainer\n});\nexport default genStyleHooks('Collapse', token => {\n  const collapseToken = mergeToken(token, {\n    collapseHeaderPaddingSM: `${unit(token.paddingXS)} ${unit(token.paddingSM)}`,\n    collapseHeaderPaddingLG: `${unit(token.padding)} ${unit(token.paddingLG)}`,\n    collapsePanelBorderRadius: token.borderRadiusLG\n  });\n  return [genBaseStyle(collapseToken), genBorderlessStyle(collapseToken), genGhostStyle(collapseToken), genArrowStyle(collapseToken), genCollapseMotion(collapseToken)];\n}, prepareComponentToken);","\"use client\";\n\nimport * as React from 'react';\nimport RightOutlined from \"@ant-design/icons/es/icons/RightOutlined\";\nimport classNames from 'classnames';\nimport RcCollapse from 'rc-collapse';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport omit from \"rc-util/es/omit\";\nimport initCollapseMotion from '../_util/motion';\nimport { cloneElement } from '../_util/reactNode';\nimport { devUseWarning } from '../_util/warning';\nimport { ConfigContext } from '../config-provider';\nimport useSize from '../config-provider/hooks/useSize';\nimport CollapsePanel from './CollapsePanel';\nimport useStyle from './style';\nconst Collapse = /*#__PURE__*/React.forwardRef((props, ref) => {\n  const {\n    getPrefixCls,\n    direction,\n    collapse\n  } = React.useContext(ConfigContext);\n  const {\n    prefixCls: customizePrefixCls,\n    className,\n    rootClassName,\n    style,\n    bordered = true,\n    ghost,\n    size: customizeSize,\n    expandIconPosition = 'start',\n    children,\n    expandIcon\n  } = props;\n  const mergedSize = useSize(ctx => {\n    var _a;\n    return (_a = customizeSize !== null && customizeSize !== void 0 ? customizeSize : ctx) !== null && _a !== void 0 ? _a : 'middle';\n  });\n  const prefixCls = getPrefixCls('collapse', customizePrefixCls);\n  const rootPrefixCls = getPrefixCls();\n  const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls);\n  if (process.env.NODE_ENV !== 'production') {\n    const warning = devUseWarning('Collapse');\n    // Warning if use legacy type `expandIconPosition`\n    process.env.NODE_ENV !== \"production\" ? warning(expandIconPosition !== 'left' && expandIconPosition !== 'right', 'deprecated', '`expandIconPosition` with `left` or `right` is deprecated. Please use `start` or `end` instead.') : void 0;\n  }\n  // Align with logic position\n  const mergedExpandIconPosition = React.useMemo(() => {\n    if (expandIconPosition === 'left') {\n      return 'start';\n    }\n    return expandIconPosition === 'right' ? 'end' : expandIconPosition;\n  }, [expandIconPosition]);\n  const mergedExpandIcon = expandIcon !== null && expandIcon !== void 0 ? expandIcon : collapse === null || collapse === void 0 ? void 0 : collapse.expandIcon;\n  const renderExpandIcon = React.useCallback(function () {\n    let panelProps = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n    const icon = typeof mergedExpandIcon === 'function' ? mergedExpandIcon(panelProps) : (/*#__PURE__*/React.createElement(RightOutlined, {\n      rotate: panelProps.isActive ? 90 : undefined,\n      \"aria-label\": panelProps.isActive ? 'expanded' : 'collapsed'\n    }));\n    return cloneElement(icon, () => {\n      var _a;\n      return {\n        className: classNames((_a = icon === null || icon === void 0 ? void 0 : icon.props) === null || _a === void 0 ? void 0 : _a.className, `${prefixCls}-arrow`)\n      };\n    });\n  }, [mergedExpandIcon, prefixCls]);\n  const collapseClassName = classNames(`${prefixCls}-icon-position-${mergedExpandIconPosition}`, {\n    [`${prefixCls}-borderless`]: !bordered,\n    [`${prefixCls}-rtl`]: direction === 'rtl',\n    [`${prefixCls}-ghost`]: !!ghost,\n    [`${prefixCls}-${mergedSize}`]: mergedSize !== 'middle'\n  }, collapse === null || collapse === void 0 ? void 0 : collapse.className, className, rootClassName, hashId, cssVarCls);\n  const openMotion = Object.assign(Object.assign({}, initCollapseMotion(rootPrefixCls)), {\n    motionAppear: false,\n    leavedClassName: `${prefixCls}-content-hidden`\n  });\n  const items = React.useMemo(() => children ? toArray(children).map((child, index) => {\n    var _a, _b;\n    if ((_a = child.props) === null || _a === void 0 ? void 0 : _a.disabled) {\n      const key = (_b = child.key) !== null && _b !== void 0 ? _b : String(index);\n      const {\n        disabled,\n        collapsible\n      } = child.props;\n      const childProps = Object.assign(Object.assign({}, omit(child.props, ['disabled'])), {\n        key,\n        collapsible: collapsible !== null && collapsible !== void 0 ? collapsible : disabled ? 'disabled' : undefined\n      });\n      return cloneElement(child, childProps);\n    }\n    return child;\n  }) : null, [children]);\n  return wrapCSSVar(\n  /*#__PURE__*/\n  // @ts-ignore\n  React.createElement(RcCollapse, Object.assign({\n    ref: ref,\n    openMotion: openMotion\n  }, omit(props, ['rootClassName']), {\n    expandIcon: renderExpandIcon,\n    prefixCls: prefixCls,\n    className: collapseClassName,\n    style: Object.assign(Object.assign({}, collapse === null || collapse === void 0 ? void 0 : collapse.style), style)\n  }), items));\n});\nif (process.env.NODE_ENV !== 'production') {\n  Collapse.displayName = 'Collapse';\n}\nexport default Object.assign(Collapse, {\n  Panel: CollapsePanel\n});","\"use client\";\n\nimport React, { useMemo } from 'react';\nimport { ColorBlock, Color as RcColor } from '@rc-component/color-picker';\nimport classNames from 'classnames';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport Collapse from '../../collapse';\nimport { useLocale } from '../../locale';\nimport { useToken } from '../../theme/internal';\nimport { generateColor } from '../util';\nconst genPresetColor = list => list.map(value => {\n  value.colors = value.colors.map(generateColor);\n  return value;\n});\nexport const isBright = (value, bgColorToken) => {\n  const {\n    r,\n    g,\n    b,\n    a\n  } = value.toRgb();\n  const hsv = new RcColor(value.toRgbString()).onBackground(bgColorToken).toHsv();\n  if (a <= 0.5) {\n    // Adapted to dark mode\n    return hsv.v > 0.5;\n  }\n  return r * 0.299 + g * 0.587 + b * 0.114 > 192;\n};\nconst genCollapsePanelKey = _ref => {\n  let {\n    label\n  } = _ref;\n  return `panel-${label}`;\n};\nconst ColorPresets = _ref2 => {\n  let {\n    prefixCls,\n    presets,\n    value: color,\n    onChange\n  } = _ref2;\n  const [locale] = useLocale('ColorPicker');\n  const [, token] = useToken();\n  const [presetsValue] = useMergedState(genPresetColor(presets), {\n    value: genPresetColor(presets),\n    postState: genPresetColor\n  });\n  const colorPresetsPrefixCls = `${prefixCls}-presets`;\n  const activeKeys = useMemo(() => presetsValue.reduce((acc, preset) => {\n    const {\n      defaultOpen = true\n    } = preset;\n    if (defaultOpen) acc.push(genCollapsePanelKey(preset));\n    return acc;\n  }, []), [presetsValue]);\n  const handleClick = colorValue => {\n    onChange === null || onChange === void 0 ? void 0 : onChange(colorValue);\n  };\n  const items = presetsValue.map(preset => {\n    var _a;\n    return {\n      key: genCollapsePanelKey(preset),\n      label: /*#__PURE__*/React.createElement(\"div\", {\n        className: `${colorPresetsPrefixCls}-label`\n      }, preset === null || preset === void 0 ? void 0 : preset.label),\n      children: (/*#__PURE__*/React.createElement(\"div\", {\n        className: `${colorPresetsPrefixCls}-items`\n      }, Array.isArray(preset === null || preset === void 0 ? void 0 : preset.colors) && ((_a = preset.colors) === null || _a === void 0 ? void 0 : _a.length) > 0 ? preset.colors.map((presetColor, index) => (/*#__PURE__*/React.createElement(ColorBlock\n      // eslint-disable-next-line react/no-array-index-key\n      , {\n        // eslint-disable-next-line react/no-array-index-key\n        key: `preset-${index}-${presetColor.toHexString()}`,\n        color: generateColor(presetColor).toRgbString(),\n        prefixCls: prefixCls,\n        className: classNames(`${colorPresetsPrefixCls}-color`, {\n          [`${colorPresetsPrefixCls}-color-checked`]: presetColor.toHexString() === (color === null || color === void 0 ? void 0 : color.toHexString()),\n          [`${colorPresetsPrefixCls}-color-bright`]: isBright(presetColor, token.colorBgElevated)\n        }),\n        onClick: () => handleClick(presetColor)\n      }))) : (/*#__PURE__*/React.createElement(\"span\", {\n        className: `${colorPresetsPrefixCls}-empty`\n      }, locale.presetEmpty))))\n    };\n  });\n  return /*#__PURE__*/React.createElement(\"div\", {\n    className: colorPresetsPrefixCls\n  }, /*#__PURE__*/React.createElement(Collapse, {\n    defaultActiveKey: activeKeys,\n    ghost: true,\n    items: items\n  }));\n};\nexport default ColorPresets;","import { AggregationColor } from '../../color-picker/color';\nimport { isBright } from '../../color-picker/components/ColorPresets';\nimport { getLineHeight, mergeToken } from '../../theme/internal';\nexport const prepareToken = token => {\n  const {\n    paddingInline,\n    onlyIconSize,\n    paddingBlock\n  } = token;\n  const buttonToken = mergeToken(token, {\n    buttonPaddingHorizontal: paddingInline,\n    buttonPaddingVertical: paddingBlock,\n    buttonIconOnlyFontSize: onlyIconSize\n  });\n  return buttonToken;\n};\nexport const prepareComponentToken = token => {\n  var _a, _b, _c, _d, _e, _f;\n  const contentFontSize = (_a = token.contentFontSize) !== null && _a !== void 0 ? _a : token.fontSize;\n  const contentFontSizeSM = (_b = token.contentFontSizeSM) !== null && _b !== void 0 ? _b : token.fontSize;\n  const contentFontSizeLG = (_c = token.contentFontSizeLG) !== null && _c !== void 0 ? _c : token.fontSizeLG;\n  const contentLineHeight = (_d = token.contentLineHeight) !== null && _d !== void 0 ? _d : getLineHeight(contentFontSize);\n  const contentLineHeightSM = (_e = token.contentLineHeightSM) !== null && _e !== void 0 ? _e : getLineHeight(contentFontSizeSM);\n  const contentLineHeightLG = (_f = token.contentLineHeightLG) !== null && _f !== void 0 ? _f : getLineHeight(contentFontSizeLG);\n  const solidTextColor = isBright(new AggregationColor(token.colorBgSolid), '#fff') ? '#000' : '#fff';\n  return {\n    fontWeight: 400,\n    defaultShadow: `0 ${token.controlOutlineWidth}px 0 ${token.controlTmpOutline}`,\n    primaryShadow: `0 ${token.controlOutlineWidth}px 0 ${token.controlOutline}`,\n    dangerShadow: `0 ${token.controlOutlineWidth}px 0 ${token.colorErrorOutline}`,\n    primaryColor: token.colorTextLightSolid,\n    dangerColor: token.colorTextLightSolid,\n    borderColorDisabled: token.colorBorder,\n    defaultGhostColor: token.colorBgContainer,\n    ghostBg: 'transparent',\n    defaultGhostBorderColor: token.colorBgContainer,\n    paddingInline: token.paddingContentHorizontal - token.lineWidth,\n    paddingInlineLG: token.paddingContentHorizontal - token.lineWidth,\n    paddingInlineSM: 8 - token.lineWidth,\n    onlyIconSize: token.fontSizeLG,\n    onlyIconSizeSM: token.fontSizeLG - 2,\n    onlyIconSizeLG: token.fontSizeLG + 2,\n    groupBorderColor: token.colorPrimaryHover,\n    linkHoverBg: 'transparent',\n    textTextColor: token.colorText,\n    textTextHoverColor: token.colorText,\n    textTextActiveColor: token.colorText,\n    textHoverBg: token.colorBgTextHover,\n    defaultColor: token.colorText,\n    defaultBg: token.colorBgContainer,\n    defaultBorderColor: token.colorBorder,\n    defaultBorderColorDisabled: token.colorBorder,\n    defaultHoverBg: token.colorBgContainer,\n    defaultHoverColor: token.colorPrimaryHover,\n    defaultHoverBorderColor: token.colorPrimaryHover,\n    defaultActiveBg: token.colorBgContainer,\n    defaultActiveColor: token.colorPrimaryActive,\n    defaultActiveBorderColor: token.colorPrimaryActive,\n    solidTextColor,\n    contentFontSize,\n    contentFontSizeSM,\n    contentFontSizeLG,\n    contentLineHeight,\n    contentLineHeightSM,\n    contentLineHeightLG,\n    paddingBlock: Math.max((token.controlHeight - contentFontSize * contentLineHeight) / 2 - token.lineWidth, 0),\n    paddingBlockSM: Math.max((token.controlHeightSM - contentFontSizeSM * contentLineHeightSM) / 2 - token.lineWidth, 0),\n    paddingBlockLG: Math.max((token.controlHeightLG - contentFontSizeLG * contentLineHeightLG) / 2 - token.lineWidth, 0)\n  };\n};","import { unit } from '@ant-design/cssinjs';\nimport { genFocusStyle } from '../../style';\nimport { genStyleHooks, mergeToken } from '../../theme/internal';\nimport genGroupStyle from './group';\nimport { prepareComponentToken, prepareToken } from './token';\n// ============================== Shared ==============================\nconst genSharedButtonStyle = token => {\n  const {\n    componentCls,\n    iconCls,\n    fontWeight\n  } = token;\n  return {\n    [componentCls]: {\n      outline: 'none',\n      position: 'relative',\n      display: 'inline-flex',\n      gap: token.marginXS,\n      alignItems: 'center',\n      justifyContent: 'center',\n      fontWeight,\n      whiteSpace: 'nowrap',\n      textAlign: 'center',\n      backgroundImage: 'none',\n      background: 'transparent',\n      border: `${unit(token.lineWidth)} ${token.lineType} transparent`,\n      cursor: 'pointer',\n      transition: `all ${token.motionDurationMid} ${token.motionEaseInOut}`,\n      userSelect: 'none',\n      touchAction: 'manipulation',\n      color: token.colorText,\n      '&:disabled > *': {\n        pointerEvents: 'none'\n      },\n      '> span': {\n        display: 'inline-block'\n      },\n      [`${componentCls}-icon`]: {\n        lineHeight: 1\n      },\n      '> a': {\n        color: 'currentColor'\n      },\n      '&:not(:disabled)': Object.assign({}, genFocusStyle(token)),\n      [`&${componentCls}-two-chinese-chars::first-letter`]: {\n        letterSpacing: '0.34em'\n      },\n      [`&${componentCls}-two-chinese-chars > *:not(${iconCls})`]: {\n        marginInlineEnd: '-0.34em',\n        letterSpacing: '0.34em'\n      },\n      // iconPosition=\"end\"\n      '&-icon-end': {\n        flexDirection: 'row-reverse'\n      }\n    }\n  };\n};\nconst genHoverActiveButtonStyle = (btnCls, hoverStyle, activeStyle) => ({\n  [`&:not(:disabled):not(${btnCls}-disabled)`]: {\n    '&:hover': hoverStyle,\n    '&:active': activeStyle\n  }\n});\n// ============================== Shape ===============================\nconst genCircleButtonStyle = token => ({\n  minWidth: token.controlHeight,\n  paddingInlineStart: 0,\n  paddingInlineEnd: 0,\n  borderRadius: '50%'\n});\nconst genRoundButtonStyle = token => ({\n  borderRadius: token.controlHeight,\n  paddingInlineStart: token.calc(token.controlHeight).div(2).equal(),\n  paddingInlineEnd: token.calc(token.controlHeight).div(2).equal()\n});\nconst genDisabledStyle = token => ({\n  cursor: 'not-allowed',\n  borderColor: token.borderColorDisabled,\n  color: token.colorTextDisabled,\n  background: token.colorBgContainerDisabled,\n  boxShadow: 'none'\n});\nconst genGhostButtonStyle = (btnCls, background, textColor, borderColor, textColorDisabled, borderColorDisabled, hoverStyle, activeStyle) => ({\n  [`&${btnCls}-background-ghost`]: Object.assign(Object.assign({\n    color: textColor || undefined,\n    background,\n    borderColor: borderColor || undefined,\n    boxShadow: 'none'\n  }, genHoverActiveButtonStyle(btnCls, Object.assign({\n    background\n  }, hoverStyle), Object.assign({\n    background\n  }, activeStyle))), {\n    '&:disabled': {\n      cursor: 'not-allowed',\n      color: textColorDisabled || undefined,\n      borderColor: borderColorDisabled || undefined\n    }\n  })\n});\nconst genSolidDisabledButtonStyle = token => ({\n  [`&:disabled, &${token.componentCls}-disabled`]: Object.assign({}, genDisabledStyle(token))\n});\nconst genPureDisabledButtonStyle = token => ({\n  [`&:disabled, &${token.componentCls}-disabled`]: {\n    cursor: 'not-allowed',\n    color: token.colorTextDisabled\n  }\n});\n// ============================== Variant =============================\nconst genVariantButtonStyle = (token, hoverStyle, activeStyle, variant) => {\n  const isPureDisabled = variant && ['link', 'text'].includes(variant);\n  const genDisabledButtonStyle = isPureDisabled ? genPureDisabledButtonStyle : genSolidDisabledButtonStyle;\n  return Object.assign(Object.assign({}, genDisabledButtonStyle(token)), genHoverActiveButtonStyle(token.componentCls, hoverStyle, activeStyle));\n};\nconst genSolidButtonStyle = (token, textColor, background, hoverStyle, activeStyle) => ({\n  [`&${token.componentCls}-variant-solid`]: Object.assign({\n    color: textColor,\n    background\n  }, genVariantButtonStyle(token, hoverStyle, activeStyle))\n});\nconst genOutlinedDashedButtonStyle = (token, borderColor, background, hoverStyle, activeStyle) => ({\n  [`&${token.componentCls}-variant-outlined, &${token.componentCls}-variant-dashed`]: Object.assign({\n    borderColor,\n    background\n  }, genVariantButtonStyle(token, hoverStyle, activeStyle))\n});\nconst genDashedButtonStyle = token => ({\n  [`&${token.componentCls}-variant-dashed`]: {\n    borderStyle: 'dashed'\n  }\n});\nconst genFilledButtonStyle = (token, background, hoverStyle, activeStyle) => ({\n  [`&${token.componentCls}-variant-filled`]: Object.assign({\n    boxShadow: 'none',\n    background\n  }, genVariantButtonStyle(token, hoverStyle, activeStyle))\n});\nconst genTextLinkButtonStyle = (token, textColor, variant, hoverStyle, activeStyle) => ({\n  [`&${token.componentCls}-variant-${variant}`]: Object.assign({\n    color: textColor,\n    boxShadow: 'none'\n  }, genVariantButtonStyle(token, hoverStyle, activeStyle, variant))\n});\n// =============================== Color ==============================\nconst genDefaultButtonStyle = token => Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({\n  color: token.defaultColor,\n  boxShadow: token.defaultShadow\n}, genSolidButtonStyle(token, token.solidTextColor, token.colorBgSolid, {\n  background: token.colorBgSolidHover\n}, {\n  background: token.colorBgSolidActive\n})), genDashedButtonStyle(token)), genFilledButtonStyle(token, token.colorFillTertiary, {\n  background: token.colorFillSecondary\n}, {\n  background: token.colorFill\n})), genTextLinkButtonStyle(token, token.textTextColor, 'link', {\n  color: token.colorLinkHover,\n  background: token.linkHoverBg\n}, {\n  color: token.colorLinkActive\n})), genGhostButtonStyle(token.componentCls, token.ghostBg, token.defaultGhostColor, token.defaultGhostBorderColor, token.colorTextDisabled, token.colorBorder));\nconst genPrimaryButtonStyle = token => Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({\n  color: token.colorPrimary,\n  boxShadow: token.primaryShadow\n}, genOutlinedDashedButtonStyle(token, token.colorPrimary, token.colorBgContainer, {\n  color: token.colorPrimaryTextHover,\n  borderColor: token.colorPrimaryHover,\n  background: token.colorBgContainer\n}, {\n  color: token.colorPrimaryTextActive,\n  borderColor: token.colorPrimaryActive,\n  background: token.colorBgContainer\n})), genDashedButtonStyle(token)), genFilledButtonStyle(token, token.colorPrimaryBg, {\n  background: token.colorPrimaryBgHover\n}, {\n  background: token.colorPrimaryBorder\n})), genTextLinkButtonStyle(token, token.colorLink, 'text', {\n  color: token.colorPrimaryTextHover,\n  background: token.colorPrimaryBg\n}, {\n  color: token.colorPrimaryTextActive,\n  background: token.colorPrimaryBorder\n})), genGhostButtonStyle(token.componentCls, token.ghostBg, token.colorPrimary, token.colorPrimary, token.colorTextDisabled, token.colorBorder, {\n  color: token.colorPrimaryHover,\n  borderColor: token.colorPrimaryHover\n}, {\n  color: token.colorPrimaryActive,\n  borderColor: token.colorPrimaryActive\n}));\nconst genDangerousStyle = token => Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({\n  color: token.colorError,\n  boxShadow: token.dangerShadow\n}, genSolidButtonStyle(token, token.dangerColor, token.colorError, {\n  background: token.colorErrorHover\n}, {\n  background: token.colorErrorActive\n})), genOutlinedDashedButtonStyle(token, token.colorError, token.colorBgContainer, {\n  color: token.colorErrorHover,\n  borderColor: token.colorErrorBorderHover\n}, {\n  color: token.colorErrorActive,\n  borderColor: token.colorErrorActive\n})), genDashedButtonStyle(token)), genFilledButtonStyle(token, token.colorErrorBg, {\n  background: token.colorErrorBgFilledHover\n}, {\n  background: token.colorErrorBgActive\n})), genTextLinkButtonStyle(token, token.colorError, 'text', {\n  color: token.colorErrorHover,\n  background: token.colorErrorBg\n}, {\n  color: token.colorErrorHover,\n  background: token.colorErrorBgActive\n})), genTextLinkButtonStyle(token, token.colorError, 'link', {\n  color: token.colorErrorHover\n}, {\n  color: token.colorErrorActive\n})), genGhostButtonStyle(token.componentCls, token.ghostBg, token.colorError, token.colorError, token.colorTextDisabled, token.colorBorder, {\n  color: token.colorErrorHover,\n  borderColor: token.colorErrorHover\n}, {\n  color: token.colorErrorActive,\n  borderColor: token.colorErrorActive\n}));\nconst genColorButtonStyle = token => {\n  const {\n    componentCls\n  } = token;\n  return {\n    [`${componentCls}-color-default`]: genDefaultButtonStyle(token),\n    [`${componentCls}-color-primary`]: genPrimaryButtonStyle(token),\n    [`${componentCls}-color-dangerous`]: genDangerousStyle(token)\n  };\n};\n// =========== Compatible with versions earlier than 5.21.0 ===========\nconst genCompatibleButtonStyle = token => Object.assign(Object.assign(Object.assign(Object.assign({}, genOutlinedDashedButtonStyle(token, token.defaultBorderColor, token.defaultBg, {\n  color: token.defaultHoverColor,\n  borderColor: token.defaultHoverBorderColor,\n  background: token.defaultHoverBg\n}, {\n  color: token.defaultActiveColor,\n  borderColor: token.defaultActiveBorderColor,\n  background: token.defaultActiveBg\n})), genTextLinkButtonStyle(token, token.textTextColor, 'text', {\n  color: token.textTextHoverColor,\n  background: token.textHoverBg\n}, {\n  color: token.textTextActiveColor,\n  background: token.colorBgTextActive\n})), genSolidButtonStyle(token, token.primaryColor, token.colorPrimary, {\n  background: token.colorPrimaryHover,\n  color: token.primaryColor\n}, {\n  background: token.colorPrimaryActive,\n  color: token.primaryColor\n})), genTextLinkButtonStyle(token, token.colorLink, 'link', {\n  color: token.colorLinkHover,\n  background: token.linkHoverBg\n}, {\n  color: token.colorLinkActive\n}));\n// =============================== Size ===============================\nconst genButtonStyle = function (token) {\n  let prefixCls = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n  const {\n    componentCls,\n    controlHeight,\n    fontSize,\n    lineHeight,\n    borderRadius,\n    buttonPaddingHorizontal,\n    iconCls,\n    buttonPaddingVertical\n  } = token;\n  const iconOnlyCls = `${componentCls}-icon-only`;\n  return [{\n    [prefixCls]: {\n      fontSize,\n      lineHeight,\n      height: controlHeight,\n      padding: `${unit(buttonPaddingVertical)} ${unit(buttonPaddingHorizontal)}`,\n      borderRadius,\n      [`&${iconOnlyCls}`]: {\n        width: controlHeight,\n        paddingInline: 0,\n        // make `btn-icon-only` not too narrow\n        [`&${componentCls}-compact-item`]: {\n          flex: 'none'\n        },\n        [`&${componentCls}-round`]: {\n          width: 'auto'\n        },\n        [iconCls]: {\n          fontSize: token.buttonIconOnlyFontSize\n        }\n      },\n      // Loading\n      [`&${componentCls}-loading`]: {\n        opacity: token.opacityLoading,\n        cursor: 'default'\n      },\n      [`${componentCls}-loading-icon`]: {\n        transition: `width ${token.motionDurationSlow} ${token.motionEaseInOut}, opacity ${token.motionDurationSlow} ${token.motionEaseInOut}`\n      }\n    }\n  },\n  // Shape - patch prefixCls again to override solid border radius style\n  {\n    [`${componentCls}${componentCls}-circle${prefixCls}`]: genCircleButtonStyle(token)\n  }, {\n    [`${componentCls}${componentCls}-round${prefixCls}`]: genRoundButtonStyle(token)\n  }];\n};\nconst genSizeBaseButtonStyle = token => {\n  const baseToken = mergeToken(token, {\n    fontSize: token.contentFontSize,\n    lineHeight: token.contentLineHeight\n  });\n  return genButtonStyle(baseToken, token.componentCls);\n};\nconst genSizeSmallButtonStyle = token => {\n  const smallToken = mergeToken(token, {\n    controlHeight: token.controlHeightSM,\n    fontSize: token.contentFontSizeSM,\n    lineHeight: token.contentLineHeightSM,\n    padding: token.paddingXS,\n    buttonPaddingHorizontal: token.paddingInlineSM,\n    buttonPaddingVertical: token.paddingBlockSM,\n    borderRadius: token.borderRadiusSM,\n    buttonIconOnlyFontSize: token.onlyIconSizeSM\n  });\n  return genButtonStyle(smallToken, `${token.componentCls}-sm`);\n};\nconst genSizeLargeButtonStyle = token => {\n  const largeToken = mergeToken(token, {\n    controlHeight: token.controlHeightLG,\n    fontSize: token.contentFontSizeLG,\n    lineHeight: token.contentLineHeightLG,\n    buttonPaddingHorizontal: token.paddingInlineLG,\n    buttonPaddingVertical: token.paddingBlockLG,\n    borderRadius: token.borderRadiusLG,\n    buttonIconOnlyFontSize: token.onlyIconSizeLG\n  });\n  return genButtonStyle(largeToken, `${token.componentCls}-lg`);\n};\nconst genBlockButtonStyle = token => {\n  const {\n    componentCls\n  } = token;\n  return {\n    [componentCls]: {\n      [`&${componentCls}-block`]: {\n        width: '100%'\n      }\n    }\n  };\n};\n// ============================== Export ==============================\nexport default genStyleHooks('Button', token => {\n  const buttonToken = prepareToken(token);\n  return [\n  // Shared\n  genSharedButtonStyle(buttonToken),\n  // Size\n  genSizeBaseButtonStyle(buttonToken), genSizeSmallButtonStyle(buttonToken), genSizeLargeButtonStyle(buttonToken),\n  // Block\n  genBlockButtonStyle(buttonToken),\n  // Color\n  genColorButtonStyle(buttonToken),\n  // https://github.com/ant-design/ant-design/issues/50969\n  genCompatibleButtonStyle(buttonToken),\n  // Button Group\n  genGroupStyle(buttonToken)];\n}, prepareComponentToken, {\n  unitless: {\n    fontWeight: true,\n    contentLineHeight: true,\n    contentLineHeightSM: true,\n    contentLineHeightLG: true\n  }\n});","// handle border collapse\nfunction compactItemBorder(token, parentCls, options) {\n  const {\n    focusElCls,\n    focus,\n    borderElCls\n  } = options;\n  const childCombinator = borderElCls ? '> *' : '';\n  const hoverEffects = ['hover', focus ? 'focus' : null, 'active'].filter(Boolean).map(n => `&:${n} ${childCombinator}`).join(',');\n  return {\n    [`&-item:not(${parentCls}-last-item)`]: {\n      marginInlineEnd: token.calc(token.lineWidth).mul(-1).equal()\n    },\n    '&-item': Object.assign(Object.assign({\n      [hoverEffects]: {\n        zIndex: 2\n      }\n    }, focusElCls ? {\n      [`&${focusElCls}`]: {\n        zIndex: 2\n      }\n    } : {}), {\n      [`&[disabled] ${childCombinator}`]: {\n        zIndex: 0\n      }\n    })\n  };\n}\n// handle border-radius\nfunction compactItemBorderRadius(prefixCls, parentCls, options) {\n  const {\n    borderElCls\n  } = options;\n  const childCombinator = borderElCls ? `> ${borderElCls}` : '';\n  return {\n    [`&-item:not(${parentCls}-first-item):not(${parentCls}-last-item) ${childCombinator}`]: {\n      borderRadius: 0\n    },\n    [`&-item:not(${parentCls}-last-item)${parentCls}-first-item`]: {\n      [`& ${childCombinator}, &${prefixCls}-sm ${childCombinator}, &${prefixCls}-lg ${childCombinator}`]: {\n        borderStartEndRadius: 0,\n        borderEndEndRadius: 0\n      }\n    },\n    [`&-item:not(${parentCls}-first-item)${parentCls}-last-item`]: {\n      [`& ${childCombinator}, &${prefixCls}-sm ${childCombinator}, &${prefixCls}-lg ${childCombinator}`]: {\n        borderStartStartRadius: 0,\n        borderEndStartRadius: 0\n      }\n    }\n  };\n}\nexport function genCompactItemStyle(token) {\n  let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n    focus: true\n  };\n  const {\n    componentCls\n  } = token;\n  const compactCls = `${componentCls}-compact`;\n  return {\n    [compactCls]: Object.assign(Object.assign({}, compactItemBorder(token, compactCls, options)), compactItemBorderRadius(componentCls, compactCls, options))\n  };\n}","function compactItemVerticalBorder(token, parentCls) {\n  return {\n    // border collapse\n    [`&-item:not(${parentCls}-last-item)`]: {\n      marginBottom: token.calc(token.lineWidth).mul(-1).equal()\n    },\n    '&-item': {\n      '&:hover,&:focus,&:active': {\n        zIndex: 2\n      },\n      '&[disabled]': {\n        zIndex: 0\n      }\n    }\n  };\n}\nfunction compactItemBorderVerticalRadius(prefixCls, parentCls) {\n  return {\n    [`&-item:not(${parentCls}-first-item):not(${parentCls}-last-item)`]: {\n      borderRadius: 0\n    },\n    [`&-item${parentCls}-first-item:not(${parentCls}-last-item)`]: {\n      [`&, &${prefixCls}-sm, &${prefixCls}-lg`]: {\n        borderEndEndRadius: 0,\n        borderEndStartRadius: 0\n      }\n    },\n    [`&-item${parentCls}-last-item:not(${parentCls}-first-item)`]: {\n      [`&, &${prefixCls}-sm, &${prefixCls}-lg`]: {\n        borderStartStartRadius: 0,\n        borderStartEndRadius: 0\n      }\n    }\n  };\n}\nexport function genCompactItemVerticalStyle(token) {\n  const compactCls = `${token.componentCls}-compact-vertical`;\n  return {\n    [compactCls]: Object.assign(Object.assign({}, compactItemVerticalBorder(token, compactCls)), compactItemBorderVerticalRadius(token.componentCls, compactCls))\n  };\n}","// Style as inline component\nimport { unit } from '@ant-design/cssinjs';\nimport { genCompactItemStyle } from '../../style/compact-item';\nimport { genCompactItemVerticalStyle } from '../../style/compact-item-vertical';\nimport { genSubStyleComponent } from '../../theme/internal';\nimport { prepareComponentToken, prepareToken } from './token';\nconst genButtonCompactStyle = token => {\n  const {\n    componentCls,\n    calc\n  } = token;\n  return {\n    [componentCls]: {\n      // Special styles for Primary Button\n      [`&-compact-item${componentCls}-primary`]: {\n        [`&:not([disabled]) + ${componentCls}-compact-item${componentCls}-primary:not([disabled])`]: {\n          position: 'relative',\n          '&:before': {\n            position: 'absolute',\n            top: calc(token.lineWidth).mul(-1).equal(),\n            insetInlineStart: calc(token.lineWidth).mul(-1).equal(),\n            display: 'inline-block',\n            width: token.lineWidth,\n            height: `calc(100% + ${unit(token.lineWidth)} * 2)`,\n            backgroundColor: token.colorPrimaryHover,\n            content: '\"\"'\n          }\n        }\n      },\n      // Special styles for Primary Button\n      '&-compact-vertical-item': {\n        [`&${componentCls}-primary`]: {\n          [`&:not([disabled]) + ${componentCls}-compact-vertical-item${componentCls}-primary:not([disabled])`]: {\n            position: 'relative',\n            '&:before': {\n              position: 'absolute',\n              top: calc(token.lineWidth).mul(-1).equal(),\n              insetInlineStart: calc(token.lineWidth).mul(-1).equal(),\n              display: 'inline-block',\n              width: `calc(100% + ${unit(token.lineWidth)} * 2)`,\n              height: token.lineWidth,\n              backgroundColor: token.colorPrimaryHover,\n              content: '\"\"'\n            }\n          }\n        }\n      }\n    }\n  };\n};\n// ============================== Export ==============================\nexport default genSubStyleComponent(['Button', 'compact'], token => {\n  const buttonToken = prepareToken(token);\n  return [\n  // Space Compact\n  genCompactItemStyle(buttonToken), genCompactItemVerticalStyle(buttonToken), genButtonCompactStyle(buttonToken)];\n}, prepareComponentToken);","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n  var t = {};\n  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n  }\n  return t;\n};\nimport React, { Children, createRef, useContext, useEffect, useMemo, useState } from 'react';\nimport classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport { composeRef } from \"rc-util/es/ref\";\nimport { devUseWarning } from '../_util/warning';\nimport Wave from '../_util/wave';\nimport { ConfigContext } from '../config-provider';\nimport DisabledContext from '../config-provider/DisabledContext';\nimport useSize from '../config-provider/hooks/useSize';\nimport { useCompactItemContext } from '../space/Compact';\nimport Group, { GroupSizeContext } from './button-group';\nimport { isTwoCNChar, isUnBorderedButtonVariant, spaceChildren } from './buttonHelpers';\nimport IconWrapper from './IconWrapper';\nimport LoadingIcon from './LoadingIcon';\nimport useStyle from './style';\nimport CompactCmp from './style/compactCmp';\nfunction getLoadingConfig(loading) {\n  if (typeof loading === 'object' && loading) {\n    let delay = loading === null || loading === void 0 ? void 0 : loading.delay;\n    delay = !Number.isNaN(delay) && typeof delay === 'number' ? delay : 0;\n    return {\n      loading: delay <= 0,\n      delay\n    };\n  }\n  return {\n    loading: !!loading,\n    delay: 0\n  };\n}\nconst ButtonTypeMap = {\n  default: ['default', 'outlined'],\n  primary: ['primary', 'solid'],\n  dashed: ['default', 'dashed'],\n  link: ['primary', 'link'],\n  text: ['default', 'text']\n};\nconst InternalCompoundedButton = /*#__PURE__*/React.forwardRef((props, ref) => {\n  var _a, _b, _c;\n  const {\n      loading = false,\n      prefixCls: customizePrefixCls,\n      color,\n      variant,\n      type,\n      danger = false,\n      shape = 'default',\n      size: customizeSize,\n      styles,\n      disabled: customDisabled,\n      className,\n      rootClassName,\n      children,\n      icon,\n      iconPosition = 'start',\n      ghost = false,\n      block = false,\n      // React does not recognize the `htmlType` prop on a DOM element. Here we pick it out of `rest`.\n      htmlType = 'button',\n      classNames: customClassNames,\n      style: customStyle = {},\n      autoInsertSpace\n    } = props,\n    rest = __rest(props, [\"loading\", \"prefixCls\", \"color\", \"variant\", \"type\", \"danger\", \"shape\", \"size\", \"styles\", \"disabled\", \"className\", \"rootClassName\", \"children\", \"icon\", \"iconPosition\", \"ghost\", \"block\", \"htmlType\", \"classNames\", \"style\", \"autoInsertSpace\"]);\n  // https://github.com/ant-design/ant-design/issues/47605\n  // Compatible with original `type` behavior\n  const mergedType = type || 'default';\n  const [mergedColor, mergedVariant] = useMemo(() => {\n    if (color && variant) {\n      return [color, variant];\n    }\n    const colorVariantPair = ButtonTypeMap[mergedType] || [];\n    if (danger) {\n      return ['danger', colorVariantPair[1]];\n    }\n    return colorVariantPair;\n  }, [type, color, variant, danger]);\n  const isDanger = mergedColor === 'danger';\n  const mergedColorText = isDanger ? 'dangerous' : mergedColor;\n  const {\n    getPrefixCls,\n    direction,\n    button\n  } = useContext(ConfigContext);\n  const mergedInsertSpace = (_a = autoInsertSpace !== null && autoInsertSpace !== void 0 ? autoInsertSpace : button === null || button === void 0 ? void 0 : button.autoInsertSpace) !== null && _a !== void 0 ? _a : true;\n  const prefixCls = getPrefixCls('btn', customizePrefixCls);\n  const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls);\n  const disabled = useContext(DisabledContext);\n  const mergedDisabled = customDisabled !== null && customDisabled !== void 0 ? customDisabled : disabled;\n  const groupSize = useContext(GroupSizeContext);\n  const loadingOrDelay = useMemo(() => getLoadingConfig(loading), [loading]);\n  const [innerLoading, setLoading] = useState(loadingOrDelay.loading);\n  const [hasTwoCNChar, setHasTwoCNChar] = useState(false);\n  const internalRef = /*#__PURE__*/createRef();\n  const buttonRef = composeRef(ref, internalRef);\n  const needInserted = Children.count(children) === 1 && !icon && !isUnBorderedButtonVariant(mergedVariant);\n  useEffect(() => {\n    let delayTimer = null;\n    if (loadingOrDelay.delay > 0) {\n      delayTimer = setTimeout(() => {\n        delayTimer = null;\n        setLoading(true);\n      }, loadingOrDelay.delay);\n    } else {\n      setLoading(loadingOrDelay.loading);\n    }\n    function cleanupTimer() {\n      if (delayTimer) {\n        clearTimeout(delayTimer);\n        delayTimer = null;\n      }\n    }\n    return cleanupTimer;\n  }, [loadingOrDelay]);\n  useEffect(() => {\n    // FIXME: for HOC usage like <FormatMessage />\n    if (!buttonRef || !buttonRef.current || !mergedInsertSpace) {\n      return;\n    }\n    const buttonText = buttonRef.current.textContent;\n    if (needInserted && isTwoCNChar(buttonText)) {\n      if (!hasTwoCNChar) {\n        setHasTwoCNChar(true);\n      }\n    } else if (hasTwoCNChar) {\n      setHasTwoCNChar(false);\n    }\n  }, [buttonRef]);\n  const handleClick = e => {\n    const {\n      onClick\n    } = props;\n    // FIXME: https://github.com/ant-design/ant-design/issues/30207\n    if (innerLoading || mergedDisabled) {\n      e.preventDefault();\n      return;\n    }\n    onClick === null || onClick === void 0 ? void 0 : onClick(e);\n  };\n  if (process.env.NODE_ENV !== 'production') {\n    const warning = devUseWarning('Button');\n    process.env.NODE_ENV !== \"production\" ? warning(!(typeof icon === 'string' && icon.length > 2), 'breaking', `\\`icon\\` is using ReactNode instead of string naming in v4. Please check \\`${icon}\\` at https://ant.design/components/icon`) : void 0;\n    process.env.NODE_ENV !== \"production\" ? warning(!(ghost && isUnBorderedButtonVariant(mergedVariant)), 'usage', \"`link` or `text` button can't be a `ghost` button.\") : void 0;\n  }\n  const {\n    compactSize,\n    compactItemClassnames\n  } = useCompactItemContext(prefixCls, direction);\n  const sizeClassNameMap = {\n    large: 'lg',\n    small: 'sm',\n    middle: undefined\n  };\n  const sizeFullName = useSize(ctxSize => {\n    var _a, _b;\n    return (_b = (_a = customizeSize !== null && customizeSize !== void 0 ? customizeSize : compactSize) !== null && _a !== void 0 ? _a : groupSize) !== null && _b !== void 0 ? _b : ctxSize;\n  });\n  const sizeCls = sizeFullName ? sizeClassNameMap[sizeFullName] || '' : '';\n  const iconType = innerLoading ? 'loading' : icon;\n  const linkButtonRestProps = omit(rest, ['navigate']);\n  const classes = classNames(prefixCls, hashId, cssVarCls, {\n    [`${prefixCls}-${shape}`]: shape !== 'default' && shape,\n    // line(253 - 254): Compatible with versions earlier than 5.21.0\n    [`${prefixCls}-${mergedType}`]: mergedType,\n    [`${prefixCls}-dangerous`]: danger,\n    [`${prefixCls}-color-${mergedColorText}`]: mergedColorText,\n    [`${prefixCls}-variant-${mergedVariant}`]: mergedVariant,\n    [`${prefixCls}-${sizeCls}`]: sizeCls,\n    [`${prefixCls}-icon-only`]: !children && children !== 0 && !!iconType,\n    [`${prefixCls}-background-ghost`]: ghost && !isUnBorderedButtonVariant(mergedVariant),\n    [`${prefixCls}-loading`]: innerLoading,\n    [`${prefixCls}-two-chinese-chars`]: hasTwoCNChar && mergedInsertSpace && !innerLoading,\n    [`${prefixCls}-block`]: block,\n    [`${prefixCls}-rtl`]: direction === 'rtl',\n    [`${prefixCls}-icon-end`]: iconPosition === 'end'\n  }, compactItemClassnames, className, rootClassName, button === null || button === void 0 ? void 0 : button.className);\n  const fullStyle = Object.assign(Object.assign({}, button === null || button === void 0 ? void 0 : button.style), customStyle);\n  const iconClasses = classNames(customClassNames === null || customClassNames === void 0 ? void 0 : customClassNames.icon, (_b = button === null || button === void 0 ? void 0 : button.classNames) === null || _b === void 0 ? void 0 : _b.icon);\n  const iconStyle = Object.assign(Object.assign({}, (styles === null || styles === void 0 ? void 0 : styles.icon) || {}), ((_c = button === null || button === void 0 ? void 0 : button.styles) === null || _c === void 0 ? void 0 : _c.icon) || {});\n  const iconNode = icon && !innerLoading ? (/*#__PURE__*/React.createElement(IconWrapper, {\n    prefixCls: prefixCls,\n    className: iconClasses,\n    style: iconStyle\n  }, icon)) : (/*#__PURE__*/React.createElement(LoadingIcon, {\n    existIcon: !!icon,\n    prefixCls: prefixCls,\n    loading: innerLoading\n  }));\n  const kids = children || children === 0 ? spaceChildren(children, needInserted && mergedInsertSpace) : null;\n  if (linkButtonRestProps.href !== undefined) {\n    return wrapCSSVar(/*#__PURE__*/React.createElement(\"a\", Object.assign({}, linkButtonRestProps, {\n      className: classNames(classes, {\n        [`${prefixCls}-disabled`]: mergedDisabled\n      }),\n      href: mergedDisabled ? undefined : linkButtonRestProps.href,\n      style: fullStyle,\n      onClick: handleClick,\n      ref: buttonRef,\n      tabIndex: mergedDisabled ? -1 : 0\n    }), iconNode, kids));\n  }\n  let buttonNode = /*#__PURE__*/React.createElement(\"button\", Object.assign({}, rest, {\n    type: htmlType,\n    className: classes,\n    style: fullStyle,\n    onClick: handleClick,\n    disabled: mergedDisabled,\n    ref: buttonRef\n  }), iconNode, kids, !!compactItemClassnames && /*#__PURE__*/React.createElement(CompactCmp, {\n    key: \"compact\",\n    prefixCls: prefixCls\n  }));\n  if (!isUnBorderedButtonVariant(mergedVariant)) {\n    buttonNode = /*#__PURE__*/React.createElement(Wave, {\n      component: \"Button\",\n      disabled: innerLoading\n    }, buttonNode);\n  }\n  return wrapCSSVar(buttonNode);\n});\nconst Button = InternalCompoundedButton;\nButton.Group = Group;\nButton.__ANT_BUTTON = true;\nif (process.env.NODE_ENV !== 'production') {\n  Button.displayName = 'Button';\n}\nexport default Button;","\"use client\";\n\nimport Button from './button';\nexport * from './buttonHelpers';\nexport default Button;","\"use client\";\n\nimport * as React from 'react';\nimport useState from \"rc-util/es/hooks/useState\";\nimport Button from '../button';\nimport { convertLegacyProps } from '../button/buttonHelpers';\nfunction isThenable(thing) {\n  return !!(thing === null || thing === void 0 ? void 0 : thing.then);\n}\nconst ActionButton = props => {\n  const {\n    type,\n    children,\n    prefixCls,\n    buttonProps,\n    close,\n    autoFocus,\n    emitEvent,\n    isSilent,\n    quitOnNullishReturnValue,\n    actionFn\n  } = props;\n  const clickedRef = React.useRef(false);\n  const buttonRef = React.useRef(null);\n  const [loading, setLoading] = useState(false);\n  const onInternalClose = function () {\n    close === null || close === void 0 ? void 0 : close.apply(void 0, arguments);\n  };\n  React.useEffect(() => {\n    let timeoutId = null;\n    if (autoFocus) {\n      timeoutId = setTimeout(() => {\n        var _a;\n        (_a = buttonRef.current) === null || _a === void 0 ? void 0 : _a.focus();\n      });\n    }\n    return () => {\n      if (timeoutId) {\n        clearTimeout(timeoutId);\n      }\n    };\n  }, []);\n  const handlePromiseOnOk = returnValueOfOnOk => {\n    if (!isThenable(returnValueOfOnOk)) {\n      return;\n    }\n    setLoading(true);\n    returnValueOfOnOk.then(function () {\n      setLoading(false, true);\n      onInternalClose.apply(void 0, arguments);\n      clickedRef.current = false;\n    }, e => {\n      // See: https://github.com/ant-design/ant-design/issues/6183\n      setLoading(false, true);\n      clickedRef.current = false;\n      // Do not throw if is `await` mode\n      if (isSilent === null || isSilent === void 0 ? void 0 : isSilent()) {\n        return;\n      }\n      return Promise.reject(e);\n    });\n  };\n  const onClick = e => {\n    if (clickedRef.current) {\n      return;\n    }\n    clickedRef.current = true;\n    if (!actionFn) {\n      onInternalClose();\n      return;\n    }\n    let returnValueOfOnOk;\n    if (emitEvent) {\n      returnValueOfOnOk = actionFn(e);\n      if (quitOnNullishReturnValue && !isThenable(returnValueOfOnOk)) {\n        clickedRef.current = false;\n        onInternalClose(e);\n        return;\n      }\n    } else if (actionFn.length) {\n      returnValueOfOnOk = actionFn(close);\n      // https://github.com/ant-design/ant-design/issues/23358\n      clickedRef.current = false;\n    } else {\n      returnValueOfOnOk = actionFn();\n      if (!isThenable(returnValueOfOnOk)) {\n        onInternalClose();\n        return;\n      }\n    }\n    handlePromiseOnOk(returnValueOfOnOk);\n  };\n  return /*#__PURE__*/React.createElement(Button, Object.assign({}, convertLegacyProps(type), {\n    onClick: onClick,\n    loading: loading,\n    prefixCls: prefixCls\n  }, buttonProps, {\n    ref: buttonRef\n  }), children);\n};\nexport default ActionButton;","import React from 'react';\nexport const ModalContext = /*#__PURE__*/React.createContext({});\nexport const {\n  Provider: ModalContextProvider\n} = ModalContext;","\"use client\";\n\nimport React, { useContext } from 'react';\nimport ActionButton from '../../_util/ActionButton';\nimport { ModalContext } from '../context';\nconst ConfirmCancelBtn = () => {\n  const {\n    autoFocusButton,\n    cancelButtonProps,\n    cancelTextLocale,\n    isSilent,\n    mergedOkCancel,\n    rootPrefixCls,\n    close,\n    onCancel,\n    onConfirm\n  } = useContext(ModalContext);\n  return mergedOkCancel ? (/*#__PURE__*/React.createElement(ActionButton, {\n    isSilent: isSilent,\n    actionFn: onCancel,\n    close: function () {\n      close === null || close === void 0 ? void 0 : close.apply(void 0, arguments);\n      onConfirm === null || onConfirm === void 0 ? void 0 : onConfirm(false);\n    },\n    autoFocus: autoFocusButton === 'cancel',\n    buttonProps: cancelButtonProps,\n    prefixCls: `${rootPrefixCls}-btn`\n  }, cancelTextLocale)) : null;\n};\nexport default ConfirmCancelBtn;","\"use client\";\n\nimport React, { useContext } from 'react';\nimport ActionButton from '../../_util/ActionButton';\nimport { ModalContext } from '../context';\nconst ConfirmOkBtn = () => {\n  const {\n    autoFocusButton,\n    close,\n    isSilent,\n    okButtonProps,\n    rootPrefixCls,\n    okTextLocale,\n    okType,\n    onConfirm,\n    onOk\n  } = useContext(ModalContext);\n  return /*#__PURE__*/React.createElement(ActionButton, {\n    isSilent: isSilent,\n    type: okType || 'primary',\n    actionFn: onOk,\n    close: function () {\n      close === null || close === void 0 ? void 0 : close.apply(void 0, arguments);\n      onConfirm === null || onConfirm === void 0 ? void 0 : onConfirm(true);\n    },\n    autoFocus: autoFocusButton === 'ok',\n    buttonProps: okButtonProps,\n    prefixCls: `${rootPrefixCls}-btn`\n  }, okTextLocale);\n};\nexport default ConfirmOkBtn;","import _typeof from \"./typeof.js\";\nfunction _regeneratorRuntime() {\n  \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n  _regeneratorRuntime = function _regeneratorRuntime() {\n    return e;\n  };\n  var t,\n    e = {},\n    r = Object.prototype,\n    n = r.hasOwnProperty,\n    o = Object.defineProperty || function (t, e, r) {\n      t[e] = r.value;\n    },\n    i = \"function\" == typeof Symbol ? Symbol : {},\n    a = i.iterator || \"@@iterator\",\n    c = i.asyncIterator || \"@@asyncIterator\",\n    u = i.toStringTag || \"@@toStringTag\";\n  function define(t, e, r) {\n    return Object.defineProperty(t, e, {\n      value: r,\n      enumerable: !0,\n      configurable: !0,\n      writable: !0\n    }), t[e];\n  }\n  try {\n    define({}, \"\");\n  } catch (t) {\n    define = function define(t, e, r) {\n      return t[e] = r;\n    };\n  }\n  function wrap(t, e, r, n) {\n    var i = e && e.prototype instanceof Generator ? e : Generator,\n      a = Object.create(i.prototype),\n      c = new Context(n || []);\n    return o(a, \"_invoke\", {\n      value: makeInvokeMethod(t, r, c)\n    }), a;\n  }\n  function tryCatch(t, e, r) {\n    try {\n      return {\n        type: \"normal\",\n        arg: t.call(e, r)\n      };\n    } catch (t) {\n      return {\n        type: \"throw\",\n        arg: t\n      };\n    }\n  }\n  e.wrap = wrap;\n  var h = \"suspendedStart\",\n    l = \"suspendedYield\",\n    f = \"executing\",\n    s = \"completed\",\n    y = {};\n  function Generator() {}\n  function GeneratorFunction() {}\n  function GeneratorFunctionPrototype() {}\n  var p = {};\n  define(p, a, function () {\n    return this;\n  });\n  var d = Object.getPrototypeOf,\n    v = d && d(d(values([])));\n  v && v !== r && n.call(v, a) && (p = v);\n  var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p);\n  function defineIteratorMethods(t) {\n    [\"next\", \"throw\", \"return\"].forEach(function (e) {\n      define(t, e, function (t) {\n        return this._invoke(e, t);\n      });\n    });\n  }\n  function AsyncIterator(t, e) {\n    function invoke(r, o, i, a) {\n      var c = tryCatch(t[r], t, o);\n      if (\"throw\" !== c.type) {\n        var u = c.arg,\n          h = u.value;\n        return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) {\n          invoke(\"next\", t, i, a);\n        }, function (t) {\n          invoke(\"throw\", t, i, a);\n        }) : e.resolve(h).then(function (t) {\n          u.value = t, i(u);\n        }, function (t) {\n          return invoke(\"throw\", t, i, a);\n        });\n      }\n      a(c.arg);\n    }\n    var r;\n    o(this, \"_invoke\", {\n      value: function value(t, n) {\n        function callInvokeWithMethodAndArg() {\n          return new e(function (e, r) {\n            invoke(t, n, e, r);\n          });\n        }\n        return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n      }\n    });\n  }\n  function makeInvokeMethod(e, r, n) {\n    var o = h;\n    return function (i, a) {\n      if (o === f) throw Error(\"Generator is already running\");\n      if (o === s) {\n        if (\"throw\" === i) throw a;\n        return {\n          value: t,\n          done: !0\n        };\n      }\n      for (n.method = i, n.arg = a;;) {\n        var c = n.delegate;\n        if (c) {\n          var u = maybeInvokeDelegate(c, n);\n          if (u) {\n            if (u === y) continue;\n            return u;\n          }\n        }\n        if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) {\n          if (o === h) throw o = s, n.arg;\n          n.dispatchException(n.arg);\n        } else \"return\" === n.method && n.abrupt(\"return\", n.arg);\n        o = f;\n        var p = tryCatch(e, r, n);\n        if (\"normal\" === p.type) {\n          if (o = n.done ? s : l, p.arg === y) continue;\n          return {\n            value: p.arg,\n            done: n.done\n          };\n        }\n        \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg);\n      }\n    };\n  }\n  function maybeInvokeDelegate(e, r) {\n    var n = r.method,\n      o = e.iterator[n];\n    if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y;\n    var i = tryCatch(o, e.iterator, r.arg);\n    if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y;\n    var a = i.arg;\n    return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y);\n  }\n  function pushTryEntry(t) {\n    var e = {\n      tryLoc: t[0]\n    };\n    1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e);\n  }\n  function resetTryEntry(t) {\n    var e = t.completion || {};\n    e.type = \"normal\", delete e.arg, t.completion = e;\n  }\n  function Context(t) {\n    this.tryEntries = [{\n      tryLoc: \"root\"\n    }], t.forEach(pushTryEntry, this), this.reset(!0);\n  }\n  function values(e) {\n    if (e || \"\" === e) {\n      var r = e[a];\n      if (r) return r.call(e);\n      if (\"function\" == typeof e.next) return e;\n      if (!isNaN(e.length)) {\n        var o = -1,\n          i = function next() {\n            for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next;\n            return next.value = t, next.done = !0, next;\n          };\n        return i.next = i;\n      }\n    }\n    throw new TypeError(_typeof(e) + \" is not iterable\");\n  }\n  return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", {\n    value: GeneratorFunctionPrototype,\n    configurable: !0\n  }), o(GeneratorFunctionPrototype, \"constructor\", {\n    value: GeneratorFunction,\n    configurable: !0\n  }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) {\n    var e = \"function\" == typeof t && t.constructor;\n    return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name));\n  }, e.mark = function (t) {\n    return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t;\n  }, e.awrap = function (t) {\n    return {\n      __await: t\n    };\n  }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () {\n    return this;\n  }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) {\n    void 0 === i && (i = Promise);\n    var a = new AsyncIterator(wrap(t, r, n, o), i);\n    return e.isGeneratorFunction(r) ? a : a.next().then(function (t) {\n      return t.done ? t.value : a.next();\n    });\n  }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () {\n    return this;\n  }), define(g, \"toString\", function () {\n    return \"[object Generator]\";\n  }), e.keys = function (t) {\n    var e = Object(t),\n      r = [];\n    for (var n in e) r.push(n);\n    return r.reverse(), function next() {\n      for (; r.length;) {\n        var t = r.pop();\n        if (t in e) return next.value = t, next.done = !1, next;\n      }\n      return next.done = !0, next;\n    };\n  }, e.values = values, Context.prototype = {\n    constructor: Context,\n    reset: function reset(e) {\n      if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t);\n    },\n    stop: function stop() {\n      this.done = !0;\n      var t = this.tryEntries[0].completion;\n      if (\"throw\" === t.type) throw t.arg;\n      return this.rval;\n    },\n    dispatchException: function dispatchException(e) {\n      if (this.done) throw e;\n      var r = this;\n      function handle(n, o) {\n        return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o;\n      }\n      for (var o = this.tryEntries.length - 1; o >= 0; --o) {\n        var i = this.tryEntries[o],\n          a = i.completion;\n        if (\"root\" === i.tryLoc) return handle(\"end\");\n        if (i.tryLoc <= this.prev) {\n          var c = n.call(i, \"catchLoc\"),\n            u = n.call(i, \"finallyLoc\");\n          if (c && u) {\n            if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n            if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n          } else if (c) {\n            if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n          } else {\n            if (!u) throw Error(\"try statement without catch or finally\");\n            if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n          }\n        }\n      }\n    },\n    abrupt: function abrupt(t, e) {\n      for (var r = this.tryEntries.length - 1; r >= 0; --r) {\n        var o = this.tryEntries[r];\n        if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) {\n          var i = o;\n          break;\n        }\n      }\n      i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null);\n      var a = i ? i.completion : {};\n      return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a);\n    },\n    complete: function complete(t, e) {\n      if (\"throw\" === t.type) throw t.arg;\n      return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y;\n    },\n    finish: function finish(t) {\n      for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n        var r = this.tryEntries[e];\n        if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y;\n      }\n    },\n    \"catch\": function _catch(t) {\n      for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n        var r = this.tryEntries[e];\n        if (r.tryLoc === t) {\n          var n = r.completion;\n          if (\"throw\" === n.type) {\n            var o = n.arg;\n            resetTryEntry(r);\n          }\n          return o;\n        }\n      }\n      throw Error(\"illegal catch attempt\");\n    },\n    delegateYield: function delegateYield(e, r, n) {\n      return this.delegate = {\n        iterator: values(e),\n        resultName: r,\n        nextLoc: n\n      }, \"next\" === this.method && (this.arg = t), y;\n    }\n  }, e;\n}\nexport { _regeneratorRuntime as default };","function asyncGeneratorStep(n, t, e, r, o, a, c) {\n  try {\n    var i = n[a](c),\n      u = i.value;\n  } catch (n) {\n    return void e(n);\n  }\n  i.done ? t(u) : Promise.resolve(u).then(r, o);\n}\nfunction _asyncToGenerator(n) {\n  return function () {\n    var t = this,\n      e = arguments;\n    return new Promise(function (r, o) {\n      var a = n.apply(t, e);\n      function _next(n) {\n        asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n);\n      }\n      function _throw(n) {\n        asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n);\n      }\n      _next(void 0);\n    });\n  };\n}\nexport { _asyncToGenerator as default };","import warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nexport var HOOK_MARK = 'RC_FORM_INTERNAL_HOOKS';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nvar warningFunc = function warningFunc() {\n  warning(false, 'Can not find FormContext. Please make sure you wrap Field under Form.');\n};\nvar Context = /*#__PURE__*/React.createContext({\n  getFieldValue: warningFunc,\n  getFieldsValue: warningFunc,\n  getFieldError: warningFunc,\n  getFieldWarning: warningFunc,\n  getFieldsError: warningFunc,\n  isFieldsTouched: warningFunc,\n  isFieldTouched: warningFunc,\n  isFieldValidating: warningFunc,\n  isFieldsValidating: warningFunc,\n  resetFields: warningFunc,\n  setFields: warningFunc,\n  setFieldValue: warningFunc,\n  setFieldsValue: warningFunc,\n  validateFields: warningFunc,\n  submit: warningFunc,\n  getInternalHooks: function getInternalHooks() {\n    warningFunc();\n    return {\n      dispatch: warningFunc,\n      initEntityValue: warningFunc,\n      registerField: warningFunc,\n      useSubscribe: warningFunc,\n      setInitialValues: warningFunc,\n      destroyForm: warningFunc,\n      setCallbacks: warningFunc,\n      registerWatch: warningFunc,\n      getFields: warningFunc,\n      setValidateMessages: warningFunc,\n      setPreserve: warningFunc,\n      getInitialValue: warningFunc\n    };\n  }\n});\nexport default Context;","import * as React from 'react';\nvar ListContext = /*#__PURE__*/React.createContext(null);\nexport default ListContext;","export function toArray(value) {\n  if (value === undefined || value === null) {\n    return [];\n  }\n  return Array.isArray(value) ? value : [value];\n}\nexport function isFormInstance(form) {\n  return form && !!form._init;\n}","export function newMessages() {\n  return {\n    default: 'Validation error on field %s',\n    required: '%s is required',\n    enum: '%s must be one of %s',\n    whitespace: '%s cannot be empty',\n    date: {\n      format: '%s date %s is invalid for format %s',\n      parse: '%s date could not be parsed, %s is invalid ',\n      invalid: '%s date %s is invalid'\n    },\n    types: {\n      string: '%s is not a %s',\n      method: '%s is not a %s (function)',\n      array: '%s is not an %s',\n      object: '%s is not an %s',\n      number: '%s is not a %s',\n      date: '%s is not a %s',\n      boolean: '%s is not a %s',\n      integer: '%s is not an %s',\n      float: '%s is not a %s',\n      regexp: '%s is not a valid %s',\n      email: '%s is not a valid %s',\n      url: '%s is not a valid %s',\n      hex: '%s is not a valid %s'\n    },\n    string: {\n      len: '%s must be exactly %s characters',\n      min: '%s must be at least %s characters',\n      max: '%s cannot be longer than %s characters',\n      range: '%s must be between %s and %s characters'\n    },\n    number: {\n      len: '%s must equal %s',\n      min: '%s cannot be less than %s',\n      max: '%s cannot be greater than %s',\n      range: '%s must be between %s and %s'\n    },\n    array: {\n      len: '%s must be exactly %s in length',\n      min: '%s cannot be less than %s in length',\n      max: '%s cannot be greater than %s in length',\n      range: '%s must be between %s and %s in length'\n    },\n    pattern: {\n      mismatch: '%s value %s does not match pattern %s'\n    },\n    clone: function clone() {\n      var cloned = JSON.parse(JSON.stringify(this));\n      cloned.clone = this.clone;\n      return cloned;\n    }\n  };\n}\nexport var messages = newMessages();","// https://github.com/kevva/url-regex/blob/master/index.js\nvar urlReg;\nexport default (function () {\n  if (urlReg) {\n    return urlReg;\n  }\n  var word = '[a-fA-F\\\\d:]';\n  var b = function b(options) {\n    return options && options.includeBoundaries ? \"(?:(?<=\\\\s|^)(?=\".concat(word, \")|(?<=\").concat(word, \")(?=\\\\s|$))\") : '';\n  };\n  var v4 = '(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)){3}';\n  var v6seg = '[a-fA-F\\\\d]{1,4}';\n  var v6List = [\"(?:\".concat(v6seg, \":){7}(?:\").concat(v6seg, \"|:)\"), // 1:2:3:4:5:6:7::  1:2:3:4:5:6:7:8\n  \"(?:\".concat(v6seg, \":){6}(?:\").concat(v4, \"|:\").concat(v6seg, \"|:)\"), // 1:2:3:4:5:6::    1:2:3:4:5:6::8   1:2:3:4:5:6::8  1:2:3:4:5:6::\n  \"(?:\".concat(v6seg, \":){5}(?::\").concat(v4, \"|(?::\").concat(v6seg, \"){1,2}|:)\"), // 1:2:3:4:5::      1:2:3:4:5::7:8   1:2:3:4:5::8    1:2:3:4:5::\n  \"(?:\".concat(v6seg, \":){4}(?:(?::\").concat(v6seg, \"){0,1}:\").concat(v4, \"|(?::\").concat(v6seg, \"){1,3}|:)\"), // 1:2:3:4::        1:2:3:4::6:7:8   1:2:3:4::8      1:2:3:4::\n  \"(?:\".concat(v6seg, \":){3}(?:(?::\").concat(v6seg, \"){0,2}:\").concat(v4, \"|(?::\").concat(v6seg, \"){1,4}|:)\"), // 1:2:3::          1:2:3::5:6:7:8   1:2:3::8        1:2:3::\n  \"(?:\".concat(v6seg, \":){2}(?:(?::\").concat(v6seg, \"){0,3}:\").concat(v4, \"|(?::\").concat(v6seg, \"){1,5}|:)\"), // 1:2::            1:2::4:5:6:7:8   1:2::8          1:2::\n  \"(?:\".concat(v6seg, \":){1}(?:(?::\").concat(v6seg, \"){0,4}:\").concat(v4, \"|(?::\").concat(v6seg, \"){1,6}|:)\"), // 1::              1::3:4:5:6:7:8   1::8            1::\n  \"(?::(?:(?::\".concat(v6seg, \"){0,5}:\").concat(v4, \"|(?::\").concat(v6seg, \"){1,7}|:))\") // ::2:3:4:5:6:7:8  ::2:3:4:5:6:7:8  ::8             ::\n  ];\n  var v6Eth0 = \"(?:%[0-9a-zA-Z]{1,})?\"; // %eth0            %1\n\n  var v6 = \"(?:\".concat(v6List.join('|'), \")\").concat(v6Eth0);\n\n  // Pre-compile only the exact regexes because adding a global flag make regexes stateful\n  var v46Exact = new RegExp(\"(?:^\".concat(v4, \"$)|(?:^\").concat(v6, \"$)\"));\n  var v4exact = new RegExp(\"^\".concat(v4, \"$\"));\n  var v6exact = new RegExp(\"^\".concat(v6, \"$\"));\n  var ip = function ip(options) {\n    return options && options.exact ? v46Exact : new RegExp(\"(?:\".concat(b(options)).concat(v4).concat(b(options), \")|(?:\").concat(b(options)).concat(v6).concat(b(options), \")\"), 'g');\n  };\n  ip.v4 = function (options) {\n    return options && options.exact ? v4exact : new RegExp(\"\".concat(b(options)).concat(v4).concat(b(options)), 'g');\n  };\n  ip.v6 = function (options) {\n    return options && options.exact ? v6exact : new RegExp(\"\".concat(b(options)).concat(v6).concat(b(options)), 'g');\n  };\n  var protocol = \"(?:(?:[a-z]+:)?//)\";\n  var auth = '(?:\\\\S+(?::\\\\S*)?@)?';\n  var ipv4 = ip.v4().source;\n  var ipv6 = ip.v6().source;\n  var host = \"(?:(?:[a-z\\\\u00a1-\\\\uffff0-9][-_]*)*[a-z\\\\u00a1-\\\\uffff0-9]+)\";\n  var domain = \"(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff0-9]-*)*[a-z\\\\u00a1-\\\\uffff0-9]+)*\";\n  var tld = \"(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff]{2,}))\";\n  var port = '(?::\\\\d{2,5})?';\n  var path = '(?:[/?#][^\\\\s\"]*)?';\n  var regex = \"(?:\".concat(protocol, \"|www\\\\.)\").concat(auth, \"(?:localhost|\").concat(ipv4, \"|\").concat(ipv6, \"|\").concat(host).concat(domain).concat(tld, \")\").concat(port).concat(path);\n  urlReg = new RegExp(\"(?:^\".concat(regex, \"$)\"), 'i');\n  return urlReg;\n});","import { format } from \"../util\";\nvar ENUM = 'enum';\nvar enumerable = function enumerable(rule, value, source, errors, options) {\n  rule[ENUM] = Array.isArray(rule[ENUM]) ? rule[ENUM] : [];\n  if (rule[ENUM].indexOf(value) === -1) {\n    errors.push(format(options.messages[ENUM], rule.fullField, rule[ENUM].join(', ')));\n  }\n};\nexport default enumerable;","import { format, isEmptyValue } from \"../util\";\nvar required = function required(rule, value, source, errors, options, type) {\n  if (rule.required && (!source.hasOwnProperty(rule.field) || isEmptyValue(value, type || rule.type))) {\n    errors.push(format(options.messages.required, rule.fullField));\n  }\n};\nexport default required;","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport { format } from \"../util\";\nimport required from \"./required\";\nimport getUrlRegex from \"./url\";\n/* eslint max-len:0 */\n\nvar pattern = {\n  // http://emailregex.com/\n  email: /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]+\\.)+[a-zA-Z\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]{2,}))$/,\n  // url: new RegExp(\n  //   '^(?!mailto:)(?:(?:http|https|ftp)://|//)(?:\\\\S+(?::\\\\S*)?@)?(?:(?:(?:[1-9]\\\\d?|1\\\\d\\\\d|2[01]\\\\d|22[0-3])(?:\\\\.(?:1?\\\\d{1,2}|2[0-4]\\\\d|25[0-5])){2}(?:\\\\.(?:[0-9]\\\\d?|1\\\\d\\\\d|2[0-4]\\\\d|25[0-4]))|(?:(?:[a-z\\\\u00a1-\\\\uffff0-9]+-*)*[a-z\\\\u00a1-\\\\uffff0-9]+)(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff0-9]+-*)*[a-z\\\\u00a1-\\\\uffff0-9]+)*(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff]{2,})))|localhost)(?::\\\\d{2,5})?(?:(/|\\\\?|#)[^\\\\s]*)?$',\n  //   'i',\n  // ),\n  hex: /^#?([a-f0-9]{6}|[a-f0-9]{3})$/i\n};\nvar types = {\n  integer: function integer(value) {\n    return types.number(value) && parseInt(value, 10) === value;\n  },\n  float: function float(value) {\n    return types.number(value) && !types.integer(value);\n  },\n  array: function array(value) {\n    return Array.isArray(value);\n  },\n  regexp: function regexp(value) {\n    if (value instanceof RegExp) {\n      return true;\n    }\n    try {\n      return !!new RegExp(value);\n    } catch (e) {\n      return false;\n    }\n  },\n  date: function date(value) {\n    return typeof value.getTime === 'function' && typeof value.getMonth === 'function' && typeof value.getYear === 'function' && !isNaN(value.getTime());\n  },\n  number: function number(value) {\n    if (isNaN(value)) {\n      return false;\n    }\n    return typeof value === 'number';\n  },\n  object: function object(value) {\n    return _typeof(value) === 'object' && !types.array(value);\n  },\n  method: function method(value) {\n    return typeof value === 'function';\n  },\n  email: function email(value) {\n    return typeof value === 'string' && value.length <= 320 && !!value.match(pattern.email);\n  },\n  url: function url(value) {\n    return typeof value === 'string' && value.length <= 2048 && !!value.match(getUrlRegex());\n  },\n  hex: function hex(value) {\n    return typeof value === 'string' && !!value.match(pattern.hex);\n  }\n};\nvar type = function type(rule, value, source, errors, options) {\n  if (rule.required && value === undefined) {\n    required(rule, value, source, errors, options);\n    return;\n  }\n  var custom = ['integer', 'float', 'array', 'regexp', 'object', 'method', 'email', 'number', 'date', 'url', 'hex'];\n  var ruleType = rule.type;\n  if (custom.indexOf(ruleType) > -1) {\n    if (!types[ruleType](value)) {\n      errors.push(format(options.messages.types[ruleType], rule.fullField, rule.type));\n    }\n    // straight typeof check\n  } else if (ruleType && _typeof(value) !== rule.type) {\n    errors.push(format(options.messages.types[ruleType], rule.fullField, rule.type));\n  }\n};\nexport default type;","import enumRule from \"./enum\";\nimport pattern from \"./pattern\";\nimport range from \"./range\";\nimport required from \"./required\";\nimport type from \"./type\";\nimport whitespace from \"./whitespace\";\nexport default {\n  required: required,\n  whitespace: whitespace,\n  type: type,\n  range: range,\n  enum: enumRule,\n  pattern: pattern\n};","import { format } from \"../util\";\n\n/**\n *  Rule for validating whitespace.\n *\n *  @param rule The validation rule.\n *  @param value The value of the field on the source object.\n *  @param source The source object being validated.\n *  @param errors An array of errors that this rule may add\n *  validation errors to.\n *  @param options The validation options.\n *  @param options.messages The validation messages.\n */\nvar whitespace = function whitespace(rule, value, source, errors, options) {\n  if (/^\\s+$/.test(value) || value === '') {\n    errors.push(format(options.messages.whitespace, rule.fullField));\n  }\n};\nexport default whitespace;","import { format } from \"../util\";\nvar range = function range(rule, value, source, errors, options) {\n  var len = typeof rule.len === 'number';\n  var min = typeof rule.min === 'number';\n  var max = typeof rule.max === 'number';\n  // 正则匹配码点范围从U+010000一直到U+10FFFF的文字（补充平面Supplementary Plane）\n  var spRegexp = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n  var val = value;\n  var key = null;\n  var num = typeof value === 'number';\n  var str = typeof value === 'string';\n  var arr = Array.isArray(value);\n  if (num) {\n    key = 'number';\n  } else if (str) {\n    key = 'string';\n  } else if (arr) {\n    key = 'array';\n  }\n  // if the value is not of a supported type for range validation\n  // the validation rule rule should use the\n  // type property to also test for a particular type\n  if (!key) {\n    return false;\n  }\n  if (arr) {\n    val = value.length;\n  }\n  if (str) {\n    // 处理码点大于U+010000的文字length属性不准确的bug，如\"𠮷𠮷𠮷\".length !== 3\n    val = value.replace(spRegexp, '_').length;\n  }\n  if (len) {\n    if (val !== rule.len) {\n      errors.push(format(options.messages[key].len, rule.fullField, rule.len));\n    }\n  } else if (min && !max && val < rule.min) {\n    errors.push(format(options.messages[key].min, rule.fullField, rule.min));\n  } else if (max && !min && val > rule.max) {\n    errors.push(format(options.messages[key].max, rule.fullField, rule.max));\n  } else if (min && max && (val < rule.min || val > rule.max)) {\n    errors.push(format(options.messages[key].range, rule.fullField, rule.min, rule.max));\n  }\n};\nexport default range;","import { format } from \"../util\";\nvar pattern = function pattern(rule, value, source, errors, options) {\n  if (rule.pattern) {\n    if (rule.pattern instanceof RegExp) {\n      // if a RegExp instance is passed, reset `lastIndex` in case its `global`\n      // flag is accidentally set to `true`, which in a validation scenario\n      // is not necessary and the result might be misleading\n      rule.pattern.lastIndex = 0;\n      if (!rule.pattern.test(value)) {\n        errors.push(format(options.messages.pattern.mismatch, rule.fullField, value, rule.pattern));\n      }\n    } else if (typeof rule.pattern === 'string') {\n      var _pattern = new RegExp(rule.pattern);\n      if (!_pattern.test(value)) {\n        errors.push(format(options.messages.pattern.mismatch, rule.fullField, value, rule.pattern));\n      }\n    }\n  }\n};\nexport default pattern;","import rules from \"../rule\";\nimport { isEmptyValue } from \"../util\";\nvar type = function type(rule, value, callback, source, options) {\n  var ruleType = rule.type;\n  var errors = [];\n  var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n  if (validate) {\n    if (isEmptyValue(value, ruleType) && !rule.required) {\n      return callback();\n    }\n    rules.required(rule, value, source, errors, options, ruleType);\n    if (!isEmptyValue(value, ruleType)) {\n      rules.type(rule, value, source, errors, options);\n    }\n  }\n  callback(errors);\n};\nexport default type;","import any from \"./any\";\nimport array from \"./array\";\nimport boolean from \"./boolean\";\nimport date from \"./date\";\nimport enumValidator from \"./enum\";\nimport float from \"./float\";\nimport integer from \"./integer\";\nimport method from \"./method\";\nimport number from \"./number\";\nimport object from \"./object\";\nimport pattern from \"./pattern\";\nimport regexp from \"./regexp\";\nimport required from \"./required\";\nimport string from \"./string\";\nimport type from \"./type\";\nexport default {\n  string: string,\n  method: method,\n  number: number,\n  boolean: boolean,\n  regexp: regexp,\n  integer: integer,\n  float: float,\n  array: array,\n  object: object,\n  enum: enumValidator,\n  pattern: pattern,\n  date: date,\n  url: type,\n  hex: type,\n  email: type,\n  required: required,\n  any: any\n};","import rules from \"../rule\";\nimport { isEmptyValue } from \"../util\";\nvar string = function string(rule, value, callback, source, options) {\n  var errors = [];\n  var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n  if (validate) {\n    if (isEmptyValue(value, 'string') && !rule.required) {\n      return callback();\n    }\n    rules.required(rule, value, source, errors, options, 'string');\n    if (!isEmptyValue(value, 'string')) {\n      rules.type(rule, value, source, errors, options);\n      rules.range(rule, value, source, errors, options);\n      rules.pattern(rule, value, source, errors, options);\n      if (rule.whitespace === true) {\n        rules.whitespace(rule, value, source, errors, options);\n      }\n    }\n  }\n  callback(errors);\n};\nexport default string;","import rules from \"../rule\";\nimport { isEmptyValue } from \"../util\";\nvar method = function method(rule, value, callback, source, options) {\n  var errors = [];\n  var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n  if (validate) {\n    if (isEmptyValue(value) && !rule.required) {\n      return callback();\n    }\n    rules.required(rule, value, source, errors, options);\n    if (value !== undefined) {\n      rules.type(rule, value, source, errors, options);\n    }\n  }\n  callback(errors);\n};\nexport default method;","import rules from \"../rule\";\nimport { isEmptyValue } from \"../util\";\nvar number = function number(rule, value, callback, source, options) {\n  var errors = [];\n  var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n  if (validate) {\n    if (value === '') {\n      // eslint-disable-next-line no-param-reassign\n      value = undefined;\n    }\n    if (isEmptyValue(value) && !rule.required) {\n      return callback();\n    }\n    rules.required(rule, value, source, errors, options);\n    if (value !== undefined) {\n      rules.type(rule, value, source, errors, options);\n      rules.range(rule, value, source, errors, options);\n    }\n  }\n  callback(errors);\n};\nexport default number;","import rules from \"../rule\";\nimport { isEmptyValue } from \"../util\";\nvar boolean = function boolean(rule, value, callback, source, options) {\n  var errors = [];\n  var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n  if (validate) {\n    if (isEmptyValue(value) && !rule.required) {\n      return callback();\n    }\n    rules.required(rule, value, source, errors, options);\n    if (value !== undefined) {\n      rules.type(rule, value, source, errors, options);\n    }\n  }\n  callback(errors);\n};\nexport default boolean;","import rules from \"../rule\";\nimport { isEmptyValue } from \"../util\";\nvar regexp = function regexp(rule, value, callback, source, options) {\n  var errors = [];\n  var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n  if (validate) {\n    if (isEmptyValue(value) && !rule.required) {\n      return callback();\n    }\n    rules.required(rule, value, source, errors, options);\n    if (!isEmptyValue(value)) {\n      rules.type(rule, value, source, errors, options);\n    }\n  }\n  callback(errors);\n};\nexport default regexp;","import rules from \"../rule\";\nimport { isEmptyValue } from \"../util\";\nvar integer = function integer(rule, value, callback, source, options) {\n  var errors = [];\n  var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n  if (validate) {\n    if (isEmptyValue(value) && !rule.required) {\n      return callback();\n    }\n    rules.required(rule, value, source, errors, options);\n    if (value !== undefined) {\n      rules.type(rule, value, source, errors, options);\n      rules.range(rule, value, source, errors, options);\n    }\n  }\n  callback(errors);\n};\nexport default integer;","import rules from \"../rule\";\nimport { isEmptyValue } from \"../util\";\nvar floatFn = function floatFn(rule, value, callback, source, options) {\n  var errors = [];\n  var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n  if (validate) {\n    if (isEmptyValue(value) && !rule.required) {\n      return callback();\n    }\n    rules.required(rule, value, source, errors, options);\n    if (value !== undefined) {\n      rules.type(rule, value, source, errors, options);\n      rules.range(rule, value, source, errors, options);\n    }\n  }\n  callback(errors);\n};\nexport default floatFn;","import rules from \"../rule/index\";\nvar array = function array(rule, value, callback, source, options) {\n  var errors = [];\n  var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n  if (validate) {\n    if ((value === undefined || value === null) && !rule.required) {\n      return callback();\n    }\n    rules.required(rule, value, source, errors, options, 'array');\n    if (value !== undefined && value !== null) {\n      rules.type(rule, value, source, errors, options);\n      rules.range(rule, value, source, errors, options);\n    }\n  }\n  callback(errors);\n};\nexport default array;","import rules from \"../rule\";\nimport { isEmptyValue } from \"../util\";\nvar object = function object(rule, value, callback, source, options) {\n  var errors = [];\n  var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n  if (validate) {\n    if (isEmptyValue(value) && !rule.required) {\n      return callback();\n    }\n    rules.required(rule, value, source, errors, options);\n    if (value !== undefined) {\n      rules.type(rule, value, source, errors, options);\n    }\n  }\n  callback(errors);\n};\nexport default object;","import rules from \"../rule\";\nimport { isEmptyValue } from \"../util\";\nvar ENUM = 'enum';\nvar enumerable = function enumerable(rule, value, callback, source, options) {\n  var errors = [];\n  var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n  if (validate) {\n    if (isEmptyValue(value) && !rule.required) {\n      return callback();\n    }\n    rules.required(rule, value, source, errors, options);\n    if (value !== undefined) {\n      rules[ENUM](rule, value, source, errors, options);\n    }\n  }\n  callback(errors);\n};\nexport default enumerable;","import rules from \"../rule\";\nimport { isEmptyValue } from \"../util\";\nvar pattern = function pattern(rule, value, callback, source, options) {\n  var errors = [];\n  var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n  if (validate) {\n    if (isEmptyValue(value, 'string') && !rule.required) {\n      return callback();\n    }\n    rules.required(rule, value, source, errors, options);\n    if (!isEmptyValue(value, 'string')) {\n      rules.pattern(rule, value, source, errors, options);\n    }\n  }\n  callback(errors);\n};\nexport default pattern;","import rules from \"../rule\";\nimport { isEmptyValue } from \"../util\";\nvar date = function date(rule, value, callback, source, options) {\n  // console.log('integer rule called %j', rule);\n  var errors = [];\n  var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n  // console.log('validate on %s value', value);\n  if (validate) {\n    if (isEmptyValue(value, 'date') && !rule.required) {\n      return callback();\n    }\n    rules.required(rule, value, source, errors, options);\n    if (!isEmptyValue(value, 'date')) {\n      var dateObject;\n      if (value instanceof Date) {\n        dateObject = value;\n      } else {\n        dateObject = new Date(value);\n      }\n      rules.type(rule, dateObject, source, errors, options);\n      if (dateObject) {\n        rules.range(rule, dateObject.getTime(), source, errors, options);\n      }\n    }\n  }\n  callback(errors);\n};\nexport default date;","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport rules from \"../rule\";\nvar required = function required(rule, value, callback, source, options) {\n  var errors = [];\n  var type = Array.isArray(value) ? 'array' : _typeof(value);\n  rules.required(rule, value, source, errors, options, type);\n  callback(errors);\n};\nexport default required;","import rules from \"../rule\";\nimport { isEmptyValue } from \"../util\";\nvar any = function any(rule, value, callback, source, options) {\n  var errors = [];\n  var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n  if (validate) {\n    if (isEmptyValue(value) && !rule.required) {\n      return callback();\n    }\n    rules.required(rule, value, source, errors, options);\n  }\n  callback(errors);\n};\nexport default any;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { messages as defaultMessages, newMessages } from \"./messages\";\nimport { asyncMap, complementError, convertFieldsError, deepMerge, format, warning } from \"./util\";\nimport validators from \"./validator/index\";\nexport * from \"./interface\";\n\n/**\n *  Encapsulates a validation schema.\n *\n *  @param descriptor An object declaring validation rules\n *  for this schema.\n */\nvar Schema = /*#__PURE__*/function () {\n  function Schema(descriptor) {\n    _classCallCheck(this, Schema);\n    // ======================== Instance ========================\n    _defineProperty(this, \"rules\", null);\n    _defineProperty(this, \"_messages\", defaultMessages);\n    this.define(descriptor);\n  }\n  _createClass(Schema, [{\n    key: \"define\",\n    value: function define(rules) {\n      var _this = this;\n      if (!rules) {\n        throw new Error('Cannot configure a schema with no rules');\n      }\n      if (_typeof(rules) !== 'object' || Array.isArray(rules)) {\n        throw new Error('Rules must be an object');\n      }\n      this.rules = {};\n      Object.keys(rules).forEach(function (name) {\n        var item = rules[name];\n        _this.rules[name] = Array.isArray(item) ? item : [item];\n      });\n    }\n  }, {\n    key: \"messages\",\n    value: function messages(_messages) {\n      if (_messages) {\n        this._messages = deepMerge(newMessages(), _messages);\n      }\n      return this._messages;\n    }\n  }, {\n    key: \"validate\",\n    value: function validate(source_) {\n      var _this2 = this;\n      var o = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n      var oc = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : function () {};\n      var source = source_;\n      var options = o;\n      var callback = oc;\n      if (typeof options === 'function') {\n        callback = options;\n        options = {};\n      }\n      if (!this.rules || Object.keys(this.rules).length === 0) {\n        if (callback) {\n          callback(null, source);\n        }\n        return Promise.resolve(source);\n      }\n      function complete(results) {\n        var errors = [];\n        var fields = {};\n        function add(e) {\n          if (Array.isArray(e)) {\n            var _errors;\n            errors = (_errors = errors).concat.apply(_errors, _toConsumableArray(e));\n          } else {\n            errors.push(e);\n          }\n        }\n        for (var i = 0; i < results.length; i++) {\n          add(results[i]);\n        }\n        if (!errors.length) {\n          callback(null, source);\n        } else {\n          fields = convertFieldsError(errors);\n          callback(errors, fields);\n        }\n      }\n      if (options.messages) {\n        var messages = this.messages();\n        if (messages === defaultMessages) {\n          messages = newMessages();\n        }\n        deepMerge(messages, options.messages);\n        options.messages = messages;\n      } else {\n        options.messages = this.messages();\n      }\n      var series = {};\n      var keys = options.keys || Object.keys(this.rules);\n      keys.forEach(function (z) {\n        var arr = _this2.rules[z];\n        var value = source[z];\n        arr.forEach(function (r) {\n          var rule = r;\n          if (typeof rule.transform === 'function') {\n            if (source === source_) {\n              source = _objectSpread({}, source);\n            }\n            value = source[z] = rule.transform(value);\n            if (value !== undefined && value !== null) {\n              rule.type = rule.type || (Array.isArray(value) ? 'array' : _typeof(value));\n            }\n          }\n          if (typeof rule === 'function') {\n            rule = {\n              validator: rule\n            };\n          } else {\n            rule = _objectSpread({}, rule);\n          }\n\n          // Fill validator. Skip if nothing need to validate\n          rule.validator = _this2.getValidationMethod(rule);\n          if (!rule.validator) {\n            return;\n          }\n          rule.field = z;\n          rule.fullField = rule.fullField || z;\n          rule.type = _this2.getType(rule);\n          series[z] = series[z] || [];\n          series[z].push({\n            rule: rule,\n            value: value,\n            source: source,\n            field: z\n          });\n        });\n      });\n      var errorFields = {};\n      return asyncMap(series, options, function (data, doIt) {\n        var rule = data.rule;\n        var deep = (rule.type === 'object' || rule.type === 'array') && (_typeof(rule.fields) === 'object' || _typeof(rule.defaultField) === 'object');\n        deep = deep && (rule.required || !rule.required && data.value);\n        rule.field = data.field;\n        function addFullField(key, schema) {\n          return _objectSpread(_objectSpread({}, schema), {}, {\n            fullField: \"\".concat(rule.fullField, \".\").concat(key),\n            fullFields: rule.fullFields ? [].concat(_toConsumableArray(rule.fullFields), [key]) : [key]\n          });\n        }\n        function cb() {\n          var e = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n          var errorList = Array.isArray(e) ? e : [e];\n          if (!options.suppressWarning && errorList.length) {\n            Schema.warning('async-validator:', errorList);\n          }\n          if (errorList.length && rule.message !== undefined) {\n            errorList = [].concat(rule.message);\n          }\n\n          // Fill error info\n          var filledErrors = errorList.map(complementError(rule, source));\n          if (options.first && filledErrors.length) {\n            errorFields[rule.field] = 1;\n            return doIt(filledErrors);\n          }\n          if (!deep) {\n            doIt(filledErrors);\n          } else {\n            // if rule is required but the target object\n            // does not exist fail at the rule level and don't\n            // go deeper\n            if (rule.required && !data.value) {\n              if (rule.message !== undefined) {\n                filledErrors = [].concat(rule.message).map(complementError(rule, source));\n              } else if (options.error) {\n                filledErrors = [options.error(rule, format(options.messages.required, rule.field))];\n              }\n              return doIt(filledErrors);\n            }\n            var fieldsSchema = {};\n            if (rule.defaultField) {\n              Object.keys(data.value).map(function (key) {\n                fieldsSchema[key] = rule.defaultField;\n              });\n            }\n            fieldsSchema = _objectSpread(_objectSpread({}, fieldsSchema), data.rule.fields);\n            var paredFieldsSchema = {};\n            Object.keys(fieldsSchema).forEach(function (field) {\n              var fieldSchema = fieldsSchema[field];\n              var fieldSchemaList = Array.isArray(fieldSchema) ? fieldSchema : [fieldSchema];\n              paredFieldsSchema[field] = fieldSchemaList.map(addFullField.bind(null, field));\n            });\n            var schema = new Schema(paredFieldsSchema);\n            schema.messages(options.messages);\n            if (data.rule.options) {\n              data.rule.options.messages = options.messages;\n              data.rule.options.error = options.error;\n            }\n            schema.validate(data.value, data.rule.options || options, function (errs) {\n              var finalErrors = [];\n              if (filledErrors && filledErrors.length) {\n                finalErrors.push.apply(finalErrors, _toConsumableArray(filledErrors));\n              }\n              if (errs && errs.length) {\n                finalErrors.push.apply(finalErrors, _toConsumableArray(errs));\n              }\n              doIt(finalErrors.length ? finalErrors : null);\n            });\n          }\n        }\n        var res;\n        if (rule.asyncValidator) {\n          res = rule.asyncValidator(rule, data.value, cb, data.source, options);\n        } else if (rule.validator) {\n          try {\n            res = rule.validator(rule, data.value, cb, data.source, options);\n          } catch (error) {\n            var _console$error, _console;\n            (_console$error = (_console = console).error) === null || _console$error === void 0 || _console$error.call(_console, error);\n            // rethrow to report error\n            if (!options.suppressValidatorError) {\n              setTimeout(function () {\n                throw error;\n              }, 0);\n            }\n            cb(error.message);\n          }\n          if (res === true) {\n            cb();\n          } else if (res === false) {\n            cb(typeof rule.message === 'function' ? rule.message(rule.fullField || rule.field) : rule.message || \"\".concat(rule.fullField || rule.field, \" fails\"));\n          } else if (res instanceof Array) {\n            cb(res);\n          } else if (res instanceof Error) {\n            cb(res.message);\n          }\n        }\n        if (res && res.then) {\n          res.then(function () {\n            return cb();\n          }, function (e) {\n            return cb(e);\n          });\n        }\n      }, function (results) {\n        complete(results);\n      }, source);\n    }\n  }, {\n    key: \"getType\",\n    value: function getType(rule) {\n      if (rule.type === undefined && rule.pattern instanceof RegExp) {\n        rule.type = 'pattern';\n      }\n      if (typeof rule.validator !== 'function' && rule.type && !validators.hasOwnProperty(rule.type)) {\n        throw new Error(format('Unknown rule type %s', rule.type));\n      }\n      return rule.type || 'string';\n    }\n  }, {\n    key: \"getValidationMethod\",\n    value: function getValidationMethod(rule) {\n      if (typeof rule.validator === 'function') {\n        return rule.validator;\n      }\n      var keys = Object.keys(rule);\n      var messageIndex = keys.indexOf('message');\n      if (messageIndex !== -1) {\n        keys.splice(messageIndex, 1);\n      }\n      if (keys.length === 1 && keys[0] === 'required') {\n        return validators.required;\n      }\n      return validators[this.getType(rule)] || undefined;\n    }\n  }]);\n  return Schema;\n}();\n// ========================= Static =========================\n_defineProperty(Schema, \"register\", function register(type, validator) {\n  if (typeof validator !== 'function') {\n    throw new Error('Cannot register a validator by type, validator is not a function');\n  }\n  validators[type] = validator;\n});\n_defineProperty(Schema, \"warning\", warning);\n_defineProperty(Schema, \"messages\", defaultMessages);\n_defineProperty(Schema, \"validators\", validators);\nexport default Schema;","var typeTemplate = \"'${name}' is not a valid ${type}\";\nexport var defaultValidateMessages = {\n  default: \"Validation error on field '${name}'\",\n  required: \"'${name}' is required\",\n  enum: \"'${name}' must be one of [${enum}]\",\n  whitespace: \"'${name}' cannot be empty\",\n  date: {\n    format: \"'${name}' is invalid for format date\",\n    parse: \"'${name}' could not be parsed as date\",\n    invalid: \"'${name}' is invalid date\"\n  },\n  types: {\n    string: typeTemplate,\n    method: typeTemplate,\n    array: typeTemplate,\n    object: typeTemplate,\n    number: typeTemplate,\n    date: typeTemplate,\n    boolean: typeTemplate,\n    integer: typeTemplate,\n    float: typeTemplate,\n    regexp: typeTemplate,\n    email: typeTemplate,\n    url: typeTemplate,\n    hex: typeTemplate\n  },\n  string: {\n    len: \"'${name}' must be exactly ${len} characters\",\n    min: \"'${name}' must be at least ${min} characters\",\n    max: \"'${name}' cannot be longer than ${max} characters\",\n    range: \"'${name}' must be between ${min} and ${max} characters\"\n  },\n  number: {\n    len: \"'${name}' must equal ${len}\",\n    min: \"'${name}' cannot be less than ${min}\",\n    max: \"'${name}' cannot be greater than ${max}\",\n    range: \"'${name}' must be between ${min} and ${max}\"\n  },\n  array: {\n    len: \"'${name}' must be exactly ${len} in length\",\n    min: \"'${name}' cannot be less than ${min} in length\",\n    max: \"'${name}' cannot be greater than ${max} in length\",\n    range: \"'${name}' must be between ${min} and ${max} in length\"\n  },\n  pattern: {\n    mismatch: \"'${name}' does not match pattern ${pattern}\"\n  }\n};","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _regeneratorRuntime from \"@babel/runtime/helpers/esm/regeneratorRuntime\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/esm/asyncToGenerator\";\nimport RawAsyncValidator from '@rc-component/async-validator';\nimport * as React from 'react';\nimport warning from \"rc-util/es/warning\";\nimport { defaultValidateMessages } from \"./messages\";\nimport { merge } from \"rc-util/es/utils/set\";\n\n// Remove incorrect original ts define\nvar AsyncValidator = RawAsyncValidator;\n\n/**\n * Replace with template.\n *   `I'm ${name}` + { name: 'bamboo' } = I'm bamboo\n */\nfunction replaceMessage(template, kv) {\n  return template.replace(/\\\\?\\$\\{\\w+\\}/g, function (str) {\n    if (str.startsWith('\\\\')) {\n      return str.slice(1);\n    }\n    var key = str.slice(2, -1);\n    return kv[key];\n  });\n}\nvar CODE_LOGIC_ERROR = 'CODE_LOGIC_ERROR';\nfunction validateRule(_x, _x2, _x3, _x4, _x5) {\n  return _validateRule.apply(this, arguments);\n}\n/**\n * We use `async-validator` to validate the value.\n * But only check one value in a time to avoid namePath validate issue.\n */\nfunction _validateRule() {\n  _validateRule = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(name, value, rule, options, messageVariables) {\n    var cloneRule, originValidator, subRuleField, validator, messages, result, subResults, kv, fillVariableResult;\n    return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n      while (1) switch (_context2.prev = _context2.next) {\n        case 0:\n          cloneRule = _objectSpread({}, rule); // Bug of `async-validator`\n          // https://github.com/react-component/field-form/issues/316\n          // https://github.com/react-component/field-form/issues/313\n          delete cloneRule.ruleIndex;\n\n          // https://github.com/ant-design/ant-design/issues/40497#issuecomment-1422282378\n          AsyncValidator.warning = function () {\n            return void 0;\n          };\n          if (cloneRule.validator) {\n            originValidator = cloneRule.validator;\n            cloneRule.validator = function () {\n              try {\n                return originValidator.apply(void 0, arguments);\n              } catch (error) {\n                console.error(error);\n                return Promise.reject(CODE_LOGIC_ERROR);\n              }\n            };\n          }\n\n          // We should special handle array validate\n          subRuleField = null;\n          if (cloneRule && cloneRule.type === 'array' && cloneRule.defaultField) {\n            subRuleField = cloneRule.defaultField;\n            delete cloneRule.defaultField;\n          }\n          validator = new AsyncValidator(_defineProperty({}, name, [cloneRule]));\n          messages = merge(defaultValidateMessages, options.validateMessages);\n          validator.messages(messages);\n          result = [];\n          _context2.prev = 10;\n          _context2.next = 13;\n          return Promise.resolve(validator.validate(_defineProperty({}, name, value), _objectSpread({}, options)));\n        case 13:\n          _context2.next = 18;\n          break;\n        case 15:\n          _context2.prev = 15;\n          _context2.t0 = _context2[\"catch\"](10);\n          if (_context2.t0.errors) {\n            result = _context2.t0.errors.map(function (_ref4, index) {\n              var message = _ref4.message;\n              var mergedMessage = message === CODE_LOGIC_ERROR ? messages.default : message;\n              return /*#__PURE__*/React.isValidElement(mergedMessage) ?\n              /*#__PURE__*/\n              // Wrap ReactNode with `key`\n              React.cloneElement(mergedMessage, {\n                key: \"error_\".concat(index)\n              }) : mergedMessage;\n            });\n          }\n        case 18:\n          if (!(!result.length && subRuleField)) {\n            _context2.next = 23;\n            break;\n          }\n          _context2.next = 21;\n          return Promise.all(value.map(function (subValue, i) {\n            return validateRule(\"\".concat(name, \".\").concat(i), subValue, subRuleField, options, messageVariables);\n          }));\n        case 21:\n          subResults = _context2.sent;\n          return _context2.abrupt(\"return\", subResults.reduce(function (prev, errors) {\n            return [].concat(_toConsumableArray(prev), _toConsumableArray(errors));\n          }, []));\n        case 23:\n          // Replace message with variables\n          kv = _objectSpread(_objectSpread({}, rule), {}, {\n            name: name,\n            enum: (rule.enum || []).join(', ')\n          }, messageVariables);\n          fillVariableResult = result.map(function (error) {\n            if (typeof error === 'string') {\n              return replaceMessage(error, kv);\n            }\n            return error;\n          });\n          return _context2.abrupt(\"return\", fillVariableResult);\n        case 26:\n        case \"end\":\n          return _context2.stop();\n      }\n    }, _callee2, null, [[10, 15]]);\n  }));\n  return _validateRule.apply(this, arguments);\n}\nexport function validateRules(namePath, value, rules, options, validateFirst, messageVariables) {\n  var name = namePath.join('.');\n\n  // Fill rule with context\n  var filledRules = rules.map(function (currentRule, ruleIndex) {\n    var originValidatorFunc = currentRule.validator;\n    var cloneRule = _objectSpread(_objectSpread({}, currentRule), {}, {\n      ruleIndex: ruleIndex\n    });\n\n    // Replace validator if needed\n    if (originValidatorFunc) {\n      cloneRule.validator = function (rule, val, callback) {\n        var hasPromise = false;\n\n        // Wrap callback only accept when promise not provided\n        var wrappedCallback = function wrappedCallback() {\n          for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n            args[_key] = arguments[_key];\n          }\n          // Wait a tick to make sure return type is a promise\n          Promise.resolve().then(function () {\n            warning(!hasPromise, 'Your validator function has already return a promise. `callback` will be ignored.');\n            if (!hasPromise) {\n              callback.apply(void 0, args);\n            }\n          });\n        };\n\n        // Get promise\n        var promise = originValidatorFunc(rule, val, wrappedCallback);\n        hasPromise = promise && typeof promise.then === 'function' && typeof promise.catch === 'function';\n\n        /**\n         * 1. Use promise as the first priority.\n         * 2. If promise not exist, use callback with warning instead\n         */\n        warning(hasPromise, '`callback` is deprecated. Please return a promise instead.');\n        if (hasPromise) {\n          promise.then(function () {\n            callback();\n          }).catch(function (err) {\n            callback(err || ' ');\n          });\n        }\n      };\n    }\n    return cloneRule;\n  }).sort(function (_ref, _ref2) {\n    var w1 = _ref.warningOnly,\n      i1 = _ref.ruleIndex;\n    var w2 = _ref2.warningOnly,\n      i2 = _ref2.ruleIndex;\n    if (!!w1 === !!w2) {\n      // Let keep origin order\n      return i1 - i2;\n    }\n    if (w1) {\n      return 1;\n    }\n    return -1;\n  });\n\n  // Do validate rules\n  var summaryPromise;\n  if (validateFirst === true) {\n    // >>>>> Validate by serialization\n    summaryPromise = new Promise( /*#__PURE__*/function () {\n      var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(resolve, reject) {\n        var i, rule, errors;\n        return _regeneratorRuntime().wrap(function _callee$(_context) {\n          while (1) switch (_context.prev = _context.next) {\n            case 0:\n              i = 0;\n            case 1:\n              if (!(i < filledRules.length)) {\n                _context.next = 12;\n                break;\n              }\n              rule = filledRules[i];\n              _context.next = 5;\n              return validateRule(name, value, rule, options, messageVariables);\n            case 5:\n              errors = _context.sent;\n              if (!errors.length) {\n                _context.next = 9;\n                break;\n              }\n              reject([{\n                errors: errors,\n                rule: rule\n              }]);\n              return _context.abrupt(\"return\");\n            case 9:\n              i += 1;\n              _context.next = 1;\n              break;\n            case 12:\n              /* eslint-enable */\n\n              resolve([]);\n            case 13:\n            case \"end\":\n              return _context.stop();\n          }\n        }, _callee);\n      }));\n      return function (_x6, _x7) {\n        return _ref3.apply(this, arguments);\n      };\n    }());\n  } else {\n    // >>>>> Validate by parallel\n    var rulePromises = filledRules.map(function (rule) {\n      return validateRule(name, value, rule, options, messageVariables).then(function (errors) {\n        return {\n          errors: errors,\n          rule: rule\n        };\n      });\n    });\n    summaryPromise = (validateFirst ? finishOnFirstFailed(rulePromises) : finishOnAllFailed(rulePromises)).then(function (errors) {\n      // Always change to rejection for Field to catch\n      return Promise.reject(errors);\n    });\n  }\n\n  // Internal catch error to avoid console error log.\n  summaryPromise.catch(function (e) {\n    return e;\n  });\n  return summaryPromise;\n}\nfunction finishOnAllFailed(_x8) {\n  return _finishOnAllFailed.apply(this, arguments);\n}\nfunction _finishOnAllFailed() {\n  _finishOnAllFailed = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(rulePromises) {\n    return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n      while (1) switch (_context3.prev = _context3.next) {\n        case 0:\n          return _context3.abrupt(\"return\", Promise.all(rulePromises).then(function (errorsList) {\n            var _ref5;\n            var errors = (_ref5 = []).concat.apply(_ref5, _toConsumableArray(errorsList));\n            return errors;\n          }));\n        case 1:\n        case \"end\":\n          return _context3.stop();\n      }\n    }, _callee3);\n  }));\n  return _finishOnAllFailed.apply(this, arguments);\n}\nfunction finishOnFirstFailed(_x9) {\n  return _finishOnFirstFailed.apply(this, arguments);\n}\nfunction _finishOnFirstFailed() {\n  _finishOnFirstFailed = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(rulePromises) {\n    var count;\n    return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n      while (1) switch (_context4.prev = _context4.next) {\n        case 0:\n          count = 0;\n          return _context4.abrupt(\"return\", new Promise(function (resolve) {\n            rulePromises.forEach(function (promise) {\n              promise.then(function (ruleError) {\n                if (ruleError.errors.length) {\n                  resolve([ruleError]);\n                }\n                count += 1;\n                if (count === rulePromises.length) {\n                  resolve([]);\n                }\n              });\n            });\n          }));\n        case 2:\n        case \"end\":\n          return _context4.stop();\n      }\n    }, _callee4);\n  }));\n  return _finishOnFirstFailed.apply(this, arguments);\n}","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport getValue from \"rc-util/es/utils/get\";\nimport setValue from \"rc-util/es/utils/set\";\nimport { toArray } from \"./typeUtil\";\nexport { getValue, setValue };\n\n/**\n * Convert name to internal supported format.\n * This function should keep since we still thinking if need support like `a.b.c` format.\n * 'a' => ['a']\n * 123 => [123]\n * ['a', 123] => ['a', 123]\n */\nexport function getNamePath(path) {\n  return toArray(path);\n}\nexport function cloneByNamePathList(store, namePathList) {\n  var newStore = {};\n  namePathList.forEach(function (namePath) {\n    var value = getValue(store, namePath);\n    newStore = setValue(newStore, namePath, value);\n  });\n  return newStore;\n}\n\n/**\n * Check if `namePathList` includes `namePath`.\n * @param namePathList A list of `InternalNamePath[]`\n * @param namePath Compare `InternalNamePath`\n * @param partialMatch True will make `[a, b]` match `[a, b, c]`\n */\nexport function containsNamePath(namePathList, namePath) {\n  var partialMatch = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n  return namePathList && namePathList.some(function (path) {\n    return matchNamePath(namePath, path, partialMatch);\n  });\n}\n\n/**\n * Check if `namePath` is super set or equal of `subNamePath`.\n * @param namePath A list of `InternalNamePath[]`\n * @param subNamePath Compare `InternalNamePath`\n * @param partialMatch True will make `[a, b]` match `[a, b, c]`\n */\nexport function matchNamePath(namePath, subNamePath) {\n  var partialMatch = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n  if (!namePath || !subNamePath) {\n    return false;\n  }\n  if (!partialMatch && namePath.length !== subNamePath.length) {\n    return false;\n  }\n  return subNamePath.every(function (nameUnit, i) {\n    return namePath[i] === nameUnit;\n  });\n}\n\n// Like `shallowEqual`, but we not check the data which may cause re-render\n\nexport function isSimilar(source, target) {\n  if (source === target) {\n    return true;\n  }\n  if (!source && target || source && !target) {\n    return false;\n  }\n  if (!source || !target || _typeof(source) !== 'object' || _typeof(target) !== 'object') {\n    return false;\n  }\n  var sourceKeys = Object.keys(source);\n  var targetKeys = Object.keys(target);\n  var keys = new Set([].concat(sourceKeys, targetKeys));\n  return _toConsumableArray(keys).every(function (key) {\n    var sourceValue = source[key];\n    var targetValue = target[key];\n    if (typeof sourceValue === 'function' && typeof targetValue === 'function') {\n      return true;\n    }\n    return sourceValue === targetValue;\n  });\n}\nexport function defaultGetValueFromEvent(valuePropName) {\n  var event = arguments.length <= 1 ? undefined : arguments[1];\n  if (event && event.target && _typeof(event.target) === 'object' && valuePropName in event.target) {\n    return event.target[valuePropName];\n  }\n  return event;\n}\n\n/**\n * Moves an array item from one position in an array to another.\n *\n * Note: This is a pure function so a new array will be returned, instead\n * of altering the array argument.\n *\n * @param array         Array in which to move an item.         (required)\n * @param moveIndex     The index of the item to move.          (required)\n * @param toIndex       The index to move item at moveIndex to. (required)\n */\nexport function move(array, moveIndex, toIndex) {\n  var length = array.length;\n  if (moveIndex < 0 || moveIndex >= length || toIndex < 0 || toIndex >= length) {\n    return array;\n  }\n  var item = array[moveIndex];\n  var diff = moveIndex - toIndex;\n  if (diff > 0) {\n    // move left\n    return [].concat(_toConsumableArray(array.slice(0, toIndex)), [item], _toConsumableArray(array.slice(toIndex, moveIndex)), _toConsumableArray(array.slice(moveIndex + 1, length)));\n  }\n  if (diff < 0) {\n    // move right\n    return [].concat(_toConsumableArray(array.slice(0, moveIndex)), _toConsumableArray(array.slice(moveIndex + 1, toIndex + 1)), [item], _toConsumableArray(array.slice(toIndex + 1, length)));\n  }\n  return array;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _regeneratorRuntime from \"@babel/runtime/helpers/esm/regeneratorRuntime\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/esm/asyncToGenerator\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar _excluded = [\"name\"];\nimport toChildrenArray from \"rc-util/es/Children/toArray\";\nimport isEqual from \"rc-util/es/isEqual\";\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport FieldContext, { HOOK_MARK } from \"./FieldContext\";\nimport ListContext from \"./ListContext\";\nimport { toArray } from \"./utils/typeUtil\";\nimport { validateRules } from \"./utils/validateUtil\";\nimport { containsNamePath, defaultGetValueFromEvent, getNamePath, getValue } from \"./utils/valueUtil\";\nvar EMPTY_ERRORS = [];\nfunction requireUpdate(shouldUpdate, prev, next, prevValue, nextValue, info) {\n  if (typeof shouldUpdate === 'function') {\n    return shouldUpdate(prev, next, 'source' in info ? {\n      source: info.source\n    } : {});\n  }\n  return prevValue !== nextValue;\n}\n\n// eslint-disable-next-line @typescript-eslint/consistent-indexed-object-style\n// We use Class instead of Hooks here since it will cost much code by using Hooks.\nvar Field = /*#__PURE__*/function (_React$Component) {\n  _inherits(Field, _React$Component);\n  var _super = _createSuper(Field);\n  // ============================== Subscriptions ==============================\n  function Field(props) {\n    var _this;\n    _classCallCheck(this, Field);\n    _this = _super.call(this, props);\n\n    // Register on init\n    _defineProperty(_assertThisInitialized(_this), \"state\", {\n      resetCount: 0\n    });\n    _defineProperty(_assertThisInitialized(_this), \"cancelRegisterFunc\", null);\n    _defineProperty(_assertThisInitialized(_this), \"mounted\", false);\n    /**\n     * Follow state should not management in State since it will async update by React.\n     * This makes first render of form can not get correct state value.\n     */\n    _defineProperty(_assertThisInitialized(_this), \"touched\", false);\n    /**\n     * Mark when touched & validated. Currently only used for `dependencies`.\n     * Note that we do not think field with `initialValue` is dirty\n     * but this will be by `isFieldDirty` func.\n     */\n    _defineProperty(_assertThisInitialized(_this), \"dirty\", false);\n    _defineProperty(_assertThisInitialized(_this), \"validatePromise\", void 0);\n    _defineProperty(_assertThisInitialized(_this), \"prevValidating\", void 0);\n    _defineProperty(_assertThisInitialized(_this), \"errors\", EMPTY_ERRORS);\n    _defineProperty(_assertThisInitialized(_this), \"warnings\", EMPTY_ERRORS);\n    _defineProperty(_assertThisInitialized(_this), \"cancelRegister\", function () {\n      var _this$props = _this.props,\n        preserve = _this$props.preserve,\n        isListField = _this$props.isListField,\n        name = _this$props.name;\n      if (_this.cancelRegisterFunc) {\n        _this.cancelRegisterFunc(isListField, preserve, getNamePath(name));\n      }\n      _this.cancelRegisterFunc = null;\n    });\n    // ================================== Utils ==================================\n    _defineProperty(_assertThisInitialized(_this), \"getNamePath\", function () {\n      var _this$props2 = _this.props,\n        name = _this$props2.name,\n        fieldContext = _this$props2.fieldContext;\n      var _fieldContext$prefixN = fieldContext.prefixName,\n        prefixName = _fieldContext$prefixN === void 0 ? [] : _fieldContext$prefixN;\n      return name !== undefined ? [].concat(_toConsumableArray(prefixName), _toConsumableArray(name)) : [];\n    });\n    _defineProperty(_assertThisInitialized(_this), \"getRules\", function () {\n      var _this$props3 = _this.props,\n        _this$props3$rules = _this$props3.rules,\n        rules = _this$props3$rules === void 0 ? [] : _this$props3$rules,\n        fieldContext = _this$props3.fieldContext;\n      return rules.map(function (rule) {\n        if (typeof rule === 'function') {\n          return rule(fieldContext);\n        }\n        return rule;\n      });\n    });\n    _defineProperty(_assertThisInitialized(_this), \"refresh\", function () {\n      if (!_this.mounted) return;\n\n      /**\n       * Clean up current node.\n       */\n      _this.setState(function (_ref) {\n        var resetCount = _ref.resetCount;\n        return {\n          resetCount: resetCount + 1\n        };\n      });\n    });\n    // Event should only trigger when meta changed\n    _defineProperty(_assertThisInitialized(_this), \"metaCache\", null);\n    _defineProperty(_assertThisInitialized(_this), \"triggerMetaEvent\", function (destroy) {\n      var onMetaChange = _this.props.onMetaChange;\n      if (onMetaChange) {\n        var _meta = _objectSpread(_objectSpread({}, _this.getMeta()), {}, {\n          destroy: destroy\n        });\n        if (!isEqual(_this.metaCache, _meta)) {\n          onMetaChange(_meta);\n        }\n        _this.metaCache = _meta;\n      } else {\n        _this.metaCache = null;\n      }\n    });\n    // ========================= Field Entity Interfaces =========================\n    // Trigger by store update. Check if need update the component\n    _defineProperty(_assertThisInitialized(_this), \"onStoreChange\", function (prevStore, namePathList, info) {\n      var _this$props4 = _this.props,\n        shouldUpdate = _this$props4.shouldUpdate,\n        _this$props4$dependen = _this$props4.dependencies,\n        dependencies = _this$props4$dependen === void 0 ? [] : _this$props4$dependen,\n        onReset = _this$props4.onReset;\n      var store = info.store;\n      var namePath = _this.getNamePath();\n      var prevValue = _this.getValue(prevStore);\n      var curValue = _this.getValue(store);\n      var namePathMatch = namePathList && containsNamePath(namePathList, namePath);\n\n      // `setFieldsValue` is a quick access to update related status\n      if (info.type === 'valueUpdate' && info.source === 'external' && !isEqual(prevValue, curValue)) {\n        _this.touched = true;\n        _this.dirty = true;\n        _this.validatePromise = null;\n        _this.errors = EMPTY_ERRORS;\n        _this.warnings = EMPTY_ERRORS;\n        _this.triggerMetaEvent();\n      }\n      switch (info.type) {\n        case 'reset':\n          if (!namePathList || namePathMatch) {\n            // Clean up state\n            _this.touched = false;\n            _this.dirty = false;\n            _this.validatePromise = undefined;\n            _this.errors = EMPTY_ERRORS;\n            _this.warnings = EMPTY_ERRORS;\n            _this.triggerMetaEvent();\n            onReset === null || onReset === void 0 || onReset();\n            _this.refresh();\n            return;\n          }\n          break;\n\n        /**\n         * In case field with `preserve = false` nest deps like:\n         * - A = 1 => show B\n         * - B = 1 => show C\n         * - Reset A, need clean B, C\n         */\n        case 'remove':\n          {\n            if (shouldUpdate && requireUpdate(shouldUpdate, prevStore, store, prevValue, curValue, info)) {\n              _this.reRender();\n              return;\n            }\n            break;\n          }\n        case 'setField':\n          {\n            var data = info.data;\n            if (namePathMatch) {\n              if ('touched' in data) {\n                _this.touched = data.touched;\n              }\n              if ('validating' in data && !('originRCField' in data)) {\n                _this.validatePromise = data.validating ? Promise.resolve([]) : null;\n              }\n              if ('errors' in data) {\n                _this.errors = data.errors || EMPTY_ERRORS;\n              }\n              if ('warnings' in data) {\n                _this.warnings = data.warnings || EMPTY_ERRORS;\n              }\n              _this.dirty = true;\n              _this.triggerMetaEvent();\n              _this.reRender();\n              return;\n            } else if ('value' in data && containsNamePath(namePathList, namePath, true)) {\n              // Contains path with value should also check\n              _this.reRender();\n              return;\n            }\n\n            // Handle update by `setField` with `shouldUpdate`\n            if (shouldUpdate && !namePath.length && requireUpdate(shouldUpdate, prevStore, store, prevValue, curValue, info)) {\n              _this.reRender();\n              return;\n            }\n            break;\n          }\n        case 'dependenciesUpdate':\n          {\n            /**\n             * Trigger when marked `dependencies` updated. Related fields will all update\n             */\n            var dependencyList = dependencies.map(getNamePath);\n            // No need for `namePathMath` check and `shouldUpdate` check, since `valueUpdate` will be\n            // emitted earlier and they will work there\n            // If set it may cause unnecessary twice rerendering\n            if (dependencyList.some(function (dependency) {\n              return containsNamePath(info.relatedFields, dependency);\n            })) {\n              _this.reRender();\n              return;\n            }\n            break;\n          }\n        default:\n          // 1. If `namePath` exists in `namePathList`, means it's related value and should update\n          //      For example <List name=\"list\"><Field name={['list', 0]}></List>\n          //      If `namePathList` is [['list']] (List value update), Field should be updated\n          //      If `namePathList` is [['list', 0]] (Field value update), List shouldn't be updated\n          // 2.\n          //   2.1 If `dependencies` is set, `name` is not set and `shouldUpdate` is not set,\n          //       don't use `shouldUpdate`. `dependencies` is view as a shortcut if `shouldUpdate`\n          //       is not provided\n          //   2.2 If `shouldUpdate` provided, use customize logic to update the field\n          //       else to check if value changed\n          if (namePathMatch || (!dependencies.length || namePath.length || shouldUpdate) && requireUpdate(shouldUpdate, prevStore, store, prevValue, curValue, info)) {\n            _this.reRender();\n            return;\n          }\n          break;\n      }\n      if (shouldUpdate === true) {\n        _this.reRender();\n      }\n    });\n    _defineProperty(_assertThisInitialized(_this), \"validateRules\", function (options) {\n      // We should fixed namePath & value to avoid developer change then by form function\n      var namePath = _this.getNamePath();\n      var currentValue = _this.getValue();\n      var _ref2 = options || {},\n        triggerName = _ref2.triggerName,\n        _ref2$validateOnly = _ref2.validateOnly,\n        validateOnly = _ref2$validateOnly === void 0 ? false : _ref2$validateOnly;\n\n      // Force change to async to avoid rule OOD under renderProps field\n      var rootPromise = Promise.resolve().then( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n        var _this$props5, _this$props5$validate, validateFirst, messageVariables, validateDebounce, filteredRules, promise;\n        return _regeneratorRuntime().wrap(function _callee$(_context) {\n          while (1) switch (_context.prev = _context.next) {\n            case 0:\n              if (_this.mounted) {\n                _context.next = 2;\n                break;\n              }\n              return _context.abrupt(\"return\", []);\n            case 2:\n              _this$props5 = _this.props, _this$props5$validate = _this$props5.validateFirst, validateFirst = _this$props5$validate === void 0 ? false : _this$props5$validate, messageVariables = _this$props5.messageVariables, validateDebounce = _this$props5.validateDebounce; // Start validate\n              filteredRules = _this.getRules();\n              if (triggerName) {\n                filteredRules = filteredRules.filter(function (rule) {\n                  return rule;\n                }).filter(function (rule) {\n                  var validateTrigger = rule.validateTrigger;\n                  if (!validateTrigger) {\n                    return true;\n                  }\n                  var triggerList = toArray(validateTrigger);\n                  return triggerList.includes(triggerName);\n                });\n              }\n\n              // Wait for debounce. Skip if no `triggerName` since its from `validateFields / submit`\n              if (!(validateDebounce && triggerName)) {\n                _context.next = 10;\n                break;\n              }\n              _context.next = 8;\n              return new Promise(function (resolve) {\n                setTimeout(resolve, validateDebounce);\n              });\n            case 8:\n              if (!(_this.validatePromise !== rootPromise)) {\n                _context.next = 10;\n                break;\n              }\n              return _context.abrupt(\"return\", []);\n            case 10:\n              promise = validateRules(namePath, currentValue, filteredRules, options, validateFirst, messageVariables);\n              promise.catch(function (e) {\n                return e;\n              }).then(function () {\n                var ruleErrors = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : EMPTY_ERRORS;\n                if (_this.validatePromise === rootPromise) {\n                  var _ruleErrors$forEach;\n                  _this.validatePromise = null;\n\n                  // Get errors & warnings\n                  var nextErrors = [];\n                  var nextWarnings = [];\n                  (_ruleErrors$forEach = ruleErrors.forEach) === null || _ruleErrors$forEach === void 0 || _ruleErrors$forEach.call(ruleErrors, function (_ref4) {\n                    var warningOnly = _ref4.rule.warningOnly,\n                      _ref4$errors = _ref4.errors,\n                      errors = _ref4$errors === void 0 ? EMPTY_ERRORS : _ref4$errors;\n                    if (warningOnly) {\n                      nextWarnings.push.apply(nextWarnings, _toConsumableArray(errors));\n                    } else {\n                      nextErrors.push.apply(nextErrors, _toConsumableArray(errors));\n                    }\n                  });\n                  _this.errors = nextErrors;\n                  _this.warnings = nextWarnings;\n                  _this.triggerMetaEvent();\n                  _this.reRender();\n                }\n              });\n              return _context.abrupt(\"return\", promise);\n            case 13:\n            case \"end\":\n              return _context.stop();\n          }\n        }, _callee);\n      })));\n      if (validateOnly) {\n        return rootPromise;\n      }\n      _this.validatePromise = rootPromise;\n      _this.dirty = true;\n      _this.errors = EMPTY_ERRORS;\n      _this.warnings = EMPTY_ERRORS;\n      _this.triggerMetaEvent();\n\n      // Force trigger re-render since we need sync renderProps with new meta\n      _this.reRender();\n      return rootPromise;\n    });\n    _defineProperty(_assertThisInitialized(_this), \"isFieldValidating\", function () {\n      return !!_this.validatePromise;\n    });\n    _defineProperty(_assertThisInitialized(_this), \"isFieldTouched\", function () {\n      return _this.touched;\n    });\n    _defineProperty(_assertThisInitialized(_this), \"isFieldDirty\", function () {\n      // Touched or validate or has initialValue\n      if (_this.dirty || _this.props.initialValue !== undefined) {\n        return true;\n      }\n\n      // Form set initialValue\n      var fieldContext = _this.props.fieldContext;\n      var _fieldContext$getInte = fieldContext.getInternalHooks(HOOK_MARK),\n        getInitialValue = _fieldContext$getInte.getInitialValue;\n      if (getInitialValue(_this.getNamePath()) !== undefined) {\n        return true;\n      }\n      return false;\n    });\n    _defineProperty(_assertThisInitialized(_this), \"getErrors\", function () {\n      return _this.errors;\n    });\n    _defineProperty(_assertThisInitialized(_this), \"getWarnings\", function () {\n      return _this.warnings;\n    });\n    _defineProperty(_assertThisInitialized(_this), \"isListField\", function () {\n      return _this.props.isListField;\n    });\n    _defineProperty(_assertThisInitialized(_this), \"isList\", function () {\n      return _this.props.isList;\n    });\n    _defineProperty(_assertThisInitialized(_this), \"isPreserve\", function () {\n      return _this.props.preserve;\n    });\n    // ============================= Child Component =============================\n    _defineProperty(_assertThisInitialized(_this), \"getMeta\", function () {\n      // Make error & validating in cache to save perf\n      _this.prevValidating = _this.isFieldValidating();\n      var meta = {\n        touched: _this.isFieldTouched(),\n        validating: _this.prevValidating,\n        errors: _this.errors,\n        warnings: _this.warnings,\n        name: _this.getNamePath(),\n        validated: _this.validatePromise === null\n      };\n      return meta;\n    });\n    // Only return validate child node. If invalidate, will do nothing about field.\n    _defineProperty(_assertThisInitialized(_this), \"getOnlyChild\", function (children) {\n      // Support render props\n      if (typeof children === 'function') {\n        var _meta2 = _this.getMeta();\n        return _objectSpread(_objectSpread({}, _this.getOnlyChild(children(_this.getControlled(), _meta2, _this.props.fieldContext))), {}, {\n          isFunction: true\n        });\n      }\n\n      // Filed element only\n      var childList = toChildrenArray(children);\n      if (childList.length !== 1 || ! /*#__PURE__*/React.isValidElement(childList[0])) {\n        return {\n          child: childList,\n          isFunction: false\n        };\n      }\n      return {\n        child: childList[0],\n        isFunction: false\n      };\n    });\n    // ============================== Field Control ==============================\n    _defineProperty(_assertThisInitialized(_this), \"getValue\", function (store) {\n      var getFieldsValue = _this.props.fieldContext.getFieldsValue;\n      var namePath = _this.getNamePath();\n      return getValue(store || getFieldsValue(true), namePath);\n    });\n    _defineProperty(_assertThisInitialized(_this), \"getControlled\", function () {\n      var childProps = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n      var _this$props6 = _this.props,\n        name = _this$props6.name,\n        trigger = _this$props6.trigger,\n        validateTrigger = _this$props6.validateTrigger,\n        getValueFromEvent = _this$props6.getValueFromEvent,\n        normalize = _this$props6.normalize,\n        valuePropName = _this$props6.valuePropName,\n        getValueProps = _this$props6.getValueProps,\n        fieldContext = _this$props6.fieldContext;\n      var mergedValidateTrigger = validateTrigger !== undefined ? validateTrigger : fieldContext.validateTrigger;\n      var namePath = _this.getNamePath();\n      var getInternalHooks = fieldContext.getInternalHooks,\n        getFieldsValue = fieldContext.getFieldsValue;\n      var _getInternalHooks = getInternalHooks(HOOK_MARK),\n        dispatch = _getInternalHooks.dispatch;\n      var value = _this.getValue();\n      var mergedGetValueProps = getValueProps || function (val) {\n        return _defineProperty({}, valuePropName, val);\n      };\n      var originTriggerFunc = childProps[trigger];\n      var valueProps = name !== undefined ? mergedGetValueProps(value) : {};\n\n      // warning when prop value is function\n      if (process.env.NODE_ENV !== 'production' && valueProps) {\n        Object.keys(valueProps).forEach(function (key) {\n          warning(typeof valueProps[key] !== 'function', \"It's not recommended to generate dynamic function prop by `getValueProps`. Please pass it to child component directly (prop: \".concat(key, \")\"));\n        });\n      }\n      var control = _objectSpread(_objectSpread({}, childProps), valueProps);\n\n      // Add trigger\n      control[trigger] = function () {\n        // Mark as touched\n        _this.touched = true;\n        _this.dirty = true;\n        _this.triggerMetaEvent();\n        var newValue;\n        for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n          args[_key] = arguments[_key];\n        }\n        if (getValueFromEvent) {\n          newValue = getValueFromEvent.apply(void 0, args);\n        } else {\n          newValue = defaultGetValueFromEvent.apply(void 0, [valuePropName].concat(args));\n        }\n        if (normalize) {\n          newValue = normalize(newValue, value, getFieldsValue(true));\n        }\n        dispatch({\n          type: 'updateValue',\n          namePath: namePath,\n          value: newValue\n        });\n        if (originTriggerFunc) {\n          originTriggerFunc.apply(void 0, args);\n        }\n      };\n\n      // Add validateTrigger\n      var validateTriggerList = toArray(mergedValidateTrigger || []);\n      validateTriggerList.forEach(function (triggerName) {\n        // Wrap additional function of component, so that we can get latest value from store\n        var originTrigger = control[triggerName];\n        control[triggerName] = function () {\n          if (originTrigger) {\n            originTrigger.apply(void 0, arguments);\n          }\n\n          // Always use latest rules\n          var rules = _this.props.rules;\n          if (rules && rules.length) {\n            // We dispatch validate to root,\n            // since it will update related data with other field with same name\n            dispatch({\n              type: 'validateField',\n              namePath: namePath,\n              triggerName: triggerName\n            });\n          }\n        };\n      });\n      return control;\n    });\n    if (props.fieldContext) {\n      var getInternalHooks = props.fieldContext.getInternalHooks;\n      var _getInternalHooks2 = getInternalHooks(HOOK_MARK),\n        initEntityValue = _getInternalHooks2.initEntityValue;\n      initEntityValue(_assertThisInitialized(_this));\n    }\n    return _this;\n  }\n  _createClass(Field, [{\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      var _this$props7 = this.props,\n        shouldUpdate = _this$props7.shouldUpdate,\n        fieldContext = _this$props7.fieldContext;\n      this.mounted = true;\n\n      // Register on init\n      if (fieldContext) {\n        var getInternalHooks = fieldContext.getInternalHooks;\n        var _getInternalHooks3 = getInternalHooks(HOOK_MARK),\n          registerField = _getInternalHooks3.registerField;\n        this.cancelRegisterFunc = registerField(this);\n      }\n\n      // One more render for component in case fields not ready\n      if (shouldUpdate === true) {\n        this.reRender();\n      }\n    }\n  }, {\n    key: \"componentWillUnmount\",\n    value: function componentWillUnmount() {\n      this.cancelRegister();\n      this.triggerMetaEvent(true);\n      this.mounted = false;\n    }\n  }, {\n    key: \"reRender\",\n    value: function reRender() {\n      if (!this.mounted) return;\n      this.forceUpdate();\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var resetCount = this.state.resetCount;\n      var children = this.props.children;\n      var _this$getOnlyChild = this.getOnlyChild(children),\n        child = _this$getOnlyChild.child,\n        isFunction = _this$getOnlyChild.isFunction;\n\n      // Not need to `cloneElement` since user can handle this in render function self\n      var returnChildNode;\n      if (isFunction) {\n        returnChildNode = child;\n      } else if ( /*#__PURE__*/React.isValidElement(child)) {\n        returnChildNode = /*#__PURE__*/React.cloneElement(child, this.getControlled(child.props));\n      } else {\n        warning(!child, '`children` of Field is not validate ReactElement.');\n        returnChildNode = child;\n      }\n      return /*#__PURE__*/React.createElement(React.Fragment, {\n        key: resetCount\n      }, returnChildNode);\n    }\n  }]);\n  return Field;\n}(React.Component);\n_defineProperty(Field, \"contextType\", FieldContext);\n_defineProperty(Field, \"defaultProps\", {\n  trigger: 'onChange',\n  valuePropName: 'value'\n});\nfunction WrapperField(_ref6) {\n  var name = _ref6.name,\n    restProps = _objectWithoutProperties(_ref6, _excluded);\n  var fieldContext = React.useContext(FieldContext);\n  var listContext = React.useContext(ListContext);\n  var namePath = name !== undefined ? getNamePath(name) : undefined;\n  var key = 'keep';\n  if (!restProps.isListField) {\n    key = \"_\".concat((namePath || []).join('_'));\n  }\n\n  // Warning if it's a directly list field.\n  // We can still support multiple level field preserve.\n  if (process.env.NODE_ENV !== 'production' && restProps.preserve === false && restProps.isListField && namePath.length <= 1) {\n    warning(false, '`preserve` should not apply on Form.List fields.');\n  }\n  return /*#__PURE__*/React.createElement(Field, _extends({\n    key: key,\n    name: namePath,\n    isListField: !!listContext\n  }, restProps, {\n    fieldContext: fieldContext\n  }));\n}\nexport default WrapperField;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\nimport warning from \"rc-util/es/warning\";\nimport FieldContext from \"./FieldContext\";\nimport Field from \"./Field\";\nimport { move as _move, getNamePath } from \"./utils/valueUtil\";\nimport ListContext from \"./ListContext\";\nfunction List(_ref) {\n  var name = _ref.name,\n    initialValue = _ref.initialValue,\n    children = _ref.children,\n    rules = _ref.rules,\n    validateTrigger = _ref.validateTrigger,\n    isListField = _ref.isListField;\n  var context = React.useContext(FieldContext);\n  var wrapperListContext = React.useContext(ListContext);\n  var keyRef = React.useRef({\n    keys: [],\n    id: 0\n  });\n  var keyManager = keyRef.current;\n  var prefixName = React.useMemo(function () {\n    var parentPrefixName = getNamePath(context.prefixName) || [];\n    return [].concat(_toConsumableArray(parentPrefixName), _toConsumableArray(getNamePath(name)));\n  }, [context.prefixName, name]);\n  var fieldContext = React.useMemo(function () {\n    return _objectSpread(_objectSpread({}, context), {}, {\n      prefixName: prefixName\n    });\n  }, [context, prefixName]);\n\n  // List context\n  var listContext = React.useMemo(function () {\n    return {\n      getKey: function getKey(namePath) {\n        var len = prefixName.length;\n        var pathName = namePath[len];\n        return [keyManager.keys[pathName], namePath.slice(len + 1)];\n      }\n    };\n  }, [prefixName]);\n\n  // User should not pass `children` as other type.\n  if (typeof children !== 'function') {\n    warning(false, 'Form.List only accepts function as children.');\n    return null;\n  }\n  var shouldUpdate = function shouldUpdate(prevValue, nextValue, _ref2) {\n    var source = _ref2.source;\n    if (source === 'internal') {\n      return false;\n    }\n    return prevValue !== nextValue;\n  };\n  return /*#__PURE__*/React.createElement(ListContext.Provider, {\n    value: listContext\n  }, /*#__PURE__*/React.createElement(FieldContext.Provider, {\n    value: fieldContext\n  }, /*#__PURE__*/React.createElement(Field, {\n    name: [],\n    shouldUpdate: shouldUpdate,\n    rules: rules,\n    validateTrigger: validateTrigger,\n    initialValue: initialValue,\n    isList: true,\n    isListField: isListField !== null && isListField !== void 0 ? isListField : !!wrapperListContext\n  }, function (_ref3, meta) {\n    var _ref3$value = _ref3.value,\n      value = _ref3$value === void 0 ? [] : _ref3$value,\n      onChange = _ref3.onChange;\n    var getFieldValue = context.getFieldValue;\n    var getNewValue = function getNewValue() {\n      var values = getFieldValue(prefixName || []);\n      return values || [];\n    };\n    /**\n     * Always get latest value in case user update fields by `form` api.\n     */\n    var operations = {\n      add: function add(defaultValue, index) {\n        // Mapping keys\n        var newValue = getNewValue();\n        if (index >= 0 && index <= newValue.length) {\n          keyManager.keys = [].concat(_toConsumableArray(keyManager.keys.slice(0, index)), [keyManager.id], _toConsumableArray(keyManager.keys.slice(index)));\n          onChange([].concat(_toConsumableArray(newValue.slice(0, index)), [defaultValue], _toConsumableArray(newValue.slice(index))));\n        } else {\n          if (process.env.NODE_ENV !== 'production' && (index < 0 || index > newValue.length)) {\n            warning(false, 'The second parameter of the add function should be a valid positive number.');\n          }\n          keyManager.keys = [].concat(_toConsumableArray(keyManager.keys), [keyManager.id]);\n          onChange([].concat(_toConsumableArray(newValue), [defaultValue]));\n        }\n        keyManager.id += 1;\n      },\n      remove: function remove(index) {\n        var newValue = getNewValue();\n        var indexSet = new Set(Array.isArray(index) ? index : [index]);\n        if (indexSet.size <= 0) {\n          return;\n        }\n        keyManager.keys = keyManager.keys.filter(function (_, keysIndex) {\n          return !indexSet.has(keysIndex);\n        });\n\n        // Trigger store change\n        onChange(newValue.filter(function (_, valueIndex) {\n          return !indexSet.has(valueIndex);\n        }));\n      },\n      move: function move(from, to) {\n        if (from === to) {\n          return;\n        }\n        var newValue = getNewValue();\n\n        // Do not handle out of range\n        if (from < 0 || from >= newValue.length || to < 0 || to >= newValue.length) {\n          return;\n        }\n        keyManager.keys = _move(keyManager.keys, from, to);\n\n        // Trigger store change\n        onChange(_move(newValue, from, to));\n      }\n    };\n    var listValue = value || [];\n    if (!Array.isArray(listValue)) {\n      listValue = [];\n      if (process.env.NODE_ENV !== 'production') {\n        warning(false, \"Current value of '\".concat(prefixName.join(' > '), \"' is not an array type.\"));\n      }\n    }\n    return children(listValue.map(function (__, index) {\n      var key = keyManager.keys[index];\n      if (key === undefined) {\n        keyManager.keys[index] = keyManager.id;\n        key = keyManager.keys[index];\n        keyManager.id += 1;\n      }\n      return {\n        name: index,\n        key: key,\n        isListField: true\n      };\n    }), operations, meta);\n  })));\n}\nexport default List;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nvar SPLIT = '__@field_split__';\n\n/**\n * Convert name path into string to fast the fetch speed of Map.\n */\nfunction normalize(namePath) {\n  return namePath.map(function (cell) {\n    return \"\".concat(_typeof(cell), \":\").concat(cell);\n  })\n  // Magic split\n  .join(SPLIT);\n}\n\n/**\n * NameMap like a `Map` but accepts `string[]` as key.\n */\nvar NameMap = /*#__PURE__*/function () {\n  function NameMap() {\n    _classCallCheck(this, NameMap);\n    _defineProperty(this, \"kvs\", new Map());\n  }\n  _createClass(NameMap, [{\n    key: \"set\",\n    value: function set(key, value) {\n      this.kvs.set(normalize(key), value);\n    }\n  }, {\n    key: \"get\",\n    value: function get(key) {\n      return this.kvs.get(normalize(key));\n    }\n  }, {\n    key: \"update\",\n    value: function update(key, updater) {\n      var origin = this.get(key);\n      var next = updater(origin);\n      if (!next) {\n        this.delete(key);\n      } else {\n        this.set(key, next);\n      }\n    }\n  }, {\n    key: \"delete\",\n    value: function _delete(key) {\n      this.kvs.delete(normalize(key));\n    }\n\n    // Since we only use this in test, let simply realize this\n  }, {\n    key: \"map\",\n    value: function map(callback) {\n      return _toConsumableArray(this.kvs.entries()).map(function (_ref) {\n        var _ref2 = _slicedToArray(_ref, 2),\n          key = _ref2[0],\n          value = _ref2[1];\n        var cells = key.split(SPLIT);\n        return callback({\n          key: cells.map(function (cell) {\n            var _cell$match = cell.match(/^([^:]*):(.*)$/),\n              _cell$match2 = _slicedToArray(_cell$match, 3),\n              type = _cell$match2[1],\n              unit = _cell$match2[2];\n            return type === 'number' ? Number(unit) : unit;\n          }),\n          value: value\n        });\n      });\n    }\n  }, {\n    key: \"toJSON\",\n    value: function toJSON() {\n      var json = {};\n      this.map(function (_ref3) {\n        var key = _ref3.key,\n          value = _ref3.value;\n        json[key.join('.')] = value;\n        return null;\n      });\n      return json;\n    }\n  }]);\n  return NameMap;\n}();\nexport default NameMap;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar _excluded = [\"name\"];\nimport { merge } from \"rc-util/es/utils/set\";\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport { HOOK_MARK } from \"./FieldContext\";\nimport { allPromiseFinish } from \"./utils/asyncUtil\";\nimport { defaultValidateMessages } from \"./utils/messages\";\nimport NameMap from \"./utils/NameMap\";\nimport { cloneByNamePathList, containsNamePath, getNamePath, getValue, matchNamePath, setValue } from \"./utils/valueUtil\";\nexport var FormStore = /*#__PURE__*/_createClass(function FormStore(forceRootUpdate) {\n  var _this = this;\n  _classCallCheck(this, FormStore);\n  _defineProperty(this, \"formHooked\", false);\n  _defineProperty(this, \"forceRootUpdate\", void 0);\n  _defineProperty(this, \"subscribable\", true);\n  _defineProperty(this, \"store\", {});\n  _defineProperty(this, \"fieldEntities\", []);\n  _defineProperty(this, \"initialValues\", {});\n  _defineProperty(this, \"callbacks\", {});\n  _defineProperty(this, \"validateMessages\", null);\n  _defineProperty(this, \"preserve\", null);\n  _defineProperty(this, \"lastValidatePromise\", null);\n  _defineProperty(this, \"getForm\", function () {\n    return {\n      getFieldValue: _this.getFieldValue,\n      getFieldsValue: _this.getFieldsValue,\n      getFieldError: _this.getFieldError,\n      getFieldWarning: _this.getFieldWarning,\n      getFieldsError: _this.getFieldsError,\n      isFieldsTouched: _this.isFieldsTouched,\n      isFieldTouched: _this.isFieldTouched,\n      isFieldValidating: _this.isFieldValidating,\n      isFieldsValidating: _this.isFieldsValidating,\n      resetFields: _this.resetFields,\n      setFields: _this.setFields,\n      setFieldValue: _this.setFieldValue,\n      setFieldsValue: _this.setFieldsValue,\n      validateFields: _this.validateFields,\n      submit: _this.submit,\n      _init: true,\n      getInternalHooks: _this.getInternalHooks\n    };\n  });\n  // ======================== Internal Hooks ========================\n  _defineProperty(this, \"getInternalHooks\", function (key) {\n    if (key === HOOK_MARK) {\n      _this.formHooked = true;\n      return {\n        dispatch: _this.dispatch,\n        initEntityValue: _this.initEntityValue,\n        registerField: _this.registerField,\n        useSubscribe: _this.useSubscribe,\n        setInitialValues: _this.setInitialValues,\n        destroyForm: _this.destroyForm,\n        setCallbacks: _this.setCallbacks,\n        setValidateMessages: _this.setValidateMessages,\n        getFields: _this.getFields,\n        setPreserve: _this.setPreserve,\n        getInitialValue: _this.getInitialValue,\n        registerWatch: _this.registerWatch\n      };\n    }\n    warning(false, '`getInternalHooks` is internal usage. Should not call directly.');\n    return null;\n  });\n  _defineProperty(this, \"useSubscribe\", function (subscribable) {\n    _this.subscribable = subscribable;\n  });\n  /**\n   * Record prev Form unmount fieldEntities which config preserve false.\n   * This need to be refill with initialValues instead of store value.\n   */\n  _defineProperty(this, \"prevWithoutPreserves\", null);\n  /**\n   * First time `setInitialValues` should update store with initial value\n   */\n  _defineProperty(this, \"setInitialValues\", function (initialValues, init) {\n    _this.initialValues = initialValues || {};\n    if (init) {\n      var _this$prevWithoutPres;\n      var nextStore = merge(initialValues, _this.store);\n\n      // We will take consider prev form unmount fields.\n      // When the field is not `preserve`, we need fill this with initialValues instead of store.\n      // eslint-disable-next-line array-callback-return\n      (_this$prevWithoutPres = _this.prevWithoutPreserves) === null || _this$prevWithoutPres === void 0 || _this$prevWithoutPres.map(function (_ref) {\n        var namePath = _ref.key;\n        nextStore = setValue(nextStore, namePath, getValue(initialValues, namePath));\n      });\n      _this.prevWithoutPreserves = null;\n      _this.updateStore(nextStore);\n    }\n  });\n  _defineProperty(this, \"destroyForm\", function (clearOnDestroy) {\n    if (clearOnDestroy) {\n      // destroy form reset store\n      _this.updateStore({});\n    } else {\n      // Fill preserve fields\n      var prevWithoutPreserves = new NameMap();\n      _this.getFieldEntities(true).forEach(function (entity) {\n        if (!_this.isMergedPreserve(entity.isPreserve())) {\n          prevWithoutPreserves.set(entity.getNamePath(), true);\n        }\n      });\n      _this.prevWithoutPreserves = prevWithoutPreserves;\n    }\n  });\n  _defineProperty(this, \"getInitialValue\", function (namePath) {\n    var initValue = getValue(_this.initialValues, namePath);\n\n    // Not cloneDeep when without `namePath`\n    return namePath.length ? merge(initValue) : initValue;\n  });\n  _defineProperty(this, \"setCallbacks\", function (callbacks) {\n    _this.callbacks = callbacks;\n  });\n  _defineProperty(this, \"setValidateMessages\", function (validateMessages) {\n    _this.validateMessages = validateMessages;\n  });\n  _defineProperty(this, \"setPreserve\", function (preserve) {\n    _this.preserve = preserve;\n  });\n  // ============================= Watch ============================\n  _defineProperty(this, \"watchList\", []);\n  _defineProperty(this, \"registerWatch\", function (callback) {\n    _this.watchList.push(callback);\n    return function () {\n      _this.watchList = _this.watchList.filter(function (fn) {\n        return fn !== callback;\n      });\n    };\n  });\n  _defineProperty(this, \"notifyWatch\", function () {\n    var namePath = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n    // No need to cost perf when nothing need to watch\n    if (_this.watchList.length) {\n      var values = _this.getFieldsValue();\n      var allValues = _this.getFieldsValue(true);\n      _this.watchList.forEach(function (callback) {\n        callback(values, allValues, namePath);\n      });\n    }\n  });\n  // ========================== Dev Warning =========================\n  _defineProperty(this, \"timeoutId\", null);\n  _defineProperty(this, \"warningUnhooked\", function () {\n    if (process.env.NODE_ENV !== 'production' && !_this.timeoutId && typeof window !== 'undefined') {\n      _this.timeoutId = setTimeout(function () {\n        _this.timeoutId = null;\n        if (!_this.formHooked) {\n          warning(false, 'Instance created by `useForm` is not connected to any Form element. Forget to pass `form` prop?');\n        }\n      });\n    }\n  });\n  // ============================ Store =============================\n  _defineProperty(this, \"updateStore\", function (nextStore) {\n    _this.store = nextStore;\n  });\n  // ============================ Fields ============================\n  /**\n   * Get registered field entities.\n   * @param pure Only return field which has a `name`. Default: false\n   */\n  _defineProperty(this, \"getFieldEntities\", function () {\n    var pure = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n    if (!pure) {\n      return _this.fieldEntities;\n    }\n    return _this.fieldEntities.filter(function (field) {\n      return field.getNamePath().length;\n    });\n  });\n  _defineProperty(this, \"getFieldsMap\", function () {\n    var pure = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n    var cache = new NameMap();\n    _this.getFieldEntities(pure).forEach(function (field) {\n      var namePath = field.getNamePath();\n      cache.set(namePath, field);\n    });\n    return cache;\n  });\n  _defineProperty(this, \"getFieldEntitiesForNamePathList\", function (nameList) {\n    if (!nameList) {\n      return _this.getFieldEntities(true);\n    }\n    var cache = _this.getFieldsMap(true);\n    return nameList.map(function (name) {\n      var namePath = getNamePath(name);\n      return cache.get(namePath) || {\n        INVALIDATE_NAME_PATH: getNamePath(name)\n      };\n    });\n  });\n  _defineProperty(this, \"getFieldsValue\", function (nameList, filterFunc) {\n    _this.warningUnhooked();\n\n    // Fill args\n    var mergedNameList;\n    var mergedFilterFunc;\n    var mergedStrict;\n    if (nameList === true || Array.isArray(nameList)) {\n      mergedNameList = nameList;\n      mergedFilterFunc = filterFunc;\n    } else if (nameList && _typeof(nameList) === 'object') {\n      mergedStrict = nameList.strict;\n      mergedFilterFunc = nameList.filter;\n    }\n    if (mergedNameList === true && !mergedFilterFunc) {\n      return _this.store;\n    }\n    var fieldEntities = _this.getFieldEntitiesForNamePathList(Array.isArray(mergedNameList) ? mergedNameList : null);\n    var filteredNameList = [];\n    fieldEntities.forEach(function (entity) {\n      var _isListField, _ref3;\n      var namePath = 'INVALIDATE_NAME_PATH' in entity ? entity.INVALIDATE_NAME_PATH : entity.getNamePath();\n\n      // Ignore when it's a list item and not specific the namePath,\n      // since parent field is already take in count\n      if (mergedStrict) {\n        var _isList, _ref2;\n        if ((_isList = (_ref2 = entity).isList) !== null && _isList !== void 0 && _isList.call(_ref2)) {\n          return;\n        }\n      } else if (!mergedNameList && (_isListField = (_ref3 = entity).isListField) !== null && _isListField !== void 0 && _isListField.call(_ref3)) {\n        return;\n      }\n      if (!mergedFilterFunc) {\n        filteredNameList.push(namePath);\n      } else {\n        var meta = 'getMeta' in entity ? entity.getMeta() : null;\n        if (mergedFilterFunc(meta)) {\n          filteredNameList.push(namePath);\n        }\n      }\n    });\n    return cloneByNamePathList(_this.store, filteredNameList.map(getNamePath));\n  });\n  _defineProperty(this, \"getFieldValue\", function (name) {\n    _this.warningUnhooked();\n    var namePath = getNamePath(name);\n    return getValue(_this.store, namePath);\n  });\n  _defineProperty(this, \"getFieldsError\", function (nameList) {\n    _this.warningUnhooked();\n    var fieldEntities = _this.getFieldEntitiesForNamePathList(nameList);\n    return fieldEntities.map(function (entity, index) {\n      if (entity && !('INVALIDATE_NAME_PATH' in entity)) {\n        return {\n          name: entity.getNamePath(),\n          errors: entity.getErrors(),\n          warnings: entity.getWarnings()\n        };\n      }\n      return {\n        name: getNamePath(nameList[index]),\n        errors: [],\n        warnings: []\n      };\n    });\n  });\n  _defineProperty(this, \"getFieldError\", function (name) {\n    _this.warningUnhooked();\n    var namePath = getNamePath(name);\n    var fieldError = _this.getFieldsError([namePath])[0];\n    return fieldError.errors;\n  });\n  _defineProperty(this, \"getFieldWarning\", function (name) {\n    _this.warningUnhooked();\n    var namePath = getNamePath(name);\n    var fieldError = _this.getFieldsError([namePath])[0];\n    return fieldError.warnings;\n  });\n  _defineProperty(this, \"isFieldsTouched\", function () {\n    _this.warningUnhooked();\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n    var arg0 = args[0],\n      arg1 = args[1];\n    var namePathList;\n    var isAllFieldsTouched = false;\n    if (args.length === 0) {\n      namePathList = null;\n    } else if (args.length === 1) {\n      if (Array.isArray(arg0)) {\n        namePathList = arg0.map(getNamePath);\n        isAllFieldsTouched = false;\n      } else {\n        namePathList = null;\n        isAllFieldsTouched = arg0;\n      }\n    } else {\n      namePathList = arg0.map(getNamePath);\n      isAllFieldsTouched = arg1;\n    }\n    var fieldEntities = _this.getFieldEntities(true);\n    var isFieldTouched = function isFieldTouched(field) {\n      return field.isFieldTouched();\n    };\n\n    // ===== Will get fully compare when not config namePathList =====\n    if (!namePathList) {\n      return isAllFieldsTouched ? fieldEntities.every(function (entity) {\n        return isFieldTouched(entity) || entity.isList();\n      }) : fieldEntities.some(isFieldTouched);\n    }\n\n    // Generate a nest tree for validate\n    var map = new NameMap();\n    namePathList.forEach(function (shortNamePath) {\n      map.set(shortNamePath, []);\n    });\n    fieldEntities.forEach(function (field) {\n      var fieldNamePath = field.getNamePath();\n\n      // Find matched entity and put into list\n      namePathList.forEach(function (shortNamePath) {\n        if (shortNamePath.every(function (nameUnit, i) {\n          return fieldNamePath[i] === nameUnit;\n        })) {\n          map.update(shortNamePath, function (list) {\n            return [].concat(_toConsumableArray(list), [field]);\n          });\n        }\n      });\n    });\n\n    // Check if NameMap value is touched\n    var isNamePathListTouched = function isNamePathListTouched(entities) {\n      return entities.some(isFieldTouched);\n    };\n    var namePathListEntities = map.map(function (_ref4) {\n      var value = _ref4.value;\n      return value;\n    });\n    return isAllFieldsTouched ? namePathListEntities.every(isNamePathListTouched) : namePathListEntities.some(isNamePathListTouched);\n  });\n  _defineProperty(this, \"isFieldTouched\", function (name) {\n    _this.warningUnhooked();\n    return _this.isFieldsTouched([name]);\n  });\n  _defineProperty(this, \"isFieldsValidating\", function (nameList) {\n    _this.warningUnhooked();\n    var fieldEntities = _this.getFieldEntities();\n    if (!nameList) {\n      return fieldEntities.some(function (testField) {\n        return testField.isFieldValidating();\n      });\n    }\n    var namePathList = nameList.map(getNamePath);\n    return fieldEntities.some(function (testField) {\n      var fieldNamePath = testField.getNamePath();\n      return containsNamePath(namePathList, fieldNamePath) && testField.isFieldValidating();\n    });\n  });\n  _defineProperty(this, \"isFieldValidating\", function (name) {\n    _this.warningUnhooked();\n    return _this.isFieldsValidating([name]);\n  });\n  /**\n   * Reset Field with field `initialValue` prop.\n   * Can pass `entities` or `namePathList` or just nothing.\n   */\n  _defineProperty(this, \"resetWithFieldInitialValue\", function () {\n    var info = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n    // Create cache\n    var cache = new NameMap();\n    var fieldEntities = _this.getFieldEntities(true);\n    fieldEntities.forEach(function (field) {\n      var initialValue = field.props.initialValue;\n      var namePath = field.getNamePath();\n\n      // Record only if has `initialValue`\n      if (initialValue !== undefined) {\n        var records = cache.get(namePath) || new Set();\n        records.add({\n          entity: field,\n          value: initialValue\n        });\n        cache.set(namePath, records);\n      }\n    });\n\n    // Reset\n    var resetWithFields = function resetWithFields(entities) {\n      entities.forEach(function (field) {\n        var initialValue = field.props.initialValue;\n        if (initialValue !== undefined) {\n          var namePath = field.getNamePath();\n          var formInitialValue = _this.getInitialValue(namePath);\n          if (formInitialValue !== undefined) {\n            // Warning if conflict with form initialValues and do not modify value\n            warning(false, \"Form already set 'initialValues' with path '\".concat(namePath.join('.'), \"'. Field can not overwrite it.\"));\n          } else {\n            var records = cache.get(namePath);\n            if (records && records.size > 1) {\n              // Warning if multiple field set `initialValue`and do not modify value\n              warning(false, \"Multiple Field with path '\".concat(namePath.join('.'), \"' set 'initialValue'. Can not decide which one to pick.\"));\n            } else if (records) {\n              var originValue = _this.getFieldValue(namePath);\n              var isListField = field.isListField();\n\n              // Set `initialValue`\n              if (!isListField && (!info.skipExist || originValue === undefined)) {\n                _this.updateStore(setValue(_this.store, namePath, _toConsumableArray(records)[0].value));\n              }\n            }\n          }\n        }\n      });\n    };\n    var requiredFieldEntities;\n    if (info.entities) {\n      requiredFieldEntities = info.entities;\n    } else if (info.namePathList) {\n      requiredFieldEntities = [];\n      info.namePathList.forEach(function (namePath) {\n        var records = cache.get(namePath);\n        if (records) {\n          var _requiredFieldEntitie;\n          (_requiredFieldEntitie = requiredFieldEntities).push.apply(_requiredFieldEntitie, _toConsumableArray(_toConsumableArray(records).map(function (r) {\n            return r.entity;\n          })));\n        }\n      });\n    } else {\n      requiredFieldEntities = fieldEntities;\n    }\n    resetWithFields(requiredFieldEntities);\n  });\n  _defineProperty(this, \"resetFields\", function (nameList) {\n    _this.warningUnhooked();\n    var prevStore = _this.store;\n    if (!nameList) {\n      _this.updateStore(merge(_this.initialValues));\n      _this.resetWithFieldInitialValue();\n      _this.notifyObservers(prevStore, null, {\n        type: 'reset'\n      });\n      _this.notifyWatch();\n      return;\n    }\n\n    // Reset by `nameList`\n    var namePathList = nameList.map(getNamePath);\n    namePathList.forEach(function (namePath) {\n      var initialValue = _this.getInitialValue(namePath);\n      _this.updateStore(setValue(_this.store, namePath, initialValue));\n    });\n    _this.resetWithFieldInitialValue({\n      namePathList: namePathList\n    });\n    _this.notifyObservers(prevStore, namePathList, {\n      type: 'reset'\n    });\n    _this.notifyWatch(namePathList);\n  });\n  _defineProperty(this, \"setFields\", function (fields) {\n    _this.warningUnhooked();\n    var prevStore = _this.store;\n    var namePathList = [];\n    fields.forEach(function (fieldData) {\n      var name = fieldData.name,\n        data = _objectWithoutProperties(fieldData, _excluded);\n      var namePath = getNamePath(name);\n      namePathList.push(namePath);\n\n      // Value\n      if ('value' in data) {\n        _this.updateStore(setValue(_this.store, namePath, data.value));\n      }\n      _this.notifyObservers(prevStore, [namePath], {\n        type: 'setField',\n        data: fieldData\n      });\n    });\n    _this.notifyWatch(namePathList);\n  });\n  _defineProperty(this, \"getFields\", function () {\n    var entities = _this.getFieldEntities(true);\n    var fields = entities.map(function (field) {\n      var namePath = field.getNamePath();\n      var meta = field.getMeta();\n      var fieldData = _objectSpread(_objectSpread({}, meta), {}, {\n        name: namePath,\n        value: _this.getFieldValue(namePath)\n      });\n      Object.defineProperty(fieldData, 'originRCField', {\n        value: true\n      });\n      return fieldData;\n    });\n    return fields;\n  });\n  // =========================== Observer ===========================\n  /**\n   * This only trigger when a field is on constructor to avoid we get initialValue too late\n   */\n  _defineProperty(this, \"initEntityValue\", function (entity) {\n    var initialValue = entity.props.initialValue;\n    if (initialValue !== undefined) {\n      var namePath = entity.getNamePath();\n      var prevValue = getValue(_this.store, namePath);\n      if (prevValue === undefined) {\n        _this.updateStore(setValue(_this.store, namePath, initialValue));\n      }\n    }\n  });\n  _defineProperty(this, \"isMergedPreserve\", function (fieldPreserve) {\n    var mergedPreserve = fieldPreserve !== undefined ? fieldPreserve : _this.preserve;\n    return mergedPreserve !== null && mergedPreserve !== void 0 ? mergedPreserve : true;\n  });\n  _defineProperty(this, \"registerField\", function (entity) {\n    _this.fieldEntities.push(entity);\n    var namePath = entity.getNamePath();\n    _this.notifyWatch([namePath]);\n\n    // Set initial values\n    if (entity.props.initialValue !== undefined) {\n      var prevStore = _this.store;\n      _this.resetWithFieldInitialValue({\n        entities: [entity],\n        skipExist: true\n      });\n      _this.notifyObservers(prevStore, [entity.getNamePath()], {\n        type: 'valueUpdate',\n        source: 'internal'\n      });\n    }\n\n    // un-register field callback\n    return function (isListField, preserve) {\n      var subNamePath = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n      _this.fieldEntities = _this.fieldEntities.filter(function (item) {\n        return item !== entity;\n      });\n\n      // Clean up store value if not preserve\n      if (!_this.isMergedPreserve(preserve) && (!isListField || subNamePath.length > 1)) {\n        var defaultValue = isListField ? undefined : _this.getInitialValue(namePath);\n        if (namePath.length && _this.getFieldValue(namePath) !== defaultValue && _this.fieldEntities.every(function (field) {\n          return (\n            // Only reset when no namePath exist\n            !matchNamePath(field.getNamePath(), namePath)\n          );\n        })) {\n          var _prevStore = _this.store;\n          _this.updateStore(setValue(_prevStore, namePath, defaultValue, true));\n\n          // Notify that field is unmount\n          _this.notifyObservers(_prevStore, [namePath], {\n            type: 'remove'\n          });\n\n          // Dependencies update\n          _this.triggerDependenciesUpdate(_prevStore, namePath);\n        }\n      }\n      _this.notifyWatch([namePath]);\n    };\n  });\n  _defineProperty(this, \"dispatch\", function (action) {\n    switch (action.type) {\n      case 'updateValue':\n        {\n          var namePath = action.namePath,\n            value = action.value;\n          _this.updateValue(namePath, value);\n          break;\n        }\n      case 'validateField':\n        {\n          var _namePath = action.namePath,\n            triggerName = action.triggerName;\n          _this.validateFields([_namePath], {\n            triggerName: triggerName\n          });\n          break;\n        }\n      default:\n      // Currently we don't have other action. Do nothing.\n    }\n  });\n  _defineProperty(this, \"notifyObservers\", function (prevStore, namePathList, info) {\n    if (_this.subscribable) {\n      var mergedInfo = _objectSpread(_objectSpread({}, info), {}, {\n        store: _this.getFieldsValue(true)\n      });\n      _this.getFieldEntities().forEach(function (_ref5) {\n        var onStoreChange = _ref5.onStoreChange;\n        onStoreChange(prevStore, namePathList, mergedInfo);\n      });\n    } else {\n      _this.forceRootUpdate();\n    }\n  });\n  /**\n   * Notify dependencies children with parent update\n   * We need delay to trigger validate in case Field is under render props\n   */\n  _defineProperty(this, \"triggerDependenciesUpdate\", function (prevStore, namePath) {\n    var childrenFields = _this.getDependencyChildrenFields(namePath);\n    if (childrenFields.length) {\n      _this.validateFields(childrenFields);\n    }\n    _this.notifyObservers(prevStore, childrenFields, {\n      type: 'dependenciesUpdate',\n      relatedFields: [namePath].concat(_toConsumableArray(childrenFields))\n    });\n    return childrenFields;\n  });\n  _defineProperty(this, \"updateValue\", function (name, value) {\n    var namePath = getNamePath(name);\n    var prevStore = _this.store;\n    _this.updateStore(setValue(_this.store, namePath, value));\n    _this.notifyObservers(prevStore, [namePath], {\n      type: 'valueUpdate',\n      source: 'internal'\n    });\n    _this.notifyWatch([namePath]);\n\n    // Dependencies update\n    var childrenFields = _this.triggerDependenciesUpdate(prevStore, namePath);\n\n    // trigger callback function\n    var onValuesChange = _this.callbacks.onValuesChange;\n    if (onValuesChange) {\n      var changedValues = cloneByNamePathList(_this.store, [namePath]);\n      onValuesChange(changedValues, _this.getFieldsValue());\n    }\n    _this.triggerOnFieldsChange([namePath].concat(_toConsumableArray(childrenFields)));\n  });\n  // Let all child Field get update.\n  _defineProperty(this, \"setFieldsValue\", function (store) {\n    _this.warningUnhooked();\n    var prevStore = _this.store;\n    if (store) {\n      var nextStore = merge(_this.store, store);\n      _this.updateStore(nextStore);\n    }\n    _this.notifyObservers(prevStore, null, {\n      type: 'valueUpdate',\n      source: 'external'\n    });\n    _this.notifyWatch();\n  });\n  _defineProperty(this, \"setFieldValue\", function (name, value) {\n    _this.setFields([{\n      name: name,\n      value: value\n    }]);\n  });\n  _defineProperty(this, \"getDependencyChildrenFields\", function (rootNamePath) {\n    var children = new Set();\n    var childrenFields = [];\n    var dependencies2fields = new NameMap();\n\n    /**\n     * Generate maps\n     * Can use cache to save perf if user report performance issue with this\n     */\n    _this.getFieldEntities().forEach(function (field) {\n      var dependencies = field.props.dependencies;\n      (dependencies || []).forEach(function (dependency) {\n        var dependencyNamePath = getNamePath(dependency);\n        dependencies2fields.update(dependencyNamePath, function () {\n          var fields = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new Set();\n          fields.add(field);\n          return fields;\n        });\n      });\n    });\n    var fillChildren = function fillChildren(namePath) {\n      var fields = dependencies2fields.get(namePath) || new Set();\n      fields.forEach(function (field) {\n        if (!children.has(field)) {\n          children.add(field);\n          var fieldNamePath = field.getNamePath();\n          if (field.isFieldDirty() && fieldNamePath.length) {\n            childrenFields.push(fieldNamePath);\n            fillChildren(fieldNamePath);\n          }\n        }\n      });\n    };\n    fillChildren(rootNamePath);\n    return childrenFields;\n  });\n  _defineProperty(this, \"triggerOnFieldsChange\", function (namePathList, filedErrors) {\n    var onFieldsChange = _this.callbacks.onFieldsChange;\n    if (onFieldsChange) {\n      var fields = _this.getFields();\n\n      /**\n       * Fill errors since `fields` may be replaced by controlled fields\n       */\n      if (filedErrors) {\n        var cache = new NameMap();\n        filedErrors.forEach(function (_ref6) {\n          var name = _ref6.name,\n            errors = _ref6.errors;\n          cache.set(name, errors);\n        });\n        fields.forEach(function (field) {\n          // eslint-disable-next-line no-param-reassign\n          field.errors = cache.get(field.name) || field.errors;\n        });\n      }\n      var changedFields = fields.filter(function (_ref7) {\n        var fieldName = _ref7.name;\n        return containsNamePath(namePathList, fieldName);\n      });\n      if (changedFields.length) {\n        onFieldsChange(changedFields, fields);\n      }\n    }\n  });\n  // =========================== Validate ===========================\n  _defineProperty(this, \"validateFields\", function (arg1, arg2) {\n    _this.warningUnhooked();\n    var nameList;\n    var options;\n    if (Array.isArray(arg1) || typeof arg1 === 'string' || typeof arg2 === 'string') {\n      nameList = arg1;\n      options = arg2;\n    } else {\n      options = arg1;\n    }\n    var provideNameList = !!nameList;\n    var namePathList = provideNameList ? nameList.map(getNamePath) : [];\n\n    // Collect result in promise list\n    var promiseList = [];\n\n    // We temp save the path which need trigger for `onFieldsChange`\n    var TMP_SPLIT = String(Date.now());\n    var validateNamePathList = new Set();\n    var _ref8 = options || {},\n      recursive = _ref8.recursive,\n      dirty = _ref8.dirty;\n    _this.getFieldEntities(true).forEach(function (field) {\n      // Add field if not provide `nameList`\n      if (!provideNameList) {\n        namePathList.push(field.getNamePath());\n      }\n\n      // Skip if without rule\n      if (!field.props.rules || !field.props.rules.length) {\n        return;\n      }\n\n      // Skip if only validate dirty field\n      if (dirty && !field.isFieldDirty()) {\n        return;\n      }\n      var fieldNamePath = field.getNamePath();\n      validateNamePathList.add(fieldNamePath.join(TMP_SPLIT));\n\n      // Add field validate rule in to promise list\n      if (!provideNameList || containsNamePath(namePathList, fieldNamePath, recursive)) {\n        var promise = field.validateRules(_objectSpread({\n          validateMessages: _objectSpread(_objectSpread({}, defaultValidateMessages), _this.validateMessages)\n        }, options));\n\n        // Wrap promise with field\n        promiseList.push(promise.then(function () {\n          return {\n            name: fieldNamePath,\n            errors: [],\n            warnings: []\n          };\n        }).catch(function (ruleErrors) {\n          var _ruleErrors$forEach;\n          var mergedErrors = [];\n          var mergedWarnings = [];\n          (_ruleErrors$forEach = ruleErrors.forEach) === null || _ruleErrors$forEach === void 0 || _ruleErrors$forEach.call(ruleErrors, function (_ref9) {\n            var warningOnly = _ref9.rule.warningOnly,\n              errors = _ref9.errors;\n            if (warningOnly) {\n              mergedWarnings.push.apply(mergedWarnings, _toConsumableArray(errors));\n            } else {\n              mergedErrors.push.apply(mergedErrors, _toConsumableArray(errors));\n            }\n          });\n          if (mergedErrors.length) {\n            return Promise.reject({\n              name: fieldNamePath,\n              errors: mergedErrors,\n              warnings: mergedWarnings\n            });\n          }\n          return {\n            name: fieldNamePath,\n            errors: mergedErrors,\n            warnings: mergedWarnings\n          };\n        }));\n      }\n    });\n    var summaryPromise = allPromiseFinish(promiseList);\n    _this.lastValidatePromise = summaryPromise;\n\n    // Notify fields with rule that validate has finished and need update\n    summaryPromise.catch(function (results) {\n      return results;\n    }).then(function (results) {\n      var resultNamePathList = results.map(function (_ref10) {\n        var name = _ref10.name;\n        return name;\n      });\n      _this.notifyObservers(_this.store, resultNamePathList, {\n        type: 'validateFinish'\n      });\n      _this.triggerOnFieldsChange(resultNamePathList, results);\n    });\n    var returnPromise = summaryPromise.then(function () {\n      if (_this.lastValidatePromise === summaryPromise) {\n        return Promise.resolve(_this.getFieldsValue(namePathList));\n      }\n      return Promise.reject([]);\n    }).catch(function (results) {\n      var errorList = results.filter(function (result) {\n        return result && result.errors.length;\n      });\n      return Promise.reject({\n        values: _this.getFieldsValue(namePathList),\n        errorFields: errorList,\n        outOfDate: _this.lastValidatePromise !== summaryPromise\n      });\n    });\n\n    // Do not throw in console\n    returnPromise.catch(function (e) {\n      return e;\n    });\n\n    // `validating` changed. Trigger `onFieldsChange`\n    var triggerNamePathList = namePathList.filter(function (namePath) {\n      return validateNamePathList.has(namePath.join(TMP_SPLIT));\n    });\n    _this.triggerOnFieldsChange(triggerNamePathList);\n    return returnPromise;\n  });\n  // ============================ Submit ============================\n  _defineProperty(this, \"submit\", function () {\n    _this.warningUnhooked();\n    _this.validateFields().then(function (values) {\n      var onFinish = _this.callbacks.onFinish;\n      if (onFinish) {\n        try {\n          onFinish(values);\n        } catch (err) {\n          // Should print error if user `onFinish` callback failed\n          console.error(err);\n        }\n      }\n    }).catch(function (e) {\n      var onFinishFailed = _this.callbacks.onFinishFailed;\n      if (onFinishFailed) {\n        onFinishFailed(e);\n      }\n    });\n  });\n  this.forceRootUpdate = forceRootUpdate;\n});\nfunction useForm(form) {\n  var formRef = React.useRef();\n  var _React$useState = React.useState({}),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    forceUpdate = _React$useState2[1];\n  if (!formRef.current) {\n    if (form) {\n      formRef.current = form;\n    } else {\n      // Create a new FormStore if not provided\n      var forceReRender = function forceReRender() {\n        forceUpdate({});\n      };\n      var formStore = new FormStore(forceReRender);\n      formRef.current = formStore.getForm();\n    }\n  }\n  return [formRef.current];\n}\nexport default useForm;","export function allPromiseFinish(promiseList) {\n  var hasError = false;\n  var count = promiseList.length;\n  var results = [];\n  if (!promiseList.length) {\n    return Promise.resolve([]);\n  }\n  return new Promise(function (resolve, reject) {\n    promiseList.forEach(function (promise, index) {\n      promise.catch(function (e) {\n        hasError = true;\n        return e;\n      }).then(function (result) {\n        count -= 1;\n        results[index] = result;\n        if (count > 0) {\n          return;\n        }\n        if (hasError) {\n          reject(results);\n        }\n        resolve(results);\n      });\n    });\n  });\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nvar FormContext = /*#__PURE__*/React.createContext({\n  triggerFormChange: function triggerFormChange() {},\n  triggerFormFinish: function triggerFormFinish() {},\n  registerForm: function registerForm() {},\n  unregisterForm: function unregisterForm() {}\n});\nvar FormProvider = function FormProvider(_ref) {\n  var validateMessages = _ref.validateMessages,\n    onFormChange = _ref.onFormChange,\n    onFormFinish = _ref.onFormFinish,\n    children = _ref.children;\n  var formContext = React.useContext(FormContext);\n  var formsRef = React.useRef({});\n  return /*#__PURE__*/React.createElement(FormContext.Provider, {\n    value: _objectSpread(_objectSpread({}, formContext), {}, {\n      validateMessages: _objectSpread(_objectSpread({}, formContext.validateMessages), validateMessages),\n      // =========================================================\n      // =                  Global Form Control                  =\n      // =========================================================\n      triggerFormChange: function triggerFormChange(name, changedFields) {\n        if (onFormChange) {\n          onFormChange(name, {\n            changedFields: changedFields,\n            forms: formsRef.current\n          });\n        }\n        formContext.triggerFormChange(name, changedFields);\n      },\n      triggerFormFinish: function triggerFormFinish(name, values) {\n        if (onFormFinish) {\n          onFormFinish(name, {\n            values: values,\n            forms: formsRef.current\n          });\n        }\n        formContext.triggerFormFinish(name, values);\n      },\n      registerForm: function registerForm(name, form) {\n        if (name) {\n          formsRef.current = _objectSpread(_objectSpread({}, formsRef.current), {}, _defineProperty({}, name, form));\n        }\n        formContext.registerForm(name, form);\n      },\n      unregisterForm: function unregisterForm(name) {\n        var newForms = _objectSpread({}, formsRef.current);\n        delete newForms[name];\n        formsRef.current = newForms;\n        formContext.unregisterForm(name);\n      }\n    })\n  }, children);\n};\nexport { FormProvider };\nexport default FormContext;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"name\", \"initialValues\", \"fields\", \"form\", \"preserve\", \"children\", \"component\", \"validateMessages\", \"validateTrigger\", \"onValuesChange\", \"onFieldsChange\", \"onFinish\", \"onFinishFailed\", \"clearOnDestroy\"];\nimport * as React from 'react';\nimport useForm from \"./useForm\";\nimport FieldContext, { HOOK_MARK } from \"./FieldContext\";\nimport FormContext from \"./FormContext\";\nimport { isSimilar } from \"./utils/valueUtil\";\nimport ListContext from \"./ListContext\";\nvar Form = function Form(_ref, ref) {\n  var name = _ref.name,\n    initialValues = _ref.initialValues,\n    fields = _ref.fields,\n    form = _ref.form,\n    preserve = _ref.preserve,\n    children = _ref.children,\n    _ref$component = _ref.component,\n    Component = _ref$component === void 0 ? 'form' : _ref$component,\n    validateMessages = _ref.validateMessages,\n    _ref$validateTrigger = _ref.validateTrigger,\n    validateTrigger = _ref$validateTrigger === void 0 ? 'onChange' : _ref$validateTrigger,\n    onValuesChange = _ref.onValuesChange,\n    _onFieldsChange = _ref.onFieldsChange,\n    _onFinish = _ref.onFinish,\n    onFinishFailed = _ref.onFinishFailed,\n    clearOnDestroy = _ref.clearOnDestroy,\n    restProps = _objectWithoutProperties(_ref, _excluded);\n  var nativeElementRef = React.useRef(null);\n  var formContext = React.useContext(FormContext);\n\n  // We customize handle event since Context will makes all the consumer re-render:\n  // https://reactjs.org/docs/context.html#contextprovider\n  var _useForm = useForm(form),\n    _useForm2 = _slicedToArray(_useForm, 1),\n    formInstance = _useForm2[0];\n  var _getInternalHooks = formInstance.getInternalHooks(HOOK_MARK),\n    useSubscribe = _getInternalHooks.useSubscribe,\n    setInitialValues = _getInternalHooks.setInitialValues,\n    setCallbacks = _getInternalHooks.setCallbacks,\n    setValidateMessages = _getInternalHooks.setValidateMessages,\n    setPreserve = _getInternalHooks.setPreserve,\n    destroyForm = _getInternalHooks.destroyForm;\n\n  // Pass ref with form instance\n  React.useImperativeHandle(ref, function () {\n    return _objectSpread(_objectSpread({}, formInstance), {}, {\n      nativeElement: nativeElementRef.current\n    });\n  });\n\n  // Register form into Context\n  React.useEffect(function () {\n    formContext.registerForm(name, formInstance);\n    return function () {\n      formContext.unregisterForm(name);\n    };\n  }, [formContext, formInstance, name]);\n\n  // Pass props to store\n  setValidateMessages(_objectSpread(_objectSpread({}, formContext.validateMessages), validateMessages));\n  setCallbacks({\n    onValuesChange: onValuesChange,\n    onFieldsChange: function onFieldsChange(changedFields) {\n      formContext.triggerFormChange(name, changedFields);\n      if (_onFieldsChange) {\n        for (var _len = arguments.length, rest = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n          rest[_key - 1] = arguments[_key];\n        }\n        _onFieldsChange.apply(void 0, [changedFields].concat(rest));\n      }\n    },\n    onFinish: function onFinish(values) {\n      formContext.triggerFormFinish(name, values);\n      if (_onFinish) {\n        _onFinish(values);\n      }\n    },\n    onFinishFailed: onFinishFailed\n  });\n  setPreserve(preserve);\n\n  // Set initial value, init store value when first mount\n  var mountRef = React.useRef(null);\n  setInitialValues(initialValues, !mountRef.current);\n  if (!mountRef.current) {\n    mountRef.current = true;\n  }\n  React.useEffect(function () {\n    return function () {\n      return destroyForm(clearOnDestroy);\n    };\n  },\n  // eslint-disable-next-line react-hooks/exhaustive-deps\n  []);\n\n  // Prepare children by `children` type\n  var childrenNode;\n  var childrenRenderProps = typeof children === 'function';\n  if (childrenRenderProps) {\n    var _values = formInstance.getFieldsValue(true);\n    childrenNode = children(_values, formInstance);\n  } else {\n    childrenNode = children;\n  }\n\n  // Not use subscribe when using render props\n  useSubscribe(!childrenRenderProps);\n\n  // Listen if fields provided. We use ref to save prev data here to avoid additional render\n  var prevFieldsRef = React.useRef();\n  React.useEffect(function () {\n    if (!isSimilar(prevFieldsRef.current || [], fields || [])) {\n      formInstance.setFields(fields || []);\n    }\n    prevFieldsRef.current = fields;\n  }, [fields, formInstance]);\n  var formContextValue = React.useMemo(function () {\n    return _objectSpread(_objectSpread({}, formInstance), {}, {\n      validateTrigger: validateTrigger\n    });\n  }, [formInstance, validateTrigger]);\n  var wrapperNode = /*#__PURE__*/React.createElement(ListContext.Provider, {\n    value: null\n  }, /*#__PURE__*/React.createElement(FieldContext.Provider, {\n    value: formContextValue\n  }, childrenNode));\n  if (Component === false) {\n    return wrapperNode;\n  }\n  return /*#__PURE__*/React.createElement(Component, _extends({}, restProps, {\n    ref: nativeElementRef,\n    onSubmit: function onSubmit(event) {\n      event.preventDefault();\n      event.stopPropagation();\n      formInstance.submit();\n    },\n    onReset: function onReset(event) {\n      var _restProps$onReset;\n      event.preventDefault();\n      formInstance.resetFields();\n      (_restProps$onReset = restProps.onReset) === null || _restProps$onReset === void 0 || _restProps$onReset.call(restProps, event);\n    }\n  }), wrapperNode);\n};\nexport default Form;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport warning from \"rc-util/es/warning\";\nimport { useContext, useEffect, useMemo, useRef, useState } from 'react';\nimport FieldContext, { HOOK_MARK } from \"./FieldContext\";\nimport { isFormInstance } from \"./utils/typeUtil\";\nimport { getNamePath, getValue } from \"./utils/valueUtil\";\nexport function stringify(value) {\n  try {\n    return JSON.stringify(value);\n  } catch (err) {\n    return Math.random();\n  }\n}\nvar useWatchWarning = process.env.NODE_ENV !== 'production' ? function (namePath) {\n  var fullyStr = namePath.join('__RC_FIELD_FORM_SPLIT__');\n  var nameStrRef = useRef(fullyStr);\n  warning(nameStrRef.current === fullyStr, '`useWatch` is not support dynamic `namePath`. Please provide static instead.');\n} : function () {};\n\n// ------- selector type -------\n\n// ------- selector type end -------\n\nfunction useWatch() {\n  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n    args[_key] = arguments[_key];\n  }\n  var dependencies = args[0],\n    _args$ = args[1],\n    _form = _args$ === void 0 ? {} : _args$;\n  var options = isFormInstance(_form) ? {\n    form: _form\n  } : _form;\n  var form = options.form;\n  var _useState = useState(),\n    _useState2 = _slicedToArray(_useState, 2),\n    value = _useState2[0],\n    setValue = _useState2[1];\n  var valueStr = useMemo(function () {\n    return stringify(value);\n  }, [value]);\n  var valueStrRef = useRef(valueStr);\n  valueStrRef.current = valueStr;\n  var fieldContext = useContext(FieldContext);\n  var formInstance = form || fieldContext;\n  var isValidForm = formInstance && formInstance._init;\n\n  // Warning if not exist form instance\n  if (process.env.NODE_ENV !== 'production') {\n    warning(args.length === 2 ? form ? isValidForm : true : isValidForm, 'useWatch requires a form instance since it can not auto detect from context.');\n  }\n  var namePath = getNamePath(dependencies);\n  var namePathRef = useRef(namePath);\n  namePathRef.current = namePath;\n  useWatchWarning(namePath);\n  useEffect(function () {\n    // Skip if not exist form instance\n    if (!isValidForm) {\n      return;\n    }\n    var getFieldsValue = formInstance.getFieldsValue,\n      getInternalHooks = formInstance.getInternalHooks;\n    var _getInternalHooks = getInternalHooks(HOOK_MARK),\n      registerWatch = _getInternalHooks.registerWatch;\n    var getWatchValue = function getWatchValue(values, allValues) {\n      var watchValue = options.preserve ? allValues : values;\n      return typeof dependencies === 'function' ? dependencies(watchValue) : getValue(watchValue, namePathRef.current);\n    };\n    var cancelRegister = registerWatch(function (values, allValues) {\n      var newValue = getWatchValue(values, allValues);\n      var nextValueStr = stringify(newValue);\n\n      // Compare stringify in case it's nest object\n      if (valueStrRef.current !== nextValueStr) {\n        valueStrRef.current = nextValueStr;\n        setValue(newValue);\n      }\n    });\n\n    // TODO: We can improve this perf in future\n    var initialValue = getWatchValue(getFieldsValue(), getFieldsValue(true));\n\n    // React 18 has the bug that will queue update twice even the value is not changed\n    // ref: https://github.com/facebook/react/issues/27213\n    if (value !== initialValue) {\n      setValue(initialValue);\n    }\n    return cancelRegister;\n  },\n  // We do not need re-register since namePath content is the same\n  // eslint-disable-next-line react-hooks/exhaustive-deps\n  [isValidForm]);\n  return value;\n}\nexport default useWatch;","import * as React from 'react';\nimport Field from \"./Field\";\nimport List from \"./List\";\nimport useForm from \"./useForm\";\nimport FieldForm from \"./Form\";\nimport { FormProvider } from \"./FormContext\";\nimport FieldContext from \"./FieldContext\";\nimport ListContext from \"./ListContext\";\nimport useWatch from \"./useWatch\";\nvar InternalForm = /*#__PURE__*/React.forwardRef(FieldForm);\nvar RefForm = InternalForm;\nRefForm.FormProvider = FormProvider;\nRefForm.Field = Field;\nRefForm.List = List;\nRefForm.useForm = useForm;\nRefForm.useWatch = useWatch;\nexport { Field, List, useForm, FormProvider, FieldContext, ListContext, useWatch };\nexport default RefForm;","\"use client\";\n\nimport * as React from 'react';\nimport { createContext, useContext, useMemo } from 'react';\nimport { FormProvider as RcFormProvider } from 'rc-field-form';\nimport omit from \"rc-util/es/omit\";\nexport const FormContext = /*#__PURE__*/React.createContext({\n  labelAlign: 'right',\n  vertical: false,\n  itemRef: () => {}\n});\nexport const NoStyleItemContext = /*#__PURE__*/React.createContext(null);\nexport const FormProvider = props => {\n  const providerProps = omit(props, ['prefixCls']);\n  return /*#__PURE__*/React.createElement(RcFormProvider, Object.assign({}, providerProps));\n};\nexport const FormItemPrefixContext = /*#__PURE__*/React.createContext({\n  prefixCls: ''\n});\nexport const FormItemInputContext = /*#__PURE__*/React.createContext({});\nif (process.env.NODE_ENV !== 'production') {\n  FormItemInputContext.displayName = 'FormItemInputContext';\n}\nexport const NoFormStyle = _ref => {\n  let {\n    children,\n    status,\n    override\n  } = _ref;\n  const formItemInputContext = useContext(FormItemInputContext);\n  const newFormItemInputContext = useMemo(() => {\n    const newContext = Object.assign({}, formItemInputContext);\n    if (override) {\n      delete newContext.isFormItemInput;\n    }\n    if (status) {\n      delete newContext.status;\n      delete newContext.hasFeedback;\n      delete newContext.feedbackIcon;\n    }\n    return newContext;\n  }, [status, override, formItemInputContext]);\n  return /*#__PURE__*/React.createElement(FormItemInputContext.Provider, {\n    value: newFormItemInputContext\n  }, children);\n};\nexport const VariantContext = /*#__PURE__*/createContext(undefined);","\"use client\";\n\nimport React from 'react';\nimport { NoFormStyle } from '../form/context';\nimport { NoCompactStyle } from '../space/Compact';\nconst ContextIsolator = props => {\n  const {\n    space,\n    form,\n    children\n  } = props;\n  if (children === undefined || children === null) {\n    return null;\n  }\n  let result = children;\n  if (form) {\n    result = /*#__PURE__*/React.createElement(NoFormStyle, {\n      override: true,\n      status: true\n    }, result);\n  }\n  if (space) {\n    result = /*#__PURE__*/React.createElement(NoCompactStyle, null, result);\n  }\n  return result;\n};\nexport default ContextIsolator;","\"use client\";\n\nimport React from 'react';\nimport CloseOutlined from \"@ant-design/icons/es/icons/CloseOutlined\";\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nexport function pickClosable(context) {\n  if (!context) {\n    return undefined;\n  }\n  return {\n    closable: context.closable,\n    closeIcon: context.closeIcon\n  };\n}\n/** Convert `closable` and `closeIcon` to config object */\nfunction useClosableConfig(closableCollection) {\n  const {\n    closable,\n    closeIcon\n  } = closableCollection || {};\n  return React.useMemo(() => {\n    if (\n    // If `closable`, whatever rest be should be true\n    !closable && (closable === false || closeIcon === false || closeIcon === null)) {\n      return false;\n    }\n    if (closable === undefined && closeIcon === undefined) {\n      return null;\n    }\n    let closableConfig = {\n      closeIcon: typeof closeIcon !== 'boolean' && closeIcon !== null ? closeIcon : undefined\n    };\n    if (closable && typeof closable === 'object') {\n      closableConfig = Object.assign(Object.assign({}, closableConfig), closable);\n    }\n    return closableConfig;\n  }, [closable, closeIcon]);\n}\n/**\n * Assign object without `undefined` field. Will skip if is `false`.\n * This helps to handle both closableConfig or false\n */\nfunction assignWithoutUndefined() {\n  const target = {};\n  for (var _len = arguments.length, objList = new Array(_len), _key = 0; _key < _len; _key++) {\n    objList[_key] = arguments[_key];\n  }\n  objList.forEach(obj => {\n    if (obj) {\n      Object.keys(obj).forEach(key => {\n        if (obj[key] !== undefined) {\n          target[key] = obj[key];\n        }\n      });\n    }\n  });\n  return target;\n}\n/** Use same object to support `useMemo` optimization */\nconst EmptyFallbackCloseCollection = {};\nexport default function useClosable(propCloseCollection, contextCloseCollection) {\n  let fallbackCloseCollection = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : EmptyFallbackCloseCollection;\n  // Align the `props`, `context` `fallback` to config object first\n  const propCloseConfig = useClosableConfig(propCloseCollection);\n  const contextCloseConfig = useClosableConfig(contextCloseCollection);\n  const closeBtnIsDisabled = typeof propCloseConfig !== 'boolean' ? !!(propCloseConfig === null || propCloseConfig === void 0 ? void 0 : propCloseConfig.disabled) : false;\n  const mergedFallbackCloseCollection = React.useMemo(() => Object.assign({\n    closeIcon: /*#__PURE__*/React.createElement(CloseOutlined, null)\n  }, fallbackCloseCollection), [fallbackCloseCollection]);\n  // Use fallback logic to fill the config\n  const mergedClosableConfig = React.useMemo(() => {\n    // ================ Props First ================\n    // Skip if prop is disabled\n    if (propCloseConfig === false) {\n      return false;\n    }\n    if (propCloseConfig) {\n      return assignWithoutUndefined(mergedFallbackCloseCollection, contextCloseConfig, propCloseConfig);\n    }\n    // =============== Context Second ==============\n    // Skip if context is disabled\n    if (contextCloseConfig === false) {\n      return false;\n    }\n    if (contextCloseConfig) {\n      return assignWithoutUndefined(mergedFallbackCloseCollection, contextCloseConfig);\n    }\n    // ============= Fallback Default ==============\n    return !mergedFallbackCloseCollection.closable ? false : mergedFallbackCloseCollection;\n  }, [propCloseConfig, contextCloseConfig, mergedFallbackCloseCollection]);\n  // Calculate the final closeIcon\n  return React.useMemo(() => {\n    if (mergedClosableConfig === false) {\n      return [false, null, closeBtnIsDisabled];\n    }\n    const {\n      closeIconRender\n    } = mergedFallbackCloseCollection;\n    const {\n      closeIcon\n    } = mergedClosableConfig;\n    let mergedCloseIcon = closeIcon;\n    if (mergedCloseIcon !== null && mergedCloseIcon !== undefined) {\n      // Wrap the closeIcon if needed\n      if (closeIconRender) {\n        mergedCloseIcon = closeIconRender(closeIcon);\n      }\n      // Wrap the closeIcon with aria props\n      const ariaProps = pickAttrs(mergedClosableConfig, true);\n      if (Object.keys(ariaProps).length) {\n        mergedCloseIcon = /*#__PURE__*/React.isValidElement(mergedCloseIcon) ? (/*#__PURE__*/React.cloneElement(mergedCloseIcon, ariaProps)) : (/*#__PURE__*/React.createElement(\"span\", Object.assign({}, ariaProps), mergedCloseIcon));\n      }\n    }\n    return [true, mergedCloseIcon, closeBtnIsDisabled];\n  }, [mergedClosableConfig, mergedFallbackCloseCollection]);\n}","import canUseDom from \"./canUseDom\";\nvar isStyleNameSupport = function isStyleNameSupport(styleName) {\n  if (canUseDom() && window.document.documentElement) {\n    var styleNameList = Array.isArray(styleName) ? styleName : [styleName];\n    var documentElement = window.document.documentElement;\n    return styleNameList.some(function (name) {\n      return name in documentElement.style;\n    });\n  }\n  return false;\n};\nvar isStyleValueSupport = function isStyleValueSupport(styleName, value) {\n  if (!isStyleNameSupport(styleName)) {\n    return false;\n  }\n  var ele = document.createElement('div');\n  var origin = ele.style[styleName];\n  ele.style[styleName] = value;\n  return ele.style[styleName] !== origin;\n};\nexport function isStyleSupport(styleName, styleValue) {\n  if (!Array.isArray(styleName) && styleValue !== undefined) {\n    return isStyleValueSupport(styleName, styleValue);\n  }\n  return isStyleNameSupport(styleName);\n}","import canUseDom from \"rc-util/es/Dom/canUseDom\";\nimport { isStyleSupport } from \"rc-util/es/Dom/styleChecker\";\nexport const canUseDocElement = () => canUseDom() && window.document.documentElement;\nexport { isStyleSupport };","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nconst Element = props => {\n  const {\n    prefixCls,\n    className,\n    style,\n    size,\n    shape\n  } = props;\n  const sizeCls = classNames({\n    [`${prefixCls}-lg`]: size === 'large',\n    [`${prefixCls}-sm`]: size === 'small'\n  });\n  const shapeCls = classNames({\n    [`${prefixCls}-circle`]: shape === 'circle',\n    [`${prefixCls}-square`]: shape === 'square',\n    [`${prefixCls}-round`]: shape === 'round'\n  });\n  const sizeStyle = React.useMemo(() => typeof size === 'number' ? {\n    width: size,\n    height: size,\n    lineHeight: `${size}px`\n  } : {}, [size]);\n  return /*#__PURE__*/React.createElement(\"span\", {\n    className: classNames(prefixCls, sizeCls, shapeCls, className),\n    style: Object.assign(Object.assign({}, sizeStyle), style)\n  });\n};\nexport default Element;","import { Keyframes, unit } from '@ant-design/cssinjs';\nimport { genStyleHooks, mergeToken } from '../../theme/internal';\nconst skeletonClsLoading = new Keyframes(`ant-skeleton-loading`, {\n  '0%': {\n    backgroundPosition: '100% 50%'\n  },\n  '100%': {\n    backgroundPosition: '0 50%'\n  }\n});\nconst genSkeletonElementCommonSize = size => ({\n  height: size,\n  lineHeight: unit(size)\n});\nconst genSkeletonElementAvatarSize = size => Object.assign({\n  width: size\n}, genSkeletonElementCommonSize(size));\nconst genSkeletonColor = token => ({\n  background: token.skeletonLoadingBackground,\n  backgroundSize: '400% 100%',\n  animationName: skeletonClsLoading,\n  animationDuration: token.skeletonLoadingMotionDuration,\n  animationTimingFunction: 'ease',\n  animationIterationCount: 'infinite'\n});\nconst genSkeletonElementInputSize = (size, calc) => Object.assign({\n  width: calc(size).mul(5).equal(),\n  minWidth: calc(size).mul(5).equal()\n}, genSkeletonElementCommonSize(size));\nconst genSkeletonElementAvatar = token => {\n  const {\n    skeletonAvatarCls,\n    gradientFromColor,\n    controlHeight,\n    controlHeightLG,\n    controlHeightSM\n  } = token;\n  return {\n    [skeletonAvatarCls]: Object.assign({\n      display: 'inline-block',\n      verticalAlign: 'top',\n      background: gradientFromColor\n    }, genSkeletonElementAvatarSize(controlHeight)),\n    [`${skeletonAvatarCls}${skeletonAvatarCls}-circle`]: {\n      borderRadius: '50%'\n    },\n    [`${skeletonAvatarCls}${skeletonAvatarCls}-lg`]: Object.assign({}, genSkeletonElementAvatarSize(controlHeightLG)),\n    [`${skeletonAvatarCls}${skeletonAvatarCls}-sm`]: Object.assign({}, genSkeletonElementAvatarSize(controlHeightSM))\n  };\n};\nconst genSkeletonElementInput = token => {\n  const {\n    controlHeight,\n    borderRadiusSM,\n    skeletonInputCls,\n    controlHeightLG,\n    controlHeightSM,\n    gradientFromColor,\n    calc\n  } = token;\n  return {\n    [skeletonInputCls]: Object.assign({\n      display: 'inline-block',\n      verticalAlign: 'top',\n      background: gradientFromColor,\n      borderRadius: borderRadiusSM\n    }, genSkeletonElementInputSize(controlHeight, calc)),\n    [`${skeletonInputCls}-lg`]: Object.assign({}, genSkeletonElementInputSize(controlHeightLG, calc)),\n    [`${skeletonInputCls}-sm`]: Object.assign({}, genSkeletonElementInputSize(controlHeightSM, calc))\n  };\n};\nconst genSkeletonElementImageSize = size => Object.assign({\n  width: size\n}, genSkeletonElementCommonSize(size));\nconst genSkeletonElementImage = token => {\n  const {\n    skeletonImageCls,\n    imageSizeBase,\n    gradientFromColor,\n    borderRadiusSM,\n    calc\n  } = token;\n  return {\n    [skeletonImageCls]: Object.assign(Object.assign({\n      display: 'inline-flex',\n      alignItems: 'center',\n      justifyContent: 'center',\n      verticalAlign: 'middle',\n      background: gradientFromColor,\n      borderRadius: borderRadiusSM\n    }, genSkeletonElementImageSize(calc(imageSizeBase).mul(2).equal())), {\n      [`${skeletonImageCls}-path`]: {\n        fill: '#bfbfbf'\n      },\n      [`${skeletonImageCls}-svg`]: Object.assign(Object.assign({}, genSkeletonElementImageSize(imageSizeBase)), {\n        maxWidth: calc(imageSizeBase).mul(4).equal(),\n        maxHeight: calc(imageSizeBase).mul(4).equal()\n      }),\n      [`${skeletonImageCls}-svg${skeletonImageCls}-svg-circle`]: {\n        borderRadius: '50%'\n      }\n    }),\n    [`${skeletonImageCls}${skeletonImageCls}-circle`]: {\n      borderRadius: '50%'\n    }\n  };\n};\nconst genSkeletonElementButtonShape = (token, size, buttonCls) => {\n  const {\n    skeletonButtonCls\n  } = token;\n  return {\n    [`${buttonCls}${skeletonButtonCls}-circle`]: {\n      width: size,\n      minWidth: size,\n      borderRadius: '50%'\n    },\n    [`${buttonCls}${skeletonButtonCls}-round`]: {\n      borderRadius: size\n    }\n  };\n};\nconst genSkeletonElementButtonSize = (size, calc) => Object.assign({\n  width: calc(size).mul(2).equal(),\n  minWidth: calc(size).mul(2).equal()\n}, genSkeletonElementCommonSize(size));\nconst genSkeletonElementButton = token => {\n  const {\n    borderRadiusSM,\n    skeletonButtonCls,\n    controlHeight,\n    controlHeightLG,\n    controlHeightSM,\n    gradientFromColor,\n    calc\n  } = token;\n  return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({\n    [skeletonButtonCls]: Object.assign({\n      display: 'inline-block',\n      verticalAlign: 'top',\n      background: gradientFromColor,\n      borderRadius: borderRadiusSM,\n      width: calc(controlHeight).mul(2).equal(),\n      minWidth: calc(controlHeight).mul(2).equal()\n    }, genSkeletonElementButtonSize(controlHeight, calc))\n  }, genSkeletonElementButtonShape(token, controlHeight, skeletonButtonCls)), {\n    [`${skeletonButtonCls}-lg`]: Object.assign({}, genSkeletonElementButtonSize(controlHeightLG, calc))\n  }), genSkeletonElementButtonShape(token, controlHeightLG, `${skeletonButtonCls}-lg`)), {\n    [`${skeletonButtonCls}-sm`]: Object.assign({}, genSkeletonElementButtonSize(controlHeightSM, calc))\n  }), genSkeletonElementButtonShape(token, controlHeightSM, `${skeletonButtonCls}-sm`));\n};\n// =============================== Base ===============================\nconst genBaseStyle = token => {\n  const {\n    componentCls,\n    skeletonAvatarCls,\n    skeletonTitleCls,\n    skeletonParagraphCls,\n    skeletonButtonCls,\n    skeletonInputCls,\n    skeletonImageCls,\n    controlHeight,\n    controlHeightLG,\n    controlHeightSM,\n    gradientFromColor,\n    padding,\n    marginSM,\n    borderRadius,\n    titleHeight,\n    blockRadius,\n    paragraphLiHeight,\n    controlHeightXS,\n    paragraphMarginTop\n  } = token;\n  return {\n    [componentCls]: {\n      display: 'table',\n      width: '100%',\n      [`${componentCls}-header`]: {\n        display: 'table-cell',\n        paddingInlineEnd: padding,\n        verticalAlign: 'top',\n        // Avatar\n        [skeletonAvatarCls]: Object.assign({\n          display: 'inline-block',\n          verticalAlign: 'top',\n          background: gradientFromColor\n        }, genSkeletonElementAvatarSize(controlHeight)),\n        [`${skeletonAvatarCls}-circle`]: {\n          borderRadius: '50%'\n        },\n        [`${skeletonAvatarCls}-lg`]: Object.assign({}, genSkeletonElementAvatarSize(controlHeightLG)),\n        [`${skeletonAvatarCls}-sm`]: Object.assign({}, genSkeletonElementAvatarSize(controlHeightSM))\n      },\n      [`${componentCls}-content`]: {\n        display: 'table-cell',\n        width: '100%',\n        verticalAlign: 'top',\n        // Title\n        [skeletonTitleCls]: {\n          width: '100%',\n          height: titleHeight,\n          background: gradientFromColor,\n          borderRadius: blockRadius,\n          [`+ ${skeletonParagraphCls}`]: {\n            marginBlockStart: controlHeightSM\n          }\n        },\n        // paragraph\n        [skeletonParagraphCls]: {\n          padding: 0,\n          '> li': {\n            width: '100%',\n            height: paragraphLiHeight,\n            listStyle: 'none',\n            background: gradientFromColor,\n            borderRadius: blockRadius,\n            '+ li': {\n              marginBlockStart: controlHeightXS\n            }\n          }\n        },\n        [`${skeletonParagraphCls}> li:last-child:not(:first-child):not(:nth-child(2))`]: {\n          width: '61%'\n        }\n      },\n      [`&-round ${componentCls}-content`]: {\n        [`${skeletonTitleCls}, ${skeletonParagraphCls} > li`]: {\n          borderRadius\n        }\n      }\n    },\n    [`${componentCls}-with-avatar ${componentCls}-content`]: {\n      // Title\n      [skeletonTitleCls]: {\n        marginBlockStart: marginSM,\n        [`+ ${skeletonParagraphCls}`]: {\n          marginBlockStart: paragraphMarginTop\n        }\n      }\n    },\n    // Skeleton element\n    [`${componentCls}${componentCls}-element`]: Object.assign(Object.assign(Object.assign(Object.assign({\n      display: 'inline-block',\n      width: 'auto'\n    }, genSkeletonElementButton(token)), genSkeletonElementAvatar(token)), genSkeletonElementInput(token)), genSkeletonElementImage(token)),\n    // Skeleton Block Button, Input\n    [`${componentCls}${componentCls}-block`]: {\n      width: '100%',\n      [skeletonButtonCls]: {\n        width: '100%'\n      },\n      [skeletonInputCls]: {\n        width: '100%'\n      }\n    },\n    // With active animation\n    [`${componentCls}${componentCls}-active`]: {\n      [`\n        ${skeletonTitleCls},\n        ${skeletonParagraphCls} > li,\n        ${skeletonAvatarCls},\n        ${skeletonButtonCls},\n        ${skeletonInputCls},\n        ${skeletonImageCls}\n      `]: Object.assign({}, genSkeletonColor(token))\n    }\n  };\n};\n// ============================== Export ==============================\nexport const prepareComponentToken = token => {\n  const {\n    colorFillContent,\n    colorFill\n  } = token;\n  const gradientFromColor = colorFillContent;\n  const gradientToColor = colorFill;\n  return {\n    color: gradientFromColor,\n    colorGradientEnd: gradientToColor,\n    gradientFromColor,\n    gradientToColor,\n    titleHeight: token.controlHeight / 2,\n    blockRadius: token.borderRadiusSM,\n    paragraphMarginTop: token.marginLG + token.marginXXS,\n    paragraphLiHeight: token.controlHeight / 2\n  };\n};\nexport default genStyleHooks('Skeleton', token => {\n  const {\n    componentCls,\n    calc\n  } = token;\n  const skeletonToken = mergeToken(token, {\n    skeletonAvatarCls: `${componentCls}-avatar`,\n    skeletonTitleCls: `${componentCls}-title`,\n    skeletonParagraphCls: `${componentCls}-paragraph`,\n    skeletonButtonCls: `${componentCls}-button`,\n    skeletonInputCls: `${componentCls}-input`,\n    skeletonImageCls: `${componentCls}-image`,\n    imageSizeBase: calc(token.controlHeight).mul(1.5).equal(),\n    borderRadius: 100,\n    // Large number to make capsule shape\n    skeletonLoadingBackground: `linear-gradient(90deg, ${token.gradientFromColor} 25%, ${token.gradientToColor} 37%, ${token.gradientFromColor} 63%)`,\n    skeletonLoadingMotionDuration: '1.4s'\n  });\n  return [genBaseStyle(skeletonToken)];\n}, prepareComponentToken, {\n  deprecatedTokens: [['color', 'gradientFromColor'], ['colorGradientEnd', 'gradientToColor']]\n});","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport { ConfigContext } from '../config-provider';\nimport Element from './Element';\nimport useStyle from './style';\nconst SkeletonAvatar = props => {\n  const {\n    prefixCls: customizePrefixCls,\n    className,\n    rootClassName,\n    active,\n    shape = 'circle',\n    size = 'default'\n  } = props;\n  const {\n    getPrefixCls\n  } = React.useContext(ConfigContext);\n  const prefixCls = getPrefixCls('skeleton', customizePrefixCls);\n  const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls);\n  const otherProps = omit(props, ['prefixCls', 'className']);\n  const cls = classNames(prefixCls, `${prefixCls}-element`, {\n    [`${prefixCls}-active`]: active\n  }, className, rootClassName, hashId, cssVarCls);\n  return wrapCSSVar(/*#__PURE__*/React.createElement(\"div\", {\n    className: cls\n  }, /*#__PURE__*/React.createElement(Element, Object.assign({\n    prefixCls: `${prefixCls}-avatar`,\n    shape: shape,\n    size: size\n  }, otherProps))));\n};\nexport default SkeletonAvatar;","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider';\nimport useStyle from './style';\nconst path = 'M365.714286 329.142857q0 45.714286-32.036571 77.677714t-77.677714 32.036571-77.677714-32.036571-32.036571-77.677714 32.036571-77.677714 77.677714-32.036571 77.677714 32.036571 32.036571 77.677714zM950.857143 548.571429l0 256-804.571429 0 0-109.714286 182.857143-182.857143 91.428571 91.428571 292.571429-292.571429zM1005.714286 146.285714l-914.285714 0q-7.460571 0-12.873143 5.412571t-5.412571 12.873143l0 694.857143q0 7.460571 5.412571 12.873143t12.873143 5.412571l914.285714 0q7.460571 0 12.873143-5.412571t5.412571-12.873143l0-694.857143q0-7.460571-5.412571-12.873143t-12.873143-5.412571zM1097.142857 164.571429l0 694.857143q0 37.741714-26.843429 64.585143t-64.585143 26.843429l-914.285714 0q-37.741714 0-64.585143-26.843429t-26.843429-64.585143l0-694.857143q0-37.741714 26.843429-64.585143t64.585143-26.843429l914.285714 0q37.741714 0 64.585143 26.843429t26.843429 64.585143z';\nconst SkeletonImage = props => {\n  const {\n    prefixCls: customizePrefixCls,\n    className,\n    rootClassName,\n    style,\n    active\n  } = props;\n  const {\n    getPrefixCls\n  } = React.useContext(ConfigContext);\n  const prefixCls = getPrefixCls('skeleton', customizePrefixCls);\n  const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls);\n  const cls = classNames(prefixCls, `${prefixCls}-element`, {\n    [`${prefixCls}-active`]: active\n  }, className, rootClassName, hashId, cssVarCls);\n  return wrapCSSVar(/*#__PURE__*/React.createElement(\"div\", {\n    className: cls\n  }, /*#__PURE__*/React.createElement(\"div\", {\n    className: classNames(`${prefixCls}-image`, className),\n    style: style\n  }, /*#__PURE__*/React.createElement(\"svg\", {\n    viewBox: \"0 0 1098 1024\",\n    xmlns: \"http://www.w3.org/2000/svg\",\n    className: `${prefixCls}-image-svg`\n  }, /*#__PURE__*/React.createElement(\"title\", null, \"Image placeholder\"), /*#__PURE__*/React.createElement(\"path\", {\n    d: path,\n    className: `${prefixCls}-image-path`\n  })))));\n};\nexport default SkeletonImage;","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport { ConfigContext } from '../config-provider';\nimport Element from './Element';\nimport useStyle from './style';\nconst SkeletonInput = props => {\n  const {\n    prefixCls: customizePrefixCls,\n    className,\n    rootClassName,\n    active,\n    block,\n    size = 'default'\n  } = props;\n  const {\n    getPrefixCls\n  } = React.useContext(ConfigContext);\n  const prefixCls = getPrefixCls('skeleton', customizePrefixCls);\n  const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls);\n  const otherProps = omit(props, ['prefixCls']);\n  const cls = classNames(prefixCls, `${prefixCls}-element`, {\n    [`${prefixCls}-active`]: active,\n    [`${prefixCls}-block`]: block\n  }, className, rootClassName, hashId, cssVarCls);\n  return wrapCSSVar(/*#__PURE__*/React.createElement(\"div\", {\n    className: cls\n  }, /*#__PURE__*/React.createElement(Element, Object.assign({\n    prefixCls: `${prefixCls}-input`,\n    size: size\n  }, otherProps))));\n};\nexport default SkeletonInput;","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider';\nimport useStyle from './style';\nconst SkeletonNode = props => {\n  const {\n    prefixCls: customizePrefixCls,\n    className,\n    rootClassName,\n    style,\n    active,\n    children\n  } = props;\n  const {\n    getPrefixCls\n  } = React.useContext(ConfigContext);\n  const prefixCls = getPrefixCls('skeleton', customizePrefixCls);\n  const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls);\n  const cls = classNames(prefixCls, `${prefixCls}-element`, {\n    [`${prefixCls}-active`]: active\n  }, hashId, className, rootClassName, cssVarCls);\n  return wrapCSSVar(/*#__PURE__*/React.createElement(\"div\", {\n    className: cls\n  }, /*#__PURE__*/React.createElement(\"div\", {\n    className: classNames(`${prefixCls}-image`, className),\n    style: style\n  }, children)));\n};\nexport default SkeletonNode;","\"use client\";\n\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nconst getWidth = (index, props) => {\n  const {\n    width,\n    rows = 2\n  } = props;\n  if (Array.isArray(width)) {\n    return width[index];\n  }\n  // last paragraph\n  if (rows - 1 === index) {\n    return width;\n  }\n  return undefined;\n};\nconst Paragraph = props => {\n  const {\n    prefixCls,\n    className,\n    style,\n    rows\n  } = props;\n  const rowList = _toConsumableArray(new Array(rows)).map((_, index) => (\n  /*#__PURE__*/\n  // eslint-disable-next-line react/no-array-index-key\n  React.createElement(\"li\", {\n    key: index,\n    style: {\n      width: getWidth(index, props)\n    }\n  })));\n  return /*#__PURE__*/React.createElement(\"ul\", {\n    className: classNames(prefixCls, className),\n    style: style\n  }, rowList);\n};\nexport default Paragraph;","\"use client\";\n\n/* eslint-disable jsx-a11y/heading-has-content */\nimport * as React from 'react';\nimport classNames from 'classnames';\nconst Title = _ref => {\n  let {\n    prefixCls,\n    className,\n    width,\n    style\n  } = _ref;\n  return (\n    /*#__PURE__*/\n    // biome-ignore lint/a11y/useHeadingContent: HOC here\n    React.createElement(\"h3\", {\n      className: classNames(prefixCls, className),\n      style: Object.assign({\n        width\n      }, style)\n    })\n  );\n};\nexport default Title;","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider';\nimport SkeletonAvatar from './Avatar';\nimport SkeletonButton from './Button';\nimport Element from './Element';\nimport SkeletonImage from './Image';\nimport SkeletonInput from './Input';\nimport SkeletonNode from './Node';\nimport Paragraph from './Paragraph';\nimport useStyle from './style';\nimport Title from './Title';\nfunction getComponentProps(prop) {\n  if (prop && typeof prop === 'object') {\n    return prop;\n  }\n  return {};\n}\nfunction getAvatarBasicProps(hasTitle, hasParagraph) {\n  if (hasTitle && !hasParagraph) {\n    // Square avatar\n    return {\n      size: 'large',\n      shape: 'square'\n    };\n  }\n  return {\n    size: 'large',\n    shape: 'circle'\n  };\n}\nfunction getTitleBasicProps(hasAvatar, hasParagraph) {\n  if (!hasAvatar && hasParagraph) {\n    return {\n      width: '38%'\n    };\n  }\n  if (hasAvatar && hasParagraph) {\n    return {\n      width: '50%'\n    };\n  }\n  return {};\n}\nfunction getParagraphBasicProps(hasAvatar, hasTitle) {\n  const basicProps = {};\n  // Width\n  if (!hasAvatar || !hasTitle) {\n    basicProps.width = '61%';\n  }\n  // Rows\n  if (!hasAvatar && hasTitle) {\n    basicProps.rows = 3;\n  } else {\n    basicProps.rows = 2;\n  }\n  return basicProps;\n}\nconst Skeleton = props => {\n  const {\n    prefixCls: customizePrefixCls,\n    loading,\n    className,\n    rootClassName,\n    style,\n    children,\n    avatar = false,\n    title = true,\n    paragraph = true,\n    active,\n    round\n  } = props;\n  const {\n    getPrefixCls,\n    direction,\n    skeleton\n  } = React.useContext(ConfigContext);\n  const prefixCls = getPrefixCls('skeleton', customizePrefixCls);\n  const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls);\n  if (loading || !('loading' in props)) {\n    const hasAvatar = !!avatar;\n    const hasTitle = !!title;\n    const hasParagraph = !!paragraph;\n    // Avatar\n    let avatarNode;\n    if (hasAvatar) {\n      const avatarProps = Object.assign(Object.assign({\n        prefixCls: `${prefixCls}-avatar`\n      }, getAvatarBasicProps(hasTitle, hasParagraph)), getComponentProps(avatar));\n      // We direct use SkeletonElement as avatar in skeleton internal.\n      avatarNode = /*#__PURE__*/React.createElement(\"div\", {\n        className: `${prefixCls}-header`\n      }, /*#__PURE__*/React.createElement(Element, Object.assign({}, avatarProps)));\n    }\n    let contentNode;\n    if (hasTitle || hasParagraph) {\n      // Title\n      let $title;\n      if (hasTitle) {\n        const titleProps = Object.assign(Object.assign({\n          prefixCls: `${prefixCls}-title`\n        }, getTitleBasicProps(hasAvatar, hasParagraph)), getComponentProps(title));\n        $title = /*#__PURE__*/React.createElement(Title, Object.assign({}, titleProps));\n      }\n      // Paragraph\n      let paragraphNode;\n      if (hasParagraph) {\n        const paragraphProps = Object.assign(Object.assign({\n          prefixCls: `${prefixCls}-paragraph`\n        }, getParagraphBasicProps(hasAvatar, hasTitle)), getComponentProps(paragraph));\n        paragraphNode = /*#__PURE__*/React.createElement(Paragraph, Object.assign({}, paragraphProps));\n      }\n      contentNode = /*#__PURE__*/React.createElement(\"div\", {\n        className: `${prefixCls}-content`\n      }, $title, paragraphNode);\n    }\n    const cls = classNames(prefixCls, {\n      [`${prefixCls}-with-avatar`]: hasAvatar,\n      [`${prefixCls}-active`]: active,\n      [`${prefixCls}-rtl`]: direction === 'rtl',\n      [`${prefixCls}-round`]: round\n    }, skeleton === null || skeleton === void 0 ? void 0 : skeleton.className, className, rootClassName, hashId, cssVarCls);\n    return wrapCSSVar(/*#__PURE__*/React.createElement(\"div\", {\n      className: cls,\n      style: Object.assign(Object.assign({}, skeleton === null || skeleton === void 0 ? void 0 : skeleton.style), style)\n    }, avatarNode, contentNode));\n  }\n  return children !== null && children !== void 0 ? children : null;\n};\nSkeleton.Button = SkeletonButton;\nSkeleton.Avatar = SkeletonAvatar;\nSkeleton.Input = SkeletonInput;\nSkeleton.Image = SkeletonImage;\nSkeleton.Node = SkeletonNode;\nif (process.env.NODE_ENV !== 'production') {\n  Skeleton.displayName = 'Skeleton';\n}\nexport default Skeleton;","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport { ConfigContext } from '../config-provider';\nimport Element from './Element';\nimport useStyle from './style';\nconst SkeletonButton = props => {\n  const {\n    prefixCls: customizePrefixCls,\n    className,\n    rootClassName,\n    active,\n    block = false,\n    size = 'default'\n  } = props;\n  const {\n    getPrefixCls\n  } = React.useContext(ConfigContext);\n  const prefixCls = getPrefixCls('skeleton', customizePrefixCls);\n  const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls);\n  const otherProps = omit(props, ['prefixCls']);\n  const cls = classNames(prefixCls, `${prefixCls}-element`, {\n    [`${prefixCls}-active`]: active,\n    [`${prefixCls}-block`]: block\n  }, className, rootClassName, hashId, cssVarCls);\n  return wrapCSSVar(/*#__PURE__*/React.createElement(\"div\", {\n    className: cls\n  }, /*#__PURE__*/React.createElement(Element, Object.assign({\n    prefixCls: `${prefixCls}-button`,\n    size: size\n  }, otherProps))));\n};\nexport default SkeletonButton;","\"use client\";\n\nimport Skeleton from './Skeleton';\nexport default Skeleton;","import * as React from 'react';\nimport { useEvent } from 'rc-util';\nfunction voidFunc() {}\nconst WatermarkContext = /*#__PURE__*/React.createContext({\n  add: voidFunc,\n  remove: voidFunc\n});\nexport function usePanelRef(panelSelector) {\n  const watermark = React.useContext(WatermarkContext);\n  const panelEleRef = React.useRef();\n  const panelRef = useEvent(ele => {\n    if (ele) {\n      const innerContentEle = panelSelector ? ele.querySelector(panelSelector) : ele;\n      watermark.add(innerContentEle);\n      panelEleRef.current = innerContentEle;\n    } else {\n      watermark.remove(panelEleRef.current);\n    }\n  });\n  return panelRef;\n}\nexport default WatermarkContext;","\"use client\";\n\nimport React, { useContext } from 'react';\nimport Button from '../../button';\nimport { ModalContext } from '../context';\nconst NormalCancelBtn = () => {\n  const {\n    cancelButtonProps,\n    cancelTextLocale,\n    onCancel\n  } = useContext(ModalContext);\n  return /*#__PURE__*/React.createElement(Button, Object.assign({\n    onClick: onCancel\n  }, cancelButtonProps), cancelTextLocale);\n};\nexport default NormalCancelBtn;","\"use client\";\n\nimport React, { useContext } from 'react';\nimport Button from '../../button';\nimport { convertLegacyProps } from '../../button/buttonHelpers';\nimport { ModalContext } from '../context';\nconst NormalOkBtn = () => {\n  const {\n    confirmLoading,\n    okButtonProps,\n    okType,\n    okTextLocale,\n    onOk\n  } = useContext(ModalContext);\n  return /*#__PURE__*/React.createElement(Button, Object.assign({}, convertLegacyProps(okType), {\n    loading: confirmLoading,\n    onClick: onOk\n  }, okButtonProps), okTextLocale);\n};\nexport default NormalOkBtn;","\"use client\";\n\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport React from 'react';\nimport CloseOutlined from \"@ant-design/icons/es/icons/CloseOutlined\";\nimport { DisabledContextProvider } from '../config-provider/DisabledContext';\nimport { useLocale } from '../locale';\nimport NormalCancelBtn from './components/NormalCancelBtn';\nimport NormalOkBtn from './components/NormalOkBtn';\nimport { ModalContextProvider } from './context';\nimport { getConfirmLocale } from './locale';\nexport function renderCloseIcon(prefixCls, closeIcon) {\n  return /*#__PURE__*/React.createElement(\"span\", {\n    className: `${prefixCls}-close-x`\n  }, closeIcon || /*#__PURE__*/React.createElement(CloseOutlined, {\n    className: `${prefixCls}-close-icon`\n  }));\n}\nexport const Footer = props => {\n  const {\n    okText,\n    okType = 'primary',\n    cancelText,\n    confirmLoading,\n    onOk,\n    onCancel,\n    okButtonProps,\n    cancelButtonProps,\n    footer\n  } = props;\n  const [locale] = useLocale('Modal', getConfirmLocale());\n  // ================== Locale Text ==================\n  const okTextLocale = okText || (locale === null || locale === void 0 ? void 0 : locale.okText);\n  const cancelTextLocale = cancelText || (locale === null || locale === void 0 ? void 0 : locale.cancelText);\n  // ================= Context Value =================\n  const btnCtxValue = {\n    confirmLoading,\n    okButtonProps,\n    cancelButtonProps,\n    okTextLocale,\n    cancelTextLocale,\n    okType,\n    onOk,\n    onCancel\n  };\n  const btnCtxValueMemo = React.useMemo(() => btnCtxValue, _toConsumableArray(Object.values(btnCtxValue)));\n  let footerNode;\n  if (typeof footer === 'function' || typeof footer === 'undefined') {\n    footerNode = /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(NormalCancelBtn, null), /*#__PURE__*/React.createElement(NormalOkBtn, null));\n    if (typeof footer === 'function') {\n      footerNode = footer(footerNode, {\n        OkBtn: NormalOkBtn,\n        CancelBtn: NormalCancelBtn\n      });\n    }\n    footerNode = /*#__PURE__*/React.createElement(ModalContextProvider, {\n      value: btnCtxValueMemo\n    }, footerNode);\n  } else {\n    footerNode = footer;\n  }\n  return /*#__PURE__*/React.createElement(DisabledContextProvider, {\n    disabled: false\n  }, footerNode);\n};","const initMotionCommon = duration => ({\n  animationDuration: duration,\n  animationFillMode: 'both'\n});\n// FIXME: origin less code seems same as initMotionCommon. Maybe we can safe remove\nconst initMotionCommonLeave = duration => ({\n  animationDuration: duration,\n  animationFillMode: 'both'\n});\nexport const initMotion = function (motionCls, inKeyframes, outKeyframes, duration) {\n  let sameLevel = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n  const sameLevelPrefix = sameLevel ? '&' : '';\n  return {\n    [`\n      ${sameLevelPrefix}${motionCls}-enter,\n      ${sameLevelPrefix}${motionCls}-appear\n    `]: Object.assign(Object.assign({}, initMotionCommon(duration)), {\n      animationPlayState: 'paused'\n    }),\n    [`${sameLevelPrefix}${motionCls}-leave`]: Object.assign(Object.assign({}, initMotionCommonLeave(duration)), {\n      animationPlayState: 'paused'\n    }),\n    [`\n      ${sameLevelPrefix}${motionCls}-enter${motionCls}-enter-active,\n      ${sameLevelPrefix}${motionCls}-appear${motionCls}-appear-active\n    `]: {\n      animationName: inKeyframes,\n      animationPlayState: 'running'\n    },\n    [`${sameLevelPrefix}${motionCls}-leave${motionCls}-leave-active`]: {\n      animationName: outKeyframes,\n      animationPlayState: 'running',\n      pointerEvents: 'none'\n    }\n  };\n};","import { Keyframes } from '@ant-design/cssinjs';\nimport { initMotion } from './motion';\nexport const fadeIn = new Keyframes('antFadeIn', {\n  '0%': {\n    opacity: 0\n  },\n  '100%': {\n    opacity: 1\n  }\n});\nexport const fadeOut = new Keyframes('antFadeOut', {\n  '0%': {\n    opacity: 1\n  },\n  '100%': {\n    opacity: 0\n  }\n});\nexport const initFadeMotion = function (token) {\n  let sameLevel = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n  const {\n    antCls\n  } = token;\n  const motionCls = `${antCls}-fade`;\n  const sameLevelPrefix = sameLevel ? '&' : '';\n  return [initMotion(motionCls, fadeIn, fadeOut, token.motionDurationMid, sameLevel), {\n    [`\n        ${sameLevelPrefix}${motionCls}-enter,\n        ${sameLevelPrefix}${motionCls}-appear\n      `]: {\n      opacity: 0,\n      animationTimingFunction: 'linear'\n    },\n    [`${sameLevelPrefix}${motionCls}-leave`]: {\n      animationTimingFunction: 'linear'\n    }\n  }];\n};","import { Keyframes } from '@ant-design/cssinjs';\nimport { initMotion } from './motion';\nexport const zoomIn = new Keyframes('antZoomIn', {\n  '0%': {\n    transform: 'scale(0.2)',\n    opacity: 0\n  },\n  '100%': {\n    transform: 'scale(1)',\n    opacity: 1\n  }\n});\nexport const zoomOut = new Keyframes('antZoomOut', {\n  '0%': {\n    transform: 'scale(1)'\n  },\n  '100%': {\n    transform: 'scale(0.2)',\n    opacity: 0\n  }\n});\nexport const zoomBigIn = new Keyframes('antZoomBigIn', {\n  '0%': {\n    transform: 'scale(0.8)',\n    opacity: 0\n  },\n  '100%': {\n    transform: 'scale(1)',\n    opacity: 1\n  }\n});\nexport const zoomBigOut = new Keyframes('antZoomBigOut', {\n  '0%': {\n    transform: 'scale(1)'\n  },\n  '100%': {\n    transform: 'scale(0.8)',\n    opacity: 0\n  }\n});\nexport const zoomUpIn = new Keyframes('antZoomUpIn', {\n  '0%': {\n    transform: 'scale(0.8)',\n    transformOrigin: '50% 0%',\n    opacity: 0\n  },\n  '100%': {\n    transform: 'scale(1)',\n    transformOrigin: '50% 0%'\n  }\n});\nexport const zoomUpOut = new Keyframes('antZoomUpOut', {\n  '0%': {\n    transform: 'scale(1)',\n    transformOrigin: '50% 0%'\n  },\n  '100%': {\n    transform: 'scale(0.8)',\n    transformOrigin: '50% 0%',\n    opacity: 0\n  }\n});\nexport const zoomLeftIn = new Keyframes('antZoomLeftIn', {\n  '0%': {\n    transform: 'scale(0.8)',\n    transformOrigin: '0% 50%',\n    opacity: 0\n  },\n  '100%': {\n    transform: 'scale(1)',\n    transformOrigin: '0% 50%'\n  }\n});\nexport const zoomLeftOut = new Keyframes('antZoomLeftOut', {\n  '0%': {\n    transform: 'scale(1)',\n    transformOrigin: '0% 50%'\n  },\n  '100%': {\n    transform: 'scale(0.8)',\n    transformOrigin: '0% 50%',\n    opacity: 0\n  }\n});\nexport const zoomRightIn = new Keyframes('antZoomRightIn', {\n  '0%': {\n    transform: 'scale(0.8)',\n    transformOrigin: '100% 50%',\n    opacity: 0\n  },\n  '100%': {\n    transform: 'scale(1)',\n    transformOrigin: '100% 50%'\n  }\n});\nexport const zoomRightOut = new Keyframes('antZoomRightOut', {\n  '0%': {\n    transform: 'scale(1)',\n    transformOrigin: '100% 50%'\n  },\n  '100%': {\n    transform: 'scale(0.8)',\n    transformOrigin: '100% 50%',\n    opacity: 0\n  }\n});\nexport const zoomDownIn = new Keyframes('antZoomDownIn', {\n  '0%': {\n    transform: 'scale(0.8)',\n    transformOrigin: '50% 100%',\n    opacity: 0\n  },\n  '100%': {\n    transform: 'scale(1)',\n    transformOrigin: '50% 100%'\n  }\n});\nexport const zoomDownOut = new Keyframes('antZoomDownOut', {\n  '0%': {\n    transform: 'scale(1)',\n    transformOrigin: '50% 100%'\n  },\n  '100%': {\n    transform: 'scale(0.8)',\n    transformOrigin: '50% 100%',\n    opacity: 0\n  }\n});\nconst zoomMotion = {\n  zoom: {\n    inKeyframes: zoomIn,\n    outKeyframes: zoomOut\n  },\n  'zoom-big': {\n    inKeyframes: zoomBigIn,\n    outKeyframes: zoomBigOut\n  },\n  'zoom-big-fast': {\n    inKeyframes: zoomBigIn,\n    outKeyframes: zoomBigOut\n  },\n  'zoom-left': {\n    inKeyframes: zoomLeftIn,\n    outKeyframes: zoomLeftOut\n  },\n  'zoom-right': {\n    inKeyframes: zoomRightIn,\n    outKeyframes: zoomRightOut\n  },\n  'zoom-up': {\n    inKeyframes: zoomUpIn,\n    outKeyframes: zoomUpOut\n  },\n  'zoom-down': {\n    inKeyframes: zoomDownIn,\n    outKeyframes: zoomDownOut\n  }\n};\nexport const initZoomMotion = (token, motionName) => {\n  const {\n    antCls\n  } = token;\n  const motionCls = `${antCls}-${motionName}`;\n  const {\n    inKeyframes,\n    outKeyframes\n  } = zoomMotion[motionName];\n  return [initMotion(motionCls, inKeyframes, outKeyframes, motionName === 'zoom-big-fast' ? token.motionDurationFast : token.motionDurationMid), {\n    [`\n        ${motionCls}-enter,\n        ${motionCls}-appear\n      `]: {\n      transform: 'scale(0)',\n      opacity: 0,\n      animationTimingFunction: token.motionEaseOutCirc,\n      '&-prepare': {\n        transform: 'none'\n      }\n    },\n    [`${motionCls}-leave`]: {\n      animationTimingFunction: token.motionEaseInOutCirc\n    }\n  }];\n};","import { unit } from '@ant-design/cssinjs';\nimport { genFocusStyle, resetComponent } from '../../style';\nimport { initFadeMotion, initZoomMotion } from '../../style/motion';\nimport { genStyleHooks, mergeToken } from '../../theme/internal';\nfunction box(position) {\n  return {\n    position,\n    inset: 0\n  };\n}\nexport const genModalMaskStyle = token => {\n  const {\n    componentCls,\n    antCls\n  } = token;\n  return [{\n    [`${componentCls}-root`]: {\n      [`${componentCls}${antCls}-zoom-enter, ${componentCls}${antCls}-zoom-appear`]: {\n        // reset scale avoid mousePosition bug\n        transform: 'none',\n        opacity: 0,\n        animationDuration: token.motionDurationSlow,\n        // https://github.com/ant-design/ant-design/issues/11777\n        userSelect: 'none'\n      },\n      // https://github.com/ant-design/ant-design/issues/37329\n      // https://github.com/ant-design/ant-design/issues/40272\n      [`${componentCls}${antCls}-zoom-leave ${componentCls}-content`]: {\n        pointerEvents: 'none'\n      },\n      [`${componentCls}-mask`]: Object.assign(Object.assign({}, box('fixed')), {\n        zIndex: token.zIndexPopupBase,\n        height: '100%',\n        backgroundColor: token.colorBgMask,\n        pointerEvents: 'none',\n        [`${componentCls}-hidden`]: {\n          display: 'none'\n        }\n      }),\n      [`${componentCls}-wrap`]: Object.assign(Object.assign({}, box('fixed')), {\n        zIndex: token.zIndexPopupBase,\n        overflow: 'auto',\n        outline: 0,\n        WebkitOverflowScrolling: 'touch'\n      })\n    }\n  }, {\n    [`${componentCls}-root`]: initFadeMotion(token)\n  }];\n};\nconst genModalStyle = token => {\n  const {\n    componentCls\n  } = token;\n  return [\n  // ======================== Root =========================\n  {\n    [`${componentCls}-root`]: {\n      [`${componentCls}-wrap-rtl`]: {\n        direction: 'rtl'\n      },\n      [`${componentCls}-centered`]: {\n        textAlign: 'center',\n        '&::before': {\n          display: 'inline-block',\n          width: 0,\n          height: '100%',\n          verticalAlign: 'middle',\n          content: '\"\"'\n        },\n        [componentCls]: {\n          top: 0,\n          display: 'inline-block',\n          paddingBottom: 0,\n          textAlign: 'start',\n          verticalAlign: 'middle'\n        }\n      },\n      [`@media (max-width: ${token.screenSMMax}px)`]: {\n        [componentCls]: {\n          maxWidth: 'calc(100vw - 16px)',\n          margin: `${unit(token.marginXS)} auto`\n        },\n        [`${componentCls}-centered`]: {\n          [componentCls]: {\n            flex: 1\n          }\n        }\n      }\n    }\n  },\n  // ======================== Modal ========================\n  {\n    [componentCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n      pointerEvents: 'none',\n      position: 'relative',\n      top: 100,\n      width: 'auto',\n      maxWidth: `calc(100vw - ${unit(token.calc(token.margin).mul(2).equal())})`,\n      margin: '0 auto',\n      paddingBottom: token.paddingLG,\n      [`${componentCls}-title`]: {\n        margin: 0,\n        color: token.titleColor,\n        fontWeight: token.fontWeightStrong,\n        fontSize: token.titleFontSize,\n        lineHeight: token.titleLineHeight,\n        wordWrap: 'break-word'\n      },\n      [`${componentCls}-content`]: {\n        position: 'relative',\n        backgroundColor: token.contentBg,\n        backgroundClip: 'padding-box',\n        border: 0,\n        borderRadius: token.borderRadiusLG,\n        boxShadow: token.boxShadow,\n        pointerEvents: 'auto',\n        padding: token.contentPadding\n      },\n      [`${componentCls}-close`]: Object.assign({\n        position: 'absolute',\n        top: token.calc(token.modalHeaderHeight).sub(token.modalCloseBtnSize).div(2).equal(),\n        insetInlineEnd: token.calc(token.modalHeaderHeight).sub(token.modalCloseBtnSize).div(2).equal(),\n        zIndex: token.calc(token.zIndexPopupBase).add(10).equal(),\n        padding: 0,\n        color: token.modalCloseIconColor,\n        fontWeight: token.fontWeightStrong,\n        lineHeight: 1,\n        textDecoration: 'none',\n        background: 'transparent',\n        borderRadius: token.borderRadiusSM,\n        width: token.modalCloseBtnSize,\n        height: token.modalCloseBtnSize,\n        border: 0,\n        outline: 0,\n        cursor: 'pointer',\n        transition: `color ${token.motionDurationMid}, background-color ${token.motionDurationMid}`,\n        '&-x': {\n          display: 'flex',\n          fontSize: token.fontSizeLG,\n          fontStyle: 'normal',\n          lineHeight: unit(token.modalCloseBtnSize),\n          justifyContent: 'center',\n          textTransform: 'none',\n          textRendering: 'auto'\n        },\n        '&:disabled': {\n          pointerEvents: 'none'\n        },\n        '&:hover': {\n          color: token.modalCloseIconHoverColor,\n          backgroundColor: token.colorBgTextHover,\n          textDecoration: 'none'\n        },\n        '&:active': {\n          backgroundColor: token.colorBgTextActive\n        }\n      }, genFocusStyle(token)),\n      [`${componentCls}-header`]: {\n        color: token.colorText,\n        background: token.headerBg,\n        borderRadius: `${unit(token.borderRadiusLG)} ${unit(token.borderRadiusLG)} 0 0`,\n        marginBottom: token.headerMarginBottom,\n        padding: token.headerPadding,\n        borderBottom: token.headerBorderBottom\n      },\n      [`${componentCls}-body`]: {\n        fontSize: token.fontSize,\n        lineHeight: token.lineHeight,\n        wordWrap: 'break-word',\n        padding: token.bodyPadding,\n        [`${componentCls}-body-skeleton`]: {\n          width: '100%',\n          height: '100%',\n          display: 'flex',\n          justifyContent: 'center',\n          alignItems: 'center',\n          margin: `${unit(token.margin)} auto`\n        }\n      },\n      [`${componentCls}-footer`]: {\n        textAlign: 'end',\n        background: token.footerBg,\n        marginTop: token.footerMarginTop,\n        padding: token.footerPadding,\n        borderTop: token.footerBorderTop,\n        borderRadius: token.footerBorderRadius,\n        [`> ${token.antCls}-btn + ${token.antCls}-btn`]: {\n          marginInlineStart: token.marginXS\n        }\n      },\n      [`${componentCls}-open`]: {\n        overflow: 'hidden'\n      }\n    })\n  },\n  // ======================== Pure =========================\n  {\n    [`${componentCls}-pure-panel`]: {\n      top: 'auto',\n      padding: 0,\n      display: 'flex',\n      flexDirection: 'column',\n      [`${componentCls}-content,\n          ${componentCls}-body,\n          ${componentCls}-confirm-body-wrapper`]: {\n        display: 'flex',\n        flexDirection: 'column',\n        flex: 'auto'\n      },\n      [`${componentCls}-confirm-body`]: {\n        marginBottom: 'auto'\n      }\n    }\n  }];\n};\nconst genRTLStyle = token => {\n  const {\n    componentCls\n  } = token;\n  return {\n    [`${componentCls}-root`]: {\n      [`${componentCls}-wrap-rtl`]: {\n        direction: 'rtl',\n        [`${componentCls}-confirm-body`]: {\n          direction: 'rtl'\n        }\n      }\n    }\n  };\n};\n// ============================== Export ==============================\nexport const prepareToken = token => {\n  const headerPaddingVertical = token.padding;\n  const headerFontSize = token.fontSizeHeading5;\n  const headerLineHeight = token.lineHeightHeading5;\n  const modalToken = mergeToken(token, {\n    modalHeaderHeight: token.calc(token.calc(headerLineHeight).mul(headerFontSize).equal()).add(token.calc(headerPaddingVertical).mul(2).equal()).equal(),\n    modalFooterBorderColorSplit: token.colorSplit,\n    modalFooterBorderStyle: token.lineType,\n    modalFooterBorderWidth: token.lineWidth,\n    modalCloseIconColor: token.colorIcon,\n    modalCloseIconHoverColor: token.colorIconHover,\n    modalCloseBtnSize: token.controlHeight,\n    modalConfirmIconSize: token.fontHeight,\n    modalTitleHeight: token.calc(token.titleFontSize).mul(token.titleLineHeight).equal()\n  });\n  return modalToken;\n};\nexport const prepareComponentToken = token => ({\n  footerBg: 'transparent',\n  headerBg: token.colorBgElevated,\n  titleLineHeight: token.lineHeightHeading5,\n  titleFontSize: token.fontSizeHeading5,\n  contentBg: token.colorBgElevated,\n  titleColor: token.colorTextHeading,\n  // internal\n  contentPadding: token.wireframe ? 0 : `${unit(token.paddingMD)} ${unit(token.paddingContentHorizontalLG)}`,\n  headerPadding: token.wireframe ? `${unit(token.padding)} ${unit(token.paddingLG)}` : 0,\n  headerBorderBottom: token.wireframe ? `${unit(token.lineWidth)} ${token.lineType} ${token.colorSplit}` : 'none',\n  headerMarginBottom: token.wireframe ? 0 : token.marginXS,\n  bodyPadding: token.wireframe ? token.paddingLG : 0,\n  footerPadding: token.wireframe ? `${unit(token.paddingXS)} ${unit(token.padding)}` : 0,\n  footerBorderTop: token.wireframe ? `${unit(token.lineWidth)} ${token.lineType} ${token.colorSplit}` : 'none',\n  footerBorderRadius: token.wireframe ? `0 0 ${unit(token.borderRadiusLG)} ${unit(token.borderRadiusLG)}` : 0,\n  footerMarginTop: token.wireframe ? 0 : token.marginSM,\n  confirmBodyPadding: token.wireframe ? `${unit(token.padding * 2)} ${unit(token.padding * 2)} ${unit(token.paddingLG)}` : 0,\n  confirmIconMarginInlineEnd: token.wireframe ? token.margin : token.marginSM,\n  confirmBtnsMarginTop: token.wireframe ? token.marginLG : token.marginSM\n});\nexport default genStyleHooks('Modal', token => {\n  const modalToken = prepareToken(token);\n  return [genModalStyle(modalToken), genRTLStyle(modalToken), genModalMaskStyle(modalToken), initZoomMotion(modalToken, 'zoom')];\n}, prepareComponentToken, {\n  unitless: {\n    titleLineHeight: true\n  }\n});","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n  var t = {};\n  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n  }\n  return t;\n};\nimport * as React from 'react';\nimport CloseOutlined from \"@ant-design/icons/es/icons/CloseOutlined\";\nimport classNames from 'classnames';\nimport Dialog from 'rc-dialog';\nimport ContextIsolator from '../_util/ContextIsolator';\nimport useClosable, { pickClosable } from '../_util/hooks/useClosable';\nimport { useZIndex } from '../_util/hooks/useZIndex';\nimport { getTransitionName } from '../_util/motion';\nimport { canUseDocElement } from '../_util/styleChecker';\nimport { devUseWarning } from '../_util/warning';\nimport zIndexContext from '../_util/zindexContext';\nimport { ConfigContext } from '../config-provider';\nimport useCSSVarCls from '../config-provider/hooks/useCSSVarCls';\nimport Skeleton from '../skeleton';\nimport { usePanelRef } from '../watermark/context';\nimport { Footer, renderCloseIcon } from './shared';\nimport useStyle from './style';\nlet mousePosition;\n// ref: https://github.com/ant-design/ant-design/issues/15795\nconst getClickPosition = e => {\n  mousePosition = {\n    x: e.pageX,\n    y: e.pageY\n  };\n  // 100ms 内发生过点击事件，则从点击位置动画展示\n  // 否则直接 zoom 展示\n  // 这样可以兼容非点击方式展开\n  setTimeout(() => {\n    mousePosition = null;\n  }, 100);\n};\n// 只有点击事件支持从鼠标位置动画展开\nif (canUseDocElement()) {\n  document.documentElement.addEventListener('click', getClickPosition, true);\n}\nconst Modal = props => {\n  var _a;\n  const {\n    getPopupContainer: getContextPopupContainer,\n    getPrefixCls,\n    direction,\n    modal: modalContext\n  } = React.useContext(ConfigContext);\n  const handleCancel = e => {\n    const {\n      onCancel\n    } = props;\n    onCancel === null || onCancel === void 0 ? void 0 : onCancel(e);\n  };\n  const handleOk = e => {\n    const {\n      onOk\n    } = props;\n    onOk === null || onOk === void 0 ? void 0 : onOk(e);\n  };\n  if (process.env.NODE_ENV !== 'production') {\n    const warning = devUseWarning('Modal');\n    [['visible', 'open'], ['bodyStyle', 'styles.body'], ['maskStyle', 'styles.mask']].forEach(_ref => {\n      let [deprecatedName, newName] = _ref;\n      warning.deprecated(!(deprecatedName in props), deprecatedName, newName);\n    });\n  }\n  const {\n      prefixCls: customizePrefixCls,\n      className,\n      rootClassName,\n      open,\n      wrapClassName,\n      centered,\n      getContainer,\n      focusTriggerAfterClose = true,\n      style,\n      // Deprecated\n      visible,\n      width = 520,\n      footer,\n      classNames: modalClassNames,\n      styles: modalStyles,\n      children,\n      loading\n    } = props,\n    restProps = __rest(props, [\"prefixCls\", \"className\", \"rootClassName\", \"open\", \"wrapClassName\", \"centered\", \"getContainer\", \"focusTriggerAfterClose\", \"style\", \"visible\", \"width\", \"footer\", \"classNames\", \"styles\", \"children\", \"loading\"]);\n  const prefixCls = getPrefixCls('modal', customizePrefixCls);\n  const rootPrefixCls = getPrefixCls();\n  // Style\n  const rootCls = useCSSVarCls(prefixCls);\n  const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls, rootCls);\n  const wrapClassNameExtended = classNames(wrapClassName, {\n    [`${prefixCls}-centered`]: !!centered,\n    [`${prefixCls}-wrap-rtl`]: direction === 'rtl'\n  });\n  const dialogFooter = footer !== null && !loading ? (/*#__PURE__*/React.createElement(Footer, Object.assign({}, props, {\n    onOk: handleOk,\n    onCancel: handleCancel\n  }))) : null;\n  const [mergedClosable, mergedCloseIcon, closeBtnIsDisabled] = useClosable(pickClosable(props), pickClosable(modalContext), {\n    closable: true,\n    closeIcon: /*#__PURE__*/React.createElement(CloseOutlined, {\n      className: `${prefixCls}-close-icon`\n    }),\n    closeIconRender: icon => renderCloseIcon(prefixCls, icon)\n  });\n  // ============================ Refs ============================\n  // Select `ant-modal-content` by `panelRef`\n  const panelRef = usePanelRef(`.${prefixCls}-content`);\n  // ============================ zIndex ============================\n  const [zIndex, contextZIndex] = useZIndex('Modal', restProps.zIndex);\n  // =========================== Render ===========================\n  return wrapCSSVar(/*#__PURE__*/React.createElement(ContextIsolator, {\n    form: true,\n    space: true\n  }, /*#__PURE__*/React.createElement(zIndexContext.Provider, {\n    value: contextZIndex\n  }, /*#__PURE__*/React.createElement(Dialog, Object.assign({\n    width: width\n  }, restProps, {\n    zIndex: zIndex,\n    getContainer: getContainer === undefined ? getContextPopupContainer : getContainer,\n    prefixCls: prefixCls,\n    rootClassName: classNames(hashId, rootClassName, cssVarCls, rootCls),\n    footer: dialogFooter,\n    visible: open !== null && open !== void 0 ? open : visible,\n    mousePosition: (_a = restProps.mousePosition) !== null && _a !== void 0 ? _a : mousePosition,\n    onClose: handleCancel,\n    closable: mergedClosable ? {\n      disabled: closeBtnIsDisabled,\n      closeIcon: mergedCloseIcon\n    } : mergedClosable,\n    closeIcon: mergedCloseIcon,\n    focusTriggerAfterClose: focusTriggerAfterClose,\n    transitionName: getTransitionName(rootPrefixCls, 'zoom', props.transitionName),\n    maskTransitionName: getTransitionName(rootPrefixCls, 'fade', props.maskTransitionName),\n    className: classNames(hashId, className, modalContext === null || modalContext === void 0 ? void 0 : modalContext.className),\n    style: Object.assign(Object.assign({}, modalContext === null || modalContext === void 0 ? void 0 : modalContext.style), style),\n    classNames: Object.assign(Object.assign(Object.assign({}, modalContext === null || modalContext === void 0 ? void 0 : modalContext.classNames), modalClassNames), {\n      wrapper: classNames(wrapClassNameExtended, modalClassNames === null || modalClassNames === void 0 ? void 0 : modalClassNames.wrapper)\n    }),\n    styles: Object.assign(Object.assign({}, modalContext === null || modalContext === void 0 ? void 0 : modalContext.styles), modalStyles),\n    panelRef: panelRef\n  }), loading ? (/*#__PURE__*/React.createElement(Skeleton, {\n    active: true,\n    title: false,\n    paragraph: {\n      rows: 4\n    },\n    className: `${prefixCls}-body-skeleton`\n  })) : children))));\n};\nexport default Modal;","// Style as confirm component\nimport { unit } from '@ant-design/cssinjs';\nimport { prepareComponentToken, prepareToken } from '.';\nimport { clearFix } from '../../style';\nimport { genSubStyleComponent } from '../../theme/internal';\n// ============================= Confirm ==============================\nconst genModalConfirmStyle = token => {\n  const {\n    componentCls,\n    titleFontSize,\n    titleLineHeight,\n    modalConfirmIconSize,\n    fontSize,\n    lineHeight,\n    modalTitleHeight,\n    fontHeight,\n    confirmBodyPadding\n  } = token;\n  const confirmComponentCls = `${componentCls}-confirm`;\n  return {\n    [confirmComponentCls]: {\n      '&-rtl': {\n        direction: 'rtl'\n      },\n      [`${token.antCls}-modal-header`]: {\n        display: 'none'\n      },\n      [`${confirmComponentCls}-body-wrapper`]: Object.assign({}, clearFix()),\n      [`&${componentCls} ${componentCls}-body`]: {\n        padding: confirmBodyPadding\n      },\n      // ====================== Body ======================\n      [`${confirmComponentCls}-body`]: {\n        display: 'flex',\n        flexWrap: 'nowrap',\n        alignItems: 'start',\n        [`> ${token.iconCls}`]: {\n          flex: 'none',\n          fontSize: modalConfirmIconSize,\n          marginInlineEnd: token.confirmIconMarginInlineEnd,\n          marginTop: token.calc(token.calc(fontHeight).sub(modalConfirmIconSize).equal()).div(2).equal()\n        },\n        [`&-has-title > ${token.iconCls}`]: {\n          marginTop: token.calc(token.calc(modalTitleHeight).sub(modalConfirmIconSize).equal()).div(2).equal()\n        }\n      },\n      [`${confirmComponentCls}-paragraph`]: {\n        display: 'flex',\n        flexDirection: 'column',\n        flex: 'auto',\n        rowGap: token.marginXS\n      },\n      // https://github.com/ant-design/ant-design/issues/48159\n      [`${token.iconCls} + ${confirmComponentCls}-paragraph`]: {\n        maxWidth: `calc(100% - ${unit(token.calc(token.modalConfirmIconSize).add(token.marginSM).equal())})`\n      },\n      [`${confirmComponentCls}-title`]: {\n        color: token.colorTextHeading,\n        fontWeight: token.fontWeightStrong,\n        fontSize: titleFontSize,\n        lineHeight: titleLineHeight\n      },\n      [`${confirmComponentCls}-content`]: {\n        color: token.colorText,\n        fontSize,\n        lineHeight\n      },\n      // ===================== Footer =====================\n      [`${confirmComponentCls}-btns`]: {\n        textAlign: 'end',\n        marginTop: token.confirmBtnsMarginTop,\n        [`${token.antCls}-btn + ${token.antCls}-btn`]: {\n          marginBottom: 0,\n          marginInlineStart: token.marginXS\n        }\n      }\n    },\n    [`${confirmComponentCls}-error ${confirmComponentCls}-body > ${token.iconCls}`]: {\n      color: token.colorError\n    },\n    [`${confirmComponentCls}-warning ${confirmComponentCls}-body > ${token.iconCls},\n        ${confirmComponentCls}-confirm ${confirmComponentCls}-body > ${token.iconCls}`]: {\n      color: token.colorWarning\n    },\n    [`${confirmComponentCls}-info ${confirmComponentCls}-body > ${token.iconCls}`]: {\n      color: token.colorInfo\n    },\n    [`${confirmComponentCls}-success ${confirmComponentCls}-body > ${token.iconCls}`]: {\n      color: token.colorSuccess\n    }\n  };\n};\n// ============================== Export ==============================\nexport default genSubStyleComponent(['Modal', 'confirm'], token => {\n  const modalToken = prepareToken(token);\n  return [genModalConfirmStyle(modalToken)];\n}, prepareComponentToken, {\n  // confirm is weak than modal since no conflict here\n  order: -1000\n});","\"use client\";\n\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nvar __rest = this && this.__rest || function (s, e) {\n  var t = {};\n  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n  }\n  return t;\n};\nimport * as React from 'react';\nimport CheckCircleFilled from \"@ant-design/icons/es/icons/CheckCircleFilled\";\nimport CloseCircleFilled from \"@ant-design/icons/es/icons/CloseCircleFilled\";\nimport ExclamationCircleFilled from \"@ant-design/icons/es/icons/ExclamationCircleFilled\";\nimport InfoCircleFilled from \"@ant-design/icons/es/icons/InfoCircleFilled\";\nimport classNames from 'classnames';\nimport { CONTAINER_MAX_OFFSET } from '../_util/hooks/useZIndex';\nimport { getTransitionName } from '../_util/motion';\nimport { devUseWarning } from '../_util/warning';\nimport ConfigProvider from '../config-provider';\nimport { useLocale } from '../locale';\nimport useToken from '../theme/useToken';\nimport CancelBtn from './components/ConfirmCancelBtn';\nimport OkBtn from './components/ConfirmOkBtn';\nimport { ModalContextProvider } from './context';\nimport Modal from './Modal';\nimport Confirm from './style/confirm';\nexport function ConfirmContent(props) {\n  const {\n      prefixCls,\n      icon,\n      okText,\n      cancelText,\n      confirmPrefixCls,\n      type,\n      okCancel,\n      footer,\n      // Legacy for static function usage\n      locale: staticLocale\n    } = props,\n    resetProps = __rest(props, [\"prefixCls\", \"icon\", \"okText\", \"cancelText\", \"confirmPrefixCls\", \"type\", \"okCancel\", \"footer\", \"locale\"]);\n  if (process.env.NODE_ENV !== 'production') {\n    const warning = devUseWarning('Modal');\n    process.env.NODE_ENV !== \"production\" ? warning(!(typeof icon === 'string' && icon.length > 2), 'breaking', `\\`icon\\` is using ReactNode instead of string naming in v4. Please check \\`${icon}\\` at https://ant.design/components/icon`) : void 0;\n  }\n  // Icon\n  let mergedIcon = icon;\n  // 支持传入{ icon: null }来隐藏`Modal.confirm`默认的Icon\n  if (!icon && icon !== null) {\n    switch (type) {\n      case 'info':\n        mergedIcon = /*#__PURE__*/React.createElement(InfoCircleFilled, null);\n        break;\n      case 'success':\n        mergedIcon = /*#__PURE__*/React.createElement(CheckCircleFilled, null);\n        break;\n      case 'error':\n        mergedIcon = /*#__PURE__*/React.createElement(CloseCircleFilled, null);\n        break;\n      default:\n        mergedIcon = /*#__PURE__*/React.createElement(ExclamationCircleFilled, null);\n    }\n  }\n  // 默认为 true，保持向下兼容\n  const mergedOkCancel = okCancel !== null && okCancel !== void 0 ? okCancel : type === 'confirm';\n  const autoFocusButton = props.autoFocusButton === null ? false : props.autoFocusButton || 'ok';\n  const [locale] = useLocale('Modal');\n  const mergedLocale = staticLocale || locale;\n  // ================== Locale Text ==================\n  const okTextLocale = okText || (mergedOkCancel ? mergedLocale === null || mergedLocale === void 0 ? void 0 : mergedLocale.okText : mergedLocale === null || mergedLocale === void 0 ? void 0 : mergedLocale.justOkText);\n  const cancelTextLocale = cancelText || (mergedLocale === null || mergedLocale === void 0 ? void 0 : mergedLocale.cancelText);\n  // ================= Context Value =================\n  const btnCtxValue = Object.assign({\n    autoFocusButton,\n    cancelTextLocale,\n    okTextLocale,\n    mergedOkCancel\n  }, resetProps);\n  const btnCtxValueMemo = React.useMemo(() => btnCtxValue, _toConsumableArray(Object.values(btnCtxValue)));\n  // ====================== Footer Origin Node ======================\n  const footerOriginNode = /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(CancelBtn, null), /*#__PURE__*/React.createElement(OkBtn, null));\n  const hasTitle = props.title !== undefined && props.title !== null;\n  const bodyCls = `${confirmPrefixCls}-body`;\n  return /*#__PURE__*/React.createElement(\"div\", {\n    className: `${confirmPrefixCls}-body-wrapper`\n  }, /*#__PURE__*/React.createElement(\"div\", {\n    className: classNames(bodyCls, {\n      [`${bodyCls}-has-title`]: hasTitle\n    })\n  }, mergedIcon, /*#__PURE__*/React.createElement(\"div\", {\n    className: `${confirmPrefixCls}-paragraph`\n  }, hasTitle && /*#__PURE__*/React.createElement(\"span\", {\n    className: `${confirmPrefixCls}-title`\n  }, props.title), /*#__PURE__*/React.createElement(\"div\", {\n    className: `${confirmPrefixCls}-content`\n  }, props.content))), footer === undefined || typeof footer === 'function' ? (/*#__PURE__*/React.createElement(ModalContextProvider, {\n    value: btnCtxValueMemo\n  }, /*#__PURE__*/React.createElement(\"div\", {\n    className: `${confirmPrefixCls}-btns`\n  }, typeof footer === 'function' ? footer(footerOriginNode, {\n    OkBtn,\n    CancelBtn\n  }) : footerOriginNode))) : footer, /*#__PURE__*/React.createElement(Confirm, {\n    prefixCls: prefixCls\n  }));\n}\nconst ConfirmDialog = props => {\n  const {\n    close,\n    zIndex,\n    afterClose,\n    open,\n    keyboard,\n    centered,\n    getContainer,\n    maskStyle,\n    direction,\n    prefixCls,\n    wrapClassName,\n    rootPrefixCls,\n    bodyStyle,\n    closable = false,\n    closeIcon,\n    modalRender,\n    focusTriggerAfterClose,\n    onConfirm,\n    styles\n  } = props;\n  if (process.env.NODE_ENV !== 'production') {\n    const warning = devUseWarning('Modal');\n    [['visible', 'open'], ['bodyStyle', 'styles.body'], ['maskStyle', 'styles.mask']].forEach(_ref => {\n      let [deprecatedName, newName] = _ref;\n      warning.deprecated(!(deprecatedName in props), deprecatedName, newName);\n    });\n  }\n  const confirmPrefixCls = `${prefixCls}-confirm`;\n  const width = props.width || 416;\n  const style = props.style || {};\n  const mask = props.mask === undefined ? true : props.mask;\n  // 默认为 false，保持旧版默认行为\n  const maskClosable = props.maskClosable === undefined ? false : props.maskClosable;\n  const classString = classNames(confirmPrefixCls, `${confirmPrefixCls}-${props.type}`, {\n    [`${confirmPrefixCls}-rtl`]: direction === 'rtl'\n  }, props.className);\n  // ========================= zIndex =========================\n  const [, token] = useToken();\n  const mergedZIndex = React.useMemo(() => {\n    if (zIndex !== undefined) {\n      return zIndex;\n    }\n    // Static always use max zIndex\n    return token.zIndexPopupBase + CONTAINER_MAX_OFFSET;\n  }, [zIndex, token]);\n  // ========================= Render =========================\n  return /*#__PURE__*/React.createElement(Modal, {\n    prefixCls: prefixCls,\n    className: classString,\n    wrapClassName: classNames({\n      [`${confirmPrefixCls}-centered`]: !!props.centered\n    }, wrapClassName),\n    onCancel: () => {\n      close === null || close === void 0 ? void 0 : close({\n        triggerCancel: true\n      });\n      onConfirm === null || onConfirm === void 0 ? void 0 : onConfirm(false);\n    },\n    open: open,\n    title: \"\",\n    footer: null,\n    transitionName: getTransitionName(rootPrefixCls || '', 'zoom', props.transitionName),\n    maskTransitionName: getTransitionName(rootPrefixCls || '', 'fade', props.maskTransitionName),\n    mask: mask,\n    maskClosable: maskClosable,\n    style: style,\n    styles: Object.assign({\n      body: bodyStyle,\n      mask: maskStyle\n    }, styles),\n    width: width,\n    zIndex: mergedZIndex,\n    afterClose: afterClose,\n    keyboard: keyboard,\n    centered: centered,\n    getContainer: getContainer,\n    closable: closable,\n    closeIcon: closeIcon,\n    modalRender: modalRender,\n    focusTriggerAfterClose: focusTriggerAfterClose\n  }, /*#__PURE__*/React.createElement(ConfirmContent, Object.assign({}, props, {\n    confirmPrefixCls: confirmPrefixCls\n  })));\n};\nconst ConfirmDialogWrapper = props => {\n  const {\n    rootPrefixCls,\n    iconPrefixCls,\n    direction,\n    theme\n  } = props;\n  return /*#__PURE__*/React.createElement(ConfigProvider, {\n    prefixCls: rootPrefixCls,\n    iconPrefixCls: iconPrefixCls,\n    direction: direction,\n    theme: theme\n  }, /*#__PURE__*/React.createElement(ConfirmDialog, Object.assign({}, props)));\n};\nif (process.env.NODE_ENV !== 'production') {\n  ConfirmDialog.displayName = 'ConfirmDialog';\n  ConfirmDialogWrapper.displayName = 'ConfirmDialogWrapper';\n}\nexport default ConfirmDialogWrapper;","const destroyFns = [];\nexport default destroyFns;","\"use client\";\n\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport React, { useContext } from 'react';\nimport { render as reactRender, unmount as reactUnmount } from \"rc-util/es/React/render\";\nimport warning from '../_util/warning';\nimport ConfigProvider, { ConfigContext, globalConfig, warnContext } from '../config-provider';\nimport ConfirmDialog from './ConfirmDialog';\nimport destroyFns from './destroyFns';\nimport { getConfirmLocale } from './locale';\nlet defaultRootPrefixCls = '';\nfunction getRootPrefixCls() {\n  return defaultRootPrefixCls;\n}\nconst ConfirmDialogWrapper = props => {\n  var _a, _b;\n  const {\n    prefixCls: customizePrefixCls,\n    getContainer,\n    direction\n  } = props;\n  const runtimeLocale = getConfirmLocale();\n  const config = useContext(ConfigContext);\n  const rootPrefixCls = getRootPrefixCls() || config.getPrefixCls();\n  // because Modal.config set rootPrefixCls, which is different from other components\n  const prefixCls = customizePrefixCls || `${rootPrefixCls}-modal`;\n  let mergedGetContainer = getContainer;\n  if (mergedGetContainer === false) {\n    mergedGetContainer = undefined;\n    if (process.env.NODE_ENV !== 'production') {\n      process.env.NODE_ENV !== \"production\" ? warning(false, 'Modal', 'Static method not support `getContainer` to be `false` since it do not have context env.') : void 0;\n    }\n  }\n  return /*#__PURE__*/React.createElement(ConfirmDialog, Object.assign({}, props, {\n    rootPrefixCls: rootPrefixCls,\n    prefixCls: prefixCls,\n    iconPrefixCls: config.iconPrefixCls,\n    theme: config.theme,\n    direction: direction !== null && direction !== void 0 ? direction : config.direction,\n    locale: (_b = (_a = config.locale) === null || _a === void 0 ? void 0 : _a.Modal) !== null && _b !== void 0 ? _b : runtimeLocale,\n    getContainer: mergedGetContainer\n  }));\n};\nexport default function confirm(config) {\n  const global = globalConfig();\n  if (process.env.NODE_ENV !== 'production' && !global.holderRender) {\n    warnContext('Modal');\n  }\n  const container = document.createDocumentFragment();\n  let currentConfig = Object.assign(Object.assign({}, config), {\n    close,\n    open: true\n  });\n  let timeoutId;\n  function destroy() {\n    var _a;\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n    const triggerCancel = args.some(param => param === null || param === void 0 ? void 0 : param.triggerCancel);\n    if (triggerCancel) {\n      var _a2;\n      (_a = config.onCancel) === null || _a === void 0 ? void 0 : (_a2 = _a).call.apply(_a2, [config, () => {}].concat(_toConsumableArray(args.slice(1))));\n    }\n    for (let i = 0; i < destroyFns.length; i++) {\n      const fn = destroyFns[i];\n      if (fn === close) {\n        destroyFns.splice(i, 1);\n        break;\n      }\n    }\n    reactUnmount(container);\n  }\n  function render(props) {\n    clearTimeout(timeoutId);\n    /**\n     * https://github.com/ant-design/ant-design/issues/23623\n     *\n     * Sync render blocks React event. Let's make this async.\n     */\n    timeoutId = setTimeout(() => {\n      const rootPrefixCls = global.getPrefixCls(undefined, getRootPrefixCls());\n      const iconPrefixCls = global.getIconPrefixCls();\n      const theme = global.getTheme();\n      const dom = /*#__PURE__*/React.createElement(ConfirmDialogWrapper, Object.assign({}, props));\n      reactRender(/*#__PURE__*/React.createElement(ConfigProvider, {\n        prefixCls: rootPrefixCls,\n        iconPrefixCls: iconPrefixCls,\n        theme: theme\n      }, global.holderRender ? global.holderRender(dom) : dom), container);\n    });\n  }\n  function close() {\n    for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n      args[_key2] = arguments[_key2];\n    }\n    currentConfig = Object.assign(Object.assign({}, currentConfig), {\n      open: false,\n      afterClose: () => {\n        if (typeof config.afterClose === 'function') {\n          config.afterClose();\n        }\n        // @ts-ignore\n        destroy.apply(this, args);\n      }\n    });\n    // Legacy support\n    if (currentConfig.visible) {\n      delete currentConfig.visible;\n    }\n    render(currentConfig);\n  }\n  function update(configUpdate) {\n    if (typeof configUpdate === 'function') {\n      currentConfig = configUpdate(currentConfig);\n    } else {\n      currentConfig = Object.assign(Object.assign({}, currentConfig), configUpdate);\n    }\n    render(currentConfig);\n  }\n  render(currentConfig);\n  destroyFns.push(close);\n  return {\n    destroy: close,\n    update\n  };\n}\nexport function withWarn(props) {\n  return Object.assign(Object.assign({}, props), {\n    type: 'warning'\n  });\n}\nexport function withInfo(props) {\n  return Object.assign(Object.assign({}, props), {\n    type: 'info'\n  });\n}\nexport function withSuccess(props) {\n  return Object.assign(Object.assign({}, props), {\n    type: 'success'\n  });\n}\nexport function withError(props) {\n  return Object.assign(Object.assign({}, props), {\n    type: 'error'\n  });\n}\nexport function withConfirm(props) {\n  return Object.assign(Object.assign({}, props), {\n    type: 'confirm'\n  });\n}\nexport function modalGlobalConfig(_ref) {\n  let {\n    rootPrefixCls\n  } = _ref;\n  process.env.NODE_ENV !== \"production\" ? warning(false, 'Modal', 'Modal.config is deprecated. Please use ConfigProvider.config instead.') : void 0;\n  defaultRootPrefixCls = rootPrefixCls;\n}","\"use client\";\n\nimport * as React from 'react';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport ConfigProvider, { ConfigContext } from '../config-provider';\nexport function withPureRenderTheme(Component) {\n  return props => (/*#__PURE__*/React.createElement(ConfigProvider, {\n    theme: {\n      token: {\n        motion: false,\n        zIndexPopupBase: 0\n      }\n    }\n  }, /*#__PURE__*/React.createElement(Component, Object.assign({}, props))));\n}\n/* istanbul ignore next */\nconst genPurePanel = (Component, defaultPrefixCls, getDropdownCls, postProps) => {\n  const PurePanel = props => {\n    const {\n      prefixCls: customizePrefixCls,\n      style\n    } = props;\n    const holderRef = React.useRef(null);\n    const [popupHeight, setPopupHeight] = React.useState(0);\n    const [popupWidth, setPopupWidth] = React.useState(0);\n    const [open, setOpen] = useMergedState(false, {\n      value: props.open\n    });\n    const {\n      getPrefixCls\n    } = React.useContext(ConfigContext);\n    const prefixCls = getPrefixCls(defaultPrefixCls || 'select', customizePrefixCls);\n    React.useEffect(() => {\n      // We do not care about ssr\n      setOpen(true);\n      if (typeof ResizeObserver !== 'undefined') {\n        const resizeObserver = new ResizeObserver(entries => {\n          const element = entries[0].target;\n          setPopupHeight(element.offsetHeight + 8);\n          setPopupWidth(element.offsetWidth);\n        });\n        const interval = setInterval(() => {\n          var _a;\n          const dropdownCls = getDropdownCls ? `.${getDropdownCls(prefixCls)}` : `.${prefixCls}-dropdown`;\n          const popup = (_a = holderRef.current) === null || _a === void 0 ? void 0 : _a.querySelector(dropdownCls);\n          if (popup) {\n            clearInterval(interval);\n            resizeObserver.observe(popup);\n          }\n        }, 10);\n        return () => {\n          clearInterval(interval);\n          resizeObserver.disconnect();\n        };\n      }\n    }, []);\n    let mergedProps = Object.assign(Object.assign({}, props), {\n      style: Object.assign(Object.assign({}, style), {\n        margin: 0\n      }),\n      open,\n      visible: open,\n      getPopupContainer: () => holderRef.current\n    });\n    if (postProps) {\n      mergedProps = postProps(mergedProps);\n    }\n    const mergedStyle = {\n      paddingBottom: popupHeight,\n      position: 'relative',\n      minWidth: popupWidth\n    };\n    return /*#__PURE__*/React.createElement(\"div\", {\n      ref: holderRef,\n      style: mergedStyle\n    }, /*#__PURE__*/React.createElement(Component, Object.assign({}, mergedProps)));\n  };\n  return withPureRenderTheme(PurePanel);\n};\nexport default genPurePanel;","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n  var t = {};\n  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n  }\n  return t;\n};\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { Panel } from 'rc-dialog';\nimport { withPureRenderTheme } from '../_util/PurePanel';\nimport { ConfigContext } from '../config-provider';\nimport useCSSVarCls from '../config-provider/hooks/useCSSVarCls';\nimport { ConfirmContent } from './ConfirmDialog';\nimport { Footer, renderCloseIcon } from './shared';\nimport useStyle from './style';\nconst PurePanel = props => {\n  const {\n      prefixCls: customizePrefixCls,\n      className,\n      closeIcon,\n      closable,\n      type,\n      title,\n      children,\n      footer\n    } = props,\n    restProps = __rest(props, [\"prefixCls\", \"className\", \"closeIcon\", \"closable\", \"type\", \"title\", \"children\", \"footer\"]);\n  const {\n    getPrefixCls\n  } = React.useContext(ConfigContext);\n  const rootPrefixCls = getPrefixCls();\n  const prefixCls = customizePrefixCls || getPrefixCls('modal');\n  const rootCls = useCSSVarCls(rootPrefixCls);\n  const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls, rootCls);\n  const confirmPrefixCls = `${prefixCls}-confirm`;\n  // Choose target props by confirm mark\n  let additionalProps = {};\n  if (type) {\n    additionalProps = {\n      closable: closable !== null && closable !== void 0 ? closable : false,\n      title: '',\n      footer: '',\n      children: (/*#__PURE__*/React.createElement(ConfirmContent, Object.assign({}, props, {\n        prefixCls: prefixCls,\n        confirmPrefixCls: confirmPrefixCls,\n        rootPrefixCls: rootPrefixCls,\n        content: children\n      })))\n    };\n  } else {\n    additionalProps = {\n      closable: closable !== null && closable !== void 0 ? closable : true,\n      title,\n      footer: footer !== null && /*#__PURE__*/React.createElement(Footer, Object.assign({}, props)),\n      children\n    };\n  }\n  return wrapCSSVar(/*#__PURE__*/React.createElement(Panel, Object.assign({\n    prefixCls: prefixCls,\n    className: classNames(hashId, `${prefixCls}-pure-panel`, type && confirmPrefixCls, type && `${confirmPrefixCls}-${type}`, className, cssVarCls, rootCls)\n  }, restProps, {\n    closeIcon: renderCloseIcon(prefixCls, closeIcon),\n    closable: closable\n  }, additionalProps)));\n};\nexport default withPureRenderTheme(PurePanel);","\"use client\";\n\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nvar __rest = this && this.__rest || function (s, e) {\n  var t = {};\n  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n  }\n  return t;\n};\nimport * as React from 'react';\nimport { ConfigContext } from '../../config-provider';\nimport defaultLocale from '../../locale/en_US';\nimport useLocale from '../../locale/useLocale';\nimport ConfirmDialog from '../ConfirmDialog';\nconst HookModal = (_a, ref) => {\n  var _b;\n  var {\n      afterClose: hookAfterClose,\n      config\n    } = _a,\n    restProps = __rest(_a, [\"afterClose\", \"config\"]);\n  const [open, setOpen] = React.useState(true);\n  const [innerConfig, setInnerConfig] = React.useState(config);\n  const {\n    direction,\n    getPrefixCls\n  } = React.useContext(ConfigContext);\n  const prefixCls = getPrefixCls('modal');\n  const rootPrefixCls = getPrefixCls();\n  const afterClose = () => {\n    var _a;\n    hookAfterClose();\n    (_a = innerConfig.afterClose) === null || _a === void 0 ? void 0 : _a.call(innerConfig);\n  };\n  const close = function () {\n    var _a;\n    setOpen(false);\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n    const triggerCancel = args.some(param => param === null || param === void 0 ? void 0 : param.triggerCancel);\n    if (triggerCancel) {\n      var _a2;\n      (_a = innerConfig.onCancel) === null || _a === void 0 ? void 0 : (_a2 = _a).call.apply(_a2, [innerConfig, () => {}].concat(_toConsumableArray(args.slice(1))));\n    }\n  };\n  React.useImperativeHandle(ref, () => ({\n    destroy: close,\n    update: newConfig => {\n      setInnerConfig(originConfig => Object.assign(Object.assign({}, originConfig), newConfig));\n    }\n  }));\n  const mergedOkCancel = (_b = innerConfig.okCancel) !== null && _b !== void 0 ? _b : innerConfig.type === 'confirm';\n  const [contextLocale] = useLocale('Modal', defaultLocale.Modal);\n  return /*#__PURE__*/React.createElement(ConfirmDialog, Object.assign({\n    prefixCls: prefixCls,\n    rootPrefixCls: rootPrefixCls\n  }, innerConfig, {\n    close: close,\n    open: open,\n    afterClose: afterClose,\n    okText: innerConfig.okText || (mergedOkCancel ? contextLocale === null || contextLocale === void 0 ? void 0 : contextLocale.okText : contextLocale === null || contextLocale === void 0 ? void 0 : contextLocale.justOkText),\n    direction: innerConfig.direction || direction,\n    cancelText: innerConfig.cancelText || (contextLocale === null || contextLocale === void 0 ? void 0 : contextLocale.cancelText)\n  }, restProps));\n};\nexport default /*#__PURE__*/React.forwardRef(HookModal);","\"use client\";\n\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\nimport usePatchElement from '../../_util/hooks/usePatchElement';\nimport { withConfirm, withError, withInfo, withSuccess, withWarn } from '../confirm';\nimport destroyFns from '../destroyFns';\nimport HookModal from './HookModal';\nlet uuid = 0;\nconst ElementsHolder = /*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef((_props, ref) => {\n  const [elements, patchElement] = usePatchElement();\n  React.useImperativeHandle(ref, () => ({\n    patchElement\n  }), []);\n  return /*#__PURE__*/React.createElement(React.Fragment, null, elements);\n}));\nfunction useModal() {\n  const holderRef = React.useRef(null);\n  // ========================== Effect ==========================\n  const [actionQueue, setActionQueue] = React.useState([]);\n  React.useEffect(() => {\n    if (actionQueue.length) {\n      const cloneQueue = _toConsumableArray(actionQueue);\n      cloneQueue.forEach(action => {\n        action();\n      });\n      setActionQueue([]);\n    }\n  }, [actionQueue]);\n  // =========================== Hook ===========================\n  const getConfirmFunc = React.useCallback(withFunc => function hookConfirm(config) {\n    var _a;\n    uuid += 1;\n    const modalRef = /*#__PURE__*/React.createRef();\n    // Proxy to promise with `onClose`\n    let resolvePromise;\n    const promise = new Promise(resolve => {\n      resolvePromise = resolve;\n    });\n    let silent = false;\n    let closeFunc;\n    const modal = /*#__PURE__*/React.createElement(HookModal, {\n      key: `modal-${uuid}`,\n      config: withFunc(config),\n      ref: modalRef,\n      afterClose: () => {\n        closeFunc === null || closeFunc === void 0 ? void 0 : closeFunc();\n      },\n      isSilent: () => silent,\n      onConfirm: confirmed => {\n        resolvePromise(confirmed);\n      }\n    });\n    closeFunc = (_a = holderRef.current) === null || _a === void 0 ? void 0 : _a.patchElement(modal);\n    if (closeFunc) {\n      destroyFns.push(closeFunc);\n    }\n    const instance = {\n      destroy: () => {\n        function destroyAction() {\n          var _a;\n          (_a = modalRef.current) === null || _a === void 0 ? void 0 : _a.destroy();\n        }\n        if (modalRef.current) {\n          destroyAction();\n        } else {\n          setActionQueue(prev => [].concat(_toConsumableArray(prev), [destroyAction]));\n        }\n      },\n      update: newConfig => {\n        function updateAction() {\n          var _a;\n          (_a = modalRef.current) === null || _a === void 0 ? void 0 : _a.update(newConfig);\n        }\n        if (modalRef.current) {\n          updateAction();\n        } else {\n          setActionQueue(prev => [].concat(_toConsumableArray(prev), [updateAction]));\n        }\n      },\n      then: resolve => {\n        silent = true;\n        return promise.then(resolve);\n      }\n    };\n    return instance;\n  }, []);\n  const fns = React.useMemo(() => ({\n    info: getConfirmFunc(withInfo),\n    success: getConfirmFunc(withSuccess),\n    error: getConfirmFunc(withError),\n    warning: getConfirmFunc(withWarn),\n    confirm: getConfirmFunc(withConfirm)\n  }), []);\n  return [fns, /*#__PURE__*/React.createElement(ElementsHolder, {\n    key: \"modal-holder\",\n    ref: holderRef\n  })];\n}\nexport default useModal;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\nexport default function usePatchElement() {\n  const [elements, setElements] = React.useState([]);\n  const patchElement = React.useCallback(element => {\n    // append a new element to elements (and create a new ref)\n    setElements(originElements => [].concat(_toConsumableArray(originElements), [element]));\n    // return a function that removes the new element out of elements (and create a new ref)\n    // it works a little like useEffect\n    return () => {\n      setElements(originElements => originElements.filter(ele => ele !== element));\n    };\n  }, []);\n  return [elements, patchElement];\n}","\"use client\";\n\nimport confirm, { modalGlobalConfig, withConfirm, withError, withInfo, withSuccess, withWarn } from './confirm';\nimport destroyFns from './destroyFns';\nimport OriginModal from './Modal';\nimport PurePanel from './PurePanel';\nimport useModal from './useModal';\nfunction modalWarn(props) {\n  return confirm(withWarn(props));\n}\nconst Modal = OriginModal;\nModal.useModal = useModal;\nModal.info = function infoFn(props) {\n  return confirm(withInfo(props));\n};\nModal.success = function successFn(props) {\n  return confirm(withSuccess(props));\n};\nModal.error = function errorFn(props) {\n  return confirm(withError(props));\n};\nModal.warning = modalWarn;\nModal.warn = modalWarn;\nModal.confirm = function confirmFn(props) {\n  return confirm(withConfirm(props));\n};\nModal.destroyAll = function destroyAllFn() {\n  while (destroyFns.length) {\n    const close = destroyFns.pop();\n    if (close) {\n      close();\n    }\n  }\n};\nModal.config = modalGlobalConfig;\nModal._InternalPanelDoNotUseOrYouWillBeFired = PurePanel;\nif (process.env.NODE_ENV !== 'production') {\n  Modal.displayName = 'Modal';\n}\nexport default Modal;","export var EXPAND_COLUMN = {};\nexport var INTERNAL_HOOKS = 'rc-table-internal-hook';","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport useEvent from \"rc-util/es/hooks/useEvent\";\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport isEqual from \"rc-util/es/isEqual\";\nimport * as React from 'react';\nimport { unstable_batchedUpdates } from 'react-dom';\nexport function createContext(defaultValue) {\n  var Context = /*#__PURE__*/React.createContext(undefined);\n  var Provider = function Provider(_ref) {\n    var value = _ref.value,\n      children = _ref.children;\n    var valueRef = React.useRef(value);\n    valueRef.current = value;\n    var _React$useState = React.useState(function () {\n        return {\n          getValue: function getValue() {\n            return valueRef.current;\n          },\n          listeners: new Set()\n        };\n      }),\n      _React$useState2 = _slicedToArray(_React$useState, 1),\n      context = _React$useState2[0];\n    useLayoutEffect(function () {\n      unstable_batchedUpdates(function () {\n        context.listeners.forEach(function (listener) {\n          listener(value);\n        });\n      });\n    }, [value]);\n    return /*#__PURE__*/React.createElement(Context.Provider, {\n      value: context\n    }, children);\n  };\n  return {\n    Context: Context,\n    Provider: Provider,\n    defaultValue: defaultValue\n  };\n}\n\n/** e.g. useSelect(userContext) => user */\n\n/** e.g. useSelect(userContext, user => user.name) => user.name */\n\n/** e.g. useSelect(userContext, ['name', 'age']) => user { name, age } */\n\n/** e.g. useSelect(userContext, 'name') => user.name */\n\nexport function useContext(holder, selector) {\n  var eventSelector = useEvent(typeof selector === 'function' ? selector : function (ctx) {\n    if (selector === undefined) {\n      return ctx;\n    }\n    if (!Array.isArray(selector)) {\n      return ctx[selector];\n    }\n    var obj = {};\n    selector.forEach(function (key) {\n      obj[key] = ctx[key];\n    });\n    return obj;\n  });\n  var context = React.useContext(holder === null || holder === void 0 ? void 0 : holder.Context);\n  var _ref2 = context || {},\n    listeners = _ref2.listeners,\n    getValue = _ref2.getValue;\n  var valueRef = React.useRef();\n  valueRef.current = eventSelector(context ? getValue() : holder === null || holder === void 0 ? void 0 : holder.defaultValue);\n  var _React$useState3 = React.useState({}),\n    _React$useState4 = _slicedToArray(_React$useState3, 2),\n    forceUpdate = _React$useState4[1];\n  useLayoutEffect(function () {\n    if (!context) {\n      return;\n    }\n    function trigger(nextValue) {\n      var nextSelectorValue = eventSelector(nextValue);\n      if (!isEqual(valueRef.current, nextSelectorValue, true)) {\n        forceUpdate({});\n      }\n    }\n    listeners.add(trigger);\n    return function () {\n      listeners.delete(trigger);\n    };\n  }, [context]);\n  return valueRef.current;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { supportRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\n/**\n * Create Immutable pair for `makeImmutable` and `responseImmutable`.\n */\nexport default function createImmutable() {\n  var ImmutableContext = /*#__PURE__*/React.createContext(null);\n\n  /**\n   * Get render update mark by `makeImmutable` root.\n   * Do not deps on the return value as render times\n   * but only use for `useMemo` or `useCallback` deps.\n   */\n  function useImmutableMark() {\n    return React.useContext(ImmutableContext);\n  }\n\n  /**\n  * Wrapped Component will be marked as Immutable.\n  * When Component parent trigger render,\n  * it will notice children component (use with `responseImmutable`) node that parent has updated.\n  * @param Component Passed Component\n  * @param triggerRender Customize trigger `responseImmutable` children re-render logic. Default will always trigger re-render when this component re-render.\n  */\n  function makeImmutable(Component, shouldTriggerRender) {\n    var refAble = supportRef(Component);\n    var ImmutableComponent = function ImmutableComponent(props, ref) {\n      var refProps = refAble ? {\n        ref: ref\n      } : {};\n      var renderTimesRef = React.useRef(0);\n      var prevProps = React.useRef(props);\n\n      // If parent has the context, we do not wrap it\n      var mark = useImmutableMark();\n      if (mark !== null) {\n        return /*#__PURE__*/React.createElement(Component, _extends({}, props, refProps));\n      }\n      if (\n      // Always trigger re-render if not provide `notTriggerRender`\n      !shouldTriggerRender || shouldTriggerRender(prevProps.current, props)) {\n        renderTimesRef.current += 1;\n      }\n      prevProps.current = props;\n      return /*#__PURE__*/React.createElement(ImmutableContext.Provider, {\n        value: renderTimesRef.current\n      }, /*#__PURE__*/React.createElement(Component, _extends({}, props, refProps)));\n    };\n    if (process.env.NODE_ENV !== 'production') {\n      ImmutableComponent.displayName = \"ImmutableRoot(\".concat(Component.displayName || Component.name, \")\");\n    }\n    return refAble ? /*#__PURE__*/React.forwardRef(ImmutableComponent) : ImmutableComponent;\n  }\n\n  /**\n   * Wrapped Component with `React.memo`.\n   * But will rerender when parent with `makeImmutable` rerender.\n   */\n  function responseImmutable(Component, propsAreEqual) {\n    var refAble = supportRef(Component);\n    var ImmutableComponent = function ImmutableComponent(props, ref) {\n      var refProps = refAble ? {\n        ref: ref\n      } : {};\n      useImmutableMark();\n      return /*#__PURE__*/React.createElement(Component, _extends({}, props, refProps));\n    };\n    if (process.env.NODE_ENV !== 'production') {\n      ImmutableComponent.displayName = \"ImmutableResponse(\".concat(Component.displayName || Component.name, \")\");\n    }\n    return refAble ? /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(ImmutableComponent), propsAreEqual) : /*#__PURE__*/React.memo(ImmutableComponent, propsAreEqual);\n  }\n  return {\n    makeImmutable: makeImmutable,\n    responseImmutable: responseImmutable,\n    useImmutableMark: useImmutableMark\n  };\n}","import { createContext, useContext } from \"./context\";\nimport createImmutable from \"./Immutable\";\n\n// For legacy usage, we export it directly\nvar _createImmutable = createImmutable(),\n  makeImmutable = _createImmutable.makeImmutable,\n  responseImmutable = _createImmutable.responseImmutable,\n  useImmutableMark = _createImmutable.useImmutableMark;\nexport { createContext, useContext, createImmutable, makeImmutable, responseImmutable, useImmutableMark };","import { createContext, createImmutable } from '@rc-component/context';\nvar _createImmutable = createImmutable(),\n  makeImmutable = _createImmutable.makeImmutable,\n  responseImmutable = _createImmutable.responseImmutable,\n  useImmutableMark = _createImmutable.useImmutableMark;\nexport { makeImmutable, responseImmutable, useImmutableMark };\nvar TableContext = createContext();\nexport default TableContext;","import * as React from 'react';\n// TODO: Remove when use `responsiveImmutable`\nvar PerfContext = /*#__PURE__*/React.createContext({\n  renderWithProps: false\n});\nexport default PerfContext;","var INTERNAL_KEY_PREFIX = 'RC_TABLE_KEY';\nfunction toArray(arr) {\n  if (arr === undefined || arr === null) {\n    return [];\n  }\n  return Array.isArray(arr) ? arr : [arr];\n}\nexport function getColumnsKey(columns) {\n  var columnKeys = [];\n  var keys = {};\n  columns.forEach(function (column) {\n    var _ref = column || {},\n      key = _ref.key,\n      dataIndex = _ref.dataIndex;\n    var mergedKey = key || toArray(dataIndex).join('-') || INTERNAL_KEY_PREFIX;\n    while (keys[mergedKey]) {\n      mergedKey = \"\".concat(mergedKey, \"_next\");\n    }\n    keys[mergedKey] = true;\n    columnKeys.push(mergedKey);\n  });\n  return columnKeys;\n}\nexport function validateValue(val) {\n  return val !== null && val !== undefined;\n}\nexport function validNumberValue(value) {\n  return typeof value === 'number' && !Number.isNaN(value);\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport useMemo from \"rc-util/es/hooks/useMemo\";\nimport isEqual from \"rc-util/es/isEqual\";\nimport getValue from \"rc-util/es/utils/get\";\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport PerfContext from \"../context/PerfContext\";\nimport { validateValue } from \"../utils/valueUtil\";\nimport { useImmutableMark } from \"../context/TableContext\";\nfunction isRenderCell(data) {\n  return data && _typeof(data) === 'object' && !Array.isArray(data) && ! /*#__PURE__*/React.isValidElement(data);\n}\nexport default function useCellRender(record, dataIndex, renderIndex, children, render, shouldCellUpdate) {\n  // TODO: Remove this after next major version\n  var perfRecord = React.useContext(PerfContext);\n  var mark = useImmutableMark();\n\n  // ======================== Render ========================\n  var retData = useMemo(function () {\n    if (validateValue(children)) {\n      return [children];\n    }\n    var path = dataIndex === null || dataIndex === undefined || dataIndex === '' ? [] : Array.isArray(dataIndex) ? dataIndex : [dataIndex];\n    var value = getValue(record, path);\n\n    // Customize render node\n    var returnChildNode = value;\n    var returnCellProps = undefined;\n    if (render) {\n      var renderData = render(value, record, renderIndex);\n      if (isRenderCell(renderData)) {\n        if (process.env.NODE_ENV !== 'production') {\n          warning(false, '`columns.render` return cell props is deprecated with perf issue, please use `onCell` instead.');\n        }\n        returnChildNode = renderData.children;\n        returnCellProps = renderData.props;\n        perfRecord.renderWithProps = true;\n      } else {\n        returnChildNode = renderData;\n      }\n    }\n    return [returnChildNode, returnCellProps];\n  }, [\n  // Force update deps\n  mark,\n  // Normal deps\n  record, children, dataIndex, render, renderIndex], function (prev, next) {\n    if (shouldCellUpdate) {\n      var _prev = _slicedToArray(prev, 2),\n        prevRecord = _prev[1];\n      var _next = _slicedToArray(next, 2),\n        nextRecord = _next[1];\n      return shouldCellUpdate(nextRecord, prevRecord);\n    }\n\n    // Legacy mode should always update\n    if (perfRecord.renderWithProps) {\n      return true;\n    }\n    return !isEqual(prev, next, true);\n  });\n  return retData;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useContext } from '@rc-component/context';\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport TableContext from \"../context/TableContext\";\nimport devRenderTimes from \"../hooks/useRenderTimes\";\nimport useCellRender from \"./useCellRender\";\nimport useHoverState from \"./useHoverState\";\nimport { useEvent } from 'rc-util';\nvar getTitleFromCellRenderChildren = function getTitleFromCellRenderChildren(_ref) {\n  var ellipsis = _ref.ellipsis,\n    rowType = _ref.rowType,\n    children = _ref.children;\n  var title;\n  var ellipsisConfig = ellipsis === true ? {\n    showTitle: true\n  } : ellipsis;\n  if (ellipsisConfig && (ellipsisConfig.showTitle || rowType === 'header')) {\n    if (typeof children === 'string' || typeof children === 'number') {\n      title = children.toString();\n    } else if ( /*#__PURE__*/React.isValidElement(children) && typeof children.props.children === 'string') {\n      title = children.props.children;\n    }\n  }\n  return title;\n};\nfunction Cell(props) {\n  var _ref2, _ref3, _legacyCellProps$colS, _ref4, _ref5, _legacyCellProps$rowS, _additionalProps$titl, _classNames;\n  if (process.env.NODE_ENV !== 'production') {\n    devRenderTimes(props);\n  }\n  var Component = props.component,\n    children = props.children,\n    ellipsis = props.ellipsis,\n    scope = props.scope,\n    prefixCls = props.prefixCls,\n    className = props.className,\n    align = props.align,\n    record = props.record,\n    render = props.render,\n    dataIndex = props.dataIndex,\n    renderIndex = props.renderIndex,\n    shouldCellUpdate = props.shouldCellUpdate,\n    index = props.index,\n    rowType = props.rowType,\n    colSpan = props.colSpan,\n    rowSpan = props.rowSpan,\n    fixLeft = props.fixLeft,\n    fixRight = props.fixRight,\n    firstFixLeft = props.firstFixLeft,\n    lastFixLeft = props.lastFixLeft,\n    firstFixRight = props.firstFixRight,\n    lastFixRight = props.lastFixRight,\n    appendNode = props.appendNode,\n    _props$additionalProp = props.additionalProps,\n    additionalProps = _props$additionalProp === void 0 ? {} : _props$additionalProp,\n    isSticky = props.isSticky;\n  var cellPrefixCls = \"\".concat(prefixCls, \"-cell\");\n  var _useContext = useContext(TableContext, ['supportSticky', 'allColumnsFixedLeft', 'rowHoverable']),\n    supportSticky = _useContext.supportSticky,\n    allColumnsFixedLeft = _useContext.allColumnsFixedLeft,\n    rowHoverable = _useContext.rowHoverable;\n\n  // ====================== Value =======================\n  var _useCellRender = useCellRender(record, dataIndex, renderIndex, children, render, shouldCellUpdate),\n    _useCellRender2 = _slicedToArray(_useCellRender, 2),\n    childNode = _useCellRender2[0],\n    legacyCellProps = _useCellRender2[1];\n\n  // ====================== Fixed =======================\n  var fixedStyle = {};\n  var isFixLeft = typeof fixLeft === 'number' && supportSticky;\n  var isFixRight = typeof fixRight === 'number' && supportSticky;\n  if (isFixLeft) {\n    fixedStyle.position = 'sticky';\n    fixedStyle.left = fixLeft;\n  }\n  if (isFixRight) {\n    fixedStyle.position = 'sticky';\n    fixedStyle.right = fixRight;\n  }\n\n  // ================ RowSpan & ColSpan =================\n  var mergedColSpan = (_ref2 = (_ref3 = (_legacyCellProps$colS = legacyCellProps === null || legacyCellProps === void 0 ? void 0 : legacyCellProps.colSpan) !== null && _legacyCellProps$colS !== void 0 ? _legacyCellProps$colS : additionalProps.colSpan) !== null && _ref3 !== void 0 ? _ref3 : colSpan) !== null && _ref2 !== void 0 ? _ref2 : 1;\n  var mergedRowSpan = (_ref4 = (_ref5 = (_legacyCellProps$rowS = legacyCellProps === null || legacyCellProps === void 0 ? void 0 : legacyCellProps.rowSpan) !== null && _legacyCellProps$rowS !== void 0 ? _legacyCellProps$rowS : additionalProps.rowSpan) !== null && _ref5 !== void 0 ? _ref5 : rowSpan) !== null && _ref4 !== void 0 ? _ref4 : 1;\n\n  // ====================== Hover =======================\n  var _useHoverState = useHoverState(index, mergedRowSpan),\n    _useHoverState2 = _slicedToArray(_useHoverState, 2),\n    hovering = _useHoverState2[0],\n    onHover = _useHoverState2[1];\n  var onMouseEnter = useEvent(function (event) {\n    var _additionalProps$onMo;\n    if (record) {\n      onHover(index, index + mergedRowSpan - 1);\n    }\n    additionalProps === null || additionalProps === void 0 || (_additionalProps$onMo = additionalProps.onMouseEnter) === null || _additionalProps$onMo === void 0 || _additionalProps$onMo.call(additionalProps, event);\n  });\n  var onMouseLeave = useEvent(function (event) {\n    var _additionalProps$onMo2;\n    if (record) {\n      onHover(-1, -1);\n    }\n    additionalProps === null || additionalProps === void 0 || (_additionalProps$onMo2 = additionalProps.onMouseLeave) === null || _additionalProps$onMo2 === void 0 || _additionalProps$onMo2.call(additionalProps, event);\n  });\n\n  // ====================== Render ======================\n  if (mergedColSpan === 0 || mergedRowSpan === 0) {\n    return null;\n  }\n\n  // >>>>> Title\n  var title = (_additionalProps$titl = additionalProps.title) !== null && _additionalProps$titl !== void 0 ? _additionalProps$titl : getTitleFromCellRenderChildren({\n    rowType: rowType,\n    ellipsis: ellipsis,\n    children: childNode\n  });\n\n  // >>>>> ClassName\n  var mergedClassName = classNames(cellPrefixCls, className, (_classNames = {}, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_classNames, \"\".concat(cellPrefixCls, \"-fix-left\"), isFixLeft && supportSticky), \"\".concat(cellPrefixCls, \"-fix-left-first\"), firstFixLeft && supportSticky), \"\".concat(cellPrefixCls, \"-fix-left-last\"), lastFixLeft && supportSticky), \"\".concat(cellPrefixCls, \"-fix-left-all\"), lastFixLeft && allColumnsFixedLeft && supportSticky), \"\".concat(cellPrefixCls, \"-fix-right\"), isFixRight && supportSticky), \"\".concat(cellPrefixCls, \"-fix-right-first\"), firstFixRight && supportSticky), \"\".concat(cellPrefixCls, \"-fix-right-last\"), lastFixRight && supportSticky), \"\".concat(cellPrefixCls, \"-ellipsis\"), ellipsis), \"\".concat(cellPrefixCls, \"-with-append\"), appendNode), \"\".concat(cellPrefixCls, \"-fix-sticky\"), (isFixLeft || isFixRight) && isSticky && supportSticky), _defineProperty(_classNames, \"\".concat(cellPrefixCls, \"-row-hover\"), !legacyCellProps && hovering)), additionalProps.className, legacyCellProps === null || legacyCellProps === void 0 ? void 0 : legacyCellProps.className);\n\n  // >>>>> Style\n  var alignStyle = {};\n  if (align) {\n    alignStyle.textAlign = align;\n  }\n  var mergedStyle = _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, fixedStyle), additionalProps.style), alignStyle), legacyCellProps === null || legacyCellProps === void 0 ? void 0 : legacyCellProps.style);\n\n  // >>>>> Children Node\n  var mergedChildNode = childNode;\n\n  // Not crash if final `childNode` is not validate ReactNode\n  if (_typeof(mergedChildNode) === 'object' && !Array.isArray(mergedChildNode) && ! /*#__PURE__*/React.isValidElement(mergedChildNode)) {\n    mergedChildNode = null;\n  }\n  if (ellipsis && (lastFixLeft || firstFixRight)) {\n    mergedChildNode = /*#__PURE__*/React.createElement(\"span\", {\n      className: \"\".concat(cellPrefixCls, \"-content\")\n    }, mergedChildNode);\n  }\n  return /*#__PURE__*/React.createElement(Component, _extends({}, legacyCellProps, additionalProps, {\n    className: mergedClassName,\n    style: mergedStyle\n    // A11y\n    ,\n    title: title,\n    scope: scope\n    // Hover\n    ,\n    onMouseEnter: rowHoverable ? onMouseEnter : undefined,\n    onMouseLeave: rowHoverable ? onMouseLeave : undefined\n    //Span\n    ,\n    colSpan: mergedColSpan !== 1 ? mergedColSpan : null,\n    rowSpan: mergedRowSpan !== 1 ? mergedRowSpan : null\n  }), appendNode, mergedChildNode);\n}\nexport default /*#__PURE__*/React.memo(Cell);","import { useContext } from '@rc-component/context';\nimport TableContext from \"../context/TableContext\";\n/** Check if cell is in hover range */\nfunction inHoverRange(cellStartRow, cellRowSpan, startRow, endRow) {\n  var cellEndRow = cellStartRow + cellRowSpan - 1;\n  return cellStartRow <= endRow && cellEndRow >= startRow;\n}\nexport default function useHoverState(rowIndex, rowSpan) {\n  return useContext(TableContext, function (ctx) {\n    var hovering = inHoverRange(rowIndex, rowSpan || 1, ctx.hoverStartRow, ctx.hoverEndRow);\n    return [hovering, ctx.onHover];\n  });\n}","export function getCellFixedInfo(colStart, colEnd, columns, stickyOffsets, direction) {\n  var startColumn = columns[colStart] || {};\n  var endColumn = columns[colEnd] || {};\n  var fixLeft;\n  var fixRight;\n  if (startColumn.fixed === 'left') {\n    fixLeft = stickyOffsets.left[direction === 'rtl' ? colEnd : colStart];\n  } else if (endColumn.fixed === 'right') {\n    fixRight = stickyOffsets.right[direction === 'rtl' ? colStart : colEnd];\n  }\n  var lastFixLeft = false;\n  var firstFixRight = false;\n  var lastFixRight = false;\n  var firstFixLeft = false;\n  var nextColumn = columns[colEnd + 1];\n  var prevColumn = columns[colStart - 1];\n\n  // need show shadow only when canLastFix is true\n  var canLastFix = nextColumn && !nextColumn.fixed || prevColumn && !prevColumn.fixed || columns.every(function (col) {\n    return col.fixed === 'left';\n  });\n  if (direction === 'rtl') {\n    if (fixLeft !== undefined) {\n      var prevFixLeft = prevColumn && prevColumn.fixed === 'left';\n      firstFixLeft = !prevFixLeft && canLastFix;\n    } else if (fixRight !== undefined) {\n      var nextFixRight = nextColumn && nextColumn.fixed === 'right';\n      lastFixRight = !nextFixRight && canLastFix;\n    }\n  } else if (fixLeft !== undefined) {\n    var nextFixLeft = nextColumn && nextColumn.fixed === 'left';\n    lastFixLeft = !nextFixLeft && canLastFix;\n  } else if (fixRight !== undefined) {\n    var prevFixRight = prevColumn && prevColumn.fixed === 'right';\n    firstFixRight = !prevFixRight && canLastFix;\n  }\n  return {\n    fixLeft: fixLeft,\n    fixRight: fixRight,\n    lastFixLeft: lastFixLeft,\n    firstFixRight: firstFixRight,\n    lastFixRight: lastFixRight,\n    firstFixLeft: firstFixLeft,\n    isSticky: stickyOffsets.isSticky\n  };\n}","import * as React from 'react';\nvar SummaryContext = /*#__PURE__*/React.createContext({});\nexport default SummaryContext;","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"children\"];\nimport * as React from 'react';\nexport default function FooterRow(_ref) {\n  var children = _ref.children,\n    props = _objectWithoutProperties(_ref, _excluded);\n  return /*#__PURE__*/React.createElement(\"tr\", props, children);\n}","import Cell from \"./Cell\";\nimport Row from \"./Row\";\n/**\n * Syntactic sugar. Do not support HOC.\n */\nfunction Summary(_ref) {\n  var children = _ref.children;\n  return children;\n}\nSummary.Row = Row;\nSummary.Cell = Cell;\nexport default Summary;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport Cell from \"../Cell\";\nimport TableContext from \"../context/TableContext\";\nimport { useContext } from '@rc-component/context';\nimport { getCellFixedInfo } from \"../utils/fixUtil\";\nimport SummaryContext from \"./SummaryContext\";\nexport default function SummaryCell(_ref) {\n  var className = _ref.className,\n    index = _ref.index,\n    children = _ref.children,\n    _ref$colSpan = _ref.colSpan,\n    colSpan = _ref$colSpan === void 0 ? 1 : _ref$colSpan,\n    rowSpan = _ref.rowSpan,\n    align = _ref.align;\n  var _useContext = useContext(TableContext, ['prefixCls', 'direction']),\n    prefixCls = _useContext.prefixCls,\n    direction = _useContext.direction;\n  var _React$useContext = React.useContext(SummaryContext),\n    scrollColumnIndex = _React$useContext.scrollColumnIndex,\n    stickyOffsets = _React$useContext.stickyOffsets,\n    flattenColumns = _React$useContext.flattenColumns;\n  var lastIndex = index + colSpan - 1;\n  var mergedColSpan = lastIndex + 1 === scrollColumnIndex ? colSpan + 1 : colSpan;\n  var fixedInfo = getCellFixedInfo(index, index + mergedColSpan - 1, flattenColumns, stickyOffsets, direction);\n  return /*#__PURE__*/React.createElement(Cell, _extends({\n    className: className,\n    index: index,\n    component: \"td\",\n    prefixCls: prefixCls,\n    record: null,\n    dataIndex: null,\n    align: align,\n    colSpan: mergedColSpan,\n    rowSpan: rowSpan,\n    render: function render() {\n      return children;\n    }\n  }, fixedInfo));\n}","import { useContext } from '@rc-component/context';\nimport * as React from 'react';\nimport TableContext, { responseImmutable } from \"../context/TableContext\";\nimport devRenderTimes from \"../hooks/useRenderTimes\";\nimport Summary from \"./Summary\";\nimport SummaryContext from \"./SummaryContext\";\nfunction Footer(props) {\n  if (process.env.NODE_ENV !== 'production') {\n    devRenderTimes(props);\n  }\n  var children = props.children,\n    stickyOffsets = props.stickyOffsets,\n    flattenColumns = props.flattenColumns;\n  var prefixCls = useContext(TableContext, 'prefixCls');\n  var lastColumnIndex = flattenColumns.length - 1;\n  var scrollColumn = flattenColumns[lastColumnIndex];\n  var summaryContext = React.useMemo(function () {\n    return {\n      stickyOffsets: stickyOffsets,\n      flattenColumns: flattenColumns,\n      scrollColumnIndex: scrollColumn !== null && scrollColumn !== void 0 && scrollColumn.scrollbar ? lastColumnIndex : null\n    };\n  }, [scrollColumn, flattenColumns, lastColumnIndex, stickyOffsets]);\n  return /*#__PURE__*/React.createElement(SummaryContext.Provider, {\n    value: summaryContext\n  }, /*#__PURE__*/React.createElement(\"tfoot\", {\n    className: \"\".concat(prefixCls, \"-summary\")\n  }, children));\n}\nexport default responseImmutable(Footer);\nexport var FooterComponents = Summary;","/* istanbul ignore next */\n/**\n * This is a syntactic sugar for `columns` prop.\n * So HOC will not work on this.\n */\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction Column(_) {\n  return null;\n}\nexport default Column;","/* istanbul ignore next */\n/**\n * This is a syntactic sugar for `columns` prop.\n * So HOC will not work on this.\n */\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction ColumnGroup(_) {\n  return null;\n}\nexport default ColumnGroup;","import * as React from 'react';\n// recursion (flat tree structure)\nfunction fillRecords(list, record, indent, childrenColumnName, expandedKeys, getRowKey, index) {\n  list.push({\n    record: record,\n    indent: indent,\n    index: index\n  });\n  var key = getRowKey(record);\n  var expanded = expandedKeys === null || expandedKeys === void 0 ? void 0 : expandedKeys.has(key);\n  if (record && Array.isArray(record[childrenColumnName]) && expanded) {\n    // expanded state, flat record\n    for (var i = 0; i < record[childrenColumnName].length; i += 1) {\n      fillRecords(list, record[childrenColumnName][i], indent + 1, childrenColumnName, expandedKeys, getRowKey, i);\n    }\n  }\n}\n/**\n * flat tree data on expanded state\n *\n * @export\n * @template T\n * @param {*} data : table data\n * @param {string} childrenColumnName : 指定树形结构的列名\n * @param {Set<Key>} expandedKeys : 展开的行对应的keys\n * @param {GetRowKey<T>} getRowKey  : 获取当前rowKey的方法\n * @returns flattened data\n */\nexport default function useFlattenRecords(data, childrenColumnName, expandedKeys, getRowKey) {\n  var arr = React.useMemo(function () {\n    if (expandedKeys !== null && expandedKeys !== void 0 && expandedKeys.size) {\n      var list = [];\n\n      // collect flattened record\n      for (var i = 0; i < (data === null || data === void 0 ? void 0 : data.length); i += 1) {\n        var record = data[i];\n\n        // using array.push or spread operator may cause \"Maximum call stack size exceeded\" exception if array size is big enough.\n        fillRecords(list, record, 0, childrenColumnName, expandedKeys, getRowKey, i);\n      }\n      return list;\n    }\n    return data === null || data === void 0 ? void 0 : data.map(function (item, index) {\n      return {\n        record: item,\n        indent: 0,\n        index: index\n      };\n    });\n  }, [data, childrenColumnName, expandedKeys, getRowKey]);\n  return arr;\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport { useContext } from '@rc-component/context';\nimport TableContext from \"../context/TableContext\";\nimport { getColumnsKey } from \"../utils/valueUtil\";\nimport { useEvent } from 'rc-util';\nimport classNames from 'classnames';\nexport default function useRowInfo(record, rowKey, recordIndex, indent) {\n  var context = useContext(TableContext, ['prefixCls', 'fixedInfoList', 'flattenColumns', 'expandableType', 'expandRowByClick', 'onTriggerExpand', 'rowClassName', 'expandedRowClassName', 'indentSize', 'expandIcon', 'expandedRowRender', 'expandIconColumnIndex', 'expandedKeys', 'childrenColumnName', 'rowExpandable', 'onRow']);\n  var flattenColumns = context.flattenColumns,\n    expandableType = context.expandableType,\n    expandedKeys = context.expandedKeys,\n    childrenColumnName = context.childrenColumnName,\n    onTriggerExpand = context.onTriggerExpand,\n    rowExpandable = context.rowExpandable,\n    onRow = context.onRow,\n    expandRowByClick = context.expandRowByClick,\n    rowClassName = context.rowClassName;\n\n  // ======================= Expandable =======================\n  // Only when row is not expandable and `children` exist in record\n  var nestExpandable = expandableType === 'nest';\n  var rowSupportExpand = expandableType === 'row' && (!rowExpandable || rowExpandable(record));\n  var mergedExpandable = rowSupportExpand || nestExpandable;\n  var expanded = expandedKeys && expandedKeys.has(rowKey);\n  var hasNestChildren = childrenColumnName && record && record[childrenColumnName];\n  var onInternalTriggerExpand = useEvent(onTriggerExpand);\n\n  // ========================= onRow ==========================\n  var rowProps = onRow === null || onRow === void 0 ? void 0 : onRow(record, recordIndex);\n  var onRowClick = rowProps === null || rowProps === void 0 ? void 0 : rowProps.onClick;\n  var onClick = function onClick(event) {\n    if (expandRowByClick && mergedExpandable) {\n      onTriggerExpand(record, event);\n    }\n    for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n      args[_key - 1] = arguments[_key];\n    }\n    onRowClick === null || onRowClick === void 0 || onRowClick.apply(void 0, [event].concat(args));\n  };\n\n  // ====================== RowClassName ======================\n  var computeRowClassName;\n  if (typeof rowClassName === 'string') {\n    computeRowClassName = rowClassName;\n  } else if (typeof rowClassName === 'function') {\n    computeRowClassName = rowClassName(record, recordIndex, indent);\n  }\n\n  // ========================= Column =========================\n  var columnsKey = getColumnsKey(flattenColumns);\n  return _objectSpread(_objectSpread({}, context), {}, {\n    columnsKey: columnsKey,\n    nestExpandable: nestExpandable,\n    expanded: expanded,\n    hasNestChildren: hasNestChildren,\n    record: record,\n    onTriggerExpand: onInternalTriggerExpand,\n    rowSupportExpand: rowSupportExpand,\n    expandable: mergedExpandable,\n    rowProps: _objectSpread(_objectSpread({}, rowProps), {}, {\n      className: classNames(computeRowClassName, rowProps === null || rowProps === void 0 ? void 0 : rowProps.className),\n      onClick: onClick\n    })\n  });\n}","import { useContext } from '@rc-component/context';\nimport * as React from 'react';\nimport Cell from \"../Cell\";\nimport TableContext from \"../context/TableContext\";\nimport devRenderTimes from \"../hooks/useRenderTimes\";\nfunction ExpandedRow(props) {\n  if (process.env.NODE_ENV !== 'production') {\n    devRenderTimes(props);\n  }\n  var prefixCls = props.prefixCls,\n    children = props.children,\n    Component = props.component,\n    cellComponent = props.cellComponent,\n    className = props.className,\n    expanded = props.expanded,\n    colSpan = props.colSpan,\n    isEmpty = props.isEmpty;\n  var _useContext = useContext(TableContext, ['scrollbarSize', 'fixHeader', 'fixColumn', 'componentWidth', 'horizonScroll']),\n    scrollbarSize = _useContext.scrollbarSize,\n    fixHeader = _useContext.fixHeader,\n    fixColumn = _useContext.fixColumn,\n    componentWidth = _useContext.componentWidth,\n    horizonScroll = _useContext.horizonScroll;\n\n  // Cache render node\n  var contentNode = children;\n  if (isEmpty ? horizonScroll && componentWidth : fixColumn) {\n    contentNode = /*#__PURE__*/React.createElement(\"div\", {\n      style: {\n        width: componentWidth - (fixHeader && !isEmpty ? scrollbarSize : 0),\n        position: 'sticky',\n        left: 0,\n        overflow: 'hidden'\n      },\n      className: \"\".concat(prefixCls, \"-expanded-row-fixed\")\n    }, contentNode);\n  }\n  return /*#__PURE__*/React.createElement(Component, {\n    className: className,\n    style: {\n      display: expanded ? null : 'none'\n    }\n  }, /*#__PURE__*/React.createElement(Cell, {\n    component: cellComponent,\n    prefixCls: prefixCls,\n    colSpan: colSpan\n  }, contentNode));\n}\nexport default ExpandedRow;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport Cell from \"../Cell\";\nimport { responseImmutable } from \"../context/TableContext\";\nimport devRenderTimes from \"../hooks/useRenderTimes\";\nimport useRowInfo from \"../hooks/useRowInfo\";\nimport ExpandedRow from \"./ExpandedRow\";\n// ==================================================================================\n// ==                                 getCellProps                                 ==\n// ==================================================================================\nexport function getCellProps(rowInfo, column, colIndex, indent, index) {\n  var record = rowInfo.record,\n    prefixCls = rowInfo.prefixCls,\n    columnsKey = rowInfo.columnsKey,\n    fixedInfoList = rowInfo.fixedInfoList,\n    expandIconColumnIndex = rowInfo.expandIconColumnIndex,\n    nestExpandable = rowInfo.nestExpandable,\n    indentSize = rowInfo.indentSize,\n    expandIcon = rowInfo.expandIcon,\n    expanded = rowInfo.expanded,\n    hasNestChildren = rowInfo.hasNestChildren,\n    onTriggerExpand = rowInfo.onTriggerExpand;\n  var key = columnsKey[colIndex];\n  var fixedInfo = fixedInfoList[colIndex];\n\n  // ============= Used for nest expandable =============\n  var appendCellNode;\n  if (colIndex === (expandIconColumnIndex || 0) && nestExpandable) {\n    appendCellNode = /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"span\", {\n      style: {\n        paddingLeft: \"\".concat(indentSize * indent, \"px\")\n      },\n      className: \"\".concat(prefixCls, \"-row-indent indent-level-\").concat(indent)\n    }), expandIcon({\n      prefixCls: prefixCls,\n      expanded: expanded,\n      expandable: hasNestChildren,\n      record: record,\n      onExpand: onTriggerExpand\n    }));\n  }\n  var additionalCellProps;\n  if (column.onCell) {\n    additionalCellProps = column.onCell(record, index);\n  }\n  return {\n    key: key,\n    fixedInfo: fixedInfo,\n    appendCellNode: appendCellNode,\n    additionalCellProps: additionalCellProps || {}\n  };\n}\n\n// ==================================================================================\n// ==                                 getCellProps                                 ==\n// ==================================================================================\nfunction BodyRow(props) {\n  if (process.env.NODE_ENV !== 'production') {\n    devRenderTimes(props);\n  }\n  var className = props.className,\n    style = props.style,\n    record = props.record,\n    index = props.index,\n    renderIndex = props.renderIndex,\n    rowKey = props.rowKey,\n    _props$indent = props.indent,\n    indent = _props$indent === void 0 ? 0 : _props$indent,\n    RowComponent = props.rowComponent,\n    cellComponent = props.cellComponent,\n    scopeCellComponent = props.scopeCellComponent;\n  var rowInfo = useRowInfo(record, rowKey, index, indent);\n  var prefixCls = rowInfo.prefixCls,\n    flattenColumns = rowInfo.flattenColumns,\n    expandedRowClassName = rowInfo.expandedRowClassName,\n    expandedRowRender = rowInfo.expandedRowRender,\n    rowProps = rowInfo.rowProps,\n    expanded = rowInfo.expanded,\n    rowSupportExpand = rowInfo.rowSupportExpand;\n\n  // Force render expand row if expanded before\n  var expandedRef = React.useRef(false);\n  expandedRef.current || (expandedRef.current = expanded);\n  if (process.env.NODE_ENV !== 'production') {\n    devRenderTimes(props);\n  }\n\n  // 若没有 expandedRowRender 参数, 将使用 baseRowNode 渲染 Children\n  // 此时如果 level > 1 则说明是 expandedRow, 一样需要附加 computedExpandedRowClassName\n  var computedExpandedRowClassName = expandedRowClassName && expandedRowClassName(record, index, indent);\n\n  // ======================== Base tr row ========================\n  var baseRowNode = /*#__PURE__*/React.createElement(RowComponent, _extends({}, rowProps, {\n    \"data-row-key\": rowKey,\n    className: classNames(className, \"\".concat(prefixCls, \"-row\"), \"\".concat(prefixCls, \"-row-level-\").concat(indent), rowProps === null || rowProps === void 0 ? void 0 : rowProps.className, indent >= 1 ? computedExpandedRowClassName : ''),\n    style: _objectSpread(_objectSpread({}, style), rowProps === null || rowProps === void 0 ? void 0 : rowProps.style)\n  }), flattenColumns.map(function (column, colIndex) {\n    var render = column.render,\n      dataIndex = column.dataIndex,\n      columnClassName = column.className;\n    var _getCellProps = getCellProps(rowInfo, column, colIndex, indent, index),\n      key = _getCellProps.key,\n      fixedInfo = _getCellProps.fixedInfo,\n      appendCellNode = _getCellProps.appendCellNode,\n      additionalCellProps = _getCellProps.additionalCellProps;\n    return /*#__PURE__*/React.createElement(Cell, _extends({\n      className: columnClassName,\n      ellipsis: column.ellipsis,\n      align: column.align,\n      scope: column.rowScope,\n      component: column.rowScope ? scopeCellComponent : cellComponent,\n      prefixCls: prefixCls,\n      key: key,\n      record: record,\n      index: index,\n      renderIndex: renderIndex,\n      dataIndex: dataIndex,\n      render: render,\n      shouldCellUpdate: column.shouldCellUpdate\n    }, fixedInfo, {\n      appendNode: appendCellNode,\n      additionalProps: additionalCellProps\n    }));\n  }));\n\n  // ======================== Expand Row =========================\n  var expandRowNode;\n  if (rowSupportExpand && (expandedRef.current || expanded)) {\n    var expandContent = expandedRowRender(record, index, indent + 1, expanded);\n    expandRowNode = /*#__PURE__*/React.createElement(ExpandedRow, {\n      expanded: expanded,\n      className: classNames(\"\".concat(prefixCls, \"-expanded-row\"), \"\".concat(prefixCls, \"-expanded-row-level-\").concat(indent + 1), computedExpandedRowClassName),\n      prefixCls: prefixCls,\n      component: RowComponent,\n      cellComponent: cellComponent,\n      colSpan: flattenColumns.length,\n      isEmpty: false\n    }, expandContent);\n  }\n  return /*#__PURE__*/React.createElement(React.Fragment, null, baseRowNode, expandRowNode);\n}\nif (process.env.NODE_ENV !== 'production') {\n  BodyRow.displayName = 'BodyRow';\n}\nexport default responseImmutable(BodyRow);","import * as React from 'react';\nimport ResizeObserver from 'rc-resize-observer';\nexport default function MeasureCell(_ref) {\n  var columnKey = _ref.columnKey,\n    onColumnResize = _ref.onColumnResize;\n  var cellRef = React.useRef();\n  React.useEffect(function () {\n    if (cellRef.current) {\n      onColumnResize(columnKey, cellRef.current.offsetWidth);\n    }\n  }, []);\n  return /*#__PURE__*/React.createElement(ResizeObserver, {\n    data: columnKey\n  }, /*#__PURE__*/React.createElement(\"td\", {\n    ref: cellRef,\n    style: {\n      padding: 0,\n      border: 0,\n      height: 0\n    }\n  }, /*#__PURE__*/React.createElement(\"div\", {\n    style: {\n      height: 0,\n      overflow: 'hidden'\n    }\n  }, \"\\xA0\")));\n}","import * as React from 'react';\nimport ResizeObserver from 'rc-resize-observer';\nimport MeasureCell from \"./MeasureCell\";\nexport default function MeasureRow(_ref) {\n  var prefixCls = _ref.prefixCls,\n    columnsKey = _ref.columnsKey,\n    onColumnResize = _ref.onColumnResize;\n  return /*#__PURE__*/React.createElement(\"tr\", {\n    \"aria-hidden\": \"true\",\n    className: \"\".concat(prefixCls, \"-measure-row\"),\n    style: {\n      height: 0,\n      fontSize: 0\n    }\n  }, /*#__PURE__*/React.createElement(ResizeObserver.Collection, {\n    onBatchResize: function onBatchResize(infoList) {\n      infoList.forEach(function (_ref2) {\n        var columnKey = _ref2.data,\n          size = _ref2.size;\n        onColumnResize(columnKey, size.offsetWidth);\n      });\n    }\n  }, columnsKey.map(function (columnKey) {\n    return /*#__PURE__*/React.createElement(MeasureCell, {\n      key: columnKey,\n      columnKey: columnKey,\n      onColumnResize: onColumnResize\n    });\n  })));\n}","import { useContext } from '@rc-component/context';\nimport * as React from 'react';\nimport PerfContext from \"../context/PerfContext\";\nimport TableContext, { responseImmutable } from \"../context/TableContext\";\nimport useFlattenRecords from \"../hooks/useFlattenRecords\";\nimport devRenderTimes from \"../hooks/useRenderTimes\";\nimport { getColumnsKey } from \"../utils/valueUtil\";\nimport BodyRow from \"./BodyRow\";\nimport ExpandedRow from \"./ExpandedRow\";\nimport MeasureRow from \"./MeasureRow\";\nfunction Body(props) {\n  if (process.env.NODE_ENV !== 'production') {\n    devRenderTimes(props);\n  }\n  var data = props.data,\n    measureColumnWidth = props.measureColumnWidth;\n  var _useContext = useContext(TableContext, ['prefixCls', 'getComponent', 'onColumnResize', 'flattenColumns', 'getRowKey', 'expandedKeys', 'childrenColumnName', 'emptyNode']),\n    prefixCls = _useContext.prefixCls,\n    getComponent = _useContext.getComponent,\n    onColumnResize = _useContext.onColumnResize,\n    flattenColumns = _useContext.flattenColumns,\n    getRowKey = _useContext.getRowKey,\n    expandedKeys = _useContext.expandedKeys,\n    childrenColumnName = _useContext.childrenColumnName,\n    emptyNode = _useContext.emptyNode;\n  var flattenData = useFlattenRecords(data, childrenColumnName, expandedKeys, getRowKey);\n\n  // =================== Performance ====================\n  var perfRef = React.useRef({\n    renderWithProps: false\n  });\n\n  // ====================== Render ======================\n  var WrapperComponent = getComponent(['body', 'wrapper'], 'tbody');\n  var trComponent = getComponent(['body', 'row'], 'tr');\n  var tdComponent = getComponent(['body', 'cell'], 'td');\n  var thComponent = getComponent(['body', 'cell'], 'th');\n  var rows;\n  if (data.length) {\n    rows = flattenData.map(function (item, idx) {\n      var record = item.record,\n        indent = item.indent,\n        renderIndex = item.index;\n      var key = getRowKey(record, idx);\n      return /*#__PURE__*/React.createElement(BodyRow, {\n        key: key,\n        rowKey: key,\n        record: record,\n        index: idx,\n        renderIndex: renderIndex,\n        rowComponent: trComponent,\n        cellComponent: tdComponent,\n        scopeCellComponent: thComponent,\n        getRowKey: getRowKey,\n        indent: indent\n      });\n    });\n  } else {\n    rows = /*#__PURE__*/React.createElement(ExpandedRow, {\n      expanded: true,\n      className: \"\".concat(prefixCls, \"-placeholder\"),\n      prefixCls: prefixCls,\n      component: trComponent,\n      cellComponent: tdComponent,\n      colSpan: flattenColumns.length,\n      isEmpty: true\n    }, emptyNode);\n  }\n  var columnsKey = getColumnsKey(flattenColumns);\n  return /*#__PURE__*/React.createElement(PerfContext.Provider, {\n    value: perfRef.current\n  }, /*#__PURE__*/React.createElement(WrapperComponent, {\n    className: \"\".concat(prefixCls, \"-tbody\")\n  }, measureColumnWidth && /*#__PURE__*/React.createElement(MeasureRow, {\n    prefixCls: prefixCls,\n    columnsKey: columnsKey,\n    onColumnResize: onColumnResize\n  }), rows));\n}\nif (process.env.NODE_ENV !== 'production') {\n  Body.displayName = 'Body';\n}\nexport default responseImmutable(Body);","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"expandable\"];\nimport warning from \"rc-util/es/warning\";\nexport var INTERNAL_COL_DEFINE = 'RC_TABLE_INTERNAL_COL_DEFINE';\nexport function getExpandableProps(props) {\n  var expandable = props.expandable,\n    legacyExpandableConfig = _objectWithoutProperties(props, _excluded);\n  var config;\n  if ('expandable' in props) {\n    config = _objectSpread(_objectSpread({}, legacyExpandableConfig), expandable);\n  } else {\n    if (process.env.NODE_ENV !== 'production' && ['indentSize', 'expandedRowKeys', 'defaultExpandedRowKeys', 'defaultExpandAllRows', 'expandedRowRender', 'expandRowByClick', 'expandIcon', 'onExpand', 'onExpandedRowsChange', 'expandedRowClassName', 'expandIconColumnIndex', 'showExpandColumn', 'title'].some(function (prop) {\n      return prop in props;\n    })) {\n      warning(false, 'expanded related props have been moved into `expandable`.');\n    }\n    config = legacyExpandableConfig;\n  }\n  if (config.showExpandColumn === false) {\n    config.expandIconColumnIndex = -1;\n  }\n  return config;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"columnType\"];\nimport * as React from 'react';\nimport { INTERNAL_COL_DEFINE } from \"./utils/legacyUtil\";\nimport { useContext } from '@rc-component/context';\nimport TableContext from \"./context/TableContext\";\nfunction ColGroup(_ref) {\n  var colWidths = _ref.colWidths,\n    columns = _ref.columns,\n    columCount = _ref.columCount;\n  var _useContext = useContext(TableContext, ['tableLayout']),\n    tableLayout = _useContext.tableLayout;\n  var cols = [];\n  var len = columCount || columns.length;\n\n  // Only insert col with width & additional props\n  // Skip if rest col do not have any useful info\n  var mustInsert = false;\n  for (var i = len - 1; i >= 0; i -= 1) {\n    var width = colWidths[i];\n    var column = columns && columns[i];\n    var additionalProps = void 0;\n    var minWidth = void 0;\n    if (column) {\n      additionalProps = column[INTERNAL_COL_DEFINE];\n\n      // fixed will cause layout problems\n      if (tableLayout === 'auto') {\n        minWidth = column.minWidth;\n      }\n    }\n    if (width || minWidth || additionalProps || mustInsert) {\n      var _ref2 = additionalProps || {},\n        columnType = _ref2.columnType,\n        restAdditionalProps = _objectWithoutProperties(_ref2, _excluded);\n      cols.unshift( /*#__PURE__*/React.createElement(\"col\", _extends({\n        key: i,\n        style: {\n          width: width,\n          minWidth: minWidth\n        }\n      }, restAdditionalProps)));\n      mustInsert = true;\n    }\n  }\n  return /*#__PURE__*/React.createElement(\"colgroup\", null, cols);\n}\nexport default ColGroup;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"className\", \"noData\", \"columns\", \"flattenColumns\", \"colWidths\", \"columCount\", \"stickyOffsets\", \"direction\", \"fixHeader\", \"stickyTopOffset\", \"stickyBottomOffset\", \"stickyClassName\", \"onScroll\", \"maxContentScroll\", \"children\"];\nimport { useContext } from '@rc-component/context';\nimport classNames from 'classnames';\nimport { fillRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport { useMemo } from 'react';\nimport ColGroup from \"../ColGroup\";\nimport TableContext from \"../context/TableContext\";\nimport devRenderTimes from \"../hooks/useRenderTimes\";\nfunction useColumnWidth(colWidths, columCount) {\n  return useMemo(function () {\n    var cloneColumns = [];\n    for (var i = 0; i < columCount; i += 1) {\n      var val = colWidths[i];\n      if (val !== undefined) {\n        cloneColumns[i] = val;\n      } else {\n        return null;\n      }\n    }\n    return cloneColumns;\n  }, [colWidths.join('_'), columCount]);\n}\nvar FixedHolder = /*#__PURE__*/React.forwardRef(function (props, ref) {\n  if (process.env.NODE_ENV !== 'production') {\n    devRenderTimes(props);\n  }\n  var className = props.className,\n    noData = props.noData,\n    columns = props.columns,\n    flattenColumns = props.flattenColumns,\n    colWidths = props.colWidths,\n    columCount = props.columCount,\n    stickyOffsets = props.stickyOffsets,\n    direction = props.direction,\n    fixHeader = props.fixHeader,\n    stickyTopOffset = props.stickyTopOffset,\n    stickyBottomOffset = props.stickyBottomOffset,\n    stickyClassName = props.stickyClassName,\n    onScroll = props.onScroll,\n    maxContentScroll = props.maxContentScroll,\n    children = props.children,\n    restProps = _objectWithoutProperties(props, _excluded);\n  var _useContext = useContext(TableContext, ['prefixCls', 'scrollbarSize', 'isSticky', 'getComponent']),\n    prefixCls = _useContext.prefixCls,\n    scrollbarSize = _useContext.scrollbarSize,\n    isSticky = _useContext.isSticky,\n    getComponent = _useContext.getComponent;\n  var TableComponent = getComponent(['header', 'table'], 'table');\n  var combinationScrollBarSize = isSticky && !fixHeader ? 0 : scrollbarSize;\n\n  // Pass wheel to scroll event\n  var scrollRef = React.useRef(null);\n  var setScrollRef = React.useCallback(function (element) {\n    fillRef(ref, element);\n    fillRef(scrollRef, element);\n  }, []);\n  React.useEffect(function () {\n    var _scrollRef$current;\n    function onWheel(e) {\n      var _ref = e,\n        currentTarget = _ref.currentTarget,\n        deltaX = _ref.deltaX;\n      if (deltaX) {\n        onScroll({\n          currentTarget: currentTarget,\n          scrollLeft: currentTarget.scrollLeft + deltaX\n        });\n        e.preventDefault();\n      }\n    }\n    (_scrollRef$current = scrollRef.current) === null || _scrollRef$current === void 0 || _scrollRef$current.addEventListener('wheel', onWheel, {\n      passive: false\n    });\n    return function () {\n      var _scrollRef$current2;\n      (_scrollRef$current2 = scrollRef.current) === null || _scrollRef$current2 === void 0 || _scrollRef$current2.removeEventListener('wheel', onWheel);\n    };\n  }, []);\n\n  // Check if all flattenColumns has width\n  var allFlattenColumnsWithWidth = React.useMemo(function () {\n    return flattenColumns.every(function (column) {\n      return column.width;\n    });\n  }, [flattenColumns]);\n\n  // Add scrollbar column\n  var lastColumn = flattenColumns[flattenColumns.length - 1];\n  var ScrollBarColumn = {\n    fixed: lastColumn ? lastColumn.fixed : null,\n    scrollbar: true,\n    onHeaderCell: function onHeaderCell() {\n      return {\n        className: \"\".concat(prefixCls, \"-cell-scrollbar\")\n      };\n    }\n  };\n  var columnsWithScrollbar = useMemo(function () {\n    return combinationScrollBarSize ? [].concat(_toConsumableArray(columns), [ScrollBarColumn]) : columns;\n  }, [combinationScrollBarSize, columns]);\n  var flattenColumnsWithScrollbar = useMemo(function () {\n    return combinationScrollBarSize ? [].concat(_toConsumableArray(flattenColumns), [ScrollBarColumn]) : flattenColumns;\n  }, [combinationScrollBarSize, flattenColumns]);\n\n  // Calculate the sticky offsets\n  var headerStickyOffsets = useMemo(function () {\n    var right = stickyOffsets.right,\n      left = stickyOffsets.left;\n    return _objectSpread(_objectSpread({}, stickyOffsets), {}, {\n      left: direction === 'rtl' ? [].concat(_toConsumableArray(left.map(function (width) {\n        return width + combinationScrollBarSize;\n      })), [0]) : left,\n      right: direction === 'rtl' ? right : [].concat(_toConsumableArray(right.map(function (width) {\n        return width + combinationScrollBarSize;\n      })), [0]),\n      isSticky: isSticky\n    });\n  }, [combinationScrollBarSize, stickyOffsets, isSticky]);\n  var mergedColumnWidth = useColumnWidth(colWidths, columCount);\n  return /*#__PURE__*/React.createElement(\"div\", {\n    style: _objectSpread({\n      overflow: 'hidden'\n    }, isSticky ? {\n      top: stickyTopOffset,\n      bottom: stickyBottomOffset\n    } : {}),\n    ref: setScrollRef,\n    className: classNames(className, _defineProperty({}, stickyClassName, !!stickyClassName))\n  }, /*#__PURE__*/React.createElement(TableComponent, {\n    style: {\n      tableLayout: 'fixed',\n      visibility: noData || mergedColumnWidth ? null : 'hidden'\n    }\n  }, (!noData || !maxContentScroll || allFlattenColumnsWithWidth) && /*#__PURE__*/React.createElement(ColGroup, {\n    colWidths: mergedColumnWidth ? [].concat(_toConsumableArray(mergedColumnWidth), [combinationScrollBarSize]) : [],\n    columCount: columCount + 1,\n    columns: flattenColumnsWithScrollbar\n  }), children(_objectSpread(_objectSpread({}, restProps), {}, {\n    stickyOffsets: headerStickyOffsets,\n    columns: columnsWithScrollbar,\n    flattenColumns: flattenColumnsWithScrollbar\n  }))));\n});\nif (process.env.NODE_ENV !== 'production') {\n  FixedHolder.displayName = 'FixedHolder';\n}\n\n/** Return a table in div as fixed element which contains sticky info */\n// export default responseImmutable(FixedHolder);\nexport default /*#__PURE__*/React.memo(FixedHolder);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport Cell from \"../Cell\";\nimport TableContext from \"../context/TableContext\";\nimport { useContext } from '@rc-component/context';\nimport { getCellFixedInfo } from \"../utils/fixUtil\";\nimport { getColumnsKey } from \"../utils/valueUtil\";\nvar HeaderRow = function HeaderRow(props) {\n  var cells = props.cells,\n    stickyOffsets = props.stickyOffsets,\n    flattenColumns = props.flattenColumns,\n    RowComponent = props.rowComponent,\n    CellComponent = props.cellComponent,\n    onHeaderRow = props.onHeaderRow,\n    index = props.index;\n  var _useContext = useContext(TableContext, ['prefixCls', 'direction']),\n    prefixCls = _useContext.prefixCls,\n    direction = _useContext.direction;\n  var rowProps;\n  if (onHeaderRow) {\n    rowProps = onHeaderRow(cells.map(function (cell) {\n      return cell.column;\n    }), index);\n  }\n  var columnsKey = getColumnsKey(cells.map(function (cell) {\n    return cell.column;\n  }));\n  return /*#__PURE__*/React.createElement(RowComponent, rowProps, cells.map(function (cell, cellIndex) {\n    var column = cell.column;\n    var fixedInfo = getCellFixedInfo(cell.colStart, cell.colEnd, flattenColumns, stickyOffsets, direction);\n    var additionalProps;\n    if (column && column.onHeaderCell) {\n      additionalProps = cell.column.onHeaderCell(column);\n    }\n    return /*#__PURE__*/React.createElement(Cell, _extends({}, cell, {\n      scope: column.title ? cell.colSpan > 1 ? 'colgroup' : 'col' : null,\n      ellipsis: column.ellipsis,\n      align: column.align,\n      component: CellComponent,\n      prefixCls: prefixCls,\n      key: columnsKey[cellIndex]\n    }, fixedInfo, {\n      additionalProps: additionalProps,\n      rowType: \"header\"\n    }));\n  }));\n};\nif (process.env.NODE_ENV !== 'production') {\n  HeaderRow.displayName = 'HeaderRow';\n}\nexport default HeaderRow;","import { useContext } from '@rc-component/context';\nimport * as React from 'react';\nimport TableContext, { responseImmutable } from \"../context/TableContext\";\nimport devRenderTimes from \"../hooks/useRenderTimes\";\nimport HeaderRow from \"./HeaderRow\";\nfunction parseHeaderRows(rootColumns) {\n  var rows = [];\n  function fillRowCells(columns, colIndex) {\n    var rowIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n    // Init rows\n    rows[rowIndex] = rows[rowIndex] || [];\n    var currentColIndex = colIndex;\n    var colSpans = columns.filter(Boolean).map(function (column) {\n      var cell = {\n        key: column.key,\n        className: column.className || '',\n        children: column.title,\n        column: column,\n        colStart: currentColIndex\n      };\n      var colSpan = 1;\n      var subColumns = column.children;\n      if (subColumns && subColumns.length > 0) {\n        colSpan = fillRowCells(subColumns, currentColIndex, rowIndex + 1).reduce(function (total, count) {\n          return total + count;\n        }, 0);\n        cell.hasSubColumns = true;\n      }\n      if ('colSpan' in column) {\n        colSpan = column.colSpan;\n      }\n      if ('rowSpan' in column) {\n        cell.rowSpan = column.rowSpan;\n      }\n      cell.colSpan = colSpan;\n      cell.colEnd = cell.colStart + colSpan - 1;\n      rows[rowIndex].push(cell);\n      currentColIndex += colSpan;\n      return colSpan;\n    });\n    return colSpans;\n  }\n\n  // Generate `rows` cell data\n  fillRowCells(rootColumns, 0);\n\n  // Handle `rowSpan`\n  var rowCount = rows.length;\n  var _loop = function _loop(rowIndex) {\n    rows[rowIndex].forEach(function (cell) {\n      if (!('rowSpan' in cell) && !cell.hasSubColumns) {\n        // eslint-disable-next-line no-param-reassign\n        cell.rowSpan = rowCount - rowIndex;\n      }\n    });\n  };\n  for (var rowIndex = 0; rowIndex < rowCount; rowIndex += 1) {\n    _loop(rowIndex);\n  }\n  return rows;\n}\nvar Header = function Header(props) {\n  if (process.env.NODE_ENV !== 'production') {\n    devRenderTimes(props);\n  }\n  var stickyOffsets = props.stickyOffsets,\n    columns = props.columns,\n    flattenColumns = props.flattenColumns,\n    onHeaderRow = props.onHeaderRow;\n  var _useContext = useContext(TableContext, ['prefixCls', 'getComponent']),\n    prefixCls = _useContext.prefixCls,\n    getComponent = _useContext.getComponent;\n  var rows = React.useMemo(function () {\n    return parseHeaderRows(columns);\n  }, [columns]);\n  var WrapperComponent = getComponent(['header', 'wrapper'], 'thead');\n  var trComponent = getComponent(['header', 'row'], 'tr');\n  var thComponent = getComponent(['header', 'cell'], 'th');\n  return /*#__PURE__*/React.createElement(WrapperComponent, {\n    className: \"\".concat(prefixCls, \"-thead\")\n  }, rows.map(function (row, rowIndex) {\n    var rowNode = /*#__PURE__*/React.createElement(HeaderRow, {\n      key: rowIndex,\n      flattenColumns: flattenColumns,\n      cells: row,\n      stickyOffsets: stickyOffsets,\n      rowComponent: trComponent,\n      cellComponent: thComponent,\n      onHeaderRow: onHeaderRow,\n      index: rowIndex\n    });\n    return rowNode;\n  }));\n};\nexport default responseImmutable(Header);","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nfunction parseColWidth(totalWidth) {\n  var width = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n  if (typeof width === 'number') {\n    return width;\n  }\n  if (width.endsWith('%')) {\n    return totalWidth * parseFloat(width) / 100;\n  }\n  return null;\n}\n\n/**\n * Fill all column with width\n */\nexport default function useWidthColumns(flattenColumns, scrollWidth, clientWidth) {\n  return React.useMemo(function () {\n    // Fill width if needed\n    if (scrollWidth && scrollWidth > 0) {\n      var totalWidth = 0;\n      var missWidthCount = 0;\n\n      // collect not given width column\n      flattenColumns.forEach(function (col) {\n        var colWidth = parseColWidth(scrollWidth, col.width);\n        if (colWidth) {\n          totalWidth += colWidth;\n        } else {\n          missWidthCount += 1;\n        }\n      });\n\n      // Fill width\n      var maxFitWidth = Math.max(scrollWidth, clientWidth);\n      var restWidth = Math.max(maxFitWidth - totalWidth, missWidthCount);\n      var restCount = missWidthCount;\n      var avgWidth = restWidth / missWidthCount;\n      var realTotal = 0;\n      var filledColumns = flattenColumns.map(function (col) {\n        var clone = _objectSpread({}, col);\n        var colWidth = parseColWidth(scrollWidth, clone.width);\n        if (colWidth) {\n          clone.width = colWidth;\n        } else {\n          var colAvgWidth = Math.floor(avgWidth);\n          clone.width = restCount === 1 ? restWidth : colAvgWidth;\n          restWidth -= colAvgWidth;\n          restCount -= 1;\n        }\n        realTotal += clone.width;\n        return clone;\n      });\n\n      // If realTotal is less than clientWidth,\n      // We need extend column width\n      if (realTotal < maxFitWidth) {\n        var scale = maxFitWidth / realTotal;\n        restWidth = maxFitWidth;\n        filledColumns.forEach(function (col, index) {\n          var colWidth = Math.floor(col.width * scale);\n          col.width = index === filledColumns.length - 1 ? restWidth : colWidth;\n          restWidth -= colWidth;\n        });\n      }\n      return [filledColumns, Math.max(realTotal, maxFitWidth)];\n    }\n    return [flattenColumns, scrollWidth];\n  }, [flattenColumns, scrollWidth, clientWidth]);\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"children\"],\n  _excluded2 = [\"fixed\"];\nimport toArray from \"rc-util/es/Children/toArray\";\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport { EXPAND_COLUMN } from \"../../constant\";\nimport { INTERNAL_COL_DEFINE } from \"../../utils/legacyUtil\";\nimport useWidthColumns from \"./useWidthColumns\";\nexport function convertChildrenToColumns(children) {\n  return toArray(children).filter(function (node) {\n    return /*#__PURE__*/React.isValidElement(node);\n  }).map(function (_ref) {\n    var key = _ref.key,\n      props = _ref.props;\n    var nodeChildren = props.children,\n      restProps = _objectWithoutProperties(props, _excluded);\n    var column = _objectSpread({\n      key: key\n    }, restProps);\n    if (nodeChildren) {\n      column.children = convertChildrenToColumns(nodeChildren);\n    }\n    return column;\n  });\n}\nfunction filterHiddenColumns(columns) {\n  return columns.filter(function (column) {\n    return column && _typeof(column) === 'object' && !column.hidden;\n  }).map(function (column) {\n    var subColumns = column.children;\n    if (subColumns && subColumns.length > 0) {\n      return _objectSpread(_objectSpread({}, column), {}, {\n        children: filterHiddenColumns(subColumns)\n      });\n    }\n    return column;\n  });\n}\nfunction flatColumns(columns) {\n  var parentKey = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'key';\n  return columns.filter(function (column) {\n    return column && _typeof(column) === 'object';\n  }).reduce(function (list, column, index) {\n    var fixed = column.fixed;\n    // Convert `fixed='true'` to `fixed='left'` instead\n    var parsedFixed = fixed === true ? 'left' : fixed;\n    var mergedKey = \"\".concat(parentKey, \"-\").concat(index);\n    var subColumns = column.children;\n    if (subColumns && subColumns.length > 0) {\n      return [].concat(_toConsumableArray(list), _toConsumableArray(flatColumns(subColumns, mergedKey).map(function (subColum) {\n        return _objectSpread({\n          fixed: parsedFixed\n        }, subColum);\n      })));\n    }\n    return [].concat(_toConsumableArray(list), [_objectSpread(_objectSpread({\n      key: mergedKey\n    }, column), {}, {\n      fixed: parsedFixed\n    })]);\n  }, []);\n}\nfunction revertForRtl(columns) {\n  return columns.map(function (column) {\n    var fixed = column.fixed,\n      restProps = _objectWithoutProperties(column, _excluded2);\n\n    // Convert `fixed='left'` to `fixed='right'` instead\n    var parsedFixed = fixed;\n    if (fixed === 'left') {\n      parsedFixed = 'right';\n    } else if (fixed === 'right') {\n      parsedFixed = 'left';\n    }\n    return _objectSpread({\n      fixed: parsedFixed\n    }, restProps);\n  });\n}\n\n/**\n * Parse `columns` & `children` into `columns`.\n */\nfunction useColumns(_ref2, transformColumns) {\n  var prefixCls = _ref2.prefixCls,\n    columns = _ref2.columns,\n    children = _ref2.children,\n    expandable = _ref2.expandable,\n    expandedKeys = _ref2.expandedKeys,\n    columnTitle = _ref2.columnTitle,\n    getRowKey = _ref2.getRowKey,\n    onTriggerExpand = _ref2.onTriggerExpand,\n    expandIcon = _ref2.expandIcon,\n    rowExpandable = _ref2.rowExpandable,\n    expandIconColumnIndex = _ref2.expandIconColumnIndex,\n    direction = _ref2.direction,\n    expandRowByClick = _ref2.expandRowByClick,\n    columnWidth = _ref2.columnWidth,\n    fixed = _ref2.fixed,\n    scrollWidth = _ref2.scrollWidth,\n    clientWidth = _ref2.clientWidth;\n  var baseColumns = React.useMemo(function () {\n    var newColumns = columns || convertChildrenToColumns(children) || [];\n    return filterHiddenColumns(newColumns.slice());\n  }, [columns, children]);\n\n  // ========================== Expand ==========================\n  var withExpandColumns = React.useMemo(function () {\n    if (expandable) {\n      var cloneColumns = baseColumns.slice();\n\n      // >>> Warning if use `expandIconColumnIndex`\n      if (process.env.NODE_ENV !== 'production' && expandIconColumnIndex >= 0) {\n        warning(false, '`expandIconColumnIndex` is deprecated. Please use `Table.EXPAND_COLUMN` in `columns` instead.');\n      }\n\n      // >>> Insert expand column if not exist\n      if (!cloneColumns.includes(EXPAND_COLUMN)) {\n        var expandColIndex = expandIconColumnIndex || 0;\n        if (expandColIndex >= 0) {\n          cloneColumns.splice(expandColIndex, 0, EXPAND_COLUMN);\n        }\n      }\n\n      // >>> Deduplicate additional expand column\n      if (process.env.NODE_ENV !== 'production' && cloneColumns.filter(function (c) {\n        return c === EXPAND_COLUMN;\n      }).length > 1) {\n        warning(false, 'There exist more than one `EXPAND_COLUMN` in `columns`.');\n      }\n      var expandColumnIndex = cloneColumns.indexOf(EXPAND_COLUMN);\n      cloneColumns = cloneColumns.filter(function (column, index) {\n        return column !== EXPAND_COLUMN || index === expandColumnIndex;\n      });\n\n      // >>> Check if expand column need to fixed\n      var prevColumn = baseColumns[expandColumnIndex];\n      var fixedColumn;\n      if ((fixed === 'left' || fixed) && !expandIconColumnIndex) {\n        fixedColumn = 'left';\n      } else if ((fixed === 'right' || fixed) && expandIconColumnIndex === baseColumns.length) {\n        fixedColumn = 'right';\n      } else {\n        fixedColumn = prevColumn ? prevColumn.fixed : null;\n      }\n\n      // >>> Create expandable column\n      var expandColumn = _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, INTERNAL_COL_DEFINE, {\n        className: \"\".concat(prefixCls, \"-expand-icon-col\"),\n        columnType: 'EXPAND_COLUMN'\n      }), \"title\", columnTitle), \"fixed\", fixedColumn), \"className\", \"\".concat(prefixCls, \"-row-expand-icon-cell\")), \"width\", columnWidth), \"render\", function render(_, record, index) {\n        var rowKey = getRowKey(record, index);\n        var expanded = expandedKeys.has(rowKey);\n        var recordExpandable = rowExpandable ? rowExpandable(record) : true;\n        var icon = expandIcon({\n          prefixCls: prefixCls,\n          expanded: expanded,\n          expandable: recordExpandable,\n          record: record,\n          onExpand: onTriggerExpand\n        });\n        if (expandRowByClick) {\n          return /*#__PURE__*/React.createElement(\"span\", {\n            onClick: function onClick(e) {\n              return e.stopPropagation();\n            }\n          }, icon);\n        }\n        return icon;\n      });\n      return cloneColumns.map(function (col) {\n        return col === EXPAND_COLUMN ? expandColumn : col;\n      });\n    }\n    if (process.env.NODE_ENV !== 'production' && baseColumns.includes(EXPAND_COLUMN)) {\n      warning(false, '`expandable` is not config but there exist `EXPAND_COLUMN` in `columns`.');\n    }\n    return baseColumns.filter(function (col) {\n      return col !== EXPAND_COLUMN;\n    });\n  }, [expandable, baseColumns, getRowKey, expandedKeys, expandIcon, direction]);\n\n  // ========================= Transform ========================\n  var mergedColumns = React.useMemo(function () {\n    var finalColumns = withExpandColumns;\n    if (transformColumns) {\n      finalColumns = transformColumns(finalColumns);\n    }\n\n    // Always provides at least one column for table display\n    if (!finalColumns.length) {\n      finalColumns = [{\n        render: function render() {\n          return null;\n        }\n      }];\n    }\n    return finalColumns;\n  }, [transformColumns, withExpandColumns, direction]);\n\n  // ========================== Flatten =========================\n  var flattenColumns = React.useMemo(function () {\n    if (direction === 'rtl') {\n      return revertForRtl(flatColumns(mergedColumns));\n    }\n    return flatColumns(mergedColumns);\n  }, [mergedColumns, direction, scrollWidth]);\n\n  // ========================= Gap Fixed ========================\n  var hasGapFixed = React.useMemo(function () {\n    // Fixed: left, since old browser not support `findLastIndex`, we should use reverse loop\n    var lastLeftIndex = -1;\n    for (var i = flattenColumns.length - 1; i >= 0; i -= 1) {\n      var colFixed = flattenColumns[i].fixed;\n      if (colFixed === 'left' || colFixed === true) {\n        lastLeftIndex = i;\n        break;\n      }\n    }\n    if (lastLeftIndex >= 0) {\n      for (var _i = 0; _i <= lastLeftIndex; _i += 1) {\n        var _colFixed = flattenColumns[_i].fixed;\n        if (_colFixed !== 'left' && _colFixed !== true) {\n          return true;\n        }\n      }\n    }\n\n    // Fixed: right\n    var firstRightIndex = flattenColumns.findIndex(function (_ref3) {\n      var colFixed = _ref3.fixed;\n      return colFixed === 'right';\n    });\n    if (firstRightIndex >= 0) {\n      for (var _i2 = firstRightIndex; _i2 < flattenColumns.length; _i2 += 1) {\n        var _colFixed2 = flattenColumns[_i2].fixed;\n        if (_colFixed2 !== 'right') {\n          return true;\n        }\n      }\n    }\n    return false;\n  }, [flattenColumns]);\n\n  // ========================= FillWidth ========================\n  var _useWidthColumns = useWidthColumns(flattenColumns, scrollWidth, clientWidth),\n    _useWidthColumns2 = _slicedToArray(_useWidthColumns, 2),\n    filledColumns = _useWidthColumns2[0],\n    realScrollWidth = _useWidthColumns2[1];\n  return [mergedColumns, filledColumns, realScrollWidth, hasGapFixed];\n}\nexport default useColumns;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nexport function renderExpandIcon(_ref) {\n  var prefixCls = _ref.prefixCls,\n    record = _ref.record,\n    onExpand = _ref.onExpand,\n    expanded = _ref.expanded,\n    expandable = _ref.expandable;\n  var expandClassName = \"\".concat(prefixCls, \"-row-expand-icon\");\n  if (!expandable) {\n    return /*#__PURE__*/React.createElement(\"span\", {\n      className: classNames(expandClassName, \"\".concat(prefixCls, \"-row-spaced\"))\n    });\n  }\n  var onClick = function onClick(event) {\n    onExpand(record, event);\n    event.stopPropagation();\n  };\n  return /*#__PURE__*/React.createElement(\"span\", {\n    className: classNames(expandClassName, _defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-row-expanded\"), expanded), \"\".concat(prefixCls, \"-row-collapsed\"), !expanded)),\n    onClick: onClick\n  });\n}\nexport function findAllChildrenKeys(data, getRowKey, childrenColumnName) {\n  var keys = [];\n  function dig(list) {\n    (list || []).forEach(function (item, index) {\n      keys.push(getRowKey(item, index));\n      dig(item[childrenColumnName]);\n    });\n  }\n  dig(data);\n  return keys;\n}","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport { INTERNAL_HOOKS } from \"../constant\";\nimport { findAllChildrenKeys, renderExpandIcon } from \"../utils/expandUtil\";\nimport { getExpandableProps } from \"../utils/legacyUtil\";\nexport default function useExpand(props, mergedData, getRowKey) {\n  var expandableConfig = getExpandableProps(props);\n  var expandIcon = expandableConfig.expandIcon,\n    expandedRowKeys = expandableConfig.expandedRowKeys,\n    defaultExpandedRowKeys = expandableConfig.defaultExpandedRowKeys,\n    defaultExpandAllRows = expandableConfig.defaultExpandAllRows,\n    expandedRowRender = expandableConfig.expandedRowRender,\n    onExpand = expandableConfig.onExpand,\n    onExpandedRowsChange = expandableConfig.onExpandedRowsChange,\n    childrenColumnName = expandableConfig.childrenColumnName;\n  var mergedExpandIcon = expandIcon || renderExpandIcon;\n  var mergedChildrenColumnName = childrenColumnName || 'children';\n  var expandableType = React.useMemo(function () {\n    if (expandedRowRender) {\n      return 'row';\n    }\n    /* eslint-disable no-underscore-dangle */\n    /**\n     * Fix https://github.com/ant-design/ant-design/issues/21154\n     * This is a workaround to not to break current behavior.\n     * We can remove follow code after final release.\n     *\n     * To other developer:\n     *  Do not use `__PARENT_RENDER_ICON__` in prod since we will remove this when refactor\n     */\n    if (props.expandable && props.internalHooks === INTERNAL_HOOKS && props.expandable.__PARENT_RENDER_ICON__ || mergedData.some(function (record) {\n      return record && _typeof(record) === 'object' && record[mergedChildrenColumnName];\n    })) {\n      return 'nest';\n    }\n    /* eslint-enable */\n    return false;\n  }, [!!expandedRowRender, mergedData]);\n  var _React$useState = React.useState(function () {\n      if (defaultExpandedRowKeys) {\n        return defaultExpandedRowKeys;\n      }\n      if (defaultExpandAllRows) {\n        return findAllChildrenKeys(mergedData, getRowKey, mergedChildrenColumnName);\n      }\n      return [];\n    }),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    innerExpandedKeys = _React$useState2[0],\n    setInnerExpandedKeys = _React$useState2[1];\n  var mergedExpandedKeys = React.useMemo(function () {\n    return new Set(expandedRowKeys || innerExpandedKeys || []);\n  }, [expandedRowKeys, innerExpandedKeys]);\n  var onTriggerExpand = React.useCallback(function (record) {\n    var key = getRowKey(record, mergedData.indexOf(record));\n    var newExpandedKeys;\n    var hasKey = mergedExpandedKeys.has(key);\n    if (hasKey) {\n      mergedExpandedKeys.delete(key);\n      newExpandedKeys = _toConsumableArray(mergedExpandedKeys);\n    } else {\n      newExpandedKeys = [].concat(_toConsumableArray(mergedExpandedKeys), [key]);\n    }\n    setInnerExpandedKeys(newExpandedKeys);\n    if (onExpand) {\n      onExpand(!hasKey, record);\n    }\n    if (onExpandedRowsChange) {\n      onExpandedRowsChange(newExpandedKeys);\n    }\n  }, [getRowKey, mergedExpandedKeys, mergedData, onExpand, onExpandedRowsChange]);\n\n  // Warning if use `expandedRowRender` and nest children in the same time\n  if (process.env.NODE_ENV !== 'production' && expandedRowRender && mergedData.some(function (record) {\n    return Array.isArray(record === null || record === void 0 ? void 0 : record[mergedChildrenColumnName]);\n  })) {\n    warning(false, '`expandedRowRender` should not use with nested Table');\n  }\n  return [expandableConfig, expandableType, mergedExpandedKeys, mergedExpandIcon, mergedChildrenColumnName, onTriggerExpand];\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useRef, useState, useEffect } from 'react';\n/**\n * Execute code before next frame but async\n */\nexport function useLayoutState(defaultState) {\n  var stateRef = useRef(defaultState);\n  var _useState = useState({}),\n    _useState2 = _slicedToArray(_useState, 2),\n    forceUpdate = _useState2[1];\n  var lastPromiseRef = useRef(null);\n  var updateBatchRef = useRef([]);\n  function setFrameState(updater) {\n    updateBatchRef.current.push(updater);\n    var promise = Promise.resolve();\n    lastPromiseRef.current = promise;\n    promise.then(function () {\n      if (lastPromiseRef.current === promise) {\n        var prevBatch = updateBatchRef.current;\n        var prevState = stateRef.current;\n        updateBatchRef.current = [];\n        prevBatch.forEach(function (batchUpdater) {\n          stateRef.current = batchUpdater(stateRef.current);\n        });\n        lastPromiseRef.current = null;\n        if (prevState !== stateRef.current) {\n          forceUpdate({});\n        }\n      }\n    });\n  }\n  useEffect(function () {\n    return function () {\n      lastPromiseRef.current = null;\n    };\n  }, []);\n  return [stateRef.current, setFrameState];\n}\n\n/** Lock frame, when frame pass reset the lock. */\nexport function useTimeoutLock(defaultState) {\n  var frameRef = useRef(defaultState || null);\n  var timeoutRef = useRef();\n  function cleanUp() {\n    window.clearTimeout(timeoutRef.current);\n  }\n  function setState(newState) {\n    frameRef.current = newState;\n    cleanUp();\n    timeoutRef.current = window.setTimeout(function () {\n      frameRef.current = null;\n      timeoutRef.current = undefined;\n    }, 100);\n  }\n  function getState() {\n    return frameRef.current;\n  }\n  useEffect(function () {\n    return cleanUp;\n  }, []);\n  return [setState, getState];\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport * as React from 'react';\nimport canUseDom from \"rc-util/es/Dom/canUseDom\";\n// fix ssr render\nvar defaultContainer = canUseDom() ? window : null;\n\n/** Sticky header hooks */\nexport default function useSticky(sticky, prefixCls) {\n  var _ref = _typeof(sticky) === 'object' ? sticky : {},\n    _ref$offsetHeader = _ref.offsetHeader,\n    offsetHeader = _ref$offsetHeader === void 0 ? 0 : _ref$offsetHeader,\n    _ref$offsetSummary = _ref.offsetSummary,\n    offsetSummary = _ref$offsetSummary === void 0 ? 0 : _ref$offsetSummary,\n    _ref$offsetScroll = _ref.offsetScroll,\n    offsetScroll = _ref$offsetScroll === void 0 ? 0 : _ref$offsetScroll,\n    _ref$getContainer = _ref.getContainer,\n    getContainer = _ref$getContainer === void 0 ? function () {\n      return defaultContainer;\n    } : _ref$getContainer;\n  var container = getContainer() || defaultContainer;\n  var isSticky = !!sticky;\n  return React.useMemo(function () {\n    return {\n      isSticky: isSticky,\n      stickyClassName: isSticky ? \"\".concat(prefixCls, \"-sticky-holder\") : '',\n      offsetHeader: offsetHeader,\n      offsetSummary: offsetSummary,\n      offsetScroll: offsetScroll,\n      container: container\n    };\n  }, [isSticky, offsetScroll, offsetHeader, offsetSummary, prefixCls, container]);\n}","import { useMemo } from 'react';\n/**\n * Get sticky column offset width\n */\nfunction useStickyOffsets(colWidths, flattenColumns, direction) {\n  var stickyOffsets = useMemo(function () {\n    var columnCount = flattenColumns.length;\n    var getOffsets = function getOffsets(startIndex, endIndex, offset) {\n      var offsets = [];\n      var total = 0;\n      for (var i = startIndex; i !== endIndex; i += offset) {\n        offsets.push(total);\n        if (flattenColumns[i].fixed) {\n          total += colWidths[i] || 0;\n        }\n      }\n      return offsets;\n    };\n    var startOffsets = getOffsets(0, columnCount, 1);\n    var endOffsets = getOffsets(columnCount - 1, -1, -1).reverse();\n    return direction === 'rtl' ? {\n      left: endOffsets,\n      right: startOffsets\n    } : {\n      left: startOffsets,\n      right: endOffsets\n    };\n  }, [colWidths, flattenColumns, direction]);\n  return stickyOffsets;\n}\nexport default useStickyOffsets;","import * as React from 'react';\nfunction Panel(_ref) {\n  var className = _ref.className,\n    children = _ref.children;\n  return /*#__PURE__*/React.createElement(\"div\", {\n    className: className\n  }, children);\n}\nexport default Panel;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useContext } from '@rc-component/context';\nimport classNames from 'classnames';\nimport addEventListener from \"rc-util/es/Dom/addEventListener\";\nimport { getOffset } from \"rc-util/es/Dom/css\";\nimport getScrollBarSize from \"rc-util/es/getScrollBarSize\";\nimport * as React from 'react';\nimport TableContext from \"./context/TableContext\";\nimport { useLayoutState } from \"./hooks/useFrame\";\nimport raf from \"rc-util/es/raf\";\nvar StickyScrollBar = function StickyScrollBar(_ref, ref) {\n  var _scrollBodyRef$curren, _scrollBodyRef$curren2;\n  var scrollBodyRef = _ref.scrollBodyRef,\n    onScroll = _ref.onScroll,\n    offsetScroll = _ref.offsetScroll,\n    container = _ref.container;\n  var prefixCls = useContext(TableContext, 'prefixCls');\n  var bodyScrollWidth = ((_scrollBodyRef$curren = scrollBodyRef.current) === null || _scrollBodyRef$curren === void 0 ? void 0 : _scrollBodyRef$curren.scrollWidth) || 0;\n  var bodyWidth = ((_scrollBodyRef$curren2 = scrollBodyRef.current) === null || _scrollBodyRef$curren2 === void 0 ? void 0 : _scrollBodyRef$curren2.clientWidth) || 0;\n  var scrollBarWidth = bodyScrollWidth && bodyWidth * (bodyWidth / bodyScrollWidth);\n  var scrollBarRef = React.useRef();\n  var _useLayoutState = useLayoutState({\n      scrollLeft: 0,\n      isHiddenScrollBar: true\n    }),\n    _useLayoutState2 = _slicedToArray(_useLayoutState, 2),\n    scrollState = _useLayoutState2[0],\n    setScrollState = _useLayoutState2[1];\n  var refState = React.useRef({\n    delta: 0,\n    x: 0\n  });\n  var _React$useState = React.useState(false),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    isActive = _React$useState2[0],\n    setActive = _React$useState2[1];\n  var rafRef = React.useRef(null);\n  React.useEffect(function () {\n    return function () {\n      raf.cancel(rafRef.current);\n    };\n  }, []);\n  var onMouseUp = function onMouseUp() {\n    setActive(false);\n  };\n  var onMouseDown = function onMouseDown(event) {\n    event.persist();\n    refState.current.delta = event.pageX - scrollState.scrollLeft;\n    refState.current.x = 0;\n    setActive(true);\n    event.preventDefault();\n  };\n  var onMouseMove = function onMouseMove(event) {\n    var _window;\n    // https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/buttons\n    var _ref2 = event || ((_window = window) === null || _window === void 0 ? void 0 : _window.event),\n      buttons = _ref2.buttons;\n    if (!isActive || buttons === 0) {\n      // If out body mouse up, we can set isActive false when mouse move\n      if (isActive) {\n        setActive(false);\n      }\n      return;\n    }\n    var left = refState.current.x + event.pageX - refState.current.x - refState.current.delta;\n    if (left <= 0) {\n      left = 0;\n    }\n    if (left + scrollBarWidth >= bodyWidth) {\n      left = bodyWidth - scrollBarWidth;\n    }\n    onScroll({\n      scrollLeft: left / bodyWidth * (bodyScrollWidth + 2)\n    });\n    refState.current.x = event.pageX;\n  };\n  var checkScrollBarVisible = function checkScrollBarVisible() {\n    rafRef.current = raf(function () {\n      if (!scrollBodyRef.current) {\n        return;\n      }\n      var tableOffsetTop = getOffset(scrollBodyRef.current).top;\n      var tableBottomOffset = tableOffsetTop + scrollBodyRef.current.offsetHeight;\n      var currentClientOffset = container === window ? document.documentElement.scrollTop + window.innerHeight : getOffset(container).top + container.clientHeight;\n      if (tableBottomOffset - getScrollBarSize() <= currentClientOffset || tableOffsetTop >= currentClientOffset - offsetScroll) {\n        setScrollState(function (state) {\n          return _objectSpread(_objectSpread({}, state), {}, {\n            isHiddenScrollBar: true\n          });\n        });\n      } else {\n        setScrollState(function (state) {\n          return _objectSpread(_objectSpread({}, state), {}, {\n            isHiddenScrollBar: false\n          });\n        });\n      }\n    });\n  };\n  var setScrollLeft = function setScrollLeft(left) {\n    setScrollState(function (state) {\n      return _objectSpread(_objectSpread({}, state), {}, {\n        scrollLeft: left / bodyScrollWidth * bodyWidth || 0\n      });\n    });\n  };\n  React.useImperativeHandle(ref, function () {\n    return {\n      setScrollLeft: setScrollLeft,\n      checkScrollBarVisible: checkScrollBarVisible\n    };\n  });\n  React.useEffect(function () {\n    var onMouseUpListener = addEventListener(document.body, 'mouseup', onMouseUp, false);\n    var onMouseMoveListener = addEventListener(document.body, 'mousemove', onMouseMove, false);\n    checkScrollBarVisible();\n    return function () {\n      onMouseUpListener.remove();\n      onMouseMoveListener.remove();\n    };\n  }, [scrollBarWidth, isActive]);\n  React.useEffect(function () {\n    var onScrollListener = addEventListener(container, 'scroll', checkScrollBarVisible, false);\n    var onResizeListener = addEventListener(window, 'resize', checkScrollBarVisible, false);\n    return function () {\n      onScrollListener.remove();\n      onResizeListener.remove();\n    };\n  }, [container]);\n  React.useEffect(function () {\n    if (!scrollState.isHiddenScrollBar) {\n      setScrollState(function (state) {\n        var bodyNode = scrollBodyRef.current;\n        if (!bodyNode) {\n          return state;\n        }\n        return _objectSpread(_objectSpread({}, state), {}, {\n          scrollLeft: bodyNode.scrollLeft / bodyNode.scrollWidth * bodyNode.clientWidth\n        });\n      });\n    }\n  }, [scrollState.isHiddenScrollBar]);\n  if (bodyScrollWidth <= bodyWidth || !scrollBarWidth || scrollState.isHiddenScrollBar) {\n    return null;\n  }\n  return /*#__PURE__*/React.createElement(\"div\", {\n    style: {\n      height: getScrollBarSize(),\n      width: bodyWidth,\n      bottom: offsetScroll\n    },\n    className: \"\".concat(prefixCls, \"-sticky-scroll\")\n  }, /*#__PURE__*/React.createElement(\"div\", {\n    onMouseDown: onMouseDown,\n    ref: scrollBarRef,\n    className: classNames(\"\".concat(prefixCls, \"-sticky-scroll-bar\"), _defineProperty({}, \"\".concat(prefixCls, \"-sticky-scroll-bar-active\"), isActive)),\n    style: {\n      width: \"\".concat(scrollBarWidth, \"px\"),\n      transform: \"translate3d(\".concat(scrollState.scrollLeft, \"px, 0, 0)\")\n    }\n  }));\n};\nexport default /*#__PURE__*/React.forwardRef(StickyScrollBar);","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n/**\n * Feature:\n *  - fixed not need to set width\n *  - support `rowExpandable` to config row expand logic\n *  - add `summary` to support `() => ReactNode`\n *\n * Update:\n *  - `dataIndex` is `array[]` now\n *  - `expandable` wrap all the expand related props\n *\n * Removed:\n *  - expandIconAsCell\n *  - useFixedHeader\n *  - rowRef\n *  - columns[number].onCellClick\n *  - onRowClick\n *  - onRowDoubleClick\n *  - onRowMouseEnter\n *  - onRowMouseLeave\n *  - getBodyWrapper\n *  - bodyStyle\n *\n * Deprecated:\n *  - All expanded props, move into expandable\n */\n\nimport classNames from 'classnames';\nimport ResizeObserver from 'rc-resize-observer';\nimport isVisible from \"rc-util/es/Dom/isVisible\";\nimport { isStyleSupport } from \"rc-util/es/Dom/styleChecker\";\nimport { getTargetScrollBarSize } from \"rc-util/es/getScrollBarSize\";\nimport useEvent from \"rc-util/es/hooks/useEvent\";\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport getValue from \"rc-util/es/utils/get\";\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport Body from \"./Body\";\nimport ColGroup from \"./ColGroup\";\nimport { EXPAND_COLUMN, INTERNAL_HOOKS } from \"./constant\";\nimport TableContext, { makeImmutable } from \"./context/TableContext\";\nimport FixedHolder from \"./FixedHolder\";\nimport Footer, { FooterComponents } from \"./Footer\";\nimport Summary from \"./Footer/Summary\";\nimport Header from \"./Header/Header\";\nimport useColumns from \"./hooks/useColumns\";\nimport useExpand from \"./hooks/useExpand\";\nimport useFixedInfo from \"./hooks/useFixedInfo\";\nimport { useLayoutState, useTimeoutLock } from \"./hooks/useFrame\";\nimport useHover from \"./hooks/useHover\";\nimport useSticky from \"./hooks/useSticky\";\nimport useStickyOffsets from \"./hooks/useStickyOffsets\";\nimport Panel from \"./Panel\";\nimport StickyScrollBar from \"./stickyScrollBar\";\nimport Column from \"./sugar/Column\";\nimport ColumnGroup from \"./sugar/ColumnGroup\";\nimport { getColumnsKey, validateValue, validNumberValue } from \"./utils/valueUtil\";\nimport { getDOM } from \"rc-util/es/Dom/findDOMNode\";\nexport var DEFAULT_PREFIX = 'rc-table';\n\n// Used for conditions cache\nvar EMPTY_DATA = [];\n\n// Used for customize scroll\nvar EMPTY_SCROLL_TARGET = {};\nfunction defaultEmpty() {\n  return 'No Data';\n}\nfunction Table(tableProps, ref) {\n  var props = _objectSpread({\n    rowKey: 'key',\n    prefixCls: DEFAULT_PREFIX,\n    emptyText: defaultEmpty\n  }, tableProps);\n  var prefixCls = props.prefixCls,\n    className = props.className,\n    rowClassName = props.rowClassName,\n    style = props.style,\n    data = props.data,\n    rowKey = props.rowKey,\n    scroll = props.scroll,\n    tableLayout = props.tableLayout,\n    direction = props.direction,\n    title = props.title,\n    footer = props.footer,\n    summary = props.summary,\n    caption = props.caption,\n    id = props.id,\n    showHeader = props.showHeader,\n    components = props.components,\n    emptyText = props.emptyText,\n    onRow = props.onRow,\n    onHeaderRow = props.onHeaderRow,\n    onScroll = props.onScroll,\n    internalHooks = props.internalHooks,\n    transformColumns = props.transformColumns,\n    internalRefs = props.internalRefs,\n    tailor = props.tailor,\n    getContainerWidth = props.getContainerWidth,\n    sticky = props.sticky,\n    _props$rowHoverable = props.rowHoverable,\n    rowHoverable = _props$rowHoverable === void 0 ? true : _props$rowHoverable;\n  var mergedData = data || EMPTY_DATA;\n  var hasData = !!mergedData.length;\n  var useInternalHooks = internalHooks === INTERNAL_HOOKS;\n\n  // ===================== Warning ======================\n  if (process.env.NODE_ENV !== 'production') {\n    ['onRowClick', 'onRowDoubleClick', 'onRowContextMenu', 'onRowMouseEnter', 'onRowMouseLeave'].forEach(function (name) {\n      warning(props[name] === undefined, \"`\".concat(name, \"` is removed, please use `onRow` instead.\"));\n    });\n    warning(!('getBodyWrapper' in props), '`getBodyWrapper` is deprecated, please use custom `components` instead.');\n  }\n\n  // ==================== Customize =====================\n  var getComponent = React.useCallback(function (path, defaultComponent) {\n    return getValue(components, path) || defaultComponent;\n  }, [components]);\n  var getRowKey = React.useMemo(function () {\n    if (typeof rowKey === 'function') {\n      return rowKey;\n    }\n    return function (record) {\n      var key = record && record[rowKey];\n      if (process.env.NODE_ENV !== 'production') {\n        warning(key !== undefined, 'Each record in table should have a unique `key` prop, or set `rowKey` to an unique primary key.');\n      }\n      return key;\n    };\n  }, [rowKey]);\n  var customizeScrollBody = getComponent(['body']);\n\n  // ====================== Hover =======================\n  var _useHover = useHover(),\n    _useHover2 = _slicedToArray(_useHover, 3),\n    startRow = _useHover2[0],\n    endRow = _useHover2[1],\n    onHover = _useHover2[2];\n\n  // ====================== Expand ======================\n  var _useExpand = useExpand(props, mergedData, getRowKey),\n    _useExpand2 = _slicedToArray(_useExpand, 6),\n    expandableConfig = _useExpand2[0],\n    expandableType = _useExpand2[1],\n    mergedExpandedKeys = _useExpand2[2],\n    mergedExpandIcon = _useExpand2[3],\n    mergedChildrenColumnName = _useExpand2[4],\n    onTriggerExpand = _useExpand2[5];\n\n  // ====================== Column ======================\n  var scrollX = scroll === null || scroll === void 0 ? void 0 : scroll.x;\n  var _React$useState = React.useState(0),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    componentWidth = _React$useState2[0],\n    setComponentWidth = _React$useState2[1];\n  var _useColumns = useColumns(_objectSpread(_objectSpread(_objectSpread({}, props), expandableConfig), {}, {\n      expandable: !!expandableConfig.expandedRowRender,\n      columnTitle: expandableConfig.columnTitle,\n      expandedKeys: mergedExpandedKeys,\n      getRowKey: getRowKey,\n      // https://github.com/ant-design/ant-design/issues/23894\n      onTriggerExpand: onTriggerExpand,\n      expandIcon: mergedExpandIcon,\n      expandIconColumnIndex: expandableConfig.expandIconColumnIndex,\n      direction: direction,\n      scrollWidth: useInternalHooks && tailor && typeof scrollX === 'number' ? scrollX : null,\n      clientWidth: componentWidth\n    }), useInternalHooks ? transformColumns : null),\n    _useColumns2 = _slicedToArray(_useColumns, 4),\n    columns = _useColumns2[0],\n    flattenColumns = _useColumns2[1],\n    flattenScrollX = _useColumns2[2],\n    hasGapFixed = _useColumns2[3];\n  var mergedScrollX = flattenScrollX !== null && flattenScrollX !== void 0 ? flattenScrollX : scrollX;\n  var columnContext = React.useMemo(function () {\n    return {\n      columns: columns,\n      flattenColumns: flattenColumns\n    };\n  }, [columns, flattenColumns]);\n\n  // ======================= Refs =======================\n  var fullTableRef = React.useRef();\n  var scrollHeaderRef = React.useRef();\n  var scrollBodyRef = React.useRef();\n  var scrollBodyContainerRef = React.useRef();\n  React.useImperativeHandle(ref, function () {\n    return {\n      nativeElement: fullTableRef.current,\n      scrollTo: function scrollTo(config) {\n        var _scrollBodyRef$curren3;\n        if (scrollBodyRef.current instanceof HTMLElement) {\n          // Native scroll\n          var index = config.index,\n            top = config.top,\n            key = config.key;\n          if (validNumberValue(top)) {\n            var _scrollBodyRef$curren;\n            (_scrollBodyRef$curren = scrollBodyRef.current) === null || _scrollBodyRef$curren === void 0 || _scrollBodyRef$curren.scrollTo({\n              top: top\n            });\n          } else {\n            var _scrollBodyRef$curren2;\n            var mergedKey = key !== null && key !== void 0 ? key : getRowKey(mergedData[index]);\n            (_scrollBodyRef$curren2 = scrollBodyRef.current.querySelector(\"[data-row-key=\\\"\".concat(mergedKey, \"\\\"]\"))) === null || _scrollBodyRef$curren2 === void 0 || _scrollBodyRef$curren2.scrollIntoView();\n          }\n        } else if ((_scrollBodyRef$curren3 = scrollBodyRef.current) !== null && _scrollBodyRef$curren3 !== void 0 && _scrollBodyRef$curren3.scrollTo) {\n          // Pass to proxy\n          scrollBodyRef.current.scrollTo(config);\n        }\n      }\n    };\n  });\n\n  // ====================== Scroll ======================\n  var scrollSummaryRef = React.useRef();\n  var _React$useState3 = React.useState(false),\n    _React$useState4 = _slicedToArray(_React$useState3, 2),\n    pingedLeft = _React$useState4[0],\n    setPingedLeft = _React$useState4[1];\n  var _React$useState5 = React.useState(false),\n    _React$useState6 = _slicedToArray(_React$useState5, 2),\n    pingedRight = _React$useState6[0],\n    setPingedRight = _React$useState6[1];\n  var _useLayoutState = useLayoutState(new Map()),\n    _useLayoutState2 = _slicedToArray(_useLayoutState, 2),\n    colsWidths = _useLayoutState2[0],\n    updateColsWidths = _useLayoutState2[1];\n\n  // Convert map to number width\n  var colsKeys = getColumnsKey(flattenColumns);\n  var pureColWidths = colsKeys.map(function (columnKey) {\n    return colsWidths.get(columnKey);\n  });\n  var colWidths = React.useMemo(function () {\n    return pureColWidths;\n  }, [pureColWidths.join('_')]);\n  var stickyOffsets = useStickyOffsets(colWidths, flattenColumns, direction);\n  var fixHeader = scroll && validateValue(scroll.y);\n  var horizonScroll = scroll && validateValue(mergedScrollX) || Boolean(expandableConfig.fixed);\n  var fixColumn = horizonScroll && flattenColumns.some(function (_ref) {\n    var fixed = _ref.fixed;\n    return fixed;\n  });\n\n  // Sticky\n  var stickyRef = React.useRef();\n  var _useSticky = useSticky(sticky, prefixCls),\n    isSticky = _useSticky.isSticky,\n    offsetHeader = _useSticky.offsetHeader,\n    offsetSummary = _useSticky.offsetSummary,\n    offsetScroll = _useSticky.offsetScroll,\n    stickyClassName = _useSticky.stickyClassName,\n    container = _useSticky.container;\n\n  // Footer (Fix footer must fixed header)\n  var summaryNode = React.useMemo(function () {\n    return summary === null || summary === void 0 ? void 0 : summary(mergedData);\n  }, [summary, mergedData]);\n  var fixFooter = (fixHeader || isSticky) && /*#__PURE__*/React.isValidElement(summaryNode) && summaryNode.type === Summary && summaryNode.props.fixed;\n\n  // Scroll\n  var scrollXStyle;\n  var scrollYStyle;\n  var scrollTableStyle;\n  if (fixHeader) {\n    scrollYStyle = {\n      overflowY: hasData ? 'scroll' : 'auto',\n      maxHeight: scroll.y\n    };\n  }\n  if (horizonScroll) {\n    scrollXStyle = {\n      overflowX: 'auto'\n    };\n    // When no vertical scrollbar, should hide it\n    // https://github.com/ant-design/ant-design/pull/20705\n    // https://github.com/ant-design/ant-design/issues/21879\n    if (!fixHeader) {\n      scrollYStyle = {\n        overflowY: 'hidden'\n      };\n    }\n    scrollTableStyle = {\n      width: mergedScrollX === true ? 'auto' : mergedScrollX,\n      minWidth: '100%'\n    };\n  }\n  var onColumnResize = React.useCallback(function (columnKey, width) {\n    if (isVisible(fullTableRef.current)) {\n      updateColsWidths(function (widths) {\n        if (widths.get(columnKey) !== width) {\n          var newWidths = new Map(widths);\n          newWidths.set(columnKey, width);\n          return newWidths;\n        }\n        return widths;\n      });\n    }\n  }, []);\n  var _useTimeoutLock = useTimeoutLock(null),\n    _useTimeoutLock2 = _slicedToArray(_useTimeoutLock, 2),\n    setScrollTarget = _useTimeoutLock2[0],\n    getScrollTarget = _useTimeoutLock2[1];\n  function forceScroll(scrollLeft, target) {\n    if (!target) {\n      return;\n    }\n    if (typeof target === 'function') {\n      target(scrollLeft);\n    } else if (target.scrollLeft !== scrollLeft) {\n      target.scrollLeft = scrollLeft;\n\n      // Delay to force scroll position if not sync\n      // ref: https://github.com/ant-design/ant-design/issues/37179\n      if (target.scrollLeft !== scrollLeft) {\n        setTimeout(function () {\n          target.scrollLeft = scrollLeft;\n        }, 0);\n      }\n    }\n  }\n  var onInternalScroll = useEvent(function (_ref2) {\n    var currentTarget = _ref2.currentTarget,\n      scrollLeft = _ref2.scrollLeft;\n    var isRTL = direction === 'rtl';\n    var mergedScrollLeft = typeof scrollLeft === 'number' ? scrollLeft : currentTarget.scrollLeft;\n    var compareTarget = currentTarget || EMPTY_SCROLL_TARGET;\n    if (!getScrollTarget() || getScrollTarget() === compareTarget) {\n      var _stickyRef$current;\n      setScrollTarget(compareTarget);\n      forceScroll(mergedScrollLeft, scrollHeaderRef.current);\n      forceScroll(mergedScrollLeft, scrollBodyRef.current);\n      forceScroll(mergedScrollLeft, scrollSummaryRef.current);\n      forceScroll(mergedScrollLeft, (_stickyRef$current = stickyRef.current) === null || _stickyRef$current === void 0 ? void 0 : _stickyRef$current.setScrollLeft);\n    }\n    var measureTarget = currentTarget || scrollHeaderRef.current;\n    if (measureTarget) {\n      var scrollWidth = typeof mergedScrollX === 'number' ? mergedScrollX : measureTarget.scrollWidth;\n      var clientWidth = measureTarget.clientWidth;\n      // There is no space to scroll\n      if (scrollWidth === clientWidth) {\n        setPingedLeft(false);\n        setPingedRight(false);\n        return;\n      }\n      if (isRTL) {\n        setPingedLeft(-mergedScrollLeft < scrollWidth - clientWidth);\n        setPingedRight(-mergedScrollLeft > 0);\n      } else {\n        setPingedLeft(mergedScrollLeft > 0);\n        setPingedRight(mergedScrollLeft < scrollWidth - clientWidth);\n      }\n    }\n  });\n  var onBodyScroll = useEvent(function (e) {\n    onInternalScroll(e);\n    onScroll === null || onScroll === void 0 || onScroll(e);\n  });\n  var triggerOnScroll = function triggerOnScroll() {\n    if (horizonScroll && scrollBodyRef.current) {\n      var _scrollBodyRef$curren4;\n      onInternalScroll({\n        currentTarget: getDOM(scrollBodyRef.current),\n        scrollLeft: (_scrollBodyRef$curren4 = scrollBodyRef.current) === null || _scrollBodyRef$curren4 === void 0 ? void 0 : _scrollBodyRef$curren4.scrollLeft\n      });\n    } else {\n      setPingedLeft(false);\n      setPingedRight(false);\n    }\n  };\n  var onFullTableResize = function onFullTableResize(_ref3) {\n    var _stickyRef$current2;\n    var width = _ref3.width;\n    (_stickyRef$current2 = stickyRef.current) === null || _stickyRef$current2 === void 0 || _stickyRef$current2.checkScrollBarVisible();\n    var mergedWidth = fullTableRef.current ? fullTableRef.current.offsetWidth : width;\n    if (useInternalHooks && getContainerWidth && fullTableRef.current) {\n      mergedWidth = getContainerWidth(fullTableRef.current, mergedWidth) || mergedWidth;\n    }\n    if (mergedWidth !== componentWidth) {\n      triggerOnScroll();\n      setComponentWidth(mergedWidth);\n    }\n  };\n\n  // Sync scroll bar when init or `horizonScroll`, `data` and `columns.length` changed\n  var mounted = React.useRef(false);\n  React.useEffect(function () {\n    // onFullTableResize will be trigger once when ResizeObserver is mounted\n    // This will reduce one duplicated triggerOnScroll time\n    if (mounted.current) {\n      triggerOnScroll();\n    }\n  }, [horizonScroll, data, columns.length]);\n  React.useEffect(function () {\n    mounted.current = true;\n  }, []);\n\n  // ===================== Effects ======================\n  var _React$useState7 = React.useState(0),\n    _React$useState8 = _slicedToArray(_React$useState7, 2),\n    scrollbarSize = _React$useState8[0],\n    setScrollbarSize = _React$useState8[1];\n  var _React$useState9 = React.useState(true),\n    _React$useState10 = _slicedToArray(_React$useState9, 2),\n    supportSticky = _React$useState10[0],\n    setSupportSticky = _React$useState10[1]; // Only IE not support, we mark as support first\n\n  React.useEffect(function () {\n    if (!tailor || !useInternalHooks) {\n      if (scrollBodyRef.current instanceof Element) {\n        setScrollbarSize(getTargetScrollBarSize(scrollBodyRef.current).width);\n      } else {\n        setScrollbarSize(getTargetScrollBarSize(scrollBodyContainerRef.current).width);\n      }\n    }\n    setSupportSticky(isStyleSupport('position', 'sticky'));\n  }, []);\n\n  // ================== INTERNAL HOOKS ==================\n  React.useEffect(function () {\n    if (useInternalHooks && internalRefs) {\n      internalRefs.body.current = scrollBodyRef.current;\n    }\n  });\n\n  // ========================================================================\n  // ==                               Render                               ==\n  // ========================================================================\n  // =================== Render: Func ===================\n  var renderFixedHeaderTable = React.useCallback(function (fixedHolderPassProps) {\n    return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Header, fixedHolderPassProps), fixFooter === 'top' && /*#__PURE__*/React.createElement(Footer, fixedHolderPassProps, summaryNode));\n  }, [fixFooter, summaryNode]);\n  var renderFixedFooterTable = React.useCallback(function (fixedHolderPassProps) {\n    return /*#__PURE__*/React.createElement(Footer, fixedHolderPassProps, summaryNode);\n  }, [summaryNode]);\n\n  // =================== Render: Node ===================\n  var TableComponent = getComponent(['table'], 'table');\n\n  // Table layout\n  var mergedTableLayout = React.useMemo(function () {\n    if (tableLayout) {\n      return tableLayout;\n    }\n    // https://github.com/ant-design/ant-design/issues/25227\n    // When scroll.x is max-content, no need to fix table layout\n    // it's width should stretch out to fit content\n    if (fixColumn) {\n      return mergedScrollX === 'max-content' ? 'auto' : 'fixed';\n    }\n    if (fixHeader || isSticky || flattenColumns.some(function (_ref4) {\n      var ellipsis = _ref4.ellipsis;\n      return ellipsis;\n    })) {\n      return 'fixed';\n    }\n    return 'auto';\n  }, [fixHeader, fixColumn, flattenColumns, tableLayout, isSticky]);\n  var groupTableNode;\n\n  // Header props\n  var headerProps = {\n    colWidths: colWidths,\n    columCount: flattenColumns.length,\n    stickyOffsets: stickyOffsets,\n    onHeaderRow: onHeaderRow,\n    fixHeader: fixHeader,\n    scroll: scroll\n  };\n\n  // Empty\n  var emptyNode = React.useMemo(function () {\n    if (hasData) {\n      return null;\n    }\n    if (typeof emptyText === 'function') {\n      return emptyText();\n    }\n    return emptyText;\n  }, [hasData, emptyText]);\n\n  // Body\n  var bodyTable = /*#__PURE__*/React.createElement(Body, {\n    data: mergedData,\n    measureColumnWidth: fixHeader || horizonScroll || isSticky\n  });\n  var bodyColGroup = /*#__PURE__*/React.createElement(ColGroup, {\n    colWidths: flattenColumns.map(function (_ref5) {\n      var width = _ref5.width;\n      return width;\n    }),\n    columns: flattenColumns\n  });\n  var captionElement = caption !== null && caption !== undefined ? /*#__PURE__*/React.createElement(\"caption\", {\n    className: \"\".concat(prefixCls, \"-caption\")\n  }, caption) : undefined;\n  var dataProps = pickAttrs(props, {\n    data: true\n  });\n  var ariaProps = pickAttrs(props, {\n    aria: true\n  });\n  if (fixHeader || isSticky) {\n    // >>>>>> Fixed Header\n    var bodyContent;\n    if (typeof customizeScrollBody === 'function') {\n      bodyContent = customizeScrollBody(mergedData, {\n        scrollbarSize: scrollbarSize,\n        ref: scrollBodyRef,\n        onScroll: onInternalScroll\n      });\n      headerProps.colWidths = flattenColumns.map(function (_ref6, index) {\n        var width = _ref6.width;\n        var colWidth = index === flattenColumns.length - 1 ? width - scrollbarSize : width;\n        if (typeof colWidth === 'number' && !Number.isNaN(colWidth)) {\n          return colWidth;\n        }\n        if (process.env.NODE_ENV !== 'production') {\n          warning(props.columns.length === 0, 'When use `components.body` with render props. Each column should have a fixed `width` value.');\n        }\n        return 0;\n      });\n    } else {\n      bodyContent = /*#__PURE__*/React.createElement(\"div\", {\n        style: _objectSpread(_objectSpread({}, scrollXStyle), scrollYStyle),\n        onScroll: onBodyScroll,\n        ref: scrollBodyRef,\n        className: classNames(\"\".concat(prefixCls, \"-body\"))\n      }, /*#__PURE__*/React.createElement(TableComponent, _extends({\n        style: _objectSpread(_objectSpread({}, scrollTableStyle), {}, {\n          tableLayout: mergedTableLayout\n        })\n      }, ariaProps), captionElement, bodyColGroup, bodyTable, !fixFooter && summaryNode && /*#__PURE__*/React.createElement(Footer, {\n        stickyOffsets: stickyOffsets,\n        flattenColumns: flattenColumns\n      }, summaryNode)));\n    }\n\n    // Fixed holder share the props\n    var fixedHolderProps = _objectSpread(_objectSpread(_objectSpread({\n      noData: !mergedData.length,\n      maxContentScroll: horizonScroll && mergedScrollX === 'max-content'\n    }, headerProps), columnContext), {}, {\n      direction: direction,\n      stickyClassName: stickyClassName,\n      onScroll: onInternalScroll\n    });\n    groupTableNode = /*#__PURE__*/React.createElement(React.Fragment, null, showHeader !== false && /*#__PURE__*/React.createElement(FixedHolder, _extends({}, fixedHolderProps, {\n      stickyTopOffset: offsetHeader,\n      className: \"\".concat(prefixCls, \"-header\"),\n      ref: scrollHeaderRef\n    }), renderFixedHeaderTable), bodyContent, fixFooter && fixFooter !== 'top' && /*#__PURE__*/React.createElement(FixedHolder, _extends({}, fixedHolderProps, {\n      stickyBottomOffset: offsetSummary,\n      className: \"\".concat(prefixCls, \"-summary\"),\n      ref: scrollSummaryRef\n    }), renderFixedFooterTable), isSticky && scrollBodyRef.current && scrollBodyRef.current instanceof Element && /*#__PURE__*/React.createElement(StickyScrollBar, {\n      ref: stickyRef,\n      offsetScroll: offsetScroll,\n      scrollBodyRef: scrollBodyRef,\n      onScroll: onInternalScroll,\n      container: container\n    }));\n  } else {\n    // >>>>>> Unique table\n    groupTableNode = /*#__PURE__*/React.createElement(\"div\", {\n      style: _objectSpread(_objectSpread({}, scrollXStyle), scrollYStyle),\n      className: classNames(\"\".concat(prefixCls, \"-content\")),\n      onScroll: onInternalScroll,\n      ref: scrollBodyRef\n    }, /*#__PURE__*/React.createElement(TableComponent, _extends({\n      style: _objectSpread(_objectSpread({}, scrollTableStyle), {}, {\n        tableLayout: mergedTableLayout\n      })\n    }, ariaProps), captionElement, bodyColGroup, showHeader !== false && /*#__PURE__*/React.createElement(Header, _extends({}, headerProps, columnContext)), bodyTable, summaryNode && /*#__PURE__*/React.createElement(Footer, {\n      stickyOffsets: stickyOffsets,\n      flattenColumns: flattenColumns\n    }, summaryNode)));\n  }\n  var fullTable = /*#__PURE__*/React.createElement(\"div\", _extends({\n    className: classNames(prefixCls, className, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), \"\".concat(prefixCls, \"-ping-left\"), pingedLeft), \"\".concat(prefixCls, \"-ping-right\"), pingedRight), \"\".concat(prefixCls, \"-layout-fixed\"), tableLayout === 'fixed'), \"\".concat(prefixCls, \"-fixed-header\"), fixHeader), \"\".concat(prefixCls, \"-fixed-column\"), fixColumn), \"\".concat(prefixCls, \"-fixed-column-gapped\"), fixColumn && hasGapFixed), \"\".concat(prefixCls, \"-scroll-horizontal\"), horizonScroll), \"\".concat(prefixCls, \"-has-fix-left\"), flattenColumns[0] && flattenColumns[0].fixed), \"\".concat(prefixCls, \"-has-fix-right\"), flattenColumns[flattenColumns.length - 1] && flattenColumns[flattenColumns.length - 1].fixed === 'right')),\n    style: style,\n    id: id,\n    ref: fullTableRef\n  }, dataProps), title && /*#__PURE__*/React.createElement(Panel, {\n    className: \"\".concat(prefixCls, \"-title\")\n  }, title(mergedData)), /*#__PURE__*/React.createElement(\"div\", {\n    ref: scrollBodyContainerRef,\n    className: \"\".concat(prefixCls, \"-container\")\n  }, groupTableNode), footer && /*#__PURE__*/React.createElement(Panel, {\n    className: \"\".concat(prefixCls, \"-footer\")\n  }, footer(mergedData)));\n  if (horizonScroll) {\n    fullTable = /*#__PURE__*/React.createElement(ResizeObserver, {\n      onResize: onFullTableResize\n    }, fullTable);\n  }\n  var fixedInfoList = useFixedInfo(flattenColumns, stickyOffsets, direction);\n  var TableContextValue = React.useMemo(function () {\n    return {\n      // Scroll\n      scrollX: mergedScrollX,\n      // Table\n      prefixCls: prefixCls,\n      getComponent: getComponent,\n      scrollbarSize: scrollbarSize,\n      direction: direction,\n      fixedInfoList: fixedInfoList,\n      isSticky: isSticky,\n      supportSticky: supportSticky,\n      componentWidth: componentWidth,\n      fixHeader: fixHeader,\n      fixColumn: fixColumn,\n      horizonScroll: horizonScroll,\n      // Body\n      tableLayout: mergedTableLayout,\n      rowClassName: rowClassName,\n      expandedRowClassName: expandableConfig.expandedRowClassName,\n      expandIcon: mergedExpandIcon,\n      expandableType: expandableType,\n      expandRowByClick: expandableConfig.expandRowByClick,\n      expandedRowRender: expandableConfig.expandedRowRender,\n      onTriggerExpand: onTriggerExpand,\n      expandIconColumnIndex: expandableConfig.expandIconColumnIndex,\n      indentSize: expandableConfig.indentSize,\n      allColumnsFixedLeft: flattenColumns.every(function (col) {\n        return col.fixed === 'left';\n      }),\n      emptyNode: emptyNode,\n      // Column\n      columns: columns,\n      flattenColumns: flattenColumns,\n      onColumnResize: onColumnResize,\n      // Row\n      hoverStartRow: startRow,\n      hoverEndRow: endRow,\n      onHover: onHover,\n      rowExpandable: expandableConfig.rowExpandable,\n      onRow: onRow,\n      getRowKey: getRowKey,\n      expandedKeys: mergedExpandedKeys,\n      childrenColumnName: mergedChildrenColumnName,\n      rowHoverable: rowHoverable\n    };\n  }, [\n  // Scroll\n  mergedScrollX,\n  // Table\n  prefixCls, getComponent, scrollbarSize, direction, fixedInfoList, isSticky, supportSticky, componentWidth, fixHeader, fixColumn, horizonScroll,\n  // Body\n  mergedTableLayout, rowClassName, expandableConfig.expandedRowClassName, mergedExpandIcon, expandableType, expandableConfig.expandRowByClick, expandableConfig.expandedRowRender, onTriggerExpand, expandableConfig.expandIconColumnIndex, expandableConfig.indentSize, emptyNode,\n  // Column\n  columns, flattenColumns, onColumnResize,\n  // Row\n  startRow, endRow, onHover, expandableConfig.rowExpandable, onRow, getRowKey, mergedExpandedKeys, mergedChildrenColumnName, rowHoverable]);\n  return /*#__PURE__*/React.createElement(TableContext.Provider, {\n    value: TableContextValue\n  }, fullTable);\n}\nvar RefTable = /*#__PURE__*/React.forwardRef(Table);\nif (process.env.NODE_ENV !== 'production') {\n  RefTable.displayName = 'Table';\n}\nexport function genTable(shouldTriggerRender) {\n  return makeImmutable(RefTable, shouldTriggerRender);\n}\nvar ImmutableTable = genTable();\nImmutableTable.EXPAND_COLUMN = EXPAND_COLUMN;\nImmutableTable.INTERNAL_HOOKS = INTERNAL_HOOKS;\nImmutableTable.Column = Column;\nImmutableTable.ColumnGroup = ColumnGroup;\nImmutableTable.Summary = FooterComponents;\nexport default ImmutableTable;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nexport default function useHover() {\n  var _React$useState = React.useState(-1),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    startRow = _React$useState2[0],\n    setStartRow = _React$useState2[1];\n  var _React$useState3 = React.useState(-1),\n    _React$useState4 = _slicedToArray(_React$useState3, 2),\n    endRow = _React$useState4[0],\n    setEndRow = _React$useState4[1];\n  var onHover = React.useCallback(function (start, end) {\n    setStartRow(start);\n    setEndRow(end);\n  }, []);\n  return [startRow, endRow, onHover];\n}","import useMemo from \"rc-util/es/hooks/useMemo\";\nimport isEqual from \"rc-util/es/isEqual\";\nimport { getCellFixedInfo } from \"../utils/fixUtil\";\nexport default function useFixedInfo(flattenColumns, stickyOffsets, direction) {\n  var fixedInfoList = flattenColumns.map(function (_, colIndex) {\n    return getCellFixedInfo(colIndex, colIndex, flattenColumns, stickyOffsets, direction);\n  });\n  return useMemo(function () {\n    return fixedInfoList;\n  }, [fixedInfoList], function (prev, next) {\n    return !isEqual(prev, next);\n  });\n}","import { createContext } from '@rc-component/context';\nexport var StaticContext = createContext(null);\nexport var GridContext = createContext(null);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport { useContext } from '@rc-component/context';\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { getCellProps } from \"../Body/BodyRow\";\nimport Cell from \"../Cell\";\nimport { GridContext } from \"./context\";\n/**\n * Return the width of the column by `colSpan`.\n * When `colSpan` is `0` will be trade as `1`.\n */\nexport function getColumnWidth(colIndex, colSpan, columnsOffset) {\n  var mergedColSpan = colSpan || 1;\n  return columnsOffset[colIndex + mergedColSpan] - (columnsOffset[colIndex] || 0);\n}\nfunction VirtualCell(props) {\n  var rowInfo = props.rowInfo,\n    column = props.column,\n    colIndex = props.colIndex,\n    indent = props.indent,\n    index = props.index,\n    component = props.component,\n    renderIndex = props.renderIndex,\n    record = props.record,\n    style = props.style,\n    className = props.className,\n    inverse = props.inverse,\n    getHeight = props.getHeight;\n  var render = column.render,\n    dataIndex = column.dataIndex,\n    columnClassName = column.className,\n    colWidth = column.width;\n  var _useContext = useContext(GridContext, ['columnsOffset']),\n    columnsOffset = _useContext.columnsOffset;\n  var _getCellProps = getCellProps(rowInfo, column, colIndex, indent, index),\n    key = _getCellProps.key,\n    fixedInfo = _getCellProps.fixedInfo,\n    appendCellNode = _getCellProps.appendCellNode,\n    additionalCellProps = _getCellProps.additionalCellProps;\n  var cellStyle = additionalCellProps.style,\n    _additionalCellProps$ = additionalCellProps.colSpan,\n    colSpan = _additionalCellProps$ === void 0 ? 1 : _additionalCellProps$,\n    _additionalCellProps$2 = additionalCellProps.rowSpan,\n    rowSpan = _additionalCellProps$2 === void 0 ? 1 : _additionalCellProps$2;\n\n  // ========================= ColWidth =========================\n  // column width\n  var startColIndex = colIndex - 1;\n  var concatColWidth = getColumnWidth(startColIndex, colSpan, columnsOffset);\n\n  // margin offset\n  var marginOffset = colSpan > 1 ? colWidth - concatColWidth : 0;\n\n  // ========================== Style ===========================\n  var mergedStyle = _objectSpread(_objectSpread(_objectSpread({}, cellStyle), style), {}, {\n    flex: \"0 0 \".concat(concatColWidth, \"px\"),\n    width: \"\".concat(concatColWidth, \"px\"),\n    marginRight: marginOffset,\n    pointerEvents: 'auto'\n  });\n\n  // When `colSpan` or `rowSpan` is `0`, should skip render.\n  var needHide = React.useMemo(function () {\n    if (inverse) {\n      return rowSpan <= 1;\n    } else {\n      return colSpan === 0 || rowSpan === 0 || rowSpan > 1;\n    }\n  }, [rowSpan, colSpan, inverse]);\n\n  // 0 rowSpan or colSpan should not render\n  if (needHide) {\n    mergedStyle.visibility = 'hidden';\n  } else if (inverse) {\n    mergedStyle.height = getHeight === null || getHeight === void 0 ? void 0 : getHeight(rowSpan);\n  }\n  var mergedRender = needHide ? function () {\n    return null;\n  } : render;\n\n  // ========================== Render ==========================\n  var cellSpan = {};\n\n  // Virtual should reset `colSpan` & `rowSpan`\n  if (rowSpan === 0 || colSpan === 0) {\n    cellSpan.rowSpan = 1;\n    cellSpan.colSpan = 1;\n  }\n  return /*#__PURE__*/React.createElement(Cell, _extends({\n    className: classNames(columnClassName, className),\n    ellipsis: column.ellipsis,\n    align: column.align,\n    scope: column.rowScope,\n    component: component,\n    prefixCls: rowInfo.prefixCls,\n    key: key,\n    record: record,\n    index: index,\n    renderIndex: renderIndex,\n    dataIndex: dataIndex,\n    render: mergedRender,\n    shouldCellUpdate: column.shouldCellUpdate\n  }, fixedInfo, {\n    appendNode: appendCellNode,\n    additionalProps: _objectSpread(_objectSpread({}, additionalCellProps), {}, {\n      style: mergedStyle\n    }, cellSpan)\n  }));\n}\nexport default VirtualCell;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"data\", \"index\", \"className\", \"rowKey\", \"style\", \"extra\", \"getHeight\"];\nimport { useContext } from '@rc-component/context';\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport Cell from \"../Cell\";\nimport TableContext, { responseImmutable } from \"../context/TableContext\";\nimport useRowInfo from \"../hooks/useRowInfo\";\nimport VirtualCell from \"./VirtualCell\";\nimport { StaticContext } from \"./context\";\nvar BodyLine = /*#__PURE__*/React.forwardRef(function (props, ref) {\n  var data = props.data,\n    index = props.index,\n    className = props.className,\n    rowKey = props.rowKey,\n    style = props.style,\n    extra = props.extra,\n    getHeight = props.getHeight,\n    restProps = _objectWithoutProperties(props, _excluded);\n  var record = data.record,\n    indent = data.indent,\n    renderIndex = data.index;\n  var _useContext = useContext(TableContext, ['prefixCls', 'flattenColumns', 'fixColumn', 'componentWidth', 'scrollX']),\n    scrollX = _useContext.scrollX,\n    flattenColumns = _useContext.flattenColumns,\n    prefixCls = _useContext.prefixCls,\n    fixColumn = _useContext.fixColumn,\n    componentWidth = _useContext.componentWidth;\n  var _useContext2 = useContext(StaticContext, ['getComponent']),\n    getComponent = _useContext2.getComponent;\n  var rowInfo = useRowInfo(record, rowKey, index, indent);\n  var RowComponent = getComponent(['body', 'row'], 'div');\n  var cellComponent = getComponent(['body', 'cell'], 'div');\n\n  // ========================== Expand ==========================\n  var rowSupportExpand = rowInfo.rowSupportExpand,\n    expanded = rowInfo.expanded,\n    rowProps = rowInfo.rowProps,\n    expandedRowRender = rowInfo.expandedRowRender,\n    expandedRowClassName = rowInfo.expandedRowClassName;\n  var expandRowNode;\n  if (rowSupportExpand && expanded) {\n    var expandContent = expandedRowRender(record, index, indent + 1, expanded);\n    var computedExpandedRowClassName = expandedRowClassName === null || expandedRowClassName === void 0 ? void 0 : expandedRowClassName(record, index, indent);\n    var additionalProps = {};\n    if (fixColumn) {\n      additionalProps = {\n        style: _defineProperty({}, '--virtual-width', \"\".concat(componentWidth, \"px\"))\n      };\n    }\n    var rowCellCls = \"\".concat(prefixCls, \"-expanded-row-cell\");\n    expandRowNode = /*#__PURE__*/React.createElement(RowComponent, {\n      className: classNames(\"\".concat(prefixCls, \"-expanded-row\"), \"\".concat(prefixCls, \"-expanded-row-level-\").concat(indent + 1), computedExpandedRowClassName)\n    }, /*#__PURE__*/React.createElement(Cell, {\n      component: cellComponent,\n      prefixCls: prefixCls,\n      className: classNames(rowCellCls, _defineProperty({}, \"\".concat(rowCellCls, \"-fixed\"), fixColumn)),\n      additionalProps: additionalProps\n    }, expandContent));\n  }\n\n  // ========================== Render ==========================\n  var rowStyle = _objectSpread(_objectSpread({}, style), {}, {\n    width: scrollX\n  });\n  if (extra) {\n    rowStyle.position = 'absolute';\n    rowStyle.pointerEvents = 'none';\n  }\n  var rowNode = /*#__PURE__*/React.createElement(RowComponent, _extends({}, rowProps, restProps, {\n    \"data-row-key\": rowKey,\n    ref: rowSupportExpand ? null : ref,\n    className: classNames(className, \"\".concat(prefixCls, \"-row\"), rowProps === null || rowProps === void 0 ? void 0 : rowProps.className, _defineProperty({}, \"\".concat(prefixCls, \"-row-extra\"), extra)),\n    style: _objectSpread(_objectSpread({}, rowStyle), rowProps === null || rowProps === void 0 ? void 0 : rowProps.style)\n  }), flattenColumns.map(function (column, colIndex) {\n    return /*#__PURE__*/React.createElement(VirtualCell, {\n      key: colIndex,\n      component: cellComponent,\n      rowInfo: rowInfo,\n      column: column,\n      colIndex: colIndex,\n      indent: indent,\n      index: index,\n      renderIndex: renderIndex,\n      record: record,\n      inverse: extra,\n      getHeight: getHeight\n    });\n  }));\n  if (rowSupportExpand) {\n    return /*#__PURE__*/React.createElement(\"div\", {\n      ref: ref\n    }, rowNode, expandRowNode);\n  }\n  return rowNode;\n});\nvar ResponseBodyLine = responseImmutable(BodyLine);\nif (process.env.NODE_ENV !== 'production') {\n  ResponseBodyLine.displayName = 'BodyLine';\n}\nexport default ResponseBodyLine;","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useContext } from '@rc-component/context';\nimport VirtualList from 'rc-virtual-list';\nimport * as React from 'react';\nimport TableContext, { responseImmutable } from \"../context/TableContext\";\nimport useFlattenRecords from \"../hooks/useFlattenRecords\";\nimport BodyLine from \"./BodyLine\";\nimport { GridContext, StaticContext } from \"./context\";\nvar Grid = /*#__PURE__*/React.forwardRef(function (props, ref) {\n  var data = props.data,\n    onScroll = props.onScroll;\n  var _useContext = useContext(TableContext, ['flattenColumns', 'onColumnResize', 'getRowKey', 'prefixCls', 'expandedKeys', 'childrenColumnName', 'scrollX']),\n    flattenColumns = _useContext.flattenColumns,\n    onColumnResize = _useContext.onColumnResize,\n    getRowKey = _useContext.getRowKey,\n    expandedKeys = _useContext.expandedKeys,\n    prefixCls = _useContext.prefixCls,\n    childrenColumnName = _useContext.childrenColumnName,\n    scrollX = _useContext.scrollX;\n  var _useContext2 = useContext(StaticContext),\n    sticky = _useContext2.sticky,\n    scrollY = _useContext2.scrollY,\n    listItemHeight = _useContext2.listItemHeight,\n    getComponent = _useContext2.getComponent,\n    onTablePropScroll = _useContext2.onScroll;\n\n  // =========================== Ref ============================\n  var listRef = React.useRef();\n\n  // =========================== Data ===========================\n  var flattenData = useFlattenRecords(data, childrenColumnName, expandedKeys, getRowKey);\n\n  // ========================== Column ==========================\n  var columnsWidth = React.useMemo(function () {\n    var total = 0;\n    return flattenColumns.map(function (_ref) {\n      var width = _ref.width,\n        key = _ref.key;\n      total += width;\n      return [key, width, total];\n    });\n  }, [flattenColumns]);\n  var columnsOffset = React.useMemo(function () {\n    return columnsWidth.map(function (colWidth) {\n      return colWidth[2];\n    });\n  }, [columnsWidth]);\n  React.useEffect(function () {\n    columnsWidth.forEach(function (_ref2) {\n      var _ref3 = _slicedToArray(_ref2, 2),\n        key = _ref3[0],\n        width = _ref3[1];\n      onColumnResize(key, width);\n    });\n  }, [columnsWidth]);\n\n  // =========================== Ref ============================\n  React.useImperativeHandle(ref, function () {\n    var _listRef$current2;\n    var obj = {\n      scrollTo: function scrollTo(config) {\n        var _listRef$current;\n        (_listRef$current = listRef.current) === null || _listRef$current === void 0 || _listRef$current.scrollTo(config);\n      },\n      nativeElement: (_listRef$current2 = listRef.current) === null || _listRef$current2 === void 0 ? void 0 : _listRef$current2.nativeElement\n    };\n    Object.defineProperty(obj, 'scrollLeft', {\n      get: function get() {\n        var _listRef$current3;\n        return ((_listRef$current3 = listRef.current) === null || _listRef$current3 === void 0 ? void 0 : _listRef$current3.getScrollInfo().x) || 0;\n      },\n      set: function set(value) {\n        var _listRef$current4;\n        (_listRef$current4 = listRef.current) === null || _listRef$current4 === void 0 || _listRef$current4.scrollTo({\n          left: value\n        });\n      }\n    });\n    return obj;\n  });\n\n  // ======================= Col/Row Span =======================\n  var getRowSpan = function getRowSpan(column, index) {\n    var _flattenData$index;\n    var record = (_flattenData$index = flattenData[index]) === null || _flattenData$index === void 0 ? void 0 : _flattenData$index.record;\n    var onCell = column.onCell;\n    if (onCell) {\n      var _cellProps$rowSpan;\n      var cellProps = onCell(record, index);\n      return (_cellProps$rowSpan = cellProps === null || cellProps === void 0 ? void 0 : cellProps.rowSpan) !== null && _cellProps$rowSpan !== void 0 ? _cellProps$rowSpan : 1;\n    }\n    return 1;\n  };\n  var extraRender = function extraRender(info) {\n    var start = info.start,\n      end = info.end,\n      getSize = info.getSize,\n      offsetY = info.offsetY;\n\n    // Do nothing if no data\n    if (end < 0) {\n      return null;\n    }\n\n    // Find first rowSpan column\n    var firstRowSpanColumns = flattenColumns.filter(\n    // rowSpan is 0\n    function (column) {\n      return getRowSpan(column, start) === 0;\n    });\n    var startIndex = start;\n    var _loop = function _loop(i) {\n      firstRowSpanColumns = firstRowSpanColumns.filter(function (column) {\n        return getRowSpan(column, i) === 0;\n      });\n      if (!firstRowSpanColumns.length) {\n        startIndex = i;\n        return 1; // break\n      }\n    };\n    for (var i = start; i >= 0; i -= 1) {\n      if (_loop(i)) break;\n    }\n\n    // Find last rowSpan column\n    var lastRowSpanColumns = flattenColumns.filter(\n    // rowSpan is not 1\n    function (column) {\n      return getRowSpan(column, end) !== 1;\n    });\n    var endIndex = end;\n    var _loop2 = function _loop2(_i) {\n      lastRowSpanColumns = lastRowSpanColumns.filter(function (column) {\n        return getRowSpan(column, _i) !== 1;\n      });\n      if (!lastRowSpanColumns.length) {\n        endIndex = Math.max(_i - 1, end);\n        return 1; // break\n      }\n    };\n    for (var _i = end; _i < flattenData.length; _i += 1) {\n      if (_loop2(_i)) break;\n    }\n\n    // Collect the line who has rowSpan\n    var spanLines = [];\n    var _loop3 = function _loop3(_i2) {\n      var item = flattenData[_i2];\n\n      // This code will never reach, just incase\n      if (!item) {\n        return 1; // continue\n      }\n      if (flattenColumns.some(function (column) {\n        return getRowSpan(column, _i2) > 1;\n      })) {\n        spanLines.push(_i2);\n      }\n    };\n    for (var _i2 = startIndex; _i2 <= endIndex; _i2 += 1) {\n      if (_loop3(_i2)) continue;\n    }\n\n    // Patch extra line on the page\n    var nodes = spanLines.map(function (index) {\n      var item = flattenData[index];\n      var rowKey = getRowKey(item.record, index);\n      var getHeight = function getHeight(rowSpan) {\n        var endItemIndex = index + rowSpan - 1;\n        var endItemKey = getRowKey(flattenData[endItemIndex].record, endItemIndex);\n        var sizeInfo = getSize(rowKey, endItemKey);\n        return sizeInfo.bottom - sizeInfo.top;\n      };\n      var sizeInfo = getSize(rowKey);\n      return /*#__PURE__*/React.createElement(BodyLine, {\n        key: index,\n        data: item,\n        rowKey: rowKey,\n        index: index,\n        style: {\n          top: -offsetY + sizeInfo.top\n        },\n        extra: true,\n        getHeight: getHeight\n      });\n    });\n    return nodes;\n  };\n\n  // ========================= Context ==========================\n  var gridContext = React.useMemo(function () {\n    return {\n      columnsOffset: columnsOffset\n    };\n  }, [columnsOffset]);\n\n  // ========================== Render ==========================\n  var tblPrefixCls = \"\".concat(prefixCls, \"-tbody\");\n\n  // default 'div' in rc-virtual-list\n  var wrapperComponent = getComponent(['body', 'wrapper']);\n\n  // ========================== Sticky Scroll Bar ==========================\n  var horizontalScrollBarStyle = {};\n  if (sticky) {\n    horizontalScrollBarStyle.position = 'sticky';\n    horizontalScrollBarStyle.bottom = 0;\n    if (_typeof(sticky) === 'object' && sticky.offsetScroll) {\n      horizontalScrollBarStyle.bottom = sticky.offsetScroll;\n    }\n  }\n  return /*#__PURE__*/React.createElement(GridContext.Provider, {\n    value: gridContext\n  }, /*#__PURE__*/React.createElement(VirtualList, {\n    fullHeight: false,\n    ref: listRef,\n    prefixCls: \"\".concat(tblPrefixCls, \"-virtual\"),\n    styles: {\n      horizontalScrollBar: horizontalScrollBarStyle\n    },\n    className: tblPrefixCls,\n    height: scrollY,\n    itemHeight: listItemHeight || 24,\n    data: flattenData,\n    itemKey: function itemKey(item) {\n      return getRowKey(item.record);\n    },\n    component: wrapperComponent,\n    scrollWidth: scrollX,\n    onVirtualScroll: function onVirtualScroll(_ref4) {\n      var _listRef$current5;\n      var x = _ref4.x;\n      onScroll({\n        currentTarget: (_listRef$current5 = listRef.current) === null || _listRef$current5 === void 0 ? void 0 : _listRef$current5.nativeElement,\n        scrollLeft: x\n      });\n    },\n    onScroll: onTablePropScroll,\n    extraRender: extraRender\n  }, function (item, index, itemProps) {\n    var rowKey = getRowKey(item.record, index);\n    return /*#__PURE__*/React.createElement(BodyLine, {\n      data: item,\n      rowKey: rowKey,\n      index: index,\n      style: itemProps.style\n    });\n  }));\n});\nvar ResponseGrid = responseImmutable(Grid);\nif (process.env.NODE_ENV !== 'production') {\n  ResponseGrid.displayName = 'ResponseGrid';\n}\nexport default ResponseGrid;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport classNames from 'classnames';\nimport { useEvent, warning } from 'rc-util';\nimport * as React from 'react';\nimport { INTERNAL_HOOKS } from \"../constant\";\nimport { makeImmutable } from \"../context/TableContext\";\nimport Table, { DEFAULT_PREFIX } from \"../Table\";\nimport Grid from \"./BodyGrid\";\nimport { StaticContext } from \"./context\";\nimport getValue from \"rc-util/es/utils/get\";\nvar renderBody = function renderBody(rawData, props) {\n  var ref = props.ref,\n    onScroll = props.onScroll;\n  return /*#__PURE__*/React.createElement(Grid, {\n    ref: ref,\n    data: rawData,\n    onScroll: onScroll\n  });\n};\nfunction VirtualTable(props, ref) {\n  var data = props.data,\n    columns = props.columns,\n    scroll = props.scroll,\n    sticky = props.sticky,\n    _props$prefixCls = props.prefixCls,\n    prefixCls = _props$prefixCls === void 0 ? DEFAULT_PREFIX : _props$prefixCls,\n    className = props.className,\n    listItemHeight = props.listItemHeight,\n    components = props.components,\n    onScroll = props.onScroll;\n  var _ref = scroll || {},\n    scrollX = _ref.x,\n    scrollY = _ref.y;\n\n  // Fill scrollX\n  if (typeof scrollX !== 'number') {\n    if (process.env.NODE_ENV !== 'production') {\n      warning(!scrollX, '`scroll.x` in virtual table must be number.');\n    }\n    scrollX = 1;\n  }\n\n  // Fill scrollY\n  if (typeof scrollY !== 'number') {\n    scrollY = 500;\n    if (process.env.NODE_ENV !== 'production') {\n      warning(false, '`scroll.y` in virtual table must be number.');\n    }\n  }\n  var getComponent = useEvent(function (path, defaultComponent) {\n    return getValue(components, path) || defaultComponent;\n  });\n\n  // Memo this\n  var onInternalScroll = useEvent(onScroll);\n\n  // ========================= Context ==========================\n  var context = React.useMemo(function () {\n    return {\n      sticky: sticky,\n      scrollY: scrollY,\n      listItemHeight: listItemHeight,\n      getComponent: getComponent,\n      onScroll: onInternalScroll\n    };\n  }, [sticky, scrollY, listItemHeight, getComponent, onInternalScroll]);\n\n  // ========================== Render ==========================\n  return /*#__PURE__*/React.createElement(StaticContext.Provider, {\n    value: context\n  }, /*#__PURE__*/React.createElement(Table, _extends({}, props, {\n    className: classNames(className, \"\".concat(prefixCls, \"-virtual\")),\n    scroll: _objectSpread(_objectSpread({}, scroll), {}, {\n      x: scrollX\n    }),\n    components: _objectSpread(_objectSpread({}, components), {}, {\n      // fix https://github.com/ant-design/ant-design/issues/48991\n      body: data !== null && data !== void 0 && data.length ? renderBody : undefined\n    }),\n    columns: columns,\n    internalHooks: INTERNAL_HOOKS,\n    tailor: true,\n    ref: ref\n  })));\n}\nvar RefVirtualTable = /*#__PURE__*/React.forwardRef(VirtualTable);\nif (process.env.NODE_ENV !== 'production') {\n  RefVirtualTable.displayName = 'VirtualTable';\n}\nexport function genVirtualTable(shouldTriggerRender) {\n  return makeImmutable(RefVirtualTable, shouldTriggerRender);\n}\nexport default genVirtualTable();","/* istanbul ignore next */\n/** This is a syntactic sugar for `columns` prop. So HOC will not work on this. */\nconst Column = _ => null;\nexport default Column;","/* istanbul ignore next */\n/** This is a syntactic sugar for `columns` prop. So HOC will not work on this. */\nconst ColumnGroup = _ => null;\nexport default ColumnGroup;","// This icon file is generated automatically.\nvar DownOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M884 256h-75c-5.1 0-9.9 2.5-12.9 6.6L512 654.2 227.9 262.6c-3-4.1-7.8-6.6-12.9-6.6h-75c-6.5 0-10.3 7.4-6.5 12.7l352.6 486.1c12.8 17.6 39 17.6 51.7 0l352.6-486.1c3.9-5.3.1-12.7-6.4-12.7z\" } }] }, \"name\": \"down\", \"theme\": \"outlined\" };\nexport default DownOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport DownOutlinedSvg from \"@ant-design/icons-svg/es/asn/DownOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar DownOutlined = function DownOutlined(props, ref) {\n  return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n    ref: ref,\n    icon: DownOutlinedSvg\n  }));\n};\n\n/**![down](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTg4NCAyNTZoLTc1Yy01LjEgMC05LjkgMi41LTEyLjkgNi42TDUxMiA2NTQuMiAyMjcuOSAyNjIuNmMtMy00LjEtNy44LTYuNi0xMi45LTYuNmgtNzVjLTYuNSAwLTEwLjMgNy40LTYuNSAxMi43bDM1Mi42IDQ4Ni4xYzEyLjggMTcuNiAzOSAxNy42IDUxLjcgMGwzNTIuNi00ODYuMWMzLjktNS4zLjEtMTIuNy02LjQtMTIuN3oiIC8+PC9zdmc+) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(DownOutlined);\nif (process.env.NODE_ENV !== 'production') {\n  RefIcon.displayName = 'DownOutlined';\n}\nexport default RefIcon;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"className\", \"style\", \"checked\", \"disabled\", \"defaultChecked\", \"type\", \"title\", \"onChange\"];\nimport classNames from 'classnames';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport * as React from 'react';\nimport { forwardRef, useImperativeHandle, useRef } from 'react';\nexport var Checkbox = /*#__PURE__*/forwardRef(function (props, ref) {\n  var _props$prefixCls = props.prefixCls,\n    prefixCls = _props$prefixCls === void 0 ? 'rc-checkbox' : _props$prefixCls,\n    className = props.className,\n    style = props.style,\n    checked = props.checked,\n    disabled = props.disabled,\n    _props$defaultChecked = props.defaultChecked,\n    defaultChecked = _props$defaultChecked === void 0 ? false : _props$defaultChecked,\n    _props$type = props.type,\n    type = _props$type === void 0 ? 'checkbox' : _props$type,\n    title = props.title,\n    onChange = props.onChange,\n    inputProps = _objectWithoutProperties(props, _excluded);\n  var inputRef = useRef(null);\n  var holderRef = useRef(null);\n  var _useMergedState = useMergedState(defaultChecked, {\n      value: checked\n    }),\n    _useMergedState2 = _slicedToArray(_useMergedState, 2),\n    rawValue = _useMergedState2[0],\n    setRawValue = _useMergedState2[1];\n  useImperativeHandle(ref, function () {\n    return {\n      focus: function focus(options) {\n        var _inputRef$current;\n        (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 || _inputRef$current.focus(options);\n      },\n      blur: function blur() {\n        var _inputRef$current2;\n        (_inputRef$current2 = inputRef.current) === null || _inputRef$current2 === void 0 || _inputRef$current2.blur();\n      },\n      input: inputRef.current,\n      nativeElement: holderRef.current\n    };\n  });\n  var classString = classNames(prefixCls, className, _defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-checked\"), rawValue), \"\".concat(prefixCls, \"-disabled\"), disabled));\n  var handleChange = function handleChange(e) {\n    if (disabled) {\n      return;\n    }\n    if (!('checked' in props)) {\n      setRawValue(e.target.checked);\n    }\n    onChange === null || onChange === void 0 || onChange({\n      target: _objectSpread(_objectSpread({}, props), {}, {\n        type: type,\n        checked: e.target.checked\n      }),\n      stopPropagation: function stopPropagation() {\n        e.stopPropagation();\n      },\n      preventDefault: function preventDefault() {\n        e.preventDefault();\n      },\n      nativeEvent: e.nativeEvent\n    });\n  };\n  return /*#__PURE__*/React.createElement(\"span\", {\n    className: classString,\n    title: title,\n    style: style,\n    ref: holderRef\n  }, /*#__PURE__*/React.createElement(\"input\", _extends({}, inputProps, {\n    className: \"\".concat(prefixCls, \"-input\"),\n    ref: inputRef,\n    onChange: handleChange,\n    disabled: disabled,\n    checked: !!rawValue,\n    type: type\n  })), /*#__PURE__*/React.createElement(\"span\", {\n    className: \"\".concat(prefixCls, \"-inner\")\n  }));\n});\nexport default Checkbox;","import React from 'react';\nconst GroupContext = /*#__PURE__*/React.createContext(null);\nexport default GroupContext;","import { unit } from '@ant-design/cssinjs';\nimport { genFocusOutline, resetComponent } from '../../style';\nimport { genStyleHooks, mergeToken } from '../../theme/internal';\n// ============================== Styles ==============================\nexport const genCheckboxStyle = token => {\n  const {\n    checkboxCls\n  } = token;\n  const wrapperCls = `${checkboxCls}-wrapper`;\n  return [\n  // ===================== Basic =====================\n  {\n    // Group\n    [`${checkboxCls}-group`]: Object.assign(Object.assign({}, resetComponent(token)), {\n      display: 'inline-flex',\n      flexWrap: 'wrap',\n      columnGap: token.marginXS,\n      // Group > Grid\n      [`> ${token.antCls}-row`]: {\n        flex: 1\n      }\n    }),\n    // Wrapper\n    [wrapperCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n      display: 'inline-flex',\n      alignItems: 'baseline',\n      cursor: 'pointer',\n      // Fix checkbox & radio in flex align #30260\n      '&:after': {\n        display: 'inline-block',\n        width: 0,\n        overflow: 'hidden',\n        content: \"'\\\\a0'\"\n      },\n      // Checkbox near checkbox\n      [`& + ${wrapperCls}`]: {\n        marginInlineStart: 0\n      },\n      [`&${wrapperCls}-in-form-item`]: {\n        'input[type=\"checkbox\"]': {\n          width: 14,\n          // FIXME: magic\n          height: 14 // FIXME: magic\n        }\n      }\n    }),\n    // Wrapper > Checkbox\n    [checkboxCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n      position: 'relative',\n      whiteSpace: 'nowrap',\n      lineHeight: 1,\n      cursor: 'pointer',\n      borderRadius: token.borderRadiusSM,\n      // To make alignment right when `controlHeight` is changed\n      // Ref: https://github.com/ant-design/ant-design/issues/41564\n      alignSelf: 'center',\n      // Wrapper > Checkbox > input\n      [`${checkboxCls}-input`]: {\n        position: 'absolute',\n        // Since baseline align will get additional space offset,\n        // we need to move input to top to make it align with text.\n        // Ref: https://github.com/ant-design/ant-design/issues/38926#issuecomment-1486137799\n        inset: 0,\n        zIndex: 1,\n        cursor: 'pointer',\n        opacity: 0,\n        margin: 0,\n        [`&:focus-visible + ${checkboxCls}-inner`]: Object.assign({}, genFocusOutline(token))\n      },\n      // Wrapper > Checkbox > inner\n      [`${checkboxCls}-inner`]: {\n        boxSizing: 'border-box',\n        display: 'block',\n        width: token.checkboxSize,\n        height: token.checkboxSize,\n        direction: 'ltr',\n        backgroundColor: token.colorBgContainer,\n        border: `${unit(token.lineWidth)} ${token.lineType} ${token.colorBorder}`,\n        borderRadius: token.borderRadiusSM,\n        borderCollapse: 'separate',\n        transition: `all ${token.motionDurationSlow}`,\n        '&:after': {\n          boxSizing: 'border-box',\n          position: 'absolute',\n          top: '50%',\n          insetInlineStart: '25%',\n          display: 'table',\n          width: token.calc(token.checkboxSize).div(14).mul(5).equal(),\n          height: token.calc(token.checkboxSize).div(14).mul(8).equal(),\n          border: `${unit(token.lineWidthBold)} solid ${token.colorWhite}`,\n          borderTop: 0,\n          borderInlineStart: 0,\n          transform: 'rotate(45deg) scale(0) translate(-50%,-50%)',\n          opacity: 0,\n          content: '\"\"',\n          transition: `all ${token.motionDurationFast} ${token.motionEaseInBack}, opacity ${token.motionDurationFast}`\n        }\n      },\n      // Wrapper > Checkbox + Text\n      '& + span': {\n        paddingInlineStart: token.paddingXS,\n        paddingInlineEnd: token.paddingXS\n      }\n    })\n  },\n  // ===================== Hover =====================\n  {\n    // Wrapper & Wrapper > Checkbox\n    [`\n        ${wrapperCls}:not(${wrapperCls}-disabled),\n        ${checkboxCls}:not(${checkboxCls}-disabled)\n      `]: {\n      [`&:hover ${checkboxCls}-inner`]: {\n        borderColor: token.colorPrimary\n      }\n    },\n    [`${wrapperCls}:not(${wrapperCls}-disabled)`]: {\n      [`&:hover ${checkboxCls}-checked:not(${checkboxCls}-disabled) ${checkboxCls}-inner`]: {\n        backgroundColor: token.colorPrimaryHover,\n        borderColor: 'transparent'\n      },\n      [`&:hover ${checkboxCls}-checked:not(${checkboxCls}-disabled):after`]: {\n        borderColor: token.colorPrimaryHover\n      }\n    }\n  },\n  // ==================== Checked ====================\n  {\n    // Wrapper > Checkbox\n    [`${checkboxCls}-checked`]: {\n      [`${checkboxCls}-inner`]: {\n        backgroundColor: token.colorPrimary,\n        borderColor: token.colorPrimary,\n        '&:after': {\n          opacity: 1,\n          transform: 'rotate(45deg) scale(1) translate(-50%,-50%)',\n          transition: `all ${token.motionDurationMid} ${token.motionEaseOutBack} ${token.motionDurationFast}`\n        }\n      }\n    },\n    [`\n        ${wrapperCls}-checked:not(${wrapperCls}-disabled),\n        ${checkboxCls}-checked:not(${checkboxCls}-disabled)\n      `]: {\n      [`&:hover ${checkboxCls}-inner`]: {\n        backgroundColor: token.colorPrimaryHover,\n        borderColor: 'transparent'\n      }\n    }\n  },\n  // ================= Indeterminate =================\n  {\n    [checkboxCls]: {\n      '&-indeterminate': {\n        // Wrapper > Checkbox > inner\n        [`${checkboxCls}-inner`]: {\n          backgroundColor: `${token.colorBgContainer} !important`,\n          borderColor: `${token.colorBorder} !important`,\n          '&:after': {\n            top: '50%',\n            insetInlineStart: '50%',\n            width: token.calc(token.fontSizeLG).div(2).equal(),\n            height: token.calc(token.fontSizeLG).div(2).equal(),\n            backgroundColor: token.colorPrimary,\n            border: 0,\n            transform: 'translate(-50%, -50%) scale(1)',\n            opacity: 1,\n            content: '\"\"'\n          }\n        },\n        // https://github.com/ant-design/ant-design/issues/50074\n        [`&:hover ${checkboxCls}-inner`]: {\n          backgroundColor: `${token.colorBgContainer} !important`,\n          borderColor: `${token.colorPrimary} !important`\n        }\n      }\n    }\n  },\n  // ==================== Disable ====================\n  {\n    // Wrapper\n    [`${wrapperCls}-disabled`]: {\n      cursor: 'not-allowed'\n    },\n    // Wrapper > Checkbox\n    [`${checkboxCls}-disabled`]: {\n      // Wrapper > Checkbox > input\n      [`&, ${checkboxCls}-input`]: {\n        cursor: 'not-allowed',\n        // Disabled for native input to enable Tooltip event handler\n        // ref: https://github.com/ant-design/ant-design/issues/39822#issuecomment-1365075901\n        pointerEvents: 'none'\n      },\n      // Wrapper > Checkbox > inner\n      [`${checkboxCls}-inner`]: {\n        background: token.colorBgContainerDisabled,\n        borderColor: token.colorBorder,\n        '&:after': {\n          borderColor: token.colorTextDisabled\n        }\n      },\n      '&:after': {\n        display: 'none'\n      },\n      '& + span': {\n        color: token.colorTextDisabled\n      },\n      [`&${checkboxCls}-indeterminate ${checkboxCls}-inner::after`]: {\n        background: token.colorTextDisabled\n      }\n    }\n  }];\n};\n// ============================== Export ==============================\nexport function getStyle(prefixCls, token) {\n  const checkboxToken = mergeToken(token, {\n    checkboxCls: `.${prefixCls}`,\n    checkboxSize: token.controlInteractiveSize\n  });\n  return [genCheckboxStyle(checkboxToken)];\n}\nexport default genStyleHooks('Checkbox', (token, _ref) => {\n  let {\n    prefixCls\n  } = _ref;\n  return [getStyle(prefixCls, token)];\n});","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n  var t = {};\n  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n  }\n  return t;\n};\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport RcCheckbox from 'rc-checkbox';\nimport { devUseWarning } from '../_util/warning';\nimport Wave from '../_util/wave';\nimport { TARGET_CLS } from '../_util/wave/interface';\nimport { ConfigContext } from '../config-provider';\nimport DisabledContext from '../config-provider/DisabledContext';\nimport useCSSVarCls from '../config-provider/hooks/useCSSVarCls';\nimport { FormItemInputContext } from '../form/context';\nimport GroupContext from './GroupContext';\nimport useStyle from './style';\nconst InternalCheckbox = (props, ref) => {\n  var _a;\n  const {\n      prefixCls: customizePrefixCls,\n      className,\n      rootClassName,\n      children,\n      indeterminate = false,\n      style,\n      onMouseEnter,\n      onMouseLeave,\n      skipGroup = false,\n      disabled\n    } = props,\n    restProps = __rest(props, [\"prefixCls\", \"className\", \"rootClassName\", \"children\", \"indeterminate\", \"style\", \"onMouseEnter\", \"onMouseLeave\", \"skipGroup\", \"disabled\"]);\n  const {\n    getPrefixCls,\n    direction,\n    checkbox\n  } = React.useContext(ConfigContext);\n  const checkboxGroup = React.useContext(GroupContext);\n  const {\n    isFormItemInput\n  } = React.useContext(FormItemInputContext);\n  const contextDisabled = React.useContext(DisabledContext);\n  const mergedDisabled = (_a = (checkboxGroup === null || checkboxGroup === void 0 ? void 0 : checkboxGroup.disabled) || disabled) !== null && _a !== void 0 ? _a : contextDisabled;\n  const prevValue = React.useRef(restProps.value);\n  if (process.env.NODE_ENV !== 'production') {\n    const warning = devUseWarning('Checkbox');\n    process.env.NODE_ENV !== \"production\" ? warning('checked' in restProps || !!checkboxGroup || !('value' in restProps), 'usage', '`value` is not a valid prop, do you mean `checked`?') : void 0;\n  }\n  React.useEffect(() => {\n    checkboxGroup === null || checkboxGroup === void 0 ? void 0 : checkboxGroup.registerValue(restProps.value);\n  }, []);\n  React.useEffect(() => {\n    if (skipGroup) {\n      return;\n    }\n    if (restProps.value !== prevValue.current) {\n      checkboxGroup === null || checkboxGroup === void 0 ? void 0 : checkboxGroup.cancelValue(prevValue.current);\n      checkboxGroup === null || checkboxGroup === void 0 ? void 0 : checkboxGroup.registerValue(restProps.value);\n      prevValue.current = restProps.value;\n    }\n    return () => checkboxGroup === null || checkboxGroup === void 0 ? void 0 : checkboxGroup.cancelValue(restProps.value);\n  }, [restProps.value]);\n  const prefixCls = getPrefixCls('checkbox', customizePrefixCls);\n  const rootCls = useCSSVarCls(prefixCls);\n  const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls, rootCls);\n  const checkboxProps = Object.assign({}, restProps);\n  if (checkboxGroup && !skipGroup) {\n    checkboxProps.onChange = function () {\n      if (restProps.onChange) {\n        restProps.onChange.apply(restProps, arguments);\n      }\n      if (checkboxGroup.toggleOption) {\n        checkboxGroup.toggleOption({\n          label: children,\n          value: restProps.value\n        });\n      }\n    };\n    checkboxProps.name = checkboxGroup.name;\n    checkboxProps.checked = checkboxGroup.value.includes(restProps.value);\n  }\n  const classString = classNames(`${prefixCls}-wrapper`, {\n    [`${prefixCls}-rtl`]: direction === 'rtl',\n    [`${prefixCls}-wrapper-checked`]: checkboxProps.checked,\n    [`${prefixCls}-wrapper-disabled`]: mergedDisabled,\n    [`${prefixCls}-wrapper-in-form-item`]: isFormItemInput\n  }, checkbox === null || checkbox === void 0 ? void 0 : checkbox.className, className, rootClassName, cssVarCls, rootCls, hashId);\n  const checkboxClass = classNames({\n    [`${prefixCls}-indeterminate`]: indeterminate\n  }, TARGET_CLS, hashId);\n  const ariaChecked = indeterminate ? 'mixed' : undefined;\n  return wrapCSSVar(/*#__PURE__*/React.createElement(Wave, {\n    component: \"Checkbox\",\n    disabled: mergedDisabled\n  }, /*#__PURE__*/React.createElement(\"label\", {\n    className: classString,\n    style: Object.assign(Object.assign({}, checkbox === null || checkbox === void 0 ? void 0 : checkbox.style), style),\n    onMouseEnter: onMouseEnter,\n    onMouseLeave: onMouseLeave\n  }, /*#__PURE__*/React.createElement(RcCheckbox, Object.assign({\n    \"aria-checked\": ariaChecked\n  }, checkboxProps, {\n    prefixCls: prefixCls,\n    className: checkboxClass,\n    disabled: mergedDisabled,\n    ref: ref\n  })), children !== undefined && /*#__PURE__*/React.createElement(\"span\", null, children))));\n};\nconst Checkbox = /*#__PURE__*/React.forwardRef(InternalCheckbox);\nif (process.env.NODE_ENV !== 'production') {\n  Checkbox.displayName = 'Checkbox';\n}\nexport default Checkbox;","\"use client\";\n\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nvar __rest = this && this.__rest || function (s, e) {\n  var t = {};\n  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n  }\n  return t;\n};\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport { ConfigContext } from '../config-provider';\nimport useCSSVarCls from '../config-provider/hooks/useCSSVarCls';\nimport Checkbox from './Checkbox';\nimport GroupContext from './GroupContext';\nimport useStyle from './style';\nconst CheckboxGroup = /*#__PURE__*/React.forwardRef((props, ref) => {\n  const {\n      defaultValue,\n      children,\n      options = [],\n      prefixCls: customizePrefixCls,\n      className,\n      rootClassName,\n      style,\n      onChange\n    } = props,\n    restProps = __rest(props, [\"defaultValue\", \"children\", \"options\", \"prefixCls\", \"className\", \"rootClassName\", \"style\", \"onChange\"]);\n  const {\n    getPrefixCls,\n    direction\n  } = React.useContext(ConfigContext);\n  const [value, setValue] = React.useState(restProps.value || defaultValue || []);\n  const [registeredValues, setRegisteredValues] = React.useState([]);\n  React.useEffect(() => {\n    if ('value' in restProps) {\n      setValue(restProps.value || []);\n    }\n  }, [restProps.value]);\n  const memoOptions = React.useMemo(() => options.map(option => {\n    if (typeof option === 'string' || typeof option === 'number') {\n      return {\n        label: option,\n        value: option\n      };\n    }\n    return option;\n  }), [options]);\n  const cancelValue = val => {\n    setRegisteredValues(prevValues => prevValues.filter(v => v !== val));\n  };\n  const registerValue = val => {\n    setRegisteredValues(prevValues => [].concat(_toConsumableArray(prevValues), [val]));\n  };\n  const toggleOption = option => {\n    const optionIndex = value.indexOf(option.value);\n    const newValue = _toConsumableArray(value);\n    if (optionIndex === -1) {\n      newValue.push(option.value);\n    } else {\n      newValue.splice(optionIndex, 1);\n    }\n    if (!('value' in restProps)) {\n      setValue(newValue);\n    }\n    onChange === null || onChange === void 0 ? void 0 : onChange(newValue.filter(val => registeredValues.includes(val)).sort((a, b) => {\n      const indexA = memoOptions.findIndex(opt => opt.value === a);\n      const indexB = memoOptions.findIndex(opt => opt.value === b);\n      return indexA - indexB;\n    }));\n  };\n  const prefixCls = getPrefixCls('checkbox', customizePrefixCls);\n  const groupPrefixCls = `${prefixCls}-group`;\n  const rootCls = useCSSVarCls(prefixCls);\n  const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls, rootCls);\n  const domProps = omit(restProps, ['value', 'disabled']);\n  const childrenNode = options.length ? memoOptions.map(option => (/*#__PURE__*/React.createElement(Checkbox, {\n    prefixCls: prefixCls,\n    key: option.value.toString(),\n    disabled: 'disabled' in option ? option.disabled : restProps.disabled,\n    value: option.value,\n    checked: value.includes(option.value),\n    onChange: option.onChange,\n    className: `${groupPrefixCls}-item`,\n    style: option.style,\n    title: option.title,\n    id: option.id,\n    required: option.required\n  }, option.label))) : children;\n  const context = {\n    toggleOption,\n    value,\n    disabled: restProps.disabled,\n    name: restProps.name,\n    // https://github.com/ant-design/ant-design/issues/16376\n    registerValue,\n    cancelValue\n  };\n  const classString = classNames(groupPrefixCls, {\n    [`${groupPrefixCls}-rtl`]: direction === 'rtl'\n  }, className, rootClassName, cssVarCls, rootCls, hashId);\n  return wrapCSSVar(/*#__PURE__*/React.createElement(\"div\", Object.assign({\n    className: classString,\n    style: style\n  }, domProps, {\n    ref: ref\n  }), /*#__PURE__*/React.createElement(GroupContext.Provider, {\n    value: context\n  }, childrenNode)));\n});\nexport { GroupContext };\nexport default CheckboxGroup;","\"use client\";\n\nimport InternalCheckbox from './Checkbox';\nimport Group from './Group';\nconst Checkbox = InternalCheckbox;\nCheckbox.Group = Group;\nCheckbox.__ANT_CHECKBOX = true;\nif (process.env.NODE_ENV !== 'production') {\n  Checkbox.displayName = 'Checkbox';\n}\nexport default Checkbox;","import { unit } from '@ant-design/cssinjs';\nexport function getArrowToken(token) {\n  const {\n    sizePopupArrow,\n    borderRadiusXS,\n    borderRadiusOuter\n  } = token;\n  const unitWidth = sizePopupArrow / 2;\n  const ax = 0;\n  const ay = unitWidth;\n  const bx = borderRadiusOuter * 1 / Math.sqrt(2);\n  const by = unitWidth - borderRadiusOuter * (1 - 1 / Math.sqrt(2));\n  const cx = unitWidth - borderRadiusXS * (1 / Math.sqrt(2));\n  const cy = borderRadiusOuter * (Math.sqrt(2) - 1) + borderRadiusXS * (1 / Math.sqrt(2));\n  const dx = 2 * unitWidth - cx;\n  const dy = cy;\n  const ex = 2 * unitWidth - bx;\n  const ey = by;\n  const fx = 2 * unitWidth - ax;\n  const fy = ay;\n  const shadowWidth = unitWidth * Math.sqrt(2) + borderRadiusOuter * (Math.sqrt(2) - 2);\n  const polygonOffset = borderRadiusOuter * (Math.sqrt(2) - 1);\n  const arrowPolygon = `polygon(${polygonOffset}px 100%, 50% ${polygonOffset}px, ${2 * unitWidth - polygonOffset}px 100%, ${polygonOffset}px 100%)`;\n  const arrowPath = `path('M ${ax} ${ay} A ${borderRadiusOuter} ${borderRadiusOuter} 0 0 0 ${bx} ${by} L ${cx} ${cy} A ${borderRadiusXS} ${borderRadiusXS} 0 0 1 ${dx} ${dy} L ${ex} ${ey} A ${borderRadiusOuter} ${borderRadiusOuter} 0 0 0 ${fx} ${fy} Z')`;\n  return {\n    arrowShadowWidth: shadowWidth,\n    arrowPath,\n    arrowPolygon\n  };\n}\nexport const genRoundedArrow = (token, bgColor, boxShadow) => {\n  const {\n    sizePopupArrow,\n    arrowPolygon,\n    arrowPath,\n    arrowShadowWidth,\n    borderRadiusXS,\n    calc\n  } = token;\n  return {\n    pointerEvents: 'none',\n    width: sizePopupArrow,\n    height: sizePopupArrow,\n    overflow: 'hidden',\n    '&::before': {\n      position: 'absolute',\n      bottom: 0,\n      insetInlineStart: 0,\n      width: sizePopupArrow,\n      height: calc(sizePopupArrow).div(2).equal(),\n      background: bgColor,\n      clipPath: {\n        _multi_value_: true,\n        value: [arrowPolygon, arrowPath]\n      },\n      content: '\"\"'\n    },\n    '&::after': {\n      content: '\"\"',\n      position: 'absolute',\n      width: arrowShadowWidth,\n      height: arrowShadowWidth,\n      bottom: 0,\n      insetInline: 0,\n      margin: 'auto',\n      borderRadius: {\n        _skip_check_: true,\n        value: `0 0 ${unit(borderRadiusXS)} 0`\n      },\n      transform: 'translateY(50%) rotate(-135deg)',\n      boxShadow,\n      zIndex: 0,\n      background: 'transparent'\n    }\n  };\n};","import { unit } from '@ant-design/cssinjs';\nimport { genRoundedArrow } from './roundedArrow';\nexport const MAX_VERTICAL_CONTENT_RADIUS = 8;\nexport function getArrowOffsetToken(options) {\n  const {\n    contentRadius,\n    limitVerticalRadius\n  } = options;\n  const arrowOffset = contentRadius > 12 ? contentRadius + 2 : 12;\n  const arrowOffsetVertical = limitVerticalRadius ? MAX_VERTICAL_CONTENT_RADIUS : arrowOffset;\n  return {\n    arrowOffsetHorizontal: arrowOffset,\n    arrowOffsetVertical\n  };\n}\nfunction isInject(valid, code) {\n  if (!valid) {\n    return {};\n  }\n  return code;\n}\nexport default function getArrowStyle(token, colorBg, options) {\n  const {\n    componentCls,\n    boxShadowPopoverArrow,\n    arrowOffsetVertical,\n    arrowOffsetHorizontal\n  } = token;\n  const {\n    arrowDistance = 0,\n    arrowPlacement = {\n      left: true,\n      right: true,\n      top: true,\n      bottom: true\n    }\n  } = options || {};\n  return {\n    [componentCls]: Object.assign(Object.assign(Object.assign(Object.assign({\n      // ============================ Basic ============================\n      [`${componentCls}-arrow`]: [Object.assign(Object.assign({\n        position: 'absolute',\n        zIndex: 1,\n        display: 'block'\n      }, genRoundedArrow(token, colorBg, boxShadowPopoverArrow)), {\n        '&:before': {\n          background: colorBg\n        }\n      })]\n    }, isInject(!!arrowPlacement.top, {\n      [[`&-placement-top > ${componentCls}-arrow`, `&-placement-topLeft > ${componentCls}-arrow`, `&-placement-topRight > ${componentCls}-arrow`].join(',')]: {\n        bottom: arrowDistance,\n        transform: 'translateY(100%) rotate(180deg)'\n      },\n      [`&-placement-top > ${componentCls}-arrow`]: {\n        left: {\n          _skip_check_: true,\n          value: '50%'\n        },\n        transform: 'translateX(-50%) translateY(100%) rotate(180deg)'\n      },\n      '&-placement-topLeft': {\n        '--arrow-offset-horizontal': arrowOffsetHorizontal,\n        [`> ${componentCls}-arrow`]: {\n          left: {\n            _skip_check_: true,\n            value: arrowOffsetHorizontal\n          }\n        }\n      },\n      '&-placement-topRight': {\n        '--arrow-offset-horizontal': `calc(100% - ${unit(arrowOffsetHorizontal)})`,\n        [`> ${componentCls}-arrow`]: {\n          right: {\n            _skip_check_: true,\n            value: arrowOffsetHorizontal\n          }\n        }\n      }\n    })), isInject(!!arrowPlacement.bottom, {\n      [[`&-placement-bottom > ${componentCls}-arrow`, `&-placement-bottomLeft > ${componentCls}-arrow`, `&-placement-bottomRight > ${componentCls}-arrow`].join(',')]: {\n        top: arrowDistance,\n        transform: `translateY(-100%)`\n      },\n      [`&-placement-bottom > ${componentCls}-arrow`]: {\n        left: {\n          _skip_check_: true,\n          value: '50%'\n        },\n        transform: `translateX(-50%) translateY(-100%)`\n      },\n      '&-placement-bottomLeft': {\n        '--arrow-offset-horizontal': arrowOffsetHorizontal,\n        [`> ${componentCls}-arrow`]: {\n          left: {\n            _skip_check_: true,\n            value: arrowOffsetHorizontal\n          }\n        }\n      },\n      '&-placement-bottomRight': {\n        '--arrow-offset-horizontal': `calc(100% - ${unit(arrowOffsetHorizontal)})`,\n        [`> ${componentCls}-arrow`]: {\n          right: {\n            _skip_check_: true,\n            value: arrowOffsetHorizontal\n          }\n        }\n      }\n    })), isInject(!!arrowPlacement.left, {\n      [[`&-placement-left > ${componentCls}-arrow`, `&-placement-leftTop > ${componentCls}-arrow`, `&-placement-leftBottom > ${componentCls}-arrow`].join(',')]: {\n        right: {\n          _skip_check_: true,\n          value: arrowDistance\n        },\n        transform: 'translateX(100%) rotate(90deg)'\n      },\n      [`&-placement-left > ${componentCls}-arrow`]: {\n        top: {\n          _skip_check_: true,\n          value: '50%'\n        },\n        transform: 'translateY(-50%) translateX(100%) rotate(90deg)'\n      },\n      [`&-placement-leftTop > ${componentCls}-arrow`]: {\n        top: arrowOffsetVertical\n      },\n      [`&-placement-leftBottom > ${componentCls}-arrow`]: {\n        bottom: arrowOffsetVertical\n      }\n    })), isInject(!!arrowPlacement.right, {\n      [[`&-placement-right > ${componentCls}-arrow`, `&-placement-rightTop > ${componentCls}-arrow`, `&-placement-rightBottom > ${componentCls}-arrow`].join(',')]: {\n        left: {\n          _skip_check_: true,\n          value: arrowDistance\n        },\n        transform: 'translateX(-100%) rotate(-90deg)'\n      },\n      [`&-placement-right > ${componentCls}-arrow`]: {\n        top: {\n          _skip_check_: true,\n          value: '50%'\n        },\n        transform: 'translateY(-50%) translateX(-100%) rotate(-90deg)'\n      },\n      [`&-placement-rightTop > ${componentCls}-arrow`]: {\n        top: arrowOffsetVertical\n      },\n      [`&-placement-rightBottom > ${componentCls}-arrow`]: {\n        bottom: arrowOffsetVertical\n      }\n    }))\n  };\n}","import { getArrowOffsetToken } from '../style/placementArrow';\nexport function getOverflowOptions(placement, arrowOffset, arrowWidth, autoAdjustOverflow) {\n  if (autoAdjustOverflow === false) {\n    return {\n      adjustX: false,\n      adjustY: false\n    };\n  }\n  const overflow = autoAdjustOverflow && typeof autoAdjustOverflow === 'object' ? autoAdjustOverflow : {};\n  const baseOverflow = {};\n  switch (placement) {\n    case 'top':\n    case 'bottom':\n      baseOverflow.shiftX = arrowOffset.arrowOffsetHorizontal * 2 + arrowWidth;\n      baseOverflow.shiftY = true;\n      baseOverflow.adjustY = true;\n      break;\n    case 'left':\n    case 'right':\n      baseOverflow.shiftY = arrowOffset.arrowOffsetVertical * 2 + arrowWidth;\n      baseOverflow.shiftX = true;\n      baseOverflow.adjustX = true;\n      break;\n  }\n  const mergedOverflow = Object.assign(Object.assign({}, baseOverflow), overflow);\n  // Support auto shift\n  if (!mergedOverflow.shiftX) {\n    mergedOverflow.adjustX = true;\n  }\n  if (!mergedOverflow.shiftY) {\n    mergedOverflow.adjustY = true;\n  }\n  return mergedOverflow;\n}\nconst PlacementAlignMap = {\n  left: {\n    points: ['cr', 'cl']\n  },\n  right: {\n    points: ['cl', 'cr']\n  },\n  top: {\n    points: ['bc', 'tc']\n  },\n  bottom: {\n    points: ['tc', 'bc']\n  },\n  topLeft: {\n    points: ['bl', 'tl']\n  },\n  leftTop: {\n    points: ['tr', 'tl']\n  },\n  topRight: {\n    points: ['br', 'tr']\n  },\n  rightTop: {\n    points: ['tl', 'tr']\n  },\n  bottomRight: {\n    points: ['tr', 'br']\n  },\n  rightBottom: {\n    points: ['bl', 'br']\n  },\n  bottomLeft: {\n    points: ['tl', 'bl']\n  },\n  leftBottom: {\n    points: ['br', 'bl']\n  }\n};\nconst ArrowCenterPlacementAlignMap = {\n  topLeft: {\n    points: ['bl', 'tc']\n  },\n  leftTop: {\n    points: ['tr', 'cl']\n  },\n  topRight: {\n    points: ['br', 'tc']\n  },\n  rightTop: {\n    points: ['tl', 'cr']\n  },\n  bottomRight: {\n    points: ['tr', 'bc']\n  },\n  rightBottom: {\n    points: ['bl', 'cr']\n  },\n  bottomLeft: {\n    points: ['tl', 'bc']\n  },\n  leftBottom: {\n    points: ['br', 'cl']\n  }\n};\nconst DisableAutoArrowList = new Set(['topLeft', 'topRight', 'bottomLeft', 'bottomRight', 'leftTop', 'leftBottom', 'rightTop', 'rightBottom']);\nexport default function getPlacements(config) {\n  const {\n    arrowWidth,\n    autoAdjustOverflow,\n    arrowPointAtCenter,\n    offset,\n    borderRadius,\n    visibleFirst\n  } = config;\n  const halfArrowWidth = arrowWidth / 2;\n  const placementMap = {};\n  Object.keys(PlacementAlignMap).forEach(key => {\n    const template = arrowPointAtCenter && ArrowCenterPlacementAlignMap[key] || PlacementAlignMap[key];\n    const placementInfo = Object.assign(Object.assign({}, template), {\n      offset: [0, 0],\n      dynamicInset: true\n    });\n    placementMap[key] = placementInfo;\n    // Disable autoArrow since design is fixed position\n    if (DisableAutoArrowList.has(key)) {\n      placementInfo.autoArrow = false;\n    }\n    // Static offset\n    switch (key) {\n      case 'top':\n      case 'topLeft':\n      case 'topRight':\n        placementInfo.offset[1] = -halfArrowWidth - offset;\n        break;\n      case 'bottom':\n      case 'bottomLeft':\n      case 'bottomRight':\n        placementInfo.offset[1] = halfArrowWidth + offset;\n        break;\n      case 'left':\n      case 'leftTop':\n      case 'leftBottom':\n        placementInfo.offset[0] = -halfArrowWidth - offset;\n        break;\n      case 'right':\n      case 'rightTop':\n      case 'rightBottom':\n        placementInfo.offset[0] = halfArrowWidth + offset;\n        break;\n    }\n    // Dynamic offset\n    const arrowOffset = getArrowOffsetToken({\n      contentRadius: borderRadius,\n      limitVerticalRadius: true\n    });\n    if (arrowPointAtCenter) {\n      switch (key) {\n        case 'topLeft':\n        case 'bottomLeft':\n          placementInfo.offset[0] = -arrowOffset.arrowOffsetHorizontal - halfArrowWidth;\n          break;\n        case 'topRight':\n        case 'bottomRight':\n          placementInfo.offset[0] = arrowOffset.arrowOffsetHorizontal + halfArrowWidth;\n          break;\n        case 'leftTop':\n        case 'rightTop':\n          placementInfo.offset[1] = -arrowOffset.arrowOffsetHorizontal * 2 + halfArrowWidth;\n          break;\n        case 'leftBottom':\n        case 'rightBottom':\n          placementInfo.offset[1] = arrowOffset.arrowOffsetHorizontal * 2 - halfArrowWidth;\n          break;\n      }\n    }\n    // Overflow\n    placementInfo.overflow = getOverflowOptions(key, arrowOffset, arrowWidth, autoAdjustOverflow);\n    // VisibleFirst\n    if (visibleFirst) {\n      placementInfo.htmlRegion = 'visibleFirst';\n    }\n  });\n  return placementMap;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport BarsOutlinedSvg from \"@ant-design/icons-svg/es/asn/BarsOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar BarsOutlined = function BarsOutlined(props, ref) {\n  return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n    ref: ref,\n    icon: BarsOutlinedSvg\n  }));\n};\n\n/**![bars](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjAgMCAxMDI0IDEwMjQiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTkxMiAxOTJIMzI4Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU4NGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMCAyODRIMzI4Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU4NGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMCAyODRIMzI4Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU4NGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHpNMTA0IDIyOGE1NiA1NiAwIDEwMTEyIDAgNTYgNTYgMCAxMC0xMTIgMHptMCAyODRhNTYgNTYgMCAxMDExMiAwIDU2IDU2IDAgMTAtMTEyIDB6bTAgMjg0YTU2IDU2IDAgMTAxMTIgMCA1NiA1NiAwIDEwLTExMiAweiIgLz48L3N2Zz4=) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(BarsOutlined);\nif (process.env.NODE_ENV !== 'production') {\n  RefIcon.displayName = 'BarsOutlined';\n}\nexport default RefIcon;","// This icon file is generated automatically.\nvar LeftOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M724 218.3V141c0-6.7-7.7-10.4-12.9-6.3L260.3 486.8a31.86 31.86 0 000 50.3l450.8 352.1c5.3 4.1 12.9.4 12.9-6.3v-77.3c0-4.9-2.3-9.6-6.1-12.6l-360-281 360-281.1c3.8-3 6.1-7.7 6.1-12.6z\" } }] }, \"name\": \"left\", \"theme\": \"outlined\" };\nexport default LeftOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport LeftOutlinedSvg from \"@ant-design/icons-svg/es/asn/LeftOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar LeftOutlined = function LeftOutlined(props, ref) {\n  return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n    ref: ref,\n    icon: LeftOutlinedSvg\n  }));\n};\n\n/**![left](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTcyNCAyMTguM1YxNDFjMC02LjctNy43LTEwLjQtMTIuOS02LjNMMjYwLjMgNDg2LjhhMzEuODYgMzEuODYgMCAwMDAgNTAuM2w0NTAuOCAzNTIuMWM1LjMgNC4xIDEyLjkuNCAxMi45LTYuM3YtNzcuM2MwLTQuOS0yLjMtOS42LTYuMS0xMi42bC0zNjAtMjgxIDM2MC0yODEuMWMzLjgtMyA2LjEtNy43IDYuMS0xMi42eiIgLz48L3N2Zz4=) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(LeftOutlined);\nif (process.env.NODE_ENV !== 'production') {\n  RefIcon.displayName = 'LeftOutlined';\n}\nexport default RefIcon;","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n  var t = {};\n  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n  }\n  return t;\n};\nimport * as React from 'react';\nimport { useContext, useEffect, useRef, useState } from 'react';\nimport BarsOutlined from \"@ant-design/icons/es/icons/BarsOutlined\";\nimport LeftOutlined from \"@ant-design/icons/es/icons/LeftOutlined\";\nimport RightOutlined from \"@ant-design/icons/es/icons/RightOutlined\";\nimport classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport isNumeric from '../_util/isNumeric';\nimport { ConfigContext } from '../config-provider';\nimport { LayoutContext } from './context';\nimport useStyle from './style/sider';\nconst dimensionMaxMap = {\n  xs: '479.98px',\n  sm: '575.98px',\n  md: '767.98px',\n  lg: '991.98px',\n  xl: '1199.98px',\n  xxl: '1599.98px'\n};\nexport const SiderContext = /*#__PURE__*/React.createContext({});\nconst generateId = (() => {\n  let i = 0;\n  return function () {\n    let prefix = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n    i += 1;\n    return `${prefix}${i}`;\n  };\n})();\nconst Sider = /*#__PURE__*/React.forwardRef((props, ref) => {\n  const {\n      prefixCls: customizePrefixCls,\n      className,\n      trigger,\n      children,\n      defaultCollapsed = false,\n      theme = 'dark',\n      style = {},\n      collapsible = false,\n      reverseArrow = false,\n      width = 200,\n      collapsedWidth = 80,\n      zeroWidthTriggerStyle,\n      breakpoint,\n      onCollapse,\n      onBreakpoint\n    } = props,\n    otherProps = __rest(props, [\"prefixCls\", \"className\", \"trigger\", \"children\", \"defaultCollapsed\", \"theme\", \"style\", \"collapsible\", \"reverseArrow\", \"width\", \"collapsedWidth\", \"zeroWidthTriggerStyle\", \"breakpoint\", \"onCollapse\", \"onBreakpoint\"]);\n  const {\n    siderHook\n  } = useContext(LayoutContext);\n  const [collapsed, setCollapsed] = useState('collapsed' in props ? props.collapsed : defaultCollapsed);\n  const [below, setBelow] = useState(false);\n  useEffect(() => {\n    if ('collapsed' in props) {\n      setCollapsed(props.collapsed);\n    }\n  }, [props.collapsed]);\n  const handleSetCollapsed = (value, type) => {\n    if (!('collapsed' in props)) {\n      setCollapsed(value);\n    }\n    onCollapse === null || onCollapse === void 0 ? void 0 : onCollapse(value, type);\n  };\n  // =========================== Prefix ===========================\n  const {\n    getPrefixCls\n  } = useContext(ConfigContext);\n  const prefixCls = getPrefixCls('layout-sider', customizePrefixCls);\n  const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls);\n  // ========================= Responsive =========================\n  const responsiveHandlerRef = useRef();\n  responsiveHandlerRef.current = mql => {\n    setBelow(mql.matches);\n    onBreakpoint === null || onBreakpoint === void 0 ? void 0 : onBreakpoint(mql.matches);\n    if (collapsed !== mql.matches) {\n      handleSetCollapsed(mql.matches, 'responsive');\n    }\n  };\n  useEffect(() => {\n    function responsiveHandler(mql) {\n      return responsiveHandlerRef.current(mql);\n    }\n    let mql;\n    if (typeof window !== 'undefined') {\n      const {\n        matchMedia\n      } = window;\n      if (matchMedia && breakpoint && breakpoint in dimensionMaxMap) {\n        mql = matchMedia(`screen and (max-width: ${dimensionMaxMap[breakpoint]})`);\n        try {\n          mql.addEventListener('change', responsiveHandler);\n        } catch (_a) {\n          mql.addListener(responsiveHandler);\n        }\n        responsiveHandler(mql);\n      }\n    }\n    return () => {\n      try {\n        mql === null || mql === void 0 ? void 0 : mql.removeEventListener('change', responsiveHandler);\n      } catch (_a) {\n        mql === null || mql === void 0 ? void 0 : mql.removeListener(responsiveHandler);\n      }\n    };\n  }, [breakpoint]); // in order to accept dynamic 'breakpoint' property, we need to add 'breakpoint' into dependency array.\n  useEffect(() => {\n    const uniqueId = generateId('ant-sider-');\n    siderHook.addSider(uniqueId);\n    return () => siderHook.removeSider(uniqueId);\n  }, []);\n  const toggle = () => {\n    handleSetCollapsed(!collapsed, 'clickTrigger');\n  };\n  const renderSider = () => {\n    const divProps = omit(otherProps, ['collapsed']);\n    const rawWidth = collapsed ? collapsedWidth : width;\n    // use \"px\" as fallback unit for width\n    const siderWidth = isNumeric(rawWidth) ? `${rawWidth}px` : String(rawWidth);\n    // special trigger when collapsedWidth == 0\n    const zeroWidthTrigger = parseFloat(String(collapsedWidth || 0)) === 0 ? (/*#__PURE__*/React.createElement(\"span\", {\n      onClick: toggle,\n      className: classNames(`${prefixCls}-zero-width-trigger`, `${prefixCls}-zero-width-trigger-${reverseArrow ? 'right' : 'left'}`),\n      style: zeroWidthTriggerStyle\n    }, trigger || /*#__PURE__*/React.createElement(BarsOutlined, null))) : null;\n    const iconObj = {\n      expanded: reverseArrow ? /*#__PURE__*/React.createElement(RightOutlined, null) : /*#__PURE__*/React.createElement(LeftOutlined, null),\n      collapsed: reverseArrow ? /*#__PURE__*/React.createElement(LeftOutlined, null) : /*#__PURE__*/React.createElement(RightOutlined, null)\n    };\n    const status = collapsed ? 'collapsed' : 'expanded';\n    const defaultTrigger = iconObj[status];\n    const triggerDom = trigger !== null ? zeroWidthTrigger || (/*#__PURE__*/React.createElement(\"div\", {\n      className: `${prefixCls}-trigger`,\n      onClick: toggle,\n      style: {\n        width: siderWidth\n      }\n    }, trigger || defaultTrigger)) : null;\n    const divStyle = Object.assign(Object.assign({}, style), {\n      flex: `0 0 ${siderWidth}`,\n      maxWidth: siderWidth,\n      minWidth: siderWidth,\n      width: siderWidth\n    });\n    const siderCls = classNames(prefixCls, `${prefixCls}-${theme}`, {\n      [`${prefixCls}-collapsed`]: !!collapsed,\n      [`${prefixCls}-has-trigger`]: collapsible && trigger !== null && !zeroWidthTrigger,\n      [`${prefixCls}-below`]: !!below,\n      [`${prefixCls}-zero-width`]: parseFloat(siderWidth) === 0\n    }, className, hashId, cssVarCls);\n    return /*#__PURE__*/React.createElement(\"aside\", Object.assign({\n      className: siderCls\n    }, divProps, {\n      style: divStyle,\n      ref: ref\n    }), /*#__PURE__*/React.createElement(\"div\", {\n      className: `${prefixCls}-children`\n    }, children), collapsible || below && zeroWidthTrigger ? triggerDom : null);\n  };\n  const contextValue = React.useMemo(() => ({\n    siderCollapsed: collapsed\n  }), [collapsed]);\n  return wrapCSSVar(/*#__PURE__*/React.createElement(SiderContext.Provider, {\n    value: contextValue\n  }, renderSider()));\n});\nif (process.env.NODE_ENV !== 'production') {\n  Sider.displayName = 'Sider';\n}\nexport default Sider;","import { unit } from '@ant-design/cssinjs';\nimport { genStyleHooks } from '../../theme/internal';\nconst genLayoutStyle = token => {\n  const {\n    antCls,\n    // .ant\n    componentCls,\n    // .ant-layout\n    colorText,\n    footerBg,\n    headerHeight,\n    headerPadding,\n    headerColor,\n    footerPadding,\n    fontSize,\n    bodyBg,\n    headerBg\n  } = token;\n  return {\n    [componentCls]: {\n      display: 'flex',\n      flex: 'auto',\n      flexDirection: 'column',\n      /* fix firefox can't set height smaller than content on flex item */\n      minHeight: 0,\n      background: bodyBg,\n      '&, *': {\n        boxSizing: 'border-box'\n      },\n      [`&${componentCls}-has-sider`]: {\n        flexDirection: 'row',\n        [`> ${componentCls}, > ${componentCls}-content`]: {\n          // https://segmentfault.com/a/1190000019498300\n          width: 0\n        }\n      },\n      [`${componentCls}-header, &${componentCls}-footer`]: {\n        flex: '0 0 auto'\n      },\n      // RTL\n      '&-rtl': {\n        direction: 'rtl'\n      }\n    },\n    // ==================== Header ====================\n    [`${componentCls}-header`]: {\n      height: headerHeight,\n      padding: headerPadding,\n      color: headerColor,\n      lineHeight: unit(headerHeight),\n      background: headerBg,\n      // Other components/menu/style/index.less line:686\n      // Integration with header element so menu items have the same height\n      [`${antCls}-menu`]: {\n        lineHeight: 'inherit'\n      }\n    },\n    // ==================== Footer ====================\n    [`${componentCls}-footer`]: {\n      padding: footerPadding,\n      color: colorText,\n      fontSize,\n      background: footerBg\n    },\n    // =================== Content ====================\n    [`${componentCls}-content`]: {\n      flex: 'auto',\n      color: colorText,\n      // fix firefox can't set height smaller than content on flex item\n      minHeight: 0\n    }\n  };\n};\nexport const prepareComponentToken = token => {\n  const {\n    colorBgLayout,\n    controlHeight,\n    controlHeightLG,\n    colorText,\n    controlHeightSM,\n    marginXXS,\n    colorTextLightSolid,\n    colorBgContainer\n  } = token;\n  const paddingInline = controlHeightLG * 1.25;\n  return {\n    // Deprecated\n    colorBgHeader: '#001529',\n    colorBgBody: colorBgLayout,\n    colorBgTrigger: '#002140',\n    bodyBg: colorBgLayout,\n    headerBg: '#001529',\n    headerHeight: controlHeight * 2,\n    headerPadding: `0 ${paddingInline}px`,\n    headerColor: colorText,\n    footerPadding: `${controlHeightSM}px ${paddingInline}px`,\n    footerBg: colorBgLayout,\n    siderBg: '#001529',\n    triggerHeight: controlHeightLG + marginXXS * 2,\n    triggerBg: '#002140',\n    triggerColor: colorTextLightSolid,\n    zeroTriggerWidth: controlHeightLG,\n    zeroTriggerHeight: controlHeightLG,\n    lightSiderBg: colorBgContainer,\n    lightTriggerBg: colorBgContainer,\n    lightTriggerColor: colorText\n  };\n};\n// ============================== Export ==============================\nexport const DEPRECATED_TOKENS = [['colorBgBody', 'bodyBg'], ['colorBgHeader', 'headerBg'], ['colorBgTrigger', 'triggerBg']];\nexport default genStyleHooks('Layout', token => [genLayoutStyle(token)], prepareComponentToken, {\n  deprecatedTokens: DEPRECATED_TOKENS\n});","import { unit } from '@ant-design/cssinjs';\nimport { DEPRECATED_TOKENS, prepareComponentToken } from '.';\nimport { genStyleHooks } from '../../theme/internal';\nconst genSiderStyle = token => {\n  const {\n    componentCls,\n    siderBg,\n    motionDurationMid,\n    motionDurationSlow,\n    antCls,\n    triggerHeight,\n    triggerColor,\n    triggerBg,\n    headerHeight,\n    zeroTriggerWidth,\n    zeroTriggerHeight,\n    borderRadius,\n    lightSiderBg,\n    lightTriggerColor,\n    lightTriggerBg,\n    bodyBg\n  } = token;\n  return {\n    [componentCls]: {\n      position: 'relative',\n      // fix firefox can't set width smaller than content on flex item\n      minWidth: 0,\n      background: siderBg,\n      transition: `all ${motionDurationMid}, background 0s`,\n      '&-has-trigger': {\n        paddingBottom: triggerHeight\n      },\n      '&-right': {\n        order: 1\n      },\n      [`${componentCls}-children`]: {\n        height: '100%',\n        // Hack for fixing margin collapse bug\n        // https://github.com/ant-design/ant-design/issues/7967\n        // solution from https://stackoverflow.com/a/33132624/3040605\n        marginTop: -0.1,\n        paddingTop: 0.1,\n        [`${antCls}-menu${antCls}-menu-inline-collapsed`]: {\n          width: 'auto'\n        }\n      },\n      [`${componentCls}-trigger`]: {\n        position: 'fixed',\n        bottom: 0,\n        zIndex: 1,\n        height: triggerHeight,\n        color: triggerColor,\n        lineHeight: unit(triggerHeight),\n        textAlign: 'center',\n        background: triggerBg,\n        cursor: 'pointer',\n        transition: `all ${motionDurationMid}`\n      },\n      '&-zero-width': {\n        '> *': {\n          overflow: 'hidden'\n        },\n        [`${componentCls}-trigger`]: {\n          position: 'absolute',\n          top: headerHeight,\n          insetInlineEnd: token.calc(zeroTriggerWidth).mul(-1).equal(),\n          zIndex: 1,\n          width: zeroTriggerWidth,\n          height: zeroTriggerHeight,\n          color: triggerColor,\n          fontSize: token.fontSizeXL,\n          display: 'flex',\n          alignItems: 'center',\n          justifyContent: 'center',\n          background: siderBg,\n          borderStartStartRadius: 0,\n          borderStartEndRadius: borderRadius,\n          borderEndEndRadius: borderRadius,\n          borderEndStartRadius: 0,\n          cursor: 'pointer',\n          transition: `background ${motionDurationSlow} ease`,\n          '&::after': {\n            position: 'absolute',\n            inset: 0,\n            background: 'transparent',\n            transition: `all ${motionDurationSlow}`,\n            content: '\"\"'\n          },\n          '&:hover::after': {\n            background: `rgba(255, 255, 255, 0.2)`\n          },\n          '&-right': {\n            insetInlineStart: token.calc(zeroTriggerWidth).mul(-1).equal(),\n            borderStartStartRadius: borderRadius,\n            borderStartEndRadius: 0,\n            borderEndEndRadius: 0,\n            borderEndStartRadius: borderRadius\n          }\n        }\n      },\n      // Light\n      '&-light': {\n        background: lightSiderBg,\n        [`${componentCls}-trigger`]: {\n          color: lightTriggerColor,\n          background: lightTriggerBg\n        },\n        [`${componentCls}-zero-width-trigger`]: {\n          color: lightTriggerColor,\n          background: lightTriggerBg,\n          border: `1px solid ${bodyBg}`,\n          // Safe to modify to any other color\n          borderInlineStart: 0\n        }\n      }\n    }\n  };\n};\nexport default genStyleHooks(['Layout', 'Sider'], token => [genSiderStyle(token)], prepareComponentToken, {\n  deprecatedTokens: DEPRECATED_TOKENS\n});","// This icon file is generated automatically.\nvar EllipsisOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M176 511a56 56 0 10112 0 56 56 0 10-112 0zm280 0a56 56 0 10112 0 56 56 0 10-112 0zm280 0a56 56 0 10112 0 56 56 0 10-112 0z\" } }] }, \"name\": \"ellipsis\", \"theme\": \"outlined\" };\nexport default EllipsisOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport EllipsisOutlinedSvg from \"@ant-design/icons-svg/es/asn/EllipsisOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar EllipsisOutlined = function EllipsisOutlined(props, ref) {\n  return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n    ref: ref,\n    icon: EllipsisOutlinedSvg\n  }));\n};\n\n/**![ellipsis](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE3NiA1MTFhNTYgNTYgMCAxMDExMiAwIDU2IDU2IDAgMTAtMTEyIDB6bTI4MCAwYTU2IDU2IDAgMTAxMTIgMCA1NiA1NiAwIDEwLTExMiAwem0yODAgMGE1NiA1NiAwIDEwMTEyIDAgNTYgNTYgMCAxMC0xMTIgMHoiIC8+PC9zdmc+) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(EllipsisOutlined);\nif (process.env.NODE_ENV !== 'production') {\n  RefIcon.displayName = 'EllipsisOutlined';\n}\nexport default RefIcon;","\"use client\";\n\nimport { createContext } from 'react';\nconst MenuContext = /*#__PURE__*/createContext({\n  prefixCls: '',\n  firstLevel: true,\n  inlineCollapsed: false\n});\nexport default MenuContext;","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n  var t = {};\n  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n  }\n  return t;\n};\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { Divider } from 'rc-menu';\nimport { ConfigContext } from '../config-provider';\nconst MenuDivider = props => {\n  const {\n      prefixCls: customizePrefixCls,\n      className,\n      dashed\n    } = props,\n    restProps = __rest(props, [\"prefixCls\", \"className\", \"dashed\"]);\n  const {\n    getPrefixCls\n  } = React.useContext(ConfigContext);\n  const prefixCls = getPrefixCls('menu', customizePrefixCls);\n  const classString = classNames({\n    [`${prefixCls}-item-divider-dashed`]: !!dashed\n  }, className);\n  return /*#__PURE__*/React.createElement(Divider, Object.assign({\n    className: classString\n  }, restProps));\n};\nexport default MenuDivider;","import classNames from 'classnames';\nimport * as React from 'react';\nexport default function Popup(props) {\n  var children = props.children,\n    prefixCls = props.prefixCls,\n    id = props.id,\n    overlayInnerStyle = props.overlayInnerStyle,\n    className = props.className,\n    style = props.style;\n  return /*#__PURE__*/React.createElement(\"div\", {\n    className: classNames(\"\".concat(prefixCls, \"-content\"), className),\n    style: style\n  }, /*#__PURE__*/React.createElement(\"div\", {\n    className: \"\".concat(prefixCls, \"-inner\"),\n    id: id,\n    role: \"tooltip\",\n    style: overlayInnerStyle\n  }, typeof children === 'function' ? children() : children));\n}","export default function _extends() {\n  _extends = Object.assign ? Object.assign.bind() : function (target) {\n    for (var i = 1; i < arguments.length; i++) {\n      var source = arguments[i];\n      for (var key in source) {\n        if (Object.prototype.hasOwnProperty.call(source, key)) {\n          target[key] = source[key];\n        }\n      }\n    }\n    return target;\n  };\n  return _extends.apply(this, arguments);\n}","export default function _typeof(obj) {\n  \"@babel/helpers - typeof\";\n\n  return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n    return typeof obj;\n  } : function (obj) {\n    return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n  }, _typeof(obj);\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function _toPropertyKey(arg) {\n  var key = toPrimitive(arg, \"string\");\n  return _typeof(key) === \"symbol\" ? key : String(key);\n}","import _typeof from \"./typeof.js\";\nexport default function _toPrimitive(input, hint) {\n  if (_typeof(input) !== \"object\" || input === null) return input;\n  var prim = input[Symbol.toPrimitive];\n  if (prim !== undefined) {\n    var res = prim.call(input, hint || \"default\");\n    if (_typeof(res) !== \"object\") return res;\n    throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n  }\n  return (hint === \"string\" ? String : Number)(input);\n}","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n  key = toPropertyKey(key);\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n  return obj;\n}","import defineProperty from \"./defineProperty.js\";\nfunction ownKeys(object, enumerableOnly) {\n  var keys = Object.keys(object);\n  if (Object.getOwnPropertySymbols) {\n    var symbols = Object.getOwnPropertySymbols(object);\n    enumerableOnly && (symbols = symbols.filter(function (sym) {\n      return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n    })), keys.push.apply(keys, symbols);\n  }\n  return keys;\n}\nexport default function _objectSpread2(target) {\n  for (var i = 1; i < arguments.length; i++) {\n    var source = null != arguments[i] ? arguments[i] : {};\n    i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n      defineProperty(target, key, source[key]);\n    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n      Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n    });\n  }\n  return target;\n}","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n  if (source == null) return {};\n  var target = objectWithoutPropertiesLoose(source, excluded);\n  var key, i;\n  if (Object.getOwnPropertySymbols) {\n    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n    for (i = 0; i < sourceSymbolKeys.length; i++) {\n      key = sourceSymbolKeys[i];\n      if (excluded.indexOf(key) >= 0) continue;\n      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n      target[key] = source[key];\n    }\n  }\n  return target;\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n  if (source == null) return {};\n  var target = {};\n  var sourceKeys = Object.keys(source);\n  var key, i;\n  for (i = 0; i < sourceKeys.length; i++) {\n    key = sourceKeys[i];\n    if (excluded.indexOf(key) >= 0) continue;\n    target[key] = source[key];\n  }\n  return target;\n}","var autoAdjustOverflowTopBottom = {\n  shiftX: 64,\n  adjustY: 1\n};\nvar autoAdjustOverflowLeftRight = {\n  adjustX: 1,\n  shiftY: true\n};\nvar targetOffset = [0, 0];\nexport var placements = {\n  left: {\n    points: ['cr', 'cl'],\n    overflow: autoAdjustOverflowLeftRight,\n    offset: [-4, 0],\n    targetOffset: targetOffset\n  },\n  right: {\n    points: ['cl', 'cr'],\n    overflow: autoAdjustOverflowLeftRight,\n    offset: [4, 0],\n    targetOffset: targetOffset\n  },\n  top: {\n    points: ['bc', 'tc'],\n    overflow: autoAdjustOverflowTopBottom,\n    offset: [0, -4],\n    targetOffset: targetOffset\n  },\n  bottom: {\n    points: ['tc', 'bc'],\n    overflow: autoAdjustOverflowTopBottom,\n    offset: [0, 4],\n    targetOffset: targetOffset\n  },\n  topLeft: {\n    points: ['bl', 'tl'],\n    overflow: autoAdjustOverflowTopBottom,\n    offset: [0, -4],\n    targetOffset: targetOffset\n  },\n  leftTop: {\n    points: ['tr', 'tl'],\n    overflow: autoAdjustOverflowLeftRight,\n    offset: [-4, 0],\n    targetOffset: targetOffset\n  },\n  topRight: {\n    points: ['br', 'tr'],\n    overflow: autoAdjustOverflowTopBottom,\n    offset: [0, -4],\n    targetOffset: targetOffset\n  },\n  rightTop: {\n    points: ['tl', 'tr'],\n    overflow: autoAdjustOverflowLeftRight,\n    offset: [4, 0],\n    targetOffset: targetOffset\n  },\n  bottomRight: {\n    points: ['tr', 'br'],\n    overflow: autoAdjustOverflowTopBottom,\n    offset: [0, 4],\n    targetOffset: targetOffset\n  },\n  rightBottom: {\n    points: ['bl', 'br'],\n    overflow: autoAdjustOverflowLeftRight,\n    offset: [4, 0],\n    targetOffset: targetOffset\n  },\n  bottomLeft: {\n    points: ['tl', 'bl'],\n    overflow: autoAdjustOverflowTopBottom,\n    offset: [0, 4],\n    targetOffset: targetOffset\n  },\n  leftBottom: {\n    points: ['br', 'bl'],\n    overflow: autoAdjustOverflowLeftRight,\n    offset: [-4, 0],\n    targetOffset: targetOffset\n  }\n};\nexport default placements;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"overlayClassName\", \"trigger\", \"mouseEnterDelay\", \"mouseLeaveDelay\", \"overlayStyle\", \"prefixCls\", \"children\", \"onVisibleChange\", \"afterVisibleChange\", \"transitionName\", \"animation\", \"motion\", \"placement\", \"align\", \"destroyTooltipOnHide\", \"defaultVisible\", \"getTooltipContainer\", \"overlayInnerStyle\", \"arrowContent\", \"overlay\", \"id\", \"showArrow\"];\nimport Trigger from '@rc-component/trigger';\nimport * as React from 'react';\nimport { forwardRef, useImperativeHandle, useRef } from 'react';\nimport { placements } from \"./placements\";\nimport Popup from \"./Popup\";\nvar Tooltip = function Tooltip(props, ref) {\n  var overlayClassName = props.overlayClassName,\n    _props$trigger = props.trigger,\n    trigger = _props$trigger === void 0 ? ['hover'] : _props$trigger,\n    _props$mouseEnterDela = props.mouseEnterDelay,\n    mouseEnterDelay = _props$mouseEnterDela === void 0 ? 0 : _props$mouseEnterDela,\n    _props$mouseLeaveDela = props.mouseLeaveDelay,\n    mouseLeaveDelay = _props$mouseLeaveDela === void 0 ? 0.1 : _props$mouseLeaveDela,\n    overlayStyle = props.overlayStyle,\n    _props$prefixCls = props.prefixCls,\n    prefixCls = _props$prefixCls === void 0 ? 'rc-tooltip' : _props$prefixCls,\n    children = props.children,\n    onVisibleChange = props.onVisibleChange,\n    afterVisibleChange = props.afterVisibleChange,\n    transitionName = props.transitionName,\n    animation = props.animation,\n    motion = props.motion,\n    _props$placement = props.placement,\n    placement = _props$placement === void 0 ? 'right' : _props$placement,\n    _props$align = props.align,\n    align = _props$align === void 0 ? {} : _props$align,\n    _props$destroyTooltip = props.destroyTooltipOnHide,\n    destroyTooltipOnHide = _props$destroyTooltip === void 0 ? false : _props$destroyTooltip,\n    defaultVisible = props.defaultVisible,\n    getTooltipContainer = props.getTooltipContainer,\n    overlayInnerStyle = props.overlayInnerStyle,\n    arrowContent = props.arrowContent,\n    overlay = props.overlay,\n    id = props.id,\n    _props$showArrow = props.showArrow,\n    showArrow = _props$showArrow === void 0 ? true : _props$showArrow,\n    restProps = _objectWithoutProperties(props, _excluded);\n  var triggerRef = useRef(null);\n  useImperativeHandle(ref, function () {\n    return triggerRef.current;\n  });\n  var extraProps = _objectSpread({}, restProps);\n  if ('visible' in props) {\n    extraProps.popupVisible = props.visible;\n  }\n  var getPopupElement = function getPopupElement() {\n    return /*#__PURE__*/React.createElement(Popup, {\n      key: \"content\",\n      prefixCls: prefixCls,\n      id: id,\n      overlayInnerStyle: overlayInnerStyle\n    }, overlay);\n  };\n  return /*#__PURE__*/React.createElement(Trigger, _extends({\n    popupClassName: overlayClassName,\n    prefixCls: prefixCls,\n    popup: getPopupElement,\n    action: trigger,\n    builtinPlacements: placements,\n    popupPlacement: placement,\n    ref: triggerRef,\n    popupAlign: align,\n    getPopupContainer: getTooltipContainer,\n    onPopupVisibleChange: onVisibleChange,\n    afterPopupVisibleChange: afterVisibleChange,\n    popupTransitionName: transitionName,\n    popupAnimation: animation,\n    popupMotion: motion,\n    defaultPopupVisible: defaultVisible,\n    autoDestroy: destroyTooltipOnHide,\n    mouseLeaveDelay: mouseLeaveDelay,\n    popupStyle: overlayStyle,\n    mouseEnterDelay: mouseEnterDelay,\n    arrow: showArrow\n  }, extraProps), children);\n};\nexport default /*#__PURE__*/forwardRef(Tooltip);","import Popup from \"./Popup\";\nimport Tooltip from \"./Tooltip\";\nexport { Popup };\nexport default Tooltip;","export const PresetColors = ['blue', 'purple', 'cyan', 'green', 'magenta', 'pink', 'red', 'orange', 'yellow', 'volcano', 'geekblue', 'lime', 'gold'];","import { PresetColors } from '../interface';\nexport default function genPresetColor(token, genCss) {\n  return PresetColors.reduce((prev, colorKey) => {\n    const lightColor = token[`${colorKey}1`];\n    const lightBorderColor = token[`${colorKey}3`];\n    const darkColor = token[`${colorKey}6`];\n    const textColor = token[`${colorKey}7`];\n    return Object.assign(Object.assign({}, prev), genCss(colorKey, {\n      lightColor,\n      lightBorderColor,\n      darkColor,\n      textColor\n    }));\n  }, {});\n}","import { unit } from '@ant-design/cssinjs';\nimport { resetComponent } from '../../style';\nimport { initZoomMotion } from '../../style/motion';\nimport getArrowStyle, { getArrowOffsetToken, MAX_VERTICAL_CONTENT_RADIUS } from '../../style/placementArrow';\nimport { getArrowToken } from '../../style/roundedArrow';\nimport { genPresetColor, genStyleHooks, mergeToken } from '../../theme/internal';\nconst genTooltipStyle = token => {\n  const {\n    componentCls,\n    // ant-tooltip\n    tooltipMaxWidth,\n    tooltipColor,\n    tooltipBg,\n    tooltipBorderRadius,\n    zIndexPopup,\n    controlHeight,\n    boxShadowSecondary,\n    paddingSM,\n    paddingXS\n  } = token;\n  return [{\n    [componentCls]: Object.assign(Object.assign(Object.assign(Object.assign({}, resetComponent(token)), {\n      position: 'absolute',\n      zIndex: zIndexPopup,\n      display: 'block',\n      width: 'max-content',\n      maxWidth: tooltipMaxWidth,\n      visibility: 'visible',\n      // When use `autoArrow`, origin will follow the arrow position\n      '--valid-offset-x': 'var(--arrow-offset-horizontal, var(--arrow-x))',\n      transformOrigin: [`var(--valid-offset-x, 50%)`, `var(--arrow-y, 50%)`].join(' '),\n      '&-hidden': {\n        display: 'none'\n      },\n      '--antd-arrow-background-color': tooltipBg,\n      // Wrapper for the tooltip content\n      [`${componentCls}-inner`]: {\n        minWidth: '1em',\n        minHeight: controlHeight,\n        padding: `${unit(token.calc(paddingSM).div(2).equal())} ${unit(paddingXS)}`,\n        color: tooltipColor,\n        textAlign: 'start',\n        textDecoration: 'none',\n        wordWrap: 'break-word',\n        backgroundColor: tooltipBg,\n        borderRadius: tooltipBorderRadius,\n        boxShadow: boxShadowSecondary,\n        boxSizing: 'border-box'\n      },\n      // Limit left and right placement radius\n      [[`&-placement-left`, `&-placement-leftTop`, `&-placement-leftBottom`, `&-placement-right`, `&-placement-rightTop`, `&-placement-rightBottom`].join(',')]: {\n        [`${componentCls}-inner`]: {\n          borderRadius: token.min(tooltipBorderRadius, MAX_VERTICAL_CONTENT_RADIUS)\n        }\n      },\n      [`${componentCls}-content`]: {\n        position: 'relative'\n      }\n    }), genPresetColor(token, (colorKey, _ref) => {\n      let {\n        darkColor\n      } = _ref;\n      return {\n        [`&${componentCls}-${colorKey}`]: {\n          [`${componentCls}-inner`]: {\n            backgroundColor: darkColor\n          },\n          [`${componentCls}-arrow`]: {\n            '--antd-arrow-background-color': darkColor\n          }\n        }\n      };\n    })), {\n      // RTL\n      '&-rtl': {\n        direction: 'rtl'\n      }\n    })\n  },\n  // Arrow Style\n  getArrowStyle(token, 'var(--antd-arrow-background-color)'),\n  // Pure Render\n  {\n    [`${componentCls}-pure`]: {\n      position: 'relative',\n      maxWidth: 'none',\n      margin: token.sizePopupArrow\n    }\n  }];\n};\n// ============================== Export ==============================\nexport const prepareComponentToken = token => Object.assign(Object.assign({\n  zIndexPopup: token.zIndexPopupBase + 70\n}, getArrowOffsetToken({\n  contentRadius: token.borderRadius,\n  limitVerticalRadius: true\n})), getArrowToken(mergeToken(token, {\n  borderRadiusOuter: Math.min(token.borderRadiusOuter, 4)\n})));\nexport default (function (prefixCls) {\n  let injectStyle = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n  const useStyle = genStyleHooks('Tooltip', token => {\n    const {\n      borderRadius,\n      colorTextLightSolid,\n      colorBgSpotlight\n    } = token;\n    const TooltipToken = mergeToken(token, {\n      // default variables\n      tooltipMaxWidth: 250,\n      tooltipColor: colorTextLightSolid,\n      tooltipBorderRadius: borderRadius,\n      tooltipBg: colorBgSpotlight\n    });\n    return [genTooltipStyle(TooltipToken), initZoomMotion(token, 'zoom-big-fast')];\n  }, prepareComponentToken, {\n    resetStyle: false,\n    // Popover use Tooltip as internal component. We do not need to handle this.\n    injectStyle\n  });\n  return useStyle(prefixCls);\n});","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport { PresetColors } from '../theme/interface';\nconst inverseColors = PresetColors.map(color => `${color}-inverse`);\nexport const PresetStatusColorTypes = ['success', 'processing', 'error', 'default', 'warning'];\n/**\n * determine if the color keyword belongs to the `Ant Design` {@link PresetColors}.\n * @param color color to be judged\n * @param includeInverse whether to include reversed colors\n */\nexport function isPresetColor(color) {\n  let includeInverse = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n  if (includeInverse) {\n    return [].concat(_toConsumableArray(inverseColors), _toConsumableArray(PresetColors)).includes(color);\n  }\n  return PresetColors.includes(color);\n}\nexport function isPresetStatusColor(color) {\n  return PresetStatusColorTypes.includes(color);\n}","import classNames from 'classnames';\nimport { isPresetColor } from '../_util/colors';\nexport function parseColor(prefixCls, color) {\n  const isInternalColor = isPresetColor(color);\n  const className = classNames({\n    [`${prefixCls}-${color}`]: color && isInternalColor\n  });\n  const overlayStyle = {};\n  const arrowStyle = {};\n  if (color && !isInternalColor) {\n    overlayStyle.background = color;\n    // @ts-ignore\n    arrowStyle['--antd-arrow-background-color'] = color;\n  }\n  return {\n    className,\n    overlayStyle,\n    arrowStyle\n  };\n}","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { Popup } from 'rc-tooltip';\nimport { ConfigContext } from '../config-provider';\nimport useStyle from './style';\nimport { parseColor } from './util';\n/** @private Internal Component. Do not use in your production. */\nconst PurePanel = props => {\n  const {\n    prefixCls: customizePrefixCls,\n    className,\n    placement = 'top',\n    title,\n    color,\n    overlayInnerStyle\n  } = props;\n  const {\n    getPrefixCls\n  } = React.useContext(ConfigContext);\n  const prefixCls = getPrefixCls('tooltip', customizePrefixCls);\n  const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls);\n  // Color\n  const colorInfo = parseColor(prefixCls, color);\n  const arrowContentStyle = colorInfo.arrowStyle;\n  const formattedOverlayInnerStyle = Object.assign(Object.assign({}, overlayInnerStyle), colorInfo.overlayStyle);\n  const cls = classNames(hashId, cssVarCls, prefixCls, `${prefixCls}-pure`, `${prefixCls}-placement-${placement}`, className, colorInfo.className);\n  return wrapCSSVar(/*#__PURE__*/React.createElement(\"div\", {\n    className: cls,\n    style: arrowContentStyle\n  }, /*#__PURE__*/React.createElement(\"div\", {\n    className: `${prefixCls}-arrow`\n  }), /*#__PURE__*/React.createElement(Popup, Object.assign({}, props, {\n    className: hashId,\n    prefixCls: prefixCls,\n    overlayInnerStyle: formattedOverlayInnerStyle\n  }), title)));\n};\nexport default PurePanel;","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n  var t = {};\n  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n  }\n  return t;\n};\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport RcTooltip from 'rc-tooltip';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport ContextIsolator from '../_util/ContextIsolator';\nimport { useZIndex } from '../_util/hooks/useZIndex';\nimport { getTransitionName } from '../_util/motion';\nimport getPlacements from '../_util/placements';\nimport { cloneElement, isFragment } from '../_util/reactNode';\nimport { devUseWarning } from '../_util/warning';\nimport zIndexContext from '../_util/zindexContext';\nimport { ConfigContext } from '../config-provider';\nimport { useToken } from '../theme/internal';\nimport PurePanel from './PurePanel';\nimport useStyle from './style';\nimport { parseColor } from './util';\nconst InternalTooltip = /*#__PURE__*/React.forwardRef((props, ref) => {\n  var _a, _b;\n  const {\n    prefixCls: customizePrefixCls,\n    openClassName,\n    getTooltipContainer,\n    overlayClassName,\n    color,\n    overlayInnerStyle,\n    children,\n    afterOpenChange,\n    afterVisibleChange,\n    destroyTooltipOnHide,\n    arrow = true,\n    title,\n    overlay,\n    builtinPlacements,\n    arrowPointAtCenter = false,\n    autoAdjustOverflow = true\n  } = props;\n  const mergedShowArrow = !!arrow;\n  const [, token] = useToken();\n  const {\n    getPopupContainer: getContextPopupContainer,\n    getPrefixCls,\n    direction\n  } = React.useContext(ConfigContext);\n  // ============================== Ref ===============================\n  const warning = devUseWarning('Tooltip');\n  const tooltipRef = React.useRef(null);\n  const forceAlign = () => {\n    var _a;\n    (_a = tooltipRef.current) === null || _a === void 0 ? void 0 : _a.forceAlign();\n  };\n  React.useImperativeHandle(ref, () => {\n    var _a;\n    return {\n      forceAlign,\n      forcePopupAlign: () => {\n        warning.deprecated(false, 'forcePopupAlign', 'forceAlign');\n        forceAlign();\n      },\n      nativeElement: (_a = tooltipRef.current) === null || _a === void 0 ? void 0 : _a.nativeElement\n    };\n  });\n  // ============================== Warn ==============================\n  if (process.env.NODE_ENV !== 'production') {\n    [['visible', 'open'], ['defaultVisible', 'defaultOpen'], ['onVisibleChange', 'onOpenChange'], ['afterVisibleChange', 'afterOpenChange'], ['arrowPointAtCenter', 'arrow={{ pointAtCenter: true }}']].forEach(_ref => {\n      let [deprecatedName, newName] = _ref;\n      warning.deprecated(!(deprecatedName in props), deprecatedName, newName);\n    });\n    process.env.NODE_ENV !== \"production\" ? warning(!destroyTooltipOnHide || typeof destroyTooltipOnHide === 'boolean', 'usage', '`destroyTooltipOnHide` no need config `keepParent` anymore. Please use `boolean` value directly.') : void 0;\n    process.env.NODE_ENV !== \"production\" ? warning(!arrow || typeof arrow === 'boolean' || !('arrowPointAtCenter' in arrow), 'deprecated', '`arrowPointAtCenter` in `arrow` is deprecated. Please use `pointAtCenter` instead.') : void 0;\n  }\n  // ============================== Open ==============================\n  const [open, setOpen] = useMergedState(false, {\n    value: (_a = props.open) !== null && _a !== void 0 ? _a : props.visible,\n    defaultValue: (_b = props.defaultOpen) !== null && _b !== void 0 ? _b : props.defaultVisible\n  });\n  const noTitle = !title && !overlay && title !== 0; // overlay for old version compatibility\n  const onOpenChange = vis => {\n    var _a, _b;\n    setOpen(noTitle ? false : vis);\n    if (!noTitle) {\n      (_a = props.onOpenChange) === null || _a === void 0 ? void 0 : _a.call(props, vis);\n      (_b = props.onVisibleChange) === null || _b === void 0 ? void 0 : _b.call(props, vis);\n    }\n  };\n  const tooltipPlacements = React.useMemo(() => {\n    var _a, _b;\n    let mergedArrowPointAtCenter = arrowPointAtCenter;\n    if (typeof arrow === 'object') {\n      mergedArrowPointAtCenter = (_b = (_a = arrow.pointAtCenter) !== null && _a !== void 0 ? _a : arrow.arrowPointAtCenter) !== null && _b !== void 0 ? _b : arrowPointAtCenter;\n    }\n    return builtinPlacements || getPlacements({\n      arrowPointAtCenter: mergedArrowPointAtCenter,\n      autoAdjustOverflow,\n      arrowWidth: mergedShowArrow ? token.sizePopupArrow : 0,\n      borderRadius: token.borderRadius,\n      offset: token.marginXXS,\n      visibleFirst: true\n    });\n  }, [arrowPointAtCenter, arrow, builtinPlacements, token]);\n  const memoOverlay = React.useMemo(() => {\n    if (title === 0) {\n      return title;\n    }\n    return overlay || title || '';\n  }, [overlay, title]);\n  const memoOverlayWrapper = /*#__PURE__*/React.createElement(ContextIsolator, {\n    space: true\n  }, typeof memoOverlay === 'function' ? memoOverlay() : memoOverlay);\n  const {\n      getPopupContainer,\n      placement = 'top',\n      mouseEnterDelay = 0.1,\n      mouseLeaveDelay = 0.1,\n      overlayStyle,\n      rootClassName\n    } = props,\n    otherProps = __rest(props, [\"getPopupContainer\", \"placement\", \"mouseEnterDelay\", \"mouseLeaveDelay\", \"overlayStyle\", \"rootClassName\"]);\n  const prefixCls = getPrefixCls('tooltip', customizePrefixCls);\n  const rootPrefixCls = getPrefixCls();\n  const injectFromPopover = props['data-popover-inject'];\n  let tempOpen = open;\n  // Hide tooltip when there is no title\n  if (!('open' in props) && !('visible' in props) && noTitle) {\n    tempOpen = false;\n  }\n  // ============================= Render =============================\n  const child = /*#__PURE__*/React.isValidElement(children) && !isFragment(children) ? children : /*#__PURE__*/React.createElement(\"span\", null, children);\n  const childProps = child.props;\n  const childCls = !childProps.className || typeof childProps.className === 'string' ? classNames(childProps.className, openClassName || `${prefixCls}-open`) : childProps.className;\n  // Style\n  const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls, !injectFromPopover);\n  // Color\n  const colorInfo = parseColor(prefixCls, color);\n  const arrowContentStyle = colorInfo.arrowStyle;\n  const formattedOverlayInnerStyle = Object.assign(Object.assign({}, overlayInnerStyle), colorInfo.overlayStyle);\n  const customOverlayClassName = classNames(overlayClassName, {\n    [`${prefixCls}-rtl`]: direction === 'rtl'\n  }, colorInfo.className, rootClassName, hashId, cssVarCls);\n  // ============================ zIndex ============================\n  const [zIndex, contextZIndex] = useZIndex('Tooltip', otherProps.zIndex);\n  const content = /*#__PURE__*/React.createElement(RcTooltip, Object.assign({}, otherProps, {\n    zIndex: zIndex,\n    showArrow: mergedShowArrow,\n    placement: placement,\n    mouseEnterDelay: mouseEnterDelay,\n    mouseLeaveDelay: mouseLeaveDelay,\n    prefixCls: prefixCls,\n    overlayClassName: customOverlayClassName,\n    overlayStyle: Object.assign(Object.assign({}, arrowContentStyle), overlayStyle),\n    getTooltipContainer: getPopupContainer || getTooltipContainer || getContextPopupContainer,\n    ref: tooltipRef,\n    builtinPlacements: tooltipPlacements,\n    overlay: memoOverlayWrapper,\n    visible: tempOpen,\n    onVisibleChange: onOpenChange,\n    afterVisibleChange: afterOpenChange !== null && afterOpenChange !== void 0 ? afterOpenChange : afterVisibleChange,\n    overlayInnerStyle: formattedOverlayInnerStyle,\n    arrowContent: /*#__PURE__*/React.createElement(\"span\", {\n      className: `${prefixCls}-arrow-content`\n    }),\n    motion: {\n      motionName: getTransitionName(rootPrefixCls, 'zoom-big-fast', props.transitionName),\n      motionDeadline: 1000\n    },\n    destroyTooltipOnHide: !!destroyTooltipOnHide\n  }), tempOpen ? cloneElement(child, {\n    className: childCls\n  }) : child);\n  return wrapCSSVar(/*#__PURE__*/React.createElement(zIndexContext.Provider, {\n    value: contextZIndex\n  }, content));\n});\nconst Tooltip = InternalTooltip;\nif (process.env.NODE_ENV !== 'production') {\n  Tooltip.displayName = 'Tooltip';\n}\nTooltip._InternalPanelDoNotUseOrYouWillBeFired = PurePanel;\nexport default Tooltip;","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { Item } from 'rc-menu';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport omit from \"rc-util/es/omit\";\nimport { cloneElement } from '../_util/reactNode';\nimport { SiderContext } from '../layout/Sider';\nimport Tooltip from '../tooltip';\nimport MenuContext from './MenuContext';\nconst MenuItem = props => {\n  var _a;\n  const {\n    className,\n    children,\n    icon,\n    title,\n    danger\n  } = props;\n  const {\n    prefixCls,\n    firstLevel,\n    direction,\n    disableMenuItemTitleTooltip,\n    inlineCollapsed: isInlineCollapsed\n  } = React.useContext(MenuContext);\n  const renderItemChildren = inlineCollapsed => {\n    const label = children === null || children === void 0 ? void 0 : children[0];\n    const wrapNode = /*#__PURE__*/React.createElement(\"span\", {\n      className: `${prefixCls}-title-content`\n    }, children);\n    // inline-collapsed.md demo 依赖 span 来隐藏文字,有 icon 属性，则内部包裹一个 span\n    // ref: https://github.com/ant-design/ant-design/pull/23456\n    if (!icon || /*#__PURE__*/React.isValidElement(children) && children.type === 'span') {\n      if (children && inlineCollapsed && firstLevel && typeof label === 'string') {\n        return /*#__PURE__*/React.createElement(\"div\", {\n          className: `${prefixCls}-inline-collapsed-noicon`\n        }, label.charAt(0));\n      }\n    }\n    return wrapNode;\n  };\n  const {\n    siderCollapsed\n  } = React.useContext(SiderContext);\n  let tooltipTitle = title;\n  if (typeof title === 'undefined') {\n    tooltipTitle = firstLevel ? children : '';\n  } else if (title === false) {\n    tooltipTitle = '';\n  }\n  const tooltipProps = {\n    title: tooltipTitle\n  };\n  if (!siderCollapsed && !isInlineCollapsed) {\n    tooltipProps.title = null;\n    // Reset `open` to fix control mode tooltip display not correct\n    // ref: https://github.com/ant-design/ant-design/issues/16742\n    tooltipProps.open = false;\n  }\n  const childrenLength = toArray(children).length;\n  let returnNode = /*#__PURE__*/React.createElement(Item, Object.assign({}, omit(props, ['title', 'icon', 'danger']), {\n    className: classNames({\n      [`${prefixCls}-item-danger`]: danger,\n      [`${prefixCls}-item-only-child`]: (icon ? childrenLength + 1 : childrenLength) === 1\n    }, className),\n    title: typeof title === 'string' ? title : undefined\n  }), cloneElement(icon, {\n    className: classNames(/*#__PURE__*/React.isValidElement(icon) ? (_a = icon.props) === null || _a === void 0 ? void 0 : _a.className : '', `${prefixCls}-item-icon`)\n  }), renderItemChildren(isInlineCollapsed));\n  if (!disableMenuItemTitleTooltip) {\n    returnNode = /*#__PURE__*/React.createElement(Tooltip, Object.assign({}, tooltipProps, {\n      placement: direction === 'rtl' ? 'left' : 'right',\n      overlayClassName: `${prefixCls}-inline-collapsed-tooltip`\n    }), returnNode);\n  }\n  return returnNode;\n};\nexport default MenuItem;","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n  var t = {};\n  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n  }\n  return t;\n};\nimport * as React from 'react';\nimport { supportNodeRef, useComposeRef } from 'rc-util';\nimport ContextIsolator from '../_util/ContextIsolator';\nconst OverrideContext = /*#__PURE__*/React.createContext(null);\n/** @internal Only used for Dropdown component. Do not use this in your production. */\nexport const OverrideProvider = /*#__PURE__*/React.forwardRef((props, ref) => {\n  const {\n      children\n    } = props,\n    restProps = __rest(props, [\"children\"]);\n  const override = React.useContext(OverrideContext);\n  const context = React.useMemo(() => Object.assign(Object.assign({}, override), restProps), [override, restProps.prefixCls,\n  // restProps.expandIcon, Not mark as deps since this is a ReactNode\n  restProps.mode, restProps.selectable, restProps.rootClassName\n  // restProps.validator, Not mark as deps since this is a function\n  ]);\n  const canRef = supportNodeRef(children);\n  const mergedRef = useComposeRef(ref, canRef ? children.ref : null);\n  return /*#__PURE__*/React.createElement(OverrideContext.Provider, {\n    value: context\n  }, /*#__PURE__*/React.createElement(ContextIsolator, {\n    space: true\n  }, canRef ? /*#__PURE__*/React.cloneElement(children, {\n    ref: mergedRef\n  }) : children));\n});\n/** @internal Only used for Dropdown component. Do not use this in your production. */\nexport default OverrideContext;","import { Keyframes } from '@ant-design/cssinjs';\nimport { initMotion } from './motion';\nexport const slideUpIn = new Keyframes('antSlideUpIn', {\n  '0%': {\n    transform: 'scaleY(0.8)',\n    transformOrigin: '0% 0%',\n    opacity: 0\n  },\n  '100%': {\n    transform: 'scaleY(1)',\n    transformOrigin: '0% 0%',\n    opacity: 1\n  }\n});\nexport const slideUpOut = new Keyframes('antSlideUpOut', {\n  '0%': {\n    transform: 'scaleY(1)',\n    transformOrigin: '0% 0%',\n    opacity: 1\n  },\n  '100%': {\n    transform: 'scaleY(0.8)',\n    transformOrigin: '0% 0%',\n    opacity: 0\n  }\n});\nexport const slideDownIn = new Keyframes('antSlideDownIn', {\n  '0%': {\n    transform: 'scaleY(0.8)',\n    transformOrigin: '100% 100%',\n    opacity: 0\n  },\n  '100%': {\n    transform: 'scaleY(1)',\n    transformOrigin: '100% 100%',\n    opacity: 1\n  }\n});\nexport const slideDownOut = new Keyframes('antSlideDownOut', {\n  '0%': {\n    transform: 'scaleY(1)',\n    transformOrigin: '100% 100%',\n    opacity: 1\n  },\n  '100%': {\n    transform: 'scaleY(0.8)',\n    transformOrigin: '100% 100%',\n    opacity: 0\n  }\n});\nexport const slideLeftIn = new Keyframes('antSlideLeftIn', {\n  '0%': {\n    transform: 'scaleX(0.8)',\n    transformOrigin: '0% 0%',\n    opacity: 0\n  },\n  '100%': {\n    transform: 'scaleX(1)',\n    transformOrigin: '0% 0%',\n    opacity: 1\n  }\n});\nexport const slideLeftOut = new Keyframes('antSlideLeftOut', {\n  '0%': {\n    transform: 'scaleX(1)',\n    transformOrigin: '0% 0%',\n    opacity: 1\n  },\n  '100%': {\n    transform: 'scaleX(0.8)',\n    transformOrigin: '0% 0%',\n    opacity: 0\n  }\n});\nexport const slideRightIn = new Keyframes('antSlideRightIn', {\n  '0%': {\n    transform: 'scaleX(0.8)',\n    transformOrigin: '100% 0%',\n    opacity: 0\n  },\n  '100%': {\n    transform: 'scaleX(1)',\n    transformOrigin: '100% 0%',\n    opacity: 1\n  }\n});\nexport const slideRightOut = new Keyframes('antSlideRightOut', {\n  '0%': {\n    transform: 'scaleX(1)',\n    transformOrigin: '100% 0%',\n    opacity: 1\n  },\n  '100%': {\n    transform: 'scaleX(0.8)',\n    transformOrigin: '100% 0%',\n    opacity: 0\n  }\n});\nconst slideMotion = {\n  'slide-up': {\n    inKeyframes: slideUpIn,\n    outKeyframes: slideUpOut\n  },\n  'slide-down': {\n    inKeyframes: slideDownIn,\n    outKeyframes: slideDownOut\n  },\n  'slide-left': {\n    inKeyframes: slideLeftIn,\n    outKeyframes: slideLeftOut\n  },\n  'slide-right': {\n    inKeyframes: slideRightIn,\n    outKeyframes: slideRightOut\n  }\n};\nexport const initSlideMotion = (token, motionName) => {\n  const {\n    antCls\n  } = token;\n  const motionCls = `${antCls}-${motionName}`;\n  const {\n    inKeyframes,\n    outKeyframes\n  } = slideMotion[motionName];\n  return [initMotion(motionCls, inKeyframes, outKeyframes, token.motionDurationMid), {\n    [`\n      ${motionCls}-enter,\n      ${motionCls}-appear\n    `]: {\n      transform: 'scale(0)',\n      transformOrigin: '0% 0%',\n      opacity: 0,\n      animationTimingFunction: token.motionEaseOutQuint,\n      '&-prepare': {\n        transform: 'scale(1)'\n      }\n    },\n    [`${motionCls}-leave`]: {\n      animationTimingFunction: token.motionEaseInQuint\n    }\n  }];\n};","import { unit } from '@ant-design/cssinjs';\nconst getHorizontalStyle = token => {\n  const {\n    componentCls,\n    motionDurationSlow,\n    horizontalLineHeight,\n    colorSplit,\n    lineWidth,\n    lineType,\n    itemPaddingInline\n  } = token;\n  return {\n    [`${componentCls}-horizontal`]: {\n      lineHeight: horizontalLineHeight,\n      border: 0,\n      borderBottom: `${unit(lineWidth)} ${lineType} ${colorSplit}`,\n      boxShadow: 'none',\n      '&::after': {\n        display: 'block',\n        clear: 'both',\n        height: 0,\n        content: '\"\\\\20\"'\n      },\n      // ======================= Item =======================\n      [`${componentCls}-item, ${componentCls}-submenu`]: {\n        position: 'relative',\n        display: 'inline-block',\n        verticalAlign: 'bottom',\n        paddingInline: itemPaddingInline\n      },\n      [`> ${componentCls}-item:hover,\n        > ${componentCls}-item-active,\n        > ${componentCls}-submenu ${componentCls}-submenu-title:hover`]: {\n        backgroundColor: 'transparent'\n      },\n      [`${componentCls}-item, ${componentCls}-submenu-title`]: {\n        transition: [`border-color ${motionDurationSlow}`, `background ${motionDurationSlow}`].join(',')\n      },\n      // ===================== Sub Menu =====================\n      [`${componentCls}-submenu-arrow`]: {\n        display: 'none'\n      }\n    }\n  };\n};\nexport default getHorizontalStyle;","import { unit } from '@ant-design/cssinjs';\nconst getRTLStyle = _ref => {\n  let {\n    componentCls,\n    menuArrowOffset,\n    calc\n  } = _ref;\n  return {\n    [`${componentCls}-rtl`]: {\n      direction: 'rtl'\n    },\n    [`${componentCls}-submenu-rtl`]: {\n      transformOrigin: '100% 0'\n    },\n    // Vertical Arrow\n    [`${componentCls}-rtl${componentCls}-vertical,\n    ${componentCls}-submenu-rtl ${componentCls}-vertical`]: {\n      [`${componentCls}-submenu-arrow`]: {\n        '&::before': {\n          transform: `rotate(-45deg) translateY(${unit(calc(menuArrowOffset).mul(-1).equal())})`\n        },\n        '&::after': {\n          transform: `rotate(45deg) translateY(${unit(menuArrowOffset)})`\n        }\n      }\n    }\n  };\n};\nexport default getRTLStyle;","import { unit } from '@ant-design/cssinjs';\nimport { genFocusOutline } from '../../style';\nconst accessibilityFocus = token => Object.assign({}, genFocusOutline(token));\nconst getThemeStyle = (token, themeSuffix) => {\n  const {\n    componentCls,\n    itemColor,\n    itemSelectedColor,\n    groupTitleColor,\n    itemBg,\n    subMenuItemBg,\n    itemSelectedBg,\n    activeBarHeight,\n    activeBarWidth,\n    activeBarBorderWidth,\n    motionDurationSlow,\n    motionEaseInOut,\n    motionEaseOut,\n    itemPaddingInline,\n    motionDurationMid,\n    itemHoverColor,\n    lineType,\n    colorSplit,\n    // Disabled\n    itemDisabledColor,\n    // Danger\n    dangerItemColor,\n    dangerItemHoverColor,\n    dangerItemSelectedColor,\n    dangerItemActiveBg,\n    dangerItemSelectedBg,\n    // Bg\n    popupBg,\n    itemHoverBg,\n    itemActiveBg,\n    menuSubMenuBg,\n    // Horizontal\n    horizontalItemSelectedColor,\n    horizontalItemSelectedBg,\n    horizontalItemBorderRadius,\n    horizontalItemHoverBg\n  } = token;\n  return {\n    [`${componentCls}-${themeSuffix}, ${componentCls}-${themeSuffix} > ${componentCls}`]: {\n      color: itemColor,\n      background: itemBg,\n      [`&${componentCls}-root:focus-visible`]: Object.assign({}, accessibilityFocus(token)),\n      // ======================== Item ========================\n      [`${componentCls}-item-group-title`]: {\n        color: groupTitleColor\n      },\n      [`${componentCls}-submenu-selected`]: {\n        [`> ${componentCls}-submenu-title`]: {\n          color: itemSelectedColor\n        }\n      },\n      [`${componentCls}-item, ${componentCls}-submenu-title`]: {\n        color: itemColor,\n        [`&:not(${componentCls}-item-disabled):focus-visible`]: Object.assign({}, accessibilityFocus(token))\n      },\n      // Disabled\n      [`${componentCls}-item-disabled, ${componentCls}-submenu-disabled`]: {\n        color: `${itemDisabledColor} !important`\n      },\n      // Hover\n      [`${componentCls}-item:not(${componentCls}-item-selected):not(${componentCls}-submenu-selected)`]: {\n        [`&:hover, > ${componentCls}-submenu-title:hover`]: {\n          color: itemHoverColor\n        }\n      },\n      [`&:not(${componentCls}-horizontal)`]: {\n        [`${componentCls}-item:not(${componentCls}-item-selected)`]: {\n          '&:hover': {\n            backgroundColor: itemHoverBg\n          },\n          '&:active': {\n            backgroundColor: itemActiveBg\n          }\n        },\n        [`${componentCls}-submenu-title`]: {\n          '&:hover': {\n            backgroundColor: itemHoverBg\n          },\n          '&:active': {\n            backgroundColor: itemActiveBg\n          }\n        }\n      },\n      // Danger - only Item has\n      [`${componentCls}-item-danger`]: {\n        color: dangerItemColor,\n        [`&${componentCls}-item:hover`]: {\n          [`&:not(${componentCls}-item-selected):not(${componentCls}-submenu-selected)`]: {\n            color: dangerItemHoverColor\n          }\n        },\n        [`&${componentCls}-item:active`]: {\n          background: dangerItemActiveBg\n        }\n      },\n      [`${componentCls}-item a`]: {\n        '&, &:hover': {\n          color: 'inherit'\n        }\n      },\n      [`${componentCls}-item-selected`]: {\n        color: itemSelectedColor,\n        // Danger\n        [`&${componentCls}-item-danger`]: {\n          color: dangerItemSelectedColor\n        },\n        'a, a:hover': {\n          color: 'inherit'\n        }\n      },\n      [`& ${componentCls}-item-selected`]: {\n        backgroundColor: itemSelectedBg,\n        // Danger\n        [`&${componentCls}-item-danger`]: {\n          backgroundColor: dangerItemSelectedBg\n        }\n      },\n      [`&${componentCls}-submenu > ${componentCls}`]: {\n        backgroundColor: menuSubMenuBg\n      },\n      // ===== 设置浮层的颜色 =======\n      // ！dark 模式会被popupBg 会被rest 为 darkPopupBg\n      [`&${componentCls}-popup > ${componentCls}`]: {\n        backgroundColor: popupBg\n      },\n      [`&${componentCls}-submenu-popup > ${componentCls}`]: {\n        backgroundColor: popupBg\n      },\n      // ===== 设置浮层的颜色 end =======\n      // ====================== Horizontal ======================\n      [`&${componentCls}-horizontal`]: Object.assign(Object.assign({}, themeSuffix === 'dark' ? {\n        borderBottom: 0\n      } : {}), {\n        [`> ${componentCls}-item, > ${componentCls}-submenu`]: {\n          top: activeBarBorderWidth,\n          marginTop: token.calc(activeBarBorderWidth).mul(-1).equal(),\n          marginBottom: 0,\n          borderRadius: horizontalItemBorderRadius,\n          '&::after': {\n            position: 'absolute',\n            insetInline: itemPaddingInline,\n            bottom: 0,\n            borderBottom: `${unit(activeBarHeight)} solid transparent`,\n            transition: `border-color ${motionDurationSlow} ${motionEaseInOut}`,\n            content: '\"\"'\n          },\n          '&:hover, &-active, &-open': {\n            background: horizontalItemHoverBg,\n            '&::after': {\n              borderBottomWidth: activeBarHeight,\n              borderBottomColor: horizontalItemSelectedColor\n            }\n          },\n          '&-selected': {\n            color: horizontalItemSelectedColor,\n            backgroundColor: horizontalItemSelectedBg,\n            '&:hover': {\n              backgroundColor: horizontalItemSelectedBg\n            },\n            '&::after': {\n              borderBottomWidth: activeBarHeight,\n              borderBottomColor: horizontalItemSelectedColor\n            }\n          }\n        }\n      }),\n      // ================== Inline & Vertical ===================\n      //\n      [`&${componentCls}-root`]: {\n        [`&${componentCls}-inline, &${componentCls}-vertical`]: {\n          borderInlineEnd: `${unit(activeBarBorderWidth)} ${lineType} ${colorSplit}`\n        }\n      },\n      // ======================== Inline ========================\n      [`&${componentCls}-inline`]: {\n        // Sub\n        [`${componentCls}-sub${componentCls}-inline`]: {\n          background: subMenuItemBg\n        },\n        [`${componentCls}-item`]: {\n          position: 'relative',\n          '&::after': {\n            position: 'absolute',\n            insetBlock: 0,\n            insetInlineEnd: 0,\n            borderInlineEnd: `${unit(activeBarWidth)} solid ${itemSelectedColor}`,\n            transform: 'scaleY(0.0001)',\n            opacity: 0,\n            transition: [`transform ${motionDurationMid} ${motionEaseOut}`, `opacity ${motionDurationMid} ${motionEaseOut}`].join(','),\n            content: '\"\"'\n          },\n          // Danger\n          [`&${componentCls}-item-danger`]: {\n            '&::after': {\n              borderInlineEndColor: dangerItemSelectedColor\n            }\n          }\n        },\n        [`${componentCls}-selected, ${componentCls}-item-selected`]: {\n          '&::after': {\n            transform: 'scaleY(1)',\n            opacity: 1,\n            transition: [`transform ${motionDurationMid} ${motionEaseInOut}`, `opacity ${motionDurationMid} ${motionEaseInOut}`].join(',')\n          }\n        }\n      }\n    }\n  };\n};\nexport default getThemeStyle;","import { unit } from '@ant-design/cssinjs';\nimport { textEllipsis } from '../../style';\nconst getVerticalInlineStyle = token => {\n  const {\n    componentCls,\n    itemHeight,\n    itemMarginInline,\n    padding,\n    menuArrowSize,\n    marginXS,\n    itemMarginBlock,\n    itemWidth,\n    itemPaddingInline\n  } = token;\n  const paddingWithArrow = token.calc(menuArrowSize).add(padding).add(marginXS).equal();\n  return {\n    [`${componentCls}-item`]: {\n      position: 'relative',\n      overflow: 'hidden'\n    },\n    [`${componentCls}-item, ${componentCls}-submenu-title`]: {\n      height: itemHeight,\n      lineHeight: unit(itemHeight),\n      paddingInline: itemPaddingInline,\n      overflow: 'hidden',\n      textOverflow: 'ellipsis',\n      marginInline: itemMarginInline,\n      marginBlock: itemMarginBlock,\n      width: itemWidth\n    },\n    [`> ${componentCls}-item,\n            > ${componentCls}-submenu > ${componentCls}-submenu-title`]: {\n      height: itemHeight,\n      lineHeight: unit(itemHeight)\n    },\n    [`${componentCls}-item-group-list ${componentCls}-submenu-title,\n            ${componentCls}-submenu-title`]: {\n      paddingInlineEnd: paddingWithArrow\n    }\n  };\n};\nconst getVerticalStyle = token => {\n  const {\n    componentCls,\n    iconCls,\n    itemHeight,\n    colorTextLightSolid,\n    dropdownWidth,\n    controlHeightLG,\n    motionEaseOut,\n    paddingXL,\n    itemMarginInline,\n    fontSizeLG,\n    motionDurationFast,\n    motionDurationSlow,\n    paddingXS,\n    boxShadowSecondary,\n    collapsedWidth,\n    collapsedIconSize\n  } = token;\n  const inlineItemStyle = {\n    height: itemHeight,\n    lineHeight: unit(itemHeight),\n    listStylePosition: 'inside',\n    listStyleType: 'disc'\n  };\n  return [{\n    [componentCls]: {\n      '&-inline, &-vertical': Object.assign({\n        [`&${componentCls}-root`]: {\n          boxShadow: 'none'\n        }\n      }, getVerticalInlineStyle(token))\n    },\n    [`${componentCls}-submenu-popup`]: {\n      [`${componentCls}-vertical`]: Object.assign(Object.assign({}, getVerticalInlineStyle(token)), {\n        boxShadow: boxShadowSecondary\n      })\n    }\n  },\n  // Vertical only\n  {\n    [`${componentCls}-submenu-popup ${componentCls}-vertical${componentCls}-sub`]: {\n      minWidth: dropdownWidth,\n      maxHeight: `calc(100vh - ${unit(token.calc(controlHeightLG).mul(2.5).equal())})`,\n      padding: '0',\n      overflow: 'hidden',\n      borderInlineEnd: 0,\n      // https://github.com/ant-design/ant-design/issues/22244\n      // https://github.com/ant-design/ant-design/issues/26812\n      \"&:not([class*='-active'])\": {\n        overflowX: 'hidden',\n        overflowY: 'auto'\n      }\n    }\n  },\n  // Inline Only\n  {\n    [`${componentCls}-inline`]: {\n      width: '100%',\n      // Motion enhance for first level\n      [`&${componentCls}-root`]: {\n        [`${componentCls}-item, ${componentCls}-submenu-title`]: {\n          display: 'flex',\n          alignItems: 'center',\n          transition: [`border-color ${motionDurationSlow}`, `background ${motionDurationSlow}`, `padding ${motionDurationFast} ${motionEaseOut}`].join(','),\n          [`> ${componentCls}-title-content`]: {\n            flex: 'auto',\n            minWidth: 0,\n            overflow: 'hidden',\n            textOverflow: 'ellipsis'\n          },\n          '> *': {\n            flex: 'none'\n          }\n        }\n      },\n      // >>>>> Sub\n      [`${componentCls}-sub${componentCls}-inline`]: {\n        padding: 0,\n        border: 0,\n        borderRadius: 0,\n        boxShadow: 'none',\n        [`& > ${componentCls}-submenu > ${componentCls}-submenu-title`]: inlineItemStyle,\n        [`& ${componentCls}-item-group-title`]: {\n          paddingInlineStart: paddingXL\n        }\n      },\n      // >>>>> Item\n      [`${componentCls}-item`]: inlineItemStyle\n    }\n  },\n  // Inline Collapse Only\n  {\n    [`${componentCls}-inline-collapsed`]: {\n      width: collapsedWidth,\n      [`&${componentCls}-root`]: {\n        [`${componentCls}-item, ${componentCls}-submenu ${componentCls}-submenu-title`]: {\n          [`> ${componentCls}-inline-collapsed-noicon`]: {\n            fontSize: fontSizeLG,\n            textAlign: 'center'\n          }\n        }\n      },\n      [`> ${componentCls}-item,\n          > ${componentCls}-item-group > ${componentCls}-item-group-list > ${componentCls}-item,\n          > ${componentCls}-item-group > ${componentCls}-item-group-list > ${componentCls}-submenu > ${componentCls}-submenu-title,\n          > ${componentCls}-submenu > ${componentCls}-submenu-title`]: {\n        insetInlineStart: 0,\n        paddingInline: `calc(50% - ${unit(token.calc(fontSizeLG).div(2).equal())} - ${unit(itemMarginInline)})`,\n        textOverflow: 'clip',\n        [`\n            ${componentCls}-submenu-arrow,\n            ${componentCls}-submenu-expand-icon\n          `]: {\n          opacity: 0\n        },\n        [`${componentCls}-item-icon, ${iconCls}`]: {\n          margin: 0,\n          fontSize: collapsedIconSize,\n          lineHeight: unit(itemHeight),\n          '+ span': {\n            display: 'inline-block',\n            opacity: 0\n          }\n        }\n      },\n      [`${componentCls}-item-icon, ${iconCls}`]: {\n        display: 'inline-block'\n      },\n      '&-tooltip': {\n        pointerEvents: 'none',\n        [`${componentCls}-item-icon, ${iconCls}`]: {\n          display: 'none'\n        },\n        'a, a:hover': {\n          color: colorTextLightSolid\n        }\n      },\n      [`${componentCls}-item-group-title`]: Object.assign(Object.assign({}, textEllipsis), {\n        paddingInline: paddingXS\n      })\n    }\n  }];\n};\nexport default getVerticalStyle;","import { unit } from '@ant-design/cssinjs';\nimport { TinyColor } from '@ctrl/tinycolor';\nimport { clearFix, resetComponent, resetIcon } from '../../style';\nimport { genCollapseMotion, initSlideMotion, initZoomMotion } from '../../style/motion';\nimport { genStyleHooks, mergeToken } from '../../theme/internal';\nimport getHorizontalStyle from './horizontal';\nimport getRTLStyle from './rtl';\nimport getThemeStyle from './theme';\nimport getVerticalStyle from './vertical';\nconst genMenuItemStyle = token => {\n  const {\n    componentCls,\n    motionDurationSlow,\n    motionDurationMid,\n    motionEaseInOut,\n    motionEaseOut,\n    iconCls,\n    iconSize,\n    iconMarginInlineEnd\n  } = token;\n  return {\n    // >>>>> Item\n    [`${componentCls}-item, ${componentCls}-submenu-title`]: {\n      position: 'relative',\n      display: 'block',\n      margin: 0,\n      whiteSpace: 'nowrap',\n      cursor: 'pointer',\n      transition: [`border-color ${motionDurationSlow}`, `background ${motionDurationSlow}`, `padding calc(${motionDurationSlow} + 0.1s) ${motionEaseInOut}`].join(','),\n      [`${componentCls}-item-icon, ${iconCls}`]: {\n        minWidth: iconSize,\n        fontSize: iconSize,\n        transition: [`font-size ${motionDurationMid} ${motionEaseOut}`, `margin ${motionDurationSlow} ${motionEaseInOut}`, `color ${motionDurationSlow}`].join(','),\n        '+ span': {\n          marginInlineStart: iconMarginInlineEnd,\n          opacity: 1,\n          transition: [`opacity ${motionDurationSlow} ${motionEaseInOut}`, `margin ${motionDurationSlow}`, `color ${motionDurationSlow}`].join(',')\n        }\n      },\n      [`${componentCls}-item-icon`]: Object.assign({}, resetIcon()),\n      [`&${componentCls}-item-only-child`]: {\n        [`> ${iconCls}, > ${componentCls}-item-icon`]: {\n          marginInlineEnd: 0\n        }\n      }\n    },\n    // Disabled state sets text to gray and nukes hover/tab effects\n    [`${componentCls}-item-disabled, ${componentCls}-submenu-disabled`]: {\n      background: 'none !important',\n      cursor: 'not-allowed',\n      '&::after': {\n        borderColor: 'transparent !important'\n      },\n      a: {\n        color: 'inherit !important'\n      },\n      [`> ${componentCls}-submenu-title`]: {\n        color: 'inherit !important',\n        cursor: 'not-allowed'\n      }\n    }\n  };\n};\nconst genSubMenuArrowStyle = token => {\n  const {\n    componentCls,\n    motionDurationSlow,\n    motionEaseInOut,\n    borderRadius,\n    menuArrowSize,\n    menuArrowOffset\n  } = token;\n  return {\n    [`${componentCls}-submenu`]: {\n      '&-expand-icon, &-arrow': {\n        position: 'absolute',\n        top: '50%',\n        insetInlineEnd: token.margin,\n        width: menuArrowSize,\n        color: 'currentcolor',\n        transform: 'translateY(-50%)',\n        transition: `transform ${motionDurationSlow} ${motionEaseInOut}, opacity ${motionDurationSlow}`\n      },\n      '&-arrow': {\n        // →\n        '&::before, &::after': {\n          position: 'absolute',\n          width: token.calc(menuArrowSize).mul(0.6).equal(),\n          height: token.calc(menuArrowSize).mul(0.15).equal(),\n          backgroundColor: 'currentcolor',\n          borderRadius,\n          transition: [`background ${motionDurationSlow} ${motionEaseInOut}`, `transform ${motionDurationSlow} ${motionEaseInOut}`, `top ${motionDurationSlow} ${motionEaseInOut}`, `color ${motionDurationSlow} ${motionEaseInOut}`].join(','),\n          content: '\"\"'\n        },\n        '&::before': {\n          transform: `rotate(45deg) translateY(${unit(token.calc(menuArrowOffset).mul(-1).equal())})`\n        },\n        '&::after': {\n          transform: `rotate(-45deg) translateY(${unit(menuArrowOffset)})`\n        }\n      }\n    }\n  };\n};\n// =============================== Base ===============================\nconst getBaseStyle = token => {\n  const {\n    antCls,\n    componentCls,\n    fontSize,\n    motionDurationSlow,\n    motionDurationMid,\n    motionEaseInOut,\n    paddingXS,\n    padding,\n    colorSplit,\n    lineWidth,\n    zIndexPopup,\n    borderRadiusLG,\n    subMenuItemBorderRadius,\n    menuArrowSize,\n    menuArrowOffset,\n    lineType,\n    groupTitleLineHeight,\n    groupTitleFontSize\n  } = token;\n  return [\n  // Misc\n  {\n    '': {\n      [componentCls]: Object.assign(Object.assign({}, clearFix()), {\n        // Hidden\n        '&-hidden': {\n          display: 'none'\n        }\n      })\n    },\n    [`${componentCls}-submenu-hidden`]: {\n      display: 'none'\n    }\n  }, {\n    [componentCls]: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, resetComponent(token)), clearFix()), {\n      marginBottom: 0,\n      paddingInlineStart: 0,\n      // Override default ul/ol\n      fontSize,\n      lineHeight: 0,\n      listStyle: 'none',\n      outline: 'none',\n      // Magic cubic here but smooth transition\n      transition: `width ${motionDurationSlow} cubic-bezier(0.2, 0, 0, 1) 0s`,\n      'ul, ol': {\n        margin: 0,\n        padding: 0,\n        listStyle: 'none'\n      },\n      // Overflow ellipsis\n      '&-overflow': {\n        display: 'flex',\n        [`${componentCls}-item`]: {\n          flex: 'none'\n        }\n      },\n      [`${componentCls}-item, ${componentCls}-submenu, ${componentCls}-submenu-title`]: {\n        borderRadius: token.itemBorderRadius\n      },\n      [`${componentCls}-item-group-title`]: {\n        padding: `${unit(paddingXS)} ${unit(padding)}`,\n        fontSize: groupTitleFontSize,\n        lineHeight: groupTitleLineHeight,\n        transition: `all ${motionDurationSlow}`\n      },\n      [`&-horizontal ${componentCls}-submenu`]: {\n        transition: [`border-color ${motionDurationSlow} ${motionEaseInOut}`, `background ${motionDurationSlow} ${motionEaseInOut}`].join(',')\n      },\n      [`${componentCls}-submenu, ${componentCls}-submenu-inline`]: {\n        transition: [`border-color ${motionDurationSlow} ${motionEaseInOut}`, `background ${motionDurationSlow} ${motionEaseInOut}`, `padding ${motionDurationMid} ${motionEaseInOut}`].join(',')\n      },\n      [`${componentCls}-submenu ${componentCls}-sub`]: {\n        cursor: 'initial',\n        transition: [`background ${motionDurationSlow} ${motionEaseInOut}`, `padding ${motionDurationSlow} ${motionEaseInOut}`].join(',')\n      },\n      [`${componentCls}-title-content`]: {\n        display: 'inline-flex',\n        alignItems: 'center',\n        transition: `color ${motionDurationSlow}`,\n        '> a:first-child': {\n          flexGrow: 1\n        },\n        // https://github.com/ant-design/ant-design/issues/41143\n        [`> ${antCls}-typography-ellipsis-single-line`]: {\n          display: 'inline',\n          verticalAlign: 'unset'\n        },\n        [`${componentCls}-item-extra`]: {\n          marginInlineStart: 'auto',\n          paddingInlineStart: token.padding,\n          fontSize: token.fontSizeSM,\n          color: token.colorTextDescription\n        }\n      },\n      [`${componentCls}-item a`]: {\n        '&::before': {\n          position: 'absolute',\n          inset: 0,\n          backgroundColor: 'transparent',\n          content: '\"\"'\n        }\n      },\n      // Removed a Badge related style seems it's safe\n      // https://github.com/ant-design/ant-design/issues/19809\n      // >>>>> Divider\n      [`${componentCls}-item-divider`]: {\n        overflow: 'hidden',\n        lineHeight: 0,\n        borderColor: colorSplit,\n        borderStyle: lineType,\n        borderWidth: 0,\n        borderTopWidth: lineWidth,\n        marginBlock: lineWidth,\n        padding: 0,\n        '&-dashed': {\n          borderStyle: 'dashed'\n        }\n      }\n    }), genMenuItemStyle(token)), {\n      [`${componentCls}-item-group`]: {\n        [`${componentCls}-item-group-list`]: {\n          margin: 0,\n          padding: 0,\n          [`${componentCls}-item, ${componentCls}-submenu-title`]: {\n            paddingInline: `${unit(token.calc(fontSize).mul(2).equal())} ${unit(padding)}`\n          }\n        }\n      },\n      // ======================= Sub Menu =======================\n      '&-submenu': {\n        '&-popup': {\n          position: 'absolute',\n          zIndex: zIndexPopup,\n          borderRadius: borderRadiusLG,\n          boxShadow: 'none',\n          transformOrigin: '0 0',\n          [`&${componentCls}-submenu`]: {\n            background: 'transparent'\n          },\n          // https://github.com/ant-design/ant-design/issues/13955\n          '&::before': {\n            position: 'absolute',\n            inset: 0,\n            zIndex: -1,\n            width: '100%',\n            height: '100%',\n            opacity: 0,\n            content: '\"\"'\n          },\n          [`> ${componentCls}`]: Object.assign(Object.assign(Object.assign({\n            borderRadius: borderRadiusLG\n          }, genMenuItemStyle(token)), genSubMenuArrowStyle(token)), {\n            [`${componentCls}-item, ${componentCls}-submenu > ${componentCls}-submenu-title`]: {\n              borderRadius: subMenuItemBorderRadius\n            },\n            [`${componentCls}-submenu-title::after`]: {\n              transition: `transform ${motionDurationSlow} ${motionEaseInOut}`\n            }\n          })\n        },\n        [`\n          &-placement-leftTop,\n          &-placement-bottomRight,\n          `]: {\n          transformOrigin: '100% 0'\n        },\n        [`\n          &-placement-leftBottom,\n          &-placement-topRight,\n          `]: {\n          transformOrigin: '100% 100%'\n        },\n        [`\n          &-placement-rightBottom,\n          &-placement-topLeft,\n          `]: {\n          transformOrigin: '0 100%'\n        },\n        [`\n          &-placement-bottomLeft,\n          &-placement-rightTop,\n          `]: {\n          transformOrigin: '0 0'\n        },\n        [`\n          &-placement-leftTop,\n          &-placement-leftBottom\n          `]: {\n          paddingInlineEnd: token.paddingXS\n        },\n        [`\n          &-placement-rightTop,\n          &-placement-rightBottom\n          `]: {\n          paddingInlineStart: token.paddingXS\n        },\n        [`\n          &-placement-topRight,\n          &-placement-topLeft\n          `]: {\n          paddingBottom: token.paddingXS\n        },\n        [`\n          &-placement-bottomRight,\n          &-placement-bottomLeft\n          `]: {\n          paddingTop: token.paddingXS\n        }\n      }\n    }), genSubMenuArrowStyle(token)), {\n      [`&-inline-collapsed ${componentCls}-submenu-arrow,\n        &-inline ${componentCls}-submenu-arrow`]: {\n        // ↓\n        '&::before': {\n          transform: `rotate(-45deg) translateX(${unit(menuArrowOffset)})`\n        },\n        '&::after': {\n          transform: `rotate(45deg) translateX(${unit(token.calc(menuArrowOffset).mul(-1).equal())})`\n        }\n      },\n      [`${componentCls}-submenu-open${componentCls}-submenu-inline > ${componentCls}-submenu-title > ${componentCls}-submenu-arrow`]: {\n        // ↑\n        transform: `translateY(${unit(token.calc(menuArrowSize).mul(0.2).mul(-1).equal())})`,\n        '&::after': {\n          transform: `rotate(-45deg) translateX(${unit(token.calc(menuArrowOffset).mul(-1).equal())})`\n        },\n        '&::before': {\n          transform: `rotate(45deg) translateX(${unit(menuArrowOffset)})`\n        }\n      }\n    })\n  },\n  // Integration with header element so menu items have the same height\n  {\n    [`${antCls}-layout-header`]: {\n      [componentCls]: {\n        lineHeight: 'inherit'\n      }\n    }\n  }];\n};\nexport const prepareComponentToken = token => {\n  var _a, _b, _c;\n  const {\n    colorPrimary,\n    colorError,\n    colorTextDisabled,\n    colorErrorBg,\n    colorText,\n    colorTextDescription,\n    colorBgContainer,\n    colorFillAlter,\n    colorFillContent,\n    lineWidth,\n    lineWidthBold,\n    controlItemBgActive,\n    colorBgTextHover,\n    controlHeightLG,\n    lineHeight,\n    colorBgElevated,\n    marginXXS,\n    padding,\n    fontSize,\n    controlHeightSM,\n    fontSizeLG,\n    colorTextLightSolid,\n    colorErrorHover\n  } = token;\n  const activeBarWidth = (_a = token.activeBarWidth) !== null && _a !== void 0 ? _a : 0;\n  const activeBarBorderWidth = (_b = token.activeBarBorderWidth) !== null && _b !== void 0 ? _b : lineWidth;\n  const itemMarginInline = (_c = token.itemMarginInline) !== null && _c !== void 0 ? _c : token.marginXXS;\n  const colorTextDark = new TinyColor(colorTextLightSolid).setAlpha(0.65).toRgbString();\n  return {\n    dropdownWidth: 160,\n    zIndexPopup: token.zIndexPopupBase + 50,\n    radiusItem: token.borderRadiusLG,\n    itemBorderRadius: token.borderRadiusLG,\n    radiusSubMenuItem: token.borderRadiusSM,\n    subMenuItemBorderRadius: token.borderRadiusSM,\n    colorItemText: colorText,\n    itemColor: colorText,\n    colorItemTextHover: colorText,\n    itemHoverColor: colorText,\n    colorItemTextHoverHorizontal: colorPrimary,\n    horizontalItemHoverColor: colorPrimary,\n    colorGroupTitle: colorTextDescription,\n    groupTitleColor: colorTextDescription,\n    colorItemTextSelected: colorPrimary,\n    itemSelectedColor: colorPrimary,\n    colorItemTextSelectedHorizontal: colorPrimary,\n    horizontalItemSelectedColor: colorPrimary,\n    colorItemBg: colorBgContainer,\n    itemBg: colorBgContainer,\n    colorItemBgHover: colorBgTextHover,\n    itemHoverBg: colorBgTextHover,\n    colorItemBgActive: colorFillContent,\n    itemActiveBg: controlItemBgActive,\n    colorSubItemBg: colorFillAlter,\n    subMenuItemBg: colorFillAlter,\n    colorItemBgSelected: controlItemBgActive,\n    itemSelectedBg: controlItemBgActive,\n    colorItemBgSelectedHorizontal: 'transparent',\n    horizontalItemSelectedBg: 'transparent',\n    colorActiveBarWidth: 0,\n    activeBarWidth,\n    colorActiveBarHeight: lineWidthBold,\n    activeBarHeight: lineWidthBold,\n    colorActiveBarBorderSize: lineWidth,\n    activeBarBorderWidth,\n    // Disabled\n    colorItemTextDisabled: colorTextDisabled,\n    itemDisabledColor: colorTextDisabled,\n    // Danger\n    colorDangerItemText: colorError,\n    dangerItemColor: colorError,\n    colorDangerItemTextHover: colorError,\n    dangerItemHoverColor: colorError,\n    colorDangerItemTextSelected: colorError,\n    dangerItemSelectedColor: colorError,\n    colorDangerItemBgActive: colorErrorBg,\n    dangerItemActiveBg: colorErrorBg,\n    colorDangerItemBgSelected: colorErrorBg,\n    dangerItemSelectedBg: colorErrorBg,\n    itemMarginInline,\n    horizontalItemBorderRadius: 0,\n    horizontalItemHoverBg: 'transparent',\n    itemHeight: controlHeightLG,\n    groupTitleLineHeight: lineHeight,\n    collapsedWidth: controlHeightLG * 2,\n    popupBg: colorBgElevated,\n    itemMarginBlock: marginXXS,\n    itemPaddingInline: padding,\n    horizontalLineHeight: `${controlHeightLG * 1.15}px`,\n    iconSize: fontSize,\n    iconMarginInlineEnd: controlHeightSM - fontSize,\n    collapsedIconSize: fontSizeLG,\n    groupTitleFontSize: fontSize,\n    // Disabled\n    darkItemDisabledColor: new TinyColor(colorTextLightSolid).setAlpha(0.25).toRgbString(),\n    // Dark\n    darkItemColor: colorTextDark,\n    darkDangerItemColor: colorError,\n    darkItemBg: '#001529',\n    darkPopupBg: '#001529',\n    darkSubMenuItemBg: '#000c17',\n    darkItemSelectedColor: colorTextLightSolid,\n    darkItemSelectedBg: colorPrimary,\n    darkDangerItemSelectedBg: colorError,\n    darkItemHoverBg: 'transparent',\n    darkGroupTitleColor: colorTextDark,\n    darkItemHoverColor: colorTextLightSolid,\n    darkDangerItemHoverColor: colorErrorHover,\n    darkDangerItemSelectedColor: colorTextLightSolid,\n    darkDangerItemActiveBg: colorError,\n    // internal\n    itemWidth: activeBarWidth ? `calc(100% + ${activeBarBorderWidth}px)` : `calc(100% - ${itemMarginInline * 2}px)`\n  };\n};\n// ============================== Export ==============================\nexport default (function (prefixCls) {\n  let rootCls = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : prefixCls;\n  let injectStyle = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n  const useStyle = genStyleHooks('Menu', token => {\n    const {\n      colorBgElevated,\n      controlHeightLG,\n      fontSize,\n      darkItemColor,\n      darkDangerItemColor,\n      darkItemBg,\n      darkSubMenuItemBg,\n      darkItemSelectedColor,\n      darkItemSelectedBg,\n      darkDangerItemSelectedBg,\n      darkItemHoverBg,\n      darkGroupTitleColor,\n      darkItemHoverColor,\n      darkItemDisabledColor,\n      darkDangerItemHoverColor,\n      darkDangerItemSelectedColor,\n      darkDangerItemActiveBg,\n      popupBg,\n      darkPopupBg\n    } = token;\n    const menuArrowSize = token.calc(fontSize).div(7).mul(5).equal();\n    // Menu Token\n    const menuToken = mergeToken(token, {\n      menuArrowSize,\n      menuHorizontalHeight: token.calc(controlHeightLG).mul(1.15).equal(),\n      menuArrowOffset: token.calc(menuArrowSize).mul(0.25).equal(),\n      menuSubMenuBg: colorBgElevated,\n      calc: token.calc,\n      popupBg\n    });\n    const menuDarkToken = mergeToken(menuToken, {\n      itemColor: darkItemColor,\n      itemHoverColor: darkItemHoverColor,\n      groupTitleColor: darkGroupTitleColor,\n      itemSelectedColor: darkItemSelectedColor,\n      itemBg: darkItemBg,\n      popupBg: darkPopupBg,\n      subMenuItemBg: darkSubMenuItemBg,\n      itemActiveBg: 'transparent',\n      itemSelectedBg: darkItemSelectedBg,\n      activeBarHeight: 0,\n      activeBarBorderWidth: 0,\n      itemHoverBg: darkItemHoverBg,\n      // Disabled\n      itemDisabledColor: darkItemDisabledColor,\n      // Danger\n      dangerItemColor: darkDangerItemColor,\n      dangerItemHoverColor: darkDangerItemHoverColor,\n      dangerItemSelectedColor: darkDangerItemSelectedColor,\n      dangerItemActiveBg: darkDangerItemActiveBg,\n      dangerItemSelectedBg: darkDangerItemSelectedBg,\n      menuSubMenuBg: darkSubMenuItemBg,\n      // Horizontal\n      horizontalItemSelectedColor: darkItemSelectedColor,\n      horizontalItemSelectedBg: darkItemSelectedBg\n    });\n    return [\n    // Basic\n    getBaseStyle(menuToken),\n    // Horizontal\n    getHorizontalStyle(menuToken),\n    // Hard code for some light style\n    // Vertical\n    getVerticalStyle(menuToken),\n    // Hard code for some light style\n    // Theme\n    getThemeStyle(menuToken, 'light'), getThemeStyle(menuDarkToken, 'dark'),\n    // RTL\n    getRTLStyle(menuToken),\n    // Motion\n    genCollapseMotion(menuToken), initSlideMotion(menuToken, 'slide-up'), initSlideMotion(menuToken, 'slide-down'), initZoomMotion(menuToken, 'zoom-big')];\n  }, prepareComponentToken, {\n    deprecatedTokens: [['colorGroupTitle', 'groupTitleColor'], ['radiusItem', 'itemBorderRadius'], ['radiusSubMenuItem', 'subMenuItemBorderRadius'], ['colorItemText', 'itemColor'], ['colorItemTextHover', 'itemHoverColor'], ['colorItemTextHoverHorizontal', 'horizontalItemHoverColor'], ['colorItemTextSelected', 'itemSelectedColor'], ['colorItemTextSelectedHorizontal', 'horizontalItemSelectedColor'], ['colorItemTextDisabled', 'itemDisabledColor'], ['colorDangerItemText', 'dangerItemColor'], ['colorDangerItemTextHover', 'dangerItemHoverColor'], ['colorDangerItemTextSelected', 'dangerItemSelectedColor'], ['colorDangerItemBgActive', 'dangerItemActiveBg'], ['colorDangerItemBgSelected', 'dangerItemSelectedBg'], ['colorItemBg', 'itemBg'], ['colorItemBgHover', 'itemHoverBg'], ['colorSubItemBg', 'subMenuItemBg'], ['colorItemBgActive', 'itemActiveBg'], ['colorItemBgSelectedHorizontal', 'horizontalItemSelectedBg'], ['colorActiveBarWidth', 'activeBarWidth'], ['colorActiveBarHeight', 'activeBarHeight'], ['colorActiveBarBorderSize', 'activeBarBorderWidth'], ['colorItemBgSelected', 'itemSelectedBg']],\n    // Dropdown will handle menu style self. We do not need to handle this.\n    injectStyle,\n    unitless: {\n      groupTitleLineHeight: true\n    }\n  });\n  return useStyle(prefixCls, rootCls);\n});","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { SubMenu as RcSubMenu, useFullPath } from 'rc-menu';\nimport omit from \"rc-util/es/omit\";\nimport { useZIndex } from '../_util/hooks/useZIndex';\nimport { cloneElement } from '../_util/reactNode';\nimport MenuContext from './MenuContext';\nconst SubMenu = props => {\n  var _a;\n  const {\n    popupClassName,\n    icon,\n    title,\n    theme: customTheme\n  } = props;\n  const context = React.useContext(MenuContext);\n  const {\n    prefixCls,\n    inlineCollapsed,\n    theme: contextTheme\n  } = context;\n  const parentPath = useFullPath();\n  let titleNode;\n  if (!icon) {\n    titleNode = inlineCollapsed && !parentPath.length && title && typeof title === 'string' ? (/*#__PURE__*/React.createElement(\"div\", {\n      className: `${prefixCls}-inline-collapsed-noicon`\n    }, title.charAt(0))) : (/*#__PURE__*/React.createElement(\"span\", {\n      className: `${prefixCls}-title-content`\n    }, title));\n  } else {\n    // inline-collapsed.md demo 依赖 span 来隐藏文字,有 icon 属性，则内部包裹一个 span\n    // ref: https://github.com/ant-design/ant-design/pull/23456\n    const titleIsSpan = /*#__PURE__*/React.isValidElement(title) && title.type === 'span';\n    titleNode = /*#__PURE__*/React.createElement(React.Fragment, null, cloneElement(icon, {\n      className: classNames(/*#__PURE__*/React.isValidElement(icon) ? (_a = icon.props) === null || _a === void 0 ? void 0 : _a.className : '', `${prefixCls}-item-icon`)\n    }), titleIsSpan ? title : /*#__PURE__*/React.createElement(\"span\", {\n      className: `${prefixCls}-title-content`\n    }, title));\n  }\n  const contextValue = React.useMemo(() => Object.assign(Object.assign({}, context), {\n    firstLevel: false\n  }), [context]);\n  // ============================ zIndex ============================\n  const [zIndex] = useZIndex('Menu');\n  return /*#__PURE__*/React.createElement(MenuContext.Provider, {\n    value: contextValue\n  }, /*#__PURE__*/React.createElement(RcSubMenu, Object.assign({}, omit(props, ['icon']), {\n    title: titleNode,\n    popupClassName: classNames(prefixCls, popupClassName, `${prefixCls}-${customTheme || contextTheme}`),\n    popupStyle: Object.assign({\n      zIndex\n    }, props.popupStyle)\n  })));\n};\nexport default SubMenu;","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n  var t = {};\n  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n  }\n  return t;\n};\nimport * as React from 'react';\nimport { forwardRef } from 'react';\nimport EllipsisOutlined from \"@ant-design/icons/es/icons/EllipsisOutlined\";\nimport classNames from 'classnames';\nimport RcMenu from 'rc-menu';\nimport { useEvent } from 'rc-util';\nimport omit from \"rc-util/es/omit\";\nimport initCollapseMotion from '../_util/motion';\nimport { cloneElement } from '../_util/reactNode';\nimport { devUseWarning } from '../_util/warning';\nimport { ConfigContext } from '../config-provider';\nimport useCSSVarCls from '../config-provider/hooks/useCSSVarCls';\nimport MenuContext from './MenuContext';\nimport Divider from './MenuDivider';\nimport MenuItem from './MenuItem';\nimport OverrideContext from './OverrideContext';\nimport useStyle from './style';\nimport SubMenu from './SubMenu';\nfunction isEmptyIcon(icon) {\n  return icon === null || icon === false;\n}\nconst MENU_COMPONENTS = {\n  item: MenuItem,\n  submenu: SubMenu,\n  divider: Divider\n};\nconst InternalMenu = /*#__PURE__*/forwardRef((props, ref) => {\n  var _a;\n  const override = React.useContext(OverrideContext);\n  const overrideObj = override || {};\n  const {\n    getPrefixCls,\n    getPopupContainer,\n    direction,\n    menu\n  } = React.useContext(ConfigContext);\n  const rootPrefixCls = getPrefixCls();\n  const {\n      prefixCls: customizePrefixCls,\n      className,\n      style,\n      theme = 'light',\n      expandIcon,\n      _internalDisableMenuItemTitleTooltip,\n      inlineCollapsed,\n      siderCollapsed,\n      rootClassName,\n      mode,\n      selectable,\n      onClick,\n      overflowedIndicatorPopupClassName\n    } = props,\n    restProps = __rest(props, [\"prefixCls\", \"className\", \"style\", \"theme\", \"expandIcon\", \"_internalDisableMenuItemTitleTooltip\", \"inlineCollapsed\", \"siderCollapsed\", \"rootClassName\", \"mode\", \"selectable\", \"onClick\", \"overflowedIndicatorPopupClassName\"]);\n  const passedProps = omit(restProps, ['collapsedWidth']);\n  // ======================== Warning ==========================\n  if (process.env.NODE_ENV !== 'production') {\n    const warning = devUseWarning('Menu');\n    process.env.NODE_ENV !== \"production\" ? warning(!('inlineCollapsed' in props && mode !== 'inline'), 'usage', '`inlineCollapsed` should only be used when `mode` is inline.') : void 0;\n    process.env.NODE_ENV !== \"production\" ? warning(!(props.siderCollapsed !== undefined && 'inlineCollapsed' in props), 'usage', '`inlineCollapsed` not control Menu under Sider. Should set `collapsed` on Sider instead.') : void 0;\n    warning.deprecated('items' in props && !props.children, 'children', 'items');\n  }\n  (_a = overrideObj.validator) === null || _a === void 0 ? void 0 : _a.call(overrideObj, {\n    mode\n  });\n  // ========================== Click ==========================\n  // Tell dropdown that item clicked\n  const onItemClick = useEvent(function () {\n    var _a;\n    onClick === null || onClick === void 0 ? void 0 : onClick.apply(void 0, arguments);\n    (_a = overrideObj.onClick) === null || _a === void 0 ? void 0 : _a.call(overrideObj);\n  });\n  // ========================== Mode ===========================\n  const mergedMode = overrideObj.mode || mode;\n  // ======================= Selectable ========================\n  const mergedSelectable = selectable !== null && selectable !== void 0 ? selectable : overrideObj.selectable;\n  // ======================== Collapsed ========================\n  // Inline Collapsed\n  const mergedInlineCollapsed = React.useMemo(() => {\n    if (siderCollapsed !== undefined) {\n      return siderCollapsed;\n    }\n    return inlineCollapsed;\n  }, [inlineCollapsed, siderCollapsed]);\n  const defaultMotions = {\n    horizontal: {\n      motionName: `${rootPrefixCls}-slide-up`\n    },\n    inline: initCollapseMotion(rootPrefixCls),\n    other: {\n      motionName: `${rootPrefixCls}-zoom-big`\n    }\n  };\n  const prefixCls = getPrefixCls('menu', customizePrefixCls || overrideObj.prefixCls);\n  const rootCls = useCSSVarCls(prefixCls);\n  const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls, rootCls, !override);\n  const menuClassName = classNames(`${prefixCls}-${theme}`, menu === null || menu === void 0 ? void 0 : menu.className, className);\n  // ====================== ExpandIcon ========================\n  const mergedExpandIcon = React.useMemo(() => {\n    var _a, _b;\n    if (typeof expandIcon === 'function' || isEmptyIcon(expandIcon)) {\n      return expandIcon || null;\n    }\n    if (typeof overrideObj.expandIcon === 'function' || isEmptyIcon(overrideObj.expandIcon)) {\n      return overrideObj.expandIcon || null;\n    }\n    if (typeof (menu === null || menu === void 0 ? void 0 : menu.expandIcon) === 'function' || isEmptyIcon(menu === null || menu === void 0 ? void 0 : menu.expandIcon)) {\n      return (menu === null || menu === void 0 ? void 0 : menu.expandIcon) || null;\n    }\n    const mergedIcon = (_a = expandIcon !== null && expandIcon !== void 0 ? expandIcon : overrideObj === null || overrideObj === void 0 ? void 0 : overrideObj.expandIcon) !== null && _a !== void 0 ? _a : menu === null || menu === void 0 ? void 0 : menu.expandIcon;\n    return cloneElement(mergedIcon, {\n      className: classNames(`${prefixCls}-submenu-expand-icon`, /*#__PURE__*/React.isValidElement(mergedIcon) ? (_b = mergedIcon.props) === null || _b === void 0 ? void 0 : _b.className : undefined)\n    });\n  }, [expandIcon, overrideObj === null || overrideObj === void 0 ? void 0 : overrideObj.expandIcon, menu === null || menu === void 0 ? void 0 : menu.expandIcon, prefixCls]);\n  // ======================== Context ==========================\n  const contextValue = React.useMemo(() => ({\n    prefixCls,\n    inlineCollapsed: mergedInlineCollapsed || false,\n    direction,\n    firstLevel: true,\n    theme,\n    mode: mergedMode,\n    disableMenuItemTitleTooltip: _internalDisableMenuItemTitleTooltip\n  }), [prefixCls, mergedInlineCollapsed, direction, _internalDisableMenuItemTitleTooltip, theme]);\n  // ========================= Render ==========================\n  return wrapCSSVar(/*#__PURE__*/React.createElement(OverrideContext.Provider, {\n    value: null\n  }, /*#__PURE__*/React.createElement(MenuContext.Provider, {\n    value: contextValue\n  }, /*#__PURE__*/React.createElement(RcMenu, Object.assign({\n    getPopupContainer: getPopupContainer,\n    overflowedIndicator: /*#__PURE__*/React.createElement(EllipsisOutlined, null),\n    overflowedIndicatorPopupClassName: classNames(prefixCls, `${prefixCls}-${theme}`, overflowedIndicatorPopupClassName),\n    mode: mergedMode,\n    selectable: mergedSelectable,\n    onClick: onItemClick\n  }, passedProps, {\n    inlineCollapsed: mergedInlineCollapsed,\n    style: Object.assign(Object.assign({}, menu === null || menu === void 0 ? void 0 : menu.style), style),\n    className: menuClassName,\n    prefixCls: prefixCls,\n    direction: direction,\n    defaultMotions: defaultMotions,\n    expandIcon: mergedExpandIcon,\n    ref: ref,\n    rootClassName: classNames(rootClassName, hashId, overrideObj.rootClassName, cssVarCls, rootCls),\n    _internalComponents: MENU_COMPONENTS\n  })))));\n});\nexport default InternalMenu;","\"use client\";\n\nimport * as React from 'react';\nimport { forwardRef, useImperativeHandle, useRef } from 'react';\nimport { ItemGroup } from 'rc-menu';\nimport { SiderContext } from '../layout/Sider';\nimport InternalMenu from './menu';\nimport MenuDivider from './MenuDivider';\nimport Item from './MenuItem';\nimport SubMenu from './SubMenu';\nconst Menu = /*#__PURE__*/forwardRef((props, ref) => {\n  const menuRef = useRef(null);\n  const context = React.useContext(SiderContext);\n  useImperativeHandle(ref, () => ({\n    menu: menuRef.current,\n    focus: options => {\n      var _a;\n      (_a = menuRef.current) === null || _a === void 0 ? void 0 : _a.focus(options);\n    }\n  }));\n  return /*#__PURE__*/React.createElement(InternalMenu, Object.assign({\n    ref: menuRef\n  }, props, context));\n});\nMenu.Item = Item;\nMenu.SubMenu = SubMenu;\nMenu.Divider = MenuDivider;\nMenu.ItemGroup = ItemGroup;\nif (process.env.NODE_ENV !== 'production') {\n  Menu.displayName = 'Menu';\n}\nexport default Menu;","import { Keyframes } from '@ant-design/cssinjs';\nimport { initMotion } from './motion';\nexport const moveDownIn = new Keyframes('antMoveDownIn', {\n  '0%': {\n    transform: 'translate3d(0, 100%, 0)',\n    transformOrigin: '0 0',\n    opacity: 0\n  },\n  '100%': {\n    transform: 'translate3d(0, 0, 0)',\n    transformOrigin: '0 0',\n    opacity: 1\n  }\n});\nexport const moveDownOut = new Keyframes('antMoveDownOut', {\n  '0%': {\n    transform: 'translate3d(0, 0, 0)',\n    transformOrigin: '0 0',\n    opacity: 1\n  },\n  '100%': {\n    transform: 'translate3d(0, 100%, 0)',\n    transformOrigin: '0 0',\n    opacity: 0\n  }\n});\nexport const moveLeftIn = new Keyframes('antMoveLeftIn', {\n  '0%': {\n    transform: 'translate3d(-100%, 0, 0)',\n    transformOrigin: '0 0',\n    opacity: 0\n  },\n  '100%': {\n    transform: 'translate3d(0, 0, 0)',\n    transformOrigin: '0 0',\n    opacity: 1\n  }\n});\nexport const moveLeftOut = new Keyframes('antMoveLeftOut', {\n  '0%': {\n    transform: 'translate3d(0, 0, 0)',\n    transformOrigin: '0 0',\n    opacity: 1\n  },\n  '100%': {\n    transform: 'translate3d(-100%, 0, 0)',\n    transformOrigin: '0 0',\n    opacity: 0\n  }\n});\nexport const moveRightIn = new Keyframes('antMoveRightIn', {\n  '0%': {\n    transform: 'translate3d(100%, 0, 0)',\n    transformOrigin: '0 0',\n    opacity: 0\n  },\n  '100%': {\n    transform: 'translate3d(0, 0, 0)',\n    transformOrigin: '0 0',\n    opacity: 1\n  }\n});\nexport const moveRightOut = new Keyframes('antMoveRightOut', {\n  '0%': {\n    transform: 'translate3d(0, 0, 0)',\n    transformOrigin: '0 0',\n    opacity: 1\n  },\n  '100%': {\n    transform: 'translate3d(100%, 0, 0)',\n    transformOrigin: '0 0',\n    opacity: 0\n  }\n});\nexport const moveUpIn = new Keyframes('antMoveUpIn', {\n  '0%': {\n    transform: 'translate3d(0, -100%, 0)',\n    transformOrigin: '0 0',\n    opacity: 0\n  },\n  '100%': {\n    transform: 'translate3d(0, 0, 0)',\n    transformOrigin: '0 0',\n    opacity: 1\n  }\n});\nexport const moveUpOut = new Keyframes('antMoveUpOut', {\n  '0%': {\n    transform: 'translate3d(0, 0, 0)',\n    transformOrigin: '0 0',\n    opacity: 1\n  },\n  '100%': {\n    transform: 'translate3d(0, -100%, 0)',\n    transformOrigin: '0 0',\n    opacity: 0\n  }\n});\nconst moveMotion = {\n  'move-up': {\n    inKeyframes: moveUpIn,\n    outKeyframes: moveUpOut\n  },\n  'move-down': {\n    inKeyframes: moveDownIn,\n    outKeyframes: moveDownOut\n  },\n  'move-left': {\n    inKeyframes: moveLeftIn,\n    outKeyframes: moveLeftOut\n  },\n  'move-right': {\n    inKeyframes: moveRightIn,\n    outKeyframes: moveRightOut\n  }\n};\nexport const initMoveMotion = (token, motionName) => {\n  const {\n    antCls\n  } = token;\n  const motionCls = `${antCls}-${motionName}`;\n  const {\n    inKeyframes,\n    outKeyframes\n  } = moveMotion[motionName];\n  return [initMotion(motionCls, inKeyframes, outKeyframes, token.motionDurationMid), {\n    [`\n        ${motionCls}-enter,\n        ${motionCls}-appear\n      `]: {\n      opacity: 0,\n      animationTimingFunction: token.motionEaseOutCirc\n    },\n    [`${motionCls}-leave`]: {\n      animationTimingFunction: token.motionEaseInOutCirc\n    }\n  }];\n};","const genStatusStyle = token => {\n  const {\n    componentCls,\n    menuCls,\n    colorError,\n    colorTextLightSolid\n  } = token;\n  const itemCls = `${menuCls}-item`;\n  return {\n    [`${componentCls}, ${componentCls}-menu-submenu`]: {\n      [`${menuCls} ${itemCls}`]: {\n        [`&${itemCls}-danger:not(${itemCls}-disabled)`]: {\n          color: colorError,\n          '&:hover': {\n            color: colorTextLightSolid,\n            backgroundColor: colorError\n          }\n        }\n      }\n    }\n  };\n};\nexport default genStatusStyle;","import { unit } from '@ant-design/cssinjs';\nimport { genFocusStyle, resetComponent } from '../../style';\nimport { initMoveMotion, initSlideMotion, initZoomMotion, slideDownIn, slideDownOut, slideUpIn, slideUpOut } from '../../style/motion';\nimport getArrowStyle, { getArrowOffsetToken } from '../../style/placementArrow';\nimport { getArrowToken } from '../../style/roundedArrow';\nimport { genStyleHooks, mergeToken } from '../../theme/internal';\nimport genStatusStyle from './status';\n// =============================== Base ===============================\nconst genBaseStyle = token => {\n  const {\n    componentCls,\n    menuCls,\n    zIndexPopup,\n    dropdownArrowDistance,\n    sizePopupArrow,\n    antCls,\n    iconCls,\n    motionDurationMid,\n    paddingBlock,\n    fontSize,\n    dropdownEdgeChildPadding,\n    colorTextDisabled,\n    fontSizeIcon,\n    controlPaddingHorizontal,\n    colorBgElevated\n  } = token;\n  return [{\n    [componentCls]: {\n      position: 'absolute',\n      top: -9999,\n      left: {\n        _skip_check_: true,\n        value: -9999\n      },\n      zIndex: zIndexPopup,\n      display: 'block',\n      // A placeholder out of dropdown visible range to avoid close when user moving\n      '&::before': {\n        position: 'absolute',\n        insetBlock: token.calc(sizePopupArrow).div(2).sub(dropdownArrowDistance).equal(),\n        // insetInlineStart: -7, // FIXME: Seems not work for hidden element\n        zIndex: -9999,\n        opacity: 0.0001,\n        content: '\"\"'\n      },\n      [`&-trigger${antCls}-btn`]: {\n        [`& > ${iconCls}-down, & > ${antCls}-btn-icon > ${iconCls}-down`]: {\n          fontSize: fontSizeIcon\n        }\n      },\n      [`${componentCls}-wrap`]: {\n        position: 'relative',\n        [`${antCls}-btn > ${iconCls}-down`]: {\n          fontSize: fontSizeIcon\n        },\n        [`${iconCls}-down::before`]: {\n          transition: `transform ${motionDurationMid}`\n        }\n      },\n      [`${componentCls}-wrap-open`]: {\n        [`${iconCls}-down::before`]: {\n          transform: `rotate(180deg)`\n        }\n      },\n      [`\n        &-hidden,\n        &-menu-hidden,\n        &-menu-submenu-hidden\n      `]: {\n        display: 'none'\n      },\n      // =============================================================\n      // ==                         Motion                          ==\n      // =============================================================\n      // When position is not enough for dropdown, the placement will revert.\n      // We will handle this with revert motion name.\n      [`&${antCls}-slide-down-enter${antCls}-slide-down-enter-active${componentCls}-placement-bottomLeft,\n          &${antCls}-slide-down-appear${antCls}-slide-down-appear-active${componentCls}-placement-bottomLeft,\n          &${antCls}-slide-down-enter${antCls}-slide-down-enter-active${componentCls}-placement-bottom,\n          &${antCls}-slide-down-appear${antCls}-slide-down-appear-active${componentCls}-placement-bottom,\n          &${antCls}-slide-down-enter${antCls}-slide-down-enter-active${componentCls}-placement-bottomRight,\n          &${antCls}-slide-down-appear${antCls}-slide-down-appear-active${componentCls}-placement-bottomRight`]: {\n        animationName: slideUpIn\n      },\n      [`&${antCls}-slide-up-enter${antCls}-slide-up-enter-active${componentCls}-placement-topLeft,\n          &${antCls}-slide-up-appear${antCls}-slide-up-appear-active${componentCls}-placement-topLeft,\n          &${antCls}-slide-up-enter${antCls}-slide-up-enter-active${componentCls}-placement-top,\n          &${antCls}-slide-up-appear${antCls}-slide-up-appear-active${componentCls}-placement-top,\n          &${antCls}-slide-up-enter${antCls}-slide-up-enter-active${componentCls}-placement-topRight,\n          &${antCls}-slide-up-appear${antCls}-slide-up-appear-active${componentCls}-placement-topRight`]: {\n        animationName: slideDownIn\n      },\n      [`&${antCls}-slide-down-leave${antCls}-slide-down-leave-active${componentCls}-placement-bottomLeft,\n          &${antCls}-slide-down-leave${antCls}-slide-down-leave-active${componentCls}-placement-bottom,\n          &${antCls}-slide-down-leave${antCls}-slide-down-leave-active${componentCls}-placement-bottomRight`]: {\n        animationName: slideUpOut\n      },\n      [`&${antCls}-slide-up-leave${antCls}-slide-up-leave-active${componentCls}-placement-topLeft,\n          &${antCls}-slide-up-leave${antCls}-slide-up-leave-active${componentCls}-placement-top,\n          &${antCls}-slide-up-leave${antCls}-slide-up-leave-active${componentCls}-placement-topRight`]: {\n        animationName: slideDownOut\n      }\n    }\n  },\n  // =============================================================\n  // ==                        Arrow style                      ==\n  // =============================================================\n  getArrowStyle(token, colorBgElevated, {\n    arrowPlacement: {\n      top: true,\n      bottom: true\n    }\n  }), {\n    // =============================================================\n    // ==                          Menu                           ==\n    // =============================================================\n    [`${componentCls} ${menuCls}`]: {\n      position: 'relative',\n      margin: 0\n    },\n    [`${menuCls}-submenu-popup`]: {\n      position: 'absolute',\n      zIndex: zIndexPopup,\n      background: 'transparent',\n      boxShadow: 'none',\n      transformOrigin: '0 0',\n      'ul, li': {\n        listStyle: 'none',\n        margin: 0\n      }\n    },\n    [`${componentCls}, ${componentCls}-menu-submenu`]: Object.assign(Object.assign({}, resetComponent(token)), {\n      [menuCls]: Object.assign(Object.assign({\n        padding: dropdownEdgeChildPadding,\n        listStyleType: 'none',\n        backgroundColor: colorBgElevated,\n        backgroundClip: 'padding-box',\n        borderRadius: token.borderRadiusLG,\n        outline: 'none',\n        boxShadow: token.boxShadowSecondary\n      }, genFocusStyle(token)), {\n        '&:empty': {\n          padding: 0,\n          boxShadow: 'none'\n        },\n        [`${menuCls}-item-group-title`]: {\n          padding: `${unit(paddingBlock)} ${unit(controlPaddingHorizontal)}`,\n          color: token.colorTextDescription,\n          transition: `all ${motionDurationMid}`\n        },\n        // ======================= Item Content =======================\n        [`${menuCls}-item`]: {\n          position: 'relative',\n          display: 'flex',\n          alignItems: 'center'\n        },\n        [`${menuCls}-item-icon`]: {\n          minWidth: fontSize,\n          marginInlineEnd: token.marginXS,\n          fontSize: token.fontSizeSM\n        },\n        [`${menuCls}-title-content`]: {\n          display: 'flex',\n          alignItems: 'center',\n          flex: 'auto',\n          '> a': {\n            color: 'inherit',\n            transition: `all ${motionDurationMid}`,\n            '&:hover': {\n              color: 'inherit'\n            },\n            '&::after': {\n              position: 'absolute',\n              inset: 0,\n              content: '\"\"'\n            }\n          },\n          [`${menuCls}-item-extra`]: {\n            paddingInlineStart: token.padding,\n            marginInlineStart: 'auto',\n            fontSize: token.fontSizeSM,\n            color: token.colorTextDescription\n          }\n        },\n        // =========================== Item ===========================\n        [`${menuCls}-item, ${menuCls}-submenu-title`]: Object.assign(Object.assign({\n          display: 'flex',\n          margin: 0,\n          padding: `${unit(paddingBlock)} ${unit(controlPaddingHorizontal)}`,\n          color: token.colorText,\n          fontWeight: 'normal',\n          fontSize,\n          lineHeight: token.lineHeight,\n          cursor: 'pointer',\n          transition: `all ${motionDurationMid}`,\n          borderRadius: token.borderRadiusSM,\n          '&:hover, &-active': {\n            backgroundColor: token.controlItemBgHover\n          }\n        }, genFocusStyle(token)), {\n          '&-selected': {\n            color: token.colorPrimary,\n            backgroundColor: token.controlItemBgActive,\n            '&:hover, &-active': {\n              backgroundColor: token.controlItemBgActiveHover\n            }\n          },\n          '&-disabled': {\n            color: colorTextDisabled,\n            cursor: 'not-allowed',\n            '&:hover': {\n              color: colorTextDisabled,\n              backgroundColor: colorBgElevated,\n              cursor: 'not-allowed'\n            },\n            a: {\n              pointerEvents: 'none'\n            }\n          },\n          '&-divider': {\n            height: 1,\n            // By design\n            margin: `${unit(token.marginXXS)} 0`,\n            overflow: 'hidden',\n            lineHeight: 0,\n            backgroundColor: token.colorSplit\n          },\n          [`${componentCls}-menu-submenu-expand-icon`]: {\n            position: 'absolute',\n            insetInlineEnd: token.paddingXS,\n            [`${componentCls}-menu-submenu-arrow-icon`]: {\n              marginInlineEnd: '0 !important',\n              color: token.colorTextDescription,\n              fontSize: fontSizeIcon,\n              fontStyle: 'normal'\n            }\n          }\n        }),\n        [`${menuCls}-item-group-list`]: {\n          margin: `0 ${unit(token.marginXS)}`,\n          padding: 0,\n          listStyle: 'none'\n        },\n        [`${menuCls}-submenu-title`]: {\n          paddingInlineEnd: token.calc(controlPaddingHorizontal).add(token.fontSizeSM).equal()\n        },\n        [`${menuCls}-submenu-vertical`]: {\n          position: 'relative'\n        },\n        [`${menuCls}-submenu${menuCls}-submenu-disabled ${componentCls}-menu-submenu-title`]: {\n          [`&, ${componentCls}-menu-submenu-arrow-icon`]: {\n            color: colorTextDisabled,\n            backgroundColor: colorBgElevated,\n            cursor: 'not-allowed'\n          }\n        },\n        // https://github.com/ant-design/ant-design/issues/19264\n        [`${menuCls}-submenu-selected ${componentCls}-menu-submenu-title`]: {\n          color: token.colorPrimary\n        }\n      })\n    })\n  },\n  // Follow code may reuse in other components\n  [initSlideMotion(token, 'slide-up'), initSlideMotion(token, 'slide-down'), initMoveMotion(token, 'move-up'), initMoveMotion(token, 'move-down'), initZoomMotion(token, 'zoom-big')]];\n};\n// ============================== Export ==============================\nexport const prepareComponentToken = token => Object.assign(Object.assign({\n  zIndexPopup: token.zIndexPopupBase + 50,\n  paddingBlock: (token.controlHeight - token.fontSize * token.lineHeight) / 2\n}, getArrowOffsetToken({\n  contentRadius: token.borderRadiusLG,\n  limitVerticalRadius: true\n})), getArrowToken(token));\nexport default genStyleHooks('Dropdown', token => {\n  const {\n    marginXXS,\n    sizePopupArrow,\n    paddingXXS,\n    componentCls\n  } = token;\n  const dropdownToken = mergeToken(token, {\n    menuCls: `${componentCls}-menu`,\n    dropdownArrowDistance: token.calc(sizePopupArrow).div(2).add(marginXXS).equal(),\n    dropdownEdgeChildPadding: paddingXXS\n  });\n  return [genBaseStyle(dropdownToken), genStatusStyle(dropdownToken)];\n}, prepareComponentToken, {\n  resetStyle: false\n});","\"use client\";\n\nimport * as React from 'react';\nimport RightOutlined from \"@ant-design/icons/es/icons/RightOutlined\";\nimport classNames from 'classnames';\nimport RcDropdown from 'rc-dropdown';\nimport { useEvent } from 'rc-util';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport omit from \"rc-util/es/omit\";\nimport { useZIndex } from '../_util/hooks/useZIndex';\nimport getPlacements from '../_util/placements';\nimport genPurePanel from '../_util/PurePanel';\nimport { cloneElement } from '../_util/reactNode';\nimport { devUseWarning } from '../_util/warning';\nimport zIndexContext from '../_util/zindexContext';\nimport { ConfigContext } from '../config-provider';\nimport useCSSVarCls from '../config-provider/hooks/useCSSVarCls';\nimport Menu from '../menu';\nimport { OverrideProvider } from '../menu/OverrideContext';\nimport { useToken } from '../theme/internal';\nimport useStyle from './style';\nconst _Placements = ['topLeft', 'topCenter', 'topRight', 'bottomLeft', 'bottomCenter', 'bottomRight', 'top', 'bottom'];\nconst Dropdown = props => {\n  var _a;\n  const {\n    menu,\n    arrow,\n    prefixCls: customizePrefixCls,\n    children,\n    trigger,\n    disabled,\n    dropdownRender,\n    getPopupContainer,\n    overlayClassName,\n    rootClassName,\n    overlayStyle,\n    open,\n    onOpenChange,\n    // Deprecated\n    visible,\n    onVisibleChange,\n    mouseEnterDelay = 0.15,\n    mouseLeaveDelay = 0.1,\n    autoAdjustOverflow = true,\n    placement = '',\n    overlay,\n    transitionName\n  } = props;\n  const {\n    getPopupContainer: getContextPopupContainer,\n    getPrefixCls,\n    direction,\n    dropdown\n  } = React.useContext(ConfigContext);\n  // Warning for deprecated usage\n  const warning = devUseWarning('Dropdown');\n  if (process.env.NODE_ENV !== 'production') {\n    [['visible', 'open'], ['onVisibleChange', 'onOpenChange']].forEach(_ref => {\n      let [deprecatedName, newName] = _ref;\n      warning.deprecated(!(deprecatedName in props), deprecatedName, newName);\n    });\n    warning.deprecated(!('overlay' in props), 'overlay', 'menu');\n  }\n  const memoTransitionName = React.useMemo(() => {\n    const rootPrefixCls = getPrefixCls();\n    if (transitionName !== undefined) {\n      return transitionName;\n    }\n    if (placement.includes('top')) {\n      return `${rootPrefixCls}-slide-down`;\n    }\n    return `${rootPrefixCls}-slide-up`;\n  }, [getPrefixCls, placement, transitionName]);\n  const memoPlacement = React.useMemo(() => {\n    if (!placement) {\n      return direction === 'rtl' ? 'bottomRight' : 'bottomLeft';\n    }\n    if (placement.includes('Center')) {\n      return placement.slice(0, placement.indexOf('Center'));\n    }\n    return placement;\n  }, [placement, direction]);\n  if (process.env.NODE_ENV !== 'production') {\n    if (placement.includes('Center')) {\n      const newPlacement = placement.slice(0, placement.indexOf('Center'));\n      process.env.NODE_ENV !== \"production\" ? warning(!placement.includes('Center'), 'deprecated', `You are using '${placement}' placement in Dropdown, which is deprecated. Try to use '${newPlacement}' instead.`) : void 0;\n    }\n    [['visible', 'open'], ['onVisibleChange', 'onOpenChange']].forEach(_ref2 => {\n      let [deprecatedName, newName] = _ref2;\n      warning.deprecated(!(deprecatedName in props), deprecatedName, newName);\n    });\n  }\n  const prefixCls = getPrefixCls('dropdown', customizePrefixCls);\n  const rootCls = useCSSVarCls(prefixCls);\n  const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls, rootCls);\n  const [, token] = useToken();\n  const child = React.Children.only(children);\n  const dropdownTrigger = cloneElement(child, {\n    className: classNames(`${prefixCls}-trigger`, {\n      [`${prefixCls}-rtl`]: direction === 'rtl'\n    }, child.props.className),\n    disabled: (_a = child.props.disabled) !== null && _a !== void 0 ? _a : disabled\n  });\n  const triggerActions = disabled ? [] : trigger;\n  const alignPoint = !!(triggerActions === null || triggerActions === void 0 ? void 0 : triggerActions.includes('contextMenu'));\n  // =========================== Open ============================\n  const [mergedOpen, setOpen] = useMergedState(false, {\n    value: open !== null && open !== void 0 ? open : visible\n  });\n  const onInnerOpenChange = useEvent(nextOpen => {\n    onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(nextOpen, {\n      source: 'trigger'\n    });\n    onVisibleChange === null || onVisibleChange === void 0 ? void 0 : onVisibleChange(nextOpen);\n    setOpen(nextOpen);\n  });\n  // =========================== Overlay ============================\n  const overlayClassNameCustomized = classNames(overlayClassName, rootClassName, hashId, cssVarCls, rootCls, dropdown === null || dropdown === void 0 ? void 0 : dropdown.className, {\n    [`${prefixCls}-rtl`]: direction === 'rtl'\n  });\n  const builtinPlacements = getPlacements({\n    arrowPointAtCenter: typeof arrow === 'object' && arrow.pointAtCenter,\n    autoAdjustOverflow,\n    offset: token.marginXXS,\n    arrowWidth: arrow ? token.sizePopupArrow : 0,\n    borderRadius: token.borderRadius\n  });\n  const onMenuClick = React.useCallback(() => {\n    if ((menu === null || menu === void 0 ? void 0 : menu.selectable) && (menu === null || menu === void 0 ? void 0 : menu.multiple)) {\n      return;\n    }\n    onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(false, {\n      source: 'menu'\n    });\n    setOpen(false);\n  }, [menu === null || menu === void 0 ? void 0 : menu.selectable, menu === null || menu === void 0 ? void 0 : menu.multiple]);\n  const renderOverlay = () => {\n    // rc-dropdown already can process the function of overlay, but we have check logic here.\n    // So we need render the element to check and pass back to rc-dropdown.\n    let overlayNode;\n    if (menu === null || menu === void 0 ? void 0 : menu.items) {\n      overlayNode = /*#__PURE__*/React.createElement(Menu, Object.assign({}, menu));\n    } else if (typeof overlay === 'function') {\n      overlayNode = overlay();\n    } else {\n      overlayNode = overlay;\n    }\n    if (dropdownRender) {\n      overlayNode = dropdownRender(overlayNode);\n    }\n    overlayNode = React.Children.only(typeof overlayNode === 'string' ? /*#__PURE__*/React.createElement(\"span\", null, overlayNode) : overlayNode);\n    return /*#__PURE__*/React.createElement(OverrideProvider, {\n      prefixCls: `${prefixCls}-menu`,\n      rootClassName: classNames(cssVarCls, rootCls),\n      expandIcon: /*#__PURE__*/React.createElement(\"span\", {\n        className: `${prefixCls}-menu-submenu-arrow`\n      }, /*#__PURE__*/React.createElement(RightOutlined, {\n        className: `${prefixCls}-menu-submenu-arrow-icon`\n      })),\n      mode: \"vertical\",\n      selectable: false,\n      onClick: onMenuClick,\n      validator: _ref3 => {\n        let {\n          mode\n        } = _ref3;\n        // Warning if use other mode\n        process.env.NODE_ENV !== \"production\" ? warning(!mode || mode === 'vertical', 'usage', `mode=\"${mode}\" is not supported for Dropdown's Menu.`) : void 0;\n      }\n    }, overlayNode);\n  };\n  // =========================== zIndex ============================\n  const [zIndex, contextZIndex] = useZIndex('Dropdown', overlayStyle === null || overlayStyle === void 0 ? void 0 : overlayStyle.zIndex);\n  // ============================ Render ============================\n  let renderNode = /*#__PURE__*/React.createElement(RcDropdown, Object.assign({\n    alignPoint: alignPoint\n  }, omit(props, ['rootClassName']), {\n    mouseEnterDelay: mouseEnterDelay,\n    mouseLeaveDelay: mouseLeaveDelay,\n    visible: mergedOpen,\n    builtinPlacements: builtinPlacements,\n    arrow: !!arrow,\n    overlayClassName: overlayClassNameCustomized,\n    prefixCls: prefixCls,\n    getPopupContainer: getPopupContainer || getContextPopupContainer,\n    transitionName: memoTransitionName,\n    trigger: triggerActions,\n    overlay: renderOverlay,\n    placement: memoPlacement,\n    onVisibleChange: onInnerOpenChange,\n    overlayStyle: Object.assign(Object.assign(Object.assign({}, dropdown === null || dropdown === void 0 ? void 0 : dropdown.style), overlayStyle), {\n      zIndex\n    })\n  }), dropdownTrigger);\n  if (zIndex) {\n    renderNode = /*#__PURE__*/React.createElement(zIndexContext.Provider, {\n      value: contextZIndex\n    }, renderNode);\n  }\n  return wrapCSSVar(renderNode);\n};\nfunction postPureProps(props) {\n  return Object.assign(Object.assign({}, props), {\n    align: {\n      overflow: {\n        adjustX: false,\n        adjustY: false\n      }\n    }\n  });\n}\n// We don't care debug panel\nconst PurePanel = genPurePanel(Dropdown, 'dropdown', prefixCls => prefixCls, postPureProps);\n/* istanbul ignore next */\nconst WrapPurePanel = props => (/*#__PURE__*/React.createElement(PurePanel, Object.assign({}, props), /*#__PURE__*/React.createElement(\"span\", null)));\nDropdown._InternalPanelDoNotUseOrYouWillBeFired = WrapPurePanel;\nif (process.env.NODE_ENV !== 'production') {\n  Dropdown.displayName = 'Dropdown';\n}\nexport default Dropdown;","export function isPresetSize(size) {\n  return ['small', 'middle', 'large'].includes(size);\n}\nexport function isValidGapNumber(size) {\n  if (!size) {\n    // The case of size = 0 is deliberately excluded here, because the default value of the gap attribute in CSS is 0, so if the user passes 0 in, we can directly ignore it.\n    return false;\n  }\n  return typeof size === 'number' && !Number.isNaN(size);\n}","import React from 'react';\nexport const SpaceContext = /*#__PURE__*/React.createContext({\n  latestIndex: 0\n});\nexport const SpaceContextProvider = SpaceContext.Provider;","\"use client\";\n\nimport * as React from 'react';\nimport { SpaceContext } from './context';\nconst Item = _ref => {\n  let {\n    className,\n    index,\n    children,\n    split,\n    style\n  } = _ref;\n  const {\n    latestIndex\n  } = React.useContext(SpaceContext);\n  if (children === null || children === undefined) {\n    return null;\n  }\n  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", {\n    className: className,\n    style: style\n  }, children), index < latestIndex && split && /*#__PURE__*/React.createElement(\"span\", {\n    className: `${className}-split`\n  }, split));\n};\nexport default Item;","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n  var t = {};\n  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n  }\n  return t;\n};\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport { isPresetSize, isValidGapNumber } from '../_util/gapSize';\nimport { ConfigContext } from '../config-provider';\nimport Compact from './Compact';\nimport { SpaceContextProvider } from './context';\nimport Item from './Item';\nimport useStyle from './style';\nexport { SpaceContext } from './context';\nconst InternalSpace = /*#__PURE__*/React.forwardRef((props, ref) => {\n  var _a, _b, _c;\n  const {\n    getPrefixCls,\n    space,\n    direction: directionConfig\n  } = React.useContext(ConfigContext);\n  const {\n      size = (_a = space === null || space === void 0 ? void 0 : space.size) !== null && _a !== void 0 ? _a : 'small',\n      align,\n      className,\n      rootClassName,\n      children,\n      direction = 'horizontal',\n      prefixCls: customizePrefixCls,\n      split,\n      style,\n      wrap = false,\n      classNames: customClassNames,\n      styles\n    } = props,\n    otherProps = __rest(props, [\"size\", \"align\", \"className\", \"rootClassName\", \"children\", \"direction\", \"prefixCls\", \"split\", \"style\", \"wrap\", \"classNames\", \"styles\"]);\n  const [horizontalSize, verticalSize] = Array.isArray(size) ? size : [size, size];\n  const isPresetVerticalSize = isPresetSize(verticalSize);\n  const isPresetHorizontalSize = isPresetSize(horizontalSize);\n  const isValidVerticalSize = isValidGapNumber(verticalSize);\n  const isValidHorizontalSize = isValidGapNumber(horizontalSize);\n  const childNodes = toArray(children, {\n    keepEmpty: true\n  });\n  const mergedAlign = align === undefined && direction === 'horizontal' ? 'center' : align;\n  const prefixCls = getPrefixCls('space', customizePrefixCls);\n  const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls);\n  const cls = classNames(prefixCls, space === null || space === void 0 ? void 0 : space.className, hashId, `${prefixCls}-${direction}`, {\n    [`${prefixCls}-rtl`]: directionConfig === 'rtl',\n    [`${prefixCls}-align-${mergedAlign}`]: mergedAlign,\n    [`${prefixCls}-gap-row-${verticalSize}`]: isPresetVerticalSize,\n    [`${prefixCls}-gap-col-${horizontalSize}`]: isPresetHorizontalSize\n  }, className, rootClassName, cssVarCls);\n  const itemClassName = classNames(`${prefixCls}-item`, (_b = customClassNames === null || customClassNames === void 0 ? void 0 : customClassNames.item) !== null && _b !== void 0 ? _b : (_c = space === null || space === void 0 ? void 0 : space.classNames) === null || _c === void 0 ? void 0 : _c.item);\n  // Calculate latest one\n  let latestIndex = 0;\n  const nodes = childNodes.map((child, i) => {\n    var _a, _b;\n    if (child !== null && child !== undefined) {\n      latestIndex = i;\n    }\n    const key = (child === null || child === void 0 ? void 0 : child.key) || `${itemClassName}-${i}`;\n    return /*#__PURE__*/React.createElement(Item, {\n      className: itemClassName,\n      key: key,\n      index: i,\n      split: split,\n      style: (_a = styles === null || styles === void 0 ? void 0 : styles.item) !== null && _a !== void 0 ? _a : (_b = space === null || space === void 0 ? void 0 : space.styles) === null || _b === void 0 ? void 0 : _b.item\n    }, child);\n  });\n  const spaceContext = React.useMemo(() => ({\n    latestIndex\n  }), [latestIndex]);\n  // =========================== Render ===========================\n  if (childNodes.length === 0) {\n    return null;\n  }\n  const gapStyle = {};\n  if (wrap) {\n    gapStyle.flexWrap = 'wrap';\n  }\n  if (!isPresetHorizontalSize && isValidHorizontalSize) {\n    gapStyle.columnGap = horizontalSize;\n  }\n  if (!isPresetVerticalSize && isValidVerticalSize) {\n    gapStyle.rowGap = verticalSize;\n  }\n  return wrapCSSVar(/*#__PURE__*/React.createElement(\"div\", Object.assign({\n    ref: ref,\n    className: cls,\n    style: Object.assign(Object.assign(Object.assign({}, gapStyle), space === null || space === void 0 ? void 0 : space.style), style)\n  }, otherProps), /*#__PURE__*/React.createElement(SpaceContextProvider, {\n    value: spaceContext\n  }, nodes)));\n});\nconst Space = InternalSpace;\nSpace.Compact = Compact;\nif (process.env.NODE_ENV !== 'production') {\n  Space.displayName = 'Space';\n}\nexport default Space;","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n  var t = {};\n  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n  }\n  return t;\n};\nimport * as React from 'react';\nimport EllipsisOutlined from \"@ant-design/icons/es/icons/EllipsisOutlined\";\nimport classNames from 'classnames';\nimport Button from '../button';\nimport { ConfigContext } from '../config-provider';\nimport Space from '../space';\nimport { useCompactItemContext } from '../space/Compact';\nimport Dropdown from './dropdown';\nconst DropdownButton = props => {\n  const {\n    getPopupContainer: getContextPopupContainer,\n    getPrefixCls,\n    direction\n  } = React.useContext(ConfigContext);\n  const {\n      prefixCls: customizePrefixCls,\n      type = 'default',\n      danger,\n      disabled,\n      loading,\n      onClick,\n      htmlType,\n      children,\n      className,\n      menu,\n      arrow,\n      autoFocus,\n      overlay,\n      trigger,\n      align,\n      open,\n      onOpenChange,\n      placement,\n      getPopupContainer,\n      href,\n      icon = /*#__PURE__*/React.createElement(EllipsisOutlined, null),\n      title,\n      buttonsRender = buttons => buttons,\n      mouseEnterDelay,\n      mouseLeaveDelay,\n      overlayClassName,\n      overlayStyle,\n      destroyPopupOnHide,\n      dropdownRender\n    } = props,\n    restProps = __rest(props, [\"prefixCls\", \"type\", \"danger\", \"disabled\", \"loading\", \"onClick\", \"htmlType\", \"children\", \"className\", \"menu\", \"arrow\", \"autoFocus\", \"overlay\", \"trigger\", \"align\", \"open\", \"onOpenChange\", \"placement\", \"getPopupContainer\", \"href\", \"icon\", \"title\", \"buttonsRender\", \"mouseEnterDelay\", \"mouseLeaveDelay\", \"overlayClassName\", \"overlayStyle\", \"destroyPopupOnHide\", \"dropdownRender\"]);\n  const prefixCls = getPrefixCls('dropdown', customizePrefixCls);\n  const buttonPrefixCls = `${prefixCls}-button`;\n  const dropdownProps = {\n    menu,\n    arrow,\n    autoFocus,\n    align,\n    disabled,\n    trigger: disabled ? [] : trigger,\n    onOpenChange,\n    getPopupContainer: getPopupContainer || getContextPopupContainer,\n    mouseEnterDelay,\n    mouseLeaveDelay,\n    overlayClassName,\n    overlayStyle,\n    destroyPopupOnHide,\n    dropdownRender\n  };\n  const {\n    compactSize,\n    compactItemClassnames\n  } = useCompactItemContext(prefixCls, direction);\n  const classes = classNames(buttonPrefixCls, compactItemClassnames, className);\n  if ('overlay' in props) {\n    dropdownProps.overlay = overlay;\n  }\n  if ('open' in props) {\n    dropdownProps.open = open;\n  }\n  if ('placement' in props) {\n    dropdownProps.placement = placement;\n  } else {\n    dropdownProps.placement = direction === 'rtl' ? 'bottomLeft' : 'bottomRight';\n  }\n  const leftButton = /*#__PURE__*/React.createElement(Button, {\n    type: type,\n    danger: danger,\n    disabled: disabled,\n    loading: loading,\n    onClick: onClick,\n    htmlType: htmlType,\n    href: href,\n    title: title\n  }, children);\n  const rightButton = /*#__PURE__*/React.createElement(Button, {\n    type: type,\n    danger: danger,\n    icon: icon\n  });\n  const [leftButtonToRender, rightButtonToRender] = buttonsRender([leftButton, rightButton]);\n  return /*#__PURE__*/React.createElement(Space.Compact, Object.assign({\n    className: classes,\n    size: compactSize,\n    block: true\n  }, restProps), leftButtonToRender, /*#__PURE__*/React.createElement(Dropdown, Object.assign({}, dropdownProps), rightButtonToRender));\n};\nDropdownButton.__ANT_BUTTON = true;\nexport default DropdownButton;","\"use client\";\n\nimport InternalDropdown from './dropdown';\nimport DropdownButton from './dropdown-button';\nconst Dropdown = InternalDropdown;\nDropdown.Button = DropdownButton;\nexport default Dropdown;","import * as React from 'react';\nconst RadioGroupContext = /*#__PURE__*/React.createContext(null);\nexport const RadioGroupContextProvider = RadioGroupContext.Provider;\nexport default RadioGroupContext;\nexport const RadioOptionTypeContext = /*#__PURE__*/React.createContext(null);\nexport const RadioOptionTypeContextProvider = RadioOptionTypeContext.Provider;","import { unit } from '@ant-design/cssinjs';\nimport { genFocusOutline, resetComponent } from '../../style';\nimport { genStyleHooks, mergeToken } from '../../theme/internal';\n// ============================== Styles ==============================\n// styles from RadioGroup only\nconst getGroupRadioStyle = token => {\n  const {\n    componentCls,\n    antCls\n  } = token;\n  const groupPrefixCls = `${componentCls}-group`;\n  return {\n    [groupPrefixCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n      display: 'inline-block',\n      fontSize: 0,\n      // RTL\n      [`&${groupPrefixCls}-rtl`]: {\n        direction: 'rtl'\n      },\n      [`&${groupPrefixCls}-block`]: {\n        display: 'flex'\n      },\n      [`${antCls}-badge ${antCls}-badge-count`]: {\n        zIndex: 1\n      },\n      [`> ${antCls}-badge:not(:first-child) > ${antCls}-button-wrapper`]: {\n        borderInlineStart: 'none'\n      }\n    })\n  };\n};\n// Styles from radio-wrapper\nconst getRadioBasicStyle = token => {\n  const {\n    componentCls,\n    wrapperMarginInlineEnd,\n    colorPrimary,\n    radioSize,\n    motionDurationSlow,\n    motionDurationMid,\n    motionEaseInOutCirc,\n    colorBgContainer,\n    colorBorder,\n    lineWidth,\n    colorBgContainerDisabled,\n    colorTextDisabled,\n    paddingXS,\n    dotColorDisabled,\n    lineType,\n    radioColor,\n    radioBgColor,\n    calc\n  } = token;\n  const radioInnerPrefixCls = `${componentCls}-inner`;\n  const dotPadding = 4;\n  const radioDotDisabledSize = calc(radioSize).sub(calc(dotPadding).mul(2));\n  const radioSizeCalc = calc(1).mul(radioSize).equal({\n    unit: true\n  });\n  return {\n    [`${componentCls}-wrapper`]: Object.assign(Object.assign({}, resetComponent(token)), {\n      display: 'inline-flex',\n      alignItems: 'baseline',\n      marginInlineStart: 0,\n      marginInlineEnd: wrapperMarginInlineEnd,\n      cursor: 'pointer',\n      // RTL\n      [`&${componentCls}-wrapper-rtl`]: {\n        direction: 'rtl'\n      },\n      '&-disabled': {\n        cursor: 'not-allowed',\n        color: token.colorTextDisabled\n      },\n      '&::after': {\n        display: 'inline-block',\n        width: 0,\n        overflow: 'hidden',\n        content: '\"\\\\a0\"'\n      },\n      '&-block': {\n        flex: 1,\n        justifyContent: 'center'\n      },\n      // hashId 在 wrapper 上，只能铺平\n      [`${componentCls}-checked::after`]: {\n        position: 'absolute',\n        insetBlockStart: 0,\n        insetInlineStart: 0,\n        width: '100%',\n        height: '100%',\n        border: `${unit(lineWidth)} ${lineType} ${colorPrimary}`,\n        borderRadius: '50%',\n        visibility: 'hidden',\n        opacity: 0,\n        content: '\"\"'\n      },\n      [componentCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n        position: 'relative',\n        display: 'inline-block',\n        outline: 'none',\n        cursor: 'pointer',\n        alignSelf: 'center',\n        borderRadius: '50%'\n      }),\n      [`${componentCls}-wrapper:hover &,\n        &:hover ${radioInnerPrefixCls}`]: {\n        borderColor: colorPrimary\n      },\n      [`${componentCls}-input:focus-visible + ${radioInnerPrefixCls}`]: Object.assign({}, genFocusOutline(token)),\n      [`${componentCls}:hover::after, ${componentCls}-wrapper:hover &::after`]: {\n        visibility: 'visible'\n      },\n      [`${componentCls}-inner`]: {\n        '&::after': {\n          boxSizing: 'border-box',\n          position: 'absolute',\n          insetBlockStart: '50%',\n          insetInlineStart: '50%',\n          display: 'block',\n          width: radioSizeCalc,\n          height: radioSizeCalc,\n          marginBlockStart: calc(1).mul(radioSize).div(-2).equal({\n            unit: true\n          }),\n          marginInlineStart: calc(1).mul(radioSize).div(-2).equal({\n            unit: true\n          }),\n          backgroundColor: radioColor,\n          borderBlockStart: 0,\n          borderInlineStart: 0,\n          borderRadius: radioSizeCalc,\n          transform: 'scale(0)',\n          opacity: 0,\n          transition: `all ${motionDurationSlow} ${motionEaseInOutCirc}`,\n          content: '\"\"'\n        },\n        boxSizing: 'border-box',\n        position: 'relative',\n        insetBlockStart: 0,\n        insetInlineStart: 0,\n        display: 'block',\n        width: radioSizeCalc,\n        height: radioSizeCalc,\n        backgroundColor: colorBgContainer,\n        borderColor: colorBorder,\n        borderStyle: 'solid',\n        borderWidth: lineWidth,\n        borderRadius: '50%',\n        transition: `all ${motionDurationMid}`\n      },\n      [`${componentCls}-input`]: {\n        position: 'absolute',\n        inset: 0,\n        zIndex: 1,\n        cursor: 'pointer',\n        opacity: 0\n      },\n      // 选中状态\n      [`${componentCls}-checked`]: {\n        [radioInnerPrefixCls]: {\n          borderColor: colorPrimary,\n          backgroundColor: radioBgColor,\n          '&::after': {\n            transform: `scale(${token.calc(token.dotSize).div(radioSize).equal()})`,\n            opacity: 1,\n            transition: `all ${motionDurationSlow} ${motionEaseInOutCirc}`\n          }\n        }\n      },\n      [`${componentCls}-disabled`]: {\n        cursor: 'not-allowed',\n        [radioInnerPrefixCls]: {\n          backgroundColor: colorBgContainerDisabled,\n          borderColor: colorBorder,\n          cursor: 'not-allowed',\n          '&::after': {\n            backgroundColor: dotColorDisabled\n          }\n        },\n        [`${componentCls}-input`]: {\n          cursor: 'not-allowed'\n        },\n        [`${componentCls}-disabled + span`]: {\n          color: colorTextDisabled,\n          cursor: 'not-allowed'\n        },\n        [`&${componentCls}-checked`]: {\n          [radioInnerPrefixCls]: {\n            '&::after': {\n              transform: `scale(${calc(radioDotDisabledSize).div(radioSize).equal()})`\n            }\n          }\n        }\n      },\n      [`span${componentCls} + *`]: {\n        paddingInlineStart: paddingXS,\n        paddingInlineEnd: paddingXS\n      }\n    })\n  };\n};\n// Styles from radio-button\nconst getRadioButtonStyle = token => {\n  const {\n    buttonColor,\n    controlHeight,\n    componentCls,\n    lineWidth,\n    lineType,\n    colorBorder,\n    motionDurationSlow,\n    motionDurationMid,\n    buttonPaddingInline,\n    fontSize,\n    buttonBg,\n    fontSizeLG,\n    controlHeightLG,\n    controlHeightSM,\n    paddingXS,\n    borderRadius,\n    borderRadiusSM,\n    borderRadiusLG,\n    buttonCheckedBg,\n    buttonSolidCheckedColor,\n    colorTextDisabled,\n    colorBgContainerDisabled,\n    buttonCheckedBgDisabled,\n    buttonCheckedColorDisabled,\n    colorPrimary,\n    colorPrimaryHover,\n    colorPrimaryActive,\n    buttonSolidCheckedBg,\n    buttonSolidCheckedHoverBg,\n    buttonSolidCheckedActiveBg,\n    calc\n  } = token;\n  return {\n    [`${componentCls}-button-wrapper`]: {\n      position: 'relative',\n      display: 'inline-block',\n      height: controlHeight,\n      margin: 0,\n      paddingInline: buttonPaddingInline,\n      paddingBlock: 0,\n      color: buttonColor,\n      fontSize,\n      lineHeight: unit(calc(controlHeight).sub(calc(lineWidth).mul(2)).equal()),\n      background: buttonBg,\n      border: `${unit(lineWidth)} ${lineType} ${colorBorder}`,\n      // strange align fix for chrome but works\n      // https://gw.alipayobjects.com/zos/rmsportal/VFTfKXJuogBAXcvfAUWJ.gif\n      borderBlockStartWidth: calc(lineWidth).add(0.02).equal(),\n      borderInlineStartWidth: 0,\n      borderInlineEndWidth: lineWidth,\n      cursor: 'pointer',\n      transition: [`color ${motionDurationMid}`, `background ${motionDurationMid}`, `box-shadow ${motionDurationMid}`].join(','),\n      a: {\n        color: buttonColor\n      },\n      [`> ${componentCls}-button`]: {\n        position: 'absolute',\n        insetBlockStart: 0,\n        insetInlineStart: 0,\n        zIndex: -1,\n        width: '100%',\n        height: '100%'\n      },\n      '&:not(:first-child)': {\n        '&::before': {\n          position: 'absolute',\n          insetBlockStart: calc(lineWidth).mul(-1).equal(),\n          insetInlineStart: calc(lineWidth).mul(-1).equal(),\n          display: 'block',\n          boxSizing: 'content-box',\n          width: 1,\n          height: '100%',\n          paddingBlock: lineWidth,\n          paddingInline: 0,\n          backgroundColor: colorBorder,\n          transition: `background-color ${motionDurationSlow}`,\n          content: '\"\"'\n        }\n      },\n      '&:first-child': {\n        borderInlineStart: `${unit(lineWidth)} ${lineType} ${colorBorder}`,\n        borderStartStartRadius: borderRadius,\n        borderEndStartRadius: borderRadius\n      },\n      '&:last-child': {\n        borderStartEndRadius: borderRadius,\n        borderEndEndRadius: borderRadius\n      },\n      '&:first-child:last-child': {\n        borderRadius\n      },\n      [`${componentCls}-group-large &`]: {\n        height: controlHeightLG,\n        fontSize: fontSizeLG,\n        lineHeight: unit(calc(controlHeightLG).sub(calc(lineWidth).mul(2)).equal()),\n        '&:first-child': {\n          borderStartStartRadius: borderRadiusLG,\n          borderEndStartRadius: borderRadiusLG\n        },\n        '&:last-child': {\n          borderStartEndRadius: borderRadiusLG,\n          borderEndEndRadius: borderRadiusLG\n        }\n      },\n      [`${componentCls}-group-small &`]: {\n        height: controlHeightSM,\n        paddingInline: calc(paddingXS).sub(lineWidth).equal(),\n        paddingBlock: 0,\n        lineHeight: unit(calc(controlHeightSM).sub(calc(lineWidth).mul(2)).equal()),\n        '&:first-child': {\n          borderStartStartRadius: borderRadiusSM,\n          borderEndStartRadius: borderRadiusSM\n        },\n        '&:last-child': {\n          borderStartEndRadius: borderRadiusSM,\n          borderEndEndRadius: borderRadiusSM\n        }\n      },\n      '&:hover': {\n        position: 'relative',\n        color: colorPrimary\n      },\n      '&:has(:focus-visible)': Object.assign({}, genFocusOutline(token)),\n      [`${componentCls}-inner, input[type='checkbox'], input[type='radio']`]: {\n        width: 0,\n        height: 0,\n        opacity: 0,\n        pointerEvents: 'none'\n      },\n      [`&-checked:not(${componentCls}-button-wrapper-disabled)`]: {\n        zIndex: 1,\n        color: colorPrimary,\n        background: buttonCheckedBg,\n        borderColor: colorPrimary,\n        '&::before': {\n          backgroundColor: colorPrimary\n        },\n        '&:first-child': {\n          borderColor: colorPrimary\n        },\n        '&:hover': {\n          color: colorPrimaryHover,\n          borderColor: colorPrimaryHover,\n          '&::before': {\n            backgroundColor: colorPrimaryHover\n          }\n        },\n        '&:active': {\n          color: colorPrimaryActive,\n          borderColor: colorPrimaryActive,\n          '&::before': {\n            backgroundColor: colorPrimaryActive\n          }\n        }\n      },\n      [`${componentCls}-group-solid &-checked:not(${componentCls}-button-wrapper-disabled)`]: {\n        color: buttonSolidCheckedColor,\n        background: buttonSolidCheckedBg,\n        borderColor: buttonSolidCheckedBg,\n        '&:hover': {\n          color: buttonSolidCheckedColor,\n          background: buttonSolidCheckedHoverBg,\n          borderColor: buttonSolidCheckedHoverBg\n        },\n        '&:active': {\n          color: buttonSolidCheckedColor,\n          background: buttonSolidCheckedActiveBg,\n          borderColor: buttonSolidCheckedActiveBg\n        }\n      },\n      '&-disabled': {\n        color: colorTextDisabled,\n        backgroundColor: colorBgContainerDisabled,\n        borderColor: colorBorder,\n        cursor: 'not-allowed',\n        '&:first-child, &:hover': {\n          color: colorTextDisabled,\n          backgroundColor: colorBgContainerDisabled,\n          borderColor: colorBorder\n        }\n      },\n      [`&-disabled${componentCls}-button-wrapper-checked`]: {\n        color: buttonCheckedColorDisabled,\n        backgroundColor: buttonCheckedBgDisabled,\n        borderColor: colorBorder,\n        boxShadow: 'none'\n      },\n      '&-block': {\n        flex: 1,\n        textAlign: 'center'\n      }\n    }\n  };\n};\n// ============================== Export ==============================\nexport const prepareComponentToken = token => {\n  const {\n    wireframe,\n    padding,\n    marginXS,\n    lineWidth,\n    fontSizeLG,\n    colorText,\n    colorBgContainer,\n    colorTextDisabled,\n    controlItemBgActiveDisabled,\n    colorTextLightSolid,\n    colorPrimary,\n    colorPrimaryHover,\n    colorPrimaryActive,\n    colorWhite\n  } = token;\n  const dotPadding = 4; // Fixed value\n  const radioSize = fontSizeLG;\n  const radioDotSize = wireframe ? radioSize - dotPadding * 2 : radioSize - (dotPadding + lineWidth) * 2;\n  return {\n    // Radio\n    radioSize,\n    dotSize: radioDotSize,\n    dotColorDisabled: colorTextDisabled,\n    // Radio buttons\n    buttonSolidCheckedColor: colorTextLightSolid,\n    buttonSolidCheckedBg: colorPrimary,\n    buttonSolidCheckedHoverBg: colorPrimaryHover,\n    buttonSolidCheckedActiveBg: colorPrimaryActive,\n    buttonBg: colorBgContainer,\n    buttonCheckedBg: colorBgContainer,\n    buttonColor: colorText,\n    buttonCheckedBgDisabled: controlItemBgActiveDisabled,\n    buttonCheckedColorDisabled: colorTextDisabled,\n    buttonPaddingInline: padding - lineWidth,\n    wrapperMarginInlineEnd: marginXS,\n    // internal\n    radioColor: wireframe ? colorPrimary : colorWhite,\n    radioBgColor: wireframe ? colorBgContainer : colorPrimary\n  };\n};\nexport default genStyleHooks('Radio', token => {\n  const {\n    controlOutline,\n    controlOutlineWidth\n  } = token;\n  const radioFocusShadow = `0 0 0 ${unit(controlOutlineWidth)} ${controlOutline}`;\n  const radioButtonFocusShadow = radioFocusShadow;\n  const radioToken = mergeToken(token, {\n    radioFocusShadow,\n    radioButtonFocusShadow\n  });\n  return [getGroupRadioStyle(radioToken), getRadioBasicStyle(radioToken), getRadioButtonStyle(radioToken)];\n}, prepareComponentToken, {\n  unitless: {\n    radioSize: true,\n    dotSize: true\n  }\n});","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n  var t = {};\n  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n  }\n  return t;\n};\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport RcCheckbox from 'rc-checkbox';\nimport { composeRef } from \"rc-util/es/ref\";\nimport { devUseWarning } from '../_util/warning';\nimport Wave from '../_util/wave';\nimport { TARGET_CLS } from '../_util/wave/interface';\nimport { ConfigContext } from '../config-provider';\nimport DisabledContext from '../config-provider/DisabledContext';\nimport useCSSVarCls from '../config-provider/hooks/useCSSVarCls';\nimport { FormItemInputContext } from '../form/context';\nimport RadioGroupContext, { RadioOptionTypeContext } from './context';\nimport useStyle from './style';\nconst InternalRadio = (props, ref) => {\n  var _a, _b;\n  const groupContext = React.useContext(RadioGroupContext);\n  const radioOptionTypeContext = React.useContext(RadioOptionTypeContext);\n  const {\n    getPrefixCls,\n    direction,\n    radio\n  } = React.useContext(ConfigContext);\n  const innerRef = React.useRef(null);\n  const mergedRef = composeRef(ref, innerRef);\n  const {\n    isFormItemInput\n  } = React.useContext(FormItemInputContext);\n  if (process.env.NODE_ENV !== 'production') {\n    const warning = devUseWarning('Radio');\n    process.env.NODE_ENV !== \"production\" ? warning(!('optionType' in props), 'usage', '`optionType` is only support in Radio.Group.') : void 0;\n  }\n  const onChange = e => {\n    var _a, _b;\n    (_a = props.onChange) === null || _a === void 0 ? void 0 : _a.call(props, e);\n    (_b = groupContext === null || groupContext === void 0 ? void 0 : groupContext.onChange) === null || _b === void 0 ? void 0 : _b.call(groupContext, e);\n  };\n  const {\n      prefixCls: customizePrefixCls,\n      className,\n      rootClassName,\n      children,\n      style,\n      title\n    } = props,\n    restProps = __rest(props, [\"prefixCls\", \"className\", \"rootClassName\", \"children\", \"style\", \"title\"]);\n  const radioPrefixCls = getPrefixCls('radio', customizePrefixCls);\n  const isButtonType = ((groupContext === null || groupContext === void 0 ? void 0 : groupContext.optionType) || radioOptionTypeContext) === 'button';\n  const prefixCls = isButtonType ? `${radioPrefixCls}-button` : radioPrefixCls;\n  // Style\n  const rootCls = useCSSVarCls(radioPrefixCls);\n  const [wrapCSSVar, hashId, cssVarCls] = useStyle(radioPrefixCls, rootCls);\n  const radioProps = Object.assign({}, restProps);\n  // ===================== Disabled =====================\n  const disabled = React.useContext(DisabledContext);\n  if (groupContext) {\n    radioProps.name = groupContext.name;\n    radioProps.onChange = onChange;\n    radioProps.checked = props.value === groupContext.value;\n    radioProps.disabled = (_a = radioProps.disabled) !== null && _a !== void 0 ? _a : groupContext.disabled;\n  }\n  radioProps.disabled = (_b = radioProps.disabled) !== null && _b !== void 0 ? _b : disabled;\n  const wrapperClassString = classNames(`${prefixCls}-wrapper`, {\n    [`${prefixCls}-wrapper-checked`]: radioProps.checked,\n    [`${prefixCls}-wrapper-disabled`]: radioProps.disabled,\n    [`${prefixCls}-wrapper-rtl`]: direction === 'rtl',\n    [`${prefixCls}-wrapper-in-form-item`]: isFormItemInput,\n    [`${prefixCls}-wrapper-block`]: !!(groupContext === null || groupContext === void 0 ? void 0 : groupContext.block)\n  }, radio === null || radio === void 0 ? void 0 : radio.className, className, rootClassName, hashId, cssVarCls, rootCls);\n  return wrapCSSVar(/*#__PURE__*/React.createElement(Wave, {\n    component: \"Radio\",\n    disabled: radioProps.disabled\n  }, /*#__PURE__*/React.createElement(\"label\", {\n    className: wrapperClassString,\n    style: Object.assign(Object.assign({}, radio === null || radio === void 0 ? void 0 : radio.style), style),\n    onMouseEnter: props.onMouseEnter,\n    onMouseLeave: props.onMouseLeave,\n    title: title\n  }, /*#__PURE__*/React.createElement(RcCheckbox, Object.assign({}, radioProps, {\n    className: classNames(radioProps.className, {\n      [TARGET_CLS]: !isButtonType\n    }),\n    type: \"radio\",\n    prefixCls: prefixCls,\n    ref: mergedRef\n  })), children !== undefined ? /*#__PURE__*/React.createElement(\"span\", null, children) : null)));\n};\nconst Radio = /*#__PURE__*/React.forwardRef(InternalRadio);\nif (process.env.NODE_ENV !== 'production') {\n  Radio.displayName = 'Radio';\n}\nexport default Radio;","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport { ConfigContext } from '../config-provider';\nimport useCSSVarCls from '../config-provider/hooks/useCSSVarCls';\nimport useSize from '../config-provider/hooks/useSize';\nimport { RadioGroupContextProvider } from './context';\nimport Radio from './radio';\nimport useStyle from './style';\nconst RadioGroup = /*#__PURE__*/React.forwardRef((props, ref) => {\n  const {\n    getPrefixCls,\n    direction\n  } = React.useContext(ConfigContext);\n  const {\n    prefixCls: customizePrefixCls,\n    className,\n    rootClassName,\n    options,\n    buttonStyle = 'outline',\n    disabled,\n    children,\n    size: customizeSize,\n    style,\n    id,\n    optionType,\n    name,\n    defaultValue,\n    value: customizedValue,\n    block = false,\n    onChange,\n    onMouseEnter,\n    onMouseLeave,\n    onFocus,\n    onBlur\n  } = props;\n  const [value, setValue] = useMergedState(defaultValue, {\n    value: customizedValue\n  });\n  const onRadioChange = React.useCallback(event => {\n    const lastValue = value;\n    const val = event.target.value;\n    if (!('value' in props)) {\n      setValue(val);\n    }\n    if (val !== lastValue) {\n      onChange === null || onChange === void 0 ? void 0 : onChange(event);\n    }\n  }, [value, setValue, onChange]);\n  const prefixCls = getPrefixCls('radio', customizePrefixCls);\n  const groupPrefixCls = `${prefixCls}-group`;\n  // Style\n  const rootCls = useCSSVarCls(prefixCls);\n  const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls, rootCls);\n  let childrenToRender = children;\n  // 如果存在 options, 优先使用\n  if (options && options.length > 0) {\n    childrenToRender = options.map(option => {\n      if (typeof option === 'string' || typeof option === 'number') {\n        // 此处类型自动推导为 string\n        return /*#__PURE__*/React.createElement(Radio, {\n          key: option.toString(),\n          prefixCls: prefixCls,\n          disabled: disabled,\n          value: option,\n          checked: value === option\n        }, option);\n      }\n      // 此处类型自动推导为 { label: string value: string }\n      return /*#__PURE__*/React.createElement(Radio, {\n        key: `radio-group-value-options-${option.value}`,\n        prefixCls: prefixCls,\n        disabled: option.disabled || disabled,\n        value: option.value,\n        checked: value === option.value,\n        title: option.title,\n        style: option.style,\n        id: option.id,\n        required: option.required\n      }, option.label);\n    });\n  }\n  const mergedSize = useSize(customizeSize);\n  const classString = classNames(groupPrefixCls, `${groupPrefixCls}-${buttonStyle}`, {\n    [`${groupPrefixCls}-${mergedSize}`]: mergedSize,\n    [`${groupPrefixCls}-rtl`]: direction === 'rtl',\n    [`${groupPrefixCls}-block`]: block\n  }, className, rootClassName, hashId, cssVarCls, rootCls);\n  const memoizedValue = React.useMemo(() => ({\n    onChange: onRadioChange,\n    value,\n    disabled,\n    name,\n    optionType,\n    block\n  }), [onRadioChange, value, disabled, name, optionType, block]);\n  return wrapCSSVar(/*#__PURE__*/React.createElement(\"div\", Object.assign({}, pickAttrs(props, {\n    aria: true,\n    data: true\n  }), {\n    className: classString,\n    style: style,\n    onMouseEnter: onMouseEnter,\n    onMouseLeave: onMouseLeave,\n    onFocus: onFocus,\n    onBlur: onBlur,\n    id: id,\n    ref: ref\n  }), /*#__PURE__*/React.createElement(RadioGroupContextProvider, {\n    value: memoizedValue\n  }, childrenToRender)));\n});\nexport default /*#__PURE__*/React.memo(RadioGroup);","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n  var t = {};\n  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n  }\n  return t;\n};\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport { RadioOptionTypeContextProvider } from './context';\nimport Radio from './radio';\nconst RadioButton = (props, ref) => {\n  const {\n    getPrefixCls\n  } = React.useContext(ConfigContext);\n  const {\n      prefixCls: customizePrefixCls\n    } = props,\n    radioProps = __rest(props, [\"prefixCls\"]);\n  const prefixCls = getPrefixCls('radio', customizePrefixCls);\n  return /*#__PURE__*/React.createElement(RadioOptionTypeContextProvider, {\n    value: \"button\"\n  }, /*#__PURE__*/React.createElement(Radio, Object.assign({\n    prefixCls: prefixCls\n  }, radioProps, {\n    type: \"radio\",\n    ref: ref\n  })));\n};\nexport default /*#__PURE__*/React.forwardRef(RadioButton);","\"use client\";\n\nimport Group from './group';\nimport InternalRadio from './radio';\nimport Button from './radioButton';\nexport { Button, Group };\nconst Radio = InternalRadio;\nRadio.Button = Button;\nRadio.Group = Group;\nRadio.__ANT_RADIO = true;\nexport default Radio;","\"use client\";\n\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\nimport { useCallback, useMemo } from 'react';\nimport DownOutlined from \"@ant-design/icons/es/icons/DownOutlined\";\nimport classNames from 'classnames';\nimport { INTERNAL_COL_DEFINE } from 'rc-table';\nimport { arrAdd, arrDel } from \"rc-tree/es/util\";\nimport { conductCheck } from \"rc-tree/es/utils/conductUtil\";\nimport { convertDataToEntities } from \"rc-tree/es/utils/treeUtil\";\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport useMultipleSelect from '../../_util/hooks/useMultipleSelect';\nimport { devUseWarning } from '../../_util/warning';\nimport Checkbox from '../../checkbox';\nimport Dropdown from '../../dropdown';\nimport Radio from '../../radio';\n// TODO: warning if use ajax!!!\nexport const SELECTION_COLUMN = {};\nexport const SELECTION_ALL = 'SELECT_ALL';\nexport const SELECTION_INVERT = 'SELECT_INVERT';\nexport const SELECTION_NONE = 'SELECT_NONE';\nconst EMPTY_LIST = [];\nconst flattenData = (childrenColumnName, data) => {\n  let list = [];\n  (data || []).forEach(record => {\n    list.push(record);\n    if (record && typeof record === 'object' && childrenColumnName in record) {\n      list = [].concat(_toConsumableArray(list), _toConsumableArray(flattenData(childrenColumnName, record[childrenColumnName])));\n    }\n  });\n  return list;\n};\nconst useSelection = (config, rowSelection) => {\n  const {\n    preserveSelectedRowKeys,\n    selectedRowKeys,\n    defaultSelectedRowKeys,\n    getCheckboxProps,\n    onChange: onSelectionChange,\n    onSelect,\n    onSelectAll,\n    onSelectInvert,\n    onSelectNone,\n    onSelectMultiple,\n    columnWidth: selectionColWidth,\n    type: selectionType,\n    selections,\n    fixed,\n    renderCell: customizeRenderCell,\n    hideSelectAll,\n    checkStrictly = true\n  } = rowSelection || {};\n  const {\n    prefixCls,\n    data,\n    pageData,\n    getRecordByKey,\n    getRowKey,\n    expandType,\n    childrenColumnName,\n    locale: tableLocale,\n    getPopupContainer\n  } = config;\n  const warning = devUseWarning('Table');\n  // ========================= MultipleSelect =========================\n  const [multipleSelect, updatePrevSelectedIndex] = useMultipleSelect(item => item);\n  // ========================= Keys =========================\n  const [mergedSelectedKeys, setMergedSelectedKeys] = useMergedState(selectedRowKeys || defaultSelectedRowKeys || EMPTY_LIST, {\n    value: selectedRowKeys\n  });\n  // ======================== Caches ========================\n  const preserveRecordsRef = React.useRef(new Map());\n  const updatePreserveRecordsCache = useCallback(keys => {\n    if (preserveSelectedRowKeys) {\n      const newCache = new Map();\n      // Keep key if mark as preserveSelectedRowKeys\n      keys.forEach(key => {\n        let record = getRecordByKey(key);\n        if (!record && preserveRecordsRef.current.has(key)) {\n          record = preserveRecordsRef.current.get(key);\n        }\n        newCache.set(key, record);\n      });\n      // Refresh to new cache\n      preserveRecordsRef.current = newCache;\n    }\n  }, [getRecordByKey, preserveSelectedRowKeys]);\n  // Update cache with selectedKeys\n  React.useEffect(() => {\n    updatePreserveRecordsCache(mergedSelectedKeys);\n  }, [mergedSelectedKeys]);\n  // Get flatten data\n  const flattedData = useMemo(() => flattenData(childrenColumnName, pageData), [childrenColumnName, pageData]);\n  const {\n    keyEntities\n  } = useMemo(() => {\n    if (checkStrictly) {\n      return {\n        keyEntities: null\n      };\n    }\n    let convertData = data;\n    if (preserveSelectedRowKeys) {\n      // use flattedData keys\n      const keysSet = new Set(flattedData.map((record, index) => getRowKey(record, index)));\n      // remove preserveRecords that duplicate data\n      const preserveRecords = Array.from(preserveRecordsRef.current).reduce((total, _ref) => {\n        let [key, value] = _ref;\n        return keysSet.has(key) ? total : total.concat(value);\n      }, []);\n      convertData = [].concat(_toConsumableArray(convertData), _toConsumableArray(preserveRecords));\n    }\n    return convertDataToEntities(convertData, {\n      externalGetKey: getRowKey,\n      childrenPropName: childrenColumnName\n    });\n  }, [data, getRowKey, checkStrictly, childrenColumnName, preserveSelectedRowKeys, flattedData]);\n  // Get all checkbox props\n  const checkboxPropsMap = useMemo(() => {\n    const map = new Map();\n    flattedData.forEach((record, index) => {\n      const key = getRowKey(record, index);\n      const checkboxProps = (getCheckboxProps ? getCheckboxProps(record) : null) || {};\n      map.set(key, checkboxProps);\n      process.env.NODE_ENV !== \"production\" ? warning(!('checked' in checkboxProps || 'defaultChecked' in checkboxProps), 'usage', 'Do not set `checked` or `defaultChecked` in `getCheckboxProps`. Please use `selectedRowKeys` instead.') : void 0;\n    });\n    return map;\n  }, [flattedData, getRowKey, getCheckboxProps]);\n  const isCheckboxDisabled = useCallback(r => {\n    var _a;\n    return !!((_a = checkboxPropsMap.get(getRowKey(r))) === null || _a === void 0 ? void 0 : _a.disabled);\n  }, [checkboxPropsMap, getRowKey]);\n  const [derivedSelectedKeys, derivedHalfSelectedKeys] = useMemo(() => {\n    if (checkStrictly) {\n      return [mergedSelectedKeys || [], []];\n    }\n    const {\n      checkedKeys,\n      halfCheckedKeys\n    } = conductCheck(mergedSelectedKeys, true, keyEntities, isCheckboxDisabled);\n    return [checkedKeys || [], halfCheckedKeys];\n  }, [mergedSelectedKeys, checkStrictly, keyEntities, isCheckboxDisabled]);\n  const derivedSelectedKeySet = useMemo(() => {\n    const keys = selectionType === 'radio' ? derivedSelectedKeys.slice(0, 1) : derivedSelectedKeys;\n    return new Set(keys);\n  }, [derivedSelectedKeys, selectionType]);\n  const derivedHalfSelectedKeySet = useMemo(() => selectionType === 'radio' ? new Set() : new Set(derivedHalfSelectedKeys), [derivedHalfSelectedKeys, selectionType]);\n  // Reset if rowSelection reset\n  React.useEffect(() => {\n    if (!rowSelection) {\n      setMergedSelectedKeys(EMPTY_LIST);\n    }\n  }, [!!rowSelection]);\n  const setSelectedKeys = useCallback((keys, method) => {\n    let availableKeys;\n    let records;\n    updatePreserveRecordsCache(keys);\n    if (preserveSelectedRowKeys) {\n      availableKeys = keys;\n      records = keys.map(key => preserveRecordsRef.current.get(key));\n    } else {\n      // Filter key which not exist in the `dataSource`\n      availableKeys = [];\n      records = [];\n      keys.forEach(key => {\n        const record = getRecordByKey(key);\n        if (record !== undefined) {\n          availableKeys.push(key);\n          records.push(record);\n        }\n      });\n    }\n    setMergedSelectedKeys(availableKeys);\n    onSelectionChange === null || onSelectionChange === void 0 ? void 0 : onSelectionChange(availableKeys, records, {\n      type: method\n    });\n  }, [setMergedSelectedKeys, getRecordByKey, onSelectionChange, preserveSelectedRowKeys]);\n  // ====================== Selections ======================\n  // Trigger single `onSelect` event\n  const triggerSingleSelection = useCallback((key, selected, keys, event) => {\n    if (onSelect) {\n      const rows = keys.map(k => getRecordByKey(k));\n      onSelect(getRecordByKey(key), selected, rows, event);\n    }\n    setSelectedKeys(keys, 'single');\n  }, [onSelect, getRecordByKey, setSelectedKeys]);\n  const mergedSelections = useMemo(() => {\n    if (!selections || hideSelectAll) {\n      return null;\n    }\n    const selectionList = selections === true ? [SELECTION_ALL, SELECTION_INVERT, SELECTION_NONE] : selections;\n    return selectionList.map(selection => {\n      if (selection === SELECTION_ALL) {\n        return {\n          key: 'all',\n          text: tableLocale.selectionAll,\n          onSelect() {\n            setSelectedKeys(data.map((record, index) => getRowKey(record, index)).filter(key => {\n              const checkProps = checkboxPropsMap.get(key);\n              return !(checkProps === null || checkProps === void 0 ? void 0 : checkProps.disabled) || derivedSelectedKeySet.has(key);\n            }), 'all');\n          }\n        };\n      }\n      if (selection === SELECTION_INVERT) {\n        return {\n          key: 'invert',\n          text: tableLocale.selectInvert,\n          onSelect() {\n            const keySet = new Set(derivedSelectedKeySet);\n            pageData.forEach((record, index) => {\n              const key = getRowKey(record, index);\n              const checkProps = checkboxPropsMap.get(key);\n              if (!(checkProps === null || checkProps === void 0 ? void 0 : checkProps.disabled)) {\n                if (keySet.has(key)) {\n                  keySet.delete(key);\n                } else {\n                  keySet.add(key);\n                }\n              }\n            });\n            const keys = Array.from(keySet);\n            if (onSelectInvert) {\n              warning.deprecated(false, 'onSelectInvert', 'onChange');\n              onSelectInvert(keys);\n            }\n            setSelectedKeys(keys, 'invert');\n          }\n        };\n      }\n      if (selection === SELECTION_NONE) {\n        return {\n          key: 'none',\n          text: tableLocale.selectNone,\n          onSelect() {\n            onSelectNone === null || onSelectNone === void 0 ? void 0 : onSelectNone();\n            setSelectedKeys(Array.from(derivedSelectedKeySet).filter(key => {\n              const checkProps = checkboxPropsMap.get(key);\n              return checkProps === null || checkProps === void 0 ? void 0 : checkProps.disabled;\n            }), 'none');\n          }\n        };\n      }\n      return selection;\n    }).map(selection => Object.assign(Object.assign({}, selection), {\n      onSelect: function () {\n        var _a2;\n        var _a;\n        for (var _len = arguments.length, rest = new Array(_len), _key = 0; _key < _len; _key++) {\n          rest[_key] = arguments[_key];\n        }\n        (_a = selection.onSelect) === null || _a === void 0 ? void 0 : (_a2 = _a).call.apply(_a2, [selection].concat(rest));\n        updatePrevSelectedIndex(null);\n      }\n    }));\n  }, [selections, derivedSelectedKeySet, pageData, getRowKey, onSelectInvert, setSelectedKeys]);\n  // ======================= Columns ========================\n  const transformColumns = useCallback(columns => {\n    var _a;\n    // >>>>>>>>>>> Skip if not exists `rowSelection`\n    if (!rowSelection) {\n      process.env.NODE_ENV !== \"production\" ? warning(!columns.includes(SELECTION_COLUMN), 'usage', '`rowSelection` is not config but `SELECTION_COLUMN` exists in the `columns`.') : void 0;\n      return columns.filter(col => col !== SELECTION_COLUMN);\n    }\n    // >>>>>>>>>>> Support selection\n    let cloneColumns = _toConsumableArray(columns);\n    const keySet = new Set(derivedSelectedKeySet);\n    // Record key only need check with enabled\n    const recordKeys = flattedData.map(getRowKey).filter(key => !checkboxPropsMap.get(key).disabled);\n    const checkedCurrentAll = recordKeys.every(key => keySet.has(key));\n    const checkedCurrentSome = recordKeys.some(key => keySet.has(key));\n    const onSelectAllChange = () => {\n      const changeKeys = [];\n      if (checkedCurrentAll) {\n        recordKeys.forEach(key => {\n          keySet.delete(key);\n          changeKeys.push(key);\n        });\n      } else {\n        recordKeys.forEach(key => {\n          if (!keySet.has(key)) {\n            keySet.add(key);\n            changeKeys.push(key);\n          }\n        });\n      }\n      const keys = Array.from(keySet);\n      onSelectAll === null || onSelectAll === void 0 ? void 0 : onSelectAll(!checkedCurrentAll, keys.map(k => getRecordByKey(k)), changeKeys.map(k => getRecordByKey(k)));\n      setSelectedKeys(keys, 'all');\n      updatePrevSelectedIndex(null);\n    };\n    // ===================== Render =====================\n    // Title Cell\n    let title;\n    let columnTitleCheckbox;\n    if (selectionType !== 'radio') {\n      let customizeSelections;\n      if (mergedSelections) {\n        const menu = {\n          getPopupContainer,\n          items: mergedSelections.map((selection, index) => {\n            const {\n              key,\n              text,\n              onSelect: onSelectionClick\n            } = selection;\n            return {\n              key: key !== null && key !== void 0 ? key : index,\n              onClick: () => {\n                onSelectionClick === null || onSelectionClick === void 0 ? void 0 : onSelectionClick(recordKeys);\n              },\n              label: text\n            };\n          })\n        };\n        customizeSelections = /*#__PURE__*/React.createElement(\"div\", {\n          className: `${prefixCls}-selection-extra`\n        }, /*#__PURE__*/React.createElement(Dropdown, {\n          menu: menu,\n          getPopupContainer: getPopupContainer\n        }, /*#__PURE__*/React.createElement(\"span\", null, /*#__PURE__*/React.createElement(DownOutlined, null))));\n      }\n      const allDisabledData = flattedData.map((record, index) => {\n        const key = getRowKey(record, index);\n        const checkboxProps = checkboxPropsMap.get(key) || {};\n        return Object.assign({\n          checked: keySet.has(key)\n        }, checkboxProps);\n      }).filter(_ref2 => {\n        let {\n          disabled\n        } = _ref2;\n        return disabled;\n      });\n      const allDisabled = !!allDisabledData.length && allDisabledData.length === flattedData.length;\n      const allDisabledAndChecked = allDisabled && allDisabledData.every(_ref3 => {\n        let {\n          checked\n        } = _ref3;\n        return checked;\n      });\n      const allDisabledSomeChecked = allDisabled && allDisabledData.some(_ref4 => {\n        let {\n          checked\n        } = _ref4;\n        return checked;\n      });\n      columnTitleCheckbox = /*#__PURE__*/React.createElement(Checkbox, {\n        checked: !allDisabled ? !!flattedData.length && checkedCurrentAll : allDisabledAndChecked,\n        indeterminate: !allDisabled ? !checkedCurrentAll && checkedCurrentSome : !allDisabledAndChecked && allDisabledSomeChecked,\n        onChange: onSelectAllChange,\n        disabled: flattedData.length === 0 || allDisabled,\n        \"aria-label\": customizeSelections ? 'Custom selection' : 'Select all',\n        skipGroup: true\n      });\n      title = !hideSelectAll && (/*#__PURE__*/React.createElement(\"div\", {\n        className: `${prefixCls}-selection`\n      }, columnTitleCheckbox, customizeSelections));\n    }\n    // Body Cell\n    let renderCell;\n    if (selectionType === 'radio') {\n      renderCell = (_, record, index) => {\n        const key = getRowKey(record, index);\n        const checked = keySet.has(key);\n        return {\n          node: (/*#__PURE__*/React.createElement(Radio, Object.assign({}, checkboxPropsMap.get(key), {\n            checked: checked,\n            onClick: e => e.stopPropagation(),\n            onChange: event => {\n              if (!keySet.has(key)) {\n                triggerSingleSelection(key, true, [key], event.nativeEvent);\n              }\n            }\n          }))),\n          checked\n        };\n      };\n    } else {\n      renderCell = (_, record, index) => {\n        var _a;\n        const key = getRowKey(record, index);\n        const checked = keySet.has(key);\n        const indeterminate = derivedHalfSelectedKeySet.has(key);\n        const checkboxProps = checkboxPropsMap.get(key);\n        let mergedIndeterminate;\n        if (expandType === 'nest') {\n          mergedIndeterminate = indeterminate;\n          process.env.NODE_ENV !== \"production\" ? warning(typeof (checkboxProps === null || checkboxProps === void 0 ? void 0 : checkboxProps.indeterminate) !== 'boolean', 'usage', 'set `indeterminate` using `rowSelection.getCheckboxProps` is not allowed with tree structured dataSource.') : void 0;\n        } else {\n          mergedIndeterminate = (_a = checkboxProps === null || checkboxProps === void 0 ? void 0 : checkboxProps.indeterminate) !== null && _a !== void 0 ? _a : indeterminate;\n        }\n        // Record checked\n        return {\n          node: (/*#__PURE__*/React.createElement(Checkbox, Object.assign({}, checkboxProps, {\n            indeterminate: mergedIndeterminate,\n            checked: checked,\n            skipGroup: true,\n            onClick: e => e.stopPropagation(),\n            onChange: _ref5 => {\n              let {\n                nativeEvent\n              } = _ref5;\n              const {\n                shiftKey\n              } = nativeEvent;\n              const currentSelectedIndex = recordKeys.findIndex(item => item === key);\n              const isMultiple = derivedSelectedKeys.some(item => recordKeys.includes(item));\n              if (shiftKey && checkStrictly && isMultiple) {\n                const changedKeys = multipleSelect(currentSelectedIndex, recordKeys, keySet);\n                const keys = Array.from(keySet);\n                onSelectMultiple === null || onSelectMultiple === void 0 ? void 0 : onSelectMultiple(!checked, keys.map(recordKey => getRecordByKey(recordKey)), changedKeys.map(recordKey => getRecordByKey(recordKey)));\n                setSelectedKeys(keys, 'multiple');\n              } else {\n                // Single record selected\n                const originCheckedKeys = derivedSelectedKeys;\n                if (checkStrictly) {\n                  const checkedKeys = checked ? arrDel(originCheckedKeys, key) : arrAdd(originCheckedKeys, key);\n                  triggerSingleSelection(key, !checked, checkedKeys, nativeEvent);\n                } else {\n                  // Always fill first\n                  const result = conductCheck([].concat(_toConsumableArray(originCheckedKeys), [key]), true, keyEntities, isCheckboxDisabled);\n                  const {\n                    checkedKeys,\n                    halfCheckedKeys\n                  } = result;\n                  let nextCheckedKeys = checkedKeys;\n                  // If remove, we do it again to correction\n                  if (checked) {\n                    const tempKeySet = new Set(checkedKeys);\n                    tempKeySet.delete(key);\n                    nextCheckedKeys = conductCheck(Array.from(tempKeySet), {\n                      checked: false,\n                      halfCheckedKeys\n                    }, keyEntities, isCheckboxDisabled).checkedKeys;\n                  }\n                  triggerSingleSelection(key, !checked, nextCheckedKeys, nativeEvent);\n                }\n              }\n              if (checked) {\n                updatePrevSelectedIndex(null);\n              } else {\n                updatePrevSelectedIndex(currentSelectedIndex);\n              }\n            }\n          }))),\n          checked\n        };\n      };\n    }\n    const renderSelectionCell = (_, record, index) => {\n      const {\n        node,\n        checked\n      } = renderCell(_, record, index);\n      if (customizeRenderCell) {\n        return customizeRenderCell(checked, record, index, node);\n      }\n      return node;\n    };\n    // Insert selection column if not exist\n    if (!cloneColumns.includes(SELECTION_COLUMN)) {\n      // Always after expand icon\n      if (cloneColumns.findIndex(col => {\n        var _a;\n        return ((_a = col[INTERNAL_COL_DEFINE]) === null || _a === void 0 ? void 0 : _a.columnType) === 'EXPAND_COLUMN';\n      }) === 0) {\n        const [expandColumn, ...restColumns] = cloneColumns;\n        cloneColumns = [expandColumn, SELECTION_COLUMN].concat(_toConsumableArray(restColumns));\n      } else {\n        // Normal insert at first column\n        cloneColumns = [SELECTION_COLUMN].concat(_toConsumableArray(cloneColumns));\n      }\n    }\n    // Deduplicate selection column\n    const selectionColumnIndex = cloneColumns.indexOf(SELECTION_COLUMN);\n    process.env.NODE_ENV !== \"production\" ? warning(cloneColumns.filter(col => col === SELECTION_COLUMN).length <= 1, 'usage', 'Multiple `SELECTION_COLUMN` exist in `columns`.') : void 0;\n    cloneColumns = cloneColumns.filter((column, index) => column !== SELECTION_COLUMN || index === selectionColumnIndex);\n    // Fixed column logic\n    const prevCol = cloneColumns[selectionColumnIndex - 1];\n    const nextCol = cloneColumns[selectionColumnIndex + 1];\n    let mergedFixed = fixed;\n    if (mergedFixed === undefined) {\n      if ((nextCol === null || nextCol === void 0 ? void 0 : nextCol.fixed) !== undefined) {\n        mergedFixed = nextCol.fixed;\n      } else if ((prevCol === null || prevCol === void 0 ? void 0 : prevCol.fixed) !== undefined) {\n        mergedFixed = prevCol.fixed;\n      }\n    }\n    if (mergedFixed && prevCol && ((_a = prevCol[INTERNAL_COL_DEFINE]) === null || _a === void 0 ? void 0 : _a.columnType) === 'EXPAND_COLUMN' && prevCol.fixed === undefined) {\n      prevCol.fixed = mergedFixed;\n    }\n    const columnCls = classNames(`${prefixCls}-selection-col`, {\n      [`${prefixCls}-selection-col-with-dropdown`]: selections && selectionType === 'checkbox'\n    });\n    const renderColumnTitle = () => {\n      if (!(rowSelection === null || rowSelection === void 0 ? void 0 : rowSelection.columnTitle)) {\n        return title;\n      }\n      if (typeof rowSelection.columnTitle === 'function') {\n        return rowSelection.columnTitle(columnTitleCheckbox);\n      }\n      return rowSelection.columnTitle;\n    };\n    // Replace with real selection column\n    const selectionColumn = {\n      fixed: mergedFixed,\n      width: selectionColWidth,\n      className: `${prefixCls}-selection-column`,\n      title: renderColumnTitle(),\n      render: renderSelectionCell,\n      onCell: rowSelection.onCell,\n      [INTERNAL_COL_DEFINE]: {\n        className: columnCls\n      }\n    };\n    return cloneColumns.map(col => col === SELECTION_COLUMN ? selectionColumn : col);\n  }, [getRowKey, flattedData, rowSelection, derivedSelectedKeys, derivedSelectedKeySet, derivedHalfSelectedKeySet, selectionColWidth, mergedSelections, expandType, checkboxPropsMap, onSelectMultiple, triggerSingleSelection, isCheckboxDisabled]);\n  return [transformColumns, derivedSelectedKeySet];\n};\nexport default useSelection;","import { useCallback, useState } from 'react';\n/**\n * @title multipleSelect hooks\n * @description multipleSelect by hold down shift key\n */\nexport default function useMultipleSelect(getKey) {\n  const [prevSelectedIndex, setPrevSelectedIndex] = useState(null);\n  const multipleSelect = useCallback((currentSelectedIndex, data, selectedKeys) => {\n    const configPrevSelectedIndex = prevSelectedIndex !== null && prevSelectedIndex !== void 0 ? prevSelectedIndex : currentSelectedIndex;\n    // add/delete the selected range\n    const startIndex = Math.min(configPrevSelectedIndex || 0, currentSelectedIndex);\n    const endIndex = Math.max(configPrevSelectedIndex || 0, currentSelectedIndex);\n    const rangeKeys = data.slice(startIndex, endIndex + 1).map(item => getKey(item));\n    const shouldSelected = rangeKeys.some(rangeKey => !selectedKeys.has(rangeKey));\n    const changedKeys = [];\n    rangeKeys.forEach(item => {\n      if (shouldSelected) {\n        if (!selectedKeys.has(item)) {\n          changedKeys.push(item);\n        }\n        selectedKeys.add(item);\n      } else {\n        selectedKeys.delete(item);\n        changedKeys.push(item);\n      }\n    });\n    setPrevSelectedIndex(shouldSelected ? endIndex : null);\n    return changedKeys;\n  }, [prevSelectedIndex]);\n  const updatePrevSelectedIndex = val => {\n    setPrevSelectedIndex(val);\n  };\n  return [multipleSelect, updatePrevSelectedIndex];\n}","// Proxy the dom ref with `{ nativeElement, otherFn }` type\n// ref: https://github.com/ant-design/ant-design/discussions/45242\nimport { useImperativeHandle } from 'react';\nfunction fillProxy(element, handler) {\n  element._antProxy = element._antProxy || {};\n  Object.keys(handler).forEach(key => {\n    if (!(key in element._antProxy)) {\n      const ori = element[key];\n      element._antProxy[key] = ori;\n      element[key] = handler[key];\n    }\n  });\n  return element;\n}\nexport default function useProxyImperativeHandle(ref, init) {\n  return useImperativeHandle(ref, () => {\n    const refObj = init();\n    const {\n      nativeElement\n    } = refObj;\n    if (typeof Proxy !== 'undefined') {\n      return new Proxy(nativeElement, {\n        get(obj, prop) {\n          if (refObj[prop]) {\n            return refObj[prop];\n          }\n          return Reflect.get(obj, prop);\n        }\n      });\n    }\n    // Fallback of IE\n    return fillProxy(nativeElement, refObj);\n  });\n}","export function isWindow(obj) {\n  return obj !== null && obj !== undefined && obj === obj.window;\n}\nconst getScroll = target => {\n  var _a, _b;\n  if (typeof window === 'undefined') {\n    return 0;\n  }\n  let result = 0;\n  if (isWindow(target)) {\n    result = target.pageYOffset;\n  } else if (target instanceof Document) {\n    result = target.documentElement.scrollTop;\n  } else if (target instanceof HTMLElement) {\n    result = target.scrollTop;\n  } else if (target) {\n    // According to the type inference, the `target` is `never` type.\n    // Since we configured the loose mode type checking, and supports mocking the target with such shape below::\n    //    `{ documentElement: { scrollLeft: 200, scrollTop: 400 } }`,\n    //    the program may falls into this branch.\n    // Check the corresponding tests for details. Don't sure what is the real scenario this happens.\n    /* biome-ignore lint/complexity/useLiteralKeys: target is a never type */ /* eslint-disable-next-line dot-notation */\n    result = target['scrollTop'];\n  }\n  if (target && !isWindow(target) && typeof result !== 'number') {\n    result = (_b = ((_a = target.ownerDocument) !== null && _a !== void 0 ? _a : target).documentElement) === null || _b === void 0 ? void 0 : _b.scrollTop;\n  }\n  return result;\n};\nexport default getScroll;","\"use client\";\n\nimport React, { useContext } from 'react';\nimport { ConfigContext } from '.';\nimport Empty from '../empty';\nconst DefaultRenderEmpty = props => {\n  const {\n    componentName\n  } = props;\n  const {\n    getPrefixCls\n  } = useContext(ConfigContext);\n  const prefix = getPrefixCls('empty');\n  switch (componentName) {\n    case 'Table':\n    case 'List':\n      return /*#__PURE__*/React.createElement(Empty, {\n        image: Empty.PRESENTED_IMAGE_SIMPLE\n      });\n    case 'Select':\n    case 'TreeSelect':\n    case 'Cascader':\n    case 'Transfer':\n    case 'Mentions':\n      return /*#__PURE__*/React.createElement(Empty, {\n        image: Empty.PRESENTED_IMAGE_SIMPLE,\n        className: `${prefix}-small`\n      });\n    /**\n     * This type of component should satisfy the nullish coalescing operator(??) on the left-hand side.\n     * to let the component itself implement the logic.\n     * For example `Table.filter`.\n     */\n    case 'Table.filter':\n      // why `null`? legacy react16 node type `undefined` is not allowed.\n      return null;\n    default:\n      // Should never hit if we take all the component into consider.\n      return /*#__PURE__*/React.createElement(Empty, null);\n  }\n};\nexport default DefaultRenderEmpty;","import * as React from 'react';\nexport default function useForceUpdate() {\n  const [, forceUpdate] = React.useReducer(x => x + 1, 0);\n  return forceUpdate;\n}","import React from 'react';\nimport { useToken } from '../theme/internal';\nexport const responsiveArray = ['xxl', 'xl', 'lg', 'md', 'sm', 'xs'];\nconst getResponsiveMap = token => ({\n  xs: `(max-width: ${token.screenXSMax}px)`,\n  sm: `(min-width: ${token.screenSM}px)`,\n  md: `(min-width: ${token.screenMD}px)`,\n  lg: `(min-width: ${token.screenLG}px)`,\n  xl: `(min-width: ${token.screenXL}px)`,\n  xxl: `(min-width: ${token.screenXXL}px)`\n});\n/**\n * Ensures that the breakpoints token are valid, in good order\n * For each breakpoint : screenMin <= screen <= screenMax and screenMax <= nextScreenMin\n */\nconst validateBreakpoints = token => {\n  const indexableToken = token;\n  const revBreakpoints = [].concat(responsiveArray).reverse();\n  revBreakpoints.forEach((breakpoint, i) => {\n    const breakpointUpper = breakpoint.toUpperCase();\n    const screenMin = `screen${breakpointUpper}Min`;\n    const screen = `screen${breakpointUpper}`;\n    if (!(indexableToken[screenMin] <= indexableToken[screen])) {\n      throw new Error(`${screenMin}<=${screen} fails : !(${indexableToken[screenMin]}<=${indexableToken[screen]})`);\n    }\n    if (i < revBreakpoints.length - 1) {\n      const screenMax = `screen${breakpointUpper}Max`;\n      if (!(indexableToken[screen] <= indexableToken[screenMax])) {\n        throw new Error(`${screen}<=${screenMax} fails : !(${indexableToken[screen]}<=${indexableToken[screenMax]})`);\n      }\n      const nextBreakpointUpperMin = revBreakpoints[i + 1].toUpperCase();\n      const nextScreenMin = `screen${nextBreakpointUpperMin}Min`;\n      if (!(indexableToken[screenMax] <= indexableToken[nextScreenMin])) {\n        throw new Error(`${screenMax}<=${nextScreenMin} fails : !(${indexableToken[screenMax]}<=${indexableToken[nextScreenMin]})`);\n      }\n    }\n  });\n  return token;\n};\nexport default function useResponsiveObserver() {\n  const [, token] = useToken();\n  const responsiveMap = getResponsiveMap(validateBreakpoints(token));\n  // To avoid repeat create instance, we add `useMemo` here.\n  return React.useMemo(() => {\n    const subscribers = new Map();\n    let subUid = -1;\n    let screens = {};\n    return {\n      matchHandlers: {},\n      dispatch(pointMap) {\n        screens = pointMap;\n        subscribers.forEach(func => func(screens));\n        return subscribers.size >= 1;\n      },\n      subscribe(func) {\n        if (!subscribers.size) this.register();\n        subUid += 1;\n        subscribers.set(subUid, func);\n        func(screens);\n        return subUid;\n      },\n      unsubscribe(paramToken) {\n        subscribers.delete(paramToken);\n        if (!subscribers.size) this.unregister();\n      },\n      unregister() {\n        Object.keys(responsiveMap).forEach(screen => {\n          const matchMediaQuery = responsiveMap[screen];\n          const handler = this.matchHandlers[matchMediaQuery];\n          handler === null || handler === void 0 ? void 0 : handler.mql.removeListener(handler === null || handler === void 0 ? void 0 : handler.listener);\n        });\n        subscribers.clear();\n      },\n      register() {\n        Object.keys(responsiveMap).forEach(screen => {\n          const matchMediaQuery = responsiveMap[screen];\n          const listener = _ref => {\n            let {\n              matches\n            } = _ref;\n            this.dispatch(Object.assign(Object.assign({}, screens), {\n              [screen]: matches\n            }));\n          };\n          const mql = window.matchMedia(matchMediaQuery);\n          mql.addListener(listener);\n          this.matchHandlers[matchMediaQuery] = {\n            mql,\n            listener\n          };\n          listener(mql);\n        });\n      },\n      responsiveMap\n    };\n  }, [token]);\n}\nexport const matchScreen = (screens, screenSizes) => {\n  if (screenSizes && typeof screenSizes === 'object') {\n    for (let i = 0; i < responsiveArray.length; i++) {\n      const breakpoint = responsiveArray[i];\n      if (screens[breakpoint] && screenSizes[breakpoint] !== undefined) {\n        return screenSizes[breakpoint];\n      }\n    }\n  }\n};","\"use client\";\n\nimport { useRef } from 'react';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport useForceUpdate from '../../_util/hooks/useForceUpdate';\nimport useResponsiveObserver from '../../_util/responsiveObserver';\nfunction useBreakpoint() {\n  let refreshOnChange = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n  const screensRef = useRef({});\n  const forceUpdate = useForceUpdate();\n  const responsiveObserver = useResponsiveObserver();\n  useLayoutEffect(() => {\n    const token = responsiveObserver.subscribe(supportScreens => {\n      screensRef.current = supportScreens;\n      if (refreshOnChange) {\n        forceUpdate();\n      }\n    });\n    return () => responsiveObserver.unsubscribe(token);\n  }, []);\n  return screensRef.current;\n}\nexport default useBreakpoint;","// This icon file is generated automatically.\nvar DoubleLeftOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M272.9 512l265.4-339.1c4.1-5.2.4-12.9-6.3-12.9h-77.3c-4.9 0-9.6 2.3-12.6 6.1L186.8 492.3a31.99 31.99 0 000 39.5l255.3 326.1c3 3.9 7.7 6.1 12.6 6.1H532c6.7 0 10.4-7.7 6.3-12.9L272.9 512zm304 0l265.4-339.1c4.1-5.2.4-12.9-6.3-12.9h-77.3c-4.9 0-9.6 2.3-12.6 6.1L490.8 492.3a31.99 31.99 0 000 39.5l255.3 326.1c3 3.9 7.7 6.1 12.6 6.1H836c6.7 0 10.4-7.7 6.3-12.9L576.9 512z\" } }] }, \"name\": \"double-left\", \"theme\": \"outlined\" };\nexport default DoubleLeftOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport DoubleLeftOutlinedSvg from \"@ant-design/icons-svg/es/asn/DoubleLeftOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar DoubleLeftOutlined = function DoubleLeftOutlined(props, ref) {\n  return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n    ref: ref,\n    icon: DoubleLeftOutlinedSvg\n  }));\n};\n\n/**![double-left](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTI3Mi45IDUxMmwyNjUuNC0zMzkuMWM0LjEtNS4yLjQtMTIuOS02LjMtMTIuOWgtNzcuM2MtNC45IDAtOS42IDIuMy0xMi42IDYuMUwxODYuOCA0OTIuM2EzMS45OSAzMS45OSAwIDAwMCAzOS41bDI1NS4zIDMyNi4xYzMgMy45IDcuNyA2LjEgMTIuNiA2LjFINTMyYzYuNyAwIDEwLjQtNy43IDYuMy0xMi45TDI3Mi45IDUxMnptMzA0IDBsMjY1LjQtMzM5LjFjNC4xLTUuMi40LTEyLjktNi4zLTEyLjloLTc3LjNjLTQuOSAwLTkuNiAyLjMtMTIuNiA2LjFMNDkwLjggNDkyLjNhMzEuOTkgMzEuOTkgMCAwMDAgMzkuNWwyNTUuMyAzMjYuMWMzIDMuOSA3LjcgNi4xIDEyLjYgNi4xSDgzNmM2LjcgMCAxMC40LTcuNyA2LjMtMTIuOUw1NzYuOSA1MTJ6IiAvPjwvc3ZnPg==) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(DoubleLeftOutlined);\nif (process.env.NODE_ENV !== 'production') {\n  RefIcon.displayName = 'DoubleLeftOutlined';\n}\nexport default RefIcon;","// This icon file is generated automatically.\nvar DoubleRightOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M533.2 492.3L277.9 166.1c-3-3.9-7.7-6.1-12.6-6.1H188c-6.7 0-10.4 7.7-6.3 12.9L447.1 512 181.7 851.1A7.98 7.98 0 00188 864h77.3c4.9 0 9.6-2.3 12.6-6.1l255.3-326.1c9.1-11.7 9.1-27.9 0-39.5zm304 0L581.9 166.1c-3-3.9-7.7-6.1-12.6-6.1H492c-6.7 0-10.4 7.7-6.3 12.9L751.1 512 485.7 851.1A7.98 7.98 0 00492 864h77.3c4.9 0 9.6-2.3 12.6-6.1l255.3-326.1c9.1-11.7 9.1-27.9 0-39.5z\" } }] }, \"name\": \"double-right\", \"theme\": \"outlined\" };\nexport default DoubleRightOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport DoubleRightOutlinedSvg from \"@ant-design/icons-svg/es/asn/DoubleRightOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar DoubleRightOutlined = function DoubleRightOutlined(props, ref) {\n  return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n    ref: ref,\n    icon: DoubleRightOutlinedSvg\n  }));\n};\n\n/**![double-right](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTUzMy4yIDQ5Mi4zTDI3Ny45IDE2Ni4xYy0zLTMuOS03LjctNi4xLTEyLjYtNi4xSDE4OGMtNi43IDAtMTAuNCA3LjctNi4zIDEyLjlMNDQ3LjEgNTEyIDE4MS43IDg1MS4xQTcuOTggNy45OCAwIDAwMTg4IDg2NGg3Ny4zYzQuOSAwIDkuNi0yLjMgMTIuNi02LjFsMjU1LjMtMzI2LjFjOS4xLTExLjcgOS4xLTI3LjkgMC0zOS41em0zMDQgMEw1ODEuOSAxNjYuMWMtMy0zLjktNy43LTYuMS0xMi42LTYuMUg0OTJjLTYuNyAwLTEwLjQgNy43LTYuMyAxMi45TDc1MS4xIDUxMiA0ODUuNyA4NTEuMUE3Ljk4IDcuOTggMCAwMDQ5MiA4NjRoNzcuM2M0LjkgMCA5LjYtMi4zIDEyLjYtNi4xbDI1NS4zLTMyNi4xYzkuMS0xMS43IDkuMS0yNy45IDAtMzkuNXoiIC8+PC9zdmc+) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(DoubleRightOutlined);\nif (process.env.NODE_ENV !== 'production') {\n  RefIcon.displayName = 'DoubleRightOutlined';\n}\nexport default RefIcon;","var locale = {\n  // Options\n  items_per_page: '条/页',\n  jump_to: '跳至',\n  jump_to_confirm: '确定',\n  page: '页',\n  // Pagination\n  prev_page: '上一页',\n  next_page: '下一页',\n  prev_5: '向前 5 页',\n  next_5: '向后 5 页',\n  prev_3: '向前 3 页',\n  next_3: '向后 3 页',\n  page_size: '页码'\n};\nexport default locale;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport KEYCODE from \"rc-util/es/KeyCode\";\nimport classNames from 'classnames';\nimport React from 'react';\nvar defaultPageSizeOptions = ['10', '20', '50', '100'];\nvar Options = function Options(props) {\n  var _props$pageSizeOption = props.pageSizeOptions,\n    pageSizeOptions = _props$pageSizeOption === void 0 ? defaultPageSizeOptions : _props$pageSizeOption,\n    locale = props.locale,\n    changeSize = props.changeSize,\n    pageSize = props.pageSize,\n    goButton = props.goButton,\n    quickGo = props.quickGo,\n    rootPrefixCls = props.rootPrefixCls,\n    Select = props.selectComponentClass,\n    selectPrefixCls = props.selectPrefixCls,\n    disabled = props.disabled,\n    buildOptionText = props.buildOptionText,\n    showSizeChanger = props.showSizeChanger;\n  var _React$useState = React.useState(''),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    goInputText = _React$useState2[0],\n    setGoInputText = _React$useState2[1];\n  var getValidValue = function getValidValue() {\n    return !goInputText || Number.isNaN(goInputText) ? undefined : Number(goInputText);\n  };\n  var mergeBuildOptionText = typeof buildOptionText === 'function' ? buildOptionText : function (value) {\n    return \"\".concat(value, \" \").concat(locale.items_per_page);\n  };\n  var changeSizeHandle = function changeSizeHandle(value, option) {\n    changeSize === null || changeSize === void 0 || changeSize(Number(value));\n    if (_typeof(showSizeChanger) === 'object') {\n      var _showSizeChanger$onCh;\n      (_showSizeChanger$onCh = showSizeChanger.onChange) === null || _showSizeChanger$onCh === void 0 || _showSizeChanger$onCh.call(showSizeChanger, value, option);\n    }\n  };\n  var handleChange = function handleChange(e) {\n    setGoInputText(e.target.value);\n  };\n  var handleBlur = function handleBlur(e) {\n    if (goButton || goInputText === '') {\n      return;\n    }\n    setGoInputText('');\n    if (e.relatedTarget && (e.relatedTarget.className.indexOf(\"\".concat(rootPrefixCls, \"-item-link\")) >= 0 || e.relatedTarget.className.indexOf(\"\".concat(rootPrefixCls, \"-item\")) >= 0)) {\n      return;\n    }\n    quickGo === null || quickGo === void 0 || quickGo(getValidValue());\n  };\n  var go = function go(e) {\n    if (goInputText === '') {\n      return;\n    }\n    if (e.keyCode === KEYCODE.ENTER || e.type === 'click') {\n      setGoInputText('');\n      quickGo === null || quickGo === void 0 || quickGo(getValidValue());\n    }\n  };\n  var getPageSizeOptions = function getPageSizeOptions() {\n    if (pageSizeOptions.some(function (option) {\n      return option.toString() === pageSize.toString();\n    })) {\n      return pageSizeOptions;\n    }\n    return pageSizeOptions.concat([pageSize.toString()]).sort(function (a, b) {\n      var numberA = Number.isNaN(Number(a)) ? 0 : Number(a);\n      var numberB = Number.isNaN(Number(b)) ? 0 : Number(b);\n      return numberA - numberB;\n    });\n  };\n  // ============== cls ==============\n  var prefixCls = \"\".concat(rootPrefixCls, \"-options\");\n\n  // ============== render ==============\n\n  if (!showSizeChanger && !quickGo) {\n    return null;\n  }\n  var changeSelect = null;\n  var goInput = null;\n  var gotoButton = null;\n  if (showSizeChanger && Select) {\n    var _ref = _typeof(showSizeChanger) === 'object' ? showSizeChanger : {},\n      showSizeChangerOptions = _ref.options,\n      showSizeChangerClassName = _ref.className;\n    // use showSizeChanger.options if existed, otherwise use pageSizeOptions\n    var options = showSizeChangerOptions ? undefined : getPageSizeOptions().map(function (opt, i) {\n      return /*#__PURE__*/React.createElement(Select.Option, {\n        key: i,\n        value: opt.toString()\n      }, mergeBuildOptionText(opt));\n    });\n    changeSelect = /*#__PURE__*/React.createElement(Select, _extends({\n      disabled: disabled,\n      prefixCls: selectPrefixCls,\n      showSearch: false,\n      optionLabelProp: showSizeChangerOptions ? 'label' : 'children',\n      popupMatchSelectWidth: false,\n      value: (pageSize || pageSizeOptions[0]).toString(),\n      getPopupContainer: function getPopupContainer(triggerNode) {\n        return triggerNode.parentNode;\n      },\n      \"aria-label\": locale.page_size,\n      defaultOpen: false\n    }, _typeof(showSizeChanger) === 'object' ? showSizeChanger : null, {\n      className: classNames(\"\".concat(prefixCls, \"-size-changer\"), showSizeChangerClassName),\n      options: showSizeChangerOptions,\n      onChange: changeSizeHandle\n    }), options);\n  }\n  if (quickGo) {\n    if (goButton) {\n      gotoButton = typeof goButton === 'boolean' ? /*#__PURE__*/React.createElement(\"button\", {\n        type: \"button\",\n        onClick: go,\n        onKeyUp: go,\n        disabled: disabled,\n        className: \"\".concat(prefixCls, \"-quick-jumper-button\")\n      }, locale.jump_to_confirm) : /*#__PURE__*/React.createElement(\"span\", {\n        onClick: go,\n        onKeyUp: go\n      }, goButton);\n    }\n    goInput = /*#__PURE__*/React.createElement(\"div\", {\n      className: \"\".concat(prefixCls, \"-quick-jumper\")\n    }, locale.jump_to, /*#__PURE__*/React.createElement(\"input\", {\n      disabled: disabled,\n      type: \"text\",\n      value: goInputText,\n      onChange: handleChange,\n      onKeyUp: go,\n      onBlur: handleBlur,\n      \"aria-label\": locale.page\n    }), locale.page, gotoButton);\n  }\n  return /*#__PURE__*/React.createElement(\"li\", {\n    className: prefixCls\n  }, changeSelect, goInput);\n};\nif (process.env.NODE_ENV !== 'production') {\n  Options.displayName = 'Options';\n}\nexport default Options;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n/* eslint react/prop-types: 0 */\nimport classNames from 'classnames';\nimport React from 'react';\nvar Pager = function Pager(props) {\n  var rootPrefixCls = props.rootPrefixCls,\n    page = props.page,\n    active = props.active,\n    className = props.className,\n    showTitle = props.showTitle,\n    onClick = props.onClick,\n    onKeyPress = props.onKeyPress,\n    itemRender = props.itemRender;\n  var prefixCls = \"\".concat(rootPrefixCls, \"-item\");\n  var cls = classNames(prefixCls, \"\".concat(prefixCls, \"-\").concat(page), _defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-active\"), active), \"\".concat(prefixCls, \"-disabled\"), !page), className);\n  var handleClick = function handleClick() {\n    onClick(page);\n  };\n  var handleKeyPress = function handleKeyPress(e) {\n    onKeyPress(e, onClick, page);\n  };\n  var pager = itemRender(page, 'page', /*#__PURE__*/React.createElement(\"a\", {\n    rel: \"nofollow\"\n  }, page));\n  return pager ? /*#__PURE__*/React.createElement(\"li\", {\n    title: showTitle ? String(page) : null,\n    className: cls,\n    onClick: handleClick,\n    onKeyDown: handleKeyPress,\n    tabIndex: 0\n  }, pager) : null;\n};\nif (process.env.NODE_ENV !== 'production') {\n  Pager.displayName = 'Pager';\n}\nexport default Pager;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport classNames from 'classnames';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport warning from \"rc-util/es/warning\";\nimport React, { useEffect } from 'react';\nimport zhCN from \"./locale/zh_CN\";\nimport Options from \"./Options\";\nimport Pager from \"./Pager\";\nvar defaultItemRender = function defaultItemRender(page, type, element) {\n  return element;\n};\nfunction noop() {}\nfunction isInteger(v) {\n  var value = Number(v);\n  return typeof value === 'number' && !Number.isNaN(value) && isFinite(value) && Math.floor(value) === value;\n}\nfunction calculatePage(p, pageSize, total) {\n  var _pageSize = typeof p === 'undefined' ? pageSize : p;\n  return Math.floor((total - 1) / _pageSize) + 1;\n}\nvar Pagination = function Pagination(props) {\n  var _props$prefixCls = props.prefixCls,\n    prefixCls = _props$prefixCls === void 0 ? 'rc-pagination' : _props$prefixCls,\n    _props$selectPrefixCl = props.selectPrefixCls,\n    selectPrefixCls = _props$selectPrefixCl === void 0 ? 'rc-select' : _props$selectPrefixCl,\n    className = props.className,\n    selectComponentClass = props.selectComponentClass,\n    currentProp = props.current,\n    _props$defaultCurrent = props.defaultCurrent,\n    defaultCurrent = _props$defaultCurrent === void 0 ? 1 : _props$defaultCurrent,\n    _props$total = props.total,\n    total = _props$total === void 0 ? 0 : _props$total,\n    pageSizeProp = props.pageSize,\n    _props$defaultPageSiz = props.defaultPageSize,\n    defaultPageSize = _props$defaultPageSiz === void 0 ? 10 : _props$defaultPageSiz,\n    _props$onChange = props.onChange,\n    onChange = _props$onChange === void 0 ? noop : _props$onChange,\n    hideOnSinglePage = props.hideOnSinglePage,\n    align = props.align,\n    _props$showPrevNextJu = props.showPrevNextJumpers,\n    showPrevNextJumpers = _props$showPrevNextJu === void 0 ? true : _props$showPrevNextJu,\n    showQuickJumper = props.showQuickJumper,\n    showLessItems = props.showLessItems,\n    _props$showTitle = props.showTitle,\n    showTitle = _props$showTitle === void 0 ? true : _props$showTitle,\n    _props$onShowSizeChan = props.onShowSizeChange,\n    onShowSizeChange = _props$onShowSizeChan === void 0 ? noop : _props$onShowSizeChan,\n    _props$locale = props.locale,\n    locale = _props$locale === void 0 ? zhCN : _props$locale,\n    style = props.style,\n    _props$totalBoundaryS = props.totalBoundaryShowSizeChanger,\n    totalBoundaryShowSizeChanger = _props$totalBoundaryS === void 0 ? 50 : _props$totalBoundaryS,\n    disabled = props.disabled,\n    simple = props.simple,\n    showTotal = props.showTotal,\n    _props$showSizeChange = props.showSizeChanger,\n    showSizeChanger = _props$showSizeChange === void 0 ? total > totalBoundaryShowSizeChanger : _props$showSizeChange,\n    pageSizeOptions = props.pageSizeOptions,\n    _props$itemRender = props.itemRender,\n    itemRender = _props$itemRender === void 0 ? defaultItemRender : _props$itemRender,\n    jumpPrevIcon = props.jumpPrevIcon,\n    jumpNextIcon = props.jumpNextIcon,\n    prevIcon = props.prevIcon,\n    nextIcon = props.nextIcon;\n  var paginationRef = React.useRef(null);\n  var _useMergedState = useMergedState(10, {\n      value: pageSizeProp,\n      defaultValue: defaultPageSize\n    }),\n    _useMergedState2 = _slicedToArray(_useMergedState, 2),\n    pageSize = _useMergedState2[0],\n    setPageSize = _useMergedState2[1];\n  var _useMergedState3 = useMergedState(1, {\n      value: currentProp,\n      defaultValue: defaultCurrent,\n      postState: function postState(c) {\n        return Math.max(1, Math.min(c, calculatePage(undefined, pageSize, total)));\n      }\n    }),\n    _useMergedState4 = _slicedToArray(_useMergedState3, 2),\n    current = _useMergedState4[0],\n    setCurrent = _useMergedState4[1];\n  var _React$useState = React.useState(current),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    internalInputVal = _React$useState2[0],\n    setInternalInputVal = _React$useState2[1];\n  useEffect(function () {\n    setInternalInputVal(current);\n  }, [current]);\n  var hasOnChange = onChange !== noop;\n  var hasCurrent = ('current' in props);\n  if (process.env.NODE_ENV !== 'production') {\n    warning(hasCurrent ? hasOnChange : true, 'You provided a `current` prop to a Pagination component without an `onChange` handler. This will render a read-only component.');\n  }\n  var jumpPrevPage = Math.max(1, current - (showLessItems ? 3 : 5));\n  var jumpNextPage = Math.min(calculatePage(undefined, pageSize, total), current + (showLessItems ? 3 : 5));\n  function getItemIcon(icon, label) {\n    var iconNode = icon || /*#__PURE__*/React.createElement(\"button\", {\n      type: \"button\",\n      \"aria-label\": label,\n      className: \"\".concat(prefixCls, \"-item-link\")\n    });\n    if (typeof icon === 'function') {\n      iconNode = /*#__PURE__*/React.createElement(icon, _objectSpread({}, props));\n    }\n    return iconNode;\n  }\n  function getValidValue(e) {\n    var inputValue = e.target.value;\n    var allPages = calculatePage(undefined, pageSize, total);\n    var value;\n    if (inputValue === '') {\n      value = inputValue;\n    } else if (Number.isNaN(Number(inputValue))) {\n      value = internalInputVal;\n    } else if (inputValue >= allPages) {\n      value = allPages;\n    } else {\n      value = Number(inputValue);\n    }\n    return value;\n  }\n  function isValid(page) {\n    return isInteger(page) && page !== current && isInteger(total) && total > 0;\n  }\n  var shouldDisplayQuickJumper = total > pageSize ? showQuickJumper : false;\n\n  /**\n   * prevent \"up arrow\" key reseting cursor position within textbox\n   * @see https://stackoverflow.com/a/1081114\n   */\n  function handleKeyDown(event) {\n    if (event.keyCode === KeyCode.UP || event.keyCode === KeyCode.DOWN) {\n      event.preventDefault();\n    }\n  }\n  function handleKeyUp(event) {\n    var value = getValidValue(event);\n    if (value !== internalInputVal) {\n      setInternalInputVal(value);\n    }\n    switch (event.keyCode) {\n      case KeyCode.ENTER:\n        handleChange(value);\n        break;\n      case KeyCode.UP:\n        handleChange(value - 1);\n        break;\n      case KeyCode.DOWN:\n        handleChange(value + 1);\n        break;\n      default:\n        break;\n    }\n  }\n  function handleBlur(event) {\n    handleChange(getValidValue(event));\n  }\n  function changePageSize(size) {\n    var newCurrent = calculatePage(size, pageSize, total);\n    var nextCurrent = current > newCurrent && newCurrent !== 0 ? newCurrent : current;\n    setPageSize(size);\n    setInternalInputVal(nextCurrent);\n    onShowSizeChange === null || onShowSizeChange === void 0 || onShowSizeChange(current, size);\n    setCurrent(nextCurrent);\n    onChange === null || onChange === void 0 || onChange(nextCurrent, size);\n  }\n  function handleChange(page) {\n    if (isValid(page) && !disabled) {\n      var currentPage = calculatePage(undefined, pageSize, total);\n      var newPage = page;\n      if (page > currentPage) {\n        newPage = currentPage;\n      } else if (page < 1) {\n        newPage = 1;\n      }\n      if (newPage !== internalInputVal) {\n        setInternalInputVal(newPage);\n      }\n      setCurrent(newPage);\n      onChange === null || onChange === void 0 || onChange(newPage, pageSize);\n      return newPage;\n    }\n    return current;\n  }\n  var hasPrev = current > 1;\n  var hasNext = current < calculatePage(undefined, pageSize, total);\n  function prevHandle() {\n    if (hasPrev) handleChange(current - 1);\n  }\n  function nextHandle() {\n    if (hasNext) handleChange(current + 1);\n  }\n  function jumpPrevHandle() {\n    handleChange(jumpPrevPage);\n  }\n  function jumpNextHandle() {\n    handleChange(jumpNextPage);\n  }\n  function runIfEnter(event, callback) {\n    if (event.key === 'Enter' || event.charCode === KeyCode.ENTER || event.keyCode === KeyCode.ENTER) {\n      for (var _len = arguments.length, restParams = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n        restParams[_key - 2] = arguments[_key];\n      }\n      callback.apply(void 0, restParams);\n    }\n  }\n  function runIfEnterPrev(event) {\n    runIfEnter(event, prevHandle);\n  }\n  function runIfEnterNext(event) {\n    runIfEnter(event, nextHandle);\n  }\n  function runIfEnterJumpPrev(event) {\n    runIfEnter(event, jumpPrevHandle);\n  }\n  function runIfEnterJumpNext(event) {\n    runIfEnter(event, jumpNextHandle);\n  }\n  function renderPrev(prevPage) {\n    var prevButton = itemRender(prevPage, 'prev', getItemIcon(prevIcon, 'prev page'));\n    return /*#__PURE__*/React.isValidElement(prevButton) ? /*#__PURE__*/React.cloneElement(prevButton, {\n      disabled: !hasPrev\n    }) : prevButton;\n  }\n  function renderNext(nextPage) {\n    var nextButton = itemRender(nextPage, 'next', getItemIcon(nextIcon, 'next page'));\n    return /*#__PURE__*/React.isValidElement(nextButton) ? /*#__PURE__*/React.cloneElement(nextButton, {\n      disabled: !hasNext\n    }) : nextButton;\n  }\n  function handleGoTO(event) {\n    if (event.type === 'click' || event.keyCode === KeyCode.ENTER) {\n      handleChange(internalInputVal);\n    }\n  }\n  var jumpPrev = null;\n  var dataOrAriaAttributeProps = pickAttrs(props, {\n    aria: true,\n    data: true\n  });\n  var totalText = showTotal && /*#__PURE__*/React.createElement(\"li\", {\n    className: \"\".concat(prefixCls, \"-total-text\")\n  }, showTotal(total, [total === 0 ? 0 : (current - 1) * pageSize + 1, current * pageSize > total ? total : current * pageSize]));\n  var jumpNext = null;\n  var allPages = calculatePage(undefined, pageSize, total);\n\n  // ================== Render ==================\n  // When hideOnSinglePage is true and there is only 1 page, hide the pager\n  if (hideOnSinglePage && total <= pageSize) {\n    return null;\n  }\n  var pagerList = [];\n  var pagerProps = {\n    rootPrefixCls: prefixCls,\n    onClick: handleChange,\n    onKeyPress: runIfEnter,\n    showTitle: showTitle,\n    itemRender: itemRender,\n    page: -1\n  };\n  var prevPage = current - 1 > 0 ? current - 1 : 0;\n  var nextPage = current + 1 < allPages ? current + 1 : allPages;\n  var goButton = showQuickJumper && showQuickJumper.goButton;\n\n  // ================== Simple ==================\n  // FIXME: ts type\n  var isReadOnly = _typeof(simple) === 'object' ? simple.readOnly : !simple;\n  var gotoButton = goButton;\n  var simplePager = null;\n  if (simple) {\n    // ====== Simple quick jump ======\n    if (goButton) {\n      if (typeof goButton === 'boolean') {\n        gotoButton = /*#__PURE__*/React.createElement(\"button\", {\n          type: \"button\",\n          onClick: handleGoTO,\n          onKeyUp: handleGoTO\n        }, locale.jump_to_confirm);\n      } else {\n        gotoButton = /*#__PURE__*/React.createElement(\"span\", {\n          onClick: handleGoTO,\n          onKeyUp: handleGoTO\n        }, goButton);\n      }\n      gotoButton = /*#__PURE__*/React.createElement(\"li\", {\n        title: showTitle ? \"\".concat(locale.jump_to).concat(current, \"/\").concat(allPages) : null,\n        className: \"\".concat(prefixCls, \"-simple-pager\")\n      }, gotoButton);\n    }\n    simplePager = /*#__PURE__*/React.createElement(\"li\", {\n      title: showTitle ? \"\".concat(current, \"/\").concat(allPages) : null,\n      className: \"\".concat(prefixCls, \"-simple-pager\")\n    }, isReadOnly ? internalInputVal : /*#__PURE__*/React.createElement(\"input\", {\n      type: \"text\",\n      value: internalInputVal,\n      disabled: disabled,\n      onKeyDown: handleKeyDown,\n      onKeyUp: handleKeyUp,\n      onChange: handleKeyUp,\n      onBlur: handleBlur,\n      size: 3\n    }), /*#__PURE__*/React.createElement(\"span\", {\n      className: \"\".concat(prefixCls, \"-slash\")\n    }, \"/\"), allPages);\n  }\n\n  // ====================== Normal ======================\n  var pageBufferSize = showLessItems ? 1 : 2;\n  if (allPages <= 3 + pageBufferSize * 2) {\n    if (!allPages) {\n      pagerList.push( /*#__PURE__*/React.createElement(Pager, _extends({}, pagerProps, {\n        key: \"noPager\",\n        page: 1,\n        className: \"\".concat(prefixCls, \"-item-disabled\")\n      })));\n    }\n    for (var i = 1; i <= allPages; i += 1) {\n      pagerList.push( /*#__PURE__*/React.createElement(Pager, _extends({}, pagerProps, {\n        key: i,\n        page: i,\n        active: current === i\n      })));\n    }\n  } else {\n    var prevItemTitle = showLessItems ? locale.prev_3 : locale.prev_5;\n    var nextItemTitle = showLessItems ? locale.next_3 : locale.next_5;\n    var jumpPrevContent = itemRender(jumpPrevPage, 'jump-prev', getItemIcon(jumpPrevIcon, 'prev page'));\n    var jumpNextContent = itemRender(jumpNextPage, 'jump-next', getItemIcon(jumpNextIcon, 'next page'));\n    if (showPrevNextJumpers) {\n      jumpPrev = jumpPrevContent ? /*#__PURE__*/React.createElement(\"li\", {\n        title: showTitle ? prevItemTitle : null,\n        key: \"prev\",\n        onClick: jumpPrevHandle,\n        tabIndex: 0,\n        onKeyDown: runIfEnterJumpPrev,\n        className: classNames(\"\".concat(prefixCls, \"-jump-prev\"), _defineProperty({}, \"\".concat(prefixCls, \"-jump-prev-custom-icon\"), !!jumpPrevIcon))\n      }, jumpPrevContent) : null;\n      jumpNext = jumpNextContent ? /*#__PURE__*/React.createElement(\"li\", {\n        title: showTitle ? nextItemTitle : null,\n        key: \"next\",\n        onClick: jumpNextHandle,\n        tabIndex: 0,\n        onKeyDown: runIfEnterJumpNext,\n        className: classNames(\"\".concat(prefixCls, \"-jump-next\"), _defineProperty({}, \"\".concat(prefixCls, \"-jump-next-custom-icon\"), !!jumpNextIcon))\n      }, jumpNextContent) : null;\n    }\n    var left = Math.max(1, current - pageBufferSize);\n    var right = Math.min(current + pageBufferSize, allPages);\n    if (current - 1 <= pageBufferSize) {\n      right = 1 + pageBufferSize * 2;\n    }\n    if (allPages - current <= pageBufferSize) {\n      left = allPages - pageBufferSize * 2;\n    }\n    for (var _i = left; _i <= right; _i += 1) {\n      pagerList.push( /*#__PURE__*/React.createElement(Pager, _extends({}, pagerProps, {\n        key: _i,\n        page: _i,\n        active: current === _i\n      })));\n    }\n    if (current - 1 >= pageBufferSize * 2 && current !== 1 + 2) {\n      pagerList[0] = /*#__PURE__*/React.cloneElement(pagerList[0], {\n        className: classNames(\"\".concat(prefixCls, \"-item-after-jump-prev\"), pagerList[0].props.className)\n      });\n      pagerList.unshift(jumpPrev);\n    }\n    if (allPages - current >= pageBufferSize * 2 && current !== allPages - 2) {\n      var lastOne = pagerList[pagerList.length - 1];\n      pagerList[pagerList.length - 1] = /*#__PURE__*/React.cloneElement(lastOne, {\n        className: classNames(\"\".concat(prefixCls, \"-item-before-jump-next\"), lastOne.props.className)\n      });\n      pagerList.push(jumpNext);\n    }\n    if (left !== 1) {\n      pagerList.unshift( /*#__PURE__*/React.createElement(Pager, _extends({}, pagerProps, {\n        key: 1,\n        page: 1\n      })));\n    }\n    if (right !== allPages) {\n      pagerList.push( /*#__PURE__*/React.createElement(Pager, _extends({}, pagerProps, {\n        key: allPages,\n        page: allPages\n      })));\n    }\n  }\n  var prev = renderPrev(prevPage);\n  if (prev) {\n    var prevDisabled = !hasPrev || !allPages;\n    prev = /*#__PURE__*/React.createElement(\"li\", {\n      title: showTitle ? locale.prev_page : null,\n      onClick: prevHandle,\n      tabIndex: prevDisabled ? null : 0,\n      onKeyDown: runIfEnterPrev,\n      className: classNames(\"\".concat(prefixCls, \"-prev\"), _defineProperty({}, \"\".concat(prefixCls, \"-disabled\"), prevDisabled)),\n      \"aria-disabled\": prevDisabled\n    }, prev);\n  }\n  var next = renderNext(nextPage);\n  if (next) {\n    var nextDisabled, nextTabIndex;\n    if (simple) {\n      nextDisabled = !hasNext;\n      nextTabIndex = hasPrev ? 0 : null;\n    } else {\n      nextDisabled = !hasNext || !allPages;\n      nextTabIndex = nextDisabled ? null : 0;\n    }\n    next = /*#__PURE__*/React.createElement(\"li\", {\n      title: showTitle ? locale.next_page : null,\n      onClick: nextHandle,\n      tabIndex: nextTabIndex,\n      onKeyDown: runIfEnterNext,\n      className: classNames(\"\".concat(prefixCls, \"-next\"), _defineProperty({}, \"\".concat(prefixCls, \"-disabled\"), nextDisabled)),\n      \"aria-disabled\": nextDisabled\n    }, next);\n  }\n  var cls = classNames(prefixCls, className, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-start\"), align === 'start'), \"\".concat(prefixCls, \"-center\"), align === 'center'), \"\".concat(prefixCls, \"-end\"), align === 'end'), \"\".concat(prefixCls, \"-simple\"), simple), \"\".concat(prefixCls, \"-disabled\"), disabled));\n  return /*#__PURE__*/React.createElement(\"ul\", _extends({\n    className: cls,\n    style: style,\n    ref: paginationRef\n  }, dataOrAriaAttributeProps), totalText, prev, simple ? simplePager : pagerList, next, /*#__PURE__*/React.createElement(Options, {\n    locale: locale,\n    rootPrefixCls: prefixCls,\n    disabled: disabled,\n    selectComponentClass: selectComponentClass,\n    selectPrefixCls: selectPrefixCls,\n    changeSize: changePageSize,\n    pageSize: pageSize,\n    pageSizeOptions: pageSizeOptions,\n    quickGo: shouldDisplayQuickJumper ? handleChange : null,\n    goButton: gotoButton,\n    showSizeChanger: showSizeChanger\n  }));\n};\nif (process.env.NODE_ENV !== 'production') {\n  Pagination.displayName = 'Pagination';\n}\nexport default Pagination;","import classNames from 'classnames';\nconst _InputStatuses = ['warning', 'error', ''];\nexport function getStatusClassNames(prefixCls, status, hasFeedback) {\n  return classNames({\n    [`${prefixCls}-status-success`]: status === 'success',\n    [`${prefixCls}-status-warning`]: status === 'warning',\n    [`${prefixCls}-status-error`]: status === 'error',\n    [`${prefixCls}-status-validating`]: status === 'validating',\n    [`${prefixCls}-has-feedback`]: hasFeedback\n  });\n}\nexport const getMergedStatus = (contextStatus, customStatus) => customStatus || contextStatus;","import { useContext } from 'react';\nimport { VariantContext } from '../context';\nimport { ConfigContext, Variants } from '../../config-provider';\n/**\n * Compatible for legacy `bordered` prop.\n */\nconst useVariant = function (component, variant) {\n  let legacyBordered = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;\n  var _a, _b;\n  const {\n    variant: configVariant,\n    [component]: componentConfig\n  } = useContext(ConfigContext);\n  const ctxVariant = useContext(VariantContext);\n  const configComponentVariant = componentConfig === null || componentConfig === void 0 ? void 0 : componentConfig.variant;\n  let mergedVariant;\n  if (typeof variant !== 'undefined') {\n    mergedVariant = variant;\n  } else if (legacyBordered === false) {\n    mergedVariant = 'borderless';\n  } else {\n    // form variant > component global variant > global variant\n    mergedVariant = (_b = (_a = ctxVariant !== null && ctxVariant !== void 0 ? ctxVariant : configComponentVariant) !== null && _a !== void 0 ? _a : configVariant) !== null && _b !== void 0 ? _b : 'outlined';\n  }\n  const enableVariantCls = Variants.includes(mergedVariant);\n  return [mergedVariant, enableVariantCls];\n};\nexport default useVariant;","const getBuiltInPlacements = popupOverflow => {\n  const htmlRegion = popupOverflow === 'scroll' ? 'scroll' : 'visible';\n  const sharedConfig = {\n    overflow: {\n      adjustX: true,\n      adjustY: true,\n      shiftY: true\n    },\n    htmlRegion,\n    dynamicInset: true\n  };\n  return {\n    bottomLeft: Object.assign(Object.assign({}, sharedConfig), {\n      points: ['tl', 'bl'],\n      offset: [0, 4]\n    }),\n    bottomRight: Object.assign(Object.assign({}, sharedConfig), {\n      points: ['tr', 'br'],\n      offset: [0, 4]\n    }),\n    topLeft: Object.assign(Object.assign({}, sharedConfig), {\n      points: ['bl', 'tl'],\n      offset: [0, -4]\n    }),\n    topRight: Object.assign(Object.assign({}, sharedConfig), {\n      points: ['br', 'tr'],\n      offset: [0, -4]\n    })\n  };\n};\nfunction mergedBuiltinPlacements(buildInPlacements, popupOverflow) {\n  return buildInPlacements || getBuiltInPlacements(popupOverflow);\n}\nexport default mergedBuiltinPlacements;","import { resetComponent, textEllipsis } from '../../style';\nimport { initMoveMotion, initSlideMotion, slideDownIn, slideDownOut, slideUpIn, slideUpOut } from '../../style/motion';\nconst genItemStyle = token => {\n  const {\n    optionHeight,\n    optionFontSize,\n    optionLineHeight,\n    optionPadding\n  } = token;\n  return {\n    position: 'relative',\n    display: 'block',\n    minHeight: optionHeight,\n    padding: optionPadding,\n    color: token.colorText,\n    fontWeight: 'normal',\n    fontSize: optionFontSize,\n    lineHeight: optionLineHeight,\n    boxSizing: 'border-box'\n  };\n};\nconst genSingleStyle = token => {\n  const {\n    antCls,\n    componentCls\n  } = token;\n  const selectItemCls = `${componentCls}-item`;\n  const slideUpEnterActive = `&${antCls}-slide-up-enter${antCls}-slide-up-enter-active`;\n  const slideUpAppearActive = `&${antCls}-slide-up-appear${antCls}-slide-up-appear-active`;\n  const slideUpLeaveActive = `&${antCls}-slide-up-leave${antCls}-slide-up-leave-active`;\n  const dropdownPlacementCls = `${componentCls}-dropdown-placement-`;\n  return [{\n    [`${componentCls}-dropdown`]: Object.assign(Object.assign({}, resetComponent(token)), {\n      position: 'absolute',\n      top: -9999,\n      zIndex: token.zIndexPopup,\n      boxSizing: 'border-box',\n      padding: token.paddingXXS,\n      overflow: 'hidden',\n      fontSize: token.fontSize,\n      // Fix select render lag of long text in chrome\n      // https://github.com/ant-design/ant-design/issues/11456\n      // https://github.com/ant-design/ant-design/issues/11843\n      fontVariant: 'initial',\n      backgroundColor: token.colorBgElevated,\n      borderRadius: token.borderRadiusLG,\n      outline: 'none',\n      boxShadow: token.boxShadowSecondary,\n      [`\n          ${slideUpEnterActive}${dropdownPlacementCls}bottomLeft,\n          ${slideUpAppearActive}${dropdownPlacementCls}bottomLeft\n        `]: {\n        animationName: slideUpIn\n      },\n      [`\n          ${slideUpEnterActive}${dropdownPlacementCls}topLeft,\n          ${slideUpAppearActive}${dropdownPlacementCls}topLeft,\n          ${slideUpEnterActive}${dropdownPlacementCls}topRight,\n          ${slideUpAppearActive}${dropdownPlacementCls}topRight\n        `]: {\n        animationName: slideDownIn\n      },\n      [`${slideUpLeaveActive}${dropdownPlacementCls}bottomLeft`]: {\n        animationName: slideUpOut\n      },\n      [`\n          ${slideUpLeaveActive}${dropdownPlacementCls}topLeft,\n          ${slideUpLeaveActive}${dropdownPlacementCls}topRight\n        `]: {\n        animationName: slideDownOut\n      },\n      '&-hidden': {\n        display: 'none'\n      },\n      [selectItemCls]: Object.assign(Object.assign({}, genItemStyle(token)), {\n        cursor: 'pointer',\n        transition: `background ${token.motionDurationSlow} ease`,\n        borderRadius: token.borderRadiusSM,\n        // =========== Group ============\n        '&-group': {\n          color: token.colorTextDescription,\n          fontSize: token.fontSizeSM,\n          cursor: 'default'\n        },\n        // =========== Option ===========\n        '&-option': {\n          display: 'flex',\n          '&-content': Object.assign({\n            flex: 'auto'\n          }, textEllipsis),\n          '&-state': {\n            flex: 'none',\n            display: 'flex',\n            alignItems: 'center'\n          },\n          [`&-active:not(${selectItemCls}-option-disabled)`]: {\n            backgroundColor: token.optionActiveBg\n          },\n          [`&-selected:not(${selectItemCls}-option-disabled)`]: {\n            color: token.optionSelectedColor,\n            fontWeight: token.optionSelectedFontWeight,\n            backgroundColor: token.optionSelectedBg,\n            [`${selectItemCls}-option-state`]: {\n              color: token.colorPrimary\n            },\n            [`&:has(+ ${selectItemCls}-option-selected:not(${selectItemCls}-option-disabled))`]: {\n              borderEndStartRadius: 0,\n              borderEndEndRadius: 0,\n              [`& + ${selectItemCls}-option-selected:not(${selectItemCls}-option-disabled)`]: {\n                borderStartStartRadius: 0,\n                borderStartEndRadius: 0\n              }\n            }\n          },\n          '&-disabled': {\n            [`&${selectItemCls}-option-selected`]: {\n              backgroundColor: token.colorBgContainerDisabled\n            },\n            color: token.colorTextDisabled,\n            cursor: 'not-allowed'\n          },\n          '&-grouped': {\n            paddingInlineStart: token.calc(token.controlPaddingHorizontal).mul(2).equal()\n          }\n        },\n        '&-empty': Object.assign(Object.assign({}, genItemStyle(token)), {\n          color: token.colorTextDisabled\n        })\n      }),\n      // =========================== RTL ===========================\n      '&-rtl': {\n        direction: 'rtl'\n      }\n    })\n  },\n  // Follow code may reuse in other components\n  initSlideMotion(token, 'slide-up'), initSlideMotion(token, 'slide-down'), initMoveMotion(token, 'move-up'), initMoveMotion(token, 'move-down')];\n};\nexport default genSingleStyle;","import { unit } from '@ant-design/cssinjs';\nimport { resetIcon } from '../../style';\nimport { mergeToken } from '../../theme/internal';\n/**\n * Get multiple selector needed style. The calculation:\n *\n * ContainerPadding = BasePadding - ItemMargin\n *\n * Border:                    ╔═══════════════════════════╗                 ┬\n * ContainerPadding:          ║                           ║                 │\n *                            ╟───────────────────────────╢     ┬           │\n * Item Margin:               ║                           ║     │           │\n *                            ║             ┌──────────┐  ║     │           │\n * Item(multipleItemHeight):  ║ BasePadding │   Item   │  ║  Overflow  Container(ControlHeight)\n *                            ║             └──────────┘  ║     │           │\n * Item Margin:               ║                           ║     │           │\n *                            ╟───────────────────────────╢     ┴           │\n * ContainerPadding:          ║                           ║                 │\n * Border:                    ╚═══════════════════════════╝                 ┴\n */\nexport const getMultipleSelectorUnit = token => {\n  const {\n    multipleSelectItemHeight,\n    paddingXXS,\n    lineWidth,\n    INTERNAL_FIXED_ITEM_MARGIN\n  } = token;\n  const basePadding = token.max(token.calc(paddingXXS).sub(lineWidth).equal(), 0);\n  const containerPadding = token.max(token.calc(basePadding).sub(INTERNAL_FIXED_ITEM_MARGIN).equal(), 0);\n  return {\n    basePadding,\n    containerPadding,\n    itemHeight: unit(multipleSelectItemHeight),\n    itemLineHeight: unit(token.calc(multipleSelectItemHeight).sub(token.calc(token.lineWidth).mul(2)).equal())\n  };\n};\nconst getSelectItemStyle = token => {\n  const {\n    multipleSelectItemHeight,\n    selectHeight,\n    lineWidth\n  } = token;\n  const selectItemDist = token.calc(selectHeight).sub(multipleSelectItemHeight).div(2).sub(lineWidth).equal();\n  return selectItemDist;\n};\n/**\n * Get the `rc-overflow` needed style.\n * It's a share style which means not affected by `size`.\n */\nexport const genOverflowStyle = token => {\n  const {\n    componentCls,\n    iconCls,\n    borderRadiusSM,\n    motionDurationSlow,\n    paddingXS,\n    multipleItemColorDisabled,\n    multipleItemBorderColorDisabled,\n    colorIcon,\n    colorIconHover,\n    INTERNAL_FIXED_ITEM_MARGIN\n  } = token;\n  const selectOverflowPrefixCls = `${componentCls}-selection-overflow`;\n  return {\n    /**\n     * Do not merge `height` & `line-height` under style with `selection` & `search`, since chrome\n     * may update to redesign with its align logic.\n     */\n    // =========================== Overflow ===========================\n    [selectOverflowPrefixCls]: {\n      position: 'relative',\n      display: 'flex',\n      flex: 'auto',\n      flexWrap: 'wrap',\n      maxWidth: '100%',\n      '&-item': {\n        flex: 'none',\n        alignSelf: 'center',\n        maxWidth: '100%',\n        display: 'inline-flex'\n      },\n      // ======================== Selections ==========================\n      [`${componentCls}-selection-item`]: {\n        display: 'flex',\n        alignSelf: 'center',\n        flex: 'none',\n        boxSizing: 'border-box',\n        maxWidth: '100%',\n        marginBlock: INTERNAL_FIXED_ITEM_MARGIN,\n        borderRadius: borderRadiusSM,\n        cursor: 'default',\n        transition: `font-size ${motionDurationSlow}, line-height ${motionDurationSlow}, height ${motionDurationSlow}`,\n        marginInlineEnd: token.calc(INTERNAL_FIXED_ITEM_MARGIN).mul(2).equal(),\n        paddingInlineStart: paddingXS,\n        paddingInlineEnd: token.calc(paddingXS).div(2).equal(),\n        [`${componentCls}-disabled&`]: {\n          color: multipleItemColorDisabled,\n          borderColor: multipleItemBorderColorDisabled,\n          cursor: 'not-allowed'\n        },\n        // It's ok not to do this, but 24px makes bottom narrow in view should adjust\n        '&-content': {\n          display: 'inline-block',\n          marginInlineEnd: token.calc(paddingXS).div(2).equal(),\n          overflow: 'hidden',\n          whiteSpace: 'pre',\n          // fix whitespace wrapping. custom tags display all whitespace within.\n          textOverflow: 'ellipsis'\n        },\n        '&-remove': Object.assign(Object.assign({}, resetIcon()), {\n          display: 'inline-flex',\n          alignItems: 'center',\n          color: colorIcon,\n          fontWeight: 'bold',\n          fontSize: 10,\n          lineHeight: 'inherit',\n          cursor: 'pointer',\n          [`> ${iconCls}`]: {\n            verticalAlign: '-0.2em'\n          },\n          '&:hover': {\n            color: colorIconHover\n          }\n        })\n      }\n    }\n  };\n};\nconst genSelectionStyle = (token, suffix) => {\n  const {\n    componentCls,\n    INTERNAL_FIXED_ITEM_MARGIN\n  } = token;\n  const selectOverflowPrefixCls = `${componentCls}-selection-overflow`;\n  const selectItemHeight = token.multipleSelectItemHeight;\n  const selectItemDist = getSelectItemStyle(token);\n  const suffixCls = suffix ? `${componentCls}-${suffix}` : '';\n  const multipleSelectorUnit = getMultipleSelectorUnit(token);\n  return {\n    [`${componentCls}-multiple${suffixCls}`]: Object.assign(Object.assign({}, genOverflowStyle(token)), {\n      // ========================= Selector =========================\n      [`${componentCls}-selector`]: {\n        display: 'flex',\n        flexWrap: 'wrap',\n        alignItems: 'center',\n        height: '100%',\n        // Multiple is little different that horizontal is follow the vertical\n        paddingInline: multipleSelectorUnit.basePadding,\n        paddingBlock: multipleSelectorUnit.containerPadding,\n        borderRadius: token.borderRadius,\n        [`${componentCls}-disabled&`]: {\n          background: token.multipleSelectorBgDisabled,\n          cursor: 'not-allowed'\n        },\n        '&:after': {\n          display: 'inline-block',\n          width: 0,\n          margin: `${unit(INTERNAL_FIXED_ITEM_MARGIN)} 0`,\n          lineHeight: unit(selectItemHeight),\n          visibility: 'hidden',\n          content: '\"\\\\a0\"'\n        }\n      },\n      // ======================== Selections ========================\n      [`${componentCls}-selection-item`]: {\n        height: multipleSelectorUnit.itemHeight,\n        lineHeight: unit(multipleSelectorUnit.itemLineHeight)\n      },\n      // ========================== Input ==========================\n      [`${selectOverflowPrefixCls}-item + ${selectOverflowPrefixCls}-item`]: {\n        [`${componentCls}-selection-search`]: {\n          marginInlineStart: 0\n        }\n      },\n      // https://github.com/ant-design/ant-design/issues/44754\n      [`${selectOverflowPrefixCls}-item-suffix`]: {\n        height: '100%'\n      },\n      [`${componentCls}-selection-search`]: {\n        display: 'inline-flex',\n        position: 'relative',\n        maxWidth: '100%',\n        marginInlineStart: token.calc(token.inputPaddingHorizontalBase).sub(selectItemDist).equal(),\n        [`\n          &-input,\n          &-mirror\n        `]: {\n          height: selectItemHeight,\n          fontFamily: token.fontFamily,\n          lineHeight: unit(selectItemHeight),\n          transition: `all ${token.motionDurationSlow}`\n        },\n        '&-input': {\n          width: '100%',\n          minWidth: 4.1 // fix search cursor missing\n        },\n        '&-mirror': {\n          position: 'absolute',\n          top: 0,\n          insetInlineStart: 0,\n          insetInlineEnd: 'auto',\n          zIndex: 999,\n          whiteSpace: 'pre',\n          // fix whitespace wrapping caused width calculation bug\n          visibility: 'hidden'\n        }\n      },\n      // ======================= Placeholder =======================\n      [`${componentCls}-selection-placeholder`]: {\n        position: 'absolute',\n        top: '50%',\n        insetInlineStart: token.inputPaddingHorizontalBase,\n        insetInlineEnd: token.inputPaddingHorizontalBase,\n        transform: 'translateY(-50%)',\n        transition: `all ${token.motionDurationSlow}`\n      }\n    })\n  };\n};\nfunction genSizeStyle(token, suffix) {\n  const {\n    componentCls\n  } = token;\n  const suffixCls = suffix ? `${componentCls}-${suffix}` : '';\n  const rawStyle = {\n    [`${componentCls}-multiple${suffixCls}`]: {\n      fontSize: token.fontSize,\n      // ========================= Selector =========================\n      [`${componentCls}-selector`]: {\n        [`${componentCls}-show-search&`]: {\n          cursor: 'text'\n        }\n      },\n      [`\n        &${componentCls}-show-arrow ${componentCls}-selector,\n        &${componentCls}-allow-clear ${componentCls}-selector\n      `]: {\n        paddingInlineEnd: token.calc(token.fontSizeIcon).add(token.controlPaddingHorizontal).equal()\n      }\n    }\n  };\n  return [genSelectionStyle(token, suffix), rawStyle];\n}\nconst genMultipleStyle = token => {\n  const {\n    componentCls\n  } = token;\n  const smallToken = mergeToken(token, {\n    selectHeight: token.controlHeightSM,\n    multipleSelectItemHeight: token.multipleItemHeightSM,\n    borderRadius: token.borderRadiusSM,\n    borderRadiusSM: token.borderRadiusXS\n  });\n  const largeToken = mergeToken(token, {\n    fontSize: token.fontSizeLG,\n    selectHeight: token.controlHeightLG,\n    multipleSelectItemHeight: token.multipleItemHeightLG,\n    borderRadius: token.borderRadiusLG,\n    borderRadiusSM: token.borderRadius\n  });\n  return [genSizeStyle(token),\n  // ======================== Small ========================\n  genSizeStyle(smallToken, 'sm'),\n  // Padding\n  {\n    [`${componentCls}-multiple${componentCls}-sm`]: {\n      [`${componentCls}-selection-placeholder`]: {\n        insetInline: token.calc(token.controlPaddingHorizontalSM).sub(token.lineWidth).equal()\n      },\n      // https://github.com/ant-design/ant-design/issues/29559\n      [`${componentCls}-selection-search`]: {\n        marginInlineStart: 2 // Magic Number\n      }\n    }\n  },\n  // ======================== Large ========================\n  genSizeStyle(largeToken, 'lg')];\n};\nexport default genMultipleStyle;","import { unit } from '@ant-design/cssinjs';\nimport { resetComponent } from '../../style';\nimport { mergeToken } from '../../theme/internal';\nfunction genSizeStyle(token, suffix) {\n  const {\n    componentCls,\n    inputPaddingHorizontalBase,\n    borderRadius,\n    fontSizeIcon\n  } = token;\n  const selectHeightWithoutBorder = token.calc(token.controlHeight).sub(token.calc(token.lineWidth).mul(2)).equal();\n  const singleInputPaddingHorizontal = token.calc(inputPaddingHorizontalBase).add(fontSizeIcon).equal();\n  const suffixCls = suffix ? `${componentCls}-${suffix}` : '';\n  return {\n    [`${componentCls}-single${suffixCls}`]: {\n      fontSize: token.fontSize,\n      height: token.controlHeight,\n      // ========================= Selector =========================\n      [`${componentCls}-selector`]: Object.assign(Object.assign({}, resetComponent(token, true)), {\n        display: 'flex',\n        borderRadius,\n        [`${componentCls}-selection-search`]: {\n          position: 'absolute',\n          top: 0,\n          insetInlineStart: inputPaddingHorizontalBase,\n          insetInlineEnd: unit(singleInputPaddingHorizontal),\n          bottom: 0,\n          '&-input': {\n            width: '100%',\n            WebkitAppearance: 'textfield'\n          }\n        },\n        [`\n          ${componentCls}-selection-item,\n          ${componentCls}-selection-placeholder\n        `]: {\n          padding: 0,\n          lineHeight: unit(selectHeightWithoutBorder),\n          transition: `all ${token.motionDurationSlow}, visibility 0s`,\n          alignSelf: 'center'\n        },\n        [`${componentCls}-selection-placeholder`]: {\n          transition: 'none',\n          pointerEvents: 'none'\n        },\n        // For common baseline align\n        [['&:after', /* For '' value baseline align */\n        `${componentCls}-selection-item:empty:after`, /* For undefined value baseline align */\n        `${componentCls}-selection-placeholder:empty:after`].join(',')]: {\n          display: 'inline-block',\n          width: 0,\n          visibility: 'hidden',\n          content: '\"\\\\a0\"'\n        }\n      }),\n      [`\n        &${componentCls}-show-arrow ${componentCls}-selection-item,\n        &${componentCls}-show-arrow ${componentCls}-selection-placeholder\n      `]: {\n        paddingInlineEnd: token.showArrowPaddingInlineEnd\n      },\n      // Opacity selection if open\n      [`&${componentCls}-open ${componentCls}-selection-item`]: {\n        color: token.colorTextPlaceholder\n      },\n      // ========================== Input ==========================\n      // We only change the style of non-customize input which is only support by `combobox` mode.\n      // Not customize\n      [`&:not(${componentCls}-customize-input)`]: {\n        [`${componentCls}-selector`]: {\n          width: '100%',\n          height: '100%',\n          padding: `0 ${unit(inputPaddingHorizontalBase)}`,\n          [`${componentCls}-selection-search-input`]: {\n            height: selectHeightWithoutBorder\n          },\n          '&:after': {\n            lineHeight: unit(selectHeightWithoutBorder)\n          }\n        }\n      },\n      [`&${componentCls}-customize-input`]: {\n        [`${componentCls}-selector`]: {\n          '&:after': {\n            display: 'none'\n          },\n          [`${componentCls}-selection-search`]: {\n            position: 'static',\n            width: '100%'\n          },\n          [`${componentCls}-selection-placeholder`]: {\n            position: 'absolute',\n            insetInlineStart: 0,\n            insetInlineEnd: 0,\n            padding: `0 ${unit(inputPaddingHorizontalBase)}`,\n            '&:after': {\n              display: 'none'\n            }\n          }\n        }\n      }\n    }\n  };\n}\nexport default function genSingleStyle(token) {\n  const {\n    componentCls\n  } = token;\n  const inputPaddingHorizontalSM = token.calc(token.controlPaddingHorizontalSM).sub(token.lineWidth).equal();\n  return [genSizeStyle(token),\n  // ======================== Small ========================\n  // Shared\n  genSizeStyle(mergeToken(token, {\n    controlHeight: token.controlHeightSM,\n    borderRadius: token.borderRadiusSM\n  }), 'sm'),\n  // padding\n  {\n    [`${componentCls}-single${componentCls}-sm`]: {\n      [`&:not(${componentCls}-customize-input)`]: {\n        [`${componentCls}-selection-search`]: {\n          insetInlineStart: inputPaddingHorizontalSM,\n          insetInlineEnd: inputPaddingHorizontalSM\n        },\n        [`${componentCls}-selector`]: {\n          padding: `0 ${unit(inputPaddingHorizontalSM)}`\n        },\n        // With arrow should provides `padding-right` to show the arrow\n        [`&${componentCls}-show-arrow ${componentCls}-selection-search`]: {\n          insetInlineEnd: token.calc(inputPaddingHorizontalSM).add(token.calc(token.fontSize).mul(1.5)).equal()\n        },\n        [`\n            &${componentCls}-show-arrow ${componentCls}-selection-item,\n            &${componentCls}-show-arrow ${componentCls}-selection-placeholder\n          `]: {\n          paddingInlineEnd: token.calc(token.fontSize).mul(1.5).equal()\n        }\n      }\n    }\n  },\n  // ======================== Large ========================\n  // Shared\n  genSizeStyle(mergeToken(token, {\n    controlHeight: token.singleItemHeightLG,\n    fontSize: token.fontSizeLG,\n    borderRadius: token.borderRadiusLG\n  }), 'lg')];\n}","export const prepareComponentToken = token => {\n  const {\n    fontSize,\n    lineHeight,\n    lineWidth,\n    controlHeight,\n    controlHeightSM,\n    controlHeightLG,\n    paddingXXS,\n    controlPaddingHorizontal,\n    zIndexPopupBase,\n    colorText,\n    fontWeightStrong,\n    controlItemBgActive,\n    controlItemBgHover,\n    colorBgContainer,\n    colorFillSecondary,\n    colorBgContainerDisabled,\n    colorTextDisabled,\n    colorPrimaryHover,\n    colorPrimary,\n    controlOutline\n  } = token;\n  // Item height default use `controlHeight - 2 * paddingXXS`,\n  // but some case `paddingXXS=0`.\n  // Let's fallback it.\n  const dblPaddingXXS = paddingXXS * 2;\n  const dblLineWidth = lineWidth * 2;\n  const multipleItemHeight = Math.min(controlHeight - dblPaddingXXS, controlHeight - dblLineWidth);\n  const multipleItemHeightSM = Math.min(controlHeightSM - dblPaddingXXS, controlHeightSM - dblLineWidth);\n  const multipleItemHeightLG = Math.min(controlHeightLG - dblPaddingXXS, controlHeightLG - dblLineWidth);\n  // FIXED_ITEM_MARGIN is a hardcode calculation since calc not support rounding\n  const INTERNAL_FIXED_ITEM_MARGIN = Math.floor(paddingXXS / 2);\n  return {\n    INTERNAL_FIXED_ITEM_MARGIN,\n    zIndexPopup: zIndexPopupBase + 50,\n    optionSelectedColor: colorText,\n    optionSelectedFontWeight: fontWeightStrong,\n    optionSelectedBg: controlItemBgActive,\n    optionActiveBg: controlItemBgHover,\n    optionPadding: `${(controlHeight - fontSize * lineHeight) / 2}px ${controlPaddingHorizontal}px`,\n    optionFontSize: fontSize,\n    optionLineHeight: lineHeight,\n    optionHeight: controlHeight,\n    selectorBg: colorBgContainer,\n    clearBg: colorBgContainer,\n    singleItemHeightLG: controlHeightLG,\n    multipleItemBg: colorFillSecondary,\n    multipleItemBorderColor: 'transparent',\n    multipleItemHeight,\n    multipleItemHeightSM,\n    multipleItemHeightLG,\n    multipleSelectorBgDisabled: colorBgContainerDisabled,\n    multipleItemColorDisabled: colorTextDisabled,\n    multipleItemBorderColorDisabled: 'transparent',\n    showArrowPaddingInlineEnd: Math.ceil(token.fontSize * 1.25),\n    hoverBorderColor: colorPrimaryHover,\n    activeBorderColor: colorPrimary,\n    activeOutlineColor: controlOutline\n  };\n};","import { unit } from '@ant-design/cssinjs';\n// =====================================================\n// ==                  Outlined                       ==\n// =====================================================\nconst genBaseOutlinedStyle = (token, options) => {\n  const {\n    componentCls,\n    antCls,\n    controlOutlineWidth\n  } = token;\n  return {\n    [`&:not(${componentCls}-customize-input) ${componentCls}-selector`]: {\n      border: `${unit(token.lineWidth)} ${token.lineType} ${options.borderColor}`,\n      background: token.selectorBg\n    },\n    [`&:not(${componentCls}-disabled):not(${componentCls}-customize-input):not(${antCls}-pagination-size-changer)`]: {\n      [`&:hover ${componentCls}-selector`]: {\n        borderColor: options.hoverBorderHover\n      },\n      [`${componentCls}-focused& ${componentCls}-selector`]: {\n        borderColor: options.activeBorderColor,\n        boxShadow: `0 0 0 ${unit(controlOutlineWidth)} ${options.activeOutlineColor}`,\n        outline: 0\n      }\n    }\n  };\n};\nconst genOutlinedStatusStyle = (token, options) => ({\n  [`&${token.componentCls}-status-${options.status}`]: Object.assign({}, genBaseOutlinedStyle(token, options))\n});\nconst genOutlinedStyle = token => ({\n  '&-outlined': Object.assign(Object.assign(Object.assign(Object.assign({}, genBaseOutlinedStyle(token, {\n    borderColor: token.colorBorder,\n    hoverBorderHover: token.hoverBorderColor,\n    activeBorderColor: token.activeBorderColor,\n    activeOutlineColor: token.activeOutlineColor\n  })), genOutlinedStatusStyle(token, {\n    status: 'error',\n    borderColor: token.colorError,\n    hoverBorderHover: token.colorErrorHover,\n    activeBorderColor: token.colorError,\n    activeOutlineColor: token.colorErrorOutline\n  })), genOutlinedStatusStyle(token, {\n    status: 'warning',\n    borderColor: token.colorWarning,\n    hoverBorderHover: token.colorWarningHover,\n    activeBorderColor: token.colorWarning,\n    activeOutlineColor: token.colorWarningOutline\n  })), {\n    [`&${token.componentCls}-disabled`]: {\n      [`&:not(${token.componentCls}-customize-input) ${token.componentCls}-selector`]: {\n        background: token.colorBgContainerDisabled,\n        color: token.colorTextDisabled\n      }\n    },\n    [`&${token.componentCls}-multiple ${token.componentCls}-selection-item`]: {\n      background: token.multipleItemBg,\n      border: `${unit(token.lineWidth)} ${token.lineType} ${token.multipleItemBorderColor}`\n    }\n  })\n});\n// =====================================================\n// ==                   Filled                        ==\n// =====================================================\nconst genBaseFilledStyle = (token, options) => {\n  const {\n    componentCls,\n    antCls\n  } = token;\n  return {\n    [`&:not(${componentCls}-customize-input) ${componentCls}-selector`]: {\n      background: options.bg,\n      border: `${unit(token.lineWidth)} ${token.lineType} transparent`,\n      color: options.color\n    },\n    [`&:not(${componentCls}-disabled):not(${componentCls}-customize-input):not(${antCls}-pagination-size-changer)`]: {\n      [`&:hover ${componentCls}-selector`]: {\n        background: options.hoverBg\n      },\n      [`${componentCls}-focused& ${componentCls}-selector`]: {\n        background: token.selectorBg,\n        borderColor: options.activeBorderColor,\n        outline: 0\n      }\n    }\n  };\n};\nconst genFilledStatusStyle = (token, options) => ({\n  [`&${token.componentCls}-status-${options.status}`]: Object.assign({}, genBaseFilledStyle(token, options))\n});\nconst genFilledStyle = token => ({\n  '&-filled': Object.assign(Object.assign(Object.assign(Object.assign({}, genBaseFilledStyle(token, {\n    bg: token.colorFillTertiary,\n    hoverBg: token.colorFillSecondary,\n    activeBorderColor: token.colorPrimary,\n    color: token.colorText\n  })), genFilledStatusStyle(token, {\n    status: 'error',\n    bg: token.colorErrorBg,\n    hoverBg: token.colorErrorBgHover,\n    activeBorderColor: token.colorError,\n    color: token.colorError\n  })), genFilledStatusStyle(token, {\n    status: 'warning',\n    bg: token.colorWarningBg,\n    hoverBg: token.colorWarningBgHover,\n    activeBorderColor: token.colorWarning,\n    color: token.colorWarning\n  })), {\n    [`&${token.componentCls}-disabled`]: {\n      [`&:not(${token.componentCls}-customize-input) ${token.componentCls}-selector`]: {\n        borderColor: token.colorBorder,\n        background: token.colorBgContainerDisabled,\n        color: token.colorTextDisabled\n      }\n    },\n    [`&${token.componentCls}-multiple ${token.componentCls}-selection-item`]: {\n      background: token.colorBgContainer,\n      border: `${unit(token.lineWidth)} ${token.lineType} ${token.colorSplit}`\n    }\n  })\n});\n// =====================================================\n// ==                 Borderless                      ==\n// =====================================================\nconst genBorderlessStyle = token => ({\n  '&-borderless': {\n    [`${token.componentCls}-selector`]: {\n      background: 'transparent',\n      borderColor: 'transparent'\n    },\n    [`&${token.componentCls}-disabled`]: {\n      [`&:not(${token.componentCls}-customize-input) ${token.componentCls}-selector`]: {\n        color: token.colorTextDisabled\n      }\n    },\n    [`&${token.componentCls}-multiple ${token.componentCls}-selection-item`]: {\n      background: token.multipleItemBg,\n      border: `${unit(token.lineWidth)} ${token.lineType} ${token.multipleItemBorderColor}`\n    },\n    // Status\n    [`&${token.componentCls}-status-error`]: {\n      [`${token.componentCls}-selection-item`]: {\n        color: token.colorError\n      }\n    },\n    [`&${token.componentCls}-status-warning`]: {\n      [`${token.componentCls}-selection-item`]: {\n        color: token.colorWarning\n      }\n    }\n  }\n});\nconst genVariantsStyle = token => ({\n  [token.componentCls]: Object.assign(Object.assign(Object.assign({}, genOutlinedStyle(token)), genFilledStyle(token)), genBorderlessStyle(token))\n});\nexport default genVariantsStyle;","import { resetComponent, resetIcon, textEllipsis } from '../../style';\nimport { genCompactItemStyle } from '../../style/compact-item';\nimport { genStyleHooks, mergeToken } from '../../theme/internal';\nimport genDropdownStyle from './dropdown';\nimport genMultipleStyle from './multiple';\nimport genSingleStyle from './single';\nimport { prepareComponentToken } from './token';\nimport genVariantsStyle from './variants';\n// ============================= Selector =============================\nconst genSelectorStyle = token => {\n  const {\n    componentCls\n  } = token;\n  return {\n    position: 'relative',\n    transition: `all ${token.motionDurationMid} ${token.motionEaseInOut}`,\n    input: {\n      cursor: 'pointer'\n    },\n    [`${componentCls}-show-search&`]: {\n      cursor: 'text',\n      input: {\n        cursor: 'auto',\n        color: 'inherit',\n        height: '100%'\n      }\n    },\n    [`${componentCls}-disabled&`]: {\n      cursor: 'not-allowed',\n      input: {\n        cursor: 'not-allowed'\n      }\n    }\n  };\n};\n// ============================== Styles ==============================\n// /* Reset search input style */\nconst getSearchInputWithoutBorderStyle = token => {\n  const {\n    componentCls\n  } = token;\n  return {\n    [`${componentCls}-selection-search-input`]: {\n      margin: 0,\n      padding: 0,\n      background: 'transparent',\n      border: 'none',\n      outline: 'none',\n      appearance: 'none',\n      fontFamily: 'inherit',\n      '&::-webkit-search-cancel-button': {\n        display: 'none',\n        '-webkit-appearance': 'none'\n      }\n    }\n  };\n};\n// =============================== Base ===============================\nconst genBaseStyle = token => {\n  const {\n    antCls,\n    componentCls,\n    inputPaddingHorizontalBase,\n    iconCls\n  } = token;\n  return {\n    [componentCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n      position: 'relative',\n      display: 'inline-block',\n      cursor: 'pointer',\n      [`&:not(${componentCls}-customize-input) ${componentCls}-selector`]: Object.assign(Object.assign({}, genSelectorStyle(token)), getSearchInputWithoutBorderStyle(token)),\n      // ======================== Selection ========================\n      [`${componentCls}-selection-item`]: Object.assign(Object.assign({\n        flex: 1,\n        fontWeight: 'normal',\n        position: 'relative',\n        userSelect: 'none'\n      }, textEllipsis), {\n        // https://github.com/ant-design/ant-design/issues/40421\n        [`> ${antCls}-typography`]: {\n          display: 'inline'\n        }\n      }),\n      // ======================= Placeholder =======================\n      [`${componentCls}-selection-placeholder`]: Object.assign(Object.assign({}, textEllipsis), {\n        flex: 1,\n        color: token.colorTextPlaceholder,\n        pointerEvents: 'none'\n      }),\n      // ========================== Arrow ==========================\n      [`${componentCls}-arrow`]: Object.assign(Object.assign({}, resetIcon()), {\n        position: 'absolute',\n        top: '50%',\n        insetInlineStart: 'auto',\n        insetInlineEnd: inputPaddingHorizontalBase,\n        height: token.fontSizeIcon,\n        marginTop: token.calc(token.fontSizeIcon).mul(-1).div(2).equal(),\n        color: token.colorTextQuaternary,\n        fontSize: token.fontSizeIcon,\n        lineHeight: 1,\n        textAlign: 'center',\n        pointerEvents: 'none',\n        display: 'flex',\n        alignItems: 'center',\n        transition: `opacity ${token.motionDurationSlow} ease`,\n        [iconCls]: {\n          verticalAlign: 'top',\n          transition: `transform ${token.motionDurationSlow}`,\n          '> svg': {\n            verticalAlign: 'top'\n          },\n          [`&:not(${componentCls}-suffix)`]: {\n            pointerEvents: 'auto'\n          }\n        },\n        [`${componentCls}-disabled &`]: {\n          cursor: 'not-allowed'\n        },\n        '> *:not(:last-child)': {\n          marginInlineEnd: 8 // FIXME: magic\n        }\n      }),\n      // ========================== Clear ==========================\n      [`${componentCls}-clear`]: {\n        position: 'absolute',\n        top: '50%',\n        insetInlineStart: 'auto',\n        insetInlineEnd: inputPaddingHorizontalBase,\n        zIndex: 1,\n        display: 'inline-block',\n        width: token.fontSizeIcon,\n        height: token.fontSizeIcon,\n        marginTop: token.calc(token.fontSizeIcon).mul(-1).div(2).equal(),\n        color: token.colorTextQuaternary,\n        fontSize: token.fontSizeIcon,\n        fontStyle: 'normal',\n        lineHeight: 1,\n        textAlign: 'center',\n        textTransform: 'none',\n        cursor: 'pointer',\n        opacity: 0,\n        transition: `color ${token.motionDurationMid} ease, opacity ${token.motionDurationSlow} ease`,\n        textRendering: 'auto',\n        '&:before': {\n          display: 'block'\n        },\n        '&:hover': {\n          color: token.colorTextTertiary\n        }\n      },\n      [`&:hover ${componentCls}-clear`]: {\n        opacity: 1,\n        background: token.colorBgBase,\n        borderRadius: '50%'\n      }\n    }),\n    // ========================= Feedback ==========================\n    [`${componentCls}-has-feedback`]: {\n      [`${componentCls}-clear`]: {\n        insetInlineEnd: token.calc(inputPaddingHorizontalBase).add(token.fontSize).add(token.paddingXS).equal()\n      }\n    }\n  };\n};\n// ============================== Styles ==============================\nconst genSelectStyle = token => {\n  const {\n    componentCls\n  } = token;\n  return [{\n    [componentCls]: {\n      // ==================== In Form ====================\n      [`&${componentCls}-in-form-item`]: {\n        width: '100%'\n      }\n    }\n  },\n  // =====================================================\n  // ==                       LTR                       ==\n  // =====================================================\n  // Base\n  genBaseStyle(token),\n  // Single\n  genSingleStyle(token),\n  // Multiple\n  genMultipleStyle(token),\n  // Dropdown\n  genDropdownStyle(token),\n  // =====================================================\n  // ==                       RTL                       ==\n  // =====================================================\n  {\n    [`${componentCls}-rtl`]: {\n      direction: 'rtl'\n    }\n  },\n  // =====================================================\n  // ==             Space Compact                       ==\n  // =====================================================\n  genCompactItemStyle(token, {\n    borderElCls: `${componentCls}-selector`,\n    focusElCls: `${componentCls}-focused`\n  })];\n};\n// ============================== Export ==============================\nexport default genStyleHooks('Select', (token, _ref) => {\n  let {\n    rootPrefixCls\n  } = _ref;\n  const selectToken = mergeToken(token, {\n    rootPrefixCls,\n    inputPaddingHorizontalBase: token.calc(token.paddingSM).sub(1).equal(),\n    multipleSelectItemHeight: token.multipleItemHeight,\n    selectHeight: token.controlHeight\n  });\n  return [genSelectStyle(selectToken), genVariantsStyle(selectToken)];\n}, prepareComponentToken, {\n  unitless: {\n    optionLineHeight: true,\n    optionSelectedFontWeight: true\n  }\n});","// This icon file is generated automatically.\nvar CheckOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M912 190h-69.9c-9.8 0-19.1 4.5-25.1 12.2L404.7 724.5 207 474a32 32 0 00-25.1-12.2H112c-6.7 0-10.4 7.7-6.3 12.9l273.9 347c12.8 16.2 37.4 16.2 50.3 0l488.4-618.9c4.1-5.1.4-12.8-6.3-12.8z\" } }] }, \"name\": \"check\", \"theme\": \"outlined\" };\nexport default CheckOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport CheckOutlinedSvg from \"@ant-design/icons-svg/es/asn/CheckOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar CheckOutlined = function CheckOutlined(props, ref) {\n  return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n    ref: ref,\n    icon: CheckOutlinedSvg\n  }));\n};\n\n/**![check](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTkxMiAxOTBoLTY5LjljLTkuOCAwLTE5LjEgNC41LTI1LjEgMTIuMkw0MDQuNyA3MjQuNSAyMDcgNDc0YTMyIDMyIDAgMDAtMjUuMS0xMi4ySDExMmMtNi43IDAtMTAuNCA3LjctNi4zIDEyLjlsMjczLjkgMzQ3YzEyLjggMTYuMiAzNy40IDE2LjIgNTAuMyAwbDQ4OC40LTYxOC45YzQuMS01LjEuNC0xMi44LTYuMy0xMi44eiIgLz48L3N2Zz4=) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(CheckOutlined);\nif (process.env.NODE_ENV !== 'production') {\n  RefIcon.displayName = 'CheckOutlined';\n}\nexport default RefIcon;","// This icon file is generated automatically.\nvar SearchOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M909.6 854.5L649.9 594.8C690.2 542.7 712 479 712 412c0-80.2-31.3-155.4-87.9-212.1-56.6-56.7-132-87.9-212.1-87.9s-155.5 31.3-212.1 87.9C143.2 256.5 112 331.8 112 412c0 80.1 31.3 155.5 87.9 212.1C256.5 680.8 331.8 712 412 712c67 0 130.6-21.8 182.7-62l259.7 259.6a8.2 8.2 0 0011.6 0l43.6-43.5a8.2 8.2 0 000-11.6zM570.4 570.4C528 612.7 471.8 636 412 636s-116-23.3-158.4-65.6C211.3 528 188 471.8 188 412s23.3-116.1 65.6-158.4C296 211.3 352.2 188 412 188s116.1 23.2 158.4 65.6S636 352.2 636 412s-23.3 116.1-65.6 158.4z\" } }] }, \"name\": \"search\", \"theme\": \"outlined\" };\nexport default SearchOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport SearchOutlinedSvg from \"@ant-design/icons-svg/es/asn/SearchOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar SearchOutlined = function SearchOutlined(props, ref) {\n  return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n    ref: ref,\n    icon: SearchOutlinedSvg\n  }));\n};\n\n/**![search](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTkwOS42IDg1NC41TDY0OS45IDU5NC44QzY5MC4yIDU0Mi43IDcxMiA0NzkgNzEyIDQxMmMwLTgwLjItMzEuMy0xNTUuNC04Ny45LTIxMi4xLTU2LjYtNTYuNy0xMzItODcuOS0yMTIuMS04Ny45cy0xNTUuNSAzMS4zLTIxMi4xIDg3LjlDMTQzLjIgMjU2LjUgMTEyIDMzMS44IDExMiA0MTJjMCA4MC4xIDMxLjMgMTU1LjUgODcuOSAyMTIuMUMyNTYuNSA2ODAuOCAzMzEuOCA3MTIgNDEyIDcxMmM2NyAwIDEzMC42LTIxLjggMTgyLjctNjJsMjU5LjcgMjU5LjZhOC4yIDguMiAwIDAwMTEuNiAwbDQzLjYtNDMuNWE4LjIgOC4yIDAgMDAwLTExLjZ6TTU3MC40IDU3MC40QzUyOCA2MTIuNyA0NzEuOCA2MzYgNDEyIDYzNnMtMTE2LTIzLjMtMTU4LjQtNjUuNkMyMTEuMyA1MjggMTg4IDQ3MS44IDE4OCA0MTJzMjMuMy0xMTYuMSA2NS42LTE1OC40QzI5NiAyMTEuMyAzNTIuMiAxODggNDEyIDE4OHMxMTYuMSAyMy4yIDE1OC40IDY1LjZTNjM2IDM1Mi4yIDYzNiA0MTJzLTIzLjMgMTE2LjEtNjUuNiAxNTguNHoiIC8+PC9zdmc+) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(SearchOutlined);\nif (process.env.NODE_ENV !== 'production') {\n  RefIcon.displayName = 'SearchOutlined';\n}\nexport default RefIcon;","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n  var t = {};\n  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n  }\n  return t;\n};\n// TODO: 4.0 - codemod should help to change `filterOption` to support node props.\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport RcSelect, { OptGroup, Option } from 'rc-select';\nimport omit from \"rc-util/es/omit\";\nimport { useZIndex } from '../_util/hooks/useZIndex';\nimport { getTransitionName } from '../_util/motion';\nimport genPurePanel from '../_util/PurePanel';\nimport { getMergedStatus, getStatusClassNames } from '../_util/statusUtils';\nimport { devUseWarning } from '../_util/warning';\nimport { ConfigContext } from '../config-provider';\nimport DefaultRenderEmpty from '../config-provider/defaultRenderEmpty';\nimport DisabledContext from '../config-provider/DisabledContext';\nimport useCSSVarCls from '../config-provider/hooks/useCSSVarCls';\nimport useSize from '../config-provider/hooks/useSize';\nimport { FormItemInputContext } from '../form/context';\nimport useVariants from '../form/hooks/useVariants';\nimport { useCompactItemContext } from '../space/Compact';\nimport { useToken } from '../theme/internal';\nimport mergedBuiltinPlacements from './mergedBuiltinPlacements';\nimport useStyle from './style';\nimport useIcons from './useIcons';\nimport useShowArrow from './useShowArrow';\nconst SECRET_COMBOBOX_MODE_DO_NOT_USE = 'SECRET_COMBOBOX_MODE_DO_NOT_USE';\nconst InternalSelect = (props, ref) => {\n  var _a;\n  const {\n      prefixCls: customizePrefixCls,\n      bordered,\n      className,\n      rootClassName,\n      getPopupContainer,\n      popupClassName,\n      dropdownClassName,\n      listHeight = 256,\n      placement,\n      listItemHeight: customListItemHeight,\n      size: customizeSize,\n      disabled: customDisabled,\n      notFoundContent,\n      status: customStatus,\n      builtinPlacements,\n      dropdownMatchSelectWidth,\n      popupMatchSelectWidth,\n      direction: propDirection,\n      style,\n      allowClear,\n      variant: customizeVariant,\n      dropdownStyle,\n      transitionName,\n      tagRender,\n      maxCount\n    } = props,\n    rest = __rest(props, [\"prefixCls\", \"bordered\", \"className\", \"rootClassName\", \"getPopupContainer\", \"popupClassName\", \"dropdownClassName\", \"listHeight\", \"placement\", \"listItemHeight\", \"size\", \"disabled\", \"notFoundContent\", \"status\", \"builtinPlacements\", \"dropdownMatchSelectWidth\", \"popupMatchSelectWidth\", \"direction\", \"style\", \"allowClear\", \"variant\", \"dropdownStyle\", \"transitionName\", \"tagRender\", \"maxCount\"]);\n  const {\n    getPopupContainer: getContextPopupContainer,\n    getPrefixCls,\n    renderEmpty,\n    direction: contextDirection,\n    virtual,\n    popupMatchSelectWidth: contextPopupMatchSelectWidth,\n    popupOverflow,\n    select\n  } = React.useContext(ConfigContext);\n  const [, token] = useToken();\n  const listItemHeight = customListItemHeight !== null && customListItemHeight !== void 0 ? customListItemHeight : token === null || token === void 0 ? void 0 : token.controlHeight;\n  const prefixCls = getPrefixCls('select', customizePrefixCls);\n  const rootPrefixCls = getPrefixCls();\n  const direction = propDirection !== null && propDirection !== void 0 ? propDirection : contextDirection;\n  const {\n    compactSize,\n    compactItemClassnames\n  } = useCompactItemContext(prefixCls, direction);\n  const [variant, enableVariantCls] = useVariants('select', customizeVariant, bordered);\n  const rootCls = useCSSVarCls(prefixCls);\n  const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls, rootCls);\n  const mode = React.useMemo(() => {\n    const {\n      mode: m\n    } = props;\n    if (m === 'combobox') {\n      return undefined;\n    }\n    if (m === SECRET_COMBOBOX_MODE_DO_NOT_USE) {\n      return 'combobox';\n    }\n    return m;\n  }, [props.mode]);\n  const isMultiple = mode === 'multiple' || mode === 'tags';\n  const showSuffixIcon = useShowArrow(props.suffixIcon, props.showArrow);\n  const mergedPopupMatchSelectWidth = (_a = popupMatchSelectWidth !== null && popupMatchSelectWidth !== void 0 ? popupMatchSelectWidth : dropdownMatchSelectWidth) !== null && _a !== void 0 ? _a : contextPopupMatchSelectWidth;\n  // ===================== Form Status =====================\n  const {\n    status: contextStatus,\n    hasFeedback,\n    isFormItemInput,\n    feedbackIcon\n  } = React.useContext(FormItemInputContext);\n  const mergedStatus = getMergedStatus(contextStatus, customStatus);\n  // ===================== Empty =====================\n  let mergedNotFound;\n  if (notFoundContent !== undefined) {\n    mergedNotFound = notFoundContent;\n  } else if (mode === 'combobox') {\n    mergedNotFound = null;\n  } else {\n    mergedNotFound = (renderEmpty === null || renderEmpty === void 0 ? void 0 : renderEmpty('Select')) || /*#__PURE__*/React.createElement(DefaultRenderEmpty, {\n      componentName: \"Select\"\n    });\n  }\n  // ===================== Icons =====================\n  const {\n    suffixIcon,\n    itemIcon,\n    removeIcon,\n    clearIcon\n  } = useIcons(Object.assign(Object.assign({}, rest), {\n    multiple: isMultiple,\n    hasFeedback,\n    feedbackIcon,\n    showSuffixIcon,\n    prefixCls,\n    componentName: 'Select'\n  }));\n  const mergedAllowClear = allowClear === true ? {\n    clearIcon\n  } : allowClear;\n  const selectProps = omit(rest, ['suffixIcon', 'itemIcon']);\n  const mergedPopupClassName = classNames(popupClassName || dropdownClassName, {\n    [`${prefixCls}-dropdown-${direction}`]: direction === 'rtl'\n  }, rootClassName, cssVarCls, rootCls, hashId);\n  const mergedSize = useSize(ctx => {\n    var _a;\n    return (_a = customizeSize !== null && customizeSize !== void 0 ? customizeSize : compactSize) !== null && _a !== void 0 ? _a : ctx;\n  });\n  // ===================== Disabled =====================\n  const disabled = React.useContext(DisabledContext);\n  const mergedDisabled = customDisabled !== null && customDisabled !== void 0 ? customDisabled : disabled;\n  const mergedClassName = classNames({\n    [`${prefixCls}-lg`]: mergedSize === 'large',\n    [`${prefixCls}-sm`]: mergedSize === 'small',\n    [`${prefixCls}-rtl`]: direction === 'rtl',\n    [`${prefixCls}-${variant}`]: enableVariantCls,\n    [`${prefixCls}-in-form-item`]: isFormItemInput\n  }, getStatusClassNames(prefixCls, mergedStatus, hasFeedback), compactItemClassnames, select === null || select === void 0 ? void 0 : select.className, className, rootClassName, cssVarCls, rootCls, hashId);\n  // ===================== Placement =====================\n  const memoPlacement = React.useMemo(() => {\n    if (placement !== undefined) {\n      return placement;\n    }\n    return direction === 'rtl' ? 'bottomRight' : 'bottomLeft';\n  }, [placement, direction]);\n  // ====================== Warning ======================\n  if (process.env.NODE_ENV !== 'production') {\n    const warning = devUseWarning('Select');\n    warning.deprecated(!dropdownClassName, 'dropdownClassName', 'popupClassName');\n    warning.deprecated(dropdownMatchSelectWidth === undefined, 'dropdownMatchSelectWidth', 'popupMatchSelectWidth');\n    process.env.NODE_ENV !== \"production\" ? warning(!('showArrow' in props), 'deprecated', '`showArrow` is deprecated which will be removed in next major version. It will be a default behavior, you can hide it by setting `suffixIcon` to null.') : void 0;\n    warning.deprecated(!('bordered' in props), 'bordered', 'variant');\n    process.env.NODE_ENV !== \"production\" ? warning(!(typeof maxCount !== 'undefined' && !isMultiple), 'usage', '`maxCount` only works with mode `multiple` or `tags`') : void 0;\n  }\n  // ====================== zIndex =========================\n  const [zIndex] = useZIndex('SelectLike', dropdownStyle === null || dropdownStyle === void 0 ? void 0 : dropdownStyle.zIndex);\n  // ====================== Render =======================\n  return wrapCSSVar(/*#__PURE__*/React.createElement(RcSelect, Object.assign({\n    ref: ref,\n    virtual: virtual,\n    showSearch: select === null || select === void 0 ? void 0 : select.showSearch\n  }, selectProps, {\n    style: Object.assign(Object.assign({}, select === null || select === void 0 ? void 0 : select.style), style),\n    dropdownMatchSelectWidth: mergedPopupMatchSelectWidth,\n    transitionName: getTransitionName(rootPrefixCls, 'slide-up', transitionName),\n    builtinPlacements: mergedBuiltinPlacements(builtinPlacements, popupOverflow),\n    listHeight: listHeight,\n    listItemHeight: listItemHeight,\n    mode: mode,\n    prefixCls: prefixCls,\n    placement: memoPlacement,\n    direction: direction,\n    suffixIcon: suffixIcon,\n    menuItemSelectedIcon: itemIcon,\n    removeIcon: removeIcon,\n    allowClear: mergedAllowClear,\n    notFoundContent: mergedNotFound,\n    className: mergedClassName,\n    getPopupContainer: getPopupContainer || getContextPopupContainer,\n    dropdownClassName: mergedPopupClassName,\n    disabled: mergedDisabled,\n    dropdownStyle: Object.assign(Object.assign({}, dropdownStyle), {\n      zIndex\n    }),\n    maxCount: isMultiple ? maxCount : undefined,\n    tagRender: isMultiple ? tagRender : undefined\n  })));\n};\nif (process.env.NODE_ENV !== 'production') {\n  InternalSelect.displayName = 'Select';\n}\nconst Select = /*#__PURE__*/React.forwardRef(InternalSelect);\n// We don't care debug panel\n/* istanbul ignore next */\nconst PurePanel = genPurePanel(Select);\nSelect.SECRET_COMBOBOX_MODE_DO_NOT_USE = SECRET_COMBOBOX_MODE_DO_NOT_USE;\nSelect.Option = Option;\nSelect.OptGroup = OptGroup;\nSelect._InternalPanelDoNotUseOrYouWillBeFired = PurePanel;\nif (process.env.NODE_ENV !== 'production') {\n  Select.displayName = 'Select';\n}\nexport default Select;","/**\n * Since Select, TreeSelect, Cascader is same Select like component.\n * We just use same hook to handle this logic.\n *\n * If `suffixIcon` is not equal to `null`, always show it.\n */\nexport default function useShowArrow(suffixIcon, showArrow) {\n  return showArrow !== undefined ? showArrow : suffixIcon !== null;\n}","\"use client\";\n\nimport * as React from 'react';\nimport CheckOutlined from \"@ant-design/icons/es/icons/CheckOutlined\";\nimport CloseCircleFilled from \"@ant-design/icons/es/icons/CloseCircleFilled\";\nimport CloseOutlined from \"@ant-design/icons/es/icons/CloseOutlined\";\nimport DownOutlined from \"@ant-design/icons/es/icons/DownOutlined\";\nimport LoadingOutlined from \"@ant-design/icons/es/icons/LoadingOutlined\";\nimport SearchOutlined from \"@ant-design/icons/es/icons/SearchOutlined\";\nimport { devUseWarning } from '../_util/warning';\nexport default function useIcons(_ref) {\n  let {\n    suffixIcon,\n    clearIcon,\n    menuItemSelectedIcon,\n    removeIcon,\n    loading,\n    multiple,\n    hasFeedback,\n    prefixCls,\n    showSuffixIcon,\n    feedbackIcon,\n    showArrow,\n    componentName\n  } = _ref;\n  if (process.env.NODE_ENV !== 'production') {\n    const warning = devUseWarning(componentName);\n    warning.deprecated(!clearIcon, 'clearIcon', 'allowClear={{ clearIcon: React.ReactNode }}');\n  }\n  // Clear Icon\n  const mergedClearIcon = clearIcon !== null && clearIcon !== void 0 ? clearIcon : /*#__PURE__*/React.createElement(CloseCircleFilled, null);\n  // Validation Feedback Icon\n  const getSuffixIconNode = arrowIcon => {\n    if (suffixIcon === null && !hasFeedback && !showArrow) {\n      return null;\n    }\n    return /*#__PURE__*/React.createElement(React.Fragment, null, showSuffixIcon !== false && arrowIcon, hasFeedback && feedbackIcon);\n  };\n  // Arrow item icon\n  let mergedSuffixIcon = null;\n  if (suffixIcon !== undefined) {\n    mergedSuffixIcon = getSuffixIconNode(suffixIcon);\n  } else if (loading) {\n    mergedSuffixIcon = getSuffixIconNode(/*#__PURE__*/React.createElement(LoadingOutlined, {\n      spin: true\n    }));\n  } else {\n    const iconCls = `${prefixCls}-suffix`;\n    mergedSuffixIcon = _ref2 => {\n      let {\n        open,\n        showSearch\n      } = _ref2;\n      if (open && showSearch) {\n        return getSuffixIconNode(/*#__PURE__*/React.createElement(SearchOutlined, {\n          className: iconCls\n        }));\n      }\n      return getSuffixIconNode(/*#__PURE__*/React.createElement(DownOutlined, {\n        className: iconCls\n      }));\n    };\n  }\n  // Checked item icon\n  let mergedItemIcon = null;\n  if (menuItemSelectedIcon !== undefined) {\n    mergedItemIcon = menuItemSelectedIcon;\n  } else if (multiple) {\n    mergedItemIcon = /*#__PURE__*/React.createElement(CheckOutlined, null);\n  } else {\n    mergedItemIcon = null;\n  }\n  let mergedRemoveIcon = null;\n  if (removeIcon !== undefined) {\n    mergedRemoveIcon = removeIcon;\n  } else {\n    mergedRemoveIcon = /*#__PURE__*/React.createElement(CloseOutlined, null);\n  }\n  return {\n    clearIcon: mergedClearIcon,\n    suffixIcon: mergedSuffixIcon,\n    itemIcon: mergedItemIcon,\n    removeIcon: mergedRemoveIcon\n  };\n}","\"use client\";\n\nimport * as React from 'react';\nimport Select from '../select';\nconst MiniSelect = props => /*#__PURE__*/React.createElement(Select, Object.assign({}, props, {\n  showSearch: true,\n  size: \"small\"\n}));\nconst MiddleSelect = props => /*#__PURE__*/React.createElement(Select, Object.assign({}, props, {\n  showSearch: true,\n  size: \"middle\"\n}));\nMiniSelect.Option = Select.Option;\nMiddleSelect.Option = Select.Option;\nexport { MiniSelect, MiddleSelect };","import { mergeToken } from '../../theme/internal';\nexport function initInputToken(token) {\n  return mergeToken(token, {\n    inputAffixPadding: token.paddingXXS\n  });\n}\nexport const initComponentToken = token => {\n  const {\n    controlHeight,\n    fontSize,\n    lineHeight,\n    lineWidth,\n    controlHeightSM,\n    controlHeightLG,\n    fontSizeLG,\n    lineHeightLG,\n    paddingSM,\n    controlPaddingHorizontalSM,\n    controlPaddingHorizontal,\n    colorFillAlter,\n    colorPrimaryHover,\n    colorPrimary,\n    controlOutlineWidth,\n    controlOutline,\n    colorErrorOutline,\n    colorWarningOutline,\n    colorBgContainer\n  } = token;\n  return {\n    paddingBlock: Math.max(Math.round((controlHeight - fontSize * lineHeight) / 2 * 10) / 10 - lineWidth, 0),\n    paddingBlockSM: Math.max(Math.round((controlHeightSM - fontSize * lineHeight) / 2 * 10) / 10 - lineWidth, 0),\n    paddingBlockLG: Math.ceil((controlHeightLG - fontSizeLG * lineHeightLG) / 2 * 10) / 10 - lineWidth,\n    paddingInline: paddingSM - lineWidth,\n    paddingInlineSM: controlPaddingHorizontalSM - lineWidth,\n    paddingInlineLG: controlPaddingHorizontal - lineWidth,\n    addonBg: colorFillAlter,\n    activeBorderColor: colorPrimary,\n    hoverBorderColor: colorPrimaryHover,\n    activeShadow: `0 0 0 ${controlOutlineWidth}px ${controlOutline}`,\n    errorActiveShadow: `0 0 0 ${controlOutlineWidth}px ${colorErrorOutline}`,\n    warningActiveShadow: `0 0 0 ${controlOutlineWidth}px ${colorWarningOutline}`,\n    hoverBg: colorBgContainer,\n    activeBg: colorBgContainer,\n    inputFontSize: fontSize,\n    inputFontSizeLG: fontSizeLG,\n    inputFontSizeSM: fontSize\n  };\n};","import { unit } from '@ant-design/cssinjs';\nimport { mergeToken } from '../../theme/internal';\nexport const genHoverStyle = token => ({\n  borderColor: token.hoverBorderColor,\n  backgroundColor: token.hoverBg\n});\nexport const genDisabledStyle = token => ({\n  color: token.colorTextDisabled,\n  backgroundColor: token.colorBgContainerDisabled,\n  borderColor: token.colorBorder,\n  boxShadow: 'none',\n  cursor: 'not-allowed',\n  opacity: 1,\n  'input[disabled], textarea[disabled]': {\n    cursor: 'not-allowed'\n  },\n  '&:hover:not([disabled])': Object.assign({}, genHoverStyle(mergeToken(token, {\n    hoverBorderColor: token.colorBorder,\n    hoverBg: token.colorBgContainerDisabled\n  })))\n});\n/* ============== Outlined ============== */\nexport const genBaseOutlinedStyle = (token, options) => ({\n  background: token.colorBgContainer,\n  borderWidth: token.lineWidth,\n  borderStyle: token.lineType,\n  borderColor: options.borderColor,\n  '&:hover': {\n    borderColor: options.hoverBorderColor,\n    backgroundColor: token.hoverBg\n  },\n  '&:focus, &:focus-within': {\n    borderColor: options.activeBorderColor,\n    boxShadow: options.activeShadow,\n    outline: 0,\n    backgroundColor: token.activeBg\n  }\n});\nconst genOutlinedStatusStyle = (token, options) => ({\n  [`&${token.componentCls}-status-${options.status}:not(${token.componentCls}-disabled)`]: Object.assign(Object.assign({}, genBaseOutlinedStyle(token, options)), {\n    [`${token.componentCls}-prefix, ${token.componentCls}-suffix`]: {\n      color: options.affixColor\n    }\n  }),\n  [`&${token.componentCls}-status-${options.status}${token.componentCls}-disabled`]: {\n    borderColor: options.borderColor\n  }\n});\nexport const genOutlinedStyle = (token, extraStyles) => ({\n  '&-outlined': Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, genBaseOutlinedStyle(token, {\n    borderColor: token.colorBorder,\n    hoverBorderColor: token.hoverBorderColor,\n    activeBorderColor: token.activeBorderColor,\n    activeShadow: token.activeShadow\n  })), {\n    [`&${token.componentCls}-disabled, &[disabled]`]: Object.assign({}, genDisabledStyle(token))\n  }), genOutlinedStatusStyle(token, {\n    status: 'error',\n    borderColor: token.colorError,\n    hoverBorderColor: token.colorErrorBorderHover,\n    activeBorderColor: token.colorError,\n    activeShadow: token.errorActiveShadow,\n    affixColor: token.colorError\n  })), genOutlinedStatusStyle(token, {\n    status: 'warning',\n    borderColor: token.colorWarning,\n    hoverBorderColor: token.colorWarningBorderHover,\n    activeBorderColor: token.colorWarning,\n    activeShadow: token.warningActiveShadow,\n    affixColor: token.colorWarning\n  })), extraStyles)\n});\nconst genOutlinedGroupStatusStyle = (token, options) => ({\n  [`&${token.componentCls}-group-wrapper-status-${options.status}`]: {\n    [`${token.componentCls}-group-addon`]: {\n      borderColor: options.addonBorderColor,\n      color: options.addonColor\n    }\n  }\n});\nexport const genOutlinedGroupStyle = token => ({\n  '&-outlined': Object.assign(Object.assign(Object.assign({\n    [`${token.componentCls}-group`]: {\n      '&-addon': {\n        background: token.addonBg,\n        border: `${unit(token.lineWidth)} ${token.lineType} ${token.colorBorder}`\n      },\n      '&-addon:first-child': {\n        borderInlineEnd: 0\n      },\n      '&-addon:last-child': {\n        borderInlineStart: 0\n      }\n    }\n  }, genOutlinedGroupStatusStyle(token, {\n    status: 'error',\n    addonBorderColor: token.colorError,\n    addonColor: token.colorErrorText\n  })), genOutlinedGroupStatusStyle(token, {\n    status: 'warning',\n    addonBorderColor: token.colorWarning,\n    addonColor: token.colorWarningText\n  })), {\n    [`&${token.componentCls}-group-wrapper-disabled`]: {\n      [`${token.componentCls}-group-addon`]: Object.assign({}, genDisabledStyle(token))\n    }\n  })\n});\n/* ============ Borderless ============ */\nexport const genBorderlessStyle = (token, extraStyles) => {\n  const {\n    componentCls\n  } = token;\n  return {\n    '&-borderless': Object.assign({\n      background: 'transparent',\n      border: 'none',\n      '&:focus, &:focus-within': {\n        outline: 'none'\n      },\n      // >>>>> Disabled\n      [`&${componentCls}-disabled, &[disabled]`]: {\n        color: token.colorTextDisabled\n      },\n      // >>>>> Status\n      [`&${componentCls}-status-error`]: {\n        '&, & input, & textarea': {\n          color: token.colorError\n        }\n      },\n      [`&${componentCls}-status-warning`]: {\n        '&, & input, & textarea': {\n          color: token.colorWarning\n        }\n      }\n    }, extraStyles)\n  };\n};\n/* ============== Filled ============== */\nconst genBaseFilledStyle = (token, options) => ({\n  background: options.bg,\n  borderWidth: token.lineWidth,\n  borderStyle: token.lineType,\n  borderColor: 'transparent',\n  'input&, & input, textarea&, & textarea': {\n    color: options === null || options === void 0 ? void 0 : options.inputColor\n  },\n  '&:hover': {\n    background: options.hoverBg\n  },\n  '&:focus, &:focus-within': {\n    outline: 0,\n    borderColor: options.activeBorderColor,\n    backgroundColor: token.activeBg\n  }\n});\nconst genFilledStatusStyle = (token, options) => ({\n  [`&${token.componentCls}-status-${options.status}:not(${token.componentCls}-disabled)`]: Object.assign(Object.assign({}, genBaseFilledStyle(token, options)), {\n    [`${token.componentCls}-prefix, ${token.componentCls}-suffix`]: {\n      color: options.affixColor\n    }\n  })\n});\nexport const genFilledStyle = (token, extraStyles) => ({\n  '&-filled': Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, genBaseFilledStyle(token, {\n    bg: token.colorFillTertiary,\n    hoverBg: token.colorFillSecondary,\n    activeBorderColor: token.activeBorderColor\n  })), {\n    [`&${token.componentCls}-disabled, &[disabled]`]: Object.assign({}, genDisabledStyle(token))\n  }), genFilledStatusStyle(token, {\n    status: 'error',\n    bg: token.colorErrorBg,\n    hoverBg: token.colorErrorBgHover,\n    activeBorderColor: token.colorError,\n    inputColor: token.colorErrorText,\n    affixColor: token.colorError\n  })), genFilledStatusStyle(token, {\n    status: 'warning',\n    bg: token.colorWarningBg,\n    hoverBg: token.colorWarningBgHover,\n    activeBorderColor: token.colorWarning,\n    inputColor: token.colorWarningText,\n    affixColor: token.colorWarning\n  })), extraStyles)\n});\nconst genFilledGroupStatusStyle = (token, options) => ({\n  [`&${token.componentCls}-group-wrapper-status-${options.status}`]: {\n    [`${token.componentCls}-group-addon`]: {\n      background: options.addonBg,\n      color: options.addonColor\n    }\n  }\n});\nexport const genFilledGroupStyle = token => ({\n  '&-filled': Object.assign(Object.assign(Object.assign({\n    [`${token.componentCls}-group`]: {\n      '&-addon': {\n        background: token.colorFillTertiary\n      },\n      [`${token.componentCls}-filled:not(:focus):not(:focus-within)`]: {\n        '&:not(:first-child)': {\n          borderInlineStart: `${unit(token.lineWidth)} ${token.lineType} ${token.colorSplit}`\n        },\n        '&:not(:last-child)': {\n          borderInlineEnd: `${unit(token.lineWidth)} ${token.lineType} ${token.colorSplit}`\n        }\n      }\n    }\n  }, genFilledGroupStatusStyle(token, {\n    status: 'error',\n    addonBg: token.colorErrorBg,\n    addonColor: token.colorErrorText\n  })), genFilledGroupStatusStyle(token, {\n    status: 'warning',\n    addonBg: token.colorWarningBg,\n    addonColor: token.colorWarningText\n  })), {\n    [`&${token.componentCls}-group-wrapper-disabled`]: {\n      [`${token.componentCls}-group`]: {\n        '&-addon': {\n          background: token.colorFillTertiary,\n          color: token.colorTextDisabled\n        },\n        '&-addon:first-child': {\n          borderInlineStart: `${unit(token.lineWidth)} ${token.lineType} ${token.colorBorder}`,\n          borderTop: `${unit(token.lineWidth)} ${token.lineType} ${token.colorBorder}`,\n          borderBottom: `${unit(token.lineWidth)} ${token.lineType} ${token.colorBorder}`\n        },\n        '&-addon:last-child': {\n          borderInlineEnd: `${unit(token.lineWidth)} ${token.lineType} ${token.colorBorder}`,\n          borderTop: `${unit(token.lineWidth)} ${token.lineType} ${token.colorBorder}`,\n          borderBottom: `${unit(token.lineWidth)} ${token.lineType} ${token.colorBorder}`\n        }\n      }\n    }\n  })\n});","import { unit } from '@ant-design/cssinjs';\nimport { clearFix, resetComponent } from '../../style';\nimport { genCompactItemStyle } from '../../style/compact-item';\nimport { genStyleHooks, mergeToken } from '../../theme/internal';\nimport { initComponentToken, initInputToken } from './token';\nimport { genBorderlessStyle, genFilledGroupStyle, genFilledStyle, genOutlinedGroupStyle, genOutlinedStyle } from './variants';\nexport { initComponentToken, initInputToken };\nexport const genPlaceholderStyle = color => ({\n  // Firefox\n  '&::-moz-placeholder': {\n    opacity: 1\n  },\n  '&::placeholder': {\n    color,\n    userSelect: 'none' // https://github.com/ant-design/ant-design/pull/32639\n  },\n  '&:placeholder-shown': {\n    textOverflow: 'ellipsis'\n  }\n});\nexport const genActiveStyle = token => ({\n  borderColor: token.activeBorderColor,\n  boxShadow: token.activeShadow,\n  outline: 0,\n  backgroundColor: token.activeBg\n});\nconst genInputLargeStyle = token => {\n  const {\n    paddingBlockLG,\n    lineHeightLG,\n    borderRadiusLG,\n    paddingInlineLG\n  } = token;\n  return {\n    padding: `${unit(paddingBlockLG)} ${unit(paddingInlineLG)}`,\n    fontSize: token.inputFontSizeLG,\n    lineHeight: lineHeightLG,\n    borderRadius: borderRadiusLG\n  };\n};\nexport const genInputSmallStyle = token => ({\n  padding: `${unit(token.paddingBlockSM)} ${unit(token.paddingInlineSM)}`,\n  fontSize: token.inputFontSizeSM,\n  borderRadius: token.borderRadiusSM\n});\nexport const genBasicInputStyle = token => Object.assign(Object.assign({\n  position: 'relative',\n  display: 'inline-block',\n  width: '100%',\n  minWidth: 0,\n  padding: `${unit(token.paddingBlock)} ${unit(token.paddingInline)}`,\n  color: token.colorText,\n  fontSize: token.inputFontSize,\n  lineHeight: token.lineHeight,\n  borderRadius: token.borderRadius,\n  transition: `all ${token.motionDurationMid}`\n}, genPlaceholderStyle(token.colorTextPlaceholder)), {\n  // Reset height for `textarea`s\n  'textarea&': {\n    maxWidth: '100%',\n    // prevent textarea resize from coming out of its container\n    height: 'auto',\n    minHeight: token.controlHeight,\n    lineHeight: token.lineHeight,\n    verticalAlign: 'bottom',\n    transition: `all ${token.motionDurationSlow}, height 0s`,\n    resize: 'vertical'\n  },\n  // Size\n  '&-lg': Object.assign({}, genInputLargeStyle(token)),\n  '&-sm': Object.assign({}, genInputSmallStyle(token)),\n  // RTL\n  '&-rtl, &-textarea-rtl': {\n    direction: 'rtl'\n  }\n});\nexport const genInputGroupStyle = token => {\n  const {\n    componentCls,\n    antCls\n  } = token;\n  return {\n    position: 'relative',\n    display: 'table',\n    width: '100%',\n    borderCollapse: 'separate',\n    borderSpacing: 0,\n    // Undo padding and float of grid classes\n    \"&[class*='col-']\": {\n      paddingInlineEnd: token.paddingXS,\n      '&:last-child': {\n        paddingInlineEnd: 0\n      }\n    },\n    // Sizing options\n    [`&-lg ${componentCls}, &-lg > ${componentCls}-group-addon`]: Object.assign({}, genInputLargeStyle(token)),\n    [`&-sm ${componentCls}, &-sm > ${componentCls}-group-addon`]: Object.assign({}, genInputSmallStyle(token)),\n    // Fix https://github.com/ant-design/ant-design/issues/5754\n    [`&-lg ${antCls}-select-single ${antCls}-select-selector`]: {\n      height: token.controlHeightLG\n    },\n    [`&-sm ${antCls}-select-single ${antCls}-select-selector`]: {\n      height: token.controlHeightSM\n    },\n    [`> ${componentCls}`]: {\n      display: 'table-cell',\n      '&:not(:first-child):not(:last-child)': {\n        borderRadius: 0\n      }\n    },\n    [`${componentCls}-group`]: {\n      '&-addon, &-wrap': {\n        display: 'table-cell',\n        width: 1,\n        whiteSpace: 'nowrap',\n        verticalAlign: 'middle',\n        '&:not(:first-child):not(:last-child)': {\n          borderRadius: 0\n        }\n      },\n      '&-wrap > *': {\n        display: 'block !important'\n      },\n      '&-addon': {\n        position: 'relative',\n        padding: `0 ${unit(token.paddingInline)}`,\n        color: token.colorText,\n        fontWeight: 'normal',\n        fontSize: token.inputFontSize,\n        textAlign: 'center',\n        borderRadius: token.borderRadius,\n        transition: `all ${token.motionDurationSlow}`,\n        lineHeight: 1,\n        // Reset Select's style in addon\n        [`${antCls}-select`]: {\n          margin: `${unit(token.calc(token.paddingBlock).add(1).mul(-1).equal())} ${unit(token.calc(token.paddingInline).mul(-1).equal())}`,\n          [`&${antCls}-select-single:not(${antCls}-select-customize-input):not(${antCls}-pagination-size-changer)`]: {\n            [`${antCls}-select-selector`]: {\n              backgroundColor: 'inherit',\n              border: `${unit(token.lineWidth)} ${token.lineType} transparent`,\n              boxShadow: 'none'\n            }\n          }\n        },\n        // https://github.com/ant-design/ant-design/issues/31333\n        [`${antCls}-cascader-picker`]: {\n          margin: `-9px ${unit(token.calc(token.paddingInline).mul(-1).equal())}`,\n          backgroundColor: 'transparent',\n          [`${antCls}-cascader-input`]: {\n            textAlign: 'start',\n            border: 0,\n            boxShadow: 'none'\n          }\n        }\n      }\n    },\n    [componentCls]: {\n      width: '100%',\n      marginBottom: 0,\n      textAlign: 'inherit',\n      '&:focus': {\n        zIndex: 1,\n        // Fix https://gw.alipayobjects.com/zos/rmsportal/DHNpoqfMXSfrSnlZvhsJ.png\n        borderInlineEndWidth: 1\n      },\n      '&:hover': {\n        zIndex: 1,\n        borderInlineEndWidth: 1,\n        [`${componentCls}-search-with-button &`]: {\n          zIndex: 0\n        }\n      }\n    },\n    // Reset rounded corners\n    [`> ${componentCls}:first-child, ${componentCls}-group-addon:first-child`]: {\n      borderStartEndRadius: 0,\n      borderEndEndRadius: 0,\n      // Reset Select's style in addon\n      [`${antCls}-select ${antCls}-select-selector`]: {\n        borderStartEndRadius: 0,\n        borderEndEndRadius: 0\n      }\n    },\n    [`> ${componentCls}-affix-wrapper`]: {\n      [`&:not(:first-child) ${componentCls}`]: {\n        borderStartStartRadius: 0,\n        borderEndStartRadius: 0\n      },\n      [`&:not(:last-child) ${componentCls}`]: {\n        borderStartEndRadius: 0,\n        borderEndEndRadius: 0\n      }\n    },\n    [`> ${componentCls}:last-child, ${componentCls}-group-addon:last-child`]: {\n      borderStartStartRadius: 0,\n      borderEndStartRadius: 0,\n      // Reset Select's style in addon\n      [`${antCls}-select ${antCls}-select-selector`]: {\n        borderStartStartRadius: 0,\n        borderEndStartRadius: 0\n      }\n    },\n    [`${componentCls}-affix-wrapper`]: {\n      '&:not(:last-child)': {\n        borderStartEndRadius: 0,\n        borderEndEndRadius: 0,\n        [`${componentCls}-search &`]: {\n          borderStartStartRadius: token.borderRadius,\n          borderEndStartRadius: token.borderRadius\n        }\n      },\n      [`&:not(:first-child), ${componentCls}-search &:not(:first-child)`]: {\n        borderStartStartRadius: 0,\n        borderEndStartRadius: 0\n      }\n    },\n    [`&${componentCls}-group-compact`]: Object.assign(Object.assign({\n      display: 'block'\n    }, clearFix()), {\n      [`${componentCls}-group-addon, ${componentCls}-group-wrap, > ${componentCls}`]: {\n        '&:not(:first-child):not(:last-child)': {\n          borderInlineEndWidth: token.lineWidth,\n          '&:hover, &:focus': {\n            zIndex: 1\n          }\n        }\n      },\n      '& > *': {\n        display: 'inline-flex',\n        float: 'none',\n        verticalAlign: 'top',\n        // https://github.com/ant-design/ant-design-pro/issues/139\n        borderRadius: 0\n      },\n      [`\n        & > ${componentCls}-affix-wrapper,\n        & > ${componentCls}-number-affix-wrapper,\n        & > ${antCls}-picker-range\n      `]: {\n        display: 'inline-flex'\n      },\n      '& > *:not(:last-child)': {\n        marginInlineEnd: token.calc(token.lineWidth).mul(-1).equal(),\n        borderInlineEndWidth: token.lineWidth\n      },\n      // Undo float for .ant-input-group .ant-input\n      [componentCls]: {\n        float: 'none'\n      },\n      // reset border for Select, DatePicker, AutoComplete, Cascader, Mention, TimePicker, Input\n      [`& > ${antCls}-select > ${antCls}-select-selector,\n      & > ${antCls}-select-auto-complete ${componentCls},\n      & > ${antCls}-cascader-picker ${componentCls},\n      & > ${componentCls}-group-wrapper ${componentCls}`]: {\n        borderInlineEndWidth: token.lineWidth,\n        borderRadius: 0,\n        '&:hover, &:focus': {\n          zIndex: 1\n        }\n      },\n      [`& > ${antCls}-select-focused`]: {\n        zIndex: 1\n      },\n      // update z-index for arrow icon\n      [`& > ${antCls}-select > ${antCls}-select-arrow`]: {\n        zIndex: 1 // https://github.com/ant-design/ant-design/issues/20371\n      },\n      [`& > *:first-child,\n      & > ${antCls}-select:first-child > ${antCls}-select-selector,\n      & > ${antCls}-select-auto-complete:first-child ${componentCls},\n      & > ${antCls}-cascader-picker:first-child ${componentCls}`]: {\n        borderStartStartRadius: token.borderRadius,\n        borderEndStartRadius: token.borderRadius\n      },\n      [`& > *:last-child,\n      & > ${antCls}-select:last-child > ${antCls}-select-selector,\n      & > ${antCls}-cascader-picker:last-child ${componentCls},\n      & > ${antCls}-cascader-picker-focused:last-child ${componentCls}`]: {\n        borderInlineEndWidth: token.lineWidth,\n        borderStartEndRadius: token.borderRadius,\n        borderEndEndRadius: token.borderRadius\n      },\n      // https://github.com/ant-design/ant-design/issues/12493\n      [`& > ${antCls}-select-auto-complete ${componentCls}`]: {\n        verticalAlign: 'top'\n      },\n      [`${componentCls}-group-wrapper + ${componentCls}-group-wrapper`]: {\n        marginInlineStart: token.calc(token.lineWidth).mul(-1).equal(),\n        [`${componentCls}-affix-wrapper`]: {\n          borderRadius: 0\n        }\n      },\n      [`${componentCls}-group-wrapper:not(:last-child)`]: {\n        [`&${componentCls}-search > ${componentCls}-group`]: {\n          [`& > ${componentCls}-group-addon > ${componentCls}-search-button`]: {\n            borderRadius: 0\n          },\n          [`& > ${componentCls}`]: {\n            borderStartStartRadius: token.borderRadius,\n            borderStartEndRadius: 0,\n            borderEndEndRadius: 0,\n            borderEndStartRadius: token.borderRadius\n          }\n        }\n      }\n    })\n  };\n};\nconst genInputStyle = token => {\n  const {\n    componentCls,\n    controlHeightSM,\n    lineWidth,\n    calc\n  } = token;\n  const FIXED_CHROME_COLOR_HEIGHT = 16;\n  const colorSmallPadding = calc(controlHeightSM).sub(calc(lineWidth).mul(2)).sub(FIXED_CHROME_COLOR_HEIGHT).div(2).equal();\n  return {\n    [componentCls]: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, resetComponent(token)), genBasicInputStyle(token)), genOutlinedStyle(token)), genFilledStyle(token)), genBorderlessStyle(token)), {\n      '&[type=\"color\"]': {\n        height: token.controlHeight,\n        [`&${componentCls}-lg`]: {\n          height: token.controlHeightLG\n        },\n        [`&${componentCls}-sm`]: {\n          height: controlHeightSM,\n          paddingTop: colorSmallPadding,\n          paddingBottom: colorSmallPadding\n        }\n      },\n      '&[type=\"search\"]::-webkit-search-cancel-button, &[type=\"search\"]::-webkit-search-decoration': {\n        '-webkit-appearance': 'none'\n      }\n    })\n  };\n};\nconst genAllowClearStyle = token => {\n  const {\n    componentCls\n  } = token;\n  return {\n    // ========================= Input =========================\n    [`${componentCls}-clear-icon`]: {\n      margin: 0,\n      color: token.colorTextQuaternary,\n      fontSize: token.fontSizeIcon,\n      verticalAlign: -1,\n      // https://github.com/ant-design/ant-design/pull/18151\n      // https://codesandbox.io/s/wizardly-sun-u10br\n      cursor: 'pointer',\n      transition: `color ${token.motionDurationSlow}`,\n      '&:hover': {\n        color: token.colorTextTertiary\n      },\n      '&:active': {\n        color: token.colorText\n      },\n      '&-hidden': {\n        visibility: 'hidden'\n      },\n      '&-has-suffix': {\n        margin: `0 ${unit(token.inputAffixPadding)}`\n      }\n    }\n  };\n};\nconst genAffixStyle = token => {\n  const {\n    componentCls,\n    inputAffixPadding,\n    colorTextDescription,\n    motionDurationSlow,\n    colorIcon,\n    colorIconHover,\n    iconCls\n  } = token;\n  const affixCls = `${componentCls}-affix-wrapper`;\n  const affixClsDisabled = `${componentCls}-affix-wrapper-disabled`;\n  return {\n    [affixCls]: Object.assign(Object.assign(Object.assign(Object.assign({}, genBasicInputStyle(token)), {\n      display: 'inline-flex',\n      [`&:not(${componentCls}-disabled):hover`]: {\n        zIndex: 1,\n        [`${componentCls}-search-with-button &`]: {\n          zIndex: 0\n        }\n      },\n      '&-focused, &:focus': {\n        zIndex: 1\n      },\n      [`> input${componentCls}`]: {\n        padding: 0\n      },\n      [`> input${componentCls}, > textarea${componentCls}`]: {\n        fontSize: 'inherit',\n        border: 'none',\n        borderRadius: 0,\n        outline: 'none',\n        background: 'transparent',\n        color: 'inherit',\n        '&::-ms-reveal': {\n          display: 'none'\n        },\n        '&:focus': {\n          boxShadow: 'none !important'\n        }\n      },\n      '&::before': {\n        display: 'inline-block',\n        width: 0,\n        visibility: 'hidden',\n        content: '\"\\\\a0\"'\n      },\n      [componentCls]: {\n        '&-prefix, &-suffix': {\n          display: 'flex',\n          flex: 'none',\n          alignItems: 'center',\n          '> *:not(:last-child)': {\n            marginInlineEnd: token.paddingXS\n          }\n        },\n        '&-show-count-suffix': {\n          color: colorTextDescription\n        },\n        '&-show-count-has-suffix': {\n          marginInlineEnd: token.paddingXXS\n        },\n        '&-prefix': {\n          marginInlineEnd: inputAffixPadding\n        },\n        '&-suffix': {\n          marginInlineStart: inputAffixPadding\n        }\n      }\n    }), genAllowClearStyle(token)), {\n      // password\n      [`${iconCls}${componentCls}-password-icon`]: {\n        color: colorIcon,\n        cursor: 'pointer',\n        transition: `all ${motionDurationSlow}`,\n        '&:hover': {\n          color: colorIconHover\n        }\n      }\n    }),\n    [affixClsDisabled]: {\n      // password disabled\n      [`${iconCls}${componentCls}-password-icon`]: {\n        color: colorIcon,\n        cursor: 'not-allowed',\n        '&:hover': {\n          color: colorIcon\n        }\n      }\n    }\n  };\n};\nconst genGroupStyle = token => {\n  const {\n    componentCls,\n    borderRadiusLG,\n    borderRadiusSM\n  } = token;\n  return {\n    [`${componentCls}-group`]: Object.assign(Object.assign(Object.assign({}, resetComponent(token)), genInputGroupStyle(token)), {\n      '&-rtl': {\n        direction: 'rtl'\n      },\n      '&-wrapper': Object.assign(Object.assign(Object.assign({\n        display: 'inline-block',\n        width: '100%',\n        textAlign: 'start',\n        verticalAlign: 'top',\n        '&-rtl': {\n          direction: 'rtl'\n        },\n        // Size\n        '&-lg': {\n          [`${componentCls}-group-addon`]: {\n            borderRadius: borderRadiusLG,\n            fontSize: token.inputFontSizeLG\n          }\n        },\n        '&-sm': {\n          [`${componentCls}-group-addon`]: {\n            borderRadius: borderRadiusSM\n          }\n        }\n      }, genOutlinedGroupStyle(token)), genFilledGroupStyle(token)), {\n        // '&-disabled': {\n        //   [`${componentCls}-group-addon`]: {\n        //     ...genDisabledStyle(token),\n        //   },\n        // },\n        // Fix the issue of using icons in Space Compact mode\n        // https://github.com/ant-design/ant-design/issues/42122\n        [`&:not(${componentCls}-compact-first-item):not(${componentCls}-compact-last-item)${componentCls}-compact-item`]: {\n          [`${componentCls}, ${componentCls}-group-addon`]: {\n            borderRadius: 0\n          }\n        },\n        [`&:not(${componentCls}-compact-last-item)${componentCls}-compact-first-item`]: {\n          [`${componentCls}, ${componentCls}-group-addon`]: {\n            borderStartEndRadius: 0,\n            borderEndEndRadius: 0\n          }\n        },\n        [`&:not(${componentCls}-compact-first-item)${componentCls}-compact-last-item`]: {\n          [`${componentCls}, ${componentCls}-group-addon`]: {\n            borderStartStartRadius: 0,\n            borderEndStartRadius: 0\n          }\n        },\n        // Fix the issue of input use show-count param in space compact mode\n        // https://github.com/ant-design/ant-design/issues/46872\n        [`&:not(${componentCls}-compact-last-item)${componentCls}-compact-item`]: {\n          [`${componentCls}-affix-wrapper`]: {\n            borderStartEndRadius: 0,\n            borderEndEndRadius: 0\n          }\n        }\n      })\n    })\n  };\n};\nconst genSearchInputStyle = token => {\n  const {\n    componentCls,\n    antCls\n  } = token;\n  const searchPrefixCls = `${componentCls}-search`;\n  return {\n    [searchPrefixCls]: {\n      [componentCls]: {\n        '&:hover, &:focus': {\n          borderColor: token.colorPrimaryHover,\n          [`+ ${componentCls}-group-addon ${searchPrefixCls}-button:not(${antCls}-btn-primary)`]: {\n            borderInlineStartColor: token.colorPrimaryHover\n          }\n        }\n      },\n      [`${componentCls}-affix-wrapper`]: {\n        borderRadius: 0\n      },\n      // fix slight height diff in Firefox:\n      // https://ant.design/components/auto-complete-cn/#auto-complete-demo-certain-category\n      [`${componentCls}-lg`]: {\n        lineHeight: token.calc(token.lineHeightLG).sub(0.0002).equal()\n      },\n      [`> ${componentCls}-group`]: {\n        [`> ${componentCls}-group-addon:last-child`]: {\n          insetInlineStart: -1,\n          padding: 0,\n          border: 0,\n          [`${searchPrefixCls}-button`]: {\n            // Fix https://github.com/ant-design/ant-design/issues/47150\n            marginInlineEnd: -1,\n            paddingTop: 0,\n            paddingBottom: 0,\n            borderStartStartRadius: 0,\n            borderEndStartRadius: 0,\n            boxShadow: 'none'\n          },\n          [`${searchPrefixCls}-button:not(${antCls}-btn-primary)`]: {\n            color: token.colorTextDescription,\n            '&:hover': {\n              color: token.colorPrimaryHover\n            },\n            '&:active': {\n              color: token.colorPrimaryActive\n            },\n            [`&${antCls}-btn-loading::before`]: {\n              insetInlineStart: 0,\n              insetInlineEnd: 0,\n              insetBlockStart: 0,\n              insetBlockEnd: 0\n            }\n          }\n        }\n      },\n      [`${searchPrefixCls}-button`]: {\n        height: token.controlHeight,\n        '&:hover, &:focus': {\n          zIndex: 1\n        }\n      },\n      [`&-large ${searchPrefixCls}-button`]: {\n        height: token.controlHeightLG\n      },\n      [`&-small ${searchPrefixCls}-button`]: {\n        height: token.controlHeightSM\n      },\n      '&-rtl': {\n        direction: 'rtl'\n      },\n      // ===================== Compact Item Customized Styles =====================\n      [`&${componentCls}-compact-item`]: {\n        [`&:not(${componentCls}-compact-last-item)`]: {\n          [`${componentCls}-group-addon`]: {\n            [`${componentCls}-search-button`]: {\n              marginInlineEnd: token.calc(token.lineWidth).mul(-1).equal(),\n              borderRadius: 0\n            }\n          }\n        },\n        [`&:not(${componentCls}-compact-first-item)`]: {\n          [`${componentCls},${componentCls}-affix-wrapper`]: {\n            borderRadius: 0\n          }\n        },\n        [`> ${componentCls}-group-addon ${componentCls}-search-button,\n        > ${componentCls},\n        ${componentCls}-affix-wrapper`]: {\n          '&:hover, &:focus, &:active': {\n            zIndex: 2\n          }\n        },\n        [`> ${componentCls}-affix-wrapper-focused`]: {\n          zIndex: 2\n        }\n      }\n    }\n  };\n};\nconst genTextAreaStyle = token => {\n  const {\n    componentCls,\n    paddingLG\n  } = token;\n  const textareaPrefixCls = `${componentCls}-textarea`;\n  return {\n    [textareaPrefixCls]: {\n      position: 'relative',\n      '&-show-count': {\n        // https://github.com/ant-design/ant-design/issues/33049\n        [`> ${componentCls}`]: {\n          height: '100%'\n        },\n        [`${componentCls}-data-count`]: {\n          position: 'absolute',\n          bottom: token.calc(token.fontSize).mul(token.lineHeight).mul(-1).equal(),\n          insetInlineEnd: 0,\n          color: token.colorTextDescription,\n          whiteSpace: 'nowrap',\n          pointerEvents: 'none'\n        }\n      },\n      [`\n        &-allow-clear > ${componentCls},\n        &-affix-wrapper${textareaPrefixCls}-has-feedback ${componentCls}\n      `]: {\n        paddingInlineEnd: paddingLG\n      },\n      [`&-affix-wrapper${componentCls}-affix-wrapper`]: {\n        padding: 0,\n        [`> textarea${componentCls}`]: {\n          fontSize: 'inherit',\n          border: 'none',\n          outline: 'none',\n          background: 'transparent',\n          '&:focus': {\n            boxShadow: 'none !important'\n          }\n        },\n        [`${componentCls}-suffix`]: {\n          margin: 0,\n          '> *:not(:last-child)': {\n            marginInline: 0\n          },\n          // Clear Icon\n          [`${componentCls}-clear-icon`]: {\n            position: 'absolute',\n            insetInlineEnd: token.paddingInline,\n            insetBlockStart: token.paddingXS\n          },\n          // Feedback Icon\n          [`${textareaPrefixCls}-suffix`]: {\n            position: 'absolute',\n            top: 0,\n            insetInlineEnd: token.paddingInline,\n            bottom: 0,\n            zIndex: 1,\n            display: 'inline-flex',\n            alignItems: 'center',\n            margin: 'auto',\n            pointerEvents: 'none'\n          }\n        }\n      },\n      [`&-affix-wrapper${componentCls}-affix-wrapper-sm`]: {\n        [`${componentCls}-suffix`]: {\n          [`${componentCls}-clear-icon`]: {\n            insetInlineEnd: token.paddingInlineSM\n          }\n        }\n      }\n    }\n  };\n};\n// ============================== Range ===============================\nconst genRangeStyle = token => {\n  const {\n    componentCls\n  } = token;\n  return {\n    [`${componentCls}-out-of-range`]: {\n      [`&, & input, & textarea, ${componentCls}-show-count-suffix, ${componentCls}-data-count`]: {\n        color: token.colorError\n      }\n    }\n  };\n};\n// ============================== Export ==============================\nexport default genStyleHooks('Input', token => {\n  const inputToken = mergeToken(token, initInputToken(token));\n  return [genInputStyle(inputToken), genTextAreaStyle(inputToken), genAffixStyle(inputToken), genGroupStyle(inputToken), genSearchInputStyle(inputToken), genRangeStyle(inputToken),\n  // =====================================================\n  // ==             Space Compact                       ==\n  // =====================================================\n  genCompactItemStyle(inputToken)];\n}, initComponentToken, {\n  resetFont: false\n});","import { unit } from '@ant-design/cssinjs';\nimport { genBasicInputStyle, genInputSmallStyle, initComponentToken, initInputToken } from '../../input/style';\nimport { genBaseOutlinedStyle, genDisabledStyle } from '../../input/style/variants';\nimport { genFocusOutline, genFocusStyle, resetComponent } from '../../style';\nimport { genStyleHooks, mergeToken } from '../../theme/internal';\nconst genPaginationDisabledStyle = token => {\n  const {\n    componentCls\n  } = token;\n  return {\n    [`${componentCls}-disabled`]: {\n      '&, &:hover': {\n        cursor: 'not-allowed',\n        [`${componentCls}-item-link`]: {\n          color: token.colorTextDisabled,\n          cursor: 'not-allowed'\n        }\n      },\n      '&:focus-visible': {\n        cursor: 'not-allowed',\n        [`${componentCls}-item-link`]: {\n          color: token.colorTextDisabled,\n          cursor: 'not-allowed'\n        }\n      }\n    },\n    [`&${componentCls}-disabled`]: {\n      cursor: 'not-allowed',\n      [`${componentCls}-item`]: {\n        cursor: 'not-allowed',\n        '&:hover, &:active': {\n          backgroundColor: 'transparent'\n        },\n        a: {\n          color: token.colorTextDisabled,\n          backgroundColor: 'transparent',\n          border: 'none',\n          cursor: 'not-allowed'\n        },\n        '&-active': {\n          borderColor: token.colorBorder,\n          backgroundColor: token.itemActiveBgDisabled,\n          '&:hover, &:active': {\n            backgroundColor: token.itemActiveBgDisabled\n          },\n          a: {\n            color: token.itemActiveColorDisabled\n          }\n        }\n      },\n      [`${componentCls}-item-link`]: {\n        color: token.colorTextDisabled,\n        cursor: 'not-allowed',\n        '&:hover, &:active': {\n          backgroundColor: 'transparent'\n        },\n        [`${componentCls}-simple&`]: {\n          backgroundColor: 'transparent',\n          '&:hover, &:active': {\n            backgroundColor: 'transparent'\n          }\n        }\n      },\n      [`${componentCls}-simple-pager`]: {\n        color: token.colorTextDisabled\n      },\n      [`${componentCls}-jump-prev, ${componentCls}-jump-next`]: {\n        [`${componentCls}-item-link-icon`]: {\n          opacity: 0\n        },\n        [`${componentCls}-item-ellipsis`]: {\n          opacity: 1\n        }\n      }\n    },\n    [`&${componentCls}-simple`]: {\n      [`${componentCls}-prev, ${componentCls}-next`]: {\n        [`&${componentCls}-disabled ${componentCls}-item-link`]: {\n          '&:hover, &:active': {\n            backgroundColor: 'transparent'\n          }\n        }\n      }\n    }\n  };\n};\nconst genPaginationMiniStyle = token => {\n  const {\n    componentCls\n  } = token;\n  return {\n    [`&${componentCls}-mini ${componentCls}-total-text, &${componentCls}-mini ${componentCls}-simple-pager`]: {\n      height: token.itemSizeSM,\n      lineHeight: unit(token.itemSizeSM)\n    },\n    [`&${componentCls}-mini ${componentCls}-item`]: {\n      minWidth: token.itemSizeSM,\n      height: token.itemSizeSM,\n      margin: 0,\n      lineHeight: unit(token.calc(token.itemSizeSM).sub(2).equal())\n    },\n    [`&${componentCls}-mini:not(${componentCls}-disabled) ${componentCls}-item:not(${componentCls}-item-active)`]: {\n      backgroundColor: 'transparent',\n      borderColor: 'transparent',\n      '&:hover': {\n        backgroundColor: token.colorBgTextHover\n      },\n      '&:active': {\n        backgroundColor: token.colorBgTextActive\n      }\n    },\n    [`&${componentCls}-mini ${componentCls}-prev, &${componentCls}-mini ${componentCls}-next`]: {\n      minWidth: token.itemSizeSM,\n      height: token.itemSizeSM,\n      margin: 0,\n      lineHeight: unit(token.itemSizeSM)\n    },\n    [`&${componentCls}-mini:not(${componentCls}-disabled)`]: {\n      [`${componentCls}-prev, ${componentCls}-next`]: {\n        [`&:hover ${componentCls}-item-link`]: {\n          backgroundColor: token.colorBgTextHover\n        },\n        [`&:active ${componentCls}-item-link`]: {\n          backgroundColor: token.colorBgTextActive\n        },\n        [`&${componentCls}-disabled:hover ${componentCls}-item-link`]: {\n          backgroundColor: 'transparent'\n        }\n      }\n    },\n    [`\n    &${componentCls}-mini ${componentCls}-prev ${componentCls}-item-link,\n    &${componentCls}-mini ${componentCls}-next ${componentCls}-item-link\n    `]: {\n      backgroundColor: 'transparent',\n      borderColor: 'transparent',\n      '&::after': {\n        height: token.itemSizeSM,\n        lineHeight: unit(token.itemSizeSM)\n      }\n    },\n    [`&${componentCls}-mini ${componentCls}-jump-prev, &${componentCls}-mini ${componentCls}-jump-next`]: {\n      height: token.itemSizeSM,\n      marginInlineEnd: 0,\n      lineHeight: unit(token.itemSizeSM)\n    },\n    [`&${componentCls}-mini ${componentCls}-options`]: {\n      marginInlineStart: token.paginationMiniOptionsMarginInlineStart,\n      '&-size-changer': {\n        top: token.miniOptionsSizeChangerTop\n      },\n      '&-quick-jumper': {\n        height: token.itemSizeSM,\n        lineHeight: unit(token.itemSizeSM),\n        input: Object.assign(Object.assign({}, genInputSmallStyle(token)), {\n          width: token.paginationMiniQuickJumperInputWidth,\n          height: token.controlHeightSM\n        })\n      }\n    }\n  };\n};\nconst genPaginationSimpleStyle = token => {\n  const {\n    componentCls\n  } = token;\n  return {\n    [`\n    &${componentCls}-simple ${componentCls}-prev,\n    &${componentCls}-simple ${componentCls}-next\n    `]: {\n      height: token.itemSizeSM,\n      lineHeight: unit(token.itemSizeSM),\n      verticalAlign: 'top',\n      [`${componentCls}-item-link`]: {\n        height: token.itemSizeSM,\n        backgroundColor: 'transparent',\n        border: 0,\n        '&:hover': {\n          backgroundColor: token.colorBgTextHover\n        },\n        '&:active': {\n          backgroundColor: token.colorBgTextActive\n        },\n        '&::after': {\n          height: token.itemSizeSM,\n          lineHeight: unit(token.itemSizeSM)\n        }\n      }\n    },\n    [`&${componentCls}-simple ${componentCls}-simple-pager`]: {\n      display: 'inline-block',\n      height: token.itemSizeSM,\n      marginInlineEnd: token.marginXS,\n      input: {\n        boxSizing: 'border-box',\n        height: '100%',\n        padding: `0 ${unit(token.paginationItemPaddingInline)}`,\n        textAlign: 'center',\n        backgroundColor: token.itemInputBg,\n        border: `${unit(token.lineWidth)} ${token.lineType} ${token.colorBorder}`,\n        borderRadius: token.borderRadius,\n        outline: 'none',\n        transition: `border-color ${token.motionDurationMid}`,\n        color: 'inherit',\n        '&:hover': {\n          borderColor: token.colorPrimary\n        },\n        '&:focus': {\n          borderColor: token.colorPrimaryHover,\n          boxShadow: `${unit(token.inputOutlineOffset)} 0 ${unit(token.controlOutlineWidth)} ${token.controlOutline}`\n        },\n        '&[disabled]': {\n          color: token.colorTextDisabled,\n          backgroundColor: token.colorBgContainerDisabled,\n          borderColor: token.colorBorder,\n          cursor: 'not-allowed'\n        }\n      }\n    }\n  };\n};\nconst genPaginationJumpStyle = token => {\n  const {\n    componentCls\n  } = token;\n  return {\n    [`${componentCls}-jump-prev, ${componentCls}-jump-next`]: {\n      outline: 0,\n      [`${componentCls}-item-container`]: {\n        position: 'relative',\n        [`${componentCls}-item-link-icon`]: {\n          color: token.colorPrimary,\n          fontSize: token.fontSizeSM,\n          opacity: 0,\n          transition: `all ${token.motionDurationMid}`,\n          '&-svg': {\n            top: 0,\n            insetInlineEnd: 0,\n            bottom: 0,\n            insetInlineStart: 0,\n            margin: 'auto'\n          }\n        },\n        [`${componentCls}-item-ellipsis`]: {\n          position: 'absolute',\n          top: 0,\n          insetInlineEnd: 0,\n          bottom: 0,\n          insetInlineStart: 0,\n          display: 'block',\n          margin: 'auto',\n          color: token.colorTextDisabled,\n          letterSpacing: token.paginationEllipsisLetterSpacing,\n          textAlign: 'center',\n          textIndent: token.paginationEllipsisTextIndent,\n          opacity: 1,\n          transition: `all ${token.motionDurationMid}`\n        }\n      },\n      '&:hover': {\n        [`${componentCls}-item-link-icon`]: {\n          opacity: 1\n        },\n        [`${componentCls}-item-ellipsis`]: {\n          opacity: 0\n        }\n      }\n    },\n    [`\n    ${componentCls}-prev,\n    ${componentCls}-jump-prev,\n    ${componentCls}-jump-next\n    `]: {\n      marginInlineEnd: token.marginXS\n    },\n    [`\n    ${componentCls}-prev,\n    ${componentCls}-next,\n    ${componentCls}-jump-prev,\n    ${componentCls}-jump-next\n    `]: {\n      display: 'inline-block',\n      minWidth: token.itemSize,\n      height: token.itemSize,\n      color: token.colorText,\n      fontFamily: token.fontFamily,\n      lineHeight: unit(token.itemSize),\n      textAlign: 'center',\n      verticalAlign: 'middle',\n      listStyle: 'none',\n      borderRadius: token.borderRadius,\n      cursor: 'pointer',\n      transition: `all ${token.motionDurationMid}`\n    },\n    [`${componentCls}-prev, ${componentCls}-next`]: {\n      outline: 0,\n      button: {\n        color: token.colorText,\n        cursor: 'pointer',\n        userSelect: 'none'\n      },\n      [`${componentCls}-item-link`]: {\n        display: 'block',\n        width: '100%',\n        height: '100%',\n        padding: 0,\n        fontSize: token.fontSizeSM,\n        textAlign: 'center',\n        backgroundColor: 'transparent',\n        border: `${unit(token.lineWidth)} ${token.lineType} transparent`,\n        borderRadius: token.borderRadius,\n        outline: 'none',\n        transition: `all ${token.motionDurationMid}`\n      },\n      [`&:hover ${componentCls}-item-link`]: {\n        backgroundColor: token.colorBgTextHover\n      },\n      [`&:active ${componentCls}-item-link`]: {\n        backgroundColor: token.colorBgTextActive\n      },\n      [`&${componentCls}-disabled:hover`]: {\n        [`${componentCls}-item-link`]: {\n          backgroundColor: 'transparent'\n        }\n      }\n    },\n    [`${componentCls}-slash`]: {\n      marginInlineEnd: token.paginationSlashMarginInlineEnd,\n      marginInlineStart: token.paginationSlashMarginInlineStart\n    },\n    [`${componentCls}-options`]: {\n      display: 'inline-block',\n      marginInlineStart: token.margin,\n      verticalAlign: 'middle',\n      '&-size-changer': {\n        display: 'inline-block',\n        width: 'auto'\n      },\n      '&-quick-jumper': {\n        display: 'inline-block',\n        height: token.controlHeight,\n        marginInlineStart: token.marginXS,\n        lineHeight: unit(token.controlHeight),\n        verticalAlign: 'top',\n        input: Object.assign(Object.assign(Object.assign({}, genBasicInputStyle(token)), genBaseOutlinedStyle(token, {\n          borderColor: token.colorBorder,\n          hoverBorderColor: token.colorPrimaryHover,\n          activeBorderColor: token.colorPrimary,\n          activeShadow: token.activeShadow\n        })), {\n          '&[disabled]': Object.assign({}, genDisabledStyle(token)),\n          width: token.calc(token.controlHeightLG).mul(1.25).equal(),\n          height: token.controlHeight,\n          boxSizing: 'border-box',\n          margin: 0,\n          marginInlineStart: token.marginXS,\n          marginInlineEnd: token.marginXS\n        })\n      }\n    }\n  };\n};\nconst genPaginationItemStyle = token => {\n  const {\n    componentCls\n  } = token;\n  return {\n    [`${componentCls}-item`]: {\n      display: 'inline-block',\n      minWidth: token.itemSize,\n      height: token.itemSize,\n      marginInlineEnd: token.marginXS,\n      fontFamily: token.fontFamily,\n      lineHeight: unit(token.calc(token.itemSize).sub(2).equal()),\n      textAlign: 'center',\n      verticalAlign: 'middle',\n      listStyle: 'none',\n      backgroundColor: token.itemBg,\n      border: `${unit(token.lineWidth)} ${token.lineType} transparent`,\n      borderRadius: token.borderRadius,\n      outline: 0,\n      cursor: 'pointer',\n      userSelect: 'none',\n      a: {\n        display: 'block',\n        padding: `0 ${unit(token.paginationItemPaddingInline)}`,\n        color: token.colorText,\n        '&:hover': {\n          textDecoration: 'none'\n        }\n      },\n      [`&:not(${componentCls}-item-active)`]: {\n        '&:hover': {\n          transition: `all ${token.motionDurationMid}`,\n          backgroundColor: token.colorBgTextHover\n        },\n        '&:active': {\n          backgroundColor: token.colorBgTextActive\n        }\n      },\n      '&-active': {\n        fontWeight: token.fontWeightStrong,\n        backgroundColor: token.itemActiveBg,\n        borderColor: token.colorPrimary,\n        a: {\n          color: token.colorPrimary\n        },\n        '&:hover': {\n          borderColor: token.colorPrimaryHover\n        },\n        '&:hover a': {\n          color: token.colorPrimaryHover\n        }\n      }\n    }\n  };\n};\nconst genPaginationStyle = token => {\n  const {\n    componentCls\n  } = token;\n  return {\n    [componentCls]: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, resetComponent(token)), {\n      display: 'flex',\n      '&-start': {\n        justifyContent: 'start'\n      },\n      '&-center': {\n        justifyContent: 'center'\n      },\n      '&-end': {\n        justifyContent: 'end'\n      },\n      'ul, ol': {\n        margin: 0,\n        padding: 0,\n        listStyle: 'none'\n      },\n      '&::after': {\n        display: 'block',\n        clear: 'both',\n        height: 0,\n        overflow: 'hidden',\n        visibility: 'hidden',\n        content: '\"\"'\n      },\n      [`${componentCls}-total-text`]: {\n        display: 'inline-block',\n        height: token.itemSize,\n        marginInlineEnd: token.marginXS,\n        lineHeight: unit(token.calc(token.itemSize).sub(2).equal()),\n        verticalAlign: 'middle'\n      }\n    }), genPaginationItemStyle(token)), genPaginationJumpStyle(token)), genPaginationSimpleStyle(token)), genPaginationMiniStyle(token)), genPaginationDisabledStyle(token)), {\n      // media query style\n      [`@media only screen and (max-width: ${token.screenLG}px)`]: {\n        [`${componentCls}-item`]: {\n          '&-after-jump-prev, &-before-jump-next': {\n            display: 'none'\n          }\n        }\n      },\n      [`@media only screen and (max-width: ${token.screenSM}px)`]: {\n        [`${componentCls}-options`]: {\n          display: 'none'\n        }\n      }\n    }),\n    // rtl style\n    [`&${token.componentCls}-rtl`]: {\n      direction: 'rtl'\n    }\n  };\n};\nconst genPaginationFocusStyle = token => {\n  const {\n    componentCls\n  } = token;\n  return {\n    [`${componentCls}:not(${componentCls}-disabled)`]: {\n      [`${componentCls}-item`]: Object.assign({}, genFocusStyle(token)),\n      [`${componentCls}-jump-prev, ${componentCls}-jump-next`]: {\n        '&:focus-visible': Object.assign({\n          [`${componentCls}-item-link-icon`]: {\n            opacity: 1\n          },\n          [`${componentCls}-item-ellipsis`]: {\n            opacity: 0\n          }\n        }, genFocusOutline(token))\n      },\n      [`${componentCls}-prev, ${componentCls}-next`]: {\n        [`&:focus-visible ${componentCls}-item-link`]: Object.assign({}, genFocusOutline(token))\n      }\n    }\n  };\n};\nexport const prepareComponentToken = token => Object.assign({\n  itemBg: token.colorBgContainer,\n  itemSize: token.controlHeight,\n  itemSizeSM: token.controlHeightSM,\n  itemActiveBg: token.colorBgContainer,\n  itemLinkBg: token.colorBgContainer,\n  itemActiveColorDisabled: token.colorTextDisabled,\n  itemActiveBgDisabled: token.controlItemBgActiveDisabled,\n  itemInputBg: token.colorBgContainer,\n  miniOptionsSizeChangerTop: 0\n}, initComponentToken(token));\nexport const prepareToken = token => mergeToken(token, {\n  inputOutlineOffset: 0,\n  paginationMiniOptionsMarginInlineStart: token.calc(token.marginXXS).div(2).equal(),\n  paginationMiniQuickJumperInputWidth: token.calc(token.controlHeightLG).mul(1.1).equal(),\n  paginationItemPaddingInline: token.calc(token.marginXXS).mul(1.5).equal(),\n  paginationEllipsisLetterSpacing: token.calc(token.marginXXS).div(2).equal(),\n  paginationSlashMarginInlineStart: token.marginSM,\n  paginationSlashMarginInlineEnd: token.marginSM,\n  paginationEllipsisTextIndent: '0.13em' // magic for ui experience\n}, initInputToken(token));\n// ============================== Export ==============================\nexport default genStyleHooks('Pagination', token => {\n  const paginationToken = prepareToken(token);\n  return [genPaginationStyle(paginationToken), genPaginationFocusStyle(paginationToken)];\n}, prepareComponentToken);","import { unit } from '@ant-design/cssinjs';\nimport { prepareComponentToken, prepareToken } from '.';\nimport { genSubStyleComponent } from '../../theme/internal';\nconst genBorderedStyle = token => {\n  const {\n    componentCls\n  } = token;\n  return {\n    [`${componentCls}${componentCls}-bordered${componentCls}-disabled:not(${componentCls}-mini)`]: {\n      '&, &:hover': {\n        [`${componentCls}-item-link`]: {\n          borderColor: token.colorBorder\n        }\n      },\n      '&:focus-visible': {\n        [`${componentCls}-item-link`]: {\n          borderColor: token.colorBorder\n        }\n      },\n      [`${componentCls}-item, ${componentCls}-item-link`]: {\n        backgroundColor: token.colorBgContainerDisabled,\n        borderColor: token.colorBorder,\n        [`&:hover:not(${componentCls}-item-active)`]: {\n          backgroundColor: token.colorBgContainerDisabled,\n          borderColor: token.colorBorder,\n          a: {\n            color: token.colorTextDisabled\n          }\n        },\n        [`&${componentCls}-item-active`]: {\n          backgroundColor: token.itemActiveBgDisabled\n        }\n      },\n      [`${componentCls}-prev, ${componentCls}-next`]: {\n        '&:hover button': {\n          backgroundColor: token.colorBgContainerDisabled,\n          borderColor: token.colorBorder,\n          color: token.colorTextDisabled\n        },\n        [`${componentCls}-item-link`]: {\n          backgroundColor: token.colorBgContainerDisabled,\n          borderColor: token.colorBorder\n        }\n      }\n    },\n    [`${componentCls}${componentCls}-bordered:not(${componentCls}-mini)`]: {\n      [`${componentCls}-prev, ${componentCls}-next`]: {\n        '&:hover button': {\n          borderColor: token.colorPrimaryHover,\n          backgroundColor: token.itemBg\n        },\n        [`${componentCls}-item-link`]: {\n          backgroundColor: token.itemLinkBg,\n          borderColor: token.colorBorder\n        },\n        [`&:hover ${componentCls}-item-link`]: {\n          borderColor: token.colorPrimary,\n          backgroundColor: token.itemBg,\n          color: token.colorPrimary\n        },\n        [`&${componentCls}-disabled`]: {\n          [`${componentCls}-item-link`]: {\n            borderColor: token.colorBorder,\n            color: token.colorTextDisabled\n          }\n        }\n      },\n      [`${componentCls}-item`]: {\n        backgroundColor: token.itemBg,\n        border: `${unit(token.lineWidth)} ${token.lineType} ${token.colorBorder}`,\n        [`&:hover:not(${componentCls}-item-active)`]: {\n          borderColor: token.colorPrimary,\n          backgroundColor: token.itemBg,\n          a: {\n            color: token.colorPrimary\n          }\n        },\n        '&-active': {\n          borderColor: token.colorPrimary\n        }\n      }\n    }\n  };\n};\nexport default genSubStyleComponent(['Pagination', 'bordered'], token => {\n  const paginationToken = prepareToken(token);\n  return [genBorderedStyle(paginationToken)];\n}, prepareComponentToken);","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n  var t = {};\n  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n  }\n  return t;\n};\nimport * as React from 'react';\nimport DoubleLeftOutlined from \"@ant-design/icons/es/icons/DoubleLeftOutlined\";\nimport DoubleRightOutlined from \"@ant-design/icons/es/icons/DoubleRightOutlined\";\nimport LeftOutlined from \"@ant-design/icons/es/icons/LeftOutlined\";\nimport RightOutlined from \"@ant-design/icons/es/icons/RightOutlined\";\nimport classNames from 'classnames';\nimport RcPagination from 'rc-pagination';\nimport enUS from \"rc-pagination/es/locale/en_US\";\nimport { ConfigContext } from '../config-provider';\nimport useSize from '../config-provider/hooks/useSize';\nimport useBreakpoint from '../grid/hooks/useBreakpoint';\nimport { useLocale } from '../locale';\nimport { useToken } from '../theme/internal';\nimport { MiddleSelect, MiniSelect } from './Select';\nimport useStyle from './style';\nimport BorderedStyle from './style/bordered';\nconst Pagination = props => {\n  const {\n      align,\n      prefixCls: customizePrefixCls,\n      selectPrefixCls: customizeSelectPrefixCls,\n      className,\n      rootClassName,\n      style,\n      size: customizeSize,\n      locale: customLocale,\n      selectComponentClass,\n      responsive,\n      showSizeChanger\n    } = props,\n    restProps = __rest(props, [\"align\", \"prefixCls\", \"selectPrefixCls\", \"className\", \"rootClassName\", \"style\", \"size\", \"locale\", \"selectComponentClass\", \"responsive\", \"showSizeChanger\"]);\n  const {\n    xs\n  } = useBreakpoint(responsive);\n  const [, token] = useToken();\n  const {\n    getPrefixCls,\n    direction,\n    pagination = {}\n  } = React.useContext(ConfigContext);\n  const prefixCls = getPrefixCls('pagination', customizePrefixCls);\n  // Style\n  const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls);\n  const mergedShowSizeChanger = showSizeChanger !== null && showSizeChanger !== void 0 ? showSizeChanger : pagination.showSizeChanger;\n  const iconsProps = React.useMemo(() => {\n    const ellipsis = /*#__PURE__*/React.createElement(\"span\", {\n      className: `${prefixCls}-item-ellipsis`\n    }, \"\\u2022\\u2022\\u2022\");\n    const prevIcon = /*#__PURE__*/React.createElement(\"button\", {\n      className: `${prefixCls}-item-link`,\n      type: \"button\",\n      tabIndex: -1\n    }, direction === 'rtl' ? /*#__PURE__*/React.createElement(RightOutlined, null) : /*#__PURE__*/React.createElement(LeftOutlined, null));\n    const nextIcon = /*#__PURE__*/React.createElement(\"button\", {\n      className: `${prefixCls}-item-link`,\n      type: \"button\",\n      tabIndex: -1\n    }, direction === 'rtl' ? /*#__PURE__*/React.createElement(LeftOutlined, null) : /*#__PURE__*/React.createElement(RightOutlined, null));\n    const jumpPrevIcon =\n    /*#__PURE__*/\n    // biome-ignore lint/a11y/useValidAnchor: it is hard to refactor\n    React.createElement(\"a\", {\n      className: `${prefixCls}-item-link`\n    }, /*#__PURE__*/React.createElement(\"div\", {\n      className: `${prefixCls}-item-container`\n    }, direction === 'rtl' ? (/*#__PURE__*/React.createElement(DoubleRightOutlined, {\n      className: `${prefixCls}-item-link-icon`\n    })) : (/*#__PURE__*/React.createElement(DoubleLeftOutlined, {\n      className: `${prefixCls}-item-link-icon`\n    })), ellipsis));\n    const jumpNextIcon =\n    /*#__PURE__*/\n    // biome-ignore lint/a11y/useValidAnchor: it is hard to refactor\n    React.createElement(\"a\", {\n      className: `${prefixCls}-item-link`\n    }, /*#__PURE__*/React.createElement(\"div\", {\n      className: `${prefixCls}-item-container`\n    }, direction === 'rtl' ? (/*#__PURE__*/React.createElement(DoubleLeftOutlined, {\n      className: `${prefixCls}-item-link-icon`\n    })) : (/*#__PURE__*/React.createElement(DoubleRightOutlined, {\n      className: `${prefixCls}-item-link-icon`\n    })), ellipsis));\n    return {\n      prevIcon,\n      nextIcon,\n      jumpPrevIcon,\n      jumpNextIcon\n    };\n  }, [direction, prefixCls]);\n  const [contextLocale] = useLocale('Pagination', enUS);\n  const locale = Object.assign(Object.assign({}, contextLocale), customLocale);\n  const mergedSize = useSize(customizeSize);\n  const isSmall = mergedSize === 'small' || !!(xs && !mergedSize && responsive);\n  const selectPrefixCls = getPrefixCls('select', customizeSelectPrefixCls);\n  const extendedClassName = classNames({\n    [`${prefixCls}-${align}`]: !!align,\n    [`${prefixCls}-mini`]: isSmall,\n    [`${prefixCls}-rtl`]: direction === 'rtl',\n    [`${prefixCls}-bordered`]: token.wireframe\n  }, pagination === null || pagination === void 0 ? void 0 : pagination.className, className, rootClassName, hashId, cssVarCls);\n  const mergedStyle = Object.assign(Object.assign({}, pagination === null || pagination === void 0 ? void 0 : pagination.style), style);\n  return wrapCSSVar(/*#__PURE__*/React.createElement(React.Fragment, null, token.wireframe && /*#__PURE__*/React.createElement(BorderedStyle, {\n    prefixCls: prefixCls\n  }), /*#__PURE__*/React.createElement(RcPagination, Object.assign({}, iconsProps, restProps, {\n    style: mergedStyle,\n    prefixCls: prefixCls,\n    selectPrefixCls: selectPrefixCls,\n    className: extendedClassName,\n    selectComponentClass: selectComponentClass || (isSmall ? MiniSelect : MiddleSelect),\n    locale: locale,\n    showSizeChanger: mergedShowSizeChanger\n  }))));\n};\nif (process.env.NODE_ENV !== 'production') {\n  Pagination.displayName = 'Pagination';\n}\nexport default Pagination;","\"use client\";\n\nimport Pagination from './Pagination';\nexport default Pagination;","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nconst viewSize = 100;\nconst borderWidth = viewSize / 5;\nconst radius = viewSize / 2 - borderWidth / 2;\nconst circumference = radius * 2 * Math.PI;\nconst position = 50;\nconst CustomCircle = props => {\n  const {\n    dotClassName,\n    style,\n    hasCircleCls\n  } = props;\n  return /*#__PURE__*/React.createElement(\"circle\", {\n    className: classNames(`${dotClassName}-circle`, {\n      [`${dotClassName}-circle-bg`]: hasCircleCls\n    }),\n    r: radius,\n    cx: position,\n    cy: position,\n    strokeWidth: borderWidth,\n    style: style\n  });\n};\nconst Progress = _ref => {\n  let {\n    percent,\n    prefixCls\n  } = _ref;\n  const dotClassName = `${prefixCls}-dot`;\n  const holderClassName = `${dotClassName}-holder`;\n  const hideClassName = `${holderClassName}-hidden`;\n  const [render, setRender] = React.useState(false);\n  // ==================== Visible =====================\n  useLayoutEffect(() => {\n    if (percent !== 0) {\n      setRender(true);\n    }\n  }, [percent !== 0]);\n  // ==================== Progress ====================\n  const safePtg = Math.max(Math.min(percent, 100), 0);\n  // ===================== Render =====================\n  if (!render) {\n    return null;\n  }\n  const circleStyle = {\n    strokeDashoffset: `${circumference / 4}`,\n    strokeDasharray: `${circumference * safePtg / 100} ${circumference * (100 - safePtg) / 100}`\n  };\n  return /*#__PURE__*/React.createElement(\"span\", {\n    className: classNames(holderClassName, `${dotClassName}-progress`, safePtg <= 0 && hideClassName)\n  }, /*#__PURE__*/React.createElement(\"svg\", {\n    viewBox: `0 0 ${viewSize} ${viewSize}`,\n    // biome-ignore lint/a11y/noNoninteractiveElementToInteractiveRole: progressbar could be readonly\n    role: \"progressbar\",\n    \"aria-valuemin\": 0,\n    \"aria-valuemax\": 100,\n    \"aria-valuenow\": safePtg\n  }, /*#__PURE__*/React.createElement(CustomCircle, {\n    dotClassName: dotClassName,\n    hasCircleCls: true\n  }), /*#__PURE__*/React.createElement(CustomCircle, {\n    dotClassName: dotClassName,\n    style: circleStyle\n  })));\n};\nexport default Progress;","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport Progress from './Progress';\nexport default function Looper(props) {\n  const {\n    prefixCls,\n    percent = 0\n  } = props;\n  const dotClassName = `${prefixCls}-dot`;\n  const holderClassName = `${dotClassName}-holder`;\n  const hideClassName = `${holderClassName}-hidden`;\n  // ===================== Render =====================\n  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"span\", {\n    className: classNames(holderClassName, percent > 0 && hideClassName)\n  }, /*#__PURE__*/React.createElement(\"span\", {\n    className: classNames(dotClassName, `${prefixCls}-dot-spin`)\n  }, [1, 2, 3, 4].map(i => (/*#__PURE__*/React.createElement(\"i\", {\n    className: `${prefixCls}-dot-item`,\n    key: i\n  }))))), /*#__PURE__*/React.createElement(Progress, {\n    prefixCls: prefixCls,\n    percent: percent\n  }));\n}","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { cloneElement } from '../../_util/reactNode';\nimport Looper from './Looper';\nexport default function Indicator(props) {\n  const {\n    prefixCls,\n    indicator,\n    percent\n  } = props;\n  const dotClassName = `${prefixCls}-dot`;\n  if (indicator && /*#__PURE__*/React.isValidElement(indicator)) {\n    return cloneElement(indicator, {\n      className: classNames(indicator.props.className, dotClassName),\n      percent\n    });\n  }\n  return /*#__PURE__*/React.createElement(Looper, {\n    prefixCls: prefixCls,\n    percent: percent\n  });\n}","import { Keyframes } from '@ant-design/cssinjs';\nimport { resetComponent } from '../../style';\nimport { genStyleHooks, mergeToken } from '../../theme/internal';\nconst antSpinMove = new Keyframes('antSpinMove', {\n  to: {\n    opacity: 1\n  }\n});\nconst antRotate = new Keyframes('antRotate', {\n  to: {\n    transform: 'rotate(405deg)'\n  }\n});\nconst genSpinStyle = token => {\n  const {\n    componentCls,\n    calc\n  } = token;\n  return {\n    [componentCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n      position: 'absolute',\n      display: 'none',\n      color: token.colorPrimary,\n      fontSize: 0,\n      textAlign: 'center',\n      verticalAlign: 'middle',\n      opacity: 0,\n      transition: `transform ${token.motionDurationSlow} ${token.motionEaseInOutCirc}`,\n      '&-spinning': {\n        position: 'relative',\n        display: 'inline-block',\n        opacity: 1\n      },\n      [`${componentCls}-text`]: {\n        fontSize: token.fontSize,\n        paddingTop: calc(calc(token.dotSize).sub(token.fontSize)).div(2).add(2).equal()\n      },\n      '&-fullscreen': {\n        position: 'fixed',\n        width: '100vw',\n        height: '100vh',\n        backgroundColor: token.colorBgMask,\n        zIndex: token.zIndexPopupBase,\n        inset: 0,\n        display: 'flex',\n        alignItems: 'center',\n        flexDirection: 'column',\n        justifyContent: 'center',\n        opacity: 0,\n        visibility: 'hidden',\n        transition: `all ${token.motionDurationMid}`,\n        '&-show': {\n          opacity: 1,\n          visibility: 'visible'\n        },\n        [componentCls]: {\n          [`${componentCls}-dot-holder`]: {\n            color: token.colorWhite\n          },\n          [`${componentCls}-text`]: {\n            color: token.colorTextLightSolid\n          }\n        }\n      },\n      '&-nested-loading': {\n        position: 'relative',\n        [`> div > ${componentCls}`]: {\n          position: 'absolute',\n          top: 0,\n          insetInlineStart: 0,\n          zIndex: 4,\n          display: 'block',\n          width: '100%',\n          height: '100%',\n          maxHeight: token.contentHeight,\n          [`${componentCls}-dot`]: {\n            position: 'absolute',\n            top: '50%',\n            insetInlineStart: '50%',\n            margin: calc(token.dotSize).mul(-1).div(2).equal()\n          },\n          [`${componentCls}-text`]: {\n            position: 'absolute',\n            top: '50%',\n            width: '100%',\n            textShadow: `0 1px 2px ${token.colorBgContainer}` // FIXME: shadow\n          },\n          [`&${componentCls}-show-text ${componentCls}-dot`]: {\n            marginTop: calc(token.dotSize).div(2).mul(-1).sub(10).equal()\n          },\n          '&-sm': {\n            [`${componentCls}-dot`]: {\n              margin: calc(token.dotSizeSM).mul(-1).div(2).equal()\n            },\n            [`${componentCls}-text`]: {\n              paddingTop: calc(calc(token.dotSizeSM).sub(token.fontSize)).div(2).add(2).equal()\n            },\n            [`&${componentCls}-show-text ${componentCls}-dot`]: {\n              marginTop: calc(token.dotSizeSM).div(2).mul(-1).sub(10).equal()\n            }\n          },\n          '&-lg': {\n            [`${componentCls}-dot`]: {\n              margin: calc(token.dotSizeLG).mul(-1).div(2).equal()\n            },\n            [`${componentCls}-text`]: {\n              paddingTop: calc(calc(token.dotSizeLG).sub(token.fontSize)).div(2).add(2).equal()\n            },\n            [`&${componentCls}-show-text ${componentCls}-dot`]: {\n              marginTop: calc(token.dotSizeLG).div(2).mul(-1).sub(10).equal()\n            }\n          }\n        },\n        [`${componentCls}-container`]: {\n          position: 'relative',\n          transition: `opacity ${token.motionDurationSlow}`,\n          '&::after': {\n            position: 'absolute',\n            top: 0,\n            insetInlineEnd: 0,\n            bottom: 0,\n            insetInlineStart: 0,\n            zIndex: 10,\n            width: '100%',\n            height: '100%',\n            background: token.colorBgContainer,\n            opacity: 0,\n            transition: `all ${token.motionDurationSlow}`,\n            content: '\"\"',\n            pointerEvents: 'none'\n          }\n        },\n        [`${componentCls}-blur`]: {\n          clear: 'both',\n          opacity: 0.5,\n          userSelect: 'none',\n          pointerEvents: 'none',\n          '&::after': {\n            opacity: 0.4,\n            pointerEvents: 'auto'\n          }\n        }\n      },\n      // tip\n      // ------------------------------\n      '&-tip': {\n        color: token.spinDotDefault\n      },\n      // holder\n      // ------------------------------\n      [`${componentCls}-dot-holder`]: {\n        width: '1em',\n        height: '1em',\n        fontSize: token.dotSize,\n        display: 'inline-block',\n        transition: `transform ${token.motionDurationSlow} ease, opacity ${token.motionDurationSlow} ease`,\n        transformOrigin: '50% 50%',\n        lineHeight: 1,\n        color: token.colorPrimary,\n        '&-hidden': {\n          transform: 'scale(0.3)',\n          opacity: 0\n        }\n      },\n      // progress\n      // ------------------------------\n      [`${componentCls}-dot-progress`]: {\n        position: 'absolute',\n        top: '50%',\n        transform: 'translate(-50%, -50%)',\n        insetInlineStart: '50%'\n      },\n      // dots\n      // ------------------------------\n      [`${componentCls}-dot`]: {\n        position: 'relative',\n        display: 'inline-block',\n        fontSize: token.dotSize,\n        width: '1em',\n        height: '1em',\n        '&-item': {\n          position: 'absolute',\n          display: 'block',\n          width: calc(token.dotSize).sub(calc(token.marginXXS).div(2)).div(2).equal(),\n          height: calc(token.dotSize).sub(calc(token.marginXXS).div(2)).div(2).equal(),\n          background: 'currentColor',\n          borderRadius: '100%',\n          transform: 'scale(0.75)',\n          transformOrigin: '50% 50%',\n          opacity: 0.3,\n          animationName: antSpinMove,\n          animationDuration: '1s',\n          animationIterationCount: 'infinite',\n          animationTimingFunction: 'linear',\n          animationDirection: 'alternate',\n          '&:nth-child(1)': {\n            top: 0,\n            insetInlineStart: 0,\n            animationDelay: '0s'\n          },\n          '&:nth-child(2)': {\n            top: 0,\n            insetInlineEnd: 0,\n            animationDelay: '0.4s'\n          },\n          '&:nth-child(3)': {\n            insetInlineEnd: 0,\n            bottom: 0,\n            animationDelay: '0.8s'\n          },\n          '&:nth-child(4)': {\n            bottom: 0,\n            insetInlineStart: 0,\n            animationDelay: '1.2s'\n          }\n        },\n        '&-spin': {\n          transform: 'rotate(45deg)',\n          animationName: antRotate,\n          animationDuration: '1.2s',\n          animationIterationCount: 'infinite',\n          animationTimingFunction: 'linear'\n        },\n        '&-circle': {\n          strokeLinecap: 'round',\n          transition: ['stroke-dashoffset', 'stroke-dasharray', 'stroke', 'stroke-width', 'opacity'].map(item => `${item} ${token.motionDurationSlow} ease`).join(','),\n          fillOpacity: 0,\n          stroke: 'currentcolor'\n        },\n        '&-circle-bg': {\n          stroke: token.colorFillSecondary\n        }\n      },\n      // small\n      [`&-sm ${componentCls}-dot`]: {\n        '&, &-holder': {\n          fontSize: token.dotSizeSM\n        }\n      },\n      [`&-sm ${componentCls}-dot-holder`]: {\n        i: {\n          width: calc(calc(token.dotSizeSM).sub(calc(token.marginXXS).div(2))).div(2).equal(),\n          height: calc(calc(token.dotSizeSM).sub(calc(token.marginXXS).div(2))).div(2).equal()\n        }\n      },\n      // large\n      [`&-lg ${componentCls}-dot`]: {\n        '&, &-holder': {\n          fontSize: token.dotSizeLG\n        }\n      },\n      [`&-lg ${componentCls}-dot-holder`]: {\n        i: {\n          width: calc(calc(token.dotSizeLG).sub(token.marginXXS)).div(2).equal(),\n          height: calc(calc(token.dotSizeLG).sub(token.marginXXS)).div(2).equal()\n        }\n      },\n      [`&${componentCls}-show-text ${componentCls}-text`]: {\n        display: 'block'\n      }\n    })\n  };\n};\nexport const prepareComponentToken = token => {\n  const {\n    controlHeightLG,\n    controlHeight\n  } = token;\n  return {\n    contentHeight: 400,\n    dotSize: controlHeightLG / 2,\n    dotSizeSM: controlHeightLG * 0.35,\n    dotSizeLG: controlHeight\n  };\n};\n// ============================== Export ==============================\nexport default genStyleHooks('Spin', token => {\n  const spinToken = mergeToken(token, {\n    spinDotDefault: token.colorTextDescription\n  });\n  return [genSpinStyle(spinToken)];\n}, prepareComponentToken);","import * as React from 'react';\nconst AUTO_INTERVAL = 200;\nconst STEP_BUCKETS = [[30, 0.05], [70, 0.03], [96, 0.01]];\nexport default function usePercent(spinning, percent) {\n  const [mockPercent, setMockPercent] = React.useState(0);\n  const mockIntervalRef = React.useRef();\n  const isAuto = percent === 'auto';\n  React.useEffect(() => {\n    if (isAuto && spinning) {\n      setMockPercent(0);\n      mockIntervalRef.current = setInterval(() => {\n        setMockPercent(prev => {\n          const restPTG = 100 - prev;\n          for (let i = 0; i < STEP_BUCKETS.length; i += 1) {\n            const [limit, stepPtg] = STEP_BUCKETS[i];\n            if (prev <= limit) {\n              return prev + restPTG * stepPtg;\n            }\n          }\n          return prev;\n        });\n      }, AUTO_INTERVAL);\n    }\n    return () => {\n      clearInterval(mockIntervalRef.current);\n    };\n  }, [isAuto, spinning]);\n  return isAuto ? mockPercent : percent;\n}","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n  var t = {};\n  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n  }\n  return t;\n};\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { debounce } from 'throttle-debounce';\nimport { devUseWarning } from '../_util/warning';\nimport { ConfigContext } from '../config-provider';\nimport Indicator from './Indicator';\nimport useStyle from './style/index';\nimport usePercent from './usePercent';\nconst _SpinSizes = ['small', 'default', 'large'];\n// Render indicator\nlet defaultIndicator;\nfunction shouldDelay(spinning, delay) {\n  return !!spinning && !!delay && !isNaN(Number(delay));\n}\nconst Spin = props => {\n  var _a;\n  const {\n      prefixCls: customizePrefixCls,\n      spinning: customSpinning = true,\n      delay = 0,\n      className,\n      rootClassName,\n      size = 'default',\n      tip,\n      wrapperClassName,\n      style,\n      children,\n      fullscreen = false,\n      indicator,\n      percent\n    } = props,\n    restProps = __rest(props, [\"prefixCls\", \"spinning\", \"delay\", \"className\", \"rootClassName\", \"size\", \"tip\", \"wrapperClassName\", \"style\", \"children\", \"fullscreen\", \"indicator\", \"percent\"]);\n  const {\n    getPrefixCls,\n    direction,\n    spin\n  } = React.useContext(ConfigContext);\n  const prefixCls = getPrefixCls('spin', customizePrefixCls);\n  const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls);\n  const [spinning, setSpinning] = React.useState(() => customSpinning && !shouldDelay(customSpinning, delay));\n  const mergedPercent = usePercent(spinning, percent);\n  React.useEffect(() => {\n    if (customSpinning) {\n      const showSpinning = debounce(delay, () => {\n        setSpinning(true);\n      });\n      showSpinning();\n      return () => {\n        var _a;\n        (_a = showSpinning === null || showSpinning === void 0 ? void 0 : showSpinning.cancel) === null || _a === void 0 ? void 0 : _a.call(showSpinning);\n      };\n    }\n    setSpinning(false);\n  }, [delay, customSpinning]);\n  const isNestedPattern = React.useMemo(() => typeof children !== 'undefined' && !fullscreen, [children, fullscreen]);\n  if (process.env.NODE_ENV !== 'production') {\n    const warning = devUseWarning('Spin');\n    process.env.NODE_ENV !== \"production\" ? warning(!tip || isNestedPattern || fullscreen, 'usage', '`tip` only work in nest or fullscreen pattern.') : void 0;\n  }\n  const spinClassName = classNames(prefixCls, spin === null || spin === void 0 ? void 0 : spin.className, {\n    [`${prefixCls}-sm`]: size === 'small',\n    [`${prefixCls}-lg`]: size === 'large',\n    [`${prefixCls}-spinning`]: spinning,\n    [`${prefixCls}-show-text`]: !!tip,\n    [`${prefixCls}-rtl`]: direction === 'rtl'\n  }, className, !fullscreen && rootClassName, hashId, cssVarCls);\n  const containerClassName = classNames(`${prefixCls}-container`, {\n    [`${prefixCls}-blur`]: spinning\n  });\n  const mergedIndicator = (_a = indicator !== null && indicator !== void 0 ? indicator : spin === null || spin === void 0 ? void 0 : spin.indicator) !== null && _a !== void 0 ? _a : defaultIndicator;\n  const mergedStyle = Object.assign(Object.assign({}, spin === null || spin === void 0 ? void 0 : spin.style), style);\n  const spinElement = /*#__PURE__*/React.createElement(\"div\", Object.assign({}, restProps, {\n    style: mergedStyle,\n    className: spinClassName,\n    \"aria-live\": \"polite\",\n    \"aria-busy\": spinning\n  }), /*#__PURE__*/React.createElement(Indicator, {\n    prefixCls: prefixCls,\n    indicator: mergedIndicator,\n    percent: mergedPercent\n  }), tip && (isNestedPattern || fullscreen) ? (/*#__PURE__*/React.createElement(\"div\", {\n    className: `${prefixCls}-text`\n  }, tip)) : null);\n  if (isNestedPattern) {\n    return wrapCSSVar(/*#__PURE__*/React.createElement(\"div\", Object.assign({}, restProps, {\n      className: classNames(`${prefixCls}-nested-loading`, wrapperClassName, hashId, cssVarCls)\n    }), spinning && /*#__PURE__*/React.createElement(\"div\", {\n      key: \"loading\"\n    }, spinElement), /*#__PURE__*/React.createElement(\"div\", {\n      className: containerClassName,\n      key: \"container\"\n    }, children)));\n  }\n  if (fullscreen) {\n    return wrapCSSVar(/*#__PURE__*/React.createElement(\"div\", {\n      className: classNames(`${prefixCls}-fullscreen`, {\n        [`${prefixCls}-fullscreen-show`]: spinning\n      }, rootClassName, hashId, cssVarCls)\n    }, spinElement));\n  }\n  return wrapCSSVar(spinElement);\n};\nSpin.setDefaultIndicator = indicator => {\n  defaultIndicator = indicator;\n};\nif (process.env.NODE_ENV !== 'production') {\n  Spin.displayName = 'Spin';\n}\nexport default Spin;","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nfunction renderExpandIcon(locale) {\n  return props => {\n    const {\n      prefixCls,\n      onExpand,\n      record,\n      expanded,\n      expandable\n    } = props;\n    const iconPrefix = `${prefixCls}-row-expand-icon`;\n    return /*#__PURE__*/React.createElement(\"button\", {\n      type: \"button\",\n      onClick: e => {\n        onExpand(record, e);\n        e.stopPropagation();\n      },\n      className: classNames(iconPrefix, {\n        [`${iconPrefix}-spaced`]: !expandable,\n        [`${iconPrefix}-expanded`]: expandable && expanded,\n        [`${iconPrefix}-collapsed`]: expandable && !expanded\n      }),\n      \"aria-label\": expanded ? locale.collapse : locale.expand,\n      \"aria-expanded\": expanded\n    });\n  };\n}\nexport default renderExpandIcon;","export const getColumnKey = (column, defaultKey) => {\n  if ('key' in column && column.key !== undefined && column.key !== null) {\n    return column.key;\n  }\n  if (column.dataIndex) {\n    return Array.isArray(column.dataIndex) ? column.dataIndex.join('.') : column.dataIndex;\n  }\n  return defaultKey;\n};\nexport function getColumnPos(index, pos) {\n  return pos ? `${pos}-${index}` : `${index}`;\n}\nexport const renderColumnTitle = (title, props) => {\n  if (typeof title === 'function') {\n    return title(props);\n  }\n  return title;\n};\n/**\n * Safe get column title\n *\n * Should filter [object Object]\n *\n * @param title\n */\nexport const safeColumnTitle = (title, props) => {\n  const res = renderColumnTitle(title, props);\n  if (Object.prototype.toString.call(res) === '[object Object]') {\n    return '';\n  }\n  return res;\n};","// This icon file is generated automatically.\nvar FilterFilled = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M349 838c0 17.7 14.2 32 31.8 32h262.4c17.6 0 31.8-14.3 31.8-32V642H349v196zm531.1-684H143.9c-24.5 0-39.8 26.7-27.5 48l221.3 376h348.8l221.3-376c12.1-21.3-3.2-48-27.7-48z\" } }] }, \"name\": \"filter\", \"theme\": \"filled\" };\nexport default FilterFilled;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport FilterFilledSvg from \"@ant-design/icons-svg/es/asn/FilterFilled\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar FilterFilled = function FilterFilled(props, ref) {\n  return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n    ref: ref,\n    icon: FilterFilledSvg\n  }));\n};\n\n/**![filter](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTM0OSA4MzhjMCAxNy43IDE0LjIgMzIgMzEuOCAzMmgyNjIuNGMxNy42IDAgMzEuOC0xNC4zIDMxLjgtMzJWNjQySDM0OXYxOTZ6bTUzMS4xLTY4NEgxNDMuOWMtMjQuNSAwLTM5LjggMjYuNy0yNy41IDQ4bDIyMS4zIDM3NmgzNDguOGwyMjEuMy0zNzZjMTIuMS0yMS4zLTMuMi00OC0yNy43LTQ4eiIgLz48L3N2Zz4=) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(FilterFilled);\nif (process.env.NODE_ENV !== 'production') {\n  RefIcon.displayName = 'FilterFilled';\n}\nexport default RefIcon;","// This icon file is generated automatically.\nvar FileOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0042 42h216v494z\" } }] }, \"name\": \"file\", \"theme\": \"outlined\" };\nexport default FileOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport FileOutlinedSvg from \"@ant-design/icons-svg/es/asn/FileOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar FileOutlined = function FileOutlined(props, ref) {\n  return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n    ref: ref,\n    icon: FileOutlinedSvg\n  }));\n};\n\n/**![file](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTg1NC42IDI4OC42TDYzOS40IDczLjRjLTYtNi0xNC4xLTkuNC0yMi42LTkuNEgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjgzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzExLjNjMC04LjUtMy40LTE2LjctOS40LTIyLjd6TTc5MC4yIDMyNkg2MDJWMTM3LjhMNzkwLjIgMzI2em0xLjggNTYySDIzMlYxMzZoMzAydjIxNmE0MiA0MiAwIDAwNDIgNDJoMjE2djQ5NHoiIC8+PC9zdmc+) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(FileOutlined);\nif (process.env.NODE_ENV !== 'production') {\n  RefIcon.displayName = 'FileOutlined';\n}\nexport default RefIcon;","// This icon file is generated automatically.\nvar FolderOpenOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M928 444H820V330.4c0-17.7-14.3-32-32-32H473L355.7 186.2a8.15 8.15 0 00-5.5-2.2H96c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h698c13 0 24.8-7.9 29.7-20l134-332c1.5-3.8 2.3-7.9 2.3-12 0-17.7-14.3-32-32-32zM136 256h188.5l119.6 114.4H748V444H238c-13 0-24.8 7.9-29.7 20L136 643.2V256zm635.3 512H159l103.3-256h612.4L771.3 768z\" } }] }, \"name\": \"folder-open\", \"theme\": \"outlined\" };\nexport default FolderOpenOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport FolderOpenOutlinedSvg from \"@ant-design/icons-svg/es/asn/FolderOpenOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar FolderOpenOutlined = function FolderOpenOutlined(props, ref) {\n  return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n    ref: ref,\n    icon: FolderOpenOutlinedSvg\n  }));\n};\n\n/**![folder-open](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTkyOCA0NDRIODIwVjMzMC40YzAtMTcuNy0xNC4zLTMyLTMyLTMySDQ3M0wzNTUuNyAxODYuMmE4LjE1IDguMTUgMCAwMC01LjUtMi4ySDk2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY1OTJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjk4YzEzIDAgMjQuOC03LjkgMjkuNy0yMGwxMzQtMzMyYzEuNS0zLjggMi4zLTcuOSAyLjMtMTIgMC0xNy43LTE0LjMtMzItMzItMzJ6TTEzNiAyNTZoMTg4LjVsMTE5LjYgMTE0LjRINzQ4VjQ0NEgyMzhjLTEzIDAtMjQuOCA3LjktMjkuNyAyMEwxMzYgNjQzLjJWMjU2em02MzUuMyA1MTJIMTU5bDEwMy4zLTI1Nmg2MTIuNEw3NzEuMyA3Njh6IiAvPjwvc3ZnPg==) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(FolderOpenOutlined);\nif (process.env.NODE_ENV !== 'production') {\n  RefIcon.displayName = 'FolderOpenOutlined';\n}\nexport default RefIcon;","// This icon file is generated automatically.\nvar FolderOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M880 298.4H521L403.7 186.2a8.15 8.15 0 00-5.5-2.2H144c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V330.4c0-17.7-14.3-32-32-32zM840 768H184V256h188.5l119.6 114.4H840V768z\" } }] }, \"name\": \"folder\", \"theme\": \"outlined\" };\nexport default FolderOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport FolderOutlinedSvg from \"@ant-design/icons-svg/es/asn/FolderOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar FolderOutlined = function FolderOutlined(props, ref) {\n  return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n    ref: ref,\n    icon: FolderOutlinedSvg\n  }));\n};\n\n/**![folder](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTg4MCAyOTguNEg1MjFMNDAzLjcgMTg2LjJhOC4xNSA4LjE1IDAgMDAtNS41LTIuMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjU5MmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzMwLjRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTg0MCA3NjhIMTg0VjI1NmgxODguNWwxMTkuNiAxMTQuNEg4NDBWNzY4eiIgLz48L3N2Zz4=) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(FolderOutlined);\nif (process.env.NODE_ENV !== 'production') {\n  RefIcon.displayName = 'FolderOutlined';\n}\nexport default RefIcon;","// This icon file is generated automatically.\nvar HolderOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M300 276.5a56 56 0 1056-97 56 56 0 00-56 97zm0 284a56 56 0 1056-97 56 56 0 00-56 97zM640 228a56 56 0 10112 0 56 56 0 00-112 0zm0 284a56 56 0 10112 0 56 56 0 00-112 0zM300 844.5a56 56 0 1056-97 56 56 0 00-56 97zM640 796a56 56 0 10112 0 56 56 0 00-112 0z\" } }] }, \"name\": \"holder\", \"theme\": \"outlined\" };\nexport default HolderOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport HolderOutlinedSvg from \"@ant-design/icons-svg/es/asn/HolderOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar HolderOutlined = function HolderOutlined(props, ref) {\n  return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n    ref: ref,\n    icon: HolderOutlinedSvg\n  }));\n};\n\n/**![holder](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTMwMCAyNzYuNWE1NiA1NiAwIDEwNTYtOTcgNTYgNTYgMCAwMC01NiA5N3ptMCAyODRhNTYgNTYgMCAxMDU2LTk3IDU2IDU2IDAgMDAtNTYgOTd6TTY0MCAyMjhhNTYgNTYgMCAxMDExMiAwIDU2IDU2IDAgMDAtMTEyIDB6bTAgMjg0YTU2IDU2IDAgMTAxMTIgMCA1NiA1NiAwIDAwLTExMiAwek0zMDAgODQ0LjVhNTYgNTYgMCAxMDU2LTk3IDU2IDU2IDAgMDAtNTYgOTd6TTY0MCA3OTZhNTYgNTYgMCAxMDExMiAwIDU2IDU2IDAgMDAtMTEyIDB6IiAvPjwvc3ZnPg==) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(HolderOutlined);\nif (process.env.NODE_ENV !== 'production') {\n  RefIcon.displayName = 'HolderOutlined';\n}\nexport default RefIcon;","import { Keyframes, unit } from '@ant-design/cssinjs';\nimport { getStyle as getCheckboxStyle } from '../../checkbox/style';\nimport { genFocusOutline, resetComponent } from '../../style';\nimport { genCollapseMotion } from '../../style/motion';\nimport { genStyleHooks, mergeToken } from '../../theme/internal';\n// ============================ Keyframes =============================\nconst treeNodeFX = new Keyframes('ant-tree-node-fx-do-not-use', {\n  '0%': {\n    opacity: 0\n  },\n  '100%': {\n    opacity: 1\n  }\n});\n// ============================== Switch ==============================\nconst getSwitchStyle = (prefixCls, token) => ({\n  [`.${prefixCls}-switcher-icon`]: {\n    display: 'inline-block',\n    fontSize: 10,\n    verticalAlign: 'baseline',\n    svg: {\n      transition: `transform ${token.motionDurationSlow}`\n    }\n  }\n});\n// =============================== Drop ===============================\nconst getDropIndicatorStyle = (prefixCls, token) => ({\n  [`.${prefixCls}-drop-indicator`]: {\n    position: 'absolute',\n    // it should displayed over the following node\n    zIndex: 1,\n    height: 2,\n    backgroundColor: token.colorPrimary,\n    borderRadius: 1,\n    pointerEvents: 'none',\n    '&:after': {\n      position: 'absolute',\n      top: -3,\n      insetInlineStart: -6,\n      width: 8,\n      height: 8,\n      backgroundColor: 'transparent',\n      border: `${unit(token.lineWidthBold)} solid ${token.colorPrimary}`,\n      borderRadius: '50%',\n      content: '\"\"'\n    }\n  }\n});\nexport const genBaseStyle = (prefixCls, token) => {\n  const {\n    treeCls,\n    treeNodeCls,\n    treeNodePadding,\n    titleHeight,\n    nodeSelectedBg,\n    nodeHoverBg\n  } = token;\n  const treeCheckBoxMarginHorizontal = token.paddingXS;\n  return {\n    [treeCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n      background: token.colorBgContainer,\n      borderRadius: token.borderRadius,\n      transition: `background-color ${token.motionDurationSlow}`,\n      [`&${treeCls}-rtl`]: {\n        // >>> Switcher\n        [`${treeCls}-switcher`]: {\n          '&_close': {\n            [`${treeCls}-switcher-icon`]: {\n              svg: {\n                transform: 'rotate(90deg)'\n              }\n            }\n          }\n        }\n      },\n      [`&-focused:not(:hover):not(${treeCls}-active-focused)`]: Object.assign({}, genFocusOutline(token)),\n      // =================== Virtual List ===================\n      [`${treeCls}-list-holder-inner`]: {\n        alignItems: 'flex-start'\n      },\n      [`&${treeCls}-block-node`]: {\n        [`${treeCls}-list-holder-inner`]: {\n          alignItems: 'stretch',\n          // >>> Title\n          [`${treeCls}-node-content-wrapper`]: {\n            flex: 'auto'\n          },\n          // >>> Drag\n          [`${treeNodeCls}.dragging`]: {\n            position: 'relative',\n            '&:after': {\n              position: 'absolute',\n              top: 0,\n              insetInlineEnd: 0,\n              bottom: treeNodePadding,\n              insetInlineStart: 0,\n              border: `1px solid ${token.colorPrimary}`,\n              opacity: 0,\n              animationName: treeNodeFX,\n              animationDuration: token.motionDurationSlow,\n              animationPlayState: 'running',\n              animationFillMode: 'forwards',\n              content: '\"\"',\n              pointerEvents: 'none'\n            }\n          }\n        }\n      },\n      // ===================== TreeNode =====================\n      [treeNodeCls]: {\n        display: 'flex',\n        alignItems: 'flex-start',\n        padding: `0 0 ${unit(treeNodePadding)} 0`,\n        outline: 'none',\n        '&-rtl': {\n          direction: 'rtl'\n        },\n        // Disabled\n        '&-disabled': {\n          // >>> Title\n          [`${treeCls}-node-content-wrapper`]: {\n            color: token.colorTextDisabled,\n            cursor: 'not-allowed',\n            '&:hover': {\n              background: 'transparent'\n            }\n          }\n        },\n        [`&-active ${treeCls}-node-content-wrapper`]: {\n          background: token.controlItemBgHover\n        },\n        [`&:not(${treeNodeCls}-disabled).filter-node ${treeCls}-title`]: {\n          color: token.colorPrimary,\n          fontWeight: 500\n        },\n        '&-draggable': {\n          cursor: 'grab',\n          [`${treeCls}-draggable-icon`]: {\n            // https://github.com/ant-design/ant-design/issues/41915\n            flexShrink: 0,\n            width: titleHeight,\n            lineHeight: unit(titleHeight),\n            textAlign: 'center',\n            visibility: 'visible',\n            opacity: 0.2,\n            transition: `opacity ${token.motionDurationSlow}`,\n            [`${treeNodeCls}:hover &`]: {\n              opacity: 0.45\n            }\n          },\n          [`&${treeNodeCls}-disabled`]: {\n            [`${treeCls}-draggable-icon`]: {\n              visibility: 'hidden'\n            }\n          }\n        }\n      },\n      // >>> Indent\n      [`${treeCls}-indent`]: {\n        alignSelf: 'stretch',\n        whiteSpace: 'nowrap',\n        userSelect: 'none',\n        '&-unit': {\n          display: 'inline-block',\n          width: titleHeight\n        }\n      },\n      // >>> Drag Handler\n      [`${treeCls}-draggable-icon`]: {\n        visibility: 'hidden'\n      },\n      // >>> Switcher\n      [`${treeCls}-switcher`]: Object.assign(Object.assign({}, getSwitchStyle(prefixCls, token)), {\n        position: 'relative',\n        flex: 'none',\n        alignSelf: 'stretch',\n        width: titleHeight,\n        margin: 0,\n        lineHeight: unit(titleHeight),\n        textAlign: 'center',\n        cursor: 'pointer',\n        userSelect: 'none',\n        transition: `all ${token.motionDurationSlow}`,\n        '&-noop': {\n          cursor: 'unset'\n        },\n        '&:before': {\n          pointerEvents: 'none',\n          content: '\"\"',\n          width: titleHeight,\n          height: titleHeight,\n          position: 'absolute',\n          left: {\n            _skip_check_: true,\n            value: 0\n          },\n          top: 0,\n          borderRadius: token.borderRadius,\n          transition: `all ${token.motionDurationSlow}`\n        },\n        [`&:not(${treeCls}-switcher-noop):hover:before`]: {\n          backgroundColor: token.colorBgTextHover\n        },\n        '&_close': {\n          [`${treeCls}-switcher-icon`]: {\n            svg: {\n              transform: 'rotate(-90deg)'\n            }\n          }\n        },\n        '&-loading-icon': {\n          color: token.colorPrimary\n        },\n        '&-leaf-line': {\n          position: 'relative',\n          zIndex: 1,\n          display: 'inline-block',\n          width: '100%',\n          height: '100%',\n          // https://github.com/ant-design/ant-design/issues/31884\n          '&:before': {\n            position: 'absolute',\n            top: 0,\n            insetInlineEnd: token.calc(titleHeight).div(2).equal(),\n            bottom: token.calc(treeNodePadding).mul(-1).equal(),\n            marginInlineStart: -1,\n            borderInlineEnd: `1px solid ${token.colorBorder}`,\n            content: '\"\"'\n          },\n          '&:after': {\n            position: 'absolute',\n            width: token.calc(token.calc(titleHeight).div(2).equal()).mul(0.8).equal(),\n            height: token.calc(titleHeight).div(2).equal(),\n            borderBottom: `1px solid ${token.colorBorder}`,\n            content: '\"\"'\n          }\n        }\n      }),\n      // >>> Checkbox\n      [`${treeCls}-checkbox`]: {\n        top: 'initial',\n        marginInlineEnd: treeCheckBoxMarginHorizontal,\n        alignSelf: 'flex-start',\n        marginTop: token.marginXXS\n      },\n      // >>> Title\n      // add `${treeCls}-checkbox + span` to cover checkbox `${checkboxCls} + span`\n      [`${treeCls}-node-content-wrapper, ${treeCls}-checkbox + span`]: {\n        position: 'relative',\n        zIndex: 'auto',\n        minHeight: titleHeight,\n        margin: 0,\n        padding: `0 ${unit(token.calc(token.paddingXS).div(2).equal())}`,\n        color: 'inherit',\n        lineHeight: unit(titleHeight),\n        background: 'transparent',\n        borderRadius: token.borderRadius,\n        cursor: 'pointer',\n        transition: `all ${token.motionDurationMid}, border 0s, line-height 0s, box-shadow 0s`,\n        '&:hover': {\n          backgroundColor: nodeHoverBg\n        },\n        [`&${treeCls}-node-selected`]: {\n          backgroundColor: nodeSelectedBg\n        },\n        // Icon\n        [`${treeCls}-iconEle`]: {\n          display: 'inline-block',\n          width: titleHeight,\n          height: titleHeight,\n          lineHeight: unit(titleHeight),\n          textAlign: 'center',\n          verticalAlign: 'top',\n          '&:empty': {\n            display: 'none'\n          }\n        }\n      },\n      // https://github.com/ant-design/ant-design/issues/28217\n      [`${treeCls}-unselectable ${treeCls}-node-content-wrapper:hover`]: {\n        backgroundColor: 'transparent'\n      },\n      // ==================== Draggable =====================\n      [`${treeCls}-node-content-wrapper`]: Object.assign({\n        lineHeight: unit(titleHeight),\n        userSelect: 'none'\n      }, getDropIndicatorStyle(prefixCls, token)),\n      [`${treeNodeCls}.drop-container`]: {\n        '> [draggable]': {\n          boxShadow: `0 0 0 2px ${token.colorPrimary}`\n        }\n      },\n      // ==================== Show Line =====================\n      '&-show-line': {\n        // ================ Indent lines ================\n        [`${treeCls}-indent`]: {\n          '&-unit': {\n            position: 'relative',\n            height: '100%',\n            '&:before': {\n              position: 'absolute',\n              top: 0,\n              insetInlineEnd: token.calc(titleHeight).div(2).equal(),\n              bottom: token.calc(treeNodePadding).mul(-1).equal(),\n              borderInlineEnd: `1px solid ${token.colorBorder}`,\n              content: '\"\"'\n            },\n            '&-end': {\n              '&:before': {\n                display: 'none'\n              }\n            }\n          }\n        },\n        // ============== Cover Background ==============\n        [`${treeCls}-switcher`]: {\n          background: 'transparent',\n          '&-line-icon': {\n            // https://github.com/ant-design/ant-design/issues/32813\n            verticalAlign: '-0.15em'\n          }\n        }\n      },\n      [`${treeNodeCls}-leaf-last`]: {\n        [`${treeCls}-switcher`]: {\n          '&-leaf-line': {\n            '&:before': {\n              top: 'auto !important',\n              bottom: 'auto !important',\n              height: `${unit(token.calc(titleHeight).div(2).equal())} !important`\n            }\n          }\n        }\n      }\n    })\n  };\n};\n// ============================ Directory =============================\nexport const genDirectoryStyle = token => {\n  const {\n    treeCls,\n    treeNodeCls,\n    treeNodePadding,\n    directoryNodeSelectedBg,\n    directoryNodeSelectedColor\n  } = token;\n  return {\n    [`${treeCls}${treeCls}-directory`]: {\n      // ================== TreeNode ==================\n      [treeNodeCls]: {\n        position: 'relative',\n        // Hover color\n        '&:before': {\n          position: 'absolute',\n          top: 0,\n          insetInlineEnd: 0,\n          bottom: treeNodePadding,\n          insetInlineStart: 0,\n          transition: `background-color ${token.motionDurationMid}`,\n          content: '\"\"',\n          pointerEvents: 'none'\n        },\n        '&:hover': {\n          '&:before': {\n            background: token.controlItemBgHover\n          }\n        },\n        // Elements\n        '> *': {\n          zIndex: 1\n        },\n        // >>> Switcher\n        [`${treeCls}-switcher`]: {\n          transition: `color ${token.motionDurationMid}`\n        },\n        // >>> Title\n        [`${treeCls}-node-content-wrapper`]: {\n          borderRadius: 0,\n          userSelect: 'none',\n          '&:hover': {\n            background: 'transparent'\n          },\n          [`&${treeCls}-node-selected`]: {\n            color: directoryNodeSelectedColor,\n            background: 'transparent'\n          }\n        },\n        // ============= Selected =============\n        '&-selected': {\n          [`\n            &:hover::before,\n            &::before\n          `]: {\n            background: directoryNodeSelectedBg\n          },\n          // >>> Switcher\n          [`${treeCls}-switcher`]: {\n            color: directoryNodeSelectedColor\n          },\n          // >>> Title\n          [`${treeCls}-node-content-wrapper`]: {\n            color: directoryNodeSelectedColor,\n            background: 'transparent'\n          }\n        }\n      }\n    }\n  };\n};\n// ============================== Merged ==============================\nexport const genTreeStyle = (prefixCls, token) => {\n  const treeCls = `.${prefixCls}`;\n  const treeNodeCls = `${treeCls}-treenode`;\n  const treeNodePadding = token.calc(token.paddingXS).div(2).equal();\n  const treeToken = mergeToken(token, {\n    treeCls,\n    treeNodeCls,\n    treeNodePadding\n  });\n  return [\n  // Basic\n  genBaseStyle(prefixCls, treeToken),\n  // Directory\n  genDirectoryStyle(treeToken)];\n};\nexport const initComponentToken = token => {\n  const {\n    controlHeightSM\n  } = token;\n  return {\n    titleHeight: controlHeightSM,\n    nodeHoverBg: token.controlItemBgHover,\n    nodeSelectedBg: token.controlItemBgActive\n  };\n};\nexport const prepareComponentToken = token => {\n  const {\n    colorTextLightSolid,\n    colorPrimary\n  } = token;\n  return Object.assign(Object.assign({}, initComponentToken(token)), {\n    directoryNodeSelectedColor: colorTextLightSolid,\n    directoryNodeSelectedBg: colorPrimary\n  });\n};\nexport default genStyleHooks('Tree', (token, _ref) => {\n  let {\n    prefixCls\n  } = _ref;\n  return [{\n    [token.componentCls]: getCheckboxStyle(`${prefixCls}-checkbox`, token)\n  }, genTreeStyle(prefixCls, token), genCollapseMotion(token)];\n}, prepareComponentToken);","\"use client\";\n\nimport React from 'react';\nexport const offset = 4;\nfunction dropIndicatorRender(props) {\n  const {\n    dropPosition,\n    dropLevelOffset,\n    prefixCls,\n    indent,\n    direction = 'ltr'\n  } = props;\n  const startPosition = direction === 'ltr' ? 'left' : 'right';\n  const endPosition = direction === 'ltr' ? 'right' : 'left';\n  const style = {\n    [startPosition]: -dropLevelOffset * indent + offset,\n    [endPosition]: 0\n  };\n  switch (dropPosition) {\n    case -1:\n      style.top = -3;\n      break;\n    case 1:\n      style.bottom = -3;\n      break;\n    default:\n      // dropPosition === 0\n      style.bottom = -3;\n      style[startPosition] = indent + offset;\n      break;\n  }\n  return /*#__PURE__*/React.createElement(\"div\", {\n    style: style,\n    className: `${prefixCls}-drop-indicator`\n  });\n}\nexport default dropIndicatorRender;","// This icon file is generated automatically.\nvar CaretDownFilled = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"0 0 1024 1024\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M840.4 300H183.6c-19.7 0-30.7 20.8-18.5 35l328.4 380.8c9.4 10.9 27.5 10.9 37 0L858.9 335c12.2-14.2 1.2-35-18.5-35z\" } }] }, \"name\": \"caret-down\", \"theme\": \"filled\" };\nexport default CaretDownFilled;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport CaretDownFilledSvg from \"@ant-design/icons-svg/es/asn/CaretDownFilled\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar CaretDownFilled = function CaretDownFilled(props, ref) {\n  return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n    ref: ref,\n    icon: CaretDownFilledSvg\n  }));\n};\n\n/**![caret-down](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjAgMCAxMDI0IDEwMjQiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTg0MC40IDMwMEgxODMuNmMtMTkuNyAwLTMwLjcgMjAuOC0xOC41IDM1bDMyOC40IDM4MC44YzkuNCAxMC45IDI3LjUgMTAuOSAzNyAwTDg1OC45IDMzNWMxMi4yLTE0LjIgMS4yLTM1LTE4LjUtMzV6IiAvPjwvc3ZnPg==) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(CaretDownFilled);\nif (process.env.NODE_ENV !== 'production') {\n  RefIcon.displayName = 'CaretDownFilled';\n}\nexport default RefIcon;","// This icon file is generated automatically.\nvar MinusSquareOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M328 544h368c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H328c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z\" } }] }, \"name\": \"minus-square\", \"theme\": \"outlined\" };\nexport default MinusSquareOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport MinusSquareOutlinedSvg from \"@ant-design/icons-svg/es/asn/MinusSquareOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar MinusSquareOutlined = function MinusSquareOutlined(props, ref) {\n  return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n    ref: ref,\n    icon: MinusSquareOutlinedSvg\n  }));\n};\n\n/**![minus-square](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTMyOCA1NDRoMzY4YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04SDMyOGMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOHoiIC8+PHBhdGggZD0iTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDcyOEgxODRWMTg0aDY1NnY2NTZ6IiAvPjwvc3ZnPg==) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(MinusSquareOutlined);\nif (process.env.NODE_ENV !== 'production') {\n  RefIcon.displayName = 'MinusSquareOutlined';\n}\nexport default RefIcon;","// This icon file is generated automatically.\nvar PlusSquareOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M328 544h152v152c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V544h152c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H544V328c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v152H328c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z\" } }] }, \"name\": \"plus-square\", \"theme\": \"outlined\" };\nexport default PlusSquareOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport PlusSquareOutlinedSvg from \"@ant-design/icons-svg/es/asn/PlusSquareOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar PlusSquareOutlined = function PlusSquareOutlined(props, ref) {\n  return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n    ref: ref,\n    icon: PlusSquareOutlinedSvg\n  }));\n};\n\n/**![plus-square](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTMyOCA1NDRoMTUydjE1MmMwIDQuNCAzLjYgOCA4IDhoNDhjNC40IDAgOC0zLjYgOC04VjU0NGgxNTJjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LThINTQ0VjMyOGMwLTQuNC0zLjYtOC04LThoLTQ4Yy00LjQgMC04IDMuNi04IDh2MTUySDMyOGMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOHoiIC8+PHBhdGggZD0iTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDcyOEgxODRWMTg0aDY1NnY2NTZ6IiAvPjwvc3ZnPg==) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(PlusSquareOutlined);\nif (process.env.NODE_ENV !== 'production') {\n  RefIcon.displayName = 'PlusSquareOutlined';\n}\nexport default RefIcon;","\"use client\";\n\nimport * as React from 'react';\nimport CaretDownFilled from \"@ant-design/icons/es/icons/CaretDownFilled\";\nimport FileOutlined from \"@ant-design/icons/es/icons/FileOutlined\";\nimport LoadingOutlined from \"@ant-design/icons/es/icons/LoadingOutlined\";\nimport MinusSquareOutlined from \"@ant-design/icons/es/icons/MinusSquareOutlined\";\nimport PlusSquareOutlined from \"@ant-design/icons/es/icons/PlusSquareOutlined\";\nimport classNames from 'classnames';\nimport { cloneElement } from '../../_util/reactNode';\nconst SwitcherIconCom = props => {\n  const {\n    prefixCls,\n    switcherIcon,\n    treeNodeProps,\n    showLine,\n    switcherLoadingIcon\n  } = props;\n  const {\n    isLeaf,\n    expanded,\n    loading\n  } = treeNodeProps;\n  if (loading) {\n    if (/*#__PURE__*/React.isValidElement(switcherLoadingIcon)) {\n      return switcherLoadingIcon;\n    }\n    return /*#__PURE__*/React.createElement(LoadingOutlined, {\n      className: `${prefixCls}-switcher-loading-icon`\n    });\n  }\n  let showLeafIcon;\n  if (showLine && typeof showLine === 'object') {\n    showLeafIcon = showLine.showLeafIcon;\n  }\n  if (isLeaf) {\n    if (!showLine) {\n      return null;\n    }\n    if (typeof showLeafIcon !== 'boolean' && !!showLeafIcon) {\n      const leafIcon = typeof showLeafIcon === 'function' ? showLeafIcon(treeNodeProps) : showLeafIcon;\n      const leafCls = `${prefixCls}-switcher-line-custom-icon`;\n      if (/*#__PURE__*/React.isValidElement(leafIcon)) {\n        return cloneElement(leafIcon, {\n          className: classNames(leafIcon.props.className || '', leafCls)\n        });\n      }\n      return leafIcon;\n    }\n    return showLeafIcon ? (/*#__PURE__*/React.createElement(FileOutlined, {\n      className: `${prefixCls}-switcher-line-icon`\n    })) : (/*#__PURE__*/React.createElement(\"span\", {\n      className: `${prefixCls}-switcher-leaf-line`\n    }));\n  }\n  const switcherCls = `${prefixCls}-switcher-icon`;\n  const switcher = typeof switcherIcon === 'function' ? switcherIcon(treeNodeProps) : switcherIcon;\n  if (/*#__PURE__*/React.isValidElement(switcher)) {\n    return cloneElement(switcher, {\n      className: classNames(switcher.props.className || '', switcherCls)\n    });\n  }\n  if (switcher !== undefined) {\n    return switcher;\n  }\n  if (showLine) {\n    return expanded ? (/*#__PURE__*/React.createElement(MinusSquareOutlined, {\n      className: `${prefixCls}-switcher-line-icon`\n    })) : (/*#__PURE__*/React.createElement(PlusSquareOutlined, {\n      className: `${prefixCls}-switcher-line-icon`\n    }));\n  }\n  return /*#__PURE__*/React.createElement(CaretDownFilled, {\n    className: switcherCls\n  });\n};\nexport default SwitcherIconCom;","\"use client\";\n\nimport React from 'react';\nimport HolderOutlined from \"@ant-design/icons/es/icons/HolderOutlined\";\nimport classNames from 'classnames';\nimport RcTree from 'rc-tree';\nimport initCollapseMotion from '../_util/motion';\nimport { ConfigContext } from '../config-provider';\nimport { useToken } from '../theme/internal';\nimport useStyle from './style';\nimport dropIndicatorRender from './utils/dropIndicator';\nimport SwitcherIconCom from './utils/iconUtil';\nconst Tree = /*#__PURE__*/React.forwardRef((props, ref) => {\n  var _a;\n  const {\n    getPrefixCls,\n    direction,\n    virtual,\n    tree\n  } = React.useContext(ConfigContext);\n  const {\n    prefixCls: customizePrefixCls,\n    className,\n    showIcon = false,\n    showLine,\n    switcherIcon,\n    switcherLoadingIcon,\n    blockNode = false,\n    children,\n    checkable = false,\n    selectable = true,\n    draggable,\n    motion: customMotion,\n    style\n  } = props;\n  const prefixCls = getPrefixCls('tree', customizePrefixCls);\n  const rootPrefixCls = getPrefixCls();\n  const motion = customMotion !== null && customMotion !== void 0 ? customMotion : Object.assign(Object.assign({}, initCollapseMotion(rootPrefixCls)), {\n    motionAppear: false\n  });\n  const newProps = Object.assign(Object.assign({}, props), {\n    checkable,\n    selectable,\n    showIcon,\n    motion,\n    blockNode,\n    showLine: Boolean(showLine),\n    dropIndicatorRender\n  });\n  const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls);\n  const [, token] = useToken();\n  const itemHeight = token.paddingXS / 2 + (((_a = token.Tree) === null || _a === void 0 ? void 0 : _a.titleHeight) || token.controlHeightSM);\n  const draggableConfig = React.useMemo(() => {\n    if (!draggable) {\n      return false;\n    }\n    let mergedDraggable = {};\n    switch (typeof draggable) {\n      case 'function':\n        mergedDraggable.nodeDraggable = draggable;\n        break;\n      case 'object':\n        mergedDraggable = Object.assign({}, draggable);\n        break;\n      default:\n        break;\n      // Do nothing\n    }\n    if (mergedDraggable.icon !== false) {\n      mergedDraggable.icon = mergedDraggable.icon || /*#__PURE__*/React.createElement(HolderOutlined, null);\n    }\n    return mergedDraggable;\n  }, [draggable]);\n  const renderSwitcherIcon = nodeProps => (/*#__PURE__*/React.createElement(SwitcherIconCom, {\n    prefixCls: prefixCls,\n    switcherIcon: switcherIcon,\n    switcherLoadingIcon: switcherLoadingIcon,\n    treeNodeProps: nodeProps,\n    showLine: showLine\n  }));\n  return wrapCSSVar(\n  /*#__PURE__*/\n  // @ts-ignore\n  React.createElement(RcTree, Object.assign({\n    itemHeight: itemHeight,\n    ref: ref,\n    virtual: virtual\n  }, newProps, {\n    // newProps may contain style so declare style below it\n    style: Object.assign(Object.assign({}, tree === null || tree === void 0 ? void 0 : tree.style), style),\n    prefixCls: prefixCls,\n    className: classNames({\n      [`${prefixCls}-icon-hide`]: !showIcon,\n      [`${prefixCls}-block-node`]: blockNode,\n      [`${prefixCls}-unselectable`]: !selectable,\n      [`${prefixCls}-rtl`]: direction === 'rtl'\n    }, tree === null || tree === void 0 ? void 0 : tree.className, className, hashId, cssVarCls),\n    direction: direction,\n    checkable: checkable ? /*#__PURE__*/React.createElement(\"span\", {\n      className: `${prefixCls}-checkbox-inner`\n    }) : checkable,\n    selectable: selectable,\n    switcherIcon: renderSwitcherIcon,\n    draggable: draggableConfig\n  }), children));\n});\nif (process.env.NODE_ENV !== 'production') {\n  Tree.displayName = 'Tree';\n}\nexport default Tree;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport { fillFieldNames } from \"rc-tree/es/utils/treeUtil\";\nconst RECORD_NONE = 0;\nconst RECORD_START = 1;\nconst RECORD_END = 2;\nfunction traverseNodesKey(treeData, callback, fieldNames) {\n  const {\n    key: fieldKey,\n    children: fieldChildren\n  } = fieldNames;\n  function processNode(dataNode) {\n    const key = dataNode[fieldKey];\n    const children = dataNode[fieldChildren];\n    if (callback(key, dataNode) !== false) {\n      traverseNodesKey(children || [], callback, fieldNames);\n    }\n  }\n  treeData.forEach(processNode);\n}\n/** 计算选中范围，只考虑expanded情况以优化性能 */\nexport function calcRangeKeys(_ref) {\n  let {\n    treeData,\n    expandedKeys,\n    startKey,\n    endKey,\n    fieldNames\n  } = _ref;\n  const keys = [];\n  let record = RECORD_NONE;\n  if (startKey && startKey === endKey) {\n    return [startKey];\n  }\n  if (!startKey || !endKey) {\n    return [];\n  }\n  function matchKey(key) {\n    return key === startKey || key === endKey;\n  }\n  traverseNodesKey(treeData, key => {\n    if (record === RECORD_END) {\n      return false;\n    }\n    if (matchKey(key)) {\n      // Match test\n      keys.push(key);\n      if (record === RECORD_NONE) {\n        record = RECORD_START;\n      } else if (record === RECORD_START) {\n        record = RECORD_END;\n        return false;\n      }\n    } else if (record === RECORD_START) {\n      // Append selection\n      keys.push(key);\n    }\n    return expandedKeys.includes(key);\n  }, fillFieldNames(fieldNames));\n  return keys;\n}\nexport function convertDirectoryKeysToNodes(treeData, keys, fieldNames) {\n  const restKeys = _toConsumableArray(keys);\n  const nodes = [];\n  traverseNodesKey(treeData, (key, node) => {\n    const index = restKeys.indexOf(key);\n    if (index !== -1) {\n      nodes.push(node);\n      restKeys.splice(index, 1);\n    }\n    return !!restKeys.length;\n  }, fillFieldNames(fieldNames));\n  return nodes;\n}","\"use client\";\n\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nvar __rest = this && this.__rest || function (s, e) {\n  var t = {};\n  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n  }\n  return t;\n};\nimport * as React from 'react';\nimport FileOutlined from \"@ant-design/icons/es/icons/FileOutlined\";\nimport FolderOpenOutlined from \"@ant-design/icons/es/icons/FolderOpenOutlined\";\nimport FolderOutlined from \"@ant-design/icons/es/icons/FolderOutlined\";\nimport classNames from 'classnames';\nimport { conductExpandParent } from \"rc-tree/es/util\";\nimport { convertDataToEntities, convertTreeToData } from \"rc-tree/es/utils/treeUtil\";\nimport { ConfigContext } from '../config-provider';\nimport Tree from './Tree';\nimport { calcRangeKeys, convertDirectoryKeysToNodes } from './utils/dictUtil';\nfunction getIcon(props) {\n  const {\n    isLeaf,\n    expanded\n  } = props;\n  if (isLeaf) {\n    return /*#__PURE__*/React.createElement(FileOutlined, null);\n  }\n  return expanded ? /*#__PURE__*/React.createElement(FolderOpenOutlined, null) : /*#__PURE__*/React.createElement(FolderOutlined, null);\n}\nfunction getTreeData(_ref) {\n  let {\n    treeData,\n    children\n  } = _ref;\n  return treeData || convertTreeToData(children);\n}\nconst DirectoryTree = (_a, ref) => {\n  var {\n      defaultExpandAll,\n      defaultExpandParent,\n      defaultExpandedKeys\n    } = _a,\n    props = __rest(_a, [\"defaultExpandAll\", \"defaultExpandParent\", \"defaultExpandedKeys\"]);\n  // Shift click usage\n  const lastSelectedKey = React.useRef();\n  const cachedSelectedKeys = React.useRef();\n  const getInitExpandedKeys = () => {\n    const {\n      keyEntities\n    } = convertDataToEntities(getTreeData(props));\n    let initExpandedKeys;\n    // Expanded keys\n    if (defaultExpandAll) {\n      initExpandedKeys = Object.keys(keyEntities);\n    } else if (defaultExpandParent) {\n      initExpandedKeys = conductExpandParent(props.expandedKeys || defaultExpandedKeys || [], keyEntities);\n    } else {\n      initExpandedKeys = props.expandedKeys || defaultExpandedKeys || [];\n    }\n    return initExpandedKeys;\n  };\n  const [selectedKeys, setSelectedKeys] = React.useState(props.selectedKeys || props.defaultSelectedKeys || []);\n  const [expandedKeys, setExpandedKeys] = React.useState(() => getInitExpandedKeys());\n  React.useEffect(() => {\n    if ('selectedKeys' in props) {\n      setSelectedKeys(props.selectedKeys);\n    }\n  }, [props.selectedKeys]);\n  React.useEffect(() => {\n    if ('expandedKeys' in props) {\n      setExpandedKeys(props.expandedKeys);\n    }\n  }, [props.expandedKeys]);\n  const onExpand = (keys, info) => {\n    var _a;\n    if (!('expandedKeys' in props)) {\n      setExpandedKeys(keys);\n    }\n    // Call origin function\n    return (_a = props.onExpand) === null || _a === void 0 ? void 0 : _a.call(props, keys, info);\n  };\n  const onSelect = (keys, event) => {\n    var _a;\n    const {\n      multiple,\n      fieldNames\n    } = props;\n    const {\n      node,\n      nativeEvent\n    } = event;\n    const {\n      key = ''\n    } = node;\n    const treeData = getTreeData(props);\n    // const newState: DirectoryTreeState = {};\n    // We need wrap this event since some value is not same\n    const newEvent = Object.assign(Object.assign({}, event), {\n      selected: true\n    });\n    // Windows / Mac single pick\n    const ctrlPick = (nativeEvent === null || nativeEvent === void 0 ? void 0 : nativeEvent.ctrlKey) || (nativeEvent === null || nativeEvent === void 0 ? void 0 : nativeEvent.metaKey);\n    const shiftPick = nativeEvent === null || nativeEvent === void 0 ? void 0 : nativeEvent.shiftKey;\n    // Generate new selected keys\n    let newSelectedKeys;\n    if (multiple && ctrlPick) {\n      // Control click\n      newSelectedKeys = keys;\n      lastSelectedKey.current = key;\n      cachedSelectedKeys.current = newSelectedKeys;\n      newEvent.selectedNodes = convertDirectoryKeysToNodes(treeData, newSelectedKeys, fieldNames);\n    } else if (multiple && shiftPick) {\n      // Shift click\n      newSelectedKeys = Array.from(new Set([].concat(_toConsumableArray(cachedSelectedKeys.current || []), _toConsumableArray(calcRangeKeys({\n        treeData,\n        expandedKeys,\n        startKey: key,\n        endKey: lastSelectedKey.current,\n        fieldNames\n      })))));\n      newEvent.selectedNodes = convertDirectoryKeysToNodes(treeData, newSelectedKeys, fieldNames);\n    } else {\n      // Single click\n      newSelectedKeys = [key];\n      lastSelectedKey.current = key;\n      cachedSelectedKeys.current = newSelectedKeys;\n      newEvent.selectedNodes = convertDirectoryKeysToNodes(treeData, newSelectedKeys, fieldNames);\n    }\n    (_a = props.onSelect) === null || _a === void 0 ? void 0 : _a.call(props, newSelectedKeys, newEvent);\n    if (!('selectedKeys' in props)) {\n      setSelectedKeys(newSelectedKeys);\n    }\n  };\n  const {\n    getPrefixCls,\n    direction\n  } = React.useContext(ConfigContext);\n  const {\n      prefixCls: customizePrefixCls,\n      className,\n      showIcon = true,\n      expandAction = 'click'\n    } = props,\n    otherProps = __rest(props, [\"prefixCls\", \"className\", \"showIcon\", \"expandAction\"]);\n  const prefixCls = getPrefixCls('tree', customizePrefixCls);\n  const connectClassName = classNames(`${prefixCls}-directory`, {\n    [`${prefixCls}-directory-rtl`]: direction === 'rtl'\n  }, className);\n  return /*#__PURE__*/React.createElement(Tree, Object.assign({\n    icon: getIcon,\n    ref: ref,\n    blockNode: true\n  }, otherProps, {\n    showIcon: showIcon,\n    expandAction: expandAction,\n    prefixCls: prefixCls,\n    className: connectClassName,\n    expandedKeys: expandedKeys,\n    selectedKeys: selectedKeys,\n    onSelect: onSelect,\n    onExpand: onExpand\n  }));\n};\nconst ForwardDirectoryTree = /*#__PURE__*/React.forwardRef(DirectoryTree);\nif (process.env.NODE_ENV !== 'production') {\n  ForwardDirectoryTree.displayName = 'DirectoryTree';\n}\nexport default ForwardDirectoryTree;","\"use client\";\n\nimport { TreeNode } from 'rc-tree';\nimport DirectoryTree from './DirectoryTree';\nimport TreePure from './Tree';\nconst Tree = TreePure;\nTree.DirectoryTree = DirectoryTree;\nTree.TreeNode = TreeNode;\nexport default Tree;","\"use client\";\n\nimport * as React from 'react';\nimport { useContext, useMemo } from 'react';\nimport classNames from 'classnames';\nimport { devUseWarning } from '../_util/warning';\nimport { ConfigContext } from '../config-provider';\nimport { FormItemInputContext } from '../form/context';\nimport useStyle from './style';\nconst Group = props => {\n  const {\n    getPrefixCls,\n    direction\n  } = useContext(ConfigContext);\n  const {\n    prefixCls: customizePrefixCls,\n    className\n  } = props;\n  const prefixCls = getPrefixCls('input-group', customizePrefixCls);\n  const inputPrefixCls = getPrefixCls('input');\n  const [wrapCSSVar, hashId] = useStyle(inputPrefixCls);\n  const cls = classNames(prefixCls, {\n    [`${prefixCls}-lg`]: props.size === 'large',\n    [`${prefixCls}-sm`]: props.size === 'small',\n    [`${prefixCls}-compact`]: props.compact,\n    [`${prefixCls}-rtl`]: direction === 'rtl'\n  }, hashId, className);\n  const formItemContext = useContext(FormItemInputContext);\n  const groupFormItemContext = useMemo(() => Object.assign(Object.assign({}, formItemContext), {\n    isFormItemInput: false\n  }), [formItemContext]);\n  if (process.env.NODE_ENV !== 'production') {\n    const warning = devUseWarning('Input.Group');\n    warning.deprecated(false, 'Input.Group', 'Space.Compact');\n  }\n  return wrapCSSVar(/*#__PURE__*/React.createElement(\"span\", {\n    className: cls,\n    style: props.style,\n    onMouseEnter: props.onMouseEnter,\n    onMouseLeave: props.onMouseLeave,\n    onFocus: props.onFocus,\n    onBlur: props.onBlur\n  }, /*#__PURE__*/React.createElement(FormItemInputContext.Provider, {\n    value: groupFormItemContext\n  }, props.children)));\n};\nexport default Group;","\"use client\";\n\nimport React from 'react';\nimport CloseCircleFilled from \"@ant-design/icons/es/icons/CloseCircleFilled\";\nconst getAllowClear = allowClear => {\n  let mergedAllowClear;\n  if (typeof allowClear === 'object' && (allowClear === null || allowClear === void 0 ? void 0 : allowClear.clearIcon)) {\n    mergedAllowClear = allowClear;\n  } else if (allowClear) {\n    mergedAllowClear = {\n      clearIcon: /*#__PURE__*/React.createElement(CloseCircleFilled, null)\n    };\n  }\n  return mergedAllowClear;\n};\nexport default getAllowClear;","import { useEffect, useRef } from 'react';\nexport default function useRemovePasswordTimeout(inputRef, triggerOnMount) {\n  const removePasswordTimeoutRef = useRef([]);\n  const removePasswordTimeout = () => {\n    removePasswordTimeoutRef.current.push(setTimeout(() => {\n      var _a, _b, _c, _d;\n      if (((_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.input) && ((_b = inputRef.current) === null || _b === void 0 ? void 0 : _b.input.getAttribute('type')) === 'password' && ((_c = inputRef.current) === null || _c === void 0 ? void 0 : _c.input.hasAttribute('value'))) {\n        (_d = inputRef.current) === null || _d === void 0 ? void 0 : _d.input.removeAttribute('value');\n      }\n    }));\n  };\n  useEffect(() => {\n    if (triggerOnMount) {\n      removePasswordTimeout();\n    }\n    return () => removePasswordTimeoutRef.current.forEach(timer => {\n      if (timer) {\n        clearTimeout(timer);\n      }\n    });\n  }, []);\n  return removePasswordTimeout;\n}","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n  var t = {};\n  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n  }\n  return t;\n};\nimport React, { forwardRef, useContext, useEffect, useRef } from 'react';\nimport classNames from 'classnames';\nimport RcInput from 'rc-input';\nimport { composeRef } from \"rc-util/es/ref\";\nimport ContextIsolator from '../_util/ContextIsolator';\nimport getAllowClear from '../_util/getAllowClear';\nimport { getMergedStatus, getStatusClassNames } from '../_util/statusUtils';\nimport { devUseWarning } from '../_util/warning';\nimport { ConfigContext } from '../config-provider';\nimport DisabledContext from '../config-provider/DisabledContext';\nimport useCSSVarCls from '../config-provider/hooks/useCSSVarCls';\nimport useSize from '../config-provider/hooks/useSize';\nimport { FormItemInputContext } from '../form/context';\nimport useVariant from '../form/hooks/useVariants';\nimport { useCompactItemContext } from '../space/Compact';\nimport useRemovePasswordTimeout from './hooks/useRemovePasswordTimeout';\nimport useStyle from './style';\nimport { hasPrefixSuffix } from './utils';\nexport function triggerFocus(element, option) {\n  if (!element) {\n    return;\n  }\n  element.focus(option);\n  // Selection content\n  const {\n    cursor\n  } = option || {};\n  if (cursor) {\n    const len = element.value.length;\n    switch (cursor) {\n      case 'start':\n        element.setSelectionRange(0, 0);\n        break;\n      case 'end':\n        element.setSelectionRange(len, len);\n        break;\n      default:\n        element.setSelectionRange(0, len);\n    }\n  }\n}\nconst Input = /*#__PURE__*/forwardRef((props, ref) => {\n  var _a;\n  const {\n      prefixCls: customizePrefixCls,\n      bordered = true,\n      status: customStatus,\n      size: customSize,\n      disabled: customDisabled,\n      onBlur,\n      onFocus,\n      suffix,\n      allowClear,\n      addonAfter,\n      addonBefore,\n      className,\n      style,\n      styles,\n      rootClassName,\n      onChange,\n      classNames: classes,\n      variant: customVariant\n    } = props,\n    rest = __rest(props, [\"prefixCls\", \"bordered\", \"status\", \"size\", \"disabled\", \"onBlur\", \"onFocus\", \"suffix\", \"allowClear\", \"addonAfter\", \"addonBefore\", \"className\", \"style\", \"styles\", \"rootClassName\", \"onChange\", \"classNames\", \"variant\"]);\n  if (process.env.NODE_ENV !== 'production') {\n    const {\n      deprecated\n    } = devUseWarning('Input');\n    deprecated(!('bordered' in props), 'bordered', 'variant');\n  }\n  const {\n    getPrefixCls,\n    direction,\n    input\n  } = React.useContext(ConfigContext);\n  const prefixCls = getPrefixCls('input', customizePrefixCls);\n  const inputRef = useRef(null);\n  // Style\n  const rootCls = useCSSVarCls(prefixCls);\n  const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls, rootCls);\n  // ===================== Compact Item =====================\n  const {\n    compactSize,\n    compactItemClassnames\n  } = useCompactItemContext(prefixCls, direction);\n  // ===================== Size =====================\n  const mergedSize = useSize(ctx => {\n    var _a;\n    return (_a = customSize !== null && customSize !== void 0 ? customSize : compactSize) !== null && _a !== void 0 ? _a : ctx;\n  });\n  // ===================== Disabled =====================\n  const disabled = React.useContext(DisabledContext);\n  const mergedDisabled = customDisabled !== null && customDisabled !== void 0 ? customDisabled : disabled;\n  // ===================== Status =====================\n  const {\n    status: contextStatus,\n    hasFeedback,\n    feedbackIcon\n  } = useContext(FormItemInputContext);\n  const mergedStatus = getMergedStatus(contextStatus, customStatus);\n  // ===================== Focus warning =====================\n  const inputHasPrefixSuffix = hasPrefixSuffix(props) || !!hasFeedback;\n  const prevHasPrefixSuffix = useRef(inputHasPrefixSuffix);\n  /* eslint-disable react-hooks/rules-of-hooks */\n  if (process.env.NODE_ENV !== 'production') {\n    const warning = devUseWarning('Input');\n    useEffect(() => {\n      var _a;\n      if (inputHasPrefixSuffix && !prevHasPrefixSuffix.current) {\n        process.env.NODE_ENV !== \"production\" ? warning(document.activeElement === ((_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.input), 'usage', `When Input is focused, dynamic add or remove prefix / suffix will make it lose focus caused by dom structure change. Read more: https://ant.design/components/input/#FAQ`) : void 0;\n      }\n      prevHasPrefixSuffix.current = inputHasPrefixSuffix;\n    }, [inputHasPrefixSuffix]);\n  }\n  /* eslint-enable */\n  // ===================== Remove Password value =====================\n  const removePasswordTimeout = useRemovePasswordTimeout(inputRef, true);\n  const handleBlur = e => {\n    removePasswordTimeout();\n    onBlur === null || onBlur === void 0 ? void 0 : onBlur(e);\n  };\n  const handleFocus = e => {\n    removePasswordTimeout();\n    onFocus === null || onFocus === void 0 ? void 0 : onFocus(e);\n  };\n  const handleChange = e => {\n    removePasswordTimeout();\n    onChange === null || onChange === void 0 ? void 0 : onChange(e);\n  };\n  const suffixNode = (hasFeedback || suffix) && (/*#__PURE__*/React.createElement(React.Fragment, null, suffix, hasFeedback && feedbackIcon));\n  const mergedAllowClear = getAllowClear(allowClear !== null && allowClear !== void 0 ? allowClear : input === null || input === void 0 ? void 0 : input.allowClear);\n  const [variant, enableVariantCls] = useVariant('input', customVariant, bordered);\n  return wrapCSSVar(/*#__PURE__*/React.createElement(RcInput, Object.assign({\n    ref: composeRef(ref, inputRef),\n    prefixCls: prefixCls,\n    autoComplete: input === null || input === void 0 ? void 0 : input.autoComplete\n  }, rest, {\n    disabled: mergedDisabled,\n    onBlur: handleBlur,\n    onFocus: handleFocus,\n    style: Object.assign(Object.assign({}, input === null || input === void 0 ? void 0 : input.style), style),\n    styles: Object.assign(Object.assign({}, input === null || input === void 0 ? void 0 : input.styles), styles),\n    suffix: suffixNode,\n    allowClear: mergedAllowClear,\n    className: classNames(className, rootClassName, cssVarCls, rootCls, compactItemClassnames, input === null || input === void 0 ? void 0 : input.className),\n    onChange: handleChange,\n    addonBefore: addonBefore && (/*#__PURE__*/React.createElement(ContextIsolator, {\n      form: true,\n      space: true\n    }, addonBefore)),\n    addonAfter: addonAfter && (/*#__PURE__*/React.createElement(ContextIsolator, {\n      form: true,\n      space: true\n    }, addonAfter)),\n    classNames: Object.assign(Object.assign(Object.assign({}, classes), input === null || input === void 0 ? void 0 : input.classNames), {\n      input: classNames({\n        [`${prefixCls}-sm`]: mergedSize === 'small',\n        [`${prefixCls}-lg`]: mergedSize === 'large',\n        [`${prefixCls}-rtl`]: direction === 'rtl'\n      }, classes === null || classes === void 0 ? void 0 : classes.input, (_a = input === null || input === void 0 ? void 0 : input.classNames) === null || _a === void 0 ? void 0 : _a.input, hashId),\n      variant: classNames({\n        [`${prefixCls}-${variant}`]: enableVariantCls\n      }, getStatusClassNames(prefixCls, mergedStatus)),\n      affixWrapper: classNames({\n        [`${prefixCls}-affix-wrapper-sm`]: mergedSize === 'small',\n        [`${prefixCls}-affix-wrapper-lg`]: mergedSize === 'large',\n        [`${prefixCls}-affix-wrapper-rtl`]: direction === 'rtl'\n      }, hashId),\n      wrapper: classNames({\n        [`${prefixCls}-group-rtl`]: direction === 'rtl'\n      }, hashId),\n      groupWrapper: classNames({\n        [`${prefixCls}-group-wrapper-sm`]: mergedSize === 'small',\n        [`${prefixCls}-group-wrapper-lg`]: mergedSize === 'large',\n        [`${prefixCls}-group-wrapper-rtl`]: direction === 'rtl',\n        [`${prefixCls}-group-wrapper-${variant}`]: enableVariantCls\n      }, getStatusClassNames(`${prefixCls}-group-wrapper`, mergedStatus, hasFeedback), hashId)\n    })\n  })));\n});\nif (process.env.NODE_ENV !== 'production') {\n  Input.displayName = 'Input';\n}\nexport default Input;","export function hasPrefixSuffix(props) {\n  return !!(props.prefix || props.suffix || props.allowClear || props.showCount);\n}","import { genStyleHooks, mergeToken } from '../../theme/internal';\nimport { initComponentToken, initInputToken } from './token';\n// =============================== OTP ================================\nconst genOTPStyle = token => {\n  const {\n    componentCls,\n    paddingXS\n  } = token;\n  return {\n    [componentCls]: {\n      display: 'inline-flex',\n      alignItems: 'center',\n      flexWrap: 'nowrap',\n      columnGap: paddingXS,\n      '&-rtl': {\n        direction: 'rtl'\n      },\n      [`${componentCls}-input`]: {\n        textAlign: 'center',\n        paddingInline: token.paddingXXS\n      },\n      // ================= Size =================\n      [`&${componentCls}-sm ${componentCls}-input`]: {\n        paddingInline: token.calc(token.paddingXXS).div(2).equal()\n      },\n      [`&${componentCls}-lg ${componentCls}-input`]: {\n        paddingInline: token.paddingXS\n      }\n    }\n  };\n};\n// ============================== Export ==============================\nexport default genStyleHooks(['Input', 'OTP'], token => {\n  const inputToken = mergeToken(token, initInputToken(token));\n  return [genOTPStyle(inputToken)];\n}, initComponentToken);","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n  var t = {};\n  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n  }\n  return t;\n};\nimport * as React from 'react';\nimport raf from \"rc-util/es/raf\";\nimport Input from '../Input';\nconst OTPInput = /*#__PURE__*/React.forwardRef((props, ref) => {\n  const {\n      value,\n      onChange,\n      onActiveChange,\n      index,\n      mask\n    } = props,\n    restProps = __rest(props, [\"value\", \"onChange\", \"onActiveChange\", \"index\", \"mask\"]);\n  const internalValue = value && typeof mask === 'string' ? mask : value;\n  const onInternalChange = e => {\n    onChange(index, e.target.value);\n  };\n  // ========================== Ref ===========================\n  const inputRef = React.useRef(null);\n  React.useImperativeHandle(ref, () => inputRef.current);\n  // ========================= Focus ==========================\n  const syncSelection = () => {\n    raf(() => {\n      var _a;\n      const inputEle = (_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.input;\n      if (document.activeElement === inputEle && inputEle) {\n        inputEle.select();\n      }\n    });\n  };\n  // ======================== Keyboard ========================\n  const onInternalKeyDown = _ref => {\n    let {\n      key\n    } = _ref;\n    if (key === 'ArrowLeft') {\n      onActiveChange(index - 1);\n    } else if (key === 'ArrowRight') {\n      onActiveChange(index + 1);\n    }\n    syncSelection();\n  };\n  const onInternalKeyUp = e => {\n    if (e.key === 'Backspace' && !value) {\n      onActiveChange(index - 1);\n    }\n    syncSelection();\n  };\n  // ========================= Render =========================\n  return /*#__PURE__*/React.createElement(Input, Object.assign({\n    type: mask === true ? 'password' : 'text'\n  }, restProps, {\n    ref: inputRef,\n    value: internalValue,\n    onInput: onInternalChange,\n    onFocus: syncSelection,\n    onKeyDown: onInternalKeyDown,\n    onKeyUp: onInternalKeyUp,\n    onMouseDown: syncSelection,\n    onMouseUp: syncSelection\n  }));\n});\nexport default OTPInput;","\"use client\";\n\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nvar __rest = this && this.__rest || function (s, e) {\n  var t = {};\n  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n  }\n  return t;\n};\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { useEvent } from 'rc-util';\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport { getMergedStatus } from '../../_util/statusUtils';\nimport { devUseWarning } from '../../_util/warning';\nimport { ConfigContext } from '../../config-provider';\nimport useCSSVarCls from '../../config-provider/hooks/useCSSVarCls';\nimport useSize from '../../config-provider/hooks/useSize';\nimport { FormItemInputContext } from '../../form/context';\nimport useStyle from '../style/otp';\nimport OTPInput from './OTPInput';\nfunction strToArr(str) {\n  return (str || '').split('');\n}\nconst OTP = /*#__PURE__*/React.forwardRef((props, ref) => {\n  const {\n      prefixCls: customizePrefixCls,\n      length = 6,\n      size: customSize,\n      defaultValue,\n      value,\n      onChange,\n      formatter,\n      variant,\n      disabled,\n      status: customStatus,\n      autoFocus,\n      mask,\n      type\n    } = props,\n    restProps = __rest(props, [\"prefixCls\", \"length\", \"size\", \"defaultValue\", \"value\", \"onChange\", \"formatter\", \"variant\", \"disabled\", \"status\", \"autoFocus\", \"mask\", \"type\"]);\n  if (process.env.NODE_ENV !== 'production') {\n    const warning = devUseWarning('Input.OTP');\n    process.env.NODE_ENV !== \"production\" ? warning(!(typeof mask === 'string' && mask.length > 1), 'usage', '`mask` prop should be a single character.') : void 0;\n  }\n  const {\n    getPrefixCls,\n    direction\n  } = React.useContext(ConfigContext);\n  const prefixCls = getPrefixCls('otp', customizePrefixCls);\n  const domAttrs = pickAttrs(restProps, {\n    aria: true,\n    data: true,\n    attr: true\n  });\n  // ========================= Root =========================\n  // Style\n  const rootCls = useCSSVarCls(prefixCls);\n  const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls, rootCls);\n  // ========================= Size =========================\n  const mergedSize = useSize(ctx => customSize !== null && customSize !== void 0 ? customSize : ctx);\n  // ======================== Status ========================\n  const formContext = React.useContext(FormItemInputContext);\n  const mergedStatus = getMergedStatus(formContext.status, customStatus);\n  const proxyFormContext = React.useMemo(() => Object.assign(Object.assign({}, formContext), {\n    status: mergedStatus,\n    hasFeedback: false,\n    feedbackIcon: null\n  }), [formContext, mergedStatus]);\n  // ========================= Refs =========================\n  const containerRef = React.useRef(null);\n  const refs = React.useRef({});\n  React.useImperativeHandle(ref, () => ({\n    focus: () => {\n      var _a;\n      (_a = refs.current[0]) === null || _a === void 0 ? void 0 : _a.focus();\n    },\n    blur: () => {\n      var _a;\n      for (let i = 0; i < length; i += 1) {\n        (_a = refs.current[i]) === null || _a === void 0 ? void 0 : _a.blur();\n      }\n    },\n    nativeElement: containerRef.current\n  }));\n  // ======================= Formatter ======================\n  const internalFormatter = txt => formatter ? formatter(txt) : txt;\n  // ======================== Values ========================\n  const [valueCells, setValueCells] = React.useState(strToArr(internalFormatter(defaultValue || '')));\n  React.useEffect(() => {\n    if (value !== undefined) {\n      setValueCells(strToArr(value));\n    }\n  }, [value]);\n  const triggerValueCellsChange = useEvent(nextValueCells => {\n    setValueCells(nextValueCells);\n    // Trigger if all cells are filled\n    if (onChange && nextValueCells.length === length && nextValueCells.every(c => c) && nextValueCells.some((c, index) => valueCells[index] !== c)) {\n      onChange(nextValueCells.join(''));\n    }\n  });\n  const patchValue = useEvent((index, txt) => {\n    let nextCells = _toConsumableArray(valueCells);\n    // Fill cells till index\n    for (let i = 0; i < index; i += 1) {\n      if (!nextCells[i]) {\n        nextCells[i] = '';\n      }\n    }\n    if (txt.length <= 1) {\n      nextCells[index] = txt;\n    } else {\n      nextCells = nextCells.slice(0, index).concat(strToArr(txt));\n    }\n    nextCells = nextCells.slice(0, length);\n    // Clean the last empty cell\n    for (let i = nextCells.length - 1; i >= 0; i -= 1) {\n      if (nextCells[i]) {\n        break;\n      }\n      nextCells.pop();\n    }\n    // Format if needed\n    const formattedValue = internalFormatter(nextCells.map(c => c || ' ').join(''));\n    nextCells = strToArr(formattedValue).map((c, i) => {\n      if (c === ' ' && !nextCells[i]) {\n        return nextCells[i];\n      }\n      return c;\n    });\n    return nextCells;\n  });\n  // ======================== Change ========================\n  const onInputChange = (index, txt) => {\n    var _a;\n    const nextCells = patchValue(index, txt);\n    const nextIndex = Math.min(index + txt.length, length - 1);\n    if (nextIndex !== index) {\n      (_a = refs.current[nextIndex]) === null || _a === void 0 ? void 0 : _a.focus();\n    }\n    triggerValueCellsChange(nextCells);\n  };\n  const onInputActiveChange = nextIndex => {\n    var _a;\n    (_a = refs.current[nextIndex]) === null || _a === void 0 ? void 0 : _a.focus();\n  };\n  // ======================== Render ========================\n  const inputSharedProps = {\n    variant,\n    disabled,\n    status: mergedStatus,\n    mask,\n    type\n  };\n  return wrapCSSVar(/*#__PURE__*/React.createElement(\"div\", Object.assign({}, domAttrs, {\n    ref: containerRef,\n    className: classNames(prefixCls, {\n      [`${prefixCls}-sm`]: mergedSize === 'small',\n      [`${prefixCls}-lg`]: mergedSize === 'large',\n      [`${prefixCls}-rtl`]: direction === 'rtl'\n    }, cssVarCls, hashId)\n  }), /*#__PURE__*/React.createElement(FormItemInputContext.Provider, {\n    value: proxyFormContext\n  }, Array.from({\n    length\n  }).map((_, index) => {\n    const key = `otp-${index}`;\n    const singleValue = valueCells[index] || '';\n    return /*#__PURE__*/React.createElement(OTPInput, Object.assign({\n      ref: inputEle => {\n        refs.current[index] = inputEle;\n      },\n      key: key,\n      index: index,\n      size: mergedSize,\n      htmlSize: 1,\n      className: `${prefixCls}-input`,\n      onChange: onInputChange,\n      value: singleValue,\n      onActiveChange: onInputActiveChange,\n      autoFocus: index === 0 && autoFocus\n    }, inputSharedProps));\n  }))));\n});\nexport default OTP;","// This icon file is generated automatically.\nvar EyeInvisibleOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M942.2 486.2Q889.47 375.11 816.7 305l-50.88 50.88C807.31 395.53 843.45 447.4 874.7 512 791.5 684.2 673.4 766 512 766q-72.67 0-133.87-22.38L323 798.75Q408 838 512 838q288.3 0 430.2-300.3a60.29 60.29 0 000-51.5zm-63.57-320.64L836 122.88a8 8 0 00-11.32 0L715.31 232.2Q624.86 186 512 186q-288.3 0-430.2 300.3a60.3 60.3 0 000 51.5q56.69 119.4 136.5 191.41L112.48 835a8 8 0 000 11.31L155.17 889a8 8 0 0011.31 0l712.15-712.12a8 8 0 000-11.32zM149.3 512C232.6 339.8 350.7 258 512 258c54.54 0 104.13 9.36 149.12 28.39l-70.3 70.3a176 176 0 00-238.13 238.13l-83.42 83.42C223.1 637.49 183.3 582.28 149.3 512zm246.7 0a112.11 112.11 0 01146.2-106.69L401.31 546.2A112 112 0 01396 512z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M508 624c-3.46 0-6.87-.16-10.25-.47l-52.82 52.82a176.09 176.09 0 00227.42-227.42l-52.82 52.82c.31 3.38.47 6.79.47 10.25a111.94 111.94 0 01-112 112z\" } }] }, \"name\": \"eye-invisible\", \"theme\": \"outlined\" };\nexport default EyeInvisibleOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport EyeInvisibleOutlinedSvg from \"@ant-design/icons-svg/es/asn/EyeInvisibleOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar EyeInvisibleOutlined = function EyeInvisibleOutlined(props, ref) {\n  return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n    ref: ref,\n    icon: EyeInvisibleOutlinedSvg\n  }));\n};\n\n/**![eye-invisible](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTk0Mi4yIDQ4Ni4yUTg4OS40NyAzNzUuMTEgODE2LjcgMzA1bC01MC44OCA1MC44OEM4MDcuMzEgMzk1LjUzIDg0My40NSA0NDcuNCA4NzQuNyA1MTIgNzkxLjUgNjg0LjIgNjczLjQgNzY2IDUxMiA3NjZxLTcyLjY3IDAtMTMzLjg3LTIyLjM4TDMyMyA3OTguNzVRNDA4IDgzOCA1MTIgODM4cTI4OC4zIDAgNDMwLjItMzAwLjNhNjAuMjkgNjAuMjkgMCAwMDAtNTEuNXptLTYzLjU3LTMyMC42NEw4MzYgMTIyLjg4YTggOCAwIDAwLTExLjMyIDBMNzE1LjMxIDIzMi4yUTYyNC44NiAxODYgNTEyIDE4NnEtMjg4LjMgMC00MzAuMiAzMDAuM2E2MC4zIDYwLjMgMCAwMDAgNTEuNXE1Ni42OSAxMTkuNCAxMzYuNSAxOTEuNDFMMTEyLjQ4IDgzNWE4IDggMCAwMDAgMTEuMzFMMTU1LjE3IDg4OWE4IDggMCAwMDExLjMxIDBsNzEyLjE1LTcxMi4xMmE4IDggMCAwMDAtMTEuMzJ6TTE0OS4zIDUxMkMyMzIuNiAzMzkuOCAzNTAuNyAyNTggNTEyIDI1OGM1NC41NCAwIDEwNC4xMyA5LjM2IDE0OS4xMiAyOC4zOWwtNzAuMyA3MC4zYTE3NiAxNzYgMCAwMC0yMzguMTMgMjM4LjEzbC04My40MiA4My40MkMyMjMuMSA2MzcuNDkgMTgzLjMgNTgyLjI4IDE0OS4zIDUxMnptMjQ2LjcgMGExMTIuMTEgMTEyLjExIDAgMDExNDYuMi0xMDYuNjlMNDAxLjMxIDU0Ni4yQTExMiAxMTIgMCAwMTM5NiA1MTJ6IiAvPjxwYXRoIGQ9Ik01MDggNjI0Yy0zLjQ2IDAtNi44Ny0uMTYtMTAuMjUtLjQ3bC01Mi44MiA1Mi44MmExNzYuMDkgMTc2LjA5IDAgMDAyMjcuNDItMjI3LjQybC01Mi44MiA1Mi44MmMuMzEgMy4zOC40NyA2Ljc5LjQ3IDEwLjI1YTExMS45NCAxMTEuOTQgMCAwMS0xMTIgMTEyeiIgLz48L3N2Zz4=) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(EyeInvisibleOutlined);\nif (process.env.NODE_ENV !== 'production') {\n  RefIcon.displayName = 'EyeInvisibleOutlined';\n}\nexport default RefIcon;","// This icon file is generated automatically.\nvar EyeOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M942.2 486.2C847.4 286.5 704.1 186 512 186c-192.2 0-335.4 100.5-430.2 300.3a60.3 60.3 0 000 51.5C176.6 737.5 319.9 838 512 838c192.2 0 335.4-100.5 430.2-300.3 7.7-16.2 7.7-35 0-51.5zM512 766c-161.3 0-279.4-81.8-362.7-254C232.6 339.8 350.7 258 512 258c161.3 0 279.4 81.8 362.7 254C791.5 684.2 673.4 766 512 766zm-4-430c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm0 288c-61.9 0-112-50.1-112-112s50.1-112 112-112 112 50.1 112 112-50.1 112-112 112z\" } }] }, \"name\": \"eye\", \"theme\": \"outlined\" };\nexport default EyeOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport EyeOutlinedSvg from \"@ant-design/icons-svg/es/asn/EyeOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar EyeOutlined = function EyeOutlined(props, ref) {\n  return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n    ref: ref,\n    icon: EyeOutlinedSvg\n  }));\n};\n\n/**![eye](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTk0Mi4yIDQ4Ni4yQzg0Ny40IDI4Ni41IDcwNC4xIDE4NiA1MTIgMTg2Yy0xOTIuMiAwLTMzNS40IDEwMC41LTQzMC4yIDMwMC4zYTYwLjMgNjAuMyAwIDAwMCA1MS41QzE3Ni42IDczNy41IDMxOS45IDgzOCA1MTIgODM4YzE5Mi4yIDAgMzM1LjQtMTAwLjUgNDMwLjItMzAwLjMgNy43LTE2LjIgNy43LTM1IDAtNTEuNXpNNTEyIDc2NmMtMTYxLjMgMC0yNzkuNC04MS44LTM2Mi43LTI1NEMyMzIuNiAzMzkuOCAzNTAuNyAyNTggNTEyIDI1OGMxNjEuMyAwIDI3OS40IDgxLjggMzYyLjcgMjU0Qzc5MS41IDY4NC4yIDY3My40IDc2NiA1MTIgNzY2em0tNC00MzBjLTk3LjIgMC0xNzYgNzguOC0xNzYgMTc2czc4LjggMTc2IDE3NiAxNzYgMTc2LTc4LjggMTc2LTE3Ni03OC44LTE3Ni0xNzYtMTc2em0wIDI4OGMtNjEuOSAwLTExMi01MC4xLTExMi0xMTJzNTAuMS0xMTIgMTEyLTExMiAxMTIgNTAuMSAxMTIgMTEyLTUwLjEgMTEyLTExMiAxMTJ6IiAvPjwvc3ZnPg==) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(EyeOutlined);\nif (process.env.NODE_ENV !== 'production') {\n  RefIcon.displayName = 'EyeOutlined';\n}\nexport default RefIcon;","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n  var t = {};\n  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n  }\n  return t;\n};\nimport * as React from 'react';\nimport { useRef, useState } from 'react';\nimport EyeInvisibleOutlined from \"@ant-design/icons/es/icons/EyeInvisibleOutlined\";\nimport EyeOutlined from \"@ant-design/icons/es/icons/EyeOutlined\";\nimport classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport { composeRef } from \"rc-util/es/ref\";\nimport { ConfigContext } from '../config-provider';\nimport useRemovePasswordTimeout from './hooks/useRemovePasswordTimeout';\nimport Input from './Input';\nimport DisabledContext from '../config-provider/DisabledContext';\nconst defaultIconRender = visible => visible ? /*#__PURE__*/React.createElement(EyeOutlined, null) : /*#__PURE__*/React.createElement(EyeInvisibleOutlined, null);\nconst actionMap = {\n  click: 'onClick',\n  hover: 'onMouseOver'\n};\nconst Password = /*#__PURE__*/React.forwardRef((props, ref) => {\n  const {\n    disabled: customDisabled,\n    action = 'click',\n    visibilityToggle = true,\n    iconRender = defaultIconRender\n  } = props;\n  // ===================== Disabled =====================\n  const disabled = React.useContext(DisabledContext);\n  const mergedDisabled = customDisabled !== null && customDisabled !== void 0 ? customDisabled : disabled;\n  const visibilityControlled = typeof visibilityToggle === 'object' && visibilityToggle.visible !== undefined;\n  const [visible, setVisible] = useState(() => visibilityControlled ? visibilityToggle.visible : false);\n  const inputRef = useRef(null);\n  React.useEffect(() => {\n    if (visibilityControlled) {\n      setVisible(visibilityToggle.visible);\n    }\n  }, [visibilityControlled, visibilityToggle]);\n  // Remove Password value\n  const removePasswordTimeout = useRemovePasswordTimeout(inputRef);\n  const onVisibleChange = () => {\n    if (mergedDisabled) {\n      return;\n    }\n    if (visible) {\n      removePasswordTimeout();\n    }\n    setVisible(prevState => {\n      var _a;\n      const newState = !prevState;\n      if (typeof visibilityToggle === 'object') {\n        (_a = visibilityToggle.onVisibleChange) === null || _a === void 0 ? void 0 : _a.call(visibilityToggle, newState);\n      }\n      return newState;\n    });\n  };\n  const getIcon = prefixCls => {\n    const iconTrigger = actionMap[action] || '';\n    const icon = iconRender(visible);\n    const iconProps = {\n      [iconTrigger]: onVisibleChange,\n      className: `${prefixCls}-icon`,\n      key: 'passwordIcon',\n      onMouseDown: e => {\n        // Prevent focused state lost\n        // https://github.com/ant-design/ant-design/issues/15173\n        e.preventDefault();\n      },\n      onMouseUp: e => {\n        // Prevent caret position change\n        // https://github.com/ant-design/ant-design/issues/23524\n        e.preventDefault();\n      }\n    };\n    return /*#__PURE__*/React.cloneElement(/*#__PURE__*/React.isValidElement(icon) ? icon : /*#__PURE__*/React.createElement(\"span\", null, icon), iconProps);\n  };\n  const {\n      className,\n      prefixCls: customizePrefixCls,\n      inputPrefixCls: customizeInputPrefixCls,\n      size\n    } = props,\n    restProps = __rest(props, [\"className\", \"prefixCls\", \"inputPrefixCls\", \"size\"]);\n  const {\n    getPrefixCls\n  } = React.useContext(ConfigContext);\n  const inputPrefixCls = getPrefixCls('input', customizeInputPrefixCls);\n  const prefixCls = getPrefixCls('input-password', customizePrefixCls);\n  const suffixIcon = visibilityToggle && getIcon(prefixCls);\n  const inputClassName = classNames(prefixCls, className, {\n    [`${prefixCls}-${size}`]: !!size\n  });\n  const omittedProps = Object.assign(Object.assign({}, omit(restProps, ['suffix', 'iconRender', 'visibilityToggle'])), {\n    type: visible ? 'text' : 'password',\n    className: inputClassName,\n    prefixCls: inputPrefixCls,\n    suffix: suffixIcon\n  });\n  if (size) {\n    omittedProps.size = size;\n  }\n  return /*#__PURE__*/React.createElement(Input, Object.assign({\n    ref: composeRef(ref, inputRef)\n  }, omittedProps));\n});\nif (process.env.NODE_ENV !== 'production') {\n  Password.displayName = 'Input.Password';\n}\nexport default Password;","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n  var t = {};\n  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n  }\n  return t;\n};\nimport * as React from 'react';\nimport SearchOutlined from \"@ant-design/icons/es/icons/SearchOutlined\";\nimport classNames from 'classnames';\nimport { composeRef } from \"rc-util/es/ref\";\nimport { cloneElement } from '../_util/reactNode';\nimport Button from '../button';\nimport { ConfigContext } from '../config-provider';\nimport useSize from '../config-provider/hooks/useSize';\nimport { useCompactItemContext } from '../space/Compact';\nimport Input from './Input';\nconst Search = /*#__PURE__*/React.forwardRef((props, ref) => {\n  const {\n      prefixCls: customizePrefixCls,\n      inputPrefixCls: customizeInputPrefixCls,\n      className,\n      size: customizeSize,\n      suffix,\n      enterButton = false,\n      addonAfter,\n      loading,\n      disabled,\n      onSearch: customOnSearch,\n      onChange: customOnChange,\n      onCompositionStart,\n      onCompositionEnd\n    } = props,\n    restProps = __rest(props, [\"prefixCls\", \"inputPrefixCls\", \"className\", \"size\", \"suffix\", \"enterButton\", \"addonAfter\", \"loading\", \"disabled\", \"onSearch\", \"onChange\", \"onCompositionStart\", \"onCompositionEnd\"]);\n  const {\n    getPrefixCls,\n    direction\n  } = React.useContext(ConfigContext);\n  const composedRef = React.useRef(false);\n  const prefixCls = getPrefixCls('input-search', customizePrefixCls);\n  const inputPrefixCls = getPrefixCls('input', customizeInputPrefixCls);\n  const {\n    compactSize\n  } = useCompactItemContext(prefixCls, direction);\n  const size = useSize(ctx => {\n    var _a;\n    return (_a = customizeSize !== null && customizeSize !== void 0 ? customizeSize : compactSize) !== null && _a !== void 0 ? _a : ctx;\n  });\n  const inputRef = React.useRef(null);\n  const onChange = e => {\n    if ((e === null || e === void 0 ? void 0 : e.target) && e.type === 'click' && customOnSearch) {\n      customOnSearch(e.target.value, e, {\n        source: 'clear'\n      });\n    }\n    customOnChange === null || customOnChange === void 0 ? void 0 : customOnChange(e);\n  };\n  const onMouseDown = e => {\n    var _a;\n    if (document.activeElement === ((_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.input)) {\n      e.preventDefault();\n    }\n  };\n  const onSearch = e => {\n    var _a, _b;\n    if (customOnSearch) {\n      customOnSearch((_b = (_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.input) === null || _b === void 0 ? void 0 : _b.value, e, {\n        source: 'input'\n      });\n    }\n  };\n  const onPressEnter = e => {\n    if (composedRef.current || loading) {\n      return;\n    }\n    onSearch(e);\n  };\n  const searchIcon = typeof enterButton === 'boolean' ? /*#__PURE__*/React.createElement(SearchOutlined, null) : null;\n  const btnClassName = `${prefixCls}-button`;\n  let button;\n  const enterButtonAsElement = enterButton || {};\n  const isAntdButton = enterButtonAsElement.type && enterButtonAsElement.type.__ANT_BUTTON === true;\n  if (isAntdButton || enterButtonAsElement.type === 'button') {\n    button = cloneElement(enterButtonAsElement, Object.assign({\n      onMouseDown,\n      onClick: e => {\n        var _a, _b;\n        (_b = (_a = enterButtonAsElement === null || enterButtonAsElement === void 0 ? void 0 : enterButtonAsElement.props) === null || _a === void 0 ? void 0 : _a.onClick) === null || _b === void 0 ? void 0 : _b.call(_a, e);\n        onSearch(e);\n      },\n      key: 'enterButton'\n    }, isAntdButton ? {\n      className: btnClassName,\n      size\n    } : {}));\n  } else {\n    button = /*#__PURE__*/React.createElement(Button, {\n      className: btnClassName,\n      type: enterButton ? 'primary' : undefined,\n      size: size,\n      disabled: disabled,\n      key: \"enterButton\",\n      onMouseDown: onMouseDown,\n      onClick: onSearch,\n      loading: loading,\n      icon: searchIcon\n    }, enterButton);\n  }\n  if (addonAfter) {\n    button = [button, cloneElement(addonAfter, {\n      key: 'addonAfter'\n    })];\n  }\n  const cls = classNames(prefixCls, {\n    [`${prefixCls}-rtl`]: direction === 'rtl',\n    [`${prefixCls}-${size}`]: !!size,\n    [`${prefixCls}-with-button`]: !!enterButton\n  }, className);\n  const handleOnCompositionStart = e => {\n    composedRef.current = true;\n    onCompositionStart === null || onCompositionStart === void 0 ? void 0 : onCompositionStart(e);\n  };\n  const handleOnCompositionEnd = e => {\n    composedRef.current = false;\n    onCompositionEnd === null || onCompositionEnd === void 0 ? void 0 : onCompositionEnd(e);\n  };\n  return /*#__PURE__*/React.createElement(Input, Object.assign({\n    ref: composeRef(inputRef, ref),\n    onPressEnter: onPressEnter\n  }, restProps, {\n    size: size,\n    onCompositionStart: handleOnCompositionStart,\n    onCompositionEnd: handleOnCompositionEnd,\n    prefixCls: inputPrefixCls,\n    addonAfter: button,\n    suffix: suffix,\n    onChange: onChange,\n    className: cls,\n    disabled: disabled\n  }));\n});\nif (process.env.NODE_ENV !== 'production') {\n  Search.displayName = 'Search';\n}\nexport default Search;","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n  var t = {};\n  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n  }\n  return t;\n};\nimport * as React from 'react';\nimport { forwardRef } from 'react';\nimport classNames from 'classnames';\nimport RcTextArea from 'rc-textarea';\nimport getAllowClear from '../_util/getAllowClear';\nimport { getMergedStatus, getStatusClassNames } from '../_util/statusUtils';\nimport { devUseWarning } from '../_util/warning';\nimport { ConfigContext } from '../config-provider';\nimport DisabledContext from '../config-provider/DisabledContext';\nimport useCSSVarCls from '../config-provider/hooks/useCSSVarCls';\nimport useSize from '../config-provider/hooks/useSize';\nimport { FormItemInputContext } from '../form/context';\nimport useVariant from '../form/hooks/useVariants';\nimport { triggerFocus } from './Input';\nimport useStyle from './style';\nconst TextArea = /*#__PURE__*/forwardRef((props, ref) => {\n  var _a, _b;\n  const {\n      prefixCls: customizePrefixCls,\n      bordered = true,\n      size: customizeSize,\n      disabled: customDisabled,\n      status: customStatus,\n      allowClear,\n      classNames: classes,\n      rootClassName,\n      className,\n      style,\n      styles,\n      variant: customVariant\n    } = props,\n    rest = __rest(props, [\"prefixCls\", \"bordered\", \"size\", \"disabled\", \"status\", \"allowClear\", \"classNames\", \"rootClassName\", \"className\", \"style\", \"styles\", \"variant\"]);\n  if (process.env.NODE_ENV !== 'production') {\n    const {\n      deprecated\n    } = devUseWarning('TextArea');\n    deprecated(!('bordered' in props), 'bordered', 'variant');\n  }\n  const {\n    getPrefixCls,\n    direction,\n    textArea\n  } = React.useContext(ConfigContext);\n  // ===================== Size =====================\n  const mergedSize = useSize(customizeSize);\n  // ===================== Disabled =====================\n  const disabled = React.useContext(DisabledContext);\n  const mergedDisabled = customDisabled !== null && customDisabled !== void 0 ? customDisabled : disabled;\n  // ===================== Status =====================\n  const {\n    status: contextStatus,\n    hasFeedback,\n    feedbackIcon\n  } = React.useContext(FormItemInputContext);\n  const mergedStatus = getMergedStatus(contextStatus, customStatus);\n  // ===================== Ref =====================\n  const innerRef = React.useRef(null);\n  React.useImperativeHandle(ref, () => {\n    var _a;\n    return {\n      resizableTextArea: (_a = innerRef.current) === null || _a === void 0 ? void 0 : _a.resizableTextArea,\n      focus: option => {\n        var _a, _b;\n        triggerFocus((_b = (_a = innerRef.current) === null || _a === void 0 ? void 0 : _a.resizableTextArea) === null || _b === void 0 ? void 0 : _b.textArea, option);\n      },\n      blur: () => {\n        var _a;\n        return (_a = innerRef.current) === null || _a === void 0 ? void 0 : _a.blur();\n      }\n    };\n  });\n  const prefixCls = getPrefixCls('input', customizePrefixCls);\n  // ===================== Style =====================\n  const rootCls = useCSSVarCls(prefixCls);\n  const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls, rootCls);\n  const [variant, enableVariantCls] = useVariant('textArea', customVariant, bordered);\n  const mergedAllowClear = getAllowClear(allowClear !== null && allowClear !== void 0 ? allowClear : textArea === null || textArea === void 0 ? void 0 : textArea.allowClear);\n  return wrapCSSVar(/*#__PURE__*/React.createElement(RcTextArea, Object.assign({\n    autoComplete: textArea === null || textArea === void 0 ? void 0 : textArea.autoComplete\n  }, rest, {\n    style: Object.assign(Object.assign({}, textArea === null || textArea === void 0 ? void 0 : textArea.style), style),\n    styles: Object.assign(Object.assign({}, textArea === null || textArea === void 0 ? void 0 : textArea.styles), styles),\n    disabled: mergedDisabled,\n    allowClear: mergedAllowClear,\n    className: classNames(cssVarCls, rootCls, className, rootClassName, textArea === null || textArea === void 0 ? void 0 : textArea.className),\n    classNames: Object.assign(Object.assign(Object.assign({}, classes), textArea === null || textArea === void 0 ? void 0 : textArea.classNames), {\n      textarea: classNames({\n        [`${prefixCls}-sm`]: mergedSize === 'small',\n        [`${prefixCls}-lg`]: mergedSize === 'large'\n      }, hashId, classes === null || classes === void 0 ? void 0 : classes.textarea, (_a = textArea === null || textArea === void 0 ? void 0 : textArea.classNames) === null || _a === void 0 ? void 0 : _a.textarea),\n      variant: classNames({\n        [`${prefixCls}-${variant}`]: enableVariantCls\n      }, getStatusClassNames(prefixCls, mergedStatus)),\n      affixWrapper: classNames(`${prefixCls}-textarea-affix-wrapper`, {\n        [`${prefixCls}-affix-wrapper-rtl`]: direction === 'rtl',\n        [`${prefixCls}-affix-wrapper-sm`]: mergedSize === 'small',\n        [`${prefixCls}-affix-wrapper-lg`]: mergedSize === 'large',\n        [`${prefixCls}-textarea-show-count`]: props.showCount || ((_b = props.count) === null || _b === void 0 ? void 0 : _b.show)\n      }, hashId)\n    }),\n    prefixCls: prefixCls,\n    suffix: hasFeedback && /*#__PURE__*/React.createElement(\"span\", {\n      className: `${prefixCls}-textarea-suffix`\n    }, feedbackIcon),\n    ref: innerRef\n  })));\n});\nexport default TextArea;","\"use client\";\n\nimport Group from './Group';\nimport InternalInput from './Input';\nimport OTP from './OTP';\nimport Password from './Password';\nimport Search from './Search';\nimport TextArea from './TextArea';\nconst Input = InternalInput;\nInput.Group = Group;\nInput.Search = Search;\nInput.TextArea = TextArea;\nInput.Password = Password;\nInput.OTP = OTP;\nexport default Input;","\"use client\";\n\nimport * as React from 'react';\nimport SearchOutlined from \"@ant-design/icons/es/icons/SearchOutlined\";\nimport Input from '../../../input';\nconst FilterSearch = props => {\n  const {\n    value,\n    filterSearch,\n    tablePrefixCls,\n    locale,\n    onChange\n  } = props;\n  if (!filterSearch) {\n    return null;\n  }\n  return /*#__PURE__*/React.createElement(\"div\", {\n    className: `${tablePrefixCls}-filter-dropdown-search`\n  }, /*#__PURE__*/React.createElement(Input, {\n    prefix: /*#__PURE__*/React.createElement(SearchOutlined, null),\n    placeholder: locale.filterSearchPlaceholder,\n    onChange: onChange,\n    value: value,\n    // for skip min-width of input\n    htmlSize: 1,\n    className: `${tablePrefixCls}-filter-dropdown-search-input`\n  }));\n};\nexport default FilterSearch;","\"use client\";\n\nimport * as React from 'react';\nimport KeyCode from \"rc-util/es/KeyCode\";\nconst onKeyDown = event => {\n  const {\n    keyCode\n  } = event;\n  if (keyCode === KeyCode.ENTER) {\n    event.stopPropagation();\n  }\n};\nconst FilterDropdownMenuWrapper = /*#__PURE__*/React.forwardRef((props, ref) => (/*#__PURE__*/React.createElement(\"div\", {\n  className: props.className,\n  onClick: e => e.stopPropagation(),\n  onKeyDown: onKeyDown,\n  ref: ref\n}, props.children)));\nif (process.env.NODE_ENV !== 'production') {\n  FilterDropdownMenuWrapper.displayName = 'FilterDropdownMenuWrapper';\n}\nexport default FilterDropdownMenuWrapper;","\"use client\";\n\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\nimport FilterFilled from \"@ant-design/icons/es/icons/FilterFilled\";\nimport classNames from 'classnames';\nimport isEqual from \"rc-util/es/isEqual\";\nimport useSyncState from '../../../_util/hooks/useSyncState';\nimport { devUseWarning } from '../../../_util/warning';\nimport Button from '../../../button';\nimport Checkbox from '../../../checkbox';\nimport { ConfigContext } from '../../../config-provider/context';\nimport Dropdown from '../../../dropdown';\nimport Empty from '../../../empty';\nimport Menu from '../../../menu';\nimport { OverrideProvider } from '../../../menu/OverrideContext';\nimport Radio from '../../../radio';\nimport Tree from '../../../tree';\nimport FilterSearch from './FilterSearch';\nimport FilterDropdownMenuWrapper from './FilterWrapper';\nexport function flattenKeys(filters) {\n  let keys = [];\n  (filters || []).forEach(_ref => {\n    let {\n      value,\n      children\n    } = _ref;\n    keys.push(value);\n    if (children) {\n      keys = [].concat(_toConsumableArray(keys), _toConsumableArray(flattenKeys(children)));\n    }\n  });\n  return keys;\n}\nfunction hasSubMenu(filters) {\n  return filters.some(_ref2 => {\n    let {\n      children\n    } = _ref2;\n    return children;\n  });\n}\nfunction searchValueMatched(searchValue, text) {\n  if (typeof text === 'string' || typeof text === 'number') {\n    return text === null || text === void 0 ? void 0 : text.toString().toLowerCase().includes(searchValue.trim().toLowerCase());\n  }\n  return false;\n}\nfunction renderFilterItems(_ref3) {\n  let {\n    filters,\n    prefixCls,\n    filteredKeys,\n    filterMultiple,\n    searchValue,\n    filterSearch\n  } = _ref3;\n  return filters.map((filter, index) => {\n    const key = String(filter.value);\n    if (filter.children) {\n      return {\n        key: key || index,\n        label: filter.text,\n        popupClassName: `${prefixCls}-dropdown-submenu`,\n        children: renderFilterItems({\n          filters: filter.children,\n          prefixCls,\n          filteredKeys,\n          filterMultiple,\n          searchValue,\n          filterSearch\n        })\n      };\n    }\n    const Component = filterMultiple ? Checkbox : Radio;\n    const item = {\n      key: filter.value !== undefined ? key : index,\n      label: (/*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Component, {\n        checked: filteredKeys.includes(key)\n      }), /*#__PURE__*/React.createElement(\"span\", null, filter.text)))\n    };\n    if (searchValue.trim()) {\n      if (typeof filterSearch === 'function') {\n        return filterSearch(searchValue, filter) ? item : null;\n      }\n      return searchValueMatched(searchValue, filter.text) ? item : null;\n    }\n    return item;\n  });\n}\nfunction wrapStringListType(keys) {\n  return keys || [];\n}\nconst FilterDropdown = props => {\n  var _a, _b;\n  const {\n    tablePrefixCls,\n    prefixCls,\n    column,\n    dropdownPrefixCls,\n    columnKey,\n    filterOnClose,\n    filterMultiple,\n    filterMode = 'menu',\n    filterSearch = false,\n    filterState,\n    triggerFilter,\n    locale,\n    children,\n    getPopupContainer,\n    rootClassName\n  } = props;\n  const {\n    filterDropdownOpen,\n    onFilterDropdownOpenChange,\n    filterResetToDefaultFilteredValue,\n    defaultFilteredValue,\n    // Deprecated\n    filterDropdownVisible,\n    onFilterDropdownVisibleChange\n  } = column;\n  const [visible, setVisible] = React.useState(false);\n  const filtered = !!(filterState && (((_a = filterState.filteredKeys) === null || _a === void 0 ? void 0 : _a.length) || filterState.forceFiltered));\n  const triggerVisible = newVisible => {\n    setVisible(newVisible);\n    onFilterDropdownOpenChange === null || onFilterDropdownOpenChange === void 0 ? void 0 : onFilterDropdownOpenChange(newVisible);\n    onFilterDropdownVisibleChange === null || onFilterDropdownVisibleChange === void 0 ? void 0 : onFilterDropdownVisibleChange(newVisible);\n  };\n  if (process.env.NODE_ENV !== 'production') {\n    const warning = devUseWarning('Table');\n    [['filterDropdownVisible', 'filterDropdownOpen', filterDropdownVisible], ['onFilterDropdownVisibleChange', 'onFilterDropdownOpenChange', onFilterDropdownVisibleChange]].forEach(_ref4 => {\n      let [deprecatedName, newName, prop] = _ref4;\n      warning.deprecated(prop === undefined || prop === null, deprecatedName, newName);\n    });\n  }\n  const mergedVisible = (_b = filterDropdownOpen !== null && filterDropdownOpen !== void 0 ? filterDropdownOpen : filterDropdownVisible) !== null && _b !== void 0 ? _b : visible;\n  // ===================== Select Keys =====================\n  const propFilteredKeys = filterState === null || filterState === void 0 ? void 0 : filterState.filteredKeys;\n  const [getFilteredKeysSync, setFilteredKeysSync] = useSyncState(wrapStringListType(propFilteredKeys));\n  const onSelectKeys = _ref5 => {\n    let {\n      selectedKeys\n    } = _ref5;\n    setFilteredKeysSync(selectedKeys);\n  };\n  const onCheck = (keys, _ref6) => {\n    let {\n      node,\n      checked\n    } = _ref6;\n    if (!filterMultiple) {\n      onSelectKeys({\n        selectedKeys: checked && node.key ? [node.key] : []\n      });\n    } else {\n      onSelectKeys({\n        selectedKeys: keys\n      });\n    }\n  };\n  React.useEffect(() => {\n    if (!visible) {\n      return;\n    }\n    onSelectKeys({\n      selectedKeys: wrapStringListType(propFilteredKeys)\n    });\n  }, [propFilteredKeys]);\n  // ====================== Open Keys ======================\n  const [openKeys, setOpenKeys] = React.useState([]);\n  const onOpenChange = keys => {\n    setOpenKeys(keys);\n  };\n  // search in tree mode column filter\n  const [searchValue, setSearchValue] = React.useState('');\n  const onSearch = e => {\n    const {\n      value\n    } = e.target;\n    setSearchValue(value);\n  };\n  // clear search value after close filter dropdown\n  React.useEffect(() => {\n    if (!visible) {\n      setSearchValue('');\n    }\n  }, [visible]);\n  // ======================= Submit ========================\n  const internalTriggerFilter = keys => {\n    const mergedKeys = (keys === null || keys === void 0 ? void 0 : keys.length) ? keys : null;\n    if (mergedKeys === null && (!filterState || !filterState.filteredKeys)) {\n      return null;\n    }\n    if (isEqual(mergedKeys, filterState === null || filterState === void 0 ? void 0 : filterState.filteredKeys, true)) {\n      return null;\n    }\n    triggerFilter({\n      column,\n      key: columnKey,\n      filteredKeys: mergedKeys\n    });\n  };\n  const onConfirm = () => {\n    triggerVisible(false);\n    internalTriggerFilter(getFilteredKeysSync());\n  };\n  const onReset = function () {\n    let {\n      confirm,\n      closeDropdown\n    } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {\n      confirm: false,\n      closeDropdown: false\n    };\n    if (confirm) {\n      internalTriggerFilter([]);\n    }\n    if (closeDropdown) {\n      triggerVisible(false);\n    }\n    setSearchValue('');\n    if (filterResetToDefaultFilteredValue) {\n      setFilteredKeysSync((defaultFilteredValue || []).map(key => String(key)));\n    } else {\n      setFilteredKeysSync([]);\n    }\n  };\n  const doFilter = function () {\n    let {\n      closeDropdown\n    } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {\n      closeDropdown: true\n    };\n    if (closeDropdown) {\n      triggerVisible(false);\n    }\n    internalTriggerFilter(getFilteredKeysSync());\n  };\n  const onVisibleChange = (newVisible, info) => {\n    if (info.source === 'trigger') {\n      if (newVisible && propFilteredKeys !== undefined) {\n        // Sync filteredKeys on appear in controlled mode (propFilteredKeys !== undefined)\n        setFilteredKeysSync(wrapStringListType(propFilteredKeys));\n      }\n      triggerVisible(newVisible);\n      if (!newVisible && !column.filterDropdown && filterOnClose) {\n        onConfirm();\n      }\n    }\n  };\n  // ======================== Style ========================\n  const dropdownMenuClass = classNames({\n    [`${dropdownPrefixCls}-menu-without-submenu`]: !hasSubMenu(column.filters || [])\n  });\n  const onCheckAll = e => {\n    if (e.target.checked) {\n      const allFilterKeys = flattenKeys(column === null || column === void 0 ? void 0 : column.filters).map(key => String(key));\n      setFilteredKeysSync(allFilterKeys);\n    } else {\n      setFilteredKeysSync([]);\n    }\n  };\n  const getTreeData = _ref7 => {\n    let {\n      filters\n    } = _ref7;\n    return (filters || []).map((filter, index) => {\n      const key = String(filter.value);\n      const item = {\n        title: filter.text,\n        key: filter.value !== undefined ? key : String(index)\n      };\n      if (filter.children) {\n        item.children = getTreeData({\n          filters: filter.children\n        });\n      }\n      return item;\n    });\n  };\n  const getFilterData = node => {\n    var _a;\n    return Object.assign(Object.assign({}, node), {\n      text: node.title,\n      value: node.key,\n      children: ((_a = node.children) === null || _a === void 0 ? void 0 : _a.map(item => getFilterData(item))) || []\n    });\n  };\n  let dropdownContent;\n  const {\n    direction,\n    renderEmpty\n  } = React.useContext(ConfigContext);\n  if (typeof column.filterDropdown === 'function') {\n    dropdownContent = column.filterDropdown({\n      prefixCls: `${dropdownPrefixCls}-custom`,\n      setSelectedKeys: selectedKeys => onSelectKeys({\n        selectedKeys: selectedKeys\n      }),\n      selectedKeys: getFilteredKeysSync(),\n      confirm: doFilter,\n      clearFilters: onReset,\n      filters: column.filters,\n      visible: mergedVisible,\n      close: () => {\n        triggerVisible(false);\n      }\n    });\n  } else if (column.filterDropdown) {\n    dropdownContent = column.filterDropdown;\n  } else {\n    const selectedKeys = getFilteredKeysSync() || [];\n    const getFilterComponent = () => {\n      var _a;\n      const empty = (_a = renderEmpty === null || renderEmpty === void 0 ? void 0 : renderEmpty('Table.filter')) !== null && _a !== void 0 ? _a : (/*#__PURE__*/React.createElement(Empty, {\n        image: Empty.PRESENTED_IMAGE_SIMPLE,\n        description: locale.filterEmptyText,\n        imageStyle: {\n          height: 24\n        },\n        style: {\n          margin: 0,\n          padding: '16px 0'\n        }\n      }));\n      if ((column.filters || []).length === 0) {\n        return empty;\n      }\n      if (filterMode === 'tree') {\n        return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(FilterSearch, {\n          filterSearch: filterSearch,\n          value: searchValue,\n          onChange: onSearch,\n          tablePrefixCls: tablePrefixCls,\n          locale: locale\n        }), /*#__PURE__*/React.createElement(\"div\", {\n          className: `${tablePrefixCls}-filter-dropdown-tree`\n        }, filterMultiple ? (/*#__PURE__*/React.createElement(Checkbox, {\n          checked: selectedKeys.length === flattenKeys(column.filters).length,\n          indeterminate: selectedKeys.length > 0 && selectedKeys.length < flattenKeys(column.filters).length,\n          className: `${tablePrefixCls}-filter-dropdown-checkall`,\n          onChange: onCheckAll\n        }, locale.filterCheckall)) : null, /*#__PURE__*/React.createElement(Tree, {\n          checkable: true,\n          selectable: false,\n          blockNode: true,\n          multiple: filterMultiple,\n          checkStrictly: !filterMultiple,\n          className: `${dropdownPrefixCls}-menu`,\n          onCheck: onCheck,\n          checkedKeys: selectedKeys,\n          selectedKeys: selectedKeys,\n          showIcon: false,\n          treeData: getTreeData({\n            filters: column.filters\n          }),\n          autoExpandParent: true,\n          defaultExpandAll: true,\n          filterTreeNode: searchValue.trim() ? node => {\n            if (typeof filterSearch === 'function') {\n              return filterSearch(searchValue, getFilterData(node));\n            }\n            return searchValueMatched(searchValue, node.title);\n          } : undefined\n        })));\n      }\n      const items = renderFilterItems({\n        filters: column.filters || [],\n        filterSearch,\n        prefixCls,\n        filteredKeys: getFilteredKeysSync(),\n        filterMultiple,\n        searchValue\n      });\n      const isEmpty = items.every(item => item === null);\n      return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(FilterSearch, {\n        filterSearch: filterSearch,\n        value: searchValue,\n        onChange: onSearch,\n        tablePrefixCls: tablePrefixCls,\n        locale: locale\n      }), isEmpty ? empty : (/*#__PURE__*/React.createElement(Menu, {\n        selectable: true,\n        multiple: filterMultiple,\n        prefixCls: `${dropdownPrefixCls}-menu`,\n        className: dropdownMenuClass,\n        onSelect: onSelectKeys,\n        onDeselect: onSelectKeys,\n        selectedKeys: selectedKeys,\n        getPopupContainer: getPopupContainer,\n        openKeys: openKeys,\n        onOpenChange: onOpenChange,\n        items: items\n      })));\n    };\n    const getResetDisabled = () => {\n      if (filterResetToDefaultFilteredValue) {\n        return isEqual((defaultFilteredValue || []).map(key => String(key)), selectedKeys, true);\n      }\n      return selectedKeys.length === 0;\n    };\n    dropdownContent = /*#__PURE__*/React.createElement(React.Fragment, null, getFilterComponent(), /*#__PURE__*/React.createElement(\"div\", {\n      className: `${prefixCls}-dropdown-btns`\n    }, /*#__PURE__*/React.createElement(Button, {\n      type: \"link\",\n      size: \"small\",\n      disabled: getResetDisabled(),\n      onClick: () => onReset()\n    }, locale.filterReset), /*#__PURE__*/React.createElement(Button, {\n      type: \"primary\",\n      size: \"small\",\n      onClick: onConfirm\n    }, locale.filterConfirm)));\n  }\n  // We should not block customize Menu with additional props\n  if (column.filterDropdown) {\n    dropdownContent = /*#__PURE__*/React.createElement(OverrideProvider, {\n      selectable: undefined\n    }, dropdownContent);\n  }\n  const menu = () => (/*#__PURE__*/React.createElement(FilterDropdownMenuWrapper, {\n    className: `${prefixCls}-dropdown`\n  }, dropdownContent));\n  let filterIcon;\n  if (typeof column.filterIcon === 'function') {\n    filterIcon = column.filterIcon(filtered);\n  } else if (column.filterIcon) {\n    filterIcon = column.filterIcon;\n  } else {\n    filterIcon = /*#__PURE__*/React.createElement(FilterFilled, null);\n  }\n  return /*#__PURE__*/React.createElement(\"div\", {\n    className: `${prefixCls}-column`\n  }, /*#__PURE__*/React.createElement(\"span\", {\n    className: `${tablePrefixCls}-column-title`\n  }, children), /*#__PURE__*/React.createElement(Dropdown, {\n    dropdownRender: menu,\n    trigger: ['click'],\n    open: mergedVisible,\n    onOpenChange: onVisibleChange,\n    getPopupContainer: getPopupContainer,\n    placement: direction === 'rtl' ? 'bottomLeft' : 'bottomRight',\n    rootClassName: rootClassName\n  }, /*#__PURE__*/React.createElement(\"span\", {\n    role: \"button\",\n    tabIndex: -1,\n    className: classNames(`${prefixCls}-trigger`, {\n      active: filtered\n    }),\n    onClick: e => {\n      e.stopPropagation();\n    }\n  }, filterIcon)));\n};\nexport default FilterDropdown;","import * as React from 'react';\nimport useForceUpdate from './useForceUpdate';\nexport default function useSyncState(initialValue) {\n  const ref = React.useRef(initialValue);\n  const forceUpdate = useForceUpdate();\n  return [() => ref.current, newValue => {\n    ref.current = newValue;\n    // re-render\n    forceUpdate();\n  }];\n}","\"use client\";\n\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\nimport { devUseWarning } from '../../../_util/warning';\nimport { getColumnKey, getColumnPos, renderColumnTitle } from '../../util';\nimport FilterDropdown, { flattenKeys } from './FilterDropdown';\nconst collectFilterStates = (columns, init, pos) => {\n  let filterStates = [];\n  (columns || []).forEach((column, index) => {\n    var _a;\n    const columnPos = getColumnPos(index, pos);\n    if (column.filters || 'filterDropdown' in column || 'onFilter' in column) {\n      if ('filteredValue' in column) {\n        // Controlled\n        let filteredValues = column.filteredValue;\n        if (!('filterDropdown' in column)) {\n          filteredValues = (_a = filteredValues === null || filteredValues === void 0 ? void 0 : filteredValues.map(String)) !== null && _a !== void 0 ? _a : filteredValues;\n        }\n        filterStates.push({\n          column,\n          key: getColumnKey(column, columnPos),\n          filteredKeys: filteredValues,\n          forceFiltered: column.filtered\n        });\n      } else {\n        // Uncontrolled\n        filterStates.push({\n          column,\n          key: getColumnKey(column, columnPos),\n          filteredKeys: init && column.defaultFilteredValue ? column.defaultFilteredValue : undefined,\n          forceFiltered: column.filtered\n        });\n      }\n    }\n    if ('children' in column) {\n      filterStates = [].concat(_toConsumableArray(filterStates), _toConsumableArray(collectFilterStates(column.children, init, columnPos)));\n    }\n  });\n  return filterStates;\n};\nfunction injectFilter(prefixCls, dropdownPrefixCls, columns, filterStates, locale, triggerFilter, getPopupContainer, pos, rootClassName) {\n  return columns.map((column, index) => {\n    const columnPos = getColumnPos(index, pos);\n    const {\n      filterOnClose = true,\n      filterMultiple = true,\n      filterMode,\n      filterSearch\n    } = column;\n    let newColumn = column;\n    if (newColumn.filters || newColumn.filterDropdown) {\n      const columnKey = getColumnKey(newColumn, columnPos);\n      const filterState = filterStates.find(_ref => {\n        let {\n          key\n        } = _ref;\n        return columnKey === key;\n      });\n      newColumn = Object.assign(Object.assign({}, newColumn), {\n        title: renderProps => (/*#__PURE__*/React.createElement(FilterDropdown, {\n          tablePrefixCls: prefixCls,\n          prefixCls: `${prefixCls}-filter`,\n          dropdownPrefixCls: dropdownPrefixCls,\n          column: newColumn,\n          columnKey: columnKey,\n          filterState: filterState,\n          filterOnClose: filterOnClose,\n          filterMultiple: filterMultiple,\n          filterMode: filterMode,\n          filterSearch: filterSearch,\n          triggerFilter: triggerFilter,\n          locale: locale,\n          getPopupContainer: getPopupContainer,\n          rootClassName: rootClassName\n        }, renderColumnTitle(column.title, renderProps)))\n      });\n    }\n    if ('children' in newColumn) {\n      newColumn = Object.assign(Object.assign({}, newColumn), {\n        children: injectFilter(prefixCls, dropdownPrefixCls, newColumn.children, filterStates, locale, triggerFilter, getPopupContainer, columnPos, rootClassName)\n      });\n    }\n    return newColumn;\n  });\n}\nconst generateFilterInfo = filterStates => {\n  const currentFilters = {};\n  filterStates.forEach(_ref2 => {\n    let {\n      key,\n      filteredKeys,\n      column\n    } = _ref2;\n    const keyAsString = key;\n    const {\n      filters,\n      filterDropdown\n    } = column;\n    if (filterDropdown) {\n      currentFilters[keyAsString] = filteredKeys || null;\n    } else if (Array.isArray(filteredKeys)) {\n      const keys = flattenKeys(filters);\n      currentFilters[keyAsString] = keys.filter(originKey => filteredKeys.includes(String(originKey)));\n    } else {\n      currentFilters[keyAsString] = null;\n    }\n  });\n  return currentFilters;\n};\nexport const getFilterData = (data, filterStates, childrenColumnName) => {\n  const filterDatas = filterStates.reduce((currentData, filterState) => {\n    const {\n      column: {\n        onFilter,\n        filters\n      },\n      filteredKeys\n    } = filterState;\n    if (onFilter && filteredKeys && filteredKeys.length) {\n      return currentData\n      // shallow copy\n      .map(record => Object.assign({}, record)).filter(record => filteredKeys.some(key => {\n        const keys = flattenKeys(filters);\n        const keyIndex = keys.findIndex(k => String(k) === String(key));\n        const realKey = keyIndex !== -1 ? keys[keyIndex] : key;\n        // filter children\n        if (record[childrenColumnName]) {\n          record[childrenColumnName] = getFilterData(record[childrenColumnName], filterStates, childrenColumnName);\n        }\n        return onFilter(realKey, record);\n      }));\n    }\n    return currentData;\n  }, data);\n  return filterDatas;\n};\nconst getMergedColumns = rawMergedColumns => rawMergedColumns.flatMap(column => {\n  if ('children' in column) {\n    return [column].concat(_toConsumableArray(getMergedColumns(column.children || [])));\n  }\n  return [column];\n});\nconst useFilter = props => {\n  const {\n    prefixCls,\n    dropdownPrefixCls,\n    mergedColumns: rawMergedColumns,\n    onFilterChange,\n    getPopupContainer,\n    locale: tableLocale,\n    rootClassName\n  } = props;\n  const warning = devUseWarning('Table');\n  const mergedColumns = React.useMemo(() => getMergedColumns(rawMergedColumns || []), [rawMergedColumns]);\n  const [filterStates, setFilterStates] = React.useState(() => collectFilterStates(mergedColumns, true));\n  const mergedFilterStates = React.useMemo(() => {\n    const collectedStates = collectFilterStates(mergedColumns, false);\n    if (collectedStates.length === 0) {\n      return collectedStates;\n    }\n    let filteredKeysIsAllNotControlled = true;\n    let filteredKeysIsAllControlled = true;\n    collectedStates.forEach(_ref3 => {\n      let {\n        filteredKeys\n      } = _ref3;\n      if (filteredKeys !== undefined) {\n        filteredKeysIsAllNotControlled = false;\n      } else {\n        filteredKeysIsAllControlled = false;\n      }\n    });\n    // Return if not controlled\n    if (filteredKeysIsAllNotControlled) {\n      // Filter column may have been removed\n      const keyList = (mergedColumns || []).map((column, index) => getColumnKey(column, getColumnPos(index)));\n      return filterStates.filter(_ref4 => {\n        let {\n          key\n        } = _ref4;\n        return keyList.includes(key);\n      }).map(item => {\n        const col = mergedColumns[keyList.findIndex(key => key === item.key)];\n        return Object.assign(Object.assign({}, item), {\n          column: Object.assign(Object.assign({}, item.column), col),\n          forceFiltered: col.filtered\n        });\n      });\n    }\n    process.env.NODE_ENV !== \"production\" ? warning(filteredKeysIsAllControlled, 'usage', 'Columns should all contain `filteredValue` or not contain `filteredValue`.') : void 0;\n    return collectedStates;\n  }, [mergedColumns, filterStates]);\n  const filters = React.useMemo(() => generateFilterInfo(mergedFilterStates), [mergedFilterStates]);\n  const triggerFilter = filterState => {\n    const newFilterStates = mergedFilterStates.filter(_ref5 => {\n      let {\n        key\n      } = _ref5;\n      return key !== filterState.key;\n    });\n    newFilterStates.push(filterState);\n    setFilterStates(newFilterStates);\n    onFilterChange(generateFilterInfo(newFilterStates), newFilterStates);\n  };\n  const transformColumns = innerColumns => injectFilter(prefixCls, dropdownPrefixCls, innerColumns, mergedFilterStates, tableLocale, triggerFilter, getPopupContainer, undefined, rootClassName);\n  return [transformColumns, mergedFilterStates, filters];\n};\nexport { flattenKeys };\nexport default useFilter;","import * as React from 'react';\nconst useLazyKVMap = (data, childrenColumnName, getRowKey) => {\n  const mapCacheRef = React.useRef({});\n  function getRecordByKey(key) {\n    var _a;\n    if (!mapCacheRef.current || mapCacheRef.current.data !== data || mapCacheRef.current.childrenColumnName !== childrenColumnName || mapCacheRef.current.getRowKey !== getRowKey) {\n      const kvMap = new Map();\n      function dig(records) {\n        records.forEach((record, index) => {\n          const rowKey = getRowKey(record, index);\n          kvMap.set(rowKey, record);\n          if (record && typeof record === 'object' && childrenColumnName in record) {\n            dig(record[childrenColumnName] || []);\n          }\n        });\n      }\n      dig(data);\n      mapCacheRef.current = {\n        data,\n        childrenColumnName,\n        kvMap,\n        getRowKey\n      };\n    }\n    return (_a = mapCacheRef.current.kvMap) === null || _a === void 0 ? void 0 : _a.get(key);\n  }\n  return [getRecordByKey];\n};\nexport default useLazyKVMap;","const extendsObject = function () {\n  const result = Object.assign({}, arguments.length <= 0 ? undefined : arguments[0]);\n  for (let i = 1; i < arguments.length; i++) {\n    const obj = i < 0 || arguments.length <= i ? undefined : arguments[i];\n    if (obj) {\n      Object.keys(obj).forEach(key => {\n        const val = obj[key];\n        if (val !== undefined) {\n          result[key] = val;\n        }\n      });\n    }\n  }\n  return result;\n};\nexport default extendsObject;","var __rest = this && this.__rest || function (s, e) {\n  var t = {};\n  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n  }\n  return t;\n};\nimport { useState } from 'react';\nimport extendsObject from '../../_util/extendsObject';\nexport const DEFAULT_PAGE_SIZE = 10;\nexport function getPaginationParam(mergedPagination, pagination) {\n  const param = {\n    current: mergedPagination.current,\n    pageSize: mergedPagination.pageSize\n  };\n  const paginationObj = pagination && typeof pagination === 'object' ? pagination : {};\n  Object.keys(paginationObj).forEach(pageProp => {\n    const value = mergedPagination[pageProp];\n    if (typeof value !== 'function') {\n      param[pageProp] = value;\n    }\n  });\n  return param;\n}\nfunction usePagination(total, onChange, pagination) {\n  const _a = pagination && typeof pagination === 'object' ? pagination : {},\n    {\n      total: paginationTotal = 0\n    } = _a,\n    paginationObj = __rest(_a, [\"total\"]);\n  const [innerPagination, setInnerPagination] = useState(() => ({\n    current: 'defaultCurrent' in paginationObj ? paginationObj.defaultCurrent : 1,\n    pageSize: 'defaultPageSize' in paginationObj ? paginationObj.defaultPageSize : DEFAULT_PAGE_SIZE\n  }));\n  // ============ Basic Pagination Config ============\n  const mergedPagination = extendsObject(innerPagination, paginationObj, {\n    total: paginationTotal > 0 ? paginationTotal : total\n  });\n  // Reset `current` if data length or pageSize changed\n  const maxPage = Math.ceil((paginationTotal || total) / mergedPagination.pageSize);\n  if (mergedPagination.current > maxPage) {\n    // Prevent a maximum page count of 0\n    mergedPagination.current = maxPage || 1;\n  }\n  const refreshPagination = (current, pageSize) => {\n    setInnerPagination({\n      current: current !== null && current !== void 0 ? current : 1,\n      pageSize: pageSize || mergedPagination.pageSize\n    });\n  };\n  const onInternalChange = (current, pageSize) => {\n    var _a;\n    if (pagination) {\n      (_a = pagination.onChange) === null || _a === void 0 ? void 0 : _a.call(pagination, current, pageSize);\n    }\n    refreshPagination(current, pageSize);\n    onChange(current, pageSize || (mergedPagination === null || mergedPagination === void 0 ? void 0 : mergedPagination.pageSize));\n  };\n  if (pagination === false) {\n    return [{}, () => {}];\n  }\n  return [Object.assign(Object.assign({}, mergedPagination), {\n    onChange: onInternalChange\n  }), refreshPagination];\n}\nexport default usePagination;","// This icon file is generated automatically.\nvar CaretDownOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"0 0 1024 1024\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M840.4 300H183.6c-19.7 0-30.7 20.8-18.5 35l328.4 380.8c9.4 10.9 27.5 10.9 37 0L858.9 335c12.2-14.2 1.2-35-18.5-35z\" } }] }, \"name\": \"caret-down\", \"theme\": \"outlined\" };\nexport default CaretDownOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport CaretDownOutlinedSvg from \"@ant-design/icons-svg/es/asn/CaretDownOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar CaretDownOutlined = function CaretDownOutlined(props, ref) {\n  return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n    ref: ref,\n    icon: CaretDownOutlinedSvg\n  }));\n};\n\n/**![caret-down](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjAgMCAxMDI0IDEwMjQiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTg0MC40IDMwMEgxODMuNmMtMTkuNyAwLTMwLjcgMjAuOC0xOC41IDM1bDMyOC40IDM4MC44YzkuNCAxMC45IDI3LjUgMTAuOSAzNyAwTDg1OC45IDMzNWMxMi4yLTE0LjIgMS4yLTM1LTE4LjUtMzV6IiAvPjwvc3ZnPg==) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(CaretDownOutlined);\nif (process.env.NODE_ENV !== 'production') {\n  RefIcon.displayName = 'CaretDownOutlined';\n}\nexport default RefIcon;","// This icon file is generated automatically.\nvar CaretUpOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"0 0 1024 1024\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M858.9 689L530.5 308.2c-9.4-10.9-27.5-10.9-37 0L165.1 689c-12.2 14.2-1.2 35 18.5 35h656.8c19.7 0 30.7-20.8 18.5-35z\" } }] }, \"name\": \"caret-up\", \"theme\": \"outlined\" };\nexport default CaretUpOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport CaretUpOutlinedSvg from \"@ant-design/icons-svg/es/asn/CaretUpOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar CaretUpOutlined = function CaretUpOutlined(props, ref) {\n  return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n    ref: ref,\n    icon: CaretUpOutlinedSvg\n  }));\n};\n\n/**![caret-up](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjAgMCAxMDI0IDEwMjQiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTg1OC45IDY4OUw1MzAuNSAzMDguMmMtOS40LTEwLjktMjcuNS0xMC45LTM3IDBMMTY1LjEgNjg5Yy0xMi4yIDE0LjItMS4yIDM1IDE4LjUgMzVoNjU2LjhjMTkuNyAwIDMwLjctMjAuOCAxOC41LTM1eiIgLz48L3N2Zz4=) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(CaretUpOutlined);\nif (process.env.NODE_ENV !== 'production') {\n  RefIcon.displayName = 'CaretUpOutlined';\n}\nexport default RefIcon;","\"use client\";\n\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\nimport CaretDownOutlined from \"@ant-design/icons/es/icons/CaretDownOutlined\";\nimport CaretUpOutlined from \"@ant-design/icons/es/icons/CaretUpOutlined\";\nimport classNames from 'classnames';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport Tooltip from '../../tooltip';\nimport { getColumnKey, getColumnPos, renderColumnTitle, safeColumnTitle } from '../util';\nconst ASCEND = 'ascend';\nconst DESCEND = 'descend';\nconst getMultiplePriority = column => {\n  if (typeof column.sorter === 'object' && typeof column.sorter.multiple === 'number') {\n    return column.sorter.multiple;\n  }\n  return false;\n};\nconst getSortFunction = sorter => {\n  if (typeof sorter === 'function') {\n    return sorter;\n  }\n  if (sorter && typeof sorter === 'object' && sorter.compare) {\n    return sorter.compare;\n  }\n  return false;\n};\nconst nextSortDirection = (sortDirections, current) => {\n  if (!current) {\n    return sortDirections[0];\n  }\n  return sortDirections[sortDirections.indexOf(current) + 1];\n};\nconst collectSortStates = (columns, init, pos) => {\n  let sortStates = [];\n  const pushState = (column, columnPos) => {\n    sortStates.push({\n      column,\n      key: getColumnKey(column, columnPos),\n      multiplePriority: getMultiplePriority(column),\n      sortOrder: column.sortOrder\n    });\n  };\n  (columns || []).forEach((column, index) => {\n    const columnPos = getColumnPos(index, pos);\n    if (column.children) {\n      if ('sortOrder' in column) {\n        // Controlled\n        pushState(column, columnPos);\n      }\n      sortStates = [].concat(_toConsumableArray(sortStates), _toConsumableArray(collectSortStates(column.children, init, columnPos)));\n    } else if (column.sorter) {\n      if ('sortOrder' in column) {\n        // Controlled\n        pushState(column, columnPos);\n      } else if (init && column.defaultSortOrder) {\n        // Default sorter\n        sortStates.push({\n          column,\n          key: getColumnKey(column, columnPos),\n          multiplePriority: getMultiplePriority(column),\n          sortOrder: column.defaultSortOrder\n        });\n      }\n    }\n  });\n  return sortStates;\n};\nconst injectSorter = (prefixCls, columns, sorterStates, triggerSorter, defaultSortDirections, tableLocale, tableShowSorterTooltip, pos) => {\n  const finalColumns = (columns || []).map((column, index) => {\n    const columnPos = getColumnPos(index, pos);\n    let newColumn = column;\n    if (newColumn.sorter) {\n      const sortDirections = newColumn.sortDirections || defaultSortDirections;\n      const showSorterTooltip = newColumn.showSorterTooltip === undefined ? tableShowSorterTooltip : newColumn.showSorterTooltip;\n      const columnKey = getColumnKey(newColumn, columnPos);\n      const sorterState = sorterStates.find(_ref => {\n        let {\n          key\n        } = _ref;\n        return key === columnKey;\n      });\n      const sortOrder = sorterState ? sorterState.sortOrder : null;\n      const nextSortOrder = nextSortDirection(sortDirections, sortOrder);\n      let sorter;\n      if (column.sortIcon) {\n        sorter = column.sortIcon({\n          sortOrder\n        });\n      } else {\n        const upNode = sortDirections.includes(ASCEND) && (/*#__PURE__*/React.createElement(CaretUpOutlined, {\n          className: classNames(`${prefixCls}-column-sorter-up`, {\n            active: sortOrder === ASCEND\n          })\n        }));\n        const downNode = sortDirections.includes(DESCEND) && (/*#__PURE__*/React.createElement(CaretDownOutlined, {\n          className: classNames(`${prefixCls}-column-sorter-down`, {\n            active: sortOrder === DESCEND\n          })\n        }));\n        sorter = /*#__PURE__*/React.createElement(\"span\", {\n          className: classNames(`${prefixCls}-column-sorter`, {\n            [`${prefixCls}-column-sorter-full`]: !!(upNode && downNode)\n          })\n        }, /*#__PURE__*/React.createElement(\"span\", {\n          className: `${prefixCls}-column-sorter-inner`,\n          \"aria-hidden\": \"true\"\n        }, upNode, downNode));\n      }\n      const {\n        cancelSort,\n        triggerAsc,\n        triggerDesc\n      } = tableLocale || {};\n      let sortTip = cancelSort;\n      if (nextSortOrder === DESCEND) {\n        sortTip = triggerDesc;\n      } else if (nextSortOrder === ASCEND) {\n        sortTip = triggerAsc;\n      }\n      const tooltipProps = typeof showSorterTooltip === 'object' ? Object.assign({\n        title: sortTip\n      }, showSorterTooltip) : {\n        title: sortTip\n      };\n      newColumn = Object.assign(Object.assign({}, newColumn), {\n        className: classNames(newColumn.className, {\n          [`${prefixCls}-column-sort`]: sortOrder\n        }),\n        title: renderProps => {\n          const columnSortersClass = `${prefixCls}-column-sorters`;\n          const renderColumnTitleWrapper = /*#__PURE__*/React.createElement(\"span\", {\n            className: `${prefixCls}-column-title`\n          }, renderColumnTitle(column.title, renderProps));\n          const renderSortTitle = /*#__PURE__*/React.createElement(\"div\", {\n            className: columnSortersClass\n          }, renderColumnTitleWrapper, sorter);\n          if (showSorterTooltip) {\n            if (typeof showSorterTooltip !== 'boolean' && (showSorterTooltip === null || showSorterTooltip === void 0 ? void 0 : showSorterTooltip.target) === 'sorter-icon') {\n              return /*#__PURE__*/React.createElement(\"div\", {\n                className: `${columnSortersClass} ${prefixCls}-column-sorters-tooltip-target-sorter`\n              }, renderColumnTitleWrapper, /*#__PURE__*/React.createElement(Tooltip, Object.assign({}, tooltipProps), sorter));\n            }\n            return /*#__PURE__*/React.createElement(Tooltip, Object.assign({}, tooltipProps), renderSortTitle);\n          }\n          return renderSortTitle;\n        },\n        onHeaderCell: col => {\n          var _a;\n          const cell = ((_a = column.onHeaderCell) === null || _a === void 0 ? void 0 : _a.call(column, col)) || {};\n          const originOnClick = cell.onClick;\n          const originOKeyDown = cell.onKeyDown;\n          cell.onClick = event => {\n            triggerSorter({\n              column,\n              key: columnKey,\n              sortOrder: nextSortOrder,\n              multiplePriority: getMultiplePriority(column)\n            });\n            originOnClick === null || originOnClick === void 0 ? void 0 : originOnClick(event);\n          };\n          cell.onKeyDown = event => {\n            if (event.keyCode === KeyCode.ENTER) {\n              triggerSorter({\n                column,\n                key: columnKey,\n                sortOrder: nextSortOrder,\n                multiplePriority: getMultiplePriority(column)\n              });\n              originOKeyDown === null || originOKeyDown === void 0 ? void 0 : originOKeyDown(event);\n            }\n          };\n          const renderTitle = safeColumnTitle(column.title, {});\n          const displayTitle = renderTitle === null || renderTitle === void 0 ? void 0 : renderTitle.toString();\n          // Inform the screen-reader so it can tell the visually impaired user which column is sorted\n          if (sortOrder) {\n            cell['aria-sort'] = sortOrder === 'ascend' ? 'ascending' : 'descending';\n          } else {\n            cell['aria-label'] = displayTitle || '';\n          }\n          cell.className = classNames(cell.className, `${prefixCls}-column-has-sorters`);\n          cell.tabIndex = 0;\n          if (column.ellipsis) {\n            cell.title = (renderTitle !== null && renderTitle !== void 0 ? renderTitle : '').toString();\n          }\n          return cell;\n        }\n      });\n    }\n    if ('children' in newColumn) {\n      newColumn = Object.assign(Object.assign({}, newColumn), {\n        children: injectSorter(prefixCls, newColumn.children, sorterStates, triggerSorter, defaultSortDirections, tableLocale, tableShowSorterTooltip, columnPos)\n      });\n    }\n    return newColumn;\n  });\n  return finalColumns;\n};\nconst stateToInfo = sorterStates => {\n  const {\n    column,\n    sortOrder\n  } = sorterStates;\n  return {\n    column,\n    order: sortOrder,\n    field: column.dataIndex,\n    columnKey: column.key\n  };\n};\nconst generateSorterInfo = sorterStates => {\n  const list = sorterStates.filter(_ref2 => {\n    let {\n      sortOrder\n    } = _ref2;\n    return sortOrder;\n  }).map(stateToInfo);\n  // =========== Legacy compatible support ===========\n  // https://github.com/ant-design/ant-design/pull/19226\n  if (list.length === 0 && sorterStates.length) {\n    const lastIndex = sorterStates.length - 1;\n    return Object.assign(Object.assign({}, stateToInfo(sorterStates[lastIndex])), {\n      column: undefined\n    });\n  }\n  if (list.length <= 1) {\n    return list[0] || {};\n  }\n  return list;\n};\nexport const getSortData = (data, sortStates, childrenColumnName) => {\n  const innerSorterStates = sortStates.slice().sort((a, b) => b.multiplePriority - a.multiplePriority);\n  const cloneData = data.slice();\n  const runningSorters = innerSorterStates.filter(_ref3 => {\n    let {\n      column: {\n        sorter\n      },\n      sortOrder\n    } = _ref3;\n    return getSortFunction(sorter) && sortOrder;\n  });\n  // Skip if no sorter needed\n  if (!runningSorters.length) {\n    return cloneData;\n  }\n  return cloneData.sort((record1, record2) => {\n    for (let i = 0; i < runningSorters.length; i += 1) {\n      const sorterState = runningSorters[i];\n      const {\n        column: {\n          sorter\n        },\n        sortOrder\n      } = sorterState;\n      const compareFn = getSortFunction(sorter);\n      if (compareFn && sortOrder) {\n        const compareResult = compareFn(record1, record2, sortOrder);\n        if (compareResult !== 0) {\n          return sortOrder === ASCEND ? compareResult : -compareResult;\n        }\n      }\n    }\n    return 0;\n  }).map(record => {\n    const subRecords = record[childrenColumnName];\n    if (subRecords) {\n      return Object.assign(Object.assign({}, record), {\n        [childrenColumnName]: getSortData(subRecords, sortStates, childrenColumnName)\n      });\n    }\n    return record;\n  });\n};\nconst useFilterSorter = props => {\n  const {\n    prefixCls,\n    mergedColumns,\n    sortDirections,\n    tableLocale,\n    showSorterTooltip,\n    onSorterChange\n  } = props;\n  const [sortStates, setSortStates] = React.useState(collectSortStates(mergedColumns, true));\n  const getColumnKeys = (columns, pos) => {\n    const newKeys = [];\n    columns.forEach((item, index) => {\n      const columnPos = getColumnPos(index, pos);\n      newKeys.push(getColumnKey(item, columnPos));\n      if (Array.isArray(item.children)) {\n        const childKeys = getColumnKeys(item.children, columnPos);\n        newKeys.push.apply(newKeys, _toConsumableArray(childKeys));\n      }\n    });\n    return newKeys;\n  };\n  const mergedSorterStates = React.useMemo(() => {\n    let validate = true;\n    const collectedStates = collectSortStates(mergedColumns, false);\n    // Return if not controlled\n    if (!collectedStates.length) {\n      const mergedColumnsKeys = getColumnKeys(mergedColumns);\n      return sortStates.filter(_ref4 => {\n        let {\n          key\n        } = _ref4;\n        return mergedColumnsKeys.includes(key);\n      });\n    }\n    const validateStates = [];\n    function patchStates(state) {\n      if (validate) {\n        validateStates.push(state);\n      } else {\n        validateStates.push(Object.assign(Object.assign({}, state), {\n          sortOrder: null\n        }));\n      }\n    }\n    let multipleMode = null;\n    collectedStates.forEach(state => {\n      if (multipleMode === null) {\n        patchStates(state);\n        if (state.sortOrder) {\n          if (state.multiplePriority === false) {\n            validate = false;\n          } else {\n            multipleMode = true;\n          }\n        }\n      } else if (multipleMode && state.multiplePriority !== false) {\n        patchStates(state);\n      } else {\n        validate = false;\n        patchStates(state);\n      }\n    });\n    return validateStates;\n  }, [mergedColumns, sortStates]);\n  // Get render columns title required props\n  const columnTitleSorterProps = React.useMemo(() => {\n    var _a, _b;\n    const sortColumns = mergedSorterStates.map(_ref5 => {\n      let {\n        column,\n        sortOrder\n      } = _ref5;\n      return {\n        column,\n        order: sortOrder\n      };\n    });\n    return {\n      sortColumns,\n      // Legacy\n      sortColumn: (_a = sortColumns[0]) === null || _a === void 0 ? void 0 : _a.column,\n      sortOrder: (_b = sortColumns[0]) === null || _b === void 0 ? void 0 : _b.order\n    };\n  }, [mergedSorterStates]);\n  const triggerSorter = sortState => {\n    let newSorterStates;\n    if (sortState.multiplePriority === false || !mergedSorterStates.length || mergedSorterStates[0].multiplePriority === false) {\n      newSorterStates = [sortState];\n    } else {\n      newSorterStates = [].concat(_toConsumableArray(mergedSorterStates.filter(_ref6 => {\n        let {\n          key\n        } = _ref6;\n        return key !== sortState.key;\n      })), [sortState]);\n    }\n    setSortStates(newSorterStates);\n    onSorterChange(generateSorterInfo(newSorterStates), newSorterStates);\n  };\n  const transformColumns = innerColumns => injectSorter(prefixCls, innerColumns, mergedSorterStates, triggerSorter, sortDirections, tableLocale, showSorterTooltip);\n  const getSorters = () => generateSorterInfo(mergedSorterStates);\n  return [transformColumns, mergedSorterStates, columnTitleSorterProps, getSorters];\n};\nexport default useFilterSorter;","import * as React from 'react';\nimport { renderColumnTitle } from '../util';\nconst fillTitle = (columns, columnTitleProps) => {\n  const finalColumns = columns.map(column => {\n    const cloneColumn = Object.assign({}, column);\n    cloneColumn.title = renderColumnTitle(column.title, columnTitleProps);\n    if ('children' in cloneColumn) {\n      cloneColumn.children = fillTitle(cloneColumn.children, columnTitleProps);\n    }\n    return cloneColumn;\n  });\n  return finalColumns;\n};\nconst useTitleColumns = columnTitleProps => {\n  const filledColumns = React.useCallback(columns => fillTitle(columns, columnTitleProps), [columnTitleProps]);\n  return [filledColumns];\n};\nexport default useTitleColumns;","\"use client\";\n\nimport { genTable } from 'rc-table';\n/**\n * Same as `rc-table` but we modify trigger children update logic instead.\n */\nconst RcTable = genTable((prev, next) => {\n  const {\n    _renderTimes: prevRenderTimes\n  } = prev;\n  const {\n    _renderTimes: nextRenderTimes\n  } = next;\n  return prevRenderTimes !== nextRenderTimes;\n});\nexport default RcTable;","\"use client\";\n\nimport { genVirtualTable } from 'rc-table';\n/**\n * Same as `rc-table` but we modify trigger children update logic instead.\n */\nconst RcVirtualTable = genVirtualTable((prev, next) => {\n  const {\n    _renderTimes: prevRenderTimes\n  } = prev;\n  const {\n    _renderTimes: nextRenderTimes\n  } = next;\n  return prevRenderTimes !== nextRenderTimes;\n});\nexport default RcVirtualTable;","import { unit } from '@ant-design/cssinjs';\nconst genBorderedStyle = token => {\n  const {\n    componentCls,\n    lineWidth,\n    lineType,\n    tableBorderColor,\n    tableHeaderBg,\n    tablePaddingVertical,\n    tablePaddingHorizontal,\n    calc\n  } = token;\n  const tableBorder = `${unit(lineWidth)} ${lineType} ${tableBorderColor}`;\n  const getSizeBorderStyle = (size, paddingVertical, paddingHorizontal) => ({\n    [`&${componentCls}-${size}`]: {\n      [`> ${componentCls}-container`]: {\n        [`> ${componentCls}-content, > ${componentCls}-body`]: {\n          [`\n            > table > tbody > tr > th,\n            > table > tbody > tr > td\n          `]: {\n            [`> ${componentCls}-expanded-row-fixed`]: {\n              margin: `${unit(calc(paddingVertical).mul(-1).equal())}\n              ${unit(calc(calc(paddingHorizontal).add(lineWidth)).mul(-1).equal())}`\n            }\n          }\n        }\n      }\n    }\n  });\n  return {\n    [`${componentCls}-wrapper`]: {\n      [`${componentCls}${componentCls}-bordered`]: Object.assign(Object.assign(Object.assign({\n        // ============================ Title =============================\n        [`> ${componentCls}-title`]: {\n          border: tableBorder,\n          borderBottom: 0\n        },\n        // ============================ Content ============================\n        [`> ${componentCls}-container`]: {\n          borderInlineStart: tableBorder,\n          borderTop: tableBorder,\n          [`\n            > ${componentCls}-content,\n            > ${componentCls}-header,\n            > ${componentCls}-body,\n            > ${componentCls}-summary\n          `]: {\n            '> table': {\n              // ============================= Cell =============================\n              [`\n                > thead > tr > th,\n                > thead > tr > td,\n                > tbody > tr > th,\n                > tbody > tr > td,\n                > tfoot > tr > th,\n                > tfoot > tr > td\n              `]: {\n                borderInlineEnd: tableBorder\n              },\n              // ============================ Header ============================\n              '> thead': {\n                '> tr:not(:last-child) > th': {\n                  borderBottom: tableBorder\n                },\n                '> tr > th::before': {\n                  backgroundColor: 'transparent !important'\n                }\n              },\n              // Fixed right should provides additional border\n              [`\n                > thead > tr,\n                > tbody > tr,\n                > tfoot > tr\n              `]: {\n                [`> ${componentCls}-cell-fix-right-first::after`]: {\n                  borderInlineEnd: tableBorder\n                }\n              },\n              // ========================== Expandable ==========================\n              [`\n                > tbody > tr > th,\n                > tbody > tr > td\n              `]: {\n                [`> ${componentCls}-expanded-row-fixed`]: {\n                  margin: `${unit(calc(tablePaddingVertical).mul(-1).equal())} ${unit(calc(calc(tablePaddingHorizontal).add(lineWidth)).mul(-1).equal())}`,\n                  '&::after': {\n                    position: 'absolute',\n                    top: 0,\n                    insetInlineEnd: lineWidth,\n                    bottom: 0,\n                    borderInlineEnd: tableBorder,\n                    content: '\"\"'\n                  }\n                }\n              }\n            }\n          }\n        },\n        // ============================ Scroll ============================\n        [`&${componentCls}-scroll-horizontal`]: {\n          [`> ${componentCls}-container > ${componentCls}-body`]: {\n            '> table > tbody': {\n              [`\n                > tr${componentCls}-expanded-row,\n                > tr${componentCls}-placeholder\n              `]: {\n                '> th, > td': {\n                  borderInlineEnd: 0\n                }\n              }\n            }\n          }\n        }\n      }, getSizeBorderStyle('middle', token.tablePaddingVerticalMiddle, token.tablePaddingHorizontalMiddle)), getSizeBorderStyle('small', token.tablePaddingVerticalSmall, token.tablePaddingHorizontalSmall)), {\n        // ============================ Footer ============================\n        [`> ${componentCls}-footer`]: {\n          border: tableBorder,\n          borderTop: 0\n        }\n      }),\n      // ============================ Nested ============================\n      [`${componentCls}-cell`]: {\n        [`${componentCls}-container:first-child`]: {\n          // :first-child to avoid the case when bordered and title is set\n          borderTop: 0\n        },\n        // https://github.com/ant-design/ant-design/issues/35577\n        '&-scrollbar:not([rowspan])': {\n          boxShadow: `0 ${unit(lineWidth)} 0 ${unit(lineWidth)} ${tableHeaderBg}`\n        }\n      },\n      [`${componentCls}-bordered ${componentCls}-cell-scrollbar`]: {\n        borderInlineEnd: tableBorder\n      }\n    }\n  };\n};\nexport default genBorderedStyle;","import { textEllipsis } from '../../style';\nconst genEllipsisStyle = token => {\n  const {\n    componentCls\n  } = token;\n  return {\n    [`${componentCls}-wrapper`]: {\n      [`${componentCls}-cell-ellipsis`]: Object.assign(Object.assign({}, textEllipsis), {\n        wordBreak: 'keep-all',\n        // Fixed first or last should special process\n        [`\n          &${componentCls}-cell-fix-left-last,\n          &${componentCls}-cell-fix-right-first\n        `]: {\n          overflow: 'visible',\n          [`${componentCls}-cell-content`]: {\n            display: 'block',\n            overflow: 'hidden',\n            textOverflow: 'ellipsis'\n          }\n        },\n        [`${componentCls}-column-title`]: {\n          overflow: 'hidden',\n          textOverflow: 'ellipsis',\n          wordBreak: 'keep-all'\n        }\n      })\n    }\n  };\n};\nexport default genEllipsisStyle;","// ========================= Placeholder ==========================\nconst genEmptyStyle = token => {\n  const {\n    componentCls\n  } = token;\n  return {\n    [`${componentCls}-wrapper`]: {\n      [`${componentCls}-tbody > tr${componentCls}-placeholder`]: {\n        textAlign: 'center',\n        color: token.colorTextDisabled,\n        [`\n          &:hover > th,\n          &:hover > td,\n        `]: {\n          background: token.colorBgContainer\n        }\n      }\n    }\n  };\n};\nexport default genEmptyStyle;","import { unit } from '@ant-design/cssinjs';\nimport { operationUnit } from '../../style';\nconst genExpandStyle = token => {\n  const {\n    componentCls,\n    antCls,\n    motionDurationSlow,\n    lineWidth,\n    paddingXS,\n    lineType,\n    tableBorderColor,\n    tableExpandIconBg,\n    tableExpandColumnWidth,\n    borderRadius,\n    tablePaddingVertical,\n    tablePaddingHorizontal,\n    tableExpandedRowBg,\n    paddingXXS,\n    expandIconMarginTop,\n    expandIconSize,\n    expandIconHalfInner,\n    expandIconScale,\n    calc\n  } = token;\n  const tableBorder = `${unit(lineWidth)} ${lineType} ${tableBorderColor}`;\n  const expandIconLineOffset = calc(paddingXXS).sub(lineWidth).equal();\n  return {\n    [`${componentCls}-wrapper`]: {\n      [`${componentCls}-expand-icon-col`]: {\n        width: tableExpandColumnWidth\n      },\n      [`${componentCls}-row-expand-icon-cell`]: {\n        textAlign: 'center',\n        [`${componentCls}-row-expand-icon`]: {\n          display: 'inline-flex',\n          float: 'none',\n          verticalAlign: 'sub'\n        }\n      },\n      [`${componentCls}-row-indent`]: {\n        height: 1,\n        float: 'left'\n      },\n      [`${componentCls}-row-expand-icon`]: Object.assign(Object.assign({}, operationUnit(token)), {\n        position: 'relative',\n        float: 'left',\n        boxSizing: 'border-box',\n        width: expandIconSize,\n        height: expandIconSize,\n        padding: 0,\n        color: 'inherit',\n        lineHeight: unit(expandIconSize),\n        background: tableExpandIconBg,\n        border: tableBorder,\n        borderRadius,\n        transform: `scale(${expandIconScale})`,\n        transition: `all ${motionDurationSlow}`,\n        userSelect: 'none',\n        '&:focus, &:hover, &:active': {\n          borderColor: 'currentcolor'\n        },\n        '&::before, &::after': {\n          position: 'absolute',\n          background: 'currentcolor',\n          transition: `transform ${motionDurationSlow} ease-out`,\n          content: '\"\"'\n        },\n        '&::before': {\n          top: expandIconHalfInner,\n          insetInlineEnd: expandIconLineOffset,\n          insetInlineStart: expandIconLineOffset,\n          height: lineWidth\n        },\n        '&::after': {\n          top: expandIconLineOffset,\n          bottom: expandIconLineOffset,\n          insetInlineStart: expandIconHalfInner,\n          width: lineWidth,\n          transform: 'rotate(90deg)'\n        },\n        // Motion effect\n        '&-collapsed::before': {\n          transform: 'rotate(-180deg)'\n        },\n        '&-collapsed::after': {\n          transform: 'rotate(0deg)'\n        },\n        '&-spaced': {\n          '&::before, &::after': {\n            display: 'none',\n            content: 'none'\n          },\n          background: 'transparent',\n          border: 0,\n          visibility: 'hidden'\n        }\n      }),\n      [`${componentCls}-row-indent + ${componentCls}-row-expand-icon`]: {\n        marginTop: expandIconMarginTop,\n        marginInlineEnd: paddingXS\n      },\n      [`tr${componentCls}-expanded-row`]: {\n        '&, &:hover': {\n          '> th, > td': {\n            background: tableExpandedRowBg\n          }\n        },\n        // https://github.com/ant-design/ant-design/issues/25573\n        [`${antCls}-descriptions-view`]: {\n          display: 'flex',\n          table: {\n            flex: 'auto',\n            width: '100%'\n          }\n        }\n      },\n      // With fixed\n      [`${componentCls}-expanded-row-fixed`]: {\n        position: 'relative',\n        margin: `${unit(calc(tablePaddingVertical).mul(-1).equal())} ${unit(calc(tablePaddingHorizontal).mul(-1).equal())}`,\n        padding: `${unit(tablePaddingVertical)} ${unit(tablePaddingHorizontal)}`\n      }\n    }\n  };\n};\nexport default genExpandStyle;","import { unit } from '@ant-design/cssinjs';\nimport { resetComponent } from '../../style';\nconst genFilterStyle = token => {\n  const {\n    componentCls,\n    antCls,\n    iconCls,\n    tableFilterDropdownWidth,\n    tableFilterDropdownSearchWidth,\n    paddingXXS,\n    paddingXS,\n    colorText,\n    lineWidth,\n    lineType,\n    tableBorderColor,\n    headerIconColor,\n    fontSizeSM,\n    tablePaddingHorizontal,\n    borderRadius,\n    motionDurationSlow,\n    colorTextDescription,\n    colorPrimary,\n    tableHeaderFilterActiveBg,\n    colorTextDisabled,\n    tableFilterDropdownBg,\n    tableFilterDropdownHeight,\n    controlItemBgHover,\n    controlItemBgActive,\n    boxShadowSecondary,\n    filterDropdownMenuBg,\n    calc\n  } = token;\n  const dropdownPrefixCls = `${antCls}-dropdown`;\n  const tableFilterDropdownPrefixCls = `${componentCls}-filter-dropdown`;\n  const treePrefixCls = `${antCls}-tree`;\n  const tableBorder = `${unit(lineWidth)} ${lineType} ${tableBorderColor}`;\n  return [{\n    [`${componentCls}-wrapper`]: {\n      [`${componentCls}-filter-column`]: {\n        display: 'flex',\n        justifyContent: 'space-between'\n      },\n      [`${componentCls}-filter-trigger`]: {\n        position: 'relative',\n        display: 'flex',\n        alignItems: 'center',\n        marginBlock: calc(paddingXXS).mul(-1).equal(),\n        marginInline: `${unit(paddingXXS)} ${unit(calc(tablePaddingHorizontal).div(2).mul(-1).equal())}`,\n        padding: `0 ${unit(paddingXXS)}`,\n        color: headerIconColor,\n        fontSize: fontSizeSM,\n        borderRadius,\n        cursor: 'pointer',\n        transition: `all ${motionDurationSlow}`,\n        '&:hover': {\n          color: colorTextDescription,\n          background: tableHeaderFilterActiveBg\n        },\n        '&.active': {\n          color: colorPrimary\n        }\n      }\n    }\n  }, {\n    // Dropdown\n    [`${antCls}-dropdown`]: {\n      [tableFilterDropdownPrefixCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n        minWidth: tableFilterDropdownWidth,\n        backgroundColor: tableFilterDropdownBg,\n        borderRadius,\n        boxShadow: boxShadowSecondary,\n        overflow: 'hidden',\n        // Reset menu\n        [`${dropdownPrefixCls}-menu`]: {\n          // https://github.com/ant-design/ant-design/issues/4916\n          // https://github.com/ant-design/ant-design/issues/19542\n          maxHeight: tableFilterDropdownHeight,\n          overflowX: 'hidden',\n          border: 0,\n          boxShadow: 'none',\n          borderRadius: 'unset',\n          backgroundColor: filterDropdownMenuBg,\n          '&:empty::after': {\n            display: 'block',\n            padding: `${unit(paddingXS)} 0`,\n            color: colorTextDisabled,\n            fontSize: fontSizeSM,\n            textAlign: 'center',\n            content: '\"Not Found\"'\n          }\n        },\n        [`${tableFilterDropdownPrefixCls}-tree`]: {\n          paddingBlock: `${unit(paddingXS)} 0`,\n          paddingInline: paddingXS,\n          [treePrefixCls]: {\n            padding: 0\n          },\n          [`${treePrefixCls}-treenode ${treePrefixCls}-node-content-wrapper:hover`]: {\n            backgroundColor: controlItemBgHover\n          },\n          [`${treePrefixCls}-treenode-checkbox-checked ${treePrefixCls}-node-content-wrapper`]: {\n            '&, &:hover': {\n              backgroundColor: controlItemBgActive\n            }\n          }\n        },\n        [`${tableFilterDropdownPrefixCls}-search`]: {\n          padding: paddingXS,\n          borderBottom: tableBorder,\n          '&-input': {\n            input: {\n              minWidth: tableFilterDropdownSearchWidth\n            },\n            [iconCls]: {\n              color: colorTextDisabled\n            }\n          }\n        },\n        [`${tableFilterDropdownPrefixCls}-checkall`]: {\n          width: '100%',\n          marginBottom: paddingXXS,\n          marginInlineStart: paddingXXS\n        },\n        // Operation\n        [`${tableFilterDropdownPrefixCls}-btns`]: {\n          display: 'flex',\n          justifyContent: 'space-between',\n          padding: `${unit(calc(paddingXS).sub(lineWidth).equal())} ${unit(paddingXS)}`,\n          overflow: 'hidden',\n          borderTop: tableBorder\n        }\n      })\n    }\n  },\n  // Dropdown Menu & SubMenu\n  {\n    // submenu of table filter dropdown\n    [`${antCls}-dropdown ${tableFilterDropdownPrefixCls}, ${tableFilterDropdownPrefixCls}-submenu`]: {\n      // Checkbox\n      [`${antCls}-checkbox-wrapper + span`]: {\n        paddingInlineStart: paddingXS,\n        color: colorText\n      },\n      '> ul': {\n        maxHeight: 'calc(100vh - 130px)',\n        overflowX: 'hidden',\n        overflowY: 'auto'\n      }\n    }\n  }];\n};\nexport default genFilterStyle;","const genFixedStyle = token => {\n  const {\n    componentCls,\n    lineWidth,\n    colorSplit,\n    motionDurationSlow,\n    zIndexTableFixed,\n    tableBg,\n    zIndexTableSticky,\n    calc\n  } = token;\n  const shadowColor = colorSplit;\n  // Follow style is magic of shadow which should not follow token:\n  return {\n    [`${componentCls}-wrapper`]: {\n      [`\n        ${componentCls}-cell-fix-left,\n        ${componentCls}-cell-fix-right\n      `]: {\n        position: 'sticky !important',\n        zIndex: zIndexTableFixed,\n        background: tableBg\n      },\n      [`\n        ${componentCls}-cell-fix-left-first::after,\n        ${componentCls}-cell-fix-left-last::after\n      `]: {\n        position: 'absolute',\n        top: 0,\n        right: {\n          _skip_check_: true,\n          value: 0\n        },\n        bottom: calc(lineWidth).mul(-1).equal(),\n        width: 30,\n        transform: 'translateX(100%)',\n        transition: `box-shadow ${motionDurationSlow}`,\n        content: '\"\"',\n        pointerEvents: 'none'\n      },\n      [`${componentCls}-cell-fix-left-all::after`]: {\n        display: 'none'\n      },\n      [`\n        ${componentCls}-cell-fix-right-first::after,\n        ${componentCls}-cell-fix-right-last::after\n      `]: {\n        position: 'absolute',\n        top: 0,\n        bottom: calc(lineWidth).mul(-1).equal(),\n        left: {\n          _skip_check_: true,\n          value: 0\n        },\n        width: 30,\n        transform: 'translateX(-100%)',\n        transition: `box-shadow ${motionDurationSlow}`,\n        content: '\"\"',\n        pointerEvents: 'none'\n      },\n      [`${componentCls}-container`]: {\n        position: 'relative',\n        '&::before, &::after': {\n          position: 'absolute',\n          top: 0,\n          bottom: 0,\n          zIndex: calc(zIndexTableSticky).add(1).equal({\n            unit: false\n          }),\n          width: 30,\n          transition: `box-shadow ${motionDurationSlow}`,\n          content: '\"\"',\n          pointerEvents: 'none'\n        },\n        '&::before': {\n          insetInlineStart: 0\n        },\n        '&::after': {\n          insetInlineEnd: 0\n        }\n      },\n      [`${componentCls}-ping-left`]: {\n        [`&:not(${componentCls}-has-fix-left) ${componentCls}-container::before`]: {\n          boxShadow: `inset 10px 0 8px -8px ${shadowColor}`\n        },\n        [`\n          ${componentCls}-cell-fix-left-first::after,\n          ${componentCls}-cell-fix-left-last::after\n        `]: {\n          boxShadow: `inset 10px 0 8px -8px ${shadowColor}`\n        },\n        [`${componentCls}-cell-fix-left-last::before`]: {\n          backgroundColor: 'transparent !important'\n        }\n      },\n      [`${componentCls}-ping-right`]: {\n        [`&:not(${componentCls}-has-fix-right) ${componentCls}-container::after`]: {\n          boxShadow: `inset -10px 0 8px -8px ${shadowColor}`\n        },\n        [`\n          ${componentCls}-cell-fix-right-first::after,\n          ${componentCls}-cell-fix-right-last::after\n        `]: {\n          boxShadow: `inset -10px 0 8px -8px ${shadowColor}`\n        }\n      },\n      // Gapped fixed Columns do not show the shadow\n      [`${componentCls}-fixed-column-gapped`]: {\n        [`\n        ${componentCls}-cell-fix-left-first::after,\n        ${componentCls}-cell-fix-left-last::after,\n        ${componentCls}-cell-fix-right-first::after,\n        ${componentCls}-cell-fix-right-last::after\n      `]: {\n          boxShadow: 'none'\n        }\n      }\n    }\n  };\n};\nexport default genFixedStyle;","import { unit } from '@ant-design/cssinjs';\nconst genPaginationStyle = token => {\n  const {\n    componentCls,\n    antCls,\n    margin\n  } = token;\n  return {\n    [`${componentCls}-wrapper`]: {\n      // ========================== Pagination ==========================\n      [`${componentCls}-pagination${antCls}-pagination`]: {\n        margin: `${unit(margin)} 0`\n      },\n      [`${componentCls}-pagination`]: {\n        display: 'flex',\n        flexWrap: 'wrap',\n        rowGap: token.paddingXS,\n        '> *': {\n          flex: 'none'\n        },\n        '&-left': {\n          justifyContent: 'flex-start'\n        },\n        '&-center': {\n          justifyContent: 'center'\n        },\n        '&-right': {\n          justifyContent: 'flex-end'\n        }\n      }\n    }\n  };\n};\nexport default genPaginationStyle;","import { unit } from '@ant-design/cssinjs';\nconst genRadiusStyle = token => {\n  const {\n    componentCls,\n    tableRadius\n  } = token;\n  return {\n    [`${componentCls}-wrapper`]: {\n      [componentCls]: {\n        // https://github.com/ant-design/ant-design/issues/39115#issuecomment-1362314574\n        [`${componentCls}-title, ${componentCls}-header`]: {\n          borderRadius: `${unit(tableRadius)} ${unit(tableRadius)} 0 0`\n        },\n        [`${componentCls}-title + ${componentCls}-container`]: {\n          borderStartStartRadius: 0,\n          borderStartEndRadius: 0,\n          // https://github.com/ant-design/ant-design/issues/41975\n          [`${componentCls}-header, table`]: {\n            borderRadius: 0\n          },\n          'table > thead > tr:first-child': {\n            'th:first-child, th:last-child, td:first-child, td:last-child': {\n              borderRadius: 0\n            }\n          }\n        },\n        '&-container': {\n          borderStartStartRadius: tableRadius,\n          borderStartEndRadius: tableRadius,\n          'table > thead > tr:first-child': {\n            '> *:first-child': {\n              borderStartStartRadius: tableRadius\n            },\n            '> *:last-child': {\n              borderStartEndRadius: tableRadius\n            }\n          }\n        },\n        '&-footer': {\n          borderRadius: `0 0 ${unit(tableRadius)} ${unit(tableRadius)}`\n        }\n      }\n    }\n  };\n};\nexport default genRadiusStyle;","const genStyle = token => {\n  const {\n    componentCls\n  } = token;\n  return {\n    [`${componentCls}-wrapper-rtl`]: {\n      direction: 'rtl',\n      table: {\n        direction: 'rtl'\n      },\n      [`${componentCls}-pagination-left`]: {\n        justifyContent: 'flex-end'\n      },\n      [`${componentCls}-pagination-right`]: {\n        justifyContent: 'flex-start'\n      },\n      [`${componentCls}-row-expand-icon`]: {\n        float: 'right',\n        '&::after': {\n          transform: 'rotate(-90deg)'\n        },\n        '&-collapsed::before': {\n          transform: 'rotate(180deg)'\n        },\n        '&-collapsed::after': {\n          transform: 'rotate(0deg)'\n        }\n      },\n      [`${componentCls}-container`]: {\n        '&::before': {\n          insetInlineStart: 'unset',\n          insetInlineEnd: 0\n        },\n        '&::after': {\n          insetInlineStart: 0,\n          insetInlineEnd: 'unset'\n        },\n        [`${componentCls}-row-indent`]: {\n          float: 'right'\n        }\n      }\n    }\n  };\n};\nexport default genStyle;","import { unit } from '@ant-design/cssinjs';\nconst genSelectionStyle = token => {\n  const {\n    componentCls,\n    antCls,\n    iconCls,\n    fontSizeIcon,\n    padding,\n    paddingXS,\n    headerIconColor,\n    headerIconHoverColor,\n    tableSelectionColumnWidth,\n    tableSelectedRowBg,\n    tableSelectedRowHoverBg,\n    tableRowHoverBg,\n    tablePaddingHorizontal,\n    calc\n  } = token;\n  return {\n    [`${componentCls}-wrapper`]: {\n      // ========================== Selections ==========================\n      [`${componentCls}-selection-col`]: {\n        width: tableSelectionColumnWidth,\n        [`&${componentCls}-selection-col-with-dropdown`]: {\n          width: calc(tableSelectionColumnWidth).add(fontSizeIcon).add(calc(padding).div(4)).equal()\n        }\n      },\n      [`${componentCls}-bordered ${componentCls}-selection-col`]: {\n        width: calc(tableSelectionColumnWidth).add(calc(paddingXS).mul(2)).equal(),\n        [`&${componentCls}-selection-col-with-dropdown`]: {\n          width: calc(tableSelectionColumnWidth).add(fontSizeIcon).add(calc(padding).div(4)).add(calc(paddingXS).mul(2)).equal()\n        }\n      },\n      [`\n        table tr th${componentCls}-selection-column,\n        table tr td${componentCls}-selection-column,\n        ${componentCls}-selection-column\n      `]: {\n        paddingInlineEnd: token.paddingXS,\n        paddingInlineStart: token.paddingXS,\n        textAlign: 'center',\n        [`${antCls}-radio-wrapper`]: {\n          marginInlineEnd: 0\n        }\n      },\n      [`table tr th${componentCls}-selection-column${componentCls}-cell-fix-left`]: {\n        zIndex: calc(token.zIndexTableFixed).add(1).equal({\n          unit: false\n        })\n      },\n      [`table tr th${componentCls}-selection-column::after`]: {\n        backgroundColor: 'transparent !important'\n      },\n      [`${componentCls}-selection`]: {\n        position: 'relative',\n        display: 'inline-flex',\n        flexDirection: 'column'\n      },\n      [`${componentCls}-selection-extra`]: {\n        position: 'absolute',\n        top: 0,\n        zIndex: 1,\n        cursor: 'pointer',\n        transition: `all ${token.motionDurationSlow}`,\n        marginInlineStart: '100%',\n        paddingInlineStart: unit(calc(tablePaddingHorizontal).div(4).equal()),\n        [iconCls]: {\n          color: headerIconColor,\n          fontSize: fontSizeIcon,\n          verticalAlign: 'baseline',\n          '&:hover': {\n            color: headerIconHoverColor\n          }\n        }\n      },\n      // ============================= Rows =============================\n      [`${componentCls}-tbody`]: {\n        [`${componentCls}-row`]: {\n          [`&${componentCls}-row-selected`]: {\n            [`> ${componentCls}-cell`]: {\n              background: tableSelectedRowBg,\n              '&-row-hover': {\n                background: tableSelectedRowHoverBg\n              }\n            }\n          },\n          [`> ${componentCls}-cell-row-hover`]: {\n            background: tableRowHoverBg\n          }\n        }\n      }\n    }\n  };\n};\nexport default genSelectionStyle;","import { unit } from '@ant-design/cssinjs';\nconst genSizeStyle = token => {\n  const {\n    componentCls,\n    tableExpandColumnWidth,\n    calc\n  } = token;\n  const getSizeStyle = (size, paddingVertical, paddingHorizontal, fontSize) => ({\n    [`${componentCls}${componentCls}-${size}`]: {\n      fontSize,\n      [`\n        ${componentCls}-title,\n        ${componentCls}-footer,\n        ${componentCls}-cell,\n        ${componentCls}-thead > tr > th,\n        ${componentCls}-tbody > tr > th,\n        ${componentCls}-tbody > tr > td,\n        tfoot > tr > th,\n        tfoot > tr > td\n      `]: {\n        padding: `${unit(paddingVertical)} ${unit(paddingHorizontal)}`\n      },\n      [`${componentCls}-filter-trigger`]: {\n        marginInlineEnd: unit(calc(paddingHorizontal).div(2).mul(-1).equal())\n      },\n      [`${componentCls}-expanded-row-fixed`]: {\n        margin: `${unit(calc(paddingVertical).mul(-1).equal())} ${unit(calc(paddingHorizontal).mul(-1).equal())}`\n      },\n      [`${componentCls}-tbody`]: {\n        // ========================= Nest Table ===========================\n        [`${componentCls}-wrapper:only-child ${componentCls}`]: {\n          marginBlock: unit(calc(paddingVertical).mul(-1).equal()),\n          marginInline: `${unit(calc(tableExpandColumnWidth).sub(paddingHorizontal).equal())} ${unit(calc(paddingHorizontal).mul(-1).equal())}`\n        }\n      },\n      // https://github.com/ant-design/ant-design/issues/35167\n      [`${componentCls}-selection-extra`]: {\n        paddingInlineStart: unit(calc(paddingHorizontal).div(4).equal())\n      }\n    }\n  });\n  return {\n    [`${componentCls}-wrapper`]: Object.assign(Object.assign({}, getSizeStyle('middle', token.tablePaddingVerticalMiddle, token.tablePaddingHorizontalMiddle, token.tableFontSizeMiddle)), getSizeStyle('small', token.tablePaddingVerticalSmall, token.tablePaddingHorizontalSmall, token.tableFontSizeSmall))\n  };\n};\nexport default genSizeStyle;","const genSorterStyle = token => {\n  const {\n    componentCls,\n    marginXXS,\n    fontSizeIcon,\n    headerIconColor,\n    headerIconHoverColor\n  } = token;\n  return {\n    [`${componentCls}-wrapper`]: {\n      [`${componentCls}-thead th${componentCls}-column-has-sorters`]: {\n        outline: 'none',\n        cursor: 'pointer',\n        // why left 0s? Avoid column header move with transition when left is changed\n        // https://github.com/ant-design/ant-design/issues/50588\n        transition: `all ${token.motionDurationSlow}, left 0s`,\n        '&:hover': {\n          background: token.tableHeaderSortHoverBg,\n          '&::before': {\n            backgroundColor: 'transparent !important'\n          }\n        },\n        '&:focus-visible': {\n          color: token.colorPrimary\n        },\n        // https://github.com/ant-design/ant-design/issues/30969\n        [`\n          &${componentCls}-cell-fix-left:hover,\n          &${componentCls}-cell-fix-right:hover\n        `]: {\n          background: token.tableFixedHeaderSortActiveBg\n        }\n      },\n      [`${componentCls}-thead th${componentCls}-column-sort`]: {\n        background: token.tableHeaderSortBg,\n        '&::before': {\n          backgroundColor: 'transparent !important'\n        }\n      },\n      [`td${componentCls}-column-sort`]: {\n        background: token.tableBodySortBg\n      },\n      [`${componentCls}-column-title`]: {\n        position: 'relative',\n        zIndex: 1,\n        flex: 1\n      },\n      [`${componentCls}-column-sorters`]: {\n        display: 'flex',\n        flex: 'auto',\n        alignItems: 'center',\n        justifyContent: 'space-between',\n        '&::after': {\n          position: 'absolute',\n          inset: 0,\n          width: '100%',\n          height: '100%',\n          content: '\"\"'\n        }\n      },\n      [`${componentCls}-column-sorters-tooltip-target-sorter`]: {\n        '&::after': {\n          content: 'none'\n        }\n      },\n      [`${componentCls}-column-sorter`]: {\n        marginInlineStart: marginXXS,\n        color: headerIconColor,\n        fontSize: 0,\n        transition: `color ${token.motionDurationSlow}`,\n        '&-inner': {\n          display: 'inline-flex',\n          flexDirection: 'column',\n          alignItems: 'center'\n        },\n        '&-up, &-down': {\n          fontSize: fontSizeIcon,\n          '&.active': {\n            color: token.colorPrimary\n          }\n        },\n        [`${componentCls}-column-sorter-up + ${componentCls}-column-sorter-down`]: {\n          marginTop: '-0.3em'\n        }\n      },\n      [`${componentCls}-column-sorters:hover ${componentCls}-column-sorter`]: {\n        color: headerIconHoverColor\n      }\n    }\n  };\n};\nexport default genSorterStyle;","import { unit } from '@ant-design/cssinjs';\nconst genStickyStyle = token => {\n  const {\n    componentCls,\n    opacityLoading,\n    tableScrollThumbBg,\n    tableScrollThumbBgHover,\n    tableScrollThumbSize,\n    tableScrollBg,\n    zIndexTableSticky,\n    stickyScrollBarBorderRadius,\n    lineWidth,\n    lineType,\n    tableBorderColor\n  } = token;\n  const tableBorder = `${unit(lineWidth)} ${lineType} ${tableBorderColor}`;\n  return {\n    [`${componentCls}-wrapper`]: {\n      [`${componentCls}-sticky`]: {\n        '&-holder': {\n          position: 'sticky',\n          zIndex: zIndexTableSticky,\n          background: token.colorBgContainer\n        },\n        '&-scroll': {\n          position: 'sticky',\n          bottom: 0,\n          height: `${unit(tableScrollThumbSize)} !important`,\n          zIndex: zIndexTableSticky,\n          display: 'flex',\n          alignItems: 'center',\n          background: tableScrollBg,\n          borderTop: tableBorder,\n          opacity: opacityLoading,\n          '&:hover': {\n            transformOrigin: 'center bottom'\n          },\n          // fake scrollbar style of sticky\n          '&-bar': {\n            height: tableScrollThumbSize,\n            backgroundColor: tableScrollThumbBg,\n            borderRadius: stickyScrollBarBorderRadius,\n            transition: `all ${token.motionDurationSlow}, transform none`,\n            position: 'absolute',\n            bottom: 0,\n            '&:hover, &-active': {\n              backgroundColor: tableScrollThumbBgHover\n            }\n          }\n        }\n      }\n    }\n  };\n};\nexport default genStickyStyle;","import { unit } from '@ant-design/cssinjs';\nconst genSummaryStyle = token => {\n  const {\n    componentCls,\n    lineWidth,\n    tableBorderColor,\n    calc\n  } = token;\n  const tableBorder = `${unit(lineWidth)} ${token.lineType} ${tableBorderColor}`;\n  return {\n    [`${componentCls}-wrapper`]: {\n      [`${componentCls}-summary`]: {\n        position: 'relative',\n        zIndex: token.zIndexTableFixed,\n        background: token.tableBg,\n        '> tr': {\n          '> th, > td': {\n            borderBottom: tableBorder\n          }\n        }\n      },\n      [`div${componentCls}-summary`]: {\n        boxShadow: `0 ${unit(calc(lineWidth).mul(-1).equal())} 0 ${tableBorderColor}`\n      }\n    }\n  };\n};\nexport default genSummaryStyle;","import { unit } from '@ant-design/cssinjs';\nconst genVirtualStyle = token => {\n  const {\n    componentCls,\n    motionDurationMid,\n    lineWidth,\n    lineType,\n    tableBorderColor,\n    calc\n  } = token;\n  const tableBorder = `${unit(lineWidth)} ${lineType} ${tableBorderColor}`;\n  const rowCellCls = `${componentCls}-expanded-row-cell`;\n  return {\n    [`${componentCls}-wrapper`]: {\n      // ========================== Row ==========================\n      [`${componentCls}-tbody-virtual`]: {\n        [`${componentCls}-tbody-virtual-holder-inner`]: {\n          [`\n            & > ${componentCls}-row, \n            & > div:not(${componentCls}-row) > ${componentCls}-row\n          `]: {\n            display: 'flex',\n            boxSizing: 'border-box',\n            width: '100%'\n          }\n        },\n        [`${componentCls}-cell`]: {\n          borderBottom: tableBorder,\n          transition: `background ${motionDurationMid}`\n        },\n        [`${componentCls}-expanded-row`]: {\n          [`${rowCellCls}${rowCellCls}-fixed`]: {\n            position: 'sticky',\n            insetInlineStart: 0,\n            overflow: 'hidden',\n            width: `calc(var(--virtual-width) - ${unit(lineWidth)})`,\n            borderInlineEnd: 'none'\n          }\n        }\n      },\n      // ======================== Border =========================\n      [`${componentCls}-bordered`]: {\n        [`${componentCls}-tbody-virtual`]: {\n          '&:after': {\n            content: '\"\"',\n            insetInline: 0,\n            bottom: 0,\n            borderBottom: tableBorder,\n            position: 'absolute'\n          },\n          [`${componentCls}-cell`]: {\n            borderInlineEnd: tableBorder,\n            [`&${componentCls}-cell-fix-right-first:before`]: {\n              content: '\"\"',\n              position: 'absolute',\n              insetBlock: 0,\n              insetInlineStart: calc(lineWidth).mul(-1).equal(),\n              borderInlineStart: tableBorder\n            }\n          }\n        },\n        // Empty placeholder\n        [`&${componentCls}-virtual`]: {\n          [`${componentCls}-placeholder ${componentCls}-cell`]: {\n            borderInlineEnd: tableBorder,\n            borderBottom: tableBorder\n          }\n        }\n      }\n    }\n  };\n};\nexport default genVirtualStyle;","import { unit } from '@ant-design/cssinjs';\nimport { TinyColor } from '@ctrl/tinycolor';\nimport { clearFix, resetComponent } from '../../style';\nimport { genStyleHooks, mergeToken } from '../../theme/internal';\nimport genBorderedStyle from './bordered';\nimport genEllipsisStyle from './ellipsis';\nimport genEmptyStyle from './empty';\nimport genExpandStyle from './expand';\nimport genFilterStyle from './filter';\nimport genFixedStyle from './fixed';\nimport genPaginationStyle from './pagination';\nimport genRadiusStyle from './radius';\nimport genRtlStyle from './rtl';\nimport genSelectionStyle from './selection';\nimport genSizeStyle from './size';\nimport genSorterStyle from './sorter';\nimport genStickyStyle from './sticky';\nimport genSummaryStyle from './summary';\nimport genVirtualStyle from './virtual';\nconst genTableStyle = token => {\n  const {\n    componentCls,\n    fontWeightStrong,\n    tablePaddingVertical,\n    tablePaddingHorizontal,\n    tableExpandColumnWidth,\n    lineWidth,\n    lineType,\n    tableBorderColor,\n    tableFontSize,\n    tableBg,\n    tableRadius,\n    tableHeaderTextColor,\n    motionDurationMid,\n    tableHeaderBg,\n    tableHeaderCellSplitColor,\n    tableFooterTextColor,\n    tableFooterBg,\n    calc\n  } = token;\n  const tableBorder = `${unit(lineWidth)} ${lineType} ${tableBorderColor}`;\n  return {\n    [`${componentCls}-wrapper`]: Object.assign(Object.assign({\n      clear: 'both',\n      maxWidth: '100%'\n    }, clearFix()), {\n      [componentCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n        fontSize: tableFontSize,\n        background: tableBg,\n        borderRadius: `${unit(tableRadius)} ${unit(tableRadius)} 0 0`,\n        // https://github.com/ant-design/ant-design/issues/47486\n        scrollbarColor: `${token.tableScrollThumbBg} ${token.tableScrollBg}`\n      }),\n      // https://github.com/ant-design/ant-design/issues/17611\n      table: {\n        width: '100%',\n        textAlign: 'start',\n        borderRadius: `${unit(tableRadius)} ${unit(tableRadius)} 0 0`,\n        borderCollapse: 'separate',\n        borderSpacing: 0\n      },\n      // ============================= Cell ==============================\n      [`\n          ${componentCls}-cell,\n          ${componentCls}-thead > tr > th,\n          ${componentCls}-tbody > tr > th,\n          ${componentCls}-tbody > tr > td,\n          tfoot > tr > th,\n          tfoot > tr > td\n        `]: {\n        position: 'relative',\n        padding: `${unit(tablePaddingVertical)} ${unit(tablePaddingHorizontal)}`,\n        overflowWrap: 'break-word'\n      },\n      // ============================ Title =============================\n      [`${componentCls}-title`]: {\n        padding: `${unit(tablePaddingVertical)} ${unit(tablePaddingHorizontal)}`\n      },\n      // ============================ Header ============================\n      [`${componentCls}-thead`]: {\n        [`\n          > tr > th,\n          > tr > td\n        `]: {\n          position: 'relative',\n          color: tableHeaderTextColor,\n          fontWeight: fontWeightStrong,\n          textAlign: 'start',\n          background: tableHeaderBg,\n          borderBottom: tableBorder,\n          transition: `background ${motionDurationMid} ease`,\n          \"&[colspan]:not([colspan='1'])\": {\n            textAlign: 'center'\n          },\n          [`&:not(:last-child):not(${componentCls}-selection-column):not(${componentCls}-row-expand-icon-cell):not([colspan])::before`]: {\n            position: 'absolute',\n            top: '50%',\n            insetInlineEnd: 0,\n            width: 1,\n            height: '1.6em',\n            backgroundColor: tableHeaderCellSplitColor,\n            transform: 'translateY(-50%)',\n            transition: `background-color ${motionDurationMid}`,\n            content: '\"\"'\n          }\n        },\n        '> tr:not(:last-child) > th[colspan]': {\n          borderBottom: 0\n        }\n      },\n      // ============================ Body ============================\n      [`${componentCls}-tbody`]: {\n        '> tr': {\n          '> th, > td': {\n            transition: `background ${motionDurationMid}, border-color ${motionDurationMid}`,\n            borderBottom: tableBorder,\n            // ========================= Nest Table ===========================\n            [`\n              > ${componentCls}-wrapper:only-child,\n              > ${componentCls}-expanded-row-fixed > ${componentCls}-wrapper:only-child\n            `]: {\n              [componentCls]: {\n                marginBlock: unit(calc(tablePaddingVertical).mul(-1).equal()),\n                marginInline: `${unit(calc(tableExpandColumnWidth).sub(tablePaddingHorizontal).equal())}\n                ${unit(calc(tablePaddingHorizontal).mul(-1).equal())}`,\n                [`${componentCls}-tbody > tr:last-child > td`]: {\n                  borderBottom: 0,\n                  '&:first-child, &:last-child': {\n                    borderRadius: 0\n                  }\n                }\n              }\n            }\n          },\n          '> th': {\n            position: 'relative',\n            color: tableHeaderTextColor,\n            fontWeight: fontWeightStrong,\n            textAlign: 'start',\n            background: tableHeaderBg,\n            borderBottom: tableBorder,\n            transition: `background ${motionDurationMid} ease`\n          }\n        }\n      },\n      // ============================ Footer ============================\n      [`${componentCls}-footer`]: {\n        padding: `${unit(tablePaddingVertical)} ${unit(tablePaddingHorizontal)}`,\n        color: tableFooterTextColor,\n        background: tableFooterBg\n      }\n    })\n  };\n};\nexport const prepareComponentToken = token => {\n  const {\n    colorFillAlter,\n    colorBgContainer,\n    colorTextHeading,\n    colorFillSecondary,\n    colorFillContent,\n    controlItemBgActive,\n    controlItemBgActiveHover,\n    padding,\n    paddingSM,\n    paddingXS,\n    colorBorderSecondary,\n    borderRadiusLG,\n    controlHeight,\n    colorTextPlaceholder,\n    fontSize,\n    fontSizeSM,\n    lineHeight,\n    lineWidth,\n    colorIcon,\n    colorIconHover,\n    opacityLoading,\n    controlInteractiveSize\n  } = token;\n  const colorFillSecondarySolid = new TinyColor(colorFillSecondary).onBackground(colorBgContainer).toHexShortString();\n  const colorFillContentSolid = new TinyColor(colorFillContent).onBackground(colorBgContainer).toHexShortString();\n  const colorFillAlterSolid = new TinyColor(colorFillAlter).onBackground(colorBgContainer).toHexShortString();\n  const baseColorAction = new TinyColor(colorIcon);\n  const baseColorActionHover = new TinyColor(colorIconHover);\n  const expandIconHalfInner = controlInteractiveSize / 2 - lineWidth;\n  const expandIconSize = expandIconHalfInner * 2 + lineWidth * 3;\n  return {\n    headerBg: colorFillAlterSolid,\n    headerColor: colorTextHeading,\n    headerSortActiveBg: colorFillSecondarySolid,\n    headerSortHoverBg: colorFillContentSolid,\n    bodySortBg: colorFillAlterSolid,\n    rowHoverBg: colorFillAlterSolid,\n    rowSelectedBg: controlItemBgActive,\n    rowSelectedHoverBg: controlItemBgActiveHover,\n    rowExpandedBg: colorFillAlter,\n    cellPaddingBlock: padding,\n    cellPaddingInline: padding,\n    cellPaddingBlockMD: paddingSM,\n    cellPaddingInlineMD: paddingXS,\n    cellPaddingBlockSM: paddingXS,\n    cellPaddingInlineSM: paddingXS,\n    borderColor: colorBorderSecondary,\n    headerBorderRadius: borderRadiusLG,\n    footerBg: colorFillAlterSolid,\n    footerColor: colorTextHeading,\n    cellFontSize: fontSize,\n    cellFontSizeMD: fontSize,\n    cellFontSizeSM: fontSize,\n    headerSplitColor: colorBorderSecondary,\n    fixedHeaderSortActiveBg: colorFillSecondarySolid,\n    headerFilterHoverBg: colorFillContent,\n    filterDropdownMenuBg: colorBgContainer,\n    filterDropdownBg: colorBgContainer,\n    expandIconBg: colorBgContainer,\n    selectionColumnWidth: controlHeight,\n    stickyScrollBarBg: colorTextPlaceholder,\n    stickyScrollBarBorderRadius: 100,\n    expandIconMarginTop: (fontSize * lineHeight - lineWidth * 3) / 2 - Math.ceil((fontSizeSM * 1.4 - lineWidth * 3) / 2),\n    headerIconColor: baseColorAction.clone().setAlpha(baseColorAction.getAlpha() * opacityLoading).toRgbString(),\n    headerIconHoverColor: baseColorActionHover.clone().setAlpha(baseColorActionHover.getAlpha() * opacityLoading).toRgbString(),\n    expandIconHalfInner,\n    expandIconSize,\n    expandIconScale: controlInteractiveSize / expandIconSize\n  };\n};\nconst zIndexTableFixed = 2;\n// ============================== Export ==============================\nexport default genStyleHooks('Table', token => {\n  const {\n    colorTextHeading,\n    colorSplit,\n    colorBgContainer,\n    controlInteractiveSize: checkboxSize,\n    headerBg,\n    headerColor,\n    headerSortActiveBg,\n    headerSortHoverBg,\n    bodySortBg,\n    rowHoverBg,\n    rowSelectedBg,\n    rowSelectedHoverBg,\n    rowExpandedBg,\n    cellPaddingBlock,\n    cellPaddingInline,\n    cellPaddingBlockMD,\n    cellPaddingInlineMD,\n    cellPaddingBlockSM,\n    cellPaddingInlineSM,\n    borderColor,\n    footerBg,\n    footerColor,\n    headerBorderRadius,\n    cellFontSize,\n    cellFontSizeMD,\n    cellFontSizeSM,\n    headerSplitColor,\n    fixedHeaderSortActiveBg,\n    headerFilterHoverBg,\n    filterDropdownBg,\n    expandIconBg,\n    selectionColumnWidth,\n    stickyScrollBarBg,\n    calc\n  } = token;\n  const tableToken = mergeToken(token, {\n    tableFontSize: cellFontSize,\n    tableBg: colorBgContainer,\n    tableRadius: headerBorderRadius,\n    tablePaddingVertical: cellPaddingBlock,\n    tablePaddingHorizontal: cellPaddingInline,\n    tablePaddingVerticalMiddle: cellPaddingBlockMD,\n    tablePaddingHorizontalMiddle: cellPaddingInlineMD,\n    tablePaddingVerticalSmall: cellPaddingBlockSM,\n    tablePaddingHorizontalSmall: cellPaddingInlineSM,\n    tableBorderColor: borderColor,\n    tableHeaderTextColor: headerColor,\n    tableHeaderBg: headerBg,\n    tableFooterTextColor: footerColor,\n    tableFooterBg: footerBg,\n    tableHeaderCellSplitColor: headerSplitColor,\n    tableHeaderSortBg: headerSortActiveBg,\n    tableHeaderSortHoverBg: headerSortHoverBg,\n    tableBodySortBg: bodySortBg,\n    tableFixedHeaderSortActiveBg: fixedHeaderSortActiveBg,\n    tableHeaderFilterActiveBg: headerFilterHoverBg,\n    tableFilterDropdownBg: filterDropdownBg,\n    tableRowHoverBg: rowHoverBg,\n    tableSelectedRowBg: rowSelectedBg,\n    tableSelectedRowHoverBg: rowSelectedHoverBg,\n    zIndexTableFixed,\n    zIndexTableSticky: calc(zIndexTableFixed).add(1).equal({\n      unit: false\n    }),\n    tableFontSizeMiddle: cellFontSizeMD,\n    tableFontSizeSmall: cellFontSizeSM,\n    tableSelectionColumnWidth: selectionColumnWidth,\n    tableExpandIconBg: expandIconBg,\n    tableExpandColumnWidth: calc(checkboxSize).add(calc(token.padding).mul(2)).equal(),\n    tableExpandedRowBg: rowExpandedBg,\n    // Dropdown\n    tableFilterDropdownWidth: 120,\n    tableFilterDropdownHeight: 264,\n    tableFilterDropdownSearchWidth: 140,\n    // Virtual Scroll Bar\n    tableScrollThumbSize: 8,\n    // Mac scroll bar size\n    tableScrollThumbBg: stickyScrollBarBg,\n    tableScrollThumbBgHover: colorTextHeading,\n    tableScrollBg: colorSplit\n  });\n  return [genTableStyle(tableToken), genPaginationStyle(tableToken), genSummaryStyle(tableToken), genSorterStyle(tableToken), genFilterStyle(tableToken), genBorderedStyle(tableToken), genRadiusStyle(tableToken), genExpandStyle(tableToken), genSummaryStyle(tableToken), genEmptyStyle(tableToken), genSelectionStyle(tableToken), genFixedStyle(tableToken), genStickyStyle(tableToken), genEllipsisStyle(tableToken), genSizeStyle(tableToken), genRtlStyle(tableToken), genVirtualStyle(tableToken)];\n}, prepareComponentToken, {\n  unitless: {\n    expandIconScale: true\n  }\n});","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { INTERNAL_HOOKS } from 'rc-table';\nimport { convertChildrenToColumns } from \"rc-table/es/hooks/useColumns\";\nimport omit from \"rc-util/es/omit\";\nimport useProxyImperativeHandle from '../_util/hooks/useProxyImperativeHandle';\nimport scrollTo from '../_util/scrollTo';\nimport { devUseWarning } from '../_util/warning';\nimport { ConfigContext } from '../config-provider/context';\nimport DefaultRenderEmpty from '../config-provider/defaultRenderEmpty';\nimport useCSSVarCls from '../config-provider/hooks/useCSSVarCls';\nimport useSize from '../config-provider/hooks/useSize';\nimport useBreakpoint from '../grid/hooks/useBreakpoint';\nimport defaultLocale from '../locale/en_US';\nimport Pagination from '../pagination';\nimport Spin from '../spin';\nimport { useToken } from '../theme/internal';\nimport renderExpandIcon from './ExpandIcon';\nimport useContainerWidth from './hooks/useContainerWidth';\nimport useFilter, { getFilterData } from './hooks/useFilter';\nimport useLazyKVMap from './hooks/useLazyKVMap';\nimport usePagination, { DEFAULT_PAGE_SIZE, getPaginationParam } from './hooks/usePagination';\nimport useSelection from './hooks/useSelection';\nimport useSorter, { getSortData } from './hooks/useSorter';\nimport useTitleColumns from './hooks/useTitleColumns';\nimport RcTable from './RcTable';\nimport RcVirtualTable from './RcTable/VirtualTable';\nimport useStyle from './style';\nconst EMPTY_LIST = [];\nconst InternalTable = (props, ref) => {\n  var _a, _b;\n  const {\n    prefixCls: customizePrefixCls,\n    className,\n    rootClassName,\n    style,\n    size: customizeSize,\n    bordered,\n    dropdownPrefixCls: customizeDropdownPrefixCls,\n    dataSource,\n    pagination,\n    rowSelection,\n    rowKey = 'key',\n    rowClassName,\n    columns,\n    children,\n    childrenColumnName: legacyChildrenColumnName,\n    onChange,\n    getPopupContainer,\n    loading,\n    expandIcon,\n    expandable,\n    expandedRowRender,\n    expandIconColumnIndex,\n    indentSize,\n    scroll,\n    sortDirections,\n    locale,\n    showSorterTooltip = {\n      target: 'full-header'\n    },\n    virtual\n  } = props;\n  const warning = devUseWarning('Table');\n  if (process.env.NODE_ENV !== 'production') {\n    process.env.NODE_ENV !== \"production\" ? warning(!(typeof rowKey === 'function' && rowKey.length > 1), 'usage', '`index` parameter of `rowKey` function is deprecated. There is no guarantee that it will work as expected.') : void 0;\n  }\n  const baseColumns = React.useMemo(() => columns || convertChildrenToColumns(children), [columns, children]);\n  const needResponsive = React.useMemo(() => baseColumns.some(col => col.responsive), [baseColumns]);\n  const screens = useBreakpoint(needResponsive);\n  const mergedColumns = React.useMemo(() => {\n    const matched = new Set(Object.keys(screens).filter(m => screens[m]));\n    return baseColumns.filter(c => !c.responsive || c.responsive.some(r => matched.has(r)));\n  }, [baseColumns, screens]);\n  const tableProps = omit(props, ['className', 'style', 'columns']);\n  const {\n    locale: contextLocale = defaultLocale,\n    direction,\n    table,\n    renderEmpty,\n    getPrefixCls,\n    getPopupContainer: getContextPopupContainer\n  } = React.useContext(ConfigContext);\n  const mergedSize = useSize(customizeSize);\n  const tableLocale = Object.assign(Object.assign({}, contextLocale.Table), locale);\n  const rawData = dataSource || EMPTY_LIST;\n  const prefixCls = getPrefixCls('table', customizePrefixCls);\n  const dropdownPrefixCls = getPrefixCls('dropdown', customizeDropdownPrefixCls);\n  const [, token] = useToken();\n  const rootCls = useCSSVarCls(prefixCls);\n  const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls, rootCls);\n  const mergedExpandable = Object.assign(Object.assign({\n    childrenColumnName: legacyChildrenColumnName,\n    expandIconColumnIndex\n  }, expandable), {\n    expandIcon: (_a = expandable === null || expandable === void 0 ? void 0 : expandable.expandIcon) !== null && _a !== void 0 ? _a : (_b = table === null || table === void 0 ? void 0 : table.expandable) === null || _b === void 0 ? void 0 : _b.expandIcon\n  });\n  const {\n    childrenColumnName = 'children'\n  } = mergedExpandable;\n  const expandType = React.useMemo(() => {\n    if (rawData.some(item => item === null || item === void 0 ? void 0 : item[childrenColumnName])) {\n      return 'nest';\n    }\n    if (expandedRowRender || (expandable === null || expandable === void 0 ? void 0 : expandable.expandedRowRender)) {\n      return 'row';\n    }\n    return null;\n  }, [rawData]);\n  const internalRefs = {\n    body: React.useRef()\n  };\n  // ============================ Width =============================\n  const getContainerWidth = useContainerWidth(prefixCls);\n  // ============================= Refs =============================\n  const rootRef = React.useRef(null);\n  const tblRef = React.useRef(null);\n  useProxyImperativeHandle(ref, () => Object.assign(Object.assign({}, tblRef.current), {\n    nativeElement: rootRef.current\n  }));\n  // ============================ RowKey ============================\n  const getRowKey = React.useMemo(() => {\n    if (typeof rowKey === 'function') {\n      return rowKey;\n    }\n    return record => record === null || record === void 0 ? void 0 : record[rowKey];\n  }, [rowKey]);\n  const [getRecordByKey] = useLazyKVMap(rawData, childrenColumnName, getRowKey);\n  // ============================ Events =============================\n  const changeEventInfo = {};\n  const triggerOnChange = function (info, action) {\n    let reset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n    var _a, _b, _c, _d;\n    const changeInfo = Object.assign(Object.assign({}, changeEventInfo), info);\n    if (reset) {\n      (_a = changeEventInfo.resetPagination) === null || _a === void 0 ? void 0 : _a.call(changeEventInfo);\n      // Reset event param\n      if ((_b = changeInfo.pagination) === null || _b === void 0 ? void 0 : _b.current) {\n        changeInfo.pagination.current = 1;\n      }\n      // Trigger pagination events\n      if (pagination) {\n        (_c = pagination.onChange) === null || _c === void 0 ? void 0 : _c.call(pagination, 1, (_d = changeInfo.pagination) === null || _d === void 0 ? void 0 : _d.pageSize);\n      }\n    }\n    if (scroll && scroll.scrollToFirstRowOnChange !== false && internalRefs.body.current) {\n      scrollTo(0, {\n        getContainer: () => internalRefs.body.current\n      });\n    }\n    onChange === null || onChange === void 0 ? void 0 : onChange(changeInfo.pagination, changeInfo.filters, changeInfo.sorter, {\n      currentDataSource: getFilterData(getSortData(rawData, changeInfo.sorterStates, childrenColumnName), changeInfo.filterStates, childrenColumnName),\n      action\n    });\n  };\n  /**\n   * Controlled state in `columns` is not a good idea that makes too many code (1000+ line?) to read\n   * state out and then put it back to title render. Move these code into `hooks` but still too\n   * complex. We should provides Table props like `sorter` & `filter` to handle control in next big\n   * version.\n   */\n  // ============================ Sorter =============================\n  const onSorterChange = (sorter, sorterStates) => {\n    triggerOnChange({\n      sorter,\n      sorterStates\n    }, 'sort', false);\n  };\n  const [transformSorterColumns, sortStates, sorterTitleProps, getSorters] = useSorter({\n    prefixCls,\n    mergedColumns,\n    onSorterChange,\n    sortDirections: sortDirections || ['ascend', 'descend'],\n    tableLocale,\n    showSorterTooltip\n  });\n  const sortedData = React.useMemo(() => getSortData(rawData, sortStates, childrenColumnName), [rawData, sortStates]);\n  changeEventInfo.sorter = getSorters();\n  changeEventInfo.sorterStates = sortStates;\n  // ============================ Filter ============================\n  const onFilterChange = (filters, filterStates) => {\n    triggerOnChange({\n      filters,\n      filterStates\n    }, 'filter', true);\n  };\n  const [transformFilterColumns, filterStates, filters] = useFilter({\n    prefixCls,\n    locale: tableLocale,\n    dropdownPrefixCls,\n    mergedColumns,\n    onFilterChange,\n    getPopupContainer: getPopupContainer || getContextPopupContainer,\n    rootClassName: classNames(rootClassName, rootCls)\n  });\n  const mergedData = getFilterData(sortedData, filterStates, childrenColumnName);\n  changeEventInfo.filters = filters;\n  changeEventInfo.filterStates = filterStates;\n  // ============================ Column ============================\n  const columnTitleProps = React.useMemo(() => {\n    const mergedFilters = {};\n    Object.keys(filters).forEach(filterKey => {\n      if (filters[filterKey] !== null) {\n        mergedFilters[filterKey] = filters[filterKey];\n      }\n    });\n    return Object.assign(Object.assign({}, sorterTitleProps), {\n      filters: mergedFilters\n    });\n  }, [sorterTitleProps, filters]);\n  const [transformTitleColumns] = useTitleColumns(columnTitleProps);\n  // ========================== Pagination ==========================\n  const onPaginationChange = (current, pageSize) => {\n    triggerOnChange({\n      pagination: Object.assign(Object.assign({}, changeEventInfo.pagination), {\n        current,\n        pageSize\n      })\n    }, 'paginate');\n  };\n  const [mergedPagination, resetPagination] = usePagination(mergedData.length, onPaginationChange, pagination);\n  changeEventInfo.pagination = pagination === false ? {} : getPaginationParam(mergedPagination, pagination);\n  changeEventInfo.resetPagination = resetPagination;\n  // ============================= Data =============================\n  const pageData = React.useMemo(() => {\n    if (pagination === false || !mergedPagination.pageSize) {\n      return mergedData;\n    }\n    const {\n      current = 1,\n      total,\n      pageSize = DEFAULT_PAGE_SIZE\n    } = mergedPagination;\n    process.env.NODE_ENV !== \"production\" ? warning(current > 0, 'usage', '`current` should be positive number.') : void 0;\n    // Dynamic table data\n    if (mergedData.length < total) {\n      if (mergedData.length > pageSize) {\n        process.env.NODE_ENV !== \"production\" ? warning(false, 'usage', '`dataSource` length is less than `pagination.total` but large than `pagination.pageSize`. Please make sure your config correct data with async mode.') : void 0;\n        return mergedData.slice((current - 1) * pageSize, current * pageSize);\n      }\n      return mergedData;\n    }\n    return mergedData.slice((current - 1) * pageSize, current * pageSize);\n  }, [!!pagination, mergedData, mergedPagination === null || mergedPagination === void 0 ? void 0 : mergedPagination.current, mergedPagination === null || mergedPagination === void 0 ? void 0 : mergedPagination.pageSize, mergedPagination === null || mergedPagination === void 0 ? void 0 : mergedPagination.total]);\n  // ========================== Selections ==========================\n  const [transformSelectionColumns, selectedKeySet] = useSelection({\n    prefixCls,\n    data: mergedData,\n    pageData,\n    getRowKey,\n    getRecordByKey,\n    expandType,\n    childrenColumnName,\n    locale: tableLocale,\n    getPopupContainer: getPopupContainer || getContextPopupContainer\n  }, rowSelection);\n  const internalRowClassName = (record, index, indent) => {\n    let mergedRowClassName;\n    if (typeof rowClassName === 'function') {\n      mergedRowClassName = classNames(rowClassName(record, index, indent));\n    } else {\n      mergedRowClassName = classNames(rowClassName);\n    }\n    return classNames({\n      [`${prefixCls}-row-selected`]: selectedKeySet.has(getRowKey(record, index))\n    }, mergedRowClassName);\n  };\n  // ========================== Expandable ==========================\n  // Pass origin render status into `rc-table`, this can be removed when refactor with `rc-table`\n  mergedExpandable.__PARENT_RENDER_ICON__ = mergedExpandable.expandIcon;\n  // Customize expandable icon\n  mergedExpandable.expandIcon = mergedExpandable.expandIcon || expandIcon || renderExpandIcon(tableLocale);\n  // Adjust expand icon index, no overwrite expandIconColumnIndex if set.\n  if (expandType === 'nest' && mergedExpandable.expandIconColumnIndex === undefined) {\n    mergedExpandable.expandIconColumnIndex = rowSelection ? 1 : 0;\n  } else if (mergedExpandable.expandIconColumnIndex > 0 && rowSelection) {\n    mergedExpandable.expandIconColumnIndex -= 1;\n  }\n  // Indent size\n  if (typeof mergedExpandable.indentSize !== 'number') {\n    mergedExpandable.indentSize = typeof indentSize === 'number' ? indentSize : 15;\n  }\n  // ============================ Render ============================\n  const transformColumns = React.useCallback(innerColumns => transformTitleColumns(transformSelectionColumns(transformFilterColumns(transformSorterColumns(innerColumns)))), [transformSorterColumns, transformFilterColumns, transformSelectionColumns]);\n  let topPaginationNode;\n  let bottomPaginationNode;\n  if (pagination !== false && (mergedPagination === null || mergedPagination === void 0 ? void 0 : mergedPagination.total)) {\n    let paginationSize;\n    if (mergedPagination.size) {\n      paginationSize = mergedPagination.size;\n    } else {\n      paginationSize = mergedSize === 'small' || mergedSize === 'middle' ? 'small' : undefined;\n    }\n    const renderPagination = position => (/*#__PURE__*/React.createElement(Pagination, Object.assign({}, mergedPagination, {\n      className: classNames(`${prefixCls}-pagination ${prefixCls}-pagination-${position}`, mergedPagination.className),\n      size: paginationSize\n    })));\n    const defaultPosition = direction === 'rtl' ? 'left' : 'right';\n    const {\n      position\n    } = mergedPagination;\n    if (position !== null && Array.isArray(position)) {\n      const topPos = position.find(p => p.includes('top'));\n      const bottomPos = position.find(p => p.includes('bottom'));\n      const isDisable = position.every(p => `${p}` === 'none');\n      if (!topPos && !bottomPos && !isDisable) {\n        bottomPaginationNode = renderPagination(defaultPosition);\n      }\n      if (topPos) {\n        topPaginationNode = renderPagination(topPos.toLowerCase().replace('top', ''));\n      }\n      if (bottomPos) {\n        bottomPaginationNode = renderPagination(bottomPos.toLowerCase().replace('bottom', ''));\n      }\n    } else {\n      bottomPaginationNode = renderPagination(defaultPosition);\n    }\n  }\n  // >>>>>>>>> Spinning\n  let spinProps;\n  if (typeof loading === 'boolean') {\n    spinProps = {\n      spinning: loading\n    };\n  } else if (typeof loading === 'object') {\n    spinProps = Object.assign({\n      spinning: true\n    }, loading);\n  }\n  const wrapperClassNames = classNames(cssVarCls, rootCls, `${prefixCls}-wrapper`, table === null || table === void 0 ? void 0 : table.className, {\n    [`${prefixCls}-wrapper-rtl`]: direction === 'rtl'\n  }, className, rootClassName, hashId);\n  const mergedStyle = Object.assign(Object.assign({}, table === null || table === void 0 ? void 0 : table.style), style);\n  const emptyText = typeof (locale === null || locale === void 0 ? void 0 : locale.emptyText) !== 'undefined' ? locale.emptyText : (renderEmpty === null || renderEmpty === void 0 ? void 0 : renderEmpty('Table')) || /*#__PURE__*/React.createElement(DefaultRenderEmpty, {\n    componentName: \"Table\"\n  });\n  // ========================== Render ==========================\n  const TableComponent = virtual ? RcVirtualTable : RcTable;\n  // >>> Virtual Table props. We set height here since it will affect height collection\n  const virtualProps = {};\n  const listItemHeight = React.useMemo(() => {\n    const {\n      fontSize,\n      lineHeight,\n      padding,\n      paddingXS,\n      paddingSM\n    } = token;\n    const fontHeight = Math.floor(fontSize * lineHeight);\n    switch (mergedSize) {\n      case 'large':\n        return padding * 2 + fontHeight;\n      case 'small':\n        return paddingXS * 2 + fontHeight;\n      default:\n        return paddingSM * 2 + fontHeight;\n    }\n  }, [token, mergedSize]);\n  if (virtual) {\n    virtualProps.listItemHeight = listItemHeight;\n  }\n  return wrapCSSVar(/*#__PURE__*/React.createElement(\"div\", {\n    ref: rootRef,\n    className: wrapperClassNames,\n    style: mergedStyle\n  }, /*#__PURE__*/React.createElement(Spin, Object.assign({\n    spinning: false\n  }, spinProps), topPaginationNode, /*#__PURE__*/React.createElement(TableComponent, Object.assign({}, virtualProps, tableProps, {\n    ref: tblRef,\n    columns: mergedColumns,\n    direction: direction,\n    expandable: mergedExpandable,\n    prefixCls: prefixCls,\n    className: classNames({\n      [`${prefixCls}-middle`]: mergedSize === 'middle',\n      [`${prefixCls}-small`]: mergedSize === 'small',\n      [`${prefixCls}-bordered`]: bordered,\n      [`${prefixCls}-empty`]: rawData.length === 0\n    }, cssVarCls, rootCls, hashId),\n    data: pageData,\n    rowKey: getRowKey,\n    rowClassName: internalRowClassName,\n    emptyText: emptyText,\n    // Internal\n    internalHooks: INTERNAL_HOOKS,\n    internalRefs: internalRefs,\n    transformColumns: transformColumns,\n    getContainerWidth: getContainerWidth\n  })), bottomPaginationNode)));\n};\nexport default /*#__PURE__*/React.forwardRef(InternalTable);","export default function useContainerWidth(prefixCls) {\n  const getContainerWidth = (ele, width) => {\n    const container = ele.querySelector(`.${prefixCls}-container`);\n    let returnWidth = width;\n    if (container) {\n      const style = getComputedStyle(container);\n      const borderLeft = parseInt(style.borderLeftWidth, 10);\n      const borderRight = parseInt(style.borderRightWidth, 10);\n      returnWidth = width - borderLeft - borderRight;\n    }\n    return returnWidth;\n  };\n  return getContainerWidth;\n}","import raf from \"rc-util/es/raf\";\nimport { easeInOutCubic } from './easings';\nimport getScroll, { isWindow } from './getScroll';\nexport default function scrollTo(y) {\n  let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n  const {\n    getContainer = () => window,\n    callback,\n    duration = 450\n  } = options;\n  const container = getContainer();\n  const scrollTop = getScroll(container);\n  const startTime = Date.now();\n  const frameFunc = () => {\n    const timestamp = Date.now();\n    const time = timestamp - startTime;\n    const nextScrollTop = easeInOutCubic(time > duration ? duration : time, scrollTop, y, duration);\n    if (isWindow(container)) {\n      container.scrollTo(window.pageXOffset, nextScrollTop);\n    } else if (container instanceof Document || container.constructor.name === 'HTMLDocument') {\n      container.documentElement.scrollTop = nextScrollTop;\n    } else {\n      container.scrollTop = nextScrollTop;\n    }\n    if (time < duration) {\n      raf(frameFunc);\n    } else if (typeof callback === 'function') {\n      callback();\n    }\n  };\n  raf(frameFunc);\n}","export function easeInOutCubic(t, b, c, d) {\n  const cc = c - b;\n  // biome-ignore lint: it is a common easing function\n  t /= d / 2;\n  if (t < 1) {\n    return cc / 2 * t * t * t + b;\n  }\n  // biome-ignore lint: it is a common easing function\n  return cc / 2 * ((t -= 2) * t * t + 2) + b;\n}","\"use client\";\n\nimport * as React from 'react';\nimport { EXPAND_COLUMN, Summary } from 'rc-table';\nimport Column from './Column';\nimport ColumnGroup from './ColumnGroup';\nimport { SELECTION_ALL, SELECTION_COLUMN, SELECTION_INVERT, SELECTION_NONE } from './hooks/useSelection';\nimport InternalTable from './InternalTable';\nconst Table = (props, ref) => {\n  const renderTimesRef = React.useRef(0);\n  renderTimesRef.current += 1;\n  return /*#__PURE__*/React.createElement(InternalTable, Object.assign({}, props, {\n    ref: ref,\n    _renderTimes: renderTimesRef.current\n  }));\n};\nconst ForwardTable = /*#__PURE__*/React.forwardRef(Table);\nForwardTable.SELECTION_COLUMN = SELECTION_COLUMN;\nForwardTable.EXPAND_COLUMN = EXPAND_COLUMN;\nForwardTable.SELECTION_ALL = SELECTION_ALL;\nForwardTable.SELECTION_INVERT = SELECTION_INVERT;\nForwardTable.SELECTION_NONE = SELECTION_NONE;\nForwardTable.Column = Column;\nForwardTable.ColumnGroup = ColumnGroup;\nForwardTable.Summary = Summary;\nif (process.env.NODE_ENV !== 'production') {\n  ForwardTable.displayName = 'Table';\n}\nexport default ForwardTable;","\"use client\";\n\nimport Table from './Table';\nexport default Table;","import React, { useRef, useEffect, useState } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\nimport \"../../../assets/style/ai-podcast.less\";\nimport { useAudio } from \"../../../contexts/AudioContext\";\nimport { getMMSS } from \"../../../utils\";\nimport { $TaskDigest } from \"jce/qqmusic/lyraPodcast/lyraPodcast.jce?emit=module\";\n\n// 定义组件props接口\ninterface PodcastListProps {\n  /** 是否启用横向滚动布局 */\n  isHorizontal?: boolean;\n  /** 任务列表数据 */\n  taskList?: $TaskDigest[];\n  /** 是否正在加载 */\n  loading?: boolean;\n  /** 是否还有更多数据 */\n  hasMore?: boolean;\n  /** 加载更多数据的回调函数 */\n  onLoadMore?: () => void;\n}\n\n// 任务状态枚举\nenum TASK_STATUS {\n  TASK_STATUS_TEXT_PENDING = 10, // 文本生成等待中\n  TASK_STATUS_TEXT_DONE = 20, // 文本生成完成\n  TASK_STATUS_AUDIO_PENDING = 30, // 音频生成等待中\n  TASK_STATUS_AUDIO_DONE = 40, // 音频生成完成\n}\n\nconst PodcastList: React.FC<PodcastListProps> = ({\n  isHorizontal = false,\n  taskList = [],\n  loading = false,\n  hasMore = false,\n  onLoadMore,\n}) => {\n  const scrollContainerRef = useRef<HTMLDivElement>(null);\n  const { audioState, audioControls } = useAudio();\n  const navigate = useNavigate();\n\n  // 处理卡片点击跳转到AI播客页面\n  const handleCardClick = (taskId: string) => {\n    navigate(`/aipodcast?taskId=${taskId}`);\n  };\n\n  useEffect(() => {\n    const handleScroll = () => {\n      if (!scrollContainerRef.current || isHorizontal || loading || !hasMore || !onLoadMore) return;\n\n      const container = scrollContainerRef.current;\n      const { scrollTop, scrollHeight, clientHeight } = container;\n\n      // 当滚动到距离底部100px时触发加载\n      if (scrollHeight - scrollTop - clientHeight < 100) {\n        onLoadMore();\n      }\n    };\n\n    const container = scrollContainerRef.current;\n    if (container && !isHorizontal) {\n      container.addEventListener(\"scroll\", handleScroll);\n      return () => {\n        container.removeEventListener(\"scroll\", handleScroll);\n      };\n    }\n  }, [isHorizontal, loading, hasMore, onLoadMore]);\n\n  return (\n    <div\n      ref={scrollContainerRef}\n      className={`podcast-list ${isHorizontal ? \"podcast-list-horizontal\" : \"podcast-list-wrap\"}`}\n    >\n      {taskList.map((item) => (\n        <div\n          className=\"podcast-list-item\"\n          key={item.TaskID}\n          onClick={() => handleCardClick(item.TaskID)}\n          style={{ cursor: \"pointer\" }}\n        >\n          <img\n            className=\"podcast-list-item-cover\"\n            src={item.Cover || \"https://y.qq.com/music/common/upload/t_cm3_photo_publish/7114538.png\"}\n            alt=\"\"\n          />\n          <div className=\"podcast-list-item-title\">\n            <p className=\"podcast-list-item-title-text\">{item.Title || \"AI播客深度解读\"}</p>\n            <div className=\"podcast-list-item-operator\">\n              {item.Code !== 0 && <span className=\"podcast-list-item-operator-text fail\">生成失败</span>}\n              {item.Code === 0 && item.Status === TASK_STATUS.TASK_STATUS_AUDIO_DONE && (\n                <>\n                  <span className=\"podcast-list-item-operator-text\">{getMMSS(item.Duration)}</span>\n                  <img\n                    className=\"podcast-list-item-operator-icon\"\n                    src={require(\n                      audioState.audioUrl === item.AudioURL && audioState.isPlaying\n                        ? \"../../../assets/img/podcast-pause.png\"\n                        : \"../../../assets/img/podcast-play.png\",\n                    )}\n                    alt=\"\"\n                    onClick={(e) => {\n                      e.stopPropagation();\n                      if (item.AudioURL) {\n                        // 如果当前播客正在播放，则暂停；否则播放\n                        if (audioState.audioUrl === item.AudioURL && audioState.isPlaying) {\n                          audioControls.pause();\n                        } else {\n                          audioControls.play(item.AudioURL, item.Title);\n                        }\n                      }\n                    }}\n                    style={{ cursor: \"pointer\" }}\n                  />\n                </>\n              )}\n              {item.Code === 0 && item.Status !== TASK_STATUS.TASK_STATUS_AUDIO_DONE && (\n                <>\n                  <span className=\"podcast-list-item-operator-text\">生成中</span>\n                  <img\n                    className=\"podcast-list-item-operator-icon live\"\n                    src={require(\"../../../assets/img/podcast-live.png\")}\n                    alt=\"\"\n                  />\n                </>\n              )}\n            </div>\n          </div>\n        </div>\n      ))}\n      {/* 加载状态指示器 */}\n      {loading && (\n        <div className=\"podcast-list-loading\">\n          <div className=\"loading-spinner\">加载中...</div>\n        </div>\n      )}\n    </div>\n  );\n};\n\nexport default PodcastList;\n","import React, { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport { useNavigate, useLocation } from \"react-router-dom\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport MainLand from \"../components/index/main-land\";\nimport { RootStore, useAppDispatch } from \"../slices\";\nimport { getParameter } from \"@tencent/kg-base\";\nimport { getMyTasks, getMyTimbres } from \"../slices/home\";\nimport { Button, Empty, Form, Input, Modal, Popconfirm, Table, message } from \"antd\";\nimport { duration } from \"html2canvas/dist/types/css/property-descriptors/duration\";\nimport VoiceItem from \"../components/common/VoiceItem\";\nimport \"../assets/style/index.less\";\nimport \"../assets/style/mine.less\";\nimport IconPlay from \"../assets/img/ic-play-mine.png\";\nimport { $TTSTask, $TTSTimbre } from \"jce/qqmusic/tianqin_tts/TTS_Webapp.jce?emit=module\";\nimport { $TaskDigest } from \"jce/qqmusic/lyraPodcast/lyraPodcast.jce?emit=module\";\nimport { downloadFile, getMMSS } from \"../utils\";\nimport icSoundPause from \"../assets/img/ic-mine-sound-play.png\";\nimport icSoundPlay from \"../assets/img/ic-mine-sound-stop.png\";\nimport icPause from \"../assets/img/ic-mine-tts-play.png\";\nimport icPlay from \"../assets/img/ic-mine-tts-pause.png\";\nimport icDownload from \"../assets/img/ic-download-white.png\";\nimport icDownloadBlack from \"../assets/img/ic-download-black-48_48.png\";\nimport { formatDateTime } from \"../util\";\nimport PodcastList from \"../components/common/PodcastList\";\nimport { GetTaskList } from \"../api/main-land\";\nimport { useAudio } from \"../contexts/AudioContext\";\n\nconst MINE_TYPES = [\"我的播客\", \"我创作的音频\", \"我的克隆音色\"];\n\nconst IndexPage = () => {\n  const dispatch = useAppDispatch();\n  const { audioControls } = useAudio(); // 获取全局音频控制\n  const [selectedType, setSelectedType] = useState(0);\n  const [open, setOpen] = useState<boolean>(false);\n  const [selectedTask, setSelectedTask] = useState({} as unknown as $TTSTask);\n  const [isPlaying, setPlaying] = useState<boolean>(false);\n  const isPlayingRef = useRef<boolean>(false);\n  const [isSoundPlaying, setSoundPlaying] = useState<boolean>(false);\n  const [currentDuration, setCurrentDuration] = useState(0);\n  const ttsAudioRef = useRef<any>(null);\n  const soundAudioRef = useRef<any>(null);\n  const myTimbres = useSelector((rootState: RootStore) => rootState?.home?.myTimbres);\n  const checkDetail = useCallback((_, record) => {\n    console.log(\"===\", record);\n    setSelectedTask(record);\n    setOpen(true);\n    if (record?.res_url) {\n      console.log(\"record?.res_url:\", record?.res_url);\n      ttsAudioRef.current = new Audio(record?.res_url);\n      ttsAudioRef.current.preload = \"auto\";\n      ttsAudioRef.current.addEventListener(\"ended\", function () {\n        setPlaying(false);\n        isPlayingRef.current = false;\n      });\n      soundAudioRef.current = new Audio(record?.source_audio_url);\n      soundAudioRef.current.preload = \"auto\";\n      soundAudioRef.current.addEventListener(\"ended\", function () {\n        setSoundPlaying(false);\n      });\n    }\n  }, []);\n  const downloadRowCb = useCallback((_, record) => {\n    downloadFile(record?.res_url);\n  }, []);\n  const selectedTaskDuration = useMemo(() => {\n    return Math.ceil(Number(selectedTask?.duration || 0));\n  }, [selectedTask?.duration]);\n  const myTaskList = useSelector((rootState: RootStore) => {\n    const list = rootState?.home?.myTaskList?.map((item) => {\n      const created_time_fmt = formatDateTime(new Date(item.created_time).getTime(), \"YYYY-MM-DD hh:mm\");\n      const duration_fmt = getMMSS(Math.ceil(Number(item?.duration)));\n      return {\n        ...item,\n        created_time_fmt,\n        duration_fmt,\n      };\n    });\n    // console.log(\"=== list:\", list);\n    return list;\n  });\n  const [dataSource, setDataSource] = useState<any[]>([\n    {\n      duration: \"0\",\n      title: \"Edward King 0\",\n      user_id: \"32\",\n      created_time_fmt: \"London, Park Lane no. 0\",\n    },\n    {\n      duration: \"1\",\n      title: \"Edward King 1\",\n      user_id: \"32\",\n      created_time_fmt: \"London, Park Lane no. 1\",\n    },\n  ]);\n  const columns = [\n    {\n      title: \"标题\",\n      dataIndex: \"title\",\n      key: \"title\",\n    },\n    {\n      title: \"创作时间\",\n      dataIndex: \"created_time_fmt\",\n      key: \"created_time_fmt\",\n    },\n    {\n      title: \"类型\",\n      dataIndex: \"timbre_group\",\n      key: \"timbre_group\",\n    },\n    {\n      title: \"时长\",\n      dataIndex: \"duration_fmt\",\n      key: \"duration_fmt\",\n    },\n    {\n      title: \"音色\",\n      dataIndex: \"timbre_name\",\n      key: \"timbre_name\",\n    },\n    // {\n    //   title: \"创作人\",\n    //   dataIndex: \"TODO\",\n    //   key: \"TODO\",\n    // },\n    {\n      title: \"操作\",\n      dataIndex: \"operation\",\n      key: \"operation\",\n      render: (_: any, record: any) => (\n        <div className=\"flex-row-center\" style={{ justifyContent: \"space-around\" }}>\n          <a style={{ lineHeight: \"22px\", borderBottom: \"1px solid black\" }} onClick={() => checkDetail(_, record)}>\n            查看\n          </a>\n          <a style={{}} onClick={() => downloadRowCb(_, record)}>\n            <div\n              style={{ width: 24, height: 24, backgroundImage: `url(${icDownloadBlack})`, backgroundSize: \"100%\" }}\n            />\n          </a>\n        </div>\n      ),\n    },\n  ];\n  const [aipodcastList, setAipodcastList] = useState<$TaskDigest[]>([]);\n  const [aipodcastLoading, setAipodcastLoading] = useState(false);\n  const [aipodcastHasMore, setAipodcastHasMore] = useState(true);\n  const [aipodcastPassback, setAipodcastPassback] = useState(\"\");\n\n  const getAIPodcastList = async (Passback?: string, isLoadMore = false) => {\n    try {\n      setAipodcastLoading(true);\n      const res = await GetTaskList({ Size: 20, Passback: Passback || \"\" });\n\n      if (res?.data.code === 0 && res?.data?.data?.PageData) {\n        if (isLoadMore) {\n          setAipodcastList((prev) => [...prev, ...res.data.data.PageData]);\n        } else {\n          setAipodcastList(res.data.data.PageData);\n        }\n\n        setAipodcastHasMore(res.data.data.More === 1);\n        setAipodcastPassback(res.data.data.Passback || \"\");\n      }\n    } catch (error) {\n      message.error(\"获取播客列表失败,请重试\");\n    } finally {\n      setAipodcastLoading(false);\n    }\n  };\n\n  const loadMoreAIPodcast = () => {\n    if (!aipodcastLoading && aipodcastHasMore) {\n      getAIPodcastList(aipodcastPassback, true);\n    }\n  };\n\n  const switchTypeCb = (type: number) => {\n    setSelectedType(type);\n    switch (type) {\n      case 0:\n        getAIPodcastList();\n        break;\n      case 1:\n        dispatch(getMyTasks({ userId: \"\" }));\n        break;\n      case 2:\n        dispatch(getMyTimbres({ user_id: \"\" }));\n        break;\n    }\n  };\n\n  const downloadCb = () => {\n    downloadFile(selectedTask?.res_url);\n  };\n\n  const timing = useCallback(\n    (currentDuration: number) => {\n      setCurrentDuration((currentDuration || 0) + 1);\n      setTimeout(() => {\n        console.log(\"===== currentDuration:\", currentDuration);\n        if (selectedTaskDuration > (currentDuration || 0) && isPlayingRef.current) {\n          timing((currentDuration || 0) + 1);\n        }\n      }, 1000);\n    },\n    [selectedTaskDuration],\n  );\n\n  const playSoundCb = useCallback(() => {\n    console.log(\"playSoundCb playing:\", isSoundPlaying);\n    if (isSoundPlaying) {\n      setSoundPlaying(false);\n      soundAudioRef.current.pause();\n    } else {\n      console.log(\"playSoundCb soundAudioRef:\", soundAudioRef);\n      soundAudioRef.current.play().then((res: any) => {\n        console.log(\"play res:\", res);\n        setSoundPlaying(true);\n      });\n    }\n  }, [isSoundPlaying]);\n\n  const playCb = useCallback(() => {\n    console.log(\"playCb playing:\", isPlaying);\n    if (isPlaying) {\n      setPlaying(false);\n      isPlayingRef.current = false;\n      ttsAudioRef.current.pause();\n    } else {\n      console.log(\"playCb ttsAudioRef:\", ttsAudioRef);\n      ttsAudioRef.current.play().then((res: any) => {\n        console.log(\"play res:\", res);\n        isPlayingRef.current = true;\n        timing(currentDuration);\n        setPlaying(true);\n      });\n    }\n  }, [currentDuration, isPlaying, timing]);\n\n  const onChange = (e: any) => {\n    console.log(\"pagination e:\", e);\n  };\n\n  useEffect(() => {\n    // dispatch(getRobotIndex({ lUid: Number(getCookie(\"uid\")) || 1000249 }));\n    // dispatch(getRobotList({ uid: Number(getCookie(\"uid\")) || 1000249 }));\n    // dispatch(getMyTasks({ userId: \"\" }));\n    getAIPodcastList();\n  }, []);\n\n  const cloneList = () => {\n    return (\n      <div className=\"voice-wrapper\">\n        {myTimbres?.length &&\n          ([...myTimbres] as any[])?.map((item, index) => {\n            return <VoiceItem key={item?.timbre_mid} item={item} type=\"MINE\" subType=\"MINE\" />;\n          })}\n      </div>\n    );\n  };\n\n  const soundDetail = () => {\n    return (\n      <Modal\n        width={1127}\n        height={626}\n        styles={{\n          content: {\n            display: \"flex\",\n            flexDirection: \"column\",\n            alignItems: \"center\",\n            justifyItems: \"center\",\n          },\n        }}\n        wrapStyle={{ display: \"flex\", flexDirection: \"column\", alignItems: \"center\", justifyItems: \"center\" }}\n        footer={null}\n        open={open}\n        onCancel={() => setOpen(false)}\n      >\n        <div style={{ display: \"flex\", flexDirection: \"column\", justifyContent: \"center\", alignItems: \"center\" }}>\n          <div style={{ fontSize: 24, fontWeight: 500, marginBottom: 50, marginTop: 23 }}>{selectedTask?.title}</div>\n          <div\n            style={{\n              width: 877,\n              height: 344,\n              border: \"1px solid rgba(0, 0, 0, 0.15)\",\n              borderRadius: 16,\n              marginBottom: 50,\n              display: \"flex\",\n              flexDirection: \"column\",\n            }}\n          >\n            <div\n              style={{\n                color: \"rgba(0, 0, 0, 0.6)\",\n                fontSize: 20,\n                height: \"calc(100% - 80px)\",\n                padding: \"20px 20px 0 20px\",\n                overflow: \"scroll\",\n              }}\n            >\n              {selectedTask?.text}\n            </div>\n            <div\n              style={{\n                width: 837,\n                height: 68,\n                display: \"flex\",\n                flexDirection: \"row\",\n                justifyContent: \"space-around\",\n                alignItems: \"center\",\n                backgroundColor: \"#F1F2F5\",\n                borderRadius: 12,\n                alignSelf: \"center\",\n              }}\n            >\n              <div style={{ fontSize: 16 }}>\n                <span style={{ color: \"#666\" }}>当前音色</span> <span>{selectedTask?.timbre_name}</span>\n              </div>\n              {/* {selectedTask?.source_audio_url ? (\n                <div\n                  style={{\n                    width: 31,\n                    height: 31,\n                    backgroundImage: `url(${isSoundPlaying ? icSoundPlay : icSoundPause})`,\n                    backgroundSize: \"cover\",\n                  }}\n                  onClick={playSoundCb}\n                />\n              ) : null} */}\n            </div>\n          </div>\n          <div style={{ display: \"flex\", flexDirection: \"row\", justifyContent: \"center\", alignItems: \"center\" }}>\n            <div\n              className=\"cusor-pointer\"\n              style={{\n                width: 336,\n                height: 48,\n                fontWeight: 500,\n                fontSize: 14,\n                borderRadius: 100,\n                color: \"#fff\",\n                backgroundImage: \"linear-gradient(180deg, #2F00FF 0%, rgba(92, 34, 255, 0.90) 90.83%, #984EFF 100%)\",\n                marginRight: 20,\n                display: \"flex\",\n                flexDirection: \"row\",\n                justifyContent: \"center\",\n                alignItems: \"center\",\n              }}\n              onClick={playCb}\n            >\n              <div style={{ width: 31, height: 31, marginRight: 10 }} className=\"flex-row-center\">\n                {isPlaying ? <img src={icPlay} width={31} height={31} /> : <img src={icPause} width={24} height={24} />}\n              </div>\n              <span>\n                {getMMSS(Math.min(currentDuration, selectedTaskDuration))}/{getMMSS(Number(selectedTaskDuration))}\n              </span>\n            </div>\n            <div\n              className=\"cusor-pointer\"\n              style={{\n                width: 336,\n                height: 48,\n                fontWeight: 500,\n                fontSize: 14,\n                border: \"1px solid #000\",\n                borderRadius: 100,\n                display: \"flex\",\n                flexDirection: \"row\",\n                justifyContent: \"center\",\n                alignItems: \"center\",\n                backgroundImage: \"linear-gradient(180deg, #2F00FF 0%, rgba(92, 34, 255, 0.90) 90.83%, #984EFF 100%)\",\n                color: \"#fff\",\n              }}\n              onClick={downloadCb}\n            >\n              <div style={{ width: 24, height: 24, marginRight: 10 }}>\n                <img src={icDownload} width={24} height={24} />\n              </div>\n              下载\n            </div>\n          </div>\n        </div>\n      </Modal>\n    );\n  };\n\n  return (\n    <div className=\"ai-container\">\n      <div className=\"wrapper\">\n        <div className=\"main-container mine-main-container\">\n          <div style={{ width: \"100%\", marginTop: \"30px\" }} className=\"mainland-wrapper mine-bg\">\n            <h3 style={{ color: \"#000\", fontSize: 36, fontWeight: 600, marginTop: \"30px\" }}>我的创作</h3>\n            <div style={{ display: \"flex\", flexDirection: \"row\", margin: \"30px 0\" }}>\n              {MINE_TYPES.map((item, index) => {\n                return (\n                  <div\n                    key={index}\n                    className=\"cursor-pointer\"\n                    style={{\n                      padding: \"8px 14px\",\n                      border: \"1px solid #D9D9D9\",\n                      borderRadius: 100,\n                      marginRight: 15,\n                      color: \"rgba(0,0,0,0.6)\",\n                      ...(index === selectedType\n                        ? {\n                            backgroundImage:\n                              \"linear-gradient(180deg, #2F00FF 0%, rgba(92, 34, 255, 0.90) 90.83%, #984EFF 100%)\",\n                            color: \"#fff\",\n                          }\n                        : {}),\n                    }}\n                    onClick={() => switchTypeCb(index)}\n                  >\n                    {item}\n                  </div>\n                );\n              })}\n            </div>\n            {selectedType === 0 && (\n              <PodcastList\n                taskList={aipodcastList}\n                loading={aipodcastLoading}\n                hasMore={aipodcastHasMore}\n                onLoadMore={loadMoreAIPodcast}\n              />\n            )}\n            {selectedType === 1 && (\n              <Table style={{ width: \"96%\" }} columns={columns} dataSource={myTaskList} onChange={onChange} />\n            )}\n            {selectedType === 2 && cloneList()}\n            {soundDetail()}\n          </div>\n        </div>\n      </div>\n    </div>\n  );\n};\n\nexport default IndexPage;\n","// @ts-nocheck\nimport { getParameter } from \"@tencent/kg-base\";\n\nexport function getRobotId() {\n  return parseInt(getParameter(\"robotId\"), 10);\n}\n\nexport function cacheSet(key: string, value: any) {\n  localStorage.setItem(key, JSON.stringify(value));\n}\n\nexport function cacheGet(key: string) {\n  const res = localStorage.getItem(key);\n  return res ? JSON.parse(res) : \"\";\n}\n/**\n * 日期时间格式化\n * @param  {[type]} millisecond [description]\n * @param  {[type]} format      [description]\n * @return {[type]}             [description]\n */\nexport function formatDateTime(millisecond: number, format: string) {\n  if (!millisecond) return \"\";\n  if (millisecond.toString().length === 10) {\n    // eslint-disable-next-line no-param-reassign\n    millisecond = millisecond * 1000;\n  }\n  let thisTime = new Date(millisecond);\n  let o = {\n    \"M+\": thisTime.getMonth() + 1, // 月份\n    \"D+\": thisTime.getDate(), // 日\n    \"h+\": thisTime.getHours(), // 小时\n    \"m+\": thisTime.getMinutes(), // 分\n    \"s+\": thisTime.getSeconds(), // 秒\n    \"q+\": Math.floor((thisTime.getMonth() + 3) / 3), // 季度\n    S: thisTime.getMilliseconds(), // 毫秒\n  };\n  if (/(Y+)/.test(format)) {\n    // eslint-disable-next-line no-param-reassign\n    format = format.replace(RegExp.$1, String(thisTime.getFullYear()).substr(4 - RegExp.$1.length));\n  }\n  for (let k in o)\n    if (new RegExp(\"(\" + k + \")\").test(format)) {\n      // eslint-disable-next-line no-param-reassign\n      format = format.replace(RegExp.$1, RegExp.$1.length === 1 ? o[k] : (\"00\" + o[k]).substr(String(o[k]).length));\n    }\n  return format;\n}\n","import React, { useCallback, useState } from \"react\";\nimport { ParseContent, SubmitTask } from \"../../../api/main-land\";\nimport { message } from \"antd\";\n\nenum CONTENT_TYPE {\n  \"CONTENT_TYPE_SONG\" = 1,\n  \"CONTENT_TYPE_ALBUM\" = 2,\n  \"CONTENT_TYPE_SONG_LIST\" = 3,\n}\n\nconst CONTENT_TYPE_MAP = {\n  [CONTENT_TYPE.CONTENT_TYPE_SONG]: \"歌曲\",\n  [CONTENT_TYPE.CONTENT_TYPE_ALBUM]: \"专辑\",\n  [CONTENT_TYPE.CONTENT_TYPE_SONG_LIST]: \"歌单\",\n};\n\n// interface SelectOption {\n//   value: string;\n//   label: string;\n//   isPlaceholder?: boolean;\n// }\n\n// interface ModeSelectProps {\n//   options: SelectOption[];\n//   value?: string;\n//   onChange?: (value: string) => void;\n//   placeholder?: string;\n// }\n\n// const ModeSelect: React.FC<ModeSelectProps> = ({\n//   options = [],\n//   value,\n//   onChange,\n//   placeholder = \"请选择\"\n// }) => {\n//   // 下拉菜单开关状态\n//   const [isOpen, setIsOpen] = useState(false);\n//   // 选择器容器引用\n//   const selectRef = useRef<HTMLDivElement>(null);\n\n//   // 处理选项点击\n//   const handleOptionClick = (option: SelectOption) => {\n//     if (!option.isPlaceholder) {\n//       onChange?.(option.value);\n//     }\n//     setIsOpen(false);\n//   };\n\n//   // 处理选择器点击\n//   const handleSelectClick = () => {\n//     setIsOpen(!isOpen);\n//   };\n\n//   // 获取当前显示的文本\n//   const getCurrentLabel = () => {\n//     if (!value) return placeholder;\n//     const currentOption = options.find(option => option.value === value);\n//     return currentOption?.label || placeholder;\n//   };\n\n//   // 点击外部关闭下拉菜单\n//   useEffect(() => {\n//     const handleClickOutside = (event: MouseEvent) => {\n//       if (selectRef.current && !selectRef.current.contains(event.target as Node)) {\n//         setIsOpen(false);\n//       }\n//     };\n\n//     document.addEventListener('mousedown', handleClickOutside);\n//     return () => {\n//       document.removeEventListener('mousedown', handleClickOutside);\n//     };\n//   }, []);\n\n//   return (\n//     <div className=\"mode-select\" ref={selectRef}>\n//       <div\n//         className={`mode-select-trigger ${isOpen ? 'active' : ''} ${!value ? 'placeholder' : ''}`}\n//         onClick={handleSelectClick}\n//       >\n//         <span className=\"mode-select-text\">{getCurrentLabel()}</span>\n//         <img className={`mode-select-arrow ${isOpen ? 'up' : 'down'}`} src={require(\"../../../assets/img/ic-arrow-down.png\")} alt=\"\" />\n//       </div>\n\n//       {isOpen && (\n//         <div className=\"mode-select-dropdown\">\n//           {options.map((option, index) => (\n//             <div\n//               key={index}\n//               className={`mode-select-option ${option.isPlaceholder\n//                   ? 'placeholder-option'\n//                   : option.value === value\n//                     ? 'selected'\n//                     : ''\n//                 }`}\n//               onClick={() => handleOptionClick(option)}\n//             >\n//               {option.label}\n//             </div>\n//           ))}\n//         </div>\n//       )}\n//     </div>\n//   );\n// };\n// const modeOptions: SelectOption[] = [\n//   { value: \"\", label: \"选择风格\", isPlaceholder: true },\n//   { value: \"professional\", label: \"辛辣锐评\" },\n//   { value: \"detailed\", label: \"专业音乐人\" },\n//   { value: \"simple\", label: \"粉丝打CALL\" },\n// ];\n\n// const secondModeOptions: SelectOption[] = [\n//   { value: \"\", label: \"选择音色\", isPlaceholder: true },\n//   { value: \"warm\", label: \"双人对话\" },\n//   { value: \"cool\", label: \"单人男声\" },\n//   { value: \"dynamic\", label: \"单人女声\" },\n// ];\n\ninterface PodcastInputProps {\n  taskID: string;\n  onSubmit: (taskID: string) => void;\n}\n\nconst PodcastInput: React.FC<PodcastInputProps> = ({ taskID, onSubmit }) => {\n  const [link, setLink] = useState(\"\");\n  const [type, setType] = useState(CONTENT_TYPE.CONTENT_TYPE_SONG);\n  const [name, setName] = useState(\"\");\n  const [contentID, setContentID] = useState(\"\");\n  const [isMusicAnalyse, setIsMusicAnalyse] = useState(true);\n\n  const parseUrl = useCallback(() => {\n    if (link.trim()) {\n      ParseContent({\n        Input: link,\n      })\n        .then((res) => {\n          if (res.data.code === 0) {\n            setType(res.data.data.Type);\n            setName(res.data.data.Name);\n            setContentID(res.data.data.ContentID);\n          } else {\n            message.error(\"无法解析，请更换QQ音乐链接URL\");\n          }\n        })\n        .catch(() => {\n          message.error(\"无法解析，请更换QQ音乐链接URL\");\n        });\n    }\n  }, [link]);\n\n  const handleLinkChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n    setLink(e.target.value.trim());\n  };\n\n  // 处理失焦事件\n  const handleBlur = () => {\n    parseUrl();\n  };\n\n  // 处理回车键事件\n  const handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n    if (e.key === \"Enter\") {\n      parseUrl();\n    }\n  };\n\n  const clearContent = () => {\n    setLink(\"\");\n    setName(\"\");\n    setContentID(\"\");\n  };\n\n  const submitTask = () => {\n    SubmitTask({\n      ContentID: contentID,\n    })\n      .then((res) => {\n        if (res.data.code === 0) {\n          onSubmit(res.data.data.TaskID);\n        } else {\n          message.error(\"提交任务失败,请重试\");\n        }\n      })\n      .catch((err) => {\n        message.error(\"提交任务失败,请重试\");\n      });\n  };\n\n  return (\n    <div className=\"aipodcast-input-box\">\n      {isMusicAnalyse ? (\n        contentID ? (\n          <div className=\"aipodcast-link-result\">\n            <img className=\"aipodcast-link-icon\" src={require(\"../../../assets/img/qqmusic-logo.png\")} alt=\"\" />\n            <div className=\"aipodcast-link-result-text\">\n              <span>{CONTENT_TYPE_MAP[type]}</span>\n              <span className=\"dark\">{name}</span>\n            </div>\n            <img\n              className=\"aipodcast-close-icon\"\n              src={require(\"../../../assets/img/podcast-close.png\")}\n              onClick={() => clearContent()}\n              alt=\"\"\n            />\n          </div>\n        ) : (\n          <div className=\"aipodcast-link\">\n            <img className=\"aipodcast-link-icon\" src={require(\"../../../assets/img/qqmusic-link.png\")} alt=\"\" />\n            <input\n              className=\"aipodcast-link-input\"\n              type=\"text\"\n              placeholder=\"粘贴QQ音乐歌曲或专辑分享链接，开始创作你的音乐播客\"\n              value={link}\n              onChange={handleLinkChange}\n              onBlur={handleBlur}\n              onKeyDown={handleKeyDown}\n            />\n          </div>\n        )\n      ) : (\n        <div className=\"aipodcast-textarea\">\n          <textarea className=\"aipodcast-textarea-input\" placeholder=\"请输入你的解读内容\" rows={3} />\n        </div>\n      )}\n\n      <div className=\"aipodcast-operator\">\n        <div className=\"operator-left\">\n          {/* <div className={`music-analyse ${isMusicAnalyse ? \"active\" : \"\"}`} onClick={() => setIsMusicAnalyse(true)}>\n            音乐解读模式\n          </div> */}\n          {/* <ModeSelect \n                options={modeOptions}\n                value={mode}\n                onChange={handleModeChange}\n                placeholder=\"选择风格\"\n              />\n              <ModeSelect \n                options={secondModeOptions}\n                value={secondMode}\n                onChange={handleSecondModeChange}\n                placeholder=\"选择音色\"\n              /> */}\n          {contentID ? (\n            <div className=\"content-info\">\n              <img src={require(\"../../../assets/img/right.png\")} alt=\"\" />\n              <span>已解析音乐链接</span>\n            </div>\n          ) : null}\n        </div>\n        <div className=\"submit-btn\">\n          {contentID ? (\n            <img src={require(\"../../../assets/img/podcast-send-light.png\")} alt=\"\" onClick={() => submitTask()} />\n          ) : (\n            <img className=\"submit-btn-disabled\" src={require(\"../../../assets/img/podcast-send-gray.png\")} alt=\"\" />\n          )}\n        </div>\n      </div>\n    </div>\n  );\n};\n\nexport default PodcastInput;\n","import React, { useCallback, useEffect, useRef, useState } from \"react\";\nimport { useLocation, useNavigate } from \"react-router-dom\";\nimport \"../assets/style/ai-podcast.less\";\nimport PodcastInput from \"../components/common/PodcastInput\";\nimport { QueryTaskStatus, GetTaskDetail, GetTaskList } from \"../api/main-land\";\nimport { useAudio } from \"../contexts/AudioContext\";\nimport { message } from \"antd\";\nimport { $TaskInfo } from \"jce/qqmusic/lyraPodcast/lyraPodcast.jce?emit=module\";\nimport { getMMSS } from \"../utils\";\n\nenum PageStatus {\n  DEFAULT = \"default\",\n  LOADING = \"loading\",\n  RESULT = \"result\",\n}\n\n// 任务状态枚举\nenum TASK_STATUS {\n  TASK_STATUS_TEXT_PENDING = 10, // 文本生成等待中\n  TASK_STATUS_TEXT_DONE = 20, // 文本生成完成\n  TASK_STATUS_AUDIO_PENDING = 30, // 音频生成等待中\n  TASK_STATUS_AUDIO_DONE = 40, // 音频生成完成\n}\n\nconst AIPodcast = () => {\n  const location = useLocation();\n  const navigate = useNavigate();\n  const [pageStatus, setPageStatus] = useState(\"\");\n  const [taskID, setTaskID] = useState(\"\");\n  const [taskInfo, setTaskInfo] = useState<$TaskInfo | null>(null);\n  const [waitingTime, setWaitingTime] = useState<number>(0);\n  const pollingTimerRef = useRef<NodeJS.Timeout | null>(null);\n  const { audioState, audioControls } = useAudio();\n  const [isDownloading, setIsDownloading] = useState<boolean>(false);\n\n  const checkGeneratingTasks = async () => {\n    try {\n      const res = await GetTaskList({ Size: 10, Passback: \"\" });\n\n      if (res?.data.code === 0 && res?.data?.data?.PageData) {\n        const hasGenerating = res.data.data.PageData.some(\n          (item: any) => item.Code === 0 && item.Done === 0 && item.Status !== TASK_STATUS.TASK_STATUS_AUDIO_DONE,\n        );\n        if (hasGenerating) {\n          message.info(\"正在生成中的播客任务已保存至「我的创作」\");\n        }\n      }\n    } catch (error) {\n      console.error(\"检查生成中任务失败:\", error);\n    }\n  };\n\n  const startPolling = useCallback((taskId: string) => {\n    if (pollingTimerRef.current) {\n      clearTimeout(pollingTimerRef.current);\n    }\n\n    const pollTaskStatus = async (currentInterval = 1000) => {\n      try {\n        const res = await QueryTaskStatus({\n          TaskID: taskId,\n        });\n\n        if (res.data.code === 0 && res.data.data.TaskInfo) {\n          const taskInfo = res.data.data.TaskInfo;\n          setTaskInfo(taskInfo);\n\n          // 更新轮询间隔\n          const newInterval = res.data.data.PollingMs || currentInterval;\n\n          // 更新剩余等待时间\n          if (res.data.data.WaitingTime) {\n            setWaitingTime(Math.floor(res.data.data.WaitingTime / 60));\n          }\n\n          if (taskInfo.Digest?.Status === TASK_STATUS.TASK_STATUS_AUDIO_PENDING) {\n            setPageStatus(PageStatus.RESULT);\n          }\n\n          // 检查任务是否失败\n          if (taskInfo.Digest?.Done === 1 && taskInfo.Digest.Code !== 0) {\n            setPageStatus(PageStatus.RESULT);\n            message.error(taskInfo.Digest.Code === -10034 ? \"内容异常，无法获取\" : \"执行失败, 无法获取音频资源\");\n\n            if (pollingTimerRef.current) {\n              clearTimeout(pollingTimerRef.current);\n              pollingTimerRef.current = null;\n            }\n            return;\n          }\n\n          // 检查任务是否完成\n          if (taskInfo.Digest?.Done === 1 && taskInfo.Digest?.Code === 0) {\n            setPageStatus(PageStatus.RESULT);\n\n            if (pollingTimerRef.current) {\n              clearTimeout(pollingTimerRef.current);\n              pollingTimerRef.current = null;\n            }\n            return;\n          }\n\n          pollingTimerRef.current = setTimeout(() => pollTaskStatus(newInterval), newInterval);\n        } else {\n          pollingTimerRef.current = setTimeout(() => pollTaskStatus(currentInterval), 2000);\n        }\n      } catch (error) {\n        pollingTimerRef.current = setTimeout(() => pollTaskStatus(currentInterval), 2000);\n      }\n    };\n\n    pollTaskStatus();\n  }, []);\n\n  const handleTaskSubmit = (id: string) => {\n    setTaskID(id);\n    setPageStatus(PageStatus.LOADING);\n    startPolling(id);\n  };\n\n  const downloadFile = async (audioURL: string, title: string) => {\n    if (isDownloading) {\n      message.warning(\"文件正在下载中，请稍候...\");\n      return;\n    }\n\n    try {\n      setIsDownloading(true);\n\n      message.loading(\"正在下载文件...\", 0);\n\n      // 使用fetch获取音频文件\n      const response = await fetch(audioURL);\n      if (!response.ok) {\n        throw new Error(\"网络请求失败\");\n      }\n\n      // 获取音频数据\n      const audioBlob = await response.blob();\n\n      // 创建下载链接\n      const url = window.URL.createObjectURL(audioBlob);\n      const link = document.createElement(\"a\");\n      link.href = url;\n      link.download = `${title}.mp3`;\n\n      // 触发下载\n      document.body.appendChild(link);\n      link.click();\n\n      // 清理\n      document.body.removeChild(link);\n      window.URL.revokeObjectURL(url);\n\n      message.destroy();\n      message.success(\"下载成功\");\n    } catch (error) {\n      message.destroy();\n      console.error(\"下载失败:\", error);\n      message.error(\"下载失败，请稍后重试\");\n    } finally {\n      setIsDownloading(false);\n    }\n  };\n\n  const initTask = () => {\n    setPageStatus(PageStatus.DEFAULT);\n    setTaskID(\"\");\n    setTaskInfo(null);\n    audioControls.reset();\n\n    const url = new URL(window.location.href);\n    url.searchParams.delete(\"taskId\");\n    navigate(\"/aipodcast\", { replace: true });\n  };\n\n  useEffect(() => {\n    const searchParams = new URLSearchParams(location.search);\n    const urlTaskID = searchParams.get(\"taskId\");\n    if (urlTaskID) {\n      setTaskID(urlTaskID);\n      GetTaskDetail({ TaskID: urlTaskID })\n        .then((res) => {\n          if (res.data.code === 0 && res.data.data.Info) {\n            const taskInfo = res.data.data.Info;\n            setTaskInfo(taskInfo);\n            if (taskInfo.Digest?.Status >= TASK_STATUS.TASK_STATUS_TEXT_DONE) {\n              setPageStatus(PageStatus.RESULT);\n            } else {\n              setPageStatus(PageStatus.LOADING);\n            }\n            if (taskInfo.Digest?.Done === 1 && taskInfo.Digest.Code !== 0) {\n              message.error(taskInfo.Digest.Code === -10034 ? \"内容异常，无法获取\" : \"执行失败, 无法获取音频资源\");\n            }\n            if (taskInfo.Digest?.Done === 0) {\n              startPolling(urlTaskID);\n            }\n          }\n        })\n        .catch(() => {\n          message.error(\"获取任务详情失败\");\n          // 返回上一页\n          navigate(-1);\n        });\n    } else {\n      setPageStatus(PageStatus.DEFAULT);\n      checkGeneratingTasks();\n    }\n  }, [location.search]);\n\n  useEffect(() => {\n    return () => {\n      if (pollingTimerRef.current) {\n        clearTimeout(pollingTimerRef.current);\n      }\n    };\n  }, []);\n\n  const renderLoading = () => {\n    const status = taskInfo?.Digest?.Status;\n    return (\n      <div className=\"aipodcast-content\">\n        <div className=\"aipodcast-loading\">\n          <div className=\"video-container\">\n            <video\n              autoPlay\n              muted\n              loop\n              playsInline\n              style={{\n                width: \"900px\",\n                height: \"112px\",\n                marginBottom: \"50px\",\n                // 修复Edge浏览器黑色折线问题\n                objectFit: \"contain\",\n                backgroundColor: \"transparent\",\n                border: \"none\",\n                outline: \"none\",\n                // 强制硬件加速，避免Edge浏览器渲染问题\n                transform: \"translateZ(0)\",\n                WebkitTransform: \"translateZ(0)\",\n                // 确保视频元素在Edge中正确显示\n                display: \"block\",\n                maxWidth: \"100%\",\n                // 移除所有可能的边框和阴影\n                boxShadow: \"none\",\n                WebkitBoxShadow: \"none\",\n                MozBoxShadow: \"none\",\n                // 确保没有滚动条\n                overflow: \"hidden\",\n                // 防止右侧出现黑线\n                clipPath: \"inset(0 0 0 0)\",\n                WebkitClipPath: \"inset(0 0 0 0)\",\n                // 使用clip属性确保视频完全裁剪到指定区域\n                clip: \"rect(0px, 900px, 112px, 0px)\",\n                // 确保视频元素不会超出容器\n                position: \"relative\",\n                zIndex: 1,\n              }}\n            >\n              <source src=\"https://lyralabs.qq.com/tts/loading.mp4\" type=\"video/mp4\" />\n              您的浏览器不支持视频播放\n            </video>\n          </div>\n          <span className=\"loading-text-bold\">正在生成播客内容，预计等待{waitingTime}分钟</span>\n          <p className=\"loading-text\">\n            你可以探索网站其他内容，当前生成进度会自动保留在「我的创作」中查看，或者\n            <span className=\"high-light\" onClick={() => initTask()}>\n              再创作一个\n            </span>\n          </p>\n        </div>\n      </div>\n    );\n  };\n\n  const renderResult = () => {\n    const title = taskInfo?.Digest?.Title || \"\";\n    const audioURL = taskInfo?.Digest?.AudioURL;\n    const cover = taskInfo?.Digest?.Cover;\n    const duration = taskInfo?.Digest?.Duration || 0;\n    const script = taskInfo?.Script;\n    const code = taskInfo?.Digest?.Code;\n    const done = taskInfo?.Digest?.Done;\n\n    return (\n      <div className=\"aipodcast-result\">\n        <div className=\"aipodcast-result__cover\">\n          <img src={cover || \"https://y.qq.com/music/common/upload/t_cm3_photo_publish/7114538.png\"} alt=\"封面\" />\n        </div>\n        <div className=\"aipodcast-result__title\">{title}</div>\n        <div className=\"aipodcast-result__btns\">\n          {audioURL ? (\n            <>\n              <div\n                className=\"aipodcast-result__btn\"\n                onClick={() => {\n                  if (audioState.audioUrl === audioURL && audioState.isPlaying) {\n                    audioControls.pause();\n                  } else {\n                    audioControls.play(audioURL, title);\n                  }\n                }}\n              >\n                <img\n                  src={require(\n                    audioState.audioUrl === audioURL && audioState.isPlaying\n                      ? \"../assets/img/pause-white.png\"\n                      : \"../assets/img/play-white.png\",\n                  )}\n                  alt=\"\"\n                />\n                <span>\n                  {audioState.audioUrl === audioURL && audioState.currentTime\n                    ? `${Math.floor(audioState.currentTime / 60)\n                        .toString()\n                        .padStart(2, \"0\")}:${Math.floor(audioState.currentTime % 60)\n                        .toString()\n                        .padStart(2, \"0\")}`\n                    : getMMSS(duration)}\n                </span>\n              </div>\n              <div className=\"aipodcast-result__btn\" onClick={() => downloadFile(audioURL, title)}>\n                下载\n              </div>\n            </>\n          ) : (\n            <>\n              {done === 0 && (\n                <div className=\"aipodcast-result__btn\">\n                  <img\n                    src={require(\"../assets/img/live-white.png\")}\n                    alt=\"\"\n                    style={{ width: 32, height: 32, marginRight: 5 }}\n                  />\n                  <span>播客生成中</span>\n                </div>\n              )}\n              {done === 1 && code !== 0 && (\n                <>\n                  <div className=\"aipodcast-result__btn disabled\">\n                    <span>生成失败</span>\n                  </div>\n                  <div className=\"aipodcast-result__btn\" onClick={() => initTask()}>\n                    <span>重试</span>\n                  </div>\n                </>\n              )}\n            </>\n          )}\n        </div>\n        {/* <div className=\"aipodcast-result__tabs\">\n          <div className=\"aipodcast-result__tab\">大纲</div>\n          <div className=\"aipodcast-result__tab active\">脚本</div>\n        </div> */}\n        <div className=\"aipodcast-result__content\">\n          {script ? (\n            <>\n              <p className=\"from-ai\">以下播客脚本内容由AI生成</p>\n              {script.split(\"\\n\").map((item: string, index: number) => (\n                <p key={index}>{item}</p>\n              ))}\n            </>\n          ) : (\n            <div className=\"aipodcast-result__content-empty\">无法获取内容</div>\n          )}\n        </div>\n      </div>\n    );\n  };\n\n  return (\n    <div className=\"ai-container\">\n      <div className=\"wrapper\">\n        <div className=\"main-container\">\n          <div className=\"aipodcast-container\">\n            {pageStatus === PageStatus.DEFAULT && (\n              <div className=\"aipodcast-content\">\n                <div className=\"aipodcast-introduction\">\n                  <img className=\"aipodcast-slogan\" src={require(\"../assets/img/podcast-slogan.png\")} alt=\"\" />\n                  <img className=\"aipodcast-spectrum\" src={require(\"../assets/img/podcast-spectrum.png\")} alt=\"\" />\n                </div>\n                <PodcastInput taskID={taskID} onSubmit={handleTaskSubmit} />\n              </div>\n            )}\n            {pageStatus === PageStatus.LOADING && <>{renderLoading()}</>}\n            {pageStatus === PageStatus.RESULT && <>{renderResult()}</>}\n          </div>\n        </div>\n      </div>\n    </div>\n  );\n};\n\nexport default AIPodcast;\n","import IndexPage from \"./pages/IndexPage\";\nimport Login from \"./pages/Login\";\nimport SoundClone from \"./pages/SoundClone\";\nimport Mine from \"./pages/Mine\";\nimport AIPodcast from \"./pages/AIPodcast\";\n\nconst routes = [\n  {\n    path: \"/\",\n    component: IndexPage,\n    name: \"文本转语音\",\n    engname: \"tts\",\n    isNav: true,\n  },\n  {\n    path: \"/clone\",\n    component: SoundClone,\n    name: \"声音克隆\",\n    engname: \"clone\",\n    isNav: true,\n  },\n  {\n    path: \"/search\",\n    component: IndexPage,\n    name: \"音色搜索\",\n    isNav: false,\n  },\n  {\n    path: \"/aipodcast\",\n    component: AIPodcast,\n    name: \"AI播客\",\n    engname: \"aipodcast\",\n    isNav: true,\n  },\n  {\n    path: \"/mine\",\n    component: Mine,\n    engname: \"mine\",\n    name: \"我的创作\",\n    isNav: true,\n  },\n  {\n    path: \"/login\",\n    component: Login,\n    name: \"登录\",\n    isNav: false,\n  },\n];\n\nexport default routes;\n","module.exports = \"data:image/png;base64,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\"","var locale = {\n  // Options\n  items_per_page: '/ page',\n  jump_to: 'Go to',\n  jump_to_confirm: 'confirm',\n  page: 'Page',\n  // Pagination\n  prev_page: 'Previous Page',\n  next_page: 'Next Page',\n  prev_5: 'Previous 5 Pages',\n  next_5: 'Next 5 Pages',\n  prev_3: 'Previous 3 Pages',\n  next_3: 'Next 3 Pages',\n  page_size: 'Page Size'\n};\nexport default locale;","import * as React from 'react';\nexport const defaultPrefixCls = 'ant';\nexport const defaultIconPrefixCls = 'anticon';\nexport const Variants = ['outlined', 'borderless', 'filled'];\nconst defaultGetPrefixCls = (suffixCls, customizePrefixCls) => {\n  if (customizePrefixCls) {\n    return customizePrefixCls;\n  }\n  return suffixCls ? `${defaultPrefixCls}-${suffixCls}` : defaultPrefixCls;\n};\n// zombieJ: 🚨 Do not pass `defaultRenderEmpty` here since it will cause circular dependency.\nexport const ConfigContext = /*#__PURE__*/React.createContext({\n  // We provide a default function for Context without provider\n  getPrefixCls: defaultGetPrefixCls,\n  iconPrefixCls: defaultIconPrefixCls\n});\nexport const {\n  Consumer: ConfigConsumer\n} = ConfigContext;","import React from 'react';\nconst zIndexContext = /*#__PURE__*/React.createContext(undefined);\nif (process.env.NODE_ENV !== 'production') {\n  zIndexContext.displayName = 'zIndexContext';\n}\nexport default zIndexContext;","// This icon file is generated automatically.\nvar ExclamationCircleFilled = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm-32 232c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v272c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V296zm32 440a48.01 48.01 0 010-96 48.01 48.01 0 010 96z\" } }] }, \"name\": \"exclamation-circle\", \"theme\": \"filled\" };\nexport default ExclamationCircleFilled;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport ExclamationCircleFilledSvg from \"@ant-design/icons-svg/es/asn/ExclamationCircleFilled\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar ExclamationCircleFilled = function ExclamationCircleFilled(props, ref) {\n  return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n    ref: ref,\n    icon: ExclamationCircleFilledSvg\n  }));\n};\n\n/**![exclamation-circle](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0tMzIgMjMyYzAtNC40IDMuNi04IDgtOGg0OGM0LjQgMCA4IDMuNiA4IDh2MjcyYzAgNC40LTMuNiA4LTggOGgtNDhjLTQuNCAwLTgtMy42LTgtOFYyOTZ6bTMyIDQ0MGE0OC4wMSA0OC4wMSAwIDAxMC05NiA0OC4wMSA0OC4wMSAwIDAxMCA5NnoiIC8+PC9zdmc+) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(ExclamationCircleFilled);\nif (process.env.NODE_ENV !== 'production') {\n  RefIcon.displayName = 'ExclamationCircleFilled';\n}\nexport default RefIcon;","/*\n * $Id: base64.js,v 2.15 2014/04/05 12:58:57 dankogai Exp dankogai $\n *\n *  Licensed under the BSD 3-Clause License.\n *    http://opensource.org/licenses/BSD-3-Clause\n *\n *  References:\n *    http://en.wikipedia.org/wiki/Base64\n */\n\nvar Base64 = (function(global) {\n  global = global || {};\n  'use strict';\n  // existing version for noConflict()\n  var _Base64 = global.Base64;\n  var version = \"2.1.9\";\n  // if node.js, we use Buffer\n  var buffer;\n  // constants\n  var b64chars\n      = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n  var b64tab = function(bin) {\n      var t = {};\n      for (var i = 0, l = bin.length; i < l; i++) t[bin.charAt(i)] = i;\n      return t;\n  }(b64chars);\n  var fromCharCode = String.fromCharCode;\n  // encoder stuff\n  var cb_utob = function(c) {\n      if (c.length < 2) {\n          var cc = c.charCodeAt(0);\n          return cc < 0x80 ? c\n              : cc < 0x800 ? (fromCharCode(0xc0 | (cc >>> 6))\n                              + fromCharCode(0x80 | (cc & 0x3f)))\n              : (fromCharCode(0xe0 | ((cc >>> 12) & 0x0f))\n                 + fromCharCode(0x80 | ((cc >>>  6) & 0x3f))\n                 + fromCharCode(0x80 | ( cc         & 0x3f)));\n      } else {\n          var cc = 0x10000\n              + (c.charCodeAt(0) - 0xD800) * 0x400\n              + (c.charCodeAt(1) - 0xDC00);\n          return (fromCharCode(0xf0 | ((cc >>> 18) & 0x07))\n                  + fromCharCode(0x80 | ((cc >>> 12) & 0x3f))\n                  + fromCharCode(0x80 | ((cc >>>  6) & 0x3f))\n                  + fromCharCode(0x80 | ( cc         & 0x3f)));\n      }\n  };\n  var re_utob = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFFF]|[^\\x00-\\x7F]/g;\n  var utob = function(u) {\n      return u.replace(re_utob, cb_utob);\n  };\n  var cb_encode = function(ccc) {\n      var padlen = [0, 2, 1][ccc.length % 3],\n      ord = ccc.charCodeAt(0) << 16\n          | ((ccc.length > 1 ? ccc.charCodeAt(1) : 0) << 8)\n          | ((ccc.length > 2 ? ccc.charCodeAt(2) : 0)),\n      chars = [\n          b64chars.charAt( ord >>> 18),\n          b64chars.charAt((ord >>> 12) & 63),\n          padlen >= 2 ? '=' : b64chars.charAt((ord >>> 6) & 63),\n          padlen >= 1 ? '=' : b64chars.charAt(ord & 63)\n      ];\n      return chars.join('');\n  };\n  var btoa = global.btoa ? function(b) {\n      return global.btoa(b);\n  } : function(b) {\n      return b.replace(/[\\s\\S]{1,3}/g, cb_encode);\n  };\n  var _encode = buffer ? function (u) {\n      return (u.constructor === buffer.constructor ? u : new buffer(u))\n      .toString('base64')\n  }\n  : function (u) { return btoa(utob(u)) }\n  ;\n  var encode = function(u, urisafe) {\n      return !urisafe\n          ? _encode(String(u))\n          : _encode(String(u)).replace(/[+\\/]/g, function(m0) {\n              return m0 == '+' ? '-' : '_';\n          }).replace(/=/g, '');\n  };\n  var encodeURI = function(u) { return encode(u, true) };\n  // decoder stuff\n  var re_btou = new RegExp([\n      '[\\xC0-\\xDF][\\x80-\\xBF]',\n      '[\\xE0-\\xEF][\\x80-\\xBF]{2}',\n      '[\\xF0-\\xF7][\\x80-\\xBF]{3}'\n  ].join('|'), 'g');\n  var cb_btou = function(cccc) {\n      switch(cccc.length) {\n      case 4:\n          var cp = ((0x07 & cccc.charCodeAt(0)) << 18)\n              |    ((0x3f & cccc.charCodeAt(1)) << 12)\n              |    ((0x3f & cccc.charCodeAt(2)) <<  6)\n              |     (0x3f & cccc.charCodeAt(3)),\n          offset = cp - 0x10000;\n          return (fromCharCode((offset  >>> 10) + 0xD800)\n                  + fromCharCode((offset & 0x3FF) + 0xDC00));\n      case 3:\n          return fromCharCode(\n              ((0x0f & cccc.charCodeAt(0)) << 12)\n                  | ((0x3f & cccc.charCodeAt(1)) << 6)\n                  |  (0x3f & cccc.charCodeAt(2))\n          );\n      default:\n          return  fromCharCode(\n              ((0x1f & cccc.charCodeAt(0)) << 6)\n                  |  (0x3f & cccc.charCodeAt(1))\n          );\n      }\n  };\n  var btou = function(b) {\n      return b.replace(re_btou, cb_btou);\n  };\n  var cb_decode = function(cccc) {\n      var len = cccc.length,\n      padlen = len % 4,\n      n = (len > 0 ? b64tab[cccc.charAt(0)] << 18 : 0)\n          | (len > 1 ? b64tab[cccc.charAt(1)] << 12 : 0)\n          | (len > 2 ? b64tab[cccc.charAt(2)] <<  6 : 0)\n          | (len > 3 ? b64tab[cccc.charAt(3)]       : 0),\n      chars = [\n          fromCharCode( n >>> 16),\n          fromCharCode((n >>>  8) & 0xff),\n          fromCharCode( n         & 0xff)\n      ];\n      chars.length -= [0, 0, 2, 1][padlen];\n      return chars.join('');\n  };\n  var atob = global.atob ? function(a) {\n      return global.atob(a);\n  } : function(a){\n      return a.replace(/[\\s\\S]{1,4}/g, cb_decode);\n  };\n  var _decode = buffer ? function(a) {\n      return (a.constructor === buffer.constructor\n              ? a : new buffer(a, 'base64')).toString();\n  }\n  : function(a) { return btou(atob(a)) };\n  var decode = function(a){\n      return _decode(\n          String(a).replace(/[-_]/g, function(m0) { return m0 == '-' ? '+' : '/' })\n              .replace(/[^A-Za-z0-9\\+\\/]/g, '')\n      );\n  };\n  var noConflict = function() {\n      var Base64 = global.Base64;\n      global.Base64 = _Base64;\n      return Base64;\n  };\n  // export Base64\n  var Base64 = {\n      VERSION: version,\n      atob: atob,\n      btoa: btoa,\n      fromBase64: decode,\n      toBase64: encode,\n      utob: utob,\n      encode: encode,\n      encodeURI: encodeURI,\n      btou: btou,\n      decode: decode,\n      noConflict: noConflict\n  };\n  return Base64;\n})();\n\nmodule.exports = Base64;\n\n","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n  return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _iterableToArrayLimit(arr, i) {\n  var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"];\n  if (null != _i) {\n    var _s,\n      _e,\n      _x,\n      _r,\n      _arr = [],\n      _n = !0,\n      _d = !1;\n    try {\n      if (_x = (_i = _i.call(arr)).next, 0 === i) {\n        if (Object(_i) !== _i) return;\n        _n = !1;\n      } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0);\n    } catch (err) {\n      _d = !0, _e = err;\n    } finally {\n      try {\n        if (!_n && null != _i[\"return\"] && (_r = _i[\"return\"](), Object(_r) !== _r)) return;\n      } finally {\n        if (_d) throw _e;\n      }\n    }\n    return _arr;\n  }\n}","/* eslint-disable no-invalid-this */\n// 覆盖了kg下的_events，过渡期间先加兼容\nwindow._events = window._events || {};\nexport function on(type, callback) {\n    window._events[type] || (window._events[type] = []);\n    window._events[type].push(callback);\n}\nexport function off(type, callback) {\n    var callbacks = window._events[type];\n    var index;\n    if (callbacks && callback) {\n        index = callbacks.indexOf(callback);\n        ~index && callbacks.splice(index, 1);\n    }\n    else {\n        window._events[type] = [];\n    }\n}\nexport function emit(type) {\n    var args = [];\n    for (var _i = 1; _i < arguments.length; _i++) {\n        args[_i - 1] = arguments[_i];\n    }\n    if (!window._events[type]) {\n        return false;\n    }\n    var callbacks = window._events[type].slice(0); // 多个one,splice时会删除,要拷贝一份\n    for (var i = 0; i < callbacks.length; i++) {\n        // @ts-ignore\n        callbacks[i] && callbacks[i].apply(this, args);\n    }\n}\nexport function one(type, callback) {\n    var proxy;\n    on(type, (proxy = function () {\n        var args = [];\n        for (var _i = 0; _i < arguments.length; _i++) {\n            args[_i] = arguments[_i];\n        }\n        // @ts-ignore\n        callback.apply(this, args);\n        off(type, proxy);\n    }));\n}\n","// @ts-ignore-next\nimport MD5 from \"./md5\";\nexport var crypto = {\n    MD5: MD5\n};\n","import { getCookie } from \"./cookie\";\n/**\n * 计算ACSRFToken值\n * @param {string} [key=getCookie(\"openkey\")] openkey\n * @returns {number}\n * @category kg-base\n * @example\n * // return 235558311\n * getACSRFToken('1934C1002DC84D2DFD28F499775C9168')\n */\nexport function getACSRFToken(key) {\n    if (key === void 0) { key = getCookie(\"openkey\"); }\n    function _DJB(str) {\n        var hash = 5381;\n        for (var i = 0, len = str.length; i < len; ++i) {\n            hash += (hash << 5) + str.charCodeAt(i);\n        }\n        return hash & 0x7fffffff;\n    }\n    return _DJB(key);\n}\nexport var TOURIST_OPEN_TYPE = \"100\"; // 游客态\n/**\n * 判断当前是否为游客态\n * @returns {boolean}\n * @category kg-base\n * @example\n * // return true\n * isTouristLogin()\n */\nexport function isTouristLogin() {\n    return getCookie(\"opentype\") === TOURIST_OPEN_TYPE;\n}\n","/* eslint-disable max-params */\n/**\n * 获取专辑封面\n * @param {string} coverUrl 默认封面地址\n * @param {string} albumMid 专辑mid\n * @param {string} [albumVersion=\"\"] 专辑版本\n * @param {number} [size=150] 封面尺寸\n * @param {string} [type=\"audio\"] \"audio\" | \"feed\"\n * @returns {string}\n * @category kg-base\n * @example\n * // return 'https://y.gtimg.cn/music/photo_new/T002R150x150M0000.jpg'\n * midToCover('', '0')\n */\nexport function midToCover(coverUrl, albumMid, albumVersion, size, type) {\n    if (albumVersion === void 0) { albumVersion = \"\"; }\n    if (size === void 0) { size = 150; }\n    if (type === void 0) { type = \"audio\"; }\n    var url = \"\";\n    if (type === \"feed\" && coverUrl) {\n        return coverUrl;\n    }\n    if (albumMid) {\n        url = \"https://y.gtimg.cn/music/photo_new/T002\" + albumVersion + \"R\" + size + \"x\" + size + \"M000\" + albumMid + \".jpg\";\n    }\n    else {\n        url = coverUrl;\n    }\n    return url;\n}\n/**\n * 获取用户头像\n * @param {number} uid\n * @param {number} size [100或250或640]\n * @param {number} timestamp 后台下发的时间戳\n * @returns {string}\n * @category kg-base\n * @example\n * // return 'https://shp.qlogo.cn/ttsing/670145524/670145524/100'\n * uidToAvatar('670145524')\n */\nexport function uidToAvatar(uid, size, timestamp) {\n    if (size === void 0) { size = 100; }\n    if (timestamp === void 0) { timestamp = 0; }\n    if (!uid) {\n        return \"https://kg.qq.com/gtimg/mediastyle/mobile/live/img/face_default.png\";\n    }\n    return \"https://shp.qlogo.cn/ttsing/\" + uid + \"/\" + uid + \"/\" + size + \"?ts=\" + timestamp;\n}\n/**\n * 获取礼物图\n * @param {string} id logoId\n * @category kg-base\n * @example\n * // return 'https://y.gtimg.cn/music/common/upload/t_k_gift_info/159.jpg'\n * idToGiftLogo('159')\n */\nexport function idToGiftLogo(id) {\n    return \"https://y.gtimg.cn/music/common/upload/t_k_gift_info/\" + id + \".jpg\";\n}\n","/**\n * 阻止事件冒泡\n * @returns {boolean}\n * @category kg-base\n * @example\n * <View onClick={stopPropagation}></View>\n */\nexport function stopPropagation() {\n    return true;\n}\n","export function getIntranetIP() {\n    try {\n        var RTCPeerConnection_1 = window.RTCPeerConnection || window.webkitRTCPeerConnection; // || window?.mozRTCPeerConnection;\n        if (!RTCPeerConnection_1) {\n            // ERROR: no support\n            return;\n        }\n        var rtc_1 = new RTCPeerConnection_1({ iceServers: [] });\n        rtc_1.createDataChannel(\"\");\n        rtc_1.onicecandidate = function (e) {\n            var candidate = e.candidate;\n            console.warn(\"=== candidate\", candidate);\n            if (candidate) {\n                grepSDP_1(\"a=\" + candidate.candidate);\n            }\n        };\n        rtc_1\n            .createOffer()\n            .then(function (offer) { return rtc_1.setLocalDescription(offer); })\n            .catch(function (error) { return console.error(error); });\n        var grepSDP_1 = function (sdp) {\n            var match = sdp.match(/\\r\\n|\\n/) || [];\n            var lf = match[0];\n            var arr = lf ? sdp.split(lf) : [sdp];\n            for (var i = 0; i < arr.length; i++) {\n                var line = arr[i];\n                var parts = line.split(\" \") || [];\n                if (line.indexOf(\"a=candidate\") !== -1 && parts[7] === \"host\") {\n                    setPrivateIp(parts[4]);\n                }\n                else if (line.indexOf(\"c=\") !== -1) {\n                    setPrivateIp(parts[2]);\n                }\n            }\n            // ERROR: no result\n        };\n    }\n    catch (error) {\n        console.error(error);\n    }\n}\nfunction setPrivateIp(str) {\n    // /([0-9]{1,3}(\\.[0-9]{1,3}){3}|[a-f0-9]{1,4}(:[a-f0-9]{1,4}){7})/\n    var match = /[0-9]{1,3}(\\.[0-9]{1,3}){3}/.exec(str);\n    var ip = (match && match[0]) || \"\";\n    if (ip && ip !== \"0.0.0.0\") {\n        // @ts-ignore-next\n        window.firstStartJump_strPrivateIp = ip;\n    }\n}\n","// kg 安卓 webview 未对剪贴板做适配，暂不支持粘贴能力（复制能力不影响）\nexport function clipboard(text, type) {\n    var textArea = document.createElement(\"textArea\");\n    textArea.value = text;\n    textArea.setAttribute(\"readonly\", \"readonly\");\n    document.body.appendChild(textArea);\n    textArea.select();\n    type &&\n        textArea.addEventListener(\"copy\", function (e) {\n            var _a, _b;\n            var res = (_a = e.clipboardData) === null || _a === void 0 ? void 0 : _a.setData(type, text);\n            console.log(\"copy\", res, (_b = e.clipboardData) === null || _b === void 0 ? void 0 : _b.getData(type));\n            e.preventDefault();\n        });\n    document.execCommand(\"copy\");\n    document.body.removeChild(textArea);\n}\n","export var emNodeExpoType;\n(function (emNodeExpoType) {\n    emNodeExpoType[\"IDLE\"] = \"IDLE\";\n    emNodeExpoType[\"START_HIDEEN\"] = \"START_HIDEEN\";\n    emNodeExpoType[\"START_PARTAIL\"] = \"START_PARTAIL\";\n    emNodeExpoType[\"FULL\"] = \"FULL\";\n    emNodeExpoType[\"JUSTIFY_PARTAIL\"] = \"JUSTIFY_PARTAIL\";\n    emNodeExpoType[\"END_PARTAIL\"] = \"END_PARTAIL\";\n    emNodeExpoType[\"END_HIDDEN\"] = \"END_HIDDEN\";\n})(emNodeExpoType || (emNodeExpoType = {}));\n/**\n * 计算内嵌节点的可见情况\n * 详细参考：https://km.woa.com/group/29484/articles/show/501190\n * @param {number} opts.contentOffset 可视区域内内容的偏移\n * @param {number} opts.layoutOffset 待检测元素检点的距离可视区域内容顶部的距离\n * @param {number} opts.layoutSize 待检测元素节点的尺寸\n * @param {number} opts.visibleSize 可视区域尺寸\n * @returns {object}\n * @category kg-base\n * @example\n * // return { status: \"END_PARTAIL\", exposeSize: 90 }\n * checkNucleonExpose({contentOffset: 0, layoutOffset: 110, layoutSize: 200, visibleSize: 100})\n */\nexport function checkNucleonExpose(opts) {\n    var exposeSize = 0;\n    var status = emNodeExpoType.IDLE;\n    var contentOffset = opts.contentOffset, layoutOffset = opts.layoutOffset, layoutSize = opts.layoutSize, visibleSize = opts.visibleSize;\n    if (layoutOffset >= contentOffset + visibleSize) {\n        status = emNodeExpoType.END_HIDDEN;\n    }\n    else if (layoutOffset + layoutSize > contentOffset + visibleSize) {\n        status = emNodeExpoType.END_PARTAIL;\n        exposeSize = contentOffset + visibleSize - layoutOffset;\n    }\n    else if (layoutOffset >= contentOffset) {\n        status = emNodeExpoType.FULL;\n        exposeSize = layoutSize;\n    }\n    else if (contentOffset < layoutOffset + layoutSize) {\n        status = emNodeExpoType.START_PARTAIL;\n        exposeSize = layoutOffset + layoutSize - contentOffset;\n    }\n    else if (contentOffset >= layoutOffset + layoutSize) {\n        status = emNodeExpoType.START_HIDEEN;\n    }\n    else {\n        console.info(\"[checkNucleonExpose] warnning: exist uncomputed intervals！\");\n    }\n    return { status: status, exposeSize: exposeSize };\n}\n/**\n * 计算贯穿节点的可见情况\n * 详细参考：https://km.woa.com/group/29484/articles/show/501190\n * @param {number} opts.contentOffset 可视区域内内容的偏移\n * @param {number} opts.layoutOffset 待检测元素检点的距离可视区域内容顶部的距离\n * @param {number} opts.layoutSize 待检测元素节点的尺寸\n * @param {number} opts.visibleSize 可视区域尺寸\n * @returns {object}\n * @category kg-base\n * @example\n * // return { status: \"END_PARTAIL\", exposeSize: 90 }\n * checkNucleonExpose({contentOffset: 0, layoutOffset: 10, layoutSize: 100, visibleSize: 120})\n */\nexport function checkThroughNodeExpose(opts) {\n    var exposeSize = 0;\n    var status = emNodeExpoType.IDLE;\n    var contentOffset = opts.contentOffset, layoutOffset = opts.layoutOffset, layoutSize = opts.layoutSize, visibleSize = opts.visibleSize;\n    if (layoutOffset >= contentOffset + visibleSize) {\n        status = emNodeExpoType.END_HIDDEN;\n    }\n    else if (layoutOffset > contentOffset) {\n        status = emNodeExpoType.END_PARTAIL;\n        exposeSize = contentOffset + visibleSize - layoutOffset;\n    }\n    else if (layoutOffset + layoutSize >= contentOffset + visibleSize) {\n        status = emNodeExpoType.JUSTIFY_PARTAIL;\n        exposeSize = visibleSize;\n    }\n    else if (layoutOffset + layoutSize > contentOffset) {\n        status = emNodeExpoType.START_PARTAIL;\n        exposeSize = layoutOffset + layoutSize - contentOffset;\n    }\n    else if (contentOffset >= layoutOffset + layoutSize) {\n        status = emNodeExpoType.START_HIDEEN;\n    }\n    else {\n        console.info(\"[checkThroughNodeExpose] warnning: exist uncomputed intervals！\");\n    }\n    return { status: status, exposeSize: exposeSize };\n}\n/**\n * 计算节点的可见情况\n * 详细参考：https://km.woa.com/group/29484/articles/show/501190\n * @param {number} opts.contentOffset 可视区域内内容的偏移\n * @param {number} opts.layoutOffset 待检测元素检点的距离可视区域内容顶部的距离\n * @param {number} opts.layoutSize 待检测元素节点的尺寸\n * @param {number} opts.visibleSize 可视区域尺寸\n * @returns {object}\n * @category kg-base\n * @example\n * // return { status: \"END_PARTAIL\", exposeSize: 90 }\n * checkNucleonExpose({contentOffset: 0, layoutOffset: 10, layoutSize: 100, visibleSize: 120})\n */\nexport function checkNodeExpo(opts) {\n    if (!opts) {\n        throw new Error(\"[checkNodeExpo] excepted opts!\");\n    }\n    for (var _i = 0, _a = [\n        \"contentOffset\",\n        \"layoutOffset\",\n        \"layoutSize\",\n        \"visibleSize\"\n    ]; _i < _a.length; _i++) {\n        var key = _a[_i];\n        if (typeof opts[key] === \"undefined\") {\n            throw new Error(\"[checkNodeExpo] excepted opts.\" + key);\n        }\n    }\n    if (opts.layoutSize >= opts.visibleSize) {\n        return checkThroughNodeExpose(opts);\n    }\n    return checkNucleonExpose(opts);\n}\n","/**\n * 异步 retry，可以指定异步请求失败时的重试次数，并且可以对结果进行校验，同时在失败后延时指定时间后再重试\n * @category kg-base\n * @param params\n */\nexport function retry(params) {\n    var promiseFactory = params.promiseFactory, maxRetries = params.maxRetries, delay = params.delay, validator = params.validator;\n    return promiseFactory()\n        .then(function (result) {\n        if (validator && !validator(result)) {\n            throw new Error(\"Result validation failed\");\n        }\n        return result;\n    })\n        .catch(function (error) {\n        if (maxRetries <= 0) {\n            throw error;\n        }\n        return new Promise(function (resolve) {\n            setTimeout(function () {\n                resolve(retry({\n                    promiseFactory: promiseFactory,\n                    maxRetries: maxRetries - 1,\n                    delay: delay,\n                    validator: validator\n                }));\n            }, delay);\n        });\n    });\n}\n","import { getParameter } from \"./url\";\n/**\n * 屏幕高度\n * @category kg-base\n */\nexport var WINDOW_HEIGHT = window.innerHeight;\n/**\n * 屏幕宽度\n * @category kg-base\n */\nexport var WINDOW_WIDTH = window.innerWidth;\n/**\n * 获取rem尺寸（设计稿宽度为375）\n * @param {number} num 设计稿尺寸\n * @returns rem尺寸\n * @category kg-base\n */\nexport function pt(num) {\n    return (num / 375) * WINDOW_WIDTH;\n}\n/**\n * 获取rem尺寸（设计稿宽度为750）\n * @param {number} num 设计稿尺寸\n * @returns rem尺寸\n * @category kg-base\n */\nexport function rem(num) {\n    return (num / 750) * WINDOW_WIDTH;\n}\n/**\n * 当前是否为横屏\n * @export\n * @returns 是否为横屏\n * @category kg-base\n */\nexport function isLandscape() {\n    if (getParameter(\"isLandscape\") === \"true\") {\n        return true;\n    }\n    // 实时获取宽高\n    var width = WINDOW_WIDTH;\n    var height = WINDOW_HEIGHT;\n    return width > height;\n}\n","import { retry } from \"./retry\";\nvar domReady = function () {\n    return new Promise(function (resolve) {\n        if (document.readyState === \"complete\") {\n            resolve();\n        }\n        else {\n            document.addEventListener(\"DOMContentLoaded\", function () {\n                resolve();\n            });\n        }\n    });\n};\nvar checkClientWidthAndHeight = function () {\n    return new Promise(function (resolve, reject) {\n        var _a = document.documentElement, clientHeight = _a.clientHeight, clientWidth = _a.clientWidth;\n        resolve({\n            clientHeight: clientHeight,\n            clientWidth: clientWidth\n        });\n    });\n};\nexport var webviewReady = function () {\n    return domReady().then(function () {\n        return retry({\n            delay: 50,\n            maxRetries: 100,\n            promiseFactory: checkClientWidthAndHeight,\n            validator: function (res) { return res.clientHeight > 0 && res.clientHeight > 0; }\n        });\n    });\n};\n","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix, useBootstrapBreakpoints, useBootstrapMinBreakpoint } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport function useCol({\n  as,\n  bsPrefix,\n  className,\n  ...props\n}) {\n  bsPrefix = useBootstrapPrefix(bsPrefix, 'col');\n  const breakpoints = useBootstrapBreakpoints();\n  const minBreakpoint = useBootstrapMinBreakpoint();\n  const spans = [];\n  const classes = [];\n  breakpoints.forEach(brkPoint => {\n    const propValue = props[brkPoint];\n    delete props[brkPoint];\n    let span;\n    let offset;\n    let order;\n    if (typeof propValue === 'object' && propValue != null) {\n      ({\n        span,\n        offset,\n        order\n      } = propValue);\n    } else {\n      span = propValue;\n    }\n    const infix = brkPoint !== minBreakpoint ? `-${brkPoint}` : '';\n    if (span) spans.push(span === true ? `${bsPrefix}${infix}` : `${bsPrefix}${infix}-${span}`);\n    if (order != null) classes.push(`order${infix}-${order}`);\n    if (offset != null) classes.push(`offset${infix}-${offset}`);\n  });\n  return [{\n    ...props,\n    className: classNames(className, ...spans, ...classes)\n  }, {\n    as,\n    bsPrefix,\n    spans\n  }];\n}\nconst Col = /*#__PURE__*/React.forwardRef(\n// Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n(props, ref) => {\n  const [{\n    className,\n    ...colProps\n  }, {\n    as: Component = 'div',\n    bsPrefix,\n    spans\n  }] = useCol(props);\n  return /*#__PURE__*/_jsx(Component, {\n    ...colProps,\n    ref: ref,\n    className: classNames(className, !spans.length && bsPrefix)\n  });\n});\nCol.displayName = 'Col';\nexport default Col;","var tmpResult = {\n    os: {},\n    platform: {},\n    browser: {}\n};\n/* eslint-disable complexity */\nfunction webDetect() {\n    if (JSON.stringify(tmpResult.platform) !== \"{}\" ||\n        !window.navigator.userAgent) {\n        return tmpResult;\n    }\n    var ua = window.navigator.userAgent;\n    var REGS = {\n        webkit: /WebKit\\/([\\d.]+)/,\n        android: /(Android)(?:\\s+|\\/)(?:[A-z\\-]*)([\\d.]+)/,\n        ipad: /(iPad).*OS\\s([\\d_]+)/,\n        iphone: /(iPhone\\sOS)\\s([\\d_]+)/,\n        chrome: /Chrome\\/([\\d.]+)/,\n        chromeOS: /CriOS\\/([\\d.]+)/,\n        // firefox:/Firefox\\/([\\d.]+)/,\n        mobile: /Mobile(\\/|\\s)/,\n        tablet: /Tablet/,\n        safariLike: /Safari\\/([\\d.]+)/,\n        // webview:/(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/,\n        ie: /MSIE\\s([\\d.]+)/,\n        // ieMobi:/IEMobile\\/([\\d.]+)/,\n        trident: /Trident\\/([\\d.]+)/,\n        ierv: /\\srv\\:([\\d.]+)/,\n        wechat: /MicroMessenger\\/([\\d\\.]+)/,\n        // uc:/\\s?UC|JUC|UCWEB/,\n        qq: /MQQBrowser\\/([\\d\\.]+)/,\n        mi: /MiuiBrowser\\/([\\d\\.]+)/,\n        baidu: /baiduboxapp\\/([\\d\\.]+)/i,\n        music: /\\sqqmusic\\/([\\d\\.]+)/i,\n        qzone: /qzone\\/.+qz_([\\d\\.]+)/i,\n        qmkege: /qmkege\\/([\\d\\.]+)/i,\n        kglite: /kglite\\/([\\d\\.]+)/i,\n        wesing: /wesing\\/([\\d\\.]+)/i,\n        mqq: /QQ\\/([\\d\\.]+)/,\n        weibo: /Weibo/,\n        facebook: /\\[[^\\]]+FBAV\\/([\\d\\.]+)[^\\]]+\\]/,\n        instagram: /Instagram \\/([\\d\\.]+)/,\n        samsung: /SamsungBrowser\\/([\\d\\.]+)/,\n        pcclient: /V1_WIN_KG_([\\d\\.]+)/,\n        intoo: /intoo\\/([\\d\\.]+)/i,\n        dating: /tmedt\\/([\\d\\.]+)/i,\n        qua: /qua\\/[a-z0-9_]*_([0-9\\._]*)_[a-z0-9_]*/i,\n        mp: /miniprogram/i,\n        weband: /weband/i\n    };\n    function getDevice(ua) {\n        var str = ua.toUpperCase();\n        var match = str.match(/(HONOR|HUAWEI|OPPO|VIVO|IPAD|IPHONE)/) ||\n            str.match(/; ([A-Z0-9\\s-_+\\?\\(\\)]+) BUILD\\//);\n        return (match ? match[1] : \"PC\").split(/[\\s-_]/)[0];\n    }\n    var os = {};\n    var browser = {};\n    var platform = {};\n    var device = \"\";\n    // firefox = ua.match(REGS.firefox),\n    // ieMobile = ua.match(REGS.ieMobi),\n    // uc = ua.match(REGS.uc),\n    /* webkit, chrome */\n    var webkit;\n    var chrome;\n    if ((webkit = ua.match(REGS.webkit))) {\n        browser.webkit = true;\n        browser.version = webkit[1];\n    }\n    if ((chrome = ua.match(REGS.chrome) || ua.match(REGS.chromeOS))) {\n        browser.chrome = true;\n        browser.version = chrome[1];\n    }\n    /* OS */\n    var ie;\n    var trident;\n    var android;\n    var iphone;\n    var ipad;\n    if ((android = ua.match(REGS.android))) {\n        // android\n        os.android = true;\n        os.version = android[2];\n    }\n    else if ((ie = ua.match(REGS.ie)) || (trident = ua.match(REGS.trident))) {\n        // ie\n        if (ie) {\n            browser.ie = true;\n            browser.version = ie[1];\n        }\n        // ie 11 and above\n        var ierv = ua.match(REGS.ierv);\n        if (trident && ierv) {\n            browser.ie = true;\n            browser.version = ierv[1];\n        }\n    }\n    else {\n        ipad = ua.match(REGS.ipad);\n        iphone = !ipad && ua.match(REGS.iphone);\n        // ios\n        if (iphone) {\n            os.ios = os.iphone = true;\n            os.version = iphone[2].replace(/_/g, \".\");\n        }\n        else if (ipad) {\n            os.ios = os.ipad = true;\n            os.version = ipad[2].replace(/_/g, \".\");\n        }\n    }\n    // tablet OR phone OR pc\n    if (ua.match(REGS.tablet) || ipad) {\n        os.tablet = true;\n    }\n    else if (android || iphone || REGS.mobile.test(ua)) {\n        os.phone = true;\n    }\n    else {\n        os.pc = true;\n        platform.pc = true;\n        platform.name = \"pc\";\n    }\n    /* webview platform */\n    var wechat;\n    var music;\n    var qzone;\n    var qmkege;\n    var kglite;\n    var wesing;\n    var weibo;\n    var mqq;\n    var facebook;\n    var samsung;\n    var pcclient;\n    var intoo;\n    var instagram;\n    var qua;\n    var dating;\n    var weband;\n    platform.rn = false;\n    browser.webview = true;\n    if ((wechat = ua.match(REGS.wechat))) {\n        platform.wechat = true;\n        platform.name = \"wechat\";\n        platform.version = wechat[1];\n        if (ua.match(REGS.mp)) {\n            platform.mp = true;\n            platform.wechatmp = true;\n        }\n    }\n    else if ((mqq = ua.match(REGS.mqq))) {\n        platform.qq = true;\n        platform.name = \"qq\";\n        platform.version = mqq[1];\n        if (ua.match(REGS.mp)) {\n            platform.mp = true;\n            platform.qqmp = true;\n        }\n    }\n    else if ((qmkege = ua.match(REGS.qmkege)) ||\n        (wesing = ua.match(REGS.wesing)) ||\n        (kglite = ua.match(REGS.kglite))) {\n        // 国际版也通过判断，用wesing区分\n        platform.qmkege = true;\n        qua = ua.match(REGS.qua);\n        platform.qua = qua && qua[0] ? qua[0] : \"\";\n        if (wesing) {\n            platform.wesing = true;\n            platform.name = \"wesing\";\n            platform.version = wesing[1];\n        }\n        else {\n            platform.name = kglite ? \"kglite\" : \"qmkege\";\n            // 由于这里会匹配到 qmkege/6.2.2 version = \"6.2.2\"\n            // 但上报需求精确到小版本 6.2.2.274，所以从qua中取 qua/V1_AND_KG_6.2.2_274_SJTX_D\n            // platform.version = qmkege[1];\n            platform.version = qua && qua[1] ? qua[1].replace(\"_\", \".\") : qmkege[1];\n        }\n        // 是否为ios审核版本\n        platform.isappreview = os.ios && /appreview=1/.test(document.cookie);\n    }\n    else if ((dating = ua.match(REGS.dating))) {\n        qua = ua.match(REGS.qua);\n        platform.version = qua && qua[1] ? qua[1].replace(\"_\", \".\") : dating[1];\n        platform.dating = true;\n        platform.name = \"dating\";\n        platform.qua = qua && qua[0] ? qua[0] : \"\";\n        // 是否为ios审核版本\n        platform.isappreview = os.ios && /appreview=1/.test(document.cookie);\n    }\n    else if ((weband = ua.match(REGS.weband))) {\n        qua = ua.match(REGS.qua);\n        platform.version = qua && qua[1] ? qua[1].replace(\"_\", \".\") : weband[1];\n        platform.weband = true;\n        platform.name = \"weband\";\n        platform.qua = qua && qua[0] ? qua[0] : \"\";\n        // 是否为ios审核版本\n        platform.isappreview = os.ios && /appreview=1/.test(document.cookie);\n    }\n    else if ((intoo = ua.match(REGS.intoo))) {\n        platform.intoo = true;\n        platform.name = \"intoo\";\n        platform.version = intoo[1];\n    }\n    else if ((weibo = REGS.weibo.test(ua))) {\n        platform.weibo = true;\n        platform.name = \"weibo\";\n    }\n    else if ((music = ua.match(REGS.music))) {\n        platform.music = true;\n        platform.name = \"music\";\n        platform.version = music[1];\n    }\n    else if ((qzone = ua.match(REGS.qzone))) {\n        platform.qzone = true;\n        platform.name = \"qzone\";\n        platform.version = qzone[1];\n    }\n    else if ((facebook = ua.match(REGS.facebook))) {\n        platform.facebook = true;\n        platform.name = \"facebook\";\n        platform.version = facebook[1];\n    }\n    else if ((samsung = ua.match(REGS.samsung))) {\n        platform.samsung = true;\n        platform.name = \"samsung\";\n        platform.version = samsung[1];\n    }\n    else if ((pcclient = ua.match(REGS.pcclient))) {\n        platform.pcclient = true;\n        platform.name = \"pcclient\";\n        platform.version = pcclient[1];\n    }\n    else if ((instagram = ua.match(REGS.instagram))) {\n        platform.instagram = true;\n        platform.name = \"instagram\";\n        platform.version = instagram[1];\n    }\n    else {\n        delete browser.webview; // androidmusic 之类UA里包含了chrome和safari，挨个判断\n    }\n    /* Other Broswer */\n    var safariLike;\n    var xiaomi;\n    var qq;\n    var baidu;\n    if (!browser.webview &&\n        os.ios &&\n        webkit &&\n        !chrome &&\n        (safariLike = ua.match(REGS.safariLike))) {\n        browser.safari = true;\n        browser.version = safariLike[1];\n    }\n    else if (android && (xiaomi = ua.match(REGS.mi))) {\n        browser.xiaomi = true;\n        browser.version = xiaomi[1];\n    }\n    else if ((qq = ua.match(REGS.qq))) {\n        browser.qq = true;\n        var v = qq[1] || \"4.5\";\n        // ios qq browser的版本号是xxx，没有点，5.0改掉了\n        if (v.indexOf(\".\") < 0) {\n            v = v[0] + \".\" + v.substring(1);\n        }\n        browser.version = v;\n    }\n    else if ((baidu = ua.match(REGS.baidu))) {\n        browser.baidu = true;\n        browser.version = baidu[1];\n    }\n    /*\n     * 区分国际版业务\n     * ($.platform.wesing 为国际版客户端内, wesingPage为走国际版业务逻辑)\n     */\n    if (window.location && window.location.host === \"wesingapp.com\") {\n        platform.wesingPage = true;\n        platform.appName = \"WeSing\";\n    }\n    else {\n        // 非国际版显示全民K歌\n        platform.appName = \"全民K歌\";\n    }\n    device = getDevice(ua);\n    // 判断server\n    if (global &&\n        global.process &&\n        global.process.versions &&\n        global.process.versions.node) {\n        platform.server = true;\n    }\n    tmpResult = { os: os, platform: platform, browser: browser, device: device };\n    return tmpResult;\n}\nexport var webPlatform = {\n    get os() {\n        return webDetect().os;\n    },\n    get platform() {\n        return webDetect().platform;\n    },\n    get browser() {\n        return webDetect().browser;\n    },\n    get device() {\n        return webDetect().device;\n    }\n};\n","function _assertThisInitialized(e) {\n  if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n  return e;\n}\nexport { _assertThisInitialized as default };","import setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _inherits(t, e) {\n  if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function\");\n  t.prototype = Object.create(e && e.prototype, {\n    constructor: {\n      value: t,\n      writable: !0,\n      configurable: !0\n    }\n  }), Object.defineProperty(t, \"prototype\", {\n    writable: !1\n  }), e && setPrototypeOf(t, e);\n}\nexport { _inherits as default };","/* eslint-disable complexity */\n/**\n * 获取字符串的字节长度 UTF8 only\n * @param {string} string 字符串\n * @param {number} [_units]\n * @returns {number}\n * @category kg-base\n * @example\n * // return 12\n * byteLength('\\u00bd + \\u00bc = \\u00be')\n */\nexport function byteLength(string, _units) {\n    if (typeof Buffer !== \"undefined\" && Buffer.byteLength) {\n        return Buffer.byteLength(string);\n    }\n    var units = _units || Infinity;\n    var codePoint;\n    var length = string.length;\n    var leadSurrogate = null;\n    var bytes = [];\n    for (var i = 0; i < length; ++i) {\n        codePoint = string.charCodeAt(i);\n        // is surrogate component\n        if (codePoint > 0xd7ff && codePoint < 0xe000) {\n            // last char was a lead\n            if (!leadSurrogate) {\n                // no lead yet\n                if (codePoint > 0xdbff) {\n                    // unexpected trail\n                    if ((units -= 3) > -1)\n                        bytes.push(0xef, 0xbf, 0xbd);\n                    continue;\n                }\n                else if (i + 1 === length) {\n                    // unpaired lead\n                    if ((units -= 3) > -1)\n                        bytes.push(0xef, 0xbf, 0xbd);\n                    continue;\n                }\n                // valid lead\n                leadSurrogate = codePoint;\n                continue;\n            }\n            // 2 leads in a row\n            if (codePoint < 0xdc00) {\n                if ((units -= 3) > -1)\n                    bytes.push(0xef, 0xbf, 0xbd);\n                leadSurrogate = codePoint;\n                continue;\n            }\n            // valid surrogate pair\n            codePoint =\n                (((leadSurrogate - 0xd800) << 10) | (codePoint - 0xdc00)) + 0x10000;\n        }\n        else if (leadSurrogate) {\n            // valid bmp char, but last char was a lead\n            if ((units -= 3) > -1)\n                bytes.push(0xef, 0xbf, 0xbd);\n        }\n        leadSurrogate = null;\n        // encode utf8\n        if (codePoint < 0x80) {\n            if ((units -= 1) < 0)\n                break;\n            bytes.push(codePoint);\n        }\n        else if (codePoint < 0x800) {\n            if ((units -= 2) < 0)\n                break;\n            bytes.push((codePoint >> 0x6) | 0xc0, (codePoint & 0x3f) | 0x80);\n        }\n        else if (codePoint < 0x10000) {\n            if ((units -= 3) < 0)\n                break;\n            bytes.push((codePoint >> 0xc) | 0xe0, ((codePoint >> 0x6) & 0x3f) | 0x80, (codePoint & 0x3f) | 0x80);\n        }\n        else if (codePoint < 0x110000) {\n            if ((units -= 4) < 0)\n                break;\n            bytes.push((codePoint >> 0x12) | 0xf0, ((codePoint >> 0xc) & 0x3f) | 0x80, ((codePoint >> 0x6) & 0x3f) | 0x80, (codePoint & 0x3f) | 0x80);\n        }\n        else {\n            throw new Error(\"Invalid code point\");\n        }\n    }\n    return bytes.length;\n}\n","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nfunction _toConsumableArray(r) {\n  return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread();\n}\nexport { _toConsumableArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _arrayWithoutHoles(r) {\n  if (Array.isArray(r)) return arrayLikeToArray(r);\n}\nexport { _arrayWithoutHoles as default };","function _nonIterableSpread() {\n  throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableSpread as default };","/**\n * Checks if a given element has a CSS class.\n * \n * @param element the element\n * @param className the CSS class name\n */\nexport default function hasClass(element, className) {\n  if (element.classList) return !!className && element.classList.contains(className);\n  return (\" \" + (element.className.baseVal || element.className) + \" \").indexOf(\" \" + className + \" \") !== -1;\n}","module.exports = \"data:image/png;base64,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\"","/* eslint-disable no-console */\nvar warned = {};\nvar preWarningFns = [];\n\n/**\n * Pre warning enable you to parse content before console.error.\n * Modify to null will prevent warning.\n */\nexport var preMessage = function preMessage(fn) {\n  preWarningFns.push(fn);\n};\n\n/**\n * Warning if condition not match.\n * @param valid Condition\n * @param message Warning message\n * @example\n * ```js\n * warning(false, 'some error'); // print some error\n * warning(true, 'some error'); // print nothing\n * warning(1 === 2, 'some error'); // print some error\n * ```\n */\nexport function warning(valid, message) {\n  if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n    var finalMessage = preWarningFns.reduce(function (msg, preMessageFn) {\n      return preMessageFn(msg !== null && msg !== void 0 ? msg : '', 'warning');\n    }, message);\n    if (finalMessage) {\n      console.error(\"Warning: \".concat(finalMessage));\n    }\n  }\n}\n\n/** @see Similar to {@link warning} */\nexport function note(valid, message) {\n  if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n    var finalMessage = preWarningFns.reduce(function (msg, preMessageFn) {\n      return preMessageFn(msg !== null && msg !== void 0 ? msg : '', 'note');\n    }, message);\n    if (finalMessage) {\n      console.warn(\"Note: \".concat(finalMessage));\n    }\n  }\n}\nexport function resetWarned() {\n  warned = {};\n}\nexport function call(method, valid, message) {\n  if (!valid && !warned[message]) {\n    method(false, message);\n    warned[message] = true;\n  }\n}\n\n/** @see Same as {@link warning}, but only warn once for the same message */\nexport function warningOnce(valid, message) {\n  call(warning, valid, message);\n}\n\n/** @see Same as {@link warning}, but only warn once for the same message */\nexport function noteOnce(valid, message) {\n  call(note, valid, message);\n}\nwarningOnce.preMessage = preMessage;\nwarningOnce.resetWarned = resetWarned;\nwarningOnce.noteOnce = noteOnce;\nexport default warningOnce;","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn.js\";\nfunction _createSuper(t) {\n  var r = isNativeReflectConstruct();\n  return function () {\n    var e,\n      o = getPrototypeOf(t);\n    if (r) {\n      var s = getPrototypeOf(this).constructor;\n      e = Reflect.construct(o, arguments, s);\n    } else e = o.apply(this, arguments);\n    return possibleConstructorReturn(this, e);\n  };\n}\nexport { _createSuper as default };","import * as React from 'react';\nimport classNames from 'classnames';\nvar TransBtn = function TransBtn(props) {\n  var className = props.className,\n    customizeIcon = props.customizeIcon,\n    customizeIconProps = props.customizeIconProps,\n    children = props.children,\n    _onMouseDown = props.onMouseDown,\n    onClick = props.onClick;\n  var icon = typeof customizeIcon === 'function' ? customizeIcon(customizeIconProps) : customizeIcon;\n  return /*#__PURE__*/React.createElement(\"span\", {\n    className: className,\n    onMouseDown: function onMouseDown(event) {\n      event.preventDefault();\n      _onMouseDown === null || _onMouseDown === void 0 || _onMouseDown(event);\n    },\n    style: {\n      userSelect: 'none',\n      WebkitUserSelect: 'none'\n    },\n    unselectable: \"on\",\n    onClick: onClick,\n    \"aria-hidden\": true\n  }, icon !== undefined ? icon : /*#__PURE__*/React.createElement(\"span\", {\n    className: classNames(className.split(/\\s+/).map(function (cls) {\n      return \"\".concat(cls, \"-icon\");\n    }))\n  }, children));\n};\nexport default TransBtn;","/**\n * BaseSelect provide some parsed data into context.\n * You can use this hooks to get them.\n */\n\nimport * as React from 'react';\nexport var BaseSelectContext = /*#__PURE__*/React.createContext(null);\nexport default function useBaseProps() {\n  return React.useContext(BaseSelectContext);\n}","import * as React from 'react';\n\n/**\n * Locker return cached mark.\n * If set to `true`, will return `true` in a short time even if set `false`.\n * If set to `false` and then set to `true`, will change to `true`.\n * And after time duration, it will back to `null` automatically.\n */\nexport default function useLock() {\n  var duration = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 250;\n  var lockRef = React.useRef(null);\n  var timeoutRef = React.useRef(null);\n\n  // Clean up\n  React.useEffect(function () {\n    return function () {\n      window.clearTimeout(timeoutRef.current);\n    };\n  }, []);\n  function doLock(locked) {\n    if (locked || lockRef.current === null) {\n      lockRef.current = locked;\n    }\n    window.clearTimeout(timeoutRef.current);\n    timeoutRef.current = window.setTimeout(function () {\n      lockRef.current = null;\n    }, duration);\n  }\n  return [function () {\n    return lockRef.current;\n  }, doLock];\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { composeRef } from \"rc-util/es/ref\";\nimport { warning } from \"rc-util/es/warning\";\nvar Input = function Input(props, ref) {\n  var _inputNode2;\n  var prefixCls = props.prefixCls,\n    id = props.id,\n    inputElement = props.inputElement,\n    disabled = props.disabled,\n    tabIndex = props.tabIndex,\n    autoFocus = props.autoFocus,\n    autoComplete = props.autoComplete,\n    editable = props.editable,\n    activeDescendantId = props.activeDescendantId,\n    value = props.value,\n    maxLength = props.maxLength,\n    _onKeyDown = props.onKeyDown,\n    _onMouseDown = props.onMouseDown,\n    _onChange = props.onChange,\n    onPaste = props.onPaste,\n    _onCompositionStart = props.onCompositionStart,\n    _onCompositionEnd = props.onCompositionEnd,\n    open = props.open,\n    attrs = props.attrs;\n  var inputNode = inputElement || /*#__PURE__*/React.createElement(\"input\", null);\n  var _inputNode = inputNode,\n    originRef = _inputNode.ref,\n    originProps = _inputNode.props;\n  var onOriginKeyDown = originProps.onKeyDown,\n    onOriginChange = originProps.onChange,\n    onOriginMouseDown = originProps.onMouseDown,\n    onOriginCompositionStart = originProps.onCompositionStart,\n    onOriginCompositionEnd = originProps.onCompositionEnd,\n    style = originProps.style;\n  warning(!('maxLength' in inputNode.props), \"Passing 'maxLength' to input element directly may not work because input in BaseSelect is controlled.\");\n  inputNode = /*#__PURE__*/React.cloneElement(inputNode, _objectSpread(_objectSpread(_objectSpread({\n    type: 'search'\n  }, originProps), {}, {\n    // Override over origin props\n    id: id,\n    ref: composeRef(ref, originRef),\n    disabled: disabled,\n    tabIndex: tabIndex,\n    autoComplete: autoComplete || 'off',\n    autoFocus: autoFocus,\n    className: classNames(\"\".concat(prefixCls, \"-selection-search-input\"), (_inputNode2 = inputNode) === null || _inputNode2 === void 0 || (_inputNode2 = _inputNode2.props) === null || _inputNode2 === void 0 ? void 0 : _inputNode2.className),\n    role: 'combobox',\n    'aria-expanded': open || false,\n    'aria-haspopup': 'listbox',\n    'aria-owns': \"\".concat(id, \"_list\"),\n    'aria-autocomplete': 'list',\n    'aria-controls': \"\".concat(id, \"_list\"),\n    'aria-activedescendant': open ? activeDescendantId : undefined\n  }, attrs), {}, {\n    value: editable ? value : '',\n    maxLength: maxLength,\n    readOnly: !editable,\n    unselectable: !editable ? 'on' : null,\n    style: _objectSpread(_objectSpread({}, style), {}, {\n      opacity: editable ? null : 0\n    }),\n    onKeyDown: function onKeyDown(event) {\n      _onKeyDown(event);\n      if (onOriginKeyDown) {\n        onOriginKeyDown(event);\n      }\n    },\n    onMouseDown: function onMouseDown(event) {\n      _onMouseDown(event);\n      if (onOriginMouseDown) {\n        onOriginMouseDown(event);\n      }\n    },\n    onChange: function onChange(event) {\n      _onChange(event);\n      if (onOriginChange) {\n        onOriginChange(event);\n      }\n    },\n    onCompositionStart: function onCompositionStart(event) {\n      _onCompositionStart(event);\n      if (onOriginCompositionStart) {\n        onOriginCompositionStart(event);\n      }\n    },\n    onCompositionEnd: function onCompositionEnd(event) {\n      _onCompositionEnd(event);\n      if (onOriginCompositionEnd) {\n        onOriginCompositionEnd(event);\n      }\n    },\n    onPaste: onPaste\n  }));\n  return inputNode;\n};\nvar RefInput = /*#__PURE__*/React.forwardRef(Input);\nif (process.env.NODE_ENV !== 'production') {\n  RefInput.displayName = 'Input';\n}\nexport default RefInput;","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nexport function toArray(value) {\n  if (Array.isArray(value)) {\n    return value;\n  }\n  return value !== undefined ? [value] : [];\n}\nexport var isClient = typeof window !== 'undefined' && window.document && window.document.documentElement;\n\n/** Is client side and not jsdom */\nexport var isBrowserClient = process.env.NODE_ENV !== 'test' && isClient;\nexport function hasValue(value) {\n  return value !== undefined && value !== null;\n}\n\n/** combo mode no value judgment function */\nexport function isComboNoValue(value) {\n  return !value && value !== 0;\n}\nfunction isTitleType(title) {\n  return ['string', 'number'].includes(_typeof(title));\n}\nexport function getTitle(item) {\n  var title = undefined;\n  if (item) {\n    if (isTitleType(item.title)) {\n      title = item.title.toString();\n    } else if (isTitleType(item.label)) {\n      title = item.label.toString();\n    }\n  }\n  return title;\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { useState } from 'react';\nimport classNames from 'classnames';\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport Overflow from 'rc-overflow';\nimport TransBtn from \"../TransBtn\";\nimport Input from \"./Input\";\nimport useLayoutEffect from \"../hooks/useLayoutEffect\";\nimport { getTitle } from \"../utils/commonUtil\";\nfunction itemKey(value) {\n  var _value$key;\n  return (_value$key = value.key) !== null && _value$key !== void 0 ? _value$key : value.value;\n}\nvar onPreventMouseDown = function onPreventMouseDown(event) {\n  event.preventDefault();\n  event.stopPropagation();\n};\nvar SelectSelector = function SelectSelector(props) {\n  var id = props.id,\n    prefixCls = props.prefixCls,\n    values = props.values,\n    open = props.open,\n    searchValue = props.searchValue,\n    autoClearSearchValue = props.autoClearSearchValue,\n    inputRef = props.inputRef,\n    placeholder = props.placeholder,\n    disabled = props.disabled,\n    mode = props.mode,\n    showSearch = props.showSearch,\n    autoFocus = props.autoFocus,\n    autoComplete = props.autoComplete,\n    activeDescendantId = props.activeDescendantId,\n    tabIndex = props.tabIndex,\n    removeIcon = props.removeIcon,\n    maxTagCount = props.maxTagCount,\n    maxTagTextLength = props.maxTagTextLength,\n    _props$maxTagPlacehol = props.maxTagPlaceholder,\n    maxTagPlaceholder = _props$maxTagPlacehol === void 0 ? function (omittedValues) {\n      return \"+ \".concat(omittedValues.length, \" ...\");\n    } : _props$maxTagPlacehol,\n    tagRender = props.tagRender,\n    onToggleOpen = props.onToggleOpen,\n    onRemove = props.onRemove,\n    onInputChange = props.onInputChange,\n    onInputPaste = props.onInputPaste,\n    onInputKeyDown = props.onInputKeyDown,\n    onInputMouseDown = props.onInputMouseDown,\n    onInputCompositionStart = props.onInputCompositionStart,\n    onInputCompositionEnd = props.onInputCompositionEnd;\n  var measureRef = React.useRef(null);\n  var _useState = useState(0),\n    _useState2 = _slicedToArray(_useState, 2),\n    inputWidth = _useState2[0],\n    setInputWidth = _useState2[1];\n  var _useState3 = useState(false),\n    _useState4 = _slicedToArray(_useState3, 2),\n    focused = _useState4[0],\n    setFocused = _useState4[1];\n  var selectionPrefixCls = \"\".concat(prefixCls, \"-selection\");\n\n  // ===================== Search ======================\n  var inputValue = open || mode === 'multiple' && autoClearSearchValue === false || mode === 'tags' ? searchValue : '';\n  var inputEditable = mode === 'tags' || mode === 'multiple' && autoClearSearchValue === false || showSearch && (open || focused);\n\n  // We measure width and set to the input immediately\n  useLayoutEffect(function () {\n    setInputWidth(measureRef.current.scrollWidth);\n  }, [inputValue]);\n\n  // ===================== Render ======================\n  // >>> Render Selector Node. Includes Item & Rest\n  var defaultRenderSelector = function defaultRenderSelector(item, content, itemDisabled, closable, onClose) {\n    return /*#__PURE__*/React.createElement(\"span\", {\n      title: getTitle(item),\n      className: classNames(\"\".concat(selectionPrefixCls, \"-item\"), _defineProperty({}, \"\".concat(selectionPrefixCls, \"-item-disabled\"), itemDisabled))\n    }, /*#__PURE__*/React.createElement(\"span\", {\n      className: \"\".concat(selectionPrefixCls, \"-item-content\")\n    }, content), closable && /*#__PURE__*/React.createElement(TransBtn, {\n      className: \"\".concat(selectionPrefixCls, \"-item-remove\"),\n      onMouseDown: onPreventMouseDown,\n      onClick: onClose,\n      customizeIcon: removeIcon\n    }, \"\\xD7\"));\n  };\n  var customizeRenderSelector = function customizeRenderSelector(value, content, itemDisabled, closable, onClose, isMaxTag) {\n    var onMouseDown = function onMouseDown(e) {\n      onPreventMouseDown(e);\n      onToggleOpen(!open);\n    };\n    return /*#__PURE__*/React.createElement(\"span\", {\n      onMouseDown: onMouseDown\n    }, tagRender({\n      label: content,\n      value: value,\n      disabled: itemDisabled,\n      closable: closable,\n      onClose: onClose,\n      isMaxTag: !!isMaxTag\n    }));\n  };\n  var renderItem = function renderItem(valueItem) {\n    var itemDisabled = valueItem.disabled,\n      label = valueItem.label,\n      value = valueItem.value;\n    var closable = !disabled && !itemDisabled;\n    var displayLabel = label;\n    if (typeof maxTagTextLength === 'number') {\n      if (typeof label === 'string' || typeof label === 'number') {\n        var strLabel = String(displayLabel);\n        if (strLabel.length > maxTagTextLength) {\n          displayLabel = \"\".concat(strLabel.slice(0, maxTagTextLength), \"...\");\n        }\n      }\n    }\n    var onClose = function onClose(event) {\n      if (event) {\n        event.stopPropagation();\n      }\n      onRemove(valueItem);\n    };\n    return typeof tagRender === 'function' ? customizeRenderSelector(value, displayLabel, itemDisabled, closable, onClose) : defaultRenderSelector(valueItem, displayLabel, itemDisabled, closable, onClose);\n  };\n  var renderRest = function renderRest(omittedValues) {\n    var content = typeof maxTagPlaceholder === 'function' ? maxTagPlaceholder(omittedValues) : maxTagPlaceholder;\n    return typeof tagRender === 'function' ? customizeRenderSelector(undefined, content, false, false, undefined, true) : defaultRenderSelector({\n      title: content\n    }, content, false);\n  };\n\n  // >>> Input Node\n  var inputNode = /*#__PURE__*/React.createElement(\"div\", {\n    className: \"\".concat(selectionPrefixCls, \"-search\"),\n    style: {\n      width: inputWidth\n    },\n    onFocus: function onFocus() {\n      setFocused(true);\n    },\n    onBlur: function onBlur() {\n      setFocused(false);\n    }\n  }, /*#__PURE__*/React.createElement(Input, {\n    ref: inputRef,\n    open: open,\n    prefixCls: prefixCls,\n    id: id,\n    inputElement: null,\n    disabled: disabled,\n    autoFocus: autoFocus,\n    autoComplete: autoComplete,\n    editable: inputEditable,\n    activeDescendantId: activeDescendantId,\n    value: inputValue,\n    onKeyDown: onInputKeyDown,\n    onMouseDown: onInputMouseDown,\n    onChange: onInputChange,\n    onPaste: onInputPaste,\n    onCompositionStart: onInputCompositionStart,\n    onCompositionEnd: onInputCompositionEnd,\n    tabIndex: tabIndex,\n    attrs: pickAttrs(props, true)\n  }), /*#__PURE__*/React.createElement(\"span\", {\n    ref: measureRef,\n    className: \"\".concat(selectionPrefixCls, \"-search-mirror\"),\n    \"aria-hidden\": true\n  }, inputValue, \"\\xA0\"));\n\n  // >>> Selections\n  var selectionNode = /*#__PURE__*/React.createElement(Overflow, {\n    prefixCls: \"\".concat(selectionPrefixCls, \"-overflow\"),\n    data: values,\n    renderItem: renderItem,\n    renderRest: renderRest,\n    suffix: inputNode,\n    itemKey: itemKey,\n    maxCount: maxTagCount\n  });\n  return /*#__PURE__*/React.createElement(React.Fragment, null, selectionNode, !values.length && !inputValue && /*#__PURE__*/React.createElement(\"span\", {\n    className: \"\".concat(selectionPrefixCls, \"-placeholder\")\n  }, placeholder));\n};\nexport default SelectSelector;","/* eslint-disable react-hooks/rules-of-hooks */\nimport * as React from 'react';\nimport { isBrowserClient } from \"../utils/commonUtil\";\n\n/**\n * Wrap `React.useLayoutEffect` which will not throw warning message in test env\n */\nexport default function useLayoutEffect(effect, deps) {\n  // Never happen in test env\n  if (isBrowserClient) {\n    /* istanbul ignore next */\n    React.useLayoutEffect(effect, deps);\n  } else {\n    React.useEffect(effect, deps);\n  }\n}\n/* eslint-enable */","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport Input from \"./Input\";\nimport { getTitle } from \"../utils/commonUtil\";\nvar SingleSelector = function SingleSelector(props) {\n  var inputElement = props.inputElement,\n    prefixCls = props.prefixCls,\n    id = props.id,\n    inputRef = props.inputRef,\n    disabled = props.disabled,\n    autoFocus = props.autoFocus,\n    autoComplete = props.autoComplete,\n    activeDescendantId = props.activeDescendantId,\n    mode = props.mode,\n    open = props.open,\n    values = props.values,\n    placeholder = props.placeholder,\n    tabIndex = props.tabIndex,\n    showSearch = props.showSearch,\n    searchValue = props.searchValue,\n    activeValue = props.activeValue,\n    maxLength = props.maxLength,\n    onInputKeyDown = props.onInputKeyDown,\n    onInputMouseDown = props.onInputMouseDown,\n    onInputChange = props.onInputChange,\n    onInputPaste = props.onInputPaste,\n    onInputCompositionStart = props.onInputCompositionStart,\n    onInputCompositionEnd = props.onInputCompositionEnd,\n    title = props.title;\n  var _React$useState = React.useState(false),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    inputChanged = _React$useState2[0],\n    setInputChanged = _React$useState2[1];\n  var combobox = mode === 'combobox';\n  var inputEditable = combobox || showSearch;\n  var item = values[0];\n  var inputValue = searchValue || '';\n  if (combobox && activeValue && !inputChanged) {\n    inputValue = activeValue;\n  }\n  React.useEffect(function () {\n    if (combobox) {\n      setInputChanged(false);\n    }\n  }, [combobox, activeValue]);\n\n  // Not show text when closed expect combobox mode\n  var hasTextInput = mode !== 'combobox' && !open && !showSearch ? false : !!inputValue;\n\n  // Get title of selection item\n  var selectionTitle = title === undefined ? getTitle(item) : title;\n  var placeholderNode = React.useMemo(function () {\n    if (item) {\n      return null;\n    }\n    return /*#__PURE__*/React.createElement(\"span\", {\n      className: \"\".concat(prefixCls, \"-selection-placeholder\"),\n      style: hasTextInput ? {\n        visibility: 'hidden'\n      } : undefined\n    }, placeholder);\n  }, [item, hasTextInput, placeholder, prefixCls]);\n  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"span\", {\n    className: \"\".concat(prefixCls, \"-selection-search\")\n  }, /*#__PURE__*/React.createElement(Input, {\n    ref: inputRef,\n    prefixCls: prefixCls,\n    id: id,\n    open: open,\n    inputElement: inputElement,\n    disabled: disabled,\n    autoFocus: autoFocus,\n    autoComplete: autoComplete,\n    editable: inputEditable,\n    activeDescendantId: activeDescendantId,\n    value: inputValue,\n    onKeyDown: onInputKeyDown,\n    onMouseDown: onInputMouseDown,\n    onChange: function onChange(e) {\n      setInputChanged(true);\n      onInputChange(e);\n    },\n    onPaste: onInputPaste,\n    onCompositionStart: onInputCompositionStart,\n    onCompositionEnd: onInputCompositionEnd,\n    tabIndex: tabIndex,\n    attrs: pickAttrs(props, true),\n    maxLength: combobox ? maxLength : undefined\n  })), !combobox && item ? /*#__PURE__*/React.createElement(\"span\", {\n    className: \"\".concat(prefixCls, \"-selection-item\"),\n    title: selectionTitle\n    // 当 Select 已经选中选项时，还需 selection 隐藏但留在原地占位\n    // https://github.com/ant-design/ant-design/issues/27688\n    // https://github.com/ant-design/ant-design/issues/41530\n    ,\n    style: hasTextInput ? {\n      visibility: 'hidden'\n    } : undefined\n  }, item.label) : null, placeholderNode);\n};\nexport default SingleSelector;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\n/**\n * Cursor rule:\n * 1. Only `showSearch` enabled\n * 2. Only `open` is `true`\n * 3. When typing, set `open` to `true` which hit rule of 2\n *\n * Accessibility:\n * - https://www.w3.org/TR/wai-aria-practices/examples/combobox/aria1.1pattern/listbox-combo.html\n */\n\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport * as React from 'react';\nimport { useRef } from 'react';\nimport useLock from \"../hooks/useLock\";\nimport { isValidateOpenKey } from \"../utils/keyUtil\";\nimport MultipleSelector from \"./MultipleSelector\";\nimport SingleSelector from \"./SingleSelector\";\nvar Selector = function Selector(props, ref) {\n  var inputRef = useRef(null);\n  var compositionStatusRef = useRef(false);\n  var prefixCls = props.prefixCls,\n    open = props.open,\n    mode = props.mode,\n    showSearch = props.showSearch,\n    tokenWithEnter = props.tokenWithEnter,\n    disabled = props.disabled,\n    autoClearSearchValue = props.autoClearSearchValue,\n    onSearch = props.onSearch,\n    onSearchSubmit = props.onSearchSubmit,\n    onToggleOpen = props.onToggleOpen,\n    onInputKeyDown = props.onInputKeyDown,\n    domRef = props.domRef;\n\n  // ======================= Ref =======================\n  React.useImperativeHandle(ref, function () {\n    return {\n      focus: function focus(options) {\n        inputRef.current.focus(options);\n      },\n      blur: function blur() {\n        inputRef.current.blur();\n      }\n    };\n  });\n\n  // ====================== Input ======================\n  var _useLock = useLock(0),\n    _useLock2 = _slicedToArray(_useLock, 2),\n    getInputMouseDown = _useLock2[0],\n    setInputMouseDown = _useLock2[1];\n  var onInternalInputKeyDown = function onInternalInputKeyDown(event) {\n    var which = event.which;\n    if (which === KeyCode.UP || which === KeyCode.DOWN) {\n      event.preventDefault();\n    }\n    if (onInputKeyDown) {\n      onInputKeyDown(event);\n    }\n    if (which === KeyCode.ENTER && mode === 'tags' && !compositionStatusRef.current && !open) {\n      // When menu isn't open, OptionList won't trigger a value change\n      // So when enter is pressed, the tag's input value should be emitted here to let selector know\n      onSearchSubmit === null || onSearchSubmit === void 0 || onSearchSubmit(event.target.value);\n    }\n    if (isValidateOpenKey(which)) {\n      onToggleOpen(true);\n    }\n  };\n\n  /**\n   * We can not use `findDOMNode` sine it will get warning,\n   * have to use timer to check if is input element.\n   */\n  var onInternalInputMouseDown = function onInternalInputMouseDown() {\n    setInputMouseDown(true);\n  };\n\n  // When paste come, ignore next onChange\n  var pastedTextRef = useRef(null);\n  var triggerOnSearch = function triggerOnSearch(value) {\n    if (onSearch(value, true, compositionStatusRef.current) !== false) {\n      onToggleOpen(true);\n    }\n  };\n  var onInputCompositionStart = function onInputCompositionStart() {\n    compositionStatusRef.current = true;\n  };\n  var onInputCompositionEnd = function onInputCompositionEnd(e) {\n    compositionStatusRef.current = false;\n\n    // Trigger search again to support `tokenSeparators` with typewriting\n    if (mode !== 'combobox') {\n      triggerOnSearch(e.target.value);\n    }\n  };\n  var onInputChange = function onInputChange(event) {\n    var value = event.target.value;\n\n    // Pasted text should replace back to origin content\n    if (tokenWithEnter && pastedTextRef.current && /[\\r\\n]/.test(pastedTextRef.current)) {\n      // CRLF will be treated as a single space for input element\n      var replacedText = pastedTextRef.current.replace(/[\\r\\n]+$/, '').replace(/\\r\\n/g, ' ').replace(/[\\r\\n]/g, ' ');\n      value = value.replace(replacedText, pastedTextRef.current);\n    }\n    pastedTextRef.current = null;\n    triggerOnSearch(value);\n  };\n  var onInputPaste = function onInputPaste(e) {\n    var clipboardData = e.clipboardData;\n    var value = clipboardData === null || clipboardData === void 0 ? void 0 : clipboardData.getData('text');\n    pastedTextRef.current = value || '';\n  };\n  var onClick = function onClick(_ref) {\n    var target = _ref.target;\n    if (target !== inputRef.current) {\n      // Should focus input if click the selector\n      var isIE = document.body.style.msTouchAction !== undefined;\n      if (isIE) {\n        setTimeout(function () {\n          inputRef.current.focus();\n        });\n      } else {\n        inputRef.current.focus();\n      }\n    }\n  };\n  var onMouseDown = function onMouseDown(event) {\n    var inputMouseDown = getInputMouseDown();\n\n    // when mode is combobox and it is disabled, don't prevent default behavior\n    // https://github.com/ant-design/ant-design/issues/37320\n    // https://github.com/ant-design/ant-design/issues/48281\n    if (event.target !== inputRef.current && !inputMouseDown && !(mode === 'combobox' && disabled)) {\n      event.preventDefault();\n    }\n    if (mode !== 'combobox' && (!showSearch || !inputMouseDown) || !open) {\n      if (open && autoClearSearchValue !== false) {\n        onSearch('', true, false);\n      }\n      onToggleOpen();\n    }\n  };\n\n  // ================= Inner Selector ==================\n  var sharedProps = {\n    inputRef: inputRef,\n    onInputKeyDown: onInternalInputKeyDown,\n    onInputMouseDown: onInternalInputMouseDown,\n    onInputChange: onInputChange,\n    onInputPaste: onInputPaste,\n    onInputCompositionStart: onInputCompositionStart,\n    onInputCompositionEnd: onInputCompositionEnd\n  };\n  var selectNode = mode === 'multiple' || mode === 'tags' ? /*#__PURE__*/React.createElement(MultipleSelector, _extends({}, props, sharedProps)) : /*#__PURE__*/React.createElement(SingleSelector, _extends({}, props, sharedProps));\n  return /*#__PURE__*/React.createElement(\"div\", {\n    ref: domRef,\n    className: \"\".concat(prefixCls, \"-selector\"),\n    onClick: onClick,\n    onMouseDown: onMouseDown\n  }, selectNode);\n};\nvar ForwardSelector = /*#__PURE__*/React.forwardRef(Selector);\nif (process.env.NODE_ENV !== 'production') {\n  ForwardSelector.displayName = 'Selector';\n}\nexport default ForwardSelector;","import KeyCode from \"rc-util/es/KeyCode\";\n\n/** keyCode Judgment function */\nexport function isValidateOpenKey(currentKeyCode) {\n  return ![\n  // System function button\n  KeyCode.ESC, KeyCode.SHIFT, KeyCode.BACKSPACE, KeyCode.TAB, KeyCode.WIN_KEY, KeyCode.ALT, KeyCode.META, KeyCode.WIN_KEY_RIGHT, KeyCode.CTRL, KeyCode.SEMICOLON, KeyCode.EQUALS, KeyCode.CAPS_LOCK, KeyCode.CONTEXT_MENU,\n  // F1-F12\n  KeyCode.F1, KeyCode.F2, KeyCode.F3, KeyCode.F4, KeyCode.F5, KeyCode.F6, KeyCode.F7, KeyCode.F8, KeyCode.F9, KeyCode.F10, KeyCode.F11, KeyCode.F12].includes(currentKeyCode);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"disabled\", \"visible\", \"children\", \"popupElement\", \"animation\", \"transitionName\", \"dropdownStyle\", \"dropdownClassName\", \"direction\", \"placement\", \"builtinPlacements\", \"dropdownMatchSelectWidth\", \"dropdownRender\", \"dropdownAlign\", \"getPopupContainer\", \"empty\", \"getTriggerDOMNode\", \"onPopupVisibleChange\", \"onPopupMouseEnter\"];\nimport Trigger from '@rc-component/trigger';\nimport classNames from 'classnames';\nimport * as React from 'react';\nvar getBuiltInPlacements = function getBuiltInPlacements(dropdownMatchSelectWidth) {\n  // Enable horizontal overflow auto-adjustment when a custom dropdown width is provided\n  var adjustX = dropdownMatchSelectWidth === true ? 0 : 1;\n  return {\n    bottomLeft: {\n      points: ['tl', 'bl'],\n      offset: [0, 4],\n      overflow: {\n        adjustX: adjustX,\n        adjustY: 1\n      },\n      htmlRegion: 'scroll'\n    },\n    bottomRight: {\n      points: ['tr', 'br'],\n      offset: [0, 4],\n      overflow: {\n        adjustX: adjustX,\n        adjustY: 1\n      },\n      htmlRegion: 'scroll'\n    },\n    topLeft: {\n      points: ['bl', 'tl'],\n      offset: [0, -4],\n      overflow: {\n        adjustX: adjustX,\n        adjustY: 1\n      },\n      htmlRegion: 'scroll'\n    },\n    topRight: {\n      points: ['br', 'tr'],\n      offset: [0, -4],\n      overflow: {\n        adjustX: adjustX,\n        adjustY: 1\n      },\n      htmlRegion: 'scroll'\n    }\n  };\n};\nvar SelectTrigger = function SelectTrigger(props, ref) {\n  var prefixCls = props.prefixCls,\n    disabled = props.disabled,\n    visible = props.visible,\n    children = props.children,\n    popupElement = props.popupElement,\n    animation = props.animation,\n    transitionName = props.transitionName,\n    dropdownStyle = props.dropdownStyle,\n    dropdownClassName = props.dropdownClassName,\n    _props$direction = props.direction,\n    direction = _props$direction === void 0 ? 'ltr' : _props$direction,\n    placement = props.placement,\n    builtinPlacements = props.builtinPlacements,\n    dropdownMatchSelectWidth = props.dropdownMatchSelectWidth,\n    dropdownRender = props.dropdownRender,\n    dropdownAlign = props.dropdownAlign,\n    getPopupContainer = props.getPopupContainer,\n    empty = props.empty,\n    getTriggerDOMNode = props.getTriggerDOMNode,\n    onPopupVisibleChange = props.onPopupVisibleChange,\n    onPopupMouseEnter = props.onPopupMouseEnter,\n    restProps = _objectWithoutProperties(props, _excluded);\n  var dropdownPrefixCls = \"\".concat(prefixCls, \"-dropdown\");\n  var popupNode = popupElement;\n  if (dropdownRender) {\n    popupNode = dropdownRender(popupElement);\n  }\n  var mergedBuiltinPlacements = React.useMemo(function () {\n    return builtinPlacements || getBuiltInPlacements(dropdownMatchSelectWidth);\n  }, [builtinPlacements, dropdownMatchSelectWidth]);\n\n  // ===================== Motion ======================\n  var mergedTransitionName = animation ? \"\".concat(dropdownPrefixCls, \"-\").concat(animation) : transitionName;\n\n  // =================== Popup Width ===================\n  var isNumberPopupWidth = typeof dropdownMatchSelectWidth === 'number';\n  var stretch = React.useMemo(function () {\n    if (isNumberPopupWidth) {\n      return null;\n    }\n    return dropdownMatchSelectWidth === false ? 'minWidth' : 'width';\n  }, [dropdownMatchSelectWidth, isNumberPopupWidth]);\n  var popupStyle = dropdownStyle;\n  if (isNumberPopupWidth) {\n    popupStyle = _objectSpread(_objectSpread({}, popupStyle), {}, {\n      width: dropdownMatchSelectWidth\n    });\n  }\n\n  // ======================= Ref =======================\n  var triggerPopupRef = React.useRef(null);\n  React.useImperativeHandle(ref, function () {\n    return {\n      getPopupElement: function getPopupElement() {\n        var _triggerPopupRef$curr;\n        return (_triggerPopupRef$curr = triggerPopupRef.current) === null || _triggerPopupRef$curr === void 0 ? void 0 : _triggerPopupRef$curr.popupElement;\n      }\n    };\n  });\n  return /*#__PURE__*/React.createElement(Trigger, _extends({}, restProps, {\n    showAction: onPopupVisibleChange ? ['click'] : [],\n    hideAction: onPopupVisibleChange ? ['click'] : [],\n    popupPlacement: placement || (direction === 'rtl' ? 'bottomRight' : 'bottomLeft'),\n    builtinPlacements: mergedBuiltinPlacements,\n    prefixCls: dropdownPrefixCls,\n    popupTransitionName: mergedTransitionName,\n    popup: /*#__PURE__*/React.createElement(\"div\", {\n      onMouseEnter: onPopupMouseEnter\n    }, popupNode),\n    ref: triggerPopupRef,\n    stretch: stretch,\n    popupAlign: dropdownAlign,\n    popupVisible: visible,\n    getPopupContainer: getPopupContainer,\n    popupClassName: classNames(dropdownClassName, _defineProperty({}, \"\".concat(dropdownPrefixCls, \"-empty\"), empty)),\n    popupStyle: popupStyle,\n    getTriggerDOMNode: getTriggerDOMNode,\n    onPopupVisibleChange: onPopupVisibleChange\n  }), children);\n};\nvar RefSelectTrigger = /*#__PURE__*/React.forwardRef(SelectTrigger);\nif (process.env.NODE_ENV !== 'production') {\n  RefSelectTrigger.displayName = 'SelectTrigger';\n}\nexport default RefSelectTrigger;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _toArray from \"@babel/runtime/helpers/esm/toArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport warning from \"rc-util/es/warning\";\nfunction getKey(data, index) {\n  var key = data.key;\n  var value;\n  if ('value' in data) {\n    value = data.value;\n  }\n  if (key !== null && key !== undefined) {\n    return key;\n  }\n  if (value !== undefined) {\n    return value;\n  }\n  return \"rc-index-key-\".concat(index);\n}\nexport function isValidCount(value) {\n  return typeof value !== 'undefined' && !Number.isNaN(value);\n}\nexport function fillFieldNames(fieldNames, childrenAsData) {\n  var _ref = fieldNames || {},\n    label = _ref.label,\n    value = _ref.value,\n    options = _ref.options,\n    groupLabel = _ref.groupLabel;\n  var mergedLabel = label || (childrenAsData ? 'children' : 'label');\n  return {\n    label: mergedLabel,\n    value: value || 'value',\n    options: options || 'options',\n    groupLabel: groupLabel || mergedLabel\n  };\n}\n\n/**\n * Flat options into flatten list.\n * We use `optionOnly` here is aim to avoid user use nested option group.\n * Here is simply set `key` to the index if not provided.\n */\nexport function flattenOptions(options) {\n  var _ref2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n    fieldNames = _ref2.fieldNames,\n    childrenAsData = _ref2.childrenAsData;\n  var flattenList = [];\n  var _fillFieldNames = fillFieldNames(fieldNames, false),\n    fieldLabel = _fillFieldNames.label,\n    fieldValue = _fillFieldNames.value,\n    fieldOptions = _fillFieldNames.options,\n    groupLabel = _fillFieldNames.groupLabel;\n  function dig(list, isGroupOption) {\n    if (!Array.isArray(list)) {\n      return;\n    }\n    list.forEach(function (data) {\n      if (isGroupOption || !(fieldOptions in data)) {\n        var value = data[fieldValue];\n\n        // Option\n        flattenList.push({\n          key: getKey(data, flattenList.length),\n          groupOption: isGroupOption,\n          data: data,\n          label: data[fieldLabel],\n          value: value\n        });\n      } else {\n        var grpLabel = data[groupLabel];\n        if (grpLabel === undefined && childrenAsData) {\n          grpLabel = data.label;\n        }\n\n        // Option Group\n        flattenList.push({\n          key: getKey(data, flattenList.length),\n          group: true,\n          data: data,\n          label: grpLabel\n        });\n        dig(data[fieldOptions], true);\n      }\n    });\n  }\n  dig(options, false);\n  return flattenList;\n}\n\n/**\n * Inject `props` into `option` for legacy usage\n */\nexport function injectPropsWithOption(option) {\n  var newOption = _objectSpread({}, option);\n  if (!('props' in newOption)) {\n    Object.defineProperty(newOption, 'props', {\n      get: function get() {\n        warning(false, 'Return type is option instead of Option instance. Please read value directly instead of reading from `props`.');\n        return newOption;\n      }\n    });\n  }\n  return newOption;\n}\nexport var getSeparatedContent = function getSeparatedContent(text, tokens, end) {\n  if (!tokens || !tokens.length) {\n    return null;\n  }\n  var match = false;\n  var separate = function separate(str, _ref3) {\n    var _ref4 = _toArray(_ref3),\n      token = _ref4[0],\n      restTokens = _ref4.slice(1);\n    if (!token) {\n      return [str];\n    }\n    var list = str.split(token);\n    match = match || list.length > 1;\n    return list.reduce(function (prevList, unitStr) {\n      return [].concat(_toConsumableArray(prevList), _toConsumableArray(separate(unitStr, restTokens)));\n    }, []).filter(Boolean);\n  };\n  var list = separate(text, tokens);\n  if (match) {\n    return typeof end !== 'undefined' ? list.slice(0, end) : list;\n  } else {\n    return null;\n  }\n};","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nfunction _toArray(r) {\n  return arrayWithHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableRest();\n}\nexport { _toArray as default };","import * as React from 'react';\n\n// Use any here since we do not get the type during compilation\n\nvar SelectContext = /*#__PURE__*/React.createContext(null);\nexport default SelectContext;","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport * as React from 'react';\nexport default function Polite(props) {\n  var visible = props.visible,\n    values = props.values;\n  if (!visible) {\n    return null;\n  }\n\n  // Only cut part of values since it's a screen reader\n  var MAX_COUNT = 50;\n  return /*#__PURE__*/React.createElement(\"span\", {\n    \"aria-live\": \"polite\",\n    style: {\n      width: 0,\n      height: 0,\n      position: 'absolute',\n      overflow: 'hidden',\n      opacity: 0\n    }\n  }, \"\".concat(values.slice(0, MAX_COUNT).map(function (_ref) {\n    var label = _ref.label,\n      value = _ref.value;\n    return ['number', 'string'].includes(_typeof(label)) ? label : value;\n  }).join(', ')), values.length > MAX_COUNT ? ', ...' : null);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"id\", \"prefixCls\", \"className\", \"showSearch\", \"tagRender\", \"direction\", \"omitDomProps\", \"displayValues\", \"onDisplayValuesChange\", \"emptyOptions\", \"notFoundContent\", \"onClear\", \"mode\", \"disabled\", \"loading\", \"getInputElement\", \"getRawInputElement\", \"open\", \"defaultOpen\", \"onDropdownVisibleChange\", \"activeValue\", \"onActiveValueChange\", \"activeDescendantId\", \"searchValue\", \"autoClearSearchValue\", \"onSearch\", \"onSearchSplit\", \"tokenSeparators\", \"allowClear\", \"suffixIcon\", \"clearIcon\", \"OptionList\", \"animation\", \"transitionName\", \"dropdownStyle\", \"dropdownClassName\", \"dropdownMatchSelectWidth\", \"dropdownRender\", \"dropdownAlign\", \"placement\", \"builtinPlacements\", \"getPopupContainer\", \"showAction\", \"onFocus\", \"onBlur\", \"onKeyUp\", \"onKeyDown\", \"onMouseDown\"];\nimport classNames from 'classnames';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport isMobile from \"rc-util/es/isMobile\";\nimport { useComposeRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport { useAllowClear } from \"../hooks/useAllowClear\";\nimport { BaseSelectContext } from \"../hooks/useBaseProps\";\nimport useDelayReset from \"../hooks/useDelayReset\";\nimport useLock from \"../hooks/useLock\";\nimport useSelectTriggerControl from \"../hooks/useSelectTriggerControl\";\nimport Selector from \"../Selector\";\nimport SelectTrigger from \"../SelectTrigger\";\nimport TransBtn from \"../TransBtn\";\nimport { getSeparatedContent, isValidCount } from \"../utils/valueUtil\";\nimport SelectContext from \"../SelectContext\";\nimport Polite from \"./Polite\";\nvar DEFAULT_OMIT_PROPS = ['value', 'onChange', 'removeIcon', 'placeholder', 'autoFocus', 'maxTagCount', 'maxTagTextLength', 'maxTagPlaceholder', 'choiceTransitionName', 'onInputKeyDown', 'onPopupScroll', 'tabIndex'];\nexport var isMultiple = function isMultiple(mode) {\n  return mode === 'tags' || mode === 'multiple';\n};\nvar BaseSelect = /*#__PURE__*/React.forwardRef(function (props, ref) {\n  var _customizeRawInputEle;\n  var id = props.id,\n    prefixCls = props.prefixCls,\n    className = props.className,\n    showSearch = props.showSearch,\n    tagRender = props.tagRender,\n    direction = props.direction,\n    omitDomProps = props.omitDomProps,\n    displayValues = props.displayValues,\n    onDisplayValuesChange = props.onDisplayValuesChange,\n    emptyOptions = props.emptyOptions,\n    _props$notFoundConten = props.notFoundContent,\n    notFoundContent = _props$notFoundConten === void 0 ? 'Not Found' : _props$notFoundConten,\n    onClear = props.onClear,\n    mode = props.mode,\n    disabled = props.disabled,\n    loading = props.loading,\n    getInputElement = props.getInputElement,\n    getRawInputElement = props.getRawInputElement,\n    open = props.open,\n    defaultOpen = props.defaultOpen,\n    onDropdownVisibleChange = props.onDropdownVisibleChange,\n    activeValue = props.activeValue,\n    onActiveValueChange = props.onActiveValueChange,\n    activeDescendantId = props.activeDescendantId,\n    searchValue = props.searchValue,\n    autoClearSearchValue = props.autoClearSearchValue,\n    onSearch = props.onSearch,\n    onSearchSplit = props.onSearchSplit,\n    tokenSeparators = props.tokenSeparators,\n    allowClear = props.allowClear,\n    suffixIcon = props.suffixIcon,\n    clearIcon = props.clearIcon,\n    OptionList = props.OptionList,\n    animation = props.animation,\n    transitionName = props.transitionName,\n    dropdownStyle = props.dropdownStyle,\n    dropdownClassName = props.dropdownClassName,\n    dropdownMatchSelectWidth = props.dropdownMatchSelectWidth,\n    dropdownRender = props.dropdownRender,\n    dropdownAlign = props.dropdownAlign,\n    placement = props.placement,\n    builtinPlacements = props.builtinPlacements,\n    getPopupContainer = props.getPopupContainer,\n    _props$showAction = props.showAction,\n    showAction = _props$showAction === void 0 ? [] : _props$showAction,\n    onFocus = props.onFocus,\n    onBlur = props.onBlur,\n    onKeyUp = props.onKeyUp,\n    onKeyDown = props.onKeyDown,\n    onMouseDown = props.onMouseDown,\n    restProps = _objectWithoutProperties(props, _excluded);\n\n  // ============================== MISC ==============================\n  var multiple = isMultiple(mode);\n  var mergedShowSearch = (showSearch !== undefined ? showSearch : multiple) || mode === 'combobox';\n  var domProps = _objectSpread({}, restProps);\n  DEFAULT_OMIT_PROPS.forEach(function (propName) {\n    delete domProps[propName];\n  });\n  omitDomProps === null || omitDomProps === void 0 || omitDomProps.forEach(function (propName) {\n    delete domProps[propName];\n  });\n\n  // ============================= Mobile =============================\n  var _React$useState = React.useState(false),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    mobile = _React$useState2[0],\n    setMobile = _React$useState2[1];\n  React.useEffect(function () {\n    // Only update on the client side\n    setMobile(isMobile());\n  }, []);\n\n  // ============================== Refs ==============================\n  var containerRef = React.useRef(null);\n  var selectorDomRef = React.useRef(null);\n  var triggerRef = React.useRef(null);\n  var selectorRef = React.useRef(null);\n  var listRef = React.useRef(null);\n  var blurRef = React.useRef(false);\n\n  /** Used for component focused management */\n  var _useDelayReset = useDelayReset(),\n    _useDelayReset2 = _slicedToArray(_useDelayReset, 3),\n    mockFocused = _useDelayReset2[0],\n    setMockFocused = _useDelayReset2[1],\n    cancelSetMockFocused = _useDelayReset2[2];\n\n  // =========================== Imperative ===========================\n  React.useImperativeHandle(ref, function () {\n    var _selectorRef$current, _selectorRef$current2;\n    return {\n      focus: (_selectorRef$current = selectorRef.current) === null || _selectorRef$current === void 0 ? void 0 : _selectorRef$current.focus,\n      blur: (_selectorRef$current2 = selectorRef.current) === null || _selectorRef$current2 === void 0 ? void 0 : _selectorRef$current2.blur,\n      scrollTo: function scrollTo(arg) {\n        var _listRef$current;\n        return (_listRef$current = listRef.current) === null || _listRef$current === void 0 ? void 0 : _listRef$current.scrollTo(arg);\n      },\n      nativeElement: containerRef.current || selectorDomRef.current\n    };\n  });\n\n  // ========================== Search Value ==========================\n  var mergedSearchValue = React.useMemo(function () {\n    var _displayValues$;\n    if (mode !== 'combobox') {\n      return searchValue;\n    }\n    var val = (_displayValues$ = displayValues[0]) === null || _displayValues$ === void 0 ? void 0 : _displayValues$.value;\n    return typeof val === 'string' || typeof val === 'number' ? String(val) : '';\n  }, [searchValue, mode, displayValues]);\n\n  // ========================== Custom Input ==========================\n  // Only works in `combobox`\n  var customizeInputElement = mode === 'combobox' && typeof getInputElement === 'function' && getInputElement() || null;\n\n  // Used for customize replacement for `rc-cascader`\n  var customizeRawInputElement = typeof getRawInputElement === 'function' && getRawInputElement();\n  var customizeRawInputRef = useComposeRef(selectorDomRef, customizeRawInputElement === null || customizeRawInputElement === void 0 || (_customizeRawInputEle = customizeRawInputElement.props) === null || _customizeRawInputEle === void 0 ? void 0 : _customizeRawInputEle.ref);\n\n  // ============================== Open ==============================\n  // SSR not support Portal which means we need delay `open` for the first time render\n  var _React$useState3 = React.useState(false),\n    _React$useState4 = _slicedToArray(_React$useState3, 2),\n    rendered = _React$useState4[0],\n    setRendered = _React$useState4[1];\n  useLayoutEffect(function () {\n    setRendered(true);\n  }, []);\n  var _useMergedState = useMergedState(false, {\n      defaultValue: defaultOpen,\n      value: open\n    }),\n    _useMergedState2 = _slicedToArray(_useMergedState, 2),\n    innerOpen = _useMergedState2[0],\n    setInnerOpen = _useMergedState2[1];\n  var mergedOpen = rendered ? innerOpen : false;\n\n  // Not trigger `open` in `combobox` when `notFoundContent` is empty\n  var emptyListContent = !notFoundContent && emptyOptions;\n  if (disabled || emptyListContent && mergedOpen && mode === 'combobox') {\n    mergedOpen = false;\n  }\n  var triggerOpen = emptyListContent ? false : mergedOpen;\n  var onToggleOpen = React.useCallback(function (newOpen) {\n    var nextOpen = newOpen !== undefined ? newOpen : !mergedOpen;\n    if (!disabled) {\n      setInnerOpen(nextOpen);\n      if (mergedOpen !== nextOpen) {\n        onDropdownVisibleChange === null || onDropdownVisibleChange === void 0 || onDropdownVisibleChange(nextOpen);\n      }\n    }\n  }, [disabled, mergedOpen, setInnerOpen, onDropdownVisibleChange]);\n\n  // ============================= Search =============================\n  var tokenWithEnter = React.useMemo(function () {\n    return (tokenSeparators || []).some(function (tokenSeparator) {\n      return ['\\n', '\\r\\n'].includes(tokenSeparator);\n    });\n  }, [tokenSeparators]);\n  var _ref = React.useContext(SelectContext) || {},\n    maxCount = _ref.maxCount,\n    rawValues = _ref.rawValues;\n  var onInternalSearch = function onInternalSearch(searchText, fromTyping, isCompositing) {\n    if (multiple && isValidCount(maxCount) && (rawValues === null || rawValues === void 0 ? void 0 : rawValues.size) >= maxCount) {\n      return;\n    }\n    var ret = true;\n    var newSearchText = searchText;\n    onActiveValueChange === null || onActiveValueChange === void 0 || onActiveValueChange(null);\n    var separatedList = getSeparatedContent(searchText, tokenSeparators, isValidCount(maxCount) ? maxCount - rawValues.size : undefined);\n\n    // Check if match the `tokenSeparators`\n    var patchLabels = isCompositing ? null : separatedList;\n\n    // Ignore combobox since it's not split-able\n    if (mode !== 'combobox' && patchLabels) {\n      newSearchText = '';\n      onSearchSplit === null || onSearchSplit === void 0 || onSearchSplit(patchLabels);\n\n      // Should close when paste finish\n      onToggleOpen(false);\n\n      // Tell Selector that break next actions\n      ret = false;\n    }\n    if (onSearch && mergedSearchValue !== newSearchText) {\n      onSearch(newSearchText, {\n        source: fromTyping ? 'typing' : 'effect'\n      });\n    }\n    return ret;\n  };\n\n  // Only triggered when menu is closed & mode is tags\n  // If menu is open, OptionList will take charge\n  // If mode isn't tags, press enter is not meaningful when you can't see any option\n  var onInternalSearchSubmit = function onInternalSearchSubmit(searchText) {\n    // prevent empty tags from appearing when you click the Enter button\n    if (!searchText || !searchText.trim()) {\n      return;\n    }\n    onSearch(searchText, {\n      source: 'submit'\n    });\n  };\n\n  // Close will clean up single mode search text\n  React.useEffect(function () {\n    if (!mergedOpen && !multiple && mode !== 'combobox') {\n      onInternalSearch('', false, false);\n    }\n  }, [mergedOpen]);\n\n  // ============================ Disabled ============================\n  // Close dropdown & remove focus state when disabled change\n  React.useEffect(function () {\n    if (innerOpen && disabled) {\n      setInnerOpen(false);\n    }\n\n    // After onBlur is triggered, the focused does not need to be reset\n    if (disabled && !blurRef.current) {\n      setMockFocused(false);\n    }\n  }, [disabled]);\n\n  // ============================ Keyboard ============================\n  /**\n   * We record input value here to check if can press to clean up by backspace\n   * - null: Key is not down, this is reset by key up\n   * - true: Search text is empty when first time backspace down\n   * - false: Search text is not empty when first time backspace down\n   */\n  var _useLock = useLock(),\n    _useLock2 = _slicedToArray(_useLock, 2),\n    getClearLock = _useLock2[0],\n    setClearLock = _useLock2[1];\n  var keyLockRef = React.useRef(false);\n\n  // KeyDown\n  var onInternalKeyDown = function onInternalKeyDown(event) {\n    var clearLock = getClearLock();\n    var key = event.key;\n    var isEnterKey = key === 'Enter';\n    if (isEnterKey) {\n      // Do not submit form when type in the input\n      if (mode !== 'combobox') {\n        event.preventDefault();\n      }\n\n      // We only manage open state here, close logic should handle by list component\n      if (!mergedOpen) {\n        onToggleOpen(true);\n      }\n    }\n    setClearLock(!!mergedSearchValue);\n\n    // Remove value by `backspace`\n    if (key === 'Backspace' && !clearLock && multiple && !mergedSearchValue && displayValues.length) {\n      var cloneDisplayValues = _toConsumableArray(displayValues);\n      var removedDisplayValue = null;\n      for (var i = cloneDisplayValues.length - 1; i >= 0; i -= 1) {\n        var current = cloneDisplayValues[i];\n        if (!current.disabled) {\n          cloneDisplayValues.splice(i, 1);\n          removedDisplayValue = current;\n          break;\n        }\n      }\n      if (removedDisplayValue) {\n        onDisplayValuesChange(cloneDisplayValues, {\n          type: 'remove',\n          values: [removedDisplayValue]\n        });\n      }\n    }\n    for (var _len = arguments.length, rest = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n      rest[_key - 1] = arguments[_key];\n    }\n    if (mergedOpen && (!isEnterKey || !keyLockRef.current)) {\n      var _listRef$current2;\n      (_listRef$current2 = listRef.current) === null || _listRef$current2 === void 0 || _listRef$current2.onKeyDown.apply(_listRef$current2, [event].concat(rest));\n    }\n    if (isEnterKey) {\n      keyLockRef.current = true;\n    }\n    onKeyDown === null || onKeyDown === void 0 || onKeyDown.apply(void 0, [event].concat(rest));\n  };\n\n  // KeyUp\n  var onInternalKeyUp = function onInternalKeyUp(event) {\n    for (var _len2 = arguments.length, rest = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n      rest[_key2 - 1] = arguments[_key2];\n    }\n    if (mergedOpen) {\n      var _listRef$current3;\n      (_listRef$current3 = listRef.current) === null || _listRef$current3 === void 0 || _listRef$current3.onKeyUp.apply(_listRef$current3, [event].concat(rest));\n    }\n    if (event.key === 'Enter') {\n      keyLockRef.current = false;\n    }\n    onKeyUp === null || onKeyUp === void 0 || onKeyUp.apply(void 0, [event].concat(rest));\n  };\n\n  // ============================ Selector ============================\n  var onSelectorRemove = function onSelectorRemove(val) {\n    var newValues = displayValues.filter(function (i) {\n      return i !== val;\n    });\n    onDisplayValuesChange(newValues, {\n      type: 'remove',\n      values: [val]\n    });\n  };\n\n  // ========================== Focus / Blur ==========================\n  /** Record real focus status */\n  var focusRef = React.useRef(false);\n  var onContainerFocus = function onContainerFocus() {\n    setMockFocused(true);\n    if (!disabled) {\n      if (onFocus && !focusRef.current) {\n        onFocus.apply(void 0, arguments);\n      }\n\n      // `showAction` should handle `focus` if set\n      if (showAction.includes('focus')) {\n        onToggleOpen(true);\n      }\n    }\n    focusRef.current = true;\n  };\n  var onContainerBlur = function onContainerBlur() {\n    blurRef.current = true;\n    setMockFocused(false, function () {\n      focusRef.current = false;\n      blurRef.current = false;\n      onToggleOpen(false);\n    });\n    if (disabled) {\n      return;\n    }\n    if (mergedSearchValue) {\n      // `tags` mode should move `searchValue` into values\n      if (mode === 'tags') {\n        onSearch(mergedSearchValue, {\n          source: 'submit'\n        });\n      } else if (mode === 'multiple') {\n        // `multiple` mode only clean the search value but not trigger event\n        onSearch('', {\n          source: 'blur'\n        });\n      }\n    }\n    if (onBlur) {\n      onBlur.apply(void 0, arguments);\n    }\n  };\n\n  // Give focus back of Select\n  var activeTimeoutIds = [];\n  React.useEffect(function () {\n    return function () {\n      activeTimeoutIds.forEach(function (timeoutId) {\n        return clearTimeout(timeoutId);\n      });\n      activeTimeoutIds.splice(0, activeTimeoutIds.length);\n    };\n  }, []);\n  var onInternalMouseDown = function onInternalMouseDown(event) {\n    var _triggerRef$current;\n    var target = event.target;\n    var popupElement = (_triggerRef$current = triggerRef.current) === null || _triggerRef$current === void 0 ? void 0 : _triggerRef$current.getPopupElement();\n\n    // We should give focus back to selector if clicked item is not focusable\n    if (popupElement && popupElement.contains(target)) {\n      var timeoutId = setTimeout(function () {\n        var index = activeTimeoutIds.indexOf(timeoutId);\n        if (index !== -1) {\n          activeTimeoutIds.splice(index, 1);\n        }\n        cancelSetMockFocused();\n        if (!mobile && !popupElement.contains(document.activeElement)) {\n          var _selectorRef$current3;\n          (_selectorRef$current3 = selectorRef.current) === null || _selectorRef$current3 === void 0 || _selectorRef$current3.focus();\n        }\n      });\n      activeTimeoutIds.push(timeoutId);\n    }\n    for (var _len3 = arguments.length, restArgs = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n      restArgs[_key3 - 1] = arguments[_key3];\n    }\n    onMouseDown === null || onMouseDown === void 0 || onMouseDown.apply(void 0, [event].concat(restArgs));\n  };\n\n  // ============================ Dropdown ============================\n  var _React$useState5 = React.useState({}),\n    _React$useState6 = _slicedToArray(_React$useState5, 2),\n    forceUpdate = _React$useState6[1];\n  // We need force update here since popup dom is render async\n  function onPopupMouseEnter() {\n    forceUpdate({});\n  }\n\n  // Used for raw custom input trigger\n  var onTriggerVisibleChange;\n  if (customizeRawInputElement) {\n    onTriggerVisibleChange = function onTriggerVisibleChange(newOpen) {\n      onToggleOpen(newOpen);\n    };\n  }\n\n  // Close when click on non-select element\n  useSelectTriggerControl(function () {\n    var _triggerRef$current2;\n    return [containerRef.current, (_triggerRef$current2 = triggerRef.current) === null || _triggerRef$current2 === void 0 ? void 0 : _triggerRef$current2.getPopupElement()];\n  }, triggerOpen, onToggleOpen, !!customizeRawInputElement);\n\n  // ============================ Context =============================\n  var baseSelectContext = React.useMemo(function () {\n    return _objectSpread(_objectSpread({}, props), {}, {\n      notFoundContent: notFoundContent,\n      open: mergedOpen,\n      triggerOpen: triggerOpen,\n      id: id,\n      showSearch: mergedShowSearch,\n      multiple: multiple,\n      toggleOpen: onToggleOpen\n    });\n  }, [props, notFoundContent, triggerOpen, mergedOpen, id, mergedShowSearch, multiple, onToggleOpen]);\n\n  // ==================================================================\n  // ==                            Render                            ==\n  // ==================================================================\n\n  // ============================= Arrow ==============================\n  var showSuffixIcon = !!suffixIcon || loading;\n  var arrowNode;\n  if (showSuffixIcon) {\n    arrowNode = /*#__PURE__*/React.createElement(TransBtn, {\n      className: classNames(\"\".concat(prefixCls, \"-arrow\"), _defineProperty({}, \"\".concat(prefixCls, \"-arrow-loading\"), loading)),\n      customizeIcon: suffixIcon,\n      customizeIconProps: {\n        loading: loading,\n        searchValue: mergedSearchValue,\n        open: mergedOpen,\n        focused: mockFocused,\n        showSearch: mergedShowSearch\n      }\n    });\n  }\n\n  // ============================= Clear ==============================\n  var onClearMouseDown = function onClearMouseDown() {\n    var _selectorRef$current4;\n    onClear === null || onClear === void 0 || onClear();\n    (_selectorRef$current4 = selectorRef.current) === null || _selectorRef$current4 === void 0 || _selectorRef$current4.focus();\n    onDisplayValuesChange([], {\n      type: 'clear',\n      values: displayValues\n    });\n    onInternalSearch('', false, false);\n  };\n  var _useAllowClear = useAllowClear(prefixCls, onClearMouseDown, displayValues, allowClear, clearIcon, disabled, mergedSearchValue, mode),\n    mergedAllowClear = _useAllowClear.allowClear,\n    clearNode = _useAllowClear.clearIcon;\n\n  // =========================== OptionList ===========================\n  var optionList = /*#__PURE__*/React.createElement(OptionList, {\n    ref: listRef\n  });\n\n  // ============================= Select =============================\n  var mergedClassName = classNames(prefixCls, className, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-focused\"), mockFocused), \"\".concat(prefixCls, \"-multiple\"), multiple), \"\".concat(prefixCls, \"-single\"), !multiple), \"\".concat(prefixCls, \"-allow-clear\"), allowClear), \"\".concat(prefixCls, \"-show-arrow\"), showSuffixIcon), \"\".concat(prefixCls, \"-disabled\"), disabled), \"\".concat(prefixCls, \"-loading\"), loading), \"\".concat(prefixCls, \"-open\"), mergedOpen), \"\".concat(prefixCls, \"-customize-input\"), customizeInputElement), \"\".concat(prefixCls, \"-show-search\"), mergedShowSearch));\n\n  // >>> Selector\n  var selectorNode = /*#__PURE__*/React.createElement(SelectTrigger, {\n    ref: triggerRef,\n    disabled: disabled,\n    prefixCls: prefixCls,\n    visible: triggerOpen,\n    popupElement: optionList,\n    animation: animation,\n    transitionName: transitionName,\n    dropdownStyle: dropdownStyle,\n    dropdownClassName: dropdownClassName,\n    direction: direction,\n    dropdownMatchSelectWidth: dropdownMatchSelectWidth,\n    dropdownRender: dropdownRender,\n    dropdownAlign: dropdownAlign,\n    placement: placement,\n    builtinPlacements: builtinPlacements,\n    getPopupContainer: getPopupContainer,\n    empty: emptyOptions,\n    getTriggerDOMNode: function getTriggerDOMNode(node) {\n      return (\n        // TODO: This is workaround and should be removed in `rc-select`\n        // And use new standard `nativeElement` for ref.\n        // But we should update `rc-resize-observer` first.\n        selectorDomRef.current || node\n      );\n    },\n    onPopupVisibleChange: onTriggerVisibleChange,\n    onPopupMouseEnter: onPopupMouseEnter\n  }, customizeRawInputElement ? ( /*#__PURE__*/React.cloneElement(customizeRawInputElement, {\n    ref: customizeRawInputRef\n  })) : /*#__PURE__*/React.createElement(Selector, _extends({}, props, {\n    domRef: selectorDomRef,\n    prefixCls: prefixCls,\n    inputElement: customizeInputElement,\n    ref: selectorRef,\n    id: id,\n    showSearch: mergedShowSearch,\n    autoClearSearchValue: autoClearSearchValue,\n    mode: mode,\n    activeDescendantId: activeDescendantId,\n    tagRender: tagRender,\n    values: displayValues,\n    open: mergedOpen,\n    onToggleOpen: onToggleOpen,\n    activeValue: activeValue,\n    searchValue: mergedSearchValue,\n    onSearch: onInternalSearch,\n    onSearchSubmit: onInternalSearchSubmit,\n    onRemove: onSelectorRemove,\n    tokenWithEnter: tokenWithEnter\n  })));\n\n  // >>> Render\n  var renderNode;\n\n  // Render raw\n  if (customizeRawInputElement) {\n    renderNode = selectorNode;\n  } else {\n    renderNode = /*#__PURE__*/React.createElement(\"div\", _extends({\n      className: mergedClassName\n    }, domProps, {\n      ref: containerRef,\n      onMouseDown: onInternalMouseDown,\n      onKeyDown: onInternalKeyDown,\n      onKeyUp: onInternalKeyUp,\n      onFocus: onContainerFocus,\n      onBlur: onContainerBlur\n    }), /*#__PURE__*/React.createElement(Polite, {\n      visible: mockFocused && !mergedOpen,\n      values: displayValues\n    }), selectorNode, arrowNode, mergedAllowClear && clearNode);\n  }\n  return /*#__PURE__*/React.createElement(BaseSelectContext.Provider, {\n    value: baseSelectContext\n  }, renderNode);\n});\n\n// Set display name for dev\nif (process.env.NODE_ENV !== 'production') {\n  BaseSelect.displayName = 'BaseSelect';\n}\nexport default BaseSelect;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\n\n/**\n * Similar with `useLock`, but this hook will always execute last value.\n * When set to `true`, it will keep `true` for a short time even if `false` is set.\n */\nexport default function useDelayReset() {\n  var timeout = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 10;\n  var _React$useState = React.useState(false),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    bool = _React$useState2[0],\n    setBool = _React$useState2[1];\n  var delayRef = React.useRef(null);\n  var cancelLatest = function cancelLatest() {\n    window.clearTimeout(delayRef.current);\n  };\n  React.useEffect(function () {\n    return cancelLatest;\n  }, []);\n  var delaySetBool = function delaySetBool(value, callback) {\n    cancelLatest();\n    delayRef.current = window.setTimeout(function () {\n      setBool(value);\n      if (callback) {\n        callback();\n      }\n    }, timeout);\n  };\n  return [bool, delaySetBool, cancelLatest];\n}","import * as React from 'react';\nexport default function useSelectTriggerControl(elements, open, triggerOpen, customizedTrigger) {\n  var propsRef = React.useRef(null);\n  propsRef.current = {\n    open: open,\n    triggerOpen: triggerOpen,\n    customizedTrigger: customizedTrigger\n  };\n  React.useEffect(function () {\n    function onGlobalMouseDown(event) {\n      var _propsRef$current;\n      // If trigger is customized, Trigger will take control of popupVisible\n      if ((_propsRef$current = propsRef.current) !== null && _propsRef$current !== void 0 && _propsRef$current.customizedTrigger) {\n        return;\n      }\n      var target = event.target;\n      if (target.shadowRoot && event.composed) {\n        target = event.composedPath()[0] || target;\n      }\n      if (propsRef.current.open && elements().filter(function (element) {\n        return element;\n      }).every(function (element) {\n        return !element.contains(target) && element !== target;\n      })) {\n        // Should trigger close\n        propsRef.current.triggerOpen(false);\n      }\n    }\n    window.addEventListener('mousedown', onGlobalMouseDown);\n    return function () {\n      return window.removeEventListener('mousedown', onGlobalMouseDown);\n    };\n  }, []);\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport TransBtn from \"../TransBtn\";\nimport React from 'react';\nexport var useAllowClear = function useAllowClear(prefixCls, onClearMouseDown, displayValues, allowClear, clearIcon) {\n  var disabled = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : false;\n  var mergedSearchValue = arguments.length > 6 ? arguments[6] : undefined;\n  var mode = arguments.length > 7 ? arguments[7] : undefined;\n  var mergedClearIcon = React.useMemo(function () {\n    if (_typeof(allowClear) === 'object') {\n      return allowClear.clearIcon;\n    }\n    if (clearIcon) {\n      return clearIcon;\n    }\n  }, [allowClear, clearIcon]);\n  var mergedAllowClear = React.useMemo(function () {\n    if (!disabled && !!allowClear && (displayValues.length || mergedSearchValue) && !(mode === 'combobox' && mergedSearchValue === '')) {\n      return true;\n    }\n    return false;\n  }, [allowClear, disabled, displayValues.length, mergedSearchValue, mode]);\n  return {\n    allowClear: mergedAllowClear,\n    clearIcon: /*#__PURE__*/React.createElement(TransBtn, {\n      className: \"\".concat(prefixCls, \"-clear\"),\n      onMouseDown: onClearMouseDown,\n      customizeIcon: mergedClearIcon\n    }, \"\\xD7\")\n  };\n};","/* istanbul ignore file */\n\n/** This is a placeholder, not real render in dom */\nvar OptGroup = function OptGroup() {\n  return null;\n};\nOptGroup.isSelectOptGroup = true;\nexport default OptGroup;","/* istanbul ignore file */\n\n/** This is a placeholder, not real render in dom */\nvar Option = function Option() {\n  return null;\n};\nOption.isSelectOption = true;\nexport default Option;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nvar _excluded = [\"disabled\", \"title\", \"children\", \"style\", \"className\"];\nimport classNames from 'classnames';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport useMemo from \"rc-util/es/hooks/useMemo\";\nimport omit from \"rc-util/es/omit\";\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport List from 'rc-virtual-list';\nimport * as React from 'react';\nimport { useEffect } from 'react';\nimport SelectContext from \"./SelectContext\";\nimport TransBtn from \"./TransBtn\";\nimport useBaseProps from \"./hooks/useBaseProps\";\nimport { isPlatformMac } from \"./utils/platformUtil\";\nimport { isValidCount } from \"./utils/valueUtil\";\n\n// export interface OptionListProps<OptionsType extends object[]> {\n\nfunction isTitleType(content) {\n  return typeof content === 'string' || typeof content === 'number';\n}\n\n/**\n * Using virtual list of option display.\n * Will fallback to dom if use customize render.\n */\nvar OptionList = function OptionList(_, ref) {\n  var _useBaseProps = useBaseProps(),\n    prefixCls = _useBaseProps.prefixCls,\n    id = _useBaseProps.id,\n    open = _useBaseProps.open,\n    multiple = _useBaseProps.multiple,\n    mode = _useBaseProps.mode,\n    searchValue = _useBaseProps.searchValue,\n    toggleOpen = _useBaseProps.toggleOpen,\n    notFoundContent = _useBaseProps.notFoundContent,\n    onPopupScroll = _useBaseProps.onPopupScroll;\n  var _React$useContext = React.useContext(SelectContext),\n    maxCount = _React$useContext.maxCount,\n    flattenOptions = _React$useContext.flattenOptions,\n    onActiveValue = _React$useContext.onActiveValue,\n    defaultActiveFirstOption = _React$useContext.defaultActiveFirstOption,\n    onSelect = _React$useContext.onSelect,\n    menuItemSelectedIcon = _React$useContext.menuItemSelectedIcon,\n    rawValues = _React$useContext.rawValues,\n    fieldNames = _React$useContext.fieldNames,\n    virtual = _React$useContext.virtual,\n    direction = _React$useContext.direction,\n    listHeight = _React$useContext.listHeight,\n    listItemHeight = _React$useContext.listItemHeight,\n    optionRender = _React$useContext.optionRender;\n  var itemPrefixCls = \"\".concat(prefixCls, \"-item\");\n  var memoFlattenOptions = useMemo(function () {\n    return flattenOptions;\n  }, [open, flattenOptions], function (prev, next) {\n    return next[0] && prev[1] !== next[1];\n  });\n\n  // =========================== List ===========================\n  var listRef = React.useRef(null);\n  var overMaxCount = React.useMemo(function () {\n    return multiple && isValidCount(maxCount) && (rawValues === null || rawValues === void 0 ? void 0 : rawValues.size) >= maxCount;\n  }, [multiple, maxCount, rawValues === null || rawValues === void 0 ? void 0 : rawValues.size]);\n  var onListMouseDown = function onListMouseDown(event) {\n    event.preventDefault();\n  };\n  var scrollIntoView = function scrollIntoView(args) {\n    var _listRef$current;\n    (_listRef$current = listRef.current) === null || _listRef$current === void 0 || _listRef$current.scrollTo(typeof args === 'number' ? {\n      index: args\n    } : args);\n  };\n\n  // ========================== Active ==========================\n  var getEnabledActiveIndex = function getEnabledActiveIndex(index) {\n    var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n    var len = memoFlattenOptions.length;\n    for (var i = 0; i < len; i += 1) {\n      var current = (index + i * offset + len) % len;\n      var _ref = memoFlattenOptions[current] || {},\n        group = _ref.group,\n        data = _ref.data;\n      if (!group && !(data !== null && data !== void 0 && data.disabled) && !overMaxCount) {\n        return current;\n      }\n    }\n    return -1;\n  };\n  var _React$useState = React.useState(function () {\n      return getEnabledActiveIndex(0);\n    }),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    activeIndex = _React$useState2[0],\n    setActiveIndex = _React$useState2[1];\n  var setActive = function setActive(index) {\n    var fromKeyboard = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n    setActiveIndex(index);\n    var info = {\n      source: fromKeyboard ? 'keyboard' : 'mouse'\n    };\n\n    // Trigger active event\n    var flattenItem = memoFlattenOptions[index];\n    if (!flattenItem) {\n      onActiveValue(null, -1, info);\n      return;\n    }\n    onActiveValue(flattenItem.value, index, info);\n  };\n\n  // Auto active first item when list length or searchValue changed\n  useEffect(function () {\n    setActive(defaultActiveFirstOption !== false ? getEnabledActiveIndex(0) : -1);\n  }, [memoFlattenOptions.length, searchValue]);\n\n  // https://github.com/ant-design/ant-design/issues/34975\n  var isSelected = React.useCallback(function (value) {\n    return rawValues.has(value) && mode !== 'combobox';\n  }, [mode, _toConsumableArray(rawValues).toString(), rawValues.size]);\n\n  // Auto scroll to item position in single mode\n  useEffect(function () {\n    /**\n     * React will skip `onChange` when component update.\n     * `setActive` function will call root accessibility state update which makes re-render.\n     * So we need to delay to let Input component trigger onChange first.\n     */\n    var timeoutId = setTimeout(function () {\n      if (!multiple && open && rawValues.size === 1) {\n        var value = Array.from(rawValues)[0];\n        var index = memoFlattenOptions.findIndex(function (_ref2) {\n          var data = _ref2.data;\n          return data.value === value;\n        });\n        if (index !== -1) {\n          setActive(index);\n          scrollIntoView(index);\n        }\n      }\n    });\n\n    // Force trigger scrollbar visible when open\n    if (open) {\n      var _listRef$current2;\n      (_listRef$current2 = listRef.current) === null || _listRef$current2 === void 0 || _listRef$current2.scrollTo(undefined);\n    }\n    return function () {\n      return clearTimeout(timeoutId);\n    };\n  }, [open, searchValue]);\n\n  // ========================== Values ==========================\n  var onSelectValue = function onSelectValue(value) {\n    if (value !== undefined) {\n      onSelect(value, {\n        selected: !rawValues.has(value)\n      });\n    }\n\n    // Single mode should always close by select\n    if (!multiple) {\n      toggleOpen(false);\n    }\n  };\n\n  // ========================= Keyboard =========================\n  React.useImperativeHandle(ref, function () {\n    return {\n      onKeyDown: function onKeyDown(event) {\n        var which = event.which,\n          ctrlKey = event.ctrlKey;\n        switch (which) {\n          // >>> Arrow keys & ctrl + n/p on Mac\n          case KeyCode.N:\n          case KeyCode.P:\n          case KeyCode.UP:\n          case KeyCode.DOWN:\n            {\n              var offset = 0;\n              if (which === KeyCode.UP) {\n                offset = -1;\n              } else if (which === KeyCode.DOWN) {\n                offset = 1;\n              } else if (isPlatformMac() && ctrlKey) {\n                if (which === KeyCode.N) {\n                  offset = 1;\n                } else if (which === KeyCode.P) {\n                  offset = -1;\n                }\n              }\n              if (offset !== 0) {\n                var nextActiveIndex = getEnabledActiveIndex(activeIndex + offset, offset);\n                scrollIntoView(nextActiveIndex);\n                setActive(nextActiveIndex, true);\n              }\n              break;\n            }\n\n          // >>> Select\n          case KeyCode.ENTER:\n            {\n              var _item$data;\n              // value\n              var item = memoFlattenOptions[activeIndex];\n              if (item && !(item !== null && item !== void 0 && (_item$data = item.data) !== null && _item$data !== void 0 && _item$data.disabled) && !overMaxCount) {\n                onSelectValue(item.value);\n              } else {\n                onSelectValue(undefined);\n              }\n              if (open) {\n                event.preventDefault();\n              }\n              break;\n            }\n\n          // >>> Close\n          case KeyCode.ESC:\n            {\n              toggleOpen(false);\n              if (open) {\n                event.stopPropagation();\n              }\n            }\n        }\n      },\n      onKeyUp: function onKeyUp() {},\n      scrollTo: function scrollTo(index) {\n        scrollIntoView(index);\n      }\n    };\n  });\n\n  // ========================== Render ==========================\n  if (memoFlattenOptions.length === 0) {\n    return /*#__PURE__*/React.createElement(\"div\", {\n      role: \"listbox\",\n      id: \"\".concat(id, \"_list\"),\n      className: \"\".concat(itemPrefixCls, \"-empty\"),\n      onMouseDown: onListMouseDown\n    }, notFoundContent);\n  }\n  var omitFieldNameList = Object.keys(fieldNames).map(function (key) {\n    return fieldNames[key];\n  });\n  var getLabel = function getLabel(item) {\n    return item.label;\n  };\n  function getItemAriaProps(item, index) {\n    var group = item.group;\n    return {\n      role: group ? 'presentation' : 'option',\n      id: \"\".concat(id, \"_list_\").concat(index)\n    };\n  }\n  var renderItem = function renderItem(index) {\n    var item = memoFlattenOptions[index];\n    if (!item) {\n      return null;\n    }\n    var itemData = item.data || {};\n    var value = itemData.value;\n    var group = item.group;\n    var attrs = pickAttrs(itemData, true);\n    var mergedLabel = getLabel(item);\n    return item ? /*#__PURE__*/React.createElement(\"div\", _extends({\n      \"aria-label\": typeof mergedLabel === 'string' && !group ? mergedLabel : null\n    }, attrs, {\n      key: index\n    }, getItemAriaProps(item, index), {\n      \"aria-selected\": isSelected(value)\n    }), value) : null;\n  };\n  var a11yProps = {\n    role: 'listbox',\n    id: \"\".concat(id, \"_list\")\n  };\n  return /*#__PURE__*/React.createElement(React.Fragment, null, virtual && /*#__PURE__*/React.createElement(\"div\", _extends({}, a11yProps, {\n    style: {\n      height: 0,\n      width: 0,\n      overflow: 'hidden'\n    }\n  }), renderItem(activeIndex - 1), renderItem(activeIndex), renderItem(activeIndex + 1)), /*#__PURE__*/React.createElement(List, {\n    itemKey: \"key\",\n    ref: listRef,\n    data: memoFlattenOptions,\n    height: listHeight,\n    itemHeight: listItemHeight,\n    fullHeight: false,\n    onMouseDown: onListMouseDown,\n    onScroll: onPopupScroll,\n    virtual: virtual,\n    direction: direction,\n    innerProps: virtual ? null : a11yProps\n  }, function (item, itemIndex) {\n    var group = item.group,\n      groupOption = item.groupOption,\n      data = item.data,\n      label = item.label,\n      value = item.value;\n    var key = data.key;\n\n    // Group\n    if (group) {\n      var _data$title;\n      var groupTitle = (_data$title = data.title) !== null && _data$title !== void 0 ? _data$title : isTitleType(label) ? label.toString() : undefined;\n      return /*#__PURE__*/React.createElement(\"div\", {\n        className: classNames(itemPrefixCls, \"\".concat(itemPrefixCls, \"-group\"), data.className),\n        title: groupTitle\n      }, label !== undefined ? label : key);\n    }\n    var disabled = data.disabled,\n      title = data.title,\n      children = data.children,\n      style = data.style,\n      className = data.className,\n      otherProps = _objectWithoutProperties(data, _excluded);\n    var passedProps = omit(otherProps, omitFieldNameList);\n\n    // Option\n    var selected = isSelected(value);\n    var mergedDisabled = disabled || !selected && overMaxCount;\n    var optionPrefixCls = \"\".concat(itemPrefixCls, \"-option\");\n    var optionClassName = classNames(itemPrefixCls, optionPrefixCls, className, _defineProperty(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(optionPrefixCls, \"-grouped\"), groupOption), \"\".concat(optionPrefixCls, \"-active\"), activeIndex === itemIndex && !mergedDisabled), \"\".concat(optionPrefixCls, \"-disabled\"), mergedDisabled), \"\".concat(optionPrefixCls, \"-selected\"), selected));\n    var mergedLabel = getLabel(item);\n    var iconVisible = !menuItemSelectedIcon || typeof menuItemSelectedIcon === 'function' || selected;\n\n    // https://github.com/ant-design/ant-design/issues/34145\n    var content = typeof mergedLabel === 'number' ? mergedLabel : mergedLabel || value;\n    // https://github.com/ant-design/ant-design/issues/26717\n    var optionTitle = isTitleType(content) ? content.toString() : undefined;\n    if (title !== undefined) {\n      optionTitle = title;\n    }\n    return /*#__PURE__*/React.createElement(\"div\", _extends({}, pickAttrs(passedProps), !virtual ? getItemAriaProps(item, itemIndex) : {}, {\n      \"aria-selected\": selected,\n      className: optionClassName,\n      title: optionTitle,\n      onMouseMove: function onMouseMove() {\n        if (activeIndex === itemIndex || mergedDisabled) {\n          return;\n        }\n        setActive(itemIndex);\n      },\n      onClick: function onClick() {\n        if (!mergedDisabled) {\n          onSelectValue(value);\n        }\n      },\n      style: style\n    }), /*#__PURE__*/React.createElement(\"div\", {\n      className: \"\".concat(optionPrefixCls, \"-content\")\n    }, typeof optionRender === 'function' ? optionRender(item, {\n      index: itemIndex\n    }) : content), /*#__PURE__*/React.isValidElement(menuItemSelectedIcon) || selected, iconVisible && /*#__PURE__*/React.createElement(TransBtn, {\n      className: \"\".concat(itemPrefixCls, \"-option-state\"),\n      customizeIcon: menuItemSelectedIcon,\n      customizeIconProps: {\n        value: value,\n        disabled: mergedDisabled,\n        isSelected: selected\n      }\n    }, selected ? '✓' : null));\n  }));\n};\nvar RefOptionList = /*#__PURE__*/React.forwardRef(OptionList);\nif (process.env.NODE_ENV !== 'production') {\n  RefOptionList.displayName = 'OptionList';\n}\nexport default RefOptionList;","/* istanbul ignore file */\nexport function isPlatformMac() {\n  return /(mac\\sos|macintosh)/i.test(navigator.appVersion);\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nimport { toArray } from \"../utils/commonUtil\";\nimport { injectPropsWithOption } from \"../utils/valueUtil\";\nfunction includes(test, search) {\n  return toArray(test).join('').toUpperCase().includes(search);\n}\nexport default (function (options, fieldNames, searchValue, filterOption, optionFilterProp) {\n  return React.useMemo(function () {\n    if (!searchValue || filterOption === false) {\n      return options;\n    }\n    var fieldOptions = fieldNames.options,\n      fieldLabel = fieldNames.label,\n      fieldValue = fieldNames.value;\n    var filteredOptions = [];\n    var customizeFilter = typeof filterOption === 'function';\n    var upperSearch = searchValue.toUpperCase();\n    var filterFunc = customizeFilter ? filterOption : function (_, option) {\n      // Use provided `optionFilterProp`\n      if (optionFilterProp) {\n        return includes(option[optionFilterProp], upperSearch);\n      }\n\n      // Auto select `label` or `value` by option type\n      if (option[fieldOptions]) {\n        // hack `fieldLabel` since `OptionGroup` children is not `label`\n        return includes(option[fieldLabel !== 'children' ? fieldLabel : 'label'], upperSearch);\n      }\n      return includes(option[fieldValue], upperSearch);\n    };\n    var wrapOption = customizeFilter ? function (opt) {\n      return injectPropsWithOption(opt);\n    } : function (opt) {\n      return opt;\n    };\n    options.forEach(function (item) {\n      // Group should check child options\n      if (item[fieldOptions]) {\n        // Check group first\n        var matchGroup = filterFunc(searchValue, wrapOption(item));\n        if (matchGroup) {\n          filteredOptions.push(item);\n        } else {\n          // Check option\n          var subOptions = item[fieldOptions].filter(function (subItem) {\n            return filterFunc(searchValue, wrapOption(subItem));\n          });\n          if (subOptions.length) {\n            filteredOptions.push(_objectSpread(_objectSpread({}, item), {}, _defineProperty({}, fieldOptions, subOptions)));\n          }\n        }\n        return;\n      }\n      if (filterFunc(searchValue, wrapOption(item))) {\n        filteredOptions.push(item);\n      }\n    });\n    return filteredOptions;\n  }, [options, filterOption, optionFilterProp, searchValue, fieldNames]);\n});","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"children\", \"value\"],\n  _excluded2 = [\"children\"];\nimport * as React from 'react';\nimport toArray from \"rc-util/es/Children/toArray\";\nfunction convertNodeToOption(node) {\n  var _ref = node,\n    key = _ref.key,\n    _ref$props = _ref.props,\n    children = _ref$props.children,\n    value = _ref$props.value,\n    restProps = _objectWithoutProperties(_ref$props, _excluded);\n  return _objectSpread({\n    key: key,\n    value: value !== undefined ? value : key,\n    children: children\n  }, restProps);\n}\nexport function convertChildrenToData(nodes) {\n  var optionOnly = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n  return toArray(nodes).map(function (node, index) {\n    if (! /*#__PURE__*/React.isValidElement(node) || !node.type) {\n      return null;\n    }\n    var _ref2 = node,\n      isSelectOptGroup = _ref2.type.isSelectOptGroup,\n      key = _ref2.key,\n      _ref2$props = _ref2.props,\n      children = _ref2$props.children,\n      restProps = _objectWithoutProperties(_ref2$props, _excluded2);\n    if (optionOnly || !isSelectOptGroup) {\n      return convertNodeToOption(node);\n    }\n    return _objectSpread(_objectSpread({\n      key: \"__RC_SELECT_GRP__\".concat(key === null ? index : key, \"__\"),\n      label: key\n    }, restProps), {}, {\n      options: convertChildrenToData(children)\n    });\n  }).filter(function (data) {\n    return data;\n  });\n}","import * as React from 'react';\nimport { convertChildrenToData } from \"../utils/legacyUtil\";\n\n/**\n * Parse `children` to `options` if `options` is not provided.\n * Then flatten the `options`.\n */\nvar useOptions = function useOptions(options, children, fieldNames, optionFilterProp, optionLabelProp) {\n  return React.useMemo(function () {\n    var mergedOptions = options;\n    var childrenAsData = !options;\n    if (childrenAsData) {\n      mergedOptions = convertChildrenToData(children);\n    }\n    var valueOptions = new Map();\n    var labelOptions = new Map();\n    var setLabelOptions = function setLabelOptions(labelOptionsMap, option, key) {\n      if (key && typeof key === 'string') {\n        labelOptionsMap.set(option[key], option);\n      }\n    };\n    var dig = function dig(optionList) {\n      var isChildren = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n      // for loop to speed up collection speed\n      for (var i = 0; i < optionList.length; i += 1) {\n        var option = optionList[i];\n        if (!option[fieldNames.options] || isChildren) {\n          valueOptions.set(option[fieldNames.value], option);\n          setLabelOptions(labelOptions, option, fieldNames.label);\n          // https://github.com/ant-design/ant-design/issues/35304\n          setLabelOptions(labelOptions, option, optionFilterProp);\n          setLabelOptions(labelOptions, option, optionLabelProp);\n        } else {\n          dig(option[fieldNames.options], true);\n        }\n      }\n    };\n    dig(mergedOptions);\n    return {\n      options: mergedOptions,\n      valueOptions: valueOptions,\n      labelOptions: labelOptions\n    };\n  }, [options, children, fieldNames, optionFilterProp, optionLabelProp]);\n};\nexport default useOptions;","import * as React from 'react';\n\n/**\n * Same as `React.useCallback` but always return a memoized function\n * but redirect to real function.\n */\nexport default function useRefFunc(callback) {\n  var funcRef = React.useRef();\n  funcRef.current = callback;\n  var cacheFn = React.useCallback(function () {\n    return funcRef.current.apply(funcRef, arguments);\n  }, []);\n  return cacheFn;\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport toNodeArray from \"rc-util/es/Children/toArray\";\nimport warning, { noteOnce } from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport { isMultiple } from \"../BaseSelect\";\nimport { toArray } from \"./commonUtil\";\nimport { convertChildrenToData } from \"./legacyUtil\";\nfunction warningProps(props) {\n  var mode = props.mode,\n    options = props.options,\n    children = props.children,\n    backfill = props.backfill,\n    allowClear = props.allowClear,\n    placeholder = props.placeholder,\n    getInputElement = props.getInputElement,\n    showSearch = props.showSearch,\n    onSearch = props.onSearch,\n    defaultOpen = props.defaultOpen,\n    autoFocus = props.autoFocus,\n    labelInValue = props.labelInValue,\n    value = props.value,\n    inputValue = props.inputValue,\n    optionLabelProp = props.optionLabelProp;\n  var multiple = isMultiple(mode);\n  var mergedShowSearch = showSearch !== undefined ? showSearch : multiple || mode === 'combobox';\n  var mergedOptions = options || convertChildrenToData(children);\n\n  // `tags` should not set option as disabled\n  warning(mode !== 'tags' || mergedOptions.every(function (opt) {\n    return !opt.disabled;\n  }), 'Please avoid setting option to disabled in tags mode since user can always type text as tag.');\n\n  // `combobox` & `tags` should option be `string` type\n  if (mode === 'tags' || mode === 'combobox') {\n    var hasNumberValue = mergedOptions.some(function (item) {\n      if (item.options) {\n        return item.options.some(function (opt) {\n          return typeof ('value' in opt ? opt.value : opt.key) === 'number';\n        });\n      }\n      return typeof ('value' in item ? item.value : item.key) === 'number';\n    });\n    warning(!hasNumberValue, '`value` of Option should not use number type when `mode` is `tags` or `combobox`.');\n  }\n\n  // `combobox` should not use `optionLabelProp`\n  warning(mode !== 'combobox' || !optionLabelProp, '`combobox` mode not support `optionLabelProp`. Please set `value` on Option directly.');\n\n  // Only `combobox` support `backfill`\n  warning(mode === 'combobox' || !backfill, '`backfill` only works with `combobox` mode.');\n\n  // Only `combobox` support `getInputElement`\n  warning(mode === 'combobox' || !getInputElement, '`getInputElement` only work with `combobox` mode.');\n\n  // Customize `getInputElement` should not use `allowClear` & `placeholder`\n  noteOnce(mode !== 'combobox' || !getInputElement || !allowClear || !placeholder, 'Customize `getInputElement` should customize clear and placeholder logic instead of configuring `allowClear` and `placeholder`.');\n\n  // `onSearch` should use in `combobox` or `showSearch`\n  if (onSearch && !mergedShowSearch && mode !== 'combobox' && mode !== 'tags') {\n    warning(false, '`onSearch` should work with `showSearch` instead of use alone.');\n  }\n  noteOnce(!defaultOpen || autoFocus, '`defaultOpen` makes Select open without focus which means it will not close by click outside. You can set `autoFocus` if needed.');\n  if (value !== undefined && value !== null) {\n    var values = toArray(value);\n    warning(!labelInValue || values.every(function (val) {\n      return _typeof(val) === 'object' && ('key' in val || 'value' in val);\n    }), '`value` should in shape of `{ value: string | number, label?: ReactNode }` when you set `labelInValue` to `true`');\n    warning(!multiple || Array.isArray(value), '`value` should be array when `mode` is `multiple` or `tags`');\n  }\n\n  // Syntactic sugar should use correct children type\n  if (children) {\n    var invalidateChildType = null;\n    toNodeArray(children).some(function (node) {\n      if (! /*#__PURE__*/React.isValidElement(node) || !node.type) {\n        return false;\n      }\n      var _ref = node,\n        type = _ref.type;\n      if (type.isSelectOption) {\n        return false;\n      }\n      if (type.isSelectOptGroup) {\n        var allChildrenValid = toNodeArray(node.props.children).every(function (subNode) {\n          if (! /*#__PURE__*/React.isValidElement(subNode) || !node.type || subNode.type.isSelectOption) {\n            return true;\n          }\n          invalidateChildType = subNode.type;\n          return false;\n        });\n        if (allChildrenValid) {\n          return false;\n        }\n        return true;\n      }\n      invalidateChildType = type;\n      return true;\n    });\n    if (invalidateChildType) {\n      warning(false, \"`children` should be `Select.Option` or `Select.OptGroup` instead of `\".concat(invalidateChildType.displayName || invalidateChildType.name || invalidateChildType, \"`.\"));\n    }\n    warning(inputValue === undefined, '`inputValue` is deprecated, please use `searchValue` instead.');\n  }\n}\n\n// value in Select option should not be null\n// note: OptGroup has options too\nexport function warningNullOptions(options, fieldNames) {\n  if (options) {\n    var recursiveOptions = function recursiveOptions(optionsList) {\n      var inGroup = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n      for (var i = 0; i < optionsList.length; i++) {\n        var option = optionsList[i];\n        if (option[fieldNames === null || fieldNames === void 0 ? void 0 : fieldNames.value] === null) {\n          warning(false, '`value` in Select options should not be `null`.');\n          return true;\n        }\n        if (!inGroup && Array.isArray(option[fieldNames === null || fieldNames === void 0 ? void 0 : fieldNames.options]) && recursiveOptions(option[fieldNames === null || fieldNames === void 0 ? void 0 : fieldNames.options], true)) {\n          break;\n        }\n      }\n    };\n    recursiveOptions(options);\n  }\n}\nexport default warningProps;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nvar _excluded = [\"id\", \"mode\", \"prefixCls\", \"backfill\", \"fieldNames\", \"inputValue\", \"searchValue\", \"onSearch\", \"autoClearSearchValue\", \"onSelect\", \"onDeselect\", \"dropdownMatchSelectWidth\", \"filterOption\", \"filterSort\", \"optionFilterProp\", \"optionLabelProp\", \"options\", \"optionRender\", \"children\", \"defaultActiveFirstOption\", \"menuItemSelectedIcon\", \"virtual\", \"direction\", \"listHeight\", \"listItemHeight\", \"labelRender\", \"value\", \"defaultValue\", \"labelInValue\", \"onChange\", \"maxCount\"];\n/**\n * To match accessibility requirement, we always provide an input in the component.\n * Other element will not set `tabIndex` to avoid `onBlur` sequence problem.\n * For focused select, we set `aria-live=\"polite\"` to update the accessibility content.\n *\n * ref:\n * - keyboard: https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/listbox_role#Keyboard_interactions\n *\n * New api:\n * - listHeight\n * - listItemHeight\n * - component\n *\n * Remove deprecated api:\n * - multiple\n * - tags\n * - combobox\n * - firstActiveValue\n * - dropdownMenuStyle\n * - openClassName (Not list in api)\n *\n * Update:\n * - `backfill` only support `combobox` mode\n * - `combobox` mode not support `labelInValue` since it's meaningless\n * - `getInputElement` only support `combobox` mode\n * - `onChange` return OptionData instead of ReactNode\n * - `filterOption` `onChange` `onSelect` accept OptionData instead of ReactNode\n * - `combobox` mode trigger `onChange` will get `undefined` if no `value` match in Option\n * - `combobox` mode not support `optionLabelProp`\n */\n\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport BaseSelect, { isMultiple } from \"./BaseSelect\";\nimport OptGroup from \"./OptGroup\";\nimport Option from \"./Option\";\nimport OptionList from \"./OptionList\";\nimport SelectContext from \"./SelectContext\";\nimport useCache from \"./hooks/useCache\";\nimport useFilterOptions from \"./hooks/useFilterOptions\";\nimport useId from \"./hooks/useId\";\nimport useOptions from \"./hooks/useOptions\";\nimport useRefFunc from \"./hooks/useRefFunc\";\nimport { hasValue, isComboNoValue, toArray } from \"./utils/commonUtil\";\nimport { fillFieldNames, flattenOptions, injectPropsWithOption } from \"./utils/valueUtil\";\nimport warningProps, { warningNullOptions } from \"./utils/warningPropsUtil\";\nvar OMIT_DOM_PROPS = ['inputValue'];\nfunction isRawValue(value) {\n  return !value || _typeof(value) !== 'object';\n}\nvar Select = /*#__PURE__*/React.forwardRef(function (props, ref) {\n  var id = props.id,\n    mode = props.mode,\n    _props$prefixCls = props.prefixCls,\n    prefixCls = _props$prefixCls === void 0 ? 'rc-select' : _props$prefixCls,\n    backfill = props.backfill,\n    fieldNames = props.fieldNames,\n    inputValue = props.inputValue,\n    searchValue = props.searchValue,\n    onSearch = props.onSearch,\n    _props$autoClearSearc = props.autoClearSearchValue,\n    autoClearSearchValue = _props$autoClearSearc === void 0 ? true : _props$autoClearSearc,\n    onSelect = props.onSelect,\n    onDeselect = props.onDeselect,\n    _props$dropdownMatchS = props.dropdownMatchSelectWidth,\n    dropdownMatchSelectWidth = _props$dropdownMatchS === void 0 ? true : _props$dropdownMatchS,\n    filterOption = props.filterOption,\n    filterSort = props.filterSort,\n    optionFilterProp = props.optionFilterProp,\n    optionLabelProp = props.optionLabelProp,\n    options = props.options,\n    optionRender = props.optionRender,\n    children = props.children,\n    defaultActiveFirstOption = props.defaultActiveFirstOption,\n    menuItemSelectedIcon = props.menuItemSelectedIcon,\n    virtual = props.virtual,\n    direction = props.direction,\n    _props$listHeight = props.listHeight,\n    listHeight = _props$listHeight === void 0 ? 200 : _props$listHeight,\n    _props$listItemHeight = props.listItemHeight,\n    listItemHeight = _props$listItemHeight === void 0 ? 20 : _props$listItemHeight,\n    labelRender = props.labelRender,\n    value = props.value,\n    defaultValue = props.defaultValue,\n    labelInValue = props.labelInValue,\n    onChange = props.onChange,\n    maxCount = props.maxCount,\n    restProps = _objectWithoutProperties(props, _excluded);\n  var mergedId = useId(id);\n  var multiple = isMultiple(mode);\n  var childrenAsData = !!(!options && children);\n  var mergedFilterOption = React.useMemo(function () {\n    if (filterOption === undefined && mode === 'combobox') {\n      return false;\n    }\n    return filterOption;\n  }, [filterOption, mode]);\n\n  // ========================= FieldNames =========================\n  var mergedFieldNames = React.useMemo(function () {\n    return fillFieldNames(fieldNames, childrenAsData);\n  }, /* eslint-disable react-hooks/exhaustive-deps */\n  [\n  // We stringify fieldNames to avoid unnecessary re-renders.\n  JSON.stringify(fieldNames), childrenAsData]\n  /* eslint-enable react-hooks/exhaustive-deps */);\n\n  // =========================== Search ===========================\n  var _useMergedState = useMergedState('', {\n      value: searchValue !== undefined ? searchValue : inputValue,\n      postState: function postState(search) {\n        return search || '';\n      }\n    }),\n    _useMergedState2 = _slicedToArray(_useMergedState, 2),\n    mergedSearchValue = _useMergedState2[0],\n    setSearchValue = _useMergedState2[1];\n\n  // =========================== Option ===========================\n  var parsedOptions = useOptions(options, children, mergedFieldNames, optionFilterProp, optionLabelProp);\n  var valueOptions = parsedOptions.valueOptions,\n    labelOptions = parsedOptions.labelOptions,\n    mergedOptions = parsedOptions.options;\n\n  // ========================= Wrap Value =========================\n  var convert2LabelValues = React.useCallback(function (draftValues) {\n    // Convert to array\n    var valueList = toArray(draftValues);\n\n    // Convert to labelInValue type\n    return valueList.map(function (val) {\n      var rawValue;\n      var rawLabel;\n      var rawKey;\n      var rawDisabled;\n      var rawTitle;\n\n      // Fill label & value\n      if (isRawValue(val)) {\n        rawValue = val;\n      } else {\n        var _val$value;\n        rawKey = val.key;\n        rawLabel = val.label;\n        rawValue = (_val$value = val.value) !== null && _val$value !== void 0 ? _val$value : rawKey;\n      }\n      var option = valueOptions.get(rawValue);\n      if (option) {\n        var _option$key;\n        // Fill missing props\n        if (rawLabel === undefined) rawLabel = option === null || option === void 0 ? void 0 : option[optionLabelProp || mergedFieldNames.label];\n        if (rawKey === undefined) rawKey = (_option$key = option === null || option === void 0 ? void 0 : option.key) !== null && _option$key !== void 0 ? _option$key : rawValue;\n        rawDisabled = option === null || option === void 0 ? void 0 : option.disabled;\n        rawTitle = option === null || option === void 0 ? void 0 : option.title;\n\n        // Warning if label not same as provided\n        if (process.env.NODE_ENV !== 'production' && !optionLabelProp) {\n          var optionLabel = option === null || option === void 0 ? void 0 : option[mergedFieldNames.label];\n          if (optionLabel !== undefined && ! /*#__PURE__*/React.isValidElement(optionLabel) && ! /*#__PURE__*/React.isValidElement(rawLabel) && optionLabel !== rawLabel) {\n            warning(false, '`label` of `value` is not same as `label` in Select options.');\n          }\n        }\n      }\n      return {\n        label: rawLabel,\n        value: rawValue,\n        key: rawKey,\n        disabled: rawDisabled,\n        title: rawTitle\n      };\n    });\n  }, [mergedFieldNames, optionLabelProp, valueOptions]);\n\n  // =========================== Values ===========================\n  var _useMergedState3 = useMergedState(defaultValue, {\n      value: value\n    }),\n    _useMergedState4 = _slicedToArray(_useMergedState3, 2),\n    internalValue = _useMergedState4[0],\n    setInternalValue = _useMergedState4[1];\n\n  // Merged value with LabelValueType\n  var rawLabeledValues = React.useMemo(function () {\n    var _values$;\n    var newInternalValue = multiple && internalValue === null ? [] : internalValue;\n    var values = convert2LabelValues(newInternalValue);\n\n    // combobox no need save value when it's no value (exclude value equal 0)\n    if (mode === 'combobox' && isComboNoValue((_values$ = values[0]) === null || _values$ === void 0 ? void 0 : _values$.value)) {\n      return [];\n    }\n    return values;\n  }, [internalValue, convert2LabelValues, mode, multiple]);\n\n  // Fill label with cache to avoid option remove\n  var _useCache = useCache(rawLabeledValues, valueOptions),\n    _useCache2 = _slicedToArray(_useCache, 2),\n    mergedValues = _useCache2[0],\n    getMixedOption = _useCache2[1];\n  var displayValues = React.useMemo(function () {\n    // `null` need show as placeholder instead\n    // https://github.com/ant-design/ant-design/issues/25057\n    if (!mode && mergedValues.length === 1) {\n      var firstValue = mergedValues[0];\n      if (firstValue.value === null && (firstValue.label === null || firstValue.label === undefined)) {\n        return [];\n      }\n    }\n    return mergedValues.map(function (item) {\n      var _ref;\n      return _objectSpread(_objectSpread({}, item), {}, {\n        label: (_ref = typeof labelRender === 'function' ? labelRender(item) : item.label) !== null && _ref !== void 0 ? _ref : item.value\n      });\n    });\n  }, [mode, mergedValues, labelRender]);\n\n  /** Convert `displayValues` to raw value type set */\n  var rawValues = React.useMemo(function () {\n    return new Set(mergedValues.map(function (val) {\n      return val.value;\n    }));\n  }, [mergedValues]);\n  React.useEffect(function () {\n    if (mode === 'combobox') {\n      var _mergedValues$;\n      var strValue = (_mergedValues$ = mergedValues[0]) === null || _mergedValues$ === void 0 ? void 0 : _mergedValues$.value;\n      setSearchValue(hasValue(strValue) ? String(strValue) : '');\n    }\n  }, [mergedValues]);\n\n  // ======================= Display Option =======================\n  // Create a placeholder item if not exist in `options`\n  var createTagOption = useRefFunc(function (val, label) {\n    var mergedLabel = label !== null && label !== void 0 ? label : val;\n    return _defineProperty(_defineProperty({}, mergedFieldNames.value, val), mergedFieldNames.label, mergedLabel);\n  });\n\n  // Fill tag as option if mode is `tags`\n  var filledTagOptions = React.useMemo(function () {\n    if (mode !== 'tags') {\n      return mergedOptions;\n    }\n\n    // >>> Tag mode\n    var cloneOptions = _toConsumableArray(mergedOptions);\n\n    // Check if value exist in options (include new patch item)\n    var existOptions = function existOptions(val) {\n      return valueOptions.has(val);\n    };\n\n    // Fill current value as option\n    _toConsumableArray(mergedValues).sort(function (a, b) {\n      return a.value < b.value ? -1 : 1;\n    }).forEach(function (item) {\n      var val = item.value;\n      if (!existOptions(val)) {\n        cloneOptions.push(createTagOption(val, item.label));\n      }\n    });\n    return cloneOptions;\n  }, [createTagOption, mergedOptions, valueOptions, mergedValues, mode]);\n  var filteredOptions = useFilterOptions(filledTagOptions, mergedFieldNames, mergedSearchValue, mergedFilterOption, optionFilterProp);\n\n  // Fill options with search value if needed\n  var filledSearchOptions = React.useMemo(function () {\n    if (mode !== 'tags' || !mergedSearchValue || filteredOptions.some(function (item) {\n      return item[optionFilterProp || 'value'] === mergedSearchValue;\n    })) {\n      return filteredOptions;\n    }\n    // ignore when search value equal select input value\n    if (filteredOptions.some(function (item) {\n      return item[mergedFieldNames.value] === mergedSearchValue;\n    })) {\n      return filteredOptions;\n    }\n    // Fill search value as option\n    return [createTagOption(mergedSearchValue)].concat(_toConsumableArray(filteredOptions));\n  }, [createTagOption, optionFilterProp, mode, filteredOptions, mergedSearchValue, mergedFieldNames]);\n  var sorter = function sorter(inputOptions) {\n    var sortedOptions = _toConsumableArray(inputOptions).sort(function (a, b) {\n      return filterSort(a, b, {\n        searchValue: mergedSearchValue\n      });\n    });\n    return sortedOptions.map(function (item) {\n      if (Array.isArray(item.options)) {\n        return _objectSpread(_objectSpread({}, item), {}, {\n          options: item.options.length > 0 ? sorter(item.options) : item.options\n        });\n      }\n      return item;\n    });\n  };\n  var orderedFilteredOptions = React.useMemo(function () {\n    if (!filterSort) {\n      return filledSearchOptions;\n    }\n    return sorter(filledSearchOptions);\n  }, [filledSearchOptions, filterSort, mergedSearchValue]);\n  var displayOptions = React.useMemo(function () {\n    return flattenOptions(orderedFilteredOptions, {\n      fieldNames: mergedFieldNames,\n      childrenAsData: childrenAsData\n    });\n  }, [orderedFilteredOptions, mergedFieldNames, childrenAsData]);\n\n  // =========================== Change ===========================\n  var triggerChange = function triggerChange(values) {\n    var labeledValues = convert2LabelValues(values);\n    setInternalValue(labeledValues);\n    if (onChange && (\n    // Trigger event only when value changed\n    labeledValues.length !== mergedValues.length || labeledValues.some(function (newVal, index) {\n      var _mergedValues$index;\n      return ((_mergedValues$index = mergedValues[index]) === null || _mergedValues$index === void 0 ? void 0 : _mergedValues$index.value) !== (newVal === null || newVal === void 0 ? void 0 : newVal.value);\n    }))) {\n      var returnValues = labelInValue ? labeledValues : labeledValues.map(function (v) {\n        return v.value;\n      });\n      var returnOptions = labeledValues.map(function (v) {\n        return injectPropsWithOption(getMixedOption(v.value));\n      });\n      onChange(\n      // Value\n      multiple ? returnValues : returnValues[0],\n      // Option\n      multiple ? returnOptions : returnOptions[0]);\n    }\n  };\n\n  // ======================= Accessibility ========================\n  var _React$useState = React.useState(null),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    activeValue = _React$useState2[0],\n    setActiveValue = _React$useState2[1];\n  var _React$useState3 = React.useState(0),\n    _React$useState4 = _slicedToArray(_React$useState3, 2),\n    accessibilityIndex = _React$useState4[0],\n    setAccessibilityIndex = _React$useState4[1];\n  var mergedDefaultActiveFirstOption = defaultActiveFirstOption !== undefined ? defaultActiveFirstOption : mode !== 'combobox';\n  var onActiveValue = React.useCallback(function (active, index) {\n    var _ref3 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n      _ref3$source = _ref3.source,\n      source = _ref3$source === void 0 ? 'keyboard' : _ref3$source;\n    setAccessibilityIndex(index);\n    if (backfill && mode === 'combobox' && active !== null && source === 'keyboard') {\n      setActiveValue(String(active));\n    }\n  }, [backfill, mode]);\n\n  // ========================= OptionList =========================\n  var triggerSelect = function triggerSelect(val, selected, type) {\n    var getSelectEnt = function getSelectEnt() {\n      var _option$key2;\n      var option = getMixedOption(val);\n      return [labelInValue ? {\n        label: option === null || option === void 0 ? void 0 : option[mergedFieldNames.label],\n        value: val,\n        key: (_option$key2 = option === null || option === void 0 ? void 0 : option.key) !== null && _option$key2 !== void 0 ? _option$key2 : val\n      } : val, injectPropsWithOption(option)];\n    };\n    if (selected && onSelect) {\n      var _getSelectEnt = getSelectEnt(),\n        _getSelectEnt2 = _slicedToArray(_getSelectEnt, 2),\n        wrappedValue = _getSelectEnt2[0],\n        _option = _getSelectEnt2[1];\n      onSelect(wrappedValue, _option);\n    } else if (!selected && onDeselect && type !== 'clear') {\n      var _getSelectEnt3 = getSelectEnt(),\n        _getSelectEnt4 = _slicedToArray(_getSelectEnt3, 2),\n        _wrappedValue = _getSelectEnt4[0],\n        _option2 = _getSelectEnt4[1];\n      onDeselect(_wrappedValue, _option2);\n    }\n  };\n\n  // Used for OptionList selection\n  var onInternalSelect = useRefFunc(function (val, info) {\n    var cloneValues;\n\n    // Single mode always trigger select only with option list\n    var mergedSelect = multiple ? info.selected : true;\n    if (mergedSelect) {\n      cloneValues = multiple ? [].concat(_toConsumableArray(mergedValues), [val]) : [val];\n    } else {\n      cloneValues = mergedValues.filter(function (v) {\n        return v.value !== val;\n      });\n    }\n    triggerChange(cloneValues);\n    triggerSelect(val, mergedSelect);\n\n    // Clean search value if single or configured\n    if (mode === 'combobox') {\n      // setSearchValue(String(val));\n      setActiveValue('');\n    } else if (!isMultiple || autoClearSearchValue) {\n      setSearchValue('');\n      setActiveValue('');\n    }\n  });\n\n  // ======================= Display Change =======================\n  // BaseSelect display values change\n  var onDisplayValuesChange = function onDisplayValuesChange(nextValues, info) {\n    triggerChange(nextValues);\n    var type = info.type,\n      values = info.values;\n    if (type === 'remove' || type === 'clear') {\n      values.forEach(function (item) {\n        triggerSelect(item.value, false, type);\n      });\n    }\n  };\n\n  // =========================== Search ===========================\n  var onInternalSearch = function onInternalSearch(searchText, info) {\n    setSearchValue(searchText);\n    setActiveValue(null);\n\n    // [Submit] Tag mode should flush input\n    if (info.source === 'submit') {\n      var formatted = (searchText || '').trim();\n      // prevent empty tags from appearing when you click the Enter button\n      if (formatted) {\n        var newRawValues = Array.from(new Set([].concat(_toConsumableArray(rawValues), [formatted])));\n        triggerChange(newRawValues);\n        triggerSelect(formatted, true);\n        setSearchValue('');\n      }\n      return;\n    }\n    if (info.source !== 'blur') {\n      if (mode === 'combobox') {\n        triggerChange(searchText);\n      }\n      onSearch === null || onSearch === void 0 || onSearch(searchText);\n    }\n  };\n  var onInternalSearchSplit = function onInternalSearchSplit(words) {\n    var patchValues = words;\n    if (mode !== 'tags') {\n      patchValues = words.map(function (word) {\n        var opt = labelOptions.get(word);\n        return opt === null || opt === void 0 ? void 0 : opt.value;\n      }).filter(function (val) {\n        return val !== undefined;\n      });\n    }\n    var newRawValues = Array.from(new Set([].concat(_toConsumableArray(rawValues), _toConsumableArray(patchValues))));\n    triggerChange(newRawValues);\n    newRawValues.forEach(function (newRawValue) {\n      triggerSelect(newRawValue, true);\n    });\n  };\n\n  // ========================== Context ===========================\n  var selectContext = React.useMemo(function () {\n    var realVirtual = virtual !== false && dropdownMatchSelectWidth !== false;\n    return _objectSpread(_objectSpread({}, parsedOptions), {}, {\n      flattenOptions: displayOptions,\n      onActiveValue: onActiveValue,\n      defaultActiveFirstOption: mergedDefaultActiveFirstOption,\n      onSelect: onInternalSelect,\n      menuItemSelectedIcon: menuItemSelectedIcon,\n      rawValues: rawValues,\n      fieldNames: mergedFieldNames,\n      virtual: realVirtual,\n      direction: direction,\n      listHeight: listHeight,\n      listItemHeight: listItemHeight,\n      childrenAsData: childrenAsData,\n      maxCount: maxCount,\n      optionRender: optionRender\n    });\n  }, [maxCount, parsedOptions, displayOptions, onActiveValue, mergedDefaultActiveFirstOption, onInternalSelect, menuItemSelectedIcon, rawValues, mergedFieldNames, virtual, dropdownMatchSelectWidth, direction, listHeight, listItemHeight, childrenAsData, optionRender]);\n\n  // ========================== Warning ===========================\n  if (process.env.NODE_ENV !== 'production') {\n    warningProps(props);\n    warningNullOptions(mergedOptions, mergedFieldNames);\n  }\n\n  // ==============================================================\n  // ==                          Render                          ==\n  // ==============================================================\n  return /*#__PURE__*/React.createElement(SelectContext.Provider, {\n    value: selectContext\n  }, /*#__PURE__*/React.createElement(BaseSelect, _extends({}, restProps, {\n    // >>> MISC\n    id: mergedId,\n    prefixCls: prefixCls,\n    ref: ref,\n    omitDomProps: OMIT_DOM_PROPS,\n    mode: mode\n    // >>> Values\n    ,\n    displayValues: displayValues,\n    onDisplayValuesChange: onDisplayValuesChange\n    // >>> Trigger\n    ,\n    direction: direction\n    // >>> Search\n    ,\n    searchValue: mergedSearchValue,\n    onSearch: onInternalSearch,\n    autoClearSearchValue: autoClearSearchValue,\n    onSearchSplit: onInternalSearchSplit,\n    dropdownMatchSelectWidth: dropdownMatchSelectWidth\n    // >>> OptionList\n    ,\n    OptionList: OptionList,\n    emptyOptions: !displayOptions.length\n    // >>> Accessibility\n    ,\n    activeValue: activeValue,\n    activeDescendantId: \"\".concat(mergedId, \"_list_\").concat(accessibilityIndex)\n  })));\n});\nif (process.env.NODE_ENV !== 'production') {\n  Select.displayName = 'Select';\n}\nvar TypedSelect = Select;\nTypedSelect.Option = Option;\nTypedSelect.OptGroup = OptGroup;\nexport default TypedSelect;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\n/**\n * Cache `value` related LabeledValue & options.\n */\nexport default (function (labeledValues, valueOptions) {\n  var cacheRef = React.useRef({\n    values: new Map(),\n    options: new Map()\n  });\n  var filledLabeledValues = React.useMemo(function () {\n    var _cacheRef$current = cacheRef.current,\n      prevValueCache = _cacheRef$current.values,\n      prevOptionCache = _cacheRef$current.options;\n\n    // Fill label by cache\n    var patchedValues = labeledValues.map(function (item) {\n      if (item.label === undefined) {\n        var _prevValueCache$get;\n        return _objectSpread(_objectSpread({}, item), {}, {\n          label: (_prevValueCache$get = prevValueCache.get(item.value)) === null || _prevValueCache$get === void 0 ? void 0 : _prevValueCache$get.label\n        });\n      }\n      return item;\n    });\n\n    // Refresh cache\n    var valueCache = new Map();\n    var optionCache = new Map();\n    patchedValues.forEach(function (item) {\n      valueCache.set(item.value, item);\n      optionCache.set(item.value, valueOptions.get(item.value) || prevOptionCache.get(item.value));\n    });\n    cacheRef.current.values = valueCache;\n    cacheRef.current.options = optionCache;\n    return patchedValues;\n  }, [labeledValues, valueOptions]);\n  var getOption = React.useCallback(function (val) {\n    return valueOptions.get(val) || cacheRef.current.options.get(val);\n  }, [valueOptions]);\n  return [filledLabeledValues, getOption];\n});","import Select from \"./Select\";\nimport Option from \"./Option\";\nimport OptGroup from \"./OptGroup\";\nimport BaseSelect from \"./BaseSelect\";\nimport useBaseProps from \"./hooks/useBaseProps\";\nexport { Option, OptGroup, BaseSelect, useBaseProps };\nexport default Select;","export function on(ctx, type, callback) {\n  ctx._events || (ctx._events = {});\n  ctx._events[type] || (ctx._events[type] = []);\n\n  ctx._events[type].push(callback);\n}\n/**\n * 移除事件监听\n * @param {string} type 事件id标志\n * @param {Function} [callback] 待移除事件回调，不填则移除这个事件的所有回调\n * @example\n *   off(window, 'onResume', callBackFunc)\n *   off(window, 'onResume')\n */\n\nexport function off(ctx, type, callback) {\n  if (!ctx._events) return;\n  var callbacks = ctx._events[type];\n  var index;\n\n  if (callbacks && callback) {\n    index = callbacks.indexOf(callback);\n    ~index && callbacks.splice(index, 1);\n  } else {\n    ctx._events[type] = [];\n  }\n}\n/**\n * 触发事件逐个掉用回调\n * @param {string} type 事件id标志\n * @param {param} unknown 回调的参数数组\n * @example\n *  emit(window, 'onResume', {code: 0, data: {isBack: 1}})\n */\n\nexport function emit(ctx, type, param) {\n  if (!ctx._events) return;\n\n  if (!ctx._events[type]) {\n    return false;\n  }\n\n  var callbacks = ctx._events[type].slice(0); //多个one,splice时会删除,要拷贝一份\n\n\n  for (var i = 0; i < callbacks.length; i++) {\n    callbacks[i] && callbacks[i].apply(ctx, [param]);\n  }\n}\nexport function one(ctx, type, callback) {\n  var proxy;\n  on(ctx, type, proxy = function (param) {\n    callback.apply(ctx, [param]);\n    off(ctx, type, proxy);\n  });\n}","import * as eventWeb from \"@tencent/wesing-base/lib/common/event\";\n\nexport function on<T>(type: string, callback: (param?: T) => void): void {\n  eventWeb.on(window as any, type, callback);\n}\n\nexport function off<T>(type: string, callback?: (param?: T) => void): void {\n  eventWeb.off(window as any, type, callback);\n}\n\nexport function emit<T>(type: string, param?: T) {\n  eventWeb.emit(window as any, type, param);\n}\n\nexport function once<T>(type: string, callback: (param?: T) => void) {\n  eventWeb.one(window as any, type, callback);\n}\n","/* eslint-disable max-params */\n/**\n * 获取指定字段名的cookie值\n * @param {string} name 字段名\n * @returns {string}\n * @category kg-base\n * @example\n * getCookie('uid')\n */\nexport function getCookie(name) {\n    var r = new RegExp(\"(?:^|;+|\\\\s+)\" + name + \"=([^;]*)\");\n    var m = window.document.cookie.match(r);\n    return !m ? \"\" : m[1];\n}\n/**\n * 设置cookie值\n * @param {string} name key\n * @param {string} value value\n * @param {string} [domain] 域名\n * @param {string} [path] 路径\n * @param {(number | Date)} [hour] 失效时间(小时)\n * @returns {Boolean}\n * @category kg-base\n * @example\n * setCookie('uid', '670145524')\n */\nexport function setCookie(name, value, domain, path, hour) {\n    var _domain = domain\n        ? domain\n        : window.location\n            ? window.location.host\n            : \"kg.qq.com\";\n    var expire;\n    if (hour) {\n        hour instanceof Date\n            ? (expire = hour)\n            : (expire = new Date()).setTime(expire.getTime() + 3600000 * hour);\n    }\n    window.document.cookie =\n        name +\n            \"=\" +\n            value +\n            \"; \" +\n            (hour ? \"expires=\" + expire.toGMTString() + \"; \" : \"\") +\n            (path ? \"path=\" + path + \"; \" : \"path=/; \") +\n            \"domain=\" +\n            _domain +\n            \";\";\n    return true;\n}\n/**\n * 检查是否有重复cookie值\n * @export\n * @param {string} [keyName] 属性名\n * @returns {boolean}\n * @category kg-base\n * @example\n * hasRepeatedCookie('uid')\n */\nexport function hasRepeatedCookie(keyName) {\n    var cookieArr = window.document.cookie.split(\";\");\n    var cookieObj = {};\n    for (var i = 0; i < cookieArr.length; i++) {\n        var cookieItem = cookieArr[i].split(\"=\");\n        var cookieKey = cookieItem[0].trim();\n        if (typeof cookieObj[cookieKey] === \"undefined\") {\n            if (!keyName || keyName === cookieKey) {\n                cookieObj[cookieKey] = 1;\n            }\n        }\n        else {\n            return true;\n        }\n    }\n    return false;\n}\n/**\n * 获取当前用户uid\n * @returns {number}\n * @category kg-base\n * @example\n * // return 670145524\n * getUid()\n */\nexport function getUid() {\n    return Number(getCookie(\"uid\"));\n}\n","/* eslint-disable @typescript-eslint/no-redundant-type-constituents */\nimport { convertHexToDecimal, hslToRgb, hsvToRgb, parseIntFromHex, rgbToRgb, } from './conversion.js';\nimport { names } from './css-color-names.js';\nimport { boundAlpha, convertToPercentage } from './util.js';\n/**\n * Given a string or object, convert that input to RGB\n *\n * Possible string inputs:\n * ```\n * \"red\"\n * \"#f00\" or \"f00\"\n * \"#ff0000\" or \"ff0000\"\n * \"#ff000000\" or \"ff000000\"\n * \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\n * \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\n * \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\n * \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\n * \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\n * \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\n * \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\n * ```\n */\nexport function inputToRGB(color) {\n    var rgb = { r: 0, g: 0, b: 0 };\n    var a = 1;\n    var s = null;\n    var v = null;\n    var l = null;\n    var ok = false;\n    var format = false;\n    if (typeof color === 'string') {\n        color = stringInputToObject(color);\n    }\n    if (typeof color === 'object') {\n        if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {\n            rgb = rgbToRgb(color.r, color.g, color.b);\n            ok = true;\n            format = String(color.r).substr(-1) === '%' ? 'prgb' : 'rgb';\n        }\n        else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {\n            s = convertToPercentage(color.s);\n            v = convertToPercentage(color.v);\n            rgb = hsvToRgb(color.h, s, v);\n            ok = true;\n            format = 'hsv';\n        }\n        else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {\n            s = convertToPercentage(color.s);\n            l = convertToPercentage(color.l);\n            rgb = hslToRgb(color.h, s, l);\n            ok = true;\n            format = 'hsl';\n        }\n        if (Object.prototype.hasOwnProperty.call(color, 'a')) {\n            a = color.a;\n        }\n    }\n    a = boundAlpha(a);\n    return {\n        ok: ok,\n        format: color.format || format,\n        r: Math.min(255, Math.max(rgb.r, 0)),\n        g: Math.min(255, Math.max(rgb.g, 0)),\n        b: Math.min(255, Math.max(rgb.b, 0)),\n        a: a,\n    };\n}\n// <http://www.w3.org/TR/css3-values/#integers>\nvar CSS_INTEGER = '[-\\\\+]?\\\\d+%?';\n// <http://www.w3.org/TR/css3-values/#number-value>\nvar CSS_NUMBER = '[-\\\\+]?\\\\d*\\\\.\\\\d+%?';\n// Allow positive/negative integer/number.  Don't capture the either/or, just the entire outcome.\nvar CSS_UNIT = \"(?:\".concat(CSS_NUMBER, \")|(?:\").concat(CSS_INTEGER, \")\");\n// Actual matching.\n// Parentheses and commas are optional, but not required.\n// Whitespace can take the place of commas or opening paren\nvar PERMISSIVE_MATCH3 = \"[\\\\s|\\\\(]+(\".concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")\\\\s*\\\\)?\");\nvar PERMISSIVE_MATCH4 = \"[\\\\s|\\\\(]+(\".concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")\\\\s*\\\\)?\");\nvar matchers = {\n    CSS_UNIT: new RegExp(CSS_UNIT),\n    rgb: new RegExp('rgb' + PERMISSIVE_MATCH3),\n    rgba: new RegExp('rgba' + PERMISSIVE_MATCH4),\n    hsl: new RegExp('hsl' + PERMISSIVE_MATCH3),\n    hsla: new RegExp('hsla' + PERMISSIVE_MATCH4),\n    hsv: new RegExp('hsv' + PERMISSIVE_MATCH3),\n    hsva: new RegExp('hsva' + PERMISSIVE_MATCH4),\n    hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n    hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n    hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n    hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n};\n/**\n * Permissive string parsing.  Take in a number of formats, and output an object\n * based on detected format.  Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\n */\nexport function stringInputToObject(color) {\n    color = color.trim().toLowerCase();\n    if (color.length === 0) {\n        return false;\n    }\n    var named = false;\n    if (names[color]) {\n        color = names[color];\n        named = true;\n    }\n    else if (color === 'transparent') {\n        return { r: 0, g: 0, b: 0, a: 0, format: 'name' };\n    }\n    // Try to match string input using regular expressions.\n    // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n    // Just return an object and let the conversion functions handle that.\n    // This way the result will be the same whether the tinycolor is initialized with string or object.\n    var match = matchers.rgb.exec(color);\n    if (match) {\n        return { r: match[1], g: match[2], b: match[3] };\n    }\n    match = matchers.rgba.exec(color);\n    if (match) {\n        return { r: match[1], g: match[2], b: match[3], a: match[4] };\n    }\n    match = matchers.hsl.exec(color);\n    if (match) {\n        return { h: match[1], s: match[2], l: match[3] };\n    }\n    match = matchers.hsla.exec(color);\n    if (match) {\n        return { h: match[1], s: match[2], l: match[3], a: match[4] };\n    }\n    match = matchers.hsv.exec(color);\n    if (match) {\n        return { h: match[1], s: match[2], v: match[3] };\n    }\n    match = matchers.hsva.exec(color);\n    if (match) {\n        return { h: match[1], s: match[2], v: match[3], a: match[4] };\n    }\n    match = matchers.hex8.exec(color);\n    if (match) {\n        return {\n            r: parseIntFromHex(match[1]),\n            g: parseIntFromHex(match[2]),\n            b: parseIntFromHex(match[3]),\n            a: convertHexToDecimal(match[4]),\n            format: named ? 'name' : 'hex8',\n        };\n    }\n    match = matchers.hex6.exec(color);\n    if (match) {\n        return {\n            r: parseIntFromHex(match[1]),\n            g: parseIntFromHex(match[2]),\n            b: parseIntFromHex(match[3]),\n            format: named ? 'name' : 'hex',\n        };\n    }\n    match = matchers.hex4.exec(color);\n    if (match) {\n        return {\n            r: parseIntFromHex(match[1] + match[1]),\n            g: parseIntFromHex(match[2] + match[2]),\n            b: parseIntFromHex(match[3] + match[3]),\n            a: convertHexToDecimal(match[4] + match[4]),\n            format: named ? 'name' : 'hex8',\n        };\n    }\n    match = matchers.hex3.exec(color);\n    if (match) {\n        return {\n            r: parseIntFromHex(match[1] + match[1]),\n            g: parseIntFromHex(match[2] + match[2]),\n            b: parseIntFromHex(match[3] + match[3]),\n            format: named ? 'name' : 'hex',\n        };\n    }\n    return false;\n}\n/**\n * Check to see if it looks like a CSS unit\n * (see `matchers` above for definition).\n */\nexport function isValidCSSUnit(color) {\n    return Boolean(matchers.CSS_UNIT.exec(String(color)));\n}\n","const genRadius = radiusBase => {\n  let radiusLG = radiusBase;\n  let radiusSM = radiusBase;\n  let radiusXS = radiusBase;\n  let radiusOuter = radiusBase;\n  // radiusLG\n  if (radiusBase < 6 && radiusBase >= 5) {\n    radiusLG = radiusBase + 1;\n  } else if (radiusBase < 16 && radiusBase >= 6) {\n    radiusLG = radiusBase + 2;\n  } else if (radiusBase >= 16) {\n    radiusLG = 16;\n  }\n  // radiusSM\n  if (radiusBase < 7 && radiusBase >= 5) {\n    radiusSM = 4;\n  } else if (radiusBase < 8 && radiusBase >= 7) {\n    radiusSM = 5;\n  } else if (radiusBase < 14 && radiusBase >= 8) {\n    radiusSM = 6;\n  } else if (radiusBase < 16 && radiusBase >= 14) {\n    radiusSM = 7;\n  } else if (radiusBase >= 16) {\n    radiusSM = 8;\n  }\n  // radiusXS\n  if (radiusBase < 6 && radiusBase >= 2) {\n    radiusXS = 1;\n  } else if (radiusBase >= 6) {\n    radiusXS = 2;\n  }\n  // radiusOuter\n  if (radiusBase > 4 && radiusBase < 8) {\n    radiusOuter = 4;\n  } else if (radiusBase >= 8) {\n    radiusOuter = 6;\n  }\n  return {\n    borderRadius: radiusBase,\n    borderRadiusXS: radiusXS,\n    borderRadiusSM: radiusSM,\n    borderRadiusLG: radiusLG,\n    borderRadiusOuter: radiusOuter\n  };\n};\nexport default genRadius;","const genControlHeight = token => {\n  const {\n    controlHeight\n  } = token;\n  return {\n    controlHeightSM: controlHeight * 0.75,\n    controlHeightXS: controlHeight * 0.5,\n    controlHeightLG: controlHeight * 1.25\n  };\n};\nexport default genControlHeight;","import genFontSizes from './genFontSizes';\nconst genFontMapToken = fontSize => {\n  const fontSizePairs = genFontSizes(fontSize);\n  const fontSizes = fontSizePairs.map(pair => pair.size);\n  const lineHeights = fontSizePairs.map(pair => pair.lineHeight);\n  const fontSizeMD = fontSizes[1];\n  const fontSizeSM = fontSizes[0];\n  const fontSizeLG = fontSizes[2];\n  const lineHeight = lineHeights[1];\n  const lineHeightSM = lineHeights[0];\n  const lineHeightLG = lineHeights[2];\n  return {\n    fontSizeSM,\n    fontSize: fontSizeMD,\n    fontSizeLG,\n    fontSizeXL: fontSizes[3],\n    fontSizeHeading1: fontSizes[6],\n    fontSizeHeading2: fontSizes[5],\n    fontSizeHeading3: fontSizes[4],\n    fontSizeHeading4: fontSizes[3],\n    fontSizeHeading5: fontSizes[2],\n    lineHeight,\n    lineHeightLG,\n    lineHeightSM,\n    fontHeight: Math.round(lineHeight * fontSizeMD),\n    fontHeightLG: Math.round(lineHeightLG * fontSizeLG),\n    fontHeightSM: Math.round(lineHeightSM * fontSizeSM),\n    lineHeightHeading1: lineHeights[6],\n    lineHeightHeading2: lineHeights[5],\n    lineHeightHeading3: lineHeights[4],\n    lineHeightHeading4: lineHeights[3],\n    lineHeightHeading5: lineHeights[2]\n  };\n};\nexport default genFontMapToken;","import { TinyColor } from '@ctrl/tinycolor';\nexport const getAlphaColor = (baseColor, alpha) => new TinyColor(baseColor).setAlpha(alpha).toRgbString();\nexport const getSolidColor = (baseColor, brightness) => {\n  const instance = new TinyColor(baseColor);\n  return instance.darken(brightness).toHexString();\n};","import { generate } from '@ant-design/colors';\nimport { getAlphaColor, getSolidColor } from './colorAlgorithm';\nexport const generateColorPalettes = baseColor => {\n  const colors = generate(baseColor);\n  return {\n    1: colors[0],\n    2: colors[1],\n    3: colors[2],\n    4: colors[3],\n    5: colors[4],\n    6: colors[5],\n    7: colors[6],\n    8: colors[4],\n    9: colors[5],\n    10: colors[6]\n    // 8: colors[7],\n    // 9: colors[8],\n    // 10: colors[9],\n  };\n};\nexport const generateNeutralColorPalettes = (bgBaseColor, textBaseColor) => {\n  const colorBgBase = bgBaseColor || '#fff';\n  const colorTextBase = textBaseColor || '#000';\n  return {\n    colorBgBase,\n    colorTextBase,\n    colorText: getAlphaColor(colorTextBase, 0.88),\n    colorTextSecondary: getAlphaColor(colorTextBase, 0.65),\n    colorTextTertiary: getAlphaColor(colorTextBase, 0.45),\n    colorTextQuaternary: getAlphaColor(colorTextBase, 0.25),\n    colorFill: getAlphaColor(colorTextBase, 0.15),\n    colorFillSecondary: getAlphaColor(colorTextBase, 0.06),\n    colorFillTertiary: getAlphaColor(colorTextBase, 0.04),\n    colorFillQuaternary: getAlphaColor(colorTextBase, 0.02),\n    colorBgSolid: getAlphaColor(colorTextBase, 1),\n    colorBgSolidHover: getAlphaColor(colorTextBase, 0.75),\n    colorBgSolidActive: getAlphaColor(colorTextBase, 0.95),\n    colorBgLayout: getSolidColor(colorBgBase, 4),\n    colorBgContainer: getSolidColor(colorBgBase, 0),\n    colorBgElevated: getSolidColor(colorBgBase, 0),\n    colorBgSpotlight: getAlphaColor(colorTextBase, 0.85),\n    colorBgBlur: 'transparent',\n    colorBorder: getSolidColor(colorBgBase, 15),\n    colorBorderSecondary: getSolidColor(colorBgBase, 6)\n  };\n};","import React from 'react';\nimport { createTheme } from '@ant-design/cssinjs';\nimport defaultDerivative from './themes/default';\nimport defaultSeedToken from './themes/seed';\nexport const defaultTheme = createTheme(defaultDerivative);\n// ================================ Context =================================\n// To ensure snapshot stable. We disable hashed in test env.\nexport const defaultConfig = {\n  token: defaultSeedToken,\n  override: {\n    override: defaultSeedToken\n  },\n  hashed: true\n};\nexport const DesignTokenContext = /*#__PURE__*/React.createContext(defaultConfig);","import { generate, presetPalettes, presetPrimaryColors } from '@ant-design/colors';\nimport { defaultPresetColors } from '../seed';\nimport genColorMapToken from '../shared/genColorMapToken';\nimport genCommonMapToken from '../shared/genCommonMapToken';\nimport genControlHeight from '../shared/genControlHeight';\nimport genFontMapToken from '../shared/genFontMapToken';\nimport genSizeMapToken from '../shared/genSizeMapToken';\nimport { generateColorPalettes, generateNeutralColorPalettes } from './colors';\nexport default function derivative(token) {\n  // pink is deprecated name of magenta, keep this for backwards compatibility\n  presetPrimaryColors.pink = presetPrimaryColors.magenta;\n  presetPalettes.pink = presetPalettes.magenta;\n  const colorPalettes = Object.keys(defaultPresetColors).map(colorKey => {\n    const colors = token[colorKey] === presetPrimaryColors[colorKey] ? presetPalettes[colorKey] : generate(token[colorKey]);\n    return new Array(10).fill(1).reduce((prev, _, i) => {\n      prev[`${colorKey}-${i + 1}`] = colors[i];\n      prev[`${colorKey}${i + 1}`] = colors[i];\n      return prev;\n    }, {});\n  }).reduce((prev, cur) => {\n    // biome-ignore lint/style/noParameterAssign: it is a reduce\n    prev = Object.assign(Object.assign({}, prev), cur);\n    return prev;\n  }, {});\n  return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, token), colorPalettes), genColorMapToken(token, {\n    generateColorPalettes,\n    generateNeutralColorPalettes\n  })), genFontMapToken(token.fontSize)), genSizeMapToken(token)), genControlHeight(token)), genCommonMapToken(token));\n}","import { TinyColor } from '@ctrl/tinycolor';\nexport default function genColorMapToken(seed, _ref) {\n  let {\n    generateColorPalettes,\n    generateNeutralColorPalettes\n  } = _ref;\n  const {\n    colorSuccess: colorSuccessBase,\n    colorWarning: colorWarningBase,\n    colorError: colorErrorBase,\n    colorInfo: colorInfoBase,\n    colorPrimary: colorPrimaryBase,\n    colorBgBase,\n    colorTextBase\n  } = seed;\n  const primaryColors = generateColorPalettes(colorPrimaryBase);\n  const successColors = generateColorPalettes(colorSuccessBase);\n  const warningColors = generateColorPalettes(colorWarningBase);\n  const errorColors = generateColorPalettes(colorErrorBase);\n  const infoColors = generateColorPalettes(colorInfoBase);\n  const neutralColors = generateNeutralColorPalettes(colorBgBase, colorTextBase);\n  // Color Link\n  const colorLink = seed.colorLink || seed.colorInfo;\n  const linkColors = generateColorPalettes(colorLink);\n  const colorErrorBgFilledHover = new TinyColor(errorColors[1]).mix(new TinyColor(errorColors[3]), 50).toHexString();\n  return Object.assign(Object.assign({}, neutralColors), {\n    colorPrimaryBg: primaryColors[1],\n    colorPrimaryBgHover: primaryColors[2],\n    colorPrimaryBorder: primaryColors[3],\n    colorPrimaryBorderHover: primaryColors[4],\n    colorPrimaryHover: primaryColors[5],\n    colorPrimary: primaryColors[6],\n    colorPrimaryActive: primaryColors[7],\n    colorPrimaryTextHover: primaryColors[8],\n    colorPrimaryText: primaryColors[9],\n    colorPrimaryTextActive: primaryColors[10],\n    colorSuccessBg: successColors[1],\n    colorSuccessBgHover: successColors[2],\n    colorSuccessBorder: successColors[3],\n    colorSuccessBorderHover: successColors[4],\n    colorSuccessHover: successColors[4],\n    colorSuccess: successColors[6],\n    colorSuccessActive: successColors[7],\n    colorSuccessTextHover: successColors[8],\n    colorSuccessText: successColors[9],\n    colorSuccessTextActive: successColors[10],\n    colorErrorBg: errorColors[1],\n    colorErrorBgHover: errorColors[2],\n    colorErrorBgFilledHover,\n    colorErrorBgActive: errorColors[3],\n    colorErrorBorder: errorColors[3],\n    colorErrorBorderHover: errorColors[4],\n    colorErrorHover: errorColors[5],\n    colorError: errorColors[6],\n    colorErrorActive: errorColors[7],\n    colorErrorTextHover: errorColors[8],\n    colorErrorText: errorColors[9],\n    colorErrorTextActive: errorColors[10],\n    colorWarningBg: warningColors[1],\n    colorWarningBgHover: warningColors[2],\n    colorWarningBorder: warningColors[3],\n    colorWarningBorderHover: warningColors[4],\n    colorWarningHover: warningColors[4],\n    colorWarning: warningColors[6],\n    colorWarningActive: warningColors[7],\n    colorWarningTextHover: warningColors[8],\n    colorWarningText: warningColors[9],\n    colorWarningTextActive: warningColors[10],\n    colorInfoBg: infoColors[1],\n    colorInfoBgHover: infoColors[2],\n    colorInfoBorder: infoColors[3],\n    colorInfoBorderHover: infoColors[4],\n    colorInfoHover: infoColors[4],\n    colorInfo: infoColors[6],\n    colorInfoActive: infoColors[7],\n    colorInfoTextHover: infoColors[8],\n    colorInfoText: infoColors[9],\n    colorInfoTextActive: infoColors[10],\n    colorLinkHover: linkColors[4],\n    colorLink: linkColors[6],\n    colorLinkActive: linkColors[7],\n    colorBgMask: new TinyColor('#000').setAlpha(0.45).toRgbString(),\n    colorWhite: '#fff'\n  });\n}","export default function genSizeMapToken(token) {\n  const {\n    sizeUnit,\n    sizeStep\n  } = token;\n  return {\n    sizeXXL: sizeUnit * (sizeStep + 8),\n    // 48\n    sizeXL: sizeUnit * (sizeStep + 4),\n    // 32\n    sizeLG: sizeUnit * (sizeStep + 2),\n    // 24\n    sizeMD: sizeUnit * (sizeStep + 1),\n    // 20\n    sizeMS: sizeUnit * sizeStep,\n    // 16\n    size: sizeUnit * sizeStep,\n    // 16\n    sizeSM: sizeUnit * (sizeStep - 1),\n    // 12\n    sizeXS: sizeUnit * (sizeStep - 2),\n    // 8\n    sizeXXS: sizeUnit * (sizeStep - 3) // 4\n  };\n}","import genRadius from './genRadius';\nexport default function genCommonMapToken(token) {\n  const {\n    motionUnit,\n    motionBase,\n    borderRadius,\n    lineWidth\n  } = token;\n  return Object.assign({\n    // motion\n    motionDurationFast: `${(motionBase + motionUnit).toFixed(1)}s`,\n    motionDurationMid: `${(motionBase + motionUnit * 2).toFixed(1)}s`,\n    motionDurationSlow: `${(motionBase + motionUnit * 3).toFixed(1)}s`,\n    // line\n    lineWidthBold: lineWidth + 1\n  }, genRadius(borderRadius));\n}","export default function canUseDom() {\n  return !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n}","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc');  // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIQAAACECAMAAABmmnOVAAAAP1BMVEUAAADw8PDx8fHx8fHw8PDw8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn6+vr7+/v8/Pz9/f3+/v7////VUeBZAAAABXRSTlMAqrDl6Kg7bCMAAAIHSURBVHja7dxbcsMgDAVQktRgzMM8tP+19rczjWMBks20ugvInJEwCD6ilHq+lpuj1HJ/1GMGxNcMiEUQghCEIAQhCEEIQhCCEIQgBCEIZKzfcwWoeQ/2HoSNFX5mt5cjbIJfydulCB3hbXZzHcIWOEjdrkI4+BB/DeKjoUfRgdjgJI4fscJpLDsinyOKZkYEQCTyIgygsrIiIg6xcyI0AEMpGhEeiwiMiIRFFD4EuhsAhg1h8QjHhvB4RGRDRDwisSESHlHYEBmPqGyIMgNiiko0rIn8t7+Ohn0izLBjbmyIZYazA78yW9ZlK8JhEZ4RsVSGbjQjAv0Z2o7Qlb4Q7fcOTz5h9tzAEvGn0YUwhfjq03Urt5SbZff7xEb8MtD3UmMrZR1636zM4erM63IV4vBLDV0/1ovQ7s2ot6/LdQjjD9qRw3oRwn0cd4s37Agdzg+PyLxZIYfMyHiAbfjLD9dQoxsGfoC0ciBsgbY4eoSD5gRqhIeORFpElwGtUFy9aOkICmGhO44KoUs/AjXqYRBxwIAaehVrM5B7JwKRxhBVEyAGC4EpheIuBOZF8xRhYDjbMMKPI/ZhRBpH1GFEHUecPhScIggMoEcRYdyQh9uh8/CSsAQ7ps+1P1CCJponmCMIQQhCEIIQhCAEIQhBCEIQgvhfiNcMiOcMiCn+BEOpx+1/QfENW4QCX+Mv6eoAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAABYlAAAWJQFJUiTwAAABaWlDQ1BEaXNwbGF5IFAzAAB4nHWQvUvDUBTFT6tS0DqIDh0cMolD1NIKdnFoKxRFMFQFq1OafgltfCQpUnETVyn4H1jBWXCwiFRwcXAQRAcR3Zw6KbhoeN6XVNoi3sfl/Ticc7lcwBtQGSv2AijplpFMxKS11Lrke4OHnlOqZrKooiwK/v276/PR9d5PiFlNu3YQ2U9cl84ul3aeAlN//V3Vn8maGv3f1EGNGRbgkYmVbYsJ3iUeMWgp4qrgvMvHgtMunzuelWSc+JZY0gpqhrhJLKc79HwHl4plrbWD2N6f1VeXxRzqUcxhEyYYilBRgQQF4X/8044/ji1yV2BQLo8CLMpESRETssTz0KFhEjJxCEHqkLhz634PrfvJbW3vFZhtcM4v2tpCAzidoZPV29p4BBgaAG7qTDVUR+qh9uZywPsJMJgChu8os2HmwiF3e38M6Hvh/GMM8B0CdpXzryPO7RqFn4Er/QcXKWq8MSlPPgAAAvNJREFUeAHtmu914jAMwAUTZATfBMdNcLkNGCEblJsANoCbgNuAbhA6Ae0EaSdIN1ClRG5UEyB2nIQP/b2n5wf+J8u2YisB+GZaZhABREwoSUl+kxiSBUkiwryTvEr6TPJEcpzNZu8wJaR4SpKTlBjGgWQJY8OdkhSOMjnJTvKMzIotn5AsJG8jZTXcVgZDI4rpzktRKAlsK3MMceL/YQio4QdslgqnK4iEM5CobdsO1spKuxCLd+iDZ+S/6mcNMXCUj2uZ9v5W0QahlOdpTWEkZMOXvQYha96ygJHB2kWHzbysxzKockTUciq9vJO4M2YPEyNOg8m7VsikQoFD+WQPsH4I2tVw+6mNjT/O4E5QS6m4VXDZqeAEqFlIrxU6hFpfpnolS9BAZLA+slzeC6KAxYAnavB2/2QQEaUfz0TSVmB5dYS3O2ijwIgPQGwOkp+bea7yU0mfIB6GhDvdR1pWL5Km9g89gJ+SPkN8MhKejTX2OwgeJTVnOdg8vIKODdidInR/YH1CqNpoy7RuKshC6E/hu6xQbeSLCkAgGIa3w3D1nMO09D7l6gFUIQ4c4LZ1hX8+hZVun+GYswFAE8sZEvZ0fygutAE/jKSv9o+50ygz5OWFjfSXFP9FcgR/jGqnQg/gTdIUhoGXyw9SfAfhWOO+nOXgMEeJqj2MdLjDlqOEztQXh5BAlRteLDDuOciotpNLhewIN+AJNuHGMqR+h/btTfHxWqFUCpVwZ2BzU1x2LThZNMJFWf/2TRGbzdx+cRgZWfvWqFnXSrlU2MLEYH2XYE4+le4lsPWgVoPxqesGWVMYGazjo9jLiNhEAtgCo8VHxRuWoS7dbWzT2xJ+/emg8gZi4Axij8PEffgksI2uvOpgpaa1wIhxHxzw9ZXbEXunk7JSNRAMC4Sxxdf49QyV4xgBZTx/u2g756XGD0L2IO5rViN5W2x/zTrZ++IDhlHKQFLoQexPDVg4QMa/DXz91MB+ZsAXpyPcw6cG30TgA+xM4c4Flw4dAAAAAElFTkSuQmCC\"","import warning from \"rc-util/es/warning\";\nimport getEntity from \"./keyUtil\";\nfunction removeFromCheckedKeys(halfCheckedKeys, checkedKeys) {\n  var filteredKeys = new Set();\n  halfCheckedKeys.forEach(function (key) {\n    if (!checkedKeys.has(key)) {\n      filteredKeys.add(key);\n    }\n  });\n  return filteredKeys;\n}\nexport function isCheckDisabled(node) {\n  var _ref = node || {},\n    disabled = _ref.disabled,\n    disableCheckbox = _ref.disableCheckbox,\n    checkable = _ref.checkable;\n  return !!(disabled || disableCheckbox) || checkable === false;\n}\n\n// Fill miss keys\nfunction fillConductCheck(keys, levelEntities, maxLevel, syntheticGetCheckDisabled) {\n  var checkedKeys = new Set(keys);\n  var halfCheckedKeys = new Set();\n\n  // Add checked keys top to bottom\n  for (var level = 0; level <= maxLevel; level += 1) {\n    var entities = levelEntities.get(level) || new Set();\n    entities.forEach(function (entity) {\n      var key = entity.key,\n        node = entity.node,\n        _entity$children = entity.children,\n        children = _entity$children === void 0 ? [] : _entity$children;\n      if (checkedKeys.has(key) && !syntheticGetCheckDisabled(node)) {\n        children.filter(function (childEntity) {\n          return !syntheticGetCheckDisabled(childEntity.node);\n        }).forEach(function (childEntity) {\n          checkedKeys.add(childEntity.key);\n        });\n      }\n    });\n  }\n\n  // Add checked keys from bottom to top\n  var visitedKeys = new Set();\n  for (var _level = maxLevel; _level >= 0; _level -= 1) {\n    var _entities = levelEntities.get(_level) || new Set();\n    _entities.forEach(function (entity) {\n      var parent = entity.parent,\n        node = entity.node;\n\n      // Skip if no need to check\n      if (syntheticGetCheckDisabled(node) || !entity.parent || visitedKeys.has(entity.parent.key)) {\n        return;\n      }\n\n      // Skip if parent is disabled\n      if (syntheticGetCheckDisabled(entity.parent.node)) {\n        visitedKeys.add(parent.key);\n        return;\n      }\n      var allChecked = true;\n      var partialChecked = false;\n      (parent.children || []).filter(function (childEntity) {\n        return !syntheticGetCheckDisabled(childEntity.node);\n      }).forEach(function (_ref2) {\n        var key = _ref2.key;\n        var checked = checkedKeys.has(key);\n        if (allChecked && !checked) {\n          allChecked = false;\n        }\n        if (!partialChecked && (checked || halfCheckedKeys.has(key))) {\n          partialChecked = true;\n        }\n      });\n      if (allChecked) {\n        checkedKeys.add(parent.key);\n      }\n      if (partialChecked) {\n        halfCheckedKeys.add(parent.key);\n      }\n      visitedKeys.add(parent.key);\n    });\n  }\n  return {\n    checkedKeys: Array.from(checkedKeys),\n    halfCheckedKeys: Array.from(removeFromCheckedKeys(halfCheckedKeys, checkedKeys))\n  };\n}\n\n// Remove useless key\nfunction cleanConductCheck(keys, halfKeys, levelEntities, maxLevel, syntheticGetCheckDisabled) {\n  var checkedKeys = new Set(keys);\n  var halfCheckedKeys = new Set(halfKeys);\n\n  // Remove checked keys from top to bottom\n  for (var level = 0; level <= maxLevel; level += 1) {\n    var entities = levelEntities.get(level) || new Set();\n    entities.forEach(function (entity) {\n      var key = entity.key,\n        node = entity.node,\n        _entity$children2 = entity.children,\n        children = _entity$children2 === void 0 ? [] : _entity$children2;\n      if (!checkedKeys.has(key) && !halfCheckedKeys.has(key) && !syntheticGetCheckDisabled(node)) {\n        children.filter(function (childEntity) {\n          return !syntheticGetCheckDisabled(childEntity.node);\n        }).forEach(function (childEntity) {\n          checkedKeys.delete(childEntity.key);\n        });\n      }\n    });\n  }\n\n  // Remove checked keys form bottom to top\n  halfCheckedKeys = new Set();\n  var visitedKeys = new Set();\n  for (var _level2 = maxLevel; _level2 >= 0; _level2 -= 1) {\n    var _entities2 = levelEntities.get(_level2) || new Set();\n    _entities2.forEach(function (entity) {\n      var parent = entity.parent,\n        node = entity.node;\n\n      // Skip if no need to check\n      if (syntheticGetCheckDisabled(node) || !entity.parent || visitedKeys.has(entity.parent.key)) {\n        return;\n      }\n\n      // Skip if parent is disabled\n      if (syntheticGetCheckDisabled(entity.parent.node)) {\n        visitedKeys.add(parent.key);\n        return;\n      }\n      var allChecked = true;\n      var partialChecked = false;\n      (parent.children || []).filter(function (childEntity) {\n        return !syntheticGetCheckDisabled(childEntity.node);\n      }).forEach(function (_ref3) {\n        var key = _ref3.key;\n        var checked = checkedKeys.has(key);\n        if (allChecked && !checked) {\n          allChecked = false;\n        }\n        if (!partialChecked && (checked || halfCheckedKeys.has(key))) {\n          partialChecked = true;\n        }\n      });\n      if (!allChecked) {\n        checkedKeys.delete(parent.key);\n      }\n      if (partialChecked) {\n        halfCheckedKeys.add(parent.key);\n      }\n      visitedKeys.add(parent.key);\n    });\n  }\n  return {\n    checkedKeys: Array.from(checkedKeys),\n    halfCheckedKeys: Array.from(removeFromCheckedKeys(halfCheckedKeys, checkedKeys))\n  };\n}\n\n/**\n * Conduct with keys.\n * @param keyList current key list\n * @param keyEntities key - dataEntity map\n * @param mode `fill` to fill missing key, `clean` to remove useless key\n */\nexport function conductCheck(keyList, checked, keyEntities, getCheckDisabled) {\n  var warningMissKeys = [];\n  var syntheticGetCheckDisabled;\n  if (getCheckDisabled) {\n    syntheticGetCheckDisabled = getCheckDisabled;\n  } else {\n    syntheticGetCheckDisabled = isCheckDisabled;\n  }\n\n  // We only handle exist keys\n  var keys = new Set(keyList.filter(function (key) {\n    var hasEntity = !!getEntity(keyEntities, key);\n    if (!hasEntity) {\n      warningMissKeys.push(key);\n    }\n    return hasEntity;\n  }));\n  var levelEntities = new Map();\n  var maxLevel = 0;\n\n  // Convert entities by level for calculation\n  Object.keys(keyEntities).forEach(function (key) {\n    var entity = keyEntities[key];\n    var level = entity.level;\n    var levelSet = levelEntities.get(level);\n    if (!levelSet) {\n      levelSet = new Set();\n      levelEntities.set(level, levelSet);\n    }\n    levelSet.add(entity);\n    maxLevel = Math.max(maxLevel, level);\n  });\n  warning(!warningMissKeys.length, \"Tree missing follow keys: \".concat(warningMissKeys.slice(0, 100).map(function (key) {\n    return \"'\".concat(key, \"'\");\n  }).join(', ')));\n  var result;\n  if (checked === true) {\n    result = fillConductCheck(keys, levelEntities, maxLevel, syntheticGetCheckDisabled);\n  } else {\n    result = cleanConductCheck(keys, checked.halfCheckedKeys, levelEntities, maxLevel, syntheticGetCheckDisabled);\n  }\n  return result;\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nfunction _slicedToArray(r, e) {\n  return arrayWithHoles(r) || iterableToArrayLimit(r, e) || unsupportedIterableToArray(r, e) || nonIterableRest();\n}\nexport { _slicedToArray as default };","function _iterableToArrayLimit(r, l) {\n  var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n  if (null != t) {\n    var e,\n      n,\n      i,\n      u,\n      a = [],\n      f = !0,\n      o = !1;\n    try {\n      if (i = (t = t.call(r)).next, 0 === l) {\n        if (Object(t) !== t) return;\n        f = !1;\n      } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n    } catch (r) {\n      o = !0, n = r;\n    } finally {\n      try {\n        if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n      } finally {\n        if (o) throw n;\n      }\n    }\n    return a;\n  }\n}\nexport { _iterableToArrayLimit as default };","import { useToken } from '../../theme/internal';\n/**\n * This hook is only for cssVar to add root className for components.\n * If root ClassName is needed, this hook could be refactored with `-root`\n * @param prefixCls\n */\nconst useCSSVarCls = prefixCls => {\n  const [,,,, cssVar] = useToken();\n  return cssVar ? `${prefixCls}-css-var` : '';\n};\nexport default useCSSVarCls;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"children\"];\n/* eslint-disable no-lonely-if */\n/**\n * Legacy code. Should avoid to use if you are new to import these code.\n */\n\nimport warning from \"rc-util/es/warning\";\nimport React from 'react';\nimport TreeNode from \"./TreeNode\";\nimport getEntity from \"./utils/keyUtil\";\nexport { getPosition, isTreeNode } from \"./utils/treeUtil\";\nexport function arrDel(list, value) {\n  if (!list) return [];\n  var clone = list.slice();\n  var index = clone.indexOf(value);\n  if (index >= 0) {\n    clone.splice(index, 1);\n  }\n  return clone;\n}\nexport function arrAdd(list, value) {\n  var clone = (list || []).slice();\n  if (clone.indexOf(value) === -1) {\n    clone.push(value);\n  }\n  return clone;\n}\nexport function posToArr(pos) {\n  return pos.split('-');\n}\nexport function getDragChildrenKeys(dragNodeKey, keyEntities) {\n  // not contains self\n  // self for left or right drag\n  var dragChildrenKeys = [];\n  var entity = getEntity(keyEntities, dragNodeKey);\n  function dig() {\n    var list = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n    list.forEach(function (_ref) {\n      var key = _ref.key,\n        children = _ref.children;\n      dragChildrenKeys.push(key);\n      dig(children);\n    });\n  }\n  dig(entity.children);\n  return dragChildrenKeys;\n}\nexport function isLastChild(treeNodeEntity) {\n  if (treeNodeEntity.parent) {\n    var posArr = posToArr(treeNodeEntity.pos);\n    return Number(posArr[posArr.length - 1]) === treeNodeEntity.parent.children.length - 1;\n  }\n  return false;\n}\nexport function isFirstChild(treeNodeEntity) {\n  var posArr = posToArr(treeNodeEntity.pos);\n  return Number(posArr[posArr.length - 1]) === 0;\n}\n\n// Only used when drag, not affect SSR.\nexport function calcDropPosition(event, dragNode, targetNode, indent, startMousePosition, allowDrop, flattenedNodes, keyEntities, expandKeys, direction) {\n  var _abstractDropNodeEnti;\n  var clientX = event.clientX,\n    clientY = event.clientY;\n  var _getBoundingClientRec = event.target.getBoundingClientRect(),\n    top = _getBoundingClientRec.top,\n    height = _getBoundingClientRec.height;\n  // optional chain for testing\n  var horizontalMouseOffset = (direction === 'rtl' ? -1 : 1) * (((startMousePosition === null || startMousePosition === void 0 ? void 0 : startMousePosition.x) || 0) - clientX);\n  var rawDropLevelOffset = (horizontalMouseOffset - 12) / indent;\n\n  // Filter the expanded keys to exclude the node that not has children currently (like async nodes).\n  var filteredExpandKeys = expandKeys.filter(function (key) {\n    var _keyEntities$key;\n    return (_keyEntities$key = keyEntities[key]) === null || _keyEntities$key === void 0 || (_keyEntities$key = _keyEntities$key.children) === null || _keyEntities$key === void 0 ? void 0 : _keyEntities$key.length;\n  });\n\n  // find abstract drop node by horizontal offset\n  var abstractDropNodeEntity = getEntity(keyEntities, targetNode.props.eventKey);\n  if (clientY < top + height / 2) {\n    // first half, set abstract drop node to previous node\n    var nodeIndex = flattenedNodes.findIndex(function (flattenedNode) {\n      return flattenedNode.key === abstractDropNodeEntity.key;\n    });\n    var prevNodeIndex = nodeIndex <= 0 ? 0 : nodeIndex - 1;\n    var prevNodeKey = flattenedNodes[prevNodeIndex].key;\n    abstractDropNodeEntity = getEntity(keyEntities, prevNodeKey);\n  }\n  var initialAbstractDropNodeKey = abstractDropNodeEntity.key;\n  var abstractDragOverEntity = abstractDropNodeEntity;\n  var dragOverNodeKey = abstractDropNodeEntity.key;\n  var dropPosition = 0;\n  var dropLevelOffset = 0;\n\n  // Only allow cross level drop when dragging on a non-expanded node\n  if (!filteredExpandKeys.includes(initialAbstractDropNodeKey)) {\n    for (var i = 0; i < rawDropLevelOffset; i += 1) {\n      if (isLastChild(abstractDropNodeEntity)) {\n        abstractDropNodeEntity = abstractDropNodeEntity.parent;\n        dropLevelOffset += 1;\n      } else {\n        break;\n      }\n    }\n  }\n  var abstractDragDataNode = dragNode.props.data;\n  var abstractDropDataNode = abstractDropNodeEntity.node;\n  var dropAllowed = true;\n  if (isFirstChild(abstractDropNodeEntity) && abstractDropNodeEntity.level === 0 && clientY < top + height / 2 && allowDrop({\n    dragNode: abstractDragDataNode,\n    dropNode: abstractDropDataNode,\n    dropPosition: -1\n  }) && abstractDropNodeEntity.key === targetNode.props.eventKey) {\n    // first half of first node in first level\n    dropPosition = -1;\n  } else if ((abstractDragOverEntity.children || []).length && filteredExpandKeys.includes(dragOverNodeKey)) {\n    // drop on expanded node\n    // only allow drop inside\n    if (allowDrop({\n      dragNode: abstractDragDataNode,\n      dropNode: abstractDropDataNode,\n      dropPosition: 0\n    })) {\n      dropPosition = 0;\n    } else {\n      dropAllowed = false;\n    }\n  } else if (dropLevelOffset === 0) {\n    if (rawDropLevelOffset > -1.5) {\n      // | Node     | <- abstractDropNode\n      // | -^-===== | <- mousePosition\n      // 1. try drop after\n      // 2. do not allow drop\n      if (allowDrop({\n        dragNode: abstractDragDataNode,\n        dropNode: abstractDropDataNode,\n        dropPosition: 1\n      })) {\n        dropPosition = 1;\n      } else {\n        dropAllowed = false;\n      }\n    } else {\n      // | Node     | <- abstractDropNode\n      // | ---==^== | <- mousePosition\n      // whether it has children or doesn't has children\n      // always\n      // 1. try drop inside\n      // 2. try drop after\n      // 3. do not allow drop\n      if (allowDrop({\n        dragNode: abstractDragDataNode,\n        dropNode: abstractDropDataNode,\n        dropPosition: 0\n      })) {\n        dropPosition = 0;\n      } else if (allowDrop({\n        dragNode: abstractDragDataNode,\n        dropNode: abstractDropDataNode,\n        dropPosition: 1\n      })) {\n        dropPosition = 1;\n      } else {\n        dropAllowed = false;\n      }\n    }\n  } else {\n    // | Node1 | <- abstractDropNode\n    //      |  Node2  |\n    // --^--|----=====| <- mousePosition\n    // 1. try insert after Node1\n    // 2. do not allow drop\n    if (allowDrop({\n      dragNode: abstractDragDataNode,\n      dropNode: abstractDropDataNode,\n      dropPosition: 1\n    })) {\n      dropPosition = 1;\n    } else {\n      dropAllowed = false;\n    }\n  }\n  return {\n    dropPosition: dropPosition,\n    dropLevelOffset: dropLevelOffset,\n    dropTargetKey: abstractDropNodeEntity.key,\n    dropTargetPos: abstractDropNodeEntity.pos,\n    dragOverNodeKey: dragOverNodeKey,\n    dropContainerKey: dropPosition === 0 ? null : ((_abstractDropNodeEnti = abstractDropNodeEntity.parent) === null || _abstractDropNodeEnti === void 0 ? void 0 : _abstractDropNodeEnti.key) || null,\n    dropAllowed: dropAllowed\n  };\n}\n\n/**\n * Return selectedKeys according with multiple prop\n * @param selectedKeys\n * @param props\n * @returns [string]\n */\nexport function calcSelectedKeys(selectedKeys, props) {\n  if (!selectedKeys) return undefined;\n  var multiple = props.multiple;\n  if (multiple) {\n    return selectedKeys.slice();\n  }\n  if (selectedKeys.length) {\n    return [selectedKeys[0]];\n  }\n  return selectedKeys;\n}\nvar internalProcessProps = function internalProcessProps(props) {\n  return props;\n};\nexport function convertDataToTree(treeData, processor) {\n  if (!treeData) return [];\n  var _ref2 = processor || {},\n    _ref2$processProps = _ref2.processProps,\n    processProps = _ref2$processProps === void 0 ? internalProcessProps : _ref2$processProps;\n  var list = Array.isArray(treeData) ? treeData : [treeData];\n  return list.map(function (_ref3) {\n    var children = _ref3.children,\n      props = _objectWithoutProperties(_ref3, _excluded);\n    var childrenNodes = convertDataToTree(children, processor);\n    return /*#__PURE__*/React.createElement(TreeNode, _extends({\n      key: props.key\n    }, processProps(props)), childrenNodes);\n  });\n}\n\n/**\n * Parse `checkedKeys` to { checkedKeys, halfCheckedKeys } style\n */\nexport function parseCheckedKeys(keys) {\n  if (!keys) {\n    return null;\n  }\n\n  // Convert keys to object format\n  var keyProps;\n  if (Array.isArray(keys)) {\n    // [Legacy] Follow the api doc\n    keyProps = {\n      checkedKeys: keys,\n      halfCheckedKeys: undefined\n    };\n  } else if (_typeof(keys) === 'object') {\n    keyProps = {\n      checkedKeys: keys.checked || undefined,\n      halfCheckedKeys: keys.halfChecked || undefined\n    };\n  } else {\n    warning(false, '`checkedKeys` is not an array or an object');\n    return null;\n  }\n  return keyProps;\n}\n\n/**\n * If user use `autoExpandParent` we should get the list of parent node\n * @param keyList\n * @param keyEntities\n */\nexport function conductExpandParent(keyList, keyEntities) {\n  var expandedKeys = new Set();\n  function conductUp(key) {\n    if (expandedKeys.has(key)) return;\n    var entity = getEntity(keyEntities, key);\n    if (!entity) return;\n    expandedKeys.add(key);\n    var parent = entity.parent,\n      node = entity.node;\n    if (node.disabled) return;\n    if (parent) {\n      conductUp(parent.key);\n    }\n  }\n  (keyList || []).forEach(function (key) {\n    conductUp(key);\n  });\n  return _toConsumableArray(expandedKeys);\n}","\"use client\";\n\nimport { unit } from '@ant-design/cssinjs';\nexport { operationUnit } from './operationUnit';\nexport const textEllipsis = {\n  overflow: 'hidden',\n  whiteSpace: 'nowrap',\n  textOverflow: 'ellipsis'\n};\nexport const resetComponent = function (token) {\n  let needInheritFontFamily = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n  return {\n    boxSizing: 'border-box',\n    margin: 0,\n    padding: 0,\n    color: token.colorText,\n    fontSize: token.fontSize,\n    // font-variant: @font-variant-base;\n    lineHeight: token.lineHeight,\n    listStyle: 'none',\n    // font-feature-settings: @font-feature-settings-base;\n    fontFamily: needInheritFontFamily ? 'inherit' : token.fontFamily\n  };\n};\nexport const resetIcon = () => ({\n  display: 'inline-flex',\n  alignItems: 'center',\n  color: 'inherit',\n  fontStyle: 'normal',\n  lineHeight: 0,\n  textAlign: 'center',\n  textTransform: 'none',\n  // for SVG icon, see https://blog.prototypr.io/align-svg-icons-to-text-and-say-goodbye-to-font-icons-d44b3d7b26b4\n  verticalAlign: '-0.125em',\n  textRendering: 'optimizeLegibility',\n  '-webkit-font-smoothing': 'antialiased',\n  '-moz-osx-font-smoothing': 'grayscale',\n  '> *': {\n    lineHeight: 1\n  },\n  svg: {\n    display: 'inline-block'\n  }\n});\nexport const clearFix = () => ({\n  // https://github.com/ant-design/ant-design/issues/21301#issuecomment-583955229\n  '&::before': {\n    display: 'table',\n    content: '\"\"'\n  },\n  '&::after': {\n    // https://github.com/ant-design/ant-design/issues/21864\n    display: 'table',\n    clear: 'both',\n    content: '\"\"'\n  }\n});\nexport const genLinkStyle = token => ({\n  a: {\n    color: token.colorLink,\n    textDecoration: token.linkDecoration,\n    backgroundColor: 'transparent',\n    // remove the gray background on active links in IE 10.\n    outline: 'none',\n    cursor: 'pointer',\n    transition: `color ${token.motionDurationSlow}`,\n    '-webkit-text-decoration-skip': 'objects',\n    // remove gaps in links underline in iOS 8+ and Safari 8+.\n    '&:hover': {\n      color: token.colorLinkHover\n    },\n    '&:active': {\n      color: token.colorLinkActive\n    },\n    '&:active, &:hover': {\n      textDecoration: token.linkHoverDecoration,\n      outline: 0\n    },\n    // https://github.com/ant-design/ant-design/issues/22503\n    '&:focus': {\n      textDecoration: token.linkFocusDecoration,\n      outline: 0\n    },\n    '&[disabled]': {\n      color: token.colorTextDisabled,\n      cursor: 'not-allowed'\n    }\n  }\n});\nexport const genCommonStyle = (token, componentPrefixCls, rootCls, resetFont) => {\n  const prefixSelector = `[class^=\"${componentPrefixCls}\"], [class*=\" ${componentPrefixCls}\"]`;\n  const rootPrefixSelector = rootCls ? `.${rootCls}` : prefixSelector;\n  const resetStyle = {\n    boxSizing: 'border-box',\n    '&::before, &::after': {\n      boxSizing: 'border-box'\n    }\n  };\n  let resetFontStyle = {};\n  if (resetFont !== false) {\n    resetFontStyle = {\n      fontFamily: token.fontFamily,\n      fontSize: token.fontSize\n    };\n  }\n  return {\n    [rootPrefixSelector]: Object.assign(Object.assign(Object.assign({}, resetFontStyle), resetStyle), {\n      [prefixSelector]: resetStyle\n    })\n  };\n};\nexport const genFocusOutline = token => ({\n  outline: `${unit(token.lineWidthFocus)} solid ${token.colorPrimaryBorder}`,\n  outlineOffset: 1,\n  transition: 'outline-offset 0s, outline 0s'\n});\nexport const genFocusStyle = token => ({\n  '&:focus-visible': Object.assign({}, genFocusOutline(token))\n});","\"use strict\";\n/* eslint-disable */\n// @ts-nocheck\n!(function (r, e) {\n    \"object\" == typeof exports\n        ? (module.exports = exports = e(require(\"./core\")))\n        : \"function\" == typeof define && define.amd\n            ? define([\"./core\"], e)\n            : e(r.CryptoJS);\n})(this, function (i) {\n    return ((function (h) {\n        var r = i, e = r.lib, t = e.WordArray, n = e.Hasher, o = r.algo, b = [];\n        !(function () {\n            for (var r = 0; r < 64; r++)\n                b[r] = (4294967296 * h.abs(h.sin(r + 1))) | 0;\n        })();\n        var a = (o.MD5 = n.extend({\n            _doReset: function () {\n                this._hash = new t.init([\n                    1732584193,\n                    4023233417,\n                    2562383102,\n                    271733878\n                ]);\n            },\n            _doProcessBlock: function (r, e) {\n                for (var t = 0; t < 16; t++) {\n                    var n = e + t, o = r[n];\n                    r[n] =\n                        (16711935 & ((o << 8) | (o >>> 24))) |\n                            (4278255360 & ((o << 24) | (o >>> 8)));\n                }\n                var a = this._hash.words, i = r[e + 0], s = r[e + 1], c = r[e + 2], f = r[e + 3], h = r[e + 4], u = r[e + 5], v = r[e + 6], d = r[e + 7], l = r[e + 8], _ = r[e + 9], p = r[e + 10], y = r[e + 11], D = r[e + 12], H = r[e + 13], M = r[e + 14], g = r[e + 15], m = a[0], w = a[1], x = a[2], B = a[3];\n                (m = j(m, w, x, B, i, 7, b[0])),\n                    (B = j(B, m, w, x, s, 12, b[1])),\n                    (x = j(x, B, m, w, c, 17, b[2])),\n                    (w = j(w, x, B, m, f, 22, b[3])),\n                    (m = j(m, w, x, B, h, 7, b[4])),\n                    (B = j(B, m, w, x, u, 12, b[5])),\n                    (x = j(x, B, m, w, v, 17, b[6])),\n                    (w = j(w, x, B, m, d, 22, b[7])),\n                    (m = j(m, w, x, B, l, 7, b[8])),\n                    (B = j(B, m, w, x, _, 12, b[9])),\n                    (x = j(x, B, m, w, p, 17, b[10])),\n                    (w = j(w, x, B, m, y, 22, b[11])),\n                    (m = j(m, w, x, B, D, 7, b[12])),\n                    (B = j(B, m, w, x, H, 12, b[13])),\n                    (x = j(x, B, m, w, M, 17, b[14])),\n                    (m = k(m, (w = j(w, x, B, m, g, 22, b[15])), x, B, s, 5, b[16])),\n                    (B = k(B, m, w, x, v, 9, b[17])),\n                    (x = k(x, B, m, w, y, 14, b[18])),\n                    (w = k(w, x, B, m, i, 20, b[19])),\n                    (m = k(m, w, x, B, u, 5, b[20])),\n                    (B = k(B, m, w, x, p, 9, b[21])),\n                    (x = k(x, B, m, w, g, 14, b[22])),\n                    (w = k(w, x, B, m, h, 20, b[23])),\n                    (m = k(m, w, x, B, _, 5, b[24])),\n                    (B = k(B, m, w, x, M, 9, b[25])),\n                    (x = k(x, B, m, w, f, 14, b[26])),\n                    (w = k(w, x, B, m, l, 20, b[27])),\n                    (m = k(m, w, x, B, H, 5, b[28])),\n                    (B = k(B, m, w, x, c, 9, b[29])),\n                    (x = k(x, B, m, w, d, 14, b[30])),\n                    (m = q(m, (w = k(w, x, B, m, D, 20, b[31])), x, B, u, 4, b[32])),\n                    (B = q(B, m, w, x, l, 11, b[33])),\n                    (x = q(x, B, m, w, y, 16, b[34])),\n                    (w = q(w, x, B, m, M, 23, b[35])),\n                    (m = q(m, w, x, B, s, 4, b[36])),\n                    (B = q(B, m, w, x, h, 11, b[37])),\n                    (x = q(x, B, m, w, d, 16, b[38])),\n                    (w = q(w, x, B, m, p, 23, b[39])),\n                    (m = q(m, w, x, B, H, 4, b[40])),\n                    (B = q(B, m, w, x, i, 11, b[41])),\n                    (x = q(x, B, m, w, f, 16, b[42])),\n                    (w = q(w, x, B, m, v, 23, b[43])),\n                    (m = q(m, w, x, B, _, 4, b[44])),\n                    (B = q(B, m, w, x, D, 11, b[45])),\n                    (x = q(x, B, m, w, g, 16, b[46])),\n                    (m = z(m, (w = q(w, x, B, m, c, 23, b[47])), x, B, i, 6, b[48])),\n                    (B = z(B, m, w, x, d, 10, b[49])),\n                    (x = z(x, B, m, w, M, 15, b[50])),\n                    (w = z(w, x, B, m, u, 21, b[51])),\n                    (m = z(m, w, x, B, D, 6, b[52])),\n                    (B = z(B, m, w, x, f, 10, b[53])),\n                    (x = z(x, B, m, w, p, 15, b[54])),\n                    (w = z(w, x, B, m, s, 21, b[55])),\n                    (m = z(m, w, x, B, l, 6, b[56])),\n                    (B = z(B, m, w, x, g, 10, b[57])),\n                    (x = z(x, B, m, w, v, 15, b[58])),\n                    (w = z(w, x, B, m, H, 21, b[59])),\n                    (m = z(m, w, x, B, h, 6, b[60])),\n                    (B = z(B, m, w, x, y, 10, b[61])),\n                    (x = z(x, B, m, w, c, 15, b[62])),\n                    (w = z(w, x, B, m, _, 21, b[63])),\n                    (a[0] = (a[0] + m) | 0),\n                    (a[1] = (a[1] + w) | 0),\n                    (a[2] = (a[2] + x) | 0),\n                    (a[3] = (a[3] + B) | 0);\n            },\n            _doFinalize: function () {\n                var r = this._data, e = r.words, t = 8 * this._nDataBytes, n = 8 * r.sigBytes;\n                e[n >>> 5] |= 128 << (24 - (n % 32));\n                var o = h.floor(t / 4294967296), a = t;\n                (e[15 + (((64 + n) >>> 9) << 4)] =\n                    (16711935 & ((o << 8) | (o >>> 24))) |\n                        (4278255360 & ((o << 24) | (o >>> 8)))),\n                    (e[14 + (((64 + n) >>> 9) << 4)] =\n                        (16711935 & ((a << 8) | (a >>> 24))) |\n                            (4278255360 & ((a << 24) | (a >>> 8)))),\n                    (r.sigBytes = 4 * (e.length + 1)),\n                    this._process();\n                for (var i = this._hash, s = i.words, c = 0; c < 4; c++) {\n                    var f = s[c];\n                    s[c] =\n                        (16711935 & ((f << 8) | (f >>> 24))) |\n                            (4278255360 & ((f << 24) | (f >>> 8)));\n                }\n                return i;\n            },\n            clone: function () {\n                var r = n.clone.call(this);\n                return (r._hash = this._hash.clone()), r;\n            }\n        }));\n        function j(r, e, t, n, o, a, i) {\n            var s = r + ((e & t) | (~e & n)) + o + i;\n            return ((s << a) | (s >>> (32 - a))) + e;\n        }\n        function k(r, e, t, n, o, a, i) {\n            var s = r + ((e & n) | (t & ~n)) + o + i;\n            return ((s << a) | (s >>> (32 - a))) + e;\n        }\n        function q(r, e, t, n, o, a, i) {\n            var s = r + (e ^ t ^ n) + o + i;\n            return ((s << a) | (s >>> (32 - a))) + e;\n        }\n        function z(r, e, t, n, o, a, i) {\n            var s = r + (t ^ (e | ~n)) + o + i;\n            return ((s << a) | (s >>> (32 - a))) + e;\n        }\n        (r.MD5 = n._createHelper(a)), (r.HmacMD5 = n._createHmacHelper(a));\n    })(Math),\n        i.MD5);\n});\n","/* globals __webpack_amd_options__ */\nmodule.exports = __webpack_amd_options__;\n","function _nonIterableRest() {\n  throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableRest as default };","export function getLineHeight(fontSize) {\n  return (fontSize + 8) / fontSize;\n}\n// https://zhuanlan.zhihu.com/p/32746810\nexport default function getFontSizes(base) {\n  const fontSizes = new Array(10).fill(null).map((_, index) => {\n    const i = index - 1;\n    const baseSize = base * Math.pow(Math.E, i / 5);\n    const intSize = index > 1 ? Math.floor(baseSize) : Math.ceil(baseSize);\n    // Convert to even\n    return Math.floor(intSize / 2) * 2;\n  });\n  fontSizes[1] = base;\n  return fontSizes.map(size => ({\n    size,\n    lineHeight: getLineHeight(size)\n  }));\n}","import { PayloadAction, createSlice } from \"@reduxjs/toolkit\";\n\nconst uiSlice = createSlice({\n  name: \"ui\",\n  initialState: {\n    isShowModal: false,\n  },\n  reducers: {\n    setModal(state, action: PayloadAction<boolean>) {\n      state.isShowModal = action.payload;\n    },\n  },\n});\n\nexport const { setModal } = uiSlice.actions;\n\nexport default uiSlice.reducer;\n","import { combineReducers, configureStore } from \"@reduxjs/toolkit\";\nimport { useDispatch } from \"react-redux\";\nimport home from \"./home\";\nimport ui from \"./ui\";\n\nconst rootReducer = combineReducers({\n  home,\n  ui,\n});\n\nconst rootStore = configureStore({\n  reducer: rootReducer,\n  devTools: __DEV__,\n  middleware: (getDefaultMiddleware) => {\n    return getDefaultMiddleware({\n      serializableCheck: false,\n    });\n  },\n});\n\nexport type RootStore = ReturnType<typeof rootReducer>;\n\nexport const useAppDispatch: () => typeof rootStore.dispatch = useDispatch;\n\nexport default rootStore;\n","import { createContext } from 'react';\nvar IconContext = /*#__PURE__*/createContext({});\nexport default IconContext;","\nconst defaultOptions = {\n    preserveOrder: false,\n    attributeNamePrefix: '@_',\n    attributesGroupName: false,\n    textNodeName: '#text',\n    ignoreAttributes: true,\n    removeNSPrefix: false, // remove NS from tag name or attribute name if true\n    allowBooleanAttributes: false, //a tag can have attributes without any value\n    //ignoreRootElement : false,\n    parseTagValue: true,\n    parseAttributeValue: false,\n    trimValues: true, //Trim string values of tag and attributes\n    cdataPropName: false,\n    numberParseOptions: {\n      hex: true,\n      leadingZeros: true,\n      eNotation: true\n    },\n    tagValueProcessor: function(tagName, val) {\n      return val;\n    },\n    attributeValueProcessor: function(attrName, val) {\n      return val;\n    },\n    stopNodes: [], //nested tags will not be parsed even for errors\n    alwaysCreateTextNode: false,\n    isArray: () => false,\n    commentPropName: false,\n    unpairedTags: [],\n    processEntities: true,\n    htmlEntities: false,\n    ignoreDeclaration: false,\n    ignorePiTags: false,\n    transformTagName: false,\n    transformAttributeName: false,\n    updateTag: function(tagName, jPath, attrs){\n      return tagName\n    },\n    // skipEmptyListItem: false\n};\n   \nconst buildOptions = function(options) {\n    return Object.assign({}, defaultOptions, options);\n};\n\nexports.buildOptions = buildOptions;\nexports.defaultOptions = defaultOptions;","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAABYlAAAWJQFJUiTwAAABaWlDQ1BEaXNwbGF5IFAzAAB4nHWQvUvDUBTFT6tS0DqIDh0cMolD1NIKdnFoKxRFMFQFq1OafgltfCQpUnETVyn4H1jBWXCwiFRwcXAQRAcR3Zw6KbhoeN6XVNoi3sfl/Ticc7lcwBtQGSv2AijplpFMxKS11Lrke4OHnlOqZrKooiwK/v276/PR9d5PiFlNu3YQ2U9cl84ul3aeAlN//V3Vn8maGv3f1EGNGRbgkYmVbYsJ3iUeMWgp4qrgvMvHgtMunzuelWSc+JZY0gpqhrhJLKc79HwHl4plrbWD2N6f1VeXxRzqUcxhEyYYilBRgQQF4X/8044/ji1yV2BQLo8CLMpESRETssTz0KFhEjJxCEHqkLhz634PrfvJbW3vFZhtcM4v2tpCAzidoZPV29p4BBgaAG7qTDVUR+qh9uZywPsJMJgChu8os2HmwiF3e38M6Hvh/GMM8B0CdpXzryPO7RqFn4Er/QcXKWq8MSlPPgAAAh9JREFUeAHtmY1xgzAMhZVMwAiMwAZlg2YENigbJBuETkA2SDegG9BOYDZIN3i1D6chRvzYkEDv/N35Lg62rOcKV1aIPB7PbAAIZEtlO8smcEPo7xJaK9K5nWwXDCNWJ0Q6dIQ9e1oDyhG4c6QlUaHAOKXC6CBb3BgXyXbqEJHQUuD+RYXuhz3jQ2aOEhzQs+nY/XDEvBDtlz0lR7bkzqvRP202m2pokh7zbnwd07NhQiGymBuboUeObMgRteqdIQlZMHX+lSkhtAq8gKXxApbGC1gaL2Bppgiomp1m+jwEk3ZU5Mi2ZxF1vy10rnJmUt4vox/TeN6M/rfl2sMw6XJqPE/RzuvDEXZDtEls1h4rwHSwMJ4HaOf1AvYXGsGMK+YQwO1UaIzZgSdHI85Rp8978FWLxHZdGxGFYejIjMngzoGxlxtjSnIF/LUxYsYdYE/G2Bl8P1xECMOg6gcdYsUIxy+cU6jfqdZaNBW0r3+KvGe8EtJVWkzRcSTq5/PufsM4F+du53Pbttr5nLGf0VzoRUpmEQHXE4L+Cl6iw+68tSLwZ/iV3EaIttVVTxWYsClTRCgK1HEeN3dQ/wUj/azomV8+zHnDmSlnfxcZnllixPhjcwgBi0z2UUJKB8cLzHBMOlfmTFDH7k62F9nUZy7n/6Q6df4YU0cdw2wCTNQW3y3kWDocwt+Jl8YL6OGn8bmi/wZu/ycuWNvvwp4Z+QXiDVQSv9fvcwAAAABJRU5ErkJggg==\"","const DoubleUnicodePrefixReg = /^[\\uD800-\\uDBFF]$/;\r\nconst DoubleUnicodeSuffixReg = /^[\\uDC00-\\uDFFF]$/;\r\nconst DoubleUnicodeReg = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\r\nvar Probability;\r\n(function (Probability) {\r\n    Probability[Probability[\"Unknown\"] = 1e-13] = \"Unknown\";\r\n    Probability[Probability[\"Rule\"] = 1e-12] = \"Rule\";\r\n    Probability[Probability[\"DICT\"] = 2e-8] = \"DICT\";\r\n    Probability[Probability[\"Surname\"] = 1] = \"Surname\";\r\n    Probability[Probability[\"Custom\"] = 1] = \"Custom\";\r\n})(Probability || (Probability = {}));\r\nconst Priority = {\r\n    Normal: 1,\r\n    Surname: 10,\r\n    Custom: 100,\r\n};\n\nfunction stringLength(text) {\r\n    var _a;\r\n    return text.length - (((_a = text.match(DoubleUnicodeReg)) === null || _a === void 0 ? void 0 : _a.length) || 0);\r\n}\r\n// 双音节字符处理\r\nfunction splitString(text) {\r\n    const result = [];\r\n    let i = 0;\r\n    while (i < text.length) {\r\n        const char = text[i];\r\n        if (DoubleUnicodePrefixReg.test(char) &&\r\n            DoubleUnicodeSuffixReg.test(text[i + 1])) {\r\n            result.push(text.substring(i, i + 2));\r\n            i += 2;\r\n        }\r\n        else {\r\n            result.push(char);\r\n            i += 1;\r\n        }\r\n    }\r\n    return result;\r\n}\r\nclass FastDictFactory {\r\n    constructor() {\r\n        this.NumberDICT = [];\r\n        this.StringDICT = new Map();\r\n    }\r\n    get(word) {\r\n        if (word.length > 1) {\r\n            return this.StringDICT.get(word);\r\n        }\r\n        else {\r\n            const code = word.charCodeAt(0);\r\n            return this.NumberDICT[code];\r\n        }\r\n    }\r\n    set(word, pinyin) {\r\n        if (word.length > 1) {\r\n            this.StringDICT.set(word, pinyin);\r\n        }\r\n        else {\r\n            const code = word.charCodeAt(0);\r\n            this.NumberDICT[code] = pinyin;\r\n        }\r\n    }\r\n    clear() {\r\n        this.NumberDICT = [];\r\n        this.StringDICT.clear();\r\n    }\r\n}\n\nconst map = {\r\n    'bǎng páng pāng': ['膀'],\r\n    líng: [\r\n        '〇',\r\n        '伶',\r\n        '凌',\r\n        '刢',\r\n        '囹',\r\n        '坽',\r\n        '夌',\r\n        '姈',\r\n        '婈',\r\n        '孁',\r\n        '岺',\r\n        '彾',\r\n        '掕',\r\n        '昤',\r\n        '朎',\r\n        '柃',\r\n        '棂',\r\n        '櫺',\r\n        '欞',\r\n        '泠',\r\n        '淩',\r\n        '澪',\r\n        '灵',\r\n        '燯',\r\n        '爧',\r\n        '狑',\r\n        '玲',\r\n        '琌',\r\n        '瓴',\r\n        '皊',\r\n        '砱',\r\n        '祾',\r\n        '秢',\r\n        '竛',\r\n        '笭',\r\n        '紷',\r\n        '綾',\r\n        '绫',\r\n        '羐',\r\n        '羚',\r\n        '翎',\r\n        '聆',\r\n        '舲',\r\n        '苓',\r\n        '菱',\r\n        '蓤',\r\n        '蔆',\r\n        '蕶',\r\n        '蛉',\r\n        '衑',\r\n        '裬',\r\n        '詅',\r\n        '跉',\r\n        '軨',\r\n        '輘',\r\n        '酃',\r\n        '醽',\r\n        '鈴',\r\n        '錂',\r\n        '铃',\r\n        '閝',\r\n        '陵',\r\n        '零',\r\n        '霊',\r\n        '霗',\r\n        '霛',\r\n        '霝',\r\n        '靈',\r\n        '駖',\r\n        '魿',\r\n        '鯪',\r\n        '鲮',\r\n        '鴒',\r\n        '鸰',\r\n        '鹷',\r\n        '麢',\r\n        '齡',\r\n        '齢',\r\n        '龄',\r\n        '龗',\r\n        '㥄',\r\n    ],\r\n    yī: [\r\n        '一',\r\n        '乊',\r\n        '伊',\r\n        '依',\r\n        '医',\r\n        '吚',\r\n        '咿',\r\n        '噫',\r\n        '壱',\r\n        '壹',\r\n        '夁',\r\n        '嫛',\r\n        '嬄',\r\n        '弌',\r\n        '揖',\r\n        '撎',\r\n        '檹',\r\n        '毉',\r\n        '洢',\r\n        '渏',\r\n        '漪',\r\n        '瑿',\r\n        '畩',\r\n        '祎',\r\n        '禕',\r\n        '稦',\r\n        '繄',\r\n        '蛜',\r\n        '衤',\r\n        '譩',\r\n        '辷',\r\n        '郼',\r\n        '醫',\r\n        '銥',\r\n        '铱',\r\n        '鷖',\r\n        '鹥',\r\n        '黟',\r\n        '黳',\r\n    ],\r\n    'dīng zhēng': ['丁'],\r\n    'kǎo qiǎo yú': ['丂'],\r\n    qī: [\r\n        '七',\r\n        '倛',\r\n        '僛',\r\n        '凄',\r\n        '嘁',\r\n        '墄',\r\n        '娸',\r\n        '悽',\r\n        '慼',\r\n        '慽',\r\n        '戚',\r\n        '捿',\r\n        '柒',\r\n        '桤',\r\n        '桼',\r\n        '棲',\r\n        '榿',\r\n        '欺',\r\n        '沏',\r\n        '淒',\r\n        '漆',\r\n        '紪',\r\n        '緀',\r\n        '萋',\r\n        '褄',\r\n        '諆',\r\n        '迉',\r\n        '郪',\r\n        '鏚',\r\n        '霋',\r\n        '魌',\r\n        '鶈',\r\n    ],\r\n    shàng: ['丄', '尙', '尚', '恦', '緔', '绱'],\r\n    xià: [\r\n        '丅',\r\n        '下',\r\n        '乤',\r\n        '圷',\r\n        '夏',\r\n        '夓',\r\n        '懗',\r\n        '梺',\r\n        '疜',\r\n        '睱',\r\n        '罅',\r\n        '鎼',\r\n        '鏬',\r\n    ],\r\n    hǎn: ['丆', '喊', '浫', '罕', '豃', '㘎'],\r\n    'wàn mò': ['万'],\r\n    zhàng: [\r\n        '丈',\r\n        '仗',\r\n        '墇',\r\n        '嶂',\r\n        '帐',\r\n        '帳',\r\n        '幛',\r\n        '扙',\r\n        '杖',\r\n        '涱',\r\n        '痮',\r\n        '瘬',\r\n        '瘴',\r\n        '瞕',\r\n        '粀',\r\n        '胀',\r\n        '脹',\r\n        '賬',\r\n        '账',\r\n        '障',\r\n    ],\r\n    sān: ['三', '厁', '叁', '弎', '毵', '毶', '毿', '犙', '鬖'],\r\n    'shàng shǎng shang': ['上'],\r\n    'qí jī': ['丌', '其', '奇'],\r\n    'bù fǒu': ['不'],\r\n    'yǔ yù yú': ['与'],\r\n    miǎn: [\r\n        '丏',\r\n        '偭',\r\n        '免',\r\n        '冕',\r\n        '勉',\r\n        '勔',\r\n        '喕',\r\n        '娩',\r\n        '愐',\r\n        '汅',\r\n        '沔',\r\n        '湎',\r\n        '睌',\r\n        '緬',\r\n        '缅',\r\n        '腼',\r\n        '葂',\r\n        '靦',\r\n        '鮸',\r\n        '𩾃',\r\n    ],\r\n    gài: [\r\n        '丐',\r\n        '乢',\r\n        '匃',\r\n        '匄',\r\n        '戤',\r\n        '概',\r\n        '槩',\r\n        '槪',\r\n        '溉',\r\n        '漑',\r\n        '瓂',\r\n        '葢',\r\n        '鈣',\r\n        '钙',\r\n        '𬮿',\r\n    ],\r\n    chǒu: ['丑', '丒', '侴', '吜', '杽', '瞅', '矁', '醜', '魗'],\r\n    zhuān: [\r\n        '专',\r\n        '叀',\r\n        '嫥',\r\n        '専',\r\n        '專',\r\n        '瑼',\r\n        '甎',\r\n        '砖',\r\n        '磗',\r\n        '磚',\r\n        '蟤',\r\n        '諯',\r\n        '鄟',\r\n        '顓',\r\n        '颛',\r\n        '鱄',\r\n        '䏝',\r\n    ],\r\n    'qiě jū': ['且'],\r\n    pī: [\r\n        '丕',\r\n        '伓',\r\n        '伾',\r\n        '噼',\r\n        '坯',\r\n        '岯',\r\n        '憵',\r\n        '批',\r\n        '披',\r\n        '炋',\r\n        '狉',\r\n        '狓',\r\n        '砒',\r\n        '磇',\r\n        '礔',\r\n        '礕',\r\n        '秛',\r\n        '秠',\r\n        '耚',\r\n        '豾',\r\n        '邳',\r\n        '鈚',\r\n        '鉟',\r\n        '銔',\r\n        '錃',\r\n        '錍',\r\n        '霹',\r\n        '駓',\r\n        '髬',\r\n        '魾',\r\n        '𬳵',\r\n    ],\r\n    shì: [\r\n        '世',\r\n        '丗',\r\n        '亊',\r\n        '事',\r\n        '仕',\r\n        '侍',\r\n        '冟',\r\n        '势',\r\n        '勢',\r\n        '卋',\r\n        '呩',\r\n        '嗜',\r\n        '噬',\r\n        '士',\r\n        '奭',\r\n        '嬕',\r\n        '室',\r\n        '市',\r\n        '式',\r\n        '弑',\r\n        '弒',\r\n        '恀',\r\n        '恃',\r\n        '戺',\r\n        '拭',\r\n        '揓',\r\n        '是',\r\n        '昰',\r\n        '枾',\r\n        '柿',\r\n        '栻',\r\n        '澨',\r\n        '烒',\r\n        '煶',\r\n        '眂',\r\n        '眎',\r\n        '眡',\r\n        '睗',\r\n        '示',\r\n        '礻',\r\n        '筮',\r\n        '簭',\r\n        '舐',\r\n        '舓',\r\n        '襫',\r\n        '視',\r\n        '视',\r\n        '觢',\r\n        '試',\r\n        '誓',\r\n        '諡',\r\n        '謚',\r\n        '试',\r\n        '谥',\r\n        '貰',\r\n        '贳',\r\n        '軾',\r\n        '轼',\r\n        '逝',\r\n        '遾',\r\n        '釈',\r\n        '释',\r\n        '釋',\r\n        '鈰',\r\n        '鉃',\r\n        '鉽',\r\n        '铈',\r\n        '飾',\r\n        '餙',\r\n        '餝',\r\n        '饰',\r\n        '鰘',\r\n        '䏡',\r\n        '𬤊',\r\n    ],\r\n    qiū: [\r\n        '丘',\r\n        '丠',\r\n        '坵',\r\n        '媝',\r\n        '恘',\r\n        '恷',\r\n        '楸',\r\n        '秋',\r\n        '秌',\r\n        '穐',\r\n        '篍',\r\n        '緧',\r\n        '萩',\r\n        '蘒',\r\n        '蚯',\r\n        '蝵',\r\n        '蟗',\r\n        '蠤',\r\n        '趥',\r\n        '邱',\r\n        '鞦',\r\n        '鞧',\r\n        '鰌',\r\n        '鰍',\r\n        '鳅',\r\n        '鶖',\r\n        '鹙',\r\n        '龝',\r\n    ],\r\n    bǐng: [\r\n        '丙',\r\n        '屛',\r\n        '怲',\r\n        '抦',\r\n        '昞',\r\n        '昺',\r\n        '柄',\r\n        '棅',\r\n        '炳',\r\n        '禀',\r\n        '秉',\r\n        '稟',\r\n        '苪',\r\n        '蛃',\r\n        '邴',\r\n        '鈵',\r\n        '陃',\r\n        '鞆',\r\n        '餅',\r\n        '餠',\r\n        '饼',\r\n    ],\r\n    yè: [\r\n        '业',\r\n        '亱',\r\n        '僷',\r\n        '墷',\r\n        '夜',\r\n        '嶪',\r\n        '嶫',\r\n        '抴',\r\n        '捙',\r\n        '擛',\r\n        '擪',\r\n        '擫',\r\n        '晔',\r\n        '曄',\r\n        '曅',\r\n        '曗',\r\n        '曳',\r\n        '曵',\r\n        '枼',\r\n        '枽',\r\n        '業',\r\n        '洂',\r\n        '液',\r\n        '澲',\r\n        '烨',\r\n        '燁',\r\n        '爗',\r\n        '璍',\r\n        '皣',\r\n        '瞱',\r\n        '瞸',\r\n        '礏',\r\n        '腋',\r\n        '葉',\r\n        '謁',\r\n        '谒',\r\n        '邺',\r\n        '鄴',\r\n        '鍱',\r\n        '鐷',\r\n        '靥',\r\n        '靨',\r\n        '頁',\r\n        '页',\r\n        '餣',\r\n        '饁',\r\n        '馌',\r\n        '驜',\r\n        '鵺',\r\n        '鸈',\r\n    ],\r\n    cóng: [\r\n        '丛',\r\n        '从',\r\n        '叢',\r\n        '婃',\r\n        '孮',\r\n        '従',\r\n        '徔',\r\n        '徖',\r\n        '悰',\r\n        '樷',\r\n        '欉',\r\n        '淙',\r\n        '灇',\r\n        '爜',\r\n        '琮',\r\n        '藂',\r\n        '誴',\r\n        '賨',\r\n        '賩',\r\n        '錝',\r\n    ],\r\n    dōng: [\r\n        '东',\r\n        '倲',\r\n        '冬',\r\n        '咚',\r\n        '埬',\r\n        '岽',\r\n        '崬',\r\n        '徚',\r\n        '昸',\r\n        '東',\r\n        '氡',\r\n        '氭',\r\n        '涷',\r\n        '笗',\r\n        '苳',\r\n        '菄',\r\n        '蝀',\r\n        '鮗',\r\n        '鯟',\r\n        '鶇',\r\n        '鶫',\r\n        '鸫',\r\n        '鼕',\r\n        '𬟽',\r\n    ],\r\n    sī: [\r\n        '丝',\r\n        '俬',\r\n        '凘',\r\n        '厮',\r\n        '司',\r\n        '咝',\r\n        '嘶',\r\n        '噝',\r\n        '媤',\r\n        '廝',\r\n        '恖',\r\n        '撕',\r\n        '斯',\r\n        '楒',\r\n        '泀',\r\n        '澌',\r\n        '燍',\r\n        '禗',\r\n        '禠',\r\n        '私',\r\n        '糹',\r\n        '絲',\r\n        '緦',\r\n        '纟',\r\n        '缌',\r\n        '罳',\r\n        '蕬',\r\n        '虒',\r\n        '蛳',\r\n        '蜤',\r\n        '螄',\r\n        '蟖',\r\n        '蟴',\r\n        '鉰',\r\n        '銯',\r\n        '鍶',\r\n        '鐁',\r\n        '锶',\r\n        '颸',\r\n        '飔',\r\n        '騦',\r\n        '鷥',\r\n        '鸶',\r\n        '鼶',\r\n        '㟃',\r\n    ],\r\n    chéng: [\r\n        '丞',\r\n        '呈',\r\n        '城',\r\n        '埕',\r\n        '堘',\r\n        '塍',\r\n        '塖',\r\n        '宬',\r\n        '峸',\r\n        '惩',\r\n        '懲',\r\n        '成',\r\n        '承',\r\n        '挰',\r\n        '掁',\r\n        '揨',\r\n        '枨',\r\n        '棖',\r\n        '橙',\r\n        '檙',\r\n        '洆',\r\n        '溗',\r\n        '澂',\r\n        '珵',\r\n        '珹',\r\n        '畻',\r\n        '程',\r\n        '窚',\r\n        '筬',\r\n        '絾',\r\n        '脭',\r\n        '荿',\r\n        '誠',\r\n        '诚',\r\n        '郕',\r\n        '酲',\r\n        '鋮',\r\n        '铖',\r\n        '騬',\r\n        '鯎',\r\n    ],\r\n    diū: ['丟', '丢', '銩', '铥'],\r\n    liǎng: [\r\n        '両',\r\n        '两',\r\n        '兩',\r\n        '唡',\r\n        '啢',\r\n        '掚',\r\n        '緉',\r\n        '脼',\r\n        '蜽',\r\n        '裲',\r\n        '魉',\r\n        '魎',\r\n        '𬜯',\r\n    ],\r\n    yǒu: [\r\n        '丣',\r\n        '卣',\r\n        '友',\r\n        '梄',\r\n        '湵',\r\n        '牖',\r\n        '禉',\r\n        '羑',\r\n        '聈',\r\n        '苃',\r\n        '莠',\r\n        '蜏',\r\n        '酉',\r\n        '銪',\r\n        '铕',\r\n        '黝',\r\n    ],\r\n    yán: [\r\n        '严',\r\n        '厳',\r\n        '啱',\r\n        '喦',\r\n        '嚴',\r\n        '塩',\r\n        '壛',\r\n        '壧',\r\n        '妍',\r\n        '姸',\r\n        '娫',\r\n        '娮',\r\n        '岩',\r\n        '嵒',\r\n        '嵓',\r\n        '巌',\r\n        '巖',\r\n        '巗',\r\n        '延',\r\n        '揅',\r\n        '昖',\r\n        '楌',\r\n        '檐',\r\n        '櫩',\r\n        '欕',\r\n        '沿',\r\n        '炎',\r\n        '炏',\r\n        '狿',\r\n        '琂',\r\n        '盐',\r\n        '碞',\r\n        '筵',\r\n        '簷',\r\n        '莚',\r\n        '蔅',\r\n        '虤',\r\n        '蜒',\r\n        '言',\r\n        '訁',\r\n        '訮',\r\n        '詽',\r\n        '讠',\r\n        '郔',\r\n        '閆',\r\n        '閻',\r\n        '闫',\r\n        '阎',\r\n        '顏',\r\n        '顔',\r\n        '颜',\r\n        '鹽',\r\n        '麣',\r\n        '𫄧',\r\n    ],\r\n    bìng: [\r\n        '並',\r\n        '併',\r\n        '倂',\r\n        '傡',\r\n        '垪',\r\n        '摒',\r\n        '栤',\r\n        '病',\r\n        '窉',\r\n        '竝',\r\n        '誁',\r\n        '靐',\r\n        '鮩',\r\n    ],\r\n    'sàng sāng': ['丧'],\r\n    gǔn: [\r\n        '丨',\r\n        '惃',\r\n        '滚',\r\n        '滾',\r\n        '磙',\r\n        '緄',\r\n        '绲',\r\n        '蓘',\r\n        '蔉',\r\n        '衮',\r\n        '袞',\r\n        '輥',\r\n        '辊',\r\n        '鮌',\r\n        '鯀',\r\n        '鲧',\r\n    ],\r\n    jiū: [\r\n        '丩',\r\n        '勼',\r\n        '啾',\r\n        '揪',\r\n        '揫',\r\n        '朻',\r\n        '究',\r\n        '糾',\r\n        '纠',\r\n        '萛',\r\n        '赳',\r\n        '阄',\r\n        '鬏',\r\n        '鬮',\r\n        '鳩',\r\n        '鸠',\r\n    ],\r\n    'gè gě': ['个', '個', '各'],\r\n    yā: [\r\n        '丫',\r\n        '圧',\r\n        '孲',\r\n        '庘',\r\n        '押',\r\n        '枒',\r\n        '桠',\r\n        '椏',\r\n        '錏',\r\n        '鐚',\r\n        '鴉',\r\n        '鴨',\r\n        '鵶',\r\n        '鸦',\r\n        '鸭',\r\n    ],\r\n    pán: [\r\n        '丬',\r\n        '媻',\r\n        '幋',\r\n        '槃',\r\n        '洀',\r\n        '瀊',\r\n        '爿',\r\n        '盘',\r\n        '盤',\r\n        '磐',\r\n        '縏',\r\n        '蒰',\r\n        '蟠',\r\n        '蹒',\r\n        '蹣',\r\n        '鎜',\r\n        '鞶',\r\n    ],\r\n    'zhōng zhòng': ['中'],\r\n    jǐ: [\r\n        '丮',\r\n        '妀',\r\n        '己',\r\n        '戟',\r\n        '挤',\r\n        '掎',\r\n        '撠',\r\n        '擠',\r\n        '橶',\r\n        '泲',\r\n        '犱',\r\n        '脊',\r\n        '虮',\r\n        '蟣',\r\n        '魢',\r\n        '鱾',\r\n        '麂',\r\n    ],\r\n    jiè: [\r\n        '丯',\r\n        '介',\r\n        '借',\r\n        '唶',\r\n        '堺',\r\n        '屆',\r\n        '届',\r\n        '岕',\r\n        '庎',\r\n        '徣',\r\n        '戒',\r\n        '楐',\r\n        '犗',\r\n        '玠',\r\n        '琾',\r\n        '界',\r\n        '畍',\r\n        '疥',\r\n        '砎',\r\n        '蚧',\r\n        '蛶',\r\n        '衸',\r\n        '褯',\r\n        '誡',\r\n        '诫',\r\n        '鎅',\r\n        '骱',\r\n        '魪',\r\n    ],\r\n    fēng: [\r\n        '丰',\r\n        '仹',\r\n        '偑',\r\n        '僼',\r\n        '凨',\r\n        '凬',\r\n        '凮',\r\n        '妦',\r\n        '寷',\r\n        '封',\r\n        '峯',\r\n        '峰',\r\n        '崶',\r\n        '枫',\r\n        '楓',\r\n        '檒',\r\n        '沣',\r\n        '沨',\r\n        '渢',\r\n        '灃',\r\n        '烽',\r\n        '犎',\r\n        '猦',\r\n        '琒',\r\n        '疯',\r\n        '瘋',\r\n        '盽',\r\n        '砜',\r\n        '碸',\r\n        '篈',\r\n        '蘴',\r\n        '蜂',\r\n        '蠭',\r\n        '豐',\r\n        '鄷',\r\n        '酆',\r\n        '鋒',\r\n        '鎽',\r\n        '鏠',\r\n        '锋',\r\n        '霻',\r\n        '靊',\r\n        '飌',\r\n        '麷',\r\n    ],\r\n    'guàn kuàng': ['丱'],\r\n    chuàn: ['串', '汌', '玔', '賗', '釧', '钏'],\r\n    chǎn: [\r\n        '丳',\r\n        '产',\r\n        '冁',\r\n        '剷',\r\n        '囅',\r\n        '嵼',\r\n        '旵',\r\n        '浐',\r\n        '滻',\r\n        '灛',\r\n        '產',\r\n        '産',\r\n        '簅',\r\n        '蒇',\r\n        '蕆',\r\n        '諂',\r\n        '譂',\r\n        '讇',\r\n        '谄',\r\n        '鏟',\r\n        '铲',\r\n        '閳',\r\n        '闡',\r\n        '阐',\r\n        '骣',\r\n        '𬊤',\r\n    ],\r\n    lín: [\r\n        '临',\r\n        '冧',\r\n        '壣',\r\n        '崊',\r\n        '嶙',\r\n        '斴',\r\n        '晽',\r\n        '暽',\r\n        '林',\r\n        '潾',\r\n        '瀶',\r\n        '燐',\r\n        '琳',\r\n        '璘',\r\n        '瞵',\r\n        '碄',\r\n        '磷',\r\n        '粦',\r\n        '粼',\r\n        '繗',\r\n        '翷',\r\n        '臨',\r\n        '轔',\r\n        '辚',\r\n        '遴',\r\n        '邻',\r\n        '鄰',\r\n        '鏻',\r\n        '阾',\r\n        '隣',\r\n        '霖',\r\n        '驎',\r\n        '鱗',\r\n        '鳞',\r\n        '麐',\r\n        '麟',\r\n        '𬴊',\r\n        '𬭸',\r\n    ],\r\n    zhuó: [\r\n        '丵',\r\n        '劅',\r\n        '卓',\r\n        '啄',\r\n        '圴',\r\n        '妰',\r\n        '娺',\r\n        '撯',\r\n        '擆',\r\n        '擢',\r\n        '斫',\r\n        '斮',\r\n        '斱',\r\n        '斲',\r\n        '斵',\r\n        '晫',\r\n        '椓',\r\n        '浊',\r\n        '浞',\r\n        '濁',\r\n        '灼',\r\n        '烵',\r\n        '琸',\r\n        '硺',\r\n        '禚',\r\n        '窡',\r\n        '籗',\r\n        '籱',\r\n        '罬',\r\n        '茁',\r\n        '蠗',\r\n        '蠿',\r\n        '諁',\r\n        '諑',\r\n        '謶',\r\n        '诼',\r\n        '酌',\r\n        '鐲',\r\n        '镯',\r\n        '鵫',\r\n        '鷟',\r\n        '䓬',\r\n        '𬸦',\r\n    ],\r\n    zhǔ: [\r\n        '丶',\r\n        '主',\r\n        '劯',\r\n        '嘱',\r\n        '囑',\r\n        '宔',\r\n        '帾',\r\n        '拄',\r\n        '渚',\r\n        '濐',\r\n        '煑',\r\n        '煮',\r\n        '燝',\r\n        '瞩',\r\n        '矚',\r\n        '罜',\r\n        '詝',\r\n        '陼',\r\n        '鸀',\r\n        '麈',\r\n        '𬣞',\r\n    ],\r\n    bā: [\r\n        '丷',\r\n        '仈',\r\n        '八',\r\n        '叭',\r\n        '哵',\r\n        '夿',\r\n        '岜',\r\n        '巴',\r\n        '捌',\r\n        '朳',\r\n        '玐',\r\n        '疤',\r\n        '笆',\r\n        '粑',\r\n        '羓',\r\n        '芭',\r\n        '蚆',\r\n        '豝',\r\n        '釟',\r\n    ],\r\n    wán: [\r\n        '丸',\r\n        '刓',\r\n        '完',\r\n        '岏',\r\n        '抏',\r\n        '捖',\r\n        '汍',\r\n        '烷',\r\n        '玩',\r\n        '琓',\r\n        '笂',\r\n        '紈',\r\n        '纨',\r\n        '翫',\r\n        '芄',\r\n        '貦',\r\n        '頑',\r\n        '顽',\r\n    ],\r\n    dān: [\r\n        '丹',\r\n        '勯',\r\n        '匰',\r\n        '単',\r\n        '妉',\r\n        '媅',\r\n        '殚',\r\n        '殫',\r\n        '甔',\r\n        '眈',\r\n        '砃',\r\n        '箪',\r\n        '簞',\r\n        '耼',\r\n        '耽',\r\n        '聃',\r\n        '聸',\r\n        '褝',\r\n        '襌',\r\n        '躭',\r\n        '郸',\r\n        '鄲',\r\n        '酖',\r\n        '頕',\r\n    ],\r\n    'wèi wéi': ['为'],\r\n    'jǐng dǎn': ['丼'],\r\n    'lì lí': ['丽'],\r\n    jǔ: [\r\n        '举',\r\n        '弆',\r\n        '挙',\r\n        '擧',\r\n        '椇',\r\n        '榉',\r\n        '榘',\r\n        '櫸',\r\n        '欅',\r\n        '矩',\r\n        '筥',\r\n        '聥',\r\n        '舉',\r\n        '莒',\r\n        '蒟',\r\n        '襷',\r\n        '踽',\r\n        '齟',\r\n        '龃',\r\n    ],\r\n    piě: ['丿', '苤', '鐅', '𬭯'],\r\n    fú: [\r\n        '乀',\r\n        '伏',\r\n        '俘',\r\n        '凫',\r\n        '刜',\r\n        '匐',\r\n        '咈',\r\n        '哹',\r\n        '垘',\r\n        '孚',\r\n        '岪',\r\n        '巿',\r\n        '帗',\r\n        '幅',\r\n        '幞',\r\n        '弗',\r\n        '彿',\r\n        '怫',\r\n        '扶',\r\n        '柫',\r\n        '栿',\r\n        '桴',\r\n        '氟',\r\n        '泭',\r\n        '浮',\r\n        '涪',\r\n        '澓',\r\n        '炥',\r\n        '玸',\r\n        '甶',\r\n        '畉',\r\n        '癁',\r\n        '祓',\r\n        '福',\r\n        '稪',\r\n        '符',\r\n        '箙',\r\n        '紱',\r\n        '紼',\r\n        '絥',\r\n        '綍',\r\n        '绂',\r\n        '绋',\r\n        '罘',\r\n        '罦',\r\n        '翇',\r\n        '艀',\r\n        '芙',\r\n        '芣',\r\n        '苻',\r\n        '茀',\r\n        '茯',\r\n        '菔',\r\n        '葍',\r\n        '虙',\r\n        '蚨',\r\n        '蜉',\r\n        '蝠',\r\n        '袚',\r\n        '袱',\r\n        '襆',\r\n        '襥',\r\n        '諨',\r\n        '豧',\r\n        '踾',\r\n        '輻',\r\n        '辐',\r\n        '郛',\r\n        '鉘',\r\n        '鉜',\r\n        '韍',\r\n        '韨',\r\n        '颫',\r\n        '髴',\r\n        '鮄',\r\n        '鮲',\r\n        '鳧',\r\n        '鳬',\r\n        '鴔',\r\n        '鵩',\r\n        '黻',\r\n    ],\r\n    'yí jí': ['乁'],\r\n    yì: [\r\n        '乂',\r\n        '义',\r\n        '亄',\r\n        '亦',\r\n        '亿',\r\n        '伇',\r\n        '伿',\r\n        '佾',\r\n        '俋',\r\n        '億',\r\n        '兿',\r\n        '刈',\r\n        '劓',\r\n        '劮',\r\n        '勚',\r\n        '勩',\r\n        '匇',\r\n        '呓',\r\n        '呭',\r\n        '呹',\r\n        '唈',\r\n        '囈',\r\n        '圛',\r\n        '坄',\r\n        '垼',\r\n        '埸',\r\n        '奕',\r\n        '嫕',\r\n        '嬑',\r\n        '寱',\r\n        '屹',\r\n        '峄',\r\n        '嶧',\r\n        '帟',\r\n        '帠',\r\n        '幆',\r\n        '廙',\r\n        '异',\r\n        '弈',\r\n        '弋',\r\n        '役',\r\n        '忆',\r\n        '怈',\r\n        '怿',\r\n        '悒',\r\n        '意',\r\n        '憶',\r\n        '懌',\r\n        '懿',\r\n        '抑',\r\n        '挹',\r\n        '敡',\r\n        '易',\r\n        '晹',\r\n        '曀',\r\n        '曎',\r\n        '杙',\r\n        '枍',\r\n        '棭',\r\n        '榏',\r\n        '槸',\r\n        '檍',\r\n        '歝',\r\n        '殔',\r\n        '殪',\r\n        '殹',\r\n        '毅',\r\n        '浂',\r\n        '浥',\r\n        '浳',\r\n        '湙',\r\n        '溢',\r\n        '潩',\r\n        '澺',\r\n        '瀷',\r\n        '炈',\r\n        '焲',\r\n        '熠',\r\n        '熤',\r\n        '熼',\r\n        '燚',\r\n        '燡',\r\n        '燱',\r\n        '獈',\r\n        '玴',\r\n        '異',\r\n        '疫',\r\n        '痬',\r\n        '瘗',\r\n        '瘞',\r\n        '瘱',\r\n        '癔',\r\n        '益',\r\n        '瞖',\r\n        '穓',\r\n        '竩',\r\n        '篒',\r\n        '縊',\r\n        '繶',\r\n        '繹',\r\n        '绎',\r\n        '缢',\r\n        '義',\r\n        '羿',\r\n        '翊',\r\n        '翌',\r\n        '翳',\r\n        '翼',\r\n        '耴',\r\n        '肄',\r\n        '肊',\r\n        '膉',\r\n        '臆',\r\n        '艗',\r\n        '艺',\r\n        '芅',\r\n        '苅',\r\n        '萟',\r\n        '蓺',\r\n        '薏',\r\n        '藙',\r\n        '藝',\r\n        '蘙',\r\n        '虉',\r\n        '蜴',\r\n        '螠',\r\n        '衪',\r\n        '袣',\r\n        '裔',\r\n        '裛',\r\n        '褹',\r\n        '襼',\r\n        '訲',\r\n        '訳',\r\n        '詍',\r\n        '詣',\r\n        '誼',\r\n        '譯',\r\n        '議',\r\n        '讛',\r\n        '议',\r\n        '译',\r\n        '诣',\r\n        '谊',\r\n        '豙',\r\n        '豛',\r\n        '豷',\r\n        '貖',\r\n        '贀',\r\n        '跇',\r\n        '轶',\r\n        '逸',\r\n        '邑',\r\n        '鄓',\r\n        '醷',\r\n        '釴',\r\n        '鈠',\r\n        '鎰',\r\n        '鐿',\r\n        '镒',\r\n        '镱',\r\n        '阣',\r\n        '隿',\r\n        '霬',\r\n        '饐',\r\n        '駅',\r\n        '驛',\r\n        '驿',\r\n        '骮',\r\n        '鮨',\r\n        '鶂',\r\n        '鶃',\r\n        '鶍',\r\n        '鷁',\r\n        '鷊',\r\n        '鷧',\r\n        '鷾',\r\n        '鸃',\r\n        '鹝',\r\n        '鹢',\r\n        '黓',\r\n        '齸',\r\n        '𬬩',\r\n        '㑊',\r\n        '𫄷',\r\n        '𬟁',\r\n    ],\r\n    nǎi: ['乃', '倷', '奶', '嬭', '廼', '氖', '疓', '艿', '迺', '釢'],\r\n    wǔ: [\r\n        '乄',\r\n        '五',\r\n        '仵',\r\n        '伍',\r\n        '侮',\r\n        '倵',\r\n        '儛',\r\n        '午',\r\n        '啎',\r\n        '妩',\r\n        '娬',\r\n        '嫵',\r\n        '庑',\r\n        '廡',\r\n        '忤',\r\n        '怃',\r\n        '憮',\r\n        '摀',\r\n        '武',\r\n        '潕',\r\n        '熓',\r\n        '牾',\r\n        '玝',\r\n        '珷',\r\n        '瑦',\r\n        '甒',\r\n        '碔',\r\n        '舞',\r\n        '躌',\r\n        '迕',\r\n        '逜',\r\n        '陚',\r\n        '鵡',\r\n        '鹉',\r\n        '𣲘',\r\n    ],\r\n    jiǔ: [\r\n        '久',\r\n        '乆',\r\n        '九',\r\n        '乣',\r\n        '奺',\r\n        '杦',\r\n        '汣',\r\n        '灸',\r\n        '玖',\r\n        '紤',\r\n        '舏',\r\n        '酒',\r\n        '镹',\r\n        '韭',\r\n        '韮',\r\n    ],\r\n    'tuō zhé': ['乇', '杔', '馲'],\r\n    'me mó ma yāo': ['么'],\r\n    zhī: [\r\n        '之',\r\n        '倁',\r\n        '卮',\r\n        '巵',\r\n        '搘',\r\n        '支',\r\n        '栀',\r\n        '梔',\r\n        '椥',\r\n        '榰',\r\n        '汁',\r\n        '泜',\r\n        '疷',\r\n        '祗',\r\n        '祬',\r\n        '秓',\r\n        '稙',\r\n        '綕',\r\n        '肢',\r\n        '胑',\r\n        '胝',\r\n        '脂',\r\n        '芝',\r\n        '蘵',\r\n        '蜘',\r\n        '衼',\r\n        '隻',\r\n        '鳷',\r\n        '鴲',\r\n        '鼅',\r\n        '𦭜',\r\n    ],\r\n    'wū wù': ['乌'],\r\n    zhà: [\r\n        '乍',\r\n        '咤',\r\n        '宱',\r\n        '搾',\r\n        '榨',\r\n        '溠',\r\n        '痄',\r\n        '蚱',\r\n        '詐',\r\n        '诈',\r\n        '醡',\r\n        '霅',\r\n        '䃎',\r\n    ],\r\n    hū: [\r\n        '乎',\r\n        '乯',\r\n        '匢',\r\n        '匫',\r\n        '呼',\r\n        '唿',\r\n        '嘑',\r\n        '垀',\r\n        '寣',\r\n        '幠',\r\n        '忽',\r\n        '惚',\r\n        '昒',\r\n        '歑',\r\n        '泘',\r\n        '淴',\r\n        '滹',\r\n        '烀',\r\n        '苸',\r\n        '虍',\r\n        '虖',\r\n        '謼',\r\n        '軤',\r\n        '轷',\r\n        '雐',\r\n    ],\r\n    fá: [\r\n        '乏',\r\n        '伐',\r\n        '傠',\r\n        '坺',\r\n        '垡',\r\n        '墢',\r\n        '姂',\r\n        '栰',\r\n        '浌',\r\n        '瞂',\r\n        '笩',\r\n        '筏',\r\n        '罚',\r\n        '罰',\r\n        '罸',\r\n        '藅',\r\n        '閥',\r\n        '阀',\r\n    ],\r\n    'lè yuè yào lào': ['乐', '樂'],\r\n    yín: [\r\n        '乑',\r\n        '吟',\r\n        '噖',\r\n        '嚚',\r\n        '圁',\r\n        '垠',\r\n        '夤',\r\n        '婬',\r\n        '寅',\r\n        '峾',\r\n        '崟',\r\n        '崯',\r\n        '檭',\r\n        '殥',\r\n        '泿',\r\n        '淫',\r\n        '滛',\r\n        '烎',\r\n        '犾',\r\n        '狺',\r\n        '璌',\r\n        '硍',\r\n        '碒',\r\n        '荶',\r\n        '蔩',\r\n        '訔',\r\n        '訚',\r\n        '訡',\r\n        '誾',\r\n        '鄞',\r\n        '鈝',\r\n        '銀',\r\n        '银',\r\n        '霪',\r\n        '鷣',\r\n        '齦',\r\n    ],\r\n    pīng: ['乒', '俜', '娉', '涄', '甹', '砯', '聠', '艵', '頩'],\r\n    pāng: ['乓', '滂', '胮', '膖', '雱', '霶'],\r\n    qiáo: [\r\n        '乔',\r\n        '侨',\r\n        '僑',\r\n        '嫶',\r\n        '憔',\r\n        '桥',\r\n        '槗',\r\n        '樵',\r\n        '橋',\r\n        '櫵',\r\n        '犞',\r\n        '瞧',\r\n        '硚',\r\n        '礄',\r\n        '荍',\r\n        '荞',\r\n        '蕎',\r\n        '藮',\r\n        '譙',\r\n        '趫',\r\n        '鐈',\r\n        '鞒',\r\n        '鞽',\r\n        '顦',\r\n    ],\r\n    hǔ: ['乕', '琥', '萀', '虎', '虝', '錿', '鯱'],\r\n    guāi: ['乖'],\r\n    'chéng shèng': ['乗', '乘', '娍'],\r\n    yǐ: [\r\n        '乙',\r\n        '乛',\r\n        '以',\r\n        '倚',\r\n        '偯',\r\n        '嬟',\r\n        '崺',\r\n        '已',\r\n        '庡',\r\n        '扆',\r\n        '攺',\r\n        '敼',\r\n        '旑',\r\n        '旖',\r\n        '檥',\r\n        '矣',\r\n        '礒',\r\n        '笖',\r\n        '舣',\r\n        '艤',\r\n        '苡',\r\n        '苢',\r\n        '蚁',\r\n        '螘',\r\n        '蟻',\r\n        '裿',\r\n        '踦',\r\n        '輢',\r\n        '轙',\r\n        '逘',\r\n        '酏',\r\n        '釔',\r\n        '鈘',\r\n        '鉯',\r\n        '钇',\r\n        '顗',\r\n        '鳦',\r\n        '齮',\r\n        '𫖮',\r\n        '𬺈',\r\n    ],\r\n    'háo yǐ': ['乚'],\r\n    'niè miē': ['乜'],\r\n    qǐ: [\r\n        '乞',\r\n        '企',\r\n        '启',\r\n        '唘',\r\n        '啓',\r\n        '啔',\r\n        '啟',\r\n        '婍',\r\n        '屺',\r\n        '杞',\r\n        '棨',\r\n        '玘',\r\n        '盀',\r\n        '綺',\r\n        '绮',\r\n        '芑',\r\n        '諬',\r\n        '起',\r\n        '邔',\r\n        '闙',\r\n    ],\r\n    yě: ['也', '冶', '嘢', '埜', '壄', '漜', '野'],\r\n    xí: [\r\n        '习',\r\n        '喺',\r\n        '媳',\r\n        '嶍',\r\n        '席',\r\n        '椺',\r\n        '檄',\r\n        '漝',\r\n        '習',\r\n        '蓆',\r\n        '袭',\r\n        '襲',\r\n        '覡',\r\n        '觋',\r\n        '謵',\r\n        '趘',\r\n        '郋',\r\n        '鎴',\r\n        '隰',\r\n        '霫',\r\n        '飁',\r\n        '騱',\r\n        '騽',\r\n        '驨',\r\n        '鰼',\r\n        '鳛',\r\n        '𠅤',\r\n        '𫘬',\r\n    ],\r\n    xiāng: [\r\n        '乡',\r\n        '厢',\r\n        '廂',\r\n        '忀',\r\n        '楿',\r\n        '欀',\r\n        '湘',\r\n        '瓖',\r\n        '稥',\r\n        '箱',\r\n        '緗',\r\n        '缃',\r\n        '膷',\r\n        '芗',\r\n        '萫',\r\n        '葙',\r\n        '薌',\r\n        '襄',\r\n        '郷',\r\n        '鄉',\r\n        '鄊',\r\n        '鄕',\r\n        '鑲',\r\n        '镶',\r\n        '香',\r\n        '驤',\r\n        '骧',\r\n        '鱜',\r\n        '麘',\r\n        '𬙋',\r\n    ],\r\n    shū: [\r\n        '书',\r\n        '倏',\r\n        '倐',\r\n        '儵',\r\n        '叔',\r\n        '姝',\r\n        '尗',\r\n        '抒',\r\n        '掓',\r\n        '摅',\r\n        '攄',\r\n        '書',\r\n        '枢',\r\n        '梳',\r\n        '樞',\r\n        '殊',\r\n        '殳',\r\n        '毹',\r\n        '毺',\r\n        '淑',\r\n        '瀭',\r\n        '焂',\r\n        '疎',\r\n        '疏',\r\n        '紓',\r\n        '綀',\r\n        '纾',\r\n        '舒',\r\n        '菽',\r\n        '蔬',\r\n        '踈',\r\n        '軗',\r\n        '輸',\r\n        '输',\r\n        '鄃',\r\n        '陎',\r\n        '鮛',\r\n        '鵨',\r\n    ],\r\n    dǒu: ['乧', '抖', '枓', '蚪', '鈄', '阧', '陡'],\r\n    shǐ: [\r\n        '乨',\r\n        '使',\r\n        '兘',\r\n        '史',\r\n        '始',\r\n        '宩',\r\n        '屎',\r\n        '榁',\r\n        '矢',\r\n        '笶',\r\n        '豕',\r\n        '鉂',\r\n        '駛',\r\n        '驶',\r\n    ],\r\n    jī: [\r\n        '乩',\r\n        '僟',\r\n        '击',\r\n        '刉',\r\n        '刏',\r\n        '剞',\r\n        '叽',\r\n        '唧',\r\n        '喞',\r\n        '嗘',\r\n        '嘰',\r\n        '圾',\r\n        '基',\r\n        '墼',\r\n        '姬',\r\n        '屐',\r\n        '嵆',\r\n        '嵇',\r\n        '撃',\r\n        '擊',\r\n        '朞',\r\n        '机',\r\n        '枅',\r\n        '樭',\r\n        '機',\r\n        '毄',\r\n        '激',\r\n        '犄',\r\n        '玑',\r\n        '璣',\r\n        '畸',\r\n        '畿',\r\n        '癪',\r\n        '矶',\r\n        '磯',\r\n        '积',\r\n        '積',\r\n        '笄',\r\n        '筓',\r\n        '箕',\r\n        '簊',\r\n        '緁',\r\n        '羁',\r\n        '羇',\r\n        '羈',\r\n        '耭',\r\n        '肌',\r\n        '芨',\r\n        '虀',\r\n        '覉',\r\n        '覊',\r\n        '譏',\r\n        '譤',\r\n        '讥',\r\n        '賫',\r\n        '賷',\r\n        '赍',\r\n        '跻',\r\n        '踑',\r\n        '躋',\r\n        '躸',\r\n        '銈',\r\n        '錤',\r\n        '鐖',\r\n        '鑇',\r\n        '鑙',\r\n        '隮',\r\n        '雞',\r\n        '鞿',\r\n        '韲',\r\n        '飢',\r\n        '饑',\r\n        '饥',\r\n        '魕',\r\n        '鳮',\r\n        '鶏',\r\n        '鶺',\r\n        '鷄',\r\n        '鸄',\r\n        '鸡',\r\n        '齎',\r\n        '齏',\r\n        '齑',\r\n        '𬯀',\r\n        '𫓯',\r\n        '𫓹',\r\n        '𫌀',\r\n    ],\r\n    náng: ['乪', '嚢', '欜', '蠰', '饢'],\r\n    jiā: [\r\n        '乫',\r\n        '佳',\r\n        '傢',\r\n        '加',\r\n        '嘉',\r\n        '抸',\r\n        '枷',\r\n        '梜',\r\n        '毠',\r\n        '泇',\r\n        '浃',\r\n        '浹',\r\n        '犌',\r\n        '猳',\r\n        '珈',\r\n        '痂',\r\n        '笳',\r\n        '糘',\r\n        '耞',\r\n        '腵',\r\n        '葭',\r\n        '袈',\r\n        '豭',\r\n        '貑',\r\n        '跏',\r\n        '迦',\r\n        '鉫',\r\n        '鎵',\r\n        '镓',\r\n        '鴐',\r\n        '麚',\r\n        '𬂩',\r\n    ],\r\n    jù: [\r\n        '乬',\r\n        '倨',\r\n        '倶',\r\n        '具',\r\n        '剧',\r\n        '劇',\r\n        '勮',\r\n        '埧',\r\n        '埾',\r\n        '壉',\r\n        '姖',\r\n        '屦',\r\n        '屨',\r\n        '岠',\r\n        '巨',\r\n        '巪',\r\n        '怇',\r\n        '惧',\r\n        '愳',\r\n        '懅',\r\n        '懼',\r\n        '拒',\r\n        '拠',\r\n        '昛',\r\n        '歫',\r\n        '洰',\r\n        '澽',\r\n        '炬',\r\n        '烥',\r\n        '犋',\r\n        '秬',\r\n        '窭',\r\n        '窶',\r\n        '簴',\r\n        '粔',\r\n        '耟',\r\n        '聚',\r\n        '虡',\r\n        '蚷',\r\n        '詎',\r\n        '讵',\r\n        '豦',\r\n        '距',\r\n        '踞',\r\n        '躆',\r\n        '遽',\r\n        '邭',\r\n        '醵',\r\n        '鉅',\r\n        '鐻',\r\n        '钜',\r\n        '颶',\r\n        '飓',\r\n        '駏',\r\n        '鮔',\r\n    ],\r\n    shí: [\r\n        '乭',\r\n        '十',\r\n        '埘',\r\n        '塒',\r\n        '姼',\r\n        '实',\r\n        '実',\r\n        '寔',\r\n        '實',\r\n        '峕',\r\n        '嵵',\r\n        '时',\r\n        '旹',\r\n        '時',\r\n        '榯',\r\n        '湜',\r\n        '溡',\r\n        '炻',\r\n        '祏',\r\n        '竍',\r\n        '蚀',\r\n        '蝕',\r\n        '辻',\r\n        '遈',\r\n        '鉐',\r\n        '飠',\r\n        '饣',\r\n        '鮖',\r\n        '鰣',\r\n        '鲥',\r\n        '鼫',\r\n        '鼭',\r\n    ],\r\n    mǎo: ['乮', '冇', '卯', '峁', '戼', '昴', '泖', '笷', '蓩', '鉚', '铆'],\r\n    mǎi: ['买', '嘪', '荬', '蕒', '買', '鷶'],\r\n    luàn: ['乱', '亂', '釠'],\r\n    rǔ: ['乳', '擩', '汝', '肗', '辱', '鄏'],\r\n    xué: [\r\n        '乴',\r\n        '学',\r\n        '學',\r\n        '峃',\r\n        '嶨',\r\n        '斈',\r\n        '泶',\r\n        '澩',\r\n        '燢',\r\n        '穴',\r\n        '茓',\r\n        '袕',\r\n        '踅',\r\n        '鷽',\r\n        '鸴',\r\n    ],\r\n    yǎn: [\r\n        '䶮',\r\n        '乵',\r\n        '俨',\r\n        '偃',\r\n        '儼',\r\n        '兖',\r\n        '兗',\r\n        '厣',\r\n        '厴',\r\n        '噞',\r\n        '孍',\r\n        '嵃',\r\n        '巘',\r\n        '巚',\r\n        '弇',\r\n        '愝',\r\n        '戭',\r\n        '扊',\r\n        '抁',\r\n        '掩',\r\n        '揜',\r\n        '曮',\r\n        '椼',\r\n        '檿',\r\n        '沇',\r\n        '渷',\r\n        '演',\r\n        '琰',\r\n        '甗',\r\n        '眼',\r\n        '罨',\r\n        '萒',\r\n        '蝘',\r\n        '衍',\r\n        '褗',\r\n        '躽',\r\n        '遃',\r\n        '郾',\r\n        '隒',\r\n        '顩',\r\n        '魇',\r\n        '魘',\r\n        '鰋',\r\n        '鶠',\r\n        '黡',\r\n        '黤',\r\n        '黬',\r\n        '黭',\r\n        '黶',\r\n        '鼴',\r\n        '鼹',\r\n        '齴',\r\n        '龑',\r\n        '𬸘',\r\n        '𬙂',\r\n        '𪩘',\r\n    ],\r\n    fǔ: [\r\n        '乶',\r\n        '俌',\r\n        '俛',\r\n        '俯',\r\n        '府',\r\n        '弣',\r\n        '抚',\r\n        '拊',\r\n        '撫',\r\n        '斧',\r\n        '椨',\r\n        '滏',\r\n        '焤',\r\n        '甫',\r\n        '盙',\r\n        '簠',\r\n        '腐',\r\n        '腑',\r\n        '蜅',\r\n        '輔',\r\n        '辅',\r\n        '郙',\r\n        '釜',\r\n        '釡',\r\n        '阝',\r\n        '頫',\r\n        '鬴',\r\n        '黼',\r\n        '㕮',\r\n        '𫖯',\r\n    ],\r\n    shā: [\r\n        '乷',\r\n        '唦',\r\n        '杀',\r\n        '桬',\r\n        '殺',\r\n        '毮',\r\n        '猀',\r\n        '痧',\r\n        '砂',\r\n        '硰',\r\n        '紗',\r\n        '繺',\r\n        '纱',\r\n        '蔱',\r\n        '裟',\r\n        '鎩',\r\n        '铩',\r\n        '閷',\r\n        '髿',\r\n        '魦',\r\n        '鯊',\r\n        '鯋',\r\n        '鲨',\r\n    ],\r\n    nǎ: ['乸', '雫'],\r\n    qián: [\r\n        '乹',\r\n        '亁',\r\n        '仱',\r\n        '偂',\r\n        '前',\r\n        '墘',\r\n        '媊',\r\n        '岒',\r\n        '拑',\r\n        '掮',\r\n        '榩',\r\n        '橬',\r\n        '歬',\r\n        '潛',\r\n        '潜',\r\n        '濳',\r\n        '灊',\r\n        '箝',\r\n        '葥',\r\n        '虔',\r\n        '軡',\r\n        '鈐',\r\n        '鉗',\r\n        '銭',\r\n        '錢',\r\n        '鎆',\r\n        '钤',\r\n        '钱',\r\n        '钳',\r\n        '靬',\r\n        '騚',\r\n        '騝',\r\n        '鰬',\r\n        '黔',\r\n        '黚',\r\n    ],\r\n    suǒ: [\r\n        '乺',\r\n        '唢',\r\n        '嗩',\r\n        '所',\r\n        '暛',\r\n        '溑',\r\n        '溹',\r\n        '琐',\r\n        '琑',\r\n        '瑣',\r\n        '索',\r\n        '褨',\r\n        '鎖',\r\n        '鎻',\r\n        '鏁',\r\n        '锁',\r\n    ],\r\n    yú: [\r\n        '乻',\r\n        '于',\r\n        '亐',\r\n        '伃',\r\n        '余',\r\n        '堣',\r\n        '堬',\r\n        '妤',\r\n        '娛',\r\n        '娯',\r\n        '娱',\r\n        '嬩',\r\n        '崳',\r\n        '嵎',\r\n        '嵛',\r\n        '愚',\r\n        '扵',\r\n        '揄',\r\n        '旟',\r\n        '楡',\r\n        '楰',\r\n        '榆',\r\n        '欤',\r\n        '歈',\r\n        '歟',\r\n        '歶',\r\n        '渔',\r\n        '渝',\r\n        '湡',\r\n        '漁',\r\n        '澞',\r\n        '牏',\r\n        '狳',\r\n        '玗',\r\n        '玙',\r\n        '瑜',\r\n        '璵',\r\n        '盂',\r\n        '睮',\r\n        '窬',\r\n        '竽',\r\n        '籅',\r\n        '羭',\r\n        '腴',\r\n        '臾',\r\n        '舁',\r\n        '舆',\r\n        '艅',\r\n        '茰',\r\n        '萮',\r\n        '萸',\r\n        '蕍',\r\n        '蘛',\r\n        '虞',\r\n        '虶',\r\n        '蝓',\r\n        '螸',\r\n        '衧',\r\n        '褕',\r\n        '覦',\r\n        '觎',\r\n        '諛',\r\n        '謣',\r\n        '谀',\r\n        '踰',\r\n        '輿',\r\n        '轝',\r\n        '逾',\r\n        '邘',\r\n        '酑',\r\n        '鍝',\r\n        '隅',\r\n        '雓',\r\n        '雩',\r\n        '餘',\r\n        '馀',\r\n        '騟',\r\n        '骬',\r\n        '髃',\r\n        '魚',\r\n        '魣',\r\n        '鮽',\r\n        '鯲',\r\n        '鰅',\r\n        '鱼',\r\n        '鷠',\r\n        '鸆',\r\n        '齵',\r\n    ],\r\n    zhù: [\r\n        '乼',\r\n        '伫',\r\n        '佇',\r\n        '住',\r\n        '坾',\r\n        '墸',\r\n        '壴',\r\n        '嵀',\r\n        '拀',\r\n        '杼',\r\n        '柱',\r\n        '樦',\r\n        '殶',\r\n        '注',\r\n        '炷',\r\n        '疰',\r\n        '眝',\r\n        '祝',\r\n        '祩',\r\n        '竚',\r\n        '筯',\r\n        '箸',\r\n        '篫',\r\n        '簗',\r\n        '紵',\r\n        '紸',\r\n        '纻',\r\n        '羜',\r\n        '翥',\r\n        '苎',\r\n        '莇',\r\n        '蛀',\r\n        '註',\r\n        '貯',\r\n        '贮',\r\n        '跓',\r\n        '軴',\r\n        '鉒',\r\n        '鋳',\r\n        '鑄',\r\n        '铸',\r\n        '馵',\r\n        '駐',\r\n        '驻',\r\n    ],\r\n    zhě: ['乽', '者', '褶', '襵', '赭', '踷', '鍺', '锗'],\r\n    'qián gān': ['乾'],\r\n    'zhì luàn': ['乿'],\r\n    guī: [\r\n        '亀',\r\n        '圭',\r\n        '妫',\r\n        '媯',\r\n        '嫢',\r\n        '嬀',\r\n        '帰',\r\n        '归',\r\n        '摫',\r\n        '椝',\r\n        '槻',\r\n        '槼',\r\n        '櫷',\r\n        '歸',\r\n        '珪',\r\n        '瑰',\r\n        '璝',\r\n        '瓌',\r\n        '皈',\r\n        '瞡',\r\n        '硅',\r\n        '茥',\r\n        '蘬',\r\n        '規',\r\n        '规',\r\n        '邽',\r\n        '郌',\r\n        '閨',\r\n        '闺',\r\n        '騩',\r\n        '鬶',\r\n        '鬹',\r\n    ],\r\n    'lǐn lìn': ['亃'],\r\n    jué: [\r\n        '亅',\r\n        '决',\r\n        '刔',\r\n        '劂',\r\n        '匷',\r\n        '厥',\r\n        '噊',\r\n        '孒',\r\n        '孓',\r\n        '崛',\r\n        '崫',\r\n        '嶥',\r\n        '彏',\r\n        '憠',\r\n        '憰',\r\n        '戄',\r\n        '抉',\r\n        '挗',\r\n        '掘',\r\n        '攫',\r\n        '桷',\r\n        '橛',\r\n        '橜',\r\n        '欮',\r\n        '氒',\r\n        '決',\r\n        '灍',\r\n        '焳',\r\n        '熦',\r\n        '爑',\r\n        '爴',\r\n        '爵',\r\n        '獗',\r\n        '玃',\r\n        '玦',\r\n        '玨',\r\n        '珏',\r\n        '瑴',\r\n        '瘚',\r\n        '矍',\r\n        '矡',\r\n        '砄',\r\n        '絕',\r\n        '絶',\r\n        '绝',\r\n        '臄',\r\n        '芵',\r\n        '蕝',\r\n        '蕨',\r\n        '虳',\r\n        '蟨',\r\n        '蟩',\r\n        '觖',\r\n        '觮',\r\n        '觼',\r\n        '訣',\r\n        '譎',\r\n        '诀',\r\n        '谲',\r\n        '貜',\r\n        '赽',\r\n        '趉',\r\n        '蹷',\r\n        '躩',\r\n        '鈌',\r\n        '鐍',\r\n        '鐝',\r\n        '钁',\r\n        '镢',\r\n        '鴂',\r\n        '鴃',\r\n        '鷢',\r\n        '𫘝',\r\n        '㵐',\r\n        '𫔎',\r\n    ],\r\n    'le liǎo': ['了'],\r\n    'gè mā': ['亇'],\r\n    'yǔ yú': ['予', '懙'],\r\n    zhēng: [\r\n        '争',\r\n        '佂',\r\n        '凧',\r\n        '姃',\r\n        '媜',\r\n        '峥',\r\n        '崝',\r\n        '崢',\r\n        '征',\r\n        '徰',\r\n        '炡',\r\n        '烝',\r\n        '爭',\r\n        '狰',\r\n        '猙',\r\n        '癥',\r\n        '眐',\r\n        '睁',\r\n        '睜',\r\n        '筝',\r\n        '箏',\r\n        '篜',\r\n        '聇',\r\n        '脀',\r\n        '蒸',\r\n        '踭',\r\n        '鉦',\r\n        '錚',\r\n        '鏳',\r\n        '鬇',\r\n    ],\r\n    èr: ['二', '刵', '咡', '弍', '弐', '樲', '誀', '貮', '貳', '贰', '髶'],\r\n    chù: [\r\n        '亍',\r\n        '傗',\r\n        '儊',\r\n        '怵',\r\n        '憷',\r\n        '搐',\r\n        '斶',\r\n        '歜',\r\n        '珿',\r\n        '琡',\r\n        '矗',\r\n        '竌',\r\n        '絀',\r\n        '绌',\r\n        '臅',\r\n        '触',\r\n        '觸',\r\n        '豖',\r\n        '鄐',\r\n        '閦',\r\n        '黜',\r\n    ],\r\n    kuī: ['亏', '刲', '岿', '巋', '盔', '窥', '窺', '聧', '虧', '闚', '顝'],\r\n    yún: [\r\n        '云',\r\n        '伝',\r\n        '勻',\r\n        '匀',\r\n        '囩',\r\n        '妘',\r\n        '愪',\r\n        '抣',\r\n        '昀',\r\n        '橒',\r\n        '沄',\r\n        '涢',\r\n        '溳',\r\n        '澐',\r\n        '熉',\r\n        '畇',\r\n        '秐',\r\n        '筼',\r\n        '篔',\r\n        '紜',\r\n        '縜',\r\n        '纭',\r\n        '耘',\r\n        '芸',\r\n        '蒷',\r\n        '蕓',\r\n        '郧',\r\n        '鄖',\r\n        '鋆',\r\n        '雲',\r\n    ],\r\n    hù: [\r\n        '互',\r\n        '冱',\r\n        '嗀',\r\n        '嚛',\r\n        '婟',\r\n        '嫭',\r\n        '嫮',\r\n        '岵',\r\n        '帍',\r\n        '弖',\r\n        '怙',\r\n        '戶',\r\n        '户',\r\n        '戸',\r\n        '戽',\r\n        '扈',\r\n        '护',\r\n        '昈',\r\n        '槴',\r\n        '沍',\r\n        '沪',\r\n        '滬',\r\n        '熩',\r\n        '瓠',\r\n        '祜',\r\n        '笏',\r\n        '簄',\r\n        '粐',\r\n        '綔',\r\n        '蔰',\r\n        '護',\r\n        '豰',\r\n        '鄠',\r\n        '鍙',\r\n        '頀',\r\n        '鱯',\r\n        '鳠',\r\n        '鳸',\r\n        '鸌',\r\n        '鹱',\r\n    ],\r\n    qí: [\r\n        '亓',\r\n        '剘',\r\n        '埼',\r\n        '岐',\r\n        '岓',\r\n        '崎',\r\n        '嵜',\r\n        '愭',\r\n        '掑',\r\n        '斉',\r\n        '斊',\r\n        '旂',\r\n        '旗',\r\n        '棊',\r\n        '棋',\r\n        '檱',\r\n        '櫀',\r\n        '歧',\r\n        '淇',\r\n        '濝',\r\n        '猉',\r\n        '玂',\r\n        '琦',\r\n        '琪',\r\n        '璂',\r\n        '畦',\r\n        '疧',\r\n        '碁',\r\n        '碕',\r\n        '祁',\r\n        '祈',\r\n        '祺',\r\n        '禥',\r\n        '竒',\r\n        '簯',\r\n        '簱',\r\n        '籏',\r\n        '粸',\r\n        '綥',\r\n        '綦',\r\n        '肵',\r\n        '脐',\r\n        '臍',\r\n        '艩',\r\n        '芪',\r\n        '萁',\r\n        '萕',\r\n        '蕲',\r\n        '藄',\r\n        '蘄',\r\n        '蚑',\r\n        '蚚',\r\n        '蛴',\r\n        '蜝',\r\n        '蜞',\r\n        '螧',\r\n        '蠐',\r\n        '褀',\r\n        '軝',\r\n        '鄿',\r\n        '釮',\r\n        '錡',\r\n        '锜',\r\n        '陭',\r\n        '頎',\r\n        '颀',\r\n        '騎',\r\n        '騏',\r\n        '騹',\r\n        '骐',\r\n        '骑',\r\n        '鬐',\r\n        '鬿',\r\n        '鯕',\r\n        '鰭',\r\n        '鲯',\r\n        '鳍',\r\n        '鵸',\r\n        '鶀',\r\n        '麒',\r\n        '麡',\r\n        '𨙸',\r\n        '𬨂',\r\n        '䓫',\r\n    ],\r\n    jǐng: [\r\n        '井',\r\n        '儆',\r\n        '刭',\r\n        '剄',\r\n        '坓',\r\n        '宑',\r\n        '幜',\r\n        '憬',\r\n        '暻',\r\n        '殌',\r\n        '汫',\r\n        '汬',\r\n        '澋',\r\n        '璄',\r\n        '璟',\r\n        '璥',\r\n        '穽',\r\n        '肼',\r\n        '蟼',\r\n        '警',\r\n        '阱',\r\n        '頚',\r\n        '頸',\r\n    ],\r\n    sì: [\r\n        '亖',\r\n        '佀',\r\n        '価',\r\n        '儩',\r\n        '兕',\r\n        '嗣',\r\n        '四',\r\n        '姒',\r\n        '娰',\r\n        '孠',\r\n        '寺',\r\n        '巳',\r\n        '柶',\r\n        '榹',\r\n        '汜',\r\n        '泗',\r\n        '泤',\r\n        '洍',\r\n        '洠',\r\n        '涘',\r\n        '瀃',\r\n        '牭',\r\n        '祀',\r\n        '禩',\r\n        '竢',\r\n        '笥',\r\n        '耜',\r\n        '肂',\r\n        '肆',\r\n        '蕼',\r\n        '覗',\r\n        '貄',\r\n        '釲',\r\n        '鈶',\r\n        '鈻',\r\n        '飤',\r\n        '飼',\r\n        '饲',\r\n        '駟',\r\n        '騃',\r\n        '驷',\r\n    ],\r\n    suì: [\r\n        '亗',\r\n        '嬘',\r\n        '岁',\r\n        '嵗',\r\n        '旞',\r\n        '檖',\r\n        '歲',\r\n        '歳',\r\n        '澻',\r\n        '煫',\r\n        '燧',\r\n        '璲',\r\n        '砕',\r\n        '碎',\r\n        '祟',\r\n        '禭',\r\n        '穂',\r\n        '穗',\r\n        '穟',\r\n        '繀',\r\n        '繐',\r\n        '繸',\r\n        '襚',\r\n        '誶',\r\n        '譢',\r\n        '谇',\r\n        '賥',\r\n        '邃',\r\n        '鐆',\r\n        '鐩',\r\n        '隧',\r\n        '韢',\r\n        '𫟦',\r\n        '𬭼',\r\n    ],\r\n    gèn: ['亘', '亙', '揯', '搄', '茛'],\r\n    yà: [\r\n        '亚',\r\n        '亜',\r\n        '俹',\r\n        '冴',\r\n        '劜',\r\n        '圔',\r\n        '圠',\r\n        '埡',\r\n        '娅',\r\n        '婭',\r\n        '揠',\r\n        '氩',\r\n        '氬',\r\n        '犽',\r\n        '砑',\r\n        '稏',\r\n        '聐',\r\n        '襾',\r\n        '覀',\r\n        '訝',\r\n        '讶',\r\n        '迓',\r\n        '齾',\r\n    ],\r\n    'xiē suò': ['些'],\r\n    'qí zhāi': ['亝', '齊'],\r\n    'yā yà': ['亞', '压', '垭', '壓', '铔'],\r\n    'jí qì': ['亟', '焏'],\r\n    tóu: ['亠', '投', '頭', '骰'],\r\n    'wáng wú': ['亡'],\r\n    'kàng háng gāng': ['亢'],\r\n    dà: ['亣', '眔'],\r\n    jiāo: [\r\n        '交',\r\n        '僬',\r\n        '娇',\r\n        '嬌',\r\n        '峧',\r\n        '嶕',\r\n        '嶣',\r\n        '憍',\r\n        '椒',\r\n        '浇',\r\n        '澆',\r\n        '焦',\r\n        '礁',\r\n        '穚',\r\n        '簥',\r\n        '胶',\r\n        '膠',\r\n        '膲',\r\n        '茭',\r\n        '茮',\r\n        '蕉',\r\n        '虠',\r\n        '蛟',\r\n        '蟭',\r\n        '跤',\r\n        '轇',\r\n        '郊',\r\n        '鐎',\r\n        '驕',\r\n        '骄',\r\n        '鮫',\r\n        '鲛',\r\n        '鵁',\r\n        '鷦',\r\n        '鷮',\r\n        '鹪',\r\n        '䴔',\r\n    ],\r\n    hài: ['亥', '嗐', '害', '氦', '餀', '饚', '駭', '駴', '骇'],\r\n    'hēng pēng': ['亨'],\r\n    mǔ: [\r\n        '亩',\r\n        '姆',\r\n        '峔',\r\n        '拇',\r\n        '母',\r\n        '牡',\r\n        '牳',\r\n        '畂',\r\n        '畆',\r\n        '畒',\r\n        '畝',\r\n        '畞',\r\n        '畮',\r\n        '砪',\r\n        '胟',\r\n        '踇',\r\n        '鉧',\r\n        '𬭁',\r\n        '𧿹',\r\n    ],\r\n    ye: ['亪'],\r\n    xiǎng: [\r\n        '享',\r\n        '亯',\r\n        '响',\r\n        '想',\r\n        '晑',\r\n        '蚃',\r\n        '蠁',\r\n        '響',\r\n        '飨',\r\n        '餉',\r\n        '饗',\r\n        '饷',\r\n        '鮝',\r\n        '鯗',\r\n        '鱶',\r\n        '鲞',\r\n    ],\r\n    jīng: [\r\n        '京',\r\n        '亰',\r\n        '兢',\r\n        '坕',\r\n        '坙',\r\n        '婛',\r\n        '惊',\r\n        '旌',\r\n        '旍',\r\n        '晶',\r\n        '橸',\r\n        '泾',\r\n        '涇',\r\n        '猄',\r\n        '睛',\r\n        '秔',\r\n        '稉',\r\n        '粳',\r\n        '精',\r\n        '経',\r\n        '經',\r\n        '綡',\r\n        '聙',\r\n        '腈',\r\n        '茎',\r\n        '荆',\r\n        '荊',\r\n        '菁',\r\n        '葏',\r\n        '驚',\r\n        '鯨',\r\n        '鲸',\r\n        '鶁',\r\n        '鶄',\r\n        '麖',\r\n        '麠',\r\n        '鼱',\r\n        '䴖',\r\n    ],\r\n    tíng: [\r\n        '亭',\r\n        '停',\r\n        '婷',\r\n        '嵉',\r\n        '庭',\r\n        '廷',\r\n        '楟',\r\n        '榳',\r\n        '筳',\r\n        '聤',\r\n        '莛',\r\n        '葶',\r\n        '蜓',\r\n        '蝏',\r\n        '諪',\r\n        '邒',\r\n        '霆',\r\n        '鼮',\r\n        '䗴',\r\n    ],\r\n    liàng: ['亮', '喨', '悢', '晾', '湸', '諒', '谅', '輌', '輛', '辆', '鍄'],\r\n    'qīn qìng': ['亲', '親'],\r\n    bó: [\r\n        '亳',\r\n        '仢',\r\n        '侼',\r\n        '僰',\r\n        '博',\r\n        '帛',\r\n        '愽',\r\n        '懪',\r\n        '挬',\r\n        '搏',\r\n        '欂',\r\n        '浡',\r\n        '淿',\r\n        '渤',\r\n        '煿',\r\n        '牔',\r\n        '狛',\r\n        '瓝',\r\n        '礴',\r\n        '秡',\r\n        '箔',\r\n        '簙',\r\n        '糪',\r\n        '胉',\r\n        '脖',\r\n        '膊',\r\n        '舶',\r\n        '艊',\r\n        '萡',\r\n        '葧',\r\n        '袯',\r\n        '襏',\r\n        '襮',\r\n        '謈',\r\n        '踣',\r\n        '郣',\r\n        '鈸',\r\n        '鉑',\r\n        '鋍',\r\n        '鎛',\r\n        '鑮',\r\n        '钹',\r\n        '铂',\r\n        '镈',\r\n        '餺',\r\n        '馎',\r\n        '馛',\r\n        '馞',\r\n        '駁',\r\n        '駮',\r\n        '驳',\r\n        '髆',\r\n        '鵓',\r\n        '鹁',\r\n    ],\r\n    yòu: [\r\n        '亴',\r\n        '佑',\r\n        '佦',\r\n        '侑',\r\n        '又',\r\n        '右',\r\n        '哊',\r\n        '唀',\r\n        '囿',\r\n        '姷',\r\n        '宥',\r\n        '峟',\r\n        '幼',\r\n        '狖',\r\n        '祐',\r\n        '蚴',\r\n        '誘',\r\n        '诱',\r\n        '貁',\r\n        '迶',\r\n        '酭',\r\n        '釉',\r\n        '鼬',\r\n    ],\r\n    xiè: [\r\n        '亵',\r\n        '伳',\r\n        '偞',\r\n        '偰',\r\n        '僁',\r\n        '卨',\r\n        '卸',\r\n        '噧',\r\n        '塮',\r\n        '夑',\r\n        '媟',\r\n        '屑',\r\n        '屧',\r\n        '廨',\r\n        '徢',\r\n        '懈',\r\n        '暬',\r\n        '械',\r\n        '榍',\r\n        '榭',\r\n        '泻',\r\n        '洩',\r\n        '渫',\r\n        '澥',\r\n        '瀉',\r\n        '瀣',\r\n        '灺',\r\n        '炧',\r\n        '炨',\r\n        '燮',\r\n        '爕',\r\n        '獬',\r\n        '祄',\r\n        '禼',\r\n        '糏',\r\n        '紲',\r\n        '絏',\r\n        '絬',\r\n        '繲',\r\n        '纈',\r\n        '绁',\r\n        '缷',\r\n        '薢',\r\n        '薤',\r\n        '蟹',\r\n        '蠏',\r\n        '褉',\r\n        '褻',\r\n        '謝',\r\n        '谢',\r\n        '躞',\r\n        '邂',\r\n        '靾',\r\n        '韰',\r\n        '齂',\r\n        '齘',\r\n        '齛',\r\n        '齥',\r\n        '𬹼',\r\n        '𤫉',\r\n    ],\r\n    'dǎn dàn': ['亶', '馾'],\r\n    lián: [\r\n        '亷',\r\n        '劆',\r\n        '匲',\r\n        '匳',\r\n        '嗹',\r\n        '噒',\r\n        '奁',\r\n        '奩',\r\n        '嫾',\r\n        '帘',\r\n        '廉',\r\n        '怜',\r\n        '憐',\r\n        '涟',\r\n        '漣',\r\n        '濂',\r\n        '濓',\r\n        '瀮',\r\n        '熑',\r\n        '燫',\r\n        '簾',\r\n        '籢',\r\n        '籨',\r\n        '縺',\r\n        '翴',\r\n        '联',\r\n        '聨',\r\n        '聫',\r\n        '聮',\r\n        '聯',\r\n        '臁',\r\n        '莲',\r\n        '蓮',\r\n        '薕',\r\n        '螊',\r\n        '蠊',\r\n        '裢',\r\n        '褳',\r\n        '覝',\r\n        '謰',\r\n        '蹥',\r\n        '连',\r\n        '連',\r\n        '鎌',\r\n        '鐮',\r\n        '镰',\r\n        '鬑',\r\n        '鰱',\r\n        '鲢',\r\n    ],\r\n    duǒ: [\r\n        '亸',\r\n        '哚',\r\n        '嚲',\r\n        '埵',\r\n        '崜',\r\n        '朵',\r\n        '朶',\r\n        '綞',\r\n        '缍',\r\n        '趓',\r\n        '躱',\r\n        '躲',\r\n        '軃',\r\n    ],\r\n    'wěi mén': ['亹', '斖'],\r\n    rén: ['人', '亻', '仁', '壬', '忈', '忎', '朲', '秂', '芢', '魜', '鵀'],\r\n    jí: [\r\n        '亼',\r\n        '亽',\r\n        '伋',\r\n        '佶',\r\n        '偮',\r\n        '卙',\r\n        '即',\r\n        '卽',\r\n        '及',\r\n        '叝',\r\n        '吉',\r\n        '堲',\r\n        '塉',\r\n        '姞',\r\n        '嫉',\r\n        '岌',\r\n        '嵴',\r\n        '嶯',\r\n        '彶',\r\n        '忣',\r\n        '急',\r\n        '愱',\r\n        '戢',\r\n        '揤',\r\n        '极',\r\n        '棘',\r\n        '楫',\r\n        '極',\r\n        '槉',\r\n        '檝',\r\n        '殛',\r\n        '汲',\r\n        '湒',\r\n        '潗',\r\n        '疾',\r\n        '瘠',\r\n        '皍',\r\n        '笈',\r\n        '箿',\r\n        '籍',\r\n        '級',\r\n        '级',\r\n        '膌',\r\n        '艥',\r\n        '蒺',\r\n        '蕀',\r\n        '蕺',\r\n        '蝍',\r\n        '螏',\r\n        '襋',\r\n        '觙',\r\n        '谻',\r\n        '踖',\r\n        '蹐',\r\n        '躤',\r\n        '輯',\r\n        '轚',\r\n        '辑',\r\n        '郆',\r\n        '銡',\r\n        '鍓',\r\n        '鏶',\r\n        '集',\r\n        '雧',\r\n        '霵',\r\n        '鹡',\r\n        '㴔',\r\n    ],\r\n    wáng: ['亾', '仼', '兦', '莣', '蚟'],\r\n    'shén shí': ['什'],\r\n    lè: [\r\n        '仂',\r\n        '叻',\r\n        '忇',\r\n        '氻',\r\n        '泐',\r\n        '玏',\r\n        '砳',\r\n        '簕',\r\n        '艻',\r\n        '阞',\r\n        '韷',\r\n        '餎',\r\n        '鰳',\r\n        '鱳',\r\n        '鳓',\r\n    ],\r\n    dīng: ['仃', '叮', '帄', '玎', '疔', '盯', '耵', '虰', '靪'],\r\n    zè: ['仄', '崱', '庂', '捑', '昃', '昗', '汄'],\r\n    'jǐn jìn': ['仅', '僅', '嫤'],\r\n    'pú pū': ['仆'],\r\n    'chóu qiú': ['仇'],\r\n    zhǎng: ['仉', '幥', '掌', '礃'],\r\n    jīn: [\r\n        '今',\r\n        '堻',\r\n        '巾',\r\n        '惍',\r\n        '斤',\r\n        '津',\r\n        '珒',\r\n        '琻',\r\n        '璡',\r\n        '砛',\r\n        '筋',\r\n        '荕',\r\n        '衿',\r\n        '襟',\r\n        '觔',\r\n        '金',\r\n        '釒',\r\n        '釿',\r\n        '钅',\r\n        '鹶',\r\n        '黅',\r\n        '𬬱',\r\n    ],\r\n    bīng: ['仌', '仒', '兵', '冫', '冰', '掤', '氷', '鋲'],\r\n    réng: ['仍', '礽', '芿', '辸', '陾'],\r\n    fó: ['仏', '坲', '梻'],\r\n    'jīn sǎn': ['仐'],\r\n    lún: [\r\n        '仑',\r\n        '伦',\r\n        '侖',\r\n        '倫',\r\n        '囵',\r\n        '圇',\r\n        '婨',\r\n        '崘',\r\n        '崙',\r\n        '棆',\r\n        '沦',\r\n        '淪',\r\n        '磮',\r\n        '腀',\r\n        '菕',\r\n        '蜦',\r\n        '踚',\r\n        '輪',\r\n        '轮',\r\n        '錀',\r\n        '陯',\r\n        '鯩',\r\n        '𬬭',\r\n    ],\r\n    cāng: [\r\n        '仓',\r\n        '仺',\r\n        '倉',\r\n        '凔',\r\n        '嵢',\r\n        '沧',\r\n        '滄',\r\n        '濸',\r\n        '獊',\r\n        '舱',\r\n        '艙',\r\n        '苍',\r\n        '蒼',\r\n        '螥',\r\n        '鸧',\r\n    ],\r\n    'zǎi zǐ zī': ['仔'],\r\n    tā: ['他', '塌', '它', '榙', '溻', '牠', '祂', '褟', '趿', '遢', '闧'],\r\n    fù: [\r\n        '付',\r\n        '偩',\r\n        '傅',\r\n        '冨',\r\n        '副',\r\n        '咐',\r\n        '坿',\r\n        '复',\r\n        '妇',\r\n        '婦',\r\n        '媍',\r\n        '嬔',\r\n        '富',\r\n        '復',\r\n        '椱',\r\n        '祔',\r\n        '禣',\r\n        '竎',\r\n        '緮',\r\n        '縛',\r\n        '缚',\r\n        '腹',\r\n        '萯',\r\n        '蕧',\r\n        '蚹',\r\n        '蛗',\r\n        '蝜',\r\n        '蝮',\r\n        '袝',\r\n        '複',\r\n        '覄',\r\n        '覆',\r\n        '訃',\r\n        '詂',\r\n        '讣',\r\n        '負',\r\n        '賦',\r\n        '賻',\r\n        '负',\r\n        '赋',\r\n        '赙',\r\n        '赴',\r\n        '輹',\r\n        '鍑',\r\n        '鍢',\r\n        '阜',\r\n        '附',\r\n        '馥',\r\n        '駙',\r\n        '驸',\r\n        '鮒',\r\n        '鰒',\r\n        '鲋',\r\n        '鳆',\r\n        '㳇',\r\n    ],\r\n    xiān: [\r\n        '仙',\r\n        '仚',\r\n        '佡',\r\n        '僊',\r\n        '僲',\r\n        '先',\r\n        '嘕',\r\n        '奾',\r\n        '屳',\r\n        '廯',\r\n        '忺',\r\n        '憸',\r\n        '掀',\r\n        '暹',\r\n        '杴',\r\n        '氙',\r\n        '珗',\r\n        '祆',\r\n        '秈',\r\n        '籼',\r\n        '繊',\r\n        '纎',\r\n        '纖',\r\n        '苮',\r\n        '褼',\r\n        '襳',\r\n        '跹',\r\n        '蹮',\r\n        '躚',\r\n        '酰',\r\n        '鍁',\r\n        '锨',\r\n        '韯',\r\n        '韱',\r\n        '馦',\r\n        '鱻',\r\n        '鶱',\r\n        '𬸣',\r\n    ],\r\n    'tuō chà duó': ['仛'],\r\n    hóng: [\r\n        '仜',\r\n        '吰',\r\n        '垬',\r\n        '妅',\r\n        '娂',\r\n        '宏',\r\n        '宖',\r\n        '弘',\r\n        '彋',\r\n        '汯',\r\n        '泓',\r\n        '洪',\r\n        '浤',\r\n        '渱',\r\n        '潂',\r\n        '玒',\r\n        '玜',\r\n        '竑',\r\n        '竤',\r\n        '篊',\r\n        '粠',\r\n        '紘',\r\n        '紭',\r\n        '綋',\r\n        '纮',\r\n        '翃',\r\n        '翝',\r\n        '耾',\r\n        '苰',\r\n        '荭',\r\n        '葒',\r\n        '葓',\r\n        '谹',\r\n        '谼',\r\n        '鈜',\r\n        '鉷',\r\n        '鋐',\r\n        '閎',\r\n        '闳',\r\n        '霐',\r\n        '霟',\r\n        '鞃',\r\n        '魟',\r\n        '鴻',\r\n        '鸿',\r\n        '黉',\r\n        '黌',\r\n        '𫟹',\r\n        '𬭎',\r\n    ],\r\n    tóng: [\r\n        '仝',\r\n        '佟',\r\n        '哃',\r\n        '峂',\r\n        '峝',\r\n        '庝',\r\n        '彤',\r\n        '晍',\r\n        '曈',\r\n        '桐',\r\n        '氃',\r\n        '浵',\r\n        '潼',\r\n        '犝',\r\n        '獞',\r\n        '眮',\r\n        '瞳',\r\n        '砼',\r\n        '秱',\r\n        '童',\r\n        '粡',\r\n        '膧',\r\n        '茼',\r\n        '蚒',\r\n        '詷',\r\n        '赨',\r\n        '酮',\r\n        '鉖',\r\n        '鉵',\r\n        '銅',\r\n        '铜',\r\n        '餇',\r\n        '鮦',\r\n        '鲖',\r\n        '𫍣',\r\n        '𦒍',\r\n    ],\r\n    rèn: [\r\n        '仞',\r\n        '仭',\r\n        '刃',\r\n        '刄',\r\n        '妊',\r\n        '姙',\r\n        '屻',\r\n        '岃',\r\n        '扨',\r\n        '牣',\r\n        '祍',\r\n        '紉',\r\n        '紝',\r\n        '絍',\r\n        '纫',\r\n        '纴',\r\n        '肕',\r\n        '腍',\r\n        '衽',\r\n        '袵',\r\n        '訒',\r\n        '認',\r\n        '认',\r\n        '讱',\r\n        '軔',\r\n        '轫',\r\n        '鈓',\r\n        '靭',\r\n        '靱',\r\n        '韌',\r\n        '韧',\r\n        '飪',\r\n        '餁',\r\n        '饪',\r\n    ],\r\n    qiān: [\r\n        '仟',\r\n        '佥',\r\n        '僉',\r\n        '千',\r\n        '圲',\r\n        '奷',\r\n        '孯',\r\n        '岍',\r\n        '悭',\r\n        '愆',\r\n        '慳',\r\n        '扦',\r\n        '拪',\r\n        '搴',\r\n        '撁',\r\n        '攐',\r\n        '攑',\r\n        '攓',\r\n        '杄',\r\n        '櫏',\r\n        '汘',\r\n        '汧',\r\n        '牵',\r\n        '牽',\r\n        '竏',\r\n        '签',\r\n        '簽',\r\n        '籖',\r\n        '籤',\r\n        '粁',\r\n        '芊',\r\n        '茾',\r\n        '蚈',\r\n        '褰',\r\n        '諐',\r\n        '謙',\r\n        '谦',\r\n        '谸',\r\n        '迁',\r\n        '遷',\r\n        '釺',\r\n        '鈆',\r\n        '鉛',\r\n        '鏲',\r\n        '钎',\r\n        '阡',\r\n        '韆',\r\n        '顅',\r\n        '騫',\r\n        '骞',\r\n        '鬜',\r\n        '鬝',\r\n        '鵮',\r\n        '鹐',\r\n    ],\r\n    'gǎn hàn': ['仠'],\r\n    'yì gē': ['仡'],\r\n    dài: [\r\n        '代',\r\n        '侢',\r\n        '叇',\r\n        '垈',\r\n        '埭',\r\n        '岱',\r\n        '帒',\r\n        '带',\r\n        '帯',\r\n        '帶',\r\n        '廗',\r\n        '怠',\r\n        '戴',\r\n        '曃',\r\n        '柋',\r\n        '殆',\r\n        '瀻',\r\n        '玳',\r\n        '瑇',\r\n        '甙',\r\n        '簤',\r\n        '紿',\r\n        '緿',\r\n        '绐',\r\n        '艜',\r\n        '蝳',\r\n        '袋',\r\n        '襶',\r\n        '貣',\r\n        '贷',\r\n        '蹛',\r\n        '軑',\r\n        '軚',\r\n        '軩',\r\n        '轪',\r\n        '迨',\r\n        '霴',\r\n        '靆',\r\n        '鴏',\r\n        '黛',\r\n        '黱',\r\n    ],\r\n    'lìng líng lǐng': ['令'],\r\n    chào: ['仦', '耖', '觘'],\r\n    'cháng zhǎng': ['仧', '兏', '長', '长'],\r\n    sā: ['仨'],\r\n    cháng: [\r\n        '仩',\r\n        '偿',\r\n        '償',\r\n        '嘗',\r\n        '嚐',\r\n        '嫦',\r\n        '尝',\r\n        '常',\r\n        '徜',\r\n        '瑺',\r\n        '瓺',\r\n        '甞',\r\n        '肠',\r\n        '腸',\r\n        '膓',\r\n        '苌',\r\n        '萇',\r\n        '镸',\r\n        '鱨',\r\n        '鲿',\r\n    ],\r\n    yí: [\r\n        '仪',\r\n        '侇',\r\n        '儀',\r\n        '冝',\r\n        '匜',\r\n        '咦',\r\n        '圯',\r\n        '夷',\r\n        '姨',\r\n        '宐',\r\n        '宜',\r\n        '宧',\r\n        '寲',\r\n        '峓',\r\n        '嶬',\r\n        '嶷',\r\n        '巸',\r\n        '彛',\r\n        '彜',\r\n        '彝',\r\n        '彞',\r\n        '怡',\r\n        '恞',\r\n        '扅',\r\n        '暆',\r\n        '栘',\r\n        '椬',\r\n        '椸',\r\n        '沂',\r\n        '洟',\r\n        '熪',\r\n        '瓵',\r\n        '痍',\r\n        '移',\r\n        '簃',\r\n        '籎',\r\n        '羠',\r\n        '胰',\r\n        '萓',\r\n        '蛦',\r\n        '螔',\r\n        '觺',\r\n        '謻',\r\n        '貽',\r\n        '贻',\r\n        '跠',\r\n        '迻',\r\n        '遺',\r\n        '鏔',\r\n        '頉',\r\n        '頤',\r\n        '頥',\r\n        '顊',\r\n        '颐',\r\n        '饴',\r\n        '鮧',\r\n        '鴺',\r\n    ],\r\n    mù: [\r\n        '仫',\r\n        '凩',\r\n        '募',\r\n        '墓',\r\n        '幕',\r\n        '幙',\r\n        '慔',\r\n        '慕',\r\n        '暮',\r\n        '暯',\r\n        '木',\r\n        '楘',\r\n        '毣',\r\n        '沐',\r\n        '炑',\r\n        '牧',\r\n        '狇',\r\n        '目',\r\n        '睦',\r\n        '穆',\r\n        '艒',\r\n        '苜',\r\n        '莯',\r\n        '蚞',\r\n        '鉬',\r\n        '钼',\r\n        '雮',\r\n        '霂',\r\n    ],\r\n    'men mén': ['们'],\r\n    fǎn: ['仮', '反', '橎', '返'],\r\n    'chào miǎo': ['仯'],\r\n    'yǎng áng': ['仰'],\r\n    zhòng: [\r\n        '仲',\r\n        '众',\r\n        '堹',\r\n        '妕',\r\n        '媑',\r\n        '狆',\r\n        '眾',\r\n        '祌',\r\n        '筗',\r\n        '茽',\r\n        '蚛',\r\n        '衆',\r\n        '衶',\r\n        '諥',\r\n    ],\r\n    'pǐ pí': ['仳'],\r\n    wò: [\r\n        '仴',\r\n        '偓',\r\n        '卧',\r\n        '媉',\r\n        '幄',\r\n        '握',\r\n        '楃',\r\n        '沃',\r\n        '渥',\r\n        '濣',\r\n        '瓁',\r\n        '瞃',\r\n        '硪',\r\n        '肟',\r\n        '腛',\r\n        '臥',\r\n        '齷',\r\n        '龌',\r\n    ],\r\n    jiàn: [\r\n        '件',\r\n        '俴',\r\n        '健',\r\n        '僭',\r\n        '剑',\r\n        '剣',\r\n        '剱',\r\n        '劍',\r\n        '劎',\r\n        '劒',\r\n        '劔',\r\n        '墹',\r\n        '寋',\r\n        '建',\r\n        '徤',\r\n        '擶',\r\n        '旔',\r\n        '楗',\r\n        '毽',\r\n        '洊',\r\n        '涧',\r\n        '澗',\r\n        '牮',\r\n        '珔',\r\n        '瞷',\r\n        '磵',\r\n        '礀',\r\n        '箭',\r\n        '糋',\r\n        '繝',\r\n        '腱',\r\n        '臶',\r\n        '舰',\r\n        '艦',\r\n        '荐',\r\n        '薦',\r\n        '覸',\r\n        '諓',\r\n        '諫',\r\n        '譛',\r\n        '谏',\r\n        '賎',\r\n        '賤',\r\n        '贱',\r\n        '趝',\r\n        '践',\r\n        '踐',\r\n        '踺',\r\n        '轞',\r\n        '鉴',\r\n        '鍳',\r\n        '鍵',\r\n        '鐱',\r\n        '鑑',\r\n        '鑒',\r\n        '鑬',\r\n        '鑳',\r\n        '键',\r\n        '間',\r\n        '餞',\r\n        '饯',\r\n        '𬣡',\r\n    ],\r\n    'jià jiè jie': ['价'],\r\n    'yǎo fó': ['仸'],\r\n    'rèn rén': ['任'],\r\n    'fèn bīn': ['份'],\r\n    dī: [\r\n        '仾',\r\n        '低',\r\n        '啲',\r\n        '埞',\r\n        '堤',\r\n        '岻',\r\n        '彽',\r\n        '樀',\r\n        '滴',\r\n        '磾',\r\n        '秪',\r\n        '羝',\r\n        '袛',\r\n        '趆',\r\n        '隄',\r\n        '鞮',\r\n        '䃅',\r\n    ],\r\n    fǎng: [\r\n        '仿',\r\n        '倣',\r\n        '旊',\r\n        '昉',\r\n        '昘',\r\n        '瓬',\r\n        '眆',\r\n        '紡',\r\n        '纺',\r\n        '舫',\r\n        '訪',\r\n        '访',\r\n        '髣',\r\n        '鶭',\r\n    ],\r\n    zhōng: [\r\n        '伀',\r\n        '刣',\r\n        '妐',\r\n        '幒',\r\n        '彸',\r\n        '忠',\r\n        '柊',\r\n        '汷',\r\n        '泈',\r\n        '炂',\r\n        '盅',\r\n        '籦',\r\n        '終',\r\n        '终',\r\n        '舯',\r\n        '蔠',\r\n        '蜙',\r\n        '螤',\r\n        '螽',\r\n        '衳',\r\n        '衷',\r\n        '蹱',\r\n        '鈡',\r\n        '鍾',\r\n        '鐘',\r\n        '钟',\r\n        '锺',\r\n        '鴤',\r\n        '鼨',\r\n    ],\r\n    pèi: [\r\n        '伂',\r\n        '佩',\r\n        '姵',\r\n        '帔',\r\n        '斾',\r\n        '旆',\r\n        '沛',\r\n        '浿',\r\n        '珮',\r\n        '蓜',\r\n        '轡',\r\n        '辔',\r\n        '配',\r\n        '霈',\r\n        '馷',\r\n    ],\r\n    diào: [\r\n        '伄',\r\n        '吊',\r\n        '弔',\r\n        '掉',\r\n        '瘹',\r\n        '盄',\r\n        '窎',\r\n        '窵',\r\n        '竨',\r\n        '訋',\r\n        '釣',\r\n        '鈟',\r\n        '銱',\r\n        '鋽',\r\n        '鑃',\r\n        '钓',\r\n        '铞',\r\n        '雿',\r\n        '魡',\r\n    ],\r\n    dùn: [\r\n        '伅',\r\n        '潡',\r\n        '炖',\r\n        '燉',\r\n        '盾',\r\n        '砘',\r\n        '碷',\r\n        '踲',\r\n        '逇',\r\n        '遁',\r\n        '遯',\r\n        '鈍',\r\n        '钝',\r\n    ],\r\n    wěn: ['伆', '刎', '吻', '呅', '抆', '桽', '稳', '穏', '穩', '紊', '肳', '脗'],\r\n    xǐn: ['伈'],\r\n    kàng: ['伉', '匟', '囥', '抗', '炕', '鈧', '钪'],\r\n    ài: [\r\n        '伌',\r\n        '僾',\r\n        '塧',\r\n        '壒',\r\n        '嫒',\r\n        '嬡',\r\n        '愛',\r\n        '懓',\r\n        '暧',\r\n        '曖',\r\n        '爱',\r\n        '瑷',\r\n        '璦',\r\n        '皧',\r\n        '瞹',\r\n        '砹',\r\n        '硋',\r\n        '碍',\r\n        '礙',\r\n        '薆',\r\n        '譺',\r\n        '賹',\r\n        '鑀',\r\n        '隘',\r\n        '靉',\r\n        '餲',\r\n        '馤',\r\n        '鱫',\r\n        '鴱',\r\n    ],\r\n    'jì qí': ['伎', '薺'],\r\n    'xiū xǔ': ['休'],\r\n    'jìn yín': ['伒'],\r\n    dǎn: [\r\n        '伔',\r\n        '刐',\r\n        '撢',\r\n        '玬',\r\n        '瓭',\r\n        '紞',\r\n        '胆',\r\n        '膽',\r\n        '衴',\r\n        '賧',\r\n        '赕',\r\n        '黕',\r\n        '𬘘',\r\n    ],\r\n    fū: [\r\n        '伕',\r\n        '呋',\r\n        '娐',\r\n        '孵',\r\n        '尃',\r\n        '怤',\r\n        '懯',\r\n        '敷',\r\n        '旉',\r\n        '玞',\r\n        '砆',\r\n        '稃',\r\n        '筟',\r\n        '糐',\r\n        '綒',\r\n        '肤',\r\n        '膚',\r\n        '荂',\r\n        '荴',\r\n        '衭',\r\n        '趺',\r\n        '跗',\r\n        '邞',\r\n        '鄜',\r\n        '酜',\r\n        '鈇',\r\n        '麩',\r\n        '麬',\r\n        '麱',\r\n        '麸',\r\n        '𫓧',\r\n    ],\r\n    tǎng: [\r\n        '伖',\r\n        '傥',\r\n        '儻',\r\n        '埫',\r\n        '戃',\r\n        '曭',\r\n        '爣',\r\n        '矘',\r\n        '躺',\r\n        '鎲',\r\n        '钂',\r\n        '镋',\r\n    ],\r\n    yōu: [\r\n        '优',\r\n        '優',\r\n        '呦',\r\n        '嚘',\r\n        '峳',\r\n        '幽',\r\n        '忧',\r\n        '悠',\r\n        '憂',\r\n        '攸',\r\n        '櫌',\r\n        '滺',\r\n        '瀀',\r\n        '纋',\r\n        '羪',\r\n        '耰',\r\n        '逌',\r\n        '鄾',\r\n        '麀',\r\n    ],\r\n    huǒ: ['伙', '夥', '火', '煷', '邩', '鈥', '钬'],\r\n    'huì kuài': ['会', '會', '浍', '璯'],\r\n    yǔ: [\r\n        '伛',\r\n        '俁',\r\n        '俣',\r\n        '偊',\r\n        '傴',\r\n        '匬',\r\n        '噳',\r\n        '圄',\r\n        '圉',\r\n        '宇',\r\n        '寙',\r\n        '屿',\r\n        '嶼',\r\n        '庾',\r\n        '挧',\r\n        '敔',\r\n        '斞',\r\n        '楀',\r\n        '瑀',\r\n        '瘐',\r\n        '祤',\r\n        '禹',\r\n        '穥',\r\n        '窳',\r\n        '羽',\r\n        '與',\r\n        '萭',\r\n        '貐',\r\n        '鄅',\r\n        '頨',\r\n        '麌',\r\n        '齬',\r\n        '龉',\r\n        '㺄',\r\n    ],\r\n    cuì: [\r\n        '伜',\r\n        '啛',\r\n        '忰',\r\n        '悴',\r\n        '毳',\r\n        '淬',\r\n        '焠',\r\n        '疩',\r\n        '瘁',\r\n        '竁',\r\n        '粋',\r\n        '粹',\r\n        '紣',\r\n        '綷',\r\n        '翆',\r\n        '翠',\r\n        '脃',\r\n        '脆',\r\n        '脺',\r\n        '膬',\r\n        '膵',\r\n        '臎',\r\n        '萃',\r\n        '襊',\r\n        '顇',\r\n    ],\r\n    sǎn: ['伞', '傘', '糤', '繖', '饊', '馓'],\r\n    wěi: [\r\n        '伟',\r\n        '伪',\r\n        '偉',\r\n        '偽',\r\n        '僞',\r\n        '儰',\r\n        '娓',\r\n        '寪',\r\n        '屗',\r\n        '崣',\r\n        '嶉',\r\n        '徫',\r\n        '愇',\r\n        '捤',\r\n        '暐',\r\n        '梶',\r\n        '洧',\r\n        '浘',\r\n        '渨',\r\n        '炜',\r\n        '煒',\r\n        '猥',\r\n        '玮',\r\n        '瑋',\r\n        '痿',\r\n        '緯',\r\n        '纬',\r\n        '腲',\r\n        '艉',\r\n        '芛',\r\n        '苇',\r\n        '荱',\r\n        '萎',\r\n        '葦',\r\n        '蒍',\r\n        '蔿',\r\n        '蜼',\r\n        '諉',\r\n        '诿',\r\n        '踓',\r\n        '鍡',\r\n        '韑',\r\n        '韙',\r\n        '韡',\r\n        '韪',\r\n        '頠',\r\n        '颹',\r\n        '骩',\r\n        '骪',\r\n        '骫',\r\n        '鮪',\r\n        '鲔',\r\n        '𫇭',\r\n        '𬀩',\r\n        '𬱟',\r\n    ],\r\n    'chuán zhuàn': ['传', '傳'],\r\n    'chē jū': ['伡', '俥', '车'],\r\n    'jū chē': ['車'],\r\n    yá: [\r\n        '伢',\r\n        '厑',\r\n        '厓',\r\n        '堐',\r\n        '岈',\r\n        '崕',\r\n        '崖',\r\n        '涯',\r\n        '漄',\r\n        '牙',\r\n        '玡',\r\n        '琊',\r\n        '睚',\r\n        '笌',\r\n        '芽',\r\n        '蚜',\r\n        '衙',\r\n        '齖',\r\n    ],\r\n    qiàn: [\r\n        '伣',\r\n        '俔',\r\n        '倩',\r\n        '儙',\r\n        '刋',\r\n        '壍',\r\n        '嬱',\r\n        '悓',\r\n        '棈',\r\n        '椠',\r\n        '槧',\r\n        '欠',\r\n        '歉',\r\n        '皘',\r\n        '篏',\r\n        '篟',\r\n        '縴',\r\n        '芡',\r\n        '蒨',\r\n        '蔳',\r\n        '輤',\r\n        '𬘬',\r\n    ],\r\n    shāng: [\r\n        '伤',\r\n        '傷',\r\n        '商',\r\n        '墒',\r\n        '慯',\r\n        '殇',\r\n        '殤',\r\n        '滳',\r\n        '漡',\r\n        '熵',\r\n        '蔏',\r\n        '螪',\r\n        '觞',\r\n        '觴',\r\n        '謪',\r\n        '鬺',\r\n    ],\r\n    chāng: [\r\n        '伥',\r\n        '倀',\r\n        '娼',\r\n        '昌',\r\n        '椙',\r\n        '淐',\r\n        '猖',\r\n        '琩',\r\n        '菖',\r\n        '裮',\r\n        '錩',\r\n        '锠',\r\n        '閶',\r\n        '阊',\r\n        '鯧',\r\n        '鲳',\r\n        '鼚',\r\n    ],\r\n    'chen cāng': ['伧'],\r\n    xùn: [\r\n        '伨',\r\n        '侚',\r\n        '卂',\r\n        '噀',\r\n        '巺',\r\n        '巽',\r\n        '徇',\r\n        '愻',\r\n        '殉',\r\n        '殾',\r\n        '汛',\r\n        '潠',\r\n        '狥',\r\n        '蕈',\r\n        '訊',\r\n        '訓',\r\n        '訙',\r\n        '训',\r\n        '讯',\r\n        '迅',\r\n        '迿',\r\n        '逊',\r\n        '遜',\r\n        '鑂',\r\n        '顨',\r\n        '馴',\r\n        '驯',\r\n    ],\r\n    xìn: ['伩', '囟', '孞', '脪', '舋', '衅', '訫', '釁', '阠', '顖'],\r\n    chǐ: [\r\n        '伬',\r\n        '侈',\r\n        '卶',\r\n        '叺',\r\n        '呎',\r\n        '垑',\r\n        '恥',\r\n        '歯',\r\n        '耻',\r\n        '肔',\r\n        '胣',\r\n        '蚇',\r\n        '裭',\r\n        '褫',\r\n        '豉',\r\n        '鉹',\r\n        '齒',\r\n        '齿',\r\n    ],\r\n    'xián xuán': ['伭'],\r\n    'nú nǔ': ['伮'],\r\n    'bó bǎi': ['伯'],\r\n    'gū gù': ['估'],\r\n    nǐ: ['伱', '你', '儞', '孴', '拟', '擬', '旎', '晲', '狔', '苨', '薿', '隬'],\r\n    'nì ní': ['伲'],\r\n    bàn: [\r\n        '伴',\r\n        '办',\r\n        '半',\r\n        '姅',\r\n        '怑',\r\n        '扮',\r\n        '瓣',\r\n        '秚',\r\n        '絆',\r\n        '绊',\r\n        '辦',\r\n        '鉡',\r\n        '靽',\r\n    ],\r\n    xù: [\r\n        '伵',\r\n        '侐',\r\n        '勖',\r\n        '勗',\r\n        '卹',\r\n        '叙',\r\n        '垿',\r\n        '壻',\r\n        '婿',\r\n        '序',\r\n        '恤',\r\n        '敍',\r\n        '敘',\r\n        '旭',\r\n        '昫',\r\n        '朂',\r\n        '槒',\r\n        '欰',\r\n        '殈',\r\n        '汿',\r\n        '沀',\r\n        '洫',\r\n        '溆',\r\n        '漵',\r\n        '潊',\r\n        '烅',\r\n        '烼',\r\n        '煦',\r\n        '獝',\r\n        '珬',\r\n        '盢',\r\n        '瞁',\r\n        '稸',\r\n        '絮',\r\n        '続',\r\n        '緒',\r\n        '緖',\r\n        '續',\r\n        '绪',\r\n        '续',\r\n        '聓',\r\n        '聟',\r\n        '蓄',\r\n        '藚',\r\n        '訹',\r\n        '賉',\r\n        '酗',\r\n        '頊',\r\n        '鱮',\r\n        '㳚',\r\n    ],\r\n    zhòu: [\r\n        '伷',\r\n        '僽',\r\n        '冑',\r\n        '呪',\r\n        '咒',\r\n        '咮',\r\n        '宙',\r\n        '昼',\r\n        '晝',\r\n        '甃',\r\n        '皱',\r\n        '皺',\r\n        '籀',\r\n        '籒',\r\n        '籕',\r\n        '粙',\r\n        '紂',\r\n        '縐',\r\n        '纣',\r\n        '绉',\r\n        '胄',\r\n        '荮',\r\n        '葤',\r\n        '詋',\r\n        '酎',\r\n        '駎',\r\n        '驟',\r\n        '骤',\r\n        '㤘',\r\n        '㑇',\r\n    ],\r\n    shēn: [\r\n        '伸',\r\n        '侁',\r\n        '兟',\r\n        '呻',\r\n        '堔',\r\n        '妽',\r\n        '娠',\r\n        '屾',\r\n        '峷',\r\n        '扟',\r\n        '敒',\r\n        '曑',\r\n        '柛',\r\n        '氠',\r\n        '深',\r\n        '燊',\r\n        '珅',\r\n        '甡',\r\n        '甧',\r\n        '申',\r\n        '眒',\r\n        '砷',\r\n        '穼',\r\n        '籶',\r\n        '籸',\r\n        '糂',\r\n        '紳',\r\n        '绅',\r\n        '罙',\r\n        '罧',\r\n        '葠',\r\n        '蓡',\r\n        '蔘',\r\n        '薓',\r\n        '裑',\r\n        '訷',\r\n        '詵',\r\n        '诜',\r\n        '身',\r\n        '駪',\r\n        '鯓',\r\n        '鯵',\r\n        '鰺',\r\n        '鲹',\r\n        '鵢',\r\n        '𬳽',\r\n    ],\r\n    qū: [\r\n        '伹',\r\n        '佉',\r\n        '匤',\r\n        '呿',\r\n        '坥',\r\n        '屈',\r\n        '岖',\r\n        '岴',\r\n        '嶇',\r\n        '憈',\r\n        '抾',\r\n        '敺',\r\n        '浀',\r\n        '煀',\r\n        '祛',\r\n        '筁',\r\n        '粬',\r\n        '胠',\r\n        '蛆',\r\n        '蛐',\r\n        '袪',\r\n        '覻',\r\n        '詘',\r\n        '诎',\r\n        '趍',\r\n        '躯',\r\n        '軀',\r\n        '阹',\r\n        '駆',\r\n        '駈',\r\n        '驅',\r\n        '驱',\r\n        '髷',\r\n        '魼',\r\n        '鰸',\r\n        '鱋',\r\n        '鶌',\r\n        '麯',\r\n        '麴',\r\n        '麹',\r\n        '黢',\r\n        '㭕',\r\n        '𪨰',\r\n        '䓛',\r\n    ],\r\n    'sì cì': ['伺'],\r\n    bēng: ['伻', '嘣', '奟', '崩', '嵭', '閍'],\r\n    'sì shì': ['似'],\r\n    'jiā qié gā': ['伽'],\r\n    'yǐ chì': ['佁'],\r\n    'diàn tián': ['佃', '钿'],\r\n    'hān gàn': ['佄'],\r\n    mài: [\r\n        '佅',\r\n        '劢',\r\n        '勱',\r\n        '卖',\r\n        '唛',\r\n        '売',\r\n        '脈',\r\n        '衇',\r\n        '賣',\r\n        '迈',\r\n        '邁',\r\n        '霡',\r\n        '霢',\r\n        '麥',\r\n        '麦',\r\n        '鿏',\r\n    ],\r\n    dàn: [\r\n        '但',\r\n        '僤',\r\n        '啖',\r\n        '啗',\r\n        '啿',\r\n        '噉',\r\n        '嚪',\r\n        '帎',\r\n        '憺',\r\n        '旦',\r\n        '柦',\r\n        '氮',\r\n        '沊',\r\n        '泹',\r\n        '淡',\r\n        '狚',\r\n        '疍',\r\n        '癚',\r\n        '禫',\r\n        '窞',\r\n        '腅',\r\n        '萏',\r\n        '蓞',\r\n        '蛋',\r\n        '蜑',\r\n        '觛',\r\n        '訑',\r\n        '誕',\r\n        '诞',\r\n        '贉',\r\n        '霮',\r\n        '餤',\r\n        '饏',\r\n        '駳',\r\n        '髧',\r\n        '鴠',\r\n        '𫢸',\r\n    ],\r\n    bù: [\r\n        '佈',\r\n        '勏',\r\n        '吥',\r\n        '咘',\r\n        '埗',\r\n        '埠',\r\n        '布',\r\n        '廍',\r\n        '怖',\r\n        '悑',\r\n        '步',\r\n        '歨',\r\n        '歩',\r\n        '瓿',\r\n        '篰',\r\n        '荹',\r\n        '蔀',\r\n        '踄',\r\n        '部',\r\n        '郶',\r\n        '鈈',\r\n        '钚',\r\n        '餢',\r\n    ],\r\n    bǐ: [\r\n        '佊',\r\n        '俾',\r\n        '匕',\r\n        '夶',\r\n        '妣',\r\n        '彼',\r\n        '朼',\r\n        '柀',\r\n        '比',\r\n        '毞',\r\n        '沘',\r\n        '疕',\r\n        '秕',\r\n        '笔',\r\n        '筆',\r\n        '粃',\r\n        '聛',\r\n        '舭',\r\n        '貏',\r\n        '鄙',\r\n    ],\r\n    'zhāo shào': ['佋'],\r\n    cǐ: ['佌', '此', '泚', '皉', '𫚖'],\r\n    wèi: [\r\n        '位',\r\n        '卫',\r\n        '味',\r\n        '喂',\r\n        '墛',\r\n        '媦',\r\n        '慰',\r\n        '懀',\r\n        '未',\r\n        '渭',\r\n        '煟',\r\n        '熭',\r\n        '犚',\r\n        '猬',\r\n        '畏',\r\n        '緭',\r\n        '罻',\r\n        '胃',\r\n        '苿',\r\n        '菋',\r\n        '藯',\r\n        '蘶',\r\n        '蝟',\r\n        '螱',\r\n        '衛',\r\n        '衞',\r\n        '褽',\r\n        '謂',\r\n        '讆',\r\n        '讏',\r\n        '谓',\r\n        '躗',\r\n        '躛',\r\n        '軎',\r\n        '轊',\r\n        '鏏',\r\n        '霨',\r\n        '餧',\r\n        '餵',\r\n        '饖',\r\n        '魏',\r\n        '鮇',\r\n        '鳚',\r\n    ],\r\n    zuǒ: ['佐', '左', '繓'],\r\n    yǎng: [\r\n        '佒',\r\n        '傟',\r\n        '养',\r\n        '坱',\r\n        '岟',\r\n        '慃',\r\n        '懩',\r\n        '攁',\r\n        '氧',\r\n        '氱',\r\n        '炴',\r\n        '痒',\r\n        '癢',\r\n        '礢',\r\n        '紻',\r\n        '蝆',\r\n        '軮',\r\n        '養',\r\n        '駚',\r\n    ],\r\n    'tǐ tī': ['体', '體'],\r\n    zhàn: [\r\n        '佔',\r\n        '偡',\r\n        '嶘',\r\n        '战',\r\n        '戦',\r\n        '戰',\r\n        '栈',\r\n        '桟',\r\n        '棧',\r\n        '湛',\r\n        '站',\r\n        '綻',\r\n        '绽',\r\n        '菚',\r\n        '蘸',\r\n        '虥',\r\n        '虦',\r\n        '譧',\r\n        '轏',\r\n        '驏',\r\n    ],\r\n    'hé hē hè': ['何'],\r\n    bì: [\r\n        '佖',\r\n        '咇',\r\n        '哔',\r\n        '嗶',\r\n        '坒',\r\n        '堛',\r\n        '壁',\r\n        '奰',\r\n        '妼',\r\n        '婢',\r\n        '嬖',\r\n        '币',\r\n        '幣',\r\n        '幤',\r\n        '庇',\r\n        '庳',\r\n        '廦',\r\n        '弊',\r\n        '弻',\r\n        '弼',\r\n        '彃',\r\n        '必',\r\n        '怭',\r\n        '愊',\r\n        '愎',\r\n        '敝',\r\n        '斃',\r\n        '梐',\r\n        '毕',\r\n        '毖',\r\n        '毙',\r\n        '湢',\r\n        '滗',\r\n        '滭',\r\n        '潷',\r\n        '煏',\r\n        '熚',\r\n        '狴',\r\n        '獘',\r\n        '獙',\r\n        '珌',\r\n        '璧',\r\n        '畀',\r\n        '畢',\r\n        '疪',\r\n        '痹',\r\n        '痺',\r\n        '皕',\r\n        '睤',\r\n        '碧',\r\n        '筚',\r\n        '箅',\r\n        '箆',\r\n        '篦',\r\n        '篳',\r\n        '粊',\r\n        '綼',\r\n        '縪',\r\n        '繴',\r\n        '罼',\r\n        '腷',\r\n        '苾',\r\n        '荜',\r\n        '萆',\r\n        '萞',\r\n        '蓖',\r\n        '蓽',\r\n        '蔽',\r\n        '薜',\r\n        '蜌',\r\n        '袐',\r\n        '襅',\r\n        '襞',\r\n        '襣',\r\n        '觱',\r\n        '詖',\r\n        '诐',\r\n        '貱',\r\n        '贔',\r\n        '赑',\r\n        '跸',\r\n        '蹕',\r\n        '躃',\r\n        '躄',\r\n        '避',\r\n        '邲',\r\n        '鄨',\r\n        '鄪',\r\n        '鉍',\r\n        '鏎',\r\n        '鐴',\r\n        '铋',\r\n        '閇',\r\n        '閉',\r\n        '閟',\r\n        '闭',\r\n        '陛',\r\n        '韠',\r\n        '飶',\r\n        '饆',\r\n        '馝',\r\n        '駜',\r\n        '驆',\r\n        '髀',\r\n        '魓',\r\n        '鮅',\r\n        '鷝',\r\n        '鷩',\r\n        '鼊',\r\n    ],\r\n    tuó: [\r\n        '佗',\r\n        '坨',\r\n        '堶',\r\n        '岮',\r\n        '槖',\r\n        '橐',\r\n        '沱',\r\n        '砣',\r\n        '砤',\r\n        '碢',\r\n        '紽',\r\n        '詑',\r\n        '跎',\r\n        '酡',\r\n        '阤',\r\n        '陀',\r\n        '陁',\r\n        '駝',\r\n        '駞',\r\n        '騨',\r\n        '驒',\r\n        '驝',\r\n        '驼',\r\n        '鮀',\r\n        '鴕',\r\n        '鸵',\r\n        '鼉',\r\n        '鼍',\r\n        '鼧',\r\n        '𬶍',\r\n    ],\r\n    shé: ['佘', '舌', '虵', '蛥'],\r\n    'yì dié': ['佚', '昳', '泆', '軼'],\r\n    'fó fú bì bó': ['佛'],\r\n    'zuò zuō': ['作'],\r\n    gōu: [\r\n        '佝',\r\n        '沟',\r\n        '溝',\r\n        '痀',\r\n        '篝',\r\n        '簼',\r\n        '緱',\r\n        '缑',\r\n        '袧',\r\n        '褠',\r\n        '鈎',\r\n        '鉤',\r\n        '钩',\r\n        '鞲',\r\n        '韝',\r\n    ],\r\n    nìng: ['佞', '侫', '倿', '寕', '泞', '澝', '濘'],\r\n    qú: [\r\n        '佢',\r\n        '劬',\r\n        '戵',\r\n        '斪',\r\n        '欋',\r\n        '欔',\r\n        '氍',\r\n        '淭',\r\n        '灈',\r\n        '爠',\r\n        '璖',\r\n        '璩',\r\n        '癯',\r\n        '磲',\r\n        '籧',\r\n        '絇',\r\n        '胊',\r\n        '臞',\r\n        '菃',\r\n        '葋',\r\n        '蕖',\r\n        '蘧',\r\n        '蟝',\r\n        '蠷',\r\n        '蠼',\r\n        '衐',\r\n        '衢',\r\n        '躣',\r\n        '軥',\r\n        '鑺',\r\n        '鴝',\r\n        '鸜',\r\n        '鸲',\r\n        '鼩',\r\n    ],\r\n    'yōng yòng': ['佣'],\r\n    wǎ: ['佤', '咓', '砙', '邷'],\r\n    kǎ: ['佧', '垰', '胩', '裃', '鉲'],\r\n    bāo: [\r\n        '佨',\r\n        '勹',\r\n        '包',\r\n        '孢',\r\n        '煲',\r\n        '笣',\r\n        '胞',\r\n        '苞',\r\n        '蕔',\r\n        '裦',\r\n        '褒',\r\n        '襃',\r\n        '闁',\r\n        '齙',\r\n        '龅',\r\n    ],\r\n    'huái huí': ['佪'],\r\n    'gé hè': ['佫'],\r\n    lǎo: [\r\n        '佬',\r\n        '咾',\r\n        '恅',\r\n        '栳',\r\n        '狫',\r\n        '珯',\r\n        '硓',\r\n        '老',\r\n        '耂',\r\n        '荖',\r\n        '蛯',\r\n        '轑',\r\n        '銠',\r\n        '铑',\r\n        '鮱',\r\n    ],\r\n    xiáng: ['佭', '庠', '栙', '祥', '絴', '翔', '詳', '跭'],\r\n    gé: [\r\n        '佮',\r\n        '匌',\r\n        '呄',\r\n        '嗝',\r\n        '塥',\r\n        '愅',\r\n        '挌',\r\n        '搿',\r\n        '槅',\r\n        '櫊',\r\n        '滆',\r\n        '膈',\r\n        '臵',\r\n        '茖',\r\n        '觡',\r\n        '諽',\r\n        '輵',\r\n        '轕',\r\n        '閣',\r\n        '阁',\r\n        '隔',\r\n        '鞷',\r\n        '韐',\r\n        '韚',\r\n        '騔',\r\n        '骼',\r\n        '鮯',\r\n    ],\r\n    yáng: [\r\n        '佯',\r\n        '劷',\r\n        '垟',\r\n        '崸',\r\n        '徉',\r\n        '扬',\r\n        '揚',\r\n        '敭',\r\n        '旸',\r\n        '昜',\r\n        '暘',\r\n        '杨',\r\n        '楊',\r\n        '洋',\r\n        '炀',\r\n        '珜',\r\n        '疡',\r\n        '瘍',\r\n        '眻',\r\n        '蛘',\r\n        '諹',\r\n        '輰',\r\n        '鍚',\r\n        '钖',\r\n        '阦',\r\n        '阳',\r\n        '陽',\r\n        '霷',\r\n        '颺',\r\n        '飏',\r\n        '鰑',\r\n        '鴹',\r\n        '鸉',\r\n    ],\r\n    bǎi: ['佰', '捭', '摆', '擺', '栢', '百', '竡', '粨', '襬'],\r\n    fǎ: ['佱', '峜', '法', '灋', '砝', '鍅'],\r\n    mǐng: ['佲', '凕', '姳', '慏', '酩'],\r\n    'èr nài': ['佴'],\r\n    hěn: ['佷', '很', '狠', '詪', '𬣳'],\r\n    huó: ['佸', '活'],\r\n    guǐ: [\r\n        '佹',\r\n        '匦',\r\n        '匭',\r\n        '厬',\r\n        '垝',\r\n        '姽',\r\n        '宄',\r\n        '庋',\r\n        '庪',\r\n        '恑',\r\n        '晷',\r\n        '湀',\r\n        '癸',\r\n        '祪',\r\n        '簋',\r\n        '蛫',\r\n        '蟡',\r\n        '觤',\r\n        '詭',\r\n        '诡',\r\n        '軌',\r\n        '轨',\r\n        '陒',\r\n        '鬼',\r\n    ],\r\n    quán: [\r\n        '佺',\r\n        '全',\r\n        '啳',\r\n        '埢',\r\n        '姾',\r\n        '峑',\r\n        '巏',\r\n        '拳',\r\n        '搼',\r\n        '权',\r\n        '楾',\r\n        '権',\r\n        '權',\r\n        '泉',\r\n        '洤',\r\n        '湶',\r\n        '牷',\r\n        '犈',\r\n        '瑔',\r\n        '痊',\r\n        '硂',\r\n        '筌',\r\n        '縓',\r\n        '荃',\r\n        '葲',\r\n        '蜷',\r\n        '蠸',\r\n        '觠',\r\n        '詮',\r\n        '诠',\r\n        '跧',\r\n        '踡',\r\n        '輇',\r\n        '辁',\r\n        '醛',\r\n        '銓',\r\n        '铨',\r\n        '闎',\r\n        '顴',\r\n        '颧',\r\n        '駩',\r\n        '騡',\r\n        '鬈',\r\n        '鰁',\r\n        '鳈',\r\n        '齤',\r\n    ],\r\n    tiāo: ['佻', '庣', '旫', '祧', '聎'],\r\n    jiǎo: [\r\n        '佼',\r\n        '儌',\r\n        '孂',\r\n        '挢',\r\n        '搅',\r\n        '撟',\r\n        '撹',\r\n        '攪',\r\n        '敫',\r\n        '敽',\r\n        '敿',\r\n        '晈',\r\n        '暞',\r\n        '曒',\r\n        '灚',\r\n        '燞',\r\n        '狡',\r\n        '璬',\r\n        '皎',\r\n        '皦',\r\n        '絞',\r\n        '纐',\r\n        '绞',\r\n        '腳',\r\n        '臫',\r\n        '蟜',\r\n        '譑',\r\n        '賋',\r\n        '踋',\r\n        '鉸',\r\n        '铰',\r\n        '餃',\r\n        '饺',\r\n        '鱎',\r\n        '龣',\r\n    ],\r\n    cì: [\r\n        '佽',\r\n        '刾',\r\n        '庛',\r\n        '朿',\r\n        '栨',\r\n        '次',\r\n        '絘',\r\n        '茦',\r\n        '莿',\r\n        '蛓',\r\n        '螆',\r\n        '賜',\r\n        '赐',\r\n    ],\r\n    xíng: [\r\n        '侀',\r\n        '刑',\r\n        '哘',\r\n        '型',\r\n        '娙',\r\n        '形',\r\n        '洐',\r\n        '硎',\r\n        '蛵',\r\n        '邢',\r\n        '郉',\r\n        '鈃',\r\n        '鉶',\r\n        '銒',\r\n        '钘',\r\n        '铏',\r\n        '陉',\r\n        '陘',\r\n        '餳',\r\n        '𫰛',\r\n    ],\r\n    tuō: [\r\n        '侂',\r\n        '咃',\r\n        '咜',\r\n        '圫',\r\n        '托',\r\n        '拕',\r\n        '拖',\r\n        '汑',\r\n        '脫',\r\n        '脱',\r\n        '莌',\r\n        '袥',\r\n        '託',\r\n        '讬',\r\n        '飥',\r\n        '饦',\r\n        '魠',\r\n        '鮵',\r\n    ],\r\n    kǎn: ['侃', '偘', '冚', '坎', '惂', '砍', '莰', '輡', '轗', '顑'],\r\n    zhí: [\r\n        '侄',\r\n        '値',\r\n        '值',\r\n        '埴',\r\n        '執',\r\n        '姪',\r\n        '嬂',\r\n        '戠',\r\n        '执',\r\n        '摭',\r\n        '植',\r\n        '樴',\r\n        '淔',\r\n        '漐',\r\n        '直',\r\n        '禃',\r\n        '絷',\r\n        '縶',\r\n        '聀',\r\n        '职',\r\n        '職',\r\n        '膱',\r\n        '蟙',\r\n        '跖',\r\n        '踯',\r\n        '蹠',\r\n        '躑',\r\n        '軄',\r\n        '釞',\r\n        '馽',\r\n    ],\r\n    gāi: [\r\n        '侅',\r\n        '垓',\r\n        '姟',\r\n        '峐',\r\n        '晐',\r\n        '畡',\r\n        '祴',\r\n        '荄',\r\n        '該',\r\n        '该',\r\n        '豥',\r\n        '賅',\r\n        '賌',\r\n        '赅',\r\n        '陔',\r\n    ],\r\n    lái: [\r\n        '來',\r\n        '俫',\r\n        '倈',\r\n        '崃',\r\n        '崍',\r\n        '庲',\r\n        '来',\r\n        '梾',\r\n        '棶',\r\n        '涞',\r\n        '淶',\r\n        '猍',\r\n        '琜',\r\n        '筙',\r\n        '箂',\r\n        '莱',\r\n        '萊',\r\n        '逨',\r\n        '郲',\r\n        '錸',\r\n        '铼',\r\n        '騋',\r\n        '鯠',\r\n        '鶆',\r\n        '麳',\r\n    ],\r\n    kuǎ: ['侉', '咵', '垮', '銙'],\r\n    gōng: [\r\n        '侊',\r\n        '公',\r\n        '功',\r\n        '匑',\r\n        '匔',\r\n        '塨',\r\n        '宫',\r\n        '宮',\r\n        '工',\r\n        '幊',\r\n        '弓',\r\n        '恭',\r\n        '攻',\r\n        '杛',\r\n        '碽',\r\n        '糼',\r\n        '糿',\r\n        '肱',\r\n        '觥',\r\n        '觵',\r\n        '躬',\r\n        '躳',\r\n        '髸',\r\n        '龔',\r\n        '龚',\r\n        '䢼',\r\n    ],\r\n    lì: [\r\n        '例',\r\n        '俐',\r\n        '俪',\r\n        '傈',\r\n        '儮',\r\n        '儷',\r\n        '凓',\r\n        '利',\r\n        '力',\r\n        '励',\r\n        '勵',\r\n        '历',\r\n        '厉',\r\n        '厤',\r\n        '厯',\r\n        '厲',\r\n        '叓',\r\n        '吏',\r\n        '呖',\r\n        '唎',\r\n        '唳',\r\n        '嚦',\r\n        '囇',\r\n        '坜',\r\n        '塛',\r\n        '壢',\r\n        '娳',\r\n        '婯',\r\n        '屴',\r\n        '岦',\r\n        '悧',\r\n        '悷',\r\n        '慄',\r\n        '戾',\r\n        '搮',\r\n        '暦',\r\n        '曆',\r\n        '曞',\r\n        '朸',\r\n        '枥',\r\n        '栃',\r\n        '栗',\r\n        '栛',\r\n        '檪',\r\n        '櫔',\r\n        '櫪',\r\n        '欐',\r\n        '歴',\r\n        '歷',\r\n        '沥',\r\n        '沴',\r\n        '涖',\r\n        '溧',\r\n        '濿',\r\n        '瀝',\r\n        '爏',\r\n        '犡',\r\n        '猁',\r\n        '珕',\r\n        '瑮',\r\n        '瓅',\r\n        '瓑',\r\n        '瓥',\r\n        '疬',\r\n        '痢',\r\n        '癧',\r\n        '盭',\r\n        '睙',\r\n        '砅',\r\n        '砺',\r\n        '砾',\r\n        '磿',\r\n        '礪',\r\n        '礫',\r\n        '礰',\r\n        '禲',\r\n        '秝',\r\n        '立',\r\n        '笠',\r\n        '篥',\r\n        '粒',\r\n        '粝',\r\n        '糲',\r\n        '脷',\r\n        '苈',\r\n        '茘',\r\n        '荔',\r\n        '莅',\r\n        '莉',\r\n        '蒚',\r\n        '蒞',\r\n        '藶',\r\n        '蚸',\r\n        '蛎',\r\n        '蛠',\r\n        '蜧',\r\n        '蝷',\r\n        '蠇',\r\n        '蠣',\r\n        '詈',\r\n        '讈',\r\n        '赲',\r\n        '轢',\r\n        '轣',\r\n        '轹',\r\n        '酈',\r\n        '鉝',\r\n        '隶',\r\n        '隷',\r\n        '雳',\r\n        '靂',\r\n        '靋',\r\n        '鬁',\r\n        '鳨',\r\n        '鴗',\r\n        '鷅',\r\n        '麜',\r\n        '𫵷',\r\n        '𬍛',\r\n    ],\r\n    yīn: [\r\n        '侌',\r\n        '凐',\r\n        '喑',\r\n        '噾',\r\n        '囙',\r\n        '因',\r\n        '垔',\r\n        '堙',\r\n        '姻',\r\n        '婣',\r\n        '愔',\r\n        '慇',\r\n        '栶',\r\n        '氤',\r\n        '洇',\r\n        '溵',\r\n        '濦',\r\n        '瘖',\r\n        '禋',\r\n        '秵',\r\n        '筃',\r\n        '絪',\r\n        '緸',\r\n        '茵',\r\n        '蒑',\r\n        '蔭',\r\n        '裀',\r\n        '諲',\r\n        '銦',\r\n        '铟',\r\n        '闉',\r\n        '阥',\r\n        '阴',\r\n        '陰',\r\n        '陻',\r\n        '隂',\r\n        '霒',\r\n        '霠',\r\n        '鞇',\r\n        '音',\r\n        '韾',\r\n        '駰',\r\n        '骃',\r\n        '齗',\r\n        '𬘡',\r\n        '𬤇',\r\n        '𬮱',\r\n    ],\r\n    mǐ: [\r\n        '侎',\r\n        '孊',\r\n        '弭',\r\n        '敉',\r\n        '洣',\r\n        '渳',\r\n        '灖',\r\n        '米',\r\n        '粎',\r\n        '羋',\r\n        '脒',\r\n        '芈',\r\n        '葞',\r\n        '蔝',\r\n        '銤',\r\n    ],\r\n    zhū: [\r\n        '侏',\r\n        '株',\r\n        '槠',\r\n        '橥',\r\n        '櫧',\r\n        '櫫',\r\n        '洙',\r\n        '潴',\r\n        '瀦',\r\n        '猪',\r\n        '珠',\r\n        '硃',\r\n        '秼',\r\n        '絑',\r\n        '茱',\r\n        '蕏',\r\n        '蛛',\r\n        '蝫',\r\n        '蠩',\r\n        '袾',\r\n        '誅',\r\n        '諸',\r\n        '诛',\r\n        '诸',\r\n        '豬',\r\n        '跦',\r\n        '邾',\r\n        '銖',\r\n        '铢',\r\n        '駯',\r\n        '鮢',\r\n        '鯺',\r\n        '鴸',\r\n        '鼄',\r\n    ],\r\n    ān: [\r\n        '侒',\r\n        '偣',\r\n        '媕',\r\n        '安',\r\n        '峖',\r\n        '庵',\r\n        '桉',\r\n        '氨',\r\n        '盦',\r\n        '盫',\r\n        '腤',\r\n        '菴',\r\n        '萻',\r\n        '葊',\r\n        '蓭',\r\n        '誝',\r\n        '諳',\r\n        '谙',\r\n        '鞌',\r\n        '鞍',\r\n        '韽',\r\n        '馣',\r\n        '鮟',\r\n        '鵪',\r\n        '鶕',\r\n        '鹌',\r\n        '𩽾',\r\n    ],\r\n    lù: [\r\n        '侓',\r\n        '僇',\r\n        '勎',\r\n        '勠',\r\n        '圥',\r\n        '坴',\r\n        '塶',\r\n        '娽',\r\n        '峍',\r\n        '廘',\r\n        '彔',\r\n        '录',\r\n        '戮',\r\n        '摝',\r\n        '椂',\r\n        '樚',\r\n        '淕',\r\n        '淥',\r\n        '渌',\r\n        '漉',\r\n        '潞',\r\n        '琭',\r\n        '璐',\r\n        '甪',\r\n        '盝',\r\n        '睩',\r\n        '硉',\r\n        '祿',\r\n        '禄',\r\n        '稑',\r\n        '穋',\r\n        '箓',\r\n        '簏',\r\n        '簬',\r\n        '簵',\r\n        '簶',\r\n        '籙',\r\n        '粶',\r\n        '蔍',\r\n        '蕗',\r\n        '虂',\r\n        '螰',\r\n        '賂',\r\n        '赂',\r\n        '趢',\r\n        '路',\r\n        '踛',\r\n        '蹗',\r\n        '輅',\r\n        '轆',\r\n        '辂',\r\n        '辘',\r\n        '逯',\r\n        '醁',\r\n        '錄',\r\n        '録',\r\n        '錴',\r\n        '鏴',\r\n        '陸',\r\n        '騄',\r\n        '騼',\r\n        '鯥',\r\n        '鴼',\r\n        '鵦',\r\n        '鵱',\r\n        '鷺',\r\n        '鹭',\r\n        '鹿',\r\n        '麓',\r\n        '𫘧',\r\n    ],\r\n    móu: ['侔', '劺', '恈', '眸', '蛑', '謀', '谋', '踎', '鍪', '鴾', '麰'],\r\n    ér: [\r\n        '侕',\r\n        '儿',\r\n        '児',\r\n        '兒',\r\n        '峏',\r\n        '栭',\r\n        '洏',\r\n        '粫',\r\n        '而',\r\n        '胹',\r\n        '荋',\r\n        '袻',\r\n        '輀',\r\n        '轜',\r\n        '陑',\r\n        '隭',\r\n        '髵',\r\n        '鮞',\r\n        '鲕',\r\n        '鴯',\r\n        '鸸',\r\n    ],\r\n    'dòng tǒng tóng': ['侗'],\r\n    chà: ['侘', '奼', '姹', '岔', '汊', '詫', '诧'],\r\n    chì: [\r\n        '侙',\r\n        '傺',\r\n        '勅',\r\n        '勑',\r\n        '叱',\r\n        '啻',\r\n        '彳',\r\n        '恜',\r\n        '慗',\r\n        '憏',\r\n        '懘',\r\n        '抶',\r\n        '敕',\r\n        '斥',\r\n        '杘',\r\n        '湁',\r\n        '灻',\r\n        '炽',\r\n        '烾',\r\n        '熾',\r\n        '痓',\r\n        '痸',\r\n        '瘛',\r\n        '翄',\r\n        '翅',\r\n        '翤',\r\n        '翨',\r\n        '腟',\r\n        '赤',\r\n        '趩',\r\n        '遫',\r\n        '鉓',\r\n        '雴',\r\n        '飭',\r\n        '饬',\r\n        '鶒',\r\n        '鷘',\r\n    ],\r\n    'gòng gōng': ['供', '共'],\r\n    zhōu: [\r\n        '侜',\r\n        '周',\r\n        '喌',\r\n        '州',\r\n        '徟',\r\n        '洲',\r\n        '淍',\r\n        '炿',\r\n        '烐',\r\n        '珘',\r\n        '矪',\r\n        '舟',\r\n        '謅',\r\n        '譸',\r\n        '诌',\r\n        '賙',\r\n        '赒',\r\n        '輈',\r\n        '輖',\r\n        '辀',\r\n        '週',\r\n        '郮',\r\n        '銂',\r\n        '霌',\r\n        '駲',\r\n        '騆',\r\n        '鵃',\r\n        '鸼',\r\n    ],\r\n    rú: [\r\n        '侞',\r\n        '儒',\r\n        '嚅',\r\n        '如',\r\n        '嬬',\r\n        '孺',\r\n        '帤',\r\n        '曘',\r\n        '桇',\r\n        '渪',\r\n        '濡',\r\n        '筎',\r\n        '茹',\r\n        '蕠',\r\n        '薷',\r\n        '蝡',\r\n        '蠕',\r\n        '袽',\r\n        '襦',\r\n        '邚',\r\n        '醹',\r\n        '銣',\r\n        '铷',\r\n        '顬',\r\n        '颥',\r\n        '鱬',\r\n        '鴑',\r\n        '鴽',\r\n    ],\r\n    'jiàn cún': ['侟'],\r\n    xiá: [\r\n        '侠',\r\n        '俠',\r\n        '匣',\r\n        '峡',\r\n        '峽',\r\n        '敮',\r\n        '暇',\r\n        '柙',\r\n        '炠',\r\n        '烚',\r\n        '狎',\r\n        '狭',\r\n        '狹',\r\n        '珨',\r\n        '瑕',\r\n        '硖',\r\n        '硤',\r\n        '碬',\r\n        '祫',\r\n        '筪',\r\n        '縖',\r\n        '翈',\r\n        '舝',\r\n        '舺',\r\n        '蕸',\r\n        '赮',\r\n        '轄',\r\n        '辖',\r\n        '遐',\r\n        '鍜',\r\n        '鎋',\r\n        '陜',\r\n        '陿',\r\n        '霞',\r\n        '騢',\r\n        '魻',\r\n        '鶷',\r\n        '黠',\r\n    ],\r\n    lǚ: [\r\n        '侣',\r\n        '侶',\r\n        '儢',\r\n        '吕',\r\n        '呂',\r\n        '屡',\r\n        '屢',\r\n        '履',\r\n        '挔',\r\n        '捛',\r\n        '旅',\r\n        '梠',\r\n        '焒',\r\n        '祣',\r\n        '稆',\r\n        '穭',\r\n        '絽',\r\n        '縷',\r\n        '缕',\r\n        '膂',\r\n        '膐',\r\n        '褛',\r\n        '褸',\r\n        '郘',\r\n        '鋁',\r\n        '铝',\r\n    ],\r\n    ta: ['侤'],\r\n    'jiǎo yáo': ['侥', '僥', '徺'],\r\n    zhēn: [\r\n        '侦',\r\n        '偵',\r\n        '寊',\r\n        '帧',\r\n        '帪',\r\n        '幀',\r\n        '搸',\r\n        '斟',\r\n        '桢',\r\n        '楨',\r\n        '榛',\r\n        '樼',\r\n        '殝',\r\n        '浈',\r\n        '湞',\r\n        '潧',\r\n        '澵',\r\n        '獉',\r\n        '珍',\r\n        '珎',\r\n        '瑧',\r\n        '甄',\r\n        '眞',\r\n        '真',\r\n        '砧',\r\n        '碪',\r\n        '祯',\r\n        '禎',\r\n        '禛',\r\n        '箴',\r\n        '胗',\r\n        '臻',\r\n        '葴',\r\n        '蒖',\r\n        '蓁',\r\n        '薽',\r\n        '貞',\r\n        '贞',\r\n        '轃',\r\n        '遉',\r\n        '酙',\r\n        '針',\r\n        '鉁',\r\n        '錱',\r\n        '鍼',\r\n        '针',\r\n        '鱵',\r\n    ],\r\n    'cè zè zhāi': ['侧', '側'],\r\n    kuài: [\r\n        '侩',\r\n        '儈',\r\n        '凷',\r\n        '哙',\r\n        '噲',\r\n        '圦',\r\n        '块',\r\n        '塊',\r\n        '巜',\r\n        '廥',\r\n        '快',\r\n        '旝',\r\n        '欳',\r\n        '狯',\r\n        '獪',\r\n        '筷',\r\n        '糩',\r\n        '脍',\r\n        '膾',\r\n        '郐',\r\n        '鄶',\r\n        '鱠',\r\n        '鲙',\r\n    ],\r\n    chái: ['侪', '儕', '喍', '柴', '犲', '祡', '豺'],\r\n    nóng: [\r\n        '侬',\r\n        '儂',\r\n        '农',\r\n        '哝',\r\n        '噥',\r\n        '檂',\r\n        '欁',\r\n        '浓',\r\n        '濃',\r\n        '燶',\r\n        '禯',\r\n        '秾',\r\n        '穠',\r\n        '脓',\r\n        '膿',\r\n        '蕽',\r\n        '襛',\r\n        '譨',\r\n        '農',\r\n        '辳',\r\n        '醲',\r\n        '鬞',\r\n        '𬪩',\r\n    ],\r\n    jǐn: [\r\n        '侭',\r\n        '儘',\r\n        '卺',\r\n        '厪',\r\n        '巹',\r\n        '槿',\r\n        '漌',\r\n        '瑾',\r\n        '紧',\r\n        '緊',\r\n        '菫',\r\n        '蓳',\r\n        '謹',\r\n        '谨',\r\n        '錦',\r\n        '锦',\r\n        '饉',\r\n        '馑',\r\n    ],\r\n    'hóu hòu': ['侯', '矦'],\r\n    jiǒng: [\r\n        '侰',\r\n        '僒',\r\n        '冏',\r\n        '囧',\r\n        '泂',\r\n        '澃',\r\n        '炯',\r\n        '烱',\r\n        '煚',\r\n        '煛',\r\n        '熲',\r\n        '燛',\r\n        '窘',\r\n        '綗',\r\n        '褧',\r\n        '迥',\r\n        '逈',\r\n        '顈',\r\n        '颎',\r\n        '䌹',\r\n    ],\r\n    'chěng tǐng': ['侱'],\r\n    'zhèn zhēn': ['侲', '揕'],\r\n    zuò: [\r\n        '侳',\r\n        '做',\r\n        '唑',\r\n        '坐',\r\n        '岝',\r\n        '岞',\r\n        '座',\r\n        '祚',\r\n        '糳',\r\n        '胙',\r\n        '葃',\r\n        '葄',\r\n        '蓙',\r\n        '袏',\r\n        '阼',\r\n    ],\r\n    qīn: [\r\n        '侵',\r\n        '兓',\r\n        '媇',\r\n        '嵚',\r\n        '嶔',\r\n        '欽',\r\n        '衾',\r\n        '誛',\r\n        '钦',\r\n        '顉',\r\n        '駸',\r\n        '骎',\r\n        '鮼',\r\n    ],\r\n    jú: [\r\n        '侷',\r\n        '啹',\r\n        '婅',\r\n        '局',\r\n        '巈',\r\n        '椈',\r\n        '橘',\r\n        '泦',\r\n        '淗',\r\n        '湨',\r\n        '焗',\r\n        '犑',\r\n        '狊',\r\n        '粷',\r\n        '菊',\r\n        '蘜',\r\n        '趜',\r\n        '跼',\r\n        '蹫',\r\n        '輂',\r\n        '郹',\r\n        '閰',\r\n        '駶',\r\n        '驧',\r\n        '鵙',\r\n        '鵴',\r\n        '鶪',\r\n        '鼰',\r\n        '鼳',\r\n        '䴗',\r\n    ],\r\n    'shù dōu': ['侸'],\r\n    tǐng: [\r\n        '侹',\r\n        '圢',\r\n        '娗',\r\n        '挺',\r\n        '涏',\r\n        '烶',\r\n        '珽',\r\n        '脡',\r\n        '艇',\r\n        '誔',\r\n        '頲',\r\n        '颋',\r\n    ],\r\n    shèn: [\r\n        '侺',\r\n        '愼',\r\n        '慎',\r\n        '昚',\r\n        '涁',\r\n        '渗',\r\n        '滲',\r\n        '瘆',\r\n        '瘮',\r\n        '眘',\r\n        '祳',\r\n        '肾',\r\n        '胂',\r\n        '脤',\r\n        '腎',\r\n        '蜃',\r\n        '蜄',\r\n        '鋠',\r\n    ],\r\n    'tuì tuó': ['侻'],\r\n    nán: [\r\n        '侽',\r\n        '喃',\r\n        '娚',\r\n        '抩',\r\n        '暔',\r\n        '枏',\r\n        '柟',\r\n        '楠',\r\n        '男',\r\n        '畘',\r\n        '莮',\r\n        '萳',\r\n        '遖',\r\n    ],\r\n    xiāo: [\r\n        '侾',\r\n        '哓',\r\n        '嘵',\r\n        '嚻',\r\n        '囂',\r\n        '婋',\r\n        '宯',\r\n        '宵',\r\n        '庨',\r\n        '彇',\r\n        '揱',\r\n        '枭',\r\n        '枵',\r\n        '梟',\r\n        '櫹',\r\n        '歊',\r\n        '毊',\r\n        '消',\r\n        '潇',\r\n        '瀟',\r\n        '灱',\r\n        '灲',\r\n        '烋',\r\n        '焇',\r\n        '猇',\r\n        '獢',\r\n        '痚',\r\n        '痟',\r\n        '硝',\r\n        '硣',\r\n        '窙',\r\n        '箫',\r\n        '簘',\r\n        '簫',\r\n        '綃',\r\n        '绡',\r\n        '翛',\r\n        '膮',\r\n        '萧',\r\n        '蕭',\r\n        '虈',\r\n        '虓',\r\n        '蟂',\r\n        '蟏',\r\n        '蟰',\r\n        '蠨',\r\n        '踃',\r\n        '逍',\r\n        '銷',\r\n        '销',\r\n        '霄',\r\n        '颵',\r\n        '驍',\r\n        '骁',\r\n        '髇',\r\n        '髐',\r\n        '魈',\r\n        '鴞',\r\n        '鴵',\r\n        '鷍',\r\n        '鸮',\r\n    ],\r\n    'biàn pián': ['便', '緶', '缏'],\r\n    tuǐ: ['俀', '腿', '蹆', '骽'],\r\n    xì: [\r\n        '係',\r\n        '匸',\r\n        '卌',\r\n        '呬',\r\n        '墍',\r\n        '屃',\r\n        '屓',\r\n        '屭',\r\n        '忥',\r\n        '怬',\r\n        '恄',\r\n        '椞',\r\n        '潝',\r\n        '潟',\r\n        '澙',\r\n        '熂',\r\n        '犔',\r\n        '磶',\r\n        '禊',\r\n        '細',\r\n        '綌',\r\n        '縘',\r\n        '细',\r\n        '绤',\r\n        '舃',\r\n        '舄',\r\n        '蕮',\r\n        '虩',\r\n        '衋',\r\n        '覤',\r\n        '赩',\r\n        '趇',\r\n        '郤',\r\n        '釳',\r\n        '阋',\r\n        '隙',\r\n        '隟',\r\n        '霼',\r\n        '餼',\r\n        '饩',\r\n        '鬩',\r\n        '黖',\r\n    ],\r\n    cù: [\r\n        '促',\r\n        '媨',\r\n        '憱',\r\n        '猝',\r\n        '瘄',\r\n        '瘯',\r\n        '簇',\r\n        '縬',\r\n        '脨',\r\n        '蔟',\r\n        '誎',\r\n        '趗',\r\n        '踧',\r\n        '踿',\r\n        '蹙',\r\n        '蹴',\r\n        '蹵',\r\n        '醋',\r\n        '顣',\r\n        '鼀',\r\n    ],\r\n    é: [\r\n        '俄',\r\n        '囮',\r\n        '娥',\r\n        '峉',\r\n        '峨',\r\n        '峩',\r\n        '涐',\r\n        '珴',\r\n        '皒',\r\n        '睋',\r\n        '磀',\r\n        '莪',\r\n        '訛',\r\n        '誐',\r\n        '譌',\r\n        '讹',\r\n        '迗',\r\n        '鈋',\r\n        '鋨',\r\n        '锇',\r\n        '頟',\r\n        '額',\r\n        '额',\r\n        '魤',\r\n        '鵝',\r\n        '鵞',\r\n        '鹅',\r\n    ],\r\n    qiú: [\r\n        '俅',\r\n        '叴',\r\n        '唒',\r\n        '囚',\r\n        '崷',\r\n        '巯',\r\n        '巰',\r\n        '扏',\r\n        '梂',\r\n        '殏',\r\n        '毬',\r\n        '求',\r\n        '汓',\r\n        '泅',\r\n        '浗',\r\n        '湭',\r\n        '煪',\r\n        '犰',\r\n        '玌',\r\n        '球',\r\n        '璆',\r\n        '皳',\r\n        '盚',\r\n        '紌',\r\n        '絿',\r\n        '肍',\r\n        '芁',\r\n        '莍',\r\n        '虬',\r\n        '虯',\r\n        '蛷',\r\n        '裘',\r\n        '觓',\r\n        '觩',\r\n        '訄',\r\n        '訅',\r\n        '賕',\r\n        '赇',\r\n        '逎',\r\n        '逑',\r\n        '遒',\r\n        '酋',\r\n        '釚',\r\n        '釻',\r\n        '銶',\r\n        '頄',\r\n        '鮂',\r\n        '鯄',\r\n        '鰽',\r\n        '鼽',\r\n        '𨱇',\r\n    ],\r\n    xú: ['俆', '徐', '禑'],\r\n    'guàng kuāng': ['俇'],\r\n    kù: [\r\n        '俈',\r\n        '喾',\r\n        '嚳',\r\n        '库',\r\n        '庫',\r\n        '廤',\r\n        '瘔',\r\n        '絝',\r\n        '绔',\r\n        '袴',\r\n        '裤',\r\n        '褲',\r\n        '酷',\r\n    ],\r\n    wù: [\r\n        '俉',\r\n        '务',\r\n        '務',\r\n        '勿',\r\n        '卼',\r\n        '坞',\r\n        '塢',\r\n        '奦',\r\n        '婺',\r\n        '寤',\r\n        '屼',\r\n        '岉',\r\n        '嵨',\r\n        '忢',\r\n        '悞',\r\n        '悟',\r\n        '悮',\r\n        '戊',\r\n        '扤',\r\n        '晤',\r\n        '杌',\r\n        '溩',\r\n        '焐',\r\n        '熃',\r\n        '物',\r\n        '痦',\r\n        '矹',\r\n        '窹',\r\n        '粅',\r\n        '蘁',\r\n        '誤',\r\n        '误',\r\n        '鋈',\r\n        '阢',\r\n        '隖',\r\n        '雾',\r\n        '霚',\r\n        '霧',\r\n        '靰',\r\n        '騖',\r\n        '骛',\r\n        '鶩',\r\n        '鹜',\r\n        '鼿',\r\n        '齀',\r\n    ],\r\n    jùn: [\r\n        '俊',\r\n        '儁',\r\n        '呁',\r\n        '埈',\r\n        '寯',\r\n        '峻',\r\n        '懏',\r\n        '捃',\r\n        '攟',\r\n        '晙',\r\n        '棞',\r\n        '燇',\r\n        '珺',\r\n        '畯',\r\n        '竣',\r\n        '箟',\r\n        '蜠',\r\n        '賐',\r\n        '郡',\r\n        '陖',\r\n        '餕',\r\n        '馂',\r\n        '駿',\r\n        '骏',\r\n        '鵔',\r\n        '鵕',\r\n        '鵘',\r\n        '䐃',\r\n    ],\r\n    liáng: [\r\n        '俍',\r\n        '墚',\r\n        '梁',\r\n        '椋',\r\n        '樑',\r\n        '粮',\r\n        '粱',\r\n        '糧',\r\n        '良',\r\n        '輬',\r\n        '辌',\r\n        '𫟅',\r\n    ],\r\n    zǔ: ['俎', '唨', '爼', '祖', '組', '组', '詛', '诅', '鎺', '阻', '靻'],\r\n    'qiào xiào': ['俏'],\r\n    yǒng: [\r\n        '俑',\r\n        '勇',\r\n        '勈',\r\n        '咏',\r\n        '埇',\r\n        '塎',\r\n        '嵱',\r\n        '彮',\r\n        '怺',\r\n        '恿',\r\n        '悀',\r\n        '惥',\r\n        '愑',\r\n        '愹',\r\n        '慂',\r\n        '柡',\r\n        '栐',\r\n        '永',\r\n        '泳',\r\n        '湧',\r\n        '甬',\r\n        '蛹',\r\n        '詠',\r\n        '踊',\r\n        '踴',\r\n        '鯒',\r\n        '鲬',\r\n    ],\r\n    hùn: ['俒', '倱', '圂', '尡', '慁', '掍', '溷', '焝', '睴', '觨', '諢', '诨'],\r\n    jìng: [\r\n        '俓',\r\n        '傹',\r\n        '境',\r\n        '妌',\r\n        '婙',\r\n        '婧',\r\n        '弪',\r\n        '弳',\r\n        '径',\r\n        '徑',\r\n        '敬',\r\n        '曔',\r\n        '桱',\r\n        '梷',\r\n        '浄',\r\n        '瀞',\r\n        '獍',\r\n        '痉',\r\n        '痙',\r\n        '竞',\r\n        '竟',\r\n        '竫',\r\n        '競',\r\n        '竸',\r\n        '胫',\r\n        '脛',\r\n        '莖',\r\n        '誩',\r\n        '踁',\r\n        '迳',\r\n        '逕',\r\n        '鏡',\r\n        '镜',\r\n        '靖',\r\n        '静',\r\n        '靜',\r\n        '鵛',\r\n    ],\r\n    sàn: ['俕', '閐'],\r\n    pěi: ['俖'],\r\n    sú: ['俗'],\r\n    xī: [\r\n        '俙',\r\n        '僖',\r\n        '兮',\r\n        '凞',\r\n        '卥',\r\n        '厀',\r\n        '吸',\r\n        '唏',\r\n        '唽',\r\n        '嘻',\r\n        '噏',\r\n        '嚱',\r\n        '夕',\r\n        '奚',\r\n        '嬆',\r\n        '嬉',\r\n        '屖',\r\n        '嵠',\r\n        '巇',\r\n        '希',\r\n        '徆',\r\n        '徯',\r\n        '息',\r\n        '悉',\r\n        '悕',\r\n        '惁',\r\n        '惜',\r\n        '昔',\r\n        '晞',\r\n        '晰',\r\n        '晳',\r\n        '曦',\r\n        '析',\r\n        '桸',\r\n        '榽',\r\n        '樨',\r\n        '橀',\r\n        '欷',\r\n        '氥',\r\n        '汐',\r\n        '浠',\r\n        '淅',\r\n        '渓',\r\n        '溪',\r\n        '烯',\r\n        '焁',\r\n        '焈',\r\n        '焟',\r\n        '熄',\r\n        '熈',\r\n        '熙',\r\n        '熹',\r\n        '熺',\r\n        '熻',\r\n        '燨',\r\n        '爔',\r\n        '牺',\r\n        '犀',\r\n        '犠',\r\n        '犧',\r\n        '琋',\r\n        '瘜',\r\n        '皙',\r\n        '睎',\r\n        '瞦',\r\n        '矽',\r\n        '硒',\r\n        '磎',\r\n        '礂',\r\n        '稀',\r\n        '穸',\r\n        '窸',\r\n        '粞',\r\n        '糦',\r\n        '緆',\r\n        '繥',\r\n        '羲',\r\n        '翕',\r\n        '翖',\r\n        '肸',\r\n        '肹',\r\n        '膝',\r\n        '舾',\r\n        '莃',\r\n        '菥',\r\n        '蒠',\r\n        '蜥',\r\n        '螅',\r\n        '蟋',\r\n        '蠵',\r\n        '西',\r\n        '觹',\r\n        '觽',\r\n        '觿',\r\n        '譆',\r\n        '谿',\r\n        '豀',\r\n        '豨',\r\n        '豯',\r\n        '貕',\r\n        '赥',\r\n        '邜',\r\n        '鄎',\r\n        '酅',\r\n        '醯',\r\n        '釸',\r\n        '錫',\r\n        '鏭',\r\n        '鐊',\r\n        '鑴',\r\n        '锡',\r\n        '隵',\r\n        '餏',\r\n        '饎',\r\n        '饻',\r\n        '鯑',\r\n        '鵗',\r\n        '鸂',\r\n        '鼷',\r\n    ],\r\n    lǐ: [\r\n        '俚',\r\n        '娌',\r\n        '峢',\r\n        '峲',\r\n        '李',\r\n        '欚',\r\n        '浬',\r\n        '澧',\r\n        '理',\r\n        '礼',\r\n        '禮',\r\n        '粴',\r\n        '裏',\r\n        '裡',\r\n        '豊',\r\n        '逦',\r\n        '邐',\r\n        '醴',\r\n        '鋰',\r\n        '锂',\r\n        '鯉',\r\n        '鱧',\r\n        '鱱',\r\n        '鲤',\r\n        '鳢',\r\n    ],\r\n    bǎo: [\r\n        '保',\r\n        '堢',\r\n        '媬',\r\n        '宝',\r\n        '寚',\r\n        '寳',\r\n        '寶',\r\n        '珤',\r\n        '緥',\r\n        '葆',\r\n        '藵',\r\n        '褓',\r\n        '賲',\r\n        '靌',\r\n        '飹',\r\n        '飽',\r\n        '饱',\r\n        '駂',\r\n        '鳵',\r\n        '鴇',\r\n        '鸨',\r\n    ],\r\n    'yú shù yù': ['俞'],\r\n    'sì qí': ['俟'],\r\n    'xìn shēn': ['信'],\r\n    xiū: [\r\n        '俢',\r\n        '修',\r\n        '咻',\r\n        '庥',\r\n        '樇',\r\n        '烌',\r\n        '羞',\r\n        '脙',\r\n        '脩',\r\n        '臹',\r\n        '貅',\r\n        '銝',\r\n        '鎀',\r\n        '飍',\r\n        '饈',\r\n        '馐',\r\n        '髤',\r\n        '髹',\r\n        '鮴',\r\n        '鱃',\r\n        '鵂',\r\n        '鸺',\r\n        '䗛',\r\n    ],\r\n    dì: [\r\n        '俤',\r\n        '偙',\r\n        '僀',\r\n        '埊',\r\n        '墑',\r\n        '墬',\r\n        '娣',\r\n        '帝',\r\n        '怟',\r\n        '旳',\r\n        '梊',\r\n        '焍',\r\n        '玓',\r\n        '甋',\r\n        '眱',\r\n        '睇',\r\n        '碲',\r\n        '祶',\r\n        '禘',\r\n        '第',\r\n        '締',\r\n        '缔',\r\n        '腣',\r\n        '菂',\r\n        '蒂',\r\n        '蔕',\r\n        '蝃',\r\n        '蝭',\r\n        '螮',\r\n        '諦',\r\n        '谛',\r\n        '踶',\r\n        '递',\r\n        '逓',\r\n        '遞',\r\n        '遰',\r\n        '鉪',\r\n        '𤧛',\r\n        '䗖',\r\n    ],\r\n    chóu: [\r\n        '俦',\r\n        '儔',\r\n        '嬦',\r\n        '惆',\r\n        '愁',\r\n        '懤',\r\n        '栦',\r\n        '燽',\r\n        '畴',\r\n        '疇',\r\n        '皗',\r\n        '稠',\r\n        '筹',\r\n        '籌',\r\n        '絒',\r\n        '綢',\r\n        '绸',\r\n        '菗',\r\n        '詶',\r\n        '讎',\r\n        '讐',\r\n        '踌',\r\n        '躊',\r\n        '酧',\r\n        '酬',\r\n        '醻',\r\n        '雔',\r\n        '雠',\r\n        '雦',\r\n    ],\r\n    zhì: [\r\n        '俧',\r\n        '偫',\r\n        '儨',\r\n        '制',\r\n        '劕',\r\n        '垁',\r\n        '娡',\r\n        '寘',\r\n        '帙',\r\n        '帜',\r\n        '幟',\r\n        '庢',\r\n        '庤',\r\n        '廌',\r\n        '彘',\r\n        '徏',\r\n        '徝',\r\n        '志',\r\n        '忮',\r\n        '懥',\r\n        '懫',\r\n        '挃',\r\n        '挚',\r\n        '掷',\r\n        '摯',\r\n        '擲',\r\n        '旘',\r\n        '晊',\r\n        '智',\r\n        '栉',\r\n        '桎',\r\n        '梽',\r\n        '櫍',\r\n        '櫛',\r\n        '治',\r\n        '洷',\r\n        '滍',\r\n        '滞',\r\n        '滯',\r\n        '潌',\r\n        '瀄',\r\n        '炙',\r\n        '熫',\r\n        '狾',\r\n        '猘',\r\n        '璏',\r\n        '瓆',\r\n        '痔',\r\n        '痣',\r\n        '礩',\r\n        '祑',\r\n        '秩',\r\n        '秷',\r\n        '稚',\r\n        '稺',\r\n        '穉',\r\n        '窒',\r\n        '紩',\r\n        '緻',\r\n        '置',\r\n        '翐',\r\n        '膣',\r\n        '至',\r\n        '致',\r\n        '芖',\r\n        '蛭',\r\n        '袟',\r\n        '袠',\r\n        '製',\r\n        '覟',\r\n        '觗',\r\n        '觯',\r\n        '觶',\r\n        '誌',\r\n        '豑',\r\n        '豒',\r\n        '貭',\r\n        '質',\r\n        '贄',\r\n        '质',\r\n        '贽',\r\n        '跱',\r\n        '踬',\r\n        '躓',\r\n        '輊',\r\n        '轾',\r\n        '郅',\r\n        '銍',\r\n        '鋕',\r\n        '鑕',\r\n        '铚',\r\n        '锧',\r\n        '陟',\r\n        '隲',\r\n        '雉',\r\n        '駤',\r\n        '騭',\r\n        '騺',\r\n        '驇',\r\n        '骘',\r\n        '鯯',\r\n        '鴙',\r\n        '鷙',\r\n        '鸷',\r\n        '𬃊',\r\n    ],\r\n    'liǎ liǎng': ['俩'],\r\n    jiǎn: [\r\n        '俭',\r\n        '倹',\r\n        '儉',\r\n        '减',\r\n        '剪',\r\n        '堿',\r\n        '弿',\r\n        '彅',\r\n        '戩',\r\n        '戬',\r\n        '拣',\r\n        '挸',\r\n        '捡',\r\n        '揀',\r\n        '撿',\r\n        '枧',\r\n        '柬',\r\n        '梘',\r\n        '检',\r\n        '検',\r\n        '檢',\r\n        '減',\r\n        '湕',\r\n        '瀽',\r\n        '瑐',\r\n        '睑',\r\n        '瞼',\r\n        '硷',\r\n        '碱',\r\n        '礆',\r\n        '笕',\r\n        '筧',\r\n        '简',\r\n        '簡',\r\n        '絸',\r\n        '繭',\r\n        '翦',\r\n        '茧',\r\n        '藆',\r\n        '蠒',\r\n        '裥',\r\n        '襇',\r\n        '襉',\r\n        '襺',\r\n        '詃',\r\n        '謇',\r\n        '謭',\r\n        '譾',\r\n        '谫',\r\n        '趼',\r\n        '蹇',\r\n        '鐗',\r\n        '鬋',\r\n        '鰎',\r\n        '鹸',\r\n        '鹻',\r\n        '鹼',\r\n    ],\r\n    huò: [\r\n        '俰',\r\n        '咟',\r\n        '嚯',\r\n        '嚿',\r\n        '奯',\r\n        '彠',\r\n        '惑',\r\n        '或',\r\n        '擭',\r\n        '旤',\r\n        '曤',\r\n        '檴',\r\n        '沎',\r\n        '湱',\r\n        '瀖',\r\n        '獲',\r\n        '癨',\r\n        '眓',\r\n        '矐',\r\n        '祸',\r\n        '禍',\r\n        '穫',\r\n        '窢',\r\n        '耯',\r\n        '臛',\r\n        '艧',\r\n        '获',\r\n        '蒦',\r\n        '藿',\r\n        '蠖',\r\n        '謋',\r\n        '貨',\r\n        '货',\r\n        '鍃',\r\n        '鑊',\r\n        '镬',\r\n        '雘',\r\n        '霍',\r\n        '靃',\r\n        '韄',\r\n        '㸌',\r\n    ],\r\n    'jù jū': ['俱', '据', '鋸', '锯'],\r\n    xiào: [\r\n        '俲',\r\n        '傚',\r\n        '効',\r\n        '咲',\r\n        '哮',\r\n        '啸',\r\n        '嘋',\r\n        '嘨',\r\n        '嘯',\r\n        '孝',\r\n        '效',\r\n        '斅',\r\n        '斆',\r\n        '歗',\r\n        '涍',\r\n        '熽',\r\n        '笑',\r\n        '詨',\r\n        '誟',\r\n    ],\r\n    pái: ['俳', '徘', '牌', '犤', '猅', '簰', '簲', '輫'],\r\n    biào: ['俵', '鰾', '鳔'],\r\n    'chù tì': ['俶'],\r\n    fèi: [\r\n        '俷',\r\n        '剕',\r\n        '厞',\r\n        '吠',\r\n        '屝',\r\n        '废',\r\n        '廃',\r\n        '廢',\r\n        '昲',\r\n        '曊',\r\n        '櫠',\r\n        '沸',\r\n        '濷',\r\n        '狒',\r\n        '癈',\r\n        '肺',\r\n        '萉',\r\n        '費',\r\n        '费',\r\n        '鐨',\r\n        '镄',\r\n        '陫',\r\n        '靅',\r\n        '鼣',\r\n    ],\r\n    fèng: ['俸', '凤', '奉', '湗', '焨', '煈', '賵', '赗', '鳯', '鳳', '鴌'],\r\n    ǎn: ['俺', '唵', '埯', '揞', '罯', '銨', '铵'],\r\n    bèi: [\r\n        '俻',\r\n        '倍',\r\n        '偝',\r\n        '偹',\r\n        '備',\r\n        '僃',\r\n        '备',\r\n        '悖',\r\n        '惫',\r\n        '愂',\r\n        '憊',\r\n        '昁',\r\n        '梖',\r\n        '焙',\r\n        '牬',\r\n        '犕',\r\n        '狈',\r\n        '狽',\r\n        '珼',\r\n        '琲',\r\n        '碚',\r\n        '禙',\r\n        '糒',\r\n        '苝',\r\n        '蓓',\r\n        '蛽',\r\n        '褙',\r\n        '貝',\r\n        '贝',\r\n        '軰',\r\n        '輩',\r\n        '辈',\r\n        '邶',\r\n        '郥',\r\n        '鄁',\r\n        '鋇',\r\n        '鐾',\r\n        '钡',\r\n        '鞁',\r\n        '鞴',\r\n        '𬇙',\r\n    ],\r\n    yù: [\r\n        '俼',\r\n        '儥',\r\n        '喅',\r\n        '喩',\r\n        '喻',\r\n        '域',\r\n        '堉',\r\n        '妪',\r\n        '嫗',\r\n        '寓',\r\n        '峪',\r\n        '嶎',\r\n        '庽',\r\n        '彧',\r\n        '御',\r\n        '愈',\r\n        '慾',\r\n        '戫',\r\n        '昱',\r\n        '棛',\r\n        '棜',\r\n        '棫',\r\n        '櫲',\r\n        '欎',\r\n        '欝',\r\n        '欲',\r\n        '毓',\r\n        '浴',\r\n        '淯',\r\n        '滪',\r\n        '潏',\r\n        '澦',\r\n        '灪',\r\n        '焴',\r\n        '煜',\r\n        '燏',\r\n        '燠',\r\n        '爩',\r\n        '狱',\r\n        '獄',\r\n        '玉',\r\n        '琙',\r\n        '瘉',\r\n        '癒',\r\n        '砡',\r\n        '硢',\r\n        '硲',\r\n        '礇',\r\n        '礖',\r\n        '礜',\r\n        '禦',\r\n        '秗',\r\n        '稢',\r\n        '稶',\r\n        '篽',\r\n        '籞',\r\n        '籲',\r\n        '粖',\r\n        '緎',\r\n        '罭',\r\n        '聿',\r\n        '肀',\r\n        '艈',\r\n        '芋',\r\n        '芌',\r\n        '茟',\r\n        '蒮',\r\n        '蓣',\r\n        '蓹',\r\n        '蕷',\r\n        '蘌',\r\n        '蜟',\r\n        '蜮',\r\n        '袬',\r\n        '裕',\r\n        '誉',\r\n        '諭',\r\n        '譽',\r\n        '谕',\r\n        '豫',\r\n        '軉',\r\n        '輍',\r\n        '逳',\r\n        '遇',\r\n        '遹',\r\n        '郁',\r\n        '醧',\r\n        '鈺',\r\n        '鋊',\r\n        '錥',\r\n        '鐭',\r\n        '钰',\r\n        '閾',\r\n        '阈',\r\n        '雤',\r\n        '霱',\r\n        '預',\r\n        '预',\r\n        '飫',\r\n        '饇',\r\n        '饫',\r\n        '馭',\r\n        '驈',\r\n        '驭',\r\n        '鬰',\r\n        '鬱',\r\n        '鬻',\r\n        '魊',\r\n        '鱊',\r\n        '鳿',\r\n        '鴥',\r\n        '鴧',\r\n        '鴪',\r\n        '鵒',\r\n        '鷸',\r\n        '鸒',\r\n        '鹆',\r\n        '鹬',\r\n    ],\r\n    xīn: [\r\n        '俽',\r\n        '噺',\r\n        '妡',\r\n        '嬜',\r\n        '廞',\r\n        '心',\r\n        '忄',\r\n        '忻',\r\n        '惞',\r\n        '新',\r\n        '昕',\r\n        '杺',\r\n        '欣',\r\n        '歆',\r\n        '炘',\r\n        '盺',\r\n        '薪',\r\n        '訢',\r\n        '辛',\r\n        '邤',\r\n        '鈊',\r\n        '鋅',\r\n        '鑫',\r\n        '锌',\r\n        '馨',\r\n        '馫',\r\n        '䜣',\r\n        '𫷷',\r\n    ],\r\n    'hǔ chí': ['俿'],\r\n    jiù: [\r\n        '倃',\r\n        '僦',\r\n        '匓',\r\n        '匛',\r\n        '匶',\r\n        '厩',\r\n        '咎',\r\n        '就',\r\n        '廄',\r\n        '廏',\r\n        '廐',\r\n        '慦',\r\n        '捄',\r\n        '救',\r\n        '旧',\r\n        '柩',\r\n        '柾',\r\n        '桕',\r\n        '欍',\r\n        '殧',\r\n        '疚',\r\n        '臼',\r\n        '舅',\r\n        '舊',\r\n        '鯦',\r\n        '鷲',\r\n        '鹫',\r\n        '麔',\r\n        '齨',\r\n        '㠇',\r\n    ],\r\n    yáo: [\r\n        '倄',\r\n        '傜',\r\n        '嗂',\r\n        '垚',\r\n        '堯',\r\n        '姚',\r\n        '媱',\r\n        '尧',\r\n        '尭',\r\n        '峣',\r\n        '嶢',\r\n        '嶤',\r\n        '徭',\r\n        '揺',\r\n        '搖',\r\n        '摇',\r\n        '摿',\r\n        '暚',\r\n        '榣',\r\n        '烑',\r\n        '爻',\r\n        '猺',\r\n        '珧',\r\n        '瑤',\r\n        '瑶',\r\n        '磘',\r\n        '窑',\r\n        '窯',\r\n        '窰',\r\n        '肴',\r\n        '蘨',\r\n        '謠',\r\n        '謡',\r\n        '谣',\r\n        '軺',\r\n        '轺',\r\n        '遙',\r\n        '遥',\r\n        '邎',\r\n        '顤',\r\n        '颻',\r\n        '飖',\r\n        '餆',\r\n        '餚',\r\n        '鰩',\r\n        '鱙',\r\n        '鳐',\r\n    ],\r\n    'cuì zú': ['倅'],\r\n    'liǎng liǎ': ['倆'],\r\n    wǎn: [\r\n        '倇',\r\n        '唍',\r\n        '婉',\r\n        '惋',\r\n        '挽',\r\n        '晚',\r\n        '晥',\r\n        '晩',\r\n        '晼',\r\n        '梚',\r\n        '椀',\r\n        '琬',\r\n        '畹',\r\n        '皖',\r\n        '盌',\r\n        '碗',\r\n        '綩',\r\n        '綰',\r\n        '绾',\r\n        '脘',\r\n        '萖',\r\n        '踠',\r\n        '輓',\r\n        '鋔',\r\n    ],\r\n    zǒng: [\r\n        '倊',\r\n        '偬',\r\n        '傯',\r\n        '嵸',\r\n        '总',\r\n        '惣',\r\n        '捴',\r\n        '搃',\r\n        '摠',\r\n        '燪',\r\n        '総',\r\n        '緫',\r\n        '縂',\r\n        '總',\r\n        '蓗',\r\n    ],\r\n    guān: [\r\n        '倌',\r\n        '关',\r\n        '官',\r\n        '棺',\r\n        '瘝',\r\n        '癏',\r\n        '窤',\r\n        '蒄',\r\n        '関',\r\n        '闗',\r\n        '關',\r\n        '鰥',\r\n        '鱞',\r\n        '鳏',\r\n    ],\r\n    tiǎn: [\r\n        '倎',\r\n        '唺',\r\n        '忝',\r\n        '悿',\r\n        '晪',\r\n        '殄',\r\n        '淟',\r\n        '睓',\r\n        '腆',\r\n        '舔',\r\n        '覥',\r\n        '觍',\r\n        '賟',\r\n        '錪',\r\n        '餂',\r\n    ],\r\n    mén: ['們', '扪', '捫', '璊', '菛', '虋', '鍆', '钔', '門', '閅', '门', '𫞩'],\r\n    'dǎo dào': ['倒'],\r\n    'tán tàn': ['倓', '埮'],\r\n    'juè jué': ['倔'],\r\n    chuí: [\r\n        '倕',\r\n        '垂',\r\n        '埀',\r\n        '捶',\r\n        '搥',\r\n        '桘',\r\n        '棰',\r\n        '槌',\r\n        '箠',\r\n        '腄',\r\n        '菙',\r\n        '錘',\r\n        '鎚',\r\n        '锤',\r\n        '陲',\r\n        '顀',\r\n    ],\r\n    xìng: [\r\n        '倖',\r\n        '姓',\r\n        '婞',\r\n        '嬹',\r\n        '幸',\r\n        '性',\r\n        '悻',\r\n        '杏',\r\n        '涬',\r\n        '緈',\r\n        '臖',\r\n        '荇',\r\n        '莕',\r\n        '葕',\r\n    ],\r\n    péng: [\r\n        '倗',\r\n        '傰',\r\n        '塜',\r\n        '塳',\r\n        '弸',\r\n        '憉',\r\n        '捀',\r\n        '朋',\r\n        '棚',\r\n        '椖',\r\n        '樥',\r\n        '硼',\r\n        '稝',\r\n        '竼',\r\n        '篷',\r\n        '纄',\r\n        '膨',\r\n        '芃',\r\n        '蓬',\r\n        '蘕',\r\n        '蟚',\r\n        '蟛',\r\n        '袶',\r\n        '輣',\r\n        '錋',\r\n        '鑝',\r\n        '韸',\r\n        '韼',\r\n        '騯',\r\n        '髼',\r\n        '鬅',\r\n        '鬔',\r\n        '鵬',\r\n        '鹏',\r\n    ],\r\n    'tǎng cháng': ['倘'],\r\n    hòu: [\r\n        '候',\r\n        '厚',\r\n        '后',\r\n        '垕',\r\n        '堠',\r\n        '後',\r\n        '洉',\r\n        '茩',\r\n        '豞',\r\n        '逅',\r\n        '郈',\r\n        '鮜',\r\n        '鱟',\r\n        '鲎',\r\n        '鲘',\r\n    ],\r\n    tì: [\r\n        '倜',\r\n        '剃',\r\n        '嚏',\r\n        '嚔',\r\n        '屉',\r\n        '屜',\r\n        '悌',\r\n        '悐',\r\n        '惕',\r\n        '惖',\r\n        '戻',\r\n        '掦',\r\n        '替',\r\n        '朑',\r\n        '歒',\r\n        '殢',\r\n        '涕',\r\n        '瓋',\r\n        '笹',\r\n        '籊',\r\n        '薙',\r\n        '褅',\r\n        '逖',\r\n        '逷',\r\n        '髰',\r\n        '鬀',\r\n        '鬄',\r\n    ],\r\n    gàn: [\r\n        '倝',\r\n        '凎',\r\n        '幹',\r\n        '榦',\r\n        '檊',\r\n        '淦',\r\n        '灨',\r\n        '盰',\r\n        '紺',\r\n        '绀',\r\n        '詌',\r\n        '贑',\r\n        '赣',\r\n        '骭',\r\n        '㽏',\r\n    ],\r\n    'liàng jìng': ['倞', '靓'],\r\n    suī: [\r\n        '倠',\r\n        '哸',\r\n        '夊',\r\n        '滖',\r\n        '濉',\r\n        '眭',\r\n        '睢',\r\n        '芕',\r\n        '荽',\r\n        '荾',\r\n        '虽',\r\n        '雖',\r\n        '鞖',\r\n    ],\r\n    'chàng chāng': ['倡'],\r\n    jié: [\r\n        '倢',\r\n        '偼',\r\n        '傑',\r\n        '刦',\r\n        '刧',\r\n        '刼',\r\n        '劫',\r\n        '劼',\r\n        '卩',\r\n        '卪',\r\n        '婕',\r\n        '媫',\r\n        '孑',\r\n        '岊',\r\n        '崨',\r\n        '嵥',\r\n        '嶻',\r\n        '巀',\r\n        '幯',\r\n        '截',\r\n        '捷',\r\n        '掶',\r\n        '擮',\r\n        '昅',\r\n        '杢',\r\n        '杰',\r\n        '桀',\r\n        '桝',\r\n        '楬',\r\n        '楶',\r\n        '榤',\r\n        '洁',\r\n        '滐',\r\n        '潔',\r\n        '狤',\r\n        '睫',\r\n        '礍',\r\n        '竭',\r\n        '節',\r\n        '羯',\r\n        '莭',\r\n        '蓵',\r\n        '蛣',\r\n        '蜐',\r\n        '蠘',\r\n        '蠞',\r\n        '蠽',\r\n        '衱',\r\n        '袺',\r\n        '訐',\r\n        '詰',\r\n        '誱',\r\n        '讦',\r\n        '踕',\r\n        '迼',\r\n        '鉣',\r\n        '鍻',\r\n        '镼',\r\n        '頡',\r\n        '鮚',\r\n        '鲒',\r\n        '㛃',\r\n    ],\r\n    'kǒng kōng': ['倥'],\r\n    juàn: [\r\n        '倦',\r\n        '劵',\r\n        '奆',\r\n        '慻',\r\n        '桊',\r\n        '淃',\r\n        '狷',\r\n        '獧',\r\n        '眷',\r\n        '睊',\r\n        '睠',\r\n        '絭',\r\n        '絹',\r\n        '绢',\r\n        '罥',\r\n        '羂',\r\n        '腃',\r\n        '蔨',\r\n        '鄄',\r\n        '餋',\r\n    ],\r\n    zōng: [\r\n        '倧',\r\n        '堫',\r\n        '宗',\r\n        '嵏',\r\n        '嵕',\r\n        '惾',\r\n        '朡',\r\n        '棕',\r\n        '椶',\r\n        '熧',\r\n        '猣',\r\n        '磫',\r\n        '緃',\r\n        '翪',\r\n        '腙',\r\n        '葼',\r\n        '蝬',\r\n        '豵',\r\n        '踨',\r\n        '踪',\r\n        '蹤',\r\n        '鍐',\r\n        '鑁',\r\n        '騌',\r\n        '騣',\r\n        '骔',\r\n        '鬃',\r\n        '鬉',\r\n        '鬷',\r\n        '鯮',\r\n        '鯼',\r\n    ],\r\n    ní: [\r\n        '倪',\r\n        '坭',\r\n        '埿',\r\n        '尼',\r\n        '屔',\r\n        '怩',\r\n        '淣',\r\n        '猊',\r\n        '籾',\r\n        '聣',\r\n        '蚭',\r\n        '蜺',\r\n        '觬',\r\n        '貎',\r\n        '跜',\r\n        '輗',\r\n        '郳',\r\n        '鈮',\r\n        '铌',\r\n        '霓',\r\n        '馜',\r\n        '鯢',\r\n        '鲵',\r\n        '麑',\r\n        '齯',\r\n        '𫐐',\r\n        '𫠜',\r\n    ],\r\n    zhuō: [\r\n        '倬',\r\n        '拙',\r\n        '捉',\r\n        '桌',\r\n        '梲',\r\n        '棁',\r\n        '棳',\r\n        '槕',\r\n        '涿',\r\n        '窧',\r\n        '鐯',\r\n        '䦃',\r\n    ],\r\n    'wō wēi': ['倭'],\r\n    luǒ: ['倮', '剆', '曪', '瘰', '癳', '臝', '蓏', '蠃', '裸', '躶'],\r\n    sōng: [\r\n        '倯',\r\n        '凇',\r\n        '娀',\r\n        '崧',\r\n        '嵩',\r\n        '庺',\r\n        '憽',\r\n        '松',\r\n        '枀',\r\n        '枩',\r\n        '柗',\r\n        '梥',\r\n        '檧',\r\n        '淞',\r\n        '濍',\r\n        '硹',\r\n        '菘',\r\n        '鬆',\r\n    ],\r\n    lèng: ['倰', '堎', '愣', '睖', '踜'],\r\n    zì: [\r\n        '倳',\r\n        '剚',\r\n        '字',\r\n        '恣',\r\n        '渍',\r\n        '漬',\r\n        '牸',\r\n        '眥',\r\n        '眦',\r\n        '胔',\r\n        '胾',\r\n        '自',\r\n        '茡',\r\n        '荢',\r\n    ],\r\n    bèn: ['倴', '坌', '捹', '撪', '渀', '笨', '逩'],\r\n    cǎi: ['倸', '啋', '婇', '彩', '採', '棌', '毝', '睬', '綵', '跴', '踩'],\r\n    zhài: ['债', '債', '寨', '瘵', '砦'],\r\n    yē: ['倻', '吔', '噎', '擨', '暍', '椰', '歋', '潱', '蠮'],\r\n    shà: ['倽', '唼', '喢', '歃', '箑', '翜', '翣', '萐', '閯', '霎'],\r\n    qīng: [\r\n        '倾',\r\n        '傾',\r\n        '卿',\r\n        '圊',\r\n        '寈',\r\n        '氢',\r\n        '氫',\r\n        '淸',\r\n        '清',\r\n        '蜻',\r\n        '軽',\r\n        '輕',\r\n        '轻',\r\n        '郬',\r\n        '錆',\r\n        '鑋',\r\n        '靑',\r\n        '青',\r\n        '鯖',\r\n    ],\r\n    yīng: [\r\n        '偀',\r\n        '嘤',\r\n        '噟',\r\n        '嚶',\r\n        '婴',\r\n        '媖',\r\n        '嫈',\r\n        '嬰',\r\n        '孆',\r\n        '孾',\r\n        '愥',\r\n        '撄',\r\n        '攖',\r\n        '朠',\r\n        '桜',\r\n        '樱',\r\n        '櫻',\r\n        '渶',\r\n        '煐',\r\n        '珱',\r\n        '瑛',\r\n        '璎',\r\n        '瓔',\r\n        '甇',\r\n        '甖',\r\n        '碤',\r\n        '礯',\r\n        '緓',\r\n        '纓',\r\n        '绬',\r\n        '缨',\r\n        '罂',\r\n        '罃',\r\n        '罌',\r\n        '膺',\r\n        '英',\r\n        '莺',\r\n        '蘡',\r\n        '蝧',\r\n        '蠳',\r\n        '褮',\r\n        '譻',\r\n        '賏',\r\n        '軈',\r\n        '鑍',\r\n        '锳',\r\n        '霙',\r\n        '韺',\r\n        '鴬',\r\n        '鶑',\r\n        '鶧',\r\n        '鶯',\r\n        '鷪',\r\n        '鷹',\r\n        '鸎',\r\n        '鸚',\r\n        '鹦',\r\n        '鹰',\r\n        '䓨',\r\n    ],\r\n    'chēng chèn': ['偁', '爯'],\r\n    ruǎn: ['偄', '朊', '瑌', '瓀', '碝', '礝', '腝', '軟', '輭', '软', '阮'],\r\n    'zhòng tóng': ['偅'],\r\n    chǔn: ['偆', '惷', '睶', '萶', '蠢', '賰'],\r\n    'jiǎ jià': ['假'],\r\n    'jì jié': ['偈'],\r\n    'bǐng bìng': ['偋'],\r\n    ruò: [\r\n        '偌',\r\n        '叒',\r\n        '嵶',\r\n        '弱',\r\n        '楉',\r\n        '焫',\r\n        '爇',\r\n        '箬',\r\n        '篛',\r\n        '蒻',\r\n        '鄀',\r\n        '鰙',\r\n        '鰯',\r\n        '鶸',\r\n    ],\r\n    tí: [\r\n        '偍',\r\n        '厗',\r\n        '啼',\r\n        '嗁',\r\n        '崹',\r\n        '漽',\r\n        '瑅',\r\n        '睼',\r\n        '禵',\r\n        '稊',\r\n        '緹',\r\n        '缇',\r\n        '罤',\r\n        '蕛',\r\n        '褆',\r\n        '謕',\r\n        '趧',\r\n        '蹄',\r\n        '蹏',\r\n        '醍',\r\n        '鍗',\r\n        '題',\r\n        '题',\r\n        '騠',\r\n        '鮷',\r\n        '鯷',\r\n        '鳀',\r\n        '鵜',\r\n        '鷤',\r\n        '鹈',\r\n        '𫘨',\r\n    ],\r\n    wēi: [\r\n        '偎',\r\n        '危',\r\n        '喴',\r\n        '威',\r\n        '媙',\r\n        '嶶',\r\n        '巍',\r\n        '微',\r\n        '愄',\r\n        '揋',\r\n        '揻',\r\n        '椳',\r\n        '楲',\r\n        '溦',\r\n        '烓',\r\n        '煨',\r\n        '燰',\r\n        '癓',\r\n        '縅',\r\n        '葨',\r\n        '葳',\r\n        '薇',\r\n        '蜲',\r\n        '蝛',\r\n        '覣',\r\n        '詴',\r\n        '逶',\r\n        '隇',\r\n        '隈',\r\n        '霺',\r\n        '鰃',\r\n        '鰄',\r\n        '鳂',\r\n    ],\r\n    piān: ['偏', '囨', '媥', '楄', '犏', '篇', '翩', '鍂'],\r\n    yàn: [\r\n        '偐',\r\n        '厌',\r\n        '厭',\r\n        '唁',\r\n        '喭',\r\n        '嚈',\r\n        '嚥',\r\n        '堰',\r\n        '妟',\r\n        '姲',\r\n        '嬊',\r\n        '嬿',\r\n        '宴',\r\n        '彥',\r\n        '彦',\r\n        '敥',\r\n        '晏',\r\n        '暥',\r\n        '曕',\r\n        '曣',\r\n        '滟',\r\n        '灎',\r\n        '灔',\r\n        '灧',\r\n        '灩',\r\n        '焔',\r\n        '焰',\r\n        '焱',\r\n        '熖',\r\n        '燄',\r\n        '牪',\r\n        '猒',\r\n        '砚',\r\n        '硯',\r\n        '艳',\r\n        '艶',\r\n        '艷',\r\n        '覎',\r\n        '觃',\r\n        '觾',\r\n        '諺',\r\n        '讌',\r\n        '讞',\r\n        '谚',\r\n        '谳',\r\n        '豓',\r\n        '豔',\r\n        '贋',\r\n        '贗',\r\n        '赝',\r\n        '軅',\r\n        '酀',\r\n        '酽',\r\n        '醼',\r\n        '釅',\r\n        '雁',\r\n        '餍',\r\n        '饜',\r\n        '騐',\r\n        '験',\r\n        '騴',\r\n        '驗',\r\n        '驠',\r\n        '验',\r\n        '鬳',\r\n        '鳫',\r\n        '鴈',\r\n        '鴳',\r\n        '鷃',\r\n        '鷰',\r\n        '齞',\r\n    ],\r\n    'tǎng dàng': ['偒'],\r\n    è: [\r\n        '偔',\r\n        '匎',\r\n        '卾',\r\n        '厄',\r\n        '呝',\r\n        '咢',\r\n        '噩',\r\n        '垩',\r\n        '堊',\r\n        '堮',\r\n        '岋',\r\n        '崿',\r\n        '廅',\r\n        '悪',\r\n        '愕',\r\n        '戹',\r\n        '扼',\r\n        '搤',\r\n        '搹',\r\n        '擜',\r\n        '櫮',\r\n        '歞',\r\n        '歺',\r\n        '湂',\r\n        '琧',\r\n        '砈',\r\n        '砐',\r\n        '硆',\r\n        '腭',\r\n        '苊',\r\n        '萼',\r\n        '蕚',\r\n        '蚅',\r\n        '蝁',\r\n        '覨',\r\n        '諤',\r\n        '讍',\r\n        '谔',\r\n        '豟',\r\n        '軛',\r\n        '軶',\r\n        '轭',\r\n        '遌',\r\n        '遏',\r\n        '遻',\r\n        '鄂',\r\n        '鈪',\r\n        '鍔',\r\n        '鑩',\r\n        '锷',\r\n        '阨',\r\n        '阸',\r\n        '頞',\r\n        '顎',\r\n        '颚',\r\n        '餓',\r\n        '餩',\r\n        '饿',\r\n        '鰐',\r\n        '鰪',\r\n        '鱷',\r\n        '鳄',\r\n        '鶚',\r\n        '鹗',\r\n        '齃',\r\n        '齶',\r\n        '𫫇',\r\n        '𥔲',\r\n    ],\r\n    xié: [\r\n        '偕',\r\n        '勰',\r\n        '协',\r\n        '協',\r\n        '嗋',\r\n        '垥',\r\n        '奊',\r\n        '恊',\r\n        '愶',\r\n        '拹',\r\n        '携',\r\n        '撷',\r\n        '擕',\r\n        '擷',\r\n        '攜',\r\n        '斜',\r\n        '旪',\r\n        '熁',\r\n        '燲',\r\n        '綊',\r\n        '緳',\r\n        '縀',\r\n        '缬',\r\n        '翓',\r\n        '胁',\r\n        '脅',\r\n        '脇',\r\n        '脋',\r\n        '膎',\r\n        '蝢',\r\n        '衺',\r\n        '襭',\r\n        '諧',\r\n        '讗',\r\n        '谐',\r\n        '鞋',\r\n        '鞵',\r\n        '龤',\r\n        '㙦',\r\n    ],\r\n    chě: ['偖', '扯', '撦'],\r\n    shěng: ['偗', '渻', '眚'],\r\n    chā: [\r\n        '偛',\r\n        '嗏',\r\n        '扠',\r\n        '挿',\r\n        '插',\r\n        '揷',\r\n        '疀',\r\n        '臿',\r\n        '艖',\r\n        '銟',\r\n        '鍤',\r\n        '锸',\r\n        '餷',\r\n    ],\r\n    huáng: [\r\n        '偟',\r\n        '凰',\r\n        '喤',\r\n        '堭',\r\n        '墴',\r\n        '媓',\r\n        '崲',\r\n        '徨',\r\n        '惶',\r\n        '楻',\r\n        '湟',\r\n        '煌',\r\n        '獚',\r\n        '瑝',\r\n        '璜',\r\n        '癀',\r\n        '皇',\r\n        '磺',\r\n        '穔',\r\n        '篁',\r\n        '簧',\r\n        '艎',\r\n        '葟',\r\n        '蝗',\r\n        '蟥',\r\n        '諻',\r\n        '趪',\r\n        '遑',\r\n        '鍠',\r\n        '鐄',\r\n        '锽',\r\n        '隍',\r\n        '韹',\r\n        '餭',\r\n        '騜',\r\n        '鰉',\r\n        '鱑',\r\n        '鳇',\r\n        '鷬',\r\n        '黃',\r\n        '黄',\r\n        '𨱑',\r\n    ],\r\n    yǎo: [\r\n        '偠',\r\n        '咬',\r\n        '婹',\r\n        '宎',\r\n        '岆',\r\n        '杳',\r\n        '柼',\r\n        '榚',\r\n        '溔',\r\n        '狕',\r\n        '窅',\r\n        '窈',\r\n        '舀',\r\n        '苭',\r\n        '闄',\r\n        '騕',\r\n        '鷕',\r\n        '齩',\r\n    ],\r\n    'chǒu qiào': ['偢'],\r\n    yóu: [\r\n        '偤',\r\n        '尤',\r\n        '庮',\r\n        '怣',\r\n        '沋',\r\n        '油',\r\n        '浟',\r\n        '游',\r\n        '犹',\r\n        '猶',\r\n        '猷',\r\n        '由',\r\n        '疣',\r\n        '秞',\r\n        '肬',\r\n        '莜',\r\n        '莸',\r\n        '蕕',\r\n        '蚰',\r\n        '蝣',\r\n        '訧',\r\n        '輏',\r\n        '輶',\r\n        '逰',\r\n        '遊',\r\n        '邮',\r\n        '郵',\r\n        '鈾',\r\n        '铀',\r\n        '駀',\r\n        '魷',\r\n        '鮋',\r\n        '鱿',\r\n        '鲉',\r\n        '𬨎',\r\n    ],\r\n    xū: [\r\n        '偦',\r\n        '墟',\r\n        '媭',\r\n        '嬃',\r\n        '楈',\r\n        '欨',\r\n        '歔',\r\n        '燸',\r\n        '疞',\r\n        '盱',\r\n        '綇',\r\n        '縃',\r\n        '繻',\r\n        '胥',\r\n        '蕦',\r\n        '虗',\r\n        '虚',\r\n        '虛',\r\n        '蝑',\r\n        '裇',\r\n        '訏',\r\n        '許',\r\n        '諝',\r\n        '譃',\r\n        '谞',\r\n        '鑐',\r\n        '需',\r\n        '須',\r\n        '须',\r\n        '顼',\r\n        '驉',\r\n        '鬚',\r\n        '魆',\r\n        '魖',\r\n        '𬣙',\r\n        '𦈡',\r\n    ],\r\n    zhā: [\r\n        '偧',\r\n        '哳',\r\n        '抯',\r\n        '挓',\r\n        '揸',\r\n        '摣',\r\n        '樝',\r\n        '渣',\r\n        '皶',\r\n        '觰',\r\n        '譇',\r\n        '齄',\r\n        '齇',\r\n    ],\r\n    cī: ['偨', '疵', '蠀', '趀', '骴', '髊', '齹'],\r\n    bī: ['偪', '屄', '楅', '毴', '豍', '逼', '鰏', '鲾', '鵖'],\r\n    xún: [\r\n        '偱',\r\n        '噚',\r\n        '寻',\r\n        '尋',\r\n        '峋',\r\n        '巡',\r\n        '廵',\r\n        '循',\r\n        '恂',\r\n        '揗',\r\n        '攳',\r\n        '旬',\r\n        '杊',\r\n        '栒',\r\n        '桪',\r\n        '樳',\r\n        '洵',\r\n        '浔',\r\n        '潯',\r\n        '燅',\r\n        '燖',\r\n        '珣',\r\n        '璕',\r\n        '畃',\r\n        '紃',\r\n        '荀',\r\n        '蟳',\r\n        '詢',\r\n        '询',\r\n        '鄩',\r\n        '鱏',\r\n        '鱘',\r\n        '鲟',\r\n        '𬘓',\r\n        '𬩽',\r\n        '𬍤',\r\n        '𬊈',\r\n    ],\r\n    'cāi sī': ['偲'],\r\n    duān: ['偳', '媏', '端', '褍', '鍴'],\r\n    ǒu: ['偶', '吘', '嘔', '耦', '腢', '蕅', '藕', '𬉼', '𠙶'],\r\n    tōu: ['偷', '偸', '鍮'],\r\n    'zán zá zǎ': ['偺'],\r\n    'lǚ lóu': ['偻', '僂'],\r\n    fèn: [\r\n        '偾',\r\n        '僨',\r\n        '奋',\r\n        '奮',\r\n        '弅',\r\n        '忿',\r\n        '愤',\r\n        '憤',\r\n        '瀵',\r\n        '瞓',\r\n        '秎',\r\n        '粪',\r\n        '糞',\r\n        '膹',\r\n        '鱝',\r\n        '鲼',\r\n    ],\r\n    'kuǐ guī': ['傀'],\r\n    sǒu: ['傁', '叜', '叟', '嗾', '櫢', '瞍', '薮', '藪'],\r\n    'zhì sī tí': ['傂'],\r\n    sù: [\r\n        '傃',\r\n        '僳',\r\n        '嗉',\r\n        '塐',\r\n        '塑',\r\n        '夙',\r\n        '嫊',\r\n        '愫',\r\n        '憟',\r\n        '榡',\r\n        '樎',\r\n        '樕',\r\n        '殐',\r\n        '泝',\r\n        '涑',\r\n        '溯',\r\n        '溸',\r\n        '潚',\r\n        '潥',\r\n        '玊',\r\n        '珟',\r\n        '璛',\r\n        '簌',\r\n        '粛',\r\n        '粟',\r\n        '素',\r\n        '縤',\r\n        '肃',\r\n        '肅',\r\n        '膆',\r\n        '蔌',\r\n        '藗',\r\n        '觫',\r\n        '訴',\r\n        '謖',\r\n        '诉',\r\n        '谡',\r\n        '趚',\r\n        '蹜',\r\n        '速',\r\n        '遡',\r\n        '遬',\r\n        '鋉',\r\n        '餗',\r\n        '驌',\r\n        '骕',\r\n        '鱐',\r\n        '鷫',\r\n        '鹔',\r\n        '𫗧',\r\n    ],\r\n    xiā: ['傄', '煆', '瞎', '虲', '谺', '颬', '鰕'],\r\n    'yuàn yuán': ['傆', '媛'],\r\n    rǒng: ['傇', '冗', '宂', '氄', '軵'],\r\n    nù: ['傉', '怒'],\r\n    yùn: [\r\n        '傊',\r\n        '孕',\r\n        '恽',\r\n        '惲',\r\n        '愠',\r\n        '慍',\r\n        '枟',\r\n        '腪',\r\n        '蕴',\r\n        '薀',\r\n        '藴',\r\n        '蘊',\r\n        '褞',\r\n        '貟',\r\n        '运',\r\n        '運',\r\n        '郓',\r\n        '鄆',\r\n        '酝',\r\n        '醖',\r\n        '醞',\r\n        '韗',\r\n        '韞',\r\n        '韵',\r\n        '韻',\r\n        '餫',\r\n    ],\r\n    'gòu jiǎng': ['傋'],\r\n    mà: ['傌', '嘜', '榪', '睰', '祃', '禡', '罵', '閁', '駡', '骂', '鬕'],\r\n    bàng: [\r\n        '傍',\r\n        '塝',\r\n        '棒',\r\n        '玤',\r\n        '稖',\r\n        '艕',\r\n        '蒡',\r\n        '蜯',\r\n        '謗',\r\n        '谤',\r\n        '鎊',\r\n        '镑',\r\n    ],\r\n    diān: [\r\n        '傎',\r\n        '厧',\r\n        '嵮',\r\n        '巅',\r\n        '巓',\r\n        '巔',\r\n        '掂',\r\n        '攧',\r\n        '敁',\r\n        '槇',\r\n        '滇',\r\n        '癫',\r\n        '癲',\r\n        '蹎',\r\n        '顚',\r\n        '顛',\r\n        '颠',\r\n        '齻',\r\n    ],\r\n    táng: [\r\n        '傏',\r\n        '唐',\r\n        '啺',\r\n        '坣',\r\n        '堂',\r\n        '塘',\r\n        '搪',\r\n        '棠',\r\n        '榶',\r\n        '溏',\r\n        '漟',\r\n        '煻',\r\n        '瑭',\r\n        '磄',\r\n        '禟',\r\n        '篖',\r\n        '糃',\r\n        '糖',\r\n        '糛',\r\n        '膅',\r\n        '膛',\r\n        '蓎',\r\n        '螗',\r\n        '螳',\r\n        '赯',\r\n        '踼',\r\n        '鄌',\r\n        '醣',\r\n        '鎕',\r\n        '隚',\r\n        '餹',\r\n        '饄',\r\n        '鶶',\r\n        '䣘',\r\n    ],\r\n    hào: [\r\n        '傐',\r\n        '哠',\r\n        '恏',\r\n        '昊',\r\n        '昦',\r\n        '晧',\r\n        '暠',\r\n        '暤',\r\n        '暭',\r\n        '曍',\r\n        '浩',\r\n        '淏',\r\n        '澔',\r\n        '灏',\r\n        '灝',\r\n        '皓',\r\n        '皜',\r\n        '皞',\r\n        '皡',\r\n        '皥',\r\n        '耗',\r\n        '聕',\r\n        '薃',\r\n        '號',\r\n        '鄗',\r\n        '顥',\r\n        '颢',\r\n        '鰝',\r\n    ],\r\n    'xī xì': ['傒'],\r\n    shān: [\r\n        '傓',\r\n        '删',\r\n        '刪',\r\n        '剼',\r\n        '圸',\r\n        '山',\r\n        '挻',\r\n        '搧',\r\n        '柵',\r\n        '檆',\r\n        '潸',\r\n        '澘',\r\n        '煽',\r\n        '狦',\r\n        '珊',\r\n        '笘',\r\n        '縿',\r\n        '羴',\r\n        '羶',\r\n        '脠',\r\n        '舢',\r\n        '芟',\r\n        '衫',\r\n        '跚',\r\n        '軕',\r\n        '邖',\r\n        '閊',\r\n        '鯅',\r\n    ],\r\n    'qiàn jiān': ['傔'],\r\n    'què jué': ['傕', '埆'],\r\n    'cāng chen': ['傖'],\r\n    róng: [\r\n        '傛',\r\n        '媶',\r\n        '嫆',\r\n        '嬫',\r\n        '容',\r\n        '峵',\r\n        '嵘',\r\n        '嶸',\r\n        '戎',\r\n        '搈',\r\n        '曧',\r\n        '栄',\r\n        '榕',\r\n        '榮',\r\n        '榵',\r\n        '毧',\r\n        '溶',\r\n        '瀜',\r\n        '烿',\r\n        '熔',\r\n        '狨',\r\n        '瑢',\r\n        '穁',\r\n        '絨',\r\n        '绒',\r\n        '羢',\r\n        '肜',\r\n        '茙',\r\n        '茸',\r\n        '荣',\r\n        '蓉',\r\n        '蝾',\r\n        '融',\r\n        '螎',\r\n        '蠑',\r\n        '褣',\r\n        '鎔',\r\n        '镕',\r\n        '駥',\r\n    ],\r\n    'tà tàn': ['傝'],\r\n    suō: [\r\n        '傞',\r\n        '唆',\r\n        '嗍',\r\n        '嗦',\r\n        '娑',\r\n        '摍',\r\n        '桫',\r\n        '梭',\r\n        '睃',\r\n        '簑',\r\n        '簔',\r\n        '羧',\r\n        '莏',\r\n        '蓑',\r\n        '趖',\r\n        '鮻',\r\n    ],\r\n    dǎi: ['傣', '歹'],\r\n    zài: ['傤', '儎', '再', '在', '扗', '洅', '載', '酨'],\r\n    gǔ: [\r\n        '傦',\r\n        '古',\r\n        '啒',\r\n        '尳',\r\n        '愲',\r\n        '榖',\r\n        '榾',\r\n        '汩',\r\n        '淈',\r\n        '濲',\r\n        '瀔',\r\n        '牯',\r\n        '皷',\r\n        '皼',\r\n        '盬',\r\n        '瞽',\r\n        '穀',\r\n        '罟',\r\n        '羖',\r\n        '股',\r\n        '脵',\r\n        '臌',\r\n        '薣',\r\n        '蛊',\r\n        '蠱',\r\n        '詁',\r\n        '诂',\r\n        '轂',\r\n        '逧',\r\n        '鈷',\r\n        '钴',\r\n        '餶',\r\n        '馉',\r\n        '鼓',\r\n        '鼔',\r\n        '𦙶',\r\n    ],\r\n    bīn: [\r\n        '傧',\r\n        '宾',\r\n        '彬',\r\n        '斌',\r\n        '椕',\r\n        '滨',\r\n        '濒',\r\n        '濱',\r\n        '濵',\r\n        '瀕',\r\n        '繽',\r\n        '缤',\r\n        '虨',\r\n        '豩',\r\n        '豳',\r\n        '賓',\r\n        '賔',\r\n        '邠',\r\n        '鑌',\r\n        '镔',\r\n        '霦',\r\n        '顮',\r\n    ],\r\n    chǔ: [\r\n        '储',\r\n        '儲',\r\n        '杵',\r\n        '椘',\r\n        '楚',\r\n        '楮',\r\n        '檚',\r\n        '濋',\r\n        '璴',\r\n        '础',\r\n        '礎',\r\n        '禇',\r\n        '處',\r\n        '齭',\r\n        '齼',\r\n        '𬺓',\r\n    ],\r\n    nuó: ['傩', '儺', '挪', '梛', '橠'],\r\n    'cān càn': ['傪'],\r\n    lěi: [\r\n        '傫',\r\n        '儡',\r\n        '厽',\r\n        '垒',\r\n        '塁',\r\n        '壘',\r\n        '壨',\r\n        '櫐',\r\n        '灅',\r\n        '癗',\r\n        '矋',\r\n        '磊',\r\n        '礨',\r\n        '耒',\r\n        '蕌',\r\n        '蕾',\r\n        '藟',\r\n        '蘽',\r\n        '蠝',\r\n        '誄',\r\n        '讄',\r\n        '诔',\r\n        '鑸',\r\n        '鸓',\r\n    ],\r\n    cuī: ['催', '凗', '墔', '崔', '嵟', '慛', '摧', '榱', '獕', '磪', '鏙'],\r\n    yōng: [\r\n        '傭',\r\n        '嗈',\r\n        '墉',\r\n        '壅',\r\n        '嫞',\r\n        '庸',\r\n        '廱',\r\n        '慵',\r\n        '拥',\r\n        '擁',\r\n        '滽',\r\n        '灉',\r\n        '牅',\r\n        '痈',\r\n        '癕',\r\n        '癰',\r\n        '臃',\r\n        '邕',\r\n        '郺',\r\n        '鄘',\r\n        '鏞',\r\n        '镛',\r\n        '雍',\r\n        '雝',\r\n        '饔',\r\n        '鱅',\r\n        '鳙',\r\n        '鷛',\r\n    ],\r\n    'zāo cáo': ['傮'],\r\n    sǒng: ['傱', '嵷', '怂', '悚', '愯', '慫', '竦', '耸', '聳', '駷', '㧐'],\r\n    ào: [\r\n        '傲',\r\n        '坳',\r\n        '垇',\r\n        '墺',\r\n        '奡',\r\n        '嫯',\r\n        '岙',\r\n        '岰',\r\n        '嶴',\r\n        '懊',\r\n        '擙',\r\n        '澳',\r\n        '鏊',\r\n        '驁',\r\n        '骜',\r\n    ],\r\n    'qī còu': ['傶'],\r\n    chuǎng: ['傸', '磢', '闖', '闯'],\r\n    shǎ: ['傻', '儍'],\r\n    hàn: [\r\n        '傼',\r\n        '垾',\r\n        '悍',\r\n        '憾',\r\n        '扞',\r\n        '捍',\r\n        '撖',\r\n        '撼',\r\n        '旱',\r\n        '晘',\r\n        '暵',\r\n        '汉',\r\n        '涆',\r\n        '漢',\r\n        '瀚',\r\n        '焊',\r\n        '猂',\r\n        '皔',\r\n        '睅',\r\n        '翰',\r\n        '莟',\r\n        '菡',\r\n        '蛿',\r\n        '蜭',\r\n        '螒',\r\n        '譀',\r\n        '輚',\r\n        '釬',\r\n        '銲',\r\n        '鋎',\r\n        '雗',\r\n        '頷',\r\n        '顄',\r\n        '颔',\r\n        '駻',\r\n        '鶾',\r\n    ],\r\n    zhāng: [\r\n        '傽',\r\n        '嫜',\r\n        '张',\r\n        '張',\r\n        '彰',\r\n        '慞',\r\n        '暲',\r\n        '樟',\r\n        '漳',\r\n        '獐',\r\n        '璋',\r\n        '章',\r\n        '粻',\r\n        '蔁',\r\n        '蟑',\r\n        '遧',\r\n        '鄣',\r\n        '鏱',\r\n        '餦',\r\n        '騿',\r\n        '鱆',\r\n        '麞',\r\n    ],\r\n    'yān yàn': ['傿', '墕', '嬮'],\r\n    'piào biāo': ['僄', '骠'],\r\n    liàn: [\r\n        '僆',\r\n        '堜',\r\n        '媡',\r\n        '恋',\r\n        '戀',\r\n        '楝',\r\n        '殓',\r\n        '殮',\r\n        '湅',\r\n        '潋',\r\n        '澰',\r\n        '瀲',\r\n        '炼',\r\n        '煉',\r\n        '瑓',\r\n        '練',\r\n        '纞',\r\n        '练',\r\n        '萰',\r\n        '錬',\r\n        '鍊',\r\n        '鏈',\r\n        '链',\r\n        '鰊',\r\n        '𬶠',\r\n    ],\r\n    màn: [\r\n        '㵘',\r\n        '僈',\r\n        '墁',\r\n        '幔',\r\n        '慢',\r\n        '曼',\r\n        '漫',\r\n        '澷',\r\n        '熳',\r\n        '獌',\r\n        '縵',\r\n        '缦',\r\n        '蔄',\r\n        '蘰',\r\n        '鄤',\r\n        '鏝',\r\n        '镘',\r\n        '𬜬',\r\n    ],\r\n    'tàn tǎn': ['僋'],\r\n    yíng: [\r\n        '僌',\r\n        '営',\r\n        '塋',\r\n        '嬴',\r\n        '攍',\r\n        '楹',\r\n        '櫿',\r\n        '溁',\r\n        '溋',\r\n        '滢',\r\n        '潆',\r\n        '濙',\r\n        '濚',\r\n        '濴',\r\n        '瀅',\r\n        '瀛',\r\n        '瀠',\r\n        '瀯',\r\n        '灐',\r\n        '灜',\r\n        '熒',\r\n        '營',\r\n        '瑩',\r\n        '盁',\r\n        '盈',\r\n        '禜',\r\n        '籝',\r\n        '籯',\r\n        '縈',\r\n        '茔',\r\n        '荧',\r\n        '莹',\r\n        '萤',\r\n        '营',\r\n        '萦',\r\n        '萾',\r\n        '蓥',\r\n        '藀',\r\n        '蛍',\r\n        '蝇',\r\n        '蝿',\r\n        '螢',\r\n        '蠅',\r\n        '謍',\r\n        '贏',\r\n        '赢',\r\n        '迎',\r\n        '鎣',\r\n    ],\r\n    dòng: [\r\n        '働',\r\n        '冻',\r\n        '凍',\r\n        '动',\r\n        '動',\r\n        '姛',\r\n        '戙',\r\n        '挏',\r\n        '栋',\r\n        '棟',\r\n        '湩',\r\n        '硐',\r\n        '胨',\r\n        '胴',\r\n        '腖',\r\n        '迵',\r\n        '霘',\r\n        '駧',\r\n    ],\r\n    zhuàn: [\r\n        '僎',\r\n        '啭',\r\n        '囀',\r\n        '堟',\r\n        '撰',\r\n        '灷',\r\n        '瑑',\r\n        '篆',\r\n        '腞',\r\n        '蒃',\r\n        '襈',\r\n        '譔',\r\n        '饌',\r\n        '馔',\r\n    ],\r\n    xiàng: [\r\n        '像',\r\n        '勨',\r\n        '向',\r\n        '嚮',\r\n        '姠',\r\n        '嶑',\r\n        '曏',\r\n        '橡',\r\n        '珦',\r\n        '缿',\r\n        '蟓',\r\n        '衖',\r\n        '襐',\r\n        '象',\r\n        '鐌',\r\n        '項',\r\n        '项',\r\n        '鱌',\r\n    ],\r\n    shàn: [\r\n        '僐',\r\n        '善',\r\n        '墠',\r\n        '墡',\r\n        '嬗',\r\n        '擅',\r\n        '敾',\r\n        '椫',\r\n        '樿',\r\n        '歚',\r\n        '汕',\r\n        '灗',\r\n        '疝',\r\n        '磰',\r\n        '繕',\r\n        '缮',\r\n        '膳',\r\n        '蟮',\r\n        '蟺',\r\n        '訕',\r\n        '謆',\r\n        '譱',\r\n        '讪',\r\n        '贍',\r\n        '赡',\r\n        '赸',\r\n        '鄯',\r\n        '鐥',\r\n        '饍',\r\n        '騸',\r\n        '骟',\r\n        '鱓',\r\n        '鱔',\r\n        '鳝',\r\n        '𫮃',\r\n    ],\r\n    'tuí tuǐ': ['僓'],\r\n    zǔn: ['僔', '噂', '撙', '譐'],\r\n    pú: [\r\n        '僕',\r\n        '匍',\r\n        '圤',\r\n        '墣',\r\n        '濮',\r\n        '獛',\r\n        '璞',\r\n        '瞨',\r\n        '穙',\r\n        '莆',\r\n        '菐',\r\n        '菩',\r\n        '葡',\r\n        '蒱',\r\n        '蒲',\r\n        '贌',\r\n        '酺',\r\n        '鏷',\r\n        '镤',\r\n    ],\r\n    láo: [\r\n        '僗',\r\n        '劳',\r\n        '労',\r\n        '勞',\r\n        '哰',\r\n        '崂',\r\n        '嶗',\r\n        '憥',\r\n        '朥',\r\n        '浶',\r\n        '牢',\r\n        '痨',\r\n        '癆',\r\n        '窂',\r\n        '簩',\r\n        '醪',\r\n        '鐒',\r\n        '铹',\r\n        '顟',\r\n        '髝',\r\n        '𫭼',\r\n    ],\r\n    chǎng: ['僘', '厰', '廠', '敞', '昶', '氅', '鋹', '𬬮'],\r\n    guāng: [\r\n        '僙',\r\n        '光',\r\n        '咣',\r\n        '垙',\r\n        '姯',\r\n        '洸',\r\n        '灮',\r\n        '炗',\r\n        '炚',\r\n        '炛',\r\n        '烡',\r\n        '珖',\r\n        '胱',\r\n        '茪',\r\n        '輄',\r\n        '銧',\r\n        '黆',\r\n        '𨐈',\r\n    ],\r\n    liáo: [\r\n        '僚',\r\n        '嘹',\r\n        '嫽',\r\n        '寥',\r\n        '寮',\r\n        '尞',\r\n        '屪',\r\n        '嵺',\r\n        '嶚',\r\n        '嶛',\r\n        '廫',\r\n        '憀',\r\n        '敹',\r\n        '暸',\r\n        '橑',\r\n        '獠',\r\n        '璙',\r\n        '疗',\r\n        '療',\r\n        '竂',\r\n        '簝',\r\n        '繚',\r\n        '缭',\r\n        '聊',\r\n        '膋',\r\n        '膫',\r\n        '藔',\r\n        '蟟',\r\n        '豂',\r\n        '賿',\r\n        '蹘',\r\n        '辽',\r\n        '遼',\r\n        '飉',\r\n        '髎',\r\n        '鷯',\r\n        '鹩',\r\n    ],\r\n    dèng: ['僜', '凳', '墱', '嶝', '櫈', '瞪', '磴', '覴', '邓', '鄧', '隥'],\r\n    'chán zhàn zhuàn': ['僝'],\r\n    bō: [\r\n        '僠',\r\n        '嶓',\r\n        '拨',\r\n        '撥',\r\n        '播',\r\n        '波',\r\n        '溊',\r\n        '玻',\r\n        '癶',\r\n        '盋',\r\n        '砵',\r\n        '碆',\r\n        '礡',\r\n        '缽',\r\n        '菠',\r\n        '袰',\r\n        '蹳',\r\n        '鉢',\r\n        '钵',\r\n        '餑',\r\n        '饽',\r\n        '驋',\r\n        '鱍',\r\n        '𬭛',\r\n    ],\r\n    huì: [\r\n        '僡',\r\n        '匯',\r\n        '卉',\r\n        '喙',\r\n        '嘒',\r\n        '嚖',\r\n        '圚',\r\n        '嬒',\r\n        '寭',\r\n        '屶',\r\n        '屷',\r\n        '彗',\r\n        '彙',\r\n        '彚',\r\n        '徻',\r\n        '恚',\r\n        '恵',\r\n        '惠',\r\n        '慧',\r\n        '憓',\r\n        '懳',\r\n        '晦',\r\n        '暳',\r\n        '槥',\r\n        '橞',\r\n        '檅',\r\n        '櫘',\r\n        '汇',\r\n        '泋',\r\n        '滙',\r\n        '潓',\r\n        '烩',\r\n        '燴',\r\n        '獩',\r\n        '璤',\r\n        '瞺',\r\n        '硊',\r\n        '秽',\r\n        '穢',\r\n        '篲',\r\n        '絵',\r\n        '繪',\r\n        '绘',\r\n        '翙',\r\n        '翽',\r\n        '荟',\r\n        '蔧',\r\n        '蕙',\r\n        '薈',\r\n        '薉',\r\n        '蟪',\r\n        '詯',\r\n        '誨',\r\n        '諱',\r\n        '譓',\r\n        '譿',\r\n        '讳',\r\n        '诲',\r\n        '賄',\r\n        '贿',\r\n        '鐬',\r\n        '闠',\r\n        '阓',\r\n        '靧',\r\n        '頮',\r\n        '顪',\r\n        '颒',\r\n        '餯',\r\n        '𬤝',\r\n        '𬭬',\r\n    ],\r\n    chuǎn: ['僢', '喘', '舛', '荈', '踳'],\r\n    'tiě jiàn': ['僣'],\r\n    sēng: ['僧', '鬙'],\r\n    xiàn: [\r\n        '僩',\r\n        '僴',\r\n        '哯',\r\n        '垷',\r\n        '塪',\r\n        '姭',\r\n        '娊',\r\n        '宪',\r\n        '岘',\r\n        '峴',\r\n        '憲',\r\n        '撊',\r\n        '晛',\r\n        '橌',\r\n        '橺',\r\n        '涀',\r\n        '瀗',\r\n        '献',\r\n        '獻',\r\n        '现',\r\n        '現',\r\n        '県',\r\n        '睍',\r\n        '粯',\r\n        '糮',\r\n        '絤',\r\n        '綫',\r\n        '線',\r\n        '线',\r\n        '缐',\r\n        '羡',\r\n        '羨',\r\n        '腺',\r\n        '臔',\r\n        '臽',\r\n        '苋',\r\n        '莧',\r\n        '誢',\r\n        '豏',\r\n        '鋧',\r\n        '錎',\r\n        '限',\r\n        '陥',\r\n        '陷',\r\n        '霰',\r\n        '餡',\r\n        '馅',\r\n        '麲',\r\n        '鼸',\r\n        '𬀪',\r\n        '𪾢',\r\n    ],\r\n    'yù jú': ['僪'],\r\n    'è wū': ['僫'],\r\n    'tóng zhuàng': ['僮'],\r\n    lǐn: [\r\n        '僯',\r\n        '凛',\r\n        '凜',\r\n        '廩',\r\n        '廪',\r\n        '懍',\r\n        '懔',\r\n        '撛',\r\n        '檁',\r\n        '檩',\r\n        '澟',\r\n        '癛',\r\n        '癝',\r\n    ],\r\n    gù: [\r\n        '僱',\r\n        '凅',\r\n        '固',\r\n        '堌',\r\n        '崓',\r\n        '崮',\r\n        '故',\r\n        '梏',\r\n        '棝',\r\n        '牿',\r\n        '痼',\r\n        '祻',\r\n        '錮',\r\n        '锢',\r\n        '雇',\r\n        '顧',\r\n        '顾',\r\n        '鯝',\r\n        '鲴',\r\n    ],\r\n    jiāng: [\r\n        '僵',\r\n        '壃',\r\n        '姜',\r\n        '橿',\r\n        '殭',\r\n        '江',\r\n        '畕',\r\n        '疅',\r\n        '礓',\r\n        '繮',\r\n        '缰',\r\n        '翞',\r\n        '茳',\r\n        '葁',\r\n        '薑',\r\n        '螀',\r\n        '螿',\r\n        '豇',\r\n        '韁',\r\n        '鱂',\r\n        '鳉',\r\n    ],\r\n    mǐn: [\r\n        '僶',\r\n        '冺',\r\n        '刡',\r\n        '勄',\r\n        '悯',\r\n        '惽',\r\n        '愍',\r\n        '慜',\r\n        '憫',\r\n        '抿',\r\n        '敃',\r\n        '敏',\r\n        '敯',\r\n        '泯',\r\n        '潣',\r\n        '皿',\r\n        '笢',\r\n        '笽',\r\n        '簢',\r\n        '蠠',\r\n        '閔',\r\n        '閩',\r\n        '闵',\r\n        '闽',\r\n        '鰵',\r\n        '鳘',\r\n        '黽',\r\n    ],\r\n    jìn: [\r\n        '僸',\r\n        '凚',\r\n        '噤',\r\n        '嚍',\r\n        '墐',\r\n        '壗',\r\n        '妗',\r\n        '嬧',\r\n        '搢',\r\n        '晉',\r\n        '晋',\r\n        '枃',\r\n        '殣',\r\n        '浕',\r\n        '浸',\r\n        '溍',\r\n        '濅',\r\n        '濜',\r\n        '烬',\r\n        '煡',\r\n        '燼',\r\n        '琎',\r\n        '瑨',\r\n        '璶',\r\n        '盡',\r\n        '祲',\r\n        '縉',\r\n        '缙',\r\n        '荩',\r\n        '藎',\r\n        '覲',\r\n        '觐',\r\n        '賮',\r\n        '贐',\r\n        '赆',\r\n        '近',\r\n        '进',\r\n        '進',\r\n        '靳',\r\n        '齽',\r\n    ],\r\n    'jià jie': ['價'],\r\n    qiào: [\r\n        '僺',\r\n        '峭',\r\n        '帩',\r\n        '撬',\r\n        '殻',\r\n        '窍',\r\n        '竅',\r\n        '誚',\r\n        '诮',\r\n        '躈',\r\n        '陗',\r\n        '鞩',\r\n        '韒',\r\n        '髚',\r\n    ],\r\n    pì: ['僻', '媲', '嫓', '屁', '澼', '甓', '疈', '譬', '闢', '鷿', '鸊', '䴙'],\r\n    sài: ['僿', '簺', '賽', '赛'],\r\n    'chán tǎn shàn': ['儃'],\r\n    'dāng dàng': ['儅', '当', '闣'],\r\n    xuān: [\r\n        '儇',\r\n        '喧',\r\n        '塇',\r\n        '媗',\r\n        '宣',\r\n        '愃',\r\n        '愋',\r\n        '揎',\r\n        '昍',\r\n        '暄',\r\n        '煊',\r\n        '煖',\r\n        '瑄',\r\n        '睻',\r\n        '矎',\r\n        '禤',\r\n        '箮',\r\n        '翧',\r\n        '翾',\r\n        '萱',\r\n        '萲',\r\n        '蓒',\r\n        '蕿',\r\n        '藼',\r\n        '蘐',\r\n        '蝖',\r\n        '蠉',\r\n        '諠',\r\n        '諼',\r\n        '譞',\r\n        '谖',\r\n        '軒',\r\n        '轩',\r\n        '鍹',\r\n        '駽',\r\n        '鰚',\r\n        '𫓶',\r\n        '𫍽',\r\n    ],\r\n    'dān dàn': ['儋', '擔', '瘅'],\r\n    càn: ['儏', '澯', '灿', '燦', '璨', '粲', '薒', '謲'],\r\n    'bīn bìn': ['儐'],\r\n    'án àn': ['儑'],\r\n    tái: [\r\n        '儓',\r\n        '坮',\r\n        '嬯',\r\n        '抬',\r\n        '擡',\r\n        '檯',\r\n        '炱',\r\n        '炲',\r\n        '籉',\r\n        '臺',\r\n        '薹',\r\n        '跆',\r\n        '邰',\r\n        '颱',\r\n        '鮐',\r\n        '鲐',\r\n    ],\r\n    lán: [\r\n        '儖',\r\n        '兰',\r\n        '囒',\r\n        '婪',\r\n        '岚',\r\n        '嵐',\r\n        '幱',\r\n        '拦',\r\n        '攔',\r\n        '斓',\r\n        '斕',\r\n        '栏',\r\n        '欄',\r\n        '欗',\r\n        '澜',\r\n        '瀾',\r\n        '灆',\r\n        '灡',\r\n        '燣',\r\n        '燷',\r\n        '璼',\r\n        '篮',\r\n        '籃',\r\n        '籣',\r\n        '繿',\r\n        '葻',\r\n        '蓝',\r\n        '藍',\r\n        '蘫',\r\n        '蘭',\r\n        '褴',\r\n        '襕',\r\n        '襤',\r\n        '襴',\r\n        '襽',\r\n        '譋',\r\n        '讕',\r\n        '谰',\r\n        '躝',\r\n        '鑭',\r\n        '镧',\r\n        '闌',\r\n        '阑',\r\n        '韊',\r\n        '𬒗',\r\n    ],\r\n    'nǐ yì ài yí': ['儗'],\r\n    méng: [\r\n        '儚',\r\n        '幪',\r\n        '曚',\r\n        '朦',\r\n        '橗',\r\n        '檬',\r\n        '氋',\r\n        '溕',\r\n        '濛',\r\n        '甍',\r\n        '甿',\r\n        '盟',\r\n        '礞',\r\n        '艨',\r\n        '莔',\r\n        '萌',\r\n        '蕄',\r\n        '虻',\r\n        '蝱',\r\n        '鄳',\r\n        '鄸',\r\n        '霿',\r\n        '靀',\r\n        '顭',\r\n        '饛',\r\n        '鯍',\r\n        '鸏',\r\n        '鹲',\r\n        '𫑡',\r\n        '㠓',\r\n    ],\r\n    níng: [\r\n        '儜',\r\n        '凝',\r\n        '咛',\r\n        '嚀',\r\n        '嬣',\r\n        '柠',\r\n        '橣',\r\n        '檸',\r\n        '狞',\r\n        '獰',\r\n        '聍',\r\n        '聹',\r\n        '薴',\r\n        '鑏',\r\n        '鬡',\r\n        '鸋',\r\n    ],\r\n    qióng: [\r\n        '儝',\r\n        '卭',\r\n        '宆',\r\n        '惸',\r\n        '憌',\r\n        '桏',\r\n        '橩',\r\n        '焪',\r\n        '焭',\r\n        '煢',\r\n        '熍',\r\n        '琼',\r\n        '瓊',\r\n        '睘',\r\n        '穷',\r\n        '穹',\r\n        '窮',\r\n        '竆',\r\n        '笻',\r\n        '筇',\r\n        '舼',\r\n        '茕',\r\n        '藑',\r\n        '藭',\r\n        '蛩',\r\n        '蛬',\r\n        '赹',\r\n        '跫',\r\n        '邛',\r\n        '銎',\r\n        '䓖',\r\n    ],\r\n    liè: [\r\n        '儠',\r\n        '冽',\r\n        '列',\r\n        '劣',\r\n        '劽',\r\n        '埒',\r\n        '埓',\r\n        '姴',\r\n        '峛',\r\n        '巤',\r\n        '挒',\r\n        '捩',\r\n        '栵',\r\n        '洌',\r\n        '浖',\r\n        '烈',\r\n        '烮',\r\n        '煭',\r\n        '犣',\r\n        '猎',\r\n        '猟',\r\n        '獵',\r\n        '聗',\r\n        '脟',\r\n        '茢',\r\n        '蛚',\r\n        '趔',\r\n        '躐',\r\n        '迾',\r\n        '颲',\r\n        '鬛',\r\n        '鬣',\r\n        '鮤',\r\n        '鱲',\r\n        '鴷',\r\n        '䴕',\r\n        '𫚭',\r\n    ],\r\n    kuǎng: ['儣', '夼', '懭'],\r\n    bào: [\r\n        '儤',\r\n        '勽',\r\n        '報',\r\n        '忁',\r\n        '报',\r\n        '抱',\r\n        '曓',\r\n        '爆',\r\n        '犦',\r\n        '菢',\r\n        '虣',\r\n        '蚫',\r\n        '豹',\r\n        '鉋',\r\n        '鑤',\r\n        '铇',\r\n        '骲',\r\n        '髱',\r\n        '鮑',\r\n        '鲍',\r\n    ],\r\n    biāo: [\r\n        '儦',\r\n        '墂',\r\n        '幖',\r\n        '彪',\r\n        '标',\r\n        '標',\r\n        '滮',\r\n        '瀌',\r\n        '熛',\r\n        '爂',\r\n        '猋',\r\n        '瘭',\r\n        '磦',\r\n        '膘',\r\n        '臕',\r\n        '謤',\r\n        '贆',\r\n        '鏢',\r\n        '鑣',\r\n        '镖',\r\n        '镳',\r\n        '颮',\r\n        '颷',\r\n        '飆',\r\n        '飇',\r\n        '飈',\r\n        '飊',\r\n        '飑',\r\n        '飙',\r\n        '飚',\r\n        '驫',\r\n        '骉',\r\n        '髟',\r\n    ],\r\n    zǎn: ['儧', '儹', '噆', '攅', '昝', '趱', '趲'],\r\n    háo: [\r\n        '儫',\r\n        '嗥',\r\n        '嘷',\r\n        '噑',\r\n        '嚎',\r\n        '壕',\r\n        '椃',\r\n        '毜',\r\n        '毫',\r\n        '濠',\r\n        '獆',\r\n        '獔',\r\n        '竓',\r\n        '籇',\r\n        '蚝',\r\n        '蠔',\r\n        '譹',\r\n        '豪',\r\n    ],\r\n    qìng: ['儬', '凊', '庆', '慶', '櫦', '濪', '碃', '磬', '罄', '靘'],\r\n    chèn: [\r\n        '儭',\r\n        '嚫',\r\n        '榇',\r\n        '櫬',\r\n        '疢',\r\n        '衬',\r\n        '襯',\r\n        '讖',\r\n        '谶',\r\n        '趁',\r\n        '趂',\r\n        '齓',\r\n        '齔',\r\n        '龀',\r\n    ],\r\n    téng: [\r\n        '儯',\r\n        '幐',\r\n        '滕',\r\n        '漛',\r\n        '疼',\r\n        '籐',\r\n        '籘',\r\n        '縢',\r\n        '腾',\r\n        '藤',\r\n        '虅',\r\n        '螣',\r\n        '誊',\r\n        '謄',\r\n        '邆',\r\n        '駦',\r\n        '騰',\r\n        '驣',\r\n        '鰧',\r\n        '䲢',\r\n    ],\r\n    'lǒng lóng lòng': ['儱'],\r\n    'chán chàn': ['儳'],\r\n    'ráng xiāng': ['儴', '勷'],\r\n    'huì xié': ['儶'],\r\n    luó: [\r\n        '儸',\r\n        '攞',\r\n        '椤',\r\n        '欏',\r\n        '猡',\r\n        '玀',\r\n        '箩',\r\n        '籮',\r\n        '罗',\r\n        '羅',\r\n        '脶',\r\n        '腡',\r\n        '萝',\r\n        '蘿',\r\n        '螺',\r\n        '覼',\r\n        '逻',\r\n        '邏',\r\n        '鏍',\r\n        '鑼',\r\n        '锣',\r\n        '镙',\r\n        '饠',\r\n        '騾',\r\n        '驘',\r\n        '骡',\r\n        '鸁',\r\n    ],\r\n    léi: [\r\n        '儽',\r\n        '嫘',\r\n        '檑',\r\n        '欙',\r\n        '瓃',\r\n        '畾',\r\n        '縲',\r\n        '纍',\r\n        '纝',\r\n        '缧',\r\n        '罍',\r\n        '羸',\r\n        '蔂',\r\n        '蘲',\r\n        '虆',\r\n        '轠',\r\n        '鐳',\r\n        '鑘',\r\n        '镭',\r\n        '雷',\r\n        '靁',\r\n        '鱩',\r\n        '鼺',\r\n    ],\r\n    'nàng nāng': ['儾'],\r\n    'wù wū': ['兀'],\r\n    yǔn: [\r\n        '允',\r\n        '喗',\r\n        '夽',\r\n        '抎',\r\n        '殒',\r\n        '殞',\r\n        '狁',\r\n        '磒',\r\n        '荺',\r\n        '賱',\r\n        '鈗',\r\n        '阭',\r\n        '陨',\r\n        '隕',\r\n        '霣',\r\n        '馻',\r\n        '齫',\r\n        '齳',\r\n    ],\r\n    zān: ['兂', '橵', '簪', '簮', '糌', '鐕', '鐟', '鵤'],\r\n    yuán: [\r\n        '元',\r\n        '円',\r\n        '原',\r\n        '厡',\r\n        '厵',\r\n        '园',\r\n        '圆',\r\n        '圎',\r\n        '園',\r\n        '圓',\r\n        '垣',\r\n        '塬',\r\n        '媴',\r\n        '嫄',\r\n        '援',\r\n        '榞',\r\n        '榬',\r\n        '橼',\r\n        '櫞',\r\n        '沅',\r\n        '湲',\r\n        '源',\r\n        '溒',\r\n        '爰',\r\n        '猨',\r\n        '猿',\r\n        '笎',\r\n        '緣',\r\n        '縁',\r\n        '缘',\r\n        '羱',\r\n        '茒',\r\n        '薗',\r\n        '蝝',\r\n        '蝯',\r\n        '螈',\r\n        '袁',\r\n        '褤',\r\n        '謜',\r\n        '轅',\r\n        '辕',\r\n        '邍',\r\n        '邧',\r\n        '酛',\r\n        '鈨',\r\n        '鎱',\r\n        '騵',\r\n        '魭',\r\n        '鶢',\r\n        '鶰',\r\n        '黿',\r\n        '鼋',\r\n        '𫘪',\r\n    ],\r\n    xiōng: [\r\n        '兄',\r\n        '兇',\r\n        '凶',\r\n        '匂',\r\n        '匈',\r\n        '哅',\r\n        '忷',\r\n        '恟',\r\n        '汹',\r\n        '洶',\r\n        '胷',\r\n        '胸',\r\n        '芎',\r\n        '訩',\r\n        '詾',\r\n        '讻',\r\n    ],\r\n    chōng: [\r\n        '充',\r\n        '嘃',\r\n        '忡',\r\n        '憃',\r\n        '憧',\r\n        '摏',\r\n        '沖',\r\n        '浺',\r\n        '珫',\r\n        '罿',\r\n        '翀',\r\n        '舂',\r\n        '艟',\r\n        '茺',\r\n        '衝',\r\n        '蹖',\r\n        '㳘',\r\n    ],\r\n    zhào: [\r\n        '兆',\r\n        '垗',\r\n        '旐',\r\n        '曌',\r\n        '枛',\r\n        '櫂',\r\n        '照',\r\n        '燳',\r\n        '狣',\r\n        '瞾',\r\n        '笊',\r\n        '罀',\r\n        '罩',\r\n        '羄',\r\n        '肁',\r\n        '肇',\r\n        '肈',\r\n        '詔',\r\n        '诏',\r\n        '赵',\r\n        '趙',\r\n        '鮡',\r\n        '𬶐',\r\n    ],\r\n    'duì ruì yuè': ['兊', '兌', '兑'],\r\n    kè: [\r\n        '克',\r\n        '刻',\r\n        '勀',\r\n        '勊',\r\n        '堁',\r\n        '娔',\r\n        '客',\r\n        '恪',\r\n        '愙',\r\n        '氪',\r\n        '溘',\r\n        '碦',\r\n        '緙',\r\n        '缂',\r\n        '艐',\r\n        '衉',\r\n        '課',\r\n        '课',\r\n        '錁',\r\n        '锞',\r\n        '騍',\r\n        '骒',\r\n    ],\r\n    tù: ['兎', '兔', '堍', '迌', '鵵'],\r\n    dǎng: ['党', '攩', '欓', '譡', '讜', '谠', '黨', '𣗋'],\r\n    dōu: ['兜', '兠', '唗', '橷', '篼', '蔸'],\r\n    huǎng: [\r\n        '兤',\r\n        '奛',\r\n        '幌',\r\n        '怳',\r\n        '恍',\r\n        '晄',\r\n        '炾',\r\n        '熀',\r\n        '縨',\r\n        '詤',\r\n        '謊',\r\n        '谎',\r\n    ],\r\n    rù: ['入', '嗕', '媷', '扖', '杁', '洳', '溽', '縟', '缛', '蓐', '褥', '鳰'],\r\n    nèi: ['內', '氝', '氞', '錗'],\r\n    'yú shù': ['兪'],\r\n    'liù lù': ['六'],\r\n    han: ['兯', '爳'],\r\n    tiān: ['兲', '天', '婖', '添', '酟', '靔', '靝', '黇'],\r\n    'xīng xìng': ['兴'],\r\n    diǎn: [\r\n        '典',\r\n        '嚸',\r\n        '奌',\r\n        '婰',\r\n        '敟',\r\n        '椣',\r\n        '点',\r\n        '碘',\r\n        '蒧',\r\n        '蕇',\r\n        '踮',\r\n        '點',\r\n    ],\r\n    'zī cí': ['兹'],\r\n    jiān: [\r\n        '兼',\r\n        '冿',\r\n        '囏',\r\n        '坚',\r\n        '堅',\r\n        '奸',\r\n        '姦',\r\n        '姧',\r\n        '尖',\r\n        '幵',\r\n        '惤',\r\n        '戋',\r\n        '戔',\r\n        '搛',\r\n        '椾',\r\n        '樫',\r\n        '櫼',\r\n        '歼',\r\n        '殱',\r\n        '殲',\r\n        '湔',\r\n        '瀐',\r\n        '瀸',\r\n        '煎',\r\n        '熞',\r\n        '熸',\r\n        '牋',\r\n        '瑊',\r\n        '睷',\r\n        '礛',\r\n        '礷',\r\n        '笺',\r\n        '箋',\r\n        '緘',\r\n        '縑',\r\n        '缄',\r\n        '缣',\r\n        '肩',\r\n        '艰',\r\n        '艱',\r\n        '菅',\r\n        '菺',\r\n        '葌',\r\n        '蒹',\r\n        '蔪',\r\n        '蕑',\r\n        '蕳',\r\n        '虃',\r\n        '譼',\r\n        '豜',\r\n        '鑯',\r\n        '雃',\r\n        '鞯',\r\n        '韀',\r\n        '韉',\r\n        '餰',\r\n        '馢',\r\n        '鰔',\r\n        '鰜',\r\n        '鰹',\r\n        '鲣',\r\n        '鳒',\r\n        '鵑',\r\n        '鵳',\r\n        '鶼',\r\n        '鹣',\r\n        '麉',\r\n    ],\r\n    shòu: [\r\n        '兽',\r\n        '受',\r\n        '售',\r\n        '壽',\r\n        '夀',\r\n        '寿',\r\n        '授',\r\n        '狩',\r\n        '獣',\r\n        '獸',\r\n        '痩',\r\n        '瘦',\r\n        '綬',\r\n        '绶',\r\n        '膄',\r\n    ],\r\n    jì: [\r\n        '兾',\r\n        '冀',\r\n        '剂',\r\n        '剤',\r\n        '劑',\r\n        '勣',\r\n        '坖',\r\n        '垍',\r\n        '塈',\r\n        '妓',\r\n        '季',\r\n        '寂',\r\n        '寄',\r\n        '廭',\r\n        '彑',\r\n        '徛',\r\n        '忌',\r\n        '悸',\r\n        '惎',\r\n        '懻',\r\n        '技',\r\n        '旡',\r\n        '既',\r\n        '旣',\r\n        '暨',\r\n        '暩',\r\n        '曁',\r\n        '梞',\r\n        '檕',\r\n        '檵',\r\n        '洎',\r\n        '漃',\r\n        '漈',\r\n        '瀱',\r\n        '痵',\r\n        '癠',\r\n        '禝',\r\n        '稩',\r\n        '稷',\r\n        '穄',\r\n        '穊',\r\n        '穧',\r\n        '紀',\r\n        '継',\r\n        '績',\r\n        '繋',\r\n        '繼',\r\n        '继',\r\n        '绩',\r\n        '罽',\r\n        '臮',\r\n        '芰',\r\n        '茍',\r\n        '茤',\r\n        '葪',\r\n        '蓟',\r\n        '蔇',\r\n        '薊',\r\n        '蘎',\r\n        '蘮',\r\n        '蘻',\r\n        '裚',\r\n        '襀',\r\n        '覬',\r\n        '觊',\r\n        '計',\r\n        '記',\r\n        '誋',\r\n        '计',\r\n        '记',\r\n        '跡',\r\n        '跽',\r\n        '蹟',\r\n        '迹',\r\n        '际',\r\n        '際',\r\n        '霁',\r\n        '霽',\r\n        '驥',\r\n        '骥',\r\n        '髻',\r\n        '鬾',\r\n        '魝',\r\n        '魥',\r\n        '鯚',\r\n        '鯽',\r\n        '鰶',\r\n        '鰿',\r\n        '鱀',\r\n        '鱭',\r\n        '鲚',\r\n        '鲫',\r\n        '鵋',\r\n        '鷑',\r\n        '齌',\r\n        '𪟝',\r\n        '𬶨',\r\n        '𬶭',\r\n    ],\r\n    jiōng: ['冂', '冋', '坰', '埛', '扃', '蘏', '蘔', '駉', '駫', '𬳶'],\r\n    mào: [\r\n        '冃',\r\n        '冐',\r\n        '媢',\r\n        '帽',\r\n        '愗',\r\n        '懋',\r\n        '暓',\r\n        '柕',\r\n        '楙',\r\n        '毷',\r\n        '瑁',\r\n        '皃',\r\n        '眊',\r\n        '瞀',\r\n        '耄',\r\n        '茂',\r\n        '萺',\r\n        '蝐',\r\n        '袤',\r\n        '覒',\r\n        '貌',\r\n        '貿',\r\n        '贸',\r\n        '鄚',\r\n        '鄮',\r\n    ],\r\n    rǎn: ['冄', '冉', '姌', '媣', '染', '珃', '苒', '蒅', '䎃'],\r\n    'nèi nà': ['内'],\r\n    gāng: [\r\n        '冈',\r\n        '冮',\r\n        '刚',\r\n        '剛',\r\n        '堈',\r\n        '堽',\r\n        '岡',\r\n        '掆',\r\n        '摃',\r\n        '棡',\r\n        '牨',\r\n        '犅',\r\n        '疘',\r\n        '綱',\r\n        '纲',\r\n        '缸',\r\n        '罁',\r\n        '罡',\r\n        '肛',\r\n        '釭',\r\n        '鎠',\r\n        '㭎',\r\n    ],\r\n    cè: [\r\n        '冊',\r\n        '册',\r\n        '厕',\r\n        '厠',\r\n        '夨',\r\n        '廁',\r\n        '恻',\r\n        '惻',\r\n        '憡',\r\n        '敇',\r\n        '测',\r\n        '測',\r\n        '笧',\r\n        '策',\r\n        '筞',\r\n        '筴',\r\n        '箣',\r\n        '荝',\r\n        '萗',\r\n        '萴',\r\n        '蓛',\r\n    ],\r\n    guǎ: ['冎', '剐', '剮', '叧', '寡'],\r\n    'mào mò': ['冒'],\r\n    gòu: [\r\n        '冓',\r\n        '啂',\r\n        '坸',\r\n        '垢',\r\n        '够',\r\n        '夠',\r\n        '媾',\r\n        '彀',\r\n        '搆',\r\n        '撀',\r\n        '构',\r\n        '構',\r\n        '煹',\r\n        '覯',\r\n        '觏',\r\n        '訽',\r\n        '詬',\r\n        '诟',\r\n        '購',\r\n        '购',\r\n        '遘',\r\n        '雊',\r\n    ],\r\n    xǔ: ['冔', '喣', '暊', '栩', '珝', '盨', '糈', '詡', '諿', '诩', '鄦', '醑'],\r\n    mì: [\r\n        '冖',\r\n        '冪',\r\n        '嘧',\r\n        '塓',\r\n        '宻',\r\n        '密',\r\n        '峚',\r\n        '幂',\r\n        '幎',\r\n        '幦',\r\n        '怽',\r\n        '榓',\r\n        '樒',\r\n        '櫁',\r\n        '汨',\r\n        '淧',\r\n        '滵',\r\n        '漞',\r\n        '濗',\r\n        '熐',\r\n        '羃',\r\n        '蔤',\r\n        '蜜',\r\n        '覓',\r\n        '覔',\r\n        '覛',\r\n        '觅',\r\n        '謐',\r\n        '谧',\r\n        '鼏',\r\n    ],\r\n    'yóu yín': ['冘'],\r\n    xiě: ['写', '冩', '藛'],\r\n    jūn: [\r\n        '军',\r\n        '君',\r\n        '均',\r\n        '桾',\r\n        '汮',\r\n        '皲',\r\n        '皸',\r\n        '皹',\r\n        '碅',\r\n        '莙',\r\n        '蚐',\r\n        '袀',\r\n        '覠',\r\n        '軍',\r\n        '鈞',\r\n        '銁',\r\n        '銞',\r\n        '鍕',\r\n        '钧',\r\n        '頵',\r\n        '鮶',\r\n        '鲪',\r\n        '麏',\r\n    ],\r\n    mí: [\r\n        '冞',\r\n        '擟',\r\n        '瀰',\r\n        '爢',\r\n        '猕',\r\n        '獼',\r\n        '祢',\r\n        '禰',\r\n        '縻',\r\n        '蒾',\r\n        '藌',\r\n        '蘪',\r\n        '蘼',\r\n        '袮',\r\n        '詸',\r\n        '謎',\r\n        '迷',\r\n        '醚',\r\n        '醾',\r\n        '醿',\r\n        '釄',\r\n        '镾',\r\n        '鸍',\r\n        '麊',\r\n        '麋',\r\n        '麛',\r\n    ],\r\n    'guān guàn': ['冠', '覌', '観', '觀', '观'],\r\n    měng: [\r\n        '冡',\r\n        '勐',\r\n        '懵',\r\n        '掹',\r\n        '猛',\r\n        '獴',\r\n        '艋',\r\n        '蜢',\r\n        '蠓',\r\n        '錳',\r\n        '锰',\r\n        '鯭',\r\n        '鼆',\r\n    ],\r\n    zhǒng: ['冢', '塚', '尰', '歱', '煄', '瘇', '肿', '腫', '踵'],\r\n    zuì: [\r\n        '冣',\r\n        '嶵',\r\n        '晬',\r\n        '最',\r\n        '栬',\r\n        '槜',\r\n        '檇',\r\n        '檌',\r\n        '祽',\r\n        '絊',\r\n        '罪',\r\n        '蕞',\r\n        '辠',\r\n        '酔',\r\n        '酻',\r\n        '醉',\r\n        '錊',\r\n    ],\r\n    yuān: [\r\n        '冤',\r\n        '剈',\r\n        '囦',\r\n        '嬽',\r\n        '寃',\r\n        '棩',\r\n        '淵',\r\n        '渁',\r\n        '渆',\r\n        '渊',\r\n        '渕',\r\n        '灁',\r\n        '眢',\r\n        '肙',\r\n        '葾',\r\n        '蒬',\r\n        '蜎',\r\n        '蜵',\r\n        '駌',\r\n        '鳶',\r\n        '鴛',\r\n        '鵷',\r\n        '鸢',\r\n        '鸳',\r\n        '鹓',\r\n        '鼘',\r\n        '鼝',\r\n    ],\r\n    míng: [\r\n        '冥',\r\n        '名',\r\n        '明',\r\n        '暝',\r\n        '朙',\r\n        '榠',\r\n        '洺',\r\n        '溟',\r\n        '猽',\r\n        '眀',\r\n        '眳',\r\n        '瞑',\r\n        '茗',\r\n        '螟',\r\n        '覭',\r\n        '詺',\r\n        '鄍',\r\n        '銘',\r\n        '铭',\r\n        '鳴',\r\n        '鸣',\r\n    ],\r\n    kòu: [\r\n        '冦',\r\n        '叩',\r\n        '宼',\r\n        '寇',\r\n        '扣',\r\n        '敂',\r\n        '滱',\r\n        '窛',\r\n        '筘',\r\n        '簆',\r\n        '蔲',\r\n        '蔻',\r\n        '釦',\r\n        '鷇',\r\n    ],\r\n    tài: [\r\n        '冭',\r\n        '太',\r\n        '夳',\r\n        '忲',\r\n        '态',\r\n        '態',\r\n        '汰',\r\n        '汱',\r\n        '泰',\r\n        '溙',\r\n        '肽',\r\n        '舦',\r\n        '酞',\r\n        '鈦',\r\n        '钛',\r\n    ],\r\n    'féng píng': ['冯', '馮'],\r\n    'chōng chòng': ['冲'],\r\n    kuàng: [\r\n        '况',\r\n        '圹',\r\n        '壙',\r\n        '岲',\r\n        '懬',\r\n        '旷',\r\n        '昿',\r\n        '曠',\r\n        '框',\r\n        '況',\r\n        '爌',\r\n        '眖',\r\n        '眶',\r\n        '矿',\r\n        '砿',\r\n        '礦',\r\n        '穬',\r\n        '絋',\r\n        '絖',\r\n        '纊',\r\n        '纩',\r\n        '貺',\r\n        '贶',\r\n        '軦',\r\n        '邝',\r\n        '鄺',\r\n        '鉱',\r\n        '鋛',\r\n        '鑛',\r\n        '黋',\r\n    ],\r\n    lěng: ['冷'],\r\n    pàn: [\r\n        '冸',\r\n        '判',\r\n        '叛',\r\n        '沜',\r\n        '泮',\r\n        '溿',\r\n        '炍',\r\n        '牉',\r\n        '畔',\r\n        '盼',\r\n        '聁',\r\n        '袢',\r\n        '襻',\r\n        '詊',\r\n        '鋬',\r\n        '鑻',\r\n        '頖',\r\n        '鵥',\r\n    ],\r\n    fā: ['冹', '彂', '沷', '発', '發'],\r\n    xiǎn: [\r\n        '冼',\r\n        '尟',\r\n        '尠',\r\n        '崄',\r\n        '嶮',\r\n        '幰',\r\n        '攇',\r\n        '显',\r\n        '櫶',\r\n        '毨',\r\n        '灦',\r\n        '烍',\r\n        '燹',\r\n        '狝',\r\n        '猃',\r\n        '獫',\r\n        '獮',\r\n        '玁',\r\n        '禒',\r\n        '筅',\r\n        '箲',\r\n        '藓',\r\n        '蘚',\r\n        '蚬',\r\n        '蜆',\r\n        '譣',\r\n        '赻',\r\n        '跣',\r\n        '鍌',\r\n        '险',\r\n        '険',\r\n        '險',\r\n        '韅',\r\n        '顕',\r\n        '顯',\r\n        '㬎',\r\n    ],\r\n    qià: ['冾', '圶', '帢', '恰', '殎', '洽', '硈', '胢', '髂'],\r\n    'jìng chēng': ['净', '凈', '淨'],\r\n    sōu: [\r\n        '凁',\r\n        '嗖',\r\n        '廀',\r\n        '廋',\r\n        '捜',\r\n        '搜',\r\n        '摉',\r\n        '溲',\r\n        '獀',\r\n        '艘',\r\n        '蒐',\r\n        '螋',\r\n        '鄋',\r\n        '醙',\r\n        '鎪',\r\n        '锼',\r\n        '颼',\r\n        '飕',\r\n        '餿',\r\n        '馊',\r\n        '騪',\r\n    ],\r\n    měi: [\r\n        '凂',\r\n        '媄',\r\n        '媺',\r\n        '嬍',\r\n        '嵄',\r\n        '挴',\r\n        '毎',\r\n        '每',\r\n        '浼',\r\n        '渼',\r\n        '燘',\r\n        '美',\r\n        '躾',\r\n        '鎂',\r\n        '镁',\r\n        '黣',\r\n    ],\r\n    tú: [\r\n        '凃',\r\n        '図',\r\n        '图',\r\n        '圖',\r\n        '圗',\r\n        '塗',\r\n        '屠',\r\n        '峹',\r\n        '嵞',\r\n        '庩',\r\n        '廜',\r\n        '徒',\r\n        '悇',\r\n        '揬',\r\n        '涂',\r\n        '瘏',\r\n        '筡',\r\n        '腯',\r\n        '荼',\r\n        '蒤',\r\n        '跿',\r\n        '途',\r\n        '酴',\r\n        '鈯',\r\n        '鍎',\r\n        '馟',\r\n        '駼',\r\n        '鵌',\r\n        '鶟',\r\n        '鷋',\r\n        '鷵',\r\n        '𬳿',\r\n    ],\r\n    zhǔn: ['准', '凖', '埻', '準', '𬘯'],\r\n    'liáng liàng': ['凉', '涼', '量'],\r\n    diāo: [\r\n        '凋',\r\n        '刁',\r\n        '刟',\r\n        '叼',\r\n        '奝',\r\n        '弴',\r\n        '彫',\r\n        '汈',\r\n        '琱',\r\n        '碉',\r\n        '簓',\r\n        '虭',\r\n        '蛁',\r\n        '貂',\r\n        '錭',\r\n        '雕',\r\n        '鮉',\r\n        '鯛',\r\n        '鲷',\r\n        '鵰',\r\n        '鼦',\r\n    ],\r\n    còu: ['凑', '湊', '腠', '輳', '辏'],\r\n    ái: ['凒', '啀', '嘊', '捱', '溰', '癌', '皑', '皚'],\r\n    duó: ['凙', '剫', '夺', '奪', '痥', '踱', '鈬', '鐸', '铎'],\r\n    dú: [\r\n        '凟',\r\n        '匵',\r\n        '嬻',\r\n        '椟',\r\n        '櫝',\r\n        '殰',\r\n        '涜',\r\n        '牍',\r\n        '牘',\r\n        '犊',\r\n        '犢',\r\n        '独',\r\n        '獨',\r\n        '瓄',\r\n        '皾',\r\n        '裻',\r\n        '読',\r\n        '讀',\r\n        '讟',\r\n        '豄',\r\n        '贕',\r\n        '錖',\r\n        '鑟',\r\n        '韇',\r\n        '韣',\r\n        '韥',\r\n        '騳',\r\n        '髑',\r\n        '黩',\r\n        '黷',\r\n    ],\r\n    'jǐ jī': ['几'],\r\n    fán: [\r\n        '凡',\r\n        '凢',\r\n        '凣',\r\n        '匥',\r\n        '墦',\r\n        '杋',\r\n        '柉',\r\n        '棥',\r\n        '樊',\r\n        '瀿',\r\n        '烦',\r\n        '煩',\r\n        '燔',\r\n        '璠',\r\n        '矾',\r\n        '礬',\r\n        '笲',\r\n        '籵',\r\n        '緐',\r\n        '羳',\r\n        '舤',\r\n        '舧',\r\n        '薠',\r\n        '蘩',\r\n        '蠜',\r\n        '襎',\r\n        '蹯',\r\n        '釩',\r\n        '鐇',\r\n        '鐢',\r\n        '钒',\r\n        '鷭',\r\n        '𫔍',\r\n        '𬸪',\r\n    ],\r\n    jū: [\r\n        '凥',\r\n        '匊',\r\n        '娵',\r\n        '婮',\r\n        '居',\r\n        '崌',\r\n        '抅',\r\n        '挶',\r\n        '掬',\r\n        '梮',\r\n        '椐',\r\n        '檋',\r\n        '毩',\r\n        '毱',\r\n        '泃',\r\n        '涺',\r\n        '狙',\r\n        '琚',\r\n        '疽',\r\n        '砠',\r\n        '罝',\r\n        '腒',\r\n        '艍',\r\n        '蜛',\r\n        '裾',\r\n        '諊',\r\n        '跔',\r\n        '踘',\r\n        '躹',\r\n        '陱',\r\n        '雎',\r\n        '鞠',\r\n        '鞫',\r\n        '駒',\r\n        '驹',\r\n        '鮈',\r\n        '鴡',\r\n        '鶋',\r\n        '𬶋',\r\n    ],\r\n    'chù chǔ': ['処', '处'],\r\n    zhǐ: [\r\n        '凪',\r\n        '劧',\r\n        '咫',\r\n        '址',\r\n        '坧',\r\n        '帋',\r\n        '恉',\r\n        '扺',\r\n        '指',\r\n        '旨',\r\n        '枳',\r\n        '止',\r\n        '汦',\r\n        '沚',\r\n        '洔',\r\n        '淽',\r\n        '疻',\r\n        '砋',\r\n        '祉',\r\n        '秖',\r\n        '紙',\r\n        '纸',\r\n        '芷',\r\n        '藢',\r\n        '衹',\r\n        '襧',\r\n        '訨',\r\n        '趾',\r\n        '軹',\r\n        '轵',\r\n        '酯',\r\n        '阯',\r\n        '黹',\r\n    ],\r\n    píng: [\r\n        '凭',\r\n        '凴',\r\n        '呯',\r\n        '坪',\r\n        '塀',\r\n        '岼',\r\n        '帡',\r\n        '帲',\r\n        '幈',\r\n        '平',\r\n        '慿',\r\n        '憑',\r\n        '枰',\r\n        '洴',\r\n        '焩',\r\n        '玶',\r\n        '瓶',\r\n        '甁',\r\n        '竮',\r\n        '箳',\r\n        '簈',\r\n        '缾',\r\n        '荓',\r\n        '萍',\r\n        '蓱',\r\n        '蚲',\r\n        '蛢',\r\n        '評',\r\n        '评',\r\n        '軿',\r\n        '輧',\r\n        '郱',\r\n        '鮃',\r\n        '鲆',\r\n    ],\r\n    kǎi: [\r\n        '凯',\r\n        '凱',\r\n        '剀',\r\n        '剴',\r\n        '垲',\r\n        '塏',\r\n        '恺',\r\n        '愷',\r\n        '慨',\r\n        '暟',\r\n        '蒈',\r\n        '輆',\r\n        '鍇',\r\n        '鎧',\r\n        '铠',\r\n        '锴',\r\n        '闓',\r\n        '闿',\r\n        '颽',\r\n    ],\r\n    gān: [\r\n        '凲',\r\n        '坩',\r\n        '尲',\r\n        '尴',\r\n        '尶',\r\n        '尷',\r\n        '柑',\r\n        '泔',\r\n        '漧',\r\n        '玕',\r\n        '甘',\r\n        '疳',\r\n        '矸',\r\n        '竿',\r\n        '筸',\r\n        '粓',\r\n        '肝',\r\n        '苷',\r\n        '迀',\r\n        '酐',\r\n        '魐',\r\n    ],\r\n    'kǎn qiǎn': ['凵'],\r\n    tū: [\r\n        '凸',\r\n        '堗',\r\n        '嶀',\r\n        '捸',\r\n        '涋',\r\n        '湥',\r\n        '痜',\r\n        '禿',\r\n        '秃',\r\n        '突',\r\n        '葖',\r\n        '鋵',\r\n        '鵚',\r\n        '鼵',\r\n        '㻬',\r\n    ],\r\n    'āo wā': ['凹'],\r\n    chū: ['出', '初', '岀', '摴', '榋', '樗', '貙', '齣', '䢺', '䝙'],\r\n    dàng: [\r\n        '凼',\r\n        '圵',\r\n        '垱',\r\n        '壋',\r\n        '档',\r\n        '檔',\r\n        '氹',\r\n        '璗',\r\n        '瓽',\r\n        '盪',\r\n        '瞊',\r\n        '砀',\r\n        '碭',\r\n        '礑',\r\n        '簜',\r\n        '荡',\r\n        '菪',\r\n        '蕩',\r\n        '蘯',\r\n        '趤',\r\n        '逿',\r\n        '雼',\r\n        '𬍡',\r\n    ],\r\n    hán: [\r\n        '函',\r\n        '凾',\r\n        '含',\r\n        '圅',\r\n        '娢',\r\n        '寒',\r\n        '崡',\r\n        '晗',\r\n        '梒',\r\n        '浛',\r\n        '涵',\r\n        '澏',\r\n        '焓',\r\n        '琀',\r\n        '甝',\r\n        '筨',\r\n        '蜬',\r\n        '邗',\r\n        '邯',\r\n        '鋡',\r\n        '韓',\r\n        '韩',\r\n    ],\r\n    záo: ['凿', '鑿'],\r\n    dāo: ['刀', '刂', '忉', '氘', '舠', '螩', '釖', '魛', '鱽'],\r\n    chuāng: ['刅', '摐', '牎', '牕', '疮', '瘡', '窓', '窗', '窻'],\r\n    'fēn fèn': ['分'],\r\n    'qiè qiē': ['切'],\r\n    kān: ['刊', '勘', '堪', '戡', '栞', '龕', '龛'],\r\n    cǔn: ['刌', '忖'],\r\n    chú: [\r\n        '刍',\r\n        '厨',\r\n        '幮',\r\n        '廚',\r\n        '橱',\r\n        '櫉',\r\n        '櫥',\r\n        '滁',\r\n        '犓',\r\n        '篨',\r\n        '耡',\r\n        '芻',\r\n        '蒢',\r\n        '蒭',\r\n        '蜍',\r\n        '蟵',\r\n        '豠',\r\n        '趎',\r\n        '蹰',\r\n        '躇',\r\n        '躕',\r\n        '鉏',\r\n        '鋤',\r\n        '锄',\r\n        '除',\r\n        '雏',\r\n        '雛',\r\n        '鶵',\r\n    ],\r\n    'huà huá': ['划'],\r\n    lí: [\r\n        '刕',\r\n        '剓',\r\n        '剺',\r\n        '劙',\r\n        '厘',\r\n        '喱',\r\n        '嚟',\r\n        '囄',\r\n        '嫠',\r\n        '孷',\r\n        '廲',\r\n        '悡',\r\n        '梨',\r\n        '梸',\r\n        '棃',\r\n        '漓',\r\n        '灕',\r\n        '犁',\r\n        '犂',\r\n        '狸',\r\n        '琍',\r\n        '璃',\r\n        '瓈',\r\n        '盠',\r\n        '睝',\r\n        '离',\r\n        '穲',\r\n        '竰',\r\n        '筣',\r\n        '篱',\r\n        '籬',\r\n        '糎',\r\n        '縭',\r\n        '缡',\r\n        '罹',\r\n        '艃',\r\n        '荲',\r\n        '菞',\r\n        '蓠',\r\n        '蔾',\r\n        '藜',\r\n        '蘺',\r\n        '蜊',\r\n        '蟍',\r\n        '蟸',\r\n        '蠫',\r\n        '褵',\r\n        '謧',\r\n        '貍',\r\n        '醨',\r\n        '鋫',\r\n        '錅',\r\n        '鏫',\r\n        '鑗',\r\n        '離',\r\n        '驪',\r\n        '骊',\r\n        '鯏',\r\n        '鯬',\r\n        '鱺',\r\n        '鲡',\r\n        '鵹',\r\n        '鸝',\r\n        '鹂',\r\n        '黎',\r\n        '黧',\r\n        '㰀',\r\n    ],\r\n    yuè: [\r\n        '刖',\r\n        '嬳',\r\n        '岄',\r\n        '岳',\r\n        '嶽',\r\n        '恱',\r\n        '悅',\r\n        '悦',\r\n        '戉',\r\n        '抈',\r\n        '捳',\r\n        '月',\r\n        '樾',\r\n        '瀹',\r\n        '爚',\r\n        '玥',\r\n        '礿',\r\n        '禴',\r\n        '篗',\r\n        '籆',\r\n        '籥',\r\n        '籰',\r\n        '粤',\r\n        '粵',\r\n        '蘥',\r\n        '蚎',\r\n        '蚏',\r\n        '説',\r\n        '越',\r\n        '跀',\r\n        '跃',\r\n        '躍',\r\n        '軏',\r\n        '鈅',\r\n        '鉞',\r\n        '鑰',\r\n        '钺',\r\n        '閱',\r\n        '閲',\r\n        '阅',\r\n        '鸑',\r\n        '鸙',\r\n        '黦',\r\n        '龠',\r\n        '𫐄',\r\n        '𬸚',\r\n    ],\r\n    liú: [\r\n        '刘',\r\n        '劉',\r\n        '嚠',\r\n        '媹',\r\n        '嵧',\r\n        '旈',\r\n        '旒',\r\n        '榴',\r\n        '橊',\r\n        '流',\r\n        '浏',\r\n        '瀏',\r\n        '琉',\r\n        '瑠',\r\n        '瑬',\r\n        '璢',\r\n        '畄',\r\n        '留',\r\n        '畱',\r\n        '疁',\r\n        '瘤',\r\n        '癅',\r\n        '硫',\r\n        '蒥',\r\n        '蓅',\r\n        '蟉',\r\n        '裗',\r\n        '鎏',\r\n        '鏐',\r\n        '鐂',\r\n        '镠',\r\n        '飀',\r\n        '飅',\r\n        '飗',\r\n        '駠',\r\n        '駵',\r\n        '騮',\r\n        '驑',\r\n        '骝',\r\n        '鰡',\r\n        '鶹',\r\n        '鹠',\r\n        '麍',\r\n    ],\r\n    zé: [\r\n        '则',\r\n        '則',\r\n        '啧',\r\n        '嘖',\r\n        '嫧',\r\n        '帻',\r\n        '幘',\r\n        '択',\r\n        '樍',\r\n        '歵',\r\n        '沢',\r\n        '泎',\r\n        '溭',\r\n        '皟',\r\n        '瞔',\r\n        '矠',\r\n        '礋',\r\n        '箦',\r\n        '簀',\r\n        '舴',\r\n        '蔶',\r\n        '蠌',\r\n        '襗',\r\n        '謮',\r\n        '賾',\r\n        '赜',\r\n        '迮',\r\n        '鸅',\r\n        '齚',\r\n        '齰',\r\n    ],\r\n    'chuàng chuāng': ['创', '創'],\r\n    qù: ['刞', '厺', '去', '閴', '闃', '阒', '麮', '鼁'],\r\n    'bié biè': ['別', '别'],\r\n    'páo bào': ['刨'],\r\n    'chǎn chàn': ['刬', '剗', '幝'],\r\n    guā: [\r\n        '刮',\r\n        '劀',\r\n        '桰',\r\n        '歄',\r\n        '煱',\r\n        '瓜',\r\n        '胍',\r\n        '踻',\r\n        '颪',\r\n        '颳',\r\n        '騧',\r\n        '鴰',\r\n        '鸹',\r\n    ],\r\n    gēng: [\r\n        '刯',\r\n        '庚',\r\n        '椩',\r\n        '浭',\r\n        '焿',\r\n        '畊',\r\n        '絚',\r\n        '羮',\r\n        '羹',\r\n        '耕',\r\n        '菮',\r\n        '賡',\r\n        '赓',\r\n        '鶊',\r\n        '鹒',\r\n    ],\r\n    dào: [\r\n        '到',\r\n        '噵',\r\n        '悼',\r\n        '椡',\r\n        '檤',\r\n        '燾',\r\n        '瓙',\r\n        '盗',\r\n        '盜',\r\n        '稲',\r\n        '稻',\r\n        '纛',\r\n        '翿',\r\n        '艔',\r\n        '菿',\r\n        '衜',\r\n        '衟',\r\n        '軇',\r\n        '道',\r\n    ],\r\n    chuàng: ['刱', '剏', '剙', '怆', '愴'],\r\n    kū: ['刳', '哭', '圐', '堀', '枯', '桍', '矻', '窟', '跍', '郀', '骷', '鮬'],\r\n    duò: [\r\n        '刴',\r\n        '剁',\r\n        '墯',\r\n        '尮',\r\n        '惰',\r\n        '憜',\r\n        '挅',\r\n        '桗',\r\n        '舵',\r\n        '跥',\r\n        '跺',\r\n        '陊',\r\n        '陏',\r\n        '飿',\r\n        '饳',\r\n        '鵽',\r\n    ],\r\n    'shuā shuà': ['刷'],\r\n    'quàn xuàn': ['券'],\r\n    'chà shā': ['刹', '剎'],\r\n    'cì cī': ['刺'],\r\n    guì: [\r\n        '刽',\r\n        '刿',\r\n        '劊',\r\n        '劌',\r\n        '撌',\r\n        '攰',\r\n        '昋',\r\n        '桂',\r\n        '椢',\r\n        '槶',\r\n        '樻',\r\n        '櫃',\r\n        '猤',\r\n        '禬',\r\n        '筀',\r\n        '蓕',\r\n        '襘',\r\n        '貴',\r\n        '贵',\r\n        '跪',\r\n        '鐀',\r\n        '鑎',\r\n        '鞼',\r\n        '鱖',\r\n        '鱥',\r\n    ],\r\n    lóu: [\r\n        '剅',\r\n        '娄',\r\n        '婁',\r\n        '廔',\r\n        '楼',\r\n        '樓',\r\n        '溇',\r\n        '漊',\r\n        '熡',\r\n        '耧',\r\n        '耬',\r\n        '艛',\r\n        '蒌',\r\n        '蔞',\r\n        '蝼',\r\n        '螻',\r\n        '謱',\r\n        '軁',\r\n        '遱',\r\n        '鞻',\r\n        '髅',\r\n        '髏',\r\n        '𪣻',\r\n    ],\r\n    cuò: [\r\n        '剉',\r\n        '剒',\r\n        '厝',\r\n        '夎',\r\n        '挫',\r\n        '措',\r\n        '棤',\r\n        '莝',\r\n        '莡',\r\n        '蓌',\r\n        '逪',\r\n        '銼',\r\n        '錯',\r\n        '锉',\r\n        '错',\r\n    ],\r\n    'xiāo xuē': ['削'],\r\n    'kēi kè': ['剋', '尅'],\r\n    'là lá': ['剌'],\r\n    tī: ['剔', '梯', '踢', '銻', '锑', '鷈', '鷉', '䏲', '䴘'],\r\n    pōu: ['剖'],\r\n    wān: ['剜', '塆', '壪', '帵', '弯', '彎', '湾', '潫', '灣', '睕', '蜿', '豌'],\r\n    'bāo bō': ['剝', '剥'],\r\n    duō: ['剟', '咄', '哆', '嚉', '多', '夛', '掇', '毲', '畓', '裰', '㙍'],\r\n    qíng: [\r\n        '剠',\r\n        '勍',\r\n        '夝',\r\n        '情',\r\n        '擎',\r\n        '晴',\r\n        '暒',\r\n        '棾',\r\n        '樈',\r\n        '檠',\r\n        '氰',\r\n        '甠',\r\n        '硘',\r\n        '葝',\r\n        '黥',\r\n    ],\r\n    'yǎn shàn': ['剡'],\r\n    'dū zhuó': ['剢'],\r\n    yān: [\r\n        '剦',\r\n        '嫣',\r\n        '崦',\r\n        '嶖',\r\n        '恹',\r\n        '懕',\r\n        '懨',\r\n        '樮',\r\n        '淊',\r\n        '淹',\r\n        '漹',\r\n        '烟',\r\n        '焉',\r\n        '焑',\r\n        '煙',\r\n        '珚',\r\n        '篶',\r\n        '胭',\r\n        '臙',\r\n        '菸',\r\n        '鄢',\r\n        '醃',\r\n        '閹',\r\n        '阉',\r\n        '黫',\r\n    ],\r\n    huō: ['剨', '劐', '吙', '攉', '秴', '耠', '锪', '騞', '𬴃'],\r\n    shèng: [\r\n        '剩',\r\n        '剰',\r\n        '勝',\r\n        '圣',\r\n        '墭',\r\n        '嵊',\r\n        '晠',\r\n        '榺',\r\n        '橳',\r\n        '琞',\r\n        '聖',\r\n        '蕂',\r\n        '貹',\r\n        '賸',\r\n    ],\r\n    'duān zhì': ['剬'],\r\n    wū: [\r\n        '剭',\r\n        '呜',\r\n        '嗚',\r\n        '圬',\r\n        '屋',\r\n        '巫',\r\n        '弙',\r\n        '杇',\r\n        '歍',\r\n        '汙',\r\n        '汚',\r\n        '污',\r\n        '洿',\r\n        '烏',\r\n        '窏',\r\n        '箼',\r\n        '螐',\r\n        '誈',\r\n        '誣',\r\n        '诬',\r\n        '邬',\r\n        '鄔',\r\n        '鎢',\r\n        '钨',\r\n        '鰞',\r\n        '鴮',\r\n    ],\r\n    gē: [\r\n        '割',\r\n        '哥',\r\n        '圪',\r\n        '彁',\r\n        '戈',\r\n        '戓',\r\n        '戨',\r\n        '歌',\r\n        '滒',\r\n        '犵',\r\n        '肐',\r\n        '袼',\r\n        '謌',\r\n        '鎶',\r\n        '鴚',\r\n        '鴿',\r\n        '鸽',\r\n    ],\r\n    'dá zhá': ['剳'],\r\n    chuán: ['剶', '暷', '椽', '篅', '舡', '舩', '船', '輲', '遄'],\r\n    'tuán zhuān': ['剸', '漙', '篿'],\r\n    'lù jiū': ['剹'],\r\n    pēng: ['剻', '匉', '嘭', '怦', '恲', '抨', '梈', '烹', '砰', '軯', '駍'],\r\n    piāo: ['剽', '勡', '慓', '旚', '犥', '翲', '螵', '飃', '飄', '飘', '魒'],\r\n    kōu: ['剾', '彄', '抠', '摳', '眍', '瞘', '芤', '𫸩'],\r\n    'jiǎo chāo': ['剿', '劋', '勦', '摷'],\r\n    qiāo: [\r\n        '劁',\r\n        '勪',\r\n        '墝',\r\n        '幧',\r\n        '敲',\r\n        '橇',\r\n        '毃',\r\n        '燆',\r\n        '硗',\r\n        '磽',\r\n        '繑',\r\n        '趬',\r\n        '跷',\r\n        '踍',\r\n        '蹺',\r\n        '蹻',\r\n        '郻',\r\n        '鄡',\r\n        '鄥',\r\n        '鍫',\r\n        '鍬',\r\n        '鐰',\r\n        '锹',\r\n        '頝',\r\n    ],\r\n    'huá huà': ['劃'],\r\n    'zhā zhá': ['劄'],\r\n    'pī pǐ': ['劈', '悂'],\r\n    tāng: ['劏', '嘡', '羰', '薚', '蝪', '蹚', '鞺', '鼞'],\r\n    chán: [\r\n        '劖',\r\n        '嚵',\r\n        '壥',\r\n        '婵',\r\n        '嬋',\r\n        '巉',\r\n        '廛',\r\n        '棎',\r\n        '毚',\r\n        '湹',\r\n        '潹',\r\n        '潺',\r\n        '澶',\r\n        '瀍',\r\n        '瀺',\r\n        '煘',\r\n        '獑',\r\n        '磛',\r\n        '緾',\r\n        '纏',\r\n        '纒',\r\n        '缠',\r\n        '艬',\r\n        '蝉',\r\n        '蟐',\r\n        '蟬',\r\n        '蟾',\r\n        '誗',\r\n        '讒',\r\n        '谗',\r\n        '躔',\r\n        '鄽',\r\n        '酁',\r\n        '鋋',\r\n        '鑱',\r\n        '镵',\r\n        '饞',\r\n        '馋',\r\n    ],\r\n    zuān: ['劗', '躜', '躦', '鉆', '鑚'],\r\n    mó: [\r\n        '劘',\r\n        '嫫',\r\n        '嬤',\r\n        '嬷',\r\n        '尛',\r\n        '摹',\r\n        '擵',\r\n        '橅',\r\n        '糢',\r\n        '膜',\r\n        '藦',\r\n        '蘑',\r\n        '謨',\r\n        '謩',\r\n        '谟',\r\n        '饃',\r\n        '饝',\r\n        '馍',\r\n        '髍',\r\n        '魔',\r\n        '魹',\r\n    ],\r\n    zhú: [\r\n        '劚',\r\n        '斸',\r\n        '曯',\r\n        '欘',\r\n        '灟',\r\n        '炢',\r\n        '烛',\r\n        '燭',\r\n        '爥',\r\n        '瘃',\r\n        '竹',\r\n        '笁',\r\n        '笜',\r\n        '舳',\r\n        '茿',\r\n        '蓫',\r\n        '蠋',\r\n        '蠾',\r\n        '躅',\r\n        '逐',\r\n        '逫',\r\n        '钃',\r\n        '鱁',\r\n    ],\r\n    quàn: ['劝', '勧', '勸', '牶', '韏'],\r\n    'jìn jìng': ['劤', '劲', '勁'],\r\n    kēng: ['劥', '坑', '牼', '硁', '硜', '誙', '銵', '鍞', '鏗', '铿', '阬'],\r\n    'xié liè': ['劦'],\r\n    'zhù chú': ['助'],\r\n    nǔ: ['努', '弩', '砮', '胬'],\r\n    shào: ['劭', '卲', '哨', '潲', '紹', '綤', '绍', '袑', '邵'],\r\n    miǎo: ['劰', '杪', '淼', '渺', '眇', '秒', '篎', '緲', '缈', '藐', '邈'],\r\n    kǒu: ['劶', '口'],\r\n    wā: [\r\n        '劸',\r\n        '娲',\r\n        '媧',\r\n        '屲',\r\n        '挖',\r\n        '攨',\r\n        '洼',\r\n        '溛',\r\n        '漥',\r\n        '瓾',\r\n        '畖',\r\n        '穵',\r\n        '窊',\r\n        '窪',\r\n        '蛙',\r\n        '韈',\r\n        '鼃',\r\n    ],\r\n    kuāng: [\r\n        '劻',\r\n        '匡',\r\n        '匩',\r\n        '哐',\r\n        '恇',\r\n        '洭',\r\n        '筐',\r\n        '筺',\r\n        '誆',\r\n        '诓',\r\n        '軭',\r\n        '邼',\r\n    ],\r\n    hé: [\r\n        '劾',\r\n        '咊',\r\n        '啝',\r\n        '姀',\r\n        '峆',\r\n        '敆',\r\n        '曷',\r\n        '柇',\r\n        '楁',\r\n        '毼',\r\n        '河',\r\n        '涸',\r\n        '渮',\r\n        '澕',\r\n        '熆',\r\n        '皬',\r\n        '盇',\r\n        '盉',\r\n        '盍',\r\n        '盒',\r\n        '禾',\r\n        '篕',\r\n        '籺',\r\n        '粭',\r\n        '翮',\r\n        '菏',\r\n        '萂',\r\n        '覈',\r\n        '訸',\r\n        '詥',\r\n        '郃',\r\n        '釛',\r\n        '鉌',\r\n        '鑉',\r\n        '閡',\r\n        '闔',\r\n        '阂',\r\n        '阖',\r\n        '鞨',\r\n        '頜',\r\n        '餄',\r\n        '饸',\r\n        '魺',\r\n        '鹖',\r\n        '麧',\r\n        '齕',\r\n        '龁',\r\n        '龢',\r\n        '𬌗',\r\n    ],\r\n    gào: [\r\n        '勂',\r\n        '吿',\r\n        '告',\r\n        '峼',\r\n        '祮',\r\n        '祰',\r\n        '禞',\r\n        '筶',\r\n        '誥',\r\n        '诰',\r\n        '郜',\r\n        '鋯',\r\n        '锆',\r\n    ],\r\n    'bó bèi': ['勃'],\r\n    láng: [\r\n        '勆',\r\n        '嫏',\r\n        '廊',\r\n        '斏',\r\n        '桹',\r\n        '榔',\r\n        '樃',\r\n        '欴',\r\n        '狼',\r\n        '琅',\r\n        '瑯',\r\n        '硠',\r\n        '稂',\r\n        '艆',\r\n        '蓈',\r\n        '蜋',\r\n        '螂',\r\n        '躴',\r\n        '郒',\r\n        '郞',\r\n        '鋃',\r\n        '鎯',\r\n        '锒',\r\n    ],\r\n    xūn: [\r\n        '勋',\r\n        '勛',\r\n        '勲',\r\n        '勳',\r\n        '嚑',\r\n        '坃',\r\n        '埙',\r\n        '塤',\r\n        '壎',\r\n        '壦',\r\n        '曛',\r\n        '燻',\r\n        '獯',\r\n        '矄',\r\n        '纁',\r\n        '臐',\r\n        '薫',\r\n        '薰',\r\n        '蘍',\r\n        '醺',\r\n        '𫄸',\r\n    ],\r\n    'juàn juān': ['勌', '瓹'],\r\n    'lè lēi': ['勒'],\r\n    kài: ['勓', '炌', '烗', '鎎'],\r\n    'wěng yǎng': ['勜'],\r\n    qín: [\r\n        '勤',\r\n        '嗪',\r\n        '噙',\r\n        '嶜',\r\n        '庈',\r\n        '懃',\r\n        '懄',\r\n        '捦',\r\n        '擒',\r\n        '斳',\r\n        '檎',\r\n        '澿',\r\n        '珡',\r\n        '琴',\r\n        '琹',\r\n        '瘽',\r\n        '禽',\r\n        '秦',\r\n        '耹',\r\n        '芩',\r\n        '芹',\r\n        '菦',\r\n        '螓',\r\n        '蠄',\r\n        '鈙',\r\n        '鈫',\r\n        '雂',\r\n        '靲',\r\n        '鳹',\r\n        '鵭',\r\n    ],\r\n    jiàng: [\r\n        '勥',\r\n        '匞',\r\n        '匠',\r\n        '嵹',\r\n        '弜',\r\n        '弶',\r\n        '摾',\r\n        '櫤',\r\n        '洚',\r\n        '滰',\r\n        '犟',\r\n        '糡',\r\n        '糨',\r\n        '絳',\r\n        '绛',\r\n        '謽',\r\n        '酱',\r\n        '醤',\r\n        '醬',\r\n    ],\r\n    fān: [\r\n        '勫',\r\n        '嬏',\r\n        '帆',\r\n        '幡',\r\n        '忛',\r\n        '憣',\r\n        '旙',\r\n        '旛',\r\n        '繙',\r\n        '翻',\r\n        '藩',\r\n        '轓',\r\n        '颿',\r\n        '飜',\r\n        '鱕',\r\n    ],\r\n    juān: ['勬', '姢', '娟', '捐', '涓', '蠲', '裐', '鎸', '鐫', '镌', '鹃'],\r\n    'tóng dòng': ['勭', '烔', '燑', '狪'],\r\n    lǜ: [\r\n        '勴',\r\n        '垏',\r\n        '嵂',\r\n        '律',\r\n        '慮',\r\n        '氯',\r\n        '滤',\r\n        '濾',\r\n        '爈',\r\n        '箻',\r\n        '綠',\r\n        '繂',\r\n        '膟',\r\n        '葎',\r\n        '虑',\r\n        '鑢',\r\n    ],\r\n    chè: [\r\n        '勶',\r\n        '坼',\r\n        '彻',\r\n        '徹',\r\n        '掣',\r\n        '撤',\r\n        '澈',\r\n        '烢',\r\n        '爡',\r\n        '瞮',\r\n        '硩',\r\n        '聅',\r\n        '迠',\r\n        '頙',\r\n        '㬚',\r\n    ],\r\n    sháo: ['勺', '玿', '韶'],\r\n    'gōu gòu': ['勾'],\r\n    cōng: [\r\n        '匆',\r\n        '囪',\r\n        '囱',\r\n        '忩',\r\n        '怱',\r\n        '悤',\r\n        '暰',\r\n        '樬',\r\n        '漗',\r\n        '瑽',\r\n        '璁',\r\n        '瞛',\r\n        '篵',\r\n        '繱',\r\n        '聡',\r\n        '聦',\r\n        '聪',\r\n        '聰',\r\n        '苁',\r\n        '茐',\r\n        '葱',\r\n        '蓯',\r\n        '蔥',\r\n        '蟌',\r\n        '鍯',\r\n        '鏓',\r\n        '鏦',\r\n        '騘',\r\n        '驄',\r\n        '骢',\r\n    ],\r\n    'táo yáo': ['匋', '陶'],\r\n    páo: ['匏', '咆', '垉', '庖', '爮', '狍', '袍', '褜', '軳', '鞄', '麅'],\r\n    dá: [\r\n        '匒',\r\n        '妲',\r\n        '怛',\r\n        '炟',\r\n        '燵',\r\n        '畣',\r\n        '笪',\r\n        '羍',\r\n        '荙',\r\n        '薘',\r\n        '蟽',\r\n        '詚',\r\n        '达',\r\n        '迏',\r\n        '迖',\r\n        '迚',\r\n        '逹',\r\n        '達',\r\n        '鐽',\r\n        '靼',\r\n        '鞑',\r\n        '韃',\r\n        '龖',\r\n        '龘',\r\n        '𫟼',\r\n    ],\r\n    'huà huā': ['化'],\r\n    'běi bèi': ['北'],\r\n    nǎo: ['匘', '垴', '堖', '嫐', '恼', '悩', '惱', '瑙', '碯', '脑', '脳', '腦'],\r\n    'chí shi': ['匙'],\r\n    fāng: ['匚', '堏', '方', '淓', '牥', '芳', '邡', '鈁', '錺', '钫', '鴋'],\r\n    zā: ['匝', '咂', '帀', '沞', '臜', '臢', '迊', '鉔', '魳'],\r\n    qiè: [\r\n        '匧',\r\n        '厒',\r\n        '妾',\r\n        '怯',\r\n        '悏',\r\n        '惬',\r\n        '愜',\r\n        '挈',\r\n        '穕',\r\n        '窃',\r\n        '竊',\r\n        '笡',\r\n        '箧',\r\n        '篋',\r\n        '籡',\r\n        '踥',\r\n        '鍥',\r\n        '锲',\r\n        '鯜',\r\n    ],\r\n    'zāng cáng': ['匨'],\r\n    fěi: ['匪', '奜', '悱', '棐', '榧', '篚', '翡', '蕜', '誹', '诽'],\r\n    'kuì guì': ['匮', '匱'],\r\n    suǎn: ['匴'],\r\n    pǐ: ['匹', '噽', '嚭', '圮', '庀', '痞', '癖', '脴', '苉', '銢', '鴄'],\r\n    'qū ōu': ['区', '區'],\r\n    'kē qià': ['匼'],\r\n    'yǎn yàn': ['匽', '棪'],\r\n    biǎn: ['匾', '惼', '揙', '碥', '稨', '窆', '藊', '褊', '貶', '贬', '鴘'],\r\n    nì: [\r\n        '匿',\r\n        '堄',\r\n        '嫟',\r\n        '嬺',\r\n        '惄',\r\n        '愵',\r\n        '昵',\r\n        '暱',\r\n        '氼',\r\n        '眤',\r\n        '睨',\r\n        '縌',\r\n        '胒',\r\n        '腻',\r\n        '膩',\r\n        '逆',\r\n        '𨺙',\r\n    ],\r\n    niàn: ['卄', '唸', '埝', '廿', '念', '惗', '艌'],\r\n    sà: ['卅', '櫒', '脎', '萨', '蕯', '薩', '鈒', '隡', '颯', '飒', '馺'],\r\n    zú: ['卆', '哫', '崪', '族', '箤', '足', '踤', '镞'],\r\n    shēng: [\r\n        '升',\r\n        '呏',\r\n        '声',\r\n        '斘',\r\n        '昇',\r\n        '曻',\r\n        '枡',\r\n        '殅',\r\n        '泩',\r\n        '湦',\r\n        '焺',\r\n        '牲',\r\n        '珄',\r\n        '生',\r\n        '甥',\r\n        '竔',\r\n        '笙',\r\n        '聲',\r\n        '鉎',\r\n        '鍟',\r\n        '阩',\r\n        '陞',\r\n        '陹',\r\n        '鵿',\r\n        '鼪',\r\n    ],\r\n    wàn: [\r\n        '卍',\r\n        '卐',\r\n        '忨',\r\n        '杤',\r\n        '瞣',\r\n        '脕',\r\n        '腕',\r\n        '萬',\r\n        '蟃',\r\n        '贎',\r\n        '輐',\r\n        '錽',\r\n        '𬇕',\r\n    ],\r\n    'huá huà huā': ['华', '華'],\r\n    bēi: ['卑', '悲', '揹', '杯', '桮', '盃', '碑', '藣', '鵯', '鹎'],\r\n    'zú cù': ['卒'],\r\n    'dān shàn chán': ['单', '單'],\r\n    'nán nā': ['南'],\r\n    'shuài lǜ': ['卛'],\r\n    'bǔ bo pú': ['卜'],\r\n    'kuàng guàn': ['卝'],\r\n    biàn: [\r\n        '卞',\r\n        '变',\r\n        '変',\r\n        '峅',\r\n        '弁',\r\n        '徧',\r\n        '忭',\r\n        '抃',\r\n        '昪',\r\n        '汳',\r\n        '汴',\r\n        '玣',\r\n        '艑',\r\n        '苄',\r\n        '覍',\r\n        '諚',\r\n        '變',\r\n        '辡',\r\n        '辧',\r\n        '辨',\r\n        '辩',\r\n        '辫',\r\n        '辮',\r\n        '辯',\r\n        '遍',\r\n        '釆',\r\n        '𨚕',\r\n    ],\r\n    bǔ: ['卟', '哺', '捕', '补', '補', '鸔', '𬷕'],\r\n    'zhàn zhān': ['占', '覱'],\r\n    'kǎ qiǎ': ['卡'],\r\n    lú: [\r\n        '卢',\r\n        '嚧',\r\n        '垆',\r\n        '壚',\r\n        '庐',\r\n        '廬',\r\n        '曥',\r\n        '枦',\r\n        '栌',\r\n        '櫨',\r\n        '泸',\r\n        '瀘',\r\n        '炉',\r\n        '爐',\r\n        '獹',\r\n        '玈',\r\n        '瓐',\r\n        '盧',\r\n        '矑',\r\n        '籚',\r\n        '纑',\r\n        '罏',\r\n        '胪',\r\n        '臚',\r\n        '舮',\r\n        '舻',\r\n        '艫',\r\n        '芦',\r\n        '蘆',\r\n        '蠦',\r\n        '轤',\r\n        '轳',\r\n        '鈩',\r\n        '鑪',\r\n        '顱',\r\n        '颅',\r\n        '馿',\r\n        '髗',\r\n        '魲',\r\n        '鱸',\r\n        '鲈',\r\n        '鸕',\r\n        '鸬',\r\n        '黸',\r\n        '𬬻',\r\n    ],\r\n    lǔ: [\r\n        '卤',\r\n        '塷',\r\n        '掳',\r\n        '擄',\r\n        '樐',\r\n        '橹',\r\n        '櫓',\r\n        '氌',\r\n        '滷',\r\n        '澛',\r\n        '瀂',\r\n        '硵',\r\n        '磠',\r\n        '穞',\r\n        '艣',\r\n        '艪',\r\n        '蓾',\r\n        '虏',\r\n        '虜',\r\n        '鏀',\r\n        '鐪',\r\n        '鑥',\r\n        '镥',\r\n        '魯',\r\n        '鲁',\r\n        '鹵',\r\n    ],\r\n    guà: ['卦', '啩', '挂', '掛', '罣', '褂', '詿', '诖'],\r\n    'áng yǎng': ['卬'],\r\n    yìn: [\r\n        '印',\r\n        '垽',\r\n        '堷',\r\n        '廕',\r\n        '慭',\r\n        '憖',\r\n        '憗',\r\n        '懚',\r\n        '洕',\r\n        '湚',\r\n        '猌',\r\n        '癊',\r\n        '胤',\r\n        '茚',\r\n        '酳',\r\n        '鮣',\r\n        '䲟',\r\n    ],\r\n    què: [\r\n        '却',\r\n        '卻',\r\n        '塙',\r\n        '崅',\r\n        '悫',\r\n        '愨',\r\n        '慤',\r\n        '搉',\r\n        '榷',\r\n        '燩',\r\n        '琷',\r\n        '皵',\r\n        '确',\r\n        '確',\r\n        '礭',\r\n        '闋',\r\n        '阕',\r\n        '鵲',\r\n        '鹊',\r\n        '𬒈',\r\n    ],\r\n    luǎn: ['卵'],\r\n    'juàn juǎn': ['卷', '巻'],\r\n    'chǎng ān hàn': ['厂'],\r\n    'wěi yán': ['厃'],\r\n    tīng: [\r\n        '厅',\r\n        '厛',\r\n        '听',\r\n        '庁',\r\n        '廰',\r\n        '廳',\r\n        '汀',\r\n        '烃',\r\n        '烴',\r\n        '綎',\r\n        '耓',\r\n        '聴',\r\n        '聼',\r\n        '聽',\r\n        '鞓',\r\n        '𬘩',\r\n    ],\r\n    'zhé zhái': ['厇'],\r\n    'hàn àn': ['厈', '屽'],\r\n    yǎ: ['厊', '唖', '庌', '痖', '瘂', '蕥'],\r\n    shè: [\r\n        '厍',\r\n        '厙',\r\n        '弽',\r\n        '慑',\r\n        '慴',\r\n        '懾',\r\n        '摂',\r\n        '欇',\r\n        '涉',\r\n        '涻',\r\n        '渉',\r\n        '滠',\r\n        '灄',\r\n        '社',\r\n        '舎',\r\n        '蔎',\r\n        '蠂',\r\n        '設',\r\n        '设',\r\n        '赦',\r\n        '騇',\r\n        '麝',\r\n    ],\r\n    dǐ: [\r\n        '厎',\r\n        '呧',\r\n        '坘',\r\n        '弤',\r\n        '抵',\r\n        '拞',\r\n        '掋',\r\n        '牴',\r\n        '砥',\r\n        '菧',\r\n        '觝',\r\n        '詆',\r\n        '诋',\r\n        '軧',\r\n        '邸',\r\n        '阺',\r\n        '骶',\r\n        '鯳',\r\n    ],\r\n    'zhǎ zhǎi': ['厏'],\r\n    páng: ['厐', '嫎', '庞', '徬', '舽', '螃', '逄', '鰟', '鳑', '龎', '龐'],\r\n    'zhì shī': ['厔'],\r\n    máng: [\r\n        '厖',\r\n        '吂',\r\n        '哤',\r\n        '娏',\r\n        '忙',\r\n        '恾',\r\n        '杗',\r\n        '杧',\r\n        '汒',\r\n        '浝',\r\n        '牻',\r\n        '痝',\r\n        '盲',\r\n        '硭',\r\n        '笀',\r\n        '芒',\r\n        '茫',\r\n        '蘉',\r\n        '邙',\r\n        '釯',\r\n        '鋩',\r\n        '铓',\r\n        '駹',\r\n    ],\r\n    zuī: ['厜', '樶', '纗', '蟕'],\r\n    'shà xià': ['厦', '廈'],\r\n    áo: [\r\n        '厫',\r\n        '嗷',\r\n        '嗸',\r\n        '廒',\r\n        '敖',\r\n        '滶',\r\n        '獒',\r\n        '獓',\r\n        '璈',\r\n        '翱',\r\n        '翶',\r\n        '翺',\r\n        '聱',\r\n        '蔜',\r\n        '螯',\r\n        '謷',\r\n        '謸',\r\n        '遨',\r\n        '鏖',\r\n        '隞',\r\n        '鰲',\r\n        '鳌',\r\n        '鷔',\r\n        '鼇',\r\n    ],\r\n    'lán qiān': ['厱'],\r\n    'sī mǒu': ['厶'],\r\n    'gōng hóng': ['厷'],\r\n    'lín miǎo': ['厸'],\r\n    'qiú róu': ['厹'],\r\n    dū: ['厾', '嘟', '督', '醏'],\r\n    'xiàn xuán': ['县', '縣'],\r\n    'cān shēn cēn sān': ['参', '參', '叄', '叅'],\r\n    'ài yǐ': ['叆'],\r\n    'chā chà chǎ chá': ['叉'],\r\n    shuāng: [\r\n        '双',\r\n        '孀',\r\n        '孇',\r\n        '欆',\r\n        '礵',\r\n        '艭',\r\n        '雙',\r\n        '霜',\r\n        '騻',\r\n        '驦',\r\n        '骦',\r\n        '鷞',\r\n        '鸘',\r\n        '鹴',\r\n    ],\r\n    shōu: ['収', '收'],\r\n    guái: ['叏'],\r\n    bá: [\r\n        '叐',\r\n        '妭',\r\n        '抜',\r\n        '拔',\r\n        '炦',\r\n        '癹',\r\n        '胈',\r\n        '茇',\r\n        '菝',\r\n        '詙',\r\n        '跋',\r\n        '軷',\r\n        '魃',\r\n        '鼥',\r\n    ],\r\n    'fā fà': ['发'],\r\n    'zhuó yǐ lì jué': ['叕'],\r\n    qǔ: ['取', '娶', '竬', '蝺', '詓', '齲', '龋'],\r\n    'jiǎ xiá': ['叚', '徦'],\r\n    'wèi yù': ['叞', '尉', '蔚'],\r\n    dié: [\r\n        '叠',\r\n        '垤',\r\n        '堞',\r\n        '峌',\r\n        '幉',\r\n        '恎',\r\n        '惵',\r\n        '戜',\r\n        '曡',\r\n        '殜',\r\n        '氎',\r\n        '牃',\r\n        '牒',\r\n        '瓞',\r\n        '畳',\r\n        '疂',\r\n        '疉',\r\n        '疊',\r\n        '碟',\r\n        '絰',\r\n        '绖',\r\n        '耊',\r\n        '耋',\r\n        '胅',\r\n        '艓',\r\n        '苵',\r\n        '蜨',\r\n        '蝶',\r\n        '褋',\r\n        '詄',\r\n        '諜',\r\n        '谍',\r\n        '跮',\r\n        '蹀',\r\n        '迭',\r\n        '镻',\r\n        '鰈',\r\n        '鲽',\r\n        '鴩',\r\n        '𫶇',\r\n    ],\r\n    ruì: ['叡', '枘', '汭', '瑞', '睿', '芮', '蚋', '蜹', '銳', '鋭', '锐'],\r\n    'jù gōu': ['句'],\r\n    lìng: ['另', '呤', '炩', '蘦'],\r\n    'dāo dáo tāo': ['叨'],\r\n    'zhī zhǐ': ['只'],\r\n    jiào: [\r\n        '叫',\r\n        '呌',\r\n        '嘂',\r\n        '嘦',\r\n        '噍',\r\n        '嬓',\r\n        '斍',\r\n        '斠',\r\n        '滘',\r\n        '漖',\r\n        '獥',\r\n        '珓',\r\n        '皭',\r\n        '窖',\r\n        '藠',\r\n        '訆',\r\n        '譥',\r\n        '趭',\r\n        '較',\r\n        '轎',\r\n        '轿',\r\n        '较',\r\n        '酵',\r\n        '醮',\r\n        '釂',\r\n    ],\r\n    'zhào shào': ['召'],\r\n    'kě kè': ['可'],\r\n    'tái tāi': ['台', '苔'],\r\n    pǒ: ['叵', '尀', '笸', '箥', '鉕', '钷', '駊'],\r\n    'yè xié': ['叶'],\r\n    'hào háo': ['号'],\r\n    tàn: ['叹', '嘆', '探', '歎', '湠', '炭', '碳', '舕'],\r\n    'hōng hóng': ['叿'],\r\n    miē: ['吀', '咩', '哶', '孭'],\r\n    'xū yū yù': ['吁'],\r\n    chī: [\r\n        '吃',\r\n        '哧',\r\n        '喫',\r\n        '嗤',\r\n        '噄',\r\n        '妛',\r\n        '媸',\r\n        '彨',\r\n        '彲',\r\n        '摛',\r\n        '攡',\r\n        '殦',\r\n        '瓻',\r\n        '痴',\r\n        '癡',\r\n        '眵',\r\n        '瞝',\r\n        '笞',\r\n        '粚',\r\n        '胵',\r\n        '蚩',\r\n        '螭',\r\n        '訵',\r\n        '魑',\r\n        '鴟',\r\n        '鵄',\r\n        '鸱',\r\n        '黐',\r\n        '齝',\r\n        '𫄨',\r\n    ],\r\n    'xuān sòng': ['吅'],\r\n    yāo: [\r\n        '吆',\r\n        '喓',\r\n        '夭',\r\n        '妖',\r\n        '幺',\r\n        '楆',\r\n        '殀',\r\n        '祅',\r\n        '腰',\r\n        '葽',\r\n        '訞',\r\n        '邀',\r\n        '鴁',\r\n        '鴢',\r\n        '㙘',\r\n    ],\r\n    zǐ: [\r\n        '吇',\r\n        '姉',\r\n        '姊',\r\n        '子',\r\n        '杍',\r\n        '梓',\r\n        '榟',\r\n        '橴',\r\n        '滓',\r\n        '矷',\r\n        '秭',\r\n        '笫',\r\n        '籽',\r\n        '紫',\r\n        '耔',\r\n        '虸',\r\n        '訿',\r\n        '釨',\r\n    ],\r\n    'hé gě': ['合', '鲄'],\r\n    'cùn dòu': ['吋'],\r\n    'tóng tòng': ['同'],\r\n    'tǔ tù': ['吐', '唋'],\r\n    'zhà zhā': ['吒', '奓'],\r\n    'xià hè': ['吓'],\r\n    'ā yā': ['吖'],\r\n    'ma má mǎ': ['吗'],\r\n    lìn: [\r\n        '吝',\r\n        '恡',\r\n        '悋',\r\n        '橉',\r\n        '焛',\r\n        '甐',\r\n        '膦',\r\n        '蔺',\r\n        '藺',\r\n        '賃',\r\n        '赁',\r\n        '蹸',\r\n        '躏',\r\n        '躙',\r\n        '躪',\r\n        '轥',\r\n        '閵',\r\n    ],\r\n    tūn: ['吞', '暾', '朜', '焞'],\r\n    'bǐ pǐ': ['吡'],\r\n    qìn: ['吢', '吣', '唚', '抋', '揿', '搇', '撳', '沁', '瀙', '菣', '藽'],\r\n    'jiè gè': ['吤'],\r\n    'fǒu pǐ': ['否'],\r\n    'ba bā': ['吧'],\r\n    dūn: [\r\n        '吨',\r\n        '噸',\r\n        '墩',\r\n        '墪',\r\n        '惇',\r\n        '撉',\r\n        '撴',\r\n        '犜',\r\n        '獤',\r\n        '礅',\r\n        '蜳',\r\n        '蹾',\r\n        '驐',\r\n    ],\r\n    fēn: [\r\n        '吩',\r\n        '帉',\r\n        '昐',\r\n        '朆',\r\n        '梤',\r\n        '棻',\r\n        '氛',\r\n        '竕',\r\n        '紛',\r\n        '纷',\r\n        '翂',\r\n        '芬',\r\n        '衯',\r\n        '訜',\r\n        '躮',\r\n        '酚',\r\n        '鈖',\r\n        '雰',\r\n        '餴',\r\n        '饙',\r\n        '馚',\r\n    ],\r\n    'é huā': ['吪'],\r\n    'kēng háng': ['吭', '妔'],\r\n    shǔn: ['吮'],\r\n    'zhī zī': ['吱'],\r\n    'yǐn shěn': ['吲'],\r\n    wú: [\r\n        '吳',\r\n        '吴',\r\n        '呉',\r\n        '墲',\r\n        '峿',\r\n        '梧',\r\n        '橆',\r\n        '毋',\r\n        '洖',\r\n        '浯',\r\n        '無',\r\n        '珸',\r\n        '璑',\r\n        '祦',\r\n        '芜',\r\n        '茣',\r\n        '莁',\r\n        '蕪',\r\n        '蜈',\r\n        '蟱',\r\n        '譕',\r\n        '郚',\r\n        '鋙',\r\n        '铻',\r\n        '鯃',\r\n        '鵐',\r\n        '鷡',\r\n        '鹀',\r\n        '鼯',\r\n    ],\r\n    'chǎo chāo': ['吵'],\r\n    'nà nè': ['吶'],\r\n    'xuè chuò jué': ['吷'],\r\n    chuī: ['吹', '炊', '龡'],\r\n    'dōu rú': ['吺'],\r\n    hǒu: ['吼', '犼'],\r\n    'hōng hǒu ōu': ['吽'],\r\n    'wú yù': ['吾'],\r\n    'ya yā': ['呀'],\r\n    'è e': ['呃'],\r\n    dāi: ['呆', '懛', '獃'],\r\n    'mèn qǐ': ['呇'],\r\n    hōng: [\r\n        '呍',\r\n        '嚝',\r\n        '揈',\r\n        '灴',\r\n        '烘',\r\n        '焢',\r\n        '硡',\r\n        '薨',\r\n        '訇',\r\n        '谾',\r\n        '軣',\r\n        '輷',\r\n        '轟',\r\n        '轰',\r\n        '鍧',\r\n    ],\r\n    nà: [\r\n        '呐',\r\n        '捺',\r\n        '笝',\r\n        '納',\r\n        '纳',\r\n        '肭',\r\n        '蒳',\r\n        '衲',\r\n        '豽',\r\n        '貀',\r\n        '軜',\r\n        '郍',\r\n        '鈉',\r\n        '钠',\r\n        '靹',\r\n        '魶',\r\n    ],\r\n    'tūn tiān': ['呑'],\r\n    'fǔ ḿ': ['呒', '嘸'],\r\n    'dāi tǎi': ['呔'],\r\n    'ǒu ōu òu': ['呕'],\r\n    'bài bei': ['呗'],\r\n    'yuán yún yùn': ['员', '員'],\r\n    guō: [\r\n        '呙',\r\n        '啯',\r\n        '嘓',\r\n        '埚',\r\n        '堝',\r\n        '墎',\r\n        '崞',\r\n        '彉',\r\n        '彍',\r\n        '懖',\r\n        '猓',\r\n        '瘑',\r\n        '聒',\r\n        '蝈',\r\n        '蟈',\r\n        '郭',\r\n        '鈛',\r\n        '鍋',\r\n        '锅',\r\n    ],\r\n    'huá qì': ['呚'],\r\n    'qiàng qiāng': ['呛', '跄'],\r\n    shī: [\r\n        '呞',\r\n        '失',\r\n        '尸',\r\n        '屍',\r\n        '师',\r\n        '師',\r\n        '施',\r\n        '浉',\r\n        '湤',\r\n        '湿',\r\n        '溮',\r\n        '溼',\r\n        '濕',\r\n        '狮',\r\n        '獅',\r\n        '瑡',\r\n        '絁',\r\n        '葹',\r\n        '蒒',\r\n        '蓍',\r\n        '虱',\r\n        '蝨',\r\n        '褷',\r\n        '襹',\r\n        '詩',\r\n        '诗',\r\n        '邿',\r\n        '釃',\r\n        '鉇',\r\n        '鍦',\r\n        '鯴',\r\n        '鰤',\r\n        '鲺',\r\n        '鳲',\r\n        '鳾',\r\n        '鶳',\r\n        '鸤',\r\n        '䴓',\r\n        '𫚕',\r\n    ],\r\n    juǎn: ['呟', '埍', '臇', '菤', '錈', '锩'],\r\n    pěn: ['呠', '翸'],\r\n    'wěn mǐn': ['呡'],\r\n    'ne ní': ['呢'],\r\n    'ḿ m̀ móu': ['呣'],\r\n    rán: [\r\n        '呥',\r\n        '嘫',\r\n        '然',\r\n        '燃',\r\n        '繎',\r\n        '肰',\r\n        '蚦',\r\n        '蚺',\r\n        '衻',\r\n        '袇',\r\n        '袡',\r\n        '髥',\r\n        '髯',\r\n    ],\r\n    'tiè chè': ['呫'],\r\n    'qì zhī': ['呮'],\r\n    'zǐ cī': ['呰'],\r\n    'guā gū guǎ': ['呱'],\r\n    'cī zī': ['呲'],\r\n    'hǒu xǔ gòu': ['呴'],\r\n    'hē ā á ǎ à a': ['呵'],\r\n    náo: [\r\n        '呶',\r\n        '夒',\r\n        '峱',\r\n        '嶩',\r\n        '巎',\r\n        '挠',\r\n        '撓',\r\n        '猱',\r\n        '硇',\r\n        '蛲',\r\n        '蟯',\r\n        '詉',\r\n        '譊',\r\n        '鐃',\r\n        '铙',\r\n    ],\r\n    'xiā gā': ['呷'],\r\n    pēi: ['呸', '怌', '肧', '胚', '衃', '醅'],\r\n    'háo xiāo': ['呺'],\r\n    mìng: ['命', '掵'],\r\n    'dá dàn': ['呾'],\r\n    'zuǐ jǔ': ['咀'],\r\n    'xián gān': ['咁'],\r\n    pǒu: ['咅', '哣', '犃'],\r\n    'yǎng yāng': ['咉'],\r\n    'zǎ zé zhā': ['咋'],\r\n    'hé hè huó huò hú': ['和'],\r\n    hāi: ['咍'],\r\n    dā: ['咑', '哒', '噠', '墶', '搭', '撘', '耷', '褡', '鎝', '𨱏'],\r\n    'kǎ kā': ['咔'],\r\n    gū: [\r\n        '咕',\r\n        '唂',\r\n        '唃',\r\n        '姑',\r\n        '嫴',\r\n        '孤',\r\n        '巬',\r\n        '巭',\r\n        '柧',\r\n        '橭',\r\n        '沽',\r\n        '泒',\r\n        '稒',\r\n        '笟',\r\n        '箍',\r\n        '箛',\r\n        '篐',\r\n        '罛',\r\n        '苽',\r\n        '菇',\r\n        '菰',\r\n        '蓇',\r\n        '觚',\r\n        '軱',\r\n        '軲',\r\n        '轱',\r\n        '辜',\r\n        '酤',\r\n        '鈲',\r\n        '鮕',\r\n        '鴣',\r\n        '鸪',\r\n    ],\r\n    'kā gā': ['咖'],\r\n    zuo: ['咗'],\r\n    lóng: [\r\n        '咙',\r\n        '嚨',\r\n        '嶐',\r\n        '巃',\r\n        '巄',\r\n        '昽',\r\n        '曨',\r\n        '朧',\r\n        '栊',\r\n        '槞',\r\n        '櫳',\r\n        '湰',\r\n        '滝',\r\n        '漋',\r\n        '爖',\r\n        '珑',\r\n        '瓏',\r\n        '癃',\r\n        '眬',\r\n        '矓',\r\n        '砻',\r\n        '礱',\r\n        '礲',\r\n        '窿',\r\n        '竜',\r\n        '聋',\r\n        '聾',\r\n        '胧',\r\n        '茏',\r\n        '蘢',\r\n        '蠪',\r\n        '蠬',\r\n        '襱',\r\n        '豅',\r\n        '鏧',\r\n        '鑨',\r\n        '霳',\r\n        '靇',\r\n        '驡',\r\n        '鸗',\r\n        '龍',\r\n        '龒',\r\n        '龙',\r\n    ],\r\n    'xiàn xián': ['咞'],\r\n    qì: [\r\n        '咠',\r\n        '唭',\r\n        '噐',\r\n        '器',\r\n        '夡',\r\n        '弃',\r\n        '憇',\r\n        '憩',\r\n        '暣',\r\n        '棄',\r\n        '欫',\r\n        '气',\r\n        '気',\r\n        '氣',\r\n        '汔',\r\n        '汽',\r\n        '泣',\r\n        '湆',\r\n        '湇',\r\n        '炁',\r\n        '甈',\r\n        '盵',\r\n        '矵',\r\n        '碛',\r\n        '碶',\r\n        '磜',\r\n        '磧',\r\n        '罊',\r\n        '芞',\r\n        '葺',\r\n        '藒',\r\n        '蟿',\r\n        '訖',\r\n        '讫',\r\n        '迄',\r\n        '鐑',\r\n    ],\r\n    'xì dié': ['咥'],\r\n    'liē liě lié lie': ['咧'],\r\n    zī: [\r\n        '咨',\r\n        '嗞',\r\n        '姕',\r\n        '姿',\r\n        '孜',\r\n        '孳',\r\n        '孶',\r\n        '崰',\r\n        '嵫',\r\n        '栥',\r\n        '椔',\r\n        '淄',\r\n        '湽',\r\n        '滋',\r\n        '澬',\r\n        '玆',\r\n        '禌',\r\n        '秶',\r\n        '粢',\r\n        '紎',\r\n        '緇',\r\n        '緕',\r\n        '纃',\r\n        '缁',\r\n        '茊',\r\n        '茲',\r\n        '葘',\r\n        '諮',\r\n        '谘',\r\n        '貲',\r\n        '資',\r\n        '赀',\r\n        '资',\r\n        '赼',\r\n        '趑',\r\n        '趦',\r\n        '輜',\r\n        '輺',\r\n        '辎',\r\n        '鄑',\r\n        '鈭',\r\n        '錙',\r\n        '鍿',\r\n        '鎡',\r\n        '锱',\r\n        '镃',\r\n        '頾',\r\n        '頿',\r\n        '髭',\r\n        '鯔',\r\n        '鰦',\r\n        '鲻',\r\n        '鶅',\r\n        '鼒',\r\n        '齍',\r\n        '齜',\r\n        '龇',\r\n    ],\r\n    mī: ['咪'],\r\n    'jī xī qià': ['咭'],\r\n    'gē luò kǎ lo': ['咯'],\r\n    'shù xún': ['咰'],\r\n    'zán zá zǎ zan': ['咱'],\r\n    'hāi ké': ['咳'],\r\n    huī: [\r\n        '咴',\r\n        '噅',\r\n        '噕',\r\n        '婎',\r\n        '媈',\r\n        '幑',\r\n        '徽',\r\n        '恢',\r\n        '拻',\r\n        '挥',\r\n        '揮',\r\n        '晖',\r\n        '暉',\r\n        '楎',\r\n        '洃',\r\n        '瀈',\r\n        '灰',\r\n        '灳',\r\n        '烣',\r\n        '睳',\r\n        '禈',\r\n        '翚',\r\n        '翬',\r\n        '蘳',\r\n        '袆',\r\n        '褘',\r\n        '詼',\r\n        '诙',\r\n        '豗',\r\n        '輝',\r\n        '辉',\r\n        '鰴',\r\n        '麾',\r\n        '㧑',\r\n    ],\r\n    'huài shì': ['咶'],\r\n    táo: [\r\n        '咷',\r\n        '啕',\r\n        '桃',\r\n        '檮',\r\n        '洮',\r\n        '淘',\r\n        '祹',\r\n        '綯',\r\n        '绹',\r\n        '萄',\r\n        '蜪',\r\n        '裪',\r\n        '迯',\r\n        '逃',\r\n        '醄',\r\n        '鋾',\r\n        '鞀',\r\n        '鞉',\r\n        '饀',\r\n        '駣',\r\n        '騊',\r\n        '鼗',\r\n        '𫘦',\r\n    ],\r\n    xián: [\r\n        '咸',\r\n        '啣',\r\n        '娴',\r\n        '娹',\r\n        '婱',\r\n        '嫌',\r\n        '嫺',\r\n        '嫻',\r\n        '弦',\r\n        '挦',\r\n        '撏',\r\n        '涎',\r\n        '湺',\r\n        '澖',\r\n        '甉',\r\n        '痫',\r\n        '癇',\r\n        '癎',\r\n        '絃',\r\n        '胘',\r\n        '舷',\r\n        '藖',\r\n        '蚿',\r\n        '蛝',\r\n        '衔',\r\n        '衘',\r\n        '誸',\r\n        '諴',\r\n        '賢',\r\n        '贒',\r\n        '贤',\r\n        '輱',\r\n        '醎',\r\n        '銜',\r\n        '鑦',\r\n        '閑',\r\n        '闲',\r\n        '鷳',\r\n        '鷴',\r\n        '鷼',\r\n        '鹇',\r\n        '鹹',\r\n        '麙',\r\n        '𫍯',\r\n    ],\r\n    'è àn': ['咹'],\r\n    'xuān xuǎn': ['咺', '烜'],\r\n    'wāi hé wǒ guǎ guō': ['咼'],\r\n    'yàn yè yān': ['咽'],\r\n    āi: ['哀', '哎', '埃', '溾', '銰', '鎄', '锿'],\r\n    pǐn: ['品', '榀'],\r\n    shěn: [\r\n        '哂',\r\n        '婶',\r\n        '嬸',\r\n        '审',\r\n        '宷',\r\n        '審',\r\n        '弞',\r\n        '曋',\r\n        '渖',\r\n        '瀋',\r\n        '瞫',\r\n        '矤',\r\n        '矧',\r\n        '覾',\r\n        '訠',\r\n        '諗',\r\n        '讅',\r\n        '谂',\r\n        '谉',\r\n        '邥',\r\n        '頣',\r\n        '魫',\r\n    ],\r\n    'hǒng hōng hòng': ['哄'],\r\n    'wā wa': ['哇'],\r\n    'hā hǎ hà': ['哈'],\r\n    zāi: ['哉', '栽', '渽', '溨', '災', '灾', '烖', '睵', '賳'],\r\n    'dì diè': ['哋'],\r\n    pài: ['哌', '沠', '派', '渒', '湃', '蒎', '鎃'],\r\n    'gén hěn': ['哏'],\r\n    'yǎ yā': ['哑', '雅'],\r\n    'yuě huì': ['哕', '噦'],\r\n    nián: ['哖', '年', '秊', '秥', '鮎', '鯰', '鲇', '鲶', '鵇', '黏'],\r\n    'huá huā': ['哗', '嘩'],\r\n    'jì jiē zhāi': ['哜', '嚌'],\r\n    mōu: ['哞'],\r\n    'yō yo': ['哟', '喲'],\r\n    lòng: ['哢', '梇', '贚'],\r\n    'ò ó é': ['哦'],\r\n    'lī lǐ li': ['哩'],\r\n    'nǎ na nǎi né něi': ['哪'],\r\n    hè: [\r\n        '哬',\r\n        '垎',\r\n        '壑',\r\n        '寉',\r\n        '惒',\r\n        '焃',\r\n        '煂',\r\n        '燺',\r\n        '爀',\r\n        '癋',\r\n        '碋',\r\n        '翯',\r\n        '褐',\r\n        '謞',\r\n        '賀',\r\n        '贺',\r\n        '赫',\r\n        '靍',\r\n        '靎',\r\n        '靏',\r\n        '鶴',\r\n        '鸖',\r\n        '鹤',\r\n    ],\r\n    'bō pò bā': ['哱'],\r\n    zhé: [\r\n        '哲',\r\n        '啠',\r\n        '喆',\r\n        '嚞',\r\n        '埑',\r\n        '悊',\r\n        '摺',\r\n        '晢',\r\n        '晣',\r\n        '歽',\r\n        '矺',\r\n        '砓',\r\n        '磔',\r\n        '籷',\r\n        '粍',\r\n        '虴',\r\n        '蛰',\r\n        '蟄',\r\n        '袩',\r\n        '詟',\r\n        '謫',\r\n        '謺',\r\n        '讁',\r\n        '讋',\r\n        '谪',\r\n        '輒',\r\n        '輙',\r\n        '轍',\r\n        '辄',\r\n        '辙',\r\n        '鮿',\r\n    ],\r\n    'liàng láng': ['哴'],\r\n    'liè lǜ': ['哷'],\r\n    hān: ['哻', '憨', '蚶', '谽', '酣', '頇', '顸', '馠', '魽', '鼾'],\r\n    'hēng hng': ['哼'],\r\n    gěng: [\r\n        '哽',\r\n        '埂',\r\n        '峺',\r\n        '挭',\r\n        '梗',\r\n        '綆',\r\n        '绠',\r\n        '耿',\r\n        '莄',\r\n        '郠',\r\n        '骾',\r\n        '鯁',\r\n        '鲠',\r\n        '𬒔',\r\n    ],\r\n    'chuò yuè': ['哾'],\r\n    'gě jiā': ['哿'],\r\n    'bei bài': ['唄'],\r\n    'hán hàn': ['唅'],\r\n    chún: [\r\n        '唇',\r\n        '浱',\r\n        '湻',\r\n        '滣',\r\n        '漘',\r\n        '犉',\r\n        '純',\r\n        '纯',\r\n        '脣',\r\n        '莼',\r\n        '蒓',\r\n        '蓴',\r\n        '醇',\r\n        '醕',\r\n        '錞',\r\n        '陙',\r\n        '鯙',\r\n        '鶉',\r\n        '鹑',\r\n        '𬭚',\r\n    ],\r\n    'ài āi': ['唉'],\r\n    'jiá qiǎn': ['唊'],\r\n    'yán dàn xián': ['唌'],\r\n    chē: ['唓', '砗', '硨', '莗', '蛼'],\r\n    'wú ńg ń': ['唔'],\r\n    zào: [\r\n        '唕',\r\n        '唣',\r\n        '噪',\r\n        '慥',\r\n        '梍',\r\n        '灶',\r\n        '煰',\r\n        '燥',\r\n        '皁',\r\n        '皂',\r\n        '竃',\r\n        '竈',\r\n        '簉',\r\n        '艁',\r\n        '譟',\r\n        '趮',\r\n        '躁',\r\n        '造',\r\n        '𥖨',\r\n    ],\r\n    dí: [\r\n        '唙',\r\n        '啇',\r\n        '嘀',\r\n        '嚁',\r\n        '嫡',\r\n        '廸',\r\n        '敌',\r\n        '敵',\r\n        '梑',\r\n        '涤',\r\n        '滌',\r\n        '狄',\r\n        '笛',\r\n        '籴',\r\n        '糴',\r\n        '苖',\r\n        '荻',\r\n        '蔋',\r\n        '蔐',\r\n        '藡',\r\n        '覿',\r\n        '觌',\r\n        '豴',\r\n        '迪',\r\n        '靮',\r\n        '頔',\r\n        '馰',\r\n        '髢',\r\n        '鸐',\r\n        '𬱖',\r\n    ],\r\n    'gòng hǒng gǒng': ['唝', '嗊'],\r\n    dóu: ['唞'],\r\n    'lào láo': ['唠', '嘮', '憦'],\r\n    huàn: [\r\n        '唤',\r\n        '喚',\r\n        '奂',\r\n        '奐',\r\n        '宦',\r\n        '嵈',\r\n        '幻',\r\n        '患',\r\n        '愌',\r\n        '换',\r\n        '換',\r\n        '擐',\r\n        '攌',\r\n        '梙',\r\n        '槵',\r\n        '浣',\r\n        '涣',\r\n        '渙',\r\n        '漶',\r\n        '澣',\r\n        '烉',\r\n        '焕',\r\n        '煥',\r\n        '瑍',\r\n        '痪',\r\n        '瘓',\r\n        '睆',\r\n        '肒',\r\n        '藧',\r\n        '豢',\r\n        '轘',\r\n        '逭',\r\n        '鯇',\r\n        '鯶',\r\n        '鰀',\r\n        '鲩',\r\n    ],\r\n    léng: ['唥', '塄', '楞', '碐', '薐'],\r\n    'wō wěi': ['唩'],\r\n    fěng: ['唪', '覂', '諷', '讽'],\r\n    'yín jìn': ['唫'],\r\n    'hǔ xià': ['唬'],\r\n    wéi: [\r\n        '唯',\r\n        '围',\r\n        '圍',\r\n        '壝',\r\n        '峗',\r\n        '峞',\r\n        '嵬',\r\n        '帏',\r\n        '帷',\r\n        '幃',\r\n        '惟',\r\n        '桅',\r\n        '沩',\r\n        '洈',\r\n        '涠',\r\n        '湋',\r\n        '溈',\r\n        '潍',\r\n        '潙',\r\n        '潿',\r\n        '濰',\r\n        '犩',\r\n        '矀',\r\n        '維',\r\n        '维',\r\n        '蓶',\r\n        '覹',\r\n        '违',\r\n        '違',\r\n        '鄬',\r\n        '醀',\r\n        '鍏',\r\n        '闈',\r\n        '闱',\r\n        '韋',\r\n        '韦',\r\n        '鮠',\r\n        '𣲗',\r\n        '𬶏',\r\n    ],\r\n    shuā: ['唰'],\r\n    chàng: ['唱', '怅', '悵', '暢', '焻', '畅', '畼', '誯', '韔', '鬯'],\r\n    'ér wā': ['唲'],\r\n    qiàng: ['唴', '炝', '熗', '羻'],\r\n    yō: ['唷'],\r\n    yū: ['唹', '淤', '瘀', '盓', '箊', '紆', '纡', '込', '迂', '迃', '陓'],\r\n    lài: [\r\n        '唻',\r\n        '濑',\r\n        '瀨',\r\n        '瀬',\r\n        '癞',\r\n        '癩',\r\n        '睐',\r\n        '睞',\r\n        '籁',\r\n        '籟',\r\n        '藾',\r\n        '賚',\r\n        '賴',\r\n        '赉',\r\n        '赖',\r\n        '頼',\r\n        '顂',\r\n        '鵣',\r\n    ],\r\n    tuò: ['唾', '嶞', '柝', '毤', '毻', '箨', '籜', '萚', '蘀', '跅'],\r\n    'zhōu zhāo tiào': ['啁'],\r\n    kěn: ['啃', '垦', '墾', '恳', '懇', '肎', '肯', '肻', '豤', '錹'],\r\n    'zhuó zhào': ['啅', '濯'],\r\n    'hēng hèng': ['啈', '悙'],\r\n    'lín lán': ['啉'],\r\n    'a ā á ǎ à': ['啊'],\r\n    qiāng: [\r\n        '啌',\r\n        '嗴',\r\n        '嶈',\r\n        '戕',\r\n        '摤',\r\n        '斨',\r\n        '枪',\r\n        '槍',\r\n        '溬',\r\n        '牄',\r\n        '猐',\r\n        '獇',\r\n        '羌',\r\n        '羗',\r\n        '腔',\r\n        '蜣',\r\n        '謒',\r\n        '鏘',\r\n        '锖',\r\n        '锵',\r\n    ],\r\n    'tūn zhūn xiāng duǐ': ['啍'],\r\n    wèn: ['問', '妏', '揾', '搵', '璺', '问', '顐'],\r\n    'cuì qi': ['啐'],\r\n    'dié shà jié tì': ['啑'],\r\n    'yuē wā': ['啘'],\r\n    'zǐ cǐ': ['啙'],\r\n    'bǐ tú': ['啚'],\r\n    'chuò chuài': ['啜'],\r\n    'yǎ yā è': ['啞'],\r\n    fēi: [\r\n        '啡',\r\n        '婓',\r\n        '婔',\r\n        '扉',\r\n        '暃',\r\n        '渄',\r\n        '猆',\r\n        '緋',\r\n        '绯',\r\n        '裶',\r\n        '霏',\r\n        '非',\r\n        '靟',\r\n        '飛',\r\n        '飝',\r\n        '飞',\r\n        '餥',\r\n        '馡',\r\n        '騑',\r\n        '騛',\r\n        '鯡',\r\n        '鲱',\r\n        '𬴂',\r\n    ],\r\n    pí: [\r\n        '啤',\r\n        '壀',\r\n        '枇',\r\n        '毗',\r\n        '毘',\r\n        '焷',\r\n        '琵',\r\n        '疲',\r\n        '皮',\r\n        '篺',\r\n        '罴',\r\n        '羆',\r\n        '脾',\r\n        '腗',\r\n        '膍',\r\n        '蚍',\r\n        '蚽',\r\n        '蜱',\r\n        '螷',\r\n        '蠯',\r\n        '豼',\r\n        '貔',\r\n        '郫',\r\n        '鈹',\r\n        '阰',\r\n        '陴',\r\n        '隦',\r\n        '魮',\r\n        '鮍',\r\n        '鲏',\r\n        '鵧',\r\n        '鼙',\r\n    ],\r\n    shá: ['啥'],\r\n    'lā la': ['啦'],\r\n    'yīng qíng': ['啨'],\r\n    pā: ['啪', '妑', '舥', '葩', '趴'],\r\n    'zhě shì': ['啫'],\r\n    sè: [\r\n        '啬',\r\n        '嗇',\r\n        '懎',\r\n        '擌',\r\n        '栜',\r\n        '歮',\r\n        '涩',\r\n        '渋',\r\n        '澀',\r\n        '澁',\r\n        '濇',\r\n        '濏',\r\n        '瀒',\r\n        '瑟',\r\n        '璱',\r\n        '瘷',\r\n        '穑',\r\n        '穡',\r\n        '穯',\r\n        '繬',\r\n        '譅',\r\n        '轖',\r\n        '銫',\r\n        '鏼',\r\n        '铯',\r\n        '飋',\r\n    ],\r\n    niè: [\r\n        '啮',\r\n        '嗫',\r\n        '噛',\r\n        '嚙',\r\n        '囁',\r\n        '囓',\r\n        '圼',\r\n        '孼',\r\n        '孽',\r\n        '嵲',\r\n        '嶭',\r\n        '巕',\r\n        '帇',\r\n        '敜',\r\n        '枿',\r\n        '槷',\r\n        '櫱',\r\n        '涅',\r\n        '湼',\r\n        '痆',\r\n        '篞',\r\n        '籋',\r\n        '糱',\r\n        '糵',\r\n        '聂',\r\n        '聶',\r\n        '臬',\r\n        '臲',\r\n        '蘖',\r\n        '蠥',\r\n        '讘',\r\n        '踂',\r\n        '踗',\r\n        '踙',\r\n        '蹑',\r\n        '躡',\r\n        '錜',\r\n        '鎳',\r\n        '鑈',\r\n        '鑷',\r\n        '钀',\r\n        '镊',\r\n        '镍',\r\n        '闑',\r\n        '陧',\r\n        '隉',\r\n        '顳',\r\n        '颞',\r\n        '齧',\r\n        '𫔶',\r\n    ],\r\n    'luō luó luo': ['啰', '囉'],\r\n    'tān chǎn tuō': ['啴'],\r\n    bo: ['啵', '蔔'],\r\n    dìng: [\r\n        '啶',\r\n        '定',\r\n        '椗',\r\n        '矴',\r\n        '碇',\r\n        '碠',\r\n        '磸',\r\n        '聢',\r\n        '腚',\r\n        '萣',\r\n        '蝊',\r\n        '訂',\r\n        '订',\r\n        '錠',\r\n        '锭',\r\n        '顁',\r\n        '飣',\r\n        '饤',\r\n    ],\r\n    lāng: ['啷'],\r\n    'án ān': ['啽'],\r\n    kā: ['喀', '擖'],\r\n    'yóng yú': ['喁'],\r\n    'lā lá lǎ': ['喇'],\r\n    jiē: [\r\n        '喈',\r\n        '喼',\r\n        '嗟',\r\n        '堦',\r\n        '媘',\r\n        '接',\r\n        '掲',\r\n        '擑',\r\n        '湝',\r\n        '煯',\r\n        '疖',\r\n        '痎',\r\n        '癤',\r\n        '皆',\r\n        '秸',\r\n        '稭',\r\n        '脻',\r\n        '蝔',\r\n        '街',\r\n        '謯',\r\n        '阶',\r\n        '階',\r\n        '鞂',\r\n        '鶛',\r\n    ],\r\n    hóu: [\r\n        '喉',\r\n        '帿',\r\n        '猴',\r\n        '瘊',\r\n        '睺',\r\n        '篌',\r\n        '糇',\r\n        '翭',\r\n        '葔',\r\n        '鄇',\r\n        '鍭',\r\n        '餱',\r\n        '骺',\r\n        '鯸',\r\n        '𬭤',\r\n    ],\r\n    'dié zhá': ['喋'],\r\n    wāi: ['喎', '歪', '竵'],\r\n    'nuò rě': ['喏'],\r\n    'xù huò guó': ['喐'],\r\n    zán: ['喒'],\r\n    'wō ō': ['喔'],\r\n    hú: [\r\n        '喖',\r\n        '嘝',\r\n        '囫',\r\n        '壶',\r\n        '壷',\r\n        '壺',\r\n        '媩',\r\n        '弧',\r\n        '搰',\r\n        '斛',\r\n        '楜',\r\n        '槲',\r\n        '湖',\r\n        '瀫',\r\n        '焀',\r\n        '煳',\r\n        '狐',\r\n        '猢',\r\n        '瑚',\r\n        '瓳',\r\n        '箶',\r\n        '絗',\r\n        '縠',\r\n        '胡',\r\n        '葫',\r\n        '蔛',\r\n        '蝴',\r\n        '螜',\r\n        '衚',\r\n        '觳',\r\n        '醐',\r\n        '鍸',\r\n        '頶',\r\n        '餬',\r\n        '鬍',\r\n        '魱',\r\n        '鰗',\r\n        '鵠',\r\n        '鶘',\r\n        '鶦',\r\n        '鹕',\r\n    ],\r\n    'huàn yuán xuǎn hé': ['喛'],\r\n    xǐ: [\r\n        '喜',\r\n        '囍',\r\n        '壐',\r\n        '屣',\r\n        '徙',\r\n        '憙',\r\n        '枲',\r\n        '橲',\r\n        '歖',\r\n        '漇',\r\n        '玺',\r\n        '璽',\r\n        '矖',\r\n        '禧',\r\n        '縰',\r\n        '葈',\r\n        '葸',\r\n        '蓰',\r\n        '蟢',\r\n        '謑',\r\n        '蹝',\r\n        '躧',\r\n        '鈢',\r\n        '鉨',\r\n        '鉩',\r\n        '鱚',\r\n        '𬭳',\r\n        '𬶮',\r\n    ],\r\n    'hē hè yè': ['喝'],\r\n    kuì: [\r\n        '喟',\r\n        '嘳',\r\n        '媿',\r\n        '嬇',\r\n        '愦',\r\n        '愧',\r\n        '憒',\r\n        '篑',\r\n        '簣',\r\n        '籄',\r\n        '聩',\r\n        '聭',\r\n        '聵',\r\n        '膭',\r\n        '蕢',\r\n        '謉',\r\n        '餽',\r\n        '饋',\r\n        '馈',\r\n    ],\r\n    'zhǒng chuáng': ['喠'],\r\n    'wéi wèi': ['喡', '為', '爲'],\r\n    'duó zhà': ['喥'],\r\n    'sāng sàng': ['喪'],\r\n    'qiáo jiāo': ['喬'],\r\n    'pèn bēn': ['喯'],\r\n    'cān sūn qī': ['喰'],\r\n    'zhā chā': ['喳'],\r\n    miāo: ['喵'],\r\n    'pēn pèn': ['喷'],\r\n    kuí: [\r\n        '喹',\r\n        '夔',\r\n        '奎',\r\n        '巙',\r\n        '戣',\r\n        '揆',\r\n        '晆',\r\n        '暌',\r\n        '楏',\r\n        '楑',\r\n        '櫆',\r\n        '犪',\r\n        '睽',\r\n        '葵',\r\n        '藈',\r\n        '蘷',\r\n        '虁',\r\n        '蝰',\r\n        '躨',\r\n        '逵',\r\n        '鄈',\r\n        '鍨',\r\n        '鍷',\r\n        '頯',\r\n        '馗',\r\n        '騤',\r\n        '骙',\r\n        '魁',\r\n    ],\r\n    'lou lóu': ['喽'],\r\n    'zào qiāo': ['喿'],\r\n    'hè xiāo xiào hù': ['嗃'],\r\n    'á shà': ['嗄'],\r\n    xiù: [\r\n        '嗅',\r\n        '岫',\r\n        '峀',\r\n        '溴',\r\n        '珛',\r\n        '琇',\r\n        '璓',\r\n        '秀',\r\n        '綉',\r\n        '繍',\r\n        '繡',\r\n        '绣',\r\n        '螑',\r\n        '袖',\r\n        '褎',\r\n        '褏',\r\n        '銹',\r\n        '鏥',\r\n        '鏽',\r\n        '锈',\r\n        '齅',\r\n    ],\r\n    'qiāng qiàng': ['嗆', '戗', '戧', '蹌', '蹡'],\r\n    'ài yì': ['嗌', '艾'],\r\n    'má mǎ ma': ['嗎'],\r\n    'kè kē': ['嗑'],\r\n    'dā tà': ['嗒', '鎉'],\r\n    sǎng: ['嗓', '搡', '磉', '褬', '鎟', '顙', '颡'],\r\n    chēn: ['嗔', '抻', '琛', '瞋', '諃', '謓', '賝', '郴', '𬘭'],\r\n    'wā gǔ': ['嗗'],\r\n    'pǎng bēng': ['嗙'],\r\n    'xián qiǎn qiān': ['嗛'],\r\n    lào: ['嗠', '嫪', '橯', '涝', '澇', '耢', '耮', '躼', '軂', '酪'],\r\n    wēng: ['嗡', '翁', '聬', '螉', '鎓', '鶲', '鹟', '𬭩'],\r\n    wà: ['嗢', '腽', '膃', '袜', '襪', '韤'],\r\n    'hēi hāi': ['嗨'],\r\n    hē: ['嗬', '欱', '蠚', '訶', '诃'],\r\n    zi: ['嗭'],\r\n    sǎi: ['嗮'],\r\n    'ǹg ńg ňg': ['嗯'],\r\n    gě: ['嗰', '舸'],\r\n    ná: ['嗱', '拏', '拿', '鎿', '镎'],\r\n    diǎ: ['嗲'],\r\n    'ài ǎi āi': ['嗳'],\r\n    tōng: ['嗵', '樋', '炵', '蓪'],\r\n    'zuī suī': ['嗺'],\r\n    'zhē zhè zhù zhe': ['嗻'],\r\n    mò: [\r\n        '嗼',\r\n        '圽',\r\n        '塻',\r\n        '墨',\r\n        '妺',\r\n        '嫼',\r\n        '寞',\r\n        '帞',\r\n        '昩',\r\n        '末',\r\n        '枺',\r\n        '歿',\r\n        '殁',\r\n        '沫',\r\n        '漠',\r\n        '爅',\r\n        '獏',\r\n        '瘼',\r\n        '皌',\r\n        '眽',\r\n        '眿',\r\n        '瞐',\r\n        '瞙',\r\n        '砞',\r\n        '礳',\r\n        '秣',\r\n        '絈',\r\n        '纆',\r\n        '耱',\r\n        '茉',\r\n        '莈',\r\n        '蓦',\r\n        '蛨',\r\n        '蟔',\r\n        '貃',\r\n        '貊',\r\n        '貘',\r\n        '銆',\r\n        '鏌',\r\n        '镆',\r\n        '陌',\r\n        '靺',\r\n        '驀',\r\n        '魩',\r\n        '默',\r\n        '黙',\r\n        '𬙊',\r\n    ],\r\n    sòu: ['嗽', '瘶'],\r\n    tǎn: [\r\n        '嗿',\r\n        '坦',\r\n        '忐',\r\n        '憳',\r\n        '憻',\r\n        '暺',\r\n        '毯',\r\n        '璮',\r\n        '菼',\r\n        '袒',\r\n        '襢',\r\n        '醓',\r\n        '鉭',\r\n        '钽',\r\n    ],\r\n    'jiào dǎo': ['嘄'],\r\n    'kǎi gě': ['嘅'],\r\n    'shān càn': ['嘇'],\r\n    cáo: ['嘈', '嶆', '曹', '曺', '槽', '漕', '艚', '蓸', '螬', '褿', '鏪', '𥕢'],\r\n    piào: ['嘌', '徱', '蔈', '驃'],\r\n    'lóu lou': ['嘍'],\r\n    gǎ: ['尕', '玍'],\r\n    'gǔ jiǎ': ['嘏'],\r\n    'jiāo xiāo': ['嘐'],\r\n    'xū shī': ['嘘', '噓'],\r\n    pó: ['嘙', '嚩', '婆', '櫇', '皤', '鄱'],\r\n    'dē dēi': ['嘚'],\r\n    'ma má': ['嘛'],\r\n    'lē lei': ['嘞'],\r\n    'gā gá gǎ': ['嘠'],\r\n    sāi: ['嘥', '噻', '毢', '腮', '顋', '鰓'],\r\n    'zuō chuài': ['嘬'],\r\n    'cháo zhāo': ['嘲', '朝', '鼂'],\r\n    zuǐ: ['嘴', '噿', '嶊', '璻'],\r\n    'qiáo qiào': ['嘺', '翹', '谯'],\r\n    'chù xù shòu': ['嘼'],\r\n    'tān chǎn': ['嘽'],\r\n    'dàn tán': ['嘾', '弾', '彈', '惔', '澹'],\r\n    'hēi mò': ['嘿'],\r\n    ě: ['噁', '砨', '頋', '騀', '鵈'],\r\n    'fān bo': ['噃'],\r\n    chuáng: ['噇', '床', '牀'],\r\n    'cù zā hé': ['噈'],\r\n    'tūn kuò': ['噋'],\r\n    'cēng chēng': ['噌'],\r\n    dēng: ['噔', '嬁', '灯', '燈', '璒', '登', '竳', '簦', '艠', '豋'],\r\n    pū: ['噗', '扑', '撲', '攴', '攵', '潽', '炇', '陠'],\r\n    juē: ['噘', '屩', '屫', '撧'],\r\n    lū: ['噜', '嚕', '撸', '擼', '謢'],\r\n    zhān: [\r\n        '噡',\r\n        '岾',\r\n        '惉',\r\n        '旃',\r\n        '旜',\r\n        '枬',\r\n        '栴',\r\n        '毡',\r\n        '氈',\r\n        '氊',\r\n        '沾',\r\n        '瞻',\r\n        '薝',\r\n        '蛅',\r\n        '詀',\r\n        '詹',\r\n        '譫',\r\n        '谵',\r\n        '趈',\r\n        '邅',\r\n        '閚',\r\n        '霑',\r\n        '飦',\r\n        '饘',\r\n        '驙',\r\n        '魙',\r\n        '鱣',\r\n        '鸇',\r\n        '鹯',\r\n        '𫗴',\r\n    ],\r\n    ō: ['噢'],\r\n    'zhòu zhuó': ['噣'],\r\n    'jiào qiào chī': ['噭'],\r\n    yuàn: [\r\n        '噮',\r\n        '妴',\r\n        '怨',\r\n        '愿',\r\n        '掾',\r\n        '瑗',\r\n        '禐',\r\n        '苑',\r\n        '衏',\r\n        '裫',\r\n        '褑',\r\n        '院',\r\n        '願',\r\n    ],\r\n    'ǎi ài āi': ['噯'],\r\n    'yōng yǒng': ['噰', '澭'],\r\n    'jué xué': ['噱'],\r\n    'pēn pèn fèn': ['噴'],\r\n    gá: ['噶', '尜', '釓', '錷', '钆'],\r\n    'xīn hěn hèn': ['噷'],\r\n    dāng: ['噹', '澢', '珰', '璫', '筜', '簹', '艡', '蟷', '裆', '襠'],\r\n    làn: ['嚂', '滥', '濫', '烂', '燗', '爁', '爛', '爤', '瓓', '糷', '钄'],\r\n    tà: [\r\n        '嚃',\r\n        '嚺',\r\n        '崉',\r\n        '挞',\r\n        '搨',\r\n        '撻',\r\n        '榻',\r\n        '橽',\r\n        '毾',\r\n        '涾',\r\n        '澾',\r\n        '濌',\r\n        '禢',\r\n        '粏',\r\n        '誻',\r\n        '譶',\r\n        '蹋',\r\n        '蹹',\r\n        '躂',\r\n        '躢',\r\n        '遝',\r\n        '錔',\r\n        '闒',\r\n        '闥',\r\n        '闼',\r\n        '阘',\r\n        '鞜',\r\n        '鞳',\r\n    ],\r\n    'huō huò ǒ': ['嚄'],\r\n    hāo: ['嚆', '茠', '蒿', '薅'],\r\n    'hè xià': ['嚇'],\r\n    'xiù pì': ['嚊'],\r\n    'zhōu chóu': ['嚋', '盩', '诪'],\r\n    mē: ['嚒'],\r\n    'chā cā': ['嚓'],\r\n    'bó pào bào': ['嚗'],\r\n    'me mèi mò': ['嚜'],\r\n    'xié hái': ['嚡'],\r\n    'áo xiāo': ['嚣'],\r\n    mō: ['嚤', '摸'],\r\n    pín: [\r\n        '嚬',\r\n        '娦',\r\n        '嫔',\r\n        '嬪',\r\n        '玭',\r\n        '矉',\r\n        '薲',\r\n        '蠙',\r\n        '貧',\r\n        '贫',\r\n        '顰',\r\n        '颦',\r\n        '𬞟',\r\n    ],\r\n    mè: ['嚰', '濹'],\r\n    'rǎng rāng': ['嚷'],\r\n    lá: ['嚹', '旯'],\r\n    'jiáo jué jiào': ['嚼'],\r\n    chuò: [\r\n        '嚽',\r\n        '娖',\r\n        '擉',\r\n        '歠',\r\n        '涰',\r\n        '磭',\r\n        '踀',\r\n        '輟',\r\n        '辍',\r\n        '辵',\r\n        '辶',\r\n        '酫',\r\n        '鑡',\r\n        '餟',\r\n        '齪',\r\n        '龊',\r\n    ],\r\n    'huān huàn': ['嚾'],\r\n    'zá cà': ['囃'],\r\n    chài: ['囆', '虿', '蠆', '袃', '訍'],\r\n    'náng nāng': ['囊'],\r\n    'zá zàn cān': ['囋'],\r\n    sū: ['囌', '櫯', '甦', '稣', '穌', '窣', '蘇', '蘓', '酥', '鯂'],\r\n    zèng: ['囎', '熷', '甑', '贈', '赠', '鋥', '锃'],\r\n    'zá niè yàn': ['囐'],\r\n    nāng: ['囔'],\r\n    'luó luō luo': ['囖'],\r\n    'wéi guó': ['囗'],\r\n    huí: [\r\n        '囘',\r\n        '回',\r\n        '囬',\r\n        '廻',\r\n        '廽',\r\n        '恛',\r\n        '洄',\r\n        '痐',\r\n        '茴',\r\n        '蚘',\r\n        '蛔',\r\n        '蛕',\r\n        '蜖',\r\n        '迴',\r\n        '逥',\r\n        '鮰',\r\n    ],\r\n    nín: ['囜', '您', '脌'],\r\n    'jiǎn nān': ['囝'],\r\n    nān: ['囡'],\r\n    tuán: ['团', '団', '團', '慱', '抟', '摶', '檲', '糰', '鏄', '鷒', '鷻'],\r\n    'tún dùn': ['囤', '坉'],\r\n    guó: [\r\n        '囯',\r\n        '囶',\r\n        '囻',\r\n        '国',\r\n        '圀',\r\n        '國',\r\n        '帼',\r\n        '幗',\r\n        '慖',\r\n        '摑',\r\n        '漍',\r\n        '聝',\r\n        '腘',\r\n        '膕',\r\n        '蔮',\r\n        '虢',\r\n        '馘',\r\n        '𬇹',\r\n    ],\r\n    kùn: ['困', '涃', '睏'],\r\n    'wéi tōng': ['囲'],\r\n    qūn: ['囷', '夋', '逡'],\r\n    rì: ['囸', '日', '衵', '鈤', '馹', '驲'],\r\n    tāi: ['囼', '孡', '胎'],\r\n    pǔ: [\r\n        '圃',\r\n        '圑',\r\n        '擈',\r\n        '普',\r\n        '暜',\r\n        '樸',\r\n        '檏',\r\n        '氆',\r\n        '浦',\r\n        '溥',\r\n        '烳',\r\n        '諩',\r\n        '譜',\r\n        '谱',\r\n        '蹼',\r\n        '鐠',\r\n        '镨',\r\n    ],\r\n    'quān juàn juān': ['圈', '圏'],\r\n    'chuí chuán': ['圌'],\r\n    tuǎn: ['圕', '畽', '疃'],\r\n    lüè: ['圙', '掠', '略', '畧', '稤', '鋝', '鋢', '锊', '䂮'],\r\n    'huán yuán': ['圜'],\r\n    luán: [\r\n        '圝',\r\n        '圞',\r\n        '奱',\r\n        '娈',\r\n        '孌',\r\n        '孪',\r\n        '孿',\r\n        '峦',\r\n        '巒',\r\n        '挛',\r\n        '攣',\r\n        '曫',\r\n        '栾',\r\n        '欒',\r\n        '滦',\r\n        '灤',\r\n        '癴',\r\n        '癵',\r\n        '羉',\r\n        '脔',\r\n        '臠',\r\n        '虊',\r\n        '銮',\r\n        '鑾',\r\n        '鵉',\r\n        '鸞',\r\n        '鸾',\r\n    ],\r\n    tǔ: ['土', '圡', '釷', '钍'],\r\n    'xū wéi': ['圩'],\r\n    'dì de': ['地', '嶳'],\r\n    'qiān sú': ['圱'],\r\n    zhèn: [\r\n        '圳',\r\n        '塦',\r\n        '挋',\r\n        '振',\r\n        '朕',\r\n        '栚',\r\n        '甽',\r\n        '眹',\r\n        '紖',\r\n        '絼',\r\n        '纼',\r\n        '誫',\r\n        '賑',\r\n        '赈',\r\n        '鋴',\r\n        '鎭',\r\n        '鎮',\r\n        '镇',\r\n        '阵',\r\n        '陣',\r\n        '震',\r\n        '鴆',\r\n        '鸩',\r\n    ],\r\n    'chǎng cháng': ['场', '場', '塲'],\r\n    'qí yín': ['圻'],\r\n    jiá: [\r\n        '圿',\r\n        '忦',\r\n        '恝',\r\n        '戞',\r\n        '扴',\r\n        '脥',\r\n        '荚',\r\n        '莢',\r\n        '蛱',\r\n        '蛺',\r\n        '裌',\r\n        '跲',\r\n        '郏',\r\n        '郟',\r\n        '鋏',\r\n        '铗',\r\n        '頬',\r\n        '頰',\r\n        '颊',\r\n        '鴶',\r\n        '鵊',\r\n    ],\r\n    'zhǐ zhì': ['坁'],\r\n    bǎn: [\r\n        '坂',\r\n        '岅',\r\n        '昄',\r\n        '板',\r\n        '版',\r\n        '瓪',\r\n        '粄',\r\n        '舨',\r\n        '蝂',\r\n        '鈑',\r\n        '钣',\r\n        '阪',\r\n        '魬',\r\n    ],\r\n    qǐn: ['坅', '寑', '寝', '寢', '昑', '梫', '笉', '螼', '赾', '鋟', '锓'],\r\n    'méi fén': ['坆'],\r\n    'rǒng kēng': ['坈'],\r\n    'fāng fáng': ['坊'],\r\n    'fèn bèn': ['坋'],\r\n    tān: ['坍', '怹', '摊', '擹', '攤', '滩', '灘', '瘫', '癱', '舑', '貪', '贪'],\r\n    'huài pēi pī péi': ['坏'],\r\n    'dì làn': ['坔'],\r\n    tán: [\r\n        '坛',\r\n        '墰',\r\n        '墵',\r\n        '壇',\r\n        '壜',\r\n        '婒',\r\n        '憛',\r\n        '昙',\r\n        '曇',\r\n        '榃',\r\n        '檀',\r\n        '潭',\r\n        '燂',\r\n        '痰',\r\n        '磹',\r\n        '罈',\r\n        '罎',\r\n        '藫',\r\n        '談',\r\n        '譚',\r\n        '譠',\r\n        '谈',\r\n        '谭',\r\n        '貚',\r\n        '郯',\r\n        '醰',\r\n        '錟',\r\n        '顃',\r\n    ],\r\n    bà: ['坝', '垻', '壩', '弝', '欛', '灞', '爸', '矲', '覇', '霸', '鮁', '鲅'],\r\n    fén: [\r\n        '坟',\r\n        '墳',\r\n        '妢',\r\n        '岎',\r\n        '幩',\r\n        '枌',\r\n        '棼',\r\n        '汾',\r\n        '焚',\r\n        '燌',\r\n        '燓',\r\n        '羒',\r\n        '羵',\r\n        '蒶',\r\n        '蕡',\r\n        '蚠',\r\n        '蚡',\r\n        '豮',\r\n        '豶',\r\n        '轒',\r\n        '鐼',\r\n        '隫',\r\n        '馩',\r\n        '魵',\r\n        '黂',\r\n        '鼖',\r\n        '鼢',\r\n        '𣸣',\r\n    ],\r\n    zhuì: [\r\n        '坠',\r\n        '墜',\r\n        '惴',\r\n        '甀',\r\n        '畷',\r\n        '礈',\r\n        '綴',\r\n        '縋',\r\n        '缀',\r\n        '缒',\r\n        '腏',\r\n        '膇',\r\n        '諈',\r\n        '贅',\r\n        '赘',\r\n        '醊',\r\n        '錣',\r\n        '鑆',\r\n    ],\r\n    pō: ['坡', '岥', '泼', '溌', '潑', '釙', '鏺', '钋', '頗', '颇', '䥽'],\r\n    'pǎn bàn': ['坢'],\r\n    kūn: [\r\n        '坤',\r\n        '堃',\r\n        '堒',\r\n        '崐',\r\n        '崑',\r\n        '昆',\r\n        '晜',\r\n        '潉',\r\n        '焜',\r\n        '熴',\r\n        '猑',\r\n        '琨',\r\n        '瑻',\r\n        '菎',\r\n        '蜫',\r\n        '裈',\r\n        '裩',\r\n        '褌',\r\n        '醌',\r\n        '錕',\r\n        '锟',\r\n        '騉',\r\n        '髠',\r\n        '髡',\r\n        '髨',\r\n        '鯤',\r\n        '鲲',\r\n        '鵾',\r\n        '鶤',\r\n        '鹍',\r\n    ],\r\n    diàn: [\r\n        '坫',\r\n        '垫',\r\n        '墊',\r\n        '壂',\r\n        '奠',\r\n        '婝',\r\n        '店',\r\n        '惦',\r\n        '扂',\r\n        '橂',\r\n        '殿',\r\n        '淀',\r\n        '澱',\r\n        '玷',\r\n        '琔',\r\n        '电',\r\n        '癜',\r\n        '簟',\r\n        '蜔',\r\n        '鈿',\r\n        '電',\r\n        '靛',\r\n        '驔',\r\n    ],\r\n    'mù mǔ': ['坶'],\r\n    'kē kě': ['坷', '軻'],\r\n    xuè: ['坹', '岤', '桖', '瀥', '狘', '瞲', '謔', '谑', '趐'],\r\n    'dǐ chí': ['坻', '柢'],\r\n    lā: ['垃', '柆', '菈', '邋'],\r\n    lǒng: ['垄', '垅', '壟', '壠', '拢', '攏', '竉', '陇', '隴', '𬕂'],\r\n    mín: [\r\n        '垊',\r\n        '姄',\r\n        '岷',\r\n        '崏',\r\n        '捪',\r\n        '旻',\r\n        '旼',\r\n        '民',\r\n        '珉',\r\n        '琘',\r\n        '琝',\r\n        '瑉',\r\n        '痻',\r\n        '盿',\r\n        '砇',\r\n        '緍',\r\n        '緡',\r\n        '缗',\r\n        '罠',\r\n        '苠',\r\n        '鈱',\r\n        '錉',\r\n        '鍲',\r\n        '鴖',\r\n    ],\r\n    'dòng tóng': ['垌', '峒', '洞'],\r\n    cí: [\r\n        '垐',\r\n        '嬨',\r\n        '慈',\r\n        '柌',\r\n        '濨',\r\n        '珁',\r\n        '瓷',\r\n        '甆',\r\n        '磁',\r\n        '礠',\r\n        '祠',\r\n        '糍',\r\n        '茨',\r\n        '詞',\r\n        '词',\r\n        '辝',\r\n        '辞',\r\n        '辤',\r\n        '辭',\r\n        '雌',\r\n        '飺',\r\n        '餈',\r\n        '鴜',\r\n        '鶿',\r\n        '鷀',\r\n        '鹚',\r\n    ],\r\n    duī: ['垖', '堆', '塠', '痽', '磓', '鐓', '鐜', '鴭'],\r\n    'duò duǒ': ['垛'],\r\n    'duǒ duò': ['垜', '挆'],\r\n    chá: ['垞', '察', '嵖', '搽', '槎', '檫', '猹', '茬', '茶', '詧', '靫', '𥻗'],\r\n    shǎng: ['垧', '晌', '樉', '賞', '贘', '赏', '鋿', '鏛', '鑜'],\r\n    shǒu: ['垨', '守', '手', '扌', '艏', '首'],\r\n    da: ['垯', '繨', '跶'],\r\n    háng: [\r\n        '垳',\r\n        '斻',\r\n        '杭',\r\n        '筕',\r\n        '絎',\r\n        '绗',\r\n        '航',\r\n        '苀',\r\n        '蚢',\r\n        '裄',\r\n        '貥',\r\n        '迒',\r\n        '頏',\r\n        '颃',\r\n        '魧',\r\n    ],\r\n    'ān ǎn': ['垵'],\r\n    xīng: [\r\n        '垶',\r\n        '惺',\r\n        '星',\r\n        '曐',\r\n        '煋',\r\n        '猩',\r\n        '瑆',\r\n        '皨',\r\n        '篂',\r\n        '腥',\r\n        '興',\r\n        '觪',\r\n        '觲',\r\n        '謃',\r\n        '騂',\r\n        '骍',\r\n        '鮏',\r\n        '鯹',\r\n    ],\r\n    'yuàn huán': ['垸'],\r\n    bāng: [\r\n        '垹',\r\n        '帮',\r\n        '幇',\r\n        '幚',\r\n        '幫',\r\n        '捠',\r\n        '梆',\r\n        '浜',\r\n        '邦',\r\n        '邫',\r\n        '鞤',\r\n        '𠳐',\r\n    ],\r\n    'póu fú': ['垺'],\r\n    cén: ['埁', '岑', '涔'],\r\n    'běng fēng': ['埄'],\r\n    'dì fáng': ['埅'],\r\n    'xiá jiā': ['埉'],\r\n    'mái mán': ['埋'],\r\n    làng: ['埌', '崀', '浪', '蒗', '閬', '㫰'],\r\n    'shān yán': ['埏'],\r\n    'qín jīn': ['埐'],\r\n    'pǔ bù': ['埔'],\r\n    huā: ['埖', '婲', '椛', '硴', '糀', '花', '蒊', '蘤', '誮', '錵'],\r\n    'suì sù': ['埣'],\r\n    'pí pì': ['埤'],\r\n    'qīng zhēng': ['埥', '鲭'],\r\n    'wǎn wān': ['埦'],\r\n    lǔn: ['埨', '稐', '𫭢'],\r\n    'zhēng chéng': ['埩'],\r\n    kōng: ['埪', '崆', '箜', '躻', '錓', '鵼'],\r\n    'cǎi cài': ['埰', '寀', '采'],\r\n    'chù tòu': ['埱'],\r\n    běng: ['埲', '琫', '菶', '鞛'],\r\n    'kǎn xiàn': ['埳'],\r\n    'yì shì': ['埶', '醳'],\r\n    péi: ['培', '毰', '裴', '裵', '賠', '赔', '錇', '锫', '阫', '陪'],\r\n    'sào sǎo': ['埽'],\r\n    'jǐn qīn jìn': ['堇'],\r\n    'péng bèng': ['堋'],\r\n    'qiàn zàn jiàn': ['堑'],\r\n    àn: [\r\n        '堓',\r\n        '屵',\r\n        '岸',\r\n        '按',\r\n        '暗',\r\n        '案',\r\n        '胺',\r\n        '荌',\r\n        '豻',\r\n        '貋',\r\n        '錌',\r\n        '闇',\r\n        '隌',\r\n        '黯',\r\n    ],\r\n    'duò huī': ['堕', '墮'],\r\n    huán: [\r\n        '堚',\r\n        '寏',\r\n        '寰',\r\n        '峘',\r\n        '桓',\r\n        '洹',\r\n        '澴',\r\n        '獂',\r\n        '环',\r\n        '環',\r\n        '糫',\r\n        '繯',\r\n        '缳',\r\n        '羦',\r\n        '荁',\r\n        '萈',\r\n        '萑',\r\n        '豲',\r\n        '鍰',\r\n        '鐶',\r\n        '锾',\r\n        '镮',\r\n        '闤',\r\n        '阛',\r\n        '雈',\r\n        '鬟',\r\n        '鹮',\r\n        '𬘫',\r\n        '𤩽',\r\n    ],\r\n    'bǎo bǔ pù': ['堡'],\r\n    'máo móu wǔ': ['堥'],\r\n    ruán: ['堧', '壖', '撋'],\r\n    'ài è yè': ['堨'],\r\n    gèng: ['堩', '暅'],\r\n    méi: [\r\n        '堳',\r\n        '塺',\r\n        '媒',\r\n        '嵋',\r\n        '徾',\r\n        '攗',\r\n        '枚',\r\n        '栂',\r\n        '梅',\r\n        '楣',\r\n        '楳',\r\n        '槑',\r\n        '湄',\r\n        '湈',\r\n        '煤',\r\n        '猸',\r\n        '玫',\r\n        '珻',\r\n        '瑂',\r\n        '眉',\r\n        '睂',\r\n        '禖',\r\n        '脄',\r\n        '脢',\r\n        '腜',\r\n        '苺',\r\n        '莓',\r\n        '葿',\r\n        '郿',\r\n        '酶',\r\n        '鎇',\r\n        '镅',\r\n        '霉',\r\n        '鶥',\r\n        '鹛',\r\n        '黴',\r\n    ],\r\n    dǔ: ['堵', '琽', '睹', '笃', '篤', '覩', '賭', '赌'],\r\n    féng: ['堸', '綘', '艂', '逢'],\r\n    hèng: ['堼'],\r\n    chūn: [\r\n        '堾',\r\n        '媋',\r\n        '旾',\r\n        '春',\r\n        '暙',\r\n        '杶',\r\n        '椿',\r\n        '槆',\r\n        '橁',\r\n        '櫄',\r\n        '瑃',\r\n        '箺',\r\n        '萅',\r\n        '蝽',\r\n        '輴',\r\n        '鰆',\r\n        '鶞',\r\n        '䲠',\r\n    ],\r\n    jiǎng: [\r\n        '塂',\r\n        '奖',\r\n        '奨',\r\n        '奬',\r\n        '桨',\r\n        '槳',\r\n        '獎',\r\n        '耩',\r\n        '膙',\r\n        '蒋',\r\n        '蔣',\r\n        '講',\r\n        '讲',\r\n        '顜',\r\n    ],\r\n    huāng: ['塃', '巟', '慌', '肓', '荒', '衁'],\r\n    duàn: [\r\n        '塅',\r\n        '断',\r\n        '斷',\r\n        '椴',\r\n        '段',\r\n        '毈',\r\n        '煅',\r\n        '瑖',\r\n        '碫',\r\n        '簖',\r\n        '籪',\r\n        '緞',\r\n        '缎',\r\n        '腶',\r\n        '葮',\r\n        '躖',\r\n        '鍛',\r\n        '锻',\r\n    ],\r\n    tǎ: ['塔', '墖', '獭', '獺', '鮙', '鰨', '鳎'],\r\n    wěng: ['塕', '奣', '嵡', '攚', '暡', '瞈', '蓊'],\r\n    'sāi sài sè': ['塞'],\r\n    zàng: ['塟', '弉', '臓', '臟', '葬', '蔵', '銺'],\r\n    tián: [\r\n        '塡',\r\n        '屇',\r\n        '恬',\r\n        '沺',\r\n        '湉',\r\n        '璳',\r\n        '甛',\r\n        '甜',\r\n        '田',\r\n        '畋',\r\n        '畑',\r\n        '碵',\r\n        '磌',\r\n        '胋',\r\n        '闐',\r\n        '阗',\r\n        '鴫',\r\n        '鷆',\r\n        '鷏',\r\n    ],\r\n    zhèng: [\r\n        '塣',\r\n        '幁',\r\n        '政',\r\n        '証',\r\n        '諍',\r\n        '證',\r\n        '证',\r\n        '诤',\r\n        '郑',\r\n        '鄭',\r\n        '靕',\r\n        '鴊',\r\n    ],\r\n    'tián zhèn': ['填'],\r\n    wēn: [\r\n        '塭',\r\n        '昷',\r\n        '榲',\r\n        '殟',\r\n        '温',\r\n        '溫',\r\n        '瑥',\r\n        '瘟',\r\n        '蕰',\r\n        '豱',\r\n        '輼',\r\n        '轀',\r\n        '辒',\r\n        '鎾',\r\n        '饂',\r\n        '鰛',\r\n        '鰮',\r\n        '鳁',\r\n    ],\r\n    liù: ['塯', '廇', '磟', '翏', '雡', '霤', '餾', '鬸', '鷚', '鹨'],\r\n    hǎi: ['塰', '海', '烸', '酼', '醢'],\r\n    lǎng: ['塱', '朖', '朗', '朤', '烺', '蓢', '㮾'],\r\n    bèng: ['塴', '揼', '泵', '甏', '綳', '蹦', '迸', '逬', '鏰', '镚'],\r\n    chén: [\r\n        '塵',\r\n        '宸',\r\n        '尘',\r\n        '忱',\r\n        '敐',\r\n        '敶',\r\n        '晨',\r\n        '曟',\r\n        '栕',\r\n        '樄',\r\n        '沉',\r\n        '煁',\r\n        '瘎',\r\n        '臣',\r\n        '茞',\r\n        '莀',\r\n        '莐',\r\n        '蔯',\r\n        '薼',\r\n        '螴',\r\n        '訦',\r\n        '諶',\r\n        '軙',\r\n        '辰',\r\n        '迧',\r\n        '鈂',\r\n        '陈',\r\n        '陳',\r\n        '霃',\r\n        '鷐',\r\n        '麎',\r\n    ],\r\n    'ōu qiū': ['塸'],\r\n    'qiàn jiàn': ['塹'],\r\n    'zhuān tuán': ['塼'],\r\n    shuǎng: ['塽', '慡', '漺', '爽', '縔', '鏯'],\r\n    shú: ['塾', '婌', '孰', '璹', '秫', '贖', '赎'],\r\n    lǒu: ['塿', '嵝', '嶁', '甊', '篓', '簍'],\r\n    chí: [\r\n        '墀',\r\n        '弛',\r\n        '持',\r\n        '池',\r\n        '漦',\r\n        '竾',\r\n        '筂',\r\n        '箎',\r\n        '篪',\r\n        '茌',\r\n        '荎',\r\n        '蚳',\r\n        '謘',\r\n        '貾',\r\n        '赿',\r\n        '踟',\r\n        '迟',\r\n        '迡',\r\n        '遅',\r\n        '遟',\r\n        '遲',\r\n        '鍉',\r\n        '馳',\r\n        '驰',\r\n    ],\r\n    shù: [\r\n        '墅',\r\n        '庶',\r\n        '庻',\r\n        '怷',\r\n        '恕',\r\n        '戍',\r\n        '束',\r\n        '树',\r\n        '樹',\r\n        '沭',\r\n        '漱',\r\n        '潄',\r\n        '濖',\r\n        '竖',\r\n        '竪',\r\n        '絉',\r\n        '腧',\r\n        '荗',\r\n        '蒁',\r\n        '虪',\r\n        '術',\r\n        '裋',\r\n        '豎',\r\n        '述',\r\n        '鉥',\r\n        '錰',\r\n        '鏣',\r\n        '霔',\r\n        '鶐',\r\n        '𬬸',\r\n    ],\r\n    'dì zhì': ['墆', '疐'],\r\n    kàn: ['墈', '崁', '瞰', '矙', '磡', '衎', '鬫'],\r\n    chěn: ['墋', '夦', '硶', '碜', '磣', '贂', '趻', '踸', '鍖'],\r\n    'zhǐ zhuó': ['墌'],\r\n    qiǎng: ['墏', '繈', '繦', '羥', '襁'],\r\n    zēng: ['増', '增', '憎', '璔', '矰', '磳', '罾', '譄', '鄫', '鱛', '䎖'],\r\n    qiáng: [\r\n        '墙',\r\n        '墻',\r\n        '嫱',\r\n        '嬙',\r\n        '樯',\r\n        '檣',\r\n        '漒',\r\n        '牆',\r\n        '艢',\r\n        '蔃',\r\n        '蔷',\r\n        '蘠',\r\n    ],\r\n    'kuài tuí': ['墤'],\r\n    'tuǎn dǒng': ['墥'],\r\n    'qiáo què': ['墧'],\r\n    'zūn dūn': ['墫'],\r\n    'qiāo áo': ['墽'],\r\n    'yì tú': ['墿'],\r\n    'xué bó jué': ['壆'],\r\n    lǎn: [\r\n        '壈',\r\n        '嬾',\r\n        '孄',\r\n        '孏',\r\n        '懒',\r\n        '懶',\r\n        '揽',\r\n        '擥',\r\n        '攬',\r\n        '榄',\r\n        '欖',\r\n        '浨',\r\n        '漤',\r\n        '灠',\r\n        '纜',\r\n        '缆',\r\n        '罱',\r\n        '覧',\r\n        '覽',\r\n        '览',\r\n        '醂',\r\n        '顲',\r\n    ],\r\n    huài: ['壊', '壞', '蘾'],\r\n    rǎng: ['壌', '壤', '攘', '爙'],\r\n    'làn xiàn': ['壏'],\r\n    dǎo: [\r\n        '壔',\r\n        '导',\r\n        '導',\r\n        '岛',\r\n        '島',\r\n        '嶋',\r\n        '嶌',\r\n        '嶹',\r\n        '捣',\r\n        '搗',\r\n        '擣',\r\n        '槝',\r\n        '祷',\r\n        '禂',\r\n        '禱',\r\n        '蹈',\r\n        '陦',\r\n        '隝',\r\n        '隯',\r\n    ],\r\n    ruǐ: ['壡', '桵', '橤', '繠', '蕊', '蕋', '蘂', '蘃'],\r\n    san: ['壭'],\r\n    zhuàng: ['壮', '壯', '壵', '撞', '焋', '状', '狀'],\r\n    'ké qiào': ['壳', '殼'],\r\n    kǔn: [\r\n        '壸',\r\n        '壼',\r\n        '悃',\r\n        '捆',\r\n        '梱',\r\n        '硱',\r\n        '祵',\r\n        '稇',\r\n        '稛',\r\n        '綑',\r\n        '裍',\r\n        '閫',\r\n        '閸',\r\n        '阃',\r\n    ],\r\n    mǎng: ['壾', '漭', '茻', '莽', '莾', '蠎'],\r\n    cún: ['壿', '存'],\r\n    'zhǐ zhōng': ['夂'],\r\n    'gǔ yíng': ['夃'],\r\n    'jiàng xiáng': ['夅', '降'],\r\n    'páng féng fēng': ['夆'],\r\n    zhāi: ['夈', '捚', '摘', '斋', '斎', '榸', '粂', '齋'],\r\n    'xuàn xiòng': ['夐'],\r\n    wài: ['外', '顡'],\r\n    'wǎn yuàn wān yuān': ['夗'],\r\n    'mǎo wǎn': ['夘'],\r\n    mèng: ['夢', '夣', '孟', '梦', '癦', '霥'],\r\n    'dà dài': ['大'],\r\n    'fū fú': ['夫', '姇', '枎', '粰'],\r\n    guài: ['夬', '怪', '恠'],\r\n    yāng: [\r\n        '央',\r\n        '姎',\r\n        '抰',\r\n        '殃',\r\n        '泱',\r\n        '秧',\r\n        '胦',\r\n        '鉠',\r\n        '鍈',\r\n        '雵',\r\n        '鴦',\r\n        '鸯',\r\n    ],\r\n    'hāng bèn': ['夯'],\r\n    gǎo: [\r\n        '夰',\r\n        '搞',\r\n        '杲',\r\n        '槀',\r\n        '槁',\r\n        '檺',\r\n        '稁',\r\n        '稾',\r\n        '稿',\r\n        '縞',\r\n        '缟',\r\n        '菒',\r\n        '藁',\r\n        '藳',\r\n    ],\r\n    'tāo běn': ['夲'],\r\n    'tóu tou': ['头'],\r\n    'yǎn tāo': ['夵'],\r\n    'kuā kuà': ['夸', '誇'],\r\n    'jiá jiā gā xiá': ['夹'],\r\n    huà: [\r\n        '夻',\r\n        '婳',\r\n        '嫿',\r\n        '嬅',\r\n        '崋',\r\n        '摦',\r\n        '杹',\r\n        '枠',\r\n        '桦',\r\n        '槬',\r\n        '樺',\r\n        '澅',\r\n        '画',\r\n        '畫',\r\n        '畵',\r\n        '繣',\r\n        '舙',\r\n        '話',\r\n        '諙',\r\n        '譮',\r\n        '话',\r\n        '黊',\r\n    ],\r\n    'jiā jiá gā xiá': ['夾'],\r\n    ēn: ['奀', '恩', '蒽'],\r\n    'dī tì': ['奃'],\r\n    'yǎn yān': ['奄', '渰'],\r\n    pào: ['奅', '疱', '皰', '砲', '礟', '礮', '靤', '麭'],\r\n    nài: ['奈', '柰', '渿', '耐', '萘', '褦', '錼', '鼐'],\r\n    'quān juàn': ['奍', '弮', '棬'],\r\n    zòu: ['奏', '揍'],\r\n    'qì qiè xiè': ['契'],\r\n    kāi: ['奒', '开', '揩', '鐦', '锎', '開'],\r\n    'bēn bèn': ['奔', '泍'],\r\n    tào: ['套'],\r\n    'zàng zhuǎng': ['奘'],\r\n    běn: ['奙', '本', '楍', '畚', '翉', '苯'],\r\n    'xùn zhuì': ['奞'],\r\n    shē: ['奢', '檨', '猞', '畭', '畲', '賒', '賖', '赊', '輋', '𪨶'],\r\n    'hǎ pò tǎi': ['奤'],\r\n    'ào yù': ['奥', '奧', '澚'],\r\n    yūn: ['奫', '氲', '氳', '蒀', '蒕', '蝹', '贇', '赟', '𫖳'],\r\n    'duǒ chě': ['奲'],\r\n    'nǚ rǔ': ['女'],\r\n    nú: ['奴', '孥', '笯', '駑', '驽'],\r\n    'dīng dǐng tiǎn': ['奵'],\r\n    'tā jiě': ['她'],\r\n    nuán: ['奻'],\r\n    'hǎo hào': ['好'],\r\n    fàn: [\r\n        '奿',\r\n        '嬎',\r\n        '梵',\r\n        '汎',\r\n        '泛',\r\n        '滼',\r\n        '瀪',\r\n        '犯',\r\n        '畈',\r\n        '盕',\r\n        '笵',\r\n        '範',\r\n        '范',\r\n        '訉',\r\n        '販',\r\n        '贩',\r\n        '軬',\r\n        '輽',\r\n        '飯',\r\n        '飰',\r\n        '饭',\r\n    ],\r\n    shuò: ['妁', '搠', '朔', '槊', '烁', '爍', '矟', '蒴', '鎙', '鑠', '铄'],\r\n    'fēi pèi': ['妃'],\r\n    wàng: ['妄', '忘', '旺', '望', '朢'],\r\n    zhuāng: [\r\n        '妆',\r\n        '妝',\r\n        '娤',\r\n        '庄',\r\n        '庒',\r\n        '桩',\r\n        '梉',\r\n        '樁',\r\n        '粧',\r\n        '糚',\r\n        '荘',\r\n        '莊',\r\n        '装',\r\n        '裝',\r\n    ],\r\n    mā: ['妈', '媽'],\r\n    'fū yōu': ['妋'],\r\n    'hài jiè': ['妎'],\r\n    dù: [\r\n        '妒',\r\n        '妬',\r\n        '杜',\r\n        '殬',\r\n        '渡',\r\n        '秺',\r\n        '芏',\r\n        '荰',\r\n        '螙',\r\n        '蠧',\r\n        '蠹',\r\n        '鍍',\r\n        '镀',\r\n        '靯',\r\n        '𬭊',\r\n    ],\r\n    miào: ['妙', '庙', '庿', '廟', '玅', '竗'],\r\n    'fǒu pēi pī': ['妚'],\r\n    'yuè jué': ['妜'],\r\n    niū: ['妞'],\r\n    'nà nàn': ['妠'],\r\n    tuǒ: ['妥', '嫷', '庹', '椭', '楕', '橢', '鬌', '鰖', '鵎'],\r\n    'wàn yuán': ['妧'],\r\n    fáng: ['妨', '房', '肪', '防', '魴', '鲂'],\r\n    nī: ['妮'],\r\n    zhóu: ['妯', '碡'],\r\n    zhāo: ['妱', '巶', '招', '昭', '釗', '鉊', '鍣', '钊', '駋', '𬬿'],\r\n    'nǎi nǐ': ['妳'],\r\n    tǒu: ['妵', '敨', '紏', '蘣', '黈'],\r\n    'xián xuán xù': ['妶'],\r\n    'zhí yì': ['妷', '秇'],\r\n    ē: ['妸', '妿', '婀', '屙'],\r\n    mèi: [\r\n        '妹',\r\n        '媚',\r\n        '寐',\r\n        '抺',\r\n        '旀',\r\n        '昧',\r\n        '沬',\r\n        '煝',\r\n        '痗',\r\n        '眛',\r\n        '睸',\r\n        '祙',\r\n        '篃',\r\n        '蝞',\r\n        '袂',\r\n        '跊',\r\n        '鬽',\r\n        '魅',\r\n    ],\r\n    'qī qì': ['妻'],\r\n    'xū xǔ': ['姁', '稰'],\r\n    'shān shàn': ['姍', '姗', '苫', '釤', '钐'],\r\n    mán: ['姏', '慲', '樠', '蛮', '蠻', '謾', '饅', '馒', '鬗', '鬘', '鰻', '鳗'],\r\n    jiě: ['姐', '媎', '檞', '毑', '飷'],\r\n    'wěi wēi': ['委'],\r\n    pīn: ['姘', '拼', '礗', '穦', '馪', '驞'],\r\n    'huá huó': ['姡'],\r\n    'jiāo xiáo': ['姣'],\r\n    'gòu dù': ['姤'],\r\n    'lǎo mǔ': ['姥'],\r\n    'nián niàn': ['姩'],\r\n    zhěn: [\r\n        '姫',\r\n        '屒',\r\n        '弫',\r\n        '抮',\r\n        '昣',\r\n        '枕',\r\n        '畛',\r\n        '疹',\r\n        '眕',\r\n        '稹',\r\n        '縝',\r\n        '縥',\r\n        '缜',\r\n        '聄',\r\n        '萙',\r\n        '袗',\r\n        '裖',\r\n        '覙',\r\n        '診',\r\n        '诊',\r\n        '軫',\r\n        '轸',\r\n        '辴',\r\n        '駗',\r\n        '鬒',\r\n    ],\r\n    héng: [\r\n        '姮',\r\n        '恆',\r\n        '恒',\r\n        '烆',\r\n        '珩',\r\n        '胻',\r\n        '蘅',\r\n        '衡',\r\n        '鑅',\r\n        '鴴',\r\n        '鵆',\r\n        '鸻',\r\n    ],\r\n    'jūn xún': ['姰'],\r\n    'kuā hù': ['姱'],\r\n    'è yà': ['姶'],\r\n    'xiān shēn': ['姺'],\r\n    wá: ['娃'],\r\n    'ráo rǎo': ['娆', '嬈'],\r\n    'shào shāo': ['娋'],\r\n    xiē: ['娎', '揳', '楔', '歇', '蝎', '蠍'],\r\n    'wǔ méi mǔ': ['娒'],\r\n    'chuò lài': ['娕'],\r\n    niáng: ['娘', '嬢', '孃'],\r\n    'nà nuó': ['娜', '𦰡'],\r\n    'pōu bǐ': ['娝'],\r\n    'něi suī': ['娞'],\r\n    tuì: ['娧', '煺', '蛻', '蜕', '退', '駾'],\r\n    mǎn: ['娨', '屘', '満', '满', '滿', '螨', '蟎', '襔', '鏋'],\r\n    'wú wù yú': ['娪'],\r\n    'xī āi': ['娭'],\r\n    'zhuì shuì': ['娷'],\r\n    'dōng dòng': ['娻'],\r\n    'ǎi ái è': ['娾'],\r\n    'ē ě': ['娿'],\r\n    mián: [\r\n        '婂',\r\n        '嬵',\r\n        '宀',\r\n        '杣',\r\n        '棉',\r\n        '檰',\r\n        '櫋',\r\n        '眠',\r\n        '矈',\r\n        '矊',\r\n        '矏',\r\n        '綿',\r\n        '緜',\r\n        '绵',\r\n        '芇',\r\n        '蝒',\r\n    ],\r\n    'pǒu péi bù': ['婄'],\r\n    biǎo: ['婊', '脿', '表', '裱', '褾', '諘', '錶'],\r\n    'fù fàn': ['婏'],\r\n    wǒ: ['婐', '婑', '我'],\r\n    'ní nǐ': ['婗', '棿'],\r\n    'quán juàn': ['婘', '惓'],\r\n    hūn: [\r\n        '婚',\r\n        '昏',\r\n        '昬',\r\n        '棔',\r\n        '涽',\r\n        '睧',\r\n        '睯',\r\n        '碈',\r\n        '荤',\r\n        '葷',\r\n        '蔒',\r\n        '轋',\r\n        '閽',\r\n        '阍',\r\n    ],\r\n    'qiān jǐn': ['婜'],\r\n    'wān wà': ['婠'],\r\n    'lái lài': ['婡', '徕', '徠'],\r\n    'zhōu chōu': ['婤'],\r\n    'chuò nào': ['婥'],\r\n    'nüè àn': ['婩'],\r\n    'hùn kūn': ['婫'],\r\n    'dàng yáng': ['婸'],\r\n    nàn: ['婻'],\r\n    'ruò chuò': ['婼'],\r\n    jiǎ: ['婽', '岬', '斚', '斝', '榎', '槚', '檟', '玾', '甲', '胛', '鉀', '钾'],\r\n    'tōu yú': ['婾', '媮'],\r\n    'yù yú': ['媀'],\r\n    'wéi wěi': ['媁'],\r\n    'dì tí': ['媂', '珶', '苐'],\r\n    róu: [\r\n        '媃',\r\n        '揉',\r\n        '柔',\r\n        '渘',\r\n        '煣',\r\n        '瑈',\r\n        '瓇',\r\n        '禸',\r\n        '粈',\r\n        '糅',\r\n        '脜',\r\n        '腬',\r\n        '葇',\r\n        '蝚',\r\n        '蹂',\r\n        '輮',\r\n        '鍒',\r\n        '鞣',\r\n        '騥',\r\n        '鰇',\r\n        '鶔',\r\n        '𫐓',\r\n    ],\r\n    'ruǎn nèn': ['媆'],\r\n    miáo: ['媌', '嫹', '描', '瞄', '苗', '鶓', '鹋'],\r\n    'yí pèi': ['媐'],\r\n    'mián miǎn': ['媔'],\r\n    'tí shì': ['媞', '惿'],\r\n    'duò tuó': ['媠', '沲'],\r\n    ǎo: ['媪', '媼', '艹', '芺', '袄', '襖', '镺'],\r\n    'chú zòu': ['媰'],\r\n    yìng: ['媵', '映', '暎', '硬', '膡', '鱦'],\r\n    'qín shēn': ['嫀'],\r\n    jià: ['嫁', '幏', '架', '榢', '稼', '駕', '驾'],\r\n    sǎo: ['嫂'],\r\n    'zhēn zhěn': ['嫃'],\r\n    'jiē suǒ': ['嫅'],\r\n    'míng mǐng': ['嫇'],\r\n    niǎo: ['嫋', '嬝', '嬲', '茑', '蔦', '袅', '裊', '褭', '鸟'],\r\n    tāo: [\r\n        '嫍',\r\n        '幍',\r\n        '弢',\r\n        '慆',\r\n        '掏',\r\n        '搯',\r\n        '槄',\r\n        '涛',\r\n        '滔',\r\n        '濤',\r\n        '瑫',\r\n        '絛',\r\n        '縚',\r\n        '縧',\r\n        '绦',\r\n        '詜',\r\n        '謟',\r\n        '轁',\r\n        '鞱',\r\n        '韜',\r\n        '韬',\r\n        '飸',\r\n        '饕',\r\n    ],\r\n    biáo: ['嫑'],\r\n    'piáo piāo': ['嫖', '薸'],\r\n    xuán: [\r\n        '嫙',\r\n        '悬',\r\n        '懸',\r\n        '暶',\r\n        '檈',\r\n        '漩',\r\n        '玄',\r\n        '璇',\r\n        '璿',\r\n        '痃',\r\n        '蜁',\r\n        '𫠊',\r\n    ],\r\n    'màn mān': ['嫚'],\r\n    kāng: [\r\n        '嫝',\r\n        '嵻',\r\n        '康',\r\n        '慷',\r\n        '槺',\r\n        '漮',\r\n        '砊',\r\n        '穅',\r\n        '糠',\r\n        '躿',\r\n        '鏮',\r\n        '鱇',\r\n        '𡐓',\r\n        '𩾌',\r\n    ],\r\n    'hān nǎn': ['嫨'],\r\n    nèn: ['嫩', '嫰'],\r\n    zhē: ['嫬', '遮'],\r\n    'mā má': ['嫲'],\r\n    piè: ['嫳'],\r\n    zhǎn: [\r\n        '嫸',\r\n        '展',\r\n        '搌',\r\n        '斩',\r\n        '斬',\r\n        '琖',\r\n        '盏',\r\n        '盞',\r\n        '輾',\r\n        '醆',\r\n        '颭',\r\n        '飐',\r\n    ],\r\n    'xiān yǎn jìn': ['嬐'],\r\n    liǎn: [\r\n        '嬚',\r\n        '敛',\r\n        '斂',\r\n        '琏',\r\n        '璉',\r\n        '羷',\r\n        '脸',\r\n        '臉',\r\n        '蔹',\r\n        '蘝',\r\n        '蘞',\r\n        '裣',\r\n        '襝',\r\n        '鄻',\r\n    ],\r\n    'qióng huán xuān': ['嬛'],\r\n    dǒng: ['嬞', '懂', '箽', '董', '蕫', '諌'],\r\n    cān: ['嬠', '湌', '爘', '飡', '餐', '驂', '骖'],\r\n    tiǎo: ['嬥', '宨', '晀', '朓', '窱', '脁'],\r\n    bí: ['嬶', '荸', '鼻'],\r\n    liǔ: [\r\n        '嬼',\r\n        '柳',\r\n        '栁',\r\n        '桞',\r\n        '桺',\r\n        '橮',\r\n        '熮',\r\n        '珋',\r\n        '綹',\r\n        '绺',\r\n        '罶',\r\n        '羀',\r\n        '鋶',\r\n        '锍',\r\n    ],\r\n    'qiān xiān': ['孅', '欦'],\r\n    'xié huī': ['孈'],\r\n    'huān quán': ['孉'],\r\n    'lí lì': ['孋', '麗'],\r\n    'zhú chuò': ['孎'],\r\n    kǒng: ['孔', '恐'],\r\n    'mā zī': ['孖'],\r\n    'sūn xùn': ['孙', '孫'],\r\n    'bèi bó': ['孛', '誖'],\r\n    'yòu niū': ['孧'],\r\n    zhuǎn: ['孨', '竱', '轉'],\r\n    hái: ['孩', '骸'],\r\n    nāo: ['孬'],\r\n    'chán càn': ['孱'],\r\n    bò: ['孹', '檗', '蘗', '譒'],\r\n    nái: ['孻', '腉'],\r\n    'níng nìng': ['宁', '寍', '寗', '寜', '寧', '甯'],\r\n    zhái: ['宅'],\r\n    'tū jiā': ['宊'],\r\n    sòng: ['宋', '訟', '誦', '讼', '诵', '送', '鎹', '頌', '颂', '餸'],\r\n    ròu: ['宍', '肉', '譳'],\r\n    zhūn: ['宒', '窀', '衠', '諄', '谆', '迍'],\r\n    'mì fú': ['宓'],\r\n    'dàng tàn': ['宕'],\r\n    'wǎn yuān': ['宛'],\r\n    chǒng: ['宠', '寵'],\r\n    qún: ['宭', '峮', '帬', '羣', '群', '裙', '裠'],\r\n    zǎi: ['宰', '崽'],\r\n    'bǎo shí': ['宲'],\r\n    'jiā jia jie': ['家'],\r\n    'huāng huǎng': ['宺'],\r\n    kuān: ['宽', '寛', '寬', '臗', '鑧', '髋', '髖'],\r\n    'sù xiǔ xiù': ['宿'],\r\n    'jié zǎn': ['寁'],\r\n    'bìng bǐng': ['寎'],\r\n    'jìn qǐn': ['寖'],\r\n    'lóu jù': ['寠'],\r\n    'xiě xiè': ['寫'],\r\n    'qīn qìn': ['寴'],\r\n    cùn: ['寸', '籿'],\r\n    duì: [\r\n        '对',\r\n        '対',\r\n        '對',\r\n        '怼',\r\n        '憝',\r\n        '懟',\r\n        '濧',\r\n        '瀩',\r\n        '碓',\r\n        '祋',\r\n        '綐',\r\n        '薱',\r\n        '譈',\r\n        '譵',\r\n        '轛',\r\n        '队',\r\n        '陮',\r\n    ],\r\n    'lüè luó': ['寽'],\r\n    'shè yè yì': ['射'],\r\n    'jiāng jiàng qiāng': ['将'],\r\n    'jiāng jiàng': ['將', '浆', '漿', '畺'],\r\n    zūn: ['尊', '嶟', '樽', '罇', '遵', '鐏', '鱒', '鳟', '鶎', '鷷', '𨱔'],\r\n    'shù zhù': ['尌', '澍'],\r\n    xiǎo: ['小', '晓', '暁', '曉', '皛', '皢', '筱', '筿', '篠', '謏', '𫍲'],\r\n    'jié jí': ['尐', '诘', '鞊'],\r\n    'shǎo shào': ['少'],\r\n    ěr: [\r\n        '尒',\r\n        '尓',\r\n        '尔',\r\n        '栮',\r\n        '毦',\r\n        '洱',\r\n        '爾',\r\n        '珥',\r\n        '耳',\r\n        '薾',\r\n        '衈',\r\n        '趰',\r\n        '迩',\r\n        '邇',\r\n        '鉺',\r\n        '铒',\r\n        '餌',\r\n        '饵',\r\n        '駬',\r\n    ],\r\n    'wāng yóu': ['尢'],\r\n    wāng: ['尣', '尩', '尪', '尫', '汪'],\r\n    liào: ['尥', '尦', '廖', '撂', '料', '炓', '窷', '鐐', '镣', '𪤗'],\r\n    'méng máng lóng páng': ['尨'],\r\n    gà: ['尬', '魀'],\r\n    'kuì kuǐ': ['尯'],\r\n    tuí: ['尵', '弚', '穨', '蘈', '蹪', '隤', '頹', '頺', '頽', '颓', '魋', '𬯎'],\r\n    yǐn: [\r\n        '尹',\r\n        '嶾',\r\n        '引',\r\n        '朄',\r\n        '檃',\r\n        '檼',\r\n        '櫽',\r\n        '淾',\r\n        '濥',\r\n        '瘾',\r\n        '癮',\r\n        '粌',\r\n        '蘟',\r\n        '蚓',\r\n        '螾',\r\n        '讔',\r\n        '赺',\r\n        '趛',\r\n        '輑',\r\n        '鈏',\r\n        '靷',\r\n    ],\r\n    'chǐ chě': ['尺'],\r\n    kāo: ['尻', '髛'],\r\n    'jìn jǐn': ['尽'],\r\n    'wěi yǐ': ['尾'],\r\n    'niào suī': ['尿'],\r\n    céng: ['层', '層', '嶒', '驓'],\r\n    diǎo: ['屌'],\r\n    'píng bǐng bīng': ['屏'],\r\n    lòu: ['屚', '漏', '瘘', '瘺', '瘻', '鏤', '镂', '陋'],\r\n    'shǔ zhǔ': ['属', '屬'],\r\n    'xiè tì': ['屟'],\r\n    'chè cǎo': ['屮'],\r\n    'tún zhūn': ['屯'],\r\n    'nì jǐ': ['屰'],\r\n    'hóng lóng': ['屸'],\r\n    'qǐ kǎi': ['岂', '豈'],\r\n    áng: ['岇', '昂', '昻'],\r\n    'gǎng gāng': ['岗', '崗'],\r\n    kě: ['岢', '敤', '渇', '渴', '炣'],\r\n    gǒu: ['岣', '狗', '玽', '笱', '耇', '耈', '耉', '苟', '豿'],\r\n    tiáo: [\r\n        '岧',\r\n        '岹',\r\n        '樤',\r\n        '祒',\r\n        '笤',\r\n        '芀',\r\n        '萔',\r\n        '蓚',\r\n        '蓨',\r\n        '蜩',\r\n        '迢',\r\n        '鋚',\r\n        '鎥',\r\n        '鞗',\r\n        '髫',\r\n        '鯈',\r\n        '鰷',\r\n        '鲦',\r\n        '齠',\r\n        '龆',\r\n    ],\r\n    'qū jū': ['岨'],\r\n    lǐng: ['岭', '嶺', '領', '领'],\r\n    pò: ['岶', '敀', '洦', '湐', '烞', '珀', '破', '砶', '粕', '蒪', '魄'],\r\n    'bā kè': ['峇'],\r\n    luò: [\r\n        '峈',\r\n        '摞',\r\n        '洛',\r\n        '洜',\r\n        '犖',\r\n        '珞',\r\n        '笿',\r\n        '纙',\r\n        '荦',\r\n        '詻',\r\n        '雒',\r\n        '駱',\r\n        '骆',\r\n        '鵅',\r\n    ],\r\n    'fù niè': ['峊'],\r\n    ěn: ['峎'],\r\n    'zhì shì': ['峙', '崻'],\r\n    qiǎ: ['峠', '跒', '酠', '鞐'],\r\n    'qiáo jiào': ['峤', '癄'],\r\n    'xié yé': ['峫'],\r\n    bū: ['峬', '庯', '晡', '誧', '逋', '鈽', '錻', '钸', '餔', '鵏'],\r\n    chóng: ['崇', '崈', '爞', '虫', '蝩', '蟲', '褈', '隀'],\r\n    'zú cuì': ['崒', '椊'],\r\n    'líng léng': ['崚'],\r\n    'dòng dōng': ['崠'],\r\n    xiáo: ['崤', '洨', '淆', '訤', '誵'],\r\n    'pí bǐ': ['崥', '芘'],\r\n    'zhǎn chán': ['崭', '嶃', '嶄'],\r\n    'wǎi wēi': ['崴'],\r\n    'yáng dàng': ['崵'],\r\n    'shì dié': ['崼'],\r\n    yào: [\r\n        '崾',\r\n        '曜',\r\n        '熎',\r\n        '燿',\r\n        '矅',\r\n        '穾',\r\n        '窔',\r\n        '筄',\r\n        '耀',\r\n        '艞',\r\n        '药',\r\n        '葯',\r\n        '薬',\r\n        '藥',\r\n        '袎',\r\n        '覞',\r\n        '詏',\r\n        '讑',\r\n        '靿',\r\n        '鷂',\r\n        '鹞',\r\n        '鼼',\r\n    ],\r\n    'kān zhàn': ['嵁'],\r\n    'hán dǎng': ['嵅'],\r\n    'qiàn kàn': ['嵌'],\r\n    'wù máo': ['嵍'],\r\n    'kě jié': ['嵑', '嶱'],\r\n    'wēi wěi': ['嵔'],\r\n    kē: [\r\n        '嵙',\r\n        '柯',\r\n        '棵',\r\n        '榼',\r\n        '樖',\r\n        '牁',\r\n        '牱',\r\n        '犐',\r\n        '珂',\r\n        '疴',\r\n        '瞌',\r\n        '磕',\r\n        '礚',\r\n        '科',\r\n        '稞',\r\n        '窠',\r\n        '萪',\r\n        '薖',\r\n        '蚵',\r\n        '蝌',\r\n        '趷',\r\n        '轲',\r\n        '醘',\r\n        '鈳',\r\n        '钶',\r\n        '頦',\r\n        '顆',\r\n        '颗',\r\n        '髁',\r\n    ],\r\n    'dàng táng': ['嵣'],\r\n    'róng yíng': ['嵤', '爃'],\r\n    'ái kǎi': ['嵦'],\r\n    'kāo qiāo': ['嵪'],\r\n    cuó: ['嵯', '嵳', '痤', '矬', '蒫', '蔖', '虘', '鹺', '鹾'],\r\n    'qiǎn qīn': ['嵰'],\r\n    'dì dié': ['嵽'],\r\n    cēn: ['嵾'],\r\n    dǐng: ['嵿', '艼', '薡', '鐤', '頂', '顶', '鼎', '鼑'],\r\n    'áo ào': ['嶅'],\r\n    'pǐ pèi': ['嶏'],\r\n    'jiào qiáo': ['嶠', '潐'],\r\n    'jué guì': ['嶡', '鳜'],\r\n    'zhān shàn': ['嶦', '鳣'],\r\n    'xiè jiè': ['嶰'],\r\n    'guī xī juàn': ['嶲'],\r\n    rū: ['嶿'],\r\n    'lì liè': ['巁', '棙', '爄', '綟'],\r\n    'xī guī juàn': ['巂'],\r\n    'yíng hōng': ['巆'],\r\n    yǐng: [\r\n        '巊',\r\n        '廮',\r\n        '影',\r\n        '摬',\r\n        '梬',\r\n        '潁',\r\n        '瘿',\r\n        '癭',\r\n        '矨',\r\n        '穎',\r\n        '郢',\r\n        '鐛',\r\n        '頴',\r\n        '颍',\r\n        '颕',\r\n        '颖',\r\n    ],\r\n    chǎo: ['巐', '炒', '煼', '眧', '麨'],\r\n    cuán: ['巑', '櫕', '欑'],\r\n    chuān: ['巛', '川', '氚', '瑏', '穿'],\r\n    'jīng xíng': ['巠'],\r\n    cháo: [\r\n        '巢',\r\n        '巣',\r\n        '晁',\r\n        '漅',\r\n        '潮',\r\n        '牊',\r\n        '窲',\r\n        '罺',\r\n        '謿',\r\n        '轈',\r\n        '鄛',\r\n        '鼌',\r\n    ],\r\n    qiǎo: ['巧', '愀', '髜'],\r\n    gǒng: ['巩', '廾', '拱', '拲', '栱', '汞', '珙', '輁', '鞏'],\r\n    'chà chā chāi cī': ['差'],\r\n    'xiàng hàng': ['巷'],\r\n    shuài: ['帅', '帥', '蟀'],\r\n    pà: ['帊', '帕', '怕', '袙'],\r\n    'tǎng nú': ['帑'],\r\n    'mò wà': ['帓'],\r\n    'tiē tiě tiè': ['帖'],\r\n    zhǒu: ['帚', '晭', '疛', '睭', '箒', '肘', '菷', '鯞'],\r\n    'juǎn juàn': ['帣'],\r\n    shuì: ['帨', '涗', '涚', '睡', '稅', '税', '裞'],\r\n    'chóu dào': ['帱', '幬'],\r\n    'jiǎn jiān sàn': ['帴'],\r\n    'shà qiè': ['帹'],\r\n    'qí jì': ['帺', '荠'],\r\n    'shān qiāo shēn': ['幓'],\r\n    'zhuàng chuáng': ['幢'],\r\n    'chān chàn': ['幨'],\r\n    miè: [\r\n        '幭',\r\n        '懱',\r\n        '搣',\r\n        '滅',\r\n        '灭',\r\n        '烕',\r\n        '礣',\r\n        '篾',\r\n        '蔑',\r\n        '薎',\r\n        '蠛',\r\n        '衊',\r\n        '鑖',\r\n        '鱴',\r\n        '鴓',\r\n    ],\r\n    'gān gàn': ['干'],\r\n    'bìng bīng': ['并', '幷'],\r\n    'jī jǐ': ['幾'],\r\n    'guǎng ān': ['广'],\r\n    guǎng: ['広', '廣', '犷', '獷'],\r\n    me: ['庅'],\r\n    'dùn tún': ['庉'],\r\n    'bài tīng': ['庍'],\r\n    'yìng yīng': ['应'],\r\n    'dǐ de': ['底'],\r\n    'dù duó': ['度'],\r\n    'máng méng páng': ['庬'],\r\n    'bìng píng': ['庰'],\r\n    chěng: ['庱', '悜', '睈', '逞', '騁', '骋'],\r\n    'jī cuò': ['庴'],\r\n    qǐng: ['庼', '廎', '檾', '漀', '苘', '請', '謦', '请', '頃', '顷'],\r\n    'guī wěi huì': ['廆'],\r\n    'jǐn qín': ['廑'],\r\n    kuò: [\r\n        '廓',\r\n        '扩',\r\n        '拡',\r\n        '擴',\r\n        '濶',\r\n        '筈',\r\n        '萿',\r\n        '葀',\r\n        '蛞',\r\n        '闊',\r\n        '阔',\r\n        '霩',\r\n        '鞟',\r\n        '鞹',\r\n        '韕',\r\n        '頢',\r\n        '鬠',\r\n    ],\r\n    'qiáng sè': ['廧', '薔'],\r\n    'yǐn yìn': ['廴', '隐', '隠', '隱', '飮', '飲', '饮'],\r\n    'pò pǎi': ['廹', '迫'],\r\n    'nòng lòng': ['弄'],\r\n    'dì tì tuí': ['弟'],\r\n    'jué zhāng': ['弡'],\r\n    'mí mǐ': ['弥', '彌', '靡'],\r\n    chāo: ['弨', '怊', '抄', '欩', '訬', '超', '鈔', '钞'],\r\n    yi: ['弬'],\r\n    shāo: [\r\n        '弰',\r\n        '旓',\r\n        '烧',\r\n        '焼',\r\n        '燒',\r\n        '筲',\r\n        '艄',\r\n        '萷',\r\n        '蕱',\r\n        '輎',\r\n        '髾',\r\n        '鮹',\r\n    ],\r\n    'xuān yuān': ['弲'],\r\n    'qiáng qiǎng jiàng': ['強', '强'],\r\n    'tán dàn': ['弹', '醈'],\r\n    biè: ['彆'],\r\n    'qiáng jiàng qiǎng': ['彊'],\r\n    'jì xuě': ['彐'],\r\n    tuàn: ['彖', '褖'],\r\n    yuē: ['彟', '曰', '曱', '矱'],\r\n    'shān xiǎn': ['彡'],\r\n    wén: [\r\n        '彣',\r\n        '文',\r\n        '炆',\r\n        '珳',\r\n        '瘒',\r\n        '繧',\r\n        '聞',\r\n        '芠',\r\n        '蚉',\r\n        '蚊',\r\n        '螡',\r\n        '蟁',\r\n        '閺',\r\n        '閿',\r\n        '闅',\r\n        '闦',\r\n        '闻',\r\n        '阌',\r\n        '雯',\r\n        '馼',\r\n        '駇',\r\n        '魰',\r\n        '鳼',\r\n        '鴍',\r\n        '鼤',\r\n        '𫘜',\r\n    ],\r\n    'péng bāng': ['彭'],\r\n    'piāo piào': ['彯'],\r\n    'zhuó bó': ['彴'],\r\n    'tuǒ yí': ['彵'],\r\n    'páng fǎng': ['彷'],\r\n    wǎng: [\r\n        '彺',\r\n        '往',\r\n        '徃',\r\n        '惘',\r\n        '枉',\r\n        '棢',\r\n        '網',\r\n        '网',\r\n        '罒',\r\n        '罓',\r\n        '罔',\r\n        '罖',\r\n        '菵',\r\n        '蛧',\r\n        '蝄',\r\n        '誷',\r\n        '輞',\r\n        '辋',\r\n        '魍',\r\n    ],\r\n    cú: ['徂', '殂'],\r\n    'dài dāi': ['待'],\r\n    huái: ['徊', '怀', '懐', '懷', '槐', '淮', '耲', '蘹', '褢', '褱', '踝'],\r\n    'wā wàng jiā': ['徍'],\r\n    'chěng zhèng': ['徎'],\r\n    'dé děi de': ['得'],\r\n    'cóng zòng': ['從'],\r\n    'shì tǐ': ['徥'],\r\n    'tí chí': ['徲', '鶗', '鶙'],\r\n    dé: ['徳', '德', '恴', '悳', '惪', '淂', '鍀', '锝'],\r\n    'zhǐ zhēng': ['徴', '徵'],\r\n    bié: ['徶', '癿', '莂', '蛂', '襒', '蹩'],\r\n    'chōng zhǒng': ['徸'],\r\n    'jiǎo jiào': ['徼', '笅', '筊'],\r\n    'lòng lǒng': ['徿'],\r\n    'qú jù': ['忂', '渠', '瞿', '螶'],\r\n    'dìng tìng': ['忊'],\r\n    gǎi: ['忋', '改'],\r\n    rěn: ['忍', '栠', '栣', '秹', '稔', '綛', '荏', '荵', '躵'],\r\n    chàn: ['忏', '懴', '懺', '硟', '羼', '韂', '顫'],\r\n    tè: ['忑', '慝', '特', '蟘', '鋱', '铽'],\r\n    'tè tēi tuī': ['忒'],\r\n    'gān hàn': ['忓', '攼'],\r\n    'yì qì': ['忔'],\r\n    'tài shì': ['忕'],\r\n    'xī liě': ['忚'],\r\n    'yīng yìng': ['応', '應', '譍'],\r\n    'mǐn wěn mín': ['忞', '忟'],\r\n    'sōng zhōng': ['忪'],\r\n    'yù shū': ['忬', '悆'],\r\n    'qí shì': ['忯', '耆'],\r\n    'tún zhūn dùn': ['忳'],\r\n    'qián qín': ['忴', '扲'],\r\n    hún: ['忶', '浑', '渾', '餛', '馄', '魂', '鼲'],\r\n    niǔ: ['忸', '扭', '炄', '狃', '紐', '纽', '莥', '鈕', '钮', '靵'],\r\n    'kuáng wǎng': ['忹'],\r\n    'kāng hàng': ['忼'],\r\n    'kài xì': ['忾', '愾'],\r\n    òu: ['怄', '慪'],\r\n    'bǎo bào': ['怉'],\r\n    'mín mén': ['怋'],\r\n    'zuò zhà': ['怍'],\r\n    zěn: ['怎'],\r\n    yàng: ['怏', '恙', '样', '様', '樣', '漾', '羕', '詇'],\r\n    'kòu jù': ['怐'],\r\n    'náo niú': ['怓'],\r\n    'zhēng zhèng': ['怔', '掙', '钲', '铮'],\r\n    'tiē zhān': ['怗'],\r\n    'hù gù': ['怘'],\r\n    'cū jù zū': ['怚'],\r\n    'sī sāi': ['思'],\r\n    'yóu chóu': ['怞'],\r\n    'tū dié': ['怢'],\r\n    'yōu yào': ['怮'],\r\n    xuàn: [\r\n        '怰',\r\n        '昡',\r\n        '楦',\r\n        '泫',\r\n        '渲',\r\n        '炫',\r\n        '琄',\r\n        '眩',\r\n        '碹',\r\n        '絢',\r\n        '縼',\r\n        '繏',\r\n        '绚',\r\n        '蔙',\r\n        '衒',\r\n        '袨',\r\n        '贙',\r\n        '鉉',\r\n        '鏇',\r\n        '铉',\r\n        '镟',\r\n        '颴',\r\n    ],\r\n    'xù xuè': ['怴'],\r\n    'bì pī': ['怶'],\r\n    'xī shù': ['怸'],\r\n    'nèn nín': ['恁'],\r\n    'tiāo yáo': ['恌'],\r\n    'xī qī xù': ['恓'],\r\n    'xiào jiǎo': ['恔'],\r\n    'hū kuā': ['恗'],\r\n    nǜ: ['恧', '朒', '衂', '衄'],\r\n    hèn: ['恨'],\r\n    'dòng tōng': ['恫'],\r\n    'quán zhuān': ['恮'],\r\n    'è wù ě wū': ['恶', '惡'],\r\n    tòng: ['恸', '慟', '憅', '痛', '衕'],\r\n    'yuān juàn': ['悁'],\r\n    'qiāo qiǎo': ['悄'],\r\n    'jiè kè': ['悈'],\r\n    'hào jiào': ['悎'],\r\n    huǐ: ['悔', '檓', '毀', '毁', '毇', '燬', '譭'],\r\n    'mán mèn': ['悗', '鞔'],\r\n    'yī yì': ['悘', '衣'],\r\n    quān: ['悛', '箞', '鐉', '𨟠'],\r\n    'kuī lǐ': ['悝'],\r\n    'yì niàn': ['悥'],\r\n    'mèn mēn': ['悶'],\r\n    guàn: [\r\n        '悹',\r\n        '悺',\r\n        '惯',\r\n        '慣',\r\n        '掼',\r\n        '摜',\r\n        '樌',\r\n        '欟',\r\n        '泴',\r\n        '涫',\r\n        '潅',\r\n        '灌',\r\n        '爟',\r\n        '瓘',\r\n        '盥',\r\n        '礶',\r\n        '祼',\r\n        '罆',\r\n        '罐',\r\n        '貫',\r\n        '贯',\r\n        '躀',\r\n        '遦',\r\n        '鏆',\r\n        '鑵',\r\n        '鱹',\r\n        '鸛',\r\n        '鹳',\r\n    ],\r\n    'kōng kǒng': ['悾'],\r\n    'lǔn lùn': ['惀'],\r\n    guǒ: [\r\n        '惈',\r\n        '果',\r\n        '椁',\r\n        '槨',\r\n        '粿',\r\n        '綶',\r\n        '菓',\r\n        '蜾',\r\n        '裹',\r\n        '褁',\r\n        '輠',\r\n        '餜',\r\n        '馃',\r\n    ],\r\n    'yuān wǎn': ['惌', '箢'],\r\n    'lán lín': ['惏'],\r\n    'yù xù': ['惐', '淢'],\r\n    'chuò chuì': ['惙'],\r\n    'hūn mèn': ['惛'],\r\n    'chǎng tǎng': ['惝'],\r\n    'suǒ ruǐ': ['惢'],\r\n    cǎn: ['惨', '慘', '憯', '黪', '黲', '䅟'],\r\n    cán: ['惭', '慙', '慚', '残', '殘', '蚕', '蝅', '蠶', '蠺'],\r\n    'dàn dá': ['惮', '憚'],\r\n    rě: ['惹'],\r\n    'yú tōu': ['愉'],\r\n    'kài qì': ['愒'],\r\n    'dàng táng shāng yáng': ['愓'],\r\n    'chén xìn dān': ['愖'],\r\n    'kè qià': ['愘'],\r\n    nuò: [\r\n        '愞',\r\n        '懦',\r\n        '懧',\r\n        '掿',\r\n        '搦',\r\n        '榒',\r\n        '稬',\r\n        '穤',\r\n        '糑',\r\n        '糥',\r\n        '糯',\r\n        '諾',\r\n        '诺',\r\n        '蹃',\r\n        '逽',\r\n        '鍩',\r\n        '锘',\r\n    ],\r\n    gǎn: [\r\n        '感',\r\n        '擀',\r\n        '敢',\r\n        '桿',\r\n        '橄',\r\n        '澉',\r\n        '澸',\r\n        '皯',\r\n        '秆',\r\n        '稈',\r\n        '笴',\r\n        '芉',\r\n        '衦',\r\n        '赶',\r\n        '趕',\r\n        '鱤',\r\n        '鳡',\r\n    ],\r\n    'còng sōng': ['愡'],\r\n    'sāi sī sǐ': ['愢'],\r\n    'gōng gòng hǒng': ['愩', '慐'],\r\n    'shuò sù': ['愬', '洬'],\r\n    'yáo yào': ['愮'],\r\n    huàng: ['愰', '曂', '榥', '滉', '皝', '皩', '鎤', '㿠'],\r\n    zhěng: ['愸', '抍', '拯', '整', '晸'],\r\n    cǎo: ['愺', '艸', '草', '騲'],\r\n    'xì xié': ['慀'],\r\n    'cǎo sāo': ['慅'],\r\n    'xù chù': ['慉'],\r\n    'qiè qiàn': ['慊'],\r\n    'cáo cóng': ['慒'],\r\n    'ào áo': ['慠'],\r\n    'lián liǎn': ['慩', '梿', '槤', '櫣'],\r\n    'jìn qín jǐn': ['慬'],\r\n    'dì chì': ['慸'],\r\n    'zhí zhé': ['慹'],\r\n    'lóu lǚ': ['慺', '鷜'],\r\n    còng: ['憁', '謥'],\r\n    'zhī zhì': ['憄', '知', '織', '织'],\r\n    chēng: [\r\n        '憆',\r\n        '摚',\r\n        '撐',\r\n        '撑',\r\n        '晿',\r\n        '柽',\r\n        '棦',\r\n        '橕',\r\n        '檉',\r\n        '泟',\r\n        '浾',\r\n        '琤',\r\n        '瞠',\r\n        '碀',\r\n        '緽',\r\n        '罉',\r\n        '蛏',\r\n        '蟶',\r\n        '赪',\r\n        '赬',\r\n        '鏿',\r\n        '鐣',\r\n        '阷',\r\n        '靗',\r\n        '頳',\r\n        '饓',\r\n    ],\r\n    biē: ['憋', '虌', '鱉', '鳖', '鼈', '龞'],\r\n    'chéng dèng zhèng': ['憕'],\r\n    'xǐ xī': ['憘'],\r\n    'duì dùn tūn': ['憞'],\r\n    'xiāo jiāo': ['憢'],\r\n    'xián xiàn': ['憪'],\r\n    'liáo liǎo': ['憭', '燎', '爎', '爒'],\r\n    shéng: ['憴', '縄', '繉', '繩', '绳', '譝'],\r\n    'náo nǎo náng': ['憹'],\r\n    'jǐng jìng': ['憼'],\r\n    'jǐ jiǎo': ['憿'],\r\n    'xuān huān': ['懁'],\r\n    'cǎo sāo sào': ['懆'],\r\n    mèn: ['懑', '懣', '暪', '焖', '燜'],\r\n    'mèng méng měng': ['懜'],\r\n    'ài yì nǐ': ['懝'],\r\n    'méng měng': ['懞', '瞢', '矒'],\r\n    'qí jī jì': ['懠'],\r\n    mǒ: ['懡'],\r\n    'lán xiàn': ['懢'],\r\n    'yōu yǒu': ['懮'],\r\n    'liú liǔ': ['懰', '藰'],\r\n    ràng: ['懹', '譲', '讓', '让'],\r\n    huān: ['懽', '欢', '歓', '歡', '獾', '讙', '貛', '酄', '驩', '鴅', '鵍'],\r\n    nǎn: ['戁', '揇', '湳', '煵', '腩', '蝻', '赧'],\r\n    'mí mó': ['戂'],\r\n    'gàng zhuàng': ['戅', '戆'],\r\n    'zhuàng gàng': ['戇'],\r\n    'xū qu': ['戌'],\r\n    'xì hū': ['戏', '戯', '戲'],\r\n    'jiá gā': ['戛'],\r\n    zéi: ['戝', '蠈', '賊', '贼', '鰂', '鱡', '鲗'],\r\n    děng: ['戥', '等'],\r\n    'hū xì': ['戱'],\r\n    chuō: ['戳', '踔', '逴'],\r\n    'biǎn piān': ['扁'],\r\n    'shǎng jiōng': ['扄'],\r\n    'shàn shān': ['扇'],\r\n    cái: ['才', '材', '纔', '裁', '財', '财'],\r\n    'zhā zā zhá': ['扎'],\r\n    'lè lì cái': ['扐'],\r\n    'bā pá': ['扒'],\r\n    'dǎ dá': ['打'],\r\n    rēng: ['扔'],\r\n    'fǎn fú': ['払'],\r\n    'diǎo dí yuē lì': ['扚'],\r\n    'káng gāng': ['扛'],\r\n    'yū wū': ['扜'],\r\n    'yū wū kū': ['扝'],\r\n    'tuō chǐ yǐ': ['扡'],\r\n    'gǔ jié xì gē': ['扢'],\r\n    dèn: ['扥', '扽'],\r\n    'sǎo sào': ['扫', '掃'],\r\n    rǎo: ['扰', '擾', '隢'],\r\n    'xī chā qì': ['扱'],\r\n    'bān pān': ['扳'],\r\n    'bā ào': ['扷'],\r\n    'xī zhé': ['扸'],\r\n    'zhì sǔn kǎn': ['扻'],\r\n    zhǎo: ['找', '沼', '瑵'],\r\n    'kuáng wǎng zài': ['抂'],\r\n    'hú gǔ': ['抇', '鹄', '鹘'],\r\n    'bǎ bà': ['把'],\r\n    'dǎn shěn': ['抌'],\r\n    'nè nì ruì nà': ['抐'],\r\n    zhuā: ['抓', '檛', '簻', '膼', '髽'],\r\n    póu: ['抔', '裒'],\r\n    'zhé shé zhē': ['折'],\r\n    'póu pōu fū': ['抙', '捊'],\r\n    pāo: ['抛', '拋', '脬', '萢'],\r\n    'ǎo ào niù': ['抝'],\r\n    'lūn lún': ['抡', '掄'],\r\n    'qiǎng qiāng chēng': ['抢'],\r\n    'zhǐ zhǎi': ['抧'],\r\n    'bù pū': ['抪', '柨'],\r\n    'yǎo tāo': ['抭'],\r\n    'hē hè qiā': ['抲'],\r\n    'nǐ ní': ['抳'],\r\n    'pī pēi': ['抷'],\r\n    'mǒ mò mā': ['抹'],\r\n    chōu: ['抽', '犨', '犫', '瘳', '篘'],\r\n    'jiā yá': ['拁'],\r\n    'fú bì': ['拂', '畐', '鶝'],\r\n    zhǎ: ['拃', '眨', '砟', '鮺', '鲝'],\r\n    'dān dàn dǎn': ['担'],\r\n    'chāi cā': ['拆'],\r\n    niān: ['拈', '蔫'],\r\n    'lā lá lǎ là': ['拉'],\r\n    'bàn pàn': ['拌'],\r\n    pāi: ['拍'],\r\n    līn: ['拎'],\r\n    guǎi: ['拐', '枴', '柺'],\r\n    'tuò tà zhí': ['拓'],\r\n    'ào ǎo niù': ['拗'],\r\n    'jū gōu': ['拘'],\r\n    'pīn pàn fān': ['拚'],\r\n    'bài bái': ['拜'],\r\n    bài: ['拝', '敗', '稗', '粺', '薭', '贁', '败', '韛'],\r\n    qiá: ['拤'],\r\n    'nǐng níng nìng': ['拧'],\r\n    'zé zhái': ['择', '擇'],\r\n    hén: ['拫', '痕', '鞎'],\r\n    'kuò guā': ['括'],\r\n    'jié jiá': ['拮'],\r\n    nǐn: ['拰'],\r\n    shuān: ['拴', '栓', '閂', '闩'],\r\n    'cún zùn': ['拵'],\r\n    'zā zǎn': ['拶', '桚'],\r\n    kǎo: ['拷', '攷', '栲', '烤', '考'],\r\n    'yí chǐ hài': ['拸'],\r\n    'cè sè chuò': ['拺'],\r\n    'zhuài zhuāi yè': ['拽'],\r\n    'shí shè': ['拾'],\r\n    bāi: ['挀', '掰'],\r\n    'kuò guāng': ['挄'],\r\n    nòng: ['挊', '挵', '齈'],\r\n    'jiào jiāo': ['挍', '敎', '教'],\r\n    'kuà kū': ['挎'],\r\n    'ná rú': ['挐'],\r\n    'tiāo tiǎo': ['挑'],\r\n    'dié shè': ['挕'],\r\n    liě: ['挘', '毟'],\r\n    'yà yǎ': ['挜', '掗'],\r\n    'wō zhuā': ['挝'],\r\n    'xié jiā': ['挟', '挾'],\r\n    'dǎng dàng': ['挡', '擋'],\r\n    'zhèng zhēng': ['挣', '正', '症'],\r\n    'āi ái': ['挨'],\r\n    'tuō shuì': ['挩', '捝'],\r\n    'tǐ tì': ['挮'],\r\n    'suō shā': ['挱'],\r\n    'sā shā suō': ['挲'],\r\n    'kēng qiān': ['挳', '摼'],\r\n    'bàng péng': ['挷'],\r\n    'ruó ruá': ['挼'],\r\n    'jiǎo kù': ['捁'],\r\n    'wǔ wú': ['捂'],\r\n    tǒng: ['捅', '桶', '筒', '筩', '統', '綂', '统', '㛚'],\r\n    'huò chì': ['捇'],\r\n    'tú shū chá': ['捈'],\r\n    'lǚ luō': ['捋'],\r\n    'shāo shào': ['捎', '稍'],\r\n    niē: ['捏', '揑'],\r\n    'shù sǒng sōu': ['捒'],\r\n    'yé yú': ['捓'],\r\n    'jué zhuó': ['捔'],\r\n    'bù pú zhì': ['捗'],\r\n    zùn: ['捘', '銌'],\r\n    lāo: ['捞', '撈', '粩'],\r\n    sǔn: ['损', '損', '榫', '笋', '筍', '箰', '鎨', '隼'],\r\n    'wàn wǎn wān yù': ['捥'],\r\n    pěng: ['捧', '淎', '皏'],\r\n    shě: ['捨'],\r\n    'fǔ fù bǔ': ['捬'],\r\n    dáo: ['捯'],\r\n    'luò luǒ wǒ': ['捰'],\r\n    'juǎn quán': ['捲'],\r\n    'chēn tiǎn': ['捵'],\r\n    'niǎn niē': ['捻'],\r\n    'ruó wěi ré': ['捼'],\r\n    zuó: ['捽', '昨', '秨', '稓', '筰', '莋', '鈼'],\r\n    'wò xiá': ['捾'],\r\n    'qìng qiàn': ['掅'],\r\n    'póu pǒu': ['掊'],\r\n    qiā: ['掐', '葜'],\r\n    'pái pǎi': ['排'],\r\n    'qiān wàn': ['掔'],\r\n    'yè yē': ['掖'],\r\n    'niè nǐ yì': ['掜'],\r\n    'huò xù': ['掝'],\r\n    'yàn shàn yǎn': ['掞'],\r\n    'zhěng dìng': ['掟'],\r\n    kòng: ['控', '鞚'],\r\n    tuī: ['推', '蓷', '藬'],\r\n    'zōu zhōu chōu': ['掫'],\r\n    tiàn: ['掭', '舚'],\r\n    kèn: ['掯', '裉', '褃'],\r\n    pá: ['掱', '杷', '潖', '爬', '琶', '筢'],\r\n    'guó guāi': ['掴'],\r\n    'dǎn shàn': ['掸', '撣'],\r\n    'chān xiān càn shǎn': ['掺'],\r\n    sāo: ['掻', '搔', '溞', '繅', '缫', '螦', '騒', '騷', '鰠', '鱢', '鳋'],\r\n    pèng: ['掽', '椪', '槰', '碰', '踫'],\r\n    'zhēng kēng': ['揁'],\r\n    'jiū yóu': ['揂'],\r\n    'jiān jiǎn': ['揃', '籛'],\r\n    'pì chè': ['揊'],\r\n    'sāi zǒng cāi': ['揌'],\r\n    'tí dī dǐ': ['提'],\r\n    'zǒng sōng': ['揔'],\r\n    'huáng yóng': ['揘'],\r\n    'zǎn zuàn': ['揝'],\r\n    'xū jū': ['揟'],\r\n    'ké qiā': ['揢'],\r\n    'chuāi chuǎi chuài tuán zhuī': ['揣'],\r\n    'dì tì': ['揥'],\r\n    'lá là': ['揦'],\r\n    là: [\r\n        '揧',\r\n        '楋',\r\n        '溂',\r\n        '瓎',\r\n        '瘌',\r\n        '翋',\r\n        '臘',\r\n        '蝋',\r\n        '蝲',\r\n        '蠟',\r\n        '辢',\r\n        '辣',\r\n        '鑞',\r\n        '镴',\r\n        '鬎',\r\n        '鯻',\r\n        '𬶟',\r\n    ],\r\n    'jiē qì': ['揭'],\r\n    'chòng dǒng': ['揰'],\r\n    'dié shé yè': ['揲'],\r\n    'jiàn qián jiǎn': ['揵'],\r\n    yé: ['揶', '爷', '爺', '瑘', '鋣', '鎁', '铘'],\r\n    chān: ['搀', '摻', '攙', '裧', '襜', '覘', '觇', '辿', '鋓'],\r\n    'gē gé': ['搁', '擱'],\r\n    'lǒu lōu': ['搂', '摟'],\r\n    'chōu zǒu': ['搊'],\r\n    chuāi: ['搋'],\r\n    sūn: ['搎', '槂', '狲', '猻', '荪', '蓀', '蕵', '薞', '飧', '飱'],\r\n    'róng náng nǎng': ['搑'],\r\n    'péng bàng': ['搒'],\r\n    cuō: ['搓', '瑳', '磋', '蹉', '遳', '醝'],\r\n    'kē è': ['搕'],\r\n    'nù nuò nòu': ['搙'],\r\n    'lā xié xiàn': ['搚'],\r\n    qiǔ: ['搝', '糗'],\r\n    'xiǎn xiān': ['搟'],\r\n    'jié zhé': ['搩'],\r\n    'pán bān pó': ['搫'],\r\n    bān: [\r\n        '搬',\r\n        '攽',\r\n        '斑',\r\n        '斒',\r\n        '班',\r\n        '瘢',\r\n        '癍',\r\n        '肦',\r\n        '螁',\r\n        '螌',\r\n        '褩',\r\n        '辬',\r\n        '頒',\r\n        '颁',\r\n        '𨭉',\r\n    ],\r\n    'zhì nái': ['搱'],\r\n    'wā wǎ wà': ['搲'],\r\n    huá: ['搳', '撶', '滑', '猾', '蕐', '螖', '譁', '鏵', '铧', '驊', '骅', '鷨'],\r\n    'qiāng qiǎng chēng': ['搶'],\r\n    'tián shēn': ['搷'],\r\n    'ná nuò': ['搻'],\r\n    èn: ['摁'],\r\n    'shè niè': ['摄', '攝'],\r\n    bìn: ['摈', '擯', '殡', '殯', '膑', '臏', '髌', '髕', '髩', '鬂', '鬓', '鬢'],\r\n    'shā sà shǎi': ['摋'],\r\n    'chǎn sùn': ['摌'],\r\n    'jiū liú liáo jiǎo náo': ['摎'],\r\n    'féng pěng': ['摓'],\r\n    shuāi: ['摔'],\r\n    'dì tú zhí': ['摕'],\r\n    'qì jì chá': ['摖'],\r\n    'sōu sǒng': ['摗'],\r\n    'liǎn liàn': ['摙'],\r\n    'gài xì': ['摡'],\r\n    'hù chū': ['摢'],\r\n    tàng: ['摥', '烫', '燙', '鐋'],\r\n    'nái zhì': ['摨'],\r\n    'mó mā': ['摩'],\r\n    'jiāng qiàng': ['摪'],\r\n    'áo qiáo': ['摮'],\r\n    'niè chè': ['摰'],\r\n    'mán màn': ['摱'],\r\n    'chàn cán': ['摲'],\r\n    'sè mí sù': ['摵'],\r\n    'biāo biào': ['摽'],\r\n    'juē jué': ['撅'],\r\n    piē: ['撆', '暼', '氕', '瞥'],\r\n    'piě piē': ['撇'],\r\n    'zǎn zān zēn qián': ['撍'],\r\n    'sā sǎ': ['撒'],\r\n    hòng: ['撔', '訌', '讧', '闀', '鬨'],\r\n    'héng guàng': ['撗'],\r\n    niǎn: [\r\n        '撚',\r\n        '撵',\r\n        '攆',\r\n        '涊',\r\n        '焾',\r\n        '碾',\r\n        '簐',\r\n        '蹍',\r\n        '蹨',\r\n        '躎',\r\n        '輦',\r\n        '辇',\r\n    ],\r\n    'chéng zhěng': ['撜'],\r\n    'huī wéi': ['撝'],\r\n    cāo: ['撡', '操', '糙'],\r\n    'xiāo sōu': ['撨'],\r\n    'liáo liāo': ['撩'],\r\n    'cuō zuǒ': ['撮'],\r\n    'wěi tuǒ': ['撱'],\r\n    cuān: ['撺', '攛', '汆', '蹿', '躥', '鑹', '镩'],\r\n    'qiào yāo jī': ['撽'],\r\n    'zhuā wō': ['撾'],\r\n    'lèi léi': ['擂'],\r\n    nǎng: ['擃', '攮', '曩', '灢'],\r\n    'qíng jǐng': ['擏'],\r\n    kuǎi: ['擓', '蒯', '㧟'],\r\n    'pǐ bò': ['擗'],\r\n    'bò bāi': ['擘'],\r\n    'jù jǐ': ['據'],\r\n    mēng: ['擝'],\r\n    'sǒu sòu': ['擞'],\r\n    xǐng: ['擤', '箵', '醒'],\r\n    cā: ['擦'],\r\n    'níng nǐng nìng': ['擰'],\r\n    'zhì jié': ['擳'],\r\n    'là liè': ['擸', '爉'],\r\n    'sòu sǒu': ['擻'],\r\n    'lì luò yuè': ['擽'],\r\n    'tī zhāi zhì': ['擿'],\r\n    pān: ['攀', '潘', '眅', '萠'],\r\n    lèi: [\r\n        '攂',\r\n        '泪',\r\n        '涙',\r\n        '淚',\r\n        '禷',\r\n        '类',\r\n        '纇',\r\n        '蘱',\r\n        '酹',\r\n        '銇',\r\n        '錑',\r\n        '頛',\r\n        '頪',\r\n        '類',\r\n        '颣',\r\n    ],\r\n    'cā sǎ': ['攃'],\r\n    'jùn pèi': ['攈'],\r\n    'lì luò': ['攊', '躒'],\r\n    'là lài': ['攋', '櫴'],\r\n    'lú luó': ['攎'],\r\n    'zǎn cuán': ['攒'],\r\n    'xiān jiān': ['攕'],\r\n    'mí mǐ mó': ['攠'],\r\n    'zǎn cuán zàn zuān': ['攢'],\r\n    zuàn: ['攥'],\r\n    'lì shài': ['攦'],\r\n    'lì luǒ': ['攭'],\r\n    'guǐ guì': ['攱'],\r\n    'jī qī yǐ': ['攲'],\r\n    fàng: ['放'],\r\n    'wù móu': ['敄'],\r\n    'chù shōu': ['敊'],\r\n    'gé guó è': ['敋'],\r\n    'duó duì': ['敓', '敚'],\r\n    'duō què': ['敠', '敪'],\r\n    'sàn sǎn': ['散'],\r\n    'dūn duì': ['敦', '镦'],\r\n    'qī yǐ jī': ['敧'],\r\n    'xiào xué': ['敩'],\r\n    'shù shǔ shuò': ['数', '數'],\r\n    'ái zhú': ['敱', '敳'],\r\n    'xiòng xuàn': ['敻'],\r\n    'zhuó zhú': ['斀'],\r\n    'yì dù': ['斁'],\r\n    'lí tái': ['斄'],\r\n    'fěi fēi': ['斐'],\r\n    'yǔ zhōng': ['斔'],\r\n    'dòu dǒu': ['斗'],\r\n    'wò guǎn': ['斡'],\r\n    'tǒu tiǎo': ['斢'],\r\n    dòu: [\r\n        '斣',\r\n        '梪',\r\n        '浢',\r\n        '痘',\r\n        '窦',\r\n        '竇',\r\n        '脰',\r\n        '荳',\r\n        '豆',\r\n        '逗',\r\n        '郖',\r\n        '酘',\r\n        '閗',\r\n        '闘',\r\n        '餖',\r\n        '饾',\r\n        '鬥',\r\n        '鬦',\r\n        '鬪',\r\n        '鬬',\r\n        '鬭',\r\n    ],\r\n    'yín zhì': ['斦'],\r\n    'chǎn jiè': ['斺'],\r\n    'wū yū yú': ['於'],\r\n    'yóu liú': ['斿'],\r\n    'páng bàng': ['旁'],\r\n    'máo mào': ['旄'],\r\n    'pī bì': ['旇'],\r\n    'xuán xuàn': ['旋'],\r\n    'wú mó': ['无'],\r\n    zǎo: ['早', '枣', '栆', '棗', '澡', '璪', '薻', '藻', '蚤'],\r\n    gā: ['旮'],\r\n    'gàn hàn': ['旰'],\r\n    'tái yīng': ['旲'],\r\n    'xū xù': ['旴'],\r\n    'tūn zhùn': ['旽'],\r\n    'wù wǔ': ['旿'],\r\n    'pò pèi': ['昢'],\r\n    zòng: ['昮', '猔', '疭', '瘲', '粽', '糉', '糭', '縦'],\r\n    ǎi: ['昹', '毐', '矮', '蔼', '藹', '譪', '躷', '霭', '靄'],\r\n    'huàng huǎng': ['晃'],\r\n    xuǎn: ['晅', '癣', '癬', '选', '選'],\r\n    'xù kuā': ['晇'],\r\n    hǒng: ['晎'],\r\n    shài: ['晒', '曬'],\r\n    'yūn yùn': ['晕', '煴'],\r\n    'shèng chéng': ['晟', '椉', '盛'],\r\n    'jǐng yǐng': ['景'],\r\n    shǎn: ['晱', '熌', '睒', '覢', '閃', '闪', '陕', '陝'],\r\n    'qǐ dù': ['晵'],\r\n    'ǎn àn yǎn': ['晻'],\r\n    'wǎng wàng': ['暀'],\r\n    zàn: [\r\n        '暂',\r\n        '暫',\r\n        '瓉',\r\n        '瓒',\r\n        '瓚',\r\n        '禶',\r\n        '襸',\r\n        '讃',\r\n        '讚',\r\n        '賛',\r\n        '贊',\r\n        '赞',\r\n        '蹔',\r\n        '鄼',\r\n        '錾',\r\n        '鏨',\r\n        '饡',\r\n    ],\r\n    'yùn yūn': ['暈'],\r\n    'mín mǐn': ['暋'],\r\n    'dǔ shǔ': ['暏'],\r\n    shǔ: [\r\n        '暑',\r\n        '曙',\r\n        '潻',\r\n        '癙',\r\n        '糬',\r\n        '署',\r\n        '薥',\r\n        '薯',\r\n        '藷',\r\n        '蜀',\r\n        '蠴',\r\n        '襡',\r\n        '襩',\r\n        '鱪',\r\n        '鱰',\r\n        '黍',\r\n        '鼠',\r\n        '鼡',\r\n    ],\r\n    'jiǎn lán': ['暕'],\r\n    nuǎn: ['暖', '煗', '餪'],\r\n    'bào pù': ['暴'],\r\n    'xī xǐ': ['暿'],\r\n    'pù bào': ['曝', '瀑'],\r\n    'qū qǔ': ['紶'],\r\n    'qǔ qū': ['曲'],\r\n    'gèng gēng': ['更'],\r\n    'hū hù': ['曶', '雽'],\r\n    'zēng céng': ['曽', '橧'],\r\n    'céng zēng': ['曾', '竲'],\r\n    'cǎn qián jiàn': ['朁'],\r\n    'qiè hé': ['朅'],\r\n    'bì pí': ['朇', '禆', '笓', '裨'],\r\n    'yǒu yòu': ['有'],\r\n    'bān fén': ['朌', '鳻'],\r\n    'fú fù': ['服', '洑'],\r\n    'fěi kū': ['朏', '胐'],\r\n    'qú xù chǔn': ['朐'],\r\n    'juān zuī': ['朘'],\r\n    'huāng máng wáng': ['朚'],\r\n    'qī jī': ['期'],\r\n    'tóng chuáng': ['朣', '橦'],\r\n    zhá: ['札', '牐', '箚', '蚻', '譗', '鍘', '铡', '閘', '闸'],\r\n    'zhú shù shú': ['朮'],\r\n    'shù shú zhú': ['术'],\r\n    'zhū shú': ['朱'],\r\n    'pǔ pò pō piáo': ['朴'],\r\n    'dāo tiáo mù': ['朷'],\r\n    'guǐ qiú': ['朹'],\r\n    xiǔ: ['朽', '滫', '潃', '糔'],\r\n    'chéng chēng': ['朾'],\r\n    zá: ['杂', '沯', '砸', '襍', '雑', '雜', '雥', '韴'],\r\n    'yú wū': ['杅'],\r\n    'gān gǎn': ['杆'],\r\n    'chā chà': ['杈'],\r\n    'shān shā': ['杉'],\r\n    cūn: ['村', '皴', '竴', '膥', '踆', '邨'],\r\n    'rèn ér': ['杒', '梕'],\r\n    'sháo biāo': ['杓'],\r\n    'dì duò': ['杕', '枤'],\r\n    'gū gài': ['杚'],\r\n    'yí zhì lí duò': ['杝'],\r\n    'gàng gāng': ['杠'],\r\n    'tiáo tiāo': ['条', '條'],\r\n    'mà mǎ': ['杩'],\r\n    'sì zhǐ xǐ': ['杫'],\r\n    'yuán wán': ['杬', '蚖'],\r\n    'bèi fèi': ['杮'],\r\n    'shū duì': ['杸'],\r\n    'niǔ chǒu': ['杻'],\r\n    'wò yuè': ['枂', '臒'],\r\n    máo: [\r\n        '枆',\r\n        '毛',\r\n        '氂',\r\n        '渵',\r\n        '牦',\r\n        '矛',\r\n        '罞',\r\n        '茅',\r\n        '茆',\r\n        '蝥',\r\n        '蟊',\r\n        '軞',\r\n        '酕',\r\n        '鉾',\r\n        '錨',\r\n        '锚',\r\n        '髦',\r\n        '鶜',\r\n    ],\r\n    'pī mì': ['枈'],\r\n    àng: ['枊', '盎', '醠'],\r\n    'fāng bìng': ['枋'],\r\n    'hù dǐ': ['枑'],\r\n    xín: ['枔', '襑', '鐔', '鬵'],\r\n    'yāo yǎo': ['枖'],\r\n    'ě è': ['枙'],\r\n    'zhī qí': ['枝'],\r\n    'cōng zōng': ['枞', '樅'],\r\n    'xiān zhēn': ['枮'],\r\n    'tái sì': ['枱'],\r\n    'gǒu jǔ gōu': ['枸'],\r\n    'bāo fú': ['枹'],\r\n    'yì xiè': ['枻', '栧'],\r\n    'tuó duò': ['柁', '馱', '駄', '驮'],\r\n    'yí duò lí': ['柂'],\r\n    'nǐ chì': ['柅'],\r\n    'pán bàn': ['柈', '跘'],\r\n    'yǎng yàng yāng yīng': ['柍'],\r\n    'fù fū fǔ': ['柎'],\r\n    'bǎi bó bò': ['柏'],\r\n    mǒu: ['某'],\r\n    'sháo shào': ['柖'],\r\n    zhè: ['柘', '樜', '浙', '淛', '蔗', '蟅', '這', '鷓', '鹧', '䗪'],\r\n    'yòu yóu': ['柚', '櫾'],\r\n    'guì jǔ': ['柜'],\r\n    'zhà zuò': ['柞'],\r\n    'dié zhì': ['柣', '眰'],\r\n    'zhā zǔ zū': ['柤'],\r\n    'chá zhā': ['查', '査'],\r\n    'āo ào': ['柪', '軪'],\r\n    'bā fú pèi bó biē': ['柭'],\r\n    'duò zuó wù': ['柮'],\r\n    'bì bié': ['柲'],\r\n    'zhù chù': ['柷'],\r\n    'bēi pēi': ['柸'],\r\n    'shì fèi': ['柹'],\r\n    'shān zhà shi cè': ['栅'],\r\n    'lì yuè': ['栎', '櫟'],\r\n    'qì qiè': ['栔', '砌'],\r\n    'qī xī': ['栖', '蹊'],\r\n    'guā kuò': ['栝'],\r\n    'bīng bēn': ['栟'],\r\n    'xiào jiào': ['校'],\r\n    'jiàn zùn': ['栫', '袸'],\r\n    'yǒu yù': ['栯'],\r\n    'hé hú': ['核'],\r\n    gēn: ['根', '跟'],\r\n    'zhī yì': ['栺'],\r\n    'gé gē': ['格'],\r\n    'héng háng': ['桁'],\r\n    'guàng guāng': ['桄'],\r\n    'yí tí': ['桋', '荑'],\r\n    sāng: ['桑', '桒', '槡'],\r\n    'jú jié': ['桔'],\r\n    'yú móu': ['桙'],\r\n    'ráo náo': ['桡', '橈'],\r\n    'guì huì': ['桧', '檜'],\r\n    'chén zhèn': ['桭'],\r\n    'tīng yíng': ['桯'],\r\n    'bó po': ['桲'],\r\n    'bèn fàn': ['桳'],\r\n    'fēng fèng': ['桻', '葑'],\r\n    'sù yìn': ['梀'],\r\n    'tǐng tìng': ['梃'],\r\n    'xuān juān xié': ['梋'],\r\n    'tú chá': ['梌'],\r\n    'āo yòu': ['梎'],\r\n    kuǎn: ['梡', '欵', '款', '歀'],\r\n    'shāo sào': ['梢'],\r\n    'qín chén cén': ['梣'],\r\n    'lí sì qǐ': ['梩'],\r\n    'chān yán': ['梴'],\r\n    'bīn bīng': ['梹', '槟', '檳'],\r\n    'táo chóu dào': ['梼'],\r\n    'cōng sōng': ['棇'],\r\n    'gùn hùn': ['棍'],\r\n    'dé zhé': ['棏'],\r\n    'pái bèi pèi': ['棑'],\r\n    'bàng pǒu bèi bēi': ['棓'],\r\n    'dì dài tì': ['棣'],\r\n    sēn: ['森', '椮', '槮', '襂'],\r\n    'rěn shěn': ['棯'],\r\n    'léng lēng líng': ['棱'],\r\n    'fú sù': ['棴'],\r\n    'zōu sǒu': ['棷'],\r\n    zōu: [\r\n        '棸',\r\n        '箃',\r\n        '緅',\r\n        '諏',\r\n        '诹',\r\n        '邹',\r\n        '郰',\r\n        '鄒',\r\n        '鄹',\r\n        '陬',\r\n        '騶',\r\n        '驺',\r\n        '鯫',\r\n        '鲰',\r\n        '黀',\r\n        '齱',\r\n        '齺',\r\n    ],\r\n    'zhào zhuō': ['棹'],\r\n    'chēn shēn': ['棽'],\r\n    'jiē qiè': ['椄'],\r\n    'yǐ yī': ['椅'],\r\n    'chóu zhòu diāo': ['椆'],\r\n    'qiāng kōng': ['椌'],\r\n    'zhuī chuí': ['椎'],\r\n    'bēi pí': ['椑'],\r\n    mēn: ['椚'],\r\n    'quān juàn quán': ['椦'],\r\n    'duǒ chuán': ['椯'],\r\n    'wěi huī': ['椲'],\r\n    'jiǎ jiā': ['椵'],\r\n    'hán jiān': ['椷'],\r\n    'shèn zhēn': ['椹'],\r\n    'yàn yà': ['椻'],\r\n    'zhā chá': ['楂'],\r\n    'guō kuǎ': ['楇'],\r\n    'jí zhì': ['楖'],\r\n    'kǔ hù': ['楛'],\r\n    'yóu yǒu': ['楢'],\r\n    'sǒng cōng': ['楤'],\r\n    'yuán xuàn': ['楥'],\r\n    'yǎng yàng yīng': ['楧'],\r\n    pián: ['楩', '胼', '腁', '賆', '蹁', '駢', '騈', '骈', '骿', '㛹'],\r\n    'dié yè': ['楪'],\r\n    'dùn shǔn': ['楯'],\r\n    'còu zòu': ['楱'],\r\n    'dì dǐ shì': ['楴'],\r\n    'kǎi jiē': ['楷'],\r\n    'róu ròu': ['楺'],\r\n    'lè yuè': ['楽'],\r\n    'wēn yùn': ['榅', '鞰'],\r\n    lǘ: ['榈', '櫚', '氀', '膢', '藘', '閭', '闾', '驢', '驴'],\r\n    shén: ['榊', '神', '鉮', '鰰', '𬬹'],\r\n    'bī pi': ['榌'],\r\n    'zhǎn niǎn zhèn': ['榐'],\r\n    'fú fù bó': ['榑'],\r\n    'jiàn jìn': ['榗'],\r\n    'bǎng bàng': ['榜'],\r\n    'shā xiè': ['榝', '樧'],\r\n    nòu: ['槈', '耨', '鎒', '鐞'],\r\n    'qiǎn lián xiàn': ['槏'],\r\n    gàng: ['槓', '焵', '焹', '筻', '鿍'],\r\n    gāo: [\r\n        '槔',\r\n        '槹',\r\n        '橰',\r\n        '櫜',\r\n        '睾',\r\n        '篙',\r\n        '糕',\r\n        '羔',\r\n        '臯',\r\n        '韟',\r\n        '餻',\r\n        '高',\r\n        '髙',\r\n        '鷎',\r\n        '鷱',\r\n        '鼛',\r\n    ],\r\n    'diān zhěn zhēn': ['槙'],\r\n    'kǎn jiàn': ['槛'],\r\n    'xí dié': ['槢'],\r\n    'jī guī': ['槣'],\r\n    'róng yōng': ['槦'],\r\n    'tuán shuàn quán': ['槫'],\r\n    'qì sè': ['槭'],\r\n    'cuī zhǐ': ['槯'],\r\n    'yǒu chǎo': ['槱'],\r\n    'màn wàn': ['槾'],\r\n    'lí chī': ['樆'],\r\n    'léi lěi': ['樏', '櫑', '礌'],\r\n    'cháo jiǎo chāo': ['樔'],\r\n    'chēng táng': ['樘'],\r\n    'jiū liáo': ['樛'],\r\n    'mó mú': ['模'],\r\n    'niǎo mù': ['樢'],\r\n    'héng hèng': ['横', '橫'],\r\n    xuě: ['樰', '膤', '艝', '轌', '雪', '鱈', '鳕'],\r\n    'fá fèi': ['橃'],\r\n    rùn: ['橍', '润', '潤', '膶', '閏', '閠', '闰'],\r\n    'zhǎn jiǎn': ['橏'],\r\n    shùn: ['橓', '瞚', '瞬', '舜', '蕣', '順', '顺', '鬊'],\r\n    'tuí dūn': ['橔'],\r\n    'táng chēng': ['橖'],\r\n    'sù qiū': ['橚'],\r\n    'tán diàn': ['橝'],\r\n    'fén fèn fèi': ['橨'],\r\n    'rǎn yān': ['橪'],\r\n    'cū chu': ['橻'],\r\n    'shū qiāo': ['橾'],\r\n    'píng bò': ['檘'],\r\n    'zhái shì tú': ['檡'],\r\n    'biǎo biāo': ['檦'],\r\n    'qiān lián': ['檶'],\r\n    'nǐ mí': ['檷'],\r\n    'jiàn kǎn': ['檻'],\r\n    'nòu ruǎn rú': ['檽'],\r\n    'jī jì': ['櫅', '禨'],\r\n    'huǎng guǒ gǔ': ['櫎'],\r\n    'lǜ chū': ['櫖'],\r\n    'miè mèi': ['櫗'],\r\n    ōu: [\r\n        '櫙',\r\n        '欧',\r\n        '歐',\r\n        '殴',\r\n        '毆',\r\n        '瓯',\r\n        '甌',\r\n        '膒',\r\n        '藲',\r\n        '謳',\r\n        '讴',\r\n        '鏂',\r\n        '鴎',\r\n        '鷗',\r\n        '鸥',\r\n    ],\r\n    'zhù zhuó': ['櫡'],\r\n    'jué jì': ['櫭'],\r\n    'huái guī': ['櫰'],\r\n    'chán zhàn': ['欃'],\r\n    'wéi zuì': ['欈'],\r\n    cáng: ['欌', '鑶'],\r\n    'yù yì': ['欥'],\r\n    'chù qù xì': ['欪'],\r\n    'kài ài': ['欬'],\r\n    'yì yīn': ['欭'],\r\n    'xì kài': ['欯'],\r\n    'shuò sòu': ['欶'],\r\n    'ǎi ēi éi ěi èi ê̄ ế ê̌ ề': ['欸'],\r\n    'qī yī': ['欹'],\r\n    'chuā xū': ['欻'],\r\n    'chǐ chuài': ['欼'],\r\n    'kǎn qiàn': ['欿'],\r\n    'kǎn kè': ['歁'],\r\n    'chuǎn chuán': ['歂'],\r\n    'yīn yān': ['歅'],\r\n    'jìn qūn': ['歏'],\r\n    pēn: ['歕'],\r\n    'xū chuā': ['歘'],\r\n    'xī shè': ['歙'],\r\n    'liǎn hān': ['歛'],\r\n    'zhì chí': ['歭'],\r\n    'sè shà': ['歰'],\r\n    sǐ: ['死'],\r\n    'wěn mò': ['歾'],\r\n    piǎo: ['殍', '皫', '瞟', '醥', '顠'],\r\n    'qíng jìng': ['殑'],\r\n    'fǒu bó': ['殕'],\r\n    'zhí shi': ['殖'],\r\n    'yè yān yàn': ['殗'],\r\n    'hūn mèi': ['殙'],\r\n    chòu: ['殠', '臰', '遚'],\r\n    'kuì huì': ['殨', '溃', '潰'],\r\n    cuàn: ['殩', '熶', '爨', '窜', '竄', '篡', '簒'],\r\n    'yīn yān yǐn': ['殷'],\r\n    'qìng kēng shēng': ['殸'],\r\n    'yáo xiáo xiào': ['殽'],\r\n    'gū gǔ': ['毂', '蛄'],\r\n    'guàn wān': ['毌'],\r\n    'dú dài': ['毒'],\r\n    'xún xùn': ['毥'],\r\n    mú: ['毪', '氁'],\r\n    'dòu nuò': ['毭'],\r\n    'sāi suī': ['毸'],\r\n    lu: ['氇'],\r\n    sào: ['氉', '瘙', '矂', '髞'],\r\n    'shì zhī': ['氏'],\r\n    'dī dǐ': ['氐'],\r\n    'máng méng': ['氓'],\r\n    'yáng rì': ['氜'],\r\n    shuǐ: ['水', '氵', '氺', '閖'],\r\n    'zhěng chéng zhèng': ['氶'],\r\n    tǔn: ['氽'],\r\n    'fán fàn': ['氾'],\r\n    'guǐ jiǔ': ['氿'],\r\n    'bīn pà pā': ['汃'],\r\n    'zhuó què': ['汋'],\r\n    'dà tài': ['汏'],\r\n    pìn: ['汖', '牝', '聘'],\r\n    'hàn hán': ['汗', '馯'],\r\n    tu: ['汢'],\r\n    'tāng shāng': ['汤', '湯'],\r\n    'zhī jì': ['汥'],\r\n    'gàn hán cén': ['汵'],\r\n    'wèn mén': ['汶'],\r\n    'fāng pāng': ['汸'],\r\n    'hǔ huǎng': ['汻'],\r\n    'niú yóu': ['汼'],\r\n    hàng: ['沆'],\r\n    'shěn chén': ['沈'],\r\n    'dùn zhuàn': ['沌'],\r\n    'nǜ niǔ': ['沑'],\r\n    'méi mò': ['沒', '没'],\r\n    'tà dá': ['沓'],\r\n    'mì wù': ['沕'],\r\n    'hóng pāng': ['沗'],\r\n    'shā shà': ['沙'],\r\n    'zhuǐ zǐ': ['沝'],\r\n    'ōu òu': ['沤', '漚'],\r\n    'jǔ jù': ['沮'],\r\n    'tuō duó': ['沰'],\r\n    'mǐ lì': ['沵'],\r\n    'yí chí': ['沶'],\r\n    'xiè yì': ['泄'],\r\n    'bó pō': ['泊'],\r\n    'mì bì': ['泌', '秘'],\r\n    'chù shè': ['泏'],\r\n    'yōu yòu āo': ['泑'],\r\n    'pēng píng': ['泙', '硑'],\r\n    'pào pāo': ['泡'],\r\n    'ní nì': ['泥', '秜'],\r\n    'yuè sà': ['泧'],\r\n    'jué xuè': ['泬', '疦'],\r\n    'lóng shuāng': ['泷', '瀧'],\r\n    'luò pō': ['泺', '濼'],\r\n    'zé shì': ['泽', '澤'],\r\n    'sǎ xǐ': ['洒'],\r\n    'sè qì zì': ['洓'],\r\n    'xǐ xiǎn': ['洗'],\r\n    'kǎo kào': ['洘'],\r\n    'àn yàn è': ['洝'],\r\n    'lěi lèi': ['洡'],\r\n    'qiè jié': ['洯'],\r\n    'qiǎn jiān': ['浅'],\r\n    'jì jǐ': ['济', '済', '濟', '纪'],\r\n    'hǔ xǔ': ['浒', '滸'],\r\n    'jùn xùn': ['浚', '濬'],\r\n    'yǐng chéng yíng': ['浧'],\r\n    'liàn lì': ['浰'],\r\n    'féng hóng': ['浲', '溄'],\r\n    'jiǒng jiōng': ['浻'],\r\n    'suī něi': ['浽'],\r\n    'yǒng chōng': ['涌'],\r\n    'tūn yūn': ['涒'],\r\n    'wō guō': ['涡', '渦'],\r\n    hēng: ['涥', '脝'],\r\n    'zhǎng zhàng': ['涨', '漲'],\r\n    'shòu tāo': ['涭'],\r\n    shuàn: ['涮', '腨'],\r\n    'kōng náng': ['涳'],\r\n    'wò wǎn yuān': ['涴'],\r\n    'tuō tuò': ['涶'],\r\n    wō: ['涹', '猧', '窝', '窩', '莴', '萵', '蜗', '蝸', '踒'],\r\n    'qiè jí': ['淁'],\r\n    'guǒ guàn': ['淉'],\r\n    'lín lìn': ['淋', '獜', '疄'],\r\n    'tǎng chǎng': ['淌'],\r\n    'nào chuò zhuō': ['淖'],\r\n    'péng píng': ['淜'],\r\n    féi: ['淝', '肥', '腓', '蜰'],\r\n    'pì pèi': ['淠'],\r\n    'niǎn shěn': ['淰'],\r\n    'biāo hǔ': ['淲'],\r\n    'chún zhūn': ['淳'],\r\n    'hùn hún': ['混'],\r\n    qiǎn: ['淺', '繾', '缱', '肷', '膁', '蜸', '譴', '谴', '遣', '鑓'],\r\n    'wèn mín': ['渂'],\r\n    'rè ruò luò': ['渃'],\r\n    'dú dòu': ['渎', '瀆', '读'],\r\n    'jiàn jiān': ['渐', '溅', '漸', '濺'],\r\n    'miǎn shéng': ['渑', '澠'],\r\n    'nuǎn nuán': ['渜'],\r\n    'qiú wù': ['渞'],\r\n    'tíng tīng': ['渟'],\r\n    'dì tí dī': ['渧'],\r\n    'gǎng jiǎng': ['港'],\r\n    'hōng qìng': ['渹'],\r\n    tuān: ['湍', '煓'],\r\n    'huì mǐn xū': ['湏'],\r\n    'xǔ xù': ['湑'],\r\n    pén: ['湓', '瓫', '盆', '葐'],\r\n    'mǐn hūn': ['湣'],\r\n    'tuàn nuǎn': ['湪'],\r\n    'qiū jiǎo': ['湫', '湬'],\r\n    'yān yīn': ['湮'],\r\n    'bàn pán': ['湴'],\r\n    'zhuāng hún': ['湷'],\r\n    'yàn guì': ['溎'],\r\n    'lián liǎn nián xián xiàn': ['溓'],\r\n    'dá tǎ': ['溚', '鿎'],\r\n    'liū liù': ['溜', '澑', '蹓'],\r\n    lùn: ['溣'],\r\n    mǎ: [\r\n        '溤',\r\n        '犸',\r\n        '獁',\r\n        '玛',\r\n        '瑪',\r\n        '码',\r\n        '碼',\r\n        '遤',\r\n        '鎷',\r\n        '馬',\r\n        '马',\r\n        '鰢',\r\n        '鷌',\r\n    ],\r\n    'zhēn qín': ['溱'],\r\n    'nì niào': ['溺'],\r\n    'chù xù': ['滀', '畜'],\r\n    'wěng wēng': ['滃'],\r\n    'hào xuè': ['滈'],\r\n    'qì xì xiē': ['滊'],\r\n    'xíng yíng': ['滎'],\r\n    'zé hào': ['滜'],\r\n    'piāo piào piǎo': ['漂'],\r\n    'cóng sǒng': ['漎'],\r\n    'féng péng': ['漨'],\r\n    'luò tà': ['漯'],\r\n    'pēng bēn': ['漰'],\r\n    'chóng shuāng': ['漴'],\r\n    'huǒ kuò huò': ['漷'],\r\n    'liáo liú': ['漻'],\r\n    'cuǐ cuī': ['漼'],\r\n    'cóng zǒng': ['潀'],\r\n    'cóng zōng': ['潈'],\r\n    'pì piē': ['潎'],\r\n    'dàng xiàng': ['潒'],\r\n    'huáng guāng': ['潢'],\r\n    'liáo lào lǎo': ['潦'],\r\n    'cōng zòng': ['潨'],\r\n    'zhí zhì': ['潪'],\r\n    'tān shàn': ['潬'],\r\n    'tú zhā': ['潳'],\r\n    'sàn sǎ': ['潵'],\r\n    hēi: ['潶', '黑', '黒', '𬭶'],\r\n    'chéng dèng': ['澄', '瀓'],\r\n    'cūn cún': ['澊'],\r\n    'péng pēng': ['澎'],\r\n    'hòng gǒng': ['澒', '銾'],\r\n    'wàn màn': ['澫'],\r\n    'kuài huì': ['澮'],\r\n    'guō wō': ['濄'],\r\n    'pēn fén': ['濆'],\r\n    'jí shà': ['濈'],\r\n    'huì huò': ['濊'],\r\n    'dǐng tìng': ['濎'],\r\n    'mǐ nǐ': ['濔'],\r\n    'bì pì': ['濞'],\r\n    'cuì zuǐ': ['濢'],\r\n    'hù huò': ['濩'],\r\n    'ǎi kài kè': ['濭'],\r\n    'wěi duì': ['濻', '瀢'],\r\n    'zàn cuán': ['濽', '灒'],\r\n    'yǎng yàng': ['瀁'],\r\n    'wǎng wāng': ['瀇'],\r\n    'mò miè': ['瀎', '眜'],\r\n    suǐ: ['瀡', '膸', '髓'],\r\n    'huái wāi': ['瀤'],\r\n    'zùn jiàn': ['瀳'],\r\n    'yīng yǐng yìng': ['瀴'],\r\n    'ráng ràng': ['瀼'],\r\n    shuàng: ['灀'],\r\n    'zhuó jiào zé': ['灂'],\r\n    sǎ: ['灑', '訯', '靸'],\r\n    'luán luàn': ['灓'],\r\n    'dǎng tǎng': ['灙'],\r\n    'xún quán quàn': ['灥'],\r\n    'huǒ biāo': ['灬'],\r\n    'zhà yù': ['灹'],\r\n    'fén bèn': ['炃'],\r\n    'jiǒng guì': ['炅'],\r\n    'pàng fēng': ['炐'],\r\n    quē: ['炔', '缺', '缼', '蒛'],\r\n    biān: [\r\n        '炞',\r\n        '煸',\r\n        '甂',\r\n        '砭',\r\n        '笾',\r\n        '箯',\r\n        '籩',\r\n        '編',\r\n        '编',\r\n        '蝙',\r\n        '邉',\r\n        '邊',\r\n        '鍽',\r\n        '鞭',\r\n        '鯾',\r\n        '鯿',\r\n        '鳊',\r\n    ],\r\n    'zhāo zhào': ['炤'],\r\n    'zhuō chù': ['炪'],\r\n    'pào páo bāo': ['炮'],\r\n    'páo fǒu': ['炰'],\r\n    'shǎn qián shān': ['炶'],\r\n    'zhà zhá': ['炸'],\r\n    'jiǎo yào': ['烄'],\r\n    quǎn: ['烇', '犬', '犭', '畎', '綣', '绻', '虇'],\r\n    'yàng yáng': ['烊'],\r\n    'lào luò': ['烙'],\r\n    'huí huǐ': ['烠'],\r\n    rè: ['热', '熱'],\r\n    'fú páo': ['烰'],\r\n    'xiè chè': ['烲', '焎'],\r\n    'yàn shān': ['烻'],\r\n    'hūn xūn': ['焄'],\r\n    kào: ['焅', '犒', '銬', '铐', '靠', '鮳', '鯌', '鲓', '㸆'],\r\n    'juān yè': ['焆'],\r\n    'jùn qū': ['焌'],\r\n    'tāo dào': ['焘'],\r\n    'chǎo jù': ['焣'],\r\n    'wò ài': ['焥'],\r\n    'zǒng cōng': ['焧'],\r\n    'xī yì': ['焬'],\r\n    'xìn xīn': ['焮'],\r\n    'chāo zhuō': ['焯'],\r\n    'xiǒng yīng': ['焸', '焽'],\r\n    kuǐ: ['煃', '跬', '蹞', '頍', '𫠆'],\r\n    'huī yùn xūn': ['煇'],\r\n    'jiǎo qiāo': ['煍'],\r\n    'qián shǎn shān': ['煔'],\r\n    'xī yí': ['煕'],\r\n    'shà shā': ['煞'],\r\n    'yè zhá': ['煠'],\r\n    'yáng yàng': ['煬'],\r\n    'ēn yūn': ['煾'],\r\n    'yūn yǔn': ['熅'],\r\n    'hè xiāo': ['熇'],\r\n    xióng: ['熊', '熋', '雄'],\r\n    'xūn xùn': ['熏', '爋'],\r\n    gòng: ['熕', '貢', '贡'],\r\n    liū: ['熘'],\r\n    'cōng zǒng': ['熜'],\r\n    'lù āo': ['熝'],\r\n    'shú shóu': ['熟'],\r\n    'fēng péng': ['熢'],\r\n    'cuǐ suī': ['熣'],\r\n    tēng: ['熥', '膯', '鼟'],\r\n    'yùn yù': ['熨'],\r\n    'áo āo': ['熬'],\r\n    'hàn rǎn': ['熯'],\r\n    'ōu ǒu': ['熰'],\r\n    'huáng huǎng': ['熿'],\r\n    'chǎn dǎn chàn': ['燀'],\r\n    'jiāo zhuó qiáo jué': ['燋'],\r\n    'yàn yān': ['燕'],\r\n    'tài liè': ['燤'],\r\n    āo: ['爊'],\r\n    'yàn xún': ['爓'],\r\n    'jué jiào': ['爝', '覐', '覚', '覺', '觉'],\r\n    'lǎn làn': ['爦'],\r\n    'zhuǎ zhǎo': ['爪'],\r\n    'zhǎo zhuǎ': ['爫'],\r\n    'fù fǔ': ['父'],\r\n    diē: ['爹', '褺', '跌'],\r\n    zāng: ['牂', '羘', '臧', '賍', '賘', '贓', '贜', '赃', '髒'],\r\n    'piàn piān': ['片'],\r\n    'biān miàn': ['牑'],\r\n    bǎng: ['牓', '綁', '绑'],\r\n    'yǒu yōng': ['牗'],\r\n    'chēng chèng': ['牚', '竀'],\r\n    niú: ['牛', '牜'],\r\n    'jiū lè': ['牞'],\r\n    'mù móu': ['牟'],\r\n    māng: ['牤'],\r\n    'gē qiú': ['牫'],\r\n    'yòu chōu': ['牰'],\r\n    'tè zhí': ['犆'],\r\n    bēn: ['犇', '錛', '锛'],\r\n    'jiān qián': ['犍', '玪'],\r\n    má: ['犘', '痲', '蔴', '蟇', '麻'],\r\n    'máo lí': ['犛'],\r\n    'bá quǎn': ['犮'],\r\n    'zhuó bào': ['犳'],\r\n    'àn hān': ['犴'],\r\n    'kàng gǎng': ['犺'],\r\n    'pèi fèi': ['犻'],\r\n    'fān huān': ['犿'],\r\n    kuáng: ['狂', '狅', '誑', '诳', '軖', '軠', '鵟', '𫛭'],\r\n    'yí quán chí': ['狋'],\r\n    'xīng shēng': ['狌'],\r\n    'tuó yí': ['狏'],\r\n    kǔ: ['狜', '苦'],\r\n    'huán huān': ['狟'],\r\n    'hé mò': ['狢'],\r\n    'tà shì': ['狧'],\r\n    'máng dòu': ['狵'],\r\n    'xī shǐ': ['狶'],\r\n    suān: ['狻', '痠', '酸'],\r\n    'bài pí': ['猈'],\r\n    'jiān yàn': ['猏', '豣'],\r\n    'yī yǐ': ['猗'],\r\n    'yá wèi': ['猚'],\r\n    cāi: ['猜'],\r\n    'māo máo': ['猫', '貓'],\r\n    'chuàn chuān': ['猭'],\r\n    'tuān tuàn': ['猯', '貒'],\r\n    'yà jiá qiè': ['猰'],\r\n    'hè xiē gé hài': ['猲'],\r\n    'biān piàn': ['猵', '獱'],\r\n    'bó pò': ['猼'],\r\n    'háo gāo': ['獋'],\r\n    'fén fèn': ['獖'],\r\n    'yào xiāo': ['獟'],\r\n    'shuò xī': ['獡'],\r\n    'gé liè xiē': ['獦'],\r\n    'nòu rú': ['獳'],\r\n    'náo nǎo yōu': ['獶'],\r\n    ráng: ['獽', '瓤', '禳', '穣', '穰', '蘘', '躟', '鬤'],\r\n    'náo yōu': ['獿'],\r\n    'lǜ shuài': ['率'],\r\n    'wáng wàng': ['王'],\r\n    'yáng chàng': ['玚'],\r\n    'mín wén': ['玟'],\r\n    'bīn fēn': ['玢'],\r\n    'mén yǔn': ['玧'],\r\n    'qiāng cāng': ['玱', '瑲', '篬'],\r\n    'án gān': ['玵'],\r\n    'xuán xián': ['玹'],\r\n    'cī cǐ': ['玼', '跐'],\r\n    'yí tāi': ['珆'],\r\n    'zǔ jù': ['珇'],\r\n    fà: ['珐', '琺', '蕟', '髪', '髮'],\r\n    'yín kèn': ['珢'],\r\n    'huī hún': ['珲'],\r\n    'xuán qióng': ['琁'],\r\n    'fú fū': ['琈'],\r\n    'bǐng pín': ['琕'],\r\n    'cuì sè': ['琗'],\r\n    'yù wéi': ['琟'],\r\n    'tiǎn tiàn': ['琠'],\r\n    'zhuó zuó': ['琢'],\r\n    'běng pěi': ['琣'],\r\n    guǎn: ['琯', '璭', '痯', '筦', '管', '舘', '輨', '錧', '館', '馆', '鳤'],\r\n    'hún huī': ['琿'],\r\n    'xié jiē': ['瑎'],\r\n    'chàng dàng yáng': ['瑒'],\r\n    'tiàn zhèn': ['瑱'],\r\n    'bīn pián': ['瑸', '璸'],\r\n    'tú shū': ['瑹'],\r\n    cuǐ: ['璀', '皠', '趡'],\r\n    'zǎo suǒ': ['璅'],\r\n    'jué qióng': ['璚'],\r\n    'lú fū': ['璷'],\r\n    'jì zī': ['璾'],\r\n    suí: ['瓍', '綏', '绥', '遀', '随', '隨', '髄'],\r\n    'mí xǐ': ['瓕'],\r\n    'qióng wěi wèi': ['瓗'],\r\n    'huán yè yà': ['瓛'],\r\n    'bó páo': ['瓟'],\r\n    'zhí hú': ['瓡'],\r\n    piáo: ['瓢', '闝'],\r\n    'wǎ wà': ['瓦'],\r\n    'xiáng hóng': ['瓨'],\r\n    wèng: ['瓮', '甕', '罋', '蕹', '齆'],\r\n    'shèn shén': ['甚'],\r\n    ruí: ['甤', '緌', '蕤'],\r\n    yòng: ['用', '砽', '苚', '蒏', '醟', '㶲'],\r\n    shuǎi: ['甩'],\r\n    béng: ['甭', '甮'],\r\n    'yóu zhá': ['甴'],\r\n    'diàn tián shèng': ['甸'],\r\n    'tǐng dīng': ['町', '甼'],\r\n    'zāi zī': ['甾'],\r\n    'bì qí': ['畁'],\r\n    'dá fú': ['畗'],\r\n    'cè jì': ['畟'],\r\n    'zāi zī tián': ['畠'],\r\n    'zhì chóu shì': ['畤'],\r\n    'fān pān': ['畨', '番'],\r\n    'shē yú': ['畬'],\r\n    'dāng dàng dǎng': ['當'],\r\n    'jiāng qiáng': ['疆'],\r\n    'pǐ yǎ shū': ['疋'],\r\n    'jié qiè': ['疌'],\r\n    'yí nǐ': ['疑'],\r\n    nè: ['疒', '眲', '訥', '讷'],\r\n    'gē yì': ['疙'],\r\n    'nüè yào': ['疟', '瘧'],\r\n    'lì lài': ['疠', '癘'],\r\n    'yǎ xiā': ['疨'],\r\n    xuē: ['疶', '蒆', '薛', '辥', '辪', '靴', '鞾'],\r\n    'dǎn da': ['疸'],\r\n    'fá biǎn': ['疺'],\r\n    'fèi féi': ['疿', '痱'],\r\n    'shān diàn': ['痁'],\r\n    'téng chóng': ['痋'],\r\n    'tōng tóng': ['痌'],\r\n    'wěi yòu yù': ['痏'],\r\n    'tān shǐ': ['痑'],\r\n    'pū pù': ['痡', '鋪'],\r\n    'bēng péng': ['痭'],\r\n    'má lìn': ['痳'],\r\n    'tiǎn diàn': ['痶'],\r\n    'ān yè è': ['痷'],\r\n    'kē ē': ['痾'],\r\n    'zhì chì': ['瘈'],\r\n    'jiǎ xiá xiā': ['瘕'],\r\n    'lěi huì': ['瘣'],\r\n    'chài cuó': ['瘥'],\r\n    'diān chēn': ['瘨'],\r\n    'da dá': ['瘩'],\r\n    'biě biē': ['瘪'],\r\n    qué: ['瘸'],\r\n    'dàn dān': ['癉'],\r\n    'guì wēi': ['癐'],\r\n    'nòng nóng': ['癑'],\r\n    'biē biě': ['癟'],\r\n    'bō bǒ': ['癷'],\r\n    bái: ['白'],\r\n    'jí bī': ['皀'],\r\n    'de dì dí dī': ['的'],\r\n    'pā bà': ['皅'],\r\n    'gāo háo': ['皋'],\r\n    'gāo yáo': ['皐'],\r\n    'lì luò bō': ['皪'],\r\n    'zhā cǔ': ['皻'],\r\n    'zhāo zhǎn dǎn': ['皽'],\r\n    'jiān jiàn': ['监', '監', '鋻', '间', '鞬'],\r\n    'gài gě hé': ['盖'],\r\n    'máng wàng': ['盳'],\r\n    yuǎn: ['盶', '逺', '遠'],\r\n    'tián xián': ['盷'],\r\n    'xiāng xiàng': ['相'],\r\n    dǔn: ['盹', '趸', '躉'],\r\n    'xì pǎn': ['盻'],\r\n    'shěng xǐng': ['省'],\r\n    'yún hùn': ['眃'],\r\n    'miǎn miàn': ['眄'],\r\n    'kàn kān': ['看'],\r\n    'yìng yāng yǎng': ['眏'],\r\n    'yǎo āo ǎo': ['眑'],\r\n    'jū xū kōu': ['眗'],\r\n    'yí chì': ['眙'],\r\n    'dié tì': ['眣'],\r\n    'bǐng fǎng': ['眪'],\r\n    'pàng pán': ['眫'],\r\n    'mī mí': ['眯', '瞇'],\r\n    'xuàn shùn xún': ['眴'],\r\n    tiào: ['眺', '粜', '糶', '覜', '趒'],\r\n    'zhe zhuó zháo zhāo': ['着'],\r\n    'qiáo shào xiāo': ['睄'],\r\n    'cuó zhuài': ['睉'],\r\n    gùn: ['睔', '謴'],\r\n    'suì zuì': ['睟'],\r\n    'pì bì': ['睥', '稫', '辟'],\r\n    'yì zé gāo': ['睪'],\r\n    'xǐng xìng': ['睲'],\r\n    'guì wèi kuì': ['瞆'],\r\n    'kòu jì': ['瞉'],\r\n    'qióng huán': ['瞏'],\r\n    'mán mén': ['瞒', '瞞'],\r\n    'diāo dōu': ['瞗'],\r\n    'lou lóu lǘ': ['瞜'],\r\n    'shùn rún': ['瞤'],\r\n    'liào liǎo': ['瞭', '钌'],\r\n    'jiàn xián': ['瞯'],\r\n    'wǔ mí': ['瞴'],\r\n    'guì kuì': ['瞶'],\r\n    'nǐng chēng': ['矃'],\r\n    'huò yuè': ['矆'],\r\n    'mēng méng': ['矇'],\r\n    'kuàng guō': ['矌'],\r\n    'guàn quán': ['矔'],\r\n    'mǎn mán': ['矕'],\r\n    'jīn guān qín': ['矜'],\r\n    'jīn qín guān': ['矝'],\r\n    'yù xù jué': ['矞'],\r\n    'jiǎo jiáo': ['矫', '矯'],\r\n    duǎn: ['短'],\r\n    'shí dàn': ['石'],\r\n    'gāng qiāng kòng': ['矼'],\r\n    'huā xū': ['砉'],\r\n    'pīn bīn fēn': ['砏'],\r\n    'yán yàn': ['研', '硏'],\r\n    'luǒ kē': ['砢'],\r\n    'fú fèi': ['砩', '笰'],\r\n    'zhǔ zhù': ['砫'],\r\n    'lá lì lā': ['砬'],\r\n    'kuāng guāng': ['硄'],\r\n    'gè luò': ['硌'],\r\n    'shuò shí': ['硕', '碩'],\r\n    'wèi wéi ái': ['硙'],\r\n    'què kè kù': ['硞'],\r\n    'mǎng bàng': ['硥'],\r\n    'luò lòng': ['硦'],\r\n    'yǒng tóng': ['硧'],\r\n    nüè: ['硸', '虐'],\r\n    'kēng kěng': ['硻'],\r\n    'yān yǎn': ['硽'],\r\n    'zhuì chuí duǒ': ['硾'],\r\n    'kōng kòng': ['硿'],\r\n    'zòng cóng': ['碂'],\r\n    'jiān zhàn': ['碊'],\r\n    'lù liù': ['碌', '陆'],\r\n    'què xī': ['碏'],\r\n    'lún lǔn lùn': ['碖'],\r\n    'náo gāng': ['碙'],\r\n    'jié yà': ['碣'],\r\n    'wèi wěi': ['碨'],\r\n    'tí dī': ['碮'],\r\n    'chá chā': ['碴'],\r\n    'qiāo què': ['碻'],\r\n    'sù xiè': ['碿'],\r\n    'liú liù': ['磂', '遛', '鎦', '馏'],\r\n    'sī tí': ['磃'],\r\n    'bàng páng': ['磅'],\r\n    'huá kě gū': ['磆'],\r\n    'wěi kuǐ': ['磈'],\r\n    'xiá qià yà': ['磍'],\r\n    'lián qiān': ['磏'],\r\n    'wèi ái gài': ['磑'],\r\n    'lá lā': ['磖'],\r\n    'áo qiāo': ['磝'],\r\n    'pēng pèng': ['磞', '閛'],\r\n    'yīn yǐn': ['磤'],\r\n    'lěi léi': ['磥'],\r\n    'mó mò': ['磨'],\r\n    'qì zhú': ['磩'],\r\n    'láo luò': ['磱'],\r\n    'pán bō': ['磻'],\r\n    'jí shé': ['磼'],\r\n    'hé qiāo qiào': ['礉'],\r\n    'kè huò': ['礊'],\r\n    'què hú': ['礐'],\r\n    'è qì': ['礘'],\r\n    cǎ: ['礤', '礸'],\r\n    'xián xín': ['礥'],\r\n    'léi lěi lèi': ['礧'],\r\n    'yán yǎn': ['礹'],\r\n    'qí zhǐ': ['祇', '蚔'],\r\n    'bēng fāng': ['祊'],\r\n    'bì mì': ['祕'],\r\n    suàn: ['祘', '笇', '筭', '算', '蒜'],\r\n    'piào piāo': ['票'],\r\n    'jì zhài': ['祭'],\r\n    'shuì lèi': ['祱'],\r\n    'jìn jīn': ['禁'],\r\n    'chán shàn': ['禅'],\r\n    'yáng shāng': ['禓'],\r\n    'zhī zhǐ tí': ['禔'],\r\n    'shàn chán': ['禪'],\r\n    'yú yù ǒu': ['禺'],\r\n    'zǐ zì': ['秄'],\r\n    'chá ná': ['秅'],\r\n    'zhǒng zhòng chóng': ['种'],\r\n    'hào mào': ['秏'],\r\n    'kù kū': ['秙'],\r\n    zū: ['租', '葅'],\r\n    chèng: ['秤', '穪'],\r\n    'huó kuò': ['秮', '秳'],\r\n    'chēng chèn chèng': ['称', '稱'],\r\n    'shì zhì': ['秲', '銴'],\r\n    'fù pū': ['秿'],\r\n    'xùn zè': ['稄'],\r\n    'tú shǔ': ['稌'],\r\n    'zhùn zhǔn': ['稕'],\r\n    'jī qí': ['稘', '綨', '觭'],\r\n    'léng líng': ['稜'],\r\n    'zuì zú sū': ['稡'],\r\n    'xì qiè': ['稧', '郄'],\r\n    'zhǒng zhòng': ['種'],\r\n    'zōng zǒng': ['稯'],\r\n    'xián jiān liàn': ['稴'],\r\n    'zī jiū': ['稵'],\r\n    'jī qǐ': ['稽'],\r\n    ròng: ['穃'],\r\n    'shān cǎn cēn': ['穇'],\r\n    'mén méi': ['穈'],\r\n    'jǐ jì': ['穖'],\r\n    'xiāo rào': ['穘'],\r\n    'zhuō bó': ['穛'],\r\n    'tóng zhǒng zhòng': ['穜'],\r\n    zuō: ['穝'],\r\n    'biāo pāo': ['穮', '藨'],\r\n    'zhuō jué': ['穱'],\r\n    'cuán zàn': ['穳'],\r\n    'kōng kòng kǒng': ['空'],\r\n    'yū yǔ': ['穻'],\r\n    zhǎi: ['窄', '鉙'],\r\n    báo: ['窇', '雹'],\r\n    'kū zhú': ['窋'],\r\n    'jiào liáo liù': ['窌'],\r\n    'wā guī': ['窐'],\r\n    'tiǎo yáo': ['窕'],\r\n    'xūn yìn': ['窨'],\r\n    'yà yē': ['窫'],\r\n    'tián diān yǎn': ['窴'],\r\n    'chāo kē': ['窼'],\r\n    'kuǎn cuàn': ['窽', '窾'],\r\n    'chù qì': ['竐'],\r\n    'qǔ kǒu': ['竘'],\r\n    'jìng zhěn': ['竧'],\r\n    'kǎn kàn': ['竷'],\r\n    'zhú dǔ': ['竺'],\r\n    'lè jīn': ['竻'],\r\n    'zhuì ruì': ['笍'],\r\n    'háng hàng': ['笐'],\r\n    'cén jìn hán': ['笒'],\r\n    'dā xiá nà': ['笚'],\r\n    'zé zuó': ['笮'],\r\n    'lóng lǒng': ['笼', '篭', '籠', '躘', '龓'],\r\n    'zhù zhú': ['筑', '築'],\r\n    'dá dā': ['答', '荅'],\r\n    shāi: ['筛', '篩', '簁', '籭'],\r\n    'yún jūn': ['筠'],\r\n    'láng làng': ['筤', '郎', '阆'],\r\n    'zhì zhǐ': ['筫'],\r\n    o: ['筽'],\r\n    'póu bù fú pú': ['箁'],\r\n    'pái bēi': ['箄'],\r\n    gè: ['箇', '虼', '鉻', '铬'],\r\n    'tái chí': ['箈'],\r\n    'guǎi dài': ['箉'],\r\n    'zhào dào': ['箌'],\r\n    'jīng qìng': ['箐'],\r\n    'lín lǐn': ['箖'],\r\n    'jùn qūn': ['箘'],\r\n    'shī yí': ['箷', '釶'],\r\n    'yuē yào chuò': ['箹'],\r\n    'xiāo shuò qiào': ['箾'],\r\n    'gōng gǎn lǒng': ['篢'],\r\n    'páng péng': ['篣'],\r\n    'zhuó huò': ['篧'],\r\n    'jiǎn jiān': ['篯'],\r\n    'dí zhú': ['篴'],\r\n    'zān cēn cǎn': ['篸'],\r\n    'zhuàn suǎn zuàn': ['篹'],\r\n    'piǎo biāo': ['篻'],\r\n    'guó guì': ['簂'],\r\n    'cè jí': ['簎'],\r\n    'mì miè': ['簚'],\r\n    'shāi sī': ['簛'],\r\n    'sǔn zhuàn': ['簨'],\r\n    'gàn gǎn': ['簳'],\r\n    'bò bǒ': ['簸'],\r\n    'bó bù': ['簿'],\r\n    shi: ['籂'],\r\n    'zhēn jiān': ['籈'],\r\n    'zhuàn zuǎn': ['籑'],\r\n    'fān pān biān': ['籓'],\r\n    'sǒu shǔ': ['籔'],\r\n    zuǎn: ['籫', '繤', '纂', '纉', '纘', '缵'],\r\n    nǚ: ['籹', '釹', '钕'],\r\n    'shā chǎo': ['粆'],\r\n    'kāng jīng': ['粇'],\r\n    fěn: ['粉', '黺'],\r\n    cū: ['粗', '觕', '麁', '麄', '麤'],\r\n    'nián zhān': ['粘'],\r\n    'cè sè': ['粣'],\r\n    'zhōu yù': ['粥'],\r\n    'shēn sǎn': ['糁'],\r\n    'biān biǎn': ['糄', '萹'],\r\n    miàn: ['糆', '面', '靣', '麪', '麫', '麵', '麺'],\r\n    'hú hū hù': ['糊'],\r\n    'gǔ gòu': ['糓'],\r\n    'mí méi': ['糜'],\r\n    'sǎn shēn': ['糝', '糣'],\r\n    zāo: ['糟', '蹧', '遭', '醩'],\r\n    'mì sī': ['糸'],\r\n    'jiū jiǔ': ['糺'],\r\n    'xì jì': ['系', '繫'],\r\n    'zhēng zhěng': ['糽'],\r\n    'chà chǎ': ['紁', '衩'],\r\n    'yuē yāo': ['約', '约'],\r\n    'hóng gōng': ['紅', '红'],\r\n    'hé gē': ['紇', '纥'],\r\n    'wén wèn': ['紋', '纹'],\r\n    fóu: ['紑'],\r\n    'jì jié jiè': ['紒'],\r\n    'pī pí bǐ': ['紕', '纰'],\r\n    'jīn jìn': ['紟'],\r\n    'zhā zā': ['紥', '紮'],\r\n    hā: ['紦'],\r\n    'fū fù': ['紨'],\r\n    'chōu chóu': ['紬'],\r\n    'lèi léi lěi': ['累'],\r\n    'bō bì': ['紴'],\r\n    'tiǎn zhěn': ['紾'],\r\n    'jiōng jiǒng': ['絅'],\r\n    'jié jiē': ['結', '结', '节'],\r\n    'guà kuā': ['絓'],\r\n    'bǎi mò': ['絔'],\r\n    'gēng huán': ['絙'],\r\n    'jié xié': ['絜'],\r\n    'quán shuān': ['絟'],\r\n    'gǎi ǎi': ['絠'],\r\n    'luò lào': ['絡', '络'],\r\n    'bīng bēng pēng': ['絣'],\r\n    'gěi jǐ': ['給', '给'],\r\n    'tóng tōng dòng': ['絧'],\r\n    'tiào diào dào': ['絩'],\r\n    'lěi lèi léi': ['絫'],\r\n    'gāi hài': ['絯'],\r\n    'chī zhǐ': ['絺'],\r\n    'wèn miǎn mán wàn': ['絻'],\r\n    'huán huàn wàn': ['綄'],\r\n    'qīn xiān': ['綅'],\r\n    'tì tí': ['綈'],\r\n    'yán xiàn': ['綖'],\r\n    'zōng zèng zòng': ['綜'],\r\n    'chēn lín': ['綝'],\r\n    'zhǔn zhùn': ['綧'],\r\n    'qiàn qīng zhēng': ['綪'],\r\n    'qìng qǐ': ['綮'],\r\n    'lún guān': ['綸', '纶'],\r\n    'chuò chāo': ['綽', '绰'],\r\n    'tián tǎn chān': ['緂'],\r\n    'lǜ lù': ['緑', '绿'],\r\n    'ruǎn ruàn': ['緛'],\r\n    'jí qī': ['緝'],\r\n    'zhòng chóng': ['緟', '重'],\r\n    'miáo máo': ['緢'],\r\n    'xiè yè': ['緤'],\r\n    huǎn: ['緩', '缓', '㬊'],\r\n    'gēng gèng': ['緪', '縆'],\r\n    'tōu xū shū': ['緰'],\r\n    'zōng zòng': ['緵', '繌'],\r\n    'yùn gǔn': ['緷'],\r\n    'guā wō': ['緺'],\r\n    'yùn yūn wēn': ['緼', '縕'],\r\n    'bāng bàng': ['縍'],\r\n    'gǔ hú': ['縎', '鶻'],\r\n    'cī cuò suǒ': ['縒'],\r\n    'cuī shuāi': ['縗'],\r\n    'róng rǒng ròng': ['縙'],\r\n    'zài zēng': ['縡'],\r\n    cài: ['縩', '菜', '蔡'],\r\n    'féng fèng': ['縫'],\r\n    'suō sù': ['縮', '缩'],\r\n    'yǎn yǐn': ['縯', '酓'],\r\n    'zòng zǒng': ['縱', '纵'],\r\n    'zhuàn juàn': ['縳'],\r\n    'mò mù': ['縸', '莫'],\r\n    'piǎo piāo': ['縹', '缥'],\r\n    'fán pó': ['繁'],\r\n    'bēng bèng': ['繃'],\r\n    'móu miù miào liǎo': ['繆'],\r\n    'yáo yóu zhòu': ['繇'],\r\n    'zēng zèng': ['繒', '缯'],\r\n    'jú jué': ['繘'],\r\n    'chuō chuò': ['繛'],\r\n    'zūn zǔn': ['繜'],\r\n    rào: ['繞', '绕', '遶'],\r\n    'chǎn chán': ['繟'],\r\n    'huì huí': ['繢', '缋', '藱'],\r\n    'qiāo sāo zǎo': ['繰'],\r\n    'jiǎo zhuó': ['繳', '缴'],\r\n    'dàn tán chán': ['繵'],\r\n    nǒng: ['繷'],\r\n    'pú fú': ['纀'],\r\n    'yào lì': ['纅'],\r\n    'rǎng xiāng': ['纕'],\r\n    'lí sǎ xǐ lǐ': ['纚'],\r\n    'xiān qiàn': ['纤'],\r\n    'jīng jìng': ['经'],\r\n    'tí tì': ['绨'],\r\n    'bēng běng bèng': ['绷'],\r\n    'zōng zèng': ['综'],\r\n    'jī qī': ['缉'],\r\n    'wēn yùn yūn': ['缊'],\r\n    'fèng féng': ['缝'],\r\n    'shuāi cuī suī': ['缞'],\r\n    'miù móu liáo miào mù': ['缪'],\r\n    'qiāo sāo': ['缲'],\r\n    fǒu: ['缶', '缹', '缻', '雬', '鴀'],\r\n    'bà ba pí': ['罢', '罷'],\r\n    'guà guǎi': ['罫'],\r\n    'yáng xiáng': ['羊', '羏'],\r\n    'měi gāo': ['羙'],\r\n    'yì xī': ['羛'],\r\n    'qiǎng qiān': ['羟'],\r\n    'qiāng kòng': ['羫'],\r\n    'qián xián yán': ['羬'],\r\n    nóu: ['羺'],\r\n    'hóng gòng': ['羾'],\r\n    'pī bì pō': ['翍'],\r\n    'qú yù': ['翑'],\r\n    ké: ['翗'],\r\n    'qiào qiáo': ['翘'],\r\n    'zhái dí': ['翟'],\r\n    'dào zhōu': ['翢'],\r\n    'hóu qú': ['翵'],\r\n    shuǎ: ['耍'],\r\n    'ruǎn nuò': ['耎'],\r\n    'ér nài': ['耏'],\r\n    'zhuān duān': ['耑'],\r\n    'pá bà': ['耙'],\r\n    'chí sì': ['耛'],\r\n    'qù chú': ['耝'],\r\n    'lún lǔn': ['耣'],\r\n    'jí jiè': ['耤'],\r\n    'tāng tǎng': ['耥'],\r\n    pǎng: ['耪', '覫'],\r\n    'zhá zé': ['耫'],\r\n    'yē yé': ['耶'],\r\n    'yún yíng': ['耺'],\r\n    'wà tuǐ zhuó': ['聉'],\r\n    'ér nǜ': ['聏'],\r\n    'tiē zhé': ['聑'],\r\n    'dǐ zhì': ['聜'],\r\n    qié: ['聺'],\r\n    'nǐ jiàn': ['聻'],\r\n    'lèi lē': ['肋'],\r\n    cào: ['肏', '襙', '鄵', '鼜'],\r\n    'bó dí': ['肑'],\r\n    'xiào xiāo': ['肖'],\r\n    'dù dǔ': ['肚'],\r\n    chāi: ['肞', '釵', '钗'],\r\n    'hán qín hàn': ['肣'],\r\n    'pàng pán pàn': ['肨', '胖'],\r\n    'zhūn chún': ['肫'],\r\n    āng: ['肮', '骯'],\r\n    'yù yō': ['育'],\r\n    'pí bǐ bì': ['肶'],\r\n    'fèi bì': ['胇'],\r\n    'bèi bēi': ['背'],\r\n    'fèi zǐ': ['胏'],\r\n    'píng pēng': ['胓', '苹'],\r\n    'fū fú zhǒu': ['胕'],\r\n    'shèng shēng': ['胜'],\r\n    kuà: ['胯', '跨', '骻'],\r\n    'gǎi hǎi': ['胲'],\r\n    'gē gé gā': ['胳'],\r\n    'néng nài': ['能'],\r\n    'guī kuì': ['胿'],\r\n    'mài mò': ['脉'],\r\n    'zāng zàng': ['脏'],\r\n    'jiǎo jué': ['脚', '角'],\r\n    cuǒ: ['脞'],\r\n    'de te': ['脦'],\r\n    'zuī juān': ['脧'],\r\n    něi: ['脮', '腇', '餒', '馁', '鮾', '鯘'],\r\n    'pú fǔ': ['脯'],\r\n    niào: ['脲'],\r\n    shuí: ['脽'],\r\n    guò: ['腂', '過', '鐹'],\r\n    'là xī': ['腊'],\r\n    'yān ā': ['腌'],\r\n    'gāo gào': ['膏'],\r\n    'lù biāo': ['膔'],\r\n    chuái: ['膗'],\r\n    'zhuān chuán chún zhuǎn': ['膞'],\r\n    chuài: ['膪', '踹'],\r\n    'fán pán': ['膰'],\r\n    'wǔ hū': ['膴'],\r\n    'shān dàn': ['膻'],\r\n    tún: ['臀', '臋', '蛌', '豘', '豚', '軘', '霕', '飩', '饨', '魨', '鲀', '黗'],\r\n    'bì bei': ['臂'],\r\n    'là gé': ['臈'],\r\n    'sào sāo': ['臊'],\r\n    nào: ['臑', '閙', '闹', '鬧'],\r\n    'ní luán': ['臡'],\r\n    'qiān xián': ['臤'],\r\n    'guàng jiǒng': ['臦'],\r\n    'guǎng jiǒng': ['臩'],\r\n    'chòu xiù': ['臭'],\r\n    'mián biān': ['臱'],\r\n    'dié zhí': ['臷'],\r\n    'zhī jìn': ['臸'],\r\n    'shè shě': ['舍'],\r\n    pù: ['舖', '舗'],\r\n    'bān bō pán': ['般'],\r\n    kuā: ['舿'],\r\n    'gèn gěn': ['艮'],\r\n    'sè shǎi': ['色'],\r\n    'fú bó': ['艴'],\r\n    'jiāo qiú': ['艽'],\r\n    'chāi chā': ['芆'],\r\n    'sháo què': ['芍'],\r\n    'hù xià': ['芐'],\r\n    'zì zǐ': ['芓'],\r\n    'huì hū': ['芔'],\r\n    'tún chūn': ['芚'],\r\n    'jiè gài': ['芥'],\r\n    'xù zhù': ['芧'],\r\n    'yuán yán': ['芫'],\r\n    'xīn xìn': ['芯'],\r\n    'lún huā': ['芲'],\r\n    'wù hū': ['芴'],\r\n    'gōu gǒu': ['芶'],\r\n    'mào máo': ['芼'],\r\n    'fèi fú': ['芾'],\r\n    'chán yín': ['苂'],\r\n    qiē: ['苆'],\r\n    'sū sù': ['苏'],\r\n    'tiáo sháo': ['苕'],\r\n    'lì jī': ['苙'],\r\n    'kē hē': ['苛'],\r\n    'jù qǔ': ['苣'],\r\n    'ruò rě': ['若'],\r\n    'zhù níng': ['苧'],\r\n    'pā bó': ['苩'],\r\n    xiú: ['苬'],\r\n    'zhǎ zuó': ['苲'],\r\n    'jū chá': ['苴'],\r\n    nié: ['苶'],\r\n    'shēng ruí': ['苼'],\r\n    'qié jiā': ['茄'],\r\n    'zǐ cí': ['茈'],\r\n    'qiàn xī': ['茜'],\r\n    chǎi: ['茝'],\r\n    'fá pèi': ['茷'],\r\n    ráo: ['荛', '蕘', '襓', '饒', '饶'],\r\n    'yíng xíng': ['荥'],\r\n    'qián xún': ['荨', '蕁'],\r\n    'yìn yīn': ['荫'],\r\n    'hé hè': ['荷'],\r\n    'shā suō': ['莎'],\r\n    'péng fēng': ['莑'],\r\n    'shēn xīn': ['莘'],\r\n    'wǎn guān guǎn': ['莞'],\r\n    'yóu sù': ['莤'],\r\n    'shāo xiāo': ['莦', '蛸'],\r\n    'làng liáng': ['莨'],\r\n    'piǎo fú': ['莩'],\r\n    'wèn wǎn miǎn': ['莬'],\r\n    'shì shí': ['莳', '蒔'],\r\n    'tù tú': ['莵'],\r\n    'xiān liǎn': ['莶', '薟'],\r\n    'wǎn yù': ['菀'],\r\n    'zōu chù': ['菆'],\r\n    'lù lǜ': ['菉'],\r\n    'jūn jùn': ['菌'],\r\n    'niè rěn': ['菍'],\r\n    'zī zì zāi': ['菑'],\r\n    'tú tù': ['菟'],\r\n    'jiē shà': ['菨'],\r\n    'qiáo zhǎo': ['菬'],\r\n    'tái zhī chí': ['菭'],\r\n    'fēi fěi': ['菲', '蜚'],\r\n    'qín qīn jīn': ['菳'],\r\n    'zū jù': ['菹', '蒩'],\r\n    'lǐn má': ['菻'],\r\n    'tián tiàn': ['菾'],\r\n    tiē: ['萜', '貼', '贴'],\r\n    'luò là lào luō': ['落'],\r\n    'zhù zhuó zhe': ['著'],\r\n    'shèn rèn': ['葚'],\r\n    'gě gé': ['葛'],\r\n    'jùn suǒ': ['葰'],\r\n    'kuì kuài': ['蒉'],\r\n    'rú ná': ['蒘'],\r\n    'méng mēng měng': ['蒙'],\r\n    'yuán huán': ['蒝'],\r\n    'xú shú': ['蒣'],\r\n    'xí xì': ['蒵'],\r\n    'mì míng': ['蓂'],\r\n    'sōu sǒu': ['蓃'],\r\n    'gài gě hé hài': ['蓋'],\r\n    'yǎo zhuó': ['蓔'],\r\n    'diào tiáo dí': ['蓧'],\r\n    'xū qiū fū': ['蓲'],\r\n    'zí jú': ['蓻'],\r\n    'liǎo lù': ['蓼'],\r\n    xu: ['蓿'],\r\n    'hàn hǎn': ['蔊'],\r\n    'màn wàn mán': ['蔓'],\r\n    'pó bò': ['蔢'],\r\n    'fān fán bō': ['蕃'],\r\n    'hóng hòng': ['蕻'],\r\n    'yù ào': ['薁', '隩'],\r\n    'xí xiào': ['薂'],\r\n    'báo bó bò': ['薄'],\r\n    'cí zī': ['薋'],\r\n    'wàn luàn': ['薍'],\r\n    'kǎo hāo': ['薧'],\r\n    'yuǎn wěi': ['薳'],\r\n    'zhòu chóu': ['薵'],\r\n    'wō mái': ['薶'],\r\n    'xiāo hào': ['藃'],\r\n    'yù xù xū': ['藇'],\r\n    'jiè jí': ['藉'],\r\n    'diào zhuó': ['藋'],\r\n    'cáng zàng': ['藏'],\r\n    lǎ: ['藞'],\r\n    'chú zhū': ['藸'],\r\n    'pín píng': ['蘋'],\r\n    'gān hán': ['虷'],\r\n    'hóng jiàng': ['虹'],\r\n    'huī huǐ': ['虺'],\r\n    'xiā há': ['虾'],\r\n    'mǎ mà mā': ['蚂'],\r\n    'fāng bàng': ['蚄'],\r\n    'bàng bèng': ['蚌'],\r\n    'jué quē': ['蚗'],\r\n    'qín qián': ['蚙'],\r\n    'gōng zhōng': ['蚣'],\r\n    'fǔ fù': ['蚥'],\r\n    'dài dé': ['蚮'],\r\n    'gǒu qú xù': ['蚼'],\r\n    'bǒ pí': ['蚾'],\r\n    'shé yí': ['蛇'],\r\n    tiě: ['蛈', '鉄', '銕', '鐡', '鐵', '铁', '驖'],\r\n    'gé luò': ['蛒'],\r\n    'máng bàng': ['蛖'],\r\n    'yì xǔ': ['蛡'],\r\n    'há gé': ['蛤'],\r\n    'qiè ní': ['蛪'],\r\n    'é yǐ': ['蛾'],\r\n    'zhē zhé': ['蜇'],\r\n    'là zhà': ['蜡'],\r\n    suò: ['蜶', '逤'],\r\n    'yóu qiú': ['蝤'],\r\n    'xiā hā': ['蝦'],\r\n    'xī qī': ['螇'],\r\n    'bī pí': ['螕'],\r\n    'nài něng': ['螚'],\r\n    'hé xiá': ['螛'],\r\n    'guì huǐ': ['螝'],\r\n    'mǎ mā mà': ['螞'],\r\n    'shì zhē': ['螫'],\r\n    'zhì dié': ['螲'],\r\n    'jiàn chán': ['螹'],\r\n    'ma má mò': ['蟆'],\r\n    'mǎng měng': ['蟒'],\r\n    'biē bié': ['蟞'],\r\n    'bēn fèi': ['蟦'],\r\n    'láo liáo': ['蟧'],\r\n    'yín xún': ['蟫'],\r\n    'lí lǐ': ['蠡'],\r\n    'xuè xiě': ['血'],\r\n    'xíng háng hàng héng': ['行'],\r\n    'shuāi cuī': ['衰'],\r\n    'tuó tuō': ['袉'],\r\n    'lǐng líng': ['袊'],\r\n    'bào páo pào': ['袌'],\r\n    'jù jiē': ['袓'],\r\n    'hè kè': ['袔'],\r\n    'yí yì': ['袘', '貤'],\r\n    'nà jué': ['袦'],\r\n    'bèi pī': ['被'],\r\n    'chǐ nuǒ': ['袲'],\r\n    'chǐ qǐ duǒ nuǒ': ['袳'],\r\n    'jiá qiā jié': ['袷'],\r\n    'bó mò': ['袹'],\r\n    'guī guà': ['袿'],\r\n    'liè liě': ['裂'],\r\n    'chéng chěng': ['裎'],\r\n    'jiē gé': ['裓'],\r\n    'dāo chóu': ['裯'],\r\n    'shang cháng': ['裳'],\r\n    'yuān gǔn': ['裷'],\r\n    'yǎn ān': ['裺'],\r\n    'tì xī': ['裼'],\r\n    'fù fú': ['褔'],\r\n    'chǔ zhǔ': ['褚'],\r\n    'tuì tùn': ['褪'],\r\n    lǎi: ['襰'],\r\n    'yào yāo': ['要'],\r\n    'qín tán': ['覃'],\r\n    'jiàn xiàn': ['見', '见'],\r\n    piǎn: ['覑', '諞', '谝', '貵', '𡎚'],\r\n    'piē miè': ['覕'],\r\n    'yíng yǐng': ['覮'],\r\n    'qù qū': ['覰', '覷', '觑'],\r\n    'jiàn biǎn': ['覵'],\r\n    'luó luǎn': ['覶'],\r\n    'zī zuǐ': ['觜'],\r\n    'huà xiè': ['觟'],\r\n    'jiě jiè xiè': ['解', '觧'],\r\n    'xué hù': ['觷'],\r\n    'lì lù': ['觻'],\r\n    tǎo: ['討', '讨'],\r\n    zhùn: ['訰'],\r\n    'zī zǐ': ['訾'],\r\n    'yí dài': ['詒', '诒'],\r\n    xiòng: ['詗', '诇'],\r\n    'diào tiǎo': ['誂'],\r\n    'yí chǐ chì': ['誃'],\r\n    'lǎng làng': ['誏'],\r\n    'ēi éi ěi èi xī': ['誒', '诶'],\r\n    shuà: ['誜'],\r\n    'yǔ yù': ['語', '语', '雨'],\r\n    'shuō shuì yuè': ['說', '说'],\r\n    'shuí shéi': ['誰', '谁'],\r\n    'qū juè': ['誳'],\r\n    'chī lài': ['誺'],\r\n    'nì ná': ['誽'],\r\n    'diào tiáo': ['調'],\r\n    'pǐ bēi': ['諀'],\r\n    'jì jī': ['諅'],\r\n    'zé zuò zhǎ cuò': ['諎'],\r\n    'chù jí': ['諔'],\r\n    'háo xià': ['諕'],\r\n    'lùn lún': ['論', '论'],\r\n    'shì dì': ['諟'],\r\n    'huà guā': ['諣'],\r\n    'xǐ shāi āi': ['諰'],\r\n    'nán nàn': ['諵', '難'],\r\n    miù: ['謬', '谬'],\r\n    zèn: ['譖', '谮'],\r\n    'shí zhì': ['識', '识'],\r\n    'juàn xuān': ['讂'],\r\n    'yí tuī': ['讉'],\r\n    zhán: ['讝'],\r\n    'xǔ hǔ': ['许'],\r\n    'xiáng yáng': ['详'],\r\n    'tiáo diào zhōu': ['调'],\r\n    'chén shèn': ['谌'],\r\n    'mí mèi': ['谜'],\r\n    'màn mán': ['谩'],\r\n    'gǔ yù': ['谷'],\r\n    'huō huò huá': ['豁'],\r\n    'zhì zhài': ['豸'],\r\n    'huān huán': ['貆'],\r\n    'kěn kūn': ['貇'],\r\n    'mò hé': ['貈'],\r\n    'mò hé háo': ['貉'],\r\n    'jù lóu': ['貗'],\r\n    'zé zhài': ['責', '责'],\r\n    'dài tè': ['貸'],\r\n    'bì bēn': ['賁'],\r\n    'jiǎ gǔ jià': ['賈'],\r\n    'xiōng mín': ['賯'],\r\n    càng: ['賶'],\r\n    'zhuàn zuàn': ['賺', '赚'],\r\n    'wàn zhuàn': ['贃'],\r\n    'gàn gòng zhuàng': ['贛'],\r\n    'yuán yùn': ['贠'],\r\n    'bēn bì': ['贲'],\r\n    'jiǎ gǔ': ['贾'],\r\n    zǒu: ['走', '赱', '鯐'],\r\n    'dié tú': ['趃'],\r\n    'jū qiè': ['趄'],\r\n    'qū cù': ['趋', '趨'],\r\n    'jí jié': ['趌'],\r\n    'guā huó': ['趏'],\r\n    'què qì jí': ['趞'],\r\n    'tàng tāng': ['趟'],\r\n    'chuō zhuó': ['趠'],\r\n    'qù cù': ['趣'],\r\n    'yuè tì': ['趯'],\r\n    'bō bào': ['趵'],\r\n    'kuà wù': ['趶'],\r\n    'guì jué': ['趹'],\r\n    'fāng fàng páng': ['趽'],\r\n    'páo bà': ['跁'],\r\n    'qí qǐ': ['跂'],\r\n    'jiàn chén': ['跈'],\r\n    'pǎo páo': ['跑'],\r\n    'diǎn diē tiē': ['跕'],\r\n    'jū jù qiè': ['跙'],\r\n    bǒ: ['跛'],\r\n    'luò lì': ['跞'],\r\n    'dài duò duō chí': ['跢'],\r\n    zhuǎi: ['跩'],\r\n    'bèng pián': ['跰'],\r\n    'tiào táo': ['跳'],\r\n    'shū chōu': ['跾'],\r\n    'liàng liáng': ['踉'],\r\n    'tà tā': ['踏'],\r\n    chǎ: ['蹅', '鑔', '镲'],\r\n    'dí zhí': ['蹢'],\r\n    'dēng dèng': ['蹬', '鐙', '镫'],\r\n    cèng: ['蹭'],\r\n    'dūn cún': ['蹲'],\r\n    'juě jué': ['蹶'],\r\n    liāo: ['蹽'],\r\n    'xiè sǎ': ['躠'],\r\n    tǐ: ['躰', '軆', '骵'],\r\n    'yà zhá gá': ['轧', '軋'],\r\n    'xìn xiàn': ['軐'],\r\n    'fàn guǐ': ['軓'],\r\n    'zhuàn zhuǎn': ['転'],\r\n    'zhóu zhòu': ['軸', '轴'],\r\n    bú: ['轐', '醭', '鳪'],\r\n    'zhuǎn zhuàn zhuǎi': ['转'],\r\n    'zǎi zài': ['载'],\r\n    'niǎn zhǎn': ['辗'],\r\n    'biān bian': ['边'],\r\n    'dào biān': ['辺'],\r\n    'yǐ yí': ['迆', '迤', '迱'],\r\n    'guò guo guō': ['过'],\r\n    'wàng kuāng': ['迋'],\r\n    'hái huán': ['还'],\r\n    'zhè zhèi': ['这'],\r\n    'yuǎn yuàn': ['远'],\r\n    'zhì lì': ['迣'],\r\n    'zhù wǎng': ['迬'],\r\n    'zhuī duī': ['追'],\r\n    'shì kuò': ['适'],\r\n    tòu: ['透'],\r\n    'tōng tòng': ['通'],\r\n    guàng: ['逛'],\r\n    'dǎi dài': ['逮'],\r\n    'suì suí': ['遂'],\r\n    'tí dì': ['遆'],\r\n    'yí wèi': ['遗'],\r\n    'shì dí zhé': ['適'],\r\n    cà: ['遪'],\r\n    'huán hái': ['還'],\r\n    'lí chí': ['邌'],\r\n    'kàng háng': ['邟'],\r\n    'nà nèi nā': ['那'],\r\n    'xié yá yé yú xú': ['邪'],\r\n    'gāi hái': ['郂'],\r\n    'huán xún': ['郇'],\r\n    'chī xī': ['郗'],\r\n    hǎo: ['郝'],\r\n    'lì zhí': ['郦'],\r\n    'xiáo ǎo': ['郩'],\r\n    'dōu dū': ['都'],\r\n    liǎo: ['曢', '鄝', '镽'],\r\n    'zàn cuán cuó': ['酂', '酇'],\r\n    'dīng dǐng': ['酊'],\r\n    'cù zuò': ['酢'],\r\n    'fā pō': ['酦'],\r\n    'shāi shī': ['酾'],\r\n    niàng: ['酿', '醸'],\r\n    'qiú chōu': ['醔'],\r\n    'pō fā': ['醗', '醱'],\r\n    'chǎn chěn': ['醦'],\r\n    'yàn liǎn xiān': ['醶'],\r\n    'niàng niáng': ['釀'],\r\n    'lǐ li': ['里'],\r\n    'lí xǐ xī': ['釐'],\r\n    'liǎo liào': ['釕'],\r\n    'dīng dìng': ['釘', '钉'],\r\n    'qiǎo jiǎo': ['釥'],\r\n    'yú huá': ['釪'],\r\n    'huá wū': ['釫'],\r\n    'rì rèn jiàn': ['釰', '釼'],\r\n    'dì dài': ['釱'],\r\n    'pī zhāo': ['釽'],\r\n    'yá yé': ['釾'],\r\n    'bǎ pá': ['鈀', '钯'],\r\n    'tā tuó': ['鉈', '铊'],\r\n    běi: ['鉳'],\r\n    'bǐng píng': ['鉼'],\r\n    'hā kē': ['鉿', '铪'],\r\n    chòng: ['銃', '铳'],\r\n    'xiǎng jiōng': ['銄'],\r\n    'yù sì': ['銉'],\r\n    'xù huì': ['銊'],\r\n    'rén rěn': ['銋'],\r\n    'shàn shuò': ['銏'],\r\n    'chì lì': ['銐'],\r\n    'xiǎn xǐ': ['銑', '铣'],\r\n    'hóu xiàng': ['銗'],\r\n    'diào tiáo yáo': ['銚'],\r\n    'xiān kuò tiǎn guā': ['銛', '銽', '铦'],\r\n    'zhé niè': ['銸'],\r\n    'zhōng yōng': ['銿'],\r\n    'tōu tù dòu': ['鋀'],\r\n    'méi méng': ['鋂'],\r\n    'wàn jiǎn': ['鋄', '鎫'],\r\n    'tǐng dìng': ['鋌', '铤'],\r\n    'juān jiān cuān': ['鋑'],\r\n    'sī tuó': ['鋖'],\r\n    'juān xuān juàn': ['鋗'],\r\n    'wú huá wū': ['鋘'],\r\n    'zhuó chuò': ['鋜'],\r\n    'xíng xìng jīng': ['鋞'],\r\n    'jū jú': ['鋦', '锔'],\r\n    'zuì niè': ['鋷'],\r\n    'yuān yuǎn wǎn wān': ['鋺'],\r\n    'gāng gàng': ['鋼', '钢'],\r\n    zhuī: ['錐', '锥', '騅', '骓', '鵻'],\r\n    ā: ['錒', '锕'],\r\n    'cuō chā': ['鎈'],\r\n    'suǒ sè': ['鎍'],\r\n    'yáo zú': ['鎐'],\r\n    'yè tà gé': ['鎑'],\r\n    'qiāng chēng': ['鎗'],\r\n    'gé lì': ['鎘', '镉', '鬲'],\r\n    'bī pī bì': ['鎞'],\r\n    'gǎo hào': ['鎬'],\r\n    'zú chuò': ['鏃'],\r\n    'xiū xiù': ['鏅'],\r\n    'shòu sōu': ['鏉'],\r\n    'dí dī': ['鏑', '镝'],\r\n    'qiāo sǎn càn': ['鏒'],\r\n    'lù áo': ['鏕'],\r\n    'tāng táng': ['鏜'],\r\n    'jiàn zàn': ['鏩'],\r\n    'huì suì ruì': ['鏸'],\r\n    'qiǎng qiāng': ['鏹', '镪'],\r\n    'sǎn xiàn sà': ['鏾'],\r\n    'jiǎn jiàn': ['鐧', '锏'],\r\n    'dāng chēng': ['鐺', '铛'],\r\n    'zuān zuàn': ['鑽'],\r\n    'sà xì': ['钑'],\r\n    'yào yuè': ['钥'],\r\n    'tǒu dǒu': ['钭'],\r\n    'zuàn zuān': ['钻'],\r\n    'qiān yán': ['铅'],\r\n    'pí pī': ['铍'],\r\n    'yáo diào tiáo': ['铫'],\r\n    'tāng tàng': ['铴'],\r\n    'pù pū': ['铺'],\r\n    'tán xiān': ['锬'],\r\n    'liù liú': ['镏'],\r\n    'hào gǎo': ['镐'],\r\n    'táng tāng': ['镗'],\r\n    'tán chán xín': ['镡'],\r\n    'huò shǎn': ['閄'],\r\n    'hàn bì': ['閈', '闬'],\r\n    'kāng kàng': ['閌', '闶'],\r\n    'xián jiàn jiān jiǎn': ['閒'],\r\n    'xiā xiǎ': ['閕'],\r\n    'xiǎ kě': ['閜'],\r\n    'biàn guān': ['閞'],\r\n    'hé gé': ['閤', '颌'],\r\n    'hòng xiàng': ['閧'],\r\n    'sē xī': ['閪'],\r\n    'tíng tǐng': ['閮'],\r\n    'è yān': ['閼', '阏'],\r\n    'hòng juǎn xiàng': ['闂'],\r\n    'bǎn pàn': ['闆'],\r\n    'dū shé': ['闍', '阇'],\r\n    'què quē': ['闕'],\r\n    'tāng táng chāng': ['闛'],\r\n    'kàn hǎn': ['闞', '阚'],\r\n    'xì sè tà': ['闟'],\r\n    'mēn mèn': ['闷'],\r\n    'quē què': ['阙'],\r\n    'yán diàn': ['阽'],\r\n    'ā ē': ['阿'],\r\n    'bēi pō pí': ['陂'],\r\n    'yàn yǎn': ['隁'],\r\n    'yú yáo shù': ['隃'],\r\n    'lóng lōng': ['隆'],\r\n    'duì zhuì': ['隊'],\r\n    'suí duò': ['隋'],\r\n    'gāi qí ái': ['隑'],\r\n    'huī duò': ['隓', '隳'],\r\n    'wěi kuí': ['隗'],\r\n    'lì dài': ['隸'],\r\n    'zhuī cuī wéi': ['隹'],\r\n    'hè hú': ['隺', '鶮'],\r\n    'jùn juàn': ['隽', '雋'],\r\n    'nán nàn nuó': ['难'],\r\n    'què qiāo qiǎo': ['雀'],\r\n    'guàn huán': ['雚'],\r\n    'guī xī': ['雟'],\r\n    'sè xí': ['雭'],\r\n    án: ['雸'],\r\n    'wù méng': ['雺'],\r\n    tèng: ['霯'],\r\n    'lù lòu': ['露'],\r\n    mái: ['霾'],\r\n    'jìng liàng': ['靚'],\r\n    'gé jí': ['革'],\r\n    bǎ: ['靶'],\r\n    'yāng yàng': ['鞅'],\r\n    'gé tà sǎ': ['鞈'],\r\n    'biān yìng': ['鞕'],\r\n    'qiào shāo': ['鞘'],\r\n    'juān xuān': ['鞙'],\r\n    'shàng zhǎng': ['鞝'],\r\n    'pí bǐng bì bēi': ['鞞'],\r\n    la: ['鞡'],\r\n    'xiè dié': ['鞢'],\r\n    ēng: ['鞥'],\r\n    'móu mù': ['鞪'],\r\n    'bì bǐng': ['鞸'],\r\n    'mèi wà': ['韎'],\r\n    rǒu: ['韖'],\r\n    'shè xiè': ['韘'],\r\n    'yùn wēn': ['韫'],\r\n    'dùn dú': ['頓', '顿'],\r\n    duǐ: ['頧'],\r\n    luō: ['頱'],\r\n    'bīn pín': ['頻'],\r\n    yóng: ['顒', '颙', '鰫'],\r\n    mān: ['顢', '颟'],\r\n    'jǐng gěng': ['颈'],\r\n    'jié xié jiá': ['颉'],\r\n    'kē ké': ['颏'],\r\n    'pín bīn': ['频'],\r\n    'chàn zhàn': ['颤'],\r\n    'fēng fěng': ['風', '风'],\r\n    'biāo diū': ['颩'],\r\n    'bá fú': ['颰'],\r\n    'sāo sōu': ['颾'],\r\n    'liù liáo': ['飂'],\r\n    'shí sì yì': ['食'],\r\n    'yǎng juàn': ['飬'],\r\n    'zhù tǒu': ['飳'],\r\n    'yí sì': ['飴'],\r\n    'zuò zé zhā': ['飵'],\r\n    tiè: ['飻', '餮'],\r\n    'xiǎng náng': ['饟'],\r\n    'táng xíng': ['饧'],\r\n    'gē le': ['饹'],\r\n    'chā zha': ['馇'],\r\n    'náng nǎng': ['馕'],\r\n    'yūn wò': ['馧'],\r\n    'zhī shì': ['馶'],\r\n    'xìn jìn': ['馸'],\r\n    'kuài jué': ['駃'],\r\n    zǎng: ['駔', '驵'],\r\n    'tái dài': ['駘'],\r\n    'xún xuān': ['駨'],\r\n    'liáng láng': ['駺'],\r\n    piàn: ['騗', '騙', '骗', '魸'],\r\n    'dài tái': ['骀'],\r\n    'sāo sǎo': ['骚'],\r\n    'gǔ gū': ['骨'],\r\n    'bèi mó': ['骳'],\r\n    'xiāo qiāo': ['骹'],\r\n    'bǎng pǎng': ['髈'],\r\n    'bó jué': ['髉'],\r\n    'bì pǒ': ['髲'],\r\n    'máo méng': ['髳'],\r\n    'kuò yuè': ['髺'],\r\n    'bā bà': ['魞', '鲃'],\r\n    'jì cǐ': ['鮆'],\r\n    'bó bà': ['鮊'],\r\n    'zhǎ zhà': ['鮓', '鲊'],\r\n    'chóu dài': ['鮘'],\r\n    'luò gé': ['鮥'],\r\n    'guī xié wā kuí': ['鮭'],\r\n    'xiān xiǎn': ['鮮', '鲜'],\r\n    'pū bū': ['鯆'],\r\n    'yì sī': ['鯣'],\r\n    'bà bó': ['鲌'],\r\n    'guī xié': ['鲑'],\r\n    'sāi xǐ': ['鳃'],\r\n    'niǎo diǎo': ['鳥'],\r\n    'diāo zhāo': ['鳭'],\r\n    'gān hàn yàn': ['鳱'],\r\n    'fū guī': ['鳺'],\r\n    'jiān qiān zhān': ['鳽'],\r\n    'hé jiè': ['鶡'],\r\n    'piān biǎn': ['鶣'],\r\n    'chuàn zhì': ['鶨'],\r\n    'cāng qiāng': ['鶬'],\r\n    'sǔn xùn': ['鶽'],\r\n    'biāo páo': ['麃'],\r\n    'zhù cū': ['麆'],\r\n    'jūn qún': ['麇', '麕'],\r\n    chi: ['麶'],\r\n    'mó me': ['麼'],\r\n    'mó me ma': ['麽'],\r\n    'mí mǒ': ['麿'],\r\n    'dàn shèn': ['黮'],\r\n    'zhěn yān': ['黰'],\r\n    'dǎn zhǎn': ['黵'],\r\n    'miǎn mǐn měng': ['黾'],\r\n    hōu: ['齁'],\r\n    nàng: ['齉'],\r\n    'qí jì zī zhāi': ['齐'],\r\n    'yín kěn yǎn': ['龂'],\r\n    'yín kěn': ['龈'],\r\n    'gōng wò': ['龏'],\r\n    'guī jūn qiū': ['龜', '龟'],\r\n    'kuí wā': ['䖯'],\r\n    lōu: ['䁖'],\r\n    'ōu qū': ['𫭟'],\r\n    'lóu lǘ': ['𦝼'],\r\n    'gǎ gā gá': ['嘎'],\r\n    'wā guà': ['坬'],\r\n    'zhǐ dǐ': ['茋'],\r\n    'gǒng hóng': ['硔'],\r\n    'yáo xiào': ['滧'],\r\n};\r\nconst DICT1 = new FastDictFactory();\r\nObject.keys(map).forEach((key) => {\r\n    const chars = map[key];\r\n    for (let char of chars) {\r\n        DICT1.set(char, key);\r\n    }\r\n});\n\nconst InitialList = [\r\n    'zh',\r\n    'ch',\r\n    'sh',\r\n    'z',\r\n    'c',\r\n    's',\r\n    'b',\r\n    'p',\r\n    'm',\r\n    'f',\r\n    'd',\r\n    't',\r\n    'n',\r\n    'l',\r\n    'g',\r\n    'k',\r\n    'h',\r\n    'j',\r\n    'q',\r\n    'x',\r\n    'r',\r\n    'y',\r\n    'w',\r\n    '',\r\n];\r\nconst SpecialInitialList = ['j', 'q', 'x'];\r\nconst SpecialFinalList = [\r\n    'uān',\r\n    'uán',\r\n    'uǎn',\r\n    'uàn',\r\n    'uan',\r\n    'uē',\r\n    'ué',\r\n    'uě',\r\n    'uè',\r\n    'ue',\r\n    'ūn',\r\n    'ún',\r\n    'ǔn',\r\n    'ùn',\r\n    'un',\r\n    'ū',\r\n    'ú',\r\n    'ǔ',\r\n    'ù',\r\n    'u',\r\n];\r\nconst SpecialFinalMap = {\r\n    uān: 'üān',\r\n    uán: 'üán',\r\n    uǎn: 'üǎn',\r\n    uàn: 'üàn',\r\n    uan: 'üan',\r\n    uē: 'üē',\r\n    ué: 'üé',\r\n    uě: 'üě',\r\n    uè: 'üè',\r\n    ue: 'üe',\r\n    ūn: 'ǖn',\r\n    ún: 'ǘn',\r\n    ǔn: 'ǚn',\r\n    ùn: 'ǜn',\r\n    un: 'ün',\r\n    ū: 'ǖ',\r\n    ú: 'ǘ',\r\n    ǔ: 'ǚ',\r\n    ù: 'ǜ',\r\n    u: 'ü',\r\n};\r\nconst doubleFinalList = [\r\n    'ia',\r\n    'ian',\r\n    'iang',\r\n    'iao',\r\n    'ie',\r\n    'iu',\r\n    'iong',\r\n    'ua',\r\n    'uai',\r\n    'uan',\r\n    'uang',\r\n    'ue',\r\n    'ui',\r\n    'uo',\r\n    'üan',\r\n    'üe',\r\n    'van',\r\n    've',\r\n];\r\n/**\r\n * @description: 数量词 + 特殊词 音调处理\r\n */\r\nconst Numbers = {\r\n    一: 'yì',\r\n    二: 'èr',\r\n    三: 'sān',\r\n    四: 'sì',\r\n    五: 'wǔ',\r\n    六: 'liù',\r\n    七: 'qī',\r\n    八: 'bā',\r\n    九: 'jiǔ',\r\n    十: 'shí',\r\n    百: 'bǎi',\r\n    千: 'qiān',\r\n    万: 'wàn',\r\n    亿: 'yì',\r\n    单: 'dān',\r\n    两: 'liǎng',\r\n    双: 'shuāng',\r\n    多: 'duō',\r\n    几: 'jǐ',\r\n    十一: 'shí yī',\r\n    零一: 'líng yī',\r\n    第一: 'dì yī',\r\n    一十: 'yī shí',\r\n    一十一: 'yī shí yī',\r\n};\r\nconst NumberWordMap = {\r\n    重: 'chóng',\r\n    行: 'háng',\r\n    斗: 'dǒu',\r\n    更: 'gēng',\r\n};\r\n// 与以下词组合时，不变调\r\nfunction genNumberDict() {\r\n    const dict = {\r\n        零一: 'líng yī',\r\n        〇一: 'líng yī',\r\n        十一: 'shí yī',\r\n        一十: 'yī shí',\r\n        第一: 'dì yī',\r\n        一十一: 'yī shí yī',\r\n    };\r\n    for (let number in Numbers) {\r\n        for (let key in NumberWordMap) {\r\n            const word = `${number}${key}`;\r\n            const pinyin = `${Numbers[number]} ${NumberWordMap[key]}`;\r\n            dict[word] = pinyin;\r\n        }\r\n    }\r\n    return dict;\r\n}\r\nconst NumberDict = genNumberDict();\r\nconst PatternNumberDict = Object.keys(NumberDict).map((key) => ({\r\n    zh: key,\r\n    pinyin: NumberDict[key],\r\n    probability: 1e-12 /* Probability.Rule */,\r\n    length: stringLength(key),\r\n    priority: Priority.Normal,\r\n    dict: Symbol('rule'),\r\n}));\r\n/**\r\n * @description: 连续变调处理：https://zh.wiktionary.org/wiki/Appendix:%E2%80%9C%E4%B8%80%E2%80%9D%E5%8F%8A%E2%80%9C%E4%B8%8D%E2%80%9D%E7%9A%84%E5%8F%98%E8%B0%83\r\n */\r\nconst toneSandhiMap = {\r\n    // 说不说，说一说，叠词之间发音为轻声\r\n    不: {\r\n        bú: [4], // \"不\" 后面跟 4 声时，变调为 2 声\r\n    },\r\n    一: {\r\n        yí: [4],\r\n        yì: [1, 2, 3],\r\n    },\r\n};\r\nconst toneSandhiIgnoreSuffix = {\r\n    不: ['的', '而', '之', '后', '也', '还', '地'],\r\n    一: ['的', '而', '之', '后', '也', '还', '是'],\r\n};\r\nconst toneSandhiList = Object.keys(toneSandhiMap);\r\n// 处理「一」和 「不」字的变调\r\nfunction processToneSandhi(cur, pre, next) {\r\n    if (toneSandhiList.indexOf(cur) === -1) {\r\n        return getSingleWordPinyin(cur);\r\n    }\r\n    // 轻声变调：说不说，说一说，叠词之间发音为轻声\r\n    if (pre === next && pre && getSingleWordPinyin(pre) !== pre) {\r\n        return getPinyinWithoutTone(getSingleWordPinyin(cur));\r\n    }\r\n    // 「一」和 「不」字变调处理\r\n    if (next &&\r\n        !toneSandhiIgnoreSuffix[cur].includes(next)) {\r\n        const nextPinyin = getSingleWordPinyin(next);\r\n        if (nextPinyin !== next) {\r\n            const nextTone = getNumOfTone(nextPinyin);\r\n            const pinyinMap = toneSandhiMap[cur];\r\n            for (let pinyin in pinyinMap) {\r\n                const tones = pinyinMap[pinyin];\r\n                if (tones.indexOf(Number(nextTone)) !== -1) {\r\n                    return pinyin;\r\n                }\r\n            }\r\n        }\r\n    }\r\n}\r\n// 处理「了」字的变调\r\nfunction processToneSandhiLiao(cur, pre) {\r\n    if (cur === '了' && (!pre || !DICT1.get(pre))) {\r\n        return 'liǎo';\r\n    }\r\n}\r\n// 处理叠字符[々]\r\nfunction processReduplicationChar(cur, pre) {\r\n    if (cur === '々') {\r\n        if (!pre || !DICT1.get(pre)) {\r\n            return 'tóng';\r\n        }\r\n        else {\r\n            return DICT1.get(pre).split(' ')[0];\r\n        }\r\n    }\r\n}\r\nfunction processSepecialPinyin(cur, pre, next) {\r\n    return (processReduplicationChar(cur, pre) ||\r\n        processToneSandhiLiao(cur, pre) ||\r\n        processToneSandhi(cur, pre, next) ||\r\n        getSingleWordPinyin(cur));\r\n}\n\nconst Surnames = {\r\n    南宫: 'nán gōng',\r\n    第五: 'dì wǔ',\r\n    万俟: 'mò qí',\r\n    司马: 'sī mǎ',\r\n    上官: 'shàng guān',\r\n    欧阳: 'ōu yáng',\r\n    夏侯: 'xià hóu',\r\n    诸葛: 'zhū gě',\r\n    闻人: 'wén rén',\r\n    东方: 'dōng fāng',\r\n    赫连: 'hè lián',\r\n    皇甫: 'huáng fǔ',\r\n    尉迟: 'yù chí',\r\n    公羊: 'gōng yáng',\r\n    澹台: 'tán tái',\r\n    公冶: 'gōng yě',\r\n    宗政: 'zōng zhèng',\r\n    濮阳: 'pú yáng',\r\n    淳于: 'chún yú',\r\n    太叔: 'tài shū',\r\n    申屠: 'shēn tú',\r\n    公孙: 'gōng sūn',\r\n    仲孙: 'zhòng sūn',\r\n    轩辕: 'xuān yuán',\r\n    令狐: 'líng hú',\r\n    钟离: 'zhōng lí',\r\n    宇文: 'yǔ wén',\r\n    长孙: 'zhǎng sūn',\r\n    慕容: 'mù róng',\r\n    鲜于: 'xiān yú',\r\n    闾丘: 'lǘ qiū',\r\n    司徒: 'sī tú',\r\n    司空: 'sī kōng',\r\n    亓官: 'qí guān',\r\n    司寇: 'sī kòu',\r\n    仉督: 'zhǎng dū',\r\n    子车: 'zǐ jū',\r\n    颛孙: 'zhuān sūn',\r\n    端木: 'duān mù',\r\n    巫马: 'wū mǎ',\r\n    公西: 'gōng xī',\r\n    漆雕: 'qī diāo',\r\n    乐正: 'yuè zhèng',\r\n    壤驷: 'rǎng sì',\r\n    公良: 'gōng liáng',\r\n    拓跋: 'tuò bá',\r\n    夹谷: 'jiá gǔ',\r\n    宰父: 'zǎi fǔ',\r\n    榖梁: 'gǔ liáng',\r\n    段干: 'duàn gān',\r\n    百里: 'bǎi lǐ',\r\n    东郭: 'dōng guō',\r\n    南门: 'nán mén',\r\n    呼延: 'hū yán',\r\n    羊舌: 'yáng shé',\r\n    梁丘: 'liáng qiū',\r\n    左丘: 'zuǒ qiū',\r\n    东门: 'dōng mén',\r\n    西门: 'xī mén',\r\n    句龙: 'gōu lóng',\r\n    毌丘: 'guàn qiū',\r\n    赵: 'zhào',\r\n    钱: 'qián',\r\n    孙: 'sūn',\r\n    李: 'lǐ',\r\n    周: 'zhōu',\r\n    吴: 'wú',\r\n    郑: 'zhèng',\r\n    王: 'wáng',\r\n    冯: 'féng',\r\n    陈: 'chén',\r\n    褚: 'chǔ',\r\n    卫: 'wèi',\r\n    蒋: 'jiǎng',\r\n    沈: 'shěn',\r\n    韩: 'hán',\r\n    杨: 'yáng',\r\n    朱: 'zhū',\r\n    秦: 'qín',\r\n    尤: 'yóu',\r\n    许: 'xǔ',\r\n    何: 'hé',\r\n    吕: 'lǚ',\r\n    施: 'shī',\r\n    张: 'zhāng',\r\n    孔: 'kǒng',\r\n    曹: 'cáo',\r\n    严: 'yán',\r\n    华: 'huà',\r\n    金: 'jīn',\r\n    魏: 'wèi',\r\n    陶: 'táo',\r\n    姜: 'jiāng',\r\n    戚: 'qī',\r\n    谢: 'xiè',\r\n    邹: 'zōu',\r\n    喻: 'yù',\r\n    柏: 'bǎi',\r\n    水: 'shuǐ',\r\n    窦: 'dòu',\r\n    章: 'zhāng',\r\n    云: 'yún',\r\n    苏: 'sū',\r\n    潘: 'pān',\r\n    葛: 'gě',\r\n    奚: 'xī',\r\n    范: 'fàn',\r\n    彭: 'péng',\r\n    郎: 'láng',\r\n    鲁: 'lǔ',\r\n    韦: 'wéi',\r\n    昌: 'chāng',\r\n    马: 'mǎ',\r\n    苗: 'miáo',\r\n    凤: 'fèng',\r\n    花: 'huā',\r\n    方: 'fāng',\r\n    俞: 'yú',\r\n    任: 'rén',\r\n    袁: 'yuán',\r\n    柳: 'liǔ',\r\n    酆: 'fēng',\r\n    鲍: 'bào',\r\n    史: 'shǐ',\r\n    唐: 'táng',\r\n    费: 'fèi',\r\n    廉: 'lián',\r\n    岑: 'cén',\r\n    薛: 'xuē',\r\n    雷: 'léi',\r\n    贺: 'hè',\r\n    倪: 'ní',\r\n    汤: 'tāng',\r\n    滕: 'téng',\r\n    殷: 'yīn',\r\n    罗: 'luó',\r\n    毕: 'bì',\r\n    郝: 'hǎo',\r\n    邬: 'wū',\r\n    安: 'ān',\r\n    常: 'cháng',\r\n    乐: 'yuè',\r\n    于: 'yú',\r\n    时: 'shí',\r\n    傅: 'fù',\r\n    皮: 'pí',\r\n    卞: 'biàn',\r\n    齐: 'qí',\r\n    康: 'kāng',\r\n    伍: 'wǔ',\r\n    余: 'yú',\r\n    元: 'yuán',\r\n    卜: 'bǔ',\r\n    顾: 'gù',\r\n    孟: 'mèng',\r\n    平: 'píng',\r\n    黄: 'huáng',\r\n    和: 'hé',\r\n    穆: 'mù',\r\n    萧: 'xiāo',\r\n    尹: 'yǐn',\r\n    姚: 'yáo',\r\n    邵: 'shào',\r\n    湛: 'zhàn',\r\n    汪: 'wāng',\r\n    祁: 'qí',\r\n    毛: 'máo',\r\n    禹: 'yǔ',\r\n    狄: 'dí',\r\n    米: 'mǐ',\r\n    贝: 'bèi',\r\n    明: 'míng',\r\n    臧: 'zāng',\r\n    计: 'jì',\r\n    伏: 'fú',\r\n    成: 'chéng',\r\n    戴: 'dài',\r\n    谈: 'tán',\r\n    宋: 'sòng',\r\n    茅: 'máo',\r\n    庞: 'páng',\r\n    熊: 'xióng',\r\n    纪: 'jǐ',\r\n    舒: 'shū',\r\n    屈: 'qū',\r\n    项: 'xiàng',\r\n    祝: 'zhù',\r\n    董: 'dǒng',\r\n    梁: 'liáng',\r\n    杜: 'dù',\r\n    阮: 'ruǎn',\r\n    蓝: 'lán',\r\n    闵: 'mǐn',\r\n    席: 'xí',\r\n    季: 'jì',\r\n    麻: 'má',\r\n    强: 'qiáng',\r\n    贾: 'jiǎ',\r\n    路: 'lù',\r\n    娄: 'lóu',\r\n    危: 'wēi',\r\n    江: 'jiāng',\r\n    童: 'tóng',\r\n    颜: 'yán',\r\n    郭: 'guō',\r\n    梅: 'méi',\r\n    盛: 'shèng',\r\n    林: 'lín',\r\n    刁: 'diāo',\r\n    钟: 'zhōng',\r\n    徐: 'xú',\r\n    邱: 'qiū',\r\n    骆: 'luò',\r\n    高: 'gāo',\r\n    夏: 'xià',\r\n    蔡: 'cài',\r\n    田: 'tián',\r\n    樊: 'fán',\r\n    胡: 'hú',\r\n    凌: 'líng',\r\n    霍: 'huò',\r\n    虞: 'yú',\r\n    万: 'wàn',\r\n    支: 'zhī',\r\n    柯: 'kē',\r\n    昝: 'zǎn',\r\n    管: 'guǎn',\r\n    卢: 'lú',\r\n    莫: 'mò',\r\n    经: 'jīng',\r\n    房: 'fáng',\r\n    裘: 'qiú',\r\n    缪: 'miào',\r\n    干: 'gān',\r\n    解: 'xiè',\r\n    应: 'yīng',\r\n    宗: 'zōng',\r\n    丁: 'dīng',\r\n    宣: 'xuān',\r\n    贲: 'bēn',\r\n    邓: 'dèng',\r\n    郁: 'yù',\r\n    单: 'shàn',\r\n    杭: 'háng',\r\n    洪: 'hóng',\r\n    包: 'bāo',\r\n    诸: 'zhū',\r\n    左: 'zuǒ',\r\n    石: 'shí',\r\n    崔: 'cuī',\r\n    吉: 'jí',\r\n    钮: 'niǔ',\r\n    龚: 'gōng',\r\n    程: 'chéng',\r\n    嵇: 'jī',\r\n    邢: 'xíng',\r\n    滑: 'huá',\r\n    裴: 'péi',\r\n    陆: 'lù',\r\n    荣: 'róng',\r\n    翁: 'wēng',\r\n    荀: 'xún',\r\n    羊: 'yáng',\r\n    於: 'yū',\r\n    惠: 'huì',\r\n    甄: 'zhēn',\r\n    曲: 'qū',\r\n    家: 'jiā',\r\n    封: 'fēng',\r\n    芮: 'ruì',\r\n    羿: 'yì',\r\n    储: 'chǔ',\r\n    靳: 'jìn',\r\n    汲: 'jí',\r\n    邴: 'bǐng',\r\n    糜: 'mí',\r\n    松: 'sōng',\r\n    井: 'jǐng',\r\n    段: 'duàn',\r\n    富: 'fù',\r\n    巫: 'wū',\r\n    乌: 'wū',\r\n    焦: 'jiāo',\r\n    巴: 'bā',\r\n    弓: 'gōng',\r\n    牧: 'mù',\r\n    隗: 'wěi',\r\n    山: 'shān',\r\n    谷: 'gǔ',\r\n    车: 'chē',\r\n    侯: 'hóu',\r\n    宓: 'mì',\r\n    蓬: 'péng',\r\n    全: 'quán',\r\n    郗: 'xī',\r\n    班: 'bān',\r\n    仰: 'yǎng',\r\n    秋: 'qiū',\r\n    仲: 'zhòng',\r\n    伊: 'yī',\r\n    宫: 'gōng',\r\n    宁: 'nìng',\r\n    仇: 'qiú',\r\n    栾: 'luán',\r\n    暴: 'bào',\r\n    甘: 'gān',\r\n    钭: 'tǒu',\r\n    厉: 'lì',\r\n    戎: 'róng',\r\n    祖: 'zǔ',\r\n    武: 'wǔ',\r\n    符: 'fú',\r\n    刘: 'liú',\r\n    景: 'jǐng',\r\n    詹: 'zhān',\r\n    束: 'shù',\r\n    龙: 'lóng',\r\n    叶: 'yè',\r\n    幸: 'xìng',\r\n    司: 'sī',\r\n    韶: 'sháo',\r\n    郜: 'gào',\r\n    黎: 'lí',\r\n    蓟: 'jì',\r\n    薄: 'bó',\r\n    印: 'yìn',\r\n    宿: 'sù',\r\n    白: 'bái',\r\n    怀: 'huái',\r\n    蒲: 'pú',\r\n    邰: 'tái',\r\n    从: 'cóng',\r\n    鄂: 'è',\r\n    索: 'suǒ',\r\n    咸: 'xián',\r\n    籍: 'jí',\r\n    赖: 'lài',\r\n    卓: 'zhuó',\r\n    蔺: 'lìn',\r\n    屠: 'tú',\r\n    蒙: 'méng',\r\n    池: 'chí',\r\n    乔: 'qiáo',\r\n    阴: 'yīn',\r\n    鬱: 'yù',\r\n    胥: 'xū',\r\n    能: 'nài',\r\n    苍: 'cāng',\r\n    双: 'shuāng',\r\n    闻: 'wén',\r\n    莘: 'shēn',\r\n    党: 'dǎng',\r\n    翟: 'zhái',\r\n    谭: 'tán',\r\n    贡: 'gòng',\r\n    劳: 'láo',\r\n    逄: 'páng',\r\n    姬: 'jī',\r\n    申: 'shēn',\r\n    扶: 'fú',\r\n    堵: 'dǔ',\r\n    冉: 'rǎn',\r\n    宰: 'zǎi',\r\n    郦: 'lì',\r\n    雍: 'yōng',\r\n    郤: 'xì',\r\n    璩: 'qú',\r\n    桑: 'sāng',\r\n    桂: 'guì',\r\n    濮: 'pú',\r\n    牛: 'niú',\r\n    寿: 'shòu',\r\n    通: 'tōng',\r\n    边: 'biān',\r\n    扈: 'hù',\r\n    燕: 'yān',\r\n    冀: 'jì',\r\n    郏: 'jiá',\r\n    浦: 'pǔ',\r\n    尚: 'shàng',\r\n    农: 'nóng',\r\n    温: 'wēn',\r\n    别: 'bié',\r\n    庄: 'zhuāng',\r\n    晏: 'yàn',\r\n    柴: 'chái',\r\n    瞿: 'qú',\r\n    阎: 'yán',\r\n    充: 'chōng',\r\n    慕: 'mù',\r\n    连: 'lián',\r\n    茹: 'rú',\r\n    习: 'xí',\r\n    宦: 'huàn',\r\n    艾: 'ài',\r\n    鱼: 'yú',\r\n    容: 'róng',\r\n    向: 'xiàng',\r\n    古: 'gǔ',\r\n    易: 'yì',\r\n    慎: 'shèn',\r\n    戈: 'gē',\r\n    廖: 'liào',\r\n    庾: 'yǔ',\r\n    终: 'zhōng',\r\n    暨: 'jì',\r\n    居: 'jū',\r\n    衡: 'héng',\r\n    步: 'bù',\r\n    都: 'dū',\r\n    耿: 'gěng',\r\n    满: 'mǎn',\r\n    弘: 'hóng',\r\n    匡: 'kuāng',\r\n    国: 'guó',\r\n    文: 'wén',\r\n    寇: 'kòu',\r\n    广: 'guǎng',\r\n    禄: 'lù',\r\n    阙: 'quē',\r\n    东: 'dōng',\r\n    欧: 'ōu',\r\n    殳: 'shū',\r\n    沃: 'wò',\r\n    利: 'lì',\r\n    蔚: 'wèi',\r\n    越: 'yuè',\r\n    夔: 'kuí',\r\n    隆: 'lóng',\r\n    师: 'shī',\r\n    巩: 'gǒng',\r\n    厍: 'shè',\r\n    聂: 'niè',\r\n    晁: 'cháo',\r\n    勾: 'gōu',\r\n    敖: 'áo',\r\n    融: 'róng',\r\n    冷: 'lěng',\r\n    訾: 'zī',\r\n    辛: 'xīn',\r\n    阚: 'kàn',\r\n    那: 'nā',\r\n    简: 'jiǎn',\r\n    饶: 'ráo',\r\n    空: 'kōng',\r\n    曾: 'zēng',\r\n    母: 'mǔ',\r\n    沙: 'shā',\r\n    乜: 'niè',\r\n    养: 'yǎng',\r\n    鞠: 'jū',\r\n    须: 'xū',\r\n    丰: 'fēng',\r\n    巢: 'cháo',\r\n    关: 'guān',\r\n    蒯: 'kuǎi',\r\n    相: 'xiàng',\r\n    查: 'zhā',\r\n    后: 'hòu',\r\n    荆: 'jīng',\r\n    红: 'hóng',\r\n    游: 'yóu',\r\n    竺: 'zhú',\r\n    权: 'quán',\r\n    逯: 'lù',\r\n    盖: 'gě',\r\n    益: 'yì',\r\n    桓: 'huán',\r\n    公: 'gōng',\r\n    牟: 'móu',\r\n    哈: 'hǎ',\r\n    言: 'yán',\r\n    福: 'fú',\r\n    肖: 'xiāo',\r\n    区: 'ōu',\r\n    覃: 'qín',\r\n    朴: 'piáo',\r\n    繁: 'pó',\r\n    员: 'yùn',\r\n    句: 'gōu',\r\n    要: 'yāo',\r\n    过: 'guō',\r\n    钻: 'zuān',\r\n    谌: 'chén',\r\n    折: 'shé',\r\n    召: 'shào',\r\n    郄: 'qiè',\r\n    撒: 'sǎ',\r\n    甯: 'nìng',\r\n    六: 'lù',\r\n    啜: 'chuài',\r\n    行: 'xíng',\r\n};\r\nconst PatternSurname = Object.keys(Surnames).map((key) => ({\r\n    zh: key,\r\n    pinyin: Surnames[key],\r\n    probability: 1 /* Probability.Surname */ + stringLength(key),\r\n    length: stringLength(key),\r\n    priority: Priority.Surname,\r\n    dict: Symbol('surname'),\r\n}));\n\nconst DICT2 = {\r\n    这个: 'zhè ge',\r\n    成为: 'chéng wéi',\r\n    认为: 'rèn wéi',\r\n    作为: 'zuò wéi',\r\n    部分: 'bù fen',\r\n    要求: 'yāo qiú',\r\n    应该: 'yīng gāi',\r\n    增长: 'zēng zhǎng',\r\n    提供: 'tí gōng',\r\n    觉得: 'jué de',\r\n    任务: 'rèn wu',\r\n    那个: 'nà ge',\r\n    称为: 'chēng wéi',\r\n    为主: 'wéi zhǔ',\r\n    了解: 'liǎo jiě',\r\n    处理: 'chǔ lǐ',\r\n    皇上: 'huáng shang',\r\n    只要: 'zhǐ yào',\r\n    大量: 'dà liàng',\r\n    力量: 'lì liàng',\r\n    几乎: 'jī hū',\r\n    干部: 'gàn bù',\r\n    目的: 'mù dì',\r\n    行为: 'xíng wéi',\r\n    只见: 'zhǐ jiàn',\r\n    认识: 'rèn shi',\r\n    市长: 'shì zhǎng',\r\n    师父: 'shī fu',\r\n    调查: 'diào chá',\r\n    重新: 'chóng xīn',\r\n    分为: 'fēn wéi',\r\n    知识: 'zhī shi',\r\n    导弹: 'dǎo dàn',\r\n    质量: 'zhì liàng',\r\n    行款: 'háng kuǎn',\r\n    行列: 'háng liè',\r\n    行话: 'háng huà',\r\n    行业: 'háng yè',\r\n    隔行: 'gé háng',\r\n    在行: 'zài háng',\r\n    行家: 'háng jia',\r\n    内行: 'nèi háng',\r\n    外行: 'wài háng',\r\n    同行: 'tóng háng',\r\n    本行: 'běn háng',\r\n    行伍: 'háng wǔ',\r\n    洋行: 'yáng háng',\r\n    银行: 'yín háng',\r\n    商行: 'shāng háng',\r\n    支行: 'zhī háng',\r\n    总行: 'zǒng háng',\r\n    行情: 'háng qíng',\r\n    懂行: 'dǒng háng',\r\n    行规: 'háng guī',\r\n    行当: 'háng dang',\r\n    行货: 'háng huò',\r\n    太行: 'tài háng',\r\n    入行: 'rù háng',\r\n    中行: 'zhōng háng',\r\n    农行: 'nóng háng',\r\n    工行: 'gōng háng',\r\n    建行: 'jiàn háng',\r\n    各行: \"gè háng\",\r\n    行号: 'háng hào',\r\n    行高: 'háng gāo',\r\n    行首: 'háng shǒu',\r\n    行尾: 'háng wěi',\r\n    行末: 'háng mò',\r\n    行长: 'háng cháng',\r\n    行距: 'háng jù',\r\n    换行: 'huàn háng',\r\n    行会: 'háng huì',\r\n    行辈: 'háng bèi',\r\n    行道: 'háng dào',\r\n    道行: 'dào heng',\r\n    参与: 'cān yù',\r\n    充分: 'chōng fèn',\r\n    尽管: 'jǐn guǎn',\r\n    生长: 'shēng zhǎng',\r\n    数量: 'shù liàng',\r\n    应当: 'yīng dāng',\r\n    院长: 'yuàn zhǎng',\r\n    强调: 'qiáng diào',\r\n    只能: 'zhǐ néng',\r\n    音乐: 'yīn yuè',\r\n    以为: 'yǐ wéi',\r\n    处于: 'chǔ yú',\r\n    部长: 'bù zhǎng',\r\n    蒙古: 'měng gǔ',\r\n    只有: 'zhǐ yǒu',\r\n    适当: 'shì dàng',\r\n    只好: 'zhǐ hǎo',\r\n    成长: 'chéng zhǎng',\r\n    高兴: 'gāo xìng',\r\n    不了: 'bù liǎo',\r\n    产量: 'chǎn liàng',\r\n    胖子: 'pàng zi',\r\n    显得: 'xiǎn de',\r\n    只是: 'zhǐ shì',\r\n    似的: 'shì de',\r\n    率领: 'shuài lǐng',\r\n    改为: 'gǎi wéi',\r\n    不禁: 'bù jīn',\r\n    成分: 'chéng fèn',\r\n    答应: 'dā ying',\r\n    少年: 'shào nián',\r\n    兴趣: 'xìng qù',\r\n    太监: 'tài jian',\r\n    休息: 'xiū xi',\r\n    校长: 'xiào zhǎng',\r\n    更新: 'gēng xīn',\r\n    合同: 'hé tong',\r\n    喝道: 'hè dào',\r\n    重庆: 'chóng qìng',\r\n    重建: 'chóng jiàn',\r\n    使得: 'shǐ de',\r\n    审查: 'shěn chá',\r\n    累计: 'lěi jì',\r\n    给予: 'jǐ yǔ',\r\n    极为: 'jí wéi',\r\n    冠军: 'guàn jūn',\r\n    仿佛: 'fǎng fú',\r\n    头发: 'tóu fa',\r\n    投降: 'tóu xiáng',\r\n    家长: 'jiā zhǎng',\r\n    仔细: 'zǐ xì',\r\n    要是: 'yào shi',\r\n    将领: 'jiàng lǐng',\r\n    含量: 'hán liàng',\r\n    更为: 'gèng wéi',\r\n    积累: 'jī lěi',\r\n    地处: 'dì chǔ',\r\n    县长: 'xiàn zhǎng',\r\n    少女: 'shào nǚ',\r\n    路上: 'lù shang',\r\n    只怕: 'zhǐ pà',\r\n    能量: 'néng liàng',\r\n    储量: 'chǔ liàng',\r\n    供应: 'gōng yìng',\r\n    挑战: 'tiǎo zhàn',\r\n    西藏: 'xī zàng',\r\n    记得: 'jì de',\r\n    总量: 'zǒng liàng',\r\n    当真: 'dàng zhēn',\r\n    将士: 'jiàng shì',\r\n    差别: 'chā bié',\r\n    较为: 'jiào wéi',\r\n    长老: 'zhǎng lǎo',\r\n    大夫: 'dài fu',\r\n    差异: 'chā yì',\r\n    懂得: 'dǒng de',\r\n    尽量: 'jǐn liàng',\r\n    模样: 'mú yàng',\r\n    的确: 'dí què',\r\n    为首: 'wéi shǒu',\r\n    便宜: 'pián yi',\r\n    更名: 'gēng míng',\r\n    石头: 'shí tou',\r\n    州长: 'zhōu zhǎng',\r\n    为止: 'wéi zhǐ',\r\n    漂亮: 'piào liang',\r\n    炮弹: 'pào dàn',\r\n    藏族: 'zàng zú',\r\n    角色: 'jué sè',\r\n    当作: 'dàng zuò',\r\n    尽快: 'jǐn kuài',\r\n    人为: 'rén wéi',\r\n    重复: 'chóng fù',\r\n    胡同: 'hú tòng',\r\n    差距: 'chā jù',\r\n    弟兄: 'dì xiong',\r\n    大将: 'dà jiàng',\r\n    睡觉: 'shuì jiào',\r\n    一觉: 'yí jiào',\r\n    团长: 'tuán zhǎng',\r\n    队长: 'duì zhǎng',\r\n    区长: 'qū zhǎng',\r\n    难得: 'nán dé',\r\n    丫头: 'yā tou',\r\n    会长: 'huì zhǎng',\r\n    弟弟: 'dì di',\r\n    王爷: 'wáng ye',\r\n    重量: 'zhòng liàng',\r\n    誉为: 'yù wéi',\r\n    家伙: 'jiā huo',\r\n    华山: 'huà shān',\r\n    椅子: 'yǐ zi',\r\n    流量: 'liú liàng',\r\n    长大: 'zhǎng dà',\r\n    勉强: 'miǎn qiǎng',\r\n    会计: 'kuài jì',\r\n    过分: 'guò fèn',\r\n    济南: 'jǐ nán',\r\n    调动: 'diào dòng',\r\n    燕京: 'yān jīng',\r\n    少将: 'shào jiàng',\r\n    中毒: 'zhòng dú',\r\n    晓得: 'xiǎo de',\r\n    变更: 'biàn gēng',\r\n    打更: 'dǎ gēng',\r\n    认得: 'rèn de',\r\n    苹果: 'píng guǒ',\r\n    念头: 'niàn tou',\r\n    挣扎: 'zhēng zhá',\r\n    三藏: 'sān zàng',\r\n    剥削: 'bō xuē',\r\n    丞相: 'chéng xiàng',\r\n    少量: 'shǎo liàng',\r\n    寻思: 'xún si',\r\n    夺得: 'duó dé',\r\n    干线: 'gàn xiàn',\r\n    呼吁: 'hū yù',\r\n    处罚: 'chǔ fá',\r\n    长官: 'zhǎng guān',\r\n    柏林: 'bó lín',\r\n    亲戚: 'qīn qi',\r\n    身分: 'shēn fèn',\r\n    胳膊: 'gē bo',\r\n    着手: 'zhuó shǒu',\r\n    炸弹: 'zhà dàn',\r\n    咳嗽: 'ké sou',\r\n    叶子: 'yè zi',\r\n    外长: 'wài zhǎng',\r\n    供给: 'gōng jǐ',\r\n    师长: 'shī zhǎng',\r\n    变量: 'biàn liàng',\r\n    应有: 'yīng yǒu',\r\n    下载: 'xià zài',\r\n    乐器: 'yuè qì',\r\n    间接: 'jiàn jiē',\r\n    底下: 'dǐ xià',\r\n    打扮: 'dǎ bàn',\r\n    子弹: 'zǐ dàn',\r\n    弹药: 'dàn yào',\r\n    热量: 'rè liàng',\r\n    削弱: 'xuē ruò',\r\n    骨干: 'gǔ gàn',\r\n    容量: 'róng liàng',\r\n    模糊: 'mó hu',\r\n    转动: 'zhuàn dòng',\r\n    称呼: 'chēng hu',\r\n    科长: 'kē zhǎng',\r\n    处置: 'chǔ zhì',\r\n    着重: 'zhuó zhòng',\r\n    着急: 'zháo jí',\r\n    强迫: 'qiǎng pò',\r\n    庭长: 'tíng zhǎng',\r\n    首相: 'shǒu xiàng',\r\n    喇嘛: 'lǎ ma',\r\n    镇长: 'zhèn zhǎng',\r\n    只管: 'zhǐ guǎn',\r\n    重重: 'chóng chóng',\r\n    免得: 'miǎn de',\r\n    着实: 'zhuó shí',\r\n    度假: 'dù jià',\r\n    真相: 'zhēn xiàng',\r\n    相貌: 'xiàng mào',\r\n    处分: 'chǔ fèn',\r\n    委屈: 'wěi qu',\r\n    为期: 'wéi qī',\r\n    伯伯: 'bó bo',\r\n    伯子: 'bǎi zi',\r\n    圈子: 'quān zi',\r\n    见识: 'jiàn shi',\r\n    笼罩: 'lǒng zhào',\r\n    与会: 'yù huì',\r\n    都督: 'dū du',\r\n    都市: 'dū shì',\r\n    成都: 'chéng dū',\r\n    首都: 'shǒu dū',\r\n    帝都: 'dì dū',\r\n    王都: 'wáng dū',\r\n    东都: 'dōng dū',\r\n    都护: 'dū hù',\r\n    都城: 'dū chéng',\r\n    建都: 'jiàn dū',\r\n    迁都: 'qiān dū',\r\n    故都: 'gù dū',\r\n    定都: 'dìng dū',\r\n    中都: 'zhōng dū',\r\n    六安: 'lù ān',\r\n    宰相: 'zǎi xiàng',\r\n    较量: 'jiào liàng',\r\n    对称: 'duì chèn',\r\n    总长: 'zǒng zhǎng',\r\n    相公: 'xiàng gong',\r\n    空白: 'kòng bái',\r\n    打量: 'dǎ liang',\r\n    水分: 'shuǐ fèn',\r\n    舌头: 'shé tou',\r\n    没收: 'mò shōu',\r\n    行李: 'xíng li',\r\n    判处: 'pàn chǔ',\r\n    散文: 'sǎn wén',\r\n    处境: 'chǔ jìng',\r\n    孙子: 'sūn zi',\r\n    拳头: 'quán tou',\r\n    打发: 'dǎ fā',\r\n    组长: 'zǔ zhǎng',\r\n    骨头: 'gǔ tou',\r\n    宁可: 'nìng kě',\r\n    更换: 'gēng huàn',\r\n    薄弱: 'bó ruò',\r\n    还原: 'huán yuán',\r\n    重修: 'chóng xiū',\r\n    重来: 'chóng lái',\r\n    只顾: 'zhǐ gù',\r\n    爱好: 'ài hào',\r\n    馒头: 'mán tou',\r\n    军长: 'jūn zhǎng',\r\n    首长: 'shǒu zhǎng',\r\n    厂长: 'chǎng zhǎng',\r\n    司长: 'sī zhǎng',\r\n    长子: 'zhǎng zǐ',\r\n    强劲: 'qiáng jìng',\r\n    恰当: 'qià dàng',\r\n    头儿: 'tóu er',\r\n    站长: 'zhàn zhǎng',\r\n    折腾: 'zhē teng',\r\n    相处: 'xiāng chǔ',\r\n    统率: 'tǒng shuài',\r\n    中将: 'zhōng jiàng',\r\n    命中: 'mìng zhòng',\r\n    名将: 'míng jiàng',\r\n    木头: 'mù tou',\r\n    动弹: 'dòng tan',\r\n    地壳: 'dì qiào',\r\n    干活: 'gàn huó',\r\n    少爷: 'shào ye',\r\n    水量: 'shuǐ liàng',\r\n    补给: 'bǔ jǐ',\r\n    尾巴: 'wěi ba',\r\n    来得: 'lái de',\r\n    好奇: 'hào qí',\r\n    钥匙: 'yào shi',\r\n    当做: 'dàng zuò',\r\n    沉着: 'chén zhuó',\r\n    哑巴: 'yǎ ba',\r\n    车子: 'chē zi',\r\n    上将: 'shàng jiàng',\r\n    恶心: 'ě xīn',\r\n    担子: 'dàn zi',\r\n    应届: 'yīng jiè',\r\n    主角: 'zhǔ jué',\r\n    运转: 'yùn zhuǎn',\r\n    兄长: 'xiōng zhǎng',\r\n    格式: 'gé shì',\r\n    正月: 'zhēng yuè',\r\n    营长: 'yíng zhǎng',\r\n    当成: 'dàng chéng',\r\n    女婿: 'nǚ xu',\r\n    咽喉: 'yān hóu',\r\n    重阳: 'chóng yáng',\r\n    化为: 'huà wéi',\r\n    吐蕃: 'tǔ bō',\r\n    钻进: 'zuān jìn',\r\n    乐队: 'yuè duì',\r\n    亮相: 'liàng xiàng',\r\n    被子: 'bèi zi',\r\n    舍得: 'shě de',\r\n    杉木: 'shā mù',\r\n    击中: 'jī zhòng',\r\n    排长: 'pái zhǎng',\r\n    假期: 'jià qī',\r\n    分量: 'fèn liàng',\r\n    数次: 'shù cì',\r\n    提防: 'dī fáng',\r\n    吆喝: 'yāo he',\r\n    查处: 'chá chǔ',\r\n    量子: 'liàng zǐ',\r\n    里头: 'lǐ tou',\r\n    调研: 'diào yán',\r\n    伺候: 'cì hou',\r\n    重申: 'chóng shēn',\r\n    枕头: 'zhěn tou',\r\n    拚命: 'pīn mìng',\r\n    社长: 'shè zhǎng',\r\n    归还: 'guī huán',\r\n    批量: 'pī liàng',\r\n    畜牧: 'xù mù',\r\n    点着: 'diǎn zháo',\r\n    甚为: 'shèn wéi',\r\n    小将: 'xiǎo jiàng',\r\n    着眼: 'zhuó yǎn',\r\n    处死: 'chǔ sǐ',\r\n    厌恶: 'yàn wù',\r\n    鼓乐: 'gǔ yuè',\r\n    树干: 'shù gàn',\r\n    秘鲁: 'bì lǔ',\r\n    大方: 'dà fāng',\r\n    外头: 'wài tou',\r\n    班长: 'bān zhǎng',\r\n    星宿: 'xīng xiù',\r\n    宁愿: 'nìng yuàn',\r\n    钦差: 'qīn chāi',\r\n    为数: 'wéi shù',\r\n    勾当: 'gòu dàng',\r\n    削减: 'xuē jiǎn',\r\n    间谍: 'jiàn dié',\r\n    埋怨: 'mán yuàn',\r\n    结实: 'jiē shi',\r\n    计量: 'jì liáng',\r\n    淹没: 'yān mò',\r\n    村长: 'cūn zhǎng',\r\n    连长: 'lián zhǎng',\r\n    自给: 'zì jǐ',\r\n    武将: 'wǔ jiàng',\r\n    温差: 'wēn chā',\r\n    直奔: 'zhí bèn',\r\n    供求: 'gōng qiú',\r\n    剂量: 'jì liàng',\r\n    道长: 'dào zhǎng',\r\n    泄露: 'xiè lòu',\r\n    王八: 'wáng ba',\r\n    切割: 'qiē gē',\r\n    间隔: 'jiàn gé',\r\n    一晃: 'yì huǎng',\r\n    长假: 'cháng jià',\r\n    令狐: 'líng hú',\r\n    为害: 'wéi hài',\r\n    句子: 'jù zi',\r\n    偿还: 'cháng huán',\r\n    疙瘩: 'gē da',\r\n    燕山: 'yān shān',\r\n    堵塞: 'dǔ sè',\r\n    夺冠: 'duó guàn',\r\n    扎实: 'zhā shi',\r\n    电荷: 'diàn hè',\r\n    看守: 'kān shǒu',\r\n    复辟: 'fù bì',\r\n    郁闷: 'yù mèn',\r\n    尽早: 'jǐn zǎo',\r\n    切断: 'qiē duàn',\r\n    指头: 'zhǐ tou',\r\n    为生: 'wéi shēng',\r\n    畜生: 'chù sheng',\r\n    切除: 'qiē chú',\r\n    着力: 'zhuó lì',\r\n    着想: 'zhuó xiǎng',\r\n    级差: 'jí chā',\r\n    投奔: 'tóu bèn',\r\n    棍子: 'gùn zi',\r\n    含糊: 'hán hu',\r\n    少妇: 'shào fù',\r\n    兴致: 'xìng zhì',\r\n    纳闷: 'nà mèn',\r\n    干流: 'gàn liú',\r\n    卷起: 'juǎn qǐ',\r\n    扇子: 'shàn zi',\r\n    更改: 'gēng gǎi',\r\n    笼络: 'lǒng luò',\r\n    喇叭: 'lǎ ba',\r\n    载荷: 'zài hè',\r\n    妥当: 'tuǒ dàng',\r\n    为难: 'wéi nán',\r\n    着陆: 'zhuó lù',\r\n    燕子: 'yàn zi',\r\n    干吗: 'gàn má',\r\n    白发: 'bái fà',\r\n    总得: 'zǒng děi',\r\n    夹击: 'jiā jī',\r\n    曝光: 'bào guāng',\r\n    曲调: 'qǔ diào',\r\n    相机: 'xiàng jī',\r\n    叫化: 'jiào huà',\r\n    角逐: 'jué zhú',\r\n    啊哟: 'ā yō',\r\n    载重: 'zài zhòng',\r\n    长辈: 'zhǎng bèi',\r\n    出差: 'chū chāi',\r\n    垛口: 'duǒ kǒu',\r\n    撇开: 'piē kāi',\r\n    厅长: 'tīng zhǎng',\r\n    组分: 'zǔ fèn',\r\n    误差: 'wù chā',\r\n    家当: 'jiā dàng',\r\n    传记: 'zhuàn jì',\r\n    个子: 'gè zi',\r\n    铺设: 'pū shè',\r\n    干事: 'gàn shì',\r\n    杆菌: 'gǎn jūn',\r\n    定量: 'dìng liàng',\r\n    运载: 'yùn zài',\r\n    会儿: 'huì er',\r\n    酋长: 'qiú zhǎng',\r\n    重返: 'chóng fǎn',\r\n    差额: 'chā é',\r\n    露面: 'lòu miàn',\r\n    钻研: 'zuān yán',\r\n    大城: 'dài chéng',\r\n    上当: 'shàng dàng',\r\n    销量: 'xiāo liàng',\r\n    作坊: 'zuō fang',\r\n    照相: 'zhào xiàng',\r\n    哎呀: 'āi yā',\r\n    调集: 'diào jí',\r\n    看中: 'kàn zhòng',\r\n    议长: 'yì zhǎng',\r\n    风筝: 'fēng zheng',\r\n    辟邪: 'bì xié',\r\n    空隙: 'kòng xì',\r\n    更迭: 'gēng dié',\r\n    偏差: 'piān chā',\r\n    声调: 'shēng diào',\r\n    适量: 'shì liàng',\r\n    屯子: 'tún zi',\r\n    无量: 'wú liàng',\r\n    空地: 'kòng dì',\r\n    调度: 'diào dù',\r\n    散射: 'sǎn shè',\r\n    创伤: 'chuāng shāng',\r\n    海参: 'hǎi shēn',\r\n    满载: 'mǎn zài',\r\n    重叠: 'chóng dié',\r\n    落差: 'luò chā',\r\n    单调: 'dān diào',\r\n    老将: 'lǎo jiàng',\r\n    人参: 'rén shēn',\r\n    间断: 'jiàn duàn',\r\n    重现: 'chóng xiàn',\r\n    夹杂: 'jiā zá',\r\n    调用: 'diào yòng',\r\n    萝卜: 'luó bo',\r\n    附着: 'fù zhuó',\r\n    应声: 'yìng shēng',\r\n    主将: 'zhǔ jiàng',\r\n    罪过: 'zuì guo',\r\n    咀嚼: 'jǔ jué',\r\n    为政: 'wéi zhèng',\r\n    过量: 'guò liàng',\r\n    乐曲: 'yuè qǔ',\r\n    负荷: 'fù hè',\r\n    枪弹: 'qiāng dàn',\r\n    悄然: 'qiǎo rán',\r\n    处方: 'chǔ fāng',\r\n    悄声: 'qiǎo shēng',\r\n    曲子: 'qǔ zi',\r\n    情调: 'qíng diào',\r\n    挑衅: 'tiǎo xìn',\r\n    代为: 'dài wéi',\r\n    了结: 'liǎo jié',\r\n    打中: 'dǎ zhòng',\r\n    酒吧: 'jiǔ bā',\r\n    懒得: 'lǎn de',\r\n    增量: 'zēng liàng',\r\n    衣着: 'yī zhuó',\r\n    部将: 'bù jiàng',\r\n    要塞: 'yào sài',\r\n    茶几: 'chá jī',\r\n    杠杆: 'gàng gǎn',\r\n    出没: 'chū mò',\r\n    鲜有: 'xiǎn yǒu',\r\n    间隙: 'jiàn xì',\r\n    重担: 'zhòng dàn',\r\n    重演: 'chóng yǎn',\r\n    重试: 'chóng shì',\r\n    应酬: 'yìng chou',\r\n    只当: 'zhǐ dāng',\r\n    毋宁: 'wú nìng',\r\n    包扎: 'bāo zā',\r\n    前头: 'qián tou',\r\n    卷烟: 'juǎn yān',\r\n    非得: 'fēi děi',\r\n    弹道: 'dàn dào',\r\n    杆子: 'gān zi',\r\n    门将: 'mén jiàng',\r\n    后头: 'hòu tou',\r\n    喝彩: 'hè cǎi',\r\n    暖和: 'nuǎn huo',\r\n    累积: 'lěi jī',\r\n    调遣: 'diào qiǎn',\r\n    倔强: 'jué jiàng',\r\n    宝藏: 'bǎo zàng',\r\n    丧事: 'sāng shì',\r\n    约莫: 'yuē mo',\r\n    纤夫: 'qiàn fū',\r\n    更替: 'gēng tì',\r\n    装载: 'zhuāng zài',\r\n    背包: 'bēi bāo',\r\n    帖子: 'tiě zi',\r\n    松散: 'sōng sǎn',\r\n    呼喝: 'hū hè',\r\n    可恶: 'kě wù',\r\n    自转: 'zì zhuàn',\r\n    供电: 'gōng diàn',\r\n    反省: 'fǎn xǐng',\r\n    坦率: 'tǎn shuài',\r\n    苏打: 'sū dá',\r\n    本分: 'běn fèn',\r\n    落得: 'luò de',\r\n    鄙薄: 'bǐ bó',\r\n    相间: 'xiāng jiàn',\r\n    单薄: 'dān bó',\r\n    混蛋: 'hún dàn',\r\n    贞观: 'zhēn guān',\r\n    附和: 'fù hè',\r\n    能耐: 'néng nài',\r\n    吓唬: 'xià hu',\r\n    未了: 'wèi liǎo',\r\n    引着: 'yǐn zháo',\r\n    抽调: 'chōu diào',\r\n    沙子: 'shā zi',\r\n    席卷: 'xí juǎn',\r\n    标的: 'biāo dì',\r\n    别扭: 'biè niu',\r\n    思量: 'sī liang',\r\n    喝采: 'hè cǎi',\r\n    论语: 'lún yǔ',\r\n    盖子: 'gài zi',\r\n    分外: 'fèn wài',\r\n    弄堂: 'lòng táng',\r\n    乐舞: 'yuè wǔ',\r\n    雨量: 'yǔ liàng',\r\n    毛发: 'máo fà',\r\n    差遣: 'chāi qiǎn',\r\n    背负: 'bēi fù',\r\n    转速: 'zhuàn sù',\r\n    声乐: 'shēng yuè',\r\n    夹攻: 'jiā gōng',\r\n    供水: 'gōng shuǐ',\r\n    主干: 'zhǔ gàn',\r\n    惩处: 'chéng chǔ',\r\n    长相: 'zhǎng xiàng',\r\n    公差: 'gōng chāi',\r\n    榴弹: 'liú dàn',\r\n    省得: 'shěng de',\r\n    条子: 'tiáo zi',\r\n    重围: 'chóng wéi',\r\n    阻塞: 'zǔ sè',\r\n    劲风: 'jìng fēng',\r\n    纠葛: 'jiū gé',\r\n    颠簸: 'diān bǒ',\r\n    点中: 'diǎn zhòng',\r\n    重创: 'zhòng chuāng',\r\n    姥姥: 'lǎo lao',\r\n    迷糊: 'mí hu',\r\n    公家: 'gōng jia',\r\n    几率: 'jī lǜ',\r\n    苦闷: 'kǔ mèn',\r\n    度量: 'dù liàng',\r\n    差错: 'chā cuò',\r\n    暑假: 'shǔ jià',\r\n    参差: 'cēn cī',\r\n    搭载: 'dā zài',\r\n    助长: 'zhù zhǎng',\r\n    相称: 'xiāng chèn',\r\n    红晕: 'hóng yùn',\r\n    舍命: 'shě mìng',\r\n    喜好: 'xǐ hào',\r\n    列传: 'liè zhuàn',\r\n    劲敌: 'jìng dí',\r\n    蛤蟆: 'há ma',\r\n    请假: 'qǐng jià',\r\n    钉子: 'dīng zi',\r\n    沉没: 'chén mò',\r\n    高丽: 'gāo lí',\r\n    休假: 'xiū jià',\r\n    无为: 'wú wéi',\r\n    巴结: 'bā jie',\r\n    了得: 'liǎo dé',\r\n    变相: 'biàn xiàng',\r\n    核弹: 'hé dàn',\r\n    亲家: 'qìng jia',\r\n    承载: 'chéng zài',\r\n    喝问: 'hè wèn',\r\n    还击: 'huán jī',\r\n    交还: 'jiāo huán',\r\n    将令: 'jiàng lìng',\r\n    单于: 'chán yú',\r\n    空缺: 'kòng quē',\r\n    绿林: 'lù lín',\r\n    胆量: 'dǎn liàng',\r\n    执着: 'zhí zhuó',\r\n    低调: 'dī diào',\r\n    闭塞: 'bì sè',\r\n    轻薄: 'qīng bó',\r\n    得当: 'dé dàng',\r\n    占卜: 'zhān bǔ',\r\n    扫帚: 'sào zhou',\r\n    龟兹: 'qiū cí',\r\n    年长: 'nián zhǎng',\r\n    外传: 'wài zhuàn',\r\n    头子: 'tóu zi',\r\n    裁缝: 'cái feng',\r\n    礼乐: 'lǐ yuè',\r\n    血泊: 'xuè pō',\r\n    散乱: 'sǎn luàn',\r\n    动量: 'dòng liàng',\r\n    倒腾: 'dǎo teng',\r\n    取舍: 'qǔ shě',\r\n    咱家: 'zán jiā',\r\n    长发: 'cháng fà',\r\n    爪哇: 'zhǎo wā',\r\n    弹壳: 'dàn ké',\r\n    省悟: 'xǐng wù',\r\n    嚷嚷: 'rāng rang',\r\n    连累: 'lián lèi',\r\n    应得: 'yīng dé',\r\n    族长: 'zú zhǎng',\r\n    柜子: 'guì zi',\r\n    擂鼓: 'léi gǔ',\r\n    眩晕: 'xuàn yùn',\r\n    调配: 'tiáo pèi',\r\n    躯干: 'qū gàn',\r\n    差役: 'chāi yì',\r\n    坎坷: 'kǎn kě',\r\n    少儿: 'shào ér',\r\n    乐团: 'yuè tuán',\r\n    养分: 'yǎng fèn',\r\n    退还: 'tuì huán',\r\n    格调: 'gé diào',\r\n    语调: 'yǔ diào',\r\n    音调: 'yīn diào',\r\n    乐府: 'yuè fǔ',\r\n    古朴: 'gǔ pǔ',\r\n    打点: 'dǎ diǎn',\r\n    差使: 'chāi shǐ',\r\n    匀称: 'yún chèn',\r\n    瘦削: 'shòu xuē',\r\n    膏药: 'gāo yao',\r\n    吞没: 'tūn mò',\r\n    调任: 'diào rèn',\r\n    散居: 'sǎn jū',\r\n    上头: 'shàng tóu',\r\n    风靡: 'fēng mǐ',\r\n    放假: 'fàng jià',\r\n    估量: 'gū liang',\r\n    失当: 'shī dàng',\r\n    中弹: 'zhòng dàn',\r\n    妄为: 'wàng wéi',\r\n    长者: 'zhǎng zhě',\r\n    起哄: 'qǐ hòng',\r\n    末了: 'mò liǎo',\r\n    相声: 'xiàng sheng',\r\n    校正: 'jiào zhèng',\r\n    劝降: 'quàn xiáng',\r\n    矢量: 'shǐ liàng',\r\n    沉闷: 'chén mèn',\r\n    给与: 'jǐ yǔ',\r\n    解法: 'jiě fǎ',\r\n    塞外: 'sài wài',\r\n    将校: 'jiàng xiào',\r\n    嗜好: 'shì hào',\r\n    没落: 'mò luò',\r\n    朴刀: 'pō dāo',\r\n    片子: 'piān zi',\r\n    切削: 'qiē xiāo',\r\n    弹丸: 'dàn wán',\r\n    稀薄: 'xī bó',\r\n    亏得: 'kuī dé',\r\n    间歇: 'jiàn xiē',\r\n    翘首: 'qiáo shǒu',\r\n    色调: 'sè diào',\r\n    处决: 'chǔ jué',\r\n    表率: 'biǎo shuài',\r\n    尺子: 'chǐ zi',\r\n    招降: 'zhāo xiáng',\r\n    称职: 'chèn zhí',\r\n    斗篷: 'dǒu peng',\r\n    铺子: 'pù zi',\r\n    底子: 'dǐ zi',\r\n    负载: 'fù zài',\r\n    干警: 'gàn jǐng',\r\n    倒数: 'dào shǔ',\r\n    将官: 'jiàng guān',\r\n    锄头: 'chú tou',\r\n    归降: 'guī xiáng',\r\n    疟疾: 'nüè ji',\r\n    唠叨: 'láo dao',\r\n    限量: 'xiàn liàng',\r\n    屏息: 'bǐng xī',\r\n    重逢: 'chóng féng',\r\n    器乐: 'qì yuè',\r\n    氢弹: 'qīng dàn',\r\n    脖颈: 'bó gěng',\r\n    妃子: 'fēi zi',\r\n    处事: 'chǔ shì',\r\n    参量: 'cān liàng',\r\n    轻率: 'qīng shuài',\r\n    缥缈: 'piāo miǎo',\r\n    中奖: 'zhòng jiǎng',\r\n    才干: 'cái gàn',\r\n    施舍: 'shī shě',\r\n    卷子: 'juàn zi',\r\n    游说: 'yóu shuì',\r\n    巷子: 'xiàng zi',\r\n    膀胱: 'páng guāng',\r\n    切勿: 'qiè wù',\r\n    看管: 'kān guǎn',\r\n    风头: 'fēng tou',\r\n    精干: 'jīng gàn',\r\n    高差: 'gāo chā',\r\n    恐吓: 'kǒng hè',\r\n    扁担: 'biǎn dàn',\r\n    给养: 'jǐ yǎng',\r\n    格子: 'gé zi',\r\n    供需: 'gōng xū',\r\n    反差: 'fǎn chā',\r\n    飞弹: 'fēi dàn',\r\n    微薄: 'wēi bó',\r\n    发型: 'fà xíng',\r\n    即兴: 'jí xìng',\r\n    攒动: 'cuán dòng',\r\n    间或: 'jiàn huò',\r\n    浅薄: 'qiǎn bó',\r\n    乐章: 'yuè zhāng',\r\n    顺差: 'shùn chā',\r\n    调子: 'diào zi',\r\n    相位: 'xiàng wèi',\r\n    转子: 'zhuàn zǐ',\r\n    劲旅: 'jìng lǚ',\r\n    咔嚓: 'kā chā',\r\n    了事: 'liǎo shì',\r\n    转悠: 'zhuàn you',\r\n    当铺: 'dàng pù',\r\n    爪子: 'zhuǎ zi',\r\n    单子: 'dān zi',\r\n    好战: 'hào zhàn',\r\n    燕麦: 'yàn mài',\r\n    只许: 'zhǐ xǔ',\r\n    干练: 'gàn liàn',\r\n    女将: 'nǚ jiàng',\r\n    酒量: 'jiǔ liàng',\r\n    划船: 'huá chuán',\r\n    伎俩: 'jì liǎng',\r\n    挑拨: 'tiǎo bō',\r\n    少校: 'shào xiào',\r\n    着落: 'zhuó luò',\r\n    憎恶: 'zēng wù',\r\n    刻薄: 'kè bó',\r\n    要挟: 'yāo xié',\r\n    用处: 'yòng chu',\r\n    还手: 'huán shǒu',\r\n    模具: 'mú jù',\r\n    执著: 'zhí zhuó',\r\n    喝令: 'hè lìng',\r\n    保长: 'bǎo zhǎng',\r\n    吸着: 'xī zhe',\r\n    症结: 'zhēng jié',\r\n    公转: 'gōng zhuàn',\r\n    校勘: 'jiào kān',\r\n    重提: 'chóng tí',\r\n    扫兴: 'sǎo xìng',\r\n    铺盖: 'pū gài',\r\n    长史: 'zhǎng shǐ',\r\n    差价: 'chā jià',\r\n    压根: 'yà gēn',\r\n    怔住: 'zhèng zhù',\r\n    应允: 'yīng yǔn',\r\n    切入: 'qiē rù',\r\n    战将: 'zhàn jiàng',\r\n    年少: 'nián shào',\r\n    舍身: 'shě shēn',\r\n    执拗: 'zhí niù',\r\n    处世: 'chǔ shì',\r\n    中风: 'zhòng fēng',\r\n    等量: 'děng liàng',\r\n    放量: 'fàng liàng',\r\n    腔调: 'qiāng diào',\r\n    老少: 'lǎo shào',\r\n    没入: 'mò rù',\r\n    瓜葛: 'guā gé',\r\n    将帅: 'jiàng shuài',\r\n    车载: 'chē zài',\r\n    窝囊: 'wō nang',\r\n    长进: 'zhǎng jìn',\r\n    可汗: 'kè hán',\r\n    并州: 'bīng zhōu',\r\n    供销: 'gōng xiāo',\r\n    切片: 'qiē piàn',\r\n    差事: 'chāi shì',\r\n    知会: 'zhī hui',\r\n    鹰爪: 'yīng zhǎo',\r\n    处女: 'chǔ nǚ',\r\n    切磋: 'qiē cuō',\r\n    日头: 'rì tou',\r\n    押解: 'yā jiè',\r\n    滋长: 'zī zhǎng',\r\n    道观: 'dào guàn',\r\n    脚色: 'jué sè',\r\n    当量: 'dāng liàng',\r\n    婆家: 'pó jia',\r\n    缘分: 'yuán fèn',\r\n    空闲: 'kòng xián',\r\n    好色: 'hào sè',\r\n    怒喝: 'nù hè',\r\n    笼统: 'lǒng tǒng',\r\n    边塞: 'biān sài',\r\n    何曾: 'hé céng',\r\n    重合: 'chóng hé',\r\n    零散: 'líng sǎn',\r\n    轰隆: 'hōng lōng',\r\n    化子: 'huà zi',\r\n    内蒙: 'nèi měng',\r\n    数落: 'shǔ luò',\r\n    逆差: 'nì chā',\r\n    牟利: 'móu lì',\r\n    栅栏: 'zhà lan',\r\n    中标: 'zhòng biāo',\r\n    调档: 'diào dàng',\r\n    佝偻: 'gōu lóu',\r\n    场子: 'chǎng zi',\r\n    甲壳: 'jiǎ qiào',\r\n    重温: 'chóng wēn',\r\n    炮制: 'páo zhì',\r\n    返还: 'fǎn huán',\r\n    自传: 'zì zhuàn',\r\n    高调: 'gāo diào',\r\n    殷红: 'yān hóng',\r\n    固着: 'gù zhuó',\r\n    强求: 'qiǎng qiú',\r\n    本相: 'běn xiàng',\r\n    骄横: 'jiāo hèng',\r\n    草率: 'cǎo shuài',\r\n    气闷: 'qì mèn',\r\n    着色: 'zhuó sè',\r\n    宁肯: 'nìng kěn',\r\n    兴头: 'xìng tou',\r\n    拘泥: 'jū nì',\r\n    夹角: 'jiā jiǎo',\r\n    发髻: 'fà jì',\r\n    猛将: 'měng jiàng',\r\n    约摸: 'yuē mo',\r\n    拖累: 'tuō lěi',\r\n    呢绒: 'ní róng',\r\n    钻探: 'zuān tàn',\r\n    夹层: 'jiā céng',\r\n    落魄: 'luò pò',\r\n    巷道: 'hàng dào',\r\n    运量: 'yùn liàng',\r\n    解闷: 'jiě mèn',\r\n    空儿: 'kòng er',\r\n    估摸: 'gū mo',\r\n    好客: 'hào kè',\r\n    钻孔: 'zuān kǒng',\r\n    糊弄: 'hù nòng',\r\n    荥阳: 'xíng yáng',\r\n    烦闷: 'fán mèn',\r\n    仓卒: 'cāng cù',\r\n    分叉: 'fēn chà',\r\n    厂子: 'chǎng zi',\r\n    小调: 'xiǎo diào',\r\n    少阳: 'shào yáng',\r\n    受降: 'shòu xiáng',\r\n    染坊: 'rǎn fáng',\r\n    胳臂: 'gē bei',\r\n    将门: 'jiàng mén',\r\n    模板: 'mú bǎn',\r\n    配给: 'pèi jǐ',\r\n    为伍: 'wéi wǔ',\r\n    跟头: 'gēn tou',\r\n    划算: 'huá suàn',\r\n    累赘: 'léi zhui',\r\n    哄笑: 'hōng xiào',\r\n    晕眩: 'yūn xuàn',\r\n    干掉: 'gàn diào',\r\n    缝制: 'féng zhì',\r\n    难处: 'nán chù',\r\n    着意: 'zhuó yì',\r\n    蛮横: 'mán hèng',\r\n    奇数: 'jī shù',\r\n    短发: 'duǎn fà',\r\n    生还: 'shēng huán',\r\n    还清: 'huán qīng',\r\n    看护: 'kān hù',\r\n    直率: 'zhí shuài',\r\n    奏乐: 'zòu yuè',\r\n    载客: 'zài kè',\r\n    专横: 'zhuān hèng',\r\n    湮没: 'yān mò',\r\n    空格: 'kòng gé',\r\n    铺垫: 'pū diàn',\r\n    良将: 'liáng jiàng',\r\n    哗啦: 'huā lā',\r\n    散漫: 'sǎn màn',\r\n    脱发: 'tuō fà',\r\n    送还: 'sòng huán',\r\n    埋没: 'mái mò',\r\n    累及: 'lěi jí',\r\n    薄雾: 'bó wù',\r\n    调离: 'diào lí',\r\n    舌苔: 'shé tāi',\r\n    机长: 'jī zhǎng',\r\n    栓塞: 'shuān sè',\r\n    配角: 'pèi jué',\r\n    切口: 'qiē kǒu',\r\n    创口: 'chuāng kǒu',\r\n    哈欠: 'hā qian',\r\n    实弹: 'shí dàn',\r\n    铺平: 'pū píng',\r\n    哈达: 'hǎ dá',\r\n    懒散: 'lǎn sǎn',\r\n    实干: 'shí gàn',\r\n    填空: 'tián kòng',\r\n    刁钻: 'diāo zuān',\r\n    乐师: 'yuè shī',\r\n    量变: 'liàng biàn',\r\n    诱降: 'yòu xiáng',\r\n    搪塞: 'táng sè',\r\n    征调: 'zhēng diào',\r\n    夹道: 'jiā dào',\r\n    干咳: 'gān ké',\r\n    止咳: 'zhǐ ké',\r\n    乐工: 'yuè gōng',\r\n    划过: 'huá guò',\r\n    着火: 'zháo huǒ',\r\n    更正: 'gēng zhèng',\r\n    给付: 'jǐ fù',\r\n    空子: 'kòng zi',\r\n    哪吒: 'né zhā',\r\n    正着: 'zhèng zháo',\r\n    刷子: 'shuā zi',\r\n    丧葬: 'sāng zàng',\r\n    夹带: 'jiā dài',\r\n    安分: 'ān fèn',\r\n    中意: 'zhòng yì',\r\n    长孙: 'zhǎng sūn',\r\n    校订: 'jiào dìng',\r\n    卷曲: 'juǎn qū',\r\n    载运: 'zài yùn',\r\n    投弹: 'tóu dàn',\r\n    柞蚕: 'zuò cán',\r\n    份量: 'fèn liàng',\r\n    调换: 'diào huàn',\r\n    了然: 'liǎo rán',\r\n    咧嘴: 'liě zuǐ',\r\n    典当: 'diǎn dàng',\r\n    寒假: 'hán jià',\r\n    长兄: 'zhǎng xiōng',\r\n    给水: 'jǐ shuǐ',\r\n    须发: 'xū fà',\r\n    枝干: 'zhī gàn',\r\n    属相: 'shǔ xiàng',\r\n    哄抢: 'hōng qiǎng',\r\n    刻划: 'kè huà',\r\n    塞子: 'sāi zi',\r\n    单干: 'dān gàn',\r\n    还乡: 'huán xiāng',\r\n    兆头: 'zhào tou',\r\n    寺观: 'sì guàn',\r\n    督率: 'dū shuài',\r\n    啊哈: 'ā ha',\r\n    割舍: 'gē shě',\r\n    抹布: 'mā bù',\r\n    好恶: 'hào wù',\r\n    下处: 'xià chǔ',\r\n    消长: 'xiāo zhǎng',\r\n    离间: 'lí jiàn',\r\n    准头: 'zhǔn tou',\r\n    校对: 'jiào duì',\r\n    什物: 'shí wù',\r\n    番禺: 'pān yú',\r\n    佛爷: 'fó ye',\r\n    吗啡: 'mǎ fēi',\r\n    盐分: 'yán fèn',\r\n    虎将: 'hǔ jiàng',\r\n    薄荷: 'bò he',\r\n    独处: 'dú chǔ',\r\n    空位: 'kòng wèi',\r\n    铺路: 'pū lù',\r\n    乌拉: 'wū lā',\r\n    调回: 'diào huí',\r\n    来头: 'lái tou',\r\n    闲散: 'xián sǎn',\r\n    胶卷: 'jiāo juǎn',\r\n    冒失: 'mào shi',\r\n    干劲: 'gàn jìn',\r\n    弦乐: 'xián yuè',\r\n    相国: 'xiàng guó',\r\n    丹参: 'dān shēn',\r\n    助兴: 'zhù xìng',\r\n    铺开: 'pū kāi',\r\n    次长: 'cì zhǎng',\r\n    发卡: 'fà qiǎ',\r\n    拮据: 'jié jū',\r\n    刹车: 'shā chē',\r\n    生发: 'shēng fà',\r\n    重播: 'chóng bō',\r\n    缝合: 'féng hé',\r\n    音量: 'yīn liàng',\r\n    少尉: 'shào wèi',\r\n    冲压: 'chòng yā',\r\n    苍劲: 'cāng jìng',\r\n    厚薄: 'hòu báo',\r\n    威吓: 'wēi hè',\r\n    外相: 'wài xiàng',\r\n    呼号: 'hū háo',\r\n    着迷: 'zháo mí',\r\n    挑担: 'tiāo dàn',\r\n    纹路: 'wén lù',\r\n    还俗: 'huán sú',\r\n    强横: 'qiáng hèng',\r\n    着数: 'zhāo shù',\r\n    降顺: 'xiáng shùn',\r\n    挑明: 'tiǎo míng',\r\n    眯缝: 'mī feng',\r\n    分内: 'fèn nèi',\r\n    更衣: 'gēng yī',\r\n    软和: 'ruǎn huo',\r\n    尽兴: 'jìn xìng',\r\n    号子: 'hào zi',\r\n    爪牙: 'zhǎo yá',\r\n    败将: 'bài jiàng',\r\n    猜中: 'cāi zhòng',\r\n    结扎: 'jié zā',\r\n    没空: 'méi kòng',\r\n    夹缝: 'jiā fèng',\r\n    拾掇: 'shí duo',\r\n    掺和: 'chān huo',\r\n    簸箕: 'bò ji',\r\n    电量: 'diàn liàng',\r\n    荷载: 'hè zǎi',\r\n    调式: 'diào shì',\r\n    处身: 'chǔ shēn',\r\n    打手: 'dǎ shǒu',\r\n    弹弓: 'dàn gōng',\r\n    横蛮: 'hèng mán',\r\n    能干: 'néng gàn',\r\n    校点: 'jiào diǎn',\r\n    加载: 'jiā zài',\r\n    干校: 'gàn xiào',\r\n    哄传: 'hōng chuán',\r\n    校注: 'jiào zhù',\r\n    淤塞: 'yū sè',\r\n    马扎: 'mǎ zhá',\r\n    月氏: 'yuè zhī',\r\n    高干: 'gāo gàn',\r\n    经传: 'jīng zhuàn',\r\n    曾孙: 'zēng sūn',\r\n    好斗: 'hào dòu',\r\n    关卡: 'guān qiǎ',\r\n    逃奔: 'táo bèn',\r\n    磨蹭: 'mó ceng',\r\n    牟取: 'móu qǔ',\r\n    颤栗: 'zhàn lì',\r\n    蚂蚱: 'mà zha',\r\n    撮合: 'cuō he',\r\n    趔趄: 'liè qie',\r\n    摔打: 'shuāi dǎ',\r\n    台子: 'tái zi',\r\n    分得: 'fēn de',\r\n    粘着: 'nián zhuó',\r\n    采邑: 'cài yì',\r\n    散装: 'sǎn zhuāng',\r\n    婀娜: 'ē nuó',\r\n    兴味: 'xìng wèi',\r\n    行头: 'xíng tou',\r\n    气量: 'qì liàng',\r\n    调运: 'diào yùn',\r\n    处治: 'chǔ zhì',\r\n    乐音: 'yuè yīn',\r\n    充塞: 'chōng sè',\r\n    恫吓: 'dòng hè',\r\n    论调: 'lùn diào',\r\n    相中: 'xiāng zhòng',\r\n    民乐: 'mín yuè',\r\n    炮仗: 'pào zhang',\r\n    丧服: 'sāng fú',\r\n    骁将: 'xiāo jiàng',\r\n    量刑: 'liàng xíng',\r\n    缝补: 'féng bǔ',\r\n    财会: 'cái kuài',\r\n    大干: 'dà gàn',\r\n    历数: 'lì shǔ',\r\n    校场: 'jiào chǎng',\r\n    塞北: 'sài běi',\r\n    识相: 'shí xiàng',\r\n    辱没: 'rǔ mò',\r\n    鲜亮: 'xiān liàng',\r\n    语塞: 'yǔ sè',\r\n    露脸: 'lòu liǎn',\r\n    凉快: 'liáng kuai',\r\n    腰杆: 'yāo gǎn',\r\n    溜达: 'liū da',\r\n    嘎嘎: 'gā gā',\r\n    公干: 'gōng gàn',\r\n    桔梗: 'jié gěng',\r\n    挑逗: 'tiǎo dòu',\r\n    看门: 'kān mén',\r\n    乐歌: 'yuè gē',\r\n    拓片: 'tà piàn',\r\n    挑动: 'tiǎo dòng',\r\n    准将: 'zhǔn jiàng',\r\n    遒劲: 'qiú jìng',\r\n    磨坊: 'mò fáng',\r\n    逶迤: 'wēi yí',\r\n    搅和: 'jiǎo huo',\r\n    摩挲: 'mó suō',\r\n    作弄: 'zuò nòng',\r\n    苗头: 'miáo tou',\r\n    打颤: 'dǎ zhàn',\r\n    大藏: 'dà zàng',\r\n    畜牲: 'chù shēng',\r\n    勾搭: 'gōu da',\r\n    树荫: 'shù yīn',\r\n    树杈: 'shù chà',\r\n    铁杆: 'tiě gǎn',\r\n    将相: 'jiàng xiàng',\r\n    份子: 'fèn zi',\r\n    视差: 'shì chā',\r\n    绿荫: 'lǜ yīn',\r\n    枪杆: 'qiāng gǎn',\r\n    缝纫: 'féng rèn',\r\n    愁闷: 'chóu mèn',\r\n    点将: 'diǎn jiàng',\r\n    华佗: 'huà tuó',\r\n    劲射: 'jìng shè',\r\n    箱笼: 'xiāng lǒng',\r\n    终了: 'zhōng liǎo',\r\n    鬓发: 'bìn fà',\r\n    结巴: 'jiē ba',\r\n    苦干: 'kǔ gàn',\r\n    看家: 'kān jiā',\r\n    正旦: 'zhēng dàn',\r\n    中肯: 'zhòng kěn',\r\n    厦门: 'xià mén',\r\n    东莞: 'dōng guǎn',\r\n    食量: 'shí liàng',\r\n    宫调: 'gōng diào',\r\n    间作: 'jiàn zuò',\r\n    弹片: 'dàn piàn',\r\n    差池: 'chā chí',\r\n    漂白: 'piǎo bái',\r\n    杠子: 'gàng zi',\r\n    调处: 'tiáo chǔ',\r\n    好动: 'hào dòng',\r\n    转炉: 'zhuàn lú',\r\n    屏气: 'bǐng qì',\r\n    夹板: 'jiā bǎn',\r\n    哀乐: 'āi yuè',\r\n    干道: 'gàn dào',\r\n    苦处: 'kǔ chù',\r\n    劈柴: 'pǐ chái',\r\n    长势: 'zhǎng shì',\r\n    天华: 'tiān huá',\r\n    共处: 'gòng chǔ',\r\n    校验: 'jiào yàn',\r\n    出塞: 'chū sài',\r\n    磨盘: 'mò pán',\r\n    萎靡: 'wěi mǐ',\r\n    奔丧: 'bēn sāng',\r\n    唱和: 'chàng hè',\r\n    大调: 'dà diào',\r\n    非分: 'fēi fèn',\r\n    钻营: 'zuān yíng',\r\n    夹子: 'jiā zi',\r\n    超载: 'chāo zài',\r\n    更始: 'gēng shǐ',\r\n    铃铛: 'líng dang',\r\n    披散: 'pī sàn',\r\n    发还: 'fā huán',\r\n    转轮: 'zhuàn lún',\r\n    横财: 'hèng cái',\r\n    泡桐: 'pāo tóng',\r\n    抛撒: 'pāo sǎ',\r\n    天呀: 'tiān yā',\r\n    糊糊: 'hū hu',\r\n    躯壳: 'qū qiào',\r\n    通量: 'tōng liàng',\r\n    奉还: 'fèng huán',\r\n    午觉: 'wǔ jiào',\r\n    闷棍: 'mèn gùn',\r\n    浪头: 'làng tou',\r\n    砚台: 'yàn tái',\r\n    油坊: 'yóu fáng',\r\n    学长: 'xué zhǎng',\r\n    过载: 'guò zài',\r\n    笔调: 'bǐ diào',\r\n    衣被: 'yī bèi',\r\n    畜产: 'xù chǎn',\r\n    调阅: 'diào yuè',\r\n    蛮干: 'mán gàn',\r\n    曾祖: 'zēng zǔ',\r\n    提干: 'tí gàn',\r\n    变调: 'biàn diào',\r\n    覆没: 'fù mò',\r\n    模子: 'mú zi',\r\n    乐律: 'yuè lǜ',\r\n    称心: 'chèn xīn',\r\n    木杆: 'mù gān',\r\n    重印: 'chóng yìn',\r\n    自省: 'zì xǐng',\r\n    提调: 'tí diào',\r\n    看相: 'kàn xiàng',\r\n    芋头: 'yù tou',\r\n    下切: 'xià qiē',\r\n    塞上: 'sài shàng',\r\n    铺张: 'pū zhāng',\r\n    藤蔓: 'téng wàn',\r\n    薄幸: 'bó xìng',\r\n    解数: 'xiè shù',\r\n    褪去: 'tuì qù',\r\n    霰弹: 'xiàn dàn',\r\n    柚木: 'yóu mù',\r\n    痕量: 'hén liàng',\r\n    雅乐: 'yǎ yuè',\r\n    号哭: 'háo kū',\r\n    诈降: 'zhà xiáng',\r\n    猪圈: 'zhū juàn',\r\n    咋舌: 'zé shé',\r\n    铣床: 'xǐ chuáng',\r\n    防弹: 'fáng dàn',\r\n    健将: 'jiàn jiàng',\r\n    丽水: 'lí shuǐ',\r\n    削发: 'xuē fà',\r\n    空当: 'kòng dāng',\r\n    多相: 'duō xiàng',\r\n    鲜见: 'xiǎn jiàn',\r\n    划桨: 'huá jiǎng',\r\n    载波: 'zài bō',\r\n    跳蚤: 'tiào zao',\r\n    俏皮: 'qiào pí',\r\n    吧嗒: 'bā dā',\r\n    结发: 'jié fà',\r\n    了断: 'liǎo duàn',\r\n    同调: 'tóng diào',\r\n    石磨: 'shí mò',\r\n    时差: 'shí chā',\r\n    鼻塞: 'bí sè',\r\n    挑子: 'tiāo zi',\r\n    推磨: 'tuī mò',\r\n    武侯: 'wǔ hóu',\r\n    抹煞: 'mǒ shā',\r\n    调转: 'diào zhuǎn',\r\n    籍没: 'jí mò',\r\n    还债: 'huán zhài',\r\n    调演: 'diào yǎn',\r\n    分划: 'fēn huá',\r\n    奇偶: 'jī ǒu',\r\n    断喝: 'duàn hè',\r\n    闷雷: 'mèn léi',\r\n    狼藉: 'láng jí',\r\n    饭量: 'fàn liàng',\r\n    还礼: 'huán lǐ',\r\n    转调: 'zhuǎn diào',\r\n    星相: 'xīng xiàng',\r\n    手相: 'shǒu xiàng',\r\n    配乐: 'pèi yuè',\r\n    盖头: 'gài tou',\r\n    连杆: 'lián gǎn',\r\n    簿记: 'bù jì',\r\n    刀把: 'dāo bà',\r\n    量词: 'liàng cí',\r\n    名角: 'míng jué',\r\n    步调: 'bù diào',\r\n    校本: 'jiào běn',\r\n    账簿: 'zhàng bù',\r\n    隽永: 'juàn yǒng',\r\n    稍为: 'shāo wéi',\r\n    易传: 'yì zhuàn',\r\n    乐谱: 'yuè pǔ',\r\n    牵累: 'qiān lěi',\r\n    答理: 'dā li',\r\n    喝斥: 'hè chì',\r\n    吟哦: 'yín é',\r\n    干渠: 'gàn qú',\r\n    海量: 'hǎi liàng',\r\n    精当: 'jīng dàng',\r\n    着床: 'zhuó chuáng',\r\n    月相: 'yuè xiàng',\r\n    庶几: 'shù jī',\r\n    宫观: 'gōng guàn',\r\n    论处: 'lùn chǔ',\r\n    征辟: 'zhēng bì',\r\n    厚朴: 'hòu pò',\r\n    介壳: 'jiè qiào',\r\n    吭哧: 'kēng chī',\r\n    咯血: 'kǎ xiě',\r\n    铺陈: 'pū chén',\r\n    重生: 'chóng shēng',\r\n    乐理: 'yuè lǐ',\r\n    哀号: 'āi háo',\r\n    藏历: 'zàng lì',\r\n    刚劲: 'gāng jìng',\r\n    削平: 'xuē píng',\r\n    浓荫: 'nóng yīn',\r\n    城垛: 'chéng duǒ',\r\n    当差: 'dāng chāi',\r\n    正传: 'zhèng zhuàn',\r\n    并处: 'bìng chǔ',\r\n    创面: 'chuāng miàn',\r\n    旦角: 'dàn jué',\r\n    薄礼: 'bó lǐ',\r\n    晃荡: 'huàng dang',\r\n    臊子: 'sào zi',\r\n    家什: 'jiā shí',\r\n    闷头: 'mēn tóu',\r\n    美发: 'měi fà',\r\n    度数: 'dù shu',\r\n    着凉: 'zháo liáng',\r\n    闯将: 'chuǎng jiàng',\r\n    几案: 'jī àn',\r\n    姘头: 'pīn tou',\r\n    差数: 'chā shù',\r\n    散碎: 'sǎn suì',\r\n    壅塞: 'yōng sè',\r\n    寒颤: 'hán zhàn',\r\n    牵强: 'qiān qiǎng',\r\n    无间: 'wú jiàn',\r\n    轮转: 'lún zhuàn',\r\n    号叫: 'háo jiào',\r\n    铺排: 'pū pái',\r\n    降伏: 'xiáng fú',\r\n    轧钢: 'zhá gāng',\r\n    东阿: 'dōng ē',\r\n    病假: 'bìng jià',\r\n    累加: 'lěi jiā',\r\n    梗塞: 'gěng sè',\r\n    弹夹: 'dàn jiā',\r\n    钻心: 'zuān xīn',\r\n    晃眼: 'huǎng yǎn',\r\n    魔爪: 'mó zhǎo',\r\n    标量: 'biāo liàng',\r\n    憋闷: 'biē mèn',\r\n    猜度: 'cāi duó',\r\n    处士: 'chǔ shì',\r\n    官差: 'guān chāi',\r\n    讨还: 'tǎo huán',\r\n    长门: 'cháng mén',\r\n    馏分: 'liú fēn',\r\n    里弄: 'lǐ lòng',\r\n    色相: 'sè xiàng',\r\n    雅兴: 'yǎ xìng',\r\n    角力: 'jué lì',\r\n    弹坑: 'dàn kēng',\r\n    枝杈: 'zhī chà',\r\n    夹具: 'jiā jù',\r\n    处刑: 'chǔ xíng',\r\n    悍将: 'hàn jiàng',\r\n    好学: 'hào xué',\r\n    好好: 'hǎo hǎo',\r\n    银发: 'yín fà',\r\n    扫把: 'sào bǎ',\r\n    法相: 'fǎ xiàng',\r\n    贵干: 'guì gàn',\r\n    供气: 'gōng qì',\r\n    空余: 'kòng yú',\r\n    捆扎: 'kǔn zā',\r\n    瘠薄: 'jí bó',\r\n    浆糊: 'jiàng hu',\r\n    嘎吱: 'gā zhī',\r\n    调令: 'diào lìng',\r\n    法帖: 'fǎ tiè',\r\n    淋病: 'lìn bìng',\r\n    调派: 'diào pài',\r\n    转盘: 'zhuàn pán',\r\n    供稿: 'gōng gǎo',\r\n    差官: 'chāi guān',\r\n    忧闷: 'yōu mèn',\r\n    教长: 'jiào zhǎng',\r\n    重唱: 'chóng chàng',\r\n    酒兴: 'jiǔ xìng',\r\n    乐坛: 'yuè tán',\r\n    花呢: 'huā ní',\r\n    叱喝: 'chì hè',\r\n    膀臂: 'bǎng bì',\r\n    得空: 'dé kòng',\r\n    转圈: 'zhuàn quān',\r\n    横暴: 'hèng bào',\r\n    哄抬: 'hōng tái',\r\n    引吭: 'yǐn háng',\r\n    载货: 'zài huò',\r\n    中计: 'zhòng jì',\r\n    官长: 'guān zhǎng',\r\n    相面: 'xiàng miàn',\r\n    看头: 'kàn tou',\r\n    盼头: 'pàn tou',\r\n    意兴: 'yì xìng',\r\n    军乐: 'jūn yuè',\r\n    累次: 'lěi cì',\r\n    骨嘟: 'gǔ dū',\r\n    燕赵: 'yān zhào',\r\n    报丧: 'bào sāng',\r\n    弥撒: 'mí sa',\r\n    挨斗: 'ái dòu',\r\n    扁舟: 'piān zhōu',\r\n    丑角: 'chǒu jué',\r\n    吊丧: 'diào sāng',\r\n    强将: 'qiáng jiàng',\r\n    重奏: 'chóng zòu',\r\n    发辫: 'fà biàn',\r\n    着魔: 'zháo mó',\r\n    着法: 'zhāo fǎ',\r\n    盛放: 'shèng fàng',\r\n    填塞: 'tián sè',\r\n    凶横: 'xiōng hèng',\r\n    稽首: 'qǐ shǒu',\r\n    碑帖: 'bēi tiè',\r\n    冲量: 'chōng liàng',\r\n    发菜: 'fà cài',\r\n    假发: 'jiǎ fà',\r\n    翻卷: 'fān juǎn',\r\n    小量: 'xiǎo liàng',\r\n    胶着: 'jiāo zhuó',\r\n    里子: 'lǐ zi',\r\n    调调: 'diào diao',\r\n    散兵: 'sǎn bīng',\r\n    高挑: 'gāo tiǎo',\r\n    播撒: 'bō sǎ',\r\n    夹心: 'jiā xīn',\r\n    扇动: 'shān dòng',\r\n    叨扰: 'tāo rǎo',\r\n    霓裳: 'ní cháng',\r\n    捻子: 'niǎn zi',\r\n    弥缝: 'mí féng',\r\n    撒布: 'sǎ bù',\r\n    场院: 'cháng yuàn',\r\n    省亲: 'xǐng qīn',\r\n    提拉: 'tí lā',\r\n    惯量: 'guàn liàng',\r\n    强逼: 'qiáng bī',\r\n    强征: 'qiáng zhēng',\r\n    晕车: 'yùn chē',\r\n    数道: 'shù dào',\r\n    带累: 'dài lèi',\r\n    拓本: 'tà běn',\r\n    嫌恶: 'xián wù',\r\n    宿将: 'sù jiàng',\r\n    龟裂: 'jūn liè',\r\n    缠夹: 'chán jiā',\r\n    发式: 'fà shì',\r\n    隔扇: 'gé shàn',\r\n    天分: 'tiān fèn',\r\n    癖好: 'pǐ hào',\r\n    四通: 'sì tōng',\r\n    白术: 'bái zhú',\r\n    划伤: 'huá shāng',\r\n    角斗: 'jué dòu',\r\n    听差: 'tīng chāi',\r\n    岁差: 'suì chā',\r\n    丧礼: 'sāng lǐ',\r\n    脉脉: 'mò mò',\r\n    削瘦: 'xuē shòu',\r\n    撒播: 'sǎ bō',\r\n    莎草: 'suō cǎo',\r\n    犍为: 'qián wéi',\r\n    调头: 'diào tóu',\r\n    龙卷: 'lóng juǎn',\r\n    外调: 'wài diào',\r\n    字帖: 'zì tiè',\r\n    卷发: 'juǎn fà',\r\n    揣度: 'chuǎi duó',\r\n    洋相: 'yáng xiàng',\r\n    散光: 'sǎn guāng',\r\n    骨碌: 'gū lu',\r\n    薄命: 'bó mìng',\r\n    笼头: 'lóng tóu',\r\n    咽炎: 'yān yán',\r\n    碌碡: 'liù zhou',\r\n    片儿: 'piàn er',\r\n    纤手: 'qiàn shǒu',\r\n    散体: 'sǎn tǐ',\r\n    内省: 'nèi xǐng',\r\n    强留: 'qiáng liú',\r\n    解送: 'jiè sòng',\r\n    反间: 'fǎn jiàn',\r\n    少壮: 'shào zhuàng',\r\n    留空: 'liú kōng',\r\n    告假: 'gào jià',\r\n    咳血: 'ké xuè',\r\n    薄暮: 'bó mù',\r\n    铺轨: 'pū guǐ',\r\n    磨削: 'mó xuē',\r\n    治丧: 'zhì sāng',\r\n    叉子: 'chā zi',\r\n    哄动: 'hōng dòng',\r\n    蛾子: 'é zi',\r\n    出落: 'chū luò',\r\n    股长: 'gǔ zhǎng',\r\n    贵处: 'guì chù',\r\n    还魂: 'huán hún',\r\n    例假: 'lì jià',\r\n    刹住: 'shā zhù',\r\n    身量: 'shēn liàng',\r\n    同好: 'tóng hào',\r\n    模量: 'mó liàng',\r\n    更生: 'gēng shēng',\r\n    服丧: 'fú sāng',\r\n    率直: 'shuài zhí',\r\n    字模: 'zì mú',\r\n    散架: 'sǎn jià',\r\n    答腔: 'dā qiāng',\r\n    交恶: 'jiāo wù',\r\n    薄情: 'bó qíng',\r\n    眼泡: 'yǎn pāo',\r\n    袅娜: 'niǎo nuó',\r\n    草垛: 'cǎo duò',\r\n    冲劲: 'chòng jìn',\r\n    呢喃: 'ní nán',\r\n    切中: 'qiè zhòng',\r\n    挑灯: 'tiǎo dēng',\r\n    还愿: 'huán yuàn',\r\n    激将: 'jī jiàng',\r\n    更鼓: 'gēng gǔ',\r\n    没药: 'mò yào',\r\n    败兴: 'bài xìng',\r\n    切面: 'qiē miàn',\r\n    散户: 'sǎn hù',\r\n    累进: 'lěi jìn',\r\n    背带: 'bēi dài',\r\n    秤杆: 'chèng gǎn',\r\n    碾坊: 'niǎn fáng',\r\n    簿子: 'bù zi',\r\n    扳手: 'bān shǒu',\r\n    铅山: 'yán shān',\r\n    儒将: 'rú jiàng',\r\n    重光: 'chóng guāng',\r\n    剪发: 'jiǎn fà',\r\n    长上: 'zhǎng shàng',\r\n    小传: 'xiǎo zhuàn',\r\n    压轴: 'yā zhòu',\r\n    弱冠: 'ruò guàn',\r\n    花卷: 'huā juǎn',\r\n    横祸: 'hèng huò',\r\n    夹克: 'jiā kè',\r\n    光晕: 'guāng yùn',\r\n    披靡: 'pī mǐ',\r\n    对调: 'duì diào',\r\n    夹持: 'jiā chí',\r\n    空额: 'kòng é',\r\n    平调: 'píng diào',\r\n    铺床: 'pū chuáng',\r\n    丧钟: 'sāng zhōng',\r\n    作乐: 'zuò lè',\r\n    少府: 'shào fǔ',\r\n    数数: 'shuò shuò',\r\n    奔头: 'bèn tou',\r\n    进给: 'jìn jǐ',\r\n    率性: 'shuài xìng',\r\n    乐子: 'lè zi',\r\n    绑扎: 'bǎng zā',\r\n    挑唆: 'tiǎo suō',\r\n    漂洗: 'piǎo xǐ',\r\n    夹墙: 'jiā qiáng',\r\n    咳喘: 'ké chuǎn',\r\n    乜斜: 'miē xie',\r\n    错处: 'cuò chù',\r\n    闷酒: 'mèn jiǔ',\r\n    时调: 'shí diào',\r\n    重孙: 'chóng sūn',\r\n    经幢: 'jīng chuáng',\r\n    圩场: 'xū chǎng',\r\n    调门: 'diào mén',\r\n    花头: 'huā tóu',\r\n    划拉: 'huá la',\r\n    套色: 'tào shǎi',\r\n    粗率: 'cū shuài',\r\n    相率: 'xiāng shuài',\r\n    款识: 'kuǎn zhì',\r\n    吁请: 'yù qǐng',\r\n    荫蔽: 'yīn bì',\r\n    文蛤: 'wén gé',\r\n    嘀嗒: 'dī dā',\r\n    调取: 'diào qǔ',\r\n    交差: 'jiāo chāi',\r\n    落子: 'luò zǐ',\r\n    相册: 'xiàng cè',\r\n    絮叨: 'xù dao',\r\n    落发: 'luò fà',\r\n    异相: 'yì xiàng',\r\n    浸没: 'jìn mò',\r\n    角抵: 'jué dǐ',\r\n    卸载: 'xiè zài',\r\n    春卷: 'chūn juǎn',\r\n    扎挣: 'zhá zheng',\r\n    畜养: 'xù yǎng',\r\n    吡咯: 'bǐ luò',\r\n    垛子: 'duò zi',\r\n    恶少: 'è shào',\r\n    发际: 'fà jì',\r\n    红苕: 'hóng sháo',\r\n    糨糊: 'jiàng hu',\r\n    哭丧: 'kū sāng',\r\n    稍息: 'shào xī',\r\n    晕船: 'yùn chuán',\r\n    校样: 'jiào yàng',\r\n    外差: 'wài chā',\r\n    脚爪: 'jiǎo zhǎo',\r\n    铺展: 'pū zhǎn',\r\n    芫荽: 'yán sui',\r\n    夹紧: 'jiā jǐn',\r\n    尿泡: 'suī pào',\r\n    丧乱: 'sāng luàn',\r\n    凶相: 'xiōng xiàng',\r\n    华发: 'huá fà',\r\n    打场: 'dǎ cháng',\r\n    云量: 'yún liàng',\r\n    正切: 'zhèng qiē',\r\n    划拳: 'huá quán',\r\n    划艇: 'huá tǐng',\r\n    评传: 'píng zhuàn',\r\n    拉纤: 'lā qiàn',\r\n    句读: 'jù dòu',\r\n    散剂: 'sǎn jì',\r\n    骨殖: 'gǔ shi',\r\n    塞音: 'sè yīn',\r\n    铺叙: 'pū xù',\r\n    阏氏: 'yān zhī',\r\n    冷颤: 'lěng zhàn',\r\n    煞住: 'shā zhù',\r\n    少男: 'shào nán',\r\n    管乐: 'guǎn yuè',\r\n    号啕: 'háo táo',\r\n    纳降: 'nà xiáng',\r\n    拥塞: 'yōng sè',\r\n    万乘: 'wàn shèng',\r\n    杆儿: 'gǎn ér',\r\n    葛藤: 'gé téng',\r\n    簿籍: 'bù jí',\r\n    皮夹: 'pí jiā',\r\n    校准: 'jiào zhǔn',\r\n    允当: 'yǔn dàng',\r\n    器量: 'qì liàng',\r\n    选调: 'xuǎn diào',\r\n    扮相: 'bàn xiàng',\r\n    干才: 'gàn cái',\r\n    基干: 'jī gàn',\r\n    割切: 'gē qiē',\r\n    国乐: 'guó yuè',\r\n    卡壳: 'qiǎ ké',\r\n    辟谷: 'bì gǔ',\r\n    磨房: 'mò fáng',\r\n    咿呀: 'yī yā',\r\n    芥末: 'jiè mo',\r\n    薄技: 'bó jì',\r\n    产假: 'chǎn jià',\r\n    诗兴: 'shī xìng',\r\n    重出: 'chóng chū',\r\n    转椅: 'zhuàn yǐ',\r\n    酌量: 'zhuó liang',\r\n    簿册: 'bù cè',\r\n    藏青: 'zàng qīng',\r\n    的士: 'dī shì',\r\n    调人: 'diào rén',\r\n    解元: 'jiè yuán',\r\n    茎干: 'jīng gàn',\r\n    巨量: 'jù liàng',\r\n    榔头: 'láng tou',\r\n    率真: 'shuài zhēn',\r\n    喷香: 'pèn xiāng',\r\n    锁钥: 'suǒ yuè',\r\n    虾蟆: 'há má',\r\n    相图: 'xiàng tú',\r\n    兴会: 'xìng huì',\r\n    灶头: 'zào tóu',\r\n    重婚: 'chóng hūn',\r\n    钻洞: 'zuān dòng',\r\n    忖度: 'cǔn duó',\r\n    党参: 'dǎng shēn',\r\n    调温: 'diào wēn',\r\n    杆塔: 'gān tǎ',\r\n    葛布: 'gé bù',\r\n    拱券: 'gǒng xuàn',\r\n    夹生: 'jiā shēng',\r\n    露馅: 'lòu xiàn',\r\n    恰切: 'qià qiè',\r\n    散见: 'sǎn jiàn',\r\n    哨卡: 'shào qiǎ',\r\n    烫发: 'tàng fà',\r\n    体量: 'tǐ liàng',\r\n    挺括: 'tǐng kuò',\r\n    系带: 'jì dài',\r\n    相士: 'xiàng shì',\r\n    羊圈: 'yáng juàn',\r\n    转矩: 'zhuàn jǔ',\r\n    吧台: 'bā tái',\r\n    苍术: 'cāng zhú',\r\n    菲薄: 'fěi bó',\r\n    蛤蚧: 'gé jiè',\r\n    蛤蜊: 'gé lí',\r\n    瓜蔓: 'guā wàn',\r\n    怪相: 'guài xiàng',\r\n    临帖: 'lín tiè',\r\n    女红: 'nǚ gōng',\r\n    刨床: 'bào chuáng',\r\n    翘楚: 'qiáo chǔ',\r\n    数九: 'shǔ jiǔ',\r\n    谈兴: 'tán xìng',\r\n    雄劲: 'xióng jìng',\r\n    扎染: 'zā rǎn',\r\n    遮荫: 'zhē yīn',\r\n    周正: 'zhōu zhèng',\r\n    赚头: 'zhuàn tou',\r\n    扒手: 'pá shǒu',\r\n    搀和: 'chān huo',\r\n    诚朴: 'chéng pǔ',\r\n    肚量: 'dù liàng',\r\n    干结: 'gān jié',\r\n    工尺: 'gōng chě',\r\n    家累: 'jiā lěi',\r\n    曲水: 'qū shuǐ',\r\n    沙参: 'shā shēn',\r\n    挑花: 'tiǎo huā',\r\n    阿门: 'ā mén',\r\n    背篓: 'bēi lǒu',\r\n    瘪三: 'biē sān',\r\n    裁处: 'cái chǔ',\r\n    创痛: 'chuāng tòng',\r\n    福相: 'fú xiàng',\r\n    更动: 'gēng dòng',\r\n    豪兴: 'háo xìng',\r\n    还阳: 'huán yáng',\r\n    还嘴: 'huán zuǐ',\r\n    借调: 'jiè diào',\r\n    卷云: 'juǎn yún',\r\n    流弹: 'liú dàn',\r\n    想头: 'xiǎng tou',\r\n    削价: 'xuē jià',\r\n    校阅: 'jiào yuè',\r\n    雅量: 'yǎ liàng',\r\n    别传: 'bié zhuàn',\r\n    薄酒: 'bó jiǔ',\r\n    春假: 'chūn jià',\r\n    发妻: 'fà qī',\r\n    哗哗: 'huā huā',\r\n    宽绰: 'kuān chuo',\r\n    了悟: 'liǎo wù',\r\n    切花: 'qiē huā',\r\n    审度: 'shěn duó',\r\n    应许: 'yīng xǔ',\r\n    转台: 'zhuàn tái',\r\n    仔猪: 'zǐ zhū',\r\n    裁量: 'cái liáng',\r\n    藏戏: 'zàng xì',\r\n    乘兴: 'chéng xìng',\r\n    绸缪: 'chóu móu',\r\n    摧折: 'cuī zhé',\r\n    调经: 'tiáo jīng',\r\n    调职: 'diào zhí',\r\n    缝缀: 'féng zhuì',\r\n    骨朵: 'gū duǒ',\r\n    核儿: 'hú er',\r\n    恒量: 'héng liàng',\r\n    还价: 'huán jià',\r\n    浑朴: 'hún pǔ',\r\n    苦差: 'kǔ chāi',\r\n    面糊: 'miàn hù',\r\n    煞车: 'shā chē',\r\n    省视: 'xǐng shì',\r\n    什锦: 'shí jǐn',\r\n    信差: 'xìn chāi',\r\n    余切: 'yú qiē',\r\n    攒眉: 'cuán méi',\r\n    炸糕: 'zhá gāo',\r\n    钻杆: 'zuàn gǎn',\r\n    扒灰: 'pá huī',\r\n    拌和: 'bàn huò',\r\n    长调: 'cháng diào',\r\n    大溜: 'dà liù',\r\n    抖搂: 'dǒu lōu',\r\n    飞转: 'fēi zhuàn',\r\n    干仗: 'gàn zhàng',\r\n    好胜: 'hào shèng',\r\n    画片: 'huà piàn',\r\n    搅混: 'jiǎo hún',\r\n    螺杆: 'luó gǎn',\r\n    木模: 'mù mú',\r\n    怒号: 'nù háo',\r\n    频数: 'pín shù',\r\n    无宁: 'wú níng',\r\n    遗少: 'yí shào',\r\n    邮差: 'yóu chāi',\r\n    占卦: 'zhān guà',\r\n    占星: 'zhān xīng',\r\n    重审: 'chóng shěn',\r\n    自量: 'zì liàng',\r\n    调防: 'diào fáng',\r\n    发廊: 'fà láng',\r\n    反调: 'fǎn diào',\r\n    缝子: 'fèng zi',\r\n    更夫: 'gēng fū',\r\n    骨子: 'gǔ zi',\r\n    光杆: 'guāng gǎn',\r\n    夹棍: 'jiā gùn',\r\n    居丧: 'jū sāng',\r\n    巨贾: 'jù gǔ',\r\n    看押: 'kān yā',\r\n    空转: 'kōng zhuàn',\r\n    量力: 'liàng lì',\r\n    炮烙: 'páo luò',\r\n    赔还: 'péi huán',\r\n    扑扇: 'pū shān',\r\n    散记: 'sǎn jì',\r\n    散件: 'sǎn jiàn',\r\n    删削: 'shān xuē',\r\n    射干: 'shè gàn',\r\n    条几: 'tiáo jī',\r\n    偷空: 'tōu kòng',\r\n    削壁: 'xuē bì',\r\n    校核: 'jiào hé',\r\n    阴干: 'yīn gān',\r\n    择菜: 'zhái cài',\r\n    重九: 'chóng jiǔ',\r\n    主调: 'zhǔ diào',\r\n    自禁: 'zì jīn',\r\n    吧唧: 'bā jī',\r\n    便溺: 'biàn niào',\r\n    词调: 'cí diào',\r\n    叨咕: 'dáo gu',\r\n    落枕: 'lào zhěn',\r\n    铺砌: 'pū qì',\r\n    刷白: 'shuà bái',\r\n    委靡: 'wěi mǐ',\r\n    系泊: 'xì bó',\r\n    相马: 'xiàng mǎ',\r\n    熨帖: 'yù tiē',\r\n    转筋: 'zhuàn jīn',\r\n    棒喝: 'bàng hè',\r\n    傧相: 'bīn xiàng',\r\n    镐头: 'gǎo tóu',\r\n    间苗: 'jiàn miáo',\r\n    乐池: 'yuè chí',\r\n    卖相: 'mài xiàng',\r\n    屏弃: 'bǐng qì',\r\n    铅弹: 'qiān dàn',\r\n    切变: 'qiē biàn',\r\n    请调: 'qǐng diào',\r\n    群氓: 'qún méng',\r\n    散板: 'sǎn bǎn',\r\n    省察: 'xǐng chá',\r\n    事假: 'shì jià',\r\n    纤绳: 'qiàn shéng',\r\n    重影: 'chóng yǐng',\r\n    耕种: 'gēng zhòng',\r\n    种地: 'zhòng dì',\r\n    种菜: 'zhòng cài',\r\n    栽种: 'zāi zhòng',\r\n    接种: 'jiē zhòng',\r\n    垦种: 'kěn zhòng',\r\n    种殖: 'zhòng zhí',\r\n    种瓜: 'zhòng guā',\r\n    种豆: 'zhòng dòu',\r\n    种树: 'zhòng shù',\r\n    睡着: 'shuì zháo',\r\n    笼子: 'lóng zi',\r\n    重启: 'chóng qǐ',\r\n    重整: 'chóng zhěng',\r\n    重弹: 'chóng tán',\r\n    重足: 'chóng zú',\r\n    重山: 'chóng shān',\r\n    重游: 'chóng yóu',\r\n    重峦: 'chóng luán',\r\n    爷爷: 'yé ye',\r\n    奶奶: 'nǎi nai',\r\n    姥爷: 'lǎo ye',\r\n    爸爸: 'bà ba',\r\n    妈妈: 'mā ma',\r\n    婶婶: 'shěn shen',\r\n    舅舅: 'jiù jiu',\r\n    姑姑: 'gū gu',\r\n    叔叔: 'shū shu',\r\n    姨夫: 'yí fu',\r\n    舅母: 'jiù mu',\r\n    姑父: 'gū fu',\r\n    姐夫: 'jiě fu',\r\n    婆婆: 'pó po',\r\n    公公: 'gōng gong',\r\n    舅子: 'jiù zi',\r\n    姐姐: 'jiě jie',\r\n    哥哥: 'gē ge',\r\n    妹妹: 'mèi mei',\r\n    妹夫: 'mèi fu',\r\n    姨子: 'yí zi',\r\n    宝宝: 'bǎo bao',\r\n    娃娃: 'wá wa',\r\n    孩子: 'hái zi',\r\n    日子: 'rì zi',\r\n    样子: 'yàng zi',\r\n    狮子: 'shī zi',\r\n    身子: 'shēn zi',\r\n    架子: 'jià zi',\r\n    嫂子: 'sǎo zi',\r\n    鼻子: 'bí zi',\r\n    亭子: 'tíng zi',\r\n    折子: 'zhé zi',\r\n    面子: 'miàn zi',\r\n    脖子: 'bó zi',\r\n    辈子: 'bèi zi',\r\n    帽子: 'mào zi',\r\n    拍子: 'pāi zi',\r\n    柱子: 'zhù zi',\r\n    辫子: 'biàn zi',\r\n    鸽子: 'gē zi',\r\n    房子: 'fáng zi',\r\n    丸子: 'wán zi',\r\n    摊子: 'tān zi',\r\n    牌子: 'pái zi',\r\n    胡子: 'hú zi',\r\n    鬼子: 'guǐ zi',\r\n    矮子: 'ǎi zi',\r\n    鸭子: 'yā zi',\r\n    小子: 'xiǎo zi',\r\n    影子: 'yǐng zi',\r\n    屋子: 'wū zi',\r\n    对子: 'duì zi',\r\n    点子: 'diǎn zi',\r\n    本子: 'běn zi',\r\n    种子: 'zhǒng zi',\r\n    儿子: 'ér zi',\r\n    兔子: 'tù zi',\r\n    骗子: 'piàn zi',\r\n    院子: 'yuàn zi',\r\n    猴子: 'hóu zi',\r\n    嗓子: 'sǎng zi',\r\n    侄子: 'zhí zi',\r\n    柿子: 'shì zi',\r\n    钳子: 'qián zi',\r\n    虱子: 'shī zi',\r\n    瓶子: 'píng zi',\r\n    豹子: 'bào zi',\r\n    筷子: 'kuài zi',\r\n    篮子: 'lán zi',\r\n    绳子: 'shéng zi',\r\n    嘴巴: 'zuǐ ba',\r\n    耳朵: 'ěr duo',\r\n    茄子: 'qié zi',\r\n    蚌埠: 'bèng bù',\r\n    崆峒: 'kōng tóng',\r\n    琵琶: 'pí pa',\r\n    蘑菇: 'mó gu',\r\n    葫芦: 'hú lu',\r\n    狐狸: 'hú li',\r\n    桔子: 'jú zi',\r\n    盒子: 'hé zi',\r\n    桌子: 'zhuō zi',\r\n    竹子: 'zhú zi',\r\n    师傅: 'shī fu',\r\n    衣服: 'yī fu',\r\n    袜子: 'wà zi',\r\n    杯子: 'bēi zi',\r\n    刺猬: 'cì wei',\r\n    麦子: 'mài zi',\r\n    队伍: 'duì wu',\r\n    知了: 'zhī liǎo',\r\n    鱼儿: 'yú er',\r\n    馄饨: 'hún tun',\r\n    灯笼: 'dēng long',\r\n    庄稼: 'zhuāng jia',\r\n    聪明: 'cōng ming',\r\n    镜子: 'jìng zi',\r\n    银子: 'yín zi',\r\n    盘子: 'pán zi',\r\n    了却: 'liǎo què',\r\n    力气: 'lì qi',\r\n    席子: 'xí zi',\r\n    林子: 'lín zi',\r\n    朝霞: 'zhāo xiá',\r\n    朝夕: 'zhāo xī',\r\n    朝气: 'zhāo qì',\r\n    翅膀: 'chì bǎng',\r\n    省长: 'shěng zhǎng',\r\n    臧否: 'zāng pǐ',\r\n    否泰: 'pǐ tài',\r\n    变得: 'biàn de',\r\n    丈夫: 'zhàng fu',\r\n    豆腐: 'dòu fu',\r\n    笔杆: 'bǐ gǎn',\r\n    枞阳: 'zōng yáng',\r\n    行人: 'xíng rén',\r\n    打着: 'dǎ zhe',\r\n    // 一字不变调的词语（需要增补更多）\r\n    // 有歧义的词：一楼、一栋、一层、一排、一连\r\n    // “一楼”这个词，上下文语意是“一整栋楼”时，需要变调成四声；我住一楼时，则是一声\r\n    第一: 'dì yī',\r\n    万一: 'wàn yī',\r\n    之一: 'zhī yī',\r\n    得之: 'dé zhī',\r\n    统一: 'tǒng yī',\r\n    唯一: 'wéi yī',\r\n    专一: 'zhuān yī',\r\n    单一: 'dān yī',\r\n    如一: 'rú yī',\r\n    其一: 'qí yī',\r\n    合一: 'hé yī',\r\n    逐一: 'zhú yī',\r\n    周一: 'zhōu yī',\r\n    初一: 'chū yī',\r\n    研一: 'yán yī',\r\n    归一: 'guī yī',\r\n    假一: 'jiǎ yī',\r\n    闻一: 'wén yī',\r\n    了了: 'liǎo liǎo',\r\n    公了: 'gōng liǎo',\r\n    私了: 'sī liǎo',\r\n    // 一 发音\r\n    一月: 'yī yuè',\r\n    一号: 'yī hào',\r\n    一级: 'yī jí',\r\n    一等: 'yī děng',\r\n    一哥: 'yī gē',\r\n    月一: 'yuè yī',\r\n    一一: 'yī yī',\r\n    二一: 'èr yī',\r\n    三一: 'sān yī',\r\n    四一: 'sì yī',\r\n    五一: 'wǔ yī',\r\n    六一: 'liù yī',\r\n    七一: 'qī yī',\r\n    八一: 'bā yī',\r\n    九一: 'jiǔ yī',\r\n    一〇: 'yī líng',\r\n    一零: 'yī líng',\r\n    一二: 'yī èr',\r\n    一三: 'yī sān',\r\n    一四: 'yī sì',\r\n    一五: 'yī wǔ',\r\n    一六: 'yī liù',\r\n    一七: 'yī qī',\r\n    一八: 'yī bā',\r\n    一九: 'yī jiǔ',\r\n    一又: 'yī yòu',\r\n    一饼: 'yī bǐng',\r\n    一楼: 'yī lóu',\r\n    为例: 'wéi lì',\r\n    为准: 'wéi zhǔn',\r\n    沧海: 'cāng hǎi',\r\n    难为: 'nán wéi',\r\n    责难: 'zé nàn',\r\n    患难: 'huàn nàn',\r\n    磨难: 'mó nàn',\r\n    大难: 'dà nàn',\r\n    刁难: 'diāo nàn',\r\n    殉难: 'xùn nàn',\r\n    落难: 'luò nàn',\r\n    罹难: 'lí nàn',\r\n    灾难: 'zāi nàn',\r\n    难民: 'nàn mín',\r\n    苦难: 'kǔ nàn',\r\n    危难: 'wēi nàn',\r\n    发难: 'fā nàn',\r\n    逃难: 'táo nàn',\r\n    避难: 'bì nàn',\r\n    遇难: 'yù nàn',\r\n    阻难: 'zǔ nàn',\r\n    厄难: 'è nàn',\r\n    徇难: 'xùn nàn',\r\n    空难: 'kōng nàn',\r\n    喜欢: 'xǐ huan',\r\n    朝朝: 'zhāo zhāo',\r\n    不行: 'bù xíng',\r\n    轧轧: 'yà yà',\r\n    弯曲: 'wān qū',\r\n    扭曲: 'niǔ qū',\r\n    曲直: 'qū zhí',\r\n    委曲: 'wěi qū',\r\n    酒曲: 'jiǔ qū',\r\n    曲径: 'qū jìng',\r\n    曲解: 'qū jiě',\r\n    歪曲: 'wāi qū',\r\n    曲线: 'qū xiàn',\r\n    曲阜: 'qū fù',\r\n    九曲: 'jiǔ qū',\r\n    曲折: 'qū zhé',\r\n    曲肱: 'qū gōng',\r\n    曲意: 'qū yì',\r\n    仡佬: 'gē lǎo',\r\n};\r\nconst Pattern2 = Object.keys(DICT2).map((key) => ({\r\n    zh: key,\r\n    pinyin: DICT2[key],\r\n    probability: 2e-8 /* Probability.DICT */,\r\n    length: 2,\r\n    priority: Priority.Normal,\r\n    dict: Symbol('dict2'),\r\n}));\n\nconst DICT3 = {\r\n    为什么: 'wèi shén me',\r\n    实际上: 'shí jì shang',\r\n    检察长: 'jiǎn chá zhǎng',\r\n    干什么: 'gàn shén me',\r\n    这会儿: 'zhè huì er',\r\n    尽可能: 'jǐn kě néng',\r\n    董事长: 'dǒng shì zhǎng',\r\n    了不起: 'liǎo bù qǐ',\r\n    参谋长: 'cān móu zhǎng',\r\n    朝鲜族: 'cháo xiǎn zú',\r\n    海内外: 'hǎi nèi wài',\r\n    禁不住: 'jīn bú zhù',\r\n    柏拉图: 'bó lā tú',\r\n    不在乎: 'bú zài hu',\r\n    洛杉矶: 'luò shān jī',\r\n    有点儿: 'yǒu diǎn er',\r\n    迫击炮: 'pǎi jī pào',\r\n    不得了: 'bù dé liǎo',\r\n    马尾松: 'mǎ wěi sōng',\r\n    运输量: 'yùn shū liàng',\r\n    发脾气: 'fā pí qi',\r\n    士大夫: 'shì dà fū',\r\n    鸭绿江: 'yā lù jiāng',\r\n    压根儿: 'yà gēn er',\r\n    对得起: 'duì de qǐ',\r\n    那会儿: 'nà huì er',\r\n    自个儿: 'zì gě er',\r\n    物理量: 'wù lǐ liàng',\r\n    怎么着: 'zěn me zhāo',\r\n    明晃晃: 'míng huǎng huǎng',\r\n    节假日: 'jié jià rì',\r\n    心里话: 'xīn lǐ huà',\r\n    发行量: 'fā xíng liàng',\r\n    兴冲冲: 'xìng chōng chōng',\r\n    分子量: 'fēn zǐ liàng',\r\n    国子监: 'guó zǐ jiàn',\r\n    老大难: 'lǎo dà nán',\r\n    党内外: 'dǎng nèi wài',\r\n    这么着: 'zhè me zhāo',\r\n    少奶奶: 'shào nǎi nai',\r\n    暗地里: 'àn dì lǐ',\r\n    更年期: 'gēng nián qī',\r\n    工作量: 'gōng zuò liàng',\r\n    背地里: 'bèi dì lǐ',\r\n    山里红: 'shān li hóng',\r\n    好好儿: 'hǎo hāo er',\r\n    交响乐: 'jiāo xiǎng yuè',\r\n    好意思: 'hǎo yì si',\r\n    吐谷浑: 'tǔ yù hún',\r\n    没意思: 'méi yì si',\r\n    理发师: 'lǐ fà shī',\r\n    塔什干: 'tǎ shí gān',\r\n    充其量: 'chōng qí liàng',\r\n    靠得住: 'kào de zhù',\r\n    车行道: 'chē xíng dào',\r\n    人行道: 'rén xíng dào',\r\n    中郎将: 'zhōng láng jiàng',\r\n    照明弹: 'zhào míng dàn',\r\n    烟幕弹: 'yān mù dàn',\r\n    没奈何: 'mò nài hé',\r\n    乱哄哄: 'luàn hōng hōng',\r\n    惠更斯: 'huì gēng sī',\r\n    载重量: 'zài zhòng liàng',\r\n    瞧得起: 'qiáo de qǐ',\r\n    纪传体: 'jì zhuàn tǐ',\r\n    阿房宫: 'ē páng gōng',\r\n    卷心菜: 'juǎn xīn cài',\r\n    戏班子: 'xì bān zi',\r\n    过得去: 'guò de qù',\r\n    花岗石: 'huā gāng shí',\r\n    外甥女: 'wài sheng nǚ',\r\n    团团转: 'tuán tuán zhuàn',\r\n    大堡礁: 'dà bǎo jiāo',\r\n    燃烧弹: 'rán shāo dàn',\r\n    劳什子: 'láo shí zi',\r\n    摇滚乐: 'yáo gǔn yuè',\r\n    夹竹桃: 'jiā zhú táo',\r\n    闹哄哄: 'nào hōng hōng',\r\n    三连冠: 'sān lián guàn',\r\n    重头戏: 'zhòng tóu xì',\r\n    二人转: 'èr rén zhuàn',\r\n    节骨眼: 'jiē gǔ yǎn',\r\n    知识面: 'zhī shi miàn',\r\n    护士长: 'hù shi zhǎng',\r\n    信号弹: 'xìn hào dàn',\r\n    干电池: 'gān diàn chí',\r\n    枪杆子: 'qiāng gǎn zi',\r\n    哭丧棒: 'kū sāng bàng',\r\n    鼻咽癌: 'bí yān ái',\r\n    瓦岗军: 'wǎ gāng jūn',\r\n    买得起: 'mǎi de qǐ',\r\n    癞蛤蟆: 'lài há ma',\r\n    脊梁骨: 'jǐ liang gǔ',\r\n    子母弹: 'zǐ mǔ dàn',\r\n    开小差: 'kāi xiǎo chāi',\r\n    女强人: 'nǚ qiáng rén',\r\n    英雄传: 'yīng xióng zhuàn',\r\n    爵士乐: 'jué shì yuè',\r\n    说笑话: 'shuō xiào hua',\r\n    碰头会: 'pèng tóu huì',\r\n    玻璃钢: 'bō li gāng',\r\n    曳光弹: 'yè guāng dàn',\r\n    少林拳: 'shào lín quán',\r\n    咏叹调: 'yǒng tàn diào',\r\n    少先队: 'shào xiān duì',\r\n    灵长目: 'líng zhǎng mù',\r\n    对着干: 'duì zhe gàn',\r\n    蒙蒙亮: 'méng méng liàng',\r\n    软骨头: 'ruǎn gǔ tou',\r\n    铺盖卷: 'pū gài juǎn',\r\n    和稀泥: 'huò xī ní',\r\n    背黑锅: 'bēi hēi guō',\r\n    红彤彤: 'hóng tōng tōng',\r\n    武侯祠: 'wǔ hóu cí',\r\n    打哆嗦: 'dǎ duō suo',\r\n    户口簿: 'hù kǒu bù',\r\n    马尾藻: 'mǎ wěi zǎo',\r\n    夜猫子: 'yè māo zi',\r\n    打手势: 'dǎ shǒu shì',\r\n    龙王爷: 'lóng wáng yé',\r\n    气头上: 'qì tóu shang',\r\n    糊涂虫: 'hú tu chóng',\r\n    笔杆子: 'bǐ gǎn zi',\r\n    占便宜: 'zhàn pián yi',\r\n    打主意: 'dǎ zhǔ yì',\r\n    多弹头: 'duō dàn tóu',\r\n    露一手: 'lòu yì shǒu',\r\n    堰塞湖: 'yàn sè hú',\r\n    保得住: 'bǎo de zhù',\r\n    趵突泉: 'bào tū quán',\r\n    奥得河: 'ào de hé',\r\n    司务长: 'sī wù zhǎng',\r\n    禁不起: 'jīn bù qǐ',\r\n    什刹海: 'shí chà hǎi',\r\n    莲花落: 'lián huā lào',\r\n    见世面: 'jiàn shì miàn',\r\n    豁出去: 'huō chū qù',\r\n    电位差: 'diàn wèi chā',\r\n    挨个儿: 'āi gè er',\r\n    那阵儿: 'nà zhèn er',\r\n    肺活量: 'fèi huó liàng',\r\n    大师傅: 'dà shī fu',\r\n    掷弹筒: 'zhì dàn tǒng',\r\n    打呼噜: 'dǎ hū lu',\r\n    广渠门: 'ān qú mén',\r\n    未见得: 'wèi jiàn dé',\r\n    大婶儿: 'dà shěn er',\r\n    谈得来: 'tán de lái',\r\n    脚丫子: 'jiǎo yā zi',\r\n    空包弹: 'kōng bāo dàn',\r\n    窝里斗: 'wō li dòu',\r\n    弹着点: 'dàn zhuó diǎn',\r\n    个头儿: 'gè tóu er',\r\n    看得起: 'kàn de qǐ',\r\n    糊涂账: 'hú tu zhàng',\r\n    大猩猩: 'dà xīng xing',\r\n    禁得起: 'jīn de qǐ',\r\n    法相宗: 'fǎ xiàng zōng',\r\n    可怜相: 'kě lián xiàng',\r\n    吃得下: 'chī de xià',\r\n    汉堡包: 'hàn bǎo bāo',\r\n    闹嚷嚷: 'nào rāng rāng',\r\n    数来宝: 'shǔ lái bǎo',\r\n    合得来: 'hé de lái',\r\n    干性油: 'gān xìng yóu',\r\n    闷葫芦: 'mèn hú lu',\r\n    呱呱叫: 'guā guā jiào',\r\n    西洋参: 'xī yáng shēn',\r\n    林荫道: 'lín yīn dào',\r\n    拉家常: 'lā jiā cháng',\r\n    卷铺盖: 'juǎn pū gài',\r\n    过得硬: 'guò de yìng',\r\n    飞将军: 'fēi jiāng jūn',\r\n    挑大梁: 'tiǎo dà liáng',\r\n    哈巴狗: 'hǎ ba gǒu',\r\n    过家家: 'guò jiā jiā',\r\n    催泪弹: 'cuī lèi dàn',\r\n    雨夹雪: 'yǔ jiā xuě',\r\n    敲竹杠: 'qiāo zhú gàng',\r\n    列车长: 'liè chē zhǎng',\r\n    华达呢: 'huá dá ní',\r\n    犯得着: 'fàn de zháo',\r\n    土疙瘩: 'tǔ gē da',\r\n    煞风景: 'shā fēng jǐng',\r\n    轻量级: 'qīng liàng jí',\r\n    羞答答: 'xiū dā dā',\r\n    石子儿: 'shí zǐ er',\r\n    达姆弹: 'dá mǔ dàn',\r\n    科教片: 'kē jiào piān',\r\n    侃大山: 'kǎn dà shān',\r\n    丁点儿: 'dīng diǎn er',\r\n    吃得消: 'chī de xiāo',\r\n    捋虎须: 'luō hǔ xū',\r\n    高丽参: 'gāo lí shēn',\r\n    众生相: 'zhòng shēng xiàng',\r\n    咽峡炎: 'yān xiá yán',\r\n    禁得住: 'jīn de zhù',\r\n    吃得开: 'chī de kāi',\r\n    柞丝绸: 'zuò sī chóu',\r\n    应声虫: 'yìng shēng chóng',\r\n    数得着: 'shǔ de zháo',\r\n    傻劲儿: 'shǎ jìn er',\r\n    铅玻璃: 'qiān bō li',\r\n    可的松: 'kě dì sōng',\r\n    划得来: 'huá de lái',\r\n    晕乎乎: 'yūn hū hū',\r\n    屎壳郎: 'shǐ ke làng',\r\n    尥蹶子: 'liào juě zi',\r\n    藏红花: 'zàng hóng huā',\r\n    闷罐车: 'mèn guàn chē',\r\n    卡脖子: 'qiǎ bó zi',\r\n    红澄澄: 'hóng deng deng',\r\n    赶得及: 'gǎn de jí',\r\n    当间儿: 'dāng jiàn er',\r\n    露马脚: 'lòu mǎ jiǎo',\r\n    鸡内金: 'jī nèi jīn',\r\n    犯得上: 'fàn de shàng',\r\n    钉齿耙: 'dīng chǐ bà',\r\n    饱和点: 'bǎo hé diǎn',\r\n    龙爪槐: 'lóng zhǎo huái',\r\n    喝倒彩: 'hè dào cǎi',\r\n    定冠词: 'dìng guàn cí',\r\n    担担面: 'dàn dan miàn',\r\n    吃得住: 'chī de zhù',\r\n    爪尖儿: 'zhuǎ jiān er',\r\n    支着儿: 'zhī zhāo er',\r\n    折跟头: 'zhē gēn tou',\r\n    阴着儿: 'yīn zhāo er',\r\n    烟卷儿: 'yān juǎn er',\r\n    宣传弹: 'xuān chuán dàn',\r\n    信皮儿: 'xìn pí er',\r\n    弦切角: 'xián qiē jiǎo',\r\n    缩砂密: 'sù shā mì',\r\n    说得来: 'shuō de lái',\r\n    水漂儿: 'shuǐ piāo er',\r\n    耍笔杆: 'shuǎ bǐ gǎn',\r\n    数得上: 'shǔ de shàng',\r\n    数不着: 'shǔ bù zháo',\r\n    数不清: 'shǔ bù qīng',\r\n    什件儿: 'shí jiàn er',\r\n    生死簿: 'shēng sǐ bù',\r\n    扇风机: 'shān fēng jī',\r\n    撒呓挣: 'sā yì zheng',\r\n    日记簿: 'rì jì bù',\r\n    热得快: 'rè de kuài',\r\n    亲家公: 'qìng jia gōng',\r\n    奇函数: 'jī hán shù',\r\n    拍纸簿: 'pāi zhǐ bù',\r\n    努劲儿: 'nǔ jìn er',\r\n    泥娃娃: 'ní wá wa',\r\n    内切圆: 'nèi qiē yuán',\r\n    哪会儿: 'nǎ huì er',\r\n    闷头儿: 'mēn tóu er',\r\n    没谱儿: 'méi pǔ er',\r\n    铆劲儿: 'mǎo jìn er',\r\n    溜肩膀: 'liū jiān bǎng',\r\n    了望台: 'liào wàng tái',\r\n    老来少: 'lǎo lái shào',\r\n    坤角儿: 'kūn jué er',\r\n    考勤簿: 'kǎo qín bù',\r\n    卷笔刀: 'juǎn bǐ dāo',\r\n    进给量: 'jìn jǐ liàng',\r\n    划不来: 'huá bù lái',\r\n    汗褂儿: 'hàn guà er',\r\n    鼓囊囊: 'gǔ nāng nāng',\r\n    够劲儿: 'gòu jìn er',\r\n    公切线: 'gōng qiē xiàn',\r\n    搁得住: 'gé de zhù',\r\n    赶浪头: 'gǎn làng tóu',\r\n    赶得上: 'gǎn de shàng',\r\n    干酵母: 'gān jiào mǔ',\r\n    嘎渣儿: 'gā zhā er',\r\n    嘎嘣脆: 'gā bēng cuì',\r\n    对得住: 'duì de zhù',\r\n    逗闷子: 'dòu mèn zi',\r\n    顶呱呱: 'dǐng guā guā',\r\n    滴溜儿: 'dī liù er',\r\n    大轴子: 'dà zhòu zi',\r\n    打板子: 'dǎ bǎn zi',\r\n    寸劲儿: 'cùn jìn er',\r\n    醋劲儿: 'cù jìn er',\r\n    揣手儿: 'chuāi shǒu er',\r\n    冲劲儿: 'chòng jìn er',\r\n    吃得来: 'chī de lái',\r\n    不更事: 'bù gēng shì',\r\n    奔头儿: 'bèn tou er',\r\n    百夫长: 'bǎi fū zhǎng',\r\n    娃娃亲: 'wá wa qīn',\r\n    死劲儿: 'sǐ jìn er',\r\n    骨朵儿: 'gū duǒ er',\r\n    功劳簿: 'gōng láo bù',\r\n    都江堰: 'dū jiāng yàn',\r\n    一担水: 'yí dàn shuǐ',\r\n    否极泰: 'pǐ jí tài',\r\n    泰来否: 'tài lái pǐ',\r\n    咳特灵: 'ké tè líng',\r\n    开户行: 'kāi hù háng',\r\n    郦食其: 'lì yì jī',\r\n    花事了: 'huā shì liǎo',\r\n    // 一字变调的词语（与两个字的字典冲突，故需要重新定义）\r\n    一更更: 'yì gēng gēng',\r\n    一重山: 'yì chóng shān',\r\n    风一更: 'fēng yì gēng',\r\n    雪一更: 'xuě yì gēng',\r\n    归一码: 'guī yì mǎ',\r\n    // 一字不变调的词语（需要增补更多）\r\n    星期一: 'xīng qī yī',\r\n    礼拜一: 'lǐ bài yī',\r\n    一季度: 'yī jì dù',\r\n    一月一: 'yī yuè yī',\r\n    一字马: 'yī zì mǎ',\r\n    一是一: 'yī shì yī',\r\n    一次方: 'yī cì fāng',\r\n    一阳指: 'yī yáng zhǐ',\r\n    一字决: 'yī zì jué',\r\n    一年级: 'yī nián jí',\r\n    一不做: 'yī bú zuò',\r\n    屈戌儿: 'qū qu ér',\r\n    难为水: 'nán wéi shuǐ',\r\n    难为情: 'nán wéi qíng',\r\n    行一行: 'xíng yì háng',\r\n    别别的: 'biè bié de',\r\n    干哪行: 'gàn nǎ háng',\r\n    干一行: 'gàn yì háng',\r\n    曲别针: 'qū bié zhēn',\r\n};\r\nconst Pattern3 = Object.keys(DICT3).map((key) => ({\r\n    zh: key,\r\n    pinyin: DICT3[key],\r\n    probability: 2e-8 /* Probability.DICT */,\r\n    length: 3,\r\n    priority: Priority.Normal,\r\n    dict: Symbol('dict3'),\r\n}));\n\nconst DICT4 = {\r\n    成吉思汗: \"chéng jí sī hán\",\r\n    四通八达: \"sì tōng bā dá\",\r\n    一模一样: \"yì mú yí yàng\",\r\n    青藏高原: \"qīng zàng gāo yuán\",\r\n    阿弥陀佛: \"ē mí tuó fó\",\r\n    解放思想: \"jiè fàng sī xiǎng\",\r\n    所作所为: \"suǒ zuò suǒ wéi\",\r\n    迷迷糊糊: \"mí mí hu hū\",\r\n    荷枪实弹: \"hè qiāng shí dàn\",\r\n    兴高采烈: \"xìng gāo cǎi liè\",\r\n    无能为力: \"wú néng wéi lì\",\r\n    布鲁塞尔: \"bù lǔ sài ěr\",\r\n    为所欲为: \"wéi suǒ yù wéi\",\r\n    克什米尔: \"kè shí mǐ ěr\",\r\n    没完没了: \"méi wán méi liǎo\",\r\n    不为人知: \"bù wéi rén zhī\",\r\n    结结巴巴: \"jiē jiē bā bā\",\r\n    前仆后继: \"qián pū hòu jì\",\r\n    铺天盖地: \"pū tiān gài dì\",\r\n    直截了当: \"zhí jié liǎo dàng\",\r\n    供不应求: \"gōng bú yìng qiú\",\r\n    御史大夫: \"yù shǐ dà fū\",\r\n    不为瓦全: \"bù wéi wǎ quán\",\r\n    不可收拾: \"bù kě shōu shi\",\r\n    胡作非为: \"hú zuò fēi wéi\",\r\n    分毫不差: \"fēn háo bú chà\",\r\n    模模糊糊: \"mó mó hu hū\",\r\n    不足为奇: \"bù zú wéi qí\",\r\n    悄无声息: \"qiǎo wú shēng xī\",\r\n    了如指掌: \"liǎo rú zhǐ zhǎng\",\r\n    深恶痛绝: \"shēn wù tòng jué\",\r\n    高高兴兴: \"gāo gāo xìng xìng\",\r\n    唉声叹气: \"āi shēng tàn qì\",\r\n    汉藏语系: \"hàn zàng yǔ xì\",\r\n    处心积虑: \"chǔ xīn jī lǜ\",\r\n    泣不成声: \"qì bù chéng shēng\",\r\n    半夜三更: \"bàn yè sān gēng\",\r\n    失魂落魄: \"shī hún luò pò\",\r\n    二十八宿: \"èr shí bā xiù\",\r\n    转来转去: \"zhuàn lái zhuàn qù\",\r\n    数以万计: \"shǔ yǐ wàn jì\",\r\n    相依为命: \"xiāng yī wéi mìng\",\r\n    恋恋不舍: \"liàn liàn bù shě\",\r\n    屈指可数: \"qū zhǐ kě shǔ\",\r\n    神出鬼没: \"shén chū guǐ mò\",\r\n    结结实实: \"jiē jiē shí shí\",\r\n    有的放矢: \"yǒu dì fàng shǐ\",\r\n    叽哩咕噜: \"jī lǐ gū lū\",\r\n    调兵遣将: \"diào bīng qiǎn jiàng\",\r\n    载歌载舞: \"zài gē zài wǔ\",\r\n    转危为安: \"zhuǎn wēi wéi ān\",\r\n    踏踏实实: \"tā tā shi shí\",\r\n    桑给巴尔: \"sāng jǐ bā ěr\",\r\n    装模作样: \"zhuāng mú zuò yàng\",\r\n    见义勇为: \"jiàn yì yǒng wéi\",\r\n    相差无几: \"xiāng chā wú jǐ\",\r\n    叹为观止: \"tàn wéi guān zhǐ\",\r\n    闷闷不乐: \"mèn mèn bú lè\",\r\n    喜怒哀乐: \"xǐ nù āi lè\",\r\n    鲜为人知: \"xiǎn wéi rén zhī\",\r\n    张牙舞爪: \"zhāng yá wǔ zhǎo\",\r\n    为非作歹: \"wéi fēi zuò dǎi\",\r\n    含糊其辞: \"hán hú qí cí\",\r\n    疲于奔命: \"pí yú bēn mìng\",\r\n    勉为其难: \"miǎn wéi qí nán\",\r\n    依依不舍: \"yī yī bù shě\",\r\n    顶头上司: \"dǐng tóu shàng si\",\r\n    不着边际: \"bù zhuó biān jì\",\r\n    大模大样: \"dà mú dà yàng\",\r\n    寻欢作乐: \"xún huān zuò lè\",\r\n    一走了之: \"yì zǒu liǎo zhī\",\r\n    字里行间: \"zì lǐ háng jiān\",\r\n    含含糊糊: \"hán hán hu hū\",\r\n    恰如其分: \"qià rú qí fèn\",\r\n    破涕为笑: \"pò tì wéi xiào\",\r\n    深更半夜: \"shēn gēng bàn yè\",\r\n    千差万别: \"qiān chā wàn bié\",\r\n    数不胜数: \"shǔ bú shèng shǔ\",\r\n    据为己有: \"jù wéi jǐ yǒu\",\r\n    天旋地转: \"tiān xuán dì zhuàn\",\r\n    养尊处优: \"yǎng zūn chǔ yōu\",\r\n    玻璃纤维: \"bō li xiān wéi\",\r\n    吵吵闹闹: \"chāo chao nào nào\",\r\n    晕头转向: \"yūn tóu zhuàn xiàng\",\r\n    土生土长: \"tǔ shēng tǔ zhǎng\",\r\n    宁死不屈: \"nìng sǐ bù qū\",\r\n    不省人事: \"bù xǐng rén shì\",\r\n    尽力而为: \"jìn lì ér wéi\",\r\n    精明强干: \"jīng míng qiáng gàn\",\r\n    唠唠叨叨: \"láo lao dāo dāo\",\r\n    叽叽喳喳: \"jī ji zhā zhā\",\r\n    功不可没: \"gōng bù kě mò\",\r\n    锲而不舍: \"qiè ér bù shě\",\r\n    排忧解难: \"pái yōu jiě nàn\",\r\n    稀里糊涂: \"xī li hú tú\",\r\n    各有所长: \"gè yǒu suǒ cháng\",\r\n    的的确确: \"dí dí què què\",\r\n    哄堂大笑: \"hōng táng dà xiào\",\r\n    听而不闻: \"tīng ér bù wén\",\r\n    刀耕火种: \"dāo gēng huǒ zhòng\",\r\n    内分泌腺: \"nèi fèn mì xiàn\",\r\n    化险为夷: \"huà xiǎn wéi yí\",\r\n    百发百中: \"bǎi fā bǎi zhòng\",\r\n    重见天日: \"chóng jiàn tiān rì\",\r\n    反败为胜: \"fǎn bài wéi shèng\",\r\n    一了百了: \"yì liǎo bǎi liǎo\",\r\n    大大咧咧: \"dà da liē liē\",\r\n    心急火燎: \"xīn jí huǒ liǎo\",\r\n    粗心大意: \"cū xīn dà yi\",\r\n    鸡皮疙瘩: \"jī pí gē da\",\r\n    夷为平地: \"yí wéi píng dì\",\r\n    日积月累: \"rì jī yuè lěi\",\r\n    设身处地: \"shè shēn chǔ dì\",\r\n    投其所好: \"tóu qí suǒ hào\",\r\n    间不容发: \"jiān bù róng fà\",\r\n    人满为患: \"rén mǎn wéi huàn\",\r\n    穷追不舍: \"qióng zhuī bù shě\",\r\n    为时已晚: \"wéi shí yǐ wǎn\",\r\n    如数家珍: \"rú shǔ jiā zhēn\",\r\n    心里有数: \"xīn lǐ yǒu shù\",\r\n    以牙还牙: \"yǐ yá huán yá\",\r\n    神不守舍: \"shén bù shǒu shě\",\r\n    孟什维克: \"mèng shí wéi kè\",\r\n    各自为战: \"gè zì wéi zhàn\",\r\n    怨声载道: \"yuàn shēng zài dào\",\r\n    救苦救难: \"jiù kǔ jiù nàn\",\r\n    好好先生: \"hǎo hǎo xiān sheng\",\r\n    怪模怪样: \"guài mú guài yàng\",\r\n    抛头露面: \"pāo tóu lù miàn\",\r\n    游手好闲: \"yóu shǒu hào xián\",\r\n    无所不为: \"wú suǒ bù wéi\",\r\n    调虎离山: \"diào hǔ lí shān\",\r\n    步步为营: \"bù bù wéi yíng\",\r\n    好大喜功: \"hào dà xǐ gōng\",\r\n    众矢之的: \"zhòng shǐ zhī dì\",\r\n    长生不死: \"cháng shēng bù sǐ\",\r\n    蔚为壮观: \"wèi wéi zhuàng guān\",\r\n    不可胜数: \"bù kě shèng shǔ\",\r\n    鬼使神差: \"guǐ shǐ shén chāi\",\r\n    洁身自好: \"jié shēn zì hào\",\r\n    敢作敢为: \"gǎn zuò gǎn wéi\",\r\n    茅塞顿开: \"máo sè dùn kāi\",\r\n    走马换将: \"zǒu mǎ huàn jiàng\",\r\n    为时过早: \"wéi shí guò zǎo\",\r\n    为人师表: \"wéi rén shī biǎo\",\r\n    阴差阳错: \"yīn chā yáng cuò\",\r\n    油腔滑调: \"yóu qiāng huá diào\",\r\n    重蹈覆辙: \"chóng dǎo fù zhé\",\r\n    骂骂咧咧: \"mà ma liē liē\",\r\n    絮絮叨叨: \"xù xù dāo dāo\",\r\n    如履薄冰: \"rú lǚ bó bīng\",\r\n    损兵折将: \"sǔn bīng zhé jiàng\",\r\n    拐弯抹角: \"guǎi wān mò jiǎo\",\r\n    像模像样: \"xiàng mú xiàng yàng\",\r\n    供过于求: \"gōng guò yú qiú\",\r\n    开花结果: \"kāi huā jiē guǒ\",\r\n    仔仔细细: \"zǐ zǐ xì xì\",\r\n    川藏公路: \"chuān zàng gōng lù\",\r\n    河北梆子: \"hé běi bāng zi\",\r\n    长年累月: \"cháng nián lěi yuè\",\r\n    正儿八经: \"zhèng er bā jīng\",\r\n    不识抬举: \"bù shí tái ju\",\r\n    重振旗鼓: \"chóng zhèn qí gǔ\",\r\n    气息奄奄: \"qì xī yān yān\",\r\n    紧追不舍: \"jǐn zhuī bù shě\",\r\n    服服帖帖: \"fú fu tiē tiē\",\r\n    强词夺理: \"qiǎng cí duó lǐ\",\r\n    噼里啪啦: \"pī li pā lā\",\r\n    人才济济: \"rén cái jǐ jǐ\",\r\n    发人深省: \"fā rén shēn xǐng\",\r\n    不足为凭: \"bù zú wéi píng\",\r\n    为富不仁: \"wéi fù bù rén\",\r\n    连篇累牍: \"lián piān lěi dú\",\r\n    呼天抢地: \"hū tiān qiāng dì\",\r\n    落落大方: \"luò luò dà fāng\",\r\n    自吹自擂: \"zì chuī zì léi\",\r\n    乐善好施: \"lè shàn hào shī\",\r\n    以攻为守: \"yǐ gōng wéi shǒu\",\r\n    磨磨蹭蹭: \"mó mó cèng cèng\",\r\n    削铁如泥: \"xuē tiě rú ní\",\r\n    助纣为虐: \"zhù zhòu wéi nüè\",\r\n    以退为进: \"yǐ tuì wéi jìn\",\r\n    嘁嘁喳喳: \"qī qī chā chā\",\r\n    枪林弹雨: \"qiāng lín dàn yǔ\",\r\n    令人发指: \"lìng rén fà zhǐ\",\r\n    转败为胜: \"zhuǎn bài wéi shèng\",\r\n    转弯抹角: \"zhuǎn wān mò jiǎo\",\r\n    在劫难逃: \"zài jié nán táo\",\r\n    正当防卫: \"zhèng dàng fáng wèi\",\r\n    不足为怪: \"bù zú wéi guài\",\r\n    难兄难弟: \"nàn xiōng nàn dì\",\r\n    咿咿呀呀: \"yī yī yā yā\",\r\n    弹尽粮绝: \"dàn jìn liáng jué\",\r\n    阿谀奉承: \"ē yú fèng chéng\",\r\n    稀里哗啦: \"xī li huā lā\",\r\n    返老还童: \"fǎn lǎo huán tóng\",\r\n    好高骛远: \"hào gāo wù yuǎn\",\r\n    鹿死谁手: \"lù sǐ shéi shǒu\",\r\n    差强人意: \"chā qiáng rén yì\",\r\n    大吹大擂: \"dà chuī dà léi\",\r\n    成家立业: \"chéng jiā lì yè\",\r\n    自怨自艾: \"zì yuàn zì yì\",\r\n    负债累累: \"fù zhài lěi lěi\",\r\n    古为今用: \"gǔ wéi jīn yòng\",\r\n    入土为安: \"rù tǔ wéi ān\",\r\n    下不为例: \"xià bù wéi lì\",\r\n    一哄而上: \"yì hōng ér shàng\",\r\n    没头苍蝇: \"méi tóu cāng ying\",\r\n    天差地远: \"tiān chā dì yuǎn\",\r\n    风卷残云: \"fēng juǎn cán yún\",\r\n    多灾多难: \"duō zāi duō nàn\",\r\n    乳臭未干: \"rǔ xiù wèi gān\",\r\n    行家里手: \"háng jiā lǐ shǒu\",\r\n    狼狈为奸: \"láng bèi wéi jiān\",\r\n    处变不惊: \"chǔ biàn bù jīng\",\r\n    一唱一和: \"yí chàng yí hè\",\r\n    一念之差: \"yí niàn zhī chā\",\r\n    金蝉脱壳: \"jīn chán tuō qiào\",\r\n    滴滴答答: \"dī dī dā dā\",\r\n    硕果累累: \"shuò guǒ léi léi\",\r\n    好整以暇: \"hào zhěng yǐ xiá\",\r\n    红得发紫: \"hóng de fā zǐ\",\r\n    传为美谈: \"chuán wéi měi tán\",\r\n    富商大贾: \"fù shāng dà gǔ\",\r\n    四海为家: \"sì hǎi wéi jiā\",\r\n    了若指掌: \"liǎo ruò zhǐ zhǎng\",\r\n    大有可为: \"dà yǒu kě wéi\",\r\n    出头露面: \"chū tóu lù miàn\",\r\n    鼓鼓囊囊: \"gǔ gu nāng nāng\",\r\n    窗明几净: \"chuāng míng jī jìng\",\r\n    泰然处之: \"tài rán chǔ zhī\",\r\n    怒发冲冠: \"nù fà chōng guān\",\r\n    有机玻璃: \"yǒu jī bō li\",\r\n    骨头架子: \"gǔ tou jià zi\",\r\n    义薄云天: \"yì bó yún tiān\",\r\n    一丁点儿: \"yī dīng diǎn er\",\r\n    时来运转: \"shí lái yùn zhuǎn\",\r\n    陈词滥调: \"chén cí làn diào\",\r\n    化整为零: \"huà zhěng wéi líng\",\r\n    火烧火燎: \"huǒ shāo huǒ liǎo\",\r\n    干脆利索: \"gàn cuì lì suǒ\",\r\n    吊儿郎当: \"diào er láng dāng\",\r\n    广种薄收: \"guǎng zhòng bó shōu\",\r\n    种瓜得瓜: \"zhòng guā dé guā\",\r\n    种豆得豆: \"zhòng dòu dé dòu\",\r\n    难舍难分: \"nán shě nán fēn\",\r\n    歃血为盟: \"shà xuè wéi méng\",\r\n    奋发有为: \"fèn fā yǒu wéi\",\r\n    阴错阳差: \"yīn cuò yáng chā\",\r\n    东躲西藏: \"dōng duǒ xī cáng\",\r\n    烟熏火燎: \"yān xūn huǒ liǎo\",\r\n    钻牛角尖: \"zuān niú jiǎo jiān\",\r\n    乔装打扮: \"qiáo zhuāng dǎ bàn\",\r\n    改弦更张: \"gǎi xián gēng zhāng\",\r\n    河南梆子: \"hé nán bāng zi\",\r\n    好吃懒做: \"hào chī lǎn zuò\",\r\n    何乐不为: \"hé lè bù wéi\",\r\n    大出风头: \"dà chū fēng tóu\",\r\n    攻城掠地: \"gōng chéng lüè dì\",\r\n    漂漂亮亮: \"piào piào liang liang\",\r\n    折衷主义: \"zhé zhōng zhǔ yì\",\r\n    大马哈鱼: \"dà mǎ hǎ yú\",\r\n    绿树成荫: \"lǜ shù chéng yīn\",\r\n    率先垂范: \"shuài xiān chuí fàn\",\r\n    家长里短: \"jiā cháng lǐ duǎn\",\r\n    宽大为怀: \"kuān dà wéi huái\",\r\n    左膀右臂: \"zuǒ bǎng yòu bì\",\r\n    一笑了之: \"yí xiào liǎo zhī\",\r\n    天下为公: \"tiān xià wéi gōng\",\r\n    还我河山: \"huán wǒ hé shān\",\r\n    何足为奇: \"hé zú wéi qí\",\r\n    好自为之: \"hǎo zì wéi zhī\",\r\n    风姿绰约: \"fēng zī chuò yuē\",\r\n    大雨滂沱: \"dà yǔ pāng tuó\",\r\n    传为佳话: \"chuán wéi jiā huà\",\r\n    吃里扒外: \"chī lǐ pá wài\",\r\n    重操旧业: \"chóng cāo jiù yè\",\r\n    小家子气: \"xiǎo jiā zi qì\",\r\n    少不更事: \"shào bù gēng shì\",\r\n    难分难舍: \"nán fēn nán shě\",\r\n    添砖加瓦: \"tiān zhuān jiā wǎ\",\r\n    是非分明: \"shì fēi fēn míng\",\r\n    舍我其谁: \"shě wǒ qí shuí\",\r\n    偏听偏信: \"piān tīng piān xìn\",\r\n    量入为出: \"liàng rù wéi chū\",\r\n    降龙伏虎: \"xiáng lóng fú hǔ\",\r\n    钢化玻璃: \"gāng huà bō li\",\r\n    正中下怀: \"zhèng zhòng xià huái\",\r\n    以身许国: \"yǐ shēn xǔ guó\",\r\n    一语中的: \"yì yǔ zhòng dì\",\r\n    丧魂落魄: \"sàng hún luò pò\",\r\n    三座大山: \"sān zuò dà shān\",\r\n    济济一堂: \"jǐ jǐ yì táng\",\r\n    好事之徒: \"hào shì zhī tú\",\r\n    干净利索: \"gàn jìng lì suǒ\",\r\n    出将入相: \"chū jiàng rù xiàng\",\r\n    袅袅娜娜: \"niǎo niǎo nuó nuó\",\r\n    狐狸尾巴: \"hú li wěi ba\",\r\n    好逸恶劳: \"hào yì wù láo\",\r\n    大而无当: \"dà ér wú dàng\",\r\n    打马虎眼: \"dǎ mǎ hu yǎn\",\r\n    板上钉钉: \"bǎn shàng dìng dīng\",\r\n    吆五喝六: \"yāo wǔ hè liù\",\r\n    虾兵蟹将: \"xiā bīng xiè jiàng\",\r\n    水调歌头: \"shuǐ diào gē tóu\",\r\n    数典忘祖: \"shǔ diǎn wàng zǔ\",\r\n    人事不省: \"rén shì bù xǐng\",\r\n    曲高和寡: \"qǔ gāo hè guǎ\",\r\n    屡教不改: \"lǚ jiào bù gǎi\",\r\n    互为因果: \"hù wéi yīn guǒ\",\r\n    互为表里: \"hù wéi biǎo lǐ\",\r\n    厚此薄彼: \"hòu cǐ bó bǐ\",\r\n    过关斩将: \"guò guān zhǎn jiàng\",\r\n    疙疙瘩瘩: \"gē ge dā dā\",\r\n    大腹便便: \"dà fù pián pián\",\r\n    走为上策: \"zǒu wéi shàng cè\",\r\n    冤家对头: \"yuān jia duì tóu\",\r\n    有隙可乘: \"yǒu xì kě chèng\",\r\n    一鳞半爪: \"yì lín bàn zhǎo\",\r\n    片言只语: \"piàn yán zhǐ yǔ\",\r\n    开花结实: \"kāi huā jié shí\",\r\n    经年累月: \"jīng nián lěi yuè\",\r\n    含糊其词: \"hán hú qí cí\",\r\n    寡廉鲜耻: \"guǎ lián xiǎn chǐ\",\r\n    成年累月: \"chéng nián lěi yuè\",\r\n    不徇私情: \"bú xùn sī qíng\",\r\n    不当人子: \"bù dāng rén zǐ\",\r\n    膀大腰圆: \"bǎng dà yāo yuán\",\r\n    指腹为婚: \"zhǐ fù wéi hūn\",\r\n    这么点儿: \"zhè me diǎn er\",\r\n    意兴索然: \"yì xīng suǒ rán\",\r\n    绣花枕头: \"xiù huā zhěn tou\",\r\n    无的放矢: \"wú dì fàng shǐ\",\r\n    望闻问切: \"wàng wén wèn qiè\",\r\n    舍己为人: \"shě jǐ wèi rén\",\r\n    穷年累月: \"qióng nián lěi yuè\",\r\n    排难解纷: \"pái nàn jiě fēn\",\r\n    处之泰然: \"chǔ zhī tài rán\",\r\n    指鹿为马: \"zhǐ lù wéi mǎ\",\r\n    危如累卵: \"wēi rú lěi luǎn\",\r\n    天兵天将: \"tiān bīng tiān jiàng\",\r\n    舍近求远: \"shě jìn qiú yuǎn\",\r\n    南腔北调: \"nán qiāng běi diào\",\r\n    苦中作乐: \"kǔ zhōng zuò lè\",\r\n    厚积薄发: \"hòu jī bó fā\",\r\n    臭味相投: \"xiù wèi xiāng tóu\",\r\n    长幼有序: \"zhǎng yòu yǒu xù\",\r\n    逼良为娼: \"bī liáng wéi chāng\",\r\n    悲悲切切: \"bēi bēi qiè qiē\",\r\n    败军之将: \"bài jūn zhī jiàng\",\r\n    欺行霸市: \"qī háng bà shì\",\r\n    削足适履: \"xuē zú shì lǚ\",\r\n    先睹为快: \"xiān dǔ wéi kuài\",\r\n    啼饥号寒: \"tí jī háo hán\",\r\n    疏不间亲: \"shū bú jiàn qīn\",\r\n    神差鬼使: \"shén chāi guǐ shǐ\",\r\n    敲敲打打: \"qiāo qiāo dǎ dǎ\",\r\n    平铺直叙: \"píng pū zhí xù\",\r\n    没头没尾: \"méi tóu mò wěi\",\r\n    寥寥可数: \"liáo liáo kě shǔ\",\r\n    哼哈二将: \"hēng hā èr jiàng\",\r\n    鹤发童颜: \"hè fà tóng yán\",\r\n    各奔前程: \"gè bèn qián chéng\",\r\n    弹无虚发: \"dàn wú xū fā\",\r\n    大人先生: \"dà rén xiān sheng\",\r\n    与民更始: \"yǔ mín gēng shǐ\",\r\n    树碑立传: \"shù bēi lì zhuàn\",\r\n    是非得失: \"shì fēi dé shī\",\r\n    实逼处此: \"shí bī chǔ cǐ\",\r\n    塞翁失马: \"sài wēng shī mǎ\",\r\n    日薄西山: \"rì bó xī shān\",\r\n    切身体会: \"qiè shēn tǐ huì\",\r\n    片言只字: \"piàn yán zhǐ zì\",\r\n    跑马卖解: \"pǎo mǎ mài xiè\",\r\n    宁折不弯: \"nìng zhé bù wān\",\r\n    零零散散: \"líng líng sǎn sǎn\",\r\n    量体裁衣: \"liàng tǐ cái yī\",\r\n    连中三元: \"lián zhòng sān yuán\",\r\n    礼崩乐坏: \"lǐ bēng yuè huài\",\r\n    不为已甚: \"bù wéi yǐ shèn\",\r\n    转悲为喜: \"zhuǎn bēi wéi xǐ\",\r\n    以眼还眼: \"yǐ yǎn huán yǎn\",\r\n    蔚为大观: \"wèi wéi dà guān\",\r\n    未为不可: \"wèi wéi bù kě\",\r\n    童颜鹤发: \"tóng yán hè fà\",\r\n    朋比为奸: \"péng bǐ wéi jiān\",\r\n    莫此为甚: \"mò cǐ wéi shèn\",\r\n    夹枪带棒: \"jiā qiāng dài bàng\",\r\n    富商巨贾: \"fù shāng jù jiǎ\",\r\n    淡然处之: \"dàn rán chǔ zhī\",\r\n    箪食壶浆: \"dān shí hú jiāng\",\r\n    创巨痛深: \"chuāng jù tòng shēn\",\r\n    草长莺飞: \"cǎo zhǎng yīng fēi\",\r\n    坐视不救: \"zuò shī bú jiù\",\r\n    以己度人: \"yǐ jǐ duó rén\",\r\n    随行就市: \"suí háng jiù shì\",\r\n    文以载道: \"wén yǐ zài dào\",\r\n    文不对题: \"wén bú duì tí\",\r\n    铁板钉钉: \"tiě bǎn dìng dīng\",\r\n    身体发肤: \"shēn tǐ fà fū\",\r\n    缺吃少穿: \"quē chī shǎo chuān\",\r\n    目无尊长: \"mù wú zūn zhǎng\",\r\n    吉人天相: \"jí rén tiān xiàng\",\r\n    毁家纾难: \"huǐ jiā shū nàn\",\r\n    钢筋铁骨: \"gāng jīn tiě gǔ\",\r\n    丢卒保车: \"diū zú bǎo jū\",\r\n    丢三落四: \"diū sān là sì\",\r\n    闭目塞听: \"bì mù sè tīng\",\r\n    削尖脑袋: \"xuē jiān nǎo dài\",\r\n    为非作恶: \"wéi fēi zuò è\",\r\n    人才难得: \"rén cái nán dé\",\r\n    情非得已: \"qíng fēi dé yǐ\",\r\n    切中要害: \"qiè zhòng yào hài\",\r\n    火急火燎: \"huǒ jí huǒ liǎo\",\r\n    画地为牢: \"huà dì wéi láo\",\r\n    好酒贪杯: \"hào jiǔ tān bēi\",\r\n    长歌当哭: \"cháng gē dàng kū\",\r\n    载沉载浮: \"zài chén zài fú\",\r\n    遇难呈祥: \"yù nàn chéng xiáng\",\r\n    榆木疙瘩: \"yú mù gē da\",\r\n    以邻为壑: \"yǐ lín wéi hè\",\r\n    洋为中用: \"yáng wéi zhōng yòng\",\r\n    言为心声: \"yán wéi xīn shēng\",\r\n    言必有中: \"yán bì yǒu zhòng\",\r\n    图穷匕见: \"tú qióng bǐ xiàn\",\r\n    滂沱大雨: \"páng tuó dà yǔ\",\r\n    目不暇给: \"mù bù xiá jǐ\",\r\n    量才录用: \"liàng cái lù yòng\",\r\n    教学相长: \"jiào xué xiāng zhǎng\",\r\n    悔不当初: \"huǐ bù dāng chū\",\r\n    呼幺喝六: \"hū yāo hè liù\",\r\n    不足为训: \"bù zú wéi xùn\",\r\n    不拘形迹: \"bù jū xíng jī\",\r\n    傍若无人: \"páng ruò wú rén\",\r\n    罪责难逃: \"zuì zé nán táo\",\r\n    自我吹嘘: \"zì wǒ chuī xū\",\r\n    转祸为福: \"zhuǎn huò wéi fú\",\r\n    勇冠三军: \"yǒng guàn sān jūn\",\r\n    易地而处: \"yì dì ér chǔ\",\r\n    卸磨杀驴: \"xiè mò shā lǘ\",\r\n    玩儿不转: \"wán ér bú zhuàn\",\r\n    天道好还: \"tiān dào hǎo huán\",\r\n    身单力薄: \"shēn dān lì bó\",\r\n    撒豆成兵: \"sǎ dòu chéng bīng\",\r\n    片纸只字: \"piàn zhǐ zhī zì\",\r\n    宁缺毋滥: \"nìng quē wú làn\",\r\n    没没无闻: \"mò mò wú wén\",\r\n    量力而为: \"liàng lì ér wéi\",\r\n    历历可数: \"lì lì kě shǔ\",\r\n    口碑载道: \"kǒu bēi zài dào\",\r\n    君子好逑: \"jūn zǐ hǎo qiú\",\r\n    好为人师: \"hào wéi rén shī\",\r\n    豪商巨贾: \"háo shāng jù jiǎ\",\r\n    各有所好: \"gè yǒu suǒ hào\",\r\n    度德量力: \"duó dé liàng lì\",\r\n    指天为誓: \"zhǐ tiān wéi shì\",\r\n    逸兴遄飞: \"yì xìng chuán fēi\",\r\n    心宽体胖: \"xīn kuān tǐ pán\",\r\n    为德不卒: \"wéi dé bù zú\",\r\n    天下为家: \"tiān xià wéi jiā\",\r\n    视为畏途: \"shì wéi wèi tú\",\r\n    三灾八难: \"sān zāi bā nàn\",\r\n    沐猴而冠: \"mù hóu ér guàn\",\r\n    哩哩啦啦: \"lī li lā lā\",\r\n    见缝就钻: \"jiàn fèng jiù zuān\",\r\n    夹层玻璃: \"jiā céng bō li\",\r\n    急公好义: \"jí gōng hào yì\",\r\n    积年累月: \"jī nián lěi yuè\",\r\n    划地为牢: \"huá dì wéi láo\",\r\n    更名改姓: \"gēng míng gǎi xìng\",\r\n    奉为圭臬: \"fèng wéi guī niè\",\r\n    多难兴邦: \"duō nàn xīng bāng\",\r\n    不破不立: \"bú pò bú lì\",\r\n    坐地自划: \"zuò dì zì huá\",\r\n    坐不重席: \"zuò bù chóng xí\",\r\n    坐不窥堂: \"zuò bù kuī táng\",\r\n    作嫁衣裳: \"zuò jià yī shang\",\r\n    左枝右梧: \"zuǒ zhī yòu wú\",\r\n    左宜右有: \"zuǒ yí yòu yǒu\",\r\n    钻头觅缝: \"zuān tóu mì fèng\",\r\n    钻天打洞: \"zuān tiān dǎ dòng\",\r\n    钻皮出羽: \"zuān pí chū yǔ\",\r\n    钻火得冰: \"zuān huǒ dé bīng\",\r\n    钻洞觅缝: \"zuàn dòng mì féng\",\r\n    钻冰求火: \"zuān bīng qiú huǒ\",\r\n    子为父隐: \"zǐ wéi fù yǐn\",\r\n    擢发难数: \"zhuó fà nán shǔ\",\r\n    着人先鞭: \"zhuó rén xiān biān\",\r\n    斫雕为朴: \"zhuó diāo wéi pǔ\",\r\n    锥处囊中: \"zhuī chǔ náng zhōng\",\r\n    椎心饮泣: \"chuí xīn yǐn qì\",\r\n    椎心泣血: \"chuí xīn qì xuè\",\r\n    椎牛飨士: \"chuí niú xiǎng shì\",\r\n    椎牛歃血: \"chuí niú shà xuè\",\r\n    椎牛发冢: \"chuí niú fà zhǒng\",\r\n    椎埋屠狗: \"chuí mái tú gǒu\",\r\n    椎埋狗窃: \"chuí mái gǒu qiè\",\r\n    壮发冲冠: \"zhuàng fā chōng guàn\",\r\n    庄严宝相: \"zhuāng yán bǎo xiàng\",\r\n    转愁为喜: \"zhuǎn chóu wéi xǐ\",\r\n    转嗔为喜: \"zhuǎn chēn wéi xǐ\",\r\n    拽巷啰街: \"zhuài xiàng luó jiē\",\r\n    拽耙扶犁: \"zhuāi pá fú lí\",\r\n    拽布拖麻: \"zhuài bù tuō má\",\r\n    箸长碗短: \"zhù cháng wǎn duǎn\",\r\n    铸剑为犁: \"zhù jiàn wéi lí\",\r\n    杼柚其空: \"zhù yòu qí kōng\",\r\n    杼柚空虚: \"zhù yòu kōng xū\",\r\n    助天为虐: \"zhù tiān wéi nüè\",\r\n    属垣有耳: \"zhǔ yuán yǒu ěr\",\r\n    属毛离里: \"zhǔ máo lí lǐ\",\r\n    属辞比事: \"zhǔ cí bǐ shì\",\r\n    逐物不还: \"zhú wù bù huán\",\r\n    铢量寸度: \"zhū liáng cùn duó\",\r\n    铢两悉称: \"zhū liǎng xī chèn\",\r\n    侏儒观戏: \"zhū rú guān xì\",\r\n    朱轓皁盖: \"zhū fān zào gài\",\r\n    昼度夜思: \"zhòu duó yè sī\",\r\n    诪张为幻: \"zhōu zhāng wéi huàn\",\r\n    重明继焰: \"chóng míng jì yàn\",\r\n    众啄同音: \"zhòng zhuó tóng yīn\",\r\n    众毛攒裘: \"zhòng máo cuán qiú\",\r\n    众好众恶: \"zhòng hào zhòng wù\",\r\n    擿埴索涂: \"zhāi zhí suǒ tú\",\r\n    稚齿婑媠: \"zhì chǐ wǒ tuó\",\r\n    至当不易: \"zhì dàng bú yì\",\r\n    指皂为白: \"zhǐ zào wéi bái\",\r\n    指雁为羹: \"zhǐ yàn wéi gēng\",\r\n    指树为姓: \"zhǐ shù wéi xìng\",\r\n    指山说磨: \"zhǐ shān shuō mò\",\r\n    止戈为武: \"zhǐ gē wéi wǔ\",\r\n    枝干相持: \"zhī gàn xiāng chí\",\r\n    枝大于本: \"zh dà yú běn\",\r\n    支吾其词: \"zhī wú qí cí\",\r\n    正身率下: \"zhèng shēn shuài xià\",\r\n    正冠李下: \"zhèng guàn lǐ xià\",\r\n    整冠纳履: \"zhěng guān nà lǚ\",\r\n    整躬率物: \"zhěng gōng shuài wù\",\r\n    整顿干坤: \"zhěng dùn gàn kūn\",\r\n    针头削铁: \"zhēn tóu xuē tiě\",\r\n    贞松劲柏: \"zhēn sōng jìng bǎi\",\r\n    赭衣塞路: \"zhě yī sè lù\",\r\n    折箭为誓: \"shé jiàn wéi shì\",\r\n    折而族之: \"zhé ér zú zhī\",\r\n    昭德塞违: \"zhāo dé sè wéi\",\r\n    章句小儒: \"zhāng jù xiǎo rú\",\r\n    湛恩汪濊: \"zhàn ēn wāng huì\",\r\n    占风望气: \"zhān fēng wàng qì\",\r\n    斩将搴旗: \"zhǎn jiàng qiān qí\",\r\n    曾母投杼: \"zēng mǔ tóu zhù\",\r\n    曾参杀人: \"zēng shēn shā rén\",\r\n    造谣中伤: \"zào yáo zhòng shāng\",\r\n    早占勿药: \"zǎo zhān wù yào\",\r\n    凿龟数策: \"záo guī shǔ cè\",\r\n    攒三聚五: \"cuán sān jù wǔ\",\r\n    攒眉蹙额: \"cuán mei cù é\",\r\n    攒零合整: \"cuán líng hé zhěng\",\r\n    攒锋聚镝: \"cuán fēng jù dí\",\r\n    载笑载言: \"zài xiào zài yán\",\r\n    载酒问字: \"zài jiǔ wèn zì\",\r\n    殒身不恤: \"yǔn shēn bú xù\",\r\n    云舒霞卷: \"yún shū xiá juǎn\",\r\n    月中折桂: \"yuè zhōng shé guì\",\r\n    月落参横: \"yuè luò shēn héng\",\r\n    鬻驽窃价: \"yù nú qiè jià\",\r\n    鬻鸡为凤: \"yù jī wéi fèng\",\r\n    遇难成祥: \"yù nàn chéng xiáng\",\r\n    郁郁累累: \"yù yù lěi lěi\",\r\n    玉卮无当: \"yù zhī wú dàng\",\r\n    语笑喧阗: \"yǔ xiào xuān tián\",\r\n    与世沉浮: \"yǔ shì chén fú\",\r\n    与时消息: \"yǔ shí xiāo xi\",\r\n    逾墙钻隙: \"yú qiáng zuān xì\",\r\n    渔夺侵牟: \"yú duó qīn móu\",\r\n    杅穿皮蠹: \"yú chuān pí dù\",\r\n    余勇可贾: \"yú yǒng kě gǔ\",\r\n    予智予雄: \"yú zhì yú xióng\",\r\n    予取予求: \"yú qǔ yú qiú\",\r\n    于家为国: \"yú jiā wéi guó\",\r\n    有借无还: \"yǒu jiè wú huán\",\r\n    有加无已: \"yǒu jiā wú yǐ\",\r\n    有国难投: \"yǒu guó nán tóu\",\r\n    游必有方: \"yóu bì yǒu fāng\",\r\n    油干灯尽: \"yóu gàn dēng jìn\",\r\n    尤云殢雨: \"yóu yún tì yǔ\",\r\n    庸中皦皦: \"yōng zhōng jiǎo jiǎo\",\r\n    郢书燕说: \"yǐng shū yān shuō\",\r\n    营蝇斐锦: \"yíng yíng fēi jǐn\",\r\n    鹰心雁爪: \"yīng xīn yàn zhǎo\",\r\n    莺吟燕儛: \"yīng yín yàn wǔ\",\r\n    应天顺时: \"yīng tiān shùn shí\",\r\n    印累绶若: \"yìn léi shòu ruò\",\r\n    隐占身体: \"yǐn zhàn shēn tǐ\",\r\n    饮犊上流: \"yìn dú shàng liú\",\r\n    引绳切墨: \"yǐn shéng qiē mò\",\r\n    龈齿弹舌: \"yín chǐ dàn shé\",\r\n    因缘为市: \"yīn yuán wéi shì\",\r\n    因树为屋: \"yīn shù wéi wū\",\r\n    溢美溢恶: \"yì měi yì wù\",\r\n    抑塞磊落: \"yì sè lěi luò\",\r\n    倚闾望切: \"yǐ lǘ wàng qiē\",\r\n    以意为之: \"yǐ yì wéi zhī\",\r\n    以言为讳: \"yǐ yán wéi huì\",\r\n    以疏间亲: \"yǐ shū jiàn qīn\",\r\n    以水济水: \"yǐ shuǐ jǐ shuǐ\",\r\n    以书为御: \"yǐ shū wéi yù\",\r\n    以守为攻: \"yǐ shǒu wéi gōng\",\r\n    以升量石: \"yǐ shēng liáng dàn\",\r\n    以慎为键: \"yǐ shèn wéi jiàn\",\r\n    以筌为鱼: \"yǐ quán wéi yú\",\r\n    以利累形: \"yǐ lì lěi xíng\",\r\n    以毁为罚: \"yǐ huǐ wéi fá\",\r\n    以黑为白: \"yǐ hēi wéi bái\",\r\n    以规为瑱: \"yǐ guī wéi tiàn\",\r\n    以古为鉴: \"yǐ gǔ wéi jiàn\",\r\n    以宫笑角: \"yǐ gōng xiào jué\",\r\n    以法为教: \"yǐ fǎ wéi jiào\",\r\n    以大恶细: \"yǐ dà wù xì\",\r\n    遗世忘累: \"yí shì wàng lěi\",\r\n    遗寝载怀: \"yí qǐn zài huái\",\r\n    移的就箭: \"yí dì jiù jiàn\",\r\n    依头缕当: \"yī tóu lǚ dàng\",\r\n    衣租食税: \"yì zū shí shuì\",\r\n    衣轻乘肥: \"yì qīng chéng féi\",\r\n    衣裳之会: \"yī shang zhī huì\",\r\n    衣单食薄: \"yī dān shí bó\",\r\n    一还一报: \"yì huán yí bào\",\r\n    叶公好龙: \"yè gōng hào lóng\",\r\n    野调无腔: \"yě diào wú qiāng\",\r\n    瑶池女使: \"yáo chí nǚ shǐ\",\r\n    幺麽小丑: \"yāo mó xiǎo chǒu\",\r\n    养精畜锐: \"yǎng jīng xù ruì\",\r\n    卬首信眉: \"áng shǒu shēn méi\",\r\n    洋洋纚纚: \"yáng yáng sǎ sǎ\",\r\n    羊羔美酒: \"yáng gāo měi jiǔ\",\r\n    扬风扢雅: \"yáng fēng jié yǎ\",\r\n    燕昭市骏: \"yān zhāo shì jùn\",\r\n    燕昭好马: \"yān zhāo hǎo mǎ\",\r\n    燕石妄珍: \"yān shí wàng zhēn\",\r\n    燕骏千金: \"yān jùn qiān jīn\",\r\n    燕金募秀: \"yān jīn mù xiù\",\r\n    燕驾越毂: \"yān jià yuè gǔ\",\r\n    燕歌赵舞: \"yān gē zhào wǔ\",\r\n    燕岱之石: \"yān dài zhī shí\",\r\n    燕处危巢: \"yàn chǔ wēi cháo\",\r\n    掞藻飞声: \"shàn zǎo fēi shēng\",\r\n    偃革为轩: \"yǎn gé wéi xuān\",\r\n    妍蚩好恶: \"yán chī hǎo è\",\r\n    压良为贱: \"yā liáng wéi jiàn\",\r\n    搀行夺市: \"chān háng duó shì\",\r\n    泣数行下: \"qì shù háng xià\",\r\n    当行出色: \"dāng háng chū sè\",\r\n    秀出班行: \"xiù chū bān háng\",\r\n    儿女成行: \"ér nǚ chéng háng\",\r\n    大行大市: \"dà háng dà shì\",\r\n    寻行数墨: \"xún háng shǔ mò\",\r\n    埙篪相和: \"xūn chí xiāng hè\",\r\n    血债累累: \"xuè zhài lěi lěi\",\r\n    炫玉贾石: \"xuàn yù gǔ shí\",\r\n    炫石为玉: \"xuàn shí wéi yù\",\r\n    悬石程书: \"xuán dàn chéng shū\",\r\n    悬狟素飡: \"xuán huán sù cān\",\r\n    悬龟系鱼: \"xuán guī xì yú\",\r\n    揎拳捋袖: \"xuān quán luō xiù\",\r\n    轩鹤冠猴: \"xuān hè guàn hóu\",\r\n    畜妻养子: \"xù qī yǎng zǐ\",\r\n    羞人答答: \"xiū rén dā dā\",\r\n    修鳞养爪: \"xiū lín yǎng zhǎo\",\r\n    熊据虎跱: \"xióng jù hǔ zhì\",\r\n    兄死弟及: \"xiōng sǐ dì jí\",\r\n    腥闻在上: \"xīng wén zài shàng\",\r\n    兴文匽武: \"xīng wén yǎn wǔ\",\r\n    兴观群怨: \"xìng guān qún yuàn\",\r\n    兴高彩烈: \"xìng gāo cǎi liè\",\r\n    心手相应: \"xīn shǒu xiāng yìng\",\r\n    心口相应: \"xīn kǒu xiāng yīng\",\r\n    挟势弄权: \"xié shì nòng quán\",\r\n    胁肩累足: \"xié jiān lěi zú\",\r\n    校短量长: \"jiào duǎn liáng cháng\",\r\n    小眼薄皮: \"xiǎo yǎn bó pí\",\r\n    硝云弹雨: \"xiāo yún dàn yǔ\",\r\n    鸮鸣鼠暴: \"xiāo míng shǔ bào\",\r\n    削株掘根: \"xuē zhū jué gēn\",\r\n    削铁无声: \"xuē tiě wú shēng\",\r\n    削职为民: \"xuē zhí wéi mín\",\r\n    削木为吏: \"xuē mù wéi lì\",\r\n    想望风褱: \"xiǎng wàng fēng huái\",\r\n    香培玉琢: \"xiang pei yu zhuó\",\r\n    相鼠有皮: \"xiàng shǔ yǒu pí\",\r\n    相时而动: \"xiàng shí ér dòng\",\r\n    相切相磋: \"xiāng qiē xiāng cuō\",\r\n    相女配夫: \"xiàng nǚ pèi fū\",\r\n    相门有相: \"xiàng mén yǒu xiàng\",\r\n    挦章撦句: \"xián zhāng chě jù\",\r\n    先我着鞭: \"xiān wǒ zhuó biān\",\r\n    习焉不察: \"xí yān bù chá\",\r\n    歙漆阿胶: \"shè qī ē jiāo\",\r\n    晰毛辨发: \"xī máo biàn fà\",\r\n    悉索薄赋: \"xī suǒ bó fù\",\r\n    雾鳞云爪: \"wù lín yún zhǎo\",\r\n    物稀为贵: \"wù xī wéi guì\",\r\n    碔砆混玉: \"wǔ fū hùn yù\",\r\n    武断专横: \"wǔ duàn zhuān héng\",\r\n    五石六鹢: \"wǔ shí liù yì\",\r\n    五色相宣: \"wǔ sè xiāng xuān\",\r\n    五侯七贵: \"wǔ hóu qī guì\",\r\n    五侯蜡烛: \"wǔ hòu là zhú\",\r\n    五羖大夫: \"wǔ gǔ dà fū\",\r\n    吾自有处: \"wú zì yǒu chǔ\",\r\n    无下箸处: \"wú xià zhù chǔ\",\r\n    无伤无臭: \"wú shāng wú xiù\",\r\n    无能为役: \"wú néng wéi yì\",\r\n    无寇暴死: \"wú kòu bào sǐ\",\r\n    无孔不钻: \"wú kǒng bú zuàn\",\r\n    无间可乘: \"wú jiān kě chéng\",\r\n    无间冬夏: \"wú jiān dōng xià\",\r\n    无恶不为: \"wú è bù wéi\",\r\n    无动为大: \"wú dòng wéi dà\",\r\n    诬良为盗: \"wū liáng wéi dào\",\r\n    握拳透爪: \"wò quán tòu zhǎo\",\r\n    文武差事: \"wén wǔ chāi shì\",\r\n    委委佗佗: \"wēi wēi tuó tuó\",\r\n    惟日为岁: \"wéi rì wéi suì\",\r\n    帷薄不修: \"wéi bó bù xiū\",\r\n    为善最乐: \"wéi shàn zuì lè\",\r\n    为山止篑: \"wéi shān zhǐ kuì\",\r\n    为仁不富: \"wéi rén bú fù\",\r\n    为裘为箕: \"wéi qiú wéi jī\",\r\n    为民父母: \"wéi mín fù mǔ\",\r\n    为虺弗摧: \"wéi huǐ fú cuī\",\r\n    为好成歉: \"wéi hǎo chéng qiàn\",\r\n    为鬼为蜮: \"wéi guǐ wéi yù\",\r\n    望风响应: \"wàng fēng xiǎng yīng\",\r\n    望尘僄声: \"wàng chén piào shēng\",\r\n    往渚还汀: \"wǎng zhǔ huán tīng\",\r\n    王贡弹冠: \"wáng gòng dàn guàn\",\r\n    亡国大夫: \"wáng guó dà fū\",\r\n    万贯家私: \"wàn guàn jiā sī\",\r\n    晚食当肉: \"wǎn shí dàng ròu\",\r\n    晚节不保: \"wǎn jié bù bǎo\",\r\n    玩岁愒时: \"wán suì kài shí\",\r\n    蛙蟆胜负: \"wā má shèng fù\",\r\n    吞言咽理: \"tūn yán yàn lǐ\",\r\n    颓垣断堑: \"tuí yuán duàn qiàn\",\r\n    推干就湿: \"tuī gàn jiù shī\",\r\n    剸繁决剧: \"tuán fán jué jù\",\r\n    团头聚面: \"tuán tóu jù miàn\",\r\n    兔丝燕麦: \"tù sī yàn mài\",\r\n    兔头麞脑: \"tù tóu zhāng nǎo\",\r\n    兔葵燕麦: \"tù kuí yàn mài\",\r\n    吐哺握发: \"tǔ bǔ wò fà\",\r\n    投传而去: \"tóu zhuàn ér qù\",\r\n    头没杯案: \"tóu mò bēi àn\",\r\n    头昏脑闷: \"tóu hūn nǎo mèn\",\r\n    头会箕敛: \"tóu kuài jī liǎn\",\r\n    头出头没: \"tóu chū tóu mò\",\r\n    痛自创艾: \"tòng zì chuāng yì\",\r\n    同恶相助: \"tóng wù xiāng zhù\",\r\n    同恶相恤: \"tóng wù xiāng xù\",\r\n    痌瘝在抱: \"tōng guān zài bào\",\r\n    通文调武: \"tōng wén diào wǔ\",\r\n    停留长智: \"tíng liú zhǎng zhì\",\r\n    铁树开华: \"tiě shù kāi huā\",\r\n    条贯部分: \"tiáo guàn bù fēn\",\r\n    挑牙料唇: \"tiǎo yá liào chún\",\r\n    挑么挑六: \"tiāo yāo tiāo liù\",\r\n    挑唇料嘴: \"tiǎo chún liào zuǐ\",\r\n    恬不为意: \"tián bù wéi yì\",\r\n    恬不为怪: \"tián bù wéi guài\",\r\n    天下为笼: \"tiān xià wéi lóng\",\r\n    天台路迷: \"tiān tái lù mí\",\r\n    天年不遂: \"tiān nián bú suì\",\r\n    探囊胠箧: \"tàn náng qū qiè\",\r\n    谭言微中: \"tán yán wēi zhòng\",\r\n    谈言微中: \"tán yán wēi zhòng\",\r\n    狧穅及米: \"shì kāng jí mǐ\",\r\n    随物应机: \"suí wù yīng jī\",\r\n    搜岩采干: \"sōu yán cǎi gàn\",\r\n    宋斤鲁削: \"sòng jīn lǔ xuē\",\r\n    松筠之节: \"sōng yún zhī jié\",\r\n    四亭八当: \"sì tíng bā dàng\",\r\n    四马攒蹄: \"sì mǎ cuán tí\",\r\n    四不拗六: \"sì bú niù liù\",\r\n    思所逐之: \"sī suǒ zhú zhī\",\r\n    丝恩发怨: \"sī ēn fà yuàn\",\r\n    硕望宿德: \"shuò wàng xiǔ dé\",\r\n    铄古切今: \"shuò gǔ qiē jīn\",\r\n    顺风而呼: \"shùn fēng ér hū\",\r\n    顺风吹火: \"shùn fēng chuī huǒ\",\r\n    水中著盐: \"shuǐ zhōng zhuó yán\",\r\n    双柑斗酒: \"shuāng gān dǒu jiǔ\",\r\n    数米而炊: \"shǔ mǐ ér chuī\",\r\n    数米量柴: \"shǔ mǐ liáng chái\",\r\n    数理逻辑: \"shù lǐ luó ji\",\r\n    数黑论黄: \"shǔ hēi lùn huáng\",\r\n    数白论黄: \"shǔ bái lùn huáng\",\r\n    束缊还妇: \"shù yūn huán fù\",\r\n    束蒲为脯: \"shù pú wéi pú\",\r\n    束椽为柱: \"shù chuán wéi zhù\",\r\n    书缺有间: \"shū quē yǒu jiàn\",\r\n    手足重茧: \"shǒu zú chóng jiǎn\",\r\n    手足异处: \"shǒu zú yì chǔ\",\r\n    手脚干净: \"shǒu jiǎo gàn jìng\",\r\n    手不应心: \"shǒu bù yīng xīn\",\r\n    螫手解腕: \"shì shǒu jiě wàn\",\r\n    释知遗形: \"shì zhī yí xíng\",\r\n    适时应务: \"shì shí yīng wù\",\r\n    适情率意: \"shì qíng shuài yì\",\r\n    适当其冲: \"shì dāng qí chōng\",\r\n    视为知己: \"shì wéi zhī jǐ\",\r\n    使羊将狼: \"shǐ yáng jiàng láng\",\r\n    食为民天: \"shí wéi mín tiān\",\r\n    拾掇无遗: \"shí duō wú yí\",\r\n    实与有力: \"shí yù yǒu lì\",\r\n    石英玻璃: \"shí yīng bō li\",\r\n    石室金匮: \"shí shì jīn guì\",\r\n    什袭珍藏: \"shí xí zhēn cáng\",\r\n    什伍东西: \"shí wǔ dōng xī\",\r\n    什围伍攻: \"shí wéi wǔ gōng\",\r\n    十魔九难: \"shí mó jiǔ nàn\",\r\n    诗书发冢: \"shī shū fà zhǒng\",\r\n    虱处裈中: \"shī chǔ kūn zhōng\",\r\n    师直为壮: \"shī zhí wéi zhuàng\",\r\n    尸居龙见: \"shī jū lóng xiàn\",\r\n    圣经贤传: \"shèng jīng xián zhuàn\",\r\n    圣君贤相: \"shèng jūn xián xiàng\",\r\n    生拖死拽: \"shēng tuō sǐ zhuài\",\r\n    审己度人: \"shěn jǐ duó rén\",\r\n    神武挂冠: \"shén wǔ guà guàn\",\r\n    神龙失埶: \"shén lóng shī shì\",\r\n    深文曲折: \"shēn wén qǔ shé\",\r\n    深厉浅揭: \"shēn lì qiǎn qì\",\r\n    深谷为陵: \"shēn gǔ wéi líng\",\r\n    深恶痛疾: \"shēn wù tòng jí\",\r\n    深仇宿怨: \"shēn chóu xiǔ yuàn\",\r\n    舍己为公: \"shě jǐ wèi gōng\",\r\n    舍短取长: \"shě duǎn qǔ cháng\",\r\n    舍策追羊: \"shě cè zhuī yáng\",\r\n    蛇蝎为心: \"shé xiē wéi xīn\",\r\n    少成若性: \"shào chéng ruò xìng\",\r\n    上当学乖: \"shàng dàng xué guāi\",\r\n    赏不当功: \"shǎng bù dāng gōng\",\r\n    善自为谋: \"shàn zì wéi móu\",\r\n    善为说辞: \"shàn wéi shuō cí\",\r\n    善善恶恶: \"shàn shàn wù è\",\r\n    善财难舍: \"shàn cái nán shě\",\r\n    苫眼铺眉: \"shān yǎn pū méi\",\r\n    讪牙闲嗑: \"shàn yá xián kē\",\r\n    山阴乘兴: \"shān yīn chéng xīng\",\r\n    山殽野湋: \"shān yáo yě wéi\",\r\n    山溜穿石: \"shān liù chuān shí\",\r\n    山节藻棁: \"shān jié zǎo zhuō\",\r\n    杀鸡为黍: \"shā jī wéi shǔ\",\r\n    色厉胆薄: \"sè lì dǎn bó\",\r\n    桑荫未移: \"sāng yīn wèi yí\",\r\n    桑荫不徙: \"sāng yīn bù xǐ\",\r\n    桑土绸缪: \"sāng tǔ chóu miù\",\r\n    桑户棬枢: \"sāng hù juàn shū\",\r\n    三战三北: \"sān zhàn sān běi\",\r\n    三瓦两舍: \"sān wǎ liǎng shě\",\r\n    三人为众: \"sān rén wèi zhòng\",\r\n    三差两错: \"sān chā liǎng cuò\",\r\n    塞井焚舍: \"sāi jǐng fén shě\",\r\n    洒心更始: \"sǎ xīn gèng shǐ\",\r\n    洒扫应对: \"sǎ sǎo yìng duì\",\r\n    软红香土: \"ruǎn hóng xiāng tǔ\",\r\n    入吾彀中: \"rù wú gòu zhōng\",\r\n    入铁主簿: \"rù tiě zhǔ bù\",\r\n    入理切情: \"rù lǐ qiē qíng\",\r\n    汝成人耶: \"rǔ chéng rén yé\",\r\n    如水投石: \"rú shuǐ tóu shí\",\r\n    如切如磋: \"rú qiē rú cuō\",\r\n    如登春台: \"rú dēng chūn tái\",\r\n    肉薄骨并: \"ròu bó gǔ bìng\",\r\n    柔情绰态: \"róu qíng chuò tài\",\r\n    戎马劻勷: \"róng mǎ kuāng ráng\",\r\n    日中为市: \"rì zhōng wéi shì\",\r\n    日月参辰: \"rì yuè shēn chén\",\r\n    日省月修: \"rì xǐng yuè xiū\",\r\n    日削月割: \"rì xuē yuè gē\",\r\n    日省月试: \"rì xǐng yuè shì\",\r\n    任达不拘: \"rèn dá bù jū\",\r\n    人言藉藉: \"rén yán jí jí\",\r\n    人模狗样: \"rén mú gǒu yàng\",\r\n    人莫予毒: \"rén mò yú dú\",\r\n    热熬翻饼: \"rè áo fān bǐng\",\r\n    圈牢养物: \"juàn láo yǎng wù\",\r\n    取予有节: \"qǔ yǔ yǒu jié\",\r\n    诎要桡腘: \"qū yāo ráo guó\",\r\n    穷形尽相: \"qióng xíng jìn xiàng\",\r\n    情凄意切: \"qíng qī yì qiè\",\r\n    情见势屈: \"qíng xiàn shì qū\",\r\n    情见乎辞: \"qíng xiàn hū cí\",\r\n    清都绛阙: \"qīng dōu jiàng què\",\r\n    倾肠倒肚: \"qīng cháng dào dǔ\",\r\n    青紫被体: \"qīng zǐ pī tǐ\",\r\n    青林黑塞: \"qīng lín hēi sài\",\r\n    螓首蛾眉: \"qín shǒu é méi\",\r\n    琴瑟之好: \"qín sè zhī hào\",\r\n    且住为佳: \"qiě zhù wéi jiā\",\r\n    切树倒根: \"qiē shù dǎo gēn\",\r\n    切理餍心: \"qiē lǐ yàn xīn\",\r\n    切近的当: \"qiē jìn de dāng\",\r\n    翘足引领: \"qiáo zú yǐn lǐng\",\r\n    巧发奇中: \"qiǎo fā qí zhòng\",\r\n    强嘴拗舌: \"jiàng zuǐ niù shé\",\r\n    强直自遂: \"qiáng zhí zì suí\",\r\n    强死强活: \"qiǎng sǐ qiǎng huó\",\r\n    强食自爱: \"qiǎng shí zì ài\",\r\n    强食靡角: \"qiǎng shí mí jiǎo\",\r\n    强弓劲弩: \"qiáng gōng jìng nǔ\",\r\n    强聒不舍: \"qiǎng guō bù shě\",\r\n    强凫变鹤: \"qiáng fú biàn hè\",\r\n    强而后可: \"qiǎng ér hòu kě\",\r\n    强得易贫: \"qiǎng dé yì pín\",\r\n    遣兴陶情: \"qiǎn xìng táo qíng\",\r\n    牵羊担酒: \"qiān yáng dān jiǔ\",\r\n    千了百当: \"qiān liǎo bǎi dàng\",\r\n    泣下如雨: \"qì xià rú yǔ\",\r\n    起偃为竖: \"qǐ yǎn wéi shù\",\r\n    岂弟君子: \"kǎi tì jūn zǐ\",\r\n    綦溪利跂: \"qí xī lì qí\",\r\n    棋输先著: \"qí shū xiān zhuó\",\r\n    齐王舍牛: \"qí wáng shě niú\",\r\n    欺天诳地: \"qī tiān kuáng dì\",\r\n    普天率土: \"pǔ tiān shuài tǔ\",\r\n    铺胸纳地: \"pū xiōng nà dì\",\r\n    铺锦列绣: \"pū jǐn liè xiù\",\r\n    破家为国: \"pò jiā wèi guó\",\r\n    破觚为圜: \"pò gū wéi yuán\",\r\n    萍飘蓬转: \"píng piāo péng zhuàn\",\r\n    帡天极地: \"píng tiān jí dì\",\r\n    屏声息气: \"bǐng shēng xī qì\",\r\n    凭几据杖: \"píng jī jù zhàng\",\r\n    贫嘴薄舌: \"pín zuǐ bó shé\",\r\n    片语只辞: \"piàn yǔ zhī cí\",\r\n    披发文身: \"pī fà wén shēn\",\r\n    烹龙炮凤: \"pēng lóng páo fèng\",\r\n    炰鳖脍鲤: \"fǒu biē kuài lǐ\",\r\n    庞眉皓发: \"páng méi hào fà\",\r\n    攀花折柳: \"pān huā zhé liǔ\",\r\n    攀蟾折桂: \"pān chán shé guì\",\r\n    女大难留: \"nǚ dà nán liú\",\r\n    弄玉吹箫: \"nòng yù chuī xiāo\",\r\n    弄管调弦: \"nòng guǎn tiáo xián\",\r\n    弄粉调朱: \"nòng fěn diào zhū\",\r\n    浓抹淡妆: \"nóng mò dàn zhuāng\",\r\n    捻土为香: \"niǎn tǔ wéi xiāng\",\r\n    年谊世好: \"nián yì shì hǎo\",\r\n    年华垂暮: \"nián huá chuí mù\",\r\n    儗不于伦: \"nǐ bù yú lún\",\r\n    泥而不滓: \"ní ér bù zǐ\",\r\n    能者为师: \"néng zhě wéi shī\",\r\n    能不称官: \"néng bú chèn guān\",\r\n    挠直为曲: \"náo zhí wéi qū\",\r\n    难进易退: \"nán jìn yì tuì\",\r\n    难得糊涂: \"nán dé hú tú\",\r\n    南蛮鴂舌: \"nán mán jué shé\",\r\n    南贩北贾: \"nán fàn běi gǔ\",\r\n    牧猪奴戏: \"mù zhū nú xì\",\r\n    目眢心忳: \"mù yuān xīn tún\",\r\n    目挑心招: \"mù tiǎo xīn zhāo\",\r\n    目量意营: \"mù liàng yì yíng\",\r\n    木头木脑: \"mù tóu mù nǎo\",\r\n    木干鸟栖: \"mù gàn niǎo qī\",\r\n    侔色揣称: \"móu sè chuǎi chèn\",\r\n    莫予毒也: \"mò yú dú yě\",\r\n    抹粉施脂: \"mò fěn shī zhī\",\r\n    磨砻镌切: \"mó lóng juān qiē\",\r\n    磨棱刓角: \"mó léng wán jiǎo\",\r\n    摸门不着: \"mō mén bù zháo\",\r\n    摸不着边: \"mō bù zhuó biān\",\r\n    命中注定: \"mìng zhōng zhù dìng\",\r\n    鸣鹤之应: \"míng hè zhī yìng\",\r\n    明效大验: \"míng xiào dà yàn\",\r\n    名我固当: \"míng wǒ gù dāng\",\r\n    邈处欿视: \"miǎo chǔ kǎn shì\",\r\n    黾穴鸲巢: \"měng xué qú cháo\",\r\n    绵里薄材: \"mián lǐ bó cái\",\r\n    靡有孑遗: \"mǐ yǒu jié yí\",\r\n    靡衣偷食: \"mǐ yī tōu shí\",\r\n    迷恋骸骨: \"mí liàn hái gǔ\",\r\n    扪参历井: \"mén shēn lì jǐng\",\r\n    门单户薄: \"mén dān hù bó\",\r\n    昧旦晨兴: \"mèi dàn chén xīng\",\r\n    冒名接脚: \"mào míng jiē jiǎo\",\r\n    毛遂堕井: \"máo suí duò jǐng\",\r\n    毛发倒竖: \"máo fā dǎo shù\",\r\n    卖文为生: \"mài wén wéi shēng\",\r\n    卖李钻核: \"mài lǐ zuān hé\",\r\n    买椟还珠: \"mǎi dú huán zhū\",\r\n    埋三怨四: \"mán sān yuàn sì\",\r\n    马入华山: \"mǎ rù huá shān\",\r\n    落魄江湖: \"luò pò jiāng hú\",\r\n    落落难合: \"luò luò nán hé\",\r\n    落草为寇: \"luò cǎo wéi kòu\",\r\n    罗织构陷: \"luó zhī gòu xiàn\",\r\n    鸾凤和鸣: \"luán fèng hè míng\",\r\n    率由旧章: \"shuài yóu jiù zhāng\",\r\n    率土同庆: \"shuài tǔ tóng qìng\",\r\n    率兽食人: \"shuài shòu shí rén\",\r\n    率土归心: \"shuài tǔ guī xīn\",\r\n    率马以骥: \"shuài mǎ yǐ jì\",\r\n    率尔成章: \"shuài ěr chéng zhāng\",\r\n    鲁斤燕削: \"lǔ jīn yàn xuē\",\r\n    漏尽更阑: \"lòu jìn gēng lán\",\r\n    笼鸟槛猿: \"lóng niǎo jiàn yuán\",\r\n    笼鸟池鱼: \"lóng niǎo chí yú\",\r\n    龙游曲沼: \"lóng yóu qū zhǎo\",\r\n    龙血玄黄: \"lóng xuè xuán huáng\",\r\n    龙雕凤咀: \"lóng diāo fèng jǔ\",\r\n    六尺之讬: \"liù chǐ zhī tuō\",\r\n    令原之戚: \"líng yuán zhī qī\",\r\n    令人捧腹: \"lìng rén pěng fù\",\r\n    陵劲淬砺: \"líng jìng cuì lì\",\r\n    临敌易将: \"lín dí yì jiàng\",\r\n    裂裳衣疮: \"liè shang yī chuāng\",\r\n    裂冠毁冕: \"liè guàn huǐ miǎn\",\r\n    了无惧色: \"liǎo wú jù sè\",\r\n    了身达命: \"liǎo shēn dá mìng\",\r\n    了然无闻: \"liǎo rán wú wén\",\r\n    了不可见: \"liǎo bù kě jiàn\",\r\n    了不长进: \"liǎo bù zhǎng jìn\",\r\n    燎发摧枯: \"liǎo fà cuī kū\",\r\n    审时度势: \"shěn shí duó shì\",\r\n    量小力微: \"liàng xiǎo lì wēi\",\r\n    相时度力: \"xiāng shí duó lì\",\r\n    量枘制凿: \"liàng ruì zhì záo\",\r\n    量如江海: \"liàng rú jiāng hǎi\",\r\n    量金买赋: \"liàng jīn mǎi fù\",\r\n    量己审分: \"liàng jǐ shěn fēn\",\r\n    敛骨吹魂: \"liǎn gǔ chuī hún\",\r\n    詈夷为跖: \"lì yí wéi zhí\",\r\n    利令志惛: \"lì lìng zhì hūn\",\r\n    李广不侯: \"lǐ guǎng bú hòu\",\r\n    礼为情貌: \"lǐ wéi qíng mào\",\r\n    礼让为国: \"lǐ ràng wéi guó\",\r\n    犁生骍角: \"lí shēng xīng jiǎo\",\r\n    离本徼末: \"lí běn jiǎo mò\",\r\n    楞眉横眼: \"léng méi hèng yǎn\",\r\n    擂天倒地: \"léi tiān dǎo dì\",\r\n    累足成步: \"lěi zú chéng bù\",\r\n    累瓦结绳: \"lěi wǎ jié shéng\",\r\n    累土至山: \"lěi tǔ zhì shān\",\r\n    累土聚沙: \"lěi tǔ jù shā\",\r\n    累卵之危: \"lěi luǎn zhī wēi\",\r\n    累累如珠: \"lěi lěi rú zhū\",\r\n    累块积苏: \"lěi kuài jī sū\",\r\n    乐山乐水: \"lè shān lè shuǐ\",\r\n    潦原浸天: \"lǎo yuán jìn tiān\",\r\n    老师宿儒: \"lǎo shī xiǔ rú\",\r\n    牢什古子: \"láo shí gǔ zi\",\r\n    琅嬛福地: \"láng huán fú dì\",\r\n    揆情度理: \"kuí qíng duó lǐ\",\r\n    旷日累时: \"kuàng rì lěi shí\",\r\n    匡救弥缝: \"kuāng jiù mí fèng\",\r\n    枯树生华: \"kū shù shēng huā\",\r\n    口轻舌薄: \"kǒu qīng shé bó\",\r\n    口角生风: \"kǒu jiǎo shēng fēng\",\r\n    口角春风: \"kǒu jiǎo chūn fēng\",\r\n    口角风情: \"kǒu jiǎo fēng qíng\",\r\n    口干舌焦: \"kǒu gān shé jiāo\",\r\n    口腹之累: \"kǒu fù zhī lěi\",\r\n    空腹便便: \"kōng fù pián pián\",\r\n    嗑牙料嘴: \"kē yá liào zuǐ\",\r\n    刻木为鹄: \"kè mù wéi hú\",\r\n    咳珠唾玉: \"ké zhū tuò yù\",\r\n    咳唾成珠: \"ké tuò chéng zhū\",\r\n    抗颜为师: \"kàng yán wéi shī\",\r\n    开华结果: \"kāi huā jié guǒ\",\r\n    峻阪盐车: \"jùn bǎn yán chē\",\r\n    嚼铁咀金: \"jiáo tiě jǔ jīn\",\r\n    嚼墨喷纸: \"jué mò pēn zhǐ\",\r\n    倔头强脑: \"juè tóu jiàng nǎo\",\r\n    倔头倔脑: \"juè tóu juè nǎo\",\r\n    倦鸟知还: \"juàn niǎo zhī huán\",\r\n    卷席而葬: \"juǎn xí ér zàng\",\r\n    卷甲倍道: \"juǎn jiǎ bèi dào\",\r\n    聚米为山: \"jù mǐ wéi shān\",\r\n    举手相庆: \"jǔ shǒu xiāng qìng\",\r\n    举世混浊: \"jǔ shì hún zhuó\",\r\n    鞠为茂草: \"jū wéi mào cǎo\",\r\n    拘神遣将: \"jū shén qiǎn jiàng\",\r\n    居下讪上: \"jū xià shàn shàng\",\r\n    久要不忘: \"jiǔ yāo bú wàng\",\r\n    九转功成: \"jiǔ zhuǎn gōng chéng\",\r\n    九蒸三熯: \"jiǔ zhēng sān hàn\",\r\n    敬业乐群: \"jìng yè lè qún\",\r\n    井底虾蟆: \"jǐng dǐ xiā má\",\r\n    旌旗卷舒: \"jīng qí juǎn shū\",\r\n    荆棘载途: \"jīng jí zài tú\",\r\n    禁舍开塞: \"jìn shě kāi sāi\",\r\n    祲威盛容: \"jìn wēi shèng róng\",\r\n    进退消长: \"jìn tuì xiāo cháng\",\r\n    进退应矩: \"jìn tuì yīng jǔ\",\r\n    进退触籓: \"jìn tuì chù fān\",\r\n    进退跋疐: \"jìn tuì bá zhì\",\r\n    尽多尽少: \"jǐn duō jǐn shǎo\",\r\n    锦囊还矢: \"jǐn náng huán shǐ\",\r\n    矜己自饰: \"jīn jǐ zì shì\",\r\n    矜功负气: \"jīn gōng fù qì\",\r\n    津关险塞: \"jīn guān xiǎn sài\",\r\n    金吾不禁: \"jīn wú bú jìn\",\r\n    金翅擘海: \"jīn chì bāi hǎi\",\r\n    解衣衣人: \"jiě yī yī rén\",\r\n    解人难得: \"jiě rén nán dé\",\r\n    解铃系铃: \"jiě líng xì líng\",\r\n    解发佯狂: \"jiě fà yáng kuáng\",\r\n    诘屈磝碻: \"jié qū áo qiāo\",\r\n    教猱升木: \"jiāo náo shēng mù\",\r\n    较瘦量肥: \"jiào shòu liàng féi\",\r\n    角立杰出: \"jiǎo lì jié chū\",\r\n    焦沙烂石: \"jiāo shā làn shí\",\r\n    骄儿騃女: \"jiāo ér sì nǚ\",\r\n    浇风薄俗: \"jiāo fēng bó sú\",\r\n    降妖捉怪: \"xiáng yāo zhuō guài\",\r\n    将取固予: \"jiāng qǔ gù yǔ\",\r\n    将门有将: \"jiàng mén yǒu jiàng\",\r\n    将夺固与: \"jiāng duó gù yǔ\",\r\n    槛花笼鹤: \"jiàn huā lóng hè\",\r\n    鉴影度形: \"jiàn yǐng duó xíng\",\r\n    渐不可长: \"jiàn bù kě zhǎng\",\r\n    见素抱朴: \"xiàn sù bào pǔ\",\r\n    见弃于人: \"jiàn qì yú rén\",\r\n    简丝数米: \"jiǎn sī shǔ mǐ\",\r\n    俭不中礼: \"jiǎn bú zhòng lǐ\",\r\n    间见层出: \"jiàn xiàn céng chū\",\r\n    尖嘴薄舌: \"jiān zuǐ bó shé\",\r\n    甲冠天下: \"jiǎ guàn tiān xià\",\r\n    葭莩之亲: \"jiā fú zhī qīn\",\r\n    家累千金: \"jiā lèi qiān jīn\",\r\n    家给人足: \"jiā jǐ rén zú\",\r\n    家道从容: \"jiā dào cóng róng\",\r\n    夹袋人物: \"jiā dài rén wù\",\r\n    霁风朗月: \"jì fēng lǎng yuè\",\r\n    寄兴寓情: \"jì xìng yù qíng\",\r\n    计深虑远: \"jì shēn lǜ yuǎn\",\r\n    计功量罪: \"jì gōng liàng zuì\",\r\n    掎裳连襼: \"jǐ shang lián yì\",\r\n    虮虱相吊: \"jǐ shī xiāng diào\",\r\n    疾不可为: \"jí bù kě wéi\",\r\n    极深研几: \"jí shēn yán jī\",\r\n    及宾有鱼: \"jí bīn yǒu yú\",\r\n    激薄停浇: \"jī bó tíng jiāo\",\r\n    积素累旧: \"jī sù lěi jiù\",\r\n    积时累日: \"jī shí lěi rì\",\r\n    积露为波: \"jī lù wéi bō\",\r\n    积德累功: \"jī dé lěi gōng\",\r\n    积谗糜骨: \"jī chán méi gǔ\",\r\n    击排冒没: \"jī pái mào mò\",\r\n    祸为福先: \"huò wéi fú xiān\",\r\n    祸福相依: \"huò fú xiāng yī\",\r\n    获隽公车: \"huò jùn gōng chē\",\r\n    混应滥应: \"hùn yīng làn yīng\",\r\n    毁舟为杕: \"huǐ zhōu wéi duò\",\r\n    毁钟为铎: \"huǐ zhōng wéi duó\",\r\n    毁冠裂裳: \"huǐ guān liè cháng\",\r\n    晦盲否塞: \"huì máng pǐ sè\",\r\n    回船转舵: \"huí chuán zhuàn duò\",\r\n    潢池盗弄: \"huáng chí dào nòng\",\r\n    黄冠草履: \"huáng guàn cǎo lǚ\",\r\n    黄发儿齿: \"huáng fà ér chǐ\",\r\n    黄发垂髫: \"huáng fà chuí tiáo\",\r\n    还珠返璧: \"huán zhū fǎn bì\",\r\n    还年驻色: \"huán nián zhù sè\",\r\n    还年却老: \"huán nián què lǎo\",\r\n    坏裳为裤: \"huài shang wéi kù\",\r\n    画荻和丸: \"huà dí huò wán\",\r\n    化枭为鸠: \"huà xiāo wéi jiū\",\r\n    化腐为奇: \"huà fǔ wéi qí\",\r\n    化鸱为凤: \"huà chī wéi fèng\",\r\n    花不棱登: \"huā bu lēng dēng\",\r\n    户限为穿: \"hù xiàn wéi chuān\",\r\n    呼卢喝雉: \"hū lú hè zhì\",\r\n    呼来喝去: \"hū lái hè qù\",\r\n    呼不给吸: \"hū bù jǐ xī\",\r\n    厚味腊毒: \"hòu wèi xī dú\",\r\n    厚德载物: \"hòu dé zài wù\",\r\n    鸿渐于干: \"hóng jiàn yú gàn\",\r\n    洪炉燎发: \"hóng lú liáo fà\",\r\n    红绳系足: \"hóng shéng jì zú\",\r\n    红不棱登: \"hóng bu lēng dēng\",\r\n    横抢硬夺: \"hèng qiǎng yìng duó\",\r\n    横恩滥赏: \"hèng ēn làn shǎng\",\r\n    恨海难填: \"hèn hǎi nán tián\",\r\n    鹤发鸡皮: \"hè fà jī pí\",\r\n    涸思干虑: \"hé sī gān lǜ\",\r\n    河涸海干: \"hé hé hǎi gān\",\r\n    和颜说色: \"hé yán yuè sè\",\r\n    合从连衡: \"hé zòng lián héng\",\r\n    浩浩汤汤: \"hào hào shāng shāng\",\r\n    好勇斗狠: \"hào yǒng dòu hěn\",\r\n    好问则裕: \"hào wèn zé yù\",\r\n    好为事端: \"hào wéi shì duān\",\r\n    好问决疑: \"hào wèn jué yí\",\r\n    好生之德: \"hào shēng zhī dé\",\r\n    好奇尚异: \"hǎo qí shàng yì\",\r\n    好恶不同: \"hǎo è bù tóng\",\r\n    好丹非素: \"hào dān fēi sù\",\r\n    豪干暴取: \"háo gàn bào qǔ\",\r\n    毫发不爽: \"háo fà bù shuǎng\",\r\n    寒酸落魄: \"hán suān luò pò\",\r\n    含英咀华: \"hán yīng jǔ huá\",\r\n    含糊不明: \"hán hú bù míng\",\r\n    过为已甚: \"guò wéi yǐ shèn\",\r\n    桂折兰摧: \"guì shé lán cuī\",\r\n    规旋矩折: \"guī xuán jǔ shé\",\r\n    广文先生: \"guǎng wén xiān sheng\",\r\n    广陵散绝: \"guǎng líng sǎn jué\",\r\n    冠山戴粒: \"guàn shān dài lì\",\r\n    冠屦倒施: \"guàn jù dǎo shī\",\r\n    挂席为门: \"guà xí wéi mén\",\r\n    寡见鲜闻: \"guǎ jiàn xiǎn wén\",\r\n    瓜葛相连: \"guā gé xiāng lián\",\r\n    鼓吻奋爪: \"gǔ wěn fèn zhǎo\",\r\n    古调单弹: \"gǔ diào dān tán\",\r\n    古调不弹: \"gǔ diào bù tán\",\r\n    姑射神人: \"gū yè shén rén\",\r\n    苟合取容: \"gǒu hé qǔ róng\",\r\n    狗续侯冠: \"gǒu xù hòu guàn\",\r\n    钩爪锯牙: \"gōu zhǎo jù yá\",\r\n    共枝别干: \"gòng zhī bié gàn\",\r\n    共为唇齿: \"gòng wéi chún chǐ\",\r\n    拱手而降: \"gǒng shǒu ér xiáng\",\r\n    拱肩缩背: \"gǒng jiān suō bèi\",\r\n    功薄蝉翼: \"gōng bó chán yì\",\r\n    弓调马服: \"gōng diào mǎ fú\",\r\n    更姓改物: \"gēng xìng gǎi wù\",\r\n    更仆难数: \"gēng pú nán shǔ\",\r\n    更令明号: \"gēng lìng míng hào\",\r\n    更待干罢: \"gèng dài gàn bà\",\r\n    更唱迭和: \"gēng chàng dié hé\",\r\n    更长梦短: \"gēng cháng mèng duǎn\",\r\n    各色名样: \"gè sè míng yàng\",\r\n    格格不纳: \"gé gé bú nà\",\r\n    格格不吐: \"gé gé bù tǔ\",\r\n    告朔饩羊: \"gù shuò xì yáng\",\r\n    膏车秣马: \"gào chē mò mǎ\",\r\n    高义薄云: \"gāo yì bó yún\",\r\n    岗头泽底: \"gāng tóu zé dǐ\",\r\n    敢为敢做: \"gǎn wéi gǎn zuò\",\r\n    甘分随时: \"gān fèn suí shí\",\r\n    甘处下流: \"gān chǔ xià liú\",\r\n    干啼湿哭: \"gàn tí shī kū\",\r\n    干名犯义: \"gàn míng fàn yì\",\r\n    干将莫邪: \"gān jiāng mò yé\",\r\n    干城之将: \"gān chéng zhī jiàng\",\r\n    腹载五车: \"fù zài wǔ chē\",\r\n    父债子还: \"fù zhài zǐ huán\",\r\n    父为子隐: \"fù wéi zǐ yǐn\",\r\n    辅世长民: \"fǔ shì zhǎng mín\",\r\n    福为祸始: \"fú wéi huò shǐ\",\r\n    符号逻辑: \"fú hào luó jí\",\r\n    浮收勒折: \"fú shōu lè shé\",\r\n    肤受之愬: \"fū shòu zhī sù\",\r\n    否终则泰: \"pǐ zhōng zé tài\",\r\n    佛头著粪: \"fó tóu zhuó fèn\",\r\n    奉为楷模: \"fèng wéi kǎi mó\",\r\n    凤靡鸾吪: \"fèng mǐ luán é\",\r\n    封豨修蛇: \"fēng xī xiū shé\",\r\n    风影敷衍: \"fēng yǐng fū yǎn\",\r\n    丰屋蔀家: \"fēng wū bù jiā\",\r\n    粪土不如: \"fèn tǔ bù rú\",\r\n    分风劈流: \"fēn fēng pǐ liú\",\r\n    沸沸汤汤: \"fèi fèi shāng shāng\",\r\n    菲食薄衣: \"fěi shí bó yī\",\r\n    飞将数奇: \"fēi jiàng shù qí\",\r\n    放辟邪侈: \"fàng pì xié chǐ\",\r\n    方领圆冠: \"fāng lǐng yuán guàn\",\r\n    犯而不校: \"fàn ér bú jiào\",\r\n    返本还源: \"fǎn běn huán yuán\",\r\n    反劳为逸: \"fǎn láo wéi yì\",\r\n    法轮常转: \"fǎ lún cháng zhuàn\",\r\n    罚不当罪: \"fá bù dāng zuì\",\r\n    发引千钧: \"fà yǐn qiān jūn\",\r\n    发奸擿伏: \"fā jiān tī fú\",\r\n    发短心长: \"fà duǎn xīn cháng\",\r\n    二竖为虐: \"èr shù wéi nüè\",\r\n    儿女心肠: \"ér nǚ xīn cháng\",\r\n    儿女亲家: \"ér nǚ qìng jiā\",\r\n    遏恶扬善: \"è wù yáng shàn\",\r\n    饿殍枕藉: \"è piǎo zhěn jí\",\r\n    饿殍载道: \"è piǎo zài dào\",\r\n    恶醉强酒: \"wù zuì qiǎng jiǔ\",\r\n    恶意中伤: \"è yì zhòng shāng\",\r\n    恶湿居下: \"wù shī jū xià\",\r\n    恶居下流: \"wù jū xià liú\",\r\n    恶不去善: \"wù bú qù shàn\",\r\n    扼吭夺食: \"è háng duó shí\",\r\n    扼襟控咽: \"è jīn kòng yān\",\r\n    峨峨汤汤: \"é é shāng shāng\",\r\n    屙金溺银: \"ē jīn niào yín\",\r\n    朵颐大嚼: \"duǒ yí dà jiáo\",\r\n    夺人所好: \"duó rén suǒ hào\",\r\n    多言数穷: \"duō yán shuò qióng\",\r\n    多文为富: \"duō wén wéi fù\",\r\n    多端寡要: \"duō duān guǎ yào\",\r\n    多财善贾: \"duō cái shàn gǔ\",\r\n    遁世无闷: \"dùn shì wú mèn\",\r\n    遁迹黄冠: \"dùn jì huáng guàn\",\r\n    堆案盈几: \"duī àn yíng jī\",\r\n    断还归宗: \"duàn huán guī zōng\",\r\n    短见薄识: \"duǎn jiàn bó shí\",\r\n    蠹居棊处: \"dù jū qí chǔ\",\r\n    度己以绳: \"duó jǐ yǐ shéng\",\r\n    杜默为诗: \"dù mò wéi shī\",\r\n    杜鹃啼血: \"dù juān tí xuè\",\r\n    笃近举远: \"dǔ jìn jǔ yuǎn\",\r\n    独有千秋: \"dú yǒu qiān qiū\",\r\n    读书得间: \"dú shū dé jiàn\",\r\n    斗转参横: \"dǒu zhuǎn shēn héng\",\r\n    兜肚连肠: \"dōu dǔ lián cháng\",\r\n    洞见症结: \"dòng jiàn zhèng jié\",\r\n    恫疑虚喝: \"dòng yí xū hè\",\r\n    动中窾要: \"dòng zhōng kuǎn yào\",\r\n    东鸣西应: \"dōng míng xī yīng\",\r\n    东鳞西爪: \"dōng lín xī zhǎo\",\r\n    东量西折: \"dōng liàng xī shé\",\r\n    东家西舍: \"dōng jiā xī shè\",\r\n    东扯西拽: \"dōng chě xī zhuāi\",\r\n    鼎铛有耳: \"dǐng chēng yǒu ěr\",\r\n    鼎铛玉石: \"dǐng chēng yù shí\",\r\n    钉头磷磷: \"dīng tóu lín lín\",\r\n    跌宕不羁: \"diē dàng bù jī\",\r\n    跌弹斑鸠: \"diē dàn bān jiū\",\r\n    雕心雁爪: \"diāo xīn yàn zhǎo\",\r\n    颠倒衣裳: \"diān dǎo yī cháng\",\r\n    德薄能鲜: \"dé bó néng xiǎn\",\r\n    得马折足: \"dé mǎ shé zú\",\r\n    蹈其覆辙: \"dǎo qí fù zhé\",\r\n    捣虚撇抗: \"dǎo xū piē kàng\",\r\n    倒载干戈: \"dào zài gān gē\",\r\n    倒裳索领: \"dào cháng suǒ lǐng\",\r\n    倒果为因: \"dào guǒ wéi yīn\",\r\n    叨在知己: \"tāo zài zhī jǐ\",\r\n    叨陪末座: \"tāo péi mò zuò\",\r\n    党豺为虐: \"dǎng chái wéi nüè\",\r\n    当轴处中: \"dāng zhóu chǔ zhōng\",\r\n    当着不着: \"dāng zhuó bù zhuó\",\r\n    当务始终: \"dāng wù shǐ zhōng\",\r\n    淡汝浓抹: \"dàn rǔ nóng mǒ\",\r\n    弹丸脱手: \"tán wán tuō shǒu\",\r\n    弹铗无鱼: \"dàn jiá wú yú\",\r\n    箪食瓢饮: \"dān sì piáo yǐn\",\r\n    大璞不完: \"dà pú bù wán\",\r\n    大明法度: \"dà míng fǎ dù\",\r\n    大车以载: \"dà chē yǐ zài\",\r\n    打闷葫芦: \"dǎ mèn hú lu\",\r\n    沓来踵至: \"tà lái zhǒng zhì\",\r\n    厝火燎原: \"cuò huǒ liǎo yuán\",\r\n    撮科打哄: \"cuō kē dǎ hòng\",\r\n    寸积铢累: \"cùn jī zhū lěi\",\r\n    啛啛喳喳: \"cuì cuì chā chā\",\r\n    摧折豪强: \"cuī zhé háo qiáng\",\r\n    摧刚为柔: \"cuī gāng wéi róu\",\r\n    从俗就简: \"cóng sú jiù jiǎn\",\r\n    此发彼应: \"cǐ fā bǐ yīng\",\r\n    此唱彼和: \"cǐ chàng bǐ hè\",\r\n    慈悲为本: \"cí bēi wéi běn\",\r\n    纯属骗局: \"chún shǔ piàn jú\",\r\n    春笋怒发: \"chūn sǔn nù fā\",\r\n    垂头搨翼: \"chuí tóu tà yì\",\r\n    传为笑谈: \"chuán wéi xiào tán\",\r\n    传风扇火: \"chuán fēng shān huǒ\",\r\n    穿红着绿: \"chuān hóng zhuó lǜ\",\r\n    触处机来: \"chù chǔ jī lái\",\r\n    处尊居显: \"chǔ zūn jū xiǎn\",\r\n    处堂燕雀: \"chǔ táng yàn què\",\r\n    处实效功: \"chǔ shí xiào gōng\",\r\n    处高临深: \"chǔ gāo lín shēn\",\r\n    出入无间: \"chū rù wú jiān\",\r\n    出门应辙: \"chū mén yīng zhé\",\r\n    出处语默: \"chū chǔ yǔ mò\",\r\n    出处殊途: \"chū chǔ shū tú\",\r\n    出处进退: \"chū chǔ jìn tuì\",\r\n    愁山闷海: \"chóu shān mèn hǎi\",\r\n    冲冠眦裂: \"chōng guàn zì liè\",\r\n    齿牙为祸: \"chǐ yá wéi huò\",\r\n    尺二冤家: \"chǐ èr yuān jia\",\r\n    尺短寸长: \"chǐ duǎn cùn cháng\",\r\n    尺寸之功: \"chǐ cùn zhī gōng\",\r\n    城北徐公: \"chéng běi xú gōng\",\r\n    成败兴废: \"chéng bài xīng fèi\",\r\n    趁水和泥: \"chèn shuǐ huò ní\",\r\n    称雨道晴: \"chēng yǔ dào qíng\",\r\n    称体载衣: \"chēng tǐ zài yī\",\r\n    称体裁衣: \"chèn tǐ cái yī\",\r\n    称家有无: \"chèn jiā yǒu wú\",\r\n    称德度功: \"chēng dé duó gōng\",\r\n    沉吟章句: \"chén yín zhāng jù\",\r\n    沉吟不决: \"chén yín bù jué\",\r\n    沉疴宿疾: \"chén kē sù jí\",\r\n    扯纤拉烟: \"chě qiàn lā yān\",\r\n    扯顺风旗: \"chě shùn fēng qí\",\r\n    车载船装: \"chē zǎi chuán zhuāng\",\r\n    朝升暮合: \"zhāo shēng mù gě\",\r\n    朝攀暮折: \"zhāo pān mù shé\",\r\n    超今冠古: \"chāo jīn guàn gǔ\",\r\n    倡而不和: \"chàng ér bú hè\",\r\n    畅所欲为: \"chàng suǒ yù wéi\",\r\n    苌弘碧血: \"cháng hóng bì xiě\",\r\n    长幼尊卑: \"zhǎng yòu zūn bēi\",\r\n    长绳系日: \"cháng shéng jì rì\",\r\n    长年三老: \"zhǎng nián sān lǎo\",\r\n    长春不老: \"cháng chūn bù lǎo\",\r\n    长傲饰非: \"zhǎng ào shì fēi\",\r\n    昌亭旅食: \"chāng tíng lǚ shí\",\r\n    禅絮沾泥: \"chán xù zhān ní\",\r\n    差三错四: \"chā sān cuò sì\",\r\n    层台累榭: \"céng tái lěi xiè\",\r\n    层见迭出: \"céng xiàn dié chū\",\r\n    藏踪蹑迹: \"cáng zōng niè jì\",\r\n    苍蝇见血: \"cāng yíng jiàn xiě\",\r\n    餐松啖柏: \"cān sōng dàn bó\",\r\n    骖风驷霞: \"cān fēng sì xiá\",\r\n    参伍错综: \"cēn wǔ cuò zōng\",\r\n    参辰卯酉: \"shēn chén mǎo yǒu\",\r\n    材优干济: \"cái yōu gān jǐ\",\r\n    材薄质衰: \"cái bó zhì shuāi\",\r\n    才大难用: \"cái dà nán yòng\",\r\n    才薄智浅: \"cái bó zhì qiǎn\",\r\n    不足为意: \"bù zú wéi yì\",\r\n    不足为据: \"bù zú wéi jù\",\r\n    不足为法: \"bù zú wéi fǎ\",\r\n    不足齿数: \"bù zú chǐ shǔ\",\r\n    不着疼热: \"bù zhuó téng rè\",\r\n    不知薡蕫: \"bù zhī dǐng dǒng\",\r\n    不越雷池: \"bú yuè léi chí\",\r\n    不相为谋: \"bù xiāng wéi móu\",\r\n    不贪为宝: \"bù tān wéi bǎo\",\r\n    不了而了: \"bù liǎo ér liǎo\",\r\n    不可揆度: \"bù kě kuí duó\",\r\n    不遑启处: \"bù huáng qǐ chǔ\",\r\n    不当不正: \"bù dāng bú zhèng\",\r\n    不差什么: \"bú chà shén me\",\r\n    不差累黍: \"bù chā lěi shǔ\",\r\n    擘两分星: \"bò liǎng fēn xīng\",\r\n    簸土扬沙: \"bǒ tǔ yáng shā\",\r\n    薄物细故: \"bó wù xì gù\",\r\n    薄寒中人: \"bó hán zhòng rén\",\r\n    博文约礼: \"bó wén yuē lǐ\",\r\n    播糠眯目: \"bō kāng mí mù\",\r\n    剥皮抽筋: \"bō pí chōu jīn\",\r\n    剥肤椎髓: \"bō fū chuí suǐ\",\r\n    波属云委: \"bō zhǔ yún wěi\",\r\n    波骇云属: \"bō hài yún zhǔ\",\r\n    兵微将寡: \"bīng wēi jiàng guǎ\",\r\n    兵强将勇: \"bīng qiáng jiàng yǒng\",\r\n    兵多将广: \"bīng duō jiàng guǎng\",\r\n    兵不由将: \"bīng bù yóu jiàng\",\r\n    冰解的破: \"bīng jiě dì pò\",\r\n    彬彬济济: \"bīn bīn jǐ jǐ\",\r\n    摽梅之年: \"biào méi zhī nián\",\r\n    表里为奸: \"biǎo lǐ wéi jiān\",\r\n    飙发电举: \"biāo fā diàn jǔ\",\r\n    变贪厉薄: \"biàn tān lì bó\",\r\n    敝盖不弃: \"bì gài bú qì\",\r\n    秕言谬说: \"bǐ yán miù shuō\",\r\n    比物属事: \"bǐ wù zhǔ shì\",\r\n    被山带河: \"pī shān dài hé\",\r\n    被甲枕戈: \"pī jiǎ zhěn gē\",\r\n    被甲据鞍: \"pī jiǎ jù ān\",\r\n    被褐怀玉: \"pī hè huái yù\",\r\n    被发缨冠: \"pī fà yīng guàn\",\r\n    背曲腰躬: \"bèi qǔ yāo gōng\",\r\n    北窗高卧: \"běi chuāng gāo wò\",\r\n    北辰星拱: \"běi chén xīng gǒng\",\r\n    北鄙之音: \"běi bǐ zhī yīn\",\r\n    卑宫菲食: \"bēi gōng fěi shí\",\r\n    暴衣露冠: \"pù yī lù guàn\",\r\n    暴腮龙门: \"pù sāi lóng mén\",\r\n    暴露文学: \"bào lù wén xué\",\r\n    暴虎冯河: \"bào hǔ píng hé\",\r\n    抱蔓摘瓜: \"bào wàn zhāi guā\",\r\n    抱法处势: \"bào fǎ chǔ shì\",\r\n    褒贬与夺: \"bāo biǎn yǔ duó\",\r\n    帮闲钻懒: \"bāng xián zuān lǎn\",\r\n    拜将封侯: \"bài jiàng fēng hóu\",\r\n    百兽率舞: \"bǎi shòu shuài wǔ\",\r\n    百孔千创: \"bǎi kǒng qiān chuāng\",\r\n    白衣卿相: \"bái yī qīng xiàng\",\r\n    白首为郎: \"bái shǒu wéi láng\",\r\n    白首相知: \"bái shǒu xiāng zhī\",\r\n    把玩无厌: \"bǎ wán wú yàn\",\r\n    拔锅卷席: \"bá guō juǎn xí\",\r\n    拔本塞源: \"bá běn sè yuán\",\r\n    傲不可长: \"ào bù kě zhǎng\",\r\n    熬更守夜: \"áo gēng shǒu yè\",\r\n    安时处顺: \"ān shí chǔ shùn\",\r\n    安身为乐: \"ān shēn wéi lè\",\r\n    安老怀少: \"ān lǎo huái shào\",\r\n    安步当车: \"ān bù dàng chē\",\r\n    爱人好士: \"ài rén hào shì\",\r\n    矮人观场: \"ǎi rén guān chǎng\",\r\n    捱风缉缝: \"ái fēng jī fèng\",\r\n    挨山塞海: \"āi shān sè hǎi\",\r\n    阿家阿翁: \"ā jiā ā wēng\",\r\n    阿党相为: \"ē dǎng xiāng wéi\",\r\n    追亡逐北: \"zhuī wáng zhú běi\",\r\n    竹篮打水: \"zhú lán dá shuǐ\",\r\n    知疼着热: \"zhī téng zháo rè\",\r\n    语不惊人: \"yǔ bù jīng rén\",\r\n    于今为烈: \"yú jīn wéi liè\",\r\n    一日三省: \"yí rì sān xǐng\",\r\n    穴居野处: \"xué jū yě chǔ\",\r\n    五脊六兽: \"wǔ jǐ liù shòu\",\r\n    无声无臭: \"wú shēng wú xiù\",\r\n    谓予不信: \"wèi yú bú xìn\",\r\n    舍身为国: \"shě shēn wéi guó\",\r\n    杀妻求将: \"shā qī qiú jiàng\",\r\n    强作解人: \"qiǎng zuò jiě rén\",\r\n    气冲斗牛: \"qì chōng dǒu niú\",\r\n    临深履薄: \"lín shēn lǚ bó\",\r\n    钧天广乐: \"jūn tiān guǎng yuè\",\r\n    艰难竭蹶: \"jiān nán jié jué\",\r\n    夹七夹八: \"jiā qī jiā bā\",\r\n    混混噩噩: \"hún hún è è\",\r\n    厚古薄今: \"hòu gǔ bó jīn\",\r\n    鬼怕恶人: \"guǐ pà è rén\",\r\n    伽马射线: \"gā mǎ shè xiàn\",\r\n    佛头着粪: \"fó tóu zhuó fèn\",\r\n    奉为至宝: \"fèng wéi zhì bǎo\",\r\n    登坛拜将: \"dēng tán bài jiàng\",\r\n    晨昏定省: \"chén hūn dìng xǐng\",\r\n    察察为明: \"chá chá wéi míng\",\r\n    博闻强识: \"bó wén qiáng zhì\",\r\n    避难就易: \"bì nán jiù yì\",\r\n    了无生机: 'liǎo wú shēng jī',\r\n    // 一字不变调的词语，如果词语仅有单个一且一字在结尾的无需添加（需要增补更多）\r\n    有一说一: 'yǒu yī shuō yī',\r\n    独一无二: 'dú yī wú èr',\r\n    说一不二: 'shuō yī bù èr',\r\n    举一反三: 'jǔ yī fǎn sān',\r\n    数一数二: 'shǔ yī shǔ èr',\r\n    杀一儆百: 'shā yī jǐng bǎi',\r\n    丁一卯二: 'dīng yī mǎo èr',\r\n    丁一确二: 'dīng yī què èr',\r\n    不一而止: 'bù yī ér zhǐ',\r\n    无一幸免: 'wú yī xìng miǎn',\r\n    // 来源：https://m.gushici.com/cyxy_4e00_4\r\n    表里不一: 'biǎo lǐ bù yī',\r\n    良莠不一: 'liáng yǒu bù yī',\r\n    心口不一: 'xīn kǒu bù yī',\r\n    言行不一: 'yán xíng bù yī',\r\n    政令不一: 'zhèng lìng bù yī',\r\n    参差不一: 'cēn cī bù yī',\r\n    纷纷不一: 'fēn fēn bù yī',\r\n    毁誉不一: 'huǐ yù bù yī',\r\n    不一而三: 'bù yī ér sān',\r\n    百不一遇: 'bǎi bù yī yù',\r\n    言行抱一: 'yán xíng bào yī',\r\n    瑜百瑕一: 'yú bǎi xiá yī',\r\n    背城借一: 'bèi chéng jiè yī',\r\n    凭城借一: 'píng chéng jiè yī',\r\n    劝百讽一: 'quàn bǎi fěng yī',\r\n    群居和一: 'qún jū hé yī',\r\n    百不获一: 'bǎi bù huò yī',\r\n    百不失一: 'bǎi bù shī yī',\r\n    百无失一: 'bǎi wú shī yī',\r\n    万不失一: 'wàn bù shī yī',\r\n    万无失一: 'wàn wú shī yī',\r\n    合而为一: 'hé ér wéi yī',\r\n    合两为一: 'hé liǎng wéi yī',\r\n    合二为一: 'hé èr wéi yī',\r\n    天下为一: 'tiān xià wéi yī',\r\n    相与为一: 'xiāng yǔ wéi yī',\r\n    较若画一: 'jiào ruò huà yī',\r\n    较如画一: 'jiào rú huà yī',\r\n    斠若画一: 'jiào ruò huà yī',\r\n    言行若一: 'yán xíng ruò yī',\r\n    始终若一: 'shǐ zhōng ruò yī',\r\n    终始若一: 'zhōng shǐ ruò yī',\r\n    惟精惟一: 'wéi jīng wéi yī',\r\n    众多非一: 'zhòng duō fēi yī',\r\n    不能赞一: 'bù néng zàn yī',\r\n    问一答十: 'wèn yī dá shí',\r\n    一不扭众: 'yī bù niǔ zhòng',\r\n    一以贯之: 'yī yǐ guàn zhī',\r\n    一以当百: 'yī yǐ dāng bǎi',\r\n    百不当一: 'bǎi bù dāng yī',\r\n    十不当一: 'shí bù dāng yī',\r\n    以一警百: 'yǐ yī jǐng bǎi',\r\n    以一奉百: 'yǐ yī fèng bǎi',\r\n    以一持万: 'yǐ yī chí wàn',\r\n    以一知万: 'yǐ yī zhī wàn',\r\n    百里挑一: 'bǎi lǐ tiāo yī',\r\n    整齐划一: 'zhěng qí huà yī',\r\n    一来二去: 'yī lái èr qù',\r\n    一路公交: 'yī lù gōng jiāo',\r\n    一路汽车: 'yī lù qì chē',\r\n    一路巴士: 'yī lù bā shì',\r\n    朝朝朝落: 'zhāo cháo zhāo luò',\r\n    曲意逢迎: 'qū yì féng yíng',\r\n    一行不行: 'yì háng bù xíng',\r\n    行行不行: 'háng háng bù xíng'\r\n};\r\nconst Pattern4 = Object.keys(DICT4).map((key) => ({\r\n    zh: key,\r\n    pinyin: DICT4[key],\r\n    probability: 2e-8 /* Probability.DICT */,\r\n    length: 4,\r\n    priority: Priority.Normal,\r\n    dict: Symbol('dict4'),\r\n}));\n\nconst DICT5 = {\r\n    巴尔干半岛: 'bā ěr gàn bàn dǎo',\r\n    巴尔喀什湖: 'bā ěr kā shí hú',\r\n    不幸而言中: 'bú xìng ér yán zhòng',\r\n    布尔什维克: 'bù ěr shí wéi kè',\r\n    何乐而不为: 'hé lè ér bù wéi',\r\n    苛政猛于虎: 'kē zhèng měng yú hǔ',\r\n    蒙得维的亚: 'méng dé wéi dì yà',\r\n    民以食为天: 'mín yǐ shí wéi tiān',\r\n    事后诸葛亮: 'shì hòu zhū gě liàng',\r\n    物以稀为贵: 'wù yǐ xī wéi guì',\r\n    先下手为强: 'xiān xià shǒu wéi qiáng',\r\n    行行出状元: 'háng háng chū zhuàng yuan',\r\n    亚得里亚海: 'yà dé lǐ yà hǎi',\r\n    眼不见为净: 'yǎn bú jiàn wéi jìng',\r\n    竹筒倒豆子: 'zhú tǒng dào dòu zi',\r\n};\r\nconst Pattern5 = Object.keys(DICT5).map((key) => ({\r\n    zh: key,\r\n    pinyin: DICT5[key],\r\n    probability: 2e-8 /* Probability.DICT */,\r\n    length: 5,\r\n    priority: Priority.Normal,\r\n    dict: Symbol('dict5'),\r\n}));\n\n// 根据 probability 和 decimal 获取两个概率中最大的\r\nfunction getMaxProbability(a, b) {\r\n    if (!a) {\r\n        return b;\r\n    }\r\n    if (a.decimal < b.decimal) {\r\n        return a;\r\n    }\r\n    else if (a.decimal === b.decimal) {\r\n        return a.probability > b.probability ? a : b;\r\n    }\r\n    else {\r\n        return b;\r\n    }\r\n}\r\n// probability 小于 1e-300 时，为防止小数溢出需要进位\r\nfunction checkDecimal(prob) {\r\n    if (prob.probability < 1e-300) {\r\n        prob.probability *= 1e300;\r\n        prob.decimal += 1;\r\n    }\r\n}\r\nfunction getPatternDecimal(pattern) {\r\n    if (pattern.priority === Priority.Custom) {\r\n        return -(pattern.length * pattern.length * 100);\r\n    }\r\n    if (pattern.priority === Priority.Surname) {\r\n        return -(pattern.length * pattern.length * 10);\r\n    }\r\n    return 0;\r\n}\r\n// 最大概率算法\r\nfunction maxProbability(patterns, length) {\r\n    const dp = [];\r\n    let patternIndex = patterns.length - 1;\r\n    let pattern = patterns[patternIndex];\r\n    // 按照长度去除重叠词\r\n    for (let i = length - 1; i >= 0; i--) {\r\n        // suffix\r\n        const suffixDP = i + 1 >= length\r\n            ? { probability: 1, decimal: 0, patterns: [] }\r\n            : dp[i + 1];\r\n        while (pattern && pattern.index + pattern.length - 1 === i) {\r\n            const startIndex = pattern.index;\r\n            const curDP = {\r\n                probability: pattern.probability * suffixDP.probability,\r\n                decimal: suffixDP.decimal + getPatternDecimal(pattern),\r\n                patterns: suffixDP.patterns,\r\n                concatPattern: pattern,\r\n            };\r\n            checkDecimal(curDP);\r\n            dp[startIndex] = getMaxProbability(dp[startIndex], curDP);\r\n            pattern = patterns[--patternIndex];\r\n        }\r\n        // dp[i]\r\n        const iDP = {\r\n            probability: 1e-13 /* Probability.Unknown */ * suffixDP.probability,\r\n            decimal: 0,\r\n            patterns: suffixDP.patterns,\r\n        };\r\n        checkDecimal(iDP);\r\n        dp[i] = getMaxProbability(dp[i], iDP);\r\n        if (dp[i].concatPattern) {\r\n            dp[i].patterns = dp[i].patterns.concat(dp[i].concatPattern);\r\n            dp[i].concatPattern = undefined;\r\n            delete dp[i + 1];\r\n        }\r\n    }\r\n    return dp[0].patterns.reverse();\r\n}\n\n// 取最少分词数\r\nfunction getMinCount(a, b) {\r\n    if (!a) {\r\n        return b;\r\n    }\r\n    return a.count <= b.count ? a : b;\r\n}\r\nfunction getPatternCount(pattern) {\r\n    if (pattern.priority === Priority.Custom) {\r\n        return -(pattern.length * pattern.length * 100000);\r\n    }\r\n    if (pattern.priority === Priority.Surname) {\r\n        return -(pattern.length * pattern.length * 100);\r\n    }\r\n    return 1;\r\n}\r\n// 最少分词算法\r\nfunction minTokenization(patterns, length) {\r\n    const dp = [];\r\n    let patternIndex = patterns.length - 1;\r\n    let pattern = patterns[patternIndex];\r\n    // 按照长度去除重叠词\r\n    for (let i = length - 1; i >= 0; i--) {\r\n        // suffix\r\n        const suffixDP = i + 1 >= length\r\n            ? { count: 0, patterns: [] }\r\n            : dp[i + 1];\r\n        while (pattern && pattern.index + pattern.length - 1 === i) {\r\n            const startIndex = pattern.index;\r\n            const curDP = {\r\n                count: getPatternCount(pattern) + suffixDP.count,\r\n                patterns: suffixDP.patterns,\r\n                concatPattern: pattern\r\n            };\r\n            dp[startIndex] = getMinCount(dp[startIndex], curDP);\r\n            pattern = patterns[--patternIndex];\r\n        }\r\n        // dp[i]\r\n        const iDP = {\r\n            count: 1 + suffixDP.count,\r\n            patterns: suffixDP.patterns,\r\n        };\r\n        dp[i] = getMinCount(dp[i], iDP);\r\n        if (dp[i].concatPattern) {\r\n            dp[i].patterns = dp[i].patterns.concat(dp[i].concatPattern);\r\n            dp[i].concatPattern = undefined;\r\n            delete dp[i + 1];\r\n        }\r\n    }\r\n    return dp[0].patterns.reverse();\r\n}\n\n// 判断 pre 是否可以被忽略的重叠词\r\nfunction isIgnorablePattern(cur, pre) {\r\n    // 未重叠\r\n    if (pre.index + pre.length <= cur.index) {\r\n        return false;\r\n    }\r\n    if (pre.priority > cur.priority) {\r\n        return false;\r\n    }\r\n    if (pre.priority === cur.priority && pre.length > cur.length) {\r\n        return false;\r\n    }\r\n    return true;\r\n}\r\n// 逆向最大匹配算法\r\nfunction reverseMaxMatch(patterns) {\r\n    const filteredArr = [];\r\n    // 按照长度去除重叠词\r\n    for (let i = patterns.length - 1; i >= 0;) {\r\n        const { index } = patterns[i];\r\n        let j = i - 1;\r\n        while (j >= 0 && isIgnorablePattern(patterns[i], patterns[j])) {\r\n            j--;\r\n        }\r\n        if (j < 0 || patterns[j].index + patterns[j].length <= index) {\r\n            filteredArr.push(patterns[i]);\r\n        }\r\n        i = j;\r\n    }\r\n    return filteredArr.reverse();\r\n}\n\nvar TokenizationAlgorithm;\r\n(function (TokenizationAlgorithm) {\r\n    TokenizationAlgorithm[TokenizationAlgorithm[\"ReverseMaxMatch\"] = 1] = \"ReverseMaxMatch\";\r\n    TokenizationAlgorithm[TokenizationAlgorithm[\"MaxProbability\"] = 2] = \"MaxProbability\";\r\n    TokenizationAlgorithm[TokenizationAlgorithm[\"MinTokenization\"] = 3] = \"MinTokenization\";\r\n})(TokenizationAlgorithm || (TokenizationAlgorithm = {}));\r\nclass TrieNode {\r\n    constructor(parent, prefix = \"\", key = \"\") {\r\n        this.children = new Map();\r\n        this.fail = null;\r\n        this.patterns = [];\r\n        this.parent = parent;\r\n        this.prefix = prefix;\r\n        this.key = key;\r\n    }\r\n}\r\nclass AC {\r\n    constructor() {\r\n        this.dictMap = new Map();\r\n        this.queues = [];\r\n        this.root = new TrieNode(null);\r\n    }\r\n    build(patternList) {\r\n        this.buildTrie(patternList);\r\n        this.buildFailPointer();\r\n    }\r\n    // 构建 trie 树\r\n    buildTrie(patternList) {\r\n        for (let pattern of patternList) {\r\n            const zhChars = splitString(pattern.zh);\r\n            let cur = this.root;\r\n            for (let i = 0; i < zhChars.length; i++) {\r\n                let c = zhChars[i];\r\n                if (!cur.children.has(c)) {\r\n                    const trieNode = new TrieNode(cur, zhChars.slice(0, i).join(''), c);\r\n                    cur.children.set(c, trieNode);\r\n                    this.addNodeToQueues(trieNode);\r\n                }\r\n                cur = cur.children.get(c);\r\n            }\r\n            this.insertPattern(cur.patterns, pattern);\r\n            pattern.node = cur;\r\n            this.addPatternToDictMap(pattern);\r\n        }\r\n    }\r\n    // 构建失败指针\r\n    buildFailPointer() {\r\n        let queue = [];\r\n        let queueIndex = 0;\r\n        this.queues.forEach((_queue) => {\r\n            queue = queue.concat(_queue);\r\n        });\r\n        this.queues = [];\r\n        while (queue.length > queueIndex) {\r\n            let node = queue[queueIndex++];\r\n            let failNode = node.parent && node.parent.fail;\r\n            let key = node.key;\r\n            while (failNode && !failNode.children.has(key)) {\r\n                failNode = failNode.fail;\r\n            }\r\n            if (!failNode) {\r\n                node.fail = this.root;\r\n            }\r\n            else {\r\n                node.fail = failNode.children.get(key);\r\n            }\r\n        }\r\n    }\r\n    // 将 pattern 添加到 dictMap 中\r\n    addPatternToDictMap(pattern) {\r\n        if (!this.dictMap.has(pattern.dict)) {\r\n            this.dictMap.set(pattern.dict, new Set());\r\n        }\r\n        this.dictMap.get(pattern.dict).add(pattern);\r\n    }\r\n    addNodeToQueues(trieNode) {\r\n        if (!this.queues[stringLength(trieNode.prefix)]) {\r\n            this.queues[stringLength(trieNode.prefix)] = [];\r\n        }\r\n        this.queues[stringLength(trieNode.prefix)].push(trieNode);\r\n    }\r\n    // 按照优先级插入 pattern\r\n    insertPattern(patterns, pattern) {\r\n        for (let i = patterns.length - 1; i >= 0; i--) {\r\n            const _pattern = patterns[i];\r\n            if (pattern.priority === _pattern.priority &&\r\n                pattern.probability >= _pattern.probability) {\r\n                patterns[i + 1] = _pattern;\r\n            }\r\n            else if (pattern.priority > _pattern.priority) {\r\n                patterns[i + 1] = _pattern;\r\n            }\r\n            else {\r\n                patterns[i + 1] = pattern;\r\n                return;\r\n            }\r\n        }\r\n        patterns[0] = pattern;\r\n    }\r\n    removeDict(dictName) {\r\n        if (this.dictMap.has(dictName)) {\r\n            const set = this.dictMap.get(dictName);\r\n            set.forEach((pattern) => {\r\n                pattern.node.patterns = pattern.node.patterns.filter((_pattern) => _pattern !== pattern);\r\n            });\r\n            this.dictMap.delete(dictName);\r\n        }\r\n    }\r\n    // 搜索字符串返回匹配的模式串\r\n    match(text, surname) {\r\n        let cur = this.root;\r\n        let result = [];\r\n        const zhChars = splitString(text);\r\n        for (let i = 0; i < zhChars.length; i++) {\r\n            let c = zhChars[i];\r\n            while (cur !== null && !cur.children.has(c)) {\r\n                cur = cur.fail;\r\n            }\r\n            if (cur === null) {\r\n                cur = this.root;\r\n            }\r\n            else {\r\n                cur = cur.children.get(c);\r\n                const pattern = cur.patterns.find((item) => {\r\n                    if (surname === \"off\") {\r\n                        return item.priority !== Priority.Surname;\r\n                    }\r\n                    else if (surname === \"head\") {\r\n                        return item.length - 1 - i === 0;\r\n                    }\r\n                    else {\r\n                        return true;\r\n                    }\r\n                });\r\n                if (pattern) {\r\n                    result.push(Object.assign(Object.assign({}, pattern), { index: i - pattern.length + 1 }));\r\n                }\r\n                let failNode = cur.fail;\r\n                while (failNode !== null) {\r\n                    const pattern = failNode.patterns.find((item) => {\r\n                        if (surname === \"off\") {\r\n                            return item.priority !== Priority.Surname;\r\n                        }\r\n                        else if (surname === \"head\") {\r\n                            return item.length - 1 - i === 0;\r\n                        }\r\n                        else {\r\n                            return true;\r\n                        }\r\n                    });\r\n                    if (pattern) {\r\n                        result.push(Object.assign(Object.assign({}, pattern), { index: i - pattern.length + 1 }));\r\n                    }\r\n                    failNode = failNode.fail;\r\n                }\r\n            }\r\n        }\r\n        return result;\r\n    }\r\n    search(text, surname, algorithm = 2 /* TokenizationAlgorithm.MaxProbability */) {\r\n        const patterns = this.match(text, surname);\r\n        if (algorithm === 1 /* TokenizationAlgorithm.ReverseMaxMatch */) {\r\n            return reverseMaxMatch(patterns);\r\n        }\r\n        else if (algorithm === 3 /* TokenizationAlgorithm.MinTokenization */) {\r\n            return minTokenization(patterns, stringLength(text));\r\n        }\r\n        return maxProbability(patterns, stringLength(text));\r\n    }\r\n}\r\n// 常规匹配\r\nconst PatternsNormal = [\r\n    ...Pattern5,\r\n    ...Pattern4,\r\n    ...Pattern3,\r\n    ...Pattern2,\r\n    ...PatternNumberDict,\r\n    ...PatternSurname,\r\n];\r\nconst acTree = new AC();\r\nacTree.build(PatternsNormal);\n\nlet customDict = {};\r\nconst customMultipleDict = new FastDictFactory();\r\nconst customPolyphonicDict = new FastDictFactory();\r\nconst CustomDictName = Symbol('custom');\r\n/**\r\n * @description: 用户自定义拼音\r\n * @param {{ [key: string]: string }} config 用户自定义的拼音映射（支持汉字、词语、句子的映射），若匹配到该映射，优先将汉字转换为该映射\r\n * @param {CustomPinyinOptions} options multiple/polyphonic 对于 customPinyin 补充词汇的处理\r\n */\r\nfunction customPinyin(config = {}, options) {\r\n    const words = Object.keys(config).sort((word1, word2) => stringLength(word2) - stringLength(word1));\r\n    words.forEach((word) => {\r\n        customDict[word] = config[word];\r\n    });\r\n    const customPatterns = Object.keys(customDict).map((word) => ({\r\n        zh: word,\r\n        pinyin: customDict[word],\r\n        probability: 1 /* Probability.Custom */ + stringLength(word),\r\n        length: stringLength(word),\r\n        priority: Priority.Custom,\r\n        dict: CustomDictName,\r\n    }));\r\n    acTree.build(customPatterns);\r\n    // add words for multiple and polyphonic\r\n    if (options === null || options === void 0 ? void 0 : options.multiple) {\r\n        addCustomConfigToDict(config, customMultipleDict, options.multiple);\r\n    }\r\n    if (options === null || options === void 0 ? void 0 : options.polyphonic) {\r\n        addCustomConfigToDict(config, customPolyphonicDict, options.polyphonic);\r\n    }\r\n}\r\nfunction addCustomConfigToDict(config, dict, handleType) {\r\n    for (let word in config) {\r\n        const pinyins = config[word];\r\n        splitString(word).forEach((char, index) => {\r\n            const pinyin = pinyins.split(' ')[index] || '';\r\n            if (handleType === 'replace' || (handleType === 'add' && !dict.get(char) && !DICT1.get(char))) {\r\n                // 直接覆盖原词典\r\n                dict.set(char, pinyin);\r\n            }\r\n            else {\r\n                // 补充至原词典\r\n                dict.set(char, dict.get(char) || DICT1.get(char));\r\n                if (!dict.get(char).split(' ').includes(pinyin)) {\r\n                    dict.set(char, `${dict.get(char)} ${pinyin}`.trim());\r\n                }\r\n            }\r\n        });\r\n    }\r\n}\r\nconst getCustomMultpileDict = () => {\r\n    return customMultipleDict;\r\n};\r\nconst getCustomPolyphonicDict = () => {\r\n    return customPolyphonicDict;\r\n};\r\nfunction clearCustomDict(dict) {\r\n    if (dict === 'pinyin' || dict.indexOf('pinyin') !== -1) {\r\n        Object.keys(customDict).forEach(function (word) {\r\n            delete customDict[word];\r\n        });\r\n        acTree.removeDict(CustomDictName);\r\n    }\r\n    if (dict === 'multiple' || dict.indexOf('multiple') !== -1) {\r\n        customMultipleDict.clear();\r\n    }\r\n    if (dict === 'polyphonic' || dict.indexOf('polyphonic') !== -1) {\r\n        customPolyphonicDict.clear();\r\n    }\r\n}\n\nconst getSingleWordPinyin = (char) => {\r\n    const pinyin = DICT1.get(char);\r\n    // 若查到, 则返回第一个拼音; 若未查到, 返回原字符\r\n    return pinyin ? pinyin.split(\" \")[0] : char;\r\n};\r\nconst getPinyin = (word, list, surname, segmentit) => {\r\n    const matches = acTree.search(word, surname, segmentit);\r\n    let matchIndex = 0;\r\n    const zhChars = splitString(word);\r\n    for (let i = 0; i < zhChars.length;) {\r\n        const match = matches[matchIndex];\r\n        if (match && i === match.index) {\r\n            if (match.length === 1 && match.priority <= Priority.Normal) {\r\n                const char = zhChars[i];\r\n                let pinyin = \"\";\r\n                pinyin = processSepecialPinyin(char, zhChars[i - 1], zhChars[i + 1]);\r\n                list[i] = {\r\n                    origin: char,\r\n                    result: pinyin,\r\n                    isZh: pinyin !== char,\r\n                    originPinyin: pinyin,\r\n                };\r\n                i++;\r\n                matchIndex++;\r\n                continue;\r\n            }\r\n            const pinyins = match.pinyin.split(\" \");\r\n            let pinyinIndex = 0;\r\n            for (let j = 0; j < match.length; j++) {\r\n                const zhChars = splitString(match.zh);\r\n                list[i + j] = {\r\n                    origin: zhChars[j],\r\n                    result: pinyins[pinyinIndex],\r\n                    isZh: true,\r\n                    originPinyin: pinyins[pinyinIndex],\r\n                };\r\n                pinyinIndex++;\r\n            }\r\n            i += match.length;\r\n            matchIndex++;\r\n        }\r\n        else {\r\n            const char = zhChars[i];\r\n            let pinyin = \"\";\r\n            pinyin = processSepecialPinyin(char, zhChars[i - 1], zhChars[i + 1]);\r\n            list[i] = {\r\n                origin: char,\r\n                result: pinyin,\r\n                isZh: pinyin !== char,\r\n                originPinyin: pinyin,\r\n            };\r\n            i++;\r\n        }\r\n    }\r\n    return { list, matches };\r\n};\r\nconst getPinyinWithoutTone = (pinyin) => {\r\n    return pinyin\r\n        .replace(/(ā|á|ǎ|à)/g, \"a\")\r\n        .replace(/(ō|ó|ǒ|ò)/g, \"o\")\r\n        .replace(/(ē|é|ě|è)/g, \"e\")\r\n        .replace(/(ī|í|ǐ|ì)/g, \"i\")\r\n        .replace(/(ū|ú|ǔ|ù)/g, \"u\")\r\n        .replace(/(ǖ|ǘ|ǚ|ǜ)/g, \"ü\")\r\n        .replace(/(n̄|ń|ň|ǹ)/g, \"n\")\r\n        .replace(/(m̄|ḿ|m̌|m̀)/g, \"m\")\r\n        .replace(/(ê̄|ế|ê̌|ề)/g, \"ê\");\r\n};\r\nconst getAllPinyin = (char, surname = \"off\") => {\r\n    const customMultpileDict = getCustomMultpileDict();\r\n    let pinyin = DICT1.get(char) ? DICT1.get(char).split(\" \") : [];\r\n    if (customMultpileDict.get(char)) {\r\n        pinyin = customMultpileDict.get(char).split(\" \");\r\n    }\r\n    else if (surname !== \"off\") {\r\n        const surnamePinyin = Surnames[char];\r\n        if (surnamePinyin) {\r\n            pinyin = [surnamePinyin].concat(pinyin.filter((py) => py !== surnamePinyin));\r\n        }\r\n    }\r\n    return pinyin;\r\n};\r\nconst getMultiplePinyin = (word, surname = \"off\") => {\r\n    let pinyin = getAllPinyin(word, surname);\r\n    if (pinyin.length > 0) {\r\n        return pinyin.map((value) => ({\r\n            origin: word,\r\n            result: value,\r\n            isZh: true,\r\n            originPinyin: value,\r\n        }));\r\n    }\r\n    else {\r\n        return [\r\n            {\r\n                origin: word,\r\n                result: word,\r\n                isZh: false,\r\n                originPinyin: word,\r\n            },\r\n        ];\r\n    }\r\n};\r\nconst getInitialAndFinal = (pinyin) => {\r\n    const pinyin_arr = pinyin.split(\" \");\r\n    const initial_arr = [];\r\n    const final_arr = [];\r\n    for (let _pinyin of pinyin_arr) {\r\n        for (let _initial of InitialList) {\r\n            if (_pinyin.startsWith(_initial)) {\r\n                let _final = _pinyin.slice(_initial.length);\r\n                if (SpecialInitialList.indexOf(_initial) !== -1 &&\r\n                    SpecialFinalList.indexOf(_final) !== -1) {\r\n                    // 针对 jqx 的 u 特殊处理\r\n                    _final = SpecialFinalMap[_final];\r\n                }\r\n                initial_arr.push(_initial);\r\n                final_arr.push(_final);\r\n                break;\r\n            }\r\n        }\r\n    }\r\n    return {\r\n        final: final_arr.join(\" \"),\r\n        initial: initial_arr.join(\" \"), // 声母\r\n    };\r\n};\r\nconst getFinalParts = (pinyin) => {\r\n    const { final } = getInitialAndFinal(pinyin);\r\n    let head = \"\", body = \"\", tail = \"\";\r\n    if (doubleFinalList.indexOf(getPinyinWithoutTone(final)) !== -1) {\r\n        head = final[0];\r\n        body = final[1];\r\n        tail = final.slice(2);\r\n    }\r\n    else {\r\n        body = final[0] || \"\";\r\n        tail = final.slice(1) || \"\";\r\n    }\r\n    return { head, body, tail };\r\n};\r\nconst getNumOfTone = (pinyin) => {\r\n    const reg_tone1 = /(ā|ō|ē|ī|ū|ǖ|n̄|m̄|ê̄)/;\r\n    const reg_tone2 = /(á|ó|é|í|ú|ǘ|ń|ḿ|ế)/;\r\n    const reg_tone3 = /(ǎ|ǒ|ě|ǐ|ǔ|ǚ|ň|m̌|ê̌)/;\r\n    const reg_tone4 = /(à|ò|è|ì|ù|ǜ|ǹ|m̀|ề)/;\r\n    const reg_tone0 = /(a|o|e|i|u|ü|ê)/;\r\n    const special_tone = /(n|m)$/;\r\n    const tone_num_arr = [];\r\n    const pinyin_arr = pinyin.split(\" \");\r\n    pinyin_arr.forEach((_pinyin) => {\r\n        if (reg_tone1.test(_pinyin)) {\r\n            tone_num_arr.push(\"1\");\r\n        }\r\n        else if (reg_tone2.test(_pinyin)) {\r\n            tone_num_arr.push(\"2\");\r\n        }\r\n        else if (reg_tone3.test(_pinyin)) {\r\n            tone_num_arr.push(\"3\");\r\n        }\r\n        else if (reg_tone4.test(_pinyin)) {\r\n            tone_num_arr.push(\"4\");\r\n        }\r\n        else if (reg_tone0.test(_pinyin)) {\r\n            tone_num_arr.push(\"0\");\r\n        }\r\n        else if (special_tone.test(_pinyin)) {\r\n            tone_num_arr.push(\"0\");\r\n        }\r\n        else {\r\n            tone_num_arr.push(\"\");\r\n        }\r\n    });\r\n    return tone_num_arr.join(\" \");\r\n};\r\nconst getPinyinWithNum = (pinyin, originPinyin) => {\r\n    const pinyin_arr = getPinyinWithoutTone(pinyin).split(\" \");\r\n    const tone_num_arr = getNumOfTone(originPinyin).split(\" \");\r\n    const res_arr = [];\r\n    pinyin_arr.forEach((item, index) => {\r\n        res_arr.push(`${item}${tone_num_arr[index]}`);\r\n    });\r\n    return res_arr.join(\" \");\r\n};\r\nconst getFirstLetter = (pinyin) => {\r\n    const first_letter_arr = [];\r\n    const pinyin_arr = pinyin.split(\" \");\r\n    pinyin_arr.forEach((pinyin) => {\r\n        first_letter_arr.push(pinyin[0]);\r\n    });\r\n    return first_letter_arr.join(\" \");\r\n};\n\n// 验证输入是否为字符串\r\nconst validateType = (word) => {\r\n    if (typeof word !== \"string\") {\r\n        console.error(\"The first param of pinyin is error: \" +\r\n            word +\r\n            ' is not assignable to type \"string\".');\r\n        return false;\r\n    }\r\n    else {\r\n        return true;\r\n    }\r\n};\r\nfunction isNonZhScope(char, scope) {\r\n    if (scope instanceof RegExp) {\r\n        return scope.test(char);\r\n    }\r\n    return true;\r\n}\r\n// nonZh 属性处理\r\nconst middleWareNonZh = (list, options) => {\r\n    let nonZh = options.nonZh;\r\n    if (nonZh === \"removed\") {\r\n        return list.filter((item) => item.isZh || !isNonZhScope(item.origin, options.nonZhScope));\r\n    }\r\n    else if (nonZh === \"consecutive\") {\r\n        for (let i = list.length - 2; i >= 0; i--) {\r\n            const cur = list[i];\r\n            const pre = list[i + 1];\r\n            if (!cur.isZh && !pre.isZh && isNonZhScope(cur.origin, options.nonZhScope) && isNonZhScope(pre.origin, options.nonZhScope)) {\r\n                cur.origin += pre.origin;\r\n                cur.result += pre.result;\r\n                pre.delete = true;\r\n            }\r\n        }\r\n        return list.filter((item) => !item.delete);\r\n    }\r\n    else {\r\n        return list;\r\n    }\r\n};\r\n// multiple 属性处理\r\nconst middlewareMultiple = (word, options) => {\r\n    if (stringLength(word) === 1 && options.multiple) {\r\n        return getMultiplePinyin(word, options.surname);\r\n    }\r\n    else {\r\n        return false;\r\n    }\r\n};\r\n// pattern 属性处理\r\nconst middlewarePattern = (list, options) => {\r\n    switch (options.pattern) {\r\n        case \"pinyin\":\r\n            break;\r\n        case \"num\":\r\n            list.forEach((item) => {\r\n                item.result = item.isZh ? getNumOfTone(item.result) : \"\";\r\n            });\r\n            break;\r\n        case \"initial\":\r\n            list.forEach((item) => {\r\n                item.result = item.isZh ? getInitialAndFinal(item.result).initial : \"\";\r\n            });\r\n            break;\r\n        case \"final\":\r\n            list.forEach((item) => {\r\n                item.result = item.isZh ? getInitialAndFinal(item.result).final : \"\";\r\n            });\r\n            break;\r\n        case \"first\":\r\n            list.forEach((item) => {\r\n                // todo: first 暂时不作为拼音一部分，不进行 isZh 识别\r\n                item.result = getFirstLetter(item.result);\r\n            });\r\n            break;\r\n        case \"finalHead\":\r\n            list.forEach((item) => {\r\n                item.result = item.isZh ? getFinalParts(item.result).head : \"\";\r\n            });\r\n            break;\r\n        case \"finalBody\":\r\n            list.forEach((item) => {\r\n                item.result = item.isZh ? getFinalParts(item.result).body : \"\";\r\n            });\r\n            break;\r\n        case \"finalTail\":\r\n            list.forEach((item) => {\r\n                item.result = item.isZh ? getFinalParts(item.result).tail : \"\";\r\n            });\r\n            break;\r\n    }\r\n};\r\n// toneType 属性处理\r\nconst middlewareToneType = (list, options) => {\r\n    switch (options.toneType) {\r\n        case \"symbol\":\r\n            break;\r\n        case \"none\":\r\n            list.forEach((item) => {\r\n                if (item.isZh) {\r\n                    item.result = getPinyinWithoutTone(item.result);\r\n                }\r\n            });\r\n            break;\r\n        case \"num\": {\r\n            list.forEach((item) => {\r\n                if (item.isZh) {\r\n                    item.result = getPinyinWithNum(item.result, item.originPinyin);\r\n                }\r\n            });\r\n            break;\r\n        }\r\n    }\r\n};\r\n// v 属性处理\r\nconst middlewareV = (list, options) => {\r\n    if (options.v) {\r\n        list.forEach((item) => {\r\n            if (item.isZh) {\r\n                item.result = item.result.replace(/ü/g, \"v\");\r\n            }\r\n        });\r\n    }\r\n};\r\n// type 属性处理\r\nconst middlewareType = (list, options, word) => {\r\n    if (options.multiple && stringLength(word) === 1) {\r\n        let last = \"\";\r\n        list = list.filter((item) => {\r\n            const res = item.result !== last;\r\n            last = item.result;\r\n            return res;\r\n        });\r\n    }\r\n    if (options.type === \"array\") {\r\n        return list.map((item) => item.result);\r\n    }\r\n    if (options.type === \"all\") {\r\n        return list.map((item) => {\r\n            const pinyin = item.isZh ? item.result : \"\";\r\n            const { initial, final } = getInitialAndFinal(pinyin);\r\n            const { head, body, tail } = getFinalParts(pinyin);\r\n            let polyphonic = [];\r\n            if (pinyin !== \"\") {\r\n                polyphonic = [pinyin].concat(getAllPinyin(item.origin, options.surname).filter((item) => item !== pinyin));\r\n            }\r\n            return {\r\n                origin: item.origin,\r\n                pinyin,\r\n                initial,\r\n                final,\r\n                first: item.isZh ? getFirstLetter(item.result) : \"\",\r\n                finalHead: head,\r\n                finalBody: body,\r\n                finalTail: tail,\r\n                num: Number(getNumOfTone(item.originPinyin)),\r\n                isZh: item.isZh,\r\n                polyphonic,\r\n                inZhRange: !!DICT1.get(item.origin),\r\n                result: item.result,\r\n            };\r\n        });\r\n    }\r\n    return list.map((item) => item.result).join(options.separator);\r\n};\r\n// 是否开启变调\r\nconst middlewareToneSandhi = (list, toneSandhi) => {\r\n    if (toneSandhi === false) {\r\n        list.forEach((item) => {\r\n            if (item.origin === \"一\") {\r\n                item.result = item.originPinyin = \"yī\";\r\n            }\r\n            else if (item.origin === \"不\") {\r\n                item.result = item.originPinyin = \"bù\";\r\n            }\r\n        });\r\n    }\r\n    return list;\r\n};\n\nconst DEFAULT_OPTIONS$2 = {\r\n    pattern: \"pinyin\",\r\n    toneType: \"symbol\",\r\n    type: \"string\",\r\n    multiple: false,\r\n    mode: \"normal\",\r\n    removeNonZh: false,\r\n    nonZh: \"spaced\",\r\n    v: false,\r\n    separator: \" \",\r\n    toneSandhi: true,\r\n    segmentit: 2 /* TokenizationAlgorithm.MaxProbability */,\r\n};\r\n/**\r\n * @description: 获取汉语字符串的拼音\r\n * @param {string} word 要转换的汉语字符串\r\n * @param {CompleteOptions=} options 配置项\r\n * @return {string | string[] | AllData[]} options.type 为 string 时，返回字符串，中间用空格隔开；为 array 时，返回拼音字符串数组；为 all 时返回全部信息的数组\r\n */\r\nfunction pinyin(word, options) {\r\n    options = Object.assign(Object.assign({}, DEFAULT_OPTIONS$2), (options || {}));\r\n    // 校验 word 类型是否正确\r\n    const legal = validateType(word);\r\n    if (!legal) {\r\n        return word;\r\n    }\r\n    // 传入空字符串\r\n    if (word === \"\") {\r\n        return options.type === \"array\" || options.type === \"all\" ? [] : \"\";\r\n    }\r\n    if (options.surname === undefined) {\r\n        if (options.mode === \"surname\") {\r\n            options.surname = \"all\";\r\n        }\r\n        else {\r\n            options.surname = \"off\";\r\n        }\r\n    }\r\n    if (options.type === \"all\") {\r\n        options.pattern = \"pinyin\";\r\n    }\r\n    if (options.pattern === \"num\") {\r\n        options.toneType = \"none\";\r\n    }\r\n    if (options.removeNonZh) {\r\n        options.nonZh = \"removed\";\r\n    }\r\n    let _list = Array(stringLength(word));\r\n    let { list } = getPinyin(word, _list, options.surname, options.segmentit);\r\n    // 一和不变调处理\r\n    list = middlewareToneSandhi(list, options.toneSandhi);\r\n    // nonZh 参数及 removeNonZh 参数\r\n    list = middleWareNonZh(list, options);\r\n    // multiple 参数\r\n    if (middlewareMultiple(word, options)) {\r\n        list = middlewareMultiple(word, options);\r\n    }\r\n    // pattern 参数\r\n    middlewarePattern(list, options);\r\n    // toneType参数处理\r\n    middlewareToneType(list, options);\r\n    // v参数处理\r\n    middlewareV(list, options);\r\n    // type 参数处理\r\n    return middlewareType(list, options, word);\r\n}\n\nconst DefaultName = Symbol(\"default\");\r\nconst originDictMap = new Map();\r\nfunction addDict(dict, options) {\r\n    const patterns = [];\r\n    // string 类型时：options 为 name（）\r\n    const name = typeof options === \"object\" ? options.name : options;\r\n    const dictName = name || DefaultName;\r\n    const dict1Handle = (options === null || options === void 0 ? void 0 : options.dict1) || \"add\";\r\n    for (let word in dict) {\r\n        const value = dict[word];\r\n        const pinyin = Array.isArray(value) ? value[0] : value;\r\n        const wordLength = stringLength(word);\r\n        if (wordLength === 1) {\r\n            addToOriginDict(dictName, word, pinyin, dict1Handle);\r\n        }\r\n        if (Array.isArray(value)) {\r\n            patterns.push({\r\n                zh: word,\r\n                pinyin,\r\n                probability: typeof value[1] === \"number\"\r\n                    ? value[1]\r\n                    : 2e-8 /* Probability.DICT */ * wordLength * wordLength,\r\n                length: wordLength,\r\n                priority: Priority.Normal,\r\n                dict: dictName,\r\n                pos: typeof value[2] === \"string\" ? value[2] : \"\",\r\n            });\r\n        }\r\n        else {\r\n            patterns.push({\r\n                zh: word,\r\n                pinyin,\r\n                probability: 2e-8 /* Probability.DICT */ * wordLength * wordLength,\r\n                length: wordLength,\r\n                priority: Priority.Normal,\r\n                dict: dictName,\r\n            });\r\n        }\r\n    }\r\n    acTree.build(patterns);\r\n}\r\nfunction removeDict(dictName) {\r\n    acTree.removeDict(dictName || DefaultName);\r\n    removeOriginDict(dictName || DefaultName);\r\n}\r\nfunction addToOriginDict(dict, char, pinyin, handle = \"add\") {\r\n    if (!originDictMap.get(dict)) {\r\n        originDictMap.set(dict, {});\r\n    }\r\n    const originDict = originDictMap.get(dict);\r\n    if (!originDict[char]) {\r\n        originDict[char] = DICT1.get(char);\r\n    }\r\n    if (handle === \"add\") {\r\n        const existedPinyin = DICT1.get(char);\r\n        if (existedPinyin && !existedPinyin.split(' ').includes(pinyin)) {\r\n            DICT1.set(char, `${existedPinyin} ${pinyin}`);\r\n        }\r\n        else if (!DICT1.get(char)) {\r\n            DICT1.set(char, pinyin);\r\n        }\r\n    }\r\n    else if (handle === \"replace\") {\r\n        DICT1.set(char, pinyin);\r\n    }\r\n}\r\nfunction removeOriginDict(dict) {\r\n    const originDict = originDictMap.get(dict) || {};\r\n    for (let char in originDict) {\r\n        DICT1.set(char, originDict[char]);\r\n        delete originDict[char];\r\n    }\r\n}\n\nconst DefaultMatchOptions = {\r\n    precision: \"first\",\r\n    continuous: false,\r\n    space: \"ignore\",\r\n    lastPrecision: \"start\",\r\n    insensitive: true,\r\n    v: false,\r\n};\r\nconst MAX_PINYIN_LENGTH = 6;\r\n/**\r\n * @description: 检测汉语字符串和拼音是否匹配\r\n * @param {string} text 汉语字符串\r\n * @param {string} pinyin 拼音，支持各种缩写形式\r\n * @param {MatchOptions=} options 配置项\r\n * @return {Array | null} 若匹配成功，返回 text 中匹配成功的下标数组；若匹配失败，返回 null\r\n */\r\nconst match = (text, pinyin, options) => {\r\n    if ((options === null || options === void 0 ? void 0 : options.precision) === \"any\") {\r\n        options.lastPrecision = \"any\";\r\n    }\r\n    if (options === null || options === void 0 ? void 0 : options.v) {\r\n        pinyin = pinyin.replace(/ü/g, \"v\");\r\n    }\r\n    const completeOptions = Object.assign(Object.assign({}, DefaultMatchOptions), (options || {}));\r\n    // 是否大小写不敏感\r\n    if (completeOptions.insensitive !== false) {\r\n        text = text.toLowerCase();\r\n        pinyin = pinyin.toLowerCase();\r\n    }\r\n    // 移除空格\r\n    if (completeOptions.space === \"ignore\") {\r\n        pinyin = pinyin.replace(/\\s/g, \"\");\r\n    }\r\n    const result = (options === null || options === void 0 ? void 0 : options.precision) === \"any\"\r\n        ? matchAny(text, pinyin, completeOptions)\r\n        : matchAboveStart(text, pinyin, completeOptions);\r\n    return processDoubleUnicodeIndex(text, result);\r\n};\r\n// 检测两个拼音最大的匹配长度\r\nconst getMatchLength = (pinyin1, pinyin2) => {\r\n    let length = 0;\r\n    for (let i = 0; i < pinyin1.length; i++) {\r\n        if (pinyin1[i] === pinyin2[length]) {\r\n            length++;\r\n        }\r\n    }\r\n    return length;\r\n};\r\nconst matchAny = (text, pinyin$1, options) => {\r\n    let result = [];\r\n    const words = splitString(text);\r\n    const ignoreSpace = options.space === \"ignore\";\r\n    for (let i = 0; i < words.length; i++) {\r\n        // 空格字符\r\n        if (ignoreSpace && words[i] === \" \") {\r\n            result.push(i);\r\n            continue;\r\n        }\r\n        // 是否为中文匹配\r\n        if (words[i] === pinyin$1[0]) {\r\n            pinyin$1 = pinyin$1.slice(1);\r\n            result.push(i);\r\n            continue;\r\n        }\r\n        // 当前字的多音字拼音\r\n        const ps = pinyin(words[i], {\r\n            toneType: \"none\",\r\n            multiple: true,\r\n            type: \"array\",\r\n            v: options.v,\r\n        });\r\n        let currentLength = 0;\r\n        ps.forEach((p) => {\r\n            const length = getMatchLength(p, pinyin$1);\r\n            if (length > currentLength) {\r\n                currentLength = length;\r\n            }\r\n        });\r\n        if (currentLength) {\r\n            pinyin$1 = pinyin$1.slice(currentLength);\r\n            result.push(i);\r\n        }\r\n        if (!pinyin$1) {\r\n            break;\r\n        }\r\n    }\r\n    // 未匹配完\r\n    if (pinyin$1) {\r\n        return null;\r\n    }\r\n    // 是否连续\r\n    if (options.continuous) {\r\n        const _result = result;\r\n        const isNotContinuous = result.some((val, index) => index > 0 && val !== _result[index - 1] + 1);\r\n        if (isNotContinuous) {\r\n            return null;\r\n        }\r\n    }\r\n    if (options.space === \"ignore\") {\r\n        result = result.filter((i) => words[i] !== \" \");\r\n    }\r\n    return result.length ? result : null;\r\n};\r\nconst matchAboveStart = (text, pinyin$1, options) => {\r\n    const words = splitString(text);\r\n    // 二维数组 dp[i][j]，i 表示遍历到的 text 索引+1, j 表示遍历到的 pinyin 的索引+1\r\n    const dp = Array(words.length + 1);\r\n    // 使用哨兵初始化 dp\r\n    for (let i = 0; i < dp.length; i++) {\r\n        dp[i] = Array(pinyin$1.length + 1);\r\n        dp[i][0] = [];\r\n    }\r\n    for (let i = 0; i < dp[0].length; i++) {\r\n        dp[0][i] = [];\r\n    }\r\n    // 动态规划匹配\r\n    for (let i = 1; i < dp.length; i++) {\r\n        // options.continuous 为 false 或 options.space 为 ignore 且当前为空格时，第 i 个字可以不参与匹配\r\n        if (!options.continuous ||\r\n            (options.space == \"ignore\" && words[i - 1] === \" \")) {\r\n            for (let j = 1; j <= pinyin$1.length; j++) {\r\n                dp[i][j - 1] = dp[i - 1][j - 1];\r\n            }\r\n        }\r\n        // 第 i 个字参与匹配\r\n        for (let j = 1; j <= pinyin$1.length; j++) {\r\n            if (!dp[i - 1][j - 1]) {\r\n                // 第 i - 1 已经匹配失败，停止向后匹配\r\n                continue;\r\n            }\r\n            else if (j !== 1 && !dp[i - 1][j - 1].length) {\r\n                // 非开头且前面的字符未匹配完成，停止向后匹配\r\n                continue;\r\n            }\r\n            else {\r\n                const muls = pinyin(words[i - 1], {\r\n                    type: \"array\",\r\n                    toneType: \"none\",\r\n                    multiple: true,\r\n                    v: options.v,\r\n                });\r\n                // 非中文匹配\r\n                if (words[i - 1] === pinyin$1[j - 1]) {\r\n                    const matches = [...dp[i - 1][j - 1], i - 1];\r\n                    // 记录最长的可匹配下标数组\r\n                    if (!dp[i][j] || matches.length > dp[i][j].length) {\r\n                        dp[i][j] = matches;\r\n                    }\r\n                    // pinyin 参数完全匹配完成，记录结果\r\n                    if (j === pinyin$1.length) {\r\n                        return dp[i][j];\r\n                    }\r\n                }\r\n                // 剩余长度小于等于 MAX_PINYIN_LENGTH(6) 时，有可能是最后一个拼音了\r\n                if (pinyin$1.length - j <= MAX_PINYIN_LENGTH) {\r\n                    // lastPrecision 参数处理\r\n                    const last = muls.some((py) => {\r\n                        if (options.lastPrecision === \"any\") {\r\n                            return py.includes(pinyin$1.slice(j - 1, pinyin$1.length));\r\n                        }\r\n                        if (options.lastPrecision === \"start\") {\r\n                            return py.startsWith(pinyin$1.slice(j - 1, pinyin$1.length));\r\n                        }\r\n                        if (options.lastPrecision === \"first\") {\r\n                            return py[0] === pinyin$1.slice(j - 1, pinyin$1.length);\r\n                        }\r\n                        if (options.lastPrecision === \"every\") {\r\n                            return py === pinyin$1.slice(j - 1, pinyin$1.length);\r\n                        }\r\n                        return false;\r\n                    });\r\n                    if (last) {\r\n                        return [...dp[i - 1][j - 1], i - 1];\r\n                    }\r\n                }\r\n                const precision = options.precision;\r\n                // precision 为 start 时，匹配开头\r\n                if (precision === \"start\") {\r\n                    muls.forEach((py) => {\r\n                        let end = j;\r\n                        const matches = [...dp[i - 1][j - 1], i - 1];\r\n                        while (end <= pinyin$1.length &&\r\n                            py.startsWith(pinyin$1.slice(j - 1, end))) {\r\n                            if (!dp[i][end] || matches.length > dp[i][end].length) {\r\n                                dp[i][end] = matches;\r\n                            }\r\n                            end++;\r\n                        }\r\n                    });\r\n                }\r\n                // precision 为 first 时，匹配首字母\r\n                if (precision === \"first\") {\r\n                    if (muls.some((py) => py[0] === pinyin$1[j - 1])) {\r\n                        const matches = [...dp[i - 1][j - 1], i - 1];\r\n                        // 记录最长的可匹配下标数组\r\n                        if (!dp[i][j] || matches.length > dp[i][j].length) {\r\n                            dp[i][j] = matches;\r\n                        }\r\n                    }\r\n                }\r\n                // 匹配当前汉字的完整拼音\r\n                const completeMatch = muls.find((py) => py === pinyin$1.slice(j - 1, j - 1 + py.length));\r\n                if (completeMatch) {\r\n                    const matches = [...dp[i - 1][j - 1], i - 1];\r\n                    const endIndex = j - 1 + completeMatch.length;\r\n                    // 记录最长的可匹配下标数组\r\n                    if (!dp[i][endIndex] || matches.length > dp[i][endIndex].length) {\r\n                        dp[i][endIndex] = matches;\r\n                    }\r\n                }\r\n            }\r\n        }\r\n    }\r\n    return null;\r\n};\r\n// 对于双字节的字符，需要将 index 顺延 +1\r\nfunction processDoubleUnicodeIndex(text, indexArray) {\r\n    if (!indexArray) {\r\n        return null;\r\n    }\r\n    const result = [];\r\n    let doubleUnicodeCount = 0;\r\n    const words = splitString(text);\r\n    let i = 0;\r\n    for (let j = 0; j < indexArray.length; j++) {\r\n        const curIndex = indexArray[j];\r\n        while (i <= curIndex) {\r\n            if (words[i].length === 2) {\r\n                doubleUnicodeCount++;\r\n            }\r\n            i++;\r\n        }\r\n        const realIndex = curIndex + doubleUnicodeCount;\r\n        if (words[curIndex].length === 2) {\r\n            result.push(realIndex - 1, realIndex);\r\n        }\r\n        else {\r\n            result.push(realIndex);\r\n        }\r\n    }\r\n    return result;\r\n}\n\nconst DefaultHtmlOptions = {\r\n    resultClass: 'py-result-item',\r\n    chineseClass: 'py-chinese-item',\r\n    pinyinClass: 'py-pinyin-item',\r\n    nonChineseClass: 'py-non-chinese-item',\r\n    wrapNonChinese: false,\r\n    toneType: 'symbol',\r\n    customClassMap: {},\r\n    toneSandhi: true,\r\n    rp: true,\r\n};\r\n/**\r\n * @description: 获取带拼音汉字的 html 字符串\r\n * @param {string} text 要转换的字符串\r\n * @param {HtmlOptions=} options html 中标签类名相关配置\r\n * @return {string} 带汉字的拼音字符串\r\n */\r\nconst html = (text, options) => {\r\n    const completeOptions = Object.assign(Object.assign({}, DefaultHtmlOptions), (options || {}));\r\n    const pinyinArray = pinyin(text, {\r\n        type: 'all',\r\n        toneType: completeOptions.toneType,\r\n        toneSandhi: options === null || options === void 0 ? void 0 : options.toneSandhi,\r\n    });\r\n    const result = pinyinArray.map((item) => {\r\n        let additionalClass = '';\r\n        for (const classname in completeOptions.customClassMap) {\r\n            const dict = completeOptions.customClassMap[classname];\r\n            if (dict.includes(item.origin)) {\r\n                additionalClass += ` ${classname}`;\r\n            }\r\n        }\r\n        if (item.isZh) {\r\n            // 汉字字符处理\r\n            const resultClass = completeOptions.resultClass || DefaultHtmlOptions.resultClass;\r\n            const chineseClass = completeOptions.chineseClass || DefaultHtmlOptions.chineseClass;\r\n            const pinyinClass = completeOptions.pinyinClass || DefaultHtmlOptions.pinyinClass;\r\n            return `<span class=\"${resultClass}${additionalClass}\"><ruby><span class=\"${chineseClass}\">${item.origin}</span>${completeOptions.rp ? '<rp>(</rp>' : ''}<rt class=\"${pinyinClass}\">${item.pinyin}</rt>${completeOptions.rp ? '<rp>)</rp>' : ''}</ruby></span>`;\r\n        }\r\n        else {\r\n            // 非汉字字符处理\r\n            if (completeOptions.wrapNonChinese) {\r\n                const nonChineseClass = completeOptions.nonChineseClass || DefaultHtmlOptions.nonChineseClass;\r\n                return `<span class=\"${nonChineseClass}${additionalClass}\">${item.origin}</span>`;\r\n            }\r\n            else {\r\n                return item.origin;\r\n            }\r\n        }\r\n    });\r\n    return result.join('');\r\n};\n\nconst DEFAULT_OPTIONS$1 = {\r\n    pattern: 'pinyin',\r\n    toneType: 'symbol',\r\n    type: 'string',\r\n    v: false,\r\n    nonZh: 'spaced',\r\n};\r\n/**\r\n * @description: 获取每个汉字的所有读音\r\n * @param {string} text 要转换的汉语字符串\r\n * @param {CompleteOptions=} options 配置项\r\n * @return {string[] | string[][] | AllData[][]} options.type 为 string 时，返回字符串数组，中间用空格隔开；为 array 时，返回二维拼音字符串数组；为 all 时返回二维全部信息的数组\r\n */\r\nfunction polyphonic(text, options = DEFAULT_OPTIONS$1) {\r\n    // 校验 text 类型是否正确\r\n    const legal = validateType(text);\r\n    if (!legal) {\r\n        return [];\r\n    }\r\n    // 传入空字符串\r\n    if (text === '') {\r\n        return [];\r\n    }\r\n    if (options.type === 'all') {\r\n        options.pattern = 'pinyin';\r\n    }\r\n    if (options.pattern === 'num') {\r\n        options.toneType = 'none';\r\n    }\r\n    let list = getPolyphonicList(text);\r\n    // nonZh 参数及 removeNonZh 参数\r\n    list = middleWareNonZh(list, options);\r\n    let doubleList = getSplittedPolyphonicList(list);\r\n    // pattern 参数\r\n    doubleList.forEach((list) => {\r\n        middlewarePattern(list, options);\r\n    });\r\n    // toneType参数处理\r\n    doubleList.forEach((list) => {\r\n        middlewareToneType(list, options);\r\n    });\r\n    // v参数处理\r\n    doubleList.forEach((list) => {\r\n        middlewareV(list, options);\r\n    });\r\n    // type 参数处理\r\n    const result = doubleList.map((list) => handleType(list, options));\r\n    return result;\r\n}\r\n// 获取每个字多音字的数组\r\nconst getPolyphonicList = (text) => {\r\n    return splitString(text).map((char) => {\r\n        const customPolyphonicDict = getCustomPolyphonicDict();\r\n        const pinyin = customPolyphonicDict.get(char) || DICT1.get(char) || char;\r\n        return {\r\n            origin: char,\r\n            result: pinyin,\r\n            isZh: pinyin !== char,\r\n            originPinyin: pinyin,\r\n        };\r\n    });\r\n};\r\n// 将多音字每个读音都单独切为一个数组项\r\nconst getSplittedPolyphonicList = (list) => {\r\n    return list.map((item) => {\r\n        return item.isZh\r\n            ? item.result.split(' ').map((pinyin) => ({\r\n                origin: item.origin,\r\n                result: pinyin,\r\n                isZh: true,\r\n                originPinyin: pinyin,\r\n            }))\r\n            : [item];\r\n    });\r\n};\r\n// type 属性处理\r\nconst handleType = (list, options) => {\r\n    if (options.type === 'array') {\r\n        return Array.from(new Set(list.map((item) => item.result)));\r\n    }\r\n    if (options.type === 'all') {\r\n        return list.map((item) => {\r\n            const pinyin = item.isZh ? item.result : '';\r\n            const { initial, final } = getInitialAndFinal(pinyin);\r\n            const { head, body, tail } = getFinalParts(pinyin);\r\n            return {\r\n                origin: item.origin,\r\n                pinyin,\r\n                initial,\r\n                final,\r\n                first: item.isZh ? getFirstLetter(item.result) : '',\r\n                finalHead: head,\r\n                finalBody: body,\r\n                finalTail: tail,\r\n                num: Number(getNumOfTone(item.originPinyin)),\r\n                isZh: item.isZh,\r\n                inZhRange: !!DICT1.get(item.origin),\r\n            };\r\n        });\r\n    }\r\n    return Array.from(new Set(list.map((item) => item.result))).join(' ');\r\n};\n\nconst DefaultConvertOptions = {\r\n    separator: ' ',\r\n    format: 'numToSymbol',\r\n};\r\nconst toneMap = {\r\n    a: ['a', 'ā', 'á', 'ǎ', 'à'],\r\n    o: ['o', 'ō', 'ó', 'ǒ', 'ò'],\r\n    e: ['e', 'ē', 'é', 'ě', 'è'],\r\n    ü: ['ü', 'ǖ', 'ǘ', 'ǚ', 'ǜ'],\r\n    v: ['ü', 'ǖ', 'ǘ', 'ǚ', 'ǜ'],\r\n    ui: ['ui', 'uī', 'uí', 'uǐ', 'uì'],\r\n    iu: ['iu', 'iū', 'iú', 'iǔ', 'iù'],\r\n    i: ['i', 'ī', 'í', 'ǐ', 'ì'],\r\n    u: ['u', 'ū', 'ú', 'ǔ', 'ù'],\r\n    n: ['n', 'n̄', 'ń', 'ň', 'ǹ'],\r\n    m: ['m', 'm̄', 'ḿ', 'm̌', 'm̀'],\r\n    ê: ['ê', 'ê̄', 'ế', 'ê̌', 'ề'],\r\n};\r\n/**\r\n * @description: 拼音格式转换。pin1 yin1 -> pīn yīn 或 pīn yīn -> pin1 yin1 或 pīn yīn -> pin yin\r\n * @param {string | string[]} pinyin 要转换的拼音字符串或者拼音字符串数组\r\n * @param {ConvertOptions=} options 配置项\r\n * @return {string | string[]} 转换后的拼音字符串或者拼音字符串数组\r\n */\r\nfunction convert(pinyin, options) {\r\n    options = Object.assign(Object.assign({}, DefaultConvertOptions), (options || {}));\r\n    const originType = typeof pinyin;\r\n    if (typeof pinyin === 'string') {\r\n        pinyin = pinyin.split(options.separator);\r\n    }\r\n    pinyin = pinyin.map((item) => {\r\n        const format = options.format;\r\n        if (format === 'numToSymbol') {\r\n            return formatNumToSymbol(item);\r\n        }\r\n        else if (format === 'symbolToNum') {\r\n            return formatSymbolToNum(item);\r\n        }\r\n        else if (format === 'toneNone') {\r\n            return formatToneNone(item);\r\n        }\r\n        return item;\r\n    });\r\n    if (originType === 'string') {\r\n        return pinyin.join(options.separator);\r\n    }\r\n    else {\r\n        return pinyin;\r\n    }\r\n}\r\nfunction formatNumToSymbol(pinyin) {\r\n    const lastChar = Number(pinyin[pinyin.length - 1]);\r\n    if (lastChar >= 0 && lastChar <= 4) {\r\n        for (let key in toneMap) {\r\n            if (pinyin.includes(key)) {\r\n                return pinyin\r\n                    .slice(0, pinyin.length - 1)\r\n                    .replace(key, toneMap[key][lastChar]);\r\n            }\r\n        }\r\n        return pinyin;\r\n    }\r\n    else {\r\n        return pinyin;\r\n    }\r\n}\r\nfunction formatSymbolToNum(pinyin) {\r\n    return `${getPinyinWithoutTone(pinyin)}${getNumOfTone(pinyin)}`;\r\n}\r\nfunction formatToneNone(pinyin) {\r\n    return getPinyinWithoutTone(pinyin);\r\n}\n\nvar OutputFormat;\r\n(function (OutputFormat) {\r\n    OutputFormat[OutputFormat[\"AllSegment\"] = 1] = \"AllSegment\";\r\n    OutputFormat[OutputFormat[\"AllArray\"] = 2] = \"AllArray\";\r\n    OutputFormat[OutputFormat[\"AllString\"] = 3] = \"AllString\";\r\n    OutputFormat[OutputFormat[\"PinyinSegment\"] = 4] = \"PinyinSegment\";\r\n    OutputFormat[OutputFormat[\"PinyinArray\"] = 5] = \"PinyinArray\";\r\n    OutputFormat[OutputFormat[\"PinyinString\"] = 6] = \"PinyinString\";\r\n    OutputFormat[OutputFormat[\"ZhSegment\"] = 7] = \"ZhSegment\";\r\n    OutputFormat[OutputFormat[\"ZhArray\"] = 8] = \"ZhArray\";\r\n    OutputFormat[OutputFormat[\"ZhString\"] = 9] = \"ZhString\";\r\n})(OutputFormat || (OutputFormat = {}));\r\nfunction middlewareSegment(list, matches) {\r\n    const segments = [];\r\n    let i = 0;\r\n    let j = 0;\r\n    while (i < list.length && j < matches.length) {\r\n        const match = matches[j];\r\n        const item = list[i];\r\n        if (match.zh.startsWith(item.origin)) {\r\n            const start = i;\r\n            const chars = splitString(match.zh);\r\n            let cur = start + 1;\r\n            while (cur < list.length && list[cur].origin === chars[cur - start]) {\r\n                cur++;\r\n            }\r\n            const _segment = list.slice(start, cur);\r\n            segments.push({\r\n                segment: _segment.map((item) => ({\r\n                    origin: item.origin,\r\n                    result: item.result,\r\n                })),\r\n                isZh: true,\r\n            });\r\n            i += cur - start;\r\n            j++;\r\n        }\r\n        else {\r\n            segments.push({\r\n                segment: [\r\n                    {\r\n                        origin: item.origin,\r\n                        result: item.result,\r\n                    }\r\n                ],\r\n                isZh: false,\r\n            });\r\n            i++;\r\n        }\r\n    }\r\n    while (i < list.length) {\r\n        const item = list[i];\r\n        segments.push({\r\n            segment: [\r\n                {\r\n                    origin: item.origin,\r\n                    result: item.result,\r\n                }\r\n            ],\r\n            isZh: false,\r\n        });\r\n        i++;\r\n    }\r\n    return segments;\r\n}\r\nfunction middlewareOutputFormat(segments, options) {\r\n    const { format = OutputFormat.AllSegment, separator = ' ' } = options;\r\n    if (format === OutputFormat.AllSegment) {\r\n        return segments.map(item => {\r\n            return {\r\n                origin: item.segment.map(item => item.origin).join(''),\r\n                result: item.segment.map(item => item.result).join(''),\r\n            };\r\n        });\r\n    }\r\n    else if (format === OutputFormat.AllArray) {\r\n        return segments.map(item => item.segment);\r\n    }\r\n    else if (format === OutputFormat.AllString) {\r\n        const list = segments.map(item => {\r\n            return {\r\n                origin: item.segment.map(item => item.origin).join(''),\r\n                result: item.segment.map(item => item.result).join(''),\r\n            };\r\n        });\r\n        return {\r\n            origin: list.map(item => item.origin).join(separator),\r\n            result: list.map(item => item.result).join(separator),\r\n        };\r\n    }\r\n    else if (format === OutputFormat.PinyinSegment) {\r\n        return segments.map(item => item.segment.map(item => item.result).join(''));\r\n    }\r\n    else if (format === OutputFormat.PinyinArray) {\r\n        return segments.map(item => item.segment.map(item => item.result));\r\n    }\r\n    else if (format === OutputFormat.PinyinString) {\r\n        return segments.map(item => item.segment.map(item => item.result).join('')).join(separator);\r\n    }\r\n    else if (format === OutputFormat.ZhSegment) {\r\n        return segments.map(item => item.segment.map(item => item.origin).join(''));\r\n    }\r\n    else if (format === OutputFormat.ZhArray) {\r\n        return segments.map(item => item.segment.map(item => item.origin));\r\n    }\r\n    else if (format === OutputFormat.ZhString) {\r\n        return segments.map(item => item.segment.map(item => item.origin).join('')).join(separator);\r\n    }\r\n}\n\nconst DEFAULT_OPTIONS = {\r\n    toneType: \"symbol\",\r\n    mode: \"normal\",\r\n    nonZh: \"spaced\",\r\n    v: false,\r\n    separator: \" \",\r\n    toneSandhi: true,\r\n    segmentit: 2 /* TokenizationAlgorithm.MaxProbability */,\r\n    format: OutputFormat.AllSegment,\r\n};\r\nfunction segment(word, options) {\r\n    options = Object.assign(Object.assign({}, DEFAULT_OPTIONS), (options || {}));\r\n    // 校验 word 类型是否正确\r\n    const legal = validateType(word);\r\n    if (!legal) {\r\n        return word;\r\n    }\r\n    if (options.surname === undefined) {\r\n        if (options.mode === \"surname\") {\r\n            options.surname = \"all\";\r\n        }\r\n        else {\r\n            options.surname = \"off\";\r\n        }\r\n    }\r\n    let _list = Array(stringLength(word));\r\n    let { list, matches } = getPinyin(word, _list, options.surname, options.segmentit);\r\n    // 一和不变调处理\r\n    list = middlewareToneSandhi(list, options.toneSandhi);\r\n    // nonZh\r\n    list = middleWareNonZh(list, options);\r\n    // toneType参数处理\r\n    middlewareToneType(list, options);\r\n    // v参数处理\r\n    middlewareV(list, options);\r\n    const segments = middlewareSegment(list, matches);\r\n    return middlewareOutputFormat(segments, { format: options.format, separator: options.separator });\r\n}\n\nexport { OutputFormat, addDict, clearCustomDict, convert, customPinyin, getFinalParts, getInitialAndFinal, getNumOfTone, html, match, pinyin, polyphonic, removeDict, segment };\n","export default function getEntity(keyEntities, key) {\n  return keyEntities[key];\n}","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n  module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n  module.exports = require('./cjs/scheduler.development.js');\n}\n","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"COS\"] = factory();\n\telse\n\t\troot[\"COS\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"/dist/\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = \"./index.js\");\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ \"./index.js\":\n/*!******************!*\\\n  !*** ./index.js ***!\n  \\******************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar COS = __webpack_require__(/*! ./src/cos */ \"./src/cos.js\");\nmodule.exports = COS;\n\n/***/ }),\n\n/***/ \"./lib/base64.js\":\n/*!***********************!*\\\n  !*** ./lib/base64.js ***!\n  \\***********************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\n/*\n * $Id: base64.js,v 2.15 2014/04/05 12:58:57 dankogai Exp dankogai $\n *\n *  Licensed under the BSD 3-Clause License.\n *    http://opensource.org/licenses/BSD-3-Clause\n *\n *  References:\n *    http://en.wikipedia.org/wiki/Base64\n */\n\nvar Base64 = function (global) {\n  global = global || {};\n  'use strict';\n  // existing version for noConflict()\n  var _Base64 = global.Base64;\n  var version = \"2.1.9\";\n  // if node.js, we use Buffer\n  var buffer;\n  // constants\n  var b64chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n  var b64tab = function (bin) {\n    var t = {};\n    for (var i = 0, l = bin.length; i < l; i++) t[bin.charAt(i)] = i;\n    return t;\n  }(b64chars);\n  var fromCharCode = String.fromCharCode;\n  // encoder stuff\n  var cb_utob = function cb_utob(c) {\n    if (c.length < 2) {\n      var cc = c.charCodeAt(0);\n      return cc < 0x80 ? c : cc < 0x800 ? fromCharCode(0xc0 | cc >>> 6) + fromCharCode(0x80 | cc & 0x3f) : fromCharCode(0xe0 | cc >>> 12 & 0x0f) + fromCharCode(0x80 | cc >>> 6 & 0x3f) + fromCharCode(0x80 | cc & 0x3f);\n    } else {\n      var cc = 0x10000 + (c.charCodeAt(0) - 0xD800) * 0x400 + (c.charCodeAt(1) - 0xDC00);\n      return fromCharCode(0xf0 | cc >>> 18 & 0x07) + fromCharCode(0x80 | cc >>> 12 & 0x3f) + fromCharCode(0x80 | cc >>> 6 & 0x3f) + fromCharCode(0x80 | cc & 0x3f);\n    }\n  };\n  var re_utob = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFFF]|[^\\x00-\\x7F]/g;\n  var utob = function utob(u) {\n    return u.replace(re_utob, cb_utob);\n  };\n  var cb_encode = function cb_encode(ccc) {\n    var padlen = [0, 2, 1][ccc.length % 3],\n      ord = ccc.charCodeAt(0) << 16 | (ccc.length > 1 ? ccc.charCodeAt(1) : 0) << 8 | (ccc.length > 2 ? ccc.charCodeAt(2) : 0),\n      chars = [b64chars.charAt(ord >>> 18), b64chars.charAt(ord >>> 12 & 63), padlen >= 2 ? '=' : b64chars.charAt(ord >>> 6 & 63), padlen >= 1 ? '=' : b64chars.charAt(ord & 63)];\n    return chars.join('');\n  };\n  var btoa = global.btoa ? function (b) {\n    return global.btoa(b);\n  } : function (b) {\n    return b.replace(/[\\s\\S]{1,3}/g, cb_encode);\n  };\n  var _encode = buffer ? function (u) {\n    return (u.constructor === buffer.constructor ? u : new buffer(u)).toString('base64');\n  } : function (u) {\n    return btoa(utob(u));\n  };\n  var encode = function encode(u, urisafe) {\n    return !urisafe ? _encode(String(u)) : _encode(String(u)).replace(/[+\\/]/g, function (m0) {\n      return m0 == '+' ? '-' : '_';\n    }).replace(/=/g, '');\n  };\n  var encodeURI = function encodeURI(u) {\n    return encode(u, true);\n  };\n  // decoder stuff\n  var re_btou = new RegExp(['[\\xC0-\\xDF][\\x80-\\xBF]', '[\\xE0-\\xEF][\\x80-\\xBF]{2}', '[\\xF0-\\xF7][\\x80-\\xBF]{3}'].join('|'), 'g');\n  var cb_btou = function cb_btou(cccc) {\n    switch (cccc.length) {\n      case 4:\n        var cp = (0x07 & cccc.charCodeAt(0)) << 18 | (0x3f & cccc.charCodeAt(1)) << 12 | (0x3f & cccc.charCodeAt(2)) << 6 | 0x3f & cccc.charCodeAt(3),\n          offset = cp - 0x10000;\n        return fromCharCode((offset >>> 10) + 0xD800) + fromCharCode((offset & 0x3FF) + 0xDC00);\n      case 3:\n        return fromCharCode((0x0f & cccc.charCodeAt(0)) << 12 | (0x3f & cccc.charCodeAt(1)) << 6 | 0x3f & cccc.charCodeAt(2));\n      default:\n        return fromCharCode((0x1f & cccc.charCodeAt(0)) << 6 | 0x3f & cccc.charCodeAt(1));\n    }\n  };\n  var btou = function btou(b) {\n    return b.replace(re_btou, cb_btou);\n  };\n  var cb_decode = function cb_decode(cccc) {\n    var len = cccc.length,\n      padlen = len % 4,\n      n = (len > 0 ? b64tab[cccc.charAt(0)] << 18 : 0) | (len > 1 ? b64tab[cccc.charAt(1)] << 12 : 0) | (len > 2 ? b64tab[cccc.charAt(2)] << 6 : 0) | (len > 3 ? b64tab[cccc.charAt(3)] : 0),\n      chars = [fromCharCode(n >>> 16), fromCharCode(n >>> 8 & 0xff), fromCharCode(n & 0xff)];\n    chars.length -= [0, 0, 2, 1][padlen];\n    return chars.join('');\n  };\n  var atob = global.atob ? function (a) {\n    return global.atob(a);\n  } : function (a) {\n    return a.replace(/[\\s\\S]{1,4}/g, cb_decode);\n  };\n  var _decode = buffer ? function (a) {\n    return (a.constructor === buffer.constructor ? a : new buffer(a, 'base64')).toString();\n  } : function (a) {\n    return btou(atob(a));\n  };\n  var decode = function decode(a) {\n    return _decode(String(a).replace(/[-_]/g, function (m0) {\n      return m0 == '-' ? '+' : '/';\n    }).replace(/[^A-Za-z0-9\\+\\/]/g, ''));\n  };\n  var noConflict = function noConflict() {\n    var Base64 = global.Base64;\n    global.Base64 = _Base64;\n    return Base64;\n  };\n  // export Base64\n  var Base64 = {\n    VERSION: version,\n    atob: atob,\n    btoa: btoa,\n    fromBase64: decode,\n    toBase64: encode,\n    utob: utob,\n    encode: encode,\n    encodeURI: encodeURI,\n    btou: btou,\n    decode: decode,\n    noConflict: noConflict\n  };\n  return Base64;\n}();\nmodule.exports = Base64;\n\n/***/ }),\n\n/***/ \"./lib/crypto.js\":\n/*!***********************!*\\\n  !*** ./lib/crypto.js ***!\n  \\***********************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(module) {var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ \"./node_modules/@babel/runtime/helpers/typeof.js\");\n/*\n CryptoJS v3.1.2\n code.google.com/p/crypto-js\n (c) 2009-2013 by Jeff Mott. All rights reserved.\n code.google.com/p/crypto-js/wiki/License\n */\nvar CryptoJS = CryptoJS || function (g, l) {\n  var e = {},\n    d = e.lib = {},\n    m = function m() {},\n    k = d.Base = {\n      extend: function extend(a) {\n        m.prototype = this;\n        var c = new m();\n        a && c.mixIn(a);\n        c.hasOwnProperty(\"init\") || (c.init = function () {\n          c.$super.init.apply(this, arguments);\n        });\n        c.init.prototype = c;\n        c.$super = this;\n        return c;\n      },\n      create: function create() {\n        var a = this.extend();\n        a.init.apply(a, arguments);\n        return a;\n      },\n      init: function init() {},\n      mixIn: function mixIn(a) {\n        for (var c in a) a.hasOwnProperty(c) && (this[c] = a[c]);\n        a.hasOwnProperty(\"toString\") && (this.toString = a.toString);\n      },\n      clone: function clone() {\n        return this.init.prototype.extend(this);\n      }\n    },\n    p = d.WordArray = k.extend({\n      init: function init(a, c) {\n        a = this.words = a || [];\n        this.sigBytes = c != l ? c : 4 * a.length;\n      },\n      toString: function toString(a) {\n        return (a || n).stringify(this);\n      },\n      concat: function concat(a) {\n        var c = this.words,\n          q = a.words,\n          f = this.sigBytes;\n        a = a.sigBytes;\n        this.clamp();\n        if (f % 4) for (var b = 0; b < a; b++) c[f + b >>> 2] |= (q[b >>> 2] >>> 24 - 8 * (b % 4) & 255) << 24 - 8 * ((f + b) % 4);else if (65535 < q.length) for (b = 0; b < a; b += 4) c[f + b >>> 2] = q[b >>> 2];else c.push.apply(c, q);\n        this.sigBytes += a;\n        return this;\n      },\n      clamp: function clamp() {\n        var a = this.words,\n          c = this.sigBytes;\n        a[c >>> 2] &= 4294967295 << 32 - 8 * (c % 4);\n        a.length = g.ceil(c / 4);\n      },\n      clone: function clone() {\n        var a = k.clone.call(this);\n        a.words = this.words.slice(0);\n        return a;\n      },\n      random: function random(a) {\n        for (var c = [], b = 0; b < a; b += 4) c.push(4294967296 * g.random() | 0);\n        return new p.init(c, a);\n      }\n    }),\n    b = e.enc = {},\n    n = b.Hex = {\n      stringify: function stringify(a) {\n        var c = a.words;\n        a = a.sigBytes;\n        for (var b = [], f = 0; f < a; f++) {\n          var d = c[f >>> 2] >>> 24 - 8 * (f % 4) & 255;\n          b.push((d >>> 4).toString(16));\n          b.push((d & 15).toString(16));\n        }\n        return b.join(\"\");\n      },\n      parse: function parse(a) {\n        for (var c = a.length, b = [], f = 0; f < c; f += 2) b[f >>> 3] |= parseInt(a.substr(f, 2), 16) << 24 - 4 * (f % 8);\n        return new p.init(b, c / 2);\n      }\n    },\n    j = b.Latin1 = {\n      stringify: function stringify(a) {\n        var c = a.words;\n        a = a.sigBytes;\n        for (var b = [], f = 0; f < a; f++) b.push(String.fromCharCode(c[f >>> 2] >>> 24 - 8 * (f % 4) & 255));\n        return b.join(\"\");\n      },\n      parse: function parse(a) {\n        for (var c = a.length, b = [], f = 0; f < c; f++) b[f >>> 2] |= (a.charCodeAt(f) & 255) << 24 - 8 * (f % 4);\n        return new p.init(b, c);\n      }\n    },\n    h = b.Utf8 = {\n      stringify: function stringify(a) {\n        try {\n          return decodeURIComponent(escape(j.stringify(a)));\n        } catch (c) {\n          throw Error(\"Malformed UTF-8 data\");\n        }\n      },\n      parse: function parse(a) {\n        return j.parse(unescape(encodeURIComponent(a)));\n      }\n    },\n    r = d.BufferedBlockAlgorithm = k.extend({\n      reset: function reset() {\n        this._data = new p.init();\n        this._nDataBytes = 0;\n      },\n      _append: function _append(a) {\n        \"string\" == typeof a && (a = h.parse(a));\n        this._data.concat(a);\n        this._nDataBytes += a.sigBytes;\n      },\n      _process: function _process(a) {\n        var c = this._data,\n          b = c.words,\n          f = c.sigBytes,\n          d = this.blockSize,\n          e = f / (4 * d),\n          e = a ? g.ceil(e) : g.max((e | 0) - this._minBufferSize, 0);\n        a = e * d;\n        f = g.min(4 * a, f);\n        if (a) {\n          for (var k = 0; k < a; k += d) this._doProcessBlock(b, k);\n          k = b.splice(0, a);\n          c.sigBytes -= f;\n        }\n        return new p.init(k, f);\n      },\n      clone: function clone() {\n        var a = k.clone.call(this);\n        a._data = this._data.clone();\n        return a;\n      },\n      _minBufferSize: 0\n    });\n  d.Hasher = r.extend({\n    cfg: k.extend(),\n    init: function init(a) {\n      this.cfg = this.cfg.extend(a);\n      this.reset();\n    },\n    reset: function reset() {\n      r.reset.call(this);\n      this._doReset();\n    },\n    update: function update(a) {\n      this._append(a);\n      this._process();\n      return this;\n    },\n    finalize: function finalize(a) {\n      a && this._append(a);\n      return this._doFinalize();\n    },\n    blockSize: 16,\n    _createHelper: function _createHelper(a) {\n      return function (b, d) {\n        return new a.init(d).finalize(b);\n      };\n    },\n    _createHmacHelper: function _createHmacHelper(a) {\n      return function (b, d) {\n        return new s.HMAC.init(a, d).finalize(b);\n      };\n    }\n  });\n  var s = e.algo = {};\n  return e;\n}(Math);\n(function () {\n  var g = CryptoJS,\n    l = g.lib,\n    e = l.WordArray,\n    d = l.Hasher,\n    m = [],\n    l = g.algo.SHA1 = d.extend({\n      _doReset: function _doReset() {\n        this._hash = new e.init([1732584193, 4023233417, 2562383102, 271733878, 3285377520]);\n      },\n      _doProcessBlock: function _doProcessBlock(d, e) {\n        for (var b = this._hash.words, n = b[0], j = b[1], h = b[2], g = b[3], l = b[4], a = 0; 80 > a; a++) {\n          if (16 > a) m[a] = d[e + a] | 0;else {\n            var c = m[a - 3] ^ m[a - 8] ^ m[a - 14] ^ m[a - 16];\n            m[a] = c << 1 | c >>> 31;\n          }\n          c = (n << 5 | n >>> 27) + l + m[a];\n          c = 20 > a ? c + ((j & h | ~j & g) + 1518500249) : 40 > a ? c + ((j ^ h ^ g) + 1859775393) : 60 > a ? c + ((j & h | j & g | h & g) - 1894007588) : c + ((j ^ h ^ g) - 899497514);\n          l = g;\n          g = h;\n          h = j << 30 | j >>> 2;\n          j = n;\n          n = c;\n        }\n        b[0] = b[0] + n | 0;\n        b[1] = b[1] + j | 0;\n        b[2] = b[2] + h | 0;\n        b[3] = b[3] + g | 0;\n        b[4] = b[4] + l | 0;\n      },\n      _doFinalize: function _doFinalize() {\n        var d = this._data,\n          e = d.words,\n          b = 8 * this._nDataBytes,\n          g = 8 * d.sigBytes;\n        e[g >>> 5] |= 128 << 24 - g % 32;\n        e[(g + 64 >>> 9 << 4) + 14] = Math.floor(b / 4294967296);\n        e[(g + 64 >>> 9 << 4) + 15] = b;\n        d.sigBytes = 4 * e.length;\n        this._process();\n        return this._hash;\n      },\n      clone: function clone() {\n        var e = d.clone.call(this);\n        e._hash = this._hash.clone();\n        return e;\n      }\n    });\n  g.SHA1 = d._createHelper(l);\n  g.HmacSHA1 = d._createHmacHelper(l);\n})();\n(function () {\n  var g = CryptoJS,\n    l = g.enc.Utf8;\n  g.algo.HMAC = g.lib.Base.extend({\n    init: function init(e, d) {\n      e = this._hasher = new e.init();\n      \"string\" == typeof d && (d = l.parse(d));\n      var g = e.blockSize,\n        k = 4 * g;\n      d.sigBytes > k && (d = e.finalize(d));\n      d.clamp();\n      for (var p = this._oKey = d.clone(), b = this._iKey = d.clone(), n = p.words, j = b.words, h = 0; h < g; h++) n[h] ^= 1549556828, j[h] ^= 909522486;\n      p.sigBytes = b.sigBytes = k;\n      this.reset();\n    },\n    reset: function reset() {\n      var e = this._hasher;\n      e.reset();\n      e.update(this._iKey);\n    },\n    update: function update(e) {\n      this._hasher.update(e);\n      return this;\n    },\n    finalize: function finalize(e) {\n      var d = this._hasher;\n      e = d.finalize(e);\n      d.reset();\n      return d.finalize(this._oKey.clone().concat(e));\n    }\n  });\n})();\n(function () {\n  // Shortcuts\n  var C = CryptoJS;\n  var C_lib = C.lib;\n  var WordArray = C_lib.WordArray;\n  var C_enc = C.enc;\n\n  /**\n   * Base64 encoding strategy.\n   */\n  var Base64 = C_enc.Base64 = {\n    /**\n     * Converts a word array to a Base64 string.\n     *\n     * @param {WordArray} wordArray The word array.\n     *\n     * @return {string} The Base64 string.\n     *\n     * @static\n     *\n     * @example\n     *\n     *     var base64String = CryptoJS.enc.Base64.stringify(wordArray);\n     */\n    stringify: function stringify(wordArray) {\n      // Shortcuts\n      var words = wordArray.words;\n      var sigBytes = wordArray.sigBytes;\n      var map = this._map;\n\n      // Clamp excess bits\n      wordArray.clamp();\n\n      // Convert\n      var base64Chars = [];\n      for (var i = 0; i < sigBytes; i += 3) {\n        var byte1 = words[i >>> 2] >>> 24 - i % 4 * 8 & 0xff;\n        var byte2 = words[i + 1 >>> 2] >>> 24 - (i + 1) % 4 * 8 & 0xff;\n        var byte3 = words[i + 2 >>> 2] >>> 24 - (i + 2) % 4 * 8 & 0xff;\n        var triplet = byte1 << 16 | byte2 << 8 | byte3;\n        for (var j = 0; j < 4 && i + j * 0.75 < sigBytes; j++) {\n          base64Chars.push(map.charAt(triplet >>> 6 * (3 - j) & 0x3f));\n        }\n      }\n\n      // Add padding\n      var paddingChar = map.charAt(64);\n      if (paddingChar) {\n        while (base64Chars.length % 4) {\n          base64Chars.push(paddingChar);\n        }\n      }\n      return base64Chars.join('');\n    },\n    /**\n     * Converts a Base64 string to a word array.\n     *\n     * @param {string} base64Str The Base64 string.\n     *\n     * @return {WordArray} The word array.\n     *\n     * @static\n     *\n     * @example\n     *\n     *     var wordArray = CryptoJS.enc.Base64.parse(base64String);\n     */\n    parse: function parse(base64Str) {\n      // Shortcuts\n      var base64StrLength = base64Str.length;\n      var map = this._map;\n\n      // Ignore padding\n      var paddingChar = map.charAt(64);\n      if (paddingChar) {\n        var paddingIndex = base64Str.indexOf(paddingChar);\n        if (paddingIndex != -1) {\n          base64StrLength = paddingIndex;\n        }\n      }\n\n      // Convert\n      var words = [];\n      var nBytes = 0;\n      for (var i = 0; i < base64StrLength; i++) {\n        if (i % 4) {\n          var bits1 = map.indexOf(base64Str.charAt(i - 1)) << i % 4 * 2;\n          var bits2 = map.indexOf(base64Str.charAt(i)) >>> 6 - i % 4 * 2;\n          words[nBytes >>> 2] |= (bits1 | bits2) << 24 - nBytes % 4 * 8;\n          nBytes++;\n        }\n      }\n      return WordArray.create(words, nBytes);\n    },\n    _map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='\n  };\n})();\nif (( false ? undefined : _typeof(module)) === 'object') {\n  module.exports = CryptoJS;\n} else {\n  window.CryptoJS = CryptoJS;\n}\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n/***/ }),\n\n/***/ \"./lib/md5.js\":\n/*!********************!*\\\n  !*** ./lib/md5.js ***!\n  \\********************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(module) {var __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ \"./node_modules/@babel/runtime/helpers/typeof.js\");\n/* https://github.com/emn178/js-md5 */\n(function () {\n  'use strict';\n\n  var WINDOW = (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) === 'object';\n  var root = WINDOW ? window : {};\n  if (root.JS_MD5_NO_WINDOW) {\n    WINDOW = false;\n  }\n  var WEB_WORKER = !WINDOW && (typeof self === \"undefined\" ? \"undefined\" : _typeof(self)) === 'object';\n  if (WEB_WORKER) {\n    root = self;\n  }\n  var COMMON_JS = !root.JS_MD5_NO_COMMON_JS && ( false ? undefined : _typeof(module)) === 'object' && module.exports;\n  var AMD =  true && __webpack_require__(/*! !webpack amd options */ \"./node_modules/webpack/buildin/amd-options.js\");\n  var ARRAY_BUFFER = !root.JS_MD5_NO_ARRAY_BUFFER && typeof ArrayBuffer !== 'undefined';\n  var HEX_CHARS = '0123456789abcdef'.split('');\n  var EXTRA = [128, 32768, 8388608, -2147483648];\n  var SHIFT = [0, 8, 16, 24];\n  var OUTPUT_TYPES = ['hex', 'array', 'digest', 'buffer', 'arrayBuffer', 'base64'];\n  var BASE64_ENCODE_CHAR = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split('');\n  var blocks = [],\n    buffer8;\n  if (ARRAY_BUFFER) {\n    var buffer = new ArrayBuffer(68);\n    buffer8 = new Uint8Array(buffer);\n    blocks = new Uint32Array(buffer);\n  }\n  if (root.JS_MD5_NO_NODE_JS || !Array.isArray) {\n    Array.isArray = function (obj) {\n      return Object.prototype.toString.call(obj) === '[object Array]';\n    };\n  }\n  if (ARRAY_BUFFER && (root.JS_MD5_NO_ARRAY_BUFFER_IS_VIEW || !ArrayBuffer.isView)) {\n    ArrayBuffer.isView = function (obj) {\n      return _typeof(obj) === 'object' && obj.buffer && obj.buffer.constructor === ArrayBuffer;\n    };\n  }\n\n  /**\n   * @method hex\n   * @memberof md5\n   * @description Output hash as hex string\n   * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash\n   * @returns {String} Hex string\n   * @example\n   * md5.hex('The quick brown fox jumps over the lazy dog');\n   * // equal to\n   * md5('The quick brown fox jumps over the lazy dog');\n   */\n  /**\n   * @method digest\n   * @memberof md5\n   * @description Output hash as bytes array\n   * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash\n   * @returns {Array} Bytes array\n   * @example\n   * md5.digest('The quick brown fox jumps over the lazy dog');\n   */\n  /**\n   * @method array\n   * @memberof md5\n   * @description Output hash as bytes array\n   * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash\n   * @returns {Array} Bytes array\n   * @example\n   * md5.array('The quick brown fox jumps over the lazy dog');\n   */\n  /**\n   * @method arrayBuffer\n   * @memberof md5\n   * @description Output hash as ArrayBuffer\n   * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash\n   * @returns {ArrayBuffer} ArrayBuffer\n   * @example\n   * md5.arrayBuffer('The quick brown fox jumps over the lazy dog');\n   */\n  /**\n   * @method buffer\n   * @deprecated This maybe confuse with Buffer in node.js. Please use arrayBuffer instead.\n   * @memberof md5\n   * @description Output hash as ArrayBuffer\n   * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash\n   * @returns {ArrayBuffer} ArrayBuffer\n   * @example\n   * md5.buffer('The quick brown fox jumps over the lazy dog');\n   */\n  /**\n   * @method base64\n   * @memberof md5\n   * @description Output hash as base64 string\n   * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash\n   * @returns {String} base64 string\n   * @example\n   * md5.base64('The quick brown fox jumps over the lazy dog');\n   */\n  var createOutputMethod = function createOutputMethod(outputType) {\n    return function (message, isBinStr) {\n      return new Md5(true).update(message, isBinStr)[outputType]();\n    };\n  };\n\n  /**\n   * @method create\n   * @memberof md5\n   * @description Create Md5 object\n   * @returns {Md5} Md5 object.\n   * @example\n   * var hash = md5.create();\n   */\n  /**\n   * @method update\n   * @memberof md5\n   * @description Create and update Md5 object\n   * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash\n   * @returns {Md5} Md5 object.\n   * @example\n   * var hash = md5.update('The quick brown fox jumps over the lazy dog');\n   * // equal to\n   * var hash = md5.create();\n   * hash.update('The quick brown fox jumps over the lazy dog');\n   */\n  var createMethod = function createMethod() {\n    var method = createOutputMethod('hex');\n    method.getCtx = method.create = function () {\n      return new Md5();\n    };\n    method.update = function (message) {\n      return method.create().update(message);\n    };\n    for (var i = 0; i < OUTPUT_TYPES.length; ++i) {\n      var type = OUTPUT_TYPES[i];\n      method[type] = createOutputMethod(type);\n    }\n    return method;\n  };\n\n  /**\n   * Md5 class\n   * @class Md5\n   * @description This is internal class.\n   * @see {@link md5.create}\n   */\n  function Md5(sharedMemory) {\n    if (sharedMemory) {\n      blocks[0] = blocks[16] = blocks[1] = blocks[2] = blocks[3] = blocks[4] = blocks[5] = blocks[6] = blocks[7] = blocks[8] = blocks[9] = blocks[10] = blocks[11] = blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;\n      this.blocks = blocks;\n      this.buffer8 = buffer8;\n    } else {\n      if (ARRAY_BUFFER) {\n        var buffer = new ArrayBuffer(68);\n        this.buffer8 = new Uint8Array(buffer);\n        this.blocks = new Uint32Array(buffer);\n      } else {\n        this.blocks = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n      }\n    }\n    this.h0 = this.h1 = this.h2 = this.h3 = this.start = this.bytes = this.hBytes = 0;\n    this.finalized = this.hashed = false;\n    this.first = true;\n  }\n\n  /**\n   * @method update\n   * @memberof Md5\n   * @instance\n   * @description Update hash\n   * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash\n   * @returns {Md5} Md5 object.\n   * @see {@link md5.update}\n   */\n  Md5.prototype.update = function (message, isBinStr) {\n    if (this.finalized) {\n      return;\n    }\n    var code,\n      index = 0,\n      i,\n      length = message.length,\n      blocks = this.blocks;\n    var buffer8 = this.buffer8;\n    while (index < length) {\n      if (this.hashed) {\n        this.hashed = false;\n        blocks[0] = blocks[16];\n        blocks[16] = blocks[1] = blocks[2] = blocks[3] = blocks[4] = blocks[5] = blocks[6] = blocks[7] = blocks[8] = blocks[9] = blocks[10] = blocks[11] = blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;\n      }\n      if (ARRAY_BUFFER) {\n        for (i = this.start; index < length && i < 64; ++index) {\n          code = message.charCodeAt(index);\n          if (isBinStr || code < 0x80) {\n            buffer8[i++] = code;\n          } else if (code < 0x800) {\n            buffer8[i++] = 0xc0 | code >> 6;\n            buffer8[i++] = 0x80 | code & 0x3f;\n          } else if (code < 0xd800 || code >= 0xe000) {\n            buffer8[i++] = 0xe0 | code >> 12;\n            buffer8[i++] = 0x80 | code >> 6 & 0x3f;\n            buffer8[i++] = 0x80 | code & 0x3f;\n          } else {\n            code = 0x10000 + ((code & 0x3ff) << 10 | message.charCodeAt(++index) & 0x3ff);\n            buffer8[i++] = 0xf0 | code >> 18;\n            buffer8[i++] = 0x80 | code >> 12 & 0x3f;\n            buffer8[i++] = 0x80 | code >> 6 & 0x3f;\n            buffer8[i++] = 0x80 | code & 0x3f;\n          }\n        }\n      } else {\n        for (i = this.start; index < length && i < 64; ++index) {\n          code = message.charCodeAt(index);\n          if (isBinStr || code < 0x80) {\n            blocks[i >> 2] |= code << SHIFT[i++ & 3];\n          } else if (code < 0x800) {\n            blocks[i >> 2] |= (0xc0 | code >> 6) << SHIFT[i++ & 3];\n            blocks[i >> 2] |= (0x80 | code & 0x3f) << SHIFT[i++ & 3];\n          } else if (code < 0xd800 || code >= 0xe000) {\n            blocks[i >> 2] |= (0xe0 | code >> 12) << SHIFT[i++ & 3];\n            blocks[i >> 2] |= (0x80 | code >> 6 & 0x3f) << SHIFT[i++ & 3];\n            blocks[i >> 2] |= (0x80 | code & 0x3f) << SHIFT[i++ & 3];\n          } else {\n            code = 0x10000 + ((code & 0x3ff) << 10 | message.charCodeAt(++index) & 0x3ff);\n            blocks[i >> 2] |= (0xf0 | code >> 18) << SHIFT[i++ & 3];\n            blocks[i >> 2] |= (0x80 | code >> 12 & 0x3f) << SHIFT[i++ & 3];\n            blocks[i >> 2] |= (0x80 | code >> 6 & 0x3f) << SHIFT[i++ & 3];\n            blocks[i >> 2] |= (0x80 | code & 0x3f) << SHIFT[i++ & 3];\n          }\n        }\n      }\n      this.lastByteIndex = i;\n      this.bytes += i - this.start;\n      if (i >= 64) {\n        this.start = i - 64;\n        this.hash();\n        this.hashed = true;\n      } else {\n        this.start = i;\n      }\n    }\n    if (this.bytes > 4294967295) {\n      this.hBytes += this.bytes / 4294967296 << 0;\n      this.bytes = this.bytes % 4294967296;\n    }\n    return this;\n  };\n  Md5.prototype.finalize = function () {\n    if (this.finalized) {\n      return;\n    }\n    this.finalized = true;\n    var blocks = this.blocks,\n      i = this.lastByteIndex;\n    blocks[i >> 2] |= EXTRA[i & 3];\n    if (i >= 56) {\n      if (!this.hashed) {\n        this.hash();\n      }\n      blocks[0] = blocks[16];\n      blocks[16] = blocks[1] = blocks[2] = blocks[3] = blocks[4] = blocks[5] = blocks[6] = blocks[7] = blocks[8] = blocks[9] = blocks[10] = blocks[11] = blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;\n    }\n    blocks[14] = this.bytes << 3;\n    blocks[15] = this.hBytes << 3 | this.bytes >>> 29;\n    this.hash();\n  };\n  Md5.prototype.hash = function () {\n    var a,\n      b,\n      c,\n      d,\n      bc,\n      da,\n      blocks = this.blocks;\n    if (this.first) {\n      a = blocks[0] - 680876937;\n      a = (a << 7 | a >>> 25) - 271733879 << 0;\n      d = (-1732584194 ^ a & 2004318071) + blocks[1] - 117830708;\n      d = (d << 12 | d >>> 20) + a << 0;\n      c = (-271733879 ^ d & (a ^ -271733879)) + blocks[2] - 1126478375;\n      c = (c << 17 | c >>> 15) + d << 0;\n      b = (a ^ c & (d ^ a)) + blocks[3] - 1316259209;\n      b = (b << 22 | b >>> 10) + c << 0;\n    } else {\n      a = this.h0;\n      b = this.h1;\n      c = this.h2;\n      d = this.h3;\n      a += (d ^ b & (c ^ d)) + blocks[0] - 680876936;\n      a = (a << 7 | a >>> 25) + b << 0;\n      d += (c ^ a & (b ^ c)) + blocks[1] - 389564586;\n      d = (d << 12 | d >>> 20) + a << 0;\n      c += (b ^ d & (a ^ b)) + blocks[2] + 606105819;\n      c = (c << 17 | c >>> 15) + d << 0;\n      b += (a ^ c & (d ^ a)) + blocks[3] - 1044525330;\n      b = (b << 22 | b >>> 10) + c << 0;\n    }\n    a += (d ^ b & (c ^ d)) + blocks[4] - 176418897;\n    a = (a << 7 | a >>> 25) + b << 0;\n    d += (c ^ a & (b ^ c)) + blocks[5] + 1200080426;\n    d = (d << 12 | d >>> 20) + a << 0;\n    c += (b ^ d & (a ^ b)) + blocks[6] - 1473231341;\n    c = (c << 17 | c >>> 15) + d << 0;\n    b += (a ^ c & (d ^ a)) + blocks[7] - 45705983;\n    b = (b << 22 | b >>> 10) + c << 0;\n    a += (d ^ b & (c ^ d)) + blocks[8] + 1770035416;\n    a = (a << 7 | a >>> 25) + b << 0;\n    d += (c ^ a & (b ^ c)) + blocks[9] - 1958414417;\n    d = (d << 12 | d >>> 20) + a << 0;\n    c += (b ^ d & (a ^ b)) + blocks[10] - 42063;\n    c = (c << 17 | c >>> 15) + d << 0;\n    b += (a ^ c & (d ^ a)) + blocks[11] - 1990404162;\n    b = (b << 22 | b >>> 10) + c << 0;\n    a += (d ^ b & (c ^ d)) + blocks[12] + 1804603682;\n    a = (a << 7 | a >>> 25) + b << 0;\n    d += (c ^ a & (b ^ c)) + blocks[13] - 40341101;\n    d = (d << 12 | d >>> 20) + a << 0;\n    c += (b ^ d & (a ^ b)) + blocks[14] - 1502002290;\n    c = (c << 17 | c >>> 15) + d << 0;\n    b += (a ^ c & (d ^ a)) + blocks[15] + 1236535329;\n    b = (b << 22 | b >>> 10) + c << 0;\n    a += (c ^ d & (b ^ c)) + blocks[1] - 165796510;\n    a = (a << 5 | a >>> 27) + b << 0;\n    d += (b ^ c & (a ^ b)) + blocks[6] - 1069501632;\n    d = (d << 9 | d >>> 23) + a << 0;\n    c += (a ^ b & (d ^ a)) + blocks[11] + 643717713;\n    c = (c << 14 | c >>> 18) + d << 0;\n    b += (d ^ a & (c ^ d)) + blocks[0] - 373897302;\n    b = (b << 20 | b >>> 12) + c << 0;\n    a += (c ^ d & (b ^ c)) + blocks[5] - 701558691;\n    a = (a << 5 | a >>> 27) + b << 0;\n    d += (b ^ c & (a ^ b)) + blocks[10] + 38016083;\n    d = (d << 9 | d >>> 23) + a << 0;\n    c += (a ^ b & (d ^ a)) + blocks[15] - 660478335;\n    c = (c << 14 | c >>> 18) + d << 0;\n    b += (d ^ a & (c ^ d)) + blocks[4] - 405537848;\n    b = (b << 20 | b >>> 12) + c << 0;\n    a += (c ^ d & (b ^ c)) + blocks[9] + 568446438;\n    a = (a << 5 | a >>> 27) + b << 0;\n    d += (b ^ c & (a ^ b)) + blocks[14] - 1019803690;\n    d = (d << 9 | d >>> 23) + a << 0;\n    c += (a ^ b & (d ^ a)) + blocks[3] - 187363961;\n    c = (c << 14 | c >>> 18) + d << 0;\n    b += (d ^ a & (c ^ d)) + blocks[8] + 1163531501;\n    b = (b << 20 | b >>> 12) + c << 0;\n    a += (c ^ d & (b ^ c)) + blocks[13] - 1444681467;\n    a = (a << 5 | a >>> 27) + b << 0;\n    d += (b ^ c & (a ^ b)) + blocks[2] - 51403784;\n    d = (d << 9 | d >>> 23) + a << 0;\n    c += (a ^ b & (d ^ a)) + blocks[7] + 1735328473;\n    c = (c << 14 | c >>> 18) + d << 0;\n    b += (d ^ a & (c ^ d)) + blocks[12] - 1926607734;\n    b = (b << 20 | b >>> 12) + c << 0;\n    bc = b ^ c;\n    a += (bc ^ d) + blocks[5] - 378558;\n    a = (a << 4 | a >>> 28) + b << 0;\n    d += (bc ^ a) + blocks[8] - 2022574463;\n    d = (d << 11 | d >>> 21) + a << 0;\n    da = d ^ a;\n    c += (da ^ b) + blocks[11] + 1839030562;\n    c = (c << 16 | c >>> 16) + d << 0;\n    b += (da ^ c) + blocks[14] - 35309556;\n    b = (b << 23 | b >>> 9) + c << 0;\n    bc = b ^ c;\n    a += (bc ^ d) + blocks[1] - 1530992060;\n    a = (a << 4 | a >>> 28) + b << 0;\n    d += (bc ^ a) + blocks[4] + 1272893353;\n    d = (d << 11 | d >>> 21) + a << 0;\n    da = d ^ a;\n    c += (da ^ b) + blocks[7] - 155497632;\n    c = (c << 16 | c >>> 16) + d << 0;\n    b += (da ^ c) + blocks[10] - 1094730640;\n    b = (b << 23 | b >>> 9) + c << 0;\n    bc = b ^ c;\n    a += (bc ^ d) + blocks[13] + 681279174;\n    a = (a << 4 | a >>> 28) + b << 0;\n    d += (bc ^ a) + blocks[0] - 358537222;\n    d = (d << 11 | d >>> 21) + a << 0;\n    da = d ^ a;\n    c += (da ^ b) + blocks[3] - 722521979;\n    c = (c << 16 | c >>> 16) + d << 0;\n    b += (da ^ c) + blocks[6] + 76029189;\n    b = (b << 23 | b >>> 9) + c << 0;\n    bc = b ^ c;\n    a += (bc ^ d) + blocks[9] - 640364487;\n    a = (a << 4 | a >>> 28) + b << 0;\n    d += (bc ^ a) + blocks[12] - 421815835;\n    d = (d << 11 | d >>> 21) + a << 0;\n    da = d ^ a;\n    c += (da ^ b) + blocks[15] + 530742520;\n    c = (c << 16 | c >>> 16) + d << 0;\n    b += (da ^ c) + blocks[2] - 995338651;\n    b = (b << 23 | b >>> 9) + c << 0;\n    a += (c ^ (b | ~d)) + blocks[0] - 198630844;\n    a = (a << 6 | a >>> 26) + b << 0;\n    d += (b ^ (a | ~c)) + blocks[7] + 1126891415;\n    d = (d << 10 | d >>> 22) + a << 0;\n    c += (a ^ (d | ~b)) + blocks[14] - 1416354905;\n    c = (c << 15 | c >>> 17) + d << 0;\n    b += (d ^ (c | ~a)) + blocks[5] - 57434055;\n    b = (b << 21 | b >>> 11) + c << 0;\n    a += (c ^ (b | ~d)) + blocks[12] + 1700485571;\n    a = (a << 6 | a >>> 26) + b << 0;\n    d += (b ^ (a | ~c)) + blocks[3] - 1894986606;\n    d = (d << 10 | d >>> 22) + a << 0;\n    c += (a ^ (d | ~b)) + blocks[10] - 1051523;\n    c = (c << 15 | c >>> 17) + d << 0;\n    b += (d ^ (c | ~a)) + blocks[1] - 2054922799;\n    b = (b << 21 | b >>> 11) + c << 0;\n    a += (c ^ (b | ~d)) + blocks[8] + 1873313359;\n    a = (a << 6 | a >>> 26) + b << 0;\n    d += (b ^ (a | ~c)) + blocks[15] - 30611744;\n    d = (d << 10 | d >>> 22) + a << 0;\n    c += (a ^ (d | ~b)) + blocks[6] - 1560198380;\n    c = (c << 15 | c >>> 17) + d << 0;\n    b += (d ^ (c | ~a)) + blocks[13] + 1309151649;\n    b = (b << 21 | b >>> 11) + c << 0;\n    a += (c ^ (b | ~d)) + blocks[4] - 145523070;\n    a = (a << 6 | a >>> 26) + b << 0;\n    d += (b ^ (a | ~c)) + blocks[11] - 1120210379;\n    d = (d << 10 | d >>> 22) + a << 0;\n    c += (a ^ (d | ~b)) + blocks[2] + 718787259;\n    c = (c << 15 | c >>> 17) + d << 0;\n    b += (d ^ (c | ~a)) + blocks[9] - 343485551;\n    b = (b << 21 | b >>> 11) + c << 0;\n    if (this.first) {\n      this.h0 = a + 1732584193 << 0;\n      this.h1 = b - 271733879 << 0;\n      this.h2 = c - 1732584194 << 0;\n      this.h3 = d + 271733878 << 0;\n      this.first = false;\n    } else {\n      this.h0 = this.h0 + a << 0;\n      this.h1 = this.h1 + b << 0;\n      this.h2 = this.h2 + c << 0;\n      this.h3 = this.h3 + d << 0;\n    }\n  };\n\n  /**\n   * @method hex\n   * @memberof Md5\n   * @instance\n   * @description Output hash as hex string\n   * @returns {String} Hex string\n   * @see {@link md5.hex}\n   * @example\n   * hash.hex();\n   */\n  Md5.prototype.hex = function () {\n    this.finalize();\n    var h0 = this.h0,\n      h1 = this.h1,\n      h2 = this.h2,\n      h3 = this.h3;\n    return HEX_CHARS[h0 >> 4 & 0x0F] + HEX_CHARS[h0 & 0x0F] + HEX_CHARS[h0 >> 12 & 0x0F] + HEX_CHARS[h0 >> 8 & 0x0F] + HEX_CHARS[h0 >> 20 & 0x0F] + HEX_CHARS[h0 >> 16 & 0x0F] + HEX_CHARS[h0 >> 28 & 0x0F] + HEX_CHARS[h0 >> 24 & 0x0F] + HEX_CHARS[h1 >> 4 & 0x0F] + HEX_CHARS[h1 & 0x0F] + HEX_CHARS[h1 >> 12 & 0x0F] + HEX_CHARS[h1 >> 8 & 0x0F] + HEX_CHARS[h1 >> 20 & 0x0F] + HEX_CHARS[h1 >> 16 & 0x0F] + HEX_CHARS[h1 >> 28 & 0x0F] + HEX_CHARS[h1 >> 24 & 0x0F] + HEX_CHARS[h2 >> 4 & 0x0F] + HEX_CHARS[h2 & 0x0F] + HEX_CHARS[h2 >> 12 & 0x0F] + HEX_CHARS[h2 >> 8 & 0x0F] + HEX_CHARS[h2 >> 20 & 0x0F] + HEX_CHARS[h2 >> 16 & 0x0F] + HEX_CHARS[h2 >> 28 & 0x0F] + HEX_CHARS[h2 >> 24 & 0x0F] + HEX_CHARS[h3 >> 4 & 0x0F] + HEX_CHARS[h3 & 0x0F] + HEX_CHARS[h3 >> 12 & 0x0F] + HEX_CHARS[h3 >> 8 & 0x0F] + HEX_CHARS[h3 >> 20 & 0x0F] + HEX_CHARS[h3 >> 16 & 0x0F] + HEX_CHARS[h3 >> 28 & 0x0F] + HEX_CHARS[h3 >> 24 & 0x0F];\n  };\n\n  /**\n   * @method toString\n   * @memberof Md5\n   * @instance\n   * @description Output hash as hex string\n   * @returns {String} Hex string\n   * @see {@link md5.hex}\n   * @example\n   * hash.toString();\n   */\n  Md5.prototype.toString = Md5.prototype.hex;\n\n  /**\n   * @method digest\n   * @memberof Md5\n   * @instance\n   * @description Output hash as bytes array\n   * @returns {Array} Bytes array\n   * @see {@link md5.digest}\n   * @example\n   * hash.digest();\n   */\n  Md5.prototype.digest = function (format) {\n    if (format === 'hex') return this.hex();\n    this.finalize();\n    var h0 = this.h0,\n      h1 = this.h1,\n      h2 = this.h2,\n      h3 = this.h3;\n    var res = [h0 & 0xFF, h0 >> 8 & 0xFF, h0 >> 16 & 0xFF, h0 >> 24 & 0xFF, h1 & 0xFF, h1 >> 8 & 0xFF, h1 >> 16 & 0xFF, h1 >> 24 & 0xFF, h2 & 0xFF, h2 >> 8 & 0xFF, h2 >> 16 & 0xFF, h2 >> 24 & 0xFF, h3 & 0xFF, h3 >> 8 & 0xFF, h3 >> 16 & 0xFF, h3 >> 24 & 0xFF];\n    return res;\n  };\n\n  /**\n   * @method array\n   * @memberof Md5\n   * @instance\n   * @description Output hash as bytes array\n   * @returns {Array} Bytes array\n   * @see {@link md5.array}\n   * @example\n   * hash.array();\n   */\n  Md5.prototype.array = Md5.prototype.digest;\n\n  /**\n   * @method arrayBuffer\n   * @memberof Md5\n   * @instance\n   * @description Output hash as ArrayBuffer\n   * @returns {ArrayBuffer} ArrayBuffer\n   * @see {@link md5.arrayBuffer}\n   * @example\n   * hash.arrayBuffer();\n   */\n  Md5.prototype.arrayBuffer = function () {\n    this.finalize();\n    var buffer = new ArrayBuffer(16);\n    var blocks = new Uint32Array(buffer);\n    blocks[0] = this.h0;\n    blocks[1] = this.h1;\n    blocks[2] = this.h2;\n    blocks[3] = this.h3;\n    return buffer;\n  };\n\n  /**\n   * @method buffer\n   * @deprecated This maybe confuse with Buffer in node.js. Please use arrayBuffer instead.\n   * @memberof Md5\n   * @instance\n   * @description Output hash as ArrayBuffer\n   * @returns {ArrayBuffer} ArrayBuffer\n   * @see {@link md5.buffer}\n   * @example\n   * hash.buffer();\n   */\n  Md5.prototype.buffer = Md5.prototype.arrayBuffer;\n\n  /**\n   * @method base64\n   * @memberof Md5\n   * @instance\n   * @description Output hash as base64 string\n   * @returns {String} base64 string\n   * @see {@link md5.base64}\n   * @example\n   * hash.base64();\n   */\n  Md5.prototype.base64 = function () {\n    var v1,\n      v2,\n      v3,\n      base64Str = '',\n      bytes = this.array();\n    for (var i = 0; i < 15;) {\n      v1 = bytes[i++];\n      v2 = bytes[i++];\n      v3 = bytes[i++];\n      base64Str += BASE64_ENCODE_CHAR[v1 >>> 2] + BASE64_ENCODE_CHAR[(v1 << 4 | v2 >>> 4) & 63] + BASE64_ENCODE_CHAR[(v2 << 2 | v3 >>> 6) & 63] + BASE64_ENCODE_CHAR[v3 & 63];\n    }\n    v1 = bytes[i];\n    base64Str += BASE64_ENCODE_CHAR[v1 >>> 2] + BASE64_ENCODE_CHAR[v1 << 4 & 63] + '==';\n    return base64Str;\n  };\n  var exports = createMethod();\n  if (COMMON_JS) {\n    module.exports = exports;\n  } else {\n    /**\n     * @method md5\b\n     * @description Md5 hash function, export to global in browsers.\n     * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash\n     * @returns {String} md5 hashes\n     * @example\n     * md5(''); // d41d8cd98f00b204e9800998ecf8427e\n     * md5('The quick brown fox jumps over the lazy dog'); // 9e107d9d372bb6826bd81d3542a419d6\n     * md5('The quick brown fox jumps over the lazy dog.'); // e4d909c290d0fb1ca068ffaddf22cbd0\n     *\n     * // It also supports UTF-8 encoding\n     * md5('中文'); // a7bac2239fcdcb3a067903d8077c4a07\n     *\n     * // It also supports byte `Array`, `Uint8Array`, `ArrayBuffer`\n     * md5([]); // d41d8cd98f00b204e9800998ecf8427e\n     * md5(new Uint8Array([])); // d41d8cd98f00b204e9800998ecf8427e\n     */\n    root.md5 = exports;\n    if (AMD) {\n      !(__WEBPACK_AMD_DEFINE_RESULT__ = (function () {\n        return exports;\n      }).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n    }\n  }\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n/***/ }),\n\n/***/ \"./lib/request.js\":\n/*!************************!*\\\n  !*** ./lib/request.js ***!\n  \\************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ \"./node_modules/@babel/runtime/helpers/typeof.js\");\nvar stringifyPrimitive = function stringifyPrimitive(v) {\n  switch (_typeof(v)) {\n    case 'string':\n      return v;\n    case 'boolean':\n      return v ? 'true' : 'false';\n    case 'number':\n      return isFinite(v) ? v : '';\n    default:\n      return '';\n  }\n};\nvar queryStringify = function queryStringify(obj, sep, eq, name) {\n  sep = sep || '&';\n  eq = eq || '=';\n  if (obj === null) {\n    obj = undefined;\n  }\n  if (_typeof(obj) === 'object') {\n    return Object.keys(obj).map(function (k) {\n      var ks = encodeURIComponent(stringifyPrimitive(k)) + eq;\n      if (Array.isArray(obj[k])) {\n        return obj[k].map(function (v) {\n          return ks + encodeURIComponent(stringifyPrimitive(v));\n        }).join(sep);\n      } else {\n        return ks + encodeURIComponent(stringifyPrimitive(obj[k]));\n      }\n    }).filter(Boolean).join(sep);\n  }\n  if (!name) return '';\n  return encodeURIComponent(stringifyPrimitive(name)) + eq + encodeURIComponent(stringifyPrimitive(obj));\n};\nvar xhrRes = function xhrRes(err, xhr, body) {\n  var headers = {};\n  var strHeaders = xhr.getAllResponseHeaders();\n  if (strHeaders && strHeaders.length > 0) {\n    strHeaders.trim().split('\\n').forEach(function (item) {\n      if (item) {\n        var index = item.indexOf(':');\n        var key = item.substr(0, index).trim().toLowerCase();\n        var val = item.substr(index + 1).trim();\n        headers[key] = val;\n      }\n    });\n  }\n  return {\n    error: err,\n    statusCode: xhr.status,\n    statusMessage: xhr.statusText,\n    headers: headers,\n    body: body\n  };\n};\nvar xhrBody = function xhrBody(xhr, dataType) {\n  return !dataType && dataType === 'text' ? xhr.responseText : xhr.response;\n};\nvar request = function request(opt, callback) {\n  // method\n  var method = (opt.method || 'GET').toUpperCase();\n\n  // url、qs\n  var url = opt.url;\n  if (opt.qs) {\n    var qsStr = queryStringify(opt.qs);\n    if (qsStr) {\n      url += (url.indexOf('?') === -1 ? '?' : '&') + qsStr;\n    }\n  }\n\n  // 创建 ajax 实例\n  var xhr = new XMLHttpRequest();\n  xhr.open(method, url, true);\n  xhr.responseType = opt.dataType || 'text';\n\n  // 处理 xhrFields 属性\n  if (opt.xhrFields) {\n    for (var xhrField in opt.xhrFields) {\n      xhr[xhrField] = opt.xhrFields[xhrField];\n    }\n  }\n\n  // 处理 headers\n  var headers = opt.headers;\n  if (headers) {\n    for (var key in headers) {\n      if (headers.hasOwnProperty(key) && key.toLowerCase() !== 'content-length' && key.toLowerCase() !== 'user-agent' && key.toLowerCase() !== 'origin' && key.toLowerCase() !== 'host') {\n        xhr.setRequestHeader(key, headers[key]);\n      }\n    }\n  }\n\n  // onprogress\n  if (opt.onProgress && xhr.upload) xhr.upload.onprogress = opt.onProgress;\n  if (opt.onDownloadProgress) xhr.onprogress = opt.onDownloadProgress;\n\n  // timeout\n  if (opt.timeout) xhr.timeout = opt.timeout;\n  xhr.ontimeout = function (event) {\n    var error = new Error('timeout');\n    callback(xhrRes(error, xhr));\n  };\n\n  // success 2xx/3xx/4xx\n  xhr.onload = function () {\n    callback(xhrRes(null, xhr, xhrBody(xhr, opt.dataType)));\n  };\n\n  // error 5xx/0 (网络错误、跨域报错、Https connect-src 限制的报错时 statusCode 为 0)\n  xhr.onerror = function (err) {\n    var body = xhrBody(xhr, opt.dataType);\n    if (body) {\n      // 5xx\n      callback(xhrRes(null, xhr, body));\n    } else {\n      // 0\n      var error = xhr.statusText;\n      if (!error && xhr.status === 0) error = new Error('CORS blocked or network error');\n      callback(xhrRes(error, xhr, body));\n    }\n  };\n\n  // send\n  xhr.send(opt.body || '');\n\n  // 返回 ajax 实例，用于外部调用 xhr.abort\n  return xhr;\n};\nmodule.exports = request;\n\n/***/ }),\n\n/***/ \"./node_modules/@babel/runtime/helpers/classCallCheck.js\":\n/*!***************************************************************!*\\\n  !*** ./node_modules/@babel/runtime/helpers/classCallCheck.js ***!\n  \\***************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nfunction _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}\nmodule.exports = _classCallCheck, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n\n/***/ }),\n\n/***/ \"./node_modules/@babel/runtime/helpers/createClass.js\":\n/*!************************************************************!*\\\n  !*** ./node_modules/@babel/runtime/helpers/createClass.js ***!\n  \\************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toPropertyKey = __webpack_require__(/*! ./toPropertyKey.js */ \"./node_modules/@babel/runtime/helpers/toPropertyKey.js\");\nfunction _defineProperties(target, props) {\n  for (var i = 0; i < props.length; i++) {\n    var descriptor = props[i];\n    descriptor.enumerable = descriptor.enumerable || false;\n    descriptor.configurable = true;\n    if (\"value\" in descriptor) descriptor.writable = true;\n    Object.defineProperty(target, toPropertyKey(descriptor.key), descriptor);\n  }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n  if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n  if (staticProps) _defineProperties(Constructor, staticProps);\n  Object.defineProperty(Constructor, \"prototype\", {\n    writable: false\n  });\n  return Constructor;\n}\nmodule.exports = _createClass, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n\n/***/ }),\n\n/***/ \"./node_modules/@babel/runtime/helpers/toPrimitive.js\":\n/*!************************************************************!*\\\n  !*** ./node_modules/@babel/runtime/helpers/toPrimitive.js ***!\n  \\************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar _typeof = __webpack_require__(/*! ./typeof.js */ \"./node_modules/@babel/runtime/helpers/typeof.js\")[\"default\"];\nfunction _toPrimitive(input, hint) {\n  if (_typeof(input) !== \"object\" || input === null) return input;\n  var prim = input[Symbol.toPrimitive];\n  if (prim !== undefined) {\n    var res = prim.call(input, hint || \"default\");\n    if (_typeof(res) !== \"object\") return res;\n    throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n  }\n  return (hint === \"string\" ? String : Number)(input);\n}\nmodule.exports = _toPrimitive, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n\n/***/ }),\n\n/***/ \"./node_modules/@babel/runtime/helpers/toPropertyKey.js\":\n/*!**************************************************************!*\\\n  !*** ./node_modules/@babel/runtime/helpers/toPropertyKey.js ***!\n  \\**************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar _typeof = __webpack_require__(/*! ./typeof.js */ \"./node_modules/@babel/runtime/helpers/typeof.js\")[\"default\"];\nvar toPrimitive = __webpack_require__(/*! ./toPrimitive.js */ \"./node_modules/@babel/runtime/helpers/toPrimitive.js\");\nfunction _toPropertyKey(arg) {\n  var key = toPrimitive(arg, \"string\");\n  return _typeof(key) === \"symbol\" ? key : String(key);\n}\nmodule.exports = _toPropertyKey, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n\n/***/ }),\n\n/***/ \"./node_modules/@babel/runtime/helpers/typeof.js\":\n/*!*******************************************************!*\\\n  !*** ./node_modules/@babel/runtime/helpers/typeof.js ***!\n  \\*******************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nfunction _typeof(o) {\n  \"@babel/helpers - typeof\";\n\n  return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n    return typeof o;\n  } : function (o) {\n    return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n  }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(o);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n\n/***/ }),\n\n/***/ \"./node_modules/fast-xml-parser/src/fxp.js\":\n/*!*************************************************!*\\\n  !*** ./node_modules/fast-xml-parser/src/fxp.js ***!\n  \\*************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nconst validator = __webpack_require__(/*! ./validator */ \"./node_modules/fast-xml-parser/src/validator.js\");\nconst XMLParser = __webpack_require__(/*! ./xmlparser/XMLParser */ \"./node_modules/fast-xml-parser/src/xmlparser/XMLParser.js\");\nconst XMLBuilder = __webpack_require__(/*! ./xmlbuilder/json2xml */ \"./node_modules/fast-xml-parser/src/xmlbuilder/json2xml.js\");\n\nmodule.exports = {\n  XMLParser: XMLParser,\n  XMLValidator: validator,\n  XMLBuilder: XMLBuilder\n}\n\n/***/ }),\n\n/***/ \"./node_modules/fast-xml-parser/src/util.js\":\n/*!**************************************************!*\\\n  !*** ./node_modules/fast-xml-parser/src/util.js ***!\n  \\**************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nconst nameStartChar = ':A-Za-z_\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD';\nconst nameChar = nameStartChar + '\\\\-.\\\\d\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040';\nconst nameRegexp = '[' + nameStartChar + '][' + nameChar + ']*'\nconst regexName = new RegExp('^' + nameRegexp + '$');\n\nconst getAllMatches = function(string, regex) {\n  const matches = [];\n  let match = regex.exec(string);\n  while (match) {\n    const allmatches = [];\n    allmatches.startIndex = regex.lastIndex - match[0].length;\n    const len = match.length;\n    for (let index = 0; index < len; index++) {\n      allmatches.push(match[index]);\n    }\n    matches.push(allmatches);\n    match = regex.exec(string);\n  }\n  return matches;\n};\n\nconst isName = function(string) {\n  const match = regexName.exec(string);\n  return !(match === null || typeof match === 'undefined');\n};\n\nexports.isExist = function(v) {\n  return typeof v !== 'undefined';\n};\n\nexports.isEmptyObject = function(obj) {\n  return Object.keys(obj).length === 0;\n};\n\n/**\n * Copy all the properties of a into b.\n * @param {*} target\n * @param {*} a\n */\nexports.merge = function(target, a, arrayMode) {\n  if (a) {\n    const keys = Object.keys(a); // will return an array of own properties\n    const len = keys.length; //don't make it inline\n    for (let i = 0; i < len; i++) {\n      if (arrayMode === 'strict') {\n        target[keys[i]] = [ a[keys[i]] ];\n      } else {\n        target[keys[i]] = a[keys[i]];\n      }\n    }\n  }\n};\n/* exports.merge =function (b,a){\n  return Object.assign(b,a);\n} */\n\nexports.getValue = function(v) {\n  if (exports.isExist(v)) {\n    return v;\n  } else {\n    return '';\n  }\n};\n\n// const fakeCall = function(a) {return a;};\n// const fakeCallNoReturn = function() {};\n\nexports.isName = isName;\nexports.getAllMatches = getAllMatches;\nexports.nameRegexp = nameRegexp;\n\n\n/***/ }),\n\n/***/ \"./node_modules/fast-xml-parser/src/validator.js\":\n/*!*******************************************************!*\\\n  !*** ./node_modules/fast-xml-parser/src/validator.js ***!\n  \\*******************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nconst util = __webpack_require__(/*! ./util */ \"./node_modules/fast-xml-parser/src/util.js\");\n\nconst defaultOptions = {\n  allowBooleanAttributes: false, //A tag can have attributes without any value\n  unpairedTags: []\n};\n\n//const tagsPattern = new RegExp(\"<\\\\/?([\\\\w:\\\\-_\\.]+)\\\\s*\\/?>\",\"g\");\nexports.validate = function (xmlData, options) {\n  options = Object.assign({}, defaultOptions, options);\n\n  //xmlData = xmlData.replace(/(\\r\\n|\\n|\\r)/gm,\"\");//make it single line\n  //xmlData = xmlData.replace(/(^\\s*<\\?xml.*?\\?>)/g,\"\");//Remove XML starting tag\n  //xmlData = xmlData.replace(/(<!DOCTYPE[\\s\\w\\\"\\.\\/\\-\\:]+(\\[.*\\])*\\s*>)/g,\"\");//Remove DOCTYPE\n  const tags = [];\n  let tagFound = false;\n\n  //indicates that the root tag has been closed (aka. depth 0 has been reached)\n  let reachedRoot = false;\n\n  if (xmlData[0] === '\\ufeff') {\n    // check for byte order mark (BOM)\n    xmlData = xmlData.substr(1);\n  }\n  \n  for (let i = 0; i < xmlData.length; i++) {\n\n    if (xmlData[i] === '<' && xmlData[i+1] === '?') {\n      i+=2;\n      i = readPI(xmlData,i);\n      if (i.err) return i;\n    }else if (xmlData[i] === '<') {\n      //starting of tag\n      //read until you reach to '>' avoiding any '>' in attribute value\n      let tagStartPos = i;\n      i++;\n      \n      if (xmlData[i] === '!') {\n        i = readCommentAndCDATA(xmlData, i);\n        continue;\n      } else {\n        let closingTag = false;\n        if (xmlData[i] === '/') {\n          //closing tag\n          closingTag = true;\n          i++;\n        }\n        //read tagname\n        let tagName = '';\n        for (; i < xmlData.length &&\n          xmlData[i] !== '>' &&\n          xmlData[i] !== ' ' &&\n          xmlData[i] !== '\\t' &&\n          xmlData[i] !== '\\n' &&\n          xmlData[i] !== '\\r'; i++\n        ) {\n          tagName += xmlData[i];\n        }\n        tagName = tagName.trim();\n        //console.log(tagName);\n\n        if (tagName[tagName.length - 1] === '/') {\n          //self closing tag without attributes\n          tagName = tagName.substring(0, tagName.length - 1);\n          //continue;\n          i--;\n        }\n        if (!validateTagName(tagName)) {\n          let msg;\n          if (tagName.trim().length === 0) {\n            msg = \"Invalid space after '<'.\";\n          } else {\n            msg = \"Tag '\"+tagName+\"' is an invalid name.\";\n          }\n          return getErrorObject('InvalidTag', msg, getLineNumberForPosition(xmlData, i));\n        }\n\n        const result = readAttributeStr(xmlData, i);\n        if (result === false) {\n          return getErrorObject('InvalidAttr', \"Attributes for '\"+tagName+\"' have open quote.\", getLineNumberForPosition(xmlData, i));\n        }\n        let attrStr = result.value;\n        i = result.index;\n\n        if (attrStr[attrStr.length - 1] === '/') {\n          //self closing tag\n          const attrStrStart = i - attrStr.length;\n          attrStr = attrStr.substring(0, attrStr.length - 1);\n          const isValid = validateAttributeString(attrStr, options);\n          if (isValid === true) {\n            tagFound = true;\n            //continue; //text may presents after self closing tag\n          } else {\n            //the result from the nested function returns the position of the error within the attribute\n            //in order to get the 'true' error line, we need to calculate the position where the attribute begins (i - attrStr.length) and then add the position within the attribute\n            //this gives us the absolute index in the entire xml, which we can use to find the line at last\n            return getErrorObject(isValid.err.code, isValid.err.msg, getLineNumberForPosition(xmlData, attrStrStart + isValid.err.line));\n          }\n        } else if (closingTag) {\n          if (!result.tagClosed) {\n            return getErrorObject('InvalidTag', \"Closing tag '\"+tagName+\"' doesn't have proper closing.\", getLineNumberForPosition(xmlData, i));\n          } else if (attrStr.trim().length > 0) {\n            return getErrorObject('InvalidTag', \"Closing tag '\"+tagName+\"' can't have attributes or invalid starting.\", getLineNumberForPosition(xmlData, tagStartPos));\n          } else if (tags.length === 0) {\n            return getErrorObject('InvalidTag', \"Closing tag '\"+tagName+\"' has not been opened.\", getLineNumberForPosition(xmlData, tagStartPos));\n          } else {\n            const otg = tags.pop();\n            if (tagName !== otg.tagName) {\n              let openPos = getLineNumberForPosition(xmlData, otg.tagStartPos);\n              return getErrorObject('InvalidTag',\n                \"Expected closing tag '\"+otg.tagName+\"' (opened in line \"+openPos.line+\", col \"+openPos.col+\") instead of closing tag '\"+tagName+\"'.\",\n                getLineNumberForPosition(xmlData, tagStartPos));\n            }\n\n            //when there are no more tags, we reached the root level.\n            if (tags.length == 0) {\n              reachedRoot = true;\n            }\n          }\n        } else {\n          const isValid = validateAttributeString(attrStr, options);\n          if (isValid !== true) {\n            //the result from the nested function returns the position of the error within the attribute\n            //in order to get the 'true' error line, we need to calculate the position where the attribute begins (i - attrStr.length) and then add the position within the attribute\n            //this gives us the absolute index in the entire xml, which we can use to find the line at last\n            return getErrorObject(isValid.err.code, isValid.err.msg, getLineNumberForPosition(xmlData, i - attrStr.length + isValid.err.line));\n          }\n\n          //if the root level has been reached before ...\n          if (reachedRoot === true) {\n            return getErrorObject('InvalidXml', 'Multiple possible root nodes found.', getLineNumberForPosition(xmlData, i));\n          } else if(options.unpairedTags.indexOf(tagName) !== -1){\n            //don't push into stack\n          } else {\n            tags.push({tagName, tagStartPos});\n          }\n          tagFound = true;\n        }\n\n        //skip tag text value\n        //It may include comments and CDATA value\n        for (i++; i < xmlData.length; i++) {\n          if (xmlData[i] === '<') {\n            if (xmlData[i + 1] === '!') {\n              //comment or CADATA\n              i++;\n              i = readCommentAndCDATA(xmlData, i);\n              continue;\n            } else if (xmlData[i+1] === '?') {\n              i = readPI(xmlData, ++i);\n              if (i.err) return i;\n            } else{\n              break;\n            }\n          } else if (xmlData[i] === '&') {\n            const afterAmp = validateAmpersand(xmlData, i);\n            if (afterAmp == -1)\n              return getErrorObject('InvalidChar', \"char '&' is not expected.\", getLineNumberForPosition(xmlData, i));\n            i = afterAmp;\n          }else{\n            if (reachedRoot === true && !isWhiteSpace(xmlData[i])) {\n              return getErrorObject('InvalidXml', \"Extra text at the end\", getLineNumberForPosition(xmlData, i));\n            }\n          }\n        } //end of reading tag text value\n        if (xmlData[i] === '<') {\n          i--;\n        }\n      }\n    } else {\n      if ( isWhiteSpace(xmlData[i])) {\n        continue;\n      }\n      return getErrorObject('InvalidChar', \"char '\"+xmlData[i]+\"' is not expected.\", getLineNumberForPosition(xmlData, i));\n    }\n  }\n\n  if (!tagFound) {\n    return getErrorObject('InvalidXml', 'Start tag expected.', 1);\n  }else if (tags.length == 1) {\n      return getErrorObject('InvalidTag', \"Unclosed tag '\"+tags[0].tagName+\"'.\", getLineNumberForPosition(xmlData, tags[0].tagStartPos));\n  }else if (tags.length > 0) {\n      return getErrorObject('InvalidXml', \"Invalid '\"+\n          JSON.stringify(tags.map(t => t.tagName), null, 4).replace(/\\r?\\n/g, '')+\n          \"' found.\", {line: 1, col: 1});\n  }\n\n  return true;\n};\n\nfunction isWhiteSpace(char){\n  return char === ' ' || char === '\\t' || char === '\\n'  || char === '\\r';\n}\n/**\n * Read Processing insstructions and skip\n * @param {*} xmlData\n * @param {*} i\n */\nfunction readPI(xmlData, i) {\n  const start = i;\n  for (; i < xmlData.length; i++) {\n    if (xmlData[i] == '?' || xmlData[i] == ' ') {\n      //tagname\n      const tagname = xmlData.substr(start, i - start);\n      if (i > 5 && tagname === 'xml') {\n        return getErrorObject('InvalidXml', 'XML declaration allowed only at the start of the document.', getLineNumberForPosition(xmlData, i));\n      } else if (xmlData[i] == '?' && xmlData[i + 1] == '>') {\n        //check if valid attribut string\n        i++;\n        break;\n      } else {\n        continue;\n      }\n    }\n  }\n  return i;\n}\n\nfunction readCommentAndCDATA(xmlData, i) {\n  if (xmlData.length > i + 5 && xmlData[i + 1] === '-' && xmlData[i + 2] === '-') {\n    //comment\n    for (i += 3; i < xmlData.length; i++) {\n      if (xmlData[i] === '-' && xmlData[i + 1] === '-' && xmlData[i + 2] === '>') {\n        i += 2;\n        break;\n      }\n    }\n  } else if (\n    xmlData.length > i + 8 &&\n    xmlData[i + 1] === 'D' &&\n    xmlData[i + 2] === 'O' &&\n    xmlData[i + 3] === 'C' &&\n    xmlData[i + 4] === 'T' &&\n    xmlData[i + 5] === 'Y' &&\n    xmlData[i + 6] === 'P' &&\n    xmlData[i + 7] === 'E'\n  ) {\n    let angleBracketsCount = 1;\n    for (i += 8; i < xmlData.length; i++) {\n      if (xmlData[i] === '<') {\n        angleBracketsCount++;\n      } else if (xmlData[i] === '>') {\n        angleBracketsCount--;\n        if (angleBracketsCount === 0) {\n          break;\n        }\n      }\n    }\n  } else if (\n    xmlData.length > i + 9 &&\n    xmlData[i + 1] === '[' &&\n    xmlData[i + 2] === 'C' &&\n    xmlData[i + 3] === 'D' &&\n    xmlData[i + 4] === 'A' &&\n    xmlData[i + 5] === 'T' &&\n    xmlData[i + 6] === 'A' &&\n    xmlData[i + 7] === '['\n  ) {\n    for (i += 8; i < xmlData.length; i++) {\n      if (xmlData[i] === ']' && xmlData[i + 1] === ']' && xmlData[i + 2] === '>') {\n        i += 2;\n        break;\n      }\n    }\n  }\n\n  return i;\n}\n\nconst doubleQuote = '\"';\nconst singleQuote = \"'\";\n\n/**\n * Keep reading xmlData until '<' is found outside the attribute value.\n * @param {string} xmlData\n * @param {number} i\n */\nfunction readAttributeStr(xmlData, i) {\n  let attrStr = '';\n  let startChar = '';\n  let tagClosed = false;\n  for (; i < xmlData.length; i++) {\n    if (xmlData[i] === doubleQuote || xmlData[i] === singleQuote) {\n      if (startChar === '') {\n        startChar = xmlData[i];\n      } else if (startChar !== xmlData[i]) {\n        //if vaue is enclosed with double quote then single quotes are allowed inside the value and vice versa\n      } else {\n        startChar = '';\n      }\n    } else if (xmlData[i] === '>') {\n      if (startChar === '') {\n        tagClosed = true;\n        break;\n      }\n    }\n    attrStr += xmlData[i];\n  }\n  if (startChar !== '') {\n    return false;\n  }\n\n  return {\n    value: attrStr,\n    index: i,\n    tagClosed: tagClosed\n  };\n}\n\n/**\n * Select all the attributes whether valid or invalid.\n */\nconst validAttrStrRegxp = new RegExp('(\\\\s*)([^\\\\s=]+)(\\\\s*=)?(\\\\s*([\\'\"])(([\\\\s\\\\S])*?)\\\\5)?', 'g');\n\n//attr, =\"sd\", a=\"amit's\", a=\"sd\"b=\"saf\", ab  cd=\"\"\n\nfunction validateAttributeString(attrStr, options) {\n  //console.log(\"start:\"+attrStr+\":end\");\n\n  //if(attrStr.trim().length === 0) return true; //empty string\n\n  const matches = util.getAllMatches(attrStr, validAttrStrRegxp);\n  const attrNames = {};\n\n  for (let i = 0; i < matches.length; i++) {\n    if (matches[i][1].length === 0) {\n      //nospace before attribute name: a=\"sd\"b=\"saf\"\n      return getErrorObject('InvalidAttr', \"Attribute '\"+matches[i][2]+\"' has no space in starting.\", getPositionFromMatch(matches[i]))\n    } else if (matches[i][3] !== undefined && matches[i][4] === undefined) {\n      return getErrorObject('InvalidAttr', \"Attribute '\"+matches[i][2]+\"' is without value.\", getPositionFromMatch(matches[i]));\n    } else if (matches[i][3] === undefined && !options.allowBooleanAttributes) {\n      //independent attribute: ab\n      return getErrorObject('InvalidAttr', \"boolean attribute '\"+matches[i][2]+\"' is not allowed.\", getPositionFromMatch(matches[i]));\n    }\n    /* else if(matches[i][6] === undefined){//attribute without value: ab=\n                    return { err: { code:\"InvalidAttr\",msg:\"attribute \" + matches[i][2] + \" has no value assigned.\"}};\n                } */\n    const attrName = matches[i][2];\n    if (!validateAttrName(attrName)) {\n      return getErrorObject('InvalidAttr', \"Attribute '\"+attrName+\"' is an invalid name.\", getPositionFromMatch(matches[i]));\n    }\n    if (!attrNames.hasOwnProperty(attrName)) {\n      //check for duplicate attribute.\n      attrNames[attrName] = 1;\n    } else {\n      return getErrorObject('InvalidAttr', \"Attribute '\"+attrName+\"' is repeated.\", getPositionFromMatch(matches[i]));\n    }\n  }\n\n  return true;\n}\n\nfunction validateNumberAmpersand(xmlData, i) {\n  let re = /\\d/;\n  if (xmlData[i] === 'x') {\n    i++;\n    re = /[\\da-fA-F]/;\n  }\n  for (; i < xmlData.length; i++) {\n    if (xmlData[i] === ';')\n      return i;\n    if (!xmlData[i].match(re))\n      break;\n  }\n  return -1;\n}\n\nfunction validateAmpersand(xmlData, i) {\n  // https://www.w3.org/TR/xml/#dt-charref\n  i++;\n  if (xmlData[i] === ';')\n    return -1;\n  if (xmlData[i] === '#') {\n    i++;\n    return validateNumberAmpersand(xmlData, i);\n  }\n  let count = 0;\n  for (; i < xmlData.length; i++, count++) {\n    if (xmlData[i].match(/\\w/) && count < 20)\n      continue;\n    if (xmlData[i] === ';')\n      break;\n    return -1;\n  }\n  return i;\n}\n\nfunction getErrorObject(code, message, lineNumber) {\n  return {\n    err: {\n      code: code,\n      msg: message,\n      line: lineNumber.line || lineNumber,\n      col: lineNumber.col,\n    },\n  };\n}\n\nfunction validateAttrName(attrName) {\n  return util.isName(attrName);\n}\n\n// const startsWithXML = /^xml/i;\n\nfunction validateTagName(tagname) {\n  return util.isName(tagname) /* && !tagname.match(startsWithXML) */;\n}\n\n//this function returns the line number for the character at the given index\nfunction getLineNumberForPosition(xmlData, index) {\n  const lines = xmlData.substring(0, index).split(/\\r?\\n/);\n  return {\n    line: lines.length,\n\n    // column number is last line's length + 1, because column numbering starts at 1:\n    col: lines[lines.length - 1].length + 1\n  };\n}\n\n//this function returns the position of the first character of match within attrStr\nfunction getPositionFromMatch(match) {\n  return match.startIndex + match[1].length;\n}\n\n\n/***/ }),\n\n/***/ \"./node_modules/fast-xml-parser/src/xmlbuilder/json2xml.js\":\n/*!*****************************************************************!*\\\n  !*** ./node_modules/fast-xml-parser/src/xmlbuilder/json2xml.js ***!\n  \\*****************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n//parse Empty Node as self closing node\nconst buildFromOrderedJs = __webpack_require__(/*! ./orderedJs2Xml */ \"./node_modules/fast-xml-parser/src/xmlbuilder/orderedJs2Xml.js\");\n\nconst defaultOptions = {\n  attributeNamePrefix: '@_',\n  attributesGroupName: false,\n  textNodeName: '#text',\n  ignoreAttributes: true,\n  cdataPropName: false,\n  format: false,\n  indentBy: '  ',\n  suppressEmptyNode: false,\n  suppressUnpairedNode: true,\n  suppressBooleanAttributes: true,\n  tagValueProcessor: function(key, a) {\n    return a;\n  },\n  attributeValueProcessor: function(attrName, a) {\n    return a;\n  },\n  preserveOrder: false,\n  commentPropName: false,\n  unpairedTags: [],\n  entities: [\n    { regex: new RegExp(\"&\", \"g\"), val: \"&amp;\" },//it must be on top\n    { regex: new RegExp(\">\", \"g\"), val: \"&gt;\" },\n    { regex: new RegExp(\"<\", \"g\"), val: \"&lt;\" },\n    { regex: new RegExp(\"\\'\", \"g\"), val: \"&apos;\" },\n    { regex: new RegExp(\"\\\"\", \"g\"), val: \"&quot;\" }\n  ],\n  processEntities: true,\n  stopNodes: [],\n  // transformTagName: false,\n  // transformAttributeName: false,\n  oneListGroup: false\n};\n\nfunction Builder(options) {\n  this.options = Object.assign({}, defaultOptions, options);\n  if (this.options.ignoreAttributes || this.options.attributesGroupName) {\n    this.isAttribute = function(/*a*/) {\n      return false;\n    };\n  } else {\n    this.attrPrefixLen = this.options.attributeNamePrefix.length;\n    this.isAttribute = isAttribute;\n  }\n\n  this.processTextOrObjNode = processTextOrObjNode\n\n  if (this.options.format) {\n    this.indentate = indentate;\n    this.tagEndChar = '>\\n';\n    this.newLine = '\\n';\n  } else {\n    this.indentate = function() {\n      return '';\n    };\n    this.tagEndChar = '>';\n    this.newLine = '';\n  }\n}\n\nBuilder.prototype.build = function(jObj) {\n  if(this.options.preserveOrder){\n    return buildFromOrderedJs(jObj, this.options);\n  }else {\n    if(Array.isArray(jObj) && this.options.arrayNodeName && this.options.arrayNodeName.length > 1){\n      jObj = {\n        [this.options.arrayNodeName] : jObj\n      }\n    }\n    return this.j2x(jObj, 0).val;\n  }\n};\n\nBuilder.prototype.j2x = function(jObj, level) {\n  let attrStr = '';\n  let val = '';\n  for (let key in jObj) {\n    if(!Object.prototype.hasOwnProperty.call(jObj, key)) continue;\n    if (typeof jObj[key] === 'undefined') {\n      // supress undefined node only if it is not an attribute\n      if (this.isAttribute(key)) {\n        val += '';\n      }\n    } else if (jObj[key] === null) {\n      // null attribute should be ignored by the attribute list, but should not cause the tag closing\n      if (this.isAttribute(key)) {\n        val += '';\n      } else if (key[0] === '?') {\n        val += this.indentate(level) + '<' + key + '?' + this.tagEndChar;\n      } else {\n        val += this.indentate(level) + '<' + key + '/' + this.tagEndChar;\n      }\n      // val += this.indentate(level) + '<' + key + '/' + this.tagEndChar;\n    } else if (jObj[key] instanceof Date) {\n      val += this.buildTextValNode(jObj[key], key, '', level);\n    } else if (typeof jObj[key] !== 'object') {\n      //premitive type\n      const attr = this.isAttribute(key);\n      if (attr) {\n        attrStr += this.buildAttrPairStr(attr, '' + jObj[key]);\n      }else {\n        //tag value\n        if (key === this.options.textNodeName) {\n          let newval = this.options.tagValueProcessor(key, '' + jObj[key]);\n          val += this.replaceEntitiesValue(newval);\n        } else {\n          val += this.buildTextValNode(jObj[key], key, '', level);\n        }\n      }\n    } else if (Array.isArray(jObj[key])) {\n      //repeated nodes\n      const arrLen = jObj[key].length;\n      let listTagVal = \"\";\n      for (let j = 0; j < arrLen; j++) {\n        const item = jObj[key][j];\n        if (typeof item === 'undefined') {\n          // supress undefined node\n        } else if (item === null) {\n          if(key[0] === \"?\") val += this.indentate(level) + '<' + key + '?' + this.tagEndChar;\n          else val += this.indentate(level) + '<' + key + '/' + this.tagEndChar;\n          // val += this.indentate(level) + '<' + key + '/' + this.tagEndChar;\n        } else if (typeof item === 'object') {\n          if(this.options.oneListGroup ){\n            listTagVal += this.j2x(item, level + 1).val;\n          }else{\n            listTagVal += this.processTextOrObjNode(item, key, level)\n          }\n        } else {\n          listTagVal += this.buildTextValNode(item, key, '', level);\n        }\n      }\n      if(this.options.oneListGroup){\n        listTagVal = this.buildObjectNode(listTagVal, key, '', level);\n      }\n      val += listTagVal;\n    } else {\n      //nested node\n      if (this.options.attributesGroupName && key === this.options.attributesGroupName) {\n        const Ks = Object.keys(jObj[key]);\n        const L = Ks.length;\n        for (let j = 0; j < L; j++) {\n          attrStr += this.buildAttrPairStr(Ks[j], '' + jObj[key][Ks[j]]);\n        }\n      } else {\n        val += this.processTextOrObjNode(jObj[key], key, level)\n      }\n    }\n  }\n  return {attrStr: attrStr, val: val};\n};\n\nBuilder.prototype.buildAttrPairStr = function(attrName, val){\n  val = this.options.attributeValueProcessor(attrName, '' + val);\n  val = this.replaceEntitiesValue(val);\n  if (this.options.suppressBooleanAttributes && val === \"true\") {\n    return ' ' + attrName;\n  } else return ' ' + attrName + '=\"' + val + '\"';\n}\n\nfunction processTextOrObjNode (object, key, level) {\n  const result = this.j2x(object, level + 1);\n  if (object[this.options.textNodeName] !== undefined && Object.keys(object).length === 1) {\n    return this.buildTextValNode(object[this.options.textNodeName], key, result.attrStr, level);\n  } else {\n    return this.buildObjectNode(result.val, key, result.attrStr, level);\n  }\n}\n\nBuilder.prototype.buildObjectNode = function(val, key, attrStr, level) {\n  if(val === \"\"){\n    if(key[0] === \"?\") return  this.indentate(level) + '<' + key + attrStr+ '?' + this.tagEndChar;\n    else {\n      return this.indentate(level) + '<' + key + attrStr + this.closeTag(key) + this.tagEndChar;\n    }\n  }else{\n\n    let tagEndExp = '</' + key + this.tagEndChar;\n    let piClosingChar = \"\";\n    \n    if(key[0] === \"?\") {\n      piClosingChar = \"?\";\n      tagEndExp = \"\";\n    }\n  \n    // attrStr is an empty string in case the attribute came as undefined or null\n    if ((attrStr || attrStr === '') && val.indexOf('<') === -1) {\n      return ( this.indentate(level) + '<' +  key + attrStr + piClosingChar + '>' + val + tagEndExp );\n    } else if (this.options.commentPropName !== false && key === this.options.commentPropName && piClosingChar.length === 0) {\n      return this.indentate(level) + `<!--${val}-->` + this.newLine;\n    }else {\n      return (\n        this.indentate(level) + '<' + key + attrStr + piClosingChar + this.tagEndChar +\n        val +\n        this.indentate(level) + tagEndExp    );\n    }\n  }\n}\n\nBuilder.prototype.closeTag = function(key){\n  let closeTag = \"\";\n  if(this.options.unpairedTags.indexOf(key) !== -1){ //unpaired\n    if(!this.options.suppressUnpairedNode) closeTag = \"/\"\n  }else if(this.options.suppressEmptyNode){ //empty\n    closeTag = \"/\";\n  }else{\n    closeTag = `></${key}`\n  }\n  return closeTag;\n}\n\nfunction buildEmptyObjNode(val, key, attrStr, level) {\n  if (val !== '') {\n    return this.buildObjectNode(val, key, attrStr, level);\n  } else {\n    if(key[0] === \"?\") return  this.indentate(level) + '<' + key + attrStr+ '?' + this.tagEndChar;\n    else {\n      return  this.indentate(level) + '<' + key + attrStr + '/' + this.tagEndChar;\n      // return this.buildTagStr(level,key, attrStr);\n    }\n  }\n}\n\nBuilder.prototype.buildTextValNode = function(val, key, attrStr, level) {\n  if (this.options.cdataPropName !== false && key === this.options.cdataPropName) {\n    return this.indentate(level) + `<![CDATA[${val}]]>` +  this.newLine;\n  }else if (this.options.commentPropName !== false && key === this.options.commentPropName) {\n    return this.indentate(level) + `<!--${val}-->` +  this.newLine;\n  }else if(key[0] === \"?\") {//PI tag\n    return  this.indentate(level) + '<' + key + attrStr+ '?' + this.tagEndChar; \n  }else{\n    let textValue = this.options.tagValueProcessor(key, val);\n    textValue = this.replaceEntitiesValue(textValue);\n  \n    if( textValue === ''){\n      return this.indentate(level) + '<' + key + attrStr + this.closeTag(key) + this.tagEndChar;\n    }else{\n      return this.indentate(level) + '<' + key + attrStr + '>' +\n         textValue +\n        '</' + key + this.tagEndChar;\n    }\n  }\n}\n\nBuilder.prototype.replaceEntitiesValue = function(textValue){\n  if(textValue && textValue.length > 0 && this.options.processEntities){\n    for (let i=0; i<this.options.entities.length; i++) {\n      const entity = this.options.entities[i];\n      textValue = textValue.replace(entity.regex, entity.val);\n    }\n  }\n  return textValue;\n}\n\nfunction indentate(level) {\n  return this.options.indentBy.repeat(level);\n}\n\nfunction isAttribute(name /*, options*/) {\n  if (name.startsWith(this.options.attributeNamePrefix) && name !== this.options.textNodeName) {\n    return name.substr(this.attrPrefixLen);\n  } else {\n    return false;\n  }\n}\n\nmodule.exports = Builder;\n\n\n/***/ }),\n\n/***/ \"./node_modules/fast-xml-parser/src/xmlbuilder/orderedJs2Xml.js\":\n/*!**********************************************************************!*\\\n  !*** ./node_modules/fast-xml-parser/src/xmlbuilder/orderedJs2Xml.js ***!\n  \\**********************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nconst EOL = \"\\n\";\n\n/**\n * \n * @param {array} jArray \n * @param {any} options \n * @returns \n */\nfunction toXml(jArray, options) {\n    let indentation = \"\";\n    if (options.format && options.indentBy.length > 0) {\n        indentation = EOL;\n    }\n    return arrToStr(jArray, options, \"\", indentation);\n}\n\nfunction arrToStr(arr, options, jPath, indentation) {\n    let xmlStr = \"\";\n    let isPreviousElementTag = false;\n\n    for (let i = 0; i < arr.length; i++) {\n        const tagObj = arr[i];\n        const tagName = propName(tagObj);\n        if(tagName === undefined) continue;\n\n        let newJPath = \"\";\n        if (jPath.length === 0) newJPath = tagName\n        else newJPath = `${jPath}.${tagName}`;\n\n        if (tagName === options.textNodeName) {\n            let tagText = tagObj[tagName];\n            if (!isStopNode(newJPath, options)) {\n                tagText = options.tagValueProcessor(tagName, tagText);\n                tagText = replaceEntitiesValue(tagText, options);\n            }\n            if (isPreviousElementTag) {\n                xmlStr += indentation;\n            }\n            xmlStr += tagText;\n            isPreviousElementTag = false;\n            continue;\n        } else if (tagName === options.cdataPropName) {\n            if (isPreviousElementTag) {\n                xmlStr += indentation;\n            }\n            xmlStr += `<![CDATA[${tagObj[tagName][0][options.textNodeName]}]]>`;\n            isPreviousElementTag = false;\n            continue;\n        } else if (tagName === options.commentPropName) {\n            xmlStr += indentation + `<!--${tagObj[tagName][0][options.textNodeName]}-->`;\n            isPreviousElementTag = true;\n            continue;\n        } else if (tagName[0] === \"?\") {\n            const attStr = attr_to_str(tagObj[\":@\"], options);\n            const tempInd = tagName === \"?xml\" ? \"\" : indentation;\n            let piTextNodeName = tagObj[tagName][0][options.textNodeName];\n            piTextNodeName = piTextNodeName.length !== 0 ? \" \" + piTextNodeName : \"\"; //remove extra spacing\n            xmlStr += tempInd + `<${tagName}${piTextNodeName}${attStr}?>`;\n            isPreviousElementTag = true;\n            continue;\n        }\n        let newIdentation = indentation;\n        if (newIdentation !== \"\") {\n            newIdentation += options.indentBy;\n        }\n        const attStr = attr_to_str(tagObj[\":@\"], options);\n        const tagStart = indentation + `<${tagName}${attStr}`;\n        const tagValue = arrToStr(tagObj[tagName], options, newJPath, newIdentation);\n        if (options.unpairedTags.indexOf(tagName) !== -1) {\n            if (options.suppressUnpairedNode) xmlStr += tagStart + \">\";\n            else xmlStr += tagStart + \"/>\";\n        } else if ((!tagValue || tagValue.length === 0) && options.suppressEmptyNode) {\n            xmlStr += tagStart + \"/>\";\n        } else if (tagValue && tagValue.endsWith(\">\")) {\n            xmlStr += tagStart + `>${tagValue}${indentation}</${tagName}>`;\n        } else {\n            xmlStr += tagStart + \">\";\n            if (tagValue && indentation !== \"\" && (tagValue.includes(\"/>\") || tagValue.includes(\"</\"))) {\n                xmlStr += indentation + options.indentBy + tagValue + indentation;\n            } else {\n                xmlStr += tagValue;\n            }\n            xmlStr += `</${tagName}>`;\n        }\n        isPreviousElementTag = true;\n    }\n\n    return xmlStr;\n}\n\nfunction propName(obj) {\n    const keys = Object.keys(obj);\n    for (let i = 0; i < keys.length; i++) {\n        const key = keys[i];\n        if(!obj.hasOwnProperty(key)) continue;\n        if (key !== \":@\") return key;\n    }\n}\n\nfunction attr_to_str(attrMap, options) {\n    let attrStr = \"\";\n    if (attrMap && !options.ignoreAttributes) {\n        for (let attr in attrMap) {\n            if(!attrMap.hasOwnProperty(attr)) continue;\n            let attrVal = options.attributeValueProcessor(attr, attrMap[attr]);\n            attrVal = replaceEntitiesValue(attrVal, options);\n            if (attrVal === true && options.suppressBooleanAttributes) {\n                attrStr += ` ${attr.substr(options.attributeNamePrefix.length)}`;\n            } else {\n                attrStr += ` ${attr.substr(options.attributeNamePrefix.length)}=\"${attrVal}\"`;\n            }\n        }\n    }\n    return attrStr;\n}\n\nfunction isStopNode(jPath, options) {\n    jPath = jPath.substr(0, jPath.length - options.textNodeName.length - 1);\n    let tagName = jPath.substr(jPath.lastIndexOf(\".\") + 1);\n    for (let index in options.stopNodes) {\n        if (options.stopNodes[index] === jPath || options.stopNodes[index] === \"*.\" + tagName) return true;\n    }\n    return false;\n}\n\nfunction replaceEntitiesValue(textValue, options) {\n    if (textValue && textValue.length > 0 && options.processEntities) {\n        for (let i = 0; i < options.entities.length; i++) {\n            const entity = options.entities[i];\n            textValue = textValue.replace(entity.regex, entity.val);\n        }\n    }\n    return textValue;\n}\nmodule.exports = toXml;\n\n\n/***/ }),\n\n/***/ \"./node_modules/fast-xml-parser/src/xmlparser/DocTypeReader.js\":\n/*!*********************************************************************!*\\\n  !*** ./node_modules/fast-xml-parser/src/xmlparser/DocTypeReader.js ***!\n  \\*********************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nconst util = __webpack_require__(/*! ../util */ \"./node_modules/fast-xml-parser/src/util.js\");\n\n//TODO: handle comments\nfunction readDocType(xmlData, i){\n    \n    const entities = {};\n    if( xmlData[i + 3] === 'O' &&\n         xmlData[i + 4] === 'C' &&\n         xmlData[i + 5] === 'T' &&\n         xmlData[i + 6] === 'Y' &&\n         xmlData[i + 7] === 'P' &&\n         xmlData[i + 8] === 'E')\n    {    \n        i = i+9;\n        let angleBracketsCount = 1;\n        let hasBody = false, comment = false;\n        let exp = \"\";\n        for(;i<xmlData.length;i++){\n            if (xmlData[i] === '<' && !comment) { //Determine the tag type\n                if( hasBody && isEntity(xmlData, i)){\n                    i += 7; \n                    [entityName, val,i] = readEntityExp(xmlData,i+1);\n                    if(val.indexOf(\"&\") === -1) //Parameter entities are not supported\n                        entities[ validateEntityName(entityName) ] = {\n                            regx : RegExp( `&${entityName};`,\"g\"),\n                            val: val\n                        };\n                }\n                else if( hasBody && isElement(xmlData, i))  i += 8;//Not supported\n                else if( hasBody && isAttlist(xmlData, i))  i += 8;//Not supported\n                else if( hasBody && isNotation(xmlData, i)) i += 9;//Not supported\n                else if( isComment)                         comment = true;\n                else                                        throw new Error(\"Invalid DOCTYPE\");\n\n                angleBracketsCount++;\n                exp = \"\";\n            } else if (xmlData[i] === '>') { //Read tag content\n                if(comment){\n                    if( xmlData[i - 1] === \"-\" && xmlData[i - 2] === \"-\"){\n                        comment = false;\n                        angleBracketsCount--;\n                    }\n                }else{\n                    angleBracketsCount--;\n                }\n                if (angleBracketsCount === 0) {\n                  break;\n                }\n            }else if( xmlData[i] === '['){\n                hasBody = true;\n            }else{\n                exp += xmlData[i];\n            }\n        }\n        if(angleBracketsCount !== 0){\n            throw new Error(`Unclosed DOCTYPE`);\n        }\n    }else{\n        throw new Error(`Invalid Tag instead of DOCTYPE`);\n    }\n    return {entities, i};\n}\n\nfunction readEntityExp(xmlData,i){\n    //External entities are not supported\n    //    <!ENTITY ext SYSTEM \"http://normal-website.com\" >\n\n    //Parameter entities are not supported\n    //    <!ENTITY entityname \"&anotherElement;\">\n\n    //Internal entities are supported\n    //    <!ENTITY entityname \"replacement text\">\n    \n    //read EntityName\n    let entityName = \"\";\n    for (; i < xmlData.length && (xmlData[i] !== \"'\" && xmlData[i] !== '\"' ); i++) {\n        // if(xmlData[i] === \" \") continue;\n        // else \n        entityName += xmlData[i];\n    }\n    entityName = entityName.trim();\n    if(entityName.indexOf(\" \") !== -1) throw new Error(\"External entites are not supported\");\n\n    //read Entity Value\n    const startChar = xmlData[i++];\n    let val = \"\"\n    for (; i < xmlData.length && xmlData[i] !== startChar ; i++) {\n        val += xmlData[i];\n    }\n    return [entityName, val, i];\n}\n\nfunction isComment(xmlData, i){\n    if(xmlData[i+1] === '!' &&\n    xmlData[i+2] === '-' &&\n    xmlData[i+3] === '-') return true\n    return false\n}\nfunction isEntity(xmlData, i){\n    if(xmlData[i+1] === '!' &&\n    xmlData[i+2] === 'E' &&\n    xmlData[i+3] === 'N' &&\n    xmlData[i+4] === 'T' &&\n    xmlData[i+5] === 'I' &&\n    xmlData[i+6] === 'T' &&\n    xmlData[i+7] === 'Y') return true\n    return false\n}\nfunction isElement(xmlData, i){\n    if(xmlData[i+1] === '!' &&\n    xmlData[i+2] === 'E' &&\n    xmlData[i+3] === 'L' &&\n    xmlData[i+4] === 'E' &&\n    xmlData[i+5] === 'M' &&\n    xmlData[i+6] === 'E' &&\n    xmlData[i+7] === 'N' &&\n    xmlData[i+8] === 'T') return true\n    return false\n}\n\nfunction isAttlist(xmlData, i){\n    if(xmlData[i+1] === '!' &&\n    xmlData[i+2] === 'A' &&\n    xmlData[i+3] === 'T' &&\n    xmlData[i+4] === 'T' &&\n    xmlData[i+5] === 'L' &&\n    xmlData[i+6] === 'I' &&\n    xmlData[i+7] === 'S' &&\n    xmlData[i+8] === 'T') return true\n    return false\n}\nfunction isNotation(xmlData, i){\n    if(xmlData[i+1] === '!' &&\n    xmlData[i+2] === 'N' &&\n    xmlData[i+3] === 'O' &&\n    xmlData[i+4] === 'T' &&\n    xmlData[i+5] === 'A' &&\n    xmlData[i+6] === 'T' &&\n    xmlData[i+7] === 'I' &&\n    xmlData[i+8] === 'O' &&\n    xmlData[i+9] === 'N') return true\n    return false\n}\n\nfunction validateEntityName(name){\n    if (util.isName(name))\n\treturn name;\n    else\n        throw new Error(`Invalid entity name ${name}`);\n}\n\nmodule.exports = readDocType;\n\n\n/***/ }),\n\n/***/ \"./node_modules/fast-xml-parser/src/xmlparser/OptionsBuilder.js\":\n/*!**********************************************************************!*\\\n  !*** ./node_modules/fast-xml-parser/src/xmlparser/OptionsBuilder.js ***!\n  \\**********************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\n\nconst defaultOptions = {\n    preserveOrder: false,\n    attributeNamePrefix: '@_',\n    attributesGroupName: false,\n    textNodeName: '#text',\n    ignoreAttributes: true,\n    removeNSPrefix: false, // remove NS from tag name or attribute name if true\n    allowBooleanAttributes: false, //a tag can have attributes without any value\n    //ignoreRootElement : false,\n    parseTagValue: true,\n    parseAttributeValue: false,\n    trimValues: true, //Trim string values of tag and attributes\n    cdataPropName: false,\n    numberParseOptions: {\n      hex: true,\n      leadingZeros: true,\n      eNotation: true\n    },\n    tagValueProcessor: function(tagName, val) {\n      return val;\n    },\n    attributeValueProcessor: function(attrName, val) {\n      return val;\n    },\n    stopNodes: [], //nested tags will not be parsed even for errors\n    alwaysCreateTextNode: false,\n    isArray: () => false,\n    commentPropName: false,\n    unpairedTags: [],\n    processEntities: true,\n    htmlEntities: false,\n    ignoreDeclaration: false,\n    ignorePiTags: false,\n    transformTagName: false,\n    transformAttributeName: false,\n    updateTag: function(tagName, jPath, attrs){\n      return tagName\n    },\n    // skipEmptyListItem: false\n};\n   \nconst buildOptions = function(options) {\n    return Object.assign({}, defaultOptions, options);\n};\n\nexports.buildOptions = buildOptions;\nexports.defaultOptions = defaultOptions;\n\n/***/ }),\n\n/***/ \"./node_modules/fast-xml-parser/src/xmlparser/OrderedObjParser.js\":\n/*!************************************************************************!*\\\n  !*** ./node_modules/fast-xml-parser/src/xmlparser/OrderedObjParser.js ***!\n  \\************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n///@ts-check\n\nconst util = __webpack_require__(/*! ../util */ \"./node_modules/fast-xml-parser/src/util.js\");\nconst xmlNode = __webpack_require__(/*! ./xmlNode */ \"./node_modules/fast-xml-parser/src/xmlparser/xmlNode.js\");\nconst readDocType = __webpack_require__(/*! ./DocTypeReader */ \"./node_modules/fast-xml-parser/src/xmlparser/DocTypeReader.js\");\nconst toNumber = __webpack_require__(/*! strnum */ \"./node_modules/strnum/strnum.js\");\n\n// const regx =\n//   '<((!\\\\[CDATA\\\\[([\\\\s\\\\S]*?)(]]>))|((NAME:)?(NAME))([^>]*)>|((\\\\/)(NAME)\\\\s*>))([^<]*)'\n//   .replace(/NAME/g, util.nameRegexp);\n\n//const tagsRegx = new RegExp(\"<(\\\\/?[\\\\w:\\\\-\\._]+)([^>]*)>(\\\\s*\"+cdataRegx+\")*([^<]+)?\",\"g\");\n//const tagsRegx = new RegExp(\"<(\\\\/?)((\\\\w*:)?([\\\\w:\\\\-\\._]+))([^>]*)>([^<]*)(\"+cdataRegx+\"([^<]*))*([^<]+)?\",\"g\");\n\nclass OrderedObjParser{\n  constructor(options){\n    this.options = options;\n    this.currentNode = null;\n    this.tagsNodeStack = [];\n    this.docTypeEntities = {};\n    this.lastEntities = {\n      \"apos\" : { regex: /&(apos|#39|#x27);/g, val : \"'\"},\n      \"gt\" : { regex: /&(gt|#62|#x3E);/g, val : \">\"},\n      \"lt\" : { regex: /&(lt|#60|#x3C);/g, val : \"<\"},\n      \"quot\" : { regex: /&(quot|#34|#x22);/g, val : \"\\\"\"},\n    };\n    this.ampEntity = { regex: /&(amp|#38|#x26);/g, val : \"&\"};\n    this.htmlEntities = {\n      \"space\": { regex: /&(nbsp|#160);/g, val: \" \" },\n      // \"lt\" : { regex: /&(lt|#60);/g, val: \"<\" },\n      // \"gt\" : { regex: /&(gt|#62);/g, val: \">\" },\n      // \"amp\" : { regex: /&(amp|#38);/g, val: \"&\" },\n      // \"quot\" : { regex: /&(quot|#34);/g, val: \"\\\"\" },\n      // \"apos\" : { regex: /&(apos|#39);/g, val: \"'\" },\n      \"cent\" : { regex: /&(cent|#162);/g, val: \"¢\" },\n      \"pound\" : { regex: /&(pound|#163);/g, val: \"£\" },\n      \"yen\" : { regex: /&(yen|#165);/g, val: \"¥\" },\n      \"euro\" : { regex: /&(euro|#8364);/g, val: \"€\" },\n      \"copyright\" : { regex: /&(copy|#169);/g, val: \"©\" },\n      \"reg\" : { regex: /&(reg|#174);/g, val: \"®\" },\n      \"inr\" : { regex: /&(inr|#8377);/g, val: \"₹\" },\n      \"num_dec\": { regex: /&#([0-9]{1,7});/g, val : (_, str) => String.fromCharCode(Number.parseInt(str, 10)) },\n      \"num_hex\": { regex: /&#x([0-9a-fA-F]{1,6});/g, val : (_, str) => String.fromCharCode(Number.parseInt(str, 16)) },\n    };\n    this.addExternalEntities = addExternalEntities;\n    this.parseXml = parseXml;\n    this.parseTextData = parseTextData;\n    this.resolveNameSpace = resolveNameSpace;\n    this.buildAttributesMap = buildAttributesMap;\n    this.isItStopNode = isItStopNode;\n    this.replaceEntitiesValue = replaceEntitiesValue;\n    this.readStopNodeData = readStopNodeData;\n    this.saveTextToParentTag = saveTextToParentTag;\n    this.addChild = addChild;\n  }\n\n}\n\nfunction addExternalEntities(externalEntities){\n  const entKeys = Object.keys(externalEntities);\n  for (let i = 0; i < entKeys.length; i++) {\n    const ent = entKeys[i];\n    this.lastEntities[ent] = {\n       regex: new RegExp(\"&\"+ent+\";\",\"g\"),\n       val : externalEntities[ent]\n    }\n  }\n}\n\n/**\n * @param {string} val\n * @param {string} tagName\n * @param {string} jPath\n * @param {boolean} dontTrim\n * @param {boolean} hasAttributes\n * @param {boolean} isLeafNode\n * @param {boolean} escapeEntities\n */\nfunction parseTextData(val, tagName, jPath, dontTrim, hasAttributes, isLeafNode, escapeEntities) {\n  if (val !== undefined) {\n    if (this.options.trimValues && !dontTrim) {\n      val = val.trim();\n    }\n    if(val.length > 0){\n      if(!escapeEntities) val = this.replaceEntitiesValue(val);\n      \n      const newval = this.options.tagValueProcessor(tagName, val, jPath, hasAttributes, isLeafNode);\n      if(newval === null || newval === undefined){\n        //don't parse\n        return val;\n      }else if(typeof newval !== typeof val || newval !== val){\n        //overwrite\n        return newval;\n      }else if(this.options.trimValues){\n        return parseValue(val, this.options.parseTagValue, this.options.numberParseOptions);\n      }else{\n        const trimmedVal = val.trim();\n        if(trimmedVal === val){\n          return parseValue(val, this.options.parseTagValue, this.options.numberParseOptions);\n        }else{\n          return val;\n        }\n      }\n    }\n  }\n}\n\nfunction resolveNameSpace(tagname) {\n  if (this.options.removeNSPrefix) {\n    const tags = tagname.split(':');\n    const prefix = tagname.charAt(0) === '/' ? '/' : '';\n    if (tags[0] === 'xmlns') {\n      return '';\n    }\n    if (tags.length === 2) {\n      tagname = prefix + tags[1];\n    }\n  }\n  return tagname;\n}\n\n//TODO: change regex to capture NS\n//const attrsRegx = new RegExp(\"([\\\\w\\\\-\\\\.\\\\:]+)\\\\s*=\\\\s*(['\\\"])((.|\\n)*?)\\\\2\",\"gm\");\nconst attrsRegx = new RegExp('([^\\\\s=]+)\\\\s*(=\\\\s*([\\'\"])([\\\\s\\\\S]*?)\\\\3)?', 'gm');\n\nfunction buildAttributesMap(attrStr, jPath, tagName) {\n  if (!this.options.ignoreAttributes && typeof attrStr === 'string') {\n    // attrStr = attrStr.replace(/\\r?\\n/g, ' ');\n    //attrStr = attrStr || attrStr.trim();\n\n    const matches = util.getAllMatches(attrStr, attrsRegx);\n    const len = matches.length; //don't make it inline\n    const attrs = {};\n    for (let i = 0; i < len; i++) {\n      const attrName = this.resolveNameSpace(matches[i][1]);\n      let oldVal = matches[i][4];\n      let aName = this.options.attributeNamePrefix + attrName;\n      if (attrName.length) {\n        if (this.options.transformAttributeName) {\n          aName = this.options.transformAttributeName(aName);\n        }\n        if(aName === \"__proto__\") aName  = \"#__proto__\";\n        if (oldVal !== undefined) {\n          if (this.options.trimValues) {\n            oldVal = oldVal.trim();\n          }\n          oldVal = this.replaceEntitiesValue(oldVal);\n          const newVal = this.options.attributeValueProcessor(attrName, oldVal, jPath);\n          if(newVal === null || newVal === undefined){\n            //don't parse\n            attrs[aName] = oldVal;\n          }else if(typeof newVal !== typeof oldVal || newVal !== oldVal){\n            //overwrite\n            attrs[aName] = newVal;\n          }else{\n            //parse\n            attrs[aName] = parseValue(\n              oldVal,\n              this.options.parseAttributeValue,\n              this.options.numberParseOptions\n            );\n          }\n        } else if (this.options.allowBooleanAttributes) {\n          attrs[aName] = true;\n        }\n      }\n    }\n    if (!Object.keys(attrs).length) {\n      return;\n    }\n    if (this.options.attributesGroupName) {\n      const attrCollection = {};\n      attrCollection[this.options.attributesGroupName] = attrs;\n      return attrCollection;\n    }\n    return attrs\n  }\n}\n\nconst parseXml = function(xmlData) {\n  xmlData = xmlData.replace(/\\r\\n?/g, \"\\n\"); //TODO: remove this line\n  const xmlObj = new xmlNode('!xml');\n  let currentNode = xmlObj;\n  let textData = \"\";\n  let jPath = \"\";\n  for(let i=0; i< xmlData.length; i++){//for each char in XML data\n    const ch = xmlData[i];\n    if(ch === '<'){\n      // const nextIndex = i+1;\n      // const _2ndChar = xmlData[nextIndex];\n      if( xmlData[i+1] === '/') {//Closing Tag\n        const closeIndex = findClosingIndex(xmlData, \">\", i, \"Closing Tag is not closed.\")\n        let tagName = xmlData.substring(i+2,closeIndex).trim();\n\n        if(this.options.removeNSPrefix){\n          const colonIndex = tagName.indexOf(\":\");\n          if(colonIndex !== -1){\n            tagName = tagName.substr(colonIndex+1);\n          }\n        }\n\n        if(this.options.transformTagName) {\n          tagName = this.options.transformTagName(tagName);\n        }\n\n        if(currentNode){\n          textData = this.saveTextToParentTag(textData, currentNode, jPath);\n        }\n\n        //check if last tag of nested tag was unpaired tag\n        const lastTagName = jPath.substring(jPath.lastIndexOf(\".\")+1);\n        if(tagName && this.options.unpairedTags.indexOf(tagName) !== -1 ){\n          throw new Error(`Unpaired tag can not be used as closing tag: </${tagName}>`);\n        }\n        let propIndex = 0\n        if(lastTagName && this.options.unpairedTags.indexOf(lastTagName) !== -1 ){\n          propIndex = jPath.lastIndexOf('.', jPath.lastIndexOf('.')-1)\n          this.tagsNodeStack.pop();\n        }else{\n          propIndex = jPath.lastIndexOf(\".\");\n        }\n        jPath = jPath.substring(0, propIndex);\n\n        currentNode = this.tagsNodeStack.pop();//avoid recursion, set the parent tag scope\n        textData = \"\";\n        i = closeIndex;\n      } else if( xmlData[i+1] === '?') {\n\n        let tagData = readTagExp(xmlData,i, false, \"?>\");\n        if(!tagData) throw new Error(\"Pi Tag is not closed.\");\n\n        textData = this.saveTextToParentTag(textData, currentNode, jPath);\n        if( (this.options.ignoreDeclaration && tagData.tagName === \"?xml\") || this.options.ignorePiTags){\n\n        }else{\n  \n          const childNode = new xmlNode(tagData.tagName);\n          childNode.add(this.options.textNodeName, \"\");\n          \n          if(tagData.tagName !== tagData.tagExp && tagData.attrExpPresent){\n            childNode[\":@\"] = this.buildAttributesMap(tagData.tagExp, jPath, tagData.tagName);\n          }\n          this.addChild(currentNode, childNode, jPath)\n\n        }\n\n\n        i = tagData.closeIndex + 1;\n      } else if(xmlData.substr(i + 1, 3) === '!--') {\n        const endIndex = findClosingIndex(xmlData, \"-->\", i+4, \"Comment is not closed.\")\n        if(this.options.commentPropName){\n          const comment = xmlData.substring(i + 4, endIndex - 2);\n\n          textData = this.saveTextToParentTag(textData, currentNode, jPath);\n\n          currentNode.add(this.options.commentPropName, [ { [this.options.textNodeName] : comment } ]);\n        }\n        i = endIndex;\n      } else if( xmlData.substr(i + 1, 2) === '!D') {\n        const result = readDocType(xmlData, i);\n        this.docTypeEntities = result.entities;\n        i = result.i;\n      }else if(xmlData.substr(i + 1, 2) === '![') {\n        const closeIndex = findClosingIndex(xmlData, \"]]>\", i, \"CDATA is not closed.\") - 2;\n        const tagExp = xmlData.substring(i + 9,closeIndex);\n\n        textData = this.saveTextToParentTag(textData, currentNode, jPath);\n\n        let val = this.parseTextData(tagExp, currentNode.tagname, jPath, true, false, true, true);\n        if(val == undefined) val = \"\";\n\n        //cdata should be set even if it is 0 length string\n        if(this.options.cdataPropName){\n          currentNode.add(this.options.cdataPropName, [ { [this.options.textNodeName] : tagExp } ]);\n        }else{\n          currentNode.add(this.options.textNodeName, val);\n        }\n        \n        i = closeIndex + 2;\n      }else {//Opening tag\n        let result = readTagExp(xmlData,i, this.options.removeNSPrefix);\n        let tagName= result.tagName;\n        const rawTagName = result.rawTagName;\n        let tagExp = result.tagExp;\n        let attrExpPresent = result.attrExpPresent;\n        let closeIndex = result.closeIndex;\n\n        if (this.options.transformTagName) {\n          tagName = this.options.transformTagName(tagName);\n        }\n        \n        //save text as child node\n        if (currentNode && textData) {\n          if(currentNode.tagname !== '!xml'){\n            //when nested tag is found\n            textData = this.saveTextToParentTag(textData, currentNode, jPath, false);\n          }\n        }\n\n        //check if last tag was unpaired tag\n        const lastTag = currentNode;\n        if(lastTag && this.options.unpairedTags.indexOf(lastTag.tagname) !== -1 ){\n          currentNode = this.tagsNodeStack.pop();\n          jPath = jPath.substring(0, jPath.lastIndexOf(\".\"));\n        }\n        if(tagName !== xmlObj.tagname){\n          jPath += jPath ? \".\" + tagName : tagName;\n        }\n        if (this.isItStopNode(this.options.stopNodes, jPath, tagName)) {\n          let tagContent = \"\";\n          //self-closing tag\n          if(tagExp.length > 0 && tagExp.lastIndexOf(\"/\") === tagExp.length - 1){\n            if(tagName[tagName.length - 1] === \"/\"){ //remove trailing '/'\n              tagName = tagName.substr(0, tagName.length - 1);\n              jPath = jPath.substr(0, jPath.length - 1);\n              tagExp = tagName;\n            }else{\n              tagExp = tagExp.substr(0, tagExp.length - 1);\n            }\n            i = result.closeIndex;\n          }\n          //unpaired tag\n          else if(this.options.unpairedTags.indexOf(tagName) !== -1){\n            \n            i = result.closeIndex;\n          }\n          //normal tag\n          else{\n            //read until closing tag is found\n            const result = this.readStopNodeData(xmlData, rawTagName, closeIndex + 1);\n            if(!result) throw new Error(`Unexpected end of ${rawTagName}`);\n            i = result.i;\n            tagContent = result.tagContent;\n          }\n\n          const childNode = new xmlNode(tagName);\n          if(tagName !== tagExp && attrExpPresent){\n            childNode[\":@\"] = this.buildAttributesMap(tagExp, jPath, tagName);\n          }\n          if(tagContent) {\n            tagContent = this.parseTextData(tagContent, tagName, jPath, true, attrExpPresent, true, true);\n          }\n          \n          jPath = jPath.substr(0, jPath.lastIndexOf(\".\"));\n          childNode.add(this.options.textNodeName, tagContent);\n          \n          this.addChild(currentNode, childNode, jPath)\n        }else{\n  //selfClosing tag\n          if(tagExp.length > 0 && tagExp.lastIndexOf(\"/\") === tagExp.length - 1){\n            if(tagName[tagName.length - 1] === \"/\"){ //remove trailing '/'\n              tagName = tagName.substr(0, tagName.length - 1);\n              jPath = jPath.substr(0, jPath.length - 1);\n              tagExp = tagName;\n            }else{\n              tagExp = tagExp.substr(0, tagExp.length - 1);\n            }\n            \n            if(this.options.transformTagName) {\n              tagName = this.options.transformTagName(tagName);\n            }\n\n            const childNode = new xmlNode(tagName);\n            if(tagName !== tagExp && attrExpPresent){\n              childNode[\":@\"] = this.buildAttributesMap(tagExp, jPath, tagName);\n            }\n            this.addChild(currentNode, childNode, jPath)\n            jPath = jPath.substr(0, jPath.lastIndexOf(\".\"));\n          }\n    //opening tag\n          else{\n            const childNode = new xmlNode( tagName);\n            this.tagsNodeStack.push(currentNode);\n            \n            if(tagName !== tagExp && attrExpPresent){\n              childNode[\":@\"] = this.buildAttributesMap(tagExp, jPath, tagName);\n            }\n            this.addChild(currentNode, childNode, jPath)\n            currentNode = childNode;\n          }\n          textData = \"\";\n          i = closeIndex;\n        }\n      }\n    }else{\n      textData += xmlData[i];\n    }\n  }\n  return xmlObj.child;\n}\n\nfunction addChild(currentNode, childNode, jPath){\n  const result = this.options.updateTag(childNode.tagname, jPath, childNode[\":@\"])\n  if(result === false){\n  }else if(typeof result === \"string\"){\n    childNode.tagname = result\n    currentNode.addChild(childNode);\n  }else{\n    currentNode.addChild(childNode);\n  }\n}\n\nconst replaceEntitiesValue = function(val){\n\n  if(this.options.processEntities){\n    for(let entityName in this.docTypeEntities){\n      const entity = this.docTypeEntities[entityName];\n      val = val.replace( entity.regx, entity.val);\n    }\n    for(let entityName in this.lastEntities){\n      const entity = this.lastEntities[entityName];\n      val = val.replace( entity.regex, entity.val);\n    }\n    if(this.options.htmlEntities){\n      for(let entityName in this.htmlEntities){\n        const entity = this.htmlEntities[entityName];\n        val = val.replace( entity.regex, entity.val);\n      }\n    }\n    val = val.replace( this.ampEntity.regex, this.ampEntity.val);\n  }\n  return val;\n}\nfunction saveTextToParentTag(textData, currentNode, jPath, isLeafNode) {\n  if (textData) { //store previously collected data as textNode\n    if(isLeafNode === undefined) isLeafNode = Object.keys(currentNode.child).length === 0\n    \n    textData = this.parseTextData(textData,\n      currentNode.tagname,\n      jPath,\n      false,\n      currentNode[\":@\"] ? Object.keys(currentNode[\":@\"]).length !== 0 : false,\n      isLeafNode);\n\n    if (textData !== undefined && textData !== \"\")\n      currentNode.add(this.options.textNodeName, textData);\n    textData = \"\";\n  }\n  return textData;\n}\n\n//TODO: use jPath to simplify the logic\n/**\n * \n * @param {string[]} stopNodes \n * @param {string} jPath\n * @param {string} currentTagName \n */\nfunction isItStopNode(stopNodes, jPath, currentTagName){\n  const allNodesExp = \"*.\" + currentTagName;\n  for (const stopNodePath in stopNodes) {\n    const stopNodeExp = stopNodes[stopNodePath];\n    if( allNodesExp === stopNodeExp || jPath === stopNodeExp  ) return true;\n  }\n  return false;\n}\n\n/**\n * Returns the tag Expression and where it is ending handling single-double quotes situation\n * @param {string} xmlData \n * @param {number} i starting index\n * @returns \n */\nfunction tagExpWithClosingIndex(xmlData, i, closingChar = \">\"){\n  let attrBoundary;\n  let tagExp = \"\";\n  for (let index = i; index < xmlData.length; index++) {\n    let ch = xmlData[index];\n    if (attrBoundary) {\n        if (ch === attrBoundary) attrBoundary = \"\";//reset\n    } else if (ch === '\"' || ch === \"'\") {\n        attrBoundary = ch;\n    } else if (ch === closingChar[0]) {\n      if(closingChar[1]){\n        if(xmlData[index + 1] === closingChar[1]){\n          return {\n            data: tagExp,\n            index: index\n          }\n        }\n      }else{\n        return {\n          data: tagExp,\n          index: index\n        }\n      }\n    } else if (ch === '\\t') {\n      ch = \" \"\n    }\n    tagExp += ch;\n  }\n}\n\nfunction findClosingIndex(xmlData, str, i, errMsg){\n  const closingIndex = xmlData.indexOf(str, i);\n  if(closingIndex === -1){\n    throw new Error(errMsg)\n  }else{\n    return closingIndex + str.length - 1;\n  }\n}\n\nfunction readTagExp(xmlData,i, removeNSPrefix, closingChar = \">\"){\n  const result = tagExpWithClosingIndex(xmlData, i+1, closingChar);\n  if(!result) return;\n  let tagExp = result.data;\n  const closeIndex = result.index;\n  const separatorIndex = tagExp.search(/\\s/);\n  let tagName = tagExp;\n  let attrExpPresent = true;\n  if(separatorIndex !== -1){//separate tag name and attributes expression\n    tagName = tagExp.substring(0, separatorIndex);\n    tagExp = tagExp.substring(separatorIndex + 1).trimStart();\n  }\n\n  const rawTagName = tagName;\n  if(removeNSPrefix){\n    const colonIndex = tagName.indexOf(\":\");\n    if(colonIndex !== -1){\n      tagName = tagName.substr(colonIndex+1);\n      attrExpPresent = tagName !== result.data.substr(colonIndex + 1);\n    }\n  }\n\n  return {\n    tagName: tagName,\n    tagExp: tagExp,\n    closeIndex: closeIndex,\n    attrExpPresent: attrExpPresent,\n    rawTagName: rawTagName,\n  }\n}\n/**\n * find paired tag for a stop node\n * @param {string} xmlData \n * @param {string} tagName \n * @param {number} i \n */\nfunction readStopNodeData(xmlData, tagName, i){\n  const startIndex = i;\n  // Starting at 1 since we already have an open tag\n  let openTagCount = 1;\n\n  for (; i < xmlData.length; i++) {\n    if( xmlData[i] === \"<\"){ \n      if (xmlData[i+1] === \"/\") {//close tag\n          const closeIndex = findClosingIndex(xmlData, \">\", i, `${tagName} is not closed`);\n          let closeTagName = xmlData.substring(i+2,closeIndex).trim();\n          if(closeTagName === tagName){\n            openTagCount--;\n            if (openTagCount === 0) {\n              return {\n                tagContent: xmlData.substring(startIndex, i),\n                i : closeIndex\n              }\n            }\n          }\n          i=closeIndex;\n        } else if(xmlData[i+1] === '?') { \n          const closeIndex = findClosingIndex(xmlData, \"?>\", i+1, \"StopNode is not closed.\")\n          i=closeIndex;\n        } else if(xmlData.substr(i + 1, 3) === '!--') { \n          const closeIndex = findClosingIndex(xmlData, \"-->\", i+3, \"StopNode is not closed.\")\n          i=closeIndex;\n        } else if(xmlData.substr(i + 1, 2) === '![') { \n          const closeIndex = findClosingIndex(xmlData, \"]]>\", i, \"StopNode is not closed.\") - 2;\n          i=closeIndex;\n        } else {\n          const tagData = readTagExp(xmlData, i, '>')\n\n          if (tagData) {\n            const openTagName = tagData && tagData.tagName;\n            if (openTagName === tagName && tagData.tagExp[tagData.tagExp.length-1] !== \"/\") {\n              openTagCount++;\n            }\n            i=tagData.closeIndex;\n          }\n        }\n      }\n  }//end for loop\n}\n\nfunction parseValue(val, shouldParse, options) {\n  if (shouldParse && typeof val === 'string') {\n    //console.log(options)\n    const newval = val.trim();\n    if(newval === 'true' ) return true;\n    else if(newval === 'false' ) return false;\n    else return toNumber(val, options);\n  } else {\n    if (util.isExist(val)) {\n      return val;\n    } else {\n      return '';\n    }\n  }\n}\n\n\nmodule.exports = OrderedObjParser;\n\n\n/***/ }),\n\n/***/ \"./node_modules/fast-xml-parser/src/xmlparser/XMLParser.js\":\n/*!*****************************************************************!*\\\n  !*** ./node_modules/fast-xml-parser/src/xmlparser/XMLParser.js ***!\n  \\*****************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nconst { buildOptions} = __webpack_require__(/*! ./OptionsBuilder */ \"./node_modules/fast-xml-parser/src/xmlparser/OptionsBuilder.js\");\nconst OrderedObjParser = __webpack_require__(/*! ./OrderedObjParser */ \"./node_modules/fast-xml-parser/src/xmlparser/OrderedObjParser.js\");\nconst { prettify} = __webpack_require__(/*! ./node2json */ \"./node_modules/fast-xml-parser/src/xmlparser/node2json.js\");\nconst validator = __webpack_require__(/*! ../validator */ \"./node_modules/fast-xml-parser/src/validator.js\");\n\nclass XMLParser{\n    \n    constructor(options){\n        this.externalEntities = {};\n        this.options = buildOptions(options);\n        \n    }\n    /**\n     * Parse XML dats to JS object \n     * @param {string|Buffer} xmlData \n     * @param {boolean|Object} validationOption \n     */\n    parse(xmlData,validationOption){\n        if(typeof xmlData === \"string\"){\n        }else if( xmlData.toString){\n            xmlData = xmlData.toString();\n        }else{\n            throw new Error(\"XML data is accepted in String or Bytes[] form.\")\n        }\n        if( validationOption){\n            if(validationOption === true) validationOption = {}; //validate with default options\n            \n            const result = validator.validate(xmlData, validationOption);\n            if (result !== true) {\n              throw Error( `${result.err.msg}:${result.err.line}:${result.err.col}` )\n            }\n          }\n        const orderedObjParser = new OrderedObjParser(this.options);\n        orderedObjParser.addExternalEntities(this.externalEntities);\n        const orderedResult = orderedObjParser.parseXml(xmlData);\n        if(this.options.preserveOrder || orderedResult === undefined) return orderedResult;\n        else return prettify(orderedResult, this.options);\n    }\n\n    /**\n     * Add Entity which is not by default supported by this library\n     * @param {string} key \n     * @param {string} value \n     */\n    addEntity(key, value){\n        if(value.indexOf(\"&\") !== -1){\n            throw new Error(\"Entity value can't have '&'\")\n        }else if(key.indexOf(\"&\") !== -1 || key.indexOf(\";\") !== -1){\n            throw new Error(\"An entity must be set without '&' and ';'. Eg. use '#xD' for '&#xD;'\")\n        }else if(value === \"&\"){\n            throw new Error(\"An entity with value '&' is not permitted\");\n        }else{\n            this.externalEntities[key] = value;\n        }\n    }\n}\n\nmodule.exports = XMLParser;\n\n/***/ }),\n\n/***/ \"./node_modules/fast-xml-parser/src/xmlparser/node2json.js\":\n/*!*****************************************************************!*\\\n  !*** ./node_modules/fast-xml-parser/src/xmlparser/node2json.js ***!\n  \\*****************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/**\n * \n * @param {array} node \n * @param {any} options \n * @returns \n */\nfunction prettify(node, options){\n  return compress( node, options);\n}\n\n/**\n * \n * @param {array} arr \n * @param {object} options \n * @param {string} jPath \n * @returns object\n */\nfunction compress(arr, options, jPath){\n  let text;\n  const compressedObj = {};\n  for (let i = 0; i < arr.length; i++) {\n    const tagObj = arr[i];\n    const property = propName(tagObj);\n    let newJpath = \"\";\n    if(jPath === undefined) newJpath = property;\n    else newJpath = jPath + \".\" + property;\n\n    if(property === options.textNodeName){\n      if(text === undefined) text = tagObj[property];\n      else text += \"\" + tagObj[property];\n    }else if(property === undefined){\n      continue;\n    }else if(tagObj[property]){\n      \n      let val = compress(tagObj[property], options, newJpath);\n      const isLeaf = isLeafTag(val, options);\n\n      if(tagObj[\":@\"]){\n        assignAttributes( val, tagObj[\":@\"], newJpath, options);\n      }else if(Object.keys(val).length === 1 && val[options.textNodeName] !== undefined && !options.alwaysCreateTextNode){\n        val = val[options.textNodeName];\n      }else if(Object.keys(val).length === 0){\n        if(options.alwaysCreateTextNode) val[options.textNodeName] = \"\";\n        else val = \"\";\n      }\n\n      if(compressedObj[property] !== undefined && compressedObj.hasOwnProperty(property)) {\n        if(!Array.isArray(compressedObj[property])) {\n            compressedObj[property] = [ compressedObj[property] ];\n        }\n        compressedObj[property].push(val);\n      }else{\n        //TODO: if a node is not an array, then check if it should be an array\n        //also determine if it is a leaf node\n        if (options.isArray(property, newJpath, isLeaf )) {\n          compressedObj[property] = [val];\n        }else{\n          compressedObj[property] = val;\n        }\n      }\n    }\n    \n  }\n  // if(text && text.length > 0) compressedObj[options.textNodeName] = text;\n  if(typeof text === \"string\"){\n    if(text.length > 0) compressedObj[options.textNodeName] = text;\n  }else if(text !== undefined) compressedObj[options.textNodeName] = text;\n  return compressedObj;\n}\n\nfunction propName(obj){\n  const keys = Object.keys(obj);\n  for (let i = 0; i < keys.length; i++) {\n    const key = keys[i];\n    if(key !== \":@\") return key;\n  }\n}\n\nfunction assignAttributes(obj, attrMap, jpath, options){\n  if (attrMap) {\n    const keys = Object.keys(attrMap);\n    const len = keys.length; //don't make it inline\n    for (let i = 0; i < len; i++) {\n      const atrrName = keys[i];\n      if (options.isArray(atrrName, jpath + \".\" + atrrName, true, true)) {\n        obj[atrrName] = [ attrMap[atrrName] ];\n      } else {\n        obj[atrrName] = attrMap[atrrName];\n      }\n    }\n  }\n}\n\nfunction isLeafTag(obj, options){\n  const { textNodeName } = options;\n  const propCount = Object.keys(obj).length;\n  \n  if (propCount === 0) {\n    return true;\n  }\n\n  if (\n    propCount === 1 &&\n    (obj[textNodeName] || typeof obj[textNodeName] === \"boolean\" || obj[textNodeName] === 0)\n  ) {\n    return true;\n  }\n\n  return false;\n}\nexports.prettify = prettify;\n\n\n/***/ }),\n\n/***/ \"./node_modules/fast-xml-parser/src/xmlparser/xmlNode.js\":\n/*!***************************************************************!*\\\n  !*** ./node_modules/fast-xml-parser/src/xmlparser/xmlNode.js ***!\n  \\***************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nclass XmlNode{\n  constructor(tagname) {\n    this.tagname = tagname;\n    this.child = []; //nested tags, text, cdata, comments in order\n    this[\":@\"] = {}; //attributes map\n  }\n  add(key,val){\n    // this.child.push( {name : key, val: val, isCdata: isCdata });\n    if(key === \"__proto__\") key = \"#__proto__\";\n    this.child.push( {[key]: val });\n  }\n  addChild(node) {\n    if(node.tagname === \"__proto__\") node.tagname = \"#__proto__\";\n    if(node[\":@\"] && Object.keys(node[\":@\"]).length > 0){\n      this.child.push( { [node.tagname]: node.child, [\":@\"]: node[\":@\"] });\n    }else{\n      this.child.push( { [node.tagname]: node.child });\n    }\n  };\n};\n\n\nmodule.exports = XmlNode;\n\n/***/ }),\n\n/***/ \"./node_modules/process/browser.js\":\n/*!*****************************************!*\\\n  !*** ./node_modules/process/browser.js ***!\n  \\*****************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\n// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things.  But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals.  It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n    throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n    throw new Error('clearTimeout has not been defined');\n}\n(function () {\n    try {\n        if (typeof setTimeout === 'function') {\n            cachedSetTimeout = setTimeout;\n        } else {\n            cachedSetTimeout = defaultSetTimout;\n        }\n    } catch (e) {\n        cachedSetTimeout = defaultSetTimout;\n    }\n    try {\n        if (typeof clearTimeout === 'function') {\n            cachedClearTimeout = clearTimeout;\n        } else {\n            cachedClearTimeout = defaultClearTimeout;\n        }\n    } catch (e) {\n        cachedClearTimeout = defaultClearTimeout;\n    }\n} ())\nfunction runTimeout(fun) {\n    if (cachedSetTimeout === setTimeout) {\n        //normal enviroments in sane situations\n        return setTimeout(fun, 0);\n    }\n    // if setTimeout wasn't available but was latter defined\n    if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n        cachedSetTimeout = setTimeout;\n        return setTimeout(fun, 0);\n    }\n    try {\n        // when when somebody has screwed with setTimeout but no I.E. maddness\n        return cachedSetTimeout(fun, 0);\n    } catch(e){\n        try {\n            // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n            return cachedSetTimeout.call(null, fun, 0);\n        } catch(e){\n            // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n            return cachedSetTimeout.call(this, fun, 0);\n        }\n    }\n\n\n}\nfunction runClearTimeout(marker) {\n    if (cachedClearTimeout === clearTimeout) {\n        //normal enviroments in sane situations\n        return clearTimeout(marker);\n    }\n    // if clearTimeout wasn't available but was latter defined\n    if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n        cachedClearTimeout = clearTimeout;\n        return clearTimeout(marker);\n    }\n    try {\n        // when when somebody has screwed with setTimeout but no I.E. maddness\n        return cachedClearTimeout(marker);\n    } catch (e){\n        try {\n            // When we are in I.E. but the script has been evaled so I.E. doesn't  trust the global object when called normally\n            return cachedClearTimeout.call(null, marker);\n        } catch (e){\n            // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n            // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n            return cachedClearTimeout.call(this, marker);\n        }\n    }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n    if (!draining || !currentQueue) {\n        return;\n    }\n    draining = false;\n    if (currentQueue.length) {\n        queue = currentQueue.concat(queue);\n    } else {\n        queueIndex = -1;\n    }\n    if (queue.length) {\n        drainQueue();\n    }\n}\n\nfunction drainQueue() {\n    if (draining) {\n        return;\n    }\n    var timeout = runTimeout(cleanUpNextTick);\n    draining = true;\n\n    var len = queue.length;\n    while(len) {\n        currentQueue = queue;\n        queue = [];\n        while (++queueIndex < len) {\n            if (currentQueue) {\n                currentQueue[queueIndex].run();\n            }\n        }\n        queueIndex = -1;\n        len = queue.length;\n    }\n    currentQueue = null;\n    draining = false;\n    runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n    var args = new Array(arguments.length - 1);\n    if (arguments.length > 1) {\n        for (var i = 1; i < arguments.length; i++) {\n            args[i - 1] = arguments[i];\n        }\n    }\n    queue.push(new Item(fun, args));\n    if (queue.length === 1 && !draining) {\n        runTimeout(drainQueue);\n    }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n    this.fun = fun;\n    this.array = array;\n}\nItem.prototype.run = function () {\n    this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n    throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n    throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n/***/ }),\n\n/***/ \"./node_modules/strnum/strnum.js\":\n/*!***************************************!*\\\n  !*** ./node_modules/strnum/strnum.js ***!\n  \\***************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nconst hexRegex = /^[-+]?0x[a-fA-F0-9]+$/;\nconst numRegex = /^([\\-\\+])?(0*)(\\.[0-9]+([eE]\\-?[0-9]+)?|[0-9]+(\\.[0-9]+([eE]\\-?[0-9]+)?)?)$/;\n// const octRegex = /0x[a-z0-9]+/;\n// const binRegex = /0x[a-z0-9]+/;\n\n\n//polyfill\nif (!Number.parseInt && window.parseInt) {\n    Number.parseInt = window.parseInt;\n}\nif (!Number.parseFloat && window.parseFloat) {\n    Number.parseFloat = window.parseFloat;\n}\n\n  \nconst consider = {\n    hex :  true,\n    leadingZeros: true,\n    decimalPoint: \"\\.\",\n    eNotation: true\n    //skipLike: /regex/\n};\n\nfunction toNumber(str, options = {}){\n    // const options = Object.assign({}, consider);\n    // if(opt.leadingZeros === false){\n    //     options.leadingZeros = false;\n    // }else if(opt.hex === false){\n    //     options.hex = false;\n    // }\n\n    options = Object.assign({}, consider, options );\n    if(!str || typeof str !== \"string\" ) return str;\n    \n    let trimmedStr  = str.trim();\n    // if(trimmedStr === \"0.0\") return 0;\n    // else if(trimmedStr === \"+0.0\") return 0;\n    // else if(trimmedStr === \"-0.0\") return -0;\n\n    if(options.skipLike !== undefined && options.skipLike.test(trimmedStr)) return str;\n    else if (options.hex && hexRegex.test(trimmedStr)) {\n        return Number.parseInt(trimmedStr, 16);\n    // } else if (options.parseOct && octRegex.test(str)) {\n    //     return Number.parseInt(val, 8);\n    // }else if (options.parseBin && binRegex.test(str)) {\n    //     return Number.parseInt(val, 2);\n    }else{\n        //separate negative sign, leading zeros, and rest number\n        const match = numRegex.exec(trimmedStr);\n        if(match){\n            const sign = match[1];\n            const leadingZeros = match[2];\n            let numTrimmedByZeros = trimZeros(match[3]); //complete num without leading zeros\n            //trim ending zeros for floating number\n            \n            const eNotation = match[4] || match[6];\n            if(!options.leadingZeros && leadingZeros.length > 0 && sign && trimmedStr[2] !== \".\") return str; //-0123\n            else if(!options.leadingZeros && leadingZeros.length > 0 && !sign && trimmedStr[1] !== \".\") return str; //0123\n            else{//no leading zeros or leading zeros are allowed\n                const num = Number(trimmedStr);\n                const numStr = \"\" + num;\n                if(numStr.search(/[eE]/) !== -1){ //given number is long and parsed to eNotation\n                    if(options.eNotation) return num;\n                    else return str;\n                }else if(eNotation){ //given number has enotation\n                    if(options.eNotation) return num;\n                    else return str;\n                }else if(trimmedStr.indexOf(\".\") !== -1){ //floating number\n                    // const decimalPart = match[5].substr(1);\n                    // const intPart = trimmedStr.substr(0,trimmedStr.indexOf(\".\"));\n\n                    \n                    // const p = numStr.indexOf(\".\");\n                    // const givenIntPart = numStr.substr(0,p);\n                    // const givenDecPart = numStr.substr(p+1);\n                    if(numStr === \"0\" && (numTrimmedByZeros === \"\") ) return num; //0.0\n                    else if(numStr === numTrimmedByZeros) return num; //0.456. 0.79000\n                    else if( sign && numStr === \"-\"+numTrimmedByZeros) return num;\n                    else return str;\n                }\n                \n                if(leadingZeros){\n                    // if(numTrimmedByZeros === numStr){\n                    //     if(options.leadingZeros) return num;\n                    //     else return str;\n                    // }else return str;\n                    if(numTrimmedByZeros === numStr) return num;\n                    else if(sign+numTrimmedByZeros === numStr) return num;\n                    else return str;\n                }\n\n                if(trimmedStr === numStr) return num;\n                else if(trimmedStr === sign+numStr) return num;\n                // else{\n                //     //number with +/- sign\n                //     trimmedStr.test(/[-+][0-9]);\n\n                // }\n                return str;\n            }\n            // else if(!eNotation && trimmedStr && trimmedStr !== Number(trimmedStr) ) return str;\n            \n        }else{ //non-numeric string\n            return str;\n        }\n    }\n}\n\n/**\n * \n * @param {string} numStr without leading zeros\n * @returns \n */\nfunction trimZeros(numStr){\n    if(numStr && numStr.indexOf(\".\") !== -1){//float\n        numStr = numStr.replace(/0+$/, \"\"); //remove ending zeros\n        if(numStr === \".\")  numStr = \"0\";\n        else if(numStr[0] === \".\")  numStr = \"0\"+numStr;\n        else if(numStr[numStr.length-1] === \".\")  numStr = numStr.substr(0,numStr.length-1);\n        return numStr;\n    }\n    return numStr;\n}\nmodule.exports = toNumber\n\n\n/***/ }),\n\n/***/ \"./node_modules/webpack/buildin/amd-options.js\":\n/*!****************************************!*\\\n  !*** (webpack)/buildin/amd-options.js ***!\n  \\****************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\n/* WEBPACK VAR INJECTION */(function(__webpack_amd_options__) {/* globals __webpack_amd_options__ */\nmodule.exports = __webpack_amd_options__;\n\n/* WEBPACK VAR INJECTION */}.call(this, {}))\n\n/***/ }),\n\n/***/ \"./node_modules/webpack/buildin/module.js\":\n/*!***********************************!*\\\n  !*** (webpack)/buildin/module.js ***!\n  \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n\n\n/***/ }),\n\n/***/ \"./package.json\":\n/*!**********************!*\\\n  !*** ./package.json ***!\n  \\**********************/\n/*! exports provided: name, version, description, main, types, scripts, repository, keywords, author, license, bugs, homepage, dependencies, devDependencies, default */\n/***/ (function(module) {\n\nmodule.exports = JSON.parse(\"{\\\"name\\\":\\\"cos-js-sdk-v5\\\",\\\"version\\\":\\\"1.8.6\\\",\\\"description\\\":\\\"JavaScript SDK for [腾讯云对象存储](https://cloud.tencent.com/product/cos)\\\",\\\"main\\\":\\\"dist/cos-js-sdk-v5.js\\\",\\\"types\\\":\\\"index.d.ts\\\",\\\"scripts\\\":{\\\"prettier\\\":\\\"prettier --write src demo/demo.js demo/CIDemos/*.js test/test.js server/sts.js lib/request.js index.d.ts\\\",\\\"server\\\":\\\"node server/sts.js\\\",\\\"dev\\\":\\\"cross-env NODE_ENV=development webpack -w --mode=development\\\",\\\"build\\\":\\\"cross-env NODE_ENV=production webpack --mode=production\\\",\\\"cos-auth.min.js\\\":\\\"uglifyjs ./demo/common/cos-auth.js -o ./demo/common/cos-auth.min.js -c -m\\\",\\\"test\\\":\\\"jest --runInBand --coverage\\\"},\\\"repository\\\":{\\\"type\\\":\\\"git\\\",\\\"url\\\":\\\"git+https://github.com/tencentyun/cos-js-sdk-v5.git\\\"},\\\"keywords\\\":[],\\\"author\\\":\\\"carsonxu\\\",\\\"license\\\":\\\"ISC\\\",\\\"bugs\\\":{\\\"url\\\":\\\"https://github.com/tencentyun/cos-js-sdk-v5/issues\\\"},\\\"homepage\\\":\\\"https://github.com/tencentyun/cos-js-sdk-v5#readme\\\",\\\"dependencies\\\":{\\\"fast-xml-parser\\\":\\\"^4.4.0\\\"},\\\"devDependencies\\\":{\\\"@babel/core\\\":\\\"7.17.9\\\",\\\"@babel/plugin-transform-runtime\\\":\\\"7.18.10\\\",\\\"@babel/preset-env\\\":\\\"7.16.11\\\",\\\"babel-loader\\\":\\\"8.2.5\\\",\\\"body-parser\\\":\\\"^1.18.3\\\",\\\"cross-env\\\":\\\"^5.2.0\\\",\\\"express\\\":\\\"^4.16.4\\\",\\\"jest\\\":\\\"^29.3.1\\\",\\\"jest-environment-jsdom\\\":\\\"^29.3.1\\\",\\\"prettier\\\":\\\"^3.0.1\\\",\\\"qcloud-cos-sts\\\":\\\"^3.0.2\\\",\\\"request\\\":\\\"^2.87.0\\\",\\\"terser-webpack-plugin\\\":\\\"4.2.3\\\",\\\"uglifyjs\\\":\\\"^2.4.11\\\",\\\"webpack\\\":\\\"4.46.0\\\",\\\"webpack-cli\\\":\\\"4.10.0\\\"}}\");\n\n/***/ }),\n\n/***/ \"./src/advance.js\":\n/*!************************!*\\\n  !*** ./src/advance.js ***!\n  \\************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ \"./node_modules/@babel/runtime/helpers/typeof.js\");\nvar session = __webpack_require__(/*! ./session */ \"./src/session.js\");\nvar Async = __webpack_require__(/*! ./async */ \"./src/async.js\");\nvar EventProxy = __webpack_require__(/*! ./event */ \"./src/event.js\").EventProxy;\nvar util = __webpack_require__(/*! ./util */ \"./src/util.js\");\nvar Tracker = __webpack_require__(/*! ./tracker */ \"./src/tracker.js\");\n\n// 文件分块上传全过程，暴露的分块上传接口\nfunction sliceUploadFile(params, callback) {\n  var self = this;\n  var ep = new EventProxy();\n  var TaskId = params.TaskId;\n  var Bucket = params.Bucket;\n  var Region = params.Region;\n  var Key = params.Key;\n  var Body = params.Body;\n  var ChunkSize = params.ChunkSize || params.SliceSize || self.options.ChunkSize;\n  var AsyncLimit = params.AsyncLimit;\n  var StorageClass = params.StorageClass;\n  var ServerSideEncryption = params.ServerSideEncryption;\n  var FileSize;\n  var onProgress;\n  var onHashProgress = params.onHashProgress;\n  var tracker = params.tracker;\n  tracker && tracker.setParams({\n    chunkSize: ChunkSize\n  });\n\n  // 上传过程中出现错误，返回错误\n  ep.on('error', function (err) {\n    if (!self._isRunningTask(TaskId)) return;\n    if (params.UploadData.UploadId) {\n      session.removeUsing(params.UploadData.UploadId);\n    }\n    err.UploadId = params.UploadData.UploadId || '';\n    return callback(err);\n  });\n\n  // 上传分块完成，开始 uploadSliceComplete 操作\n  ep.on('upload_complete', function (UploadCompleteData) {\n    var _UploadCompleteData = util.extend({\n      UploadId: params.UploadData.UploadId || ''\n    }, UploadCompleteData);\n    callback(null, _UploadCompleteData);\n  });\n\n  // 上传分块完成，开始 uploadSliceComplete 操作\n  ep.on('upload_slice_complete', function (UploadData) {\n    var metaHeaders = {};\n    util.each(params.Headers, function (val, k) {\n      var shortKey = k.toLowerCase();\n      if (shortKey.indexOf('x-cos-meta-') === 0 || ['pic-operations', 'x-cos-callback', 'x-cos-callback-var', 'x-cos-return-body'].includes(shortKey)) {\n        metaHeaders[k] = val;\n      }\n    });\n    uploadSliceComplete.call(self, {\n      Bucket: Bucket,\n      Region: Region,\n      Key: Key,\n      UploadId: UploadData.UploadId,\n      SliceList: UploadData.SliceList,\n      Headers: metaHeaders,\n      tracker: tracker\n    }, function (err, data) {\n      if (!self._isRunningTask(TaskId)) return;\n      session.removeUsing(UploadData.UploadId);\n      if (err) {\n        onProgress(null, true);\n        return ep.emit('error', err);\n      }\n      session.removeUploadId.call(self, UploadData.UploadId);\n      onProgress({\n        loaded: FileSize,\n        total: FileSize\n      }, true);\n      ep.emit('upload_complete', data);\n    });\n  });\n\n  // 获取 UploadId 完成，开始上传每个分片\n  ep.on('get_upload_data_finish', function (UploadData) {\n    // 处理 UploadId 缓存\n    var uuid = session.getFileId(Body, params.ChunkSize, Bucket, Key);\n    uuid && session.saveUploadId.call(self, uuid, UploadData.UploadId, self.options.UploadIdCacheLimit); // 缓存 UploadId\n    session.setUsing(UploadData.UploadId); // 标记 UploadId 为正在使用\n\n    // 获取 UploadId\n    onProgress(null, true); // 任务状态开始 uploading\n    uploadSliceList.call(self, {\n      TaskId: TaskId,\n      Bucket: Bucket,\n      Region: Region,\n      Key: Key,\n      Body: Body,\n      FileSize: FileSize,\n      SliceSize: ChunkSize,\n      AsyncLimit: AsyncLimit,\n      ServerSideEncryption: ServerSideEncryption,\n      UploadData: UploadData,\n      Headers: params.Headers,\n      onProgress: onProgress,\n      tracker: tracker\n    }, function (err, data) {\n      if (!self._isRunningTask(TaskId)) return;\n      if (err) {\n        onProgress(null, true);\n        return ep.emit('error', err);\n      }\n      ep.emit('upload_slice_complete', data);\n    });\n  });\n\n  // 开始获取文件 UploadId，里面会视情况计算 ETag，并比对，保证文件一致性，也优化上传\n  ep.on('get_file_size_finish', function () {\n    onProgress = util.throttleOnProgress.call(self, FileSize, params.onProgress);\n    if (params.UploadData.UploadId) {\n      ep.emit('get_upload_data_finish', params.UploadData);\n    } else {\n      var _params = util.extend({\n        TaskId: TaskId,\n        Bucket: Bucket,\n        Region: Region,\n        Key: Key,\n        Headers: params.Headers,\n        StorageClass: StorageClass,\n        Body: Body,\n        FileSize: FileSize,\n        SliceSize: ChunkSize,\n        onHashProgress: onHashProgress,\n        tracker: tracker\n      }, params);\n      getUploadIdAndPartList.call(self, _params, function (err, UploadData) {\n        if (!self._isRunningTask(TaskId)) return;\n        if (err) return ep.emit('error', err);\n        params.UploadData.UploadId = UploadData.UploadId;\n        params.UploadData.PartList = UploadData.PartList;\n        ep.emit('get_upload_data_finish', params.UploadData);\n      });\n    }\n  });\n\n  // 获取上传文件大小\n  FileSize = params.ContentLength;\n  delete params.ContentLength;\n  !params.Headers && (params.Headers = {});\n  util.each(params.Headers, function (item, key) {\n    if (key.toLowerCase() === 'content-length') {\n      delete params.Headers[key];\n    }\n  });\n\n  // 控制分片大小\n  (function () {\n    var SIZE = [1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 1024 * 2, 1024 * 4, 1024 * 5];\n    var AutoChunkSize = 1024 * 1024;\n    for (var i = 0; i < SIZE.length; i++) {\n      AutoChunkSize = SIZE[i] * 1024 * 1024;\n      if (FileSize / AutoChunkSize <= self.options.MaxPartNumber) break;\n    }\n    params.ChunkSize = params.SliceSize = ChunkSize = Math.max(ChunkSize, AutoChunkSize);\n  })();\n\n  // 开始上传\n  if (FileSize === 0) {\n    params.Body = '';\n    params.ContentLength = 0;\n    params.SkipTask = true;\n    self.putObject(params, callback);\n  } else {\n    ep.emit('get_file_size_finish');\n  }\n}\n\n// 获取上传任务的 UploadId\nfunction getUploadIdAndPartList(params, callback) {\n  var TaskId = params.TaskId;\n  var Bucket = params.Bucket;\n  var Region = params.Region;\n  var Key = params.Key;\n  var StorageClass = params.StorageClass;\n  var self = this;\n\n  // 计算 ETag\n  var ETagMap = {};\n  var FileSize = params.FileSize;\n  var SliceSize = params.SliceSize;\n  var SliceCount = Math.ceil(FileSize / SliceSize);\n  var FinishSliceCount = 0;\n  var FinishSize = 0;\n  var onHashProgress = util.throttleOnProgress.call(self, FileSize, params.onHashProgress);\n  var getChunkETag = function getChunkETag(PartNumber, callback) {\n    var start = SliceSize * (PartNumber - 1);\n    var end = Math.min(start + SliceSize, FileSize);\n    var ChunkSize = end - start;\n    if (ETagMap[PartNumber]) {\n      callback(null, {\n        PartNumber: PartNumber,\n        ETag: ETagMap[PartNumber],\n        Size: ChunkSize\n      });\n    } else {\n      util.fileSlice(params.Body, start, end, false, function (chunkItem) {\n        util.getFileMd5(chunkItem, function (err, md5) {\n          if (err) return callback(util.error(err));\n          var ETag = '\"' + md5 + '\"';\n          ETagMap[PartNumber] = ETag;\n          FinishSliceCount += 1;\n          FinishSize += ChunkSize;\n          onHashProgress({\n            loaded: FinishSize,\n            total: FileSize\n          });\n          callback(null, {\n            PartNumber: PartNumber,\n            ETag: ETag,\n            Size: ChunkSize\n          });\n        });\n      });\n    }\n  };\n\n  // 通过和文件的 md5 对比，判断 UploadId 是否可用\n  var isAvailableUploadList = function isAvailableUploadList(PartList, callback) {\n    var PartCount = PartList.length;\n    // 如果没有分片，通过\n    if (PartCount === 0) {\n      return callback(null, true);\n    }\n    // 检查分片数量\n    if (PartCount > SliceCount) {\n      return callback(null, false);\n    }\n    // 检查分片大小\n    if (PartCount > 1) {\n      var PartSliceSize = Math.max(PartList[0].Size, PartList[1].Size);\n      if (PartSliceSize !== SliceSize) {\n        return callback(null, false);\n      }\n    }\n    // 逐个分片计算并检查 ETag 是否一致\n    var next = function next(index) {\n      if (index < PartCount) {\n        var Part = PartList[index];\n        getChunkETag(Part.PartNumber, function (err, chunk) {\n          if (chunk && chunk.ETag === Part.ETag && chunk.Size === Part.Size) {\n            next(index + 1);\n          } else {\n            callback(null, false);\n          }\n        });\n      } else {\n        callback(null, true);\n      }\n    };\n    next(0);\n  };\n  var ep = new EventProxy();\n  ep.on('error', function (errData) {\n    if (!self._isRunningTask(TaskId)) return;\n    return callback(errData);\n  });\n\n  // 存在 UploadId\n  ep.on('upload_id_available', function (UploadData) {\n    // 转换成 map\n    var map = {};\n    var list = [];\n    util.each(UploadData.PartList, function (item) {\n      map[item.PartNumber] = item;\n    });\n    for (var PartNumber = 1; PartNumber <= SliceCount; PartNumber++) {\n      var item = map[PartNumber];\n      if (item) {\n        item.PartNumber = PartNumber;\n        item.Uploaded = true;\n      } else {\n        item = {\n          PartNumber: PartNumber,\n          ETag: null,\n          Uploaded: false\n        };\n      }\n      list.push(item);\n    }\n    UploadData.PartList = list;\n    callback(null, UploadData);\n  });\n\n  // 不存在 UploadId, 初始化生成 UploadId\n  ep.on('no_available_upload_id', function () {\n    if (!self._isRunningTask(TaskId)) return;\n    var _params = util.extend({\n      Bucket: Bucket,\n      Region: Region,\n      Key: Key,\n      Query: util.clone(params.Query),\n      StorageClass: StorageClass,\n      Body: params.Body,\n      calledBySdk: 'sliceUploadFile',\n      tracker: params.tracker\n    }, params);\n    var headers = util.clone(params.Headers);\n    delete headers['x-cos-mime-limit'];\n    _params.Headers = headers;\n    self.multipartInit(_params, function (err, data) {\n      if (!self._isRunningTask(TaskId)) return;\n      if (err) return ep.emit('error', err);\n      var UploadId = data.UploadId;\n      if (!UploadId) {\n        return callback(util.error(new Error('no such upload id')));\n      }\n      ep.emit('upload_id_available', {\n        UploadId: UploadId,\n        PartList: []\n      });\n    });\n  });\n\n  // 如果已存在 UploadId，找一个可以用的 UploadId\n  ep.on('has_and_check_upload_id', function (UploadIdList) {\n    // 串行地，找一个内容一致的 UploadId\n    UploadIdList = UploadIdList.reverse();\n    Async.eachLimit(UploadIdList, 1, function (UploadId, asyncCallback) {\n      if (!self._isRunningTask(TaskId)) return;\n      // 如果正在上传，跳过\n      if (session.using[UploadId]) {\n        asyncCallback(); // 检查下一个 UploadId\n        return;\n      }\n      // 判断 UploadId 是否可用\n      wholeMultipartListPart.call(self, {\n        Bucket: Bucket,\n        Region: Region,\n        Key: Key,\n        UploadId: UploadId,\n        tracker: params.tracker\n      }, function (err, PartListData) {\n        if (!self._isRunningTask(TaskId)) return;\n        if (err) {\n          session.removeUsing(UploadId);\n          return ep.emit('error', err);\n        }\n        var PartList = PartListData.PartList;\n        PartList.forEach(function (item) {\n          item.PartNumber *= 1;\n          item.Size *= 1;\n          item.ETag = item.ETag || '';\n        });\n        isAvailableUploadList(PartList, function (err, isAvailable) {\n          if (!self._isRunningTask(TaskId)) return;\n          if (err) return ep.emit('error', err);\n          if (isAvailable) {\n            asyncCallback({\n              UploadId: UploadId,\n              PartList: PartList\n            }); // 马上结束\n          } else {\n            asyncCallback(); // 检查下一个 UploadId\n          }\n        });\n      });\n    }, function (AvailableUploadData) {\n      if (!self._isRunningTask(TaskId)) return;\n      onHashProgress(null, true);\n      if (AvailableUploadData && AvailableUploadData.UploadId) {\n        ep.emit('upload_id_available', AvailableUploadData);\n      } else {\n        ep.emit('no_available_upload_id');\n      }\n    });\n  });\n\n  // 在本地缓存找可用的 UploadId\n  ep.on('seek_local_avail_upload_id', function (RemoteUploadIdList) {\n    // 在本地找可用的 UploadId\n    var uuid = session.getFileId(params.Body, params.ChunkSize, Bucket, Key);\n    var LocalUploadIdList = session.getUploadIdList.call(self, uuid);\n    if (!uuid || !LocalUploadIdList) {\n      ep.emit('has_and_check_upload_id', RemoteUploadIdList);\n      return;\n    }\n    var next = function next(index) {\n      // 如果本地找不到可用 UploadId，再一个个遍历校验远端\n      if (index >= LocalUploadIdList.length) {\n        ep.emit('has_and_check_upload_id', RemoteUploadIdList);\n        return;\n      }\n      var UploadId = LocalUploadIdList[index];\n      // 如果不在远端 UploadId 列表里，跳过并删除\n      if (!util.isInArray(RemoteUploadIdList, UploadId)) {\n        session.removeUploadId.call(self, UploadId);\n        next(index + 1);\n        return;\n      }\n      // 如果正在上传，跳过\n      if (session.using[UploadId]) {\n        next(index + 1);\n        return;\n      }\n      // 判断 UploadId 是否存在线上\n      wholeMultipartListPart.call(self, {\n        Bucket: Bucket,\n        Region: Region,\n        Key: Key,\n        UploadId: UploadId,\n        tracker: params.tracker\n      }, function (err, PartListData) {\n        if (!self._isRunningTask(TaskId)) return;\n        if (err) {\n          // 如果 UploadId 获取会出错，跳过并删除\n          session.removeUploadId.call(self, UploadId);\n          next(index + 1);\n        } else {\n          // 找到可用 UploadId\n          ep.emit('upload_id_available', {\n            UploadId: UploadId,\n            PartList: PartListData.PartList\n          });\n        }\n      });\n    };\n    next(0);\n  });\n\n  // 获取线上 UploadId 列表\n  ep.on('get_remote_upload_id_list', function () {\n    // 获取符合条件的 UploadId 列表，因为同一个文件可以有多个上传任务。\n    wholeMultipartList.call(self, {\n      Bucket: Bucket,\n      Region: Region,\n      Key: Key,\n      tracker: params.tracker\n    }, function (err, data) {\n      if (!self._isRunningTask(TaskId)) return;\n      if (err) return ep.emit('error', err);\n      // 整理远端 UploadId 列表\n      var RemoteUploadIdList = util.filter(data.UploadList, function (item) {\n        return item.Key === Key && (!StorageClass || item.StorageClass.toUpperCase() === StorageClass.toUpperCase());\n      }).reverse().map(function (item) {\n        return item.UploadId || item.UploadID;\n      });\n      if (RemoteUploadIdList.length) {\n        ep.emit('seek_local_avail_upload_id', RemoteUploadIdList);\n      } else {\n        // 远端没有 UploadId，清理缓存的 UploadId\n        var uuid = session.getFileId(params.Body, params.ChunkSize, Bucket, Key),\n          LocalUploadIdList;\n        if (uuid && (LocalUploadIdList = session.getUploadIdList.call(self, uuid))) {\n          util.each(LocalUploadIdList, function (UploadId) {\n            session.removeUploadId.call(self, UploadId);\n          });\n        }\n        ep.emit('no_available_upload_id');\n      }\n    });\n  });\n\n  // 开始找可用 UploadId\n  ep.emit('get_remote_upload_id_list');\n}\n\n// 获取符合条件的全部上传任务 (条件包括 Bucket, Region, Prefix)\nfunction wholeMultipartList(params, callback) {\n  var self = this;\n  var UploadList = [];\n  var sendParams = {\n    Bucket: params.Bucket,\n    Region: params.Region,\n    Prefix: params.Key,\n    calledBySdk: params.calledBySdk || 'sliceUploadFile',\n    tracker: params.tracker\n  };\n  var next = function next() {\n    self.multipartList(sendParams, function (err, data) {\n      if (err) return callback(err);\n      UploadList.push.apply(UploadList, data.Upload || []);\n      if (data.IsTruncated === 'true') {\n        // 列表不完整\n        sendParams.KeyMarker = data.NextKeyMarker;\n        sendParams.UploadIdMarker = data.NextUploadIdMarker;\n        next();\n      } else {\n        callback(null, {\n          UploadList: UploadList\n        });\n      }\n    });\n  };\n  next();\n}\n\n// 获取指定上传任务的分块列表\nfunction wholeMultipartListPart(params, callback) {\n  var self = this;\n  var PartList = [];\n  var sendParams = {\n    Bucket: params.Bucket,\n    Region: params.Region,\n    Key: params.Key,\n    UploadId: params.UploadId,\n    calledBySdk: 'sliceUploadFile',\n    tracker: params.tracker\n  };\n  var next = function next() {\n    self.multipartListPart(sendParams, function (err, data) {\n      if (err) return callback(err);\n      PartList.push.apply(PartList, data.Part || []);\n      if (data.IsTruncated === 'true') {\n        // 列表不完整\n        sendParams.PartNumberMarker = data.NextPartNumberMarker;\n        next();\n      } else {\n        callback(null, {\n          PartList: PartList\n        });\n      }\n    });\n  };\n  next();\n}\n\n// 上传文件分块，包括\n/*\n UploadId (上传任务编号)\n AsyncLimit (并发量)，\n SliceList (上传的分块数组)，\n FilePath (本地文件的位置)，\n SliceSize (文件分块大小)\n FileSize (文件大小)\n onProgress (上传成功之后的回调函数)\n */\nfunction uploadSliceList(params, cb) {\n  var self = this;\n  var TaskId = params.TaskId;\n  var Bucket = params.Bucket;\n  var Region = params.Region;\n  var Key = params.Key;\n  var UploadData = params.UploadData;\n  var FileSize = params.FileSize;\n  var SliceSize = params.SliceSize;\n  var ChunkParallel = Math.min(params.AsyncLimit || self.options.ChunkParallelLimit || 1, 256);\n  var Body = params.Body;\n  var SliceCount = Math.ceil(FileSize / SliceSize);\n  var FinishSize = 0;\n  var ServerSideEncryption = params.ServerSideEncryption;\n  var Headers = params.Headers;\n  var needUploadSlices = util.filter(UploadData.PartList, function (SliceItem) {\n    if (SliceItem['Uploaded']) {\n      FinishSize += SliceItem['PartNumber'] >= SliceCount ? FileSize % SliceSize || SliceSize : SliceSize;\n    }\n    return !SliceItem['Uploaded'];\n  });\n  var _onProgress2 = params.onProgress;\n  Async.eachLimit(needUploadSlices, ChunkParallel, function (SliceItem, asyncCallback) {\n    if (!self._isRunningTask(TaskId)) return;\n    var PartNumber = SliceItem['PartNumber'];\n    var currentSize = Math.min(FileSize, SliceItem['PartNumber'] * SliceSize) - (SliceItem['PartNumber'] - 1) * SliceSize;\n    var preAddSize = 0;\n    uploadSliceItem.call(self, {\n      TaskId: TaskId,\n      Bucket: Bucket,\n      Region: Region,\n      Key: Key,\n      SliceSize: SliceSize,\n      FileSize: FileSize,\n      PartNumber: PartNumber,\n      ServerSideEncryption: ServerSideEncryption,\n      Body: Body,\n      UploadData: UploadData,\n      Headers: Headers,\n      onProgress: function onProgress(data) {\n        FinishSize += data.loaded - preAddSize;\n        preAddSize = data.loaded;\n        _onProgress2({\n          loaded: FinishSize,\n          total: FileSize\n        });\n      },\n      tracker: params.tracker\n    }, function (err, data) {\n      if (!self._isRunningTask(TaskId)) return;\n      if (!err && !data.ETag) err = 'get ETag error, please add \"ETag\" to CORS ExposeHeader setting.( 获取ETag失败，请在CORS ExposeHeader设置中添加ETag，请参考文档：https://cloud.tencent.com/document/product/436/13318 )';\n      if (err) {\n        FinishSize -= preAddSize;\n      } else {\n        FinishSize += currentSize - preAddSize;\n        SliceItem.ETag = data.ETag;\n      }\n      _onProgress2({\n        loaded: FinishSize,\n        total: FileSize\n      });\n      asyncCallback(err || null, data);\n    });\n  }, function (err) {\n    if (!self._isRunningTask(TaskId)) return;\n    if (err) return cb(err);\n    cb(null, {\n      UploadId: UploadData.UploadId,\n      SliceList: UploadData.PartList\n    });\n  });\n}\n\n// 上传指定分片\nfunction uploadSliceItem(params, callback) {\n  var self = this;\n  var TaskId = params.TaskId;\n  var Bucket = params.Bucket;\n  var Region = params.Region;\n  var Key = params.Key;\n  var FileSize = params.FileSize;\n  var FileBody = params.Body;\n  var PartNumber = params.PartNumber * 1;\n  var SliceSize = params.SliceSize;\n  var ServerSideEncryption = params.ServerSideEncryption;\n  var UploadData = params.UploadData;\n  var Headers = params.Headers || {};\n  var ChunkRetryTimes = self.options.ChunkRetryTimes + 1;\n  var start = SliceSize * (PartNumber - 1);\n  var ContentLength = SliceSize;\n  var end = start + SliceSize;\n  if (end > FileSize) {\n    end = FileSize;\n    ContentLength = end - start;\n  }\n  var headersWhiteList = ['x-cos-traffic-limit', 'x-cos-mime-limit'];\n  var headers = {};\n  util.each(Headers, function (v, k) {\n    if (headersWhiteList.indexOf(k) > -1) {\n      headers[k] = v;\n    }\n  });\n  var PartItem = UploadData.PartList[PartNumber - 1];\n  Async.retry(ChunkRetryTimes, function (tryCallback) {\n    if (!self._isRunningTask(TaskId)) return;\n    util.fileSlice(FileBody, start, end, true, function (Body) {\n      self.multipartUpload({\n        TaskId: TaskId,\n        Bucket: Bucket,\n        Region: Region,\n        Key: Key,\n        ContentLength: ContentLength,\n        PartNumber: PartNumber,\n        UploadId: UploadData.UploadId,\n        ServerSideEncryption: ServerSideEncryption,\n        Body: Body,\n        Headers: headers,\n        onProgress: params.onProgress,\n        calledBySdk: 'sliceUploadFile',\n        tracker: params.tracker\n      }, function (err, data) {\n        if (!self._isRunningTask(TaskId)) return;\n        if (err) return tryCallback(err);\n        PartItem.Uploaded = true;\n        return tryCallback(null, data);\n      });\n    });\n  }, function (err, data) {\n    if (!self._isRunningTask(TaskId)) return;\n    return callback(err, data);\n  });\n}\n\n// 完成分块上传\nfunction uploadSliceComplete(params, callback) {\n  var Bucket = params.Bucket;\n  var Region = params.Region;\n  var Key = params.Key;\n  var UploadId = params.UploadId;\n  var SliceList = params.SliceList;\n  var self = this;\n  var ChunkRetryTimes = this.options.ChunkRetryTimes + 1;\n  var Headers = params.Headers;\n  var Parts = SliceList.map(function (item) {\n    return {\n      PartNumber: item.PartNumber,\n      ETag: item.ETag\n    };\n  });\n  // 完成上传的请求也做重试\n  Async.retry(ChunkRetryTimes, function (tryCallback) {\n    self.multipartComplete({\n      Bucket: Bucket,\n      Region: Region,\n      Key: Key,\n      UploadId: UploadId,\n      Parts: Parts,\n      Headers: Headers,\n      calledBySdk: 'sliceUploadFile',\n      tracker: params.tracker\n    }, tryCallback);\n  }, function (err, data) {\n    callback(err, data);\n  });\n}\n\n// 抛弃分块上传任务\n/*\n AsyncLimit (抛弃上传任务的并发量)，\n UploadId (上传任务的编号，当 Level 为 task 时候需要)\n Level (抛弃分块上传任务的级别，task : 抛弃指定的上传任务，file ： 抛弃指定的文件对应的上传任务，其他值 ：抛弃指定Bucket 的全部上传任务)\n */\nfunction abortUploadTask(params, callback) {\n  var Bucket = params.Bucket;\n  var Region = params.Region;\n  var Key = params.Key;\n  var UploadId = params.UploadId;\n  var Level = params.Level || 'task';\n  var AsyncLimit = params.AsyncLimit;\n  var self = this;\n  var ep = new EventProxy();\n  ep.on('error', function (errData) {\n    return callback(errData);\n  });\n\n  // 已经获取到需要抛弃的任务列表\n  ep.on('get_abort_array', function (AbortArray) {\n    abortUploadTaskArray.call(self, {\n      Bucket: Bucket,\n      Region: Region,\n      Key: Key,\n      Headers: params.Headers,\n      AsyncLimit: AsyncLimit,\n      AbortArray: AbortArray\n    }, callback);\n  });\n  if (Level === 'bucket') {\n    // Bucket 级别的任务抛弃，抛弃该 Bucket 下的全部上传任务\n    wholeMultipartList.call(self, {\n      Bucket: Bucket,\n      Region: Region,\n      calledBySdk: 'abortUploadTask'\n    }, function (err, data) {\n      if (err) return callback(err);\n      ep.emit('get_abort_array', data.UploadList || []);\n    });\n  } else if (Level === 'file') {\n    // 文件级别的任务抛弃，抛弃该文件的全部上传任务\n    if (!Key) return callback(util.error(new Error('abort_upload_task_no_key')));\n    wholeMultipartList.call(self, {\n      Bucket: Bucket,\n      Region: Region,\n      Key: Key,\n      calledBySdk: 'abortUploadTask'\n    }, function (err, data) {\n      if (err) return callback(err);\n      ep.emit('get_abort_array', data.UploadList || []);\n    });\n  } else if (Level === 'task') {\n    // 单个任务级别的任务抛弃，抛弃指定 UploadId 的上传任务\n    if (!UploadId) return callback(util.error(new Error('abort_upload_task_no_id')));\n    if (!Key) return callback(util.error(new Error('abort_upload_task_no_key')));\n    ep.emit('get_abort_array', [{\n      Key: Key,\n      UploadId: UploadId\n    }]);\n  } else {\n    return callback(util.error(new Error('abort_unknown_level')));\n  }\n}\n\n// 批量抛弃分块上传任务\nfunction abortUploadTaskArray(params, callback) {\n  var Bucket = params.Bucket;\n  var Region = params.Region;\n  var Key = params.Key;\n  var AbortArray = params.AbortArray;\n  var AsyncLimit = params.AsyncLimit || 1;\n  var self = this;\n  var index = 0;\n  var resultList = new Array(AbortArray.length);\n  Async.eachLimit(AbortArray, AsyncLimit, function (AbortItem, nextItem) {\n    var eachIndex = index;\n    if (Key && Key !== AbortItem.Key) {\n      resultList[eachIndex] = {\n        error: {\n          KeyNotMatch: true\n        }\n      };\n      nextItem(null);\n      return;\n    }\n    var UploadId = AbortItem.UploadId || AbortItem.UploadID;\n    self.multipartAbort({\n      Bucket: Bucket,\n      Region: Region,\n      Key: AbortItem.Key,\n      Headers: params.Headers,\n      UploadId: UploadId\n    }, function (err) {\n      var task = {\n        Bucket: Bucket,\n        Region: Region,\n        Key: AbortItem.Key,\n        UploadId: UploadId\n      };\n      resultList[eachIndex] = {\n        error: err,\n        task: task\n      };\n      nextItem(null);\n    });\n    index++;\n  }, function (err) {\n    if (err) return callback(err);\n    var successList = [];\n    var errorList = [];\n    for (var i = 0, len = resultList.length; i < len; i++) {\n      var item = resultList[i];\n      if (item['task']) {\n        if (item['error']) {\n          errorList.push(item['task']);\n        } else {\n          successList.push(item['task']);\n        }\n      }\n    }\n    return callback(null, {\n      successList: successList,\n      errorList: errorList\n    });\n  });\n}\n\n// 高级上传\nfunction uploadFile(params, callback) {\n  var self = this;\n\n  // 判断多大的文件使用分片上传\n  var SliceSize = params.SliceSize === undefined ? self.options.SliceSize : params.SliceSize;\n  var taskList = [];\n  var Body = params.Body;\n  var FileSize = Body.size || Body.length || 0;\n  var fileInfo = {\n    TaskId: ''\n  };\n\n  // 上传链路\n  if (self.options.EnableReporter) {\n    var accelerate = self.options.UseAccelerate || typeof self.options.Domain === 'string' && self.options.Domain.includes('accelerate.');\n    var realApi = FileSize > SliceSize ? 'sliceUploadFile' : 'putObject';\n    params.tracker = new Tracker({\n      Beacon: self.options.BeaconReporter,\n      clsReporter: self.options.ClsReporter,\n      bucket: params.Bucket,\n      region: params.Region,\n      apiName: 'uploadFile',\n      realApi: realApi,\n      fileKey: params.Key,\n      fileSize: FileSize,\n      accelerate: accelerate,\n      deepTracker: self.options.DeepTracker,\n      customId: self.options.CustomId,\n      delay: self.options.TrackerDelay\n    });\n  }\n\n  // 整理 option，用于返回给回调\n  util.each(params, function (v, k) {\n    if (_typeof(v) !== 'object' && typeof v !== 'function') {\n      fileInfo[k] = v;\n    }\n  });\n\n  // 处理文件 TaskReady\n  var _onTaskReady = params.onTaskReady;\n  var onTaskReady = function onTaskReady(tid) {\n    fileInfo.TaskId = tid;\n    _onTaskReady && _onTaskReady(tid);\n  };\n  params.onTaskReady = onTaskReady;\n\n  // 添加上传任务,超过阈值使用分块上传，小于等于则简单上传\n  var api = FileSize > SliceSize ? 'sliceUploadFile' : 'putObject';\n\n  // 处理文件完成\n  var _onFileFinish = params.onFileFinish;\n  var onFileFinish = function onFileFinish(err, data) {\n    // 格式化上报参数并上报\n    params.tracker && params.tracker.report(err, data);\n    _onFileFinish && _onFileFinish(err, data, fileInfo);\n    callback && callback(err, data);\n  };\n  taskList.push({\n    api: api,\n    params: params,\n    callback: onFileFinish\n  });\n  self._addTasks(taskList);\n}\n\n// 批量上传文件\nfunction uploadFiles(params, callback) {\n  var self = this;\n\n  // 判断多大的文件使用分片上传\n  var SliceSize = params.SliceSize === undefined ? self.options.SliceSize : params.SliceSize;\n\n  // 汇总返回进度\n  var TotalSize = 0;\n  var TotalFinish = 0;\n  var onTotalProgress = util.throttleOnProgress.call(self, TotalFinish, params.onProgress);\n\n  // 汇总返回回调\n  var unFinishCount = params.files.length;\n  var _onTotalFileFinish = params.onFileFinish;\n  var resultList = Array(unFinishCount);\n  var onTotalFileFinish = function onTotalFileFinish(err, data, options) {\n    onTotalProgress(null, true);\n    _onTotalFileFinish && _onTotalFileFinish(err, data, options);\n    resultList[options.Index] = {\n      options: options,\n      error: err,\n      data: data\n    };\n    if (--unFinishCount <= 0 && callback) {\n      callback(null, {\n        files: resultList\n      });\n    }\n  };\n\n  // 开始处理每个文件\n  var taskList = [];\n  util.each(params.files, function (fileParams, index) {\n    (function () {\n      var Body = fileParams.Body;\n      var FileSize = Body.size || Body.length || 0;\n      var fileInfo = {\n        Index: index,\n        TaskId: ''\n      };\n\n      // 如果 批量上传的 Key 是 / 开头，强制去掉第一个 /\n      if (!self.options.UseRawKey && fileParams.Key && fileParams.Key.substr(0, 1) === '/') {\n        fileParams.Key = fileParams.Key.substr(1);\n      }\n\n      // 更新文件总大小\n      TotalSize += FileSize;\n\n      // 单个文件上传链路\n      if (self.options.EnableReporter) {\n        var accelerate = self.options.UseAccelerate || typeof self.options.Domain === 'string' && self.options.Domain.includes('accelerate.');\n        var realApi = FileSize > SliceSize ? 'sliceUploadFile' : 'putObject';\n        fileParams.tracker = new Tracker({\n          Beacon: self.options.BeaconReporter,\n          clsReporter: self.options.ClsReporter,\n          bucket: fileParams.Bucket,\n          region: fileParams.Region,\n          apiName: 'uploadFiles',\n          realApi: realApi,\n          fileKey: fileParams.Key,\n          fileSize: FileSize,\n          accelerate: accelerate,\n          deepTracker: self.options.DeepTracker,\n          customId: self.options.CustomId,\n          delay: self.options.TrackerDelay\n        });\n      }\n\n      // 整理 option，用于返回给回调\n      util.each(fileParams, function (v, k) {\n        if (_typeof(v) !== 'object' && typeof v !== 'function') {\n          fileInfo[k] = v;\n        }\n      });\n\n      // 处理单个文件 TaskReady\n      var _onTaskReady = fileParams.onTaskReady;\n      var onTaskReady = function onTaskReady(tid) {\n        fileInfo.TaskId = tid;\n        _onTaskReady && _onTaskReady(tid);\n      };\n      fileParams.onTaskReady = onTaskReady;\n\n      // 处理单个文件进度\n      var PreAddSize = 0;\n      var _onProgress = fileParams.onProgress;\n      var onProgress = function onProgress(info) {\n        TotalFinish = TotalFinish - PreAddSize + info.loaded;\n        PreAddSize = info.loaded;\n        _onProgress && _onProgress(info);\n        onTotalProgress({\n          loaded: TotalFinish,\n          total: TotalSize\n        });\n      };\n      fileParams.onProgress = onProgress;\n\n      // 添加上传任务\n      var api = FileSize > SliceSize ? 'sliceUploadFile' : 'putObject';\n\n      // 处理单个文件完成\n      var _onFileFinish = fileParams.onFileFinish;\n      var onFileFinish = function onFileFinish(err, data) {\n        // 格式化上报参数并上报\n        fileParams.tracker && fileParams.tracker.report(err, data);\n        _onFileFinish && _onFileFinish(err, data);\n        onTotalFileFinish && onTotalFileFinish(err, data, fileInfo);\n      };\n      taskList.push({\n        api: api,\n        params: fileParams,\n        callback: onFileFinish\n      });\n    })();\n  });\n  self._addTasks(taskList);\n}\n\n// 分片复制文件\nfunction sliceCopyFile(params, callback) {\n  var ep = new EventProxy();\n  var self = this;\n  var Bucket = params.Bucket;\n  var Region = params.Region;\n  var Key = params.Key;\n  var CopySource = params.CopySource;\n  var m = util.getSourceParams.call(this, CopySource);\n  if (!m) {\n    callback(util.error(new Error('CopySource format error')));\n    return;\n  }\n  var SourceBucket = m.Bucket;\n  var SourceRegion = m.Region;\n  var SourceKey = decodeURIComponent(m.Key);\n  var CopySliceSize = params.CopySliceSize === undefined ? self.options.CopySliceSize : params.CopySliceSize;\n  CopySliceSize = Math.max(0, CopySliceSize);\n  var ChunkSize = params.CopyChunkSize || this.options.CopyChunkSize;\n  var ChunkParallel = this.options.CopyChunkParallelLimit;\n  var ChunkRetryTimes = this.options.ChunkRetryTimes + 1;\n  var ChunkCount = 0;\n  var FinishSize = 0;\n  var FileSize;\n  var onProgress;\n  var SourceResHeaders = {};\n  var SourceHeaders = {};\n  var TargetHeader = {};\n\n  // 分片复制完成，开始 multipartComplete 操作\n  ep.on('copy_slice_complete', function (UploadData) {\n    var metaHeaders = {};\n    util.each(params.Headers, function (val, k) {\n      if (k.toLowerCase().indexOf('x-cos-meta-') === 0) metaHeaders[k] = val;\n    });\n    var Parts = util.map(UploadData.PartList, function (item) {\n      return {\n        PartNumber: item.PartNumber,\n        ETag: item.ETag\n      };\n    });\n    // 完成上传的请求也做重试\n    Async.retry(ChunkRetryTimes, function (tryCallback) {\n      self.multipartComplete({\n        Bucket: Bucket,\n        Region: Region,\n        Key: Key,\n        UploadId: UploadData.UploadId,\n        Parts: Parts,\n        tracker: params.tracker,\n        calledBySdk: 'sliceCopyFile'\n      }, tryCallback);\n    }, function (err, data) {\n      session.removeUsing(UploadData.UploadId); // 标记 UploadId 没被使用了，因为复制没提供重试，所以只要出错，就是 UploadId 停用了。\n      if (err) {\n        onProgress(null, true);\n        return callback(err);\n      }\n      session.removeUploadId(UploadData.UploadId);\n      onProgress({\n        loaded: FileSize,\n        total: FileSize\n      }, true);\n      callback(null, data);\n    });\n  });\n  ep.on('get_copy_data_finish', function (UploadData) {\n    // 处理 UploadId 缓存\n    var uuid = session.getCopyFileId(CopySource, SourceResHeaders, ChunkSize, Bucket, Key);\n    uuid && session.saveUploadId(uuid, UploadData.UploadId, self.options.UploadIdCacheLimit); // 缓存 UploadId\n    session.setUsing(UploadData.UploadId); // 标记 UploadId 为正在使用\n\n    var needCopySlices = util.filter(UploadData.PartList, function (SliceItem) {\n      if (SliceItem['Uploaded']) {\n        FinishSize += SliceItem['PartNumber'] >= ChunkCount ? FileSize % ChunkSize || ChunkSize : ChunkSize;\n      }\n      return !SliceItem['Uploaded'];\n    });\n    Async.eachLimit(needCopySlices, ChunkParallel, function (SliceItem, asyncCallback) {\n      var PartNumber = SliceItem.PartNumber;\n      var CopySourceRange = SliceItem.CopySourceRange;\n      var currentSize = SliceItem.end - SliceItem.start;\n      Async.retry(ChunkRetryTimes, function (tryCallback) {\n        copySliceItem.call(self, {\n          Bucket: Bucket,\n          Region: Region,\n          Key: Key,\n          CopySource: CopySource,\n          UploadId: UploadData.UploadId,\n          PartNumber: PartNumber,\n          CopySourceRange: CopySourceRange,\n          tracker: params.tracker,\n          calledBySdk: 'sliceCopyFile'\n        }, tryCallback);\n      }, function (err, data) {\n        if (err) return asyncCallback(err);\n        FinishSize += currentSize;\n        onProgress({\n          loaded: FinishSize,\n          total: FileSize\n        });\n        SliceItem.ETag = data.ETag;\n        asyncCallback(err || null, data);\n      });\n    }, function (err) {\n      if (err) {\n        session.removeUsing(UploadData.UploadId); // 标记 UploadId 没被使用了，因为复制没提供重试，所以只要出错，就是 UploadId 停用了。\n        onProgress(null, true);\n        return callback(err);\n      }\n      ep.emit('copy_slice_complete', UploadData);\n    });\n  });\n  ep.on('get_chunk_size_finish', function () {\n    var createNewUploadId = function createNewUploadId() {\n      self.multipartInit({\n        Bucket: Bucket,\n        Region: Region,\n        Key: Key,\n        Headers: TargetHeader,\n        tracker: params.tracker,\n        calledBySdk: 'sliceCopyFile'\n      }, function (err, data) {\n        if (err) return callback(err);\n        params.UploadId = data.UploadId;\n        ep.emit('get_copy_data_finish', {\n          UploadId: params.UploadId,\n          PartList: params.PartList\n        });\n      });\n    };\n\n    // 在本地找可用的 UploadId\n    var uuid = session.getCopyFileId(CopySource, SourceResHeaders, ChunkSize, Bucket, Key);\n    var LocalUploadIdList = session.getUploadIdList(uuid);\n    if (!uuid || !LocalUploadIdList) return createNewUploadId();\n    var next = function next(index) {\n      // 如果本地找不到可用 UploadId，再一个个遍历校验远端\n      if (index >= LocalUploadIdList.length) return createNewUploadId();\n      var UploadId = LocalUploadIdList[index];\n      // 如果正在被使用，跳过\n      if (session.using[UploadId]) return next(index + 1);\n      // 判断 UploadId 是否存在线上\n      wholeMultipartListPart.call(self, {\n        Bucket: Bucket,\n        Region: Region,\n        Key: Key,\n        UploadId: UploadId,\n        tracker: params.tracker,\n        calledBySdk: 'sliceCopyFile'\n      }, function (err, PartListData) {\n        if (err) {\n          // 如果 UploadId 获取会出错，跳过并删除\n          session.removeUploadId(UploadId);\n          next(index + 1);\n        } else {\n          // 如果异步回来 UploadId 已经被用了，也跳过\n          if (session.using[UploadId]) return next(index + 1);\n          // 找到可用 UploadId\n          var finishETagMap = {};\n          var offset = 0;\n          util.each(PartListData.PartList, function (PartItem) {\n            var size = parseInt(PartItem.Size);\n            var end = offset + size - 1;\n            finishETagMap[PartItem.PartNumber + '|' + offset + '|' + end] = PartItem.ETag;\n            offset += size;\n          });\n          util.each(params.PartList, function (PartItem) {\n            var ETag = finishETagMap[PartItem.PartNumber + '|' + PartItem.start + '|' + PartItem.end];\n            if (ETag) {\n              PartItem.ETag = ETag;\n              PartItem.Uploaded = true;\n            }\n          });\n          ep.emit('get_copy_data_finish', {\n            UploadId: UploadId,\n            PartList: params.PartList\n          });\n        }\n      });\n    };\n    next(0);\n  });\n  ep.on('get_file_size_finish', function () {\n    // 控制分片大小\n    (function () {\n      var SIZE = [1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 1024 * 2, 1024 * 4, 1024 * 5];\n      var AutoChunkSize = 1024 * 1024;\n      for (var i = 0; i < SIZE.length; i++) {\n        AutoChunkSize = SIZE[i] * 1024 * 1024;\n        if (FileSize / AutoChunkSize <= self.options.MaxPartNumber) break;\n      }\n      params.ChunkSize = ChunkSize = Math.max(ChunkSize, AutoChunkSize);\n      ChunkCount = Math.ceil(FileSize / ChunkSize);\n      var list = [];\n      for (var partNumber = 1; partNumber <= ChunkCount; partNumber++) {\n        var start = (partNumber - 1) * ChunkSize;\n        var end = partNumber * ChunkSize < FileSize ? partNumber * ChunkSize - 1 : FileSize - 1;\n        var item = {\n          PartNumber: partNumber,\n          start: start,\n          end: end,\n          CopySourceRange: 'bytes=' + start + '-' + end\n        };\n        list.push(item);\n      }\n      params.PartList = list;\n    })();\n    if (params.Headers['x-cos-metadata-directive'] === 'Replaced') {\n      TargetHeader = params.Headers;\n    } else {\n      TargetHeader = SourceHeaders;\n    }\n    TargetHeader['x-cos-storage-class'] = params.Headers['x-cos-storage-class'] || SourceHeaders['x-cos-storage-class'];\n    TargetHeader = util.clearKey(TargetHeader);\n    /**\n     * 对于归档存储的对象，如果未恢复副本，则不允许 Copy\n     */\n    if (SourceHeaders['x-cos-storage-class'] === 'ARCHIVE' || SourceHeaders['x-cos-storage-class'] === 'DEEP_ARCHIVE') {\n      var restoreHeader = SourceHeaders['x-cos-restore'];\n      if (!restoreHeader || restoreHeader === 'ongoing-request=\"true\"') {\n        callback(util.error(new Error('Unrestored archive object is not allowed to be copied')));\n        return;\n      }\n    }\n    /**\n     * 去除一些无用的头部，规避 multipartInit 出错\n     * 这些头部通常是在 putObjectCopy 时才使用\n     */\n    delete TargetHeader['x-cos-copy-source'];\n    delete TargetHeader['x-cos-metadata-directive'];\n    delete TargetHeader['x-cos-copy-source-If-Modified-Since'];\n    delete TargetHeader['x-cos-copy-source-If-Unmodified-Since'];\n    delete TargetHeader['x-cos-copy-source-If-Match'];\n    delete TargetHeader['x-cos-copy-source-If-None-Match'];\n    ep.emit('get_chunk_size_finish');\n  });\n\n  // 获取远端复制源文件的大小\n  self.headObject({\n    Bucket: SourceBucket,\n    Region: SourceRegion,\n    Key: SourceKey,\n    tracker: params.tracker,\n    calledBySdk: 'sliceCopyFile'\n  }, function (err, data) {\n    if (err) {\n      if (err.statusCode && err.statusCode === 404) {\n        callback(util.error(err, {\n          ErrorStatus: SourceKey + ' Not Exist'\n        }));\n      } else {\n        callback(err);\n      }\n      return;\n    }\n    FileSize = params.FileSize = data.headers['content-length'];\n    if (FileSize === undefined || !FileSize) {\n      callback(util.error(new Error('get Content-Length error, please add \"Content-Length\" to CORS ExposeHeader setting.（ 获取Content-Length失败，请在CORS ExposeHeader设置中添加Content-Length，请参考文档：https://cloud.tencent.com/document/product/436/13318 ）')));\n      return;\n    }\n    params.tracker && params.tracker.setParams({\n      httpSize: FileSize\n    });\n    onProgress = util.throttleOnProgress.call(self, FileSize, params.onProgress);\n\n    // 开始上传\n    if (FileSize <= CopySliceSize) {\n      if (!params.Headers['x-cos-metadata-directive']) {\n        params.Headers['x-cos-metadata-directive'] = 'Copy';\n      }\n      self.putObjectCopy(Object.assign(params, {\n        calledBySdk: 'sliceCopyFile'\n      }), function (err, data) {\n        if (err) {\n          onProgress(null, true);\n          return callback(err);\n        }\n        onProgress({\n          loaded: FileSize,\n          total: FileSize\n        }, true);\n        callback(err, data);\n      });\n    } else {\n      var resHeaders = data.headers;\n      SourceResHeaders = resHeaders;\n      SourceHeaders = {\n        'Cache-Control': resHeaders['cache-control'],\n        'Content-Disposition': resHeaders['content-disposition'],\n        'Content-Encoding': resHeaders['content-encoding'],\n        'Content-Type': resHeaders['content-type'],\n        Expires: resHeaders['expires'],\n        'x-cos-storage-class': resHeaders['x-cos-storage-class']\n      };\n      util.each(resHeaders, function (v, k) {\n        var metaPrefix = 'x-cos-meta-';\n        if (k.indexOf(metaPrefix) === 0 && k.length > metaPrefix.length) {\n          SourceHeaders[k] = v;\n        }\n      });\n      ep.emit('get_file_size_finish');\n    }\n  });\n}\n\n// 复制指定分片\nfunction copySliceItem(params, callback) {\n  var TaskId = params.TaskId;\n  var Bucket = params.Bucket;\n  var Region = params.Region;\n  var Key = params.Key;\n  var CopySource = params.CopySource;\n  var UploadId = params.UploadId;\n  var PartNumber = params.PartNumber * 1;\n  var CopySourceRange = params.CopySourceRange;\n  var ChunkRetryTimes = this.options.ChunkRetryTimes + 1;\n  var self = this;\n  Async.retry(ChunkRetryTimes, function (tryCallback) {\n    self.uploadPartCopy({\n      TaskId: TaskId,\n      Bucket: Bucket,\n      Region: Region,\n      Key: Key,\n      CopySource: CopySource,\n      UploadId: UploadId,\n      PartNumber: PartNumber,\n      CopySourceRange: CopySourceRange,\n      tracker: params.tracker,\n      calledBySdk: params.calledBySdk\n    }, function (err, data) {\n      tryCallback(err || null, data);\n    });\n  }, function (err, data) {\n    return callback(err, data);\n  });\n}\nvar API_MAP = {\n  sliceUploadFile: sliceUploadFile,\n  abortUploadTask: abortUploadTask,\n  uploadFile: uploadFile,\n  uploadFiles: uploadFiles,\n  sliceCopyFile: sliceCopyFile\n};\nmodule.exports.init = function (COS, task) {\n  task.transferToTaskMethod(API_MAP, 'sliceUploadFile');\n  util.each(API_MAP, function (fn, apiName) {\n    COS.prototype[apiName] = util.apiWrapper(apiName, fn);\n  });\n};\n\n/***/ }),\n\n/***/ \"./src/async.js\":\n/*!**********************!*\\\n  !*** ./src/async.js ***!\n  \\**********************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nvar eachLimit = function eachLimit(arr, limit, iterator, callback) {\n  callback = callback || function () {};\n  if (!arr.length || limit <= 0) {\n    return callback();\n  }\n  var completed = 0;\n  var started = 0;\n  var running = 0;\n  (function replenish() {\n    if (completed >= arr.length) {\n      return callback();\n    }\n    while (running < limit && started < arr.length) {\n      started += 1;\n      running += 1;\n      iterator(arr[started - 1], function (err) {\n        if (err) {\n          callback(err);\n          callback = function callback() {};\n        } else {\n          completed += 1;\n          running -= 1;\n          if (completed >= arr.length) {\n            callback();\n          } else {\n            replenish();\n          }\n        }\n      });\n    }\n  })();\n};\nvar retry = function retry(times, iterator, callback) {\n  var next = function next(index) {\n    iterator(function (err, data) {\n      if (err && index < times) {\n        next(index + 1);\n      } else {\n        callback(err, data);\n      }\n    });\n  };\n  if (times < 1) {\n    callback();\n  } else {\n    next(1);\n  }\n};\nvar async = {\n  eachLimit: eachLimit,\n  retry: retry\n};\nmodule.exports = async;\n\n/***/ }),\n\n/***/ \"./src/base.js\":\n/*!*********************!*\\\n  !*** ./src/base.js ***!\n  \\*********************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ \"./node_modules/@babel/runtime/helpers/typeof.js\");\nvar REQUEST = __webpack_require__(/*! ../lib/request */ \"./lib/request.js\");\nvar util = __webpack_require__(/*! ./util */ \"./src/util.js\");\n\n// Bucket 相关\n\n/**\n * 获取用户的 bucket 列表\n * @param  {Object}  params         回调函数，必须，下面为参数列表\n * 无特殊参数\n * @param  {Function}  callback     回调函数，必须\n */\nfunction getService(params, callback) {\n  var protocol = this.options.Protocol || (util.isBrowser && (typeof location === \"undefined\" ? \"undefined\" : _typeof(location)) === 'object' && location.protocol === 'http:' ? 'http:' : 'https:');\n  var domain = this.options.ServiceDomain;\n  var appId = params.AppId || this.options.appId;\n  var region = params.Region;\n  if (domain) {\n    domain = domain.replace(/\\{\\{AppId\\}\\}/gi, appId || '').replace(/\\{\\{Region\\}\\}/gi, region || '').replace(/\\{\\{.*?\\}\\}/gi, '');\n    if (!/^[a-zA-Z]+:\\/\\//.test(domain)) {\n      domain = protocol + '//' + domain;\n    }\n    if (domain.slice(-1) === '/') {\n      domain = domain.slice(0, -1);\n    }\n  } else if (region) {\n    domain = protocol + '//cos.' + region + '.myqcloud.com';\n  } else {\n    domain = protocol + '//service.cos.myqcloud.com';\n  }\n  var SignHost = '';\n  var standardHost = region ? 'cos.' + region + '.myqcloud.com' : 'service.cos.myqcloud.com';\n  var urlHost = domain.replace(/^https?:\\/\\/([^/]+)(\\/.*)?$/, '$1');\n  if (standardHost === urlHost) SignHost = standardHost;\n  submitRequest.call(this, {\n    Action: 'name/cos:GetService',\n    url: domain,\n    method: 'GET',\n    headers: params.Headers,\n    SignHost: SignHost,\n    tracker: params.tracker\n  }, function (err, data) {\n    if (err) return callback(err);\n    var buckets = data && data.ListAllMyBucketsResult && data.ListAllMyBucketsResult.Buckets && data.ListAllMyBucketsResult.Buckets.Bucket || [];\n    buckets = util.isArray(buckets) ? buckets : [buckets];\n    var owner = data && data.ListAllMyBucketsResult && data.ListAllMyBucketsResult.Owner || {};\n    callback(null, {\n      Buckets: buckets,\n      Owner: owner,\n      statusCode: data.statusCode,\n      headers: data.headers\n    });\n  });\n}\n\n/**\n * 创建 Bucket，并初始化访问权限\n * @param  {Object}  params                         参数对象，必须\n *     @param  {String}  params.Bucket              Bucket名称，必须\n *     @param  {String}  params.Region              地域名称，必须\n *     @param  {String}  params.ACL                 用户自定义文件权限，可以设置：private，public-read；默认值：private，非必须\n *     @param  {String}  params.GrantRead           赋予被授权者读的权限，格式x-cos-grant-read: uin=\" \",uin=\" \"，非必须\n *     @param  {String}  params.GrantWrite          赋予被授权者写的权限，格式x-cos-grant-write: uin=\" \",uin=\" \"，非必须\n *     @param  {String}  params.GrantFullControl    赋予被授权者读写权限，格式x-cos-grant-full-control: uin=\" \",uin=\" \"，非必须\n * @param  {Function}  callback                     回调函数，必须\n * @return  {Object}  err                           请求失败的错误，如果请求成功，则为空。https://cloud.tencent.com/document/product/436/7730\n * @return  {Object}  data                          返回的数据\n *     @return  {String}  data.Location             操作地址\n */\nfunction putBucket(params, callback) {\n  var self = this;\n  var xml = '';\n  if (params['BucketAZConfig']) {\n    var CreateBucketConfiguration = {\n      BucketAZConfig: params.BucketAZConfig\n    };\n    xml = util.json2xml({\n      CreateBucketConfiguration: CreateBucketConfiguration\n    });\n  }\n  submitRequest.call(this, {\n    Action: 'name/cos:PutBucket',\n    method: 'PUT',\n    Bucket: params.Bucket,\n    Region: params.Region,\n    headers: params.Headers,\n    body: xml,\n    tracker: params.tracker\n  }, function (err, data) {\n    if (err) return callback(err);\n    var url = getUrl({\n      protocol: self.options.Protocol,\n      domain: self.options.Domain,\n      bucket: params.Bucket,\n      region: params.Region,\n      isLocation: true\n    });\n    callback(null, {\n      Location: url,\n      statusCode: data.statusCode,\n      headers: data.headers\n    });\n  });\n}\n\n/**\n * 查看是否存在该Bucket，是否有权限访问\n * @param  {Object}  params                     参数对象，必须\n *     @param  {String}  params.Bucket          Bucket名称，必须\n *     @param  {String}  params.Region          地域名称，必须\n * @param  {Function}  callback                 回调函数，必须\n * @return  {Object}  err                       请求失败的错误，如果请求成功，则为空。https://cloud.tencent.com/document/product/436/7730\n * @return  {Object}  data                      返回的数据\n *     @return  {Boolean}  data.BucketExist     Bucket是否存在\n *     @return  {Boolean}  data.BucketAuth      是否有 Bucket 的访问权限\n */\nfunction headBucket(params, callback) {\n  submitRequest.call(this, {\n    Action: 'name/cos:HeadBucket',\n    Bucket: params.Bucket,\n    Region: params.Region,\n    headers: params.Headers,\n    method: 'HEAD',\n    tracker: params.tracker\n  }, callback);\n}\n\n/**\n * 获取 Bucket 下的 object 列表\n * @param  {Object}  params                         参数对象，必须\n *     @param  {String}  params.Bucket              Bucket名称，必须\n *     @param  {String}  params.Region              地域名称，必须\n *     @param  {String}  params.Prefix              前缀匹配，用来规定返回的文件前缀地址，非必须\n *     @param  {String}  params.Delimiter           定界符为一个符号，如果有Prefix，则将Prefix到delimiter之间的相同路径归为一类，非必须\n *     @param  {String}  params.Marker              默认以UTF-8二进制顺序列出条目，所有列出条目从marker开始，非必须\n *     @param  {String}  params.MaxKeys             单次返回最大的条目数量，默认1000，非必须\n *     @param  {String}  params.EncodingType        规定返回值的编码方式，非必须\n * @param  {Function}  callback                     回调函数，必须\n * @return  {Object}  err                           请求失败的错误，如果请求成功，则为空。https://cloud.tencent.com/document/product/436/7730\n * @return  {Object}  data                          返回的数据\n *     @return  {Object}  data.ListBucketResult     返回的 object 列表信息\n */\nfunction getBucket(params, callback) {\n  var reqParams = {};\n  reqParams['prefix'] = params['Prefix'] || '';\n  reqParams['delimiter'] = params['Delimiter'];\n  reqParams['marker'] = params['Marker'];\n  reqParams['max-keys'] = params['MaxKeys'];\n  reqParams['encoding-type'] = params['EncodingType'];\n  submitRequest.call(this, {\n    Action: 'name/cos:GetBucket',\n    ResourceKey: reqParams['prefix'],\n    method: 'GET',\n    Bucket: params.Bucket,\n    Region: params.Region,\n    headers: params.Headers,\n    qs: reqParams,\n    tracker: params.tracker\n  }, function (err, data) {\n    if (err) return callback(err);\n    var ListBucketResult = data.ListBucketResult || {};\n    var Contents = ListBucketResult.Contents || [];\n    var CommonPrefixes = ListBucketResult.CommonPrefixes || [];\n    Contents = util.isArray(Contents) ? Contents : [Contents];\n    CommonPrefixes = util.isArray(CommonPrefixes) ? CommonPrefixes : [CommonPrefixes];\n    var result = util.clone(ListBucketResult);\n    util.extend(result, {\n      Contents: Contents,\n      CommonPrefixes: CommonPrefixes,\n      statusCode: data.statusCode,\n      headers: data.headers\n    });\n    callback(null, result);\n  });\n}\n\n/**\n * 删除 Bucket\n * @param  {Object}  params                 参数对象，必须\n *     @param  {String}  params.Bucket      Bucket名称，必须\n *     @param  {String}  params.Region      地域名称，必须\n * @param  {Function}  callback             回调函数，必须\n * @return  {Object}  err                   请求失败的错误，如果请求成功，则为空。https://cloud.tencent.com/document/product/436/7730\n * @return  {Object}  data                  返回的数据\n *     @return  {String}  data.Location     操作地址\n */\nfunction deleteBucket(params, callback) {\n  submitRequest.call(this, {\n    Action: 'name/cos:DeleteBucket',\n    Bucket: params.Bucket,\n    Region: params.Region,\n    headers: params.Headers,\n    method: 'DELETE',\n    tracker: params.tracker\n  }, function (err, data) {\n    if (err && err.statusCode === 204) {\n      return callback(null, {\n        statusCode: err.statusCode\n      });\n    } else if (err) {\n      return callback(err);\n    }\n    callback(null, {\n      statusCode: data.statusCode,\n      headers: data.headers\n    });\n  });\n}\n\n/**\n * 设置 Bucket 的 权限列表\n * @param  {Object}  params                         参数对象，必须\n *     @param  {String}  params.Bucket              Bucket名称，必须\n *     @param  {String}  params.Region              地域名称，必须\n *     @param  {String}  params.ACL                 用户自定义文件权限，可以设置：private，public-read；默认值：private，非必须\n *     @param  {String}  params.GrantRead           赋予被授权者读的权限，格式x-cos-grant-read: uin=\" \",uin=\" \"，非必须\n *     @param  {String}  params.GrantWrite          赋予被授权者写的权限，格式x-cos-grant-write: uin=\" \",uin=\" \"，非必须\n *     @param  {String}  params.GrantFullControl    赋予被授权者读写权限，格式x-cos-grant-full-control: uin=\" \",uin=\" \"，非必须\n * @param  {Function}  callback                     回调函数，必须\n * @return  {Object}  err                           请求失败的错误，如果请求成功，则为空。https://cloud.tencent.com/document/product/436/7730\n * @return  {Object}  data                          返回的数据\n */\nfunction putBucketAcl(params, callback) {\n  var headers = params.Headers;\n  var xml = '';\n  if (params['AccessControlPolicy']) {\n    var AccessControlPolicy = util.clone(params['AccessControlPolicy'] || {});\n    var Grants = AccessControlPolicy.Grants || AccessControlPolicy.Grant;\n    Grants = util.isArray(Grants) ? Grants : [Grants];\n    delete AccessControlPolicy.Grant;\n    delete AccessControlPolicy.Grants;\n    AccessControlPolicy.AccessControlList = {\n      Grant: Grants\n    };\n    xml = util.json2xml({\n      AccessControlPolicy: AccessControlPolicy\n    });\n    headers['Content-Type'] = 'application/xml';\n    headers['Content-MD5'] = util.b64(util.md5(xml));\n  }\n\n  // Grant Header 去重\n  util.each(headers, function (val, key) {\n    if (key.indexOf('x-cos-grant-') === 0) {\n      headers[key] = uniqGrant(headers[key]);\n    }\n  });\n  submitRequest.call(this, {\n    Action: 'name/cos:PutBucketACL',\n    method: 'PUT',\n    Bucket: params.Bucket,\n    Region: params.Region,\n    headers: headers,\n    action: 'acl',\n    body: xml,\n    tracker: params.tracker\n  }, function (err, data) {\n    if (err) return callback(err);\n    callback(null, {\n      statusCode: data.statusCode,\n      headers: data.headers\n    });\n  });\n}\n\n/**\n * 获取 Bucket 的 权限列表\n * @param  {Object}  params                         参数对象，必须\n *     @param  {String}  params.Bucket              Bucket名称，必须\n *     @param  {String}  params.Region              地域名称，必须\n * @param  {Function}  callback                     回调函数，必须\n * @return  {Object}  err                           请求失败的错误，如果请求成功，则为空。https://cloud.tencent.com/document/product/436/7730\n * @return  {Object}  data                          返回的数据\n *     @return  {Object}  data.AccessControlPolicy  访问权限信息\n */\nfunction getBucketAcl(params, callback) {\n  submitRequest.call(this, {\n    Action: 'name/cos:GetBucketACL',\n    method: 'GET',\n    Bucket: params.Bucket,\n    Region: params.Region,\n    headers: params.Headers,\n    action: 'acl',\n    tracker: params.tracker\n  }, function (err, data) {\n    if (err) return callback(err);\n    var AccessControlPolicy = data.AccessControlPolicy || {};\n    var Owner = AccessControlPolicy.Owner || {};\n    var Grant = AccessControlPolicy.AccessControlList.Grant || [];\n    Grant = util.isArray(Grant) ? Grant : [Grant];\n    var result = decodeAcl(AccessControlPolicy);\n    if (data.headers && data.headers['x-cos-acl']) {\n      result.ACL = data.headers['x-cos-acl'];\n    }\n    result = util.extend(result, {\n      Owner: Owner,\n      Grants: Grant,\n      statusCode: data.statusCode,\n      headers: data.headers\n    });\n    callback(null, result);\n  });\n}\n\n/**\n * 设置 Bucket 的 跨域设置\n * @param  {Object}  params                             参数对象，必须\n *     @param  {String}  params.Bucket                  Bucket名称，必须\n *     @param  {String}  params.Region                  地域名称，必须\n *     @param  {Object}  params.CORSConfiguration       相关的跨域设置，必须\n * @param  {Array}  params.CORSConfiguration.CORSRules  对应的跨域规则\n * @param  {Function}  callback                         回调函数，必须\n * @return  {Object}  err                               请求失败的错误，如果请求成功，则为空。https://cloud.tencent.com/document/product/436/7730\n * @return  {Object}  data                              返回的数据\n */\nfunction putBucketCors(params, callback) {\n  var CORSConfiguration = params['CORSConfiguration'] || {};\n  var CORSRules = CORSConfiguration['CORSRules'] || params['CORSRules'] || [];\n  CORSRules = util.clone(util.isArray(CORSRules) ? CORSRules : [CORSRules]);\n  util.each(CORSRules, function (rule) {\n    util.each(['AllowedOrigin', 'AllowedHeader', 'AllowedMethod', 'ExposeHeader'], function (key) {\n      var sKey = key + 's';\n      var val = rule[sKey] || rule[key] || [];\n      delete rule[sKey];\n      rule[key] = util.isArray(val) ? val : [val];\n    });\n  });\n  var Conf = {\n    CORSRule: CORSRules\n  };\n  if (params.ResponseVary) Conf.ResponseVary = params.ResponseVary;\n  var xml = util.json2xml({\n    CORSConfiguration: Conf\n  });\n  var headers = params.Headers;\n  headers['Content-Type'] = 'application/xml';\n  headers['Content-MD5'] = util.b64(util.md5(xml));\n  submitRequest.call(this, {\n    Action: 'name/cos:PutBucketCORS',\n    method: 'PUT',\n    Bucket: params.Bucket,\n    Region: params.Region,\n    body: xml,\n    action: 'cors',\n    headers: headers,\n    tracker: params.tracker\n  }, function (err, data) {\n    if (err) return callback(err);\n    callback(null, {\n      statusCode: data.statusCode,\n      headers: data.headers\n    });\n  });\n}\n\n/**\n * 获取 Bucket 的 跨域设置\n * @param  {Object}  params                         参数对象，必须\n *     @param  {String}  params.Bucket              Bucket名称，必须\n *     @param  {String}  params.Region              地域名称，必须\n * @param  {Function}  callback                     回调函数，必须\n * @return  {Object}  err                           请求失败的错误，如果请求成功，则为空。https://cloud.tencent.com/document/product/436/7730\n * @return  {Object}  data                          返回的数据\n *     @return  {Object}  data.CORSRules            Bucket的跨域设置\n */\nfunction getBucketCors(params, callback) {\n  submitRequest.call(this, {\n    Action: 'name/cos:GetBucketCORS',\n    method: 'GET',\n    Bucket: params.Bucket,\n    Region: params.Region,\n    headers: params.Headers,\n    action: 'cors',\n    tracker: params.tracker\n  }, function (err, data) {\n    if (err) {\n      if (err.statusCode === 404 && err.error && err.error.Code === 'NoSuchCORSConfiguration') {\n        var result = {\n          CORSRules: [],\n          statusCode: err.statusCode\n        };\n        err.headers && (result.headers = err.headers);\n        callback(null, result);\n      } else {\n        callback(err);\n      }\n      return;\n    }\n    var CORSConfiguration = data.CORSConfiguration || {};\n    var CORSRules = CORSConfiguration.CORSRules || CORSConfiguration.CORSRule || [];\n    CORSRules = util.clone(util.isArray(CORSRules) ? CORSRules : [CORSRules]);\n    var ResponseVary = CORSConfiguration.ResponseVary;\n    util.each(CORSRules, function (rule) {\n      util.each(['AllowedOrigin', 'AllowedHeader', 'AllowedMethod', 'ExposeHeader'], function (key) {\n        var sKey = key + 's';\n        var val = rule[sKey] || rule[key] || [];\n        delete rule[key];\n        rule[sKey] = util.isArray(val) ? val : [val];\n      });\n    });\n    callback(null, {\n      CORSRules: CORSRules,\n      ResponseVary: ResponseVary,\n      statusCode: data.statusCode,\n      headers: data.headers\n    });\n  });\n}\n\n/**\n * 删除 Bucket 的 跨域设置\n * @param  {Object}  params                 参数对象，必须\n *     @param  {String}  params.Bucket      Bucket名称，必须\n *     @param  {String}  params.Region      地域名称，必须\n * @param  {Function}  callback             回调函数，必须\n * @return  {Object}  err                   请求失败的错误，如果请求成功，则为空。https://cloud.tencent.com/document/product/436/7730\n * @return  {Object}  data                  返回的数据\n */\nfunction deleteBucketCors(params, callback) {\n  submitRequest.call(this, {\n    Action: 'name/cos:DeleteBucketCORS',\n    method: 'DELETE',\n    Bucket: params.Bucket,\n    Region: params.Region,\n    headers: params.Headers,\n    action: 'cors',\n    tracker: params.tracker\n  }, function (err, data) {\n    if (err && err.statusCode === 204) {\n      return callback(null, {\n        statusCode: err.statusCode\n      });\n    } else if (err) {\n      return callback(err);\n    }\n    callback(null, {\n      statusCode: data.statusCode || err.statusCode,\n      headers: data.headers\n    });\n  });\n}\n\n/**\n * 获取 Bucket 的 地域信息\n * @param  {Object}  params             参数对象，必须\n *     @param  {String}  params.Bucket  Bucket名称，必须\n *     @param  {String}  params.Region  地域名称，必须\n * @param  {Function}  callback         回调函数，必须\n * @return  {Object}  err               请求失败的错误，如果请求成功，则为空。https://cloud.tencent.com/document/product/436/7730\n * @return  {Object}  data              返回数据，包含地域信息 LocationConstraint\n */\nfunction getBucketLocation(params, callback) {\n  submitRequest.call(this, {\n    Action: 'name/cos:GetBucketLocation',\n    method: 'GET',\n    Bucket: params.Bucket,\n    Region: params.Region,\n    headers: params.Headers,\n    action: 'location',\n    tracker: params.tracker\n  }, callback);\n}\nfunction putBucketPolicy(params, callback) {\n  var Policy = params['Policy'];\n  try {\n    if (typeof Policy === 'string') Policy = JSON.parse(Policy);\n  } catch (e) {}\n  if (!Policy || typeof Policy === 'string') return callback(util.error(new Error('Policy format error')));\n  var PolicyStr = JSON.stringify(Policy);\n  if (!Policy.version) Policy.version = '2.0';\n  var headers = params.Headers;\n  headers['Content-Type'] = 'application/json';\n  headers['Content-MD5'] = util.b64(util.md5(PolicyStr));\n  submitRequest.call(this, {\n    Action: 'name/cos:PutBucketPolicy',\n    method: 'PUT',\n    Bucket: params.Bucket,\n    Region: params.Region,\n    action: 'policy',\n    body: PolicyStr,\n    headers: headers,\n    tracker: params.tracker\n  }, function (err, data) {\n    if (err && err.statusCode === 204) {\n      return callback(null, {\n        statusCode: err.statusCode\n      });\n    } else if (err) {\n      return callback(err);\n    }\n    callback(null, {\n      statusCode: data.statusCode,\n      headers: data.headers\n    });\n  });\n}\n\n/**\n * 获取 Bucket 的读取权限策略\n * @param  {Object}  params             参数对象，必须\n *     @param  {String}  params.Bucket  Bucket名称，必须\n *     @param  {String}  params.Region  地域名称，必须\n * @param  {Function}  callback         回调函数，必须\n * @return  {Object}  err               请求失败的错误，如果请求成功，则为空。https://cloud.tencent.com/document/product/436/7730\n * @return  {Object}  data              返回数据\n */\nfunction getBucketPolicy(params, callback) {\n  submitRequest.call(this, {\n    Action: 'name/cos:GetBucketPolicy',\n    method: 'GET',\n    Bucket: params.Bucket,\n    Region: params.Region,\n    headers: params.Headers,\n    action: 'policy',\n    rawBody: true,\n    tracker: params.tracker\n  }, function (err, data) {\n    if (err) {\n      if (err.statusCode && err.statusCode === 403) {\n        return callback(util.error(err, {\n          ErrorStatus: 'Access Denied'\n        }));\n      }\n      if (err.statusCode && err.statusCode === 405) {\n        return callback(util.error(err, {\n          ErrorStatus: 'Method Not Allowed'\n        }));\n      }\n      if (err.statusCode && err.statusCode === 404) {\n        return callback(util.error(err, {\n          ErrorStatus: 'Policy Not Found'\n        }));\n      }\n      return callback(err);\n    }\n    var Policy = {};\n    try {\n      Policy = JSON.parse(data.body);\n    } catch (e) {}\n    callback(null, {\n      Policy: Policy,\n      statusCode: data.statusCode,\n      headers: data.headers\n    });\n  });\n}\n\n/**\n * 删除 Bucket 的 跨域设置\n * @param  {Object}  params                 参数对象，必须\n *     @param  {String}  params.Bucket      Bucket名称，必须\n *     @param  {String}  params.Region      地域名称，必须\n * @param  {Function}  callback             回调函数，必须\n * @return  {Object}  err                   请求失败的错误，如果请求成功，则为空。https://cloud.tencent.com/document/product/436/7730\n * @return  {Object}  data                  返回的数据\n */\nfunction deleteBucketPolicy(params, callback) {\n  submitRequest.call(this, {\n    Action: 'name/cos:DeleteBucketPolicy',\n    method: 'DELETE',\n    Bucket: params.Bucket,\n    Region: params.Region,\n    headers: params.Headers,\n    action: 'policy',\n    tracker: params.tracker\n  }, function (err, data) {\n    if (err && err.statusCode === 204) {\n      return callback(null, {\n        statusCode: err.statusCode\n      });\n    } else if (err) {\n      return callback(err);\n    }\n    callback(null, {\n      statusCode: data.statusCode || err.statusCode,\n      headers: data.headers\n    });\n  });\n}\n\n/**\n * 设置 Bucket 的标签\n * @param  {Object}  params             参数对象，必须\n *     @param  {String}  params.Bucket  Bucket名称，必须\n *     @param  {String}  params.Region  地域名称，必须\n *     @param  {Array}   params.TagSet  标签设置，必须\n * @param  {Function}  callback         回调函数，必须\n * @return  {Object}  err               请求失败的错误，如果请求成功，则为空。https://cloud.tencent.com/document/product/436/7730\n * @return  {Object}  data              返回数据\n */\nfunction putBucketTagging(params, callback) {\n  var Tagging = params['Tagging'] || {};\n  var Tags = Tagging.TagSet || Tagging.Tags || params['Tags'] || [];\n  Tags = util.clone(util.isArray(Tags) ? Tags : [Tags]);\n  var xml = util.json2xml({\n    Tagging: {\n      TagSet: {\n        Tag: Tags\n      }\n    }\n  });\n  var headers = params.Headers;\n  headers['Content-Type'] = 'application/xml';\n  headers['Content-MD5'] = util.b64(util.md5(xml));\n  submitRequest.call(this, {\n    Action: 'name/cos:PutBucketTagging',\n    method: 'PUT',\n    Bucket: params.Bucket,\n    Region: params.Region,\n    body: xml,\n    action: 'tagging',\n    headers: headers,\n    tracker: params.tracker\n  }, function (err, data) {\n    if (err && err.statusCode === 204) {\n      return callback(null, {\n        statusCode: err.statusCode\n      });\n    } else if (err) {\n      return callback(err);\n    }\n    callback(null, {\n      statusCode: data.statusCode,\n      headers: data.headers\n    });\n  });\n}\n\n/**\n * 获取 Bucket 的标签设置\n * @param  {Object}  params             参数对象，必须\n *     @param  {String}  params.Bucket  Bucket名称，必须\n *     @param  {String}  params.Region  地域名称，必须\n * @param  {Function}  callback         回调函数，必须\n * @return  {Object}  err               请求失败的错误，如果请求成功，则为空。https://cloud.tencent.com/document/product/436/7730\n * @return  {Object}  data              返回数据\n */\nfunction getBucketTagging(params, callback) {\n  submitRequest.call(this, {\n    Action: 'name/cos:GetBucketTagging',\n    method: 'GET',\n    Bucket: params.Bucket,\n    Region: params.Region,\n    headers: params.Headers,\n    action: 'tagging',\n    tracker: params.tracker\n  }, function (err, data) {\n    if (err) {\n      if (err.statusCode === 404 && err.error && (err.error === 'Not Found' || err.error.Code === 'NoSuchTagSet')) {\n        var result = {\n          Tags: [],\n          statusCode: err.statusCode\n        };\n        err.headers && (result.headers = err.headers);\n        callback(null, result);\n      } else {\n        callback(err);\n      }\n      return;\n    }\n    var Tags = [];\n    try {\n      Tags = data.Tagging.TagSet.Tag || [];\n    } catch (e) {}\n    Tags = util.clone(util.isArray(Tags) ? Tags : [Tags]);\n    callback(null, {\n      Tags: Tags,\n      statusCode: data.statusCode,\n      headers: data.headers\n    });\n  });\n}\n\n/**\n * 删除 Bucket 的 标签设置\n * @param  {Object}  params             参数对象，必须\n *     @param  {String}  params.Bucket  Bucket名称，必须\n *     @param  {String}  params.Region  地域名称，必须\n * @param  {Function}  callback         回调函数，必须\n * @return  {Object}  err               请求失败的错误，如果请求成功，则为空。https://cloud.tencent.com/document/product/436/7730\n * @return  {Object}  data              返回的数据\n */\nfunction deleteBucketTagging(params, callback) {\n  submitRequest.call(this, {\n    Action: 'name/cos:DeleteBucketTagging',\n    method: 'DELETE',\n    Bucket: params.Bucket,\n    Region: params.Region,\n    headers: params.Headers,\n    action: 'tagging',\n    tracker: params.tracker\n  }, function (err, data) {\n    if (err && err.statusCode === 204) {\n      return callback(null, {\n        statusCode: err.statusCode\n      });\n    } else if (err) {\n      return callback(err);\n    }\n    callback(null, {\n      statusCode: data.statusCode,\n      headers: data.headers\n    });\n  });\n}\nfunction putBucketLifecycle(params, callback) {\n  var LifecycleConfiguration = params['LifecycleConfiguration'] || {};\n  var Rules = LifecycleConfiguration.Rules || params.Rules || [];\n  Rules = util.clone(Rules);\n  var xml = util.json2xml({\n    LifecycleConfiguration: {\n      Rule: Rules\n    }\n  });\n  var headers = params.Headers;\n  headers['Content-Type'] = 'application/xml';\n  headers['Content-MD5'] = util.b64(util.md5(xml));\n  submitRequest.call(this, {\n    Action: 'name/cos:PutBucketLifecycle',\n    method: 'PUT',\n    Bucket: params.Bucket,\n    Region: params.Region,\n    body: xml,\n    action: 'lifecycle',\n    headers: headers,\n    tracker: params.tracker\n  }, function (err, data) {\n    if (err && err.statusCode === 204) {\n      return callback(null, {\n        statusCode: err.statusCode\n      });\n    } else if (err) {\n      return callback(err);\n    }\n    callback(null, {\n      statusCode: data.statusCode,\n      headers: data.headers\n    });\n  });\n}\nfunction getBucketLifecycle(params, callback) {\n  submitRequest.call(this, {\n    Action: 'name/cos:GetBucketLifecycle',\n    method: 'GET',\n    Bucket: params.Bucket,\n    Region: params.Region,\n    headers: params.Headers,\n    action: 'lifecycle',\n    tracker: params.tracker\n  }, function (err, data) {\n    if (err) {\n      if (err.statusCode === 404 && err.error && err.error.Code === 'NoSuchLifecycleConfiguration') {\n        var result = {\n          Rules: [],\n          statusCode: err.statusCode\n        };\n        err.headers && (result.headers = err.headers);\n        callback(null, result);\n      } else {\n        callback(err);\n      }\n      return;\n    }\n    var Rules = [];\n    try {\n      Rules = data.LifecycleConfiguration.Rule || [];\n    } catch (e) {}\n    Rules = util.clone(util.isArray(Rules) ? Rules : [Rules]);\n    callback(null, {\n      Rules: Rules,\n      statusCode: data.statusCode,\n      headers: data.headers\n    });\n  });\n}\nfunction deleteBucketLifecycle(params, callback) {\n  submitRequest.call(this, {\n    Action: 'name/cos:DeleteBucketLifecycle',\n    method: 'DELETE',\n    Bucket: params.Bucket,\n    Region: params.Region,\n    headers: params.Headers,\n    action: 'lifecycle',\n    tracker: params.tracker\n  }, function (err, data) {\n    if (err && err.statusCode === 204) {\n      return callback(null, {\n        statusCode: err.statusCode\n      });\n    } else if (err) {\n      return callback(err);\n    }\n    callback(null, {\n      statusCode: data.statusCode,\n      headers: data.headers\n    });\n  });\n}\nfunction putBucketVersioning(params, callback) {\n  if (!params['VersioningConfiguration']) {\n    callback(util.error(new Error('missing param VersioningConfiguration')));\n    return;\n  }\n  var VersioningConfiguration = params['VersioningConfiguration'] || {};\n  var xml = util.json2xml({\n    VersioningConfiguration: VersioningConfiguration\n  });\n  var headers = params.Headers;\n  headers['Content-Type'] = 'application/xml';\n  headers['Content-MD5'] = util.b64(util.md5(xml));\n  submitRequest.call(this, {\n    Action: 'name/cos:PutBucketVersioning',\n    method: 'PUT',\n    Bucket: params.Bucket,\n    Region: params.Region,\n    body: xml,\n    action: 'versioning',\n    headers: headers,\n    tracker: params.tracker\n  }, function (err, data) {\n    if (err && err.statusCode === 204) {\n      return callback(null, {\n        statusCode: err.statusCode\n      });\n    } else if (err) {\n      return callback(err);\n    }\n    callback(null, {\n      statusCode: data.statusCode,\n      headers: data.headers\n    });\n  });\n}\nfunction getBucketVersioning(params, callback) {\n  submitRequest.call(this, {\n    Action: 'name/cos:GetBucketVersioning',\n    method: 'GET',\n    Bucket: params.Bucket,\n    Region: params.Region,\n    headers: params.Headers,\n    action: 'versioning',\n    tracker: params.tracker\n  }, function (err, data) {\n    if (!err) {\n      !data.VersioningConfiguration && (data.VersioningConfiguration = {});\n    }\n    callback(err, data);\n  });\n}\nfunction putBucketReplication(params, callback) {\n  var ReplicationConfiguration = util.clone(params.ReplicationConfiguration);\n  var xml = util.json2xml({\n    ReplicationConfiguration: ReplicationConfiguration\n  });\n  xml = xml.replace(/<(\\/?)Rules>/gi, '<$1Rule>');\n  xml = xml.replace(/<(\\/?)Tags>/gi, '<$1Tag>');\n  var headers = params.Headers;\n  headers['Content-Type'] = 'application/xml';\n  headers['Content-MD5'] = util.b64(util.md5(xml));\n  submitRequest.call(this, {\n    Action: 'name/cos:PutBucketReplication',\n    method: 'PUT',\n    Bucket: params.Bucket,\n    Region: params.Region,\n    body: xml,\n    action: 'replication',\n    headers: headers,\n    tracker: params.tracker\n  }, function (err, data) {\n    if (err && err.statusCode === 204) {\n      return callback(null, {\n        statusCode: err.statusCode\n      });\n    } else if (err) {\n      return callback(err);\n    }\n    callback(null, {\n      statusCode: data.statusCode,\n      headers: data.headers\n    });\n  });\n}\nfunction getBucketReplication(params, callback) {\n  submitRequest.call(this, {\n    Action: 'name/cos:GetBucketReplication',\n    method: 'GET',\n    Bucket: params.Bucket,\n    Region: params.Region,\n    headers: params.Headers,\n    action: 'replication',\n    tracker: params.tracker\n  }, function (err, data) {\n    if (err) {\n      if (err.statusCode === 404 && err.error && (err.error === 'Not Found' || err.error.Code === 'ReplicationConfigurationnotFoundError')) {\n        var result = {\n          ReplicationConfiguration: {\n            Rules: []\n          },\n          statusCode: err.statusCode\n        };\n        err.headers && (result.headers = err.headers);\n        callback(null, result);\n      } else {\n        callback(err);\n      }\n      return;\n    }\n    !data.ReplicationConfiguration && (data.ReplicationConfiguration = {});\n    if (data.ReplicationConfiguration.Rule) {\n      data.ReplicationConfiguration.Rules = util.makeArray(data.ReplicationConfiguration.Rule);\n      delete data.ReplicationConfiguration.Rule;\n    }\n    callback(err, data);\n  });\n}\nfunction deleteBucketReplication(params, callback) {\n  submitRequest.call(this, {\n    Action: 'name/cos:DeleteBucketReplication',\n    method: 'DELETE',\n    Bucket: params.Bucket,\n    Region: params.Region,\n    headers: params.Headers,\n    action: 'replication',\n    tracker: params.tracker\n  }, function (err, data) {\n    if (err && err.statusCode === 204) {\n      return callback(null, {\n        statusCode: err.statusCode\n      });\n    } else if (err) {\n      return callback(err);\n    }\n    callback(null, {\n      statusCode: data.statusCode,\n      headers: data.headers\n    });\n  });\n}\n\n/**\n * 设置 Bucket 静态网站配置信息\n * @param  {Object}  params                                                 参数对象，必须\n *     @param  {String}  params.Bucket                                      Bucket名称，必须\n *     @param  {String}  params.Region                                      地域名称，必须\n *     @param  {Object}  params.WebsiteConfiguration                        地域名称，必须\n *         @param  {Object}   WebsiteConfiguration.IndexDocument            索引文档，必须\n *         @param  {Object}   WebsiteConfiguration.ErrorDocument            错误文档，非必须\n *         @param  {Object}   WebsiteConfiguration.RedirectAllRequestsTo    重定向所有请求，非必须\n *         @param  {Array}   params.RoutingRules                            重定向规则，非必须\n * @param  {Function}  callback                                             回调函数，必须\n * @return  {Object}  err                                                   请求失败的错误，如果请求成功，则为空。https://cloud.tencent.com/document/product/436/7730\n * @return  {Object}  data                                                  返回数据\n */\nfunction putBucketWebsite(params, callback) {\n  if (!params['WebsiteConfiguration']) {\n    callback(util.error(new Error('missing param WebsiteConfiguration')));\n    return;\n  }\n  var WebsiteConfiguration = util.clone(params['WebsiteConfiguration'] || {});\n  var RoutingRules = WebsiteConfiguration['RoutingRules'] || WebsiteConfiguration['RoutingRule'] || [];\n  RoutingRules = util.isArray(RoutingRules) ? RoutingRules : [RoutingRules];\n  delete WebsiteConfiguration.RoutingRule;\n  delete WebsiteConfiguration.RoutingRules;\n  if (RoutingRules.length) WebsiteConfiguration.RoutingRules = {\n    RoutingRule: RoutingRules\n  };\n  var xml = util.json2xml({\n    WebsiteConfiguration: WebsiteConfiguration\n  });\n  var headers = params.Headers;\n  headers['Content-Type'] = 'application/xml';\n  headers['Content-MD5'] = util.b64(util.md5(xml));\n  submitRequest.call(this, {\n    Action: 'name/cos:PutBucketWebsite',\n    method: 'PUT',\n    Bucket: params.Bucket,\n    Region: params.Region,\n    body: xml,\n    action: 'website',\n    headers: headers,\n    tracker: params.tracker\n  }, function (err, data) {\n    if (err && err.statusCode === 204) {\n      return callback(null, {\n        statusCode: err.statusCode\n      });\n    } else if (err) {\n      return callback(err);\n    }\n    callback(null, {\n      statusCode: data.statusCode,\n      headers: data.headers\n    });\n  });\n}\n\n/**\n * 获取 Bucket 的静态网站配置信息\n * @param  {Object}  params             参数对象，必须\n *     @param  {String}  params.Bucket  Bucket名称，必须\n *     @param  {String}  params.Region  地域名称，必须\n * @param  {Function}  callback         回调函数，必须\n * @return  {Object}  err               请求失败的错误，如果请求成功，则为空。https://cloud.tencent.com/document/product/436/7730\n * @return  {Object}  data              返回数据\n */\nfunction getBucketWebsite(params, callback) {\n  submitRequest.call(this, {\n    Action: 'name/cos:GetBucketWebsite',\n    method: 'GET',\n    Bucket: params.Bucket,\n    Region: params.Region,\n    Key: params.Key,\n    headers: params.Headers,\n    action: 'website',\n    tracker: params.tracker\n  }, function (err, data) {\n    if (err) {\n      if (err.statusCode === 404 && err.error.Code === 'NoSuchWebsiteConfiguration') {\n        var result = {\n          WebsiteConfiguration: {},\n          statusCode: err.statusCode\n        };\n        err.headers && (result.headers = err.headers);\n        callback(null, result);\n      } else {\n        callback(err);\n      }\n      return;\n    }\n    var WebsiteConfiguration = data.WebsiteConfiguration || {};\n    if (WebsiteConfiguration['RoutingRules']) {\n      var RoutingRules = util.clone(WebsiteConfiguration['RoutingRules'].RoutingRule || []);\n      RoutingRules = util.makeArray(RoutingRules);\n      WebsiteConfiguration.RoutingRules = RoutingRules;\n    }\n    callback(null, {\n      WebsiteConfiguration: WebsiteConfiguration,\n      statusCode: data.statusCode,\n      headers: data.headers\n    });\n  });\n}\n\n/**\n * 删除 Bucket 的静态网站配置\n * @param  {Object}  params             参数对象，必须\n *     @param  {String}  params.Bucket  Bucket名称，必须\n *     @param  {String}  params.Region  地域名称，必须\n * @param  {Function}  callback         回调函数，必须\n * @return  {Object}  err               请求失败的错误，如果请求成功，则为空。https://cloud.tencent.com/document/product/436/7730\n * @return  {Object}  data              返回数据\n */\nfunction deleteBucketWebsite(params, callback) {\n  submitRequest.call(this, {\n    Action: 'name/cos:DeleteBucketWebsite',\n    method: 'DELETE',\n    Bucket: params.Bucket,\n    Region: params.Region,\n    headers: params.Headers,\n    action: 'website',\n    tracker: params.tracker\n  }, function (err, data) {\n    if (err && err.statusCode === 204) {\n      return callback(null, {\n        statusCode: err.statusCode\n      });\n    } else if (err) {\n      return callback(err);\n    }\n    callback(null, {\n      statusCode: data.statusCode,\n      headers: data.headers\n    });\n  });\n}\n\n/**\n * 设置 Bucket 的防盗链白名单或者黑名单\n * @param  {Object}  params                                                 参数对象，必须\n *     @param  {String}  params.Bucket                                      Bucket名称，必须\n *     @param  {String}  params.Region                                      地域名称，必须\n *     @param  {Object}  params.RefererConfiguration                        地域名称，必须\n *         @param  {String}   RefererConfiguration.Status                   是否开启防盗链，枚举值：Enabled、Disabled\n *         @param  {String}   RefererConfiguration.RefererType              防盗链类型，枚举值：Black-List、White-List，必须\n *         @param  {Array}   RefererConfiguration.DomianList.Domain         生效域名，必须\n *         @param  {String}   RefererConfiguration.EmptyReferConfiguration  ，非必须\n * @param  {Function}  callback                                             回调函数，必须\n * @return  {Object}  err                                                   请求失败的错误，如果请求成功，则为空。https://cloud.tencent.com/document/product/436/7730\n * @return  {Object}  data                                                  返回数据\n */\nfunction putBucketReferer(params, callback) {\n  if (!params['RefererConfiguration']) {\n    callback(util.error(new Error('missing param RefererConfiguration')));\n    return;\n  }\n  var RefererConfiguration = util.clone(params['RefererConfiguration'] || {});\n  var DomainList = RefererConfiguration['DomainList'] || {};\n  var Domains = DomainList['Domains'] || DomainList['Domain'] || [];\n  Domains = util.isArray(Domains) ? Domains : [Domains];\n  if (Domains.length) RefererConfiguration.DomainList = {\n    Domain: Domains\n  };\n  var xml = util.json2xml({\n    RefererConfiguration: RefererConfiguration\n  });\n  var headers = params.Headers;\n  headers['Content-Type'] = 'application/xml';\n  headers['Content-MD5'] = util.b64(util.md5(xml));\n  submitRequest.call(this, {\n    Action: 'name/cos:PutBucketReferer',\n    method: 'PUT',\n    Bucket: params.Bucket,\n    Region: params.Region,\n    body: xml,\n    action: 'referer',\n    headers: headers,\n    tracker: params.tracker\n  }, function (err, data) {\n    if (err && err.statusCode === 204) {\n      return callback(null, {\n        statusCode: err.statusCode\n      });\n    } else if (err) {\n      return callback(err);\n    }\n    callback(null, {\n      statusCode: data.statusCode,\n      headers: data.headers\n    });\n  });\n}\n\n/**\n * 获取 Bucket 的防盗链白名单或者黑名单\n * @param  {Object}  params             参数对象，必须\n *     @param  {String}  params.Bucket  Bucket名称，必须\n *     @param  {String}  params.Region  地域名称，必须\n * @param  {Function}  callback         回调函数，必须\n * @return  {Object}  err               请求失败的错误，如果请求成功，则为空。https://cloud.tencent.com/document/product/436/7730\n * @return  {Object}  data              返回数据\n */\nfunction getBucketReferer(params, callback) {\n  submitRequest.call(this, {\n    Action: 'name/cos:GetBucketReferer',\n    method: 'GET',\n    Bucket: params.Bucket,\n    Region: params.Region,\n    Key: params.Key,\n    headers: params.Headers,\n    action: 'referer',\n    tracker: params.tracker\n  }, function (err, data) {\n    if (err) {\n      if (err.statusCode === 404 && err.error.Code === 'NoSuchRefererConfiguration') {\n        var result = {\n          WebsiteConfiguration: {},\n          statusCode: err.statusCode\n        };\n        err.headers && (result.headers = err.headers);\n        callback(null, result);\n      } else {\n        callback(err);\n      }\n      return;\n    }\n    var RefererConfiguration = data.RefererConfiguration || {};\n    if (RefererConfiguration['DomainList']) {\n      var Domains = util.makeArray(RefererConfiguration['DomainList'].Domain || []);\n      RefererConfiguration.DomainList = {\n        Domains: Domains\n      };\n    }\n    callback(null, {\n      RefererConfiguration: RefererConfiguration,\n      statusCode: data.statusCode,\n      headers: data.headers\n    });\n  });\n}\n\n/**\n * 设置 Bucket 自定义域名\n * @param  {Object}  params                                                 参数对象，必须\n *     @param  {String}  params.Bucket                                      Bucket名称，必须\n *     @param  {String}  params.Region                                      地域名称，必须\n * @param  {Function}  callback                                             回调函数，必须\n * @return  {Object}  err                                                   请求失败的错误，如果请求成功，则为空。https://cloud.tencent.com/document/product/436/7730\n * @return  {Object}  data                                                  返回数据\n */\nfunction putBucketDomain(params, callback) {\n  var DomainConfiguration = params['DomainConfiguration'] || {};\n  var DomainRule = DomainConfiguration.DomainRule || params.DomainRule || [];\n  DomainRule = util.clone(DomainRule);\n  var xml = util.json2xml({\n    DomainConfiguration: {\n      DomainRule: DomainRule\n    }\n  });\n  var headers = params.Headers;\n  headers['Content-Type'] = 'application/xml';\n  headers['Content-MD5'] = util.b64(util.md5(xml));\n  submitRequest.call(this, {\n    Action: 'name/cos:PutBucketDomain',\n    method: 'PUT',\n    Bucket: params.Bucket,\n    Region: params.Region,\n    body: xml,\n    action: 'domain',\n    headers: headers,\n    tracker: params.tracker\n  }, function (err, data) {\n    if (err && err.statusCode === 204) {\n      return callback(null, {\n        statusCode: err.statusCode\n      });\n    } else if (err) {\n      return callback(err);\n    }\n    callback(null, {\n      statusCode: data.statusCode,\n      headers: data.headers\n    });\n  });\n}\n\n/**\n * 获取 Bucket 的自定义域名\n * @param  {Object}  params             参数对象，必须\n *     @param  {String}  params.Bucket  Bucket名称，必须\n *     @param  {String}  params.Region  地域名称，必须\n * @param  {Function}  callback         回调函数，必须\n * @return  {Object}  err               请求失败的错误，如果请求成功，则为空。https://cloud.tencent.com/document/product/436/7730\n * @return  {Object}  data              返回数据\n */\nfunction getBucketDomain(params, callback) {\n  submitRequest.call(this, {\n    Action: 'name/cos:GetBucketDomain',\n    method: 'GET',\n    Bucket: params.Bucket,\n    Region: params.Region,\n    headers: params.Headers,\n    action: 'domain',\n    tracker: params.tracker\n  }, function (err, data) {\n    if (err) return callback(err);\n    var DomainRule = [];\n    try {\n      DomainRule = data.DomainConfiguration.DomainRule || [];\n    } catch (e) {}\n    DomainRule = util.clone(util.isArray(DomainRule) ? DomainRule : [DomainRule]);\n    callback(null, {\n      DomainRule: DomainRule,\n      statusCode: data.statusCode,\n      headers: data.headers\n    });\n  });\n}\n\n/**\n * 删除 Bucket 自定义域名\n * @param  {Object}  params             参数对象，必须\n *     @param  {String}  params.Bucket  Bucket名称，必须\n *     @param  {String}  params.Region  地域名称，必须\n * @param  {Function}  callback         回调函数，必须\n * @return  {Object}  err               请求失败的错误，如果请求成功，则为空。https://cloud.tencent.com/document/product/436/7730\n * @return  {Object}  data              返回数据\n */\nfunction deleteBucketDomain(params, callback) {\n  submitRequest.call(this, {\n    Action: 'name/cos:DeleteBucketDomain',\n    method: 'DELETE',\n    Bucket: params.Bucket,\n    Region: params.Region,\n    headers: params.Headers,\n    action: 'domain',\n    tracker: params.tracker\n  }, function (err, data) {\n    if (err && err.statusCode === 204) {\n      return callback(null, {\n        statusCode: err.statusCode\n      });\n    } else if (err) {\n      return callback(err);\n    }\n    callback(null, {\n      statusCode: data.statusCode,\n      headers: data.headers\n    });\n  });\n}\n\n/**\n * 设置 Bucket 的回源\n * @param  {Object}  params                                                 参数对象，必须\n *     @param  {String}  params.Bucket                                      Bucket名称，必须\n *     @param  {String}  params.Region                                      地域名称，必须\n * @param  {Function}  callback                                             回调函数，必须\n * @return  {Object}  err                                                   请求失败的错误，如果请求成功，则为空。https://cloud.tencent.com/document/product/436/7730\n * @return  {Object}  data                                                  返回数据\n */\nfunction putBucketOrigin(params, callback) {\n  var OriginConfiguration = params['OriginConfiguration'] || {};\n  var OriginRule = OriginConfiguration.OriginRule || params.OriginRule || [];\n  OriginRule = util.clone(OriginRule);\n  var xml = util.json2xml({\n    OriginConfiguration: {\n      OriginRule: OriginRule\n    }\n  });\n  var headers = params.Headers;\n  headers['Content-Type'] = 'application/xml';\n  headers['Content-MD5'] = util.b64(util.md5(xml));\n  submitRequest.call(this, {\n    Action: 'name/cos:PutBucketOrigin',\n    method: 'PUT',\n    Bucket: params.Bucket,\n    Region: params.Region,\n    body: xml,\n    action: 'origin',\n    headers: headers,\n    tracker: params.tracker\n  }, function (err, data) {\n    if (err && err.statusCode === 204) {\n      return callback(null, {\n        statusCode: err.statusCode\n      });\n    } else if (err) {\n      return callback(err);\n    }\n    callback(null, {\n      statusCode: data.statusCode,\n      headers: data.headers\n    });\n  });\n}\n\n/**\n * 获取 Bucket 的回源\n * @param  {Object}  params             参数对象，必须\n *     @param  {String}  params.Bucket  Bucket名称，必须\n *     @param  {String}  params.Region  地域名称，必须\n * @param  {Function}  callback         回调函数，必须\n * @return  {Object}  err               请求失败的错误，如果请求成功，则为空。https://cloud.tencent.com/document/product/436/7730\n * @return  {Object}  data              返回数据\n */\nfunction getBucketOrigin(params, callback) {\n  submitRequest.call(this, {\n    Action: 'name/cos:GetBucketOrigin',\n    method: 'GET',\n    Bucket: params.Bucket,\n    Region: params.Region,\n    headers: params.Headers,\n    action: 'origin',\n    tracker: params.tracker\n  }, function (err, data) {\n    if (err) return callback(err);\n    var OriginRule = [];\n    try {\n      OriginRule = data.OriginConfiguration.OriginRule || [];\n    } catch (e) {}\n    OriginRule = util.clone(util.isArray(OriginRule) ? OriginRule : [OriginRule]);\n    callback(null, {\n      OriginRule: OriginRule,\n      statusCode: data.statusCode,\n      headers: data.headers\n    });\n  });\n}\n\n/**\n * 删除 Bucket 的回源\n * @param  {Object}  params             参数对象，必须\n *     @param  {String}  params.Bucket  Bucket名称，必须\n *     @param  {String}  params.Region  地域名称，必须\n * @param  {Function}  callback         回调函数，必须\n * @return  {Object}  err               请求失败的错误，如果请求成功，则为空。https://cloud.tencent.com/document/product/436/7730\n * @return  {Object}  data              返回数据\n */\nfunction deleteBucketOrigin(params, callback) {\n  submitRequest.call(this, {\n    Action: 'name/cos:DeleteBucketOrigin',\n    method: 'DELETE',\n    Bucket: params.Bucket,\n    Region: params.Region,\n    headers: params.Headers,\n    action: 'origin',\n    tracker: params.tracker\n  }, function (err, data) {\n    if (err && err.statusCode === 204) {\n      return callback(null, {\n        statusCode: err.statusCode\n      });\n    } else if (err) {\n      return callback(err);\n    }\n    callback(null, {\n      statusCode: data.statusCode,\n      headers: data.headers\n    });\n  });\n}\n\n/**\n * 设置 Bucket 的日志记录\n * @param  {Object}  params                                                 参数对象，必须\n *     @param  {String}  params.Bucket                                      Bucket名称，必须\n *     @param  {String}  params.Region                                      地域名称，必须\n *     @param  {(Object|String)}  params.BucketLoggingStatus                         说明日志记录配置的状态，如果无子节点信息则意为关闭日志记录，必须\n * @param  {Function}  callback                                             回调函数，必须\n * @return  {Object}  err                                                   请求失败的错误，如果请求成功，则为空。https://cloud.tencent.com/document/product/436/7730\n * @return  {Object}  data                                                  返回数据\n */\nfunction putBucketLogging(params, callback) {\n  var xml = util.json2xml({\n    BucketLoggingStatus: params['BucketLoggingStatus'] || ''\n  });\n  var headers = params.Headers;\n  headers['Content-Type'] = 'application/xml';\n  headers['Content-MD5'] = util.b64(util.md5(xml));\n  submitRequest.call(this, {\n    Action: 'name/cos:PutBucketLogging',\n    method: 'PUT',\n    Bucket: params.Bucket,\n    Region: params.Region,\n    body: xml,\n    action: 'logging',\n    headers: headers,\n    tracker: params.tracker\n  }, function (err, data) {\n    if (err && err.statusCode === 204) {\n      return callback(null, {\n        statusCode: err.statusCode\n      });\n    } else if (err) {\n      return callback(err);\n    }\n    callback(null, {\n      statusCode: data.statusCode,\n      headers: data.headers\n    });\n  });\n}\n\n/**\n * 获取 Bucket 的日志记录\n * @param  {Object}  params             参数对象，必须\n *     @param  {String}  params.Bucket  Bucket名称，必须\n *     @param  {String}  params.Region  地域名称，必须\n * @param  {Function}  callback         回调函数，必须\n * @return  {Object}  err               请求失败的错误，如果请求成功，则为空。https://cloud.tencent.com/document/product/436/7730\n * @return  {Object}  data              返回数据\n */\nfunction getBucketLogging(params, callback) {\n  submitRequest.call(this, {\n    Action: 'name/cos:GetBucketLogging',\n    method: 'GET',\n    Bucket: params.Bucket,\n    Region: params.Region,\n    headers: params.Headers,\n    action: 'logging',\n    tracker: params.tracker\n  }, function (err, data) {\n    if (err) return callback(err);\n    callback(null, {\n      BucketLoggingStatus: data.BucketLoggingStatus,\n      statusCode: data.statusCode,\n      headers: data.headers\n    });\n  });\n}\n\n/**\n * 创建/编辑 Bucket 的清单任务\n * @param  {Object}  params                                                 参数对象，必须\n *     @param  {String}  params.Bucket                                      Bucket名称，必须\n *     @param  {String}  params.Region                                      地域名称，必须\n *     @param  {String}  params.Id                                          清单任务的名称，必须\n *     @param  {Object}  params.InventoryConfiguration                      包含清单的配置参数，必须\n * @param  {Function}  callback                                             回调函数，必须\n * @return  {Object}  err                                                   请求失败的错误，如果请求成功，则为空。https://cloud.tencent.com/document/product/436/7730\n * @return  {Object}  data                                                  返回数据\n */\nfunction submitBucketInventory(method, params, callback) {\n  var InventoryConfiguration = util.clone(params['InventoryConfiguration']);\n  if (InventoryConfiguration.OptionalFields) {\n    var Field = InventoryConfiguration.OptionalFields || [];\n    InventoryConfiguration.OptionalFields = {\n      Field: Field\n    };\n  }\n  if (InventoryConfiguration.Destination && InventoryConfiguration.Destination.COSBucketDestination && InventoryConfiguration.Destination.COSBucketDestination.Encryption) {\n    var Encryption = InventoryConfiguration.Destination.COSBucketDestination.Encryption;\n    if (Object.keys(Encryption).indexOf('SSECOS') > -1) {\n      Encryption['SSE-COS'] = Encryption['SSECOS'];\n      delete Encryption['SSECOS'];\n    }\n  }\n  var xml = util.json2xml({\n    InventoryConfiguration: InventoryConfiguration\n  });\n  var headers = params.Headers;\n  headers['Content-Type'] = 'application/xml';\n  headers['Content-MD5'] = util.b64(util.md5(xml));\n  var action = method === 'PUT' ? 'name/cos:PutBucketInventory' : 'name/cos:PostBucketInventory';\n  submitRequest.call(this, {\n    Action: action,\n    method: method,\n    Bucket: params.Bucket,\n    Region: params.Region,\n    body: xml,\n    action: 'inventory',\n    qs: {\n      id: params['Id']\n    },\n    headers: headers,\n    tracker: params.tracker\n  }, function (err, data) {\n    if (err && err.statusCode === 204) {\n      return callback(null, {\n        statusCode: err.statusCode\n      });\n    } else if (err) {\n      return callback(err);\n    }\n    callback(null, {\n      statusCode: data.statusCode,\n      headers: data.headers\n    });\n  });\n}\n\n/**\n * 创建一个清单任务\n */\nfunction putBucketInventory(params, callback) {\n  return submitBucketInventory.call(this, 'PUT', params, callback);\n}\n\n/**\n * 创建一个一次性清单任务 会立即执行\n */\nfunction postBucketInventory(params, callback) {\n  return submitBucketInventory.call(this, 'POST', params, callback);\n}\n\n/**\n * 获取 Bucket 的清单任务信息\n * @param  {Object}  params             参数对象，必须\n *     @param  {String}  params.Bucket  Bucket名称，必须\n *     @param  {String}  params.Region  地域名称，必须\n *     @param  {String}  params.Id      清单任务的名称，必须\n * @param  {Function}  callback         回调函数，必须\n * @return  {Object}  err               请求失败的错误，如果请求成功，则为空。https://cloud.tencent.com/document/product/436/7730\n * @return  {Object}  data              返回数据\n */\nfunction getBucketInventory(params, callback) {\n  submitRequest.call(this, {\n    Action: 'name/cos:GetBucketInventory',\n    method: 'GET',\n    Bucket: params.Bucket,\n    Region: params.Region,\n    headers: params.Headers,\n    action: 'inventory',\n    qs: {\n      id: params['Id']\n    },\n    tracker: params.tracker\n  }, function (err, data) {\n    if (err) return callback(err);\n    var InventoryConfiguration = data['InventoryConfiguration'];\n    if (InventoryConfiguration && InventoryConfiguration.OptionalFields && InventoryConfiguration.OptionalFields.Field) {\n      var Field = InventoryConfiguration.OptionalFields.Field;\n      if (!util.isArray(Field)) {\n        Field = [Field];\n      }\n      InventoryConfiguration.OptionalFields = Field;\n    }\n    if (InventoryConfiguration.Destination && InventoryConfiguration.Destination.COSBucketDestination && InventoryConfiguration.Destination.COSBucketDestination.Encryption) {\n      var Encryption = InventoryConfiguration.Destination.COSBucketDestination.Encryption;\n      if (Object.keys(Encryption).indexOf('SSE-COS') > -1) {\n        Encryption['SSECOS'] = Encryption['SSE-COS'];\n        delete Encryption['SSE-COS'];\n      }\n    }\n    callback(null, {\n      InventoryConfiguration: InventoryConfiguration,\n      statusCode: data.statusCode,\n      headers: data.headers\n    });\n  });\n}\n\n/**\n * 获取 Bucket 的清单任务信息\n * @param  {Object}  params                             参数对象，必须\n *     @param  {String}  params.Bucket                  Bucket名称，必须\n *     @param  {String}  params.Region                  地域名称，必须\n *     @param  {String}  params.ContinuationToken       当 COS 响应体中 IsTruncated 为 true，且 NextContinuationToken 节点中存在参数值时，您可以将这个参数作为 continuation-token 参数值，以获取下一页的清单任务信息，非必须\n * @param  {Function}  callback                         回调函数，必须\n * @return  {Object}  err                               请求失败的错误，如果请求成功，则为空。https://cloud.tencent.com/document/product/436/7730\n * @return  {Object}  data                              返回数据\n */\nfunction listBucketInventory(params, callback) {\n  submitRequest.call(this, {\n    Action: 'name/cos:ListBucketInventory',\n    method: 'GET',\n    Bucket: params.Bucket,\n    Region: params.Region,\n    headers: params.Headers,\n    action: 'inventory',\n    qs: {\n      'continuation-token': params['ContinuationToken']\n    },\n    tracker: params.tracker\n  }, function (err, data) {\n    if (err) return callback(err);\n    var ListInventoryConfigurationResult = data['ListInventoryConfigurationResult'];\n    var InventoryConfigurations = ListInventoryConfigurationResult.InventoryConfiguration || [];\n    InventoryConfigurations = util.isArray(InventoryConfigurations) ? InventoryConfigurations : [InventoryConfigurations];\n    delete ListInventoryConfigurationResult['InventoryConfiguration'];\n    util.each(InventoryConfigurations, function (InventoryConfiguration) {\n      if (InventoryConfiguration && InventoryConfiguration.OptionalFields && InventoryConfiguration.OptionalFields.Field) {\n        var Field = InventoryConfiguration.OptionalFields.Field;\n        if (!util.isArray(Field)) {\n          Field = [Field];\n        }\n        InventoryConfiguration.OptionalFields = Field;\n      }\n      if (InventoryConfiguration.Destination && InventoryConfiguration.Destination.COSBucketDestination && InventoryConfiguration.Destination.COSBucketDestination.Encryption) {\n        var Encryption = InventoryConfiguration.Destination.COSBucketDestination.Encryption;\n        if (Object.keys(Encryption).indexOf('SSE-COS') > -1) {\n          Encryption['SSECOS'] = Encryption['SSE-COS'];\n          delete Encryption['SSE-COS'];\n        }\n      }\n    });\n    ListInventoryConfigurationResult.InventoryConfigurations = InventoryConfigurations;\n    util.extend(ListInventoryConfigurationResult, {\n      statusCode: data.statusCode,\n      headers: data.headers\n    });\n    callback(null, ListInventoryConfigurationResult);\n  });\n}\n\n/**\n * 删除 Bucket 的清单任务\n * @param  {Object}  params             参数对象，必须\n *     @param  {String}  params.Bucket  Bucket名称，必须\n *     @param  {String}  params.Region  地域名称，必须\n *     @param  {String}  params.Id      清单任务的名称，必须\n * @param  {Function}  callback         回调函数，必须\n * @return  {Object}  err               请求失败的错误，如果请求成功，则为空。https://cloud.tencent.com/document/product/436/7730\n * @return  {Object}  data              返回数据\n */\nfunction deleteBucketInventory(params, callback) {\n  submitRequest.call(this, {\n    Action: 'name/cos:DeleteBucketInventory',\n    method: 'DELETE',\n    Bucket: params.Bucket,\n    Region: params.Region,\n    headers: params.Headers,\n    action: 'inventory',\n    qs: {\n      id: params['Id']\n    },\n    tracker: params.tracker\n  }, function (err, data) {\n    if (err && err.statusCode === 204) {\n      return callback(null, {\n        statusCode: err.statusCode\n      });\n    } else if (err) {\n      return callback(err);\n    }\n    callback(null, {\n      statusCode: data.statusCode,\n      headers: data.headers\n    });\n  });\n}\n\n/* 全球加速 */\nfunction putBucketAccelerate(params, callback) {\n  if (!params['AccelerateConfiguration']) {\n    callback(util.error(new Error('missing param AccelerateConfiguration')));\n    return;\n  }\n  var configuration = {\n    AccelerateConfiguration: params.AccelerateConfiguration || {}\n  };\n  var xml = util.json2xml(configuration);\n  var headers = {};\n  headers['Content-Type'] = 'application/xml';\n  headers['Content-MD5'] = util.b64(util.md5(xml));\n  submitRequest.call(this, {\n    Action: 'name/cos:PutBucketAccelerate',\n    method: 'PUT',\n    Bucket: params.Bucket,\n    Region: params.Region,\n    body: xml,\n    action: 'accelerate',\n    headers: headers,\n    tracker: params.tracker\n  }, function (err, data) {\n    if (err) return callback(err);\n    callback(null, {\n      statusCode: data.statusCode,\n      headers: data.headers\n    });\n  });\n}\nfunction getBucketAccelerate(params, callback) {\n  submitRequest.call(this, {\n    Action: 'name/cos:GetBucketAccelerate',\n    method: 'GET',\n    Bucket: params.Bucket,\n    Region: params.Region,\n    action: 'accelerate',\n    tracker: params.tracker\n  }, function (err, data) {\n    if (!err) {\n      !data.AccelerateConfiguration && (data.AccelerateConfiguration = {});\n    }\n    callback(err, data);\n  });\n}\nfunction putBucketEncryption(params, callback) {\n  var conf = params.ServerSideEncryptionConfiguration || {};\n  var Rules = conf.Rule || conf.Rules || [];\n  var xml = util.json2xml({\n    ServerSideEncryptionConfiguration: {\n      Rule: Rules\n    }\n  });\n  var headers = params.Headers;\n  headers['Content-Type'] = 'application/xml';\n  headers['Content-MD5'] = util.b64(util.md5(xml));\n  submitRequest.call(this, {\n    Action: 'name/cos:PutBucketEncryption',\n    method: 'PUT',\n    Bucket: params.Bucket,\n    Region: params.Region,\n    body: xml,\n    action: 'encryption',\n    headers: headers,\n    tracker: params.tracker\n  }, function (err, data) {\n    if (err && err.statusCode === 204) {\n      return callback(null, {\n        statusCode: err.statusCode\n      });\n    } else if (err) {\n      return callback(err);\n    }\n    callback(null, {\n      statusCode: data.statusCode,\n      headers: data.headers\n    });\n  });\n}\nfunction getBucketEncryption(params, callback) {\n  submitRequest.call(this, {\n    Action: 'name/cos:GetBucketEncryption',\n    method: 'GET',\n    Bucket: params.Bucket,\n    Region: params.Region,\n    headers: params.Headers,\n    action: 'encryption',\n    tracker: params.tracker\n  }, function (err, data) {\n    if (err) {\n      if (err.statusCode === 404 && err.code === 'NoSuchEncryptionConfiguration') {\n        var result = {\n          EncryptionConfiguration: {\n            Rules: []\n          },\n          statusCode: err.statusCode\n        };\n        err.headers && (result.headers = err.headers);\n        callback(null, result);\n      } else {\n        callback(err);\n      }\n      return;\n    }\n    var Rules = util.makeArray(data.EncryptionConfiguration && data.EncryptionConfiguration.Rule || []);\n    data.EncryptionConfiguration = {\n      Rules: Rules\n    };\n    callback(err, data);\n  });\n}\nfunction deleteBucketEncryption(params, callback) {\n  submitRequest.call(this, {\n    Action: 'name/cos:DeleteBucketReplication',\n    method: 'DELETE',\n    Bucket: params.Bucket,\n    Region: params.Region,\n    headers: params.Headers,\n    action: 'encryption',\n    tracker: params.tracker\n  }, function (err, data) {\n    if (err && err.statusCode === 204) {\n      return callback(null, {\n        statusCode: err.statusCode\n      });\n    } else if (err) {\n      return callback(err);\n    }\n    callback(null, {\n      statusCode: data.statusCode,\n      headers: data.headers\n    });\n  });\n}\n\n// Object 相关\n\n/**\n * 取回对应Object的元数据，Head的权限与Get的权限一致\n * @param  {Object}  params                         参数对象，必须\n *     @param  {String}  params.Bucket              Bucket名称，必须\n *     @param  {String}  params.Region              地域名称，必须\n *     @param  {String}  params.Key                 文件名称，必须\n *     @param  {String}  params.IfModifiedSince     当Object在指定时间后被修改，则返回对应Object元信息，否则返回304，非必须\n * @param  {Function}  callback                     回调函数，必须\n * @return  {Object}  err                           请求失败的错误，如果请求成功，则为空。https://cloud.tencent.com/document/product/436/7730\n * @return  {Object}  data                          为指定 object 的元数据，如果设置了 IfModifiedSince ，且文件未修改，则返回一个对象，NotModified 属性为 true\n *     @return  {Boolean}  data.NotModified         是否在 IfModifiedSince 时间点之后未修改该 object，则为 true\n */\nfunction headObject(params, callback) {\n  submitRequest.call(this, {\n    Action: 'name/cos:HeadObject',\n    method: 'HEAD',\n    Bucket: params.Bucket,\n    Region: params.Region,\n    Key: params.Key,\n    VersionId: params.VersionId,\n    headers: params.Headers,\n    tracker: params.tracker\n  }, function (err, data) {\n    if (err) {\n      var statusCode = err.statusCode;\n      if (params.Headers['If-Modified-Since'] && statusCode && statusCode === 304) {\n        return callback(null, {\n          NotModified: true,\n          statusCode: statusCode\n        });\n      }\n      return callback(err);\n    }\n    data.ETag = util.attr(data.headers, 'etag', '');\n    callback(null, data);\n  });\n}\nfunction listObjectVersions(params, callback) {\n  var reqParams = {};\n  reqParams['prefix'] = params['Prefix'] || '';\n  reqParams['delimiter'] = params['Delimiter'];\n  reqParams['key-marker'] = params['KeyMarker'];\n  reqParams['version-id-marker'] = params['VersionIdMarker'];\n  reqParams['max-keys'] = params['MaxKeys'];\n  reqParams['encoding-type'] = params['EncodingType'];\n  submitRequest.call(this, {\n    Action: 'name/cos:GetBucketObjectVersions',\n    ResourceKey: reqParams['prefix'],\n    method: 'GET',\n    Bucket: params.Bucket,\n    Region: params.Region,\n    headers: params.Headers,\n    qs: reqParams,\n    action: 'versions',\n    tracker: params.tracker\n  }, function (err, data) {\n    if (err) return callback(err);\n    var ListVersionsResult = data.ListVersionsResult || {};\n    var DeleteMarkers = ListVersionsResult.DeleteMarker || [];\n    DeleteMarkers = util.isArray(DeleteMarkers) ? DeleteMarkers : [DeleteMarkers];\n    var Versions = ListVersionsResult.Version || [];\n    Versions = util.isArray(Versions) ? Versions : [Versions];\n    var result = util.clone(ListVersionsResult);\n    delete result.DeleteMarker;\n    delete result.Version;\n    util.extend(result, {\n      DeleteMarkers: DeleteMarkers,\n      Versions: Versions,\n      statusCode: data.statusCode,\n      headers: data.headers\n    });\n    callback(null, result);\n  });\n}\n\n/**\n * 下载 object\n * @param  {Object}  params                                 参数对象，必须\n *     @param  {String}  params.Bucket                      Bucket名称，必须\n *     @param  {String}  params.Region                      地域名称，必须\n *     @param  {String}  params.Key                         文件名称，必须\n *     @param  {WriteStream}  params.Output                 文件写入流，非必须\n *     @param  {String}  params.IfModifiedSince             当Object在指定时间后被修改，则返回对应Object元信息，否则返回304，非必须\n *     @param  {String}  params.IfUnmodifiedSince           如果文件修改时间早于或等于指定时间，才返回文件内容。否则返回 412 (precondition failed)，非必须\n *     @param  {String}  params.IfMatch                     当 ETag 与指定的内容一致，才返回文件。否则返回 412 (precondition failed)，非必须\n *     @param  {String}  params.IfNoneMatch                 当 ETag 与指定的内容不一致，才返回文件。否则返回304 (not modified)，非必须\n *     @param  {String}  params.ResponseContentType         设置返回头部中的 Content-Type 参数，非必须\n *     @param  {String}  params.ResponseContentLanguage     设置返回头部中的 Content-Language 参数，非必须\n *     @param  {String}  params.ResponseExpires             设置返回头部中的 Content-Expires 参数，非必须\n *     @param  {String}  params.ResponseCacheControl        设置返回头部中的 Cache-Control 参数，非必须\n *     @param  {String}  params.ResponseContentDisposition  设置返回头部中的 Content-Disposition 参数，非必须\n *     @param  {String}  params.ResponseContentEncoding     设置返回头部中的 Content-Encoding 参数，非必须\n * @param  {Function}  callback                             回调函数，必须\n * @param  {Object}  err                                    请求失败的错误，如果请求成功，则为空。https://cloud.tencent.com/document/product/436/7730\n * @param  {Object}  data                                   为对应的 object 数据，包括 body 和 headers\n */\nfunction getObject(params, callback) {\n  if (this.options.ObjectKeySimplifyCheck) {\n    // getObject 的 Key 需要校验，避免调用成 getBucket\n    var formatKey = util.simplifyPath(params.Key);\n    if (formatKey === '/') {\n      callback(util.error(new Error('The Getobject Key is illegal')));\n      return;\n    }\n  }\n  var reqParams = params.Query || {};\n  var reqParamsStr = params.QueryString || '';\n  var onProgress = util.throttleOnProgress.call(this, 0, params.onProgress);\n  var tracker = params.tracker;\n  tracker && tracker.setParams({\n    signStartTime: new Date().getTime()\n  });\n  reqParams['response-content-type'] = params['ResponseContentType'];\n  reqParams['response-content-language'] = params['ResponseContentLanguage'];\n  reqParams['response-expires'] = params['ResponseExpires'];\n  reqParams['response-cache-control'] = params['ResponseCacheControl'];\n  reqParams['response-content-disposition'] = params['ResponseContentDisposition'];\n  reqParams['response-content-encoding'] = params['ResponseContentEncoding'];\n\n  // 如果用户自己传入了 output\n  submitRequest.call(this, {\n    Action: 'name/cos:GetObject',\n    method: 'GET',\n    Bucket: params.Bucket,\n    Region: params.Region,\n    Key: params.Key,\n    VersionId: params.VersionId,\n    DataType: params.DataType,\n    headers: params.Headers,\n    qs: reqParams,\n    qsStr: reqParamsStr,\n    rawBody: true,\n    onDownloadProgress: onProgress,\n    tracker: tracker\n  }, function (err, data) {\n    onProgress(null, true);\n    if (err) {\n      var statusCode = err.statusCode;\n      if (params.Headers['If-Modified-Since'] && statusCode && statusCode === 304) {\n        return callback(null, {\n          NotModified: true\n        });\n      }\n      return callback(err);\n    }\n    callback(null, {\n      Body: data.body,\n      ETag: util.attr(data.headers, 'etag', ''),\n      statusCode: data.statusCode,\n      headers: data.headers\n    });\n  });\n}\n\n/**\n * 上传 object\n * @param  {Object} params                                          参数对象，必须\n *     @param  {String}  params.Bucket                              Bucket名称，必须\n *     @param  {String}  params.Region                              地域名称，必须\n *     @param  {String}  params.Key                                 文件名称，必须\n *     @param  {File || Blob || String}  params.Body                上传文件对象或字符串，必须\n *     @param  {String}  params.CacheControl                        RFC 2616 中定义的缓存策略，将作为 Object 元数据保存，非必须\n *     @param  {String}  params.ContentDisposition                  RFC 2616 中定义的文件名称，将作为 Object 元数据保存，非必须\n *     @param  {String}  params.ContentEncoding                     RFC 2616 中定义的编码格式，将作为 Object 元数据保存，非必须\n *     @param  {String}  params.ContentLength                       RFC 2616 中定义的 HTTP 请求内容长度（字节），必须\n *     @param  {String}  params.ContentType                         RFC 2616 中定义的内容类型（MIME），将作为 Object 元数据保存，非必须\n *     @param  {String}  params.Expect                              当使用 Expect: 100-continue 时，在收到服务端确认后，才会发送请求内容，非必须\n *     @param  {String}  params.Expires                             RFC 2616 中定义的过期时间，将作为 Object 元数据保存，非必须\n *     @param  {String}  params.ACL                                 允许用户自定义文件权限，有效值：private | public-read，非必须\n *     @param  {String}  params.GrantRead                           赋予被授权者读取对象的权限，格式：id=\"[OwnerUin]\"，可使用半角逗号（,）分隔多组被授权者，非必须\n *     @param  {String}  params.GrantReadAcp                        赋予被授权者读取对象的访问控制列表（ACL）的权限，格式：id=\"[OwnerUin]\"，可使用半角逗号（,）分隔多组被授权者，非必须\n *     @param  {String}  params.GrantWriteAcp                       赋予被授权者写入对象的访问控制列表（ACL）的权限，格式：id=\"[OwnerUin]\"，可使用半角逗号（,）分隔多组被授权者，非必须\n *     @param  {String}  params.GrantFullControl                    赋予被授权者操作对象的所有权限，格式：id=\"[OwnerUin]\"，可使用半角逗号（,）分隔多组被授权者，非必须\n *     @param  {String}  params.StorageClass                        设置对象的存储级别，枚举值：STANDARD、STANDARD_IA、ARCHIVE，默认值：STANDARD，非必须\n *     @param  {String}  params.x-cos-meta-*                        允许用户自定义的头部信息，将作为对象的元数据保存。大小限制2KB，非必须\n *     @param  {String}  params.ContentSha1                         RFC 3174 中定义的 160-bit 内容 SHA-1 算法校验，非必须\n *     @param  {String}  params.ServerSideEncryption                支持按照指定的加密算法进行服务端数据加密，格式 x-cos-server-side-encryption: \"AES256\"，非必须\n *     @param  {Function}  params.onProgress                        上传进度回调函数\n * @param  {Function}  callback                                     回调函数，必须\n * @return  {Object}  err                                           请求失败的错误，如果请求成功，则为空。https://cloud.tencent.com/document/product/436/7730\n * @return  {Object}  data                                          为对应的 object 数据\n *     @return  {String}  data.ETag                                 为对应上传文件的 ETag 值\n */\nfunction putObject(params, callback) {\n  var self = this;\n  var FileSize = params.ContentLength;\n  var onProgress = util.throttleOnProgress.call(self, FileSize, params.onProgress);\n\n  // 特殊处理 Cache-Control、Content-Type，避免代理更改这两个字段导致写入到 Object 属性里\n  var headers = params.Headers;\n  if (!headers['Cache-Control'] && !headers['cache-control']) headers['Cache-Control'] = '';\n  if (!headers['Content-Type'] && !headers['content-type']) headers['Content-Type'] = params.Body && params.Body.type || '';\n  var needCalcMd5 = params.UploadAddMetaMd5 || self.options.UploadAddMetaMd5 || self.options.UploadCheckContentMd5;\n  var tracker = params.tracker;\n  needCalcMd5 && tracker && tracker.setParams({\n    md5StartTime: new Date().getTime()\n  });\n  util.getBodyMd5(needCalcMd5, params.Body, function (md5) {\n    if (md5) {\n      tracker && tracker.setParams({\n        md5EndTime: new Date().getTime()\n      });\n      if (self.options.UploadCheckContentMd5) headers['Content-MD5'] = util.b64(md5);\n      if (params.UploadAddMetaMd5 || self.options.UploadAddMetaMd5) headers['x-cos-meta-md5'] = md5;\n    }\n    if (params.ContentLength !== undefined) headers['Content-Length'] = params.ContentLength;\n    onProgress(null, true); // 任务状态开始 uploading\n    submitRequest.call(self, {\n      Action: 'name/cos:PutObject',\n      TaskId: params.TaskId,\n      method: 'PUT',\n      Bucket: params.Bucket,\n      Region: params.Region,\n      Key: params.Key,\n      headers: params.Headers,\n      qs: params.Query,\n      body: params.Body,\n      onProgress: onProgress,\n      tracker: tracker\n    }, function (err, data) {\n      if (err) {\n        onProgress(null, true);\n        return callback(err);\n      }\n      onProgress({\n        loaded: FileSize,\n        total: FileSize\n      }, true);\n      var url = getUrl({\n        ForcePathStyle: self.options.ForcePathStyle,\n        protocol: self.options.Protocol,\n        domain: self.options.Domain,\n        bucket: params.Bucket,\n        region: !self.options.UseAccelerate ? params.Region : 'accelerate',\n        object: params.Key\n      });\n      url = url.substr(url.indexOf('://') + 3);\n      data.Location = url;\n      data.ETag = util.attr(data.headers, 'etag', '');\n      callback(null, data);\n    });\n  }, params.onHashProgress);\n}\n\n/**\n * 删除 object\n * @param  {Object}  params                     参数对象，必须\n *     @param  {String}  params.Bucket          Bucket名称，必须\n *     @param  {String}  params.Region          地域名称，必须\n *     @param  {String}  params.Key             object名称，必须\n * @param  {Function}  callback                 回调函数，必须\n * @param  {Object}  err                        请求失败的错误，如果请求成功，则为空。https://cloud.tencent.com/document/product/436/7730\n * @param  {Object}  data                       删除操作成功之后返回的数据\n */\nfunction deleteObject(params, callback) {\n  submitRequest.call(this, {\n    Action: 'name/cos:DeleteObject',\n    method: 'DELETE',\n    Bucket: params.Bucket,\n    Region: params.Region,\n    Key: params.Key,\n    headers: params.Headers,\n    VersionId: params.VersionId,\n    action: params.Recursive ? 'recursive' : '',\n    tracker: params.tracker\n  }, function (err, data) {\n    if (err) {\n      var statusCode = err.statusCode;\n      if (statusCode && statusCode === 404) {\n        return callback(null, {\n          BucketNotFound: true,\n          statusCode: statusCode\n        });\n      } else {\n        return callback(err);\n      }\n    }\n    callback(null, {\n      statusCode: data.statusCode,\n      headers: data.headers\n    });\n  });\n}\n\n/**\n * 获取 object 的 权限列表\n * @param  {Object}  params                         参数对象，必须\n *     @param  {String}  params.Bucket              Bucket名称，必须\n *     @param  {String}  params.Region              地域名称，必须\n *     @param  {String}  params.Key                 object名称，必须\n * @param  {Function}  callback                     回调函数，必须\n * @return  {Object}  err                           请求失败的错误，如果请求成功，则为空。https://cloud.tencent.com/document/product/436/7730\n * @return  {Object}  data                          返回的数据\n *     @return  {Object}  data.AccessControlPolicy  权限列表\n */\nfunction getObjectAcl(params, callback) {\n  var reqParams = {};\n  if (params.VersionId) {\n    reqParams.versionId = params.VersionId;\n  }\n  submitRequest.call(this, {\n    Action: 'name/cos:GetObjectACL',\n    method: 'GET',\n    Bucket: params.Bucket,\n    Region: params.Region,\n    Key: params.Key,\n    headers: params.Headers,\n    qs: reqParams,\n    action: 'acl',\n    tracker: params.tracker\n  }, function (err, data) {\n    if (err) return callback(err);\n    var AccessControlPolicy = data.AccessControlPolicy || {};\n    var Owner = AccessControlPolicy.Owner || {};\n    var Grant = AccessControlPolicy.AccessControlList && AccessControlPolicy.AccessControlList.Grant || [];\n    Grant = util.isArray(Grant) ? Grant : [Grant];\n    var result = decodeAcl(AccessControlPolicy);\n    delete result.GrantWrite;\n    if (data.headers && data.headers['x-cos-acl']) {\n      result.ACL = data.headers['x-cos-acl'];\n    }\n    result = util.extend(result, {\n      Owner: Owner,\n      Grants: Grant,\n      statusCode: data.statusCode,\n      headers: data.headers\n    });\n    callback(null, result);\n  });\n}\n\n/**\n * 设置 object 的 权限列表\n * @param  {Object}  params             参数对象，必须\n *     @param  {String}  params.Bucket  Bucket名称，必须\n *     @param  {String}  params.Region  地域名称，必须\n *     @param  {String}  params.Key     object名称，必须\n * @param  {Function}  callback         回调函数，必须\n * @return  {Object}  err               请求失败的错误，如果请求成功，则为空。https://cloud.tencent.com/document/product/436/7730\n * @return  {Object}  data              返回的数据\n */\nfunction putObjectAcl(params, callback) {\n  var headers = params.Headers;\n  var xml = '';\n  if (params['AccessControlPolicy']) {\n    var AccessControlPolicy = util.clone(params['AccessControlPolicy'] || {});\n    var Grants = AccessControlPolicy.Grants || AccessControlPolicy.Grant;\n    Grants = util.isArray(Grants) ? Grants : [Grants];\n    delete AccessControlPolicy.Grant;\n    delete AccessControlPolicy.Grants;\n    AccessControlPolicy.AccessControlList = {\n      Grant: Grants\n    };\n    xml = util.json2xml({\n      AccessControlPolicy: AccessControlPolicy\n    });\n    headers['Content-Type'] = 'application/xml';\n    headers['Content-MD5'] = util.b64(util.md5(xml));\n  }\n\n  // Grant Header 去重\n  util.each(headers, function (val, key) {\n    if (key.indexOf('x-cos-grant-') === 0) {\n      headers[key] = uniqGrant(headers[key]);\n    }\n  });\n  submitRequest.call(this, {\n    Action: 'name/cos:PutObjectACL',\n    method: 'PUT',\n    Bucket: params.Bucket,\n    Region: params.Region,\n    Key: params.Key,\n    action: 'acl',\n    headers: headers,\n    body: xml,\n    tracker: params.tracker\n  }, function (err, data) {\n    if (err) return callback(err);\n    callback(null, {\n      statusCode: data.statusCode,\n      headers: data.headers\n    });\n  });\n}\n\n/**\n * Options Object请求实现跨域访问的预请求。即发出一个 OPTIONS 请求给服务器以确认是否可以进行跨域操作。\n * @param  {Object}  params             参数对象，必须\n *     @param  {String}  params.Bucket  Bucket名称，必须\n *     @param  {String}  params.Region  地域名称，必须\n *     @param  {String}  params.Key     object名称，必须\n * @param  {Function}  callback         回调函数，必须\n * @return  {Object}  err               请求失败的错误，如果请求成功，则为空。https://cloud.tencent.com/document/product/436/7730\n * @return  {Object}  data              返回的数据\n */\nfunction optionsObject(params, callback) {\n  var headers = params.Headers;\n  headers['Origin'] = params['Origin'];\n  headers['Access-Control-Request-Method'] = params['AccessControlRequestMethod'];\n  headers['Access-Control-Request-Headers'] = params['AccessControlRequestHeaders'];\n  submitRequest.call(this, {\n    Action: 'name/cos:OptionsObject',\n    method: 'OPTIONS',\n    Bucket: params.Bucket,\n    Region: params.Region,\n    Key: params.Key,\n    headers: headers,\n    tracker: params.tracker\n  }, function (err, data) {\n    if (err) {\n      if (err.statusCode && err.statusCode === 403) {\n        return callback(null, {\n          OptionsForbidden: true,\n          statusCode: err.statusCode\n        });\n      }\n      return callback(err);\n    }\n    var headers = data.headers || {};\n    callback(null, {\n      AccessControlAllowOrigin: headers['access-control-allow-origin'],\n      AccessControlAllowMethods: headers['access-control-allow-methods'],\n      AccessControlAllowHeaders: headers['access-control-allow-headers'],\n      AccessControlExposeHeaders: headers['access-control-expose-headers'],\n      AccessControlMaxAge: headers['access-control-max-age'],\n      statusCode: data.statusCode,\n      headers: data.headers\n    });\n  });\n}\n\n/**\n * @param  {Object}                                     参数列表\n *     @param  {String}  Bucket                         Bucket 名称\n *     @param  {String}  Region                         地域名称\n *     @param  {String}  Key                            文件名称\n *     @param  {String}  CopySource                     源文件URL绝对路径，可以通过versionid子资源指定历史版本\n *     @param  {String}  ACL                            允许用户自定义文件权限。有效值：private，public-read默认值：private。\n *     @param  {String}  GrantRead                      赋予被授权者读的权限，格式 x-cos-grant-read: uin=\" \",uin=\" \"，当需要给子账户授权时，uin=\"RootAcountID/SubAccountID\"，当需要给根账户授权时，uin=\"RootAcountID\"。\n *     @param  {String}  GrantWrite                     赋予被授权者写的权限，格式 x-cos-grant-write: uin=\" \",uin=\" \"，当需要给子账户授权时，uin=\"RootAcountID/SubAccountID\"，当需要给根账户授权时，uin=\"RootAcountID\"。\n *     @param  {String}  GrantFullControl               赋予被授权者读写权限，格式 x-cos-grant-full-control: uin=\" \",uin=\" \"，当需要给子账户授权时，uin=\"RootAcountID/SubAccountID\"，当需要给根账户授权时，uin=\"RootAcountID\"。\n *     @param  {String}  MetadataDirective              是否拷贝元数据，枚举值：Copy, Replaced，默认值Copy。假如标记为Copy，忽略Header中的用户元数据信息直接复制；假如标记为Replaced，按Header信息修改元数据。当目标路径和原路径一致，即用户试图修改元数据时，必须为Replaced\n *     @param  {String}  CopySourceIfModifiedSince      当Object在指定时间后被修改，则执行操作，否则返回412。可与x-cos-copy-source-If-None-Match一起使用，与其他条件联合使用返回冲突。\n *     @param  {String}  CopySourceIfUnmodifiedSince    当Object在指定时间后未被修改，则执行操作，否则返回412。可与x-cos-copy-source-If-Match一起使用，与其他条件联合使用返回冲突。\n *     @param  {String}  CopySourceIfMatch              当Object的ETag和给定一致时，则执行操作，否则返回412。可与x-cos-copy-source-If-Unmodified-Since一起使用，与其他条件联合使用返回冲突。\n *     @param  {String}  CopySourceIfNoneMatch          当Object的ETag和给定不一致时，则执行操作，否则返回412。可与x-cos-copy-source-If-Modified-Since一起使用，与其他条件联合使用返回冲突。\n *     @param  {String}  StorageClass                   存储级别，枚举值：存储级别，枚举值：Standard, Standard_IA，Archive；默认值：Standard\n *     @param  {String}  CacheControl                   指定所有缓存机制在整个请求/响应链中必须服从的指令。\n *     @param  {String}  ContentDisposition             MIME 协议的扩展，MIME 协议指示 MIME 用户代理如何显示附加的文件\n *     @param  {String}  ContentEncoding                HTTP 中用来对「采用何种编码格式传输正文」进行协定的一对头部字段\n *     @param  {String}  ContentLength                  设置响应消息的实体内容的大小，单位为字节\n *     @param  {String}  ContentType                    RFC 2616 中定义的 HTTP 请求内容类型（MIME），例如text/plain\n *     @param  {String}  Expect                         请求的特定的服务器行为\n *     @param  {String}  Expires                        响应过期的日期和时间\n *     @param  {String}  params.ServerSideEncryption   支持按照指定的加密算法进行服务端数据加密，格式 x-cos-server-side-encryption: \"AES256\"，非必须\n *     @param  {String}  ContentLanguage                指定内容语言\n *     @param  {String}  x-cos-meta-*                   允许用户自定义的头部信息，将作为 Object 元数据返回。大小限制2K。\n */\nfunction putObjectCopy(params, callback) {\n  // 特殊处理 Cache-Control\n  var self = this;\n  var headers = params.Headers;\n  if (!headers['Cache-Control'] && !headers['cache-control']) headers['Cache-Control'] = '';\n  var CopySource = params.CopySource || '';\n  var m = util.getSourceParams.call(this, CopySource);\n  if (!m) {\n    callback(util.error(new Error('CopySource format error')));\n    return;\n  }\n  var SourceBucket = m.Bucket;\n  var SourceRegion = m.Region;\n  var SourceKey = decodeURIComponent(m.Key);\n  submitRequest.call(this, {\n    Scope: [{\n      action: 'name/cos:GetObject',\n      bucket: SourceBucket,\n      region: SourceRegion,\n      prefix: SourceKey\n    }, {\n      action: 'name/cos:PutObject',\n      bucket: params.Bucket,\n      region: params.Region,\n      prefix: params.Key\n    }],\n    method: 'PUT',\n    Bucket: params.Bucket,\n    Region: params.Region,\n    Key: params.Key,\n    VersionId: params.VersionId,\n    headers: params.Headers,\n    tracker: params.tracker\n  }, function (err, data) {\n    if (err) return callback(err);\n    var result = util.clone(data.CopyObjectResult || {});\n    var url = getUrl({\n      ForcePathStyle: self.options.ForcePathStyle,\n      protocol: self.options.Protocol,\n      domain: self.options.Domain,\n      bucket: params.Bucket,\n      region: params.Region,\n      object: params.Key,\n      isLocation: true\n    });\n    util.extend(result, {\n      Location: url,\n      statusCode: data.statusCode,\n      headers: data.headers\n    });\n    callback(null, result);\n  });\n}\nfunction uploadPartCopy(params, callback) {\n  var CopySource = params.CopySource || '';\n  var m = util.getSourceParams.call(this, CopySource);\n  if (!m) {\n    callback(util.error(new Error('CopySource format error')));\n    return;\n  }\n  var SourceBucket = m.Bucket;\n  var SourceRegion = m.Region;\n  var SourceKey = decodeURIComponent(m.Key);\n  submitRequest.call(this, {\n    Scope: [{\n      action: 'name/cos:GetObject',\n      bucket: SourceBucket,\n      region: SourceRegion,\n      prefix: SourceKey\n    }, {\n      action: 'name/cos:PutObject',\n      bucket: params.Bucket,\n      region: params.Region,\n      prefix: params.Key\n    }],\n    method: 'PUT',\n    Bucket: params.Bucket,\n    Region: params.Region,\n    Key: params.Key,\n    VersionId: params.VersionId,\n    qs: {\n      partNumber: params['PartNumber'],\n      uploadId: params['UploadId']\n    },\n    headers: params.Headers,\n    tracker: params.tracker\n  }, function (err, data) {\n    if (err) return callback(err);\n    var result = util.clone(data.CopyPartResult || {});\n    util.extend(result, {\n      statusCode: data.statusCode,\n      headers: data.headers\n    });\n    callback(null, result);\n  });\n}\nfunction deleteMultipleObject(params, callback) {\n  var Objects = params.Objects || [];\n  var Quiet = params.Quiet;\n  Objects = util.isArray(Objects) ? Objects : [Objects];\n  var xml = util.json2xml({\n    Delete: {\n      Object: Objects,\n      Quiet: Quiet || false\n    }\n  });\n  var headers = params.Headers;\n  headers['Content-Type'] = 'application/xml';\n  headers['Content-MD5'] = util.b64(util.md5(xml));\n  var Scope = util.map(Objects, function (v) {\n    return {\n      action: 'name/cos:DeleteObject',\n      bucket: params.Bucket,\n      region: params.Region,\n      prefix: v.Key\n    };\n  });\n  submitRequest.call(this, {\n    Scope: Scope,\n    method: 'POST',\n    Bucket: params.Bucket,\n    Region: params.Region,\n    body: xml,\n    action: 'delete',\n    headers: headers,\n    tracker: params.tracker\n  }, function (err, data) {\n    if (err) return callback(err);\n    var DeleteResult = data.DeleteResult || {};\n    var Deleted = DeleteResult.Deleted || [];\n    var Errors = DeleteResult.Error || [];\n    Deleted = util.isArray(Deleted) ? Deleted : [Deleted];\n    Errors = util.isArray(Errors) ? Errors : [Errors];\n    var result = util.clone(DeleteResult);\n    util.extend(result, {\n      Error: Errors,\n      Deleted: Deleted,\n      statusCode: data.statusCode,\n      headers: data.headers\n    });\n    callback(null, result);\n  });\n}\nfunction restoreObject(params, callback) {\n  var headers = params.Headers;\n  if (!params['RestoreRequest']) {\n    callback(util.error(new Error('missing param RestoreRequest')));\n    return;\n  }\n  var RestoreRequest = params.RestoreRequest || {};\n  var xml = util.json2xml({\n    RestoreRequest: RestoreRequest\n  });\n  headers['Content-Type'] = 'application/xml';\n  headers['Content-MD5'] = util.b64(util.md5(xml));\n  submitRequest.call(this, {\n    Action: 'name/cos:RestoreObject',\n    method: 'POST',\n    Bucket: params.Bucket,\n    Region: params.Region,\n    Key: params.Key,\n    VersionId: params.VersionId,\n    body: xml,\n    action: 'restore',\n    headers: headers,\n    tracker: params.tracker\n  }, callback);\n}\n\n/**\n * 设置 Object 的标签\n * @param  {Object}  params             参数对象，必须\n *     @param  {String}  params.Bucket  Object名称，必须\n *     @param  {String}  params.Region  地域名称，必须\n *     @param  {Array}   params.TagSet  标签设置，必须\n * @param  {Function}  callback         回调函数，必须\n * @return  {Object}  err               请求失败的错误，如果请求成功，则为空。https://cloud.tencent.com/document/product/436/42998\n * @return  {Object}  data              返回数据\n */\nfunction putObjectTagging(params, callback) {\n  var Tagging = params['Tagging'] || {};\n  var Tags = Tagging.TagSet || Tagging.Tags || params['Tags'] || [];\n  Tags = util.clone(util.isArray(Tags) ? Tags : [Tags]);\n  var xml = util.json2xml({\n    Tagging: {\n      TagSet: {\n        Tag: Tags\n      }\n    }\n  });\n  var headers = params.Headers;\n  headers['Content-Type'] = 'application/xml';\n  headers['Content-MD5'] = util.b64(util.md5(xml));\n  submitRequest.call(this, {\n    Action: 'name/cos:PutObjectTagging',\n    method: 'PUT',\n    Bucket: params.Bucket,\n    Key: params.Key,\n    Region: params.Region,\n    body: xml,\n    action: 'tagging',\n    headers: headers,\n    VersionId: params.VersionId,\n    tracker: params.tracker\n  }, function (err, data) {\n    if (err && err.statusCode === 204) {\n      return callback(null, {\n        statusCode: err.statusCode\n      });\n    } else if (err) {\n      return callback(err);\n    }\n    callback(null, {\n      statusCode: data.statusCode,\n      headers: data.headers\n    });\n  });\n}\n\n/**\n * 获取 Object 的标签设置\n * @param  {Object}  params             参数对象，必须\n *     @param  {String}  params.Bucket  Bucket名称，必须\n *     @param  {String}  params.Region  地域名称，必须\n * @param  {Function}  callback         回调函数，必须\n * @return  {Object}  err               请求失败的错误，如果请求成功，则为空。https://cloud.tencent.com/document/product/436/42998\n * @return  {Object}  data              返回数据\n */\nfunction getObjectTagging(params, callback) {\n  submitRequest.call(this, {\n    Action: 'name/cos:GetObjectTagging',\n    method: 'GET',\n    Key: params.Key,\n    Bucket: params.Bucket,\n    Region: params.Region,\n    headers: params.Headers,\n    action: 'tagging',\n    VersionId: params.VersionId,\n    tracker: params.tracker\n  }, function (err, data) {\n    if (err) {\n      if (err.statusCode === 404 && err.error && (err.error === 'Not Found' || err.error.Code === 'NoSuchTagSet')) {\n        var result = {\n          Tags: [],\n          statusCode: err.statusCode\n        };\n        err.headers && (result.headers = err.headers);\n        callback(null, result);\n      } else {\n        callback(err);\n      }\n      return;\n    }\n    var Tags = [];\n    try {\n      Tags = data.Tagging.TagSet.Tag || [];\n    } catch (e) {}\n    Tags = util.clone(util.isArray(Tags) ? Tags : [Tags]);\n    callback(null, {\n      Tags: Tags,\n      statusCode: data.statusCode,\n      headers: data.headers\n    });\n  });\n}\n\n/**\n * 删除 Object 的 标签设置\n * @param  {Object}  params             参数对象，必须\n *     @param  {String}  params.Bucket  Object名称，必须\n *     @param  {String}  params.Region  地域名称，必须\n * @param  {Function}  callback         回调函数，必须\n * @return  {Object}  err               请求失败的错误，如果请求成功，则为空。https://cloud.tencent.com/document/product/436/42998\n * @return  {Object}  data              返回的数据\n */\nfunction deleteObjectTagging(params, callback) {\n  submitRequest.call(this, {\n    Action: 'name/cos:DeleteObjectTagging',\n    method: 'DELETE',\n    Bucket: params.Bucket,\n    Region: params.Region,\n    Key: params.Key,\n    headers: params.Headers,\n    action: 'tagging',\n    VersionId: params.VersionId,\n    tracker: params.tracker\n  }, function (err, data) {\n    if (err && err.statusCode === 204) {\n      return callback(null, {\n        statusCode: err.statusCode\n      });\n    } else if (err) {\n      return callback(err);\n    }\n    callback(null, {\n      statusCode: data.statusCode,\n      headers: data.headers\n    });\n  });\n}\n\n/**\n * 使用 SQL 语句从指定对象（CSV 格式或者 JSON 格式）中检索内容\n * @param  {Object}  params                   参数对象，必须\n *     @param  {String}  params.Bucket        Object名称，必须\n *     @param  {String}  params.Region        地域名称，必须\n *     @param  {Object}  params.SelectRequest 地域名称，必须\n * @param  {Function}  callback               回调函数，必须\n * @return  {Object}  err                     请求失败的错误，如果请求成功，则为空。https://cloud.tencent.com/document/product/436/42998\n * @return  {Object}  data                    返回的数据\n */\nfunction selectObjectContent(params, callback) {\n  var SelectType = params['SelectType'];\n  if (!SelectType) return callback(util.error(new Error('missing param SelectType')));\n  var SelectRequest = params['SelectRequest'] || {};\n  var xml = util.json2xml({\n    SelectRequest: SelectRequest\n  });\n  var headers = params.Headers;\n  headers['Content-Type'] = 'application/xml';\n  headers['Content-MD5'] = util.b64(util.md5(xml));\n  submitRequest.call(this, {\n    Action: 'name/cos:GetObject',\n    method: 'POST',\n    Bucket: params.Bucket,\n    Region: params.Region,\n    Key: params.Key,\n    headers: params.Headers,\n    action: 'select',\n    qs: {\n      'select-type': params['SelectType']\n    },\n    VersionId: params.VersionId,\n    body: xml,\n    DataType: 'arraybuffer',\n    rawBody: true,\n    tracker: params.tracker\n  }, function (err, data) {\n    if (err && err.statusCode === 204) {\n      return callback(null, {\n        statusCode: err.statusCode\n      });\n    } else if (err) {\n      return callback(err);\n    }\n    var result = util.parseSelectPayload(data.body);\n    callback(null, {\n      statusCode: data.statusCode,\n      headers: data.headers,\n      Body: result.body,\n      Payload: result.payload\n    });\n  });\n}\n\n// 分块上传\n\n/**\n * 初始化分块上传\n * @param  {Object}  params                                     参数对象，必须\n *     @param  {String}  params.Bucket                          Bucket名称，必须\n *     @param  {String}  params.Region                          地域名称，必须\n *     @param  {String}  params.Key                             object名称，必须\n *     @param  {String}  params.UploadId                        object名称，必须\n *     @param  {String}  params.CacheControl                    RFC 2616 中定义的缓存策略，将作为 Object 元数据保存，非必须\n *     @param  {String}  params.ContentDisposition              RFC 2616 中定义的文件名称，将作为 Object 元数据保存    ，非必须\n *     @param  {String}  params.ContentEncoding                 RFC 2616 中定义的编码格式，将作为 Object 元数据保存，非必须\n *     @param  {String}  params.ContentType                     RFC 2616 中定义的内容类型（MIME），将作为 Object 元数据保存，非必须\n *     @param  {String}  params.Expires                         RFC 2616 中定义的过期时间，将作为 Object 元数据保存，非必须\n *     @param  {String}  params.ACL                             允许用户自定义文件权限，非必须\n *     @param  {String}  params.GrantRead                       赋予被授权者读的权限 ，非必须\n *     @param  {String}  params.GrantWrite                      赋予被授权者写的权限 ，非必须\n *     @param  {String}  params.GrantFullControl                赋予被授权者读写权限 ，非必须\n *     @param  {String}  params.StorageClass                    设置Object的存储级别，枚举值：Standard，Standard_IA，Archive，非必须\n *     @param  {String}  params.ServerSideEncryption           支持按照指定的加密算法进行服务端数据加密，格式 x-cos-server-side-encryption: \"AES256\"，非必须\n * @param  {Function}  callback                                 回调函数，必须\n * @return  {Object}  err                                       请求失败的错误，如果请求成功，则为空。https://cloud.tencent.com/document/product/436/7730\n * @return  {Object}  data                                      返回的数据\n */\nfunction multipartInit(params, callback) {\n  var self = this;\n  // 特殊处理 Cache-Control\n  var headers = params.Headers;\n  var tracker = params.tracker;\n\n  // 特殊处理 Cache-Control、Content-Type\n  if (!headers['Cache-Control'] && !headers['cache-control']) headers['Cache-Control'] = '';\n  if (!headers['Content-Type'] && !headers['content-type']) headers['Content-Type'] = params.Body && params.Body.type || '';\n  var needCalcMd5 = params.Body && (params.UploadAddMetaMd5 || self.options.UploadAddMetaMd5);\n  needCalcMd5 && tracker && tracker.setParams({\n    md5StartTime: new Date().getTime()\n  });\n  util.getBodyMd5(needCalcMd5, params.Body, function (md5) {\n    if (md5) params.Headers['x-cos-meta-md5'] = md5;\n    needCalcMd5 && tracker && tracker.setParams({\n      md5EndTime: new Date().getTime()\n    });\n    submitRequest.call(self, {\n      Action: 'name/cos:InitiateMultipartUpload',\n      method: 'POST',\n      Bucket: params.Bucket,\n      Region: params.Region,\n      Key: params.Key,\n      action: 'uploads',\n      headers: params.Headers,\n      qs: params.Query,\n      tracker: tracker\n    }, function (err, data) {\n      if (err) {\n        tracker && tracker.parent && tracker.parent.setParams({\n          errorNode: 'multipartInit'\n        });\n        return callback(err);\n      }\n      data = util.clone(data || {});\n      if (data && data.InitiateMultipartUploadResult) {\n        return callback(null, util.extend(data.InitiateMultipartUploadResult, {\n          statusCode: data.statusCode,\n          headers: data.headers\n        }));\n      }\n      callback(null, data);\n    });\n  }, params.onHashProgress);\n}\n\n/**\n * 分块上传\n * @param  {Object}  params                                 参数对象，必须\n *     @param  {String}  params.Bucket                      Bucket名称，必须\n *     @param  {String}  params.Region                      地域名称，必须\n *     @param  {String}  params.Key                         object名称，必须\n *     @param  {File || Blob || String}  params.Body        上传文件对象或字符串\n *     @param  {String} params.ContentLength                RFC 2616 中定义的 HTTP 请求内容长度（字节），非必须\n *     @param  {String} params.Expect                       当使用 Expect: 100-continue 时，在收到服务端确认后，才会发送请求内容，非必须\n *     @param  {String} params.ServerSideEncryption         支持按照指定的加密算法进行服务端数据加密，格式 x-cos-server-side-encryption: \"AES256\"，非必须\n *     @param  {String} params.ContentSha1                  RFC 3174 中定义的 160-bit 内容 SHA-1 算法校验值，非必须\n * @param  {Function}  callback                             回调函数，必须\n *     @return  {Object}  err                               请求失败的错误，如果请求成功，则为空。https://cloud.tencent.com/document/product/436/7730\n *     @return  {Object}  data                              返回的数据\n *     @return  {Object}  data.ETag                         返回的文件分块 sha1 值\n */\nfunction multipartUpload(params, callback) {\n  var self = this;\n  util.getFileSize('multipartUpload', params, function () {\n    var tracker = params.tracker;\n    var needCalcMd5 = self.options.UploadCheckContentMd5;\n    needCalcMd5 && tracker && tracker.setParams({\n      md5StartTime: new Date().getTime()\n    });\n    util.getBodyMd5(needCalcMd5, params.Body, function (md5) {\n      if (md5) params.Headers['Content-MD5'] = util.b64(md5);\n      needCalcMd5 && tracker && tracker.setParams({\n        md5EndTime: new Date().getTime()\n      });\n      tracker && tracker.setParams({\n        partNumber: params.PartNumber\n      });\n      submitRequest.call(self, {\n        Action: 'name/cos:UploadPart',\n        TaskId: params.TaskId,\n        method: 'PUT',\n        Bucket: params.Bucket,\n        Region: params.Region,\n        Key: params.Key,\n        qs: {\n          partNumber: params['PartNumber'],\n          uploadId: params['UploadId']\n        },\n        headers: params.Headers,\n        onProgress: params.onProgress,\n        body: params.Body || null,\n        tracker: tracker\n      }, function (err, data) {\n        if (err) {\n          tracker && tracker.parent && tracker.parent.setParams({\n            errorNode: 'multipartUpload'\n          });\n          return callback(err);\n        }\n        callback(null, {\n          ETag: util.attr(data.headers, 'etag', ''),\n          statusCode: data.statusCode,\n          headers: data.headers\n        });\n      });\n    });\n  });\n}\n\n/**\n * 完成分块上传\n * @param  {Object}  params                             参数对象，必须\n *     @param  {String}  params.Bucket                  Bucket名称，必须\n *     @param  {String}  params.Region                  地域名称，必须\n *     @param  {String}  params.Key                     object名称，必须\n *     @param  {Array}   params.Parts                   分块信息列表，必须\n *     @param  {String}  params.Parts[i].PartNumber     块编号，必须\n *     @param  {String}  params.Parts[i].ETag           分块的 sha1 校验值\n * @param  {Function}  callback                         回调函数，必须\n * @return  {Object}  err                               请求失败的错误，如果请求成功，则为空。https://cloud.tencent.com/document/product/436/7730\n * @return  {Object}  data                              返回的数据\n *     @return  {Object}  data.CompleteMultipartUpload  完成分块上传后的文件信息，包括Location, Bucket, Key 和 ETag\n */\nfunction multipartComplete(params, callback) {\n  var self = this;\n  var UploadId = params.UploadId;\n  var Parts = params['Parts'];\n  var tracker = params.tracker;\n  for (var i = 0, len = Parts.length; i < len; i++) {\n    if (Parts[i]['ETag'] && Parts[i]['ETag'].indexOf('\"') === 0) {\n      continue;\n    }\n    Parts[i]['ETag'] = '\"' + Parts[i]['ETag'] + '\"';\n  }\n  var xml = util.json2xml({\n    CompleteMultipartUpload: {\n      Part: Parts\n    }\n  });\n  // CSP/ceph CompleteMultipartUpload 接口 body 写死了限制 1MB，这里最多 10000 片时，xml 字符串去掉空格853KB\n  xml = xml.replace(/\\n\\s*/g, '');\n  var headers = params.Headers;\n  headers['Content-Type'] = 'application/xml';\n  headers['Content-MD5'] = util.b64(util.md5(xml));\n  submitRequest.call(this, {\n    Action: 'name/cos:CompleteMultipartUpload',\n    method: 'POST',\n    Bucket: params.Bucket,\n    Region: params.Region,\n    Key: params.Key,\n    qs: {\n      uploadId: UploadId\n    },\n    body: xml,\n    headers: headers,\n    tracker: tracker\n  }, function (err, data) {\n    if (err) {\n      tracker && tracker.parent && tracker.parent.setParams({\n        errorNode: 'multipartComplete'\n      });\n      return callback(err);\n    }\n    var url = getUrl({\n      ForcePathStyle: self.options.ForcePathStyle,\n      protocol: self.options.Protocol,\n      domain: self.options.Domain,\n      bucket: params.Bucket,\n      region: params.Region,\n      object: params.Key,\n      isLocation: true\n    });\n    var res = data.CompleteMultipartUploadResult || {};\n    // pic-operations 处理\n    if (res.ProcessResults) {\n      res.UploadResult = {\n        OriginalInfo: {\n          Key: res.Key,\n          Location: url,\n          ETag: res.ETag,\n          ImageInfo: res.ImageInfo\n        },\n        ProcessResults: res.ProcessResults\n      };\n      delete res.ImageInfo;\n      delete res.ProcessResults;\n    }\n    // callback 处理\n    if (res.CallbackResult) {\n      var callbackResult = res.CallbackResult;\n      if (callbackResult.Status === '200' && callbackResult.CallbackBody) {\n        try {\n          res.CallbackBody = JSON.parse(util.decodeBase64(callbackResult.CallbackBody));\n        } catch (e) {\n          res.CallbackBody = {};\n        }\n      } else {\n        res.CallbackError = callbackResult.Error || {};\n      }\n      delete res.CallbackResult;\n    }\n    // returnBody 处理\n    if (res.ReturnBodyResult) {\n      var returnBodyResult = res.ReturnBodyResult;\n      if (returnBodyResult.Status === '200' && returnBodyResult.ReturnBody) {\n        try {\n          res.ReturnBody = JSON.parse(util.decodeBase64(returnBodyResult.ReturnBody));\n        } catch (e) {\n          res.ReturnBody = {};\n        }\n      } else {\n        res.ReturnError = {\n          Code: returnBodyResult.Code,\n          Message: returnBodyResult.Message,\n          Status: returnBodyResult.Status\n        };\n      }\n      delete res.ReturnBodyResult;\n    }\n    var result = util.extend(res, {\n      Location: url,\n      statusCode: data.statusCode,\n      headers: data.headers\n    });\n    callback(null, result);\n  });\n}\n\n/**\n * 分块上传任务列表查询\n * @param  {Object}  params                                 参数对象，必须\n *     @param  {String}  params.Bucket                      Bucket名称，必须\n *     @param  {String}  params.Region                      地域名称，必须\n *     @param  {String}  params.Delimiter                   定界符为一个符号，如果有Prefix，则将Prefix到delimiter之间的相同路径归为一类，定义为Common Prefix，然后列出所有Common Prefix。如果没有Prefix，则从路径起点开始，非必须\n *     @param  {String}  params.EncodingType                规定返回值的编码方式，非必须\n *     @param  {String}  params.Prefix                      前缀匹配，用来规定返回的文件前缀地址，非必须\n *     @param  {String}  params.MaxUploads                  单次返回最大的条目数量，默认1000，非必须\n *     @param  {String}  params.KeyMarker                   与upload-id-marker一起使用 </Br>当upload-id-marker未被指定时，ObjectName字母顺序大于key-marker的条目将被列出 </Br>当upload-id-marker被指定时，ObjectName字母顺序大于key-marker的条目被列出，ObjectName字母顺序等于key-marker同时UploadId大于upload-id-marker的条目将被列出，非必须\n *     @param  {String}  params.UploadIdMarker              与key-marker一起使用 </Br>当key-marker未被指定时，upload-id-marker将被忽略 </Br>当key-marker被指定时，ObjectName字母顺序大于key-marker的条目被列出，ObjectName字母顺序等于key-marker同时UploadId大于upload-id-marker的条目将被列出，非必须\n * @param  {Function}  callback                             回调函数，必须\n * @return  {Object}  err                                   请求失败的错误，如果请求成功，则为空。https://cloud.tencent.com/document/product/436/7730\n * @return  {Object}  data                                  返回的数据\n *     @return  {Object}  data.ListMultipartUploadsResult   分块上传任务信息\n */\nfunction multipartList(params, callback) {\n  var reqParams = {};\n  reqParams['delimiter'] = params['Delimiter'];\n  reqParams['encoding-type'] = params['EncodingType'];\n  reqParams['prefix'] = params['Prefix'] || '';\n  reqParams['max-uploads'] = params['MaxUploads'];\n  reqParams['key-marker'] = params['KeyMarker'];\n  reqParams['upload-id-marker'] = params['UploadIdMarker'];\n  reqParams = util.clearKey(reqParams);\n  var tracker = params.tracker;\n  tracker && tracker.setParams({\n    signStartTime: new Date().getTime()\n  });\n  submitRequest.call(this, {\n    Action: 'name/cos:ListMultipartUploads',\n    ResourceKey: reqParams['prefix'],\n    method: 'GET',\n    Bucket: params.Bucket,\n    Region: params.Region,\n    headers: params.Headers,\n    qs: reqParams,\n    action: 'uploads',\n    tracker: tracker\n  }, function (err, data) {\n    if (err) {\n      tracker && tracker.parent && tracker.parent.setParams({\n        errorNode: 'multipartList'\n      });\n      return callback(err);\n    }\n    if (data && data.ListMultipartUploadsResult) {\n      var Upload = data.ListMultipartUploadsResult.Upload || [];\n      Upload = util.isArray(Upload) ? Upload : [Upload];\n      data.ListMultipartUploadsResult.Upload = Upload;\n    }\n    var result = util.clone(data.ListMultipartUploadsResult || {});\n    util.extend(result, {\n      statusCode: data.statusCode,\n      headers: data.headers\n    });\n    callback(null, result);\n  });\n}\n\n/**\n * 上传的分块列表查询\n * @param  {Object}  params                                 参数对象，必须\n *     @param  {String}  params.Bucket                      Bucket名称，必须\n *     @param  {String}  params.Region                      地域名称，必须\n *     @param  {String}  params.Key                         object名称，必须\n *     @param  {String}  params.UploadId                    标示本次分块上传的ID，必须\n *     @param  {String}  params.EncodingType                规定返回值的编码方式，非必须\n *     @param  {String}  params.MaxParts                    单次返回最大的条目数量，默认1000，非必须\n *     @param  {String}  params.PartNumberMarker            默认以UTF-8二进制顺序列出条目，所有列出条目从marker开始，非必须\n * @param  {Function}  callback                             回调函数，必须\n * @return  {Object}  err                                   请求失败的错误，如果请求成功，则为空。https://cloud.tencent.com/document/product/436/7730\n * @return  {Object}  data                                  返回的数据\n *     @return  {Object}  data.ListMultipartUploadsResult   分块信息\n */\nfunction multipartListPart(params, callback) {\n  var reqParams = {};\n  var tracker = params.tracker;\n  reqParams['uploadId'] = params['UploadId'];\n  reqParams['encoding-type'] = params['EncodingType'];\n  reqParams['max-parts'] = params['MaxParts'];\n  reqParams['part-number-marker'] = params['PartNumberMarker'];\n  submitRequest.call(this, {\n    Action: 'name/cos:ListParts',\n    method: 'GET',\n    Bucket: params.Bucket,\n    Region: params.Region,\n    Key: params.Key,\n    headers: params.Headers,\n    qs: reqParams,\n    tracker: tracker\n  }, function (err, data) {\n    if (err) {\n      tracker && tracker.parent && tracker.parent.setParams({\n        errorNode: 'multipartListPart'\n      });\n      return callback(err);\n    }\n    var ListPartsResult = data.ListPartsResult || {};\n    var Part = ListPartsResult.Part || [];\n    Part = util.isArray(Part) ? Part : [Part];\n    ListPartsResult.Part = Part;\n    var result = util.clone(ListPartsResult);\n    util.extend(result, {\n      statusCode: data.statusCode,\n      headers: data.headers\n    });\n    callback(null, result);\n  });\n}\n\n/**\n * 抛弃分块上传\n * @param  {Object}  params                 参数对象，必须\n *     @param  {String}  params.Bucket      Bucket名称，必须\n *     @param  {String}  params.Region      地域名称，必须\n *     @param  {String}  params.Key         object名称，必须\n *     @param  {String}  params.UploadId    标示本次分块上传的ID，必须\n * @param  {Function}  callback             回调函数，必须\n *     @return  {Object}    err             请求失败的错误，如果请求成功，则为空。https://cloud.tencent.com/document/product/436/7730\n *     @return  {Object}    data            返回的数据\n */\nfunction multipartAbort(params, callback) {\n  var reqParams = {};\n  reqParams['uploadId'] = params['UploadId'];\n  submitRequest.call(this, {\n    Action: 'name/cos:AbortMultipartUpload',\n    method: 'DELETE',\n    Bucket: params.Bucket,\n    Region: params.Region,\n    Key: params.Key,\n    headers: params.Headers,\n    qs: reqParams,\n    tracker: params.tracker\n  }, function (err, data) {\n    if (err) return callback(err);\n    callback(null, {\n      statusCode: data.statusCode,\n      headers: data.headers\n    });\n  });\n}\n\n/**\n * 抛弃分块上传\n * @param  {Object}  params                 参数对象，必须\n *     @param  {String}  params.Bucket      Bucket名称，必须\n *     @param  {String}  params.Region      地域名称，必须\n *     @param  {String}  params.Key         object名称，必须\n *     @param  {String}  params.UploadId    标示本次分块上传的ID，必须\n * @param  {Function}  callback             回调函数，必须\n *     @return  {Object}    err             请求失败的错误，如果请求成功，则为空。https://cloud.tencent.com/document/product/436/7730\n *     @return  {Object}    data            返回的数据\n */\nfunction request(params, callback) {\n  submitRequest.call(this, {\n    method: params.Method,\n    Bucket: params.Bucket,\n    Region: params.Region,\n    Key: params.Key,\n    action: params.Action,\n    headers: params.Headers,\n    qs: params.Query,\n    body: params.Body,\n    Url: params.Url,\n    rawBody: params.RawBody,\n    DataType: params.DataType,\n    tracker: params.tracker\n  }, function (err, data) {\n    if (err) return callback(err);\n    if (data && data.body) {\n      data.Body = data.body;\n      delete data.body;\n    }\n    callback(err, data);\n  });\n}\n\n/**\n * 追加上传\n * @param  {Object}  params                                         参数对象，必须\n *     @param  {String}  params.Bucket                              Bucket名称，必须\n *     @param  {String}  params.Region                              地域名称，必须\n *     @param  {String}  params.Key                                 object名称，必须\n *     @param  {File || Blob || String}  params.Body                上传文件对象或字符串\n *     @param  {Number}  params.Position                            追加操作的起始点，单位为字节，必须\n *     @param  {String}  params.CacheControl                        RFC 2616 中定义的缓存策略，将作为 Object 元数据保存，非必须\n *     @param  {String}  params.ContentDisposition                  RFC 2616 中定义的文件名称，将作为 Object 元数据保存，非必须\n *     @param  {String}  params.ContentEncoding                     RFC 2616 中定义的编码格式，将作为 Object 元数据保存，非必须\n *     @param  {String}  params.ContentLength                       RFC 2616 中定义的 HTTP 请求内容长度（字节），必须\n *     @param  {String}  params.ContentType                         RFC 2616 中定义的内容类型（MIME），将作为 Object 元数据保存，非必须\n *     @param  {String}  params.Expect                              当使用 Expect: 100-continue 时，在收到服务端确认后，才会发送请求内容，非必须\n *     @param  {String}  params.Expires                             RFC 2616 中定义的过期时间，将作为 Object 元数据保存，非必须\n *     @param  {String}  params.ACL                                 允许用户自定义文件权限，有效值：private | public-read，非必须\n *     @param  {String}  params.GrantRead                           赋予被授权者读取对象的权限，格式：id=\"[OwnerUin]\"，可使用半角逗号（,）分隔多组被授权者，非必须\n *     @param  {String}  params.GrantReadAcp                        赋予被授权者读取对象的访问控制列表（ACL）的权限，格式：id=\"[OwnerUin]\"，可使用半角逗号（,）分隔多组被授权者，非必须\n *     @param  {String}  params.GrantWriteAcp                       赋予被授权者写入对象的访问控制列表（ACL）的权限，格式：id=\"[OwnerUin]\"，可使用半角逗号（,）分隔多组被授权者，非必须\n *     @param  {String}  params.GrantFullControl                    赋予被授权者操作对象的所有权限，格式：id=\"[OwnerUin]\"，可使用半角逗号（,）分隔多组被授权者，非必须\n *     @param  {String}  params.StorageClass                        设置对象的存储级别，枚举值：STANDARD、STANDARD_IA、ARCHIVE，默认值：STANDARD，非必须\n *     @param  {String}  params.x-cos-meta-*                        允许用户自定义的头部信息，将作为对象的元数据保存。大小限制2KB，非必须\n *     @param  {String}  params.ContentSha1                         RFC 3174 中定义的 160-bit 内容 SHA-1 算法校验，非必须\n *     @param  {String}  params.ServerSideEncryption                支持按照指定的加密算法进行服务端数据加密，格式 x-cos-server-side-encryption: \"AES256\"，非必须\n * @param  {Function}  callback                                     回调函数，必须\n *     @return  {Object}    err                                     请求失败的错误，如果请求成功，则为空。https://cloud.tencent.com/document/product/436/7730\n *     @return  {Object}    data                                    返回的数据\n */\nfunction appendObject(params, callback) {\n  // 特殊处理 Cache-Control、Content-Type，避免代理更改这两个字段导致写入到 Object 属性里\n  var headers = params.Headers;\n  if (!headers['Cache-Control'] && !headers['cache-control']) headers['Cache-Control'] = '';\n  if (!headers['Content-Type'] && !headers['content-type']) headers['Content-Type'] = params.Body && params.Body.type || '';\n  submitRequest.call(this, {\n    Action: 'name/cos:AppendObject',\n    method: 'POST',\n    Bucket: params.Bucket,\n    Region: params.Region,\n    action: 'append',\n    Key: params.Key,\n    body: params.Body,\n    qs: {\n      position: params.Position\n    },\n    headers: params.Headers,\n    tracker: params.tracker\n  }, function (err, data) {\n    if (err) return callback(err);\n    callback(null, data);\n  });\n}\n\n/**\n * 获取签名\n * @param  {Object}  params             参数对象，必须\n *     @param  {String}  params.Method  请求方法，必须\n *     @param  {String}  params.Key     object名称，必须\n *     @param  {String}  params.Expires 名超时时间，单位秒，可选\n * @return  {String}  data              返回签名字符串\n */\nfunction getAuth(params) {\n  var self = this;\n  return util.getAuth({\n    SecretId: params.SecretId || this.options.SecretId || '',\n    SecretKey: params.SecretKey || this.options.SecretKey || '',\n    Bucket: params.Bucket,\n    Region: params.Region,\n    Method: params.Method,\n    Key: params.Key,\n    Query: params.Query,\n    Headers: params.Headers,\n    Expires: params.Expires,\n    UseRawKey: self.options.UseRawKey,\n    SystemClockOffset: self.options.SystemClockOffset\n  });\n}\n\n/**\n * 获取文件下载链接\n * @param  {Object}  params                 参数对象，必须\n *     @param  {String}  params.Bucket      Bucket名称，必须\n *     @param  {String}  params.Region      地域名称，必须\n *     @param  {String}  params.Key         object名称，必须\n *     @param  {String}  params.Method      请求的方法，可选\n *     @param  {String}  params.Expires     签名超时时间，单位秒，可选\n * @param  {Function}  callback             回调函数，必须\n *     @return  {Object}    err             请求失败的错误，如果请求成功，则为空。https://cloud.tencent.com/document/product/436/7730\n *     @return  {Object}    data            返回的数据\n */\nfunction getObjectUrl(params, callback) {\n  var self = this;\n  var useAccelerate = params.UseAccelerate === undefined ? self.options.UseAccelerate : params.UseAccelerate;\n  var url = getUrl({\n    ForcePathStyle: self.options.ForcePathStyle,\n    protocol: params.Protocol || self.options.Protocol,\n    domain: params.Domain || self.options.Domain,\n    bucket: params.Bucket,\n    region: useAccelerate ? 'accelerate' : params.Region,\n    object: params.Key\n  });\n  var queryParamsStr = '';\n  if (params.Query) {\n    queryParamsStr += util.obj2str(params.Query);\n  }\n  if (params.QueryString) {\n    queryParamsStr += (queryParamsStr ? '&' : '') + params.QueryString;\n  }\n  var syncUrl = url;\n  if (params.Sign !== undefined && !params.Sign) {\n    queryParamsStr && (syncUrl += '?' + queryParamsStr);\n    callback(null, {\n      Url: syncUrl\n    });\n    return syncUrl;\n  }\n\n  // 签名加上 Host，避免跨桶访问\n  var SignHost = getSignHost.call(this, {\n    Bucket: params.Bucket,\n    Region: params.Region,\n    UseAccelerate: params.UseAccelerate,\n    Url: url\n  });\n  var AuthData = getAuthorizationAsync.call(this, {\n    Action: (params.Method || '').toUpperCase() === 'PUT' ? 'name/cos:PutObject' : 'name/cos:GetObject',\n    Bucket: params.Bucket || '',\n    Region: params.Region || '',\n    Method: params.Method || 'get',\n    Key: params.Key,\n    Expires: params.Expires,\n    Headers: params.Headers,\n    Query: params.Query,\n    SignHost: SignHost,\n    ForceSignHost: params.ForceSignHost === false ? false : self.options.ForceSignHost // getObjectUrl支持传参ForceSignHost\n  }, function (err, AuthData) {\n    if (!callback) return;\n    if (err) {\n      callback(err);\n      return;\n    }\n\n    // 兼容万象url qUrlParamList需要再encode一次\n    var replaceUrlParamList = function replaceUrlParamList(url) {\n      var urlParams = url.match(/q-url-param-list.*?(?=&)/g)[0];\n      var encodedParams = 'q-url-param-list=' + encodeURIComponent(urlParams.replace(/q-url-param-list=/, '')).toLowerCase();\n      var reg = new RegExp(urlParams, 'g');\n      var replacedUrl = url.replace(reg, encodedParams);\n      return replacedUrl;\n    };\n    var signUrl = url;\n    signUrl += '?' + (AuthData.Authorization.indexOf('q-signature') > -1 ? replaceUrlParamList(AuthData.Authorization) : 'sign=' + encodeURIComponent(AuthData.Authorization));\n    AuthData.SecurityToken && (signUrl += '&x-cos-security-token=' + AuthData.SecurityToken);\n    AuthData.ClientIP && (signUrl += '&clientIP=' + AuthData.ClientIP);\n    AuthData.ClientUA && (signUrl += '&clientUA=' + AuthData.ClientUA);\n    AuthData.Token && (signUrl += '&token=' + AuthData.Token);\n    queryParamsStr && (signUrl += '&' + queryParamsStr);\n    setTimeout(function () {\n      callback(null, {\n        Url: signUrl\n      });\n    });\n  });\n  if (AuthData) {\n    syncUrl += '?' + AuthData.Authorization + (AuthData.SecurityToken ? '&x-cos-security-token=' + AuthData.SecurityToken : '');\n    queryParamsStr && (syncUrl += '&' + queryParamsStr);\n  } else {\n    queryParamsStr && (syncUrl += '?' + queryParamsStr);\n  }\n  return syncUrl;\n}\n\n/**\n * 私有方法\n */\nfunction decodeAcl(AccessControlPolicy) {\n  var result = {\n    GrantFullControl: [],\n    GrantWrite: [],\n    GrantRead: [],\n    GrantReadAcp: [],\n    GrantWriteAcp: [],\n    ACL: ''\n  };\n  var GrantMap = {\n    FULL_CONTROL: 'GrantFullControl',\n    WRITE: 'GrantWrite',\n    READ: 'GrantRead',\n    READ_ACP: 'GrantReadAcp',\n    WRITE_ACP: 'GrantWriteAcp'\n  };\n  var AccessControlList = AccessControlPolicy && AccessControlPolicy.AccessControlList || {};\n  var Grant = AccessControlList.Grant;\n  if (Grant) {\n    Grant = util.isArray(Grant) ? Grant : [Grant];\n  }\n  var PublicAcl = {\n    READ: 0,\n    WRITE: 0,\n    FULL_CONTROL: 0\n  };\n  Grant && Grant.length && util.each(Grant, function (item) {\n    var uriMatch = item.Grantee.URI && item.Grantee.URI.endsWith('/groups/global/AllUsers');\n    if (item.Grantee.ID === 'qcs::cam::anyone:anyone' || uriMatch) {\n      PublicAcl[item.Permission] = 1;\n    } else if (item.Grantee.ID !== AccessControlPolicy.Owner.ID) {\n      result[GrantMap[item.Permission]].push('id=\"' + item.Grantee.ID + '\"');\n    }\n  });\n  if (PublicAcl.FULL_CONTROL || PublicAcl.WRITE && PublicAcl.READ) {\n    result.ACL = 'public-read-write';\n  } else if (PublicAcl.READ) {\n    result.ACL = 'public-read';\n  } else {\n    result.ACL = 'private';\n  }\n  util.each(GrantMap, function (item) {\n    result[item] = uniqGrant(result[item].join(','));\n  });\n  return result;\n}\n\n// Grant 去重\nfunction uniqGrant(str) {\n  var arr = str.split(',');\n  var exist = {};\n  var i, item;\n  for (i = 0; i < arr.length;) {\n    item = arr[i].trim();\n    if (exist[item]) {\n      arr.splice(i, 1);\n    } else {\n      exist[item] = true;\n      arr[i] = item;\n      i++;\n    }\n  }\n  return arr.join(',');\n}\n\n// 生成操作 url\nfunction getUrl(params) {\n  var region = params.region || '';\n  var longBucket = params.bucket || '';\n  var shortBucket = longBucket.substr(0, longBucket.lastIndexOf('-'));\n  var appId = longBucket.substr(longBucket.lastIndexOf('-') + 1);\n  var domain = params.domain;\n  var object = params.object;\n  if (typeof domain === 'function') {\n    domain = domain({\n      Bucket: longBucket,\n      Region: region\n    });\n  }\n  // 兼容不带冒号的http、https\n  if (['http', 'https'].includes(params.protocol)) {\n    params.protocol = params.protocol + ':';\n  }\n  var protocol = params.protocol || (util.isBrowser && (typeof location === \"undefined\" ? \"undefined\" : _typeof(location)) === 'object' && location.protocol === 'http:' ? 'http:' : 'https:');\n  if (!domain) {\n    if (['cn-south', 'cn-south-2', 'cn-north', 'cn-east', 'cn-southwest', 'sg'].indexOf(region) > -1) {\n      domain = '{Region}.myqcloud.com';\n    } else {\n      domain = 'cos.{Region}.myqcloud.com';\n    }\n    if (!params.ForcePathStyle) {\n      domain = '{Bucket}.' + domain;\n    }\n  }\n  domain = domain.replace(/\\{\\{AppId\\}\\}/gi, appId).replace(/\\{\\{Bucket\\}\\}/gi, shortBucket).replace(/\\{\\{Region\\}\\}/gi, region).replace(/\\{\\{.*?\\}\\}/gi, '');\n  domain = domain.replace(/\\{AppId\\}/gi, appId).replace(/\\{BucketName\\}/gi, shortBucket).replace(/\\{Bucket\\}/gi, longBucket).replace(/\\{Region\\}/gi, region).replace(/\\{.*?\\}/gi, '');\n  if (!/^[a-zA-Z]+:\\/\\//.test(domain)) {\n    domain = protocol + '//' + domain;\n  }\n\n  // 去掉域名最后的斜杆\n  if (domain.slice(-1) === '/') {\n    domain = domain.slice(0, -1);\n  }\n  var url = domain;\n  if (params.ForcePathStyle) {\n    url += '/' + longBucket;\n  }\n  url += '/';\n  if (object) {\n    url += util.camSafeUrlEncode(object).replace(/%2F/g, '/');\n  }\n  if (params.isLocation) {\n    url = url.replace(/^https?:\\/\\//, '');\n  }\n  return url;\n}\nvar getSignHost = function getSignHost(opt) {\n  if (!opt.Bucket || !opt.Region) return '';\n  var useAccelerate = opt.UseAccelerate === undefined ? this.options.UseAccelerate : opt.UseAccelerate;\n  var url = opt.Url || getUrl({\n    ForcePathStyle: this.options.ForcePathStyle,\n    protocol: this.options.Protocol,\n    domain: this.options.Domain,\n    bucket: opt.Bucket,\n    region: useAccelerate ? 'accelerate' : opt.Region\n  });\n  var urlHost = url.replace(/^https?:\\/\\/([^/]+)(\\/.*)?$/, '$1');\n  return urlHost;\n};\n\n// 异步获取签名\nfunction getAuthorizationAsync(params, callback) {\n  var headers = util.clone(params.Headers);\n  var headerHost = '';\n  util.each(headers, function (v, k) {\n    (v === '' || ['content-type', 'cache-control', 'expires'].indexOf(k.toLowerCase()) > -1) && delete headers[k];\n    if (k.toLowerCase() === 'host') headerHost = v;\n  });\n  // ForceSignHost明确传入false才不加入host签名\n  var forceSignHost = params.ForceSignHost === false ? false : true;\n\n  // Host 加入签名计算\n  if (!headerHost && params.SignHost && forceSignHost) headers.Host = params.SignHost;\n\n  // 获取凭证的回调，避免用户 callback 多次\n  var cbDone = false;\n  var cb = function cb(err, AuthData) {\n    if (cbDone) return;\n    cbDone = true;\n    if (AuthData && AuthData.XCosSecurityToken && !AuthData.SecurityToken) {\n      AuthData = util.clone(AuthData);\n      AuthData.SecurityToken = AuthData.XCosSecurityToken;\n      delete AuthData.XCosSecurityToken;\n    }\n    callback && callback(err, AuthData);\n  };\n  var self = this;\n  var Bucket = params.Bucket || '';\n  var Region = params.Region || '';\n\n  // PathName\n  var KeyName = params.Key || '';\n  if (self.options.ForcePathStyle && Bucket) {\n    KeyName = Bucket + '/' + KeyName;\n  }\n  var Pathname = '/' + KeyName;\n\n  // Action、ResourceKey\n  var StsData = {};\n  var Scope = params.Scope;\n  if (!Scope) {\n    var Action = params.Action || '';\n    var ResourceKey = params.ResourceKey || params.Key || '';\n    Scope = params.Scope || [{\n      action: Action,\n      bucket: Bucket,\n      region: Region,\n      prefix: ResourceKey\n    }];\n  }\n  var ScopeKey = util.md5(JSON.stringify(Scope));\n\n  // STS\n  self._StsCache = self._StsCache || [];\n  (function () {\n    var i, AuthData;\n    for (i = self._StsCache.length - 1; i >= 0; i--) {\n      AuthData = self._StsCache[i];\n      var compareTime = Math.round(util.getSkewTime(self.options.SystemClockOffset) / 1000) + 30;\n      if (AuthData.StartTime && compareTime < AuthData.StartTime || compareTime >= AuthData.ExpiredTime) {\n        self._StsCache.splice(i, 1);\n        continue;\n      }\n      if (!AuthData.ScopeLimit || AuthData.ScopeLimit && AuthData.ScopeKey === ScopeKey) {\n        StsData = AuthData;\n        break;\n      }\n    }\n  })();\n  var calcAuthByTmpKey = function calcAuthByTmpKey() {\n    var KeyTime = '';\n    if (StsData.StartTime && params.Expires) KeyTime = StsData.StartTime + ';' + (StsData.StartTime + params.Expires * 1);else if (StsData.StartTime && StsData.ExpiredTime) KeyTime = StsData.StartTime + ';' + StsData.ExpiredTime;\n    var Authorization = util.getAuth({\n      SecretId: StsData.TmpSecretId,\n      SecretKey: StsData.TmpSecretKey,\n      Method: params.Method,\n      Pathname: Pathname,\n      Query: params.Query,\n      Headers: headers,\n      Expires: params.Expires,\n      UseRawKey: self.options.UseRawKey,\n      SystemClockOffset: self.options.SystemClockOffset,\n      KeyTime: KeyTime,\n      ForceSignHost: forceSignHost\n    });\n    var AuthData = {\n      Authorization: Authorization,\n      SecurityToken: StsData.SecurityToken || StsData.XCosSecurityToken || '',\n      Token: StsData.Token || '',\n      ClientIP: StsData.ClientIP || '',\n      ClientUA: StsData.ClientUA || '',\n      SignFrom: 'client'\n    };\n    cb(null, AuthData);\n  };\n  var checkAuthError = function checkAuthError(AuthData) {\n    if (AuthData.Authorization) {\n      // 检查签名格式\n      var formatAllow = false;\n      var auth = AuthData.Authorization;\n      if (auth) {\n        if (auth.indexOf(' ') > -1) {\n          formatAllow = false;\n        } else if (auth.indexOf('q-sign-algorithm=') > -1 && auth.indexOf('q-ak=') > -1 && auth.indexOf('q-sign-time=') > -1 && auth.indexOf('q-key-time=') > -1 && auth.indexOf('q-url-param-list=') > -1) {\n          formatAllow = true;\n        } else {\n          try {\n            auth = atob(auth);\n            if (auth.indexOf('a=') > -1 && auth.indexOf('k=') > -1 && auth.indexOf('t=') > -1 && auth.indexOf('r=') > -1 && auth.indexOf('b=') > -1) {\n              formatAllow = true;\n            }\n          } catch (e) {}\n        }\n      }\n      if (!formatAllow) return util.error(new Error('getAuthorization callback params format error'));\n    } else {\n      if (!AuthData.TmpSecretId) return util.error(new Error('getAuthorization callback params missing \"TmpSecretId\"'));\n      if (!AuthData.TmpSecretKey) return util.error(new Error('getAuthorization callback params missing \"TmpSecretKey\"'));\n      if (!AuthData.SecurityToken && !AuthData.XCosSecurityToken) return util.error(new Error('getAuthorization callback params missing \"SecurityToken\"'));\n      if (!AuthData.ExpiredTime) return util.error(new Error('getAuthorization callback params missing \"ExpiredTime\"'));\n      if (AuthData.ExpiredTime && AuthData.ExpiredTime.toString().length !== 10) return util.error(new Error('getAuthorization callback params \"ExpiredTime\" should be 10 digits'));\n      if (AuthData.StartTime && AuthData.StartTime.toString().length !== 10) return util.error(new Error('getAuthorization callback params \"StartTime\" should be 10 StartTime'));\n    }\n    return false;\n  };\n\n  // 先判断是否有临时密钥\n  if (StsData.ExpiredTime && StsData.ExpiredTime - util.getSkewTime(self.options.SystemClockOffset) / 1000 > 60) {\n    // 如果缓存的临时密钥有效，并还有超过60秒有效期就直接使用\n    calcAuthByTmpKey();\n  } else if (self.options.getAuthorization) {\n    // 外部计算签名或获取临时密钥\n    self.options.getAuthorization.call(self, {\n      Bucket: Bucket,\n      Region: Region,\n      Method: params.Method,\n      Key: KeyName,\n      Pathname: Pathname,\n      Query: params.Query,\n      Headers: headers,\n      Scope: Scope,\n      SystemClockOffset: self.options.SystemClockOffset,\n      ForceSignHost: forceSignHost\n    }, function (AuthData) {\n      if (typeof AuthData === 'string') AuthData = {\n        Authorization: AuthData\n      };\n      var AuthError = checkAuthError(AuthData);\n      if (AuthError) return cb(AuthError);\n      if (AuthData.Authorization) {\n        cb(null, AuthData);\n      } else {\n        StsData = AuthData || {};\n        StsData.Scope = Scope;\n        StsData.ScopeKey = ScopeKey;\n        self._StsCache.push(StsData);\n        calcAuthByTmpKey();\n      }\n    });\n  } else if (self.options.getSTS) {\n    // 外部获取临时密钥\n    self.options.getSTS.call(self, {\n      Bucket: Bucket,\n      Region: Region\n    }, function (data) {\n      StsData = data || {};\n      StsData.Scope = Scope;\n      StsData.ScopeKey = ScopeKey;\n      if (!StsData.TmpSecretId) StsData.TmpSecretId = StsData.SecretId;\n      if (!StsData.TmpSecretKey) StsData.TmpSecretKey = StsData.SecretKey;\n      var AuthError = checkAuthError(StsData);\n      if (AuthError) return cb(AuthError);\n      self._StsCache.push(StsData);\n      calcAuthByTmpKey();\n    });\n  } else {\n    // 内部计算获取签名\n    return function () {\n      var KeyTime = '';\n      if (self.options.StartTime && params.Expires) {\n        if (self.options.StartTime.toString().length !== 10) {\n          return cb(util.error(new Error('params \"StartTime\" should be 10 digits')));\n        }\n        KeyTime = self.options.StartTime + ';' + (self.options.StartTime + params.Expires * 1);\n      } else if (self.options.StartTime && self.options.ExpiredTime) {\n        if (self.options.StartTime.toString().length !== 10) {\n          return cb(util.error(new Error('params \"StartTime\" should be 10 digits')));\n        }\n        if (self.options.ExpiredTime.toString().length !== 10) {\n          return cb(util.error(new Error('params \"ExpiredTime\" should be 10 digits')));\n        }\n        KeyTime = self.options.StartTime + ';' + self.options.ExpiredTime * 1;\n      }\n      var Authorization = util.getAuth({\n        SecretId: params.SecretId || self.options.SecretId,\n        SecretKey: params.SecretKey || self.options.SecretKey,\n        Method: params.Method,\n        Pathname: Pathname,\n        Query: params.Query,\n        Headers: headers,\n        Expires: params.Expires,\n        KeyTime: KeyTime,\n        UseRawKey: self.options.UseRawKey,\n        SystemClockOffset: self.options.SystemClockOffset,\n        ForceSignHost: forceSignHost\n      });\n      var AuthData = {\n        Authorization: Authorization,\n        SecurityToken: self.options.SecurityToken || self.options.XCosSecurityToken,\n        SignFrom: 'client'\n      };\n      cb(null, AuthData);\n      return AuthData;\n    }();\n  }\n  return '';\n}\n\n// 判断当前请求出错时能否重试\nfunction allowRetry(err) {\n  var self = this;\n  var canRetry = false;\n  var isTimeError = false;\n  var networkError = false;\n  var serverDate = err.headers && (err.headers.date || err.headers.Date) || err.error && err.error.ServerTime;\n  try {\n    var errorCode = err.error.Code;\n    var errorMessage = err.error.Message;\n    if (errorCode === 'RequestTimeTooSkewed' || errorCode === 'AccessDenied' && errorMessage === 'Request has expired') {\n      isTimeError = true;\n    }\n  } catch (e) {}\n  if (err) {\n    // 调整时间偏差\n    if (isTimeError && serverDate) {\n      var serverTime = Date.parse(serverDate);\n      if (this.options.CorrectClockSkew && Math.abs(util.getSkewTime(this.options.SystemClockOffset) - serverTime) >= 30000) {\n        console.error('error: Local time is too skewed.');\n        this.options.SystemClockOffset = serverTime - Date.now();\n        canRetry = true;\n      }\n    } else if (Math.floor(err.statusCode / 100) === 5) {\n      canRetry = true;\n    } else if (err.message === 'CORS blocked or network error') {\n      // 跨域/网络错误都包含在内\n      networkError = true;\n      canRetry = self.options.AutoSwitchHost;\n    }\n  }\n  return {\n    canRetry: canRetry,\n    networkError: networkError\n  };\n}\n\n/**\n * requestUrl：请求的url，用于判断是否cos主域名，true才切\n * clientCalcSign：是否客户端计算签名，服务端返回的签名不能切，true才切\n * networkError：是否未知网络错误，true才切\n * */\nfunction canSwitchHost(_ref) {\n  var requestUrl = _ref.requestUrl,\n    clientCalcSign = _ref.clientCalcSign,\n    networkError = _ref.networkError;\n  if (!this.options.AutoSwitchHost) return false;\n  if (!requestUrl) return false;\n  if (!clientCalcSign) return false;\n  if (!networkError) return false;\n  var commonReg = /^https?:\\/\\/[^\\/]*\\.cos\\.[^\\/]*\\.myqcloud\\.com(\\/.*)?$/;\n  var accelerateReg = /^https?:\\/\\/[^\\/]*\\.cos\\.accelerate\\.myqcloud\\.com(\\/.*)?$/;\n  // 当前域名是cos主域名才切换\n  var isCommonCosHost = commonReg.test(requestUrl) && !accelerateReg.test(requestUrl);\n  return isCommonCosHost;\n}\n\n// 获取签名并发起请求\nfunction submitRequest(params, callback) {\n  var self = this;\n\n  // 处理 headers\n  !params.headers && (params.headers = {});\n\n  // 处理 query\n  !params.qs && (params.qs = {});\n  params.VersionId && (params.qs.versionId = params.VersionId);\n  params.qs = util.clearKey(params.qs);\n\n  // 清理 undefined 和 null 字段\n  params.headers && (params.headers = util.clearKey(params.headers));\n  params.qs && (params.qs = util.clearKey(params.qs));\n  var Query = util.clone(params.qs);\n  params.action && (Query[params.action] = '');\n\n  /**\n   * 手动传params.SignHost的场景：cos.getService、cos.getObjectUrl\n   * 手动传Url的场景：cos.request\n   */\n  var paramsUrl = params.url || params.Url;\n  var SignHost = params.SignHost || getSignHost.call(this, {\n    Bucket: params.Bucket,\n    Region: params.Region,\n    Url: paramsUrl\n  });\n  var tracker = params.tracker;\n  var next = function next(tryTimes) {\n    var oldClockOffset = self.options.SystemClockOffset;\n    tracker && tracker.setParams({\n      signStartTime: new Date().getTime(),\n      httpRetryTimes: tryTimes - 1\n    });\n    if (params.SwitchHost) {\n      // 更换要签的host\n      SignHost = SignHost.replace(/myqcloud.com/, 'tencentcos.cn');\n    }\n    getAuthorizationAsync.call(self, {\n      Bucket: params.Bucket || '',\n      Region: params.Region || '',\n      Method: params.method,\n      Key: params.Key,\n      Query: Query,\n      Headers: params.headers,\n      SignHost: SignHost,\n      Action: params.Action,\n      ResourceKey: params.ResourceKey,\n      Scope: params.Scope,\n      ForceSignHost: self.options.ForceSignHost,\n      SwitchHost: params.SwitchHost\n    }, function (err, AuthData) {\n      if (err) {\n        callback(err);\n        return;\n      }\n      tracker && tracker.setParams({\n        signEndTime: new Date().getTime(),\n        httpStartTime: new Date().getTime()\n      });\n      params.AuthData = AuthData;\n      _submitRequest.call(self, params, function (err, data) {\n        tracker && tracker.setParams({\n          httpEndTime: new Date().getTime()\n        });\n        var canRetry = false;\n        var networkError = false;\n        if (err) {\n          var info = allowRetry.call(self, err);\n          canRetry = info.canRetry || oldClockOffset !== self.options.SystemClockOffset;\n          networkError = info.networkError;\n        }\n        if (err && tryTimes < 2 && canRetry) {\n          if (params.headers) {\n            delete params.headers.Authorization;\n            delete params.headers['token'];\n            delete params.headers['clientIP'];\n            delete params.headers['clientUA'];\n            params.headers['x-cos-security-token'] && delete params.headers['x-cos-security-token'];\n            params.headers['x-ci-security-token'] && delete params.headers['x-ci-security-token'];\n          }\n          // 进入重试逻辑时 需判断是否需要切换cos备用域名\n          var switchHost = canSwitchHost.call(self, {\n            requestUrl: (err === null || err === void 0 ? void 0 : err.url) || '',\n            clientCalcSign: AuthData.SignFrom === 'client',\n            networkError: networkError\n          });\n          params.SwitchHost = switchHost;\n          params.retry = true;\n          next(tryTimes + 1);\n        } else {\n          callback(err, data);\n        }\n      });\n    });\n  };\n  next(1);\n}\n\n// 发起请求\nfunction _submitRequest(params, callback) {\n  var self = this;\n  var TaskId = params.TaskId;\n  if (TaskId && !self._isRunningTask(TaskId)) return;\n  var bucket = params.Bucket;\n  var region = params.Region;\n  var object = params.Key;\n  var method = params.method || 'GET';\n  var url = params.Url || params.url;\n  var body = params.body;\n  var rawBody = params.rawBody;\n\n  // url\n  if (self.options.UseAccelerate) {\n    region = 'accelerate';\n  }\n  url = url || getUrl({\n    ForcePathStyle: self.options.ForcePathStyle,\n    protocol: self.options.Protocol,\n    domain: self.options.Domain,\n    bucket: bucket,\n    region: region,\n    object: object\n  });\n  if (params.SwitchHost) {\n    // 更换请求的url\n    url = url.replace(/myqcloud.com/, 'tencentcos.cn');\n  }\n  var repoterUrl = object ? url : '';\n  if (params.action) {\n    // 已知问题，某些版本的qq会对url自动拼接（比如/upload被拼接成/upload=(null)）导致签名错误，这里做下兼容。\n    url = url + '?' + (util.isIOS_QQ ? \"\".concat(params.action, \"=\") : params.action);\n  }\n  if (params.qsStr) {\n    if (url.indexOf('?') > -1) {\n      url = url + '&' + params.qsStr;\n    } else {\n      url = url + '?' + params.qsStr;\n    }\n  }\n  var opt = {\n    method: method,\n    url: url,\n    headers: params.headers,\n    qs: params.qs,\n    body: body\n  };\n\n  // 兼容ci接口\n  var token = 'x-cos-security-token';\n  if (util.isCIHost(url)) {\n    token = 'x-ci-security-token';\n  }\n\n  // 获取签名\n  opt.headers.Authorization = params.AuthData.Authorization;\n  params.AuthData.Token && (opt.headers['token'] = params.AuthData.Token);\n  params.AuthData.ClientIP && (opt.headers['clientIP'] = params.AuthData.ClientIP);\n  params.AuthData.ClientUA && (opt.headers['clientUA'] = params.AuthData.ClientUA);\n  params.AuthData.SecurityToken && (opt.headers[token] = params.AuthData.SecurityToken);\n\n  // 清理 undefined 和 null 字段\n  opt.headers && (opt.headers = util.clearKey(opt.headers));\n  if (params.retry) {\n    opt.headers['x-cos-sdk-retry'] = true;\n  }\n  opt = util.clearKey(opt);\n\n  // progress\n  if (params.onProgress && typeof params.onProgress === 'function') {\n    var contentLength = body && (body.size || body.length) || 0;\n    opt.onProgress = function (e) {\n      if (TaskId && !self._isRunningTask(TaskId)) return;\n      var loaded = e ? e.loaded : 0;\n      params.onProgress({\n        loaded: loaded,\n        total: contentLength\n      });\n    };\n  }\n  if (params.onDownloadProgress) {\n    opt.onDownloadProgress = params.onDownloadProgress;\n  }\n  if (params.DataType) {\n    opt.dataType = params.DataType;\n  }\n  if (this.options.Timeout) {\n    opt.timeout = this.options.Timeout;\n  }\n  self.options.ForcePathStyle && (opt.pathStyle = self.options.ForcePathStyle);\n  self.emit('before-send', opt);\n  var useAccelerate = opt.url.includes('accelerate.');\n  var queryString = opt.qs ? Object.keys(opt.qs).map(function (key) {\n    return \"\".concat(key, \"=\").concat(opt.qs[key]);\n  }).join('&') : '';\n  var fullUrl = queryString ? opt.url + '?' + queryString : opt.url;\n  if (params.tracker) {\n    var _opt$body;\n    params.tracker.setParams({\n      url: fullUrl,\n      httpMethod: opt.method,\n      accelerate: useAccelerate,\n      httpSize: ((_opt$body = opt.body) === null || _opt$body === void 0 ? void 0 : _opt$body.size) || 0\n    });\n    // 分块上传时给父级tracker设置url信息\n    if (params.tracker.parent && !params.tracker.parent.params.url) {\n      params.tracker.parent.setParams({\n        url: repoterUrl,\n        accelerate: useAccelerate\n      });\n    }\n  }\n  var sender = (self.options.Request || REQUEST)(opt, function (r) {\n    if (r && r.error === 'abort') return;\n    var receive = {\n      options: opt,\n      error: r && r.error,\n      statusCode: r && r.statusCode || 0,\n      statusMessage: r && r.statusMessage || '',\n      headers: r && r.headers || {},\n      body: r && r.body\n    };\n    // 抛出事件，允许修改返回值的 error、statusCode、statusMessage、body\n    self.emit('after-receive', receive);\n    var err = receive.error;\n    var body = receive.body;\n    // 返回内容添加 状态码 和 headers\n    var response = {\n      statusCode: receive.statusCode,\n      statusMessage: receive.statusMessage,\n      headers: receive.headers\n    };\n    var hasReturned;\n    var cb = function cb(err, data) {\n      TaskId && self.off('inner-kill-task', killTask);\n      if (hasReturned) return;\n      hasReturned = true;\n      var attrs = {};\n      response && response.statusCode && (attrs.statusCode = response.statusCode);\n      response && response.headers && (attrs.headers = response.headers);\n      if (err) {\n        opt.url && (attrs.url = opt.url);\n        opt.method && (attrs.method = opt.method);\n        err = util.extend(err || {}, attrs);\n        callback(err, null);\n      } else {\n        // putObject 返回回调处理\n        if (params.Action === 'name/cos:PutObject') {\n          var pHeaders = {};\n          for (var i in params.headers) {\n            var key = i.toLowerCase();\n            pHeaders[key] = params.headers[i];\n          }\n          if (pHeaders['x-cos-callback']) {\n            if (data.Error) {\n              data.CallbackError = util.clone(data.Error);\n              delete data.Error;\n            } else {\n              data.CallbackBody = util.clone(data);\n            }\n          } else if (pHeaders['x-cos-return-body']) {\n            if (data.Error) {\n              data.ReturnError = util.clone(data.Error);\n              delete data.Error;\n            } else {\n              data.ReturnBody = util.clone(data);\n            }\n          }\n        }\n        data = util.extend(data || {}, attrs);\n        callback(null, data);\n      }\n      sender = null;\n    };\n\n    // 请求错误，发生网络错误\n    if (err) return cb(util.error(err));\n\n    // 请求返回码不为 200\n    var statusCode = response.statusCode;\n    var statusSuccess = Math.floor(statusCode / 100) === 2; // 200 202 204 206\n\n    // 不对 body 进行转换，body 直接挂载返回\n    if (rawBody) {\n      if (statusSuccess) {\n        return cb(null, {\n          body: body\n        });\n      } else {\n        // 兼容报错时返回了 blob，需要解析成 string\n        if (body instanceof Blob) {\n          util.readAsBinaryString(body, function (content) {\n            var json = util.parseResBody(content);\n            var errorBody = json.Error || json;\n            return cb(util.error(new Error(errorBody.Message || 'response body error'), {\n              code: errorBody.Code,\n              error: errorBody\n            }));\n          });\n          return;\n        }\n      }\n    }\n\n    // 解析body，兼容 xml、json，解析失败时完整返回\n    var json = util.parseResBody(body);\n\n    // 处理返回值\n    var errorBody = json.Error || json;\n    if (statusSuccess) {\n      // 正确返回，状态码 2xx 时，body 不会有 Error\n      cb(null, json);\n    } else if (errorBody) {\n      // 正常返回了 xml body，且有 Error 节点\n      cb(util.error(new Error(errorBody.Message), {\n        code: errorBody.Code,\n        error: errorBody\n      }));\n    } else if (statusCode) {\n      // 有错误的状态码\n      cb(util.error(new Error(response.statusMessage), {\n        code: '' + statusCode\n      }));\n    } else if (statusCode) {\n      // 无状态码，或者获取不到状态码\n      cb(util.error(new Error('statusCode error')));\n    }\n  });\n\n  // kill task\n  var killTask = function killTask(data) {\n    if (data.TaskId === TaskId) {\n      sender && sender.abort && sender.abort();\n      self.off('inner-kill-task', killTask);\n    }\n  };\n  TaskId && self.on('inner-kill-task', killTask);\n}\nvar API_MAP = {\n  // Bucket 相关方法\n  getService: getService,\n  // Bucket\n  putBucket: putBucket,\n  headBucket: headBucket,\n  // Bucket\n  getBucket: getBucket,\n  deleteBucket: deleteBucket,\n  putBucketAcl: putBucketAcl,\n  // BucketACL\n  getBucketAcl: getBucketAcl,\n  putBucketCors: putBucketCors,\n  // BucketCors\n  getBucketCors: getBucketCors,\n  deleteBucketCors: deleteBucketCors,\n  getBucketLocation: getBucketLocation,\n  // BucketLocation\n  getBucketPolicy: getBucketPolicy,\n  // BucketPolicy\n  putBucketPolicy: putBucketPolicy,\n  deleteBucketPolicy: deleteBucketPolicy,\n  putBucketTagging: putBucketTagging,\n  // BucketTagging\n  getBucketTagging: getBucketTagging,\n  deleteBucketTagging: deleteBucketTagging,\n  putBucketLifecycle: putBucketLifecycle,\n  // BucketLifecycle\n  getBucketLifecycle: getBucketLifecycle,\n  deleteBucketLifecycle: deleteBucketLifecycle,\n  putBucketVersioning: putBucketVersioning,\n  // BucketVersioning\n  getBucketVersioning: getBucketVersioning,\n  putBucketReplication: putBucketReplication,\n  // BucketReplication\n  getBucketReplication: getBucketReplication,\n  deleteBucketReplication: deleteBucketReplication,\n  putBucketWebsite: putBucketWebsite,\n  // BucketWebsite\n  getBucketWebsite: getBucketWebsite,\n  deleteBucketWebsite: deleteBucketWebsite,\n  putBucketReferer: putBucketReferer,\n  // BucketReferer\n  getBucketReferer: getBucketReferer,\n  putBucketDomain: putBucketDomain,\n  // BucketDomain\n  getBucketDomain: getBucketDomain,\n  deleteBucketDomain: deleteBucketDomain,\n  putBucketOrigin: putBucketOrigin,\n  // BucketOrigin\n  getBucketOrigin: getBucketOrigin,\n  deleteBucketOrigin: deleteBucketOrigin,\n  putBucketLogging: putBucketLogging,\n  // BucketLogging\n  getBucketLogging: getBucketLogging,\n  putBucketInventory: putBucketInventory,\n  // BucketInventory\n  postBucketInventory: postBucketInventory,\n  getBucketInventory: getBucketInventory,\n  listBucketInventory: listBucketInventory,\n  deleteBucketInventory: deleteBucketInventory,\n  putBucketAccelerate: putBucketAccelerate,\n  getBucketAccelerate: getBucketAccelerate,\n  putBucketEncryption: putBucketEncryption,\n  getBucketEncryption: getBucketEncryption,\n  deleteBucketEncryption: deleteBucketEncryption,\n  // Object 相关方法\n  getObject: getObject,\n  headObject: headObject,\n  listObjectVersions: listObjectVersions,\n  putObject: putObject,\n  deleteObject: deleteObject,\n  getObjectAcl: getObjectAcl,\n  putObjectAcl: putObjectAcl,\n  optionsObject: optionsObject,\n  putObjectCopy: putObjectCopy,\n  deleteMultipleObject: deleteMultipleObject,\n  restoreObject: restoreObject,\n  putObjectTagging: putObjectTagging,\n  getObjectTagging: getObjectTagging,\n  deleteObjectTagging: deleteObjectTagging,\n  selectObjectContent: selectObjectContent,\n  appendObject: appendObject,\n  // 分块上传相关方法\n  uploadPartCopy: uploadPartCopy,\n  multipartInit: multipartInit,\n  multipartUpload: multipartUpload,\n  multipartComplete: multipartComplete,\n  multipartList: multipartList,\n  multipartListPart: multipartListPart,\n  multipartAbort: multipartAbort,\n  // 工具方法\n  request: request,\n  getObjectUrl: getObjectUrl,\n  getAuth: getAuth\n};\nfunction warnOldApi(apiName, fn, proto) {\n  util.each(['Cors', 'Acl'], function (suffix) {\n    if (apiName.slice(-suffix.length) === suffix) {\n      var oldName = apiName.slice(0, -suffix.length) + suffix.toUpperCase();\n      var apiFn = util.apiWrapper(apiName, fn);\n      var warned = false;\n      proto[oldName] = function () {\n        !warned && console.warn('warning: cos.' + oldName + ' has been deprecated. Please Use cos.' + apiName + ' instead.');\n        warned = true;\n        apiFn.apply(this, arguments);\n      };\n    }\n  });\n}\nmodule.exports.init = function (COS, task) {\n  task.transferToTaskMethod(API_MAP, 'putObject');\n  util.each(API_MAP, function (fn, apiName) {\n    COS.prototype[apiName] = util.apiWrapper(apiName, fn);\n    warnOldApi(apiName, fn, COS.prototype);\n  });\n};\n\n/***/ }),\n\n/***/ \"./src/cos.js\":\n/*!********************!*\\\n  !*** ./src/cos.js ***!\n  \\********************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar util = __webpack_require__(/*! ./util */ \"./src/util.js\");\nvar event = __webpack_require__(/*! ./event */ \"./src/event.js\");\nvar task = __webpack_require__(/*! ./task */ \"./src/task.js\");\nvar base = __webpack_require__(/*! ./base */ \"./src/base.js\");\nvar advance = __webpack_require__(/*! ./advance */ \"./src/advance.js\");\nvar pkg = __webpack_require__(/*! ../package.json */ \"./package.json\");\nvar defaultOptions = {\n  AppId: '',\n  // AppId 已废弃，请拼接到 Bucket 后传入，例如：test-1250000000\n  SecretId: '',\n  SecretKey: '',\n  SecurityToken: '',\n  // 使用临时密钥需要注意自行刷新 Token\n  StartTime: 0,\n  // 临时密钥返回起始时间\n  ExpiredTime: 0,\n  // 临时密钥过期时间\n  ChunkRetryTimes: 2,\n  FileParallelLimit: 3,\n  ChunkParallelLimit: 3,\n  ChunkSize: 1024 * 1024,\n  SliceSize: 1024 * 1024,\n  CopyChunkParallelLimit: 20,\n  CopyChunkSize: 1024 * 1024 * 10,\n  CopySliceSize: 1024 * 1024 * 10,\n  MaxPartNumber: 10000,\n  ProgressInterval: 1000,\n  Domain: '',\n  ServiceDomain: '',\n  Protocol: '',\n  CompatibilityMode: false,\n  ForcePathStyle: false,\n  UseRawKey: false,\n  Timeout: 0,\n  // 单位毫秒，0 代表不设置超时时间\n  CorrectClockSkew: true,\n  SystemClockOffset: 0,\n  // 单位毫秒，ms\n  UploadCheckContentMd5: false,\n  UploadQueueSize: 10000,\n  UploadAddMetaMd5: false,\n  UploadIdCacheLimit: 50,\n  UseAccelerate: false,\n  ForceSignHost: true,\n  // 默认将host加入签名计算，关闭后可能导致越权风险，建议保持为true\n  AutoSwitchHost: true,\n  CopySourceParser: null,\n  // 自定义拷贝源解析器\n  ObjectKeySimplifyCheck: true,\n  // 开启合并校验 getObject Key\n  /** 上报相关 **/\n  DeepTracker: false,\n  // 上报时是否对每个分块上传做单独上报\n  TrackerDelay: 5000,\n  // 周期性上报，单位毫秒。0代表实时上报\n  CustomId: '',\n  // 自定义上报id\n  BeaconReporter: null,\n  // 灯塔上报组件，如有需要请自行传入，传入即代表开启上报\n  ClsReporter: null // cls 上报组件，如有需要请自行传入，传入即代表开启上报\n};\n\n// 对外暴露的类\nvar COS = function COS(options) {\n  this.options = util.extend(util.clone(defaultOptions), options || {});\n  this.options.FileParallelLimit = Math.max(1, this.options.FileParallelLimit);\n  this.options.ChunkParallelLimit = Math.max(1, this.options.ChunkParallelLimit);\n  this.options.ChunkRetryTimes = Math.max(0, this.options.ChunkRetryTimes);\n  this.options.ChunkSize = Math.max(1024 * 1024, this.options.ChunkSize);\n  this.options.CopyChunkParallelLimit = Math.max(1, this.options.CopyChunkParallelLimit);\n  this.options.CopyChunkSize = Math.max(1024 * 1024, this.options.CopyChunkSize);\n  this.options.CopySliceSize = Math.max(0, this.options.CopySliceSize);\n  this.options.MaxPartNumber = Math.max(1024, Math.min(10000, this.options.MaxPartNumber));\n  this.options.Timeout = Math.max(0, this.options.Timeout);\n  this.options.EnableReporter = this.options.BeaconReporter || this.options.ClsReporter;\n  if (this.options.AppId) {\n    console.warn('warning: AppId has been deprecated, Please put it at the end of parameter Bucket(E.g: \"test-1250000000\").');\n  }\n  if (this.options.SecretId && this.options.SecretId.indexOf(' ') > -1) {\n    console.error('error: SecretId格式错误，请检查');\n    console.error('error: SecretId format is incorrect. Please check');\n  }\n  if (this.options.SecretKey && this.options.SecretKey.indexOf(' ') > -1) {\n    console.error('error: SecretKey格式错误，请检查');\n    console.error('error: SecretKey format is incorrect. Please check');\n  }\n  if (util.isNode()) {\n    console.log('Tip: Next.js、Nuxt.js 等服务端渲染技术可正常使用JavaScript SDK，请忽略下方 nodejs 环境警告');\n    console.warn('warning: cos-js-sdk-v5 不支持 nodejs 环境使用，请改用 cos-nodejs-sdk-v5，参考文档： https://cloud.tencent.com/document/product/436/8629');\n    console.warn('warning: cos-js-sdk-v5 does not support nodejs environment. Please use cos-nodejs-sdk-v5 instead. See: https://cloud.tencent.com/document/product/436/8629');\n  }\n  if (this.options.ForcePathStyle) {\n    console.warn('cos-js-sdk-v5不再支持使用path-style，仅支持使用virtual-hosted-style，参考文档：https://cloud.tencent.com/document/product/436/96243');\n    throw new Error('ForcePathStyle is not supported');\n  }\n  event.init(this);\n  task.init(this);\n};\nbase.init(COS, task);\nadvance.init(COS, task);\nCOS.util = {\n  md5: util.md5,\n  xml2json: util.xml2json,\n  json2xml: util.json2xml,\n  encodeBase64: util.encodeBase64\n};\nCOS.getAuthorization = util.getAuth;\nCOS.version = pkg.version;\nmodule.exports = COS;\n\n/***/ }),\n\n/***/ \"./src/event.js\":\n/*!**********************!*\\\n  !*** ./src/event.js ***!\n  \\**********************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nvar initEvent = function initEvent(cos) {\n  var listeners = {};\n  var getList = function getList(action) {\n    !listeners[action] && (listeners[action] = []);\n    return listeners[action];\n  };\n  cos.on = function (action, callback) {\n    if (action === 'task-list-update') {\n      console.warn('warning: Event \"' + action + '\" has been deprecated. Please use \"list-update\" instead.');\n    }\n    getList(action).push(callback);\n  };\n  cos.off = function (action, callback) {\n    var list = getList(action);\n    for (var i = list.length - 1; i >= 0; i--) {\n      callback === list[i] && list.splice(i, 1);\n    }\n  };\n  cos.emit = function (action, data) {\n    var list = getList(action).map(function (cb) {\n      return cb;\n    });\n    for (var i = 0; i < list.length; i++) {\n      list[i](data);\n    }\n  };\n};\nvar EventProxy = function EventProxy() {\n  initEvent(this);\n};\nmodule.exports.init = initEvent;\nmodule.exports.EventProxy = EventProxy;\n\n/***/ }),\n\n/***/ \"./src/session.js\":\n/*!************************!*\\\n  !*** ./src/session.js ***!\n  \\************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar util = __webpack_require__(/*! ./util */ \"./src/util.js\");\n\n// 按照文件特征值，缓存 UploadId\nvar cacheKey = 'cos_sdk_upload_cache';\nvar expires = 30 * 24 * 3600;\nvar cache;\nvar timer;\nvar getCache = function getCache() {\n  try {\n    var val = JSON.parse(localStorage.getItem(cacheKey));\n  } catch (e) {}\n  if (!val) val = [];\n  cache = val;\n};\nvar setCache = function setCache() {\n  try {\n    if (cache.length) localStorage.setItem(cacheKey, JSON.stringify(cache));else localStorage.removeItem(cacheKey);\n  } catch (e) {}\n};\nvar init = function init() {\n  if (cache) return;\n  getCache.call(this);\n  // 清理太老旧的数据\n  var changed = false;\n  var now = Math.round(Date.now() / 1000);\n  for (var i = cache.length - 1; i >= 0; i--) {\n    var mtime = cache[i][2];\n    if (!mtime || mtime + expires < now) {\n      cache.splice(i, 1);\n      changed = true;\n    }\n  }\n  changed && setCache();\n};\n\n// 把缓存存到本地\nvar save = function save() {\n  if (timer) return;\n  timer = setTimeout(function () {\n    setCache();\n    timer = null;\n  }, 400);\n};\nvar mod = {\n  using: {},\n  // 标记 UploadId 正在使用\n  setUsing: function setUsing(uuid) {\n    mod.using[uuid] = true;\n  },\n  // 标记 UploadId 已经没在使用\n  removeUsing: function removeUsing(uuid) {\n    delete mod.using[uuid];\n  },\n  // 用上传参数生成哈希值\n  getFileId: function getFileId(file, ChunkSize, Bucket, Key) {\n    if (file.name && file.size && file.lastModifiedDate && ChunkSize) {\n      return util.md5([file.name, file.size, file.lastModifiedDate, ChunkSize, Bucket, Key].join('::'));\n    } else {\n      return null;\n    }\n  },\n  // 用上传参数生成哈希值\n  getCopyFileId: function getCopyFileId(copySource, sourceHeaders, ChunkSize, Bucket, Key) {\n    var size = sourceHeaders['content-length'];\n    var etag = sourceHeaders.etag || '';\n    var lastModified = sourceHeaders['last-modified'];\n    if (copySource && ChunkSize) {\n      return util.md5([copySource, size, etag, lastModified, ChunkSize, Bucket, Key].join('::'));\n    } else {\n      return null;\n    }\n  },\n  // 获取文件对应的 UploadId 列表\n  getUploadIdList: function getUploadIdList(uuid) {\n    if (!uuid) return null;\n    init.call(this);\n    var list = [];\n    for (var i = 0; i < cache.length; i++) {\n      if (cache[i][0] === uuid) list.push(cache[i][1]);\n    }\n    return list.length ? list : null;\n  },\n  // 缓存 UploadId\n  saveUploadId: function saveUploadId(uuid, UploadId, limit) {\n    init.call(this);\n    if (!uuid) return;\n    // 清理没用的 UploadId，js 文件没有 FilePath ，只清理相同记录\n    for (var i = cache.length - 1; i >= 0; i--) {\n      var item = cache[i];\n      if (item[0] === uuid && item[1] === UploadId) {\n        cache.splice(i, 1);\n      }\n    }\n    cache.unshift([uuid, UploadId, Math.round(Date.now() / 1000)]);\n    if (cache.length > limit) cache.splice(limit);\n    save();\n  },\n  // UploadId 已用完，移除掉\n  removeUploadId: function removeUploadId(UploadId) {\n    init.call(this);\n    delete mod.using[UploadId];\n    for (var i = cache.length - 1; i >= 0; i--) {\n      if (cache[i][1] === UploadId) cache.splice(i, 1);\n    }\n    save();\n  }\n};\nmodule.exports = mod;\n\n/***/ }),\n\n/***/ \"./src/task.js\":\n/*!*********************!*\\\n  !*** ./src/task.js ***!\n  \\*********************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar session = __webpack_require__(/*! ./session */ \"./src/session.js\");\nvar util = __webpack_require__(/*! ./util */ \"./src/util.js\");\nvar originApiMap = {};\nvar transferToTaskMethod = function transferToTaskMethod(apiMap, apiName) {\n  originApiMap[apiName] = apiMap[apiName];\n  apiMap[apiName] = function (params, callback) {\n    if (params.SkipTask) {\n      originApiMap[apiName].call(this, params, callback);\n    } else {\n      this._addTask(apiName, params, callback);\n    }\n  };\n};\nvar initTask = function initTask(cos) {\n  var queue = [];\n  var tasks = {};\n  var uploadingFileCount = 0;\n  var nextUploadIndex = 0;\n\n  // 接口返回简略的任务信息\n  var formatTask = function formatTask(task) {\n    var t = {\n      id: task.id,\n      Bucket: task.Bucket,\n      Region: task.Region,\n      Key: task.Key,\n      FilePath: task.FilePath,\n      state: task.state,\n      loaded: task.loaded,\n      size: task.size,\n      speed: task.speed,\n      percent: task.percent,\n      hashPercent: task.hashPercent,\n      error: task.error\n    };\n    if (task.FilePath) t.FilePath = task.FilePath;\n    if (task._custom) t._custom = task._custom; // 控制台使用\n    return t;\n  };\n  var emitListUpdate = function () {\n    var timer;\n    var emit = function emit() {\n      timer = 0;\n      cos.emit('task-list-update', {\n        list: util.map(queue, formatTask)\n      });\n      cos.emit('list-update', {\n        list: util.map(queue, formatTask)\n      });\n    };\n    return function () {\n      if (!timer) timer = setTimeout(emit);\n    };\n  }();\n  var clearQueue = function clearQueue() {\n    if (queue.length <= cos.options.UploadQueueSize) return;\n    for\n\n      // 如果还太多，才继续清理\n    (var i = 0; i < nextUploadIndex &&\n    // 小于当前操作的 index 才清理\n    i < queue.length &&\n    // 大于队列才清理\n    queue.length > cos.options.UploadQueueSize;) {\n      var isActive = queue[i].state === 'waiting' || queue[i].state === 'checking' || queue[i].state === 'uploading';\n      if (!queue[i] || !isActive) {\n        tasks[queue[i].id] && delete tasks[queue[i].id];\n        queue.splice(i, 1);\n        nextUploadIndex--;\n      } else {\n        i++;\n      }\n    }\n    emitListUpdate();\n  };\n  var startNextTask = function startNextTask() {\n    // 检查是否允许增加执行进程\n    if (uploadingFileCount >= cos.options.FileParallelLimit) return;\n    // 跳过不可执行的任务\n    while (queue[nextUploadIndex] && queue[nextUploadIndex].state !== 'waiting') nextUploadIndex++;\n    // 检查是否已遍历结束\n    if (nextUploadIndex >= queue.length) return;\n    // 上传该遍历到的任务\n    var task = queue[nextUploadIndex];\n    nextUploadIndex++;\n    uploadingFileCount++;\n    task.state = 'checking';\n    task.params.onTaskStart && task.params.onTaskStart(formatTask(task));\n    !task.params.UploadData && (task.params.UploadData = {});\n    var apiParams = util.formatParams(task.api, task.params);\n    originApiMap[task.api].call(cos, apiParams, function (err, data) {\n      if (!cos._isRunningTask(task.id)) return;\n      if (task.state === 'checking' || task.state === 'uploading') {\n        task.state = err ? 'error' : 'success';\n        err && (task.error = err);\n        uploadingFileCount--;\n        emitListUpdate();\n        startNextTask();\n        task.callback && task.callback(err, data);\n        if (task.state === 'success') {\n          if (task.params) {\n            delete task.params.UploadData;\n            delete task.params.Body;\n            delete task.params;\n          }\n          delete task.callback;\n        }\n      }\n      clearQueue();\n    });\n    emitListUpdate();\n    // 异步执行下一个任务\n    setTimeout(startNextTask);\n  };\n  var killTask = function killTask(id, switchToState) {\n    var task = tasks[id];\n    if (!task) return;\n    var waiting = task && task.state === 'waiting';\n    var running = task && (task.state === 'checking' || task.state === 'uploading');\n    if (switchToState === 'canceled' && task.state !== 'canceled' || switchToState === 'paused' && waiting || switchToState === 'paused' && running) {\n      task.state = switchToState;\n      cos.emit('inner-kill-task', {\n        TaskId: id,\n        toState: switchToState\n      });\n      try {\n        var UploadId = task && task.params && task.params.UploadData.UploadId;\n      } catch (e) {}\n      if (switchToState === 'canceled' && UploadId) session.removeUsing(UploadId);\n      emitListUpdate();\n      if (running) {\n        uploadingFileCount--;\n        startNextTask();\n      }\n      if (switchToState === 'canceled') {\n        if (task.params) {\n          delete task.params.UploadData;\n          delete task.params.Body;\n          delete task.params;\n        }\n        delete task.callback;\n      }\n    }\n    clearQueue();\n  };\n  cos._addTasks = function (taskList) {\n    util.each(taskList, function (task) {\n      cos._addTask(task.api, task.params, task.callback, true);\n    });\n    emitListUpdate();\n  };\n  var isTaskReadyWarning = true;\n  cos._addTask = function (api, params, callback, ignoreAddEvent) {\n    // 复制参数对象\n    params = util.formatParams(api, params);\n\n    // 生成 id\n    var id = util.uuid();\n    params.TaskId = id;\n    params.onTaskReady && params.onTaskReady(id);\n    if (params.TaskReady) {\n      params.TaskReady(id);\n      isTaskReadyWarning && console.warn('warning: Param \"TaskReady\" has been deprecated. Please use \"onTaskReady\" instead.');\n      isTaskReadyWarning = false;\n    }\n    var task = {\n      // env\n      params: params,\n      callback: callback,\n      api: api,\n      index: queue.length,\n      // task\n      id: id,\n      Bucket: params.Bucket,\n      Region: params.Region,\n      Key: params.Key,\n      FilePath: params.FilePath || '',\n      state: 'waiting',\n      loaded: 0,\n      size: 0,\n      speed: 0,\n      percent: 0,\n      hashPercent: 0,\n      error: null,\n      _custom: params._custom\n    };\n    var onHashProgress = params.onHashProgress;\n    params.onHashProgress = function (info) {\n      if (!cos._isRunningTask(task.id)) return;\n      task.hashPercent = info.percent;\n      onHashProgress && onHashProgress(info);\n      emitListUpdate();\n    };\n    var onProgress = params.onProgress;\n    params.onProgress = function (info) {\n      if (!cos._isRunningTask(task.id)) return;\n      task.state === 'checking' && (task.state = 'uploading');\n      task.loaded = info.loaded;\n      task.speed = info.speed;\n      task.percent = info.percent;\n      onProgress && onProgress(info);\n      emitListUpdate();\n    };\n\n    // 异步获取 filesize\n    util.getFileSize(api, params, function (err, size) {\n      // 开始处理上传\n      if (err) return callback(util.error(err)); // 如果获取大小出错，不加入队列\n      // 获取完文件大小再把任务加入队列\n      tasks[id] = task;\n      queue.push(task);\n      task.size = size;\n      !ignoreAddEvent && emitListUpdate();\n      startNextTask();\n      clearQueue();\n    });\n    return id;\n  };\n  cos._isRunningTask = function (id) {\n    var task = tasks[id];\n    return !!(task && (task.state === 'checking' || task.state === 'uploading'));\n  };\n  cos.getTaskList = function () {\n    return util.map(queue, formatTask);\n  };\n  cos.cancelTask = function (id) {\n    killTask(id, 'canceled');\n  };\n  cos.pauseTask = function (id) {\n    killTask(id, 'paused');\n  };\n  cos.restartTask = function (id) {\n    var task = tasks[id];\n    if (task && (task.state === 'paused' || task.state === 'error')) {\n      task.state = 'waiting';\n      emitListUpdate();\n      nextUploadIndex = Math.min(nextUploadIndex, task.index);\n      startNextTask();\n    }\n  };\n  cos.isUploadRunning = function () {\n    return uploadingFileCount || nextUploadIndex < queue.length;\n  };\n};\nmodule.exports.transferToTaskMethod = transferToTaskMethod;\nmodule.exports.init = initTask;\n\n/***/ }),\n\n/***/ \"./src/tracker.js\":\n/*!************************!*\\\n  !*** ./src/tracker.js ***!\n  \\************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ \"./node_modules/@babel/runtime/helpers/classCallCheck.js\");\nvar _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ \"./node_modules/@babel/runtime/helpers/createClass.js\");\nvar _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ \"./node_modules/@babel/runtime/helpers/typeof.js\");\nvar pkg = __webpack_require__(/*! ../package.json */ \"./package.json\");\nvar beacon = null;\nvar getBeacon = function getBeacon(Beacon, delay) {\n  if (!beacon) {\n    // 生成 beacon\n    if (typeof Beacon !== 'function') {\n      throw new Error('Beacon not found');\n    }\n    beacon = new Beacon({\n      appkey: '0WEB05PY6MHRGK0U',\n      versionCode: pkg.version,\n      channelID: 'js_sdk',\n      //渠道,选填\n      openid: 'openid',\n      // 用户id, 选填\n      unionid: 'unid',\n      //用户unionid , 类似idfv,选填\n      strictMode: false,\n      //严苛模式开关, 打开严苛模式会主动抛出异常, 上线请务必关闭!!!\n      delay: delay,\n      // 普通事件延迟上报时间(单位毫秒), 默认1000(1秒),选填\n      sessionDuration: 60 * 1000 // session变更的时间间隔, 一个用户持续30分钟(默认值)没有任何上报则算另一次 session,每变更一次session上报一次启动事件(rqd_applaunched),使用毫秒(ms),最小值30秒,选填\n    });\n  }\n  return beacon;\n};\n\n// 毫秒转秒\nvar ms2s = function ms2s(ms) {\n  if (!ms || ms < 0) return 0;\n  return (ms / 1000).toFixed(3);\n};\nvar utils = {\n  // 生成uid 每个链路对应唯一一条uid\n  getUid: function getUid() {\n    var S4 = function S4() {\n      return ((1 + Math.random()) * 0x10000 | 0).toString(16).substring(1);\n    };\n    return S4() + S4() + '-' + S4() + '-' + S4() + '-' + S4() + '-' + S4() + S4() + S4();\n  },\n  // 获取网络类型 4g ｜ wifi\n  getNetType: function getNetType() {\n    if ((typeof navigator === \"undefined\" ? \"undefined\" : _typeof(navigator)) === 'object') {\n      var connection = navigator.connection || navigator.mozConnection || navigator.webkitConnection;\n      return (connection === null || connection === void 0 ? void 0 : connection.type) || (connection === null || connection === void 0 ? void 0 : connection.effectiveType) || 'unknown';\n    }\n    return 'unknown';\n  },\n  // http | https\n  getProtocol: function getProtocol() {\n    if ((typeof location === \"undefined\" ? \"undefined\" : _typeof(location)) === 'object') {\n      return location.protocol.replace(/:/, '');\n    }\n    return 'unknown protocol';\n  },\n  // 获取pc端操作系统类型\n  getOsType: function getOsType() {\n    if ((typeof navigator === \"undefined\" ? \"undefined\" : _typeof(navigator)) !== 'object') {\n      return 'unknown os';\n    }\n    var agent = navigator.userAgent.toLowerCase();\n    var isMac = /macintosh|mac os x/i.test(navigator.userAgent);\n    if (agent.indexOf('win32') >= 0 || agent.indexOf('wow32') >= 0) {\n      return 'win32';\n    }\n    if (agent.indexOf('win64') >= 0 || agent.indexOf('wow64') >= 0) {\n      return 'win64';\n    }\n    if (isMac) {\n      return 'mac';\n    }\n    return 'unknown os';\n  },\n  isMobile: function isMobile() {\n    var exp = /(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i;\n    if ((typeof navigator === \"undefined\" ? \"undefined\" : _typeof(navigator)) === 'object' && navigator.userAgent.match(exp)) {\n      return true; // 移动端\n    }\n    return false; // PC端\n  },\n  isAndroid: function isAndroid() {\n    var exp = /(Android|Adr|Linux)/i;\n    if ((typeof navigator === \"undefined\" ? \"undefined\" : _typeof(navigator)) === 'object' && navigator.userAgent.match(exp)) {\n      return true;\n    }\n    return false;\n  },\n  isIOS: function isIOS() {\n    var exp = /(iPhone|iPod|iPad|iOS)/i;\n    if ((typeof navigator === \"undefined\" ? \"undefined\" : _typeof(navigator)) === 'object' && navigator.userAgent.match(exp)) {\n      return true;\n    }\n    return false;\n  },\n  isOtherMobile: function isOtherMobile() {\n    return isMobile && !isAndroid && !isIOS;\n  },\n  getUA: function getUA() {\n    if ((typeof navigator === \"undefined\" ? \"undefined\" : _typeof(navigator)) !== 'object') {\n      return 'unknown device';\n    }\n    var explorer = navigator.userAgent;\n    return explorer;\n  }\n};\nvar isMobile = utils.isMobile();\nvar mobileOsType = utils.isAndroid() ? 'android' : utils.isIOS ? 'ios' : 'other_mobile';\nvar pcOsType = utils.getOsType();\nvar devicePlatform = isMobile ? mobileOsType : pcOsType;\nvar ua = utils.getUA();\nvar protocol = utils.getProtocol();\nvar transApiName = function transApiName(api) {\n  if (['putObject', 'sliceUploadFile', 'uploadFile', 'uploadFiles'].includes(api)) {\n    return 'UploadTask';\n  } else if (api === 'getObject') {\n    return 'DownloadTask';\n  } else if (['putObjectCopy', 'sliceCopyFile'].includes(api)) {\n    return 'CopyTask';\n  }\n  return api;\n};\n\n// 上报参数驼峰改下划线\nfunction camel2underline(key) {\n  return key.replace(/([A-Z])/g, '_$1').toLowerCase();\n}\nfunction formatParams(params) {\n  var formattedParams = {};\n  var successKeys = ['sdkVersionName', 'sdkVersionCode', 'osName', 'networkType', 'requestName', 'requestResult', 'bucket', 'region', 'appid', 'accelerate', 'url', 'host', 'requestPath', 'userAgent', 'networkProtocol', 'httpMethod', 'httpSize', 'httpSpeed', 'httpTookTime', 'httpMd5', 'httpSign', 'httpFullTime', 'httpDomain', 'partNumber', 'httpRetryTimes', 'customId', 'traceId', 'realApi'];\n  var failureKeys = [].concat(successKeys, ['errorNode', 'errorCode', 'errorName', 'errorMessage', 'errorRequestId', 'errorHttpCode', 'errorServiceName', 'errorType', 'fullError']);\n  // 需要上报的参数字段\n  var reporterKeys = params.requestResult === 'Success' ? successKeys : failureKeys;\n  for (var key in params) {\n    if (!reporterKeys.includes(key)) continue;\n    var formattedKey = camel2underline(key);\n    formattedParams[formattedKey] = params[key];\n  }\n  formattedParams['request_name'] = params.realApi ? transApiName(params.realApi) : params.requestName;\n  return formattedParams;\n}\n\n// 链路追踪器\nvar Tracker = /*#__PURE__*/function () {\n  \"use strict\";\n\n  function Tracker(opt) {\n    _classCallCheck(this, Tracker);\n    var parent = opt.parent,\n      traceId = opt.traceId,\n      bucket = opt.bucket,\n      region = opt.region,\n      apiName = opt.apiName,\n      realApi = opt.realApi,\n      httpMethod = opt.httpMethod,\n      fileKey = opt.fileKey,\n      fileSize = opt.fileSize,\n      accelerate = opt.accelerate,\n      customId = opt.customId,\n      delay = opt.delay,\n      deepTracker = opt.deepTracker,\n      Beacon = opt.Beacon,\n      clsReporter = opt.clsReporter;\n    var appid = bucket && bucket.substr(bucket.lastIndexOf('-') + 1) || '';\n    this.parent = parent;\n    this.deepTracker = deepTracker;\n    this.delay = delay;\n    if (clsReporter && !this.clsReporter) {\n      this.clsReporter = clsReporter;\n    }\n    // 上报用到的字段\n    this.params = {\n      // 通用字段\n      sdkVersionName: 'cos-js-sdk-v5',\n      sdkVersionCode: pkg.version,\n      osName: devicePlatform,\n      networkType: '',\n      requestName: apiName || '',\n      requestResult: '',\n      // sdk api调用结果Success、Failure\n      realApi: realApi,\n      bucket: bucket,\n      region: region,\n      accelerate: accelerate,\n      httpMethod: httpMethod,\n      url: '',\n      // 请求url\n      host: '',\n      httpDomain: '',\n      requestPath: fileKey || '',\n      userAgent: ua,\n      networkProtocol: protocol,\n      errorType: '',\n      errorCode: '',\n      errorName: '',\n      errorMessage: '',\n      errorRequestId: '',\n      errorHttpCode: 0,\n      errorServiceName: '',\n      errorNode: '',\n      httpTookTime: 0,\n      // http整体耗时\n      httpSize: fileSize || 0,\n      // 主要是文件大小，大小 B\n      httpMd5: 0,\n      // MD5耗时\n      httpSign: 0,\n      // 计算签名耗时\n      httpFullTime: 0,\n      // 任务整体耗时(包括md5、签名等)\n      httpSpeed: 0,\n      // 主要关注上传速度，KB/s\n\n      md5StartTime: 0,\n      // md5计算开始时间\n      md5EndTime: 0,\n      // md5计算结束时间\n      signStartTime: 0,\n      // 计算签名开始时间\n      signEndTime: 0,\n      // 计算签名结束时间\n      httpStartTime: 0,\n      // 发起网络请求开始时间\n      httpEndTime: 0,\n      // 网路请求结束时间\n      startTime: new Date().getTime(),\n      // sdk api调用起始时间，不是纯网络耗时\n      endTime: 0,\n      //  sdk api调用结束时间，不是纯网络耗时\n\n      // js补充字段\n      traceId: traceId || utils.getUid(),\n      // 每条上报唯一标识\n      appid: appid,\n      partNumber: 0,\n      // 分块上传编号\n      httpRetryTimes: 0,\n      // sdk内部发起的请求重试\n      customId: customId || '',\n      // 业务id\n      partTime: 0\n    };\n    if (Beacon) {\n      this.beacon = getBeacon(Beacon, delay);\n    }\n  }\n\n  // 格式化sdk回调\n  _createClass(Tracker, [{\n    key: \"formatResult\",\n    value: function formatResult(err, data) {\n      var _err$error, _err$error2, _err$error3, _err$error4, _err$error5, _err$error6;\n      var now = new Date().getTime();\n      var networkType = utils.getNetType();\n      var errorCode = err ? (err === null || err === void 0 ? void 0 : err.code) || (err === null || err === void 0 ? void 0 : (_err$error = err.error) === null || _err$error === void 0 ? void 0 : _err$error.code) || (err === null || err === void 0 ? void 0 : (_err$error2 = err.error) === null || _err$error2 === void 0 ? void 0 : _err$error2.Code) : '';\n      var errorMessage = err ? (err === null || err === void 0 ? void 0 : err.message) || (err === null || err === void 0 ? void 0 : (_err$error3 = err.error) === null || _err$error3 === void 0 ? void 0 : _err$error3.message) || (err === null || err === void 0 ? void 0 : (_err$error4 = err.error) === null || _err$error4 === void 0 ? void 0 : _err$error4.Message) : '';\n      var errorName = errorMessage;\n      var errorServiceName = err ? (err === null || err === void 0 ? void 0 : err.resource) || (err === null || err === void 0 ? void 0 : (_err$error5 = err.error) === null || _err$error5 === void 0 ? void 0 : _err$error5.resource) || (err === null || err === void 0 ? void 0 : (_err$error6 = err.error) === null || _err$error6 === void 0 ? void 0 : _err$error6.Resource) : '';\n      var errorHttpCode = err ? err === null || err === void 0 ? void 0 : err.statusCode : data.statusCode;\n      var requestId = err ? (err === null || err === void 0 ? void 0 : err.headers) && (err === null || err === void 0 ? void 0 : err.headers['x-cos-request-id']) : (data === null || data === void 0 ? void 0 : data.headers) && (data === null || data === void 0 ? void 0 : data.headers['x-cos-request-id']);\n      var errorType = err ? requestId ? 'Server' : 'Client' : '';\n      if (this.params.requestName === 'getObject') {\n        this.params.httpSize = data ? data.headers && data.headers['content-length'] : 0;\n      }\n\n      // 上报 sliceUploadFile || uploadFile || uploadFiles 命中分块上传时\n      var isSliceUploadFile = this.params.realApi === 'sliceUploadFile';\n      var isSliceCopyFile = this.params.realApi === 'sliceCopyFile';\n      if (isSliceUploadFile || isSliceCopyFile) {\n        var speed = this.params.httpSize / 1024 / this.params.partTime;\n        Object.assign(this.params, {\n          httpSpeed: speed < 0 ? 0 : speed.toFixed(3)\n        });\n      } else {\n        var httpFullTime = now - this.params.startTime;\n        var httpTookTime = this.params.httpEndTime - this.params.httpStartTime;\n        var _speed = this.params.httpSize / 1024 / (httpTookTime / 1000);\n        var httpMd5 = this.params.md5EndTime - this.params.md5StartTime;\n        var httpSign = this.params.signEndTime - this.params.signStartTime;\n        if (this.parent) {\n          this.parent.addParamValue('httpTookTime', ms2s(httpTookTime));\n          this.parent.addParamValue('httpFullTime', ms2s(httpFullTime));\n          this.parent.addParamValue('httpMd5', ms2s(httpMd5));\n          this.parent.addParamValue('httpSign', ms2s(httpSign));\n          if (['multipartUpload', 'uploadPartCopy', 'putObjectCopy'].includes(this.params.requestName)) {\n            // 只有小分块上传|复制才累计纯请求耗时，计算速度时用到\n            this.parent.addParamValue('partTime', ms2s(httpTookTime));\n          }\n        }\n        Object.assign(this.params, {\n          httpFullTime: ms2s(httpFullTime),\n          httpMd5: ms2s(httpMd5),\n          httpSign: ms2s(httpSign),\n          httpTookTime: ms2s(httpTookTime),\n          httpSpeed: _speed < 0 ? 0 : _speed.toFixed(3)\n        });\n      }\n      Object.assign(this.params, {\n        networkType: networkType,\n        requestResult: err ? 'Failure' : 'Success',\n        errorType: errorType,\n        errorCode: errorCode,\n        errorHttpCode: errorHttpCode,\n        errorName: errorName,\n        errorMessage: errorMessage,\n        errorServiceName: errorServiceName,\n        errorRequestId: requestId\n      });\n      if (err && (!errorCode || !errorMessage)) {\n        // 暂存全量err一段时间 观察是否所有err格式都可被解析\n        this.params.fullError = err ? JSON.stringify(err) : '';\n      }\n      if (this.params.url) {\n        try {\n          var execRes = /^http(s)?:\\/\\/(.*?)\\//.exec(this.params.url);\n          this.params.host = execRes[2];\n        } catch (e) {\n          this.params.host = this.params.url;\n        }\n        this.params.httpDomain = this.params.host;\n      }\n    }\n\n    // 上报\n  }, {\n    key: \"report\",\n    value: function report(err, data) {\n      if (!this.beacon && !this.clsReporter) return;\n      this.formatResult(err, data);\n      var formattedParams = formatParams(this.params);\n      if (this.beacon) {\n        this.sendEventsToBeacon(formattedParams);\n      }\n      if (this.clsReporter) {\n        this.sendEventsToCLS(formattedParams);\n      }\n    }\n\n    // 设置当前链路的参数\n  }, {\n    key: \"setParams\",\n    value: function setParams(params) {\n      Object.assign(this.params, params);\n    }\n  }, {\n    key: \"addParamValue\",\n    value: function addParamValue(key, value) {\n      this.params[key] = (+this.params[key] + +value).toFixed(3);\n    }\n\n    // 上报灯塔\n  }, {\n    key: \"sendEventsToBeacon\",\n    value: function sendEventsToBeacon(formattedParams) {\n      // DeepTracker模式下才会上报分块上传内部细节\n      var isSliceUploadFile = this.params.requestName === 'sliceUploadFile' || this.params.realApi === 'sliceUploadFile';\n      if (isSliceUploadFile && !this.deepTracker) {\n        return;\n      }\n      var eventCode = 'qcloud_track_cos_sdk';\n      if (this.delay === 0) {\n        // 实时上报\n        this.beacon && this.beacon.onDirectUserAction(eventCode, formattedParams);\n      } else {\n        // 周期性上报\n        this.beacon && this.beacon.onUserAction(eventCode, formattedParams);\n      }\n    }\n\n    // 上报 cls\n  }, {\n    key: \"sendEventsToCLS\",\n    value: function sendEventsToCLS(formattedParams) {\n      // 是否实时上报\n      var immediate = !!(this.delay === 0);\n      this.clsReporter.log(formattedParams, immediate);\n    }\n\n    // 生成子实例，与父所属一个链路，可用于分块上传内部流程上报单个分块操作\n  }, {\n    key: \"generateSubTracker\",\n    value: function generateSubTracker(subParams) {\n      Object.assign(subParams, {\n        parent: this,\n        deepTracker: this.deepTracker,\n        traceId: this.params.traceId,\n        bucket: this.params.bucket,\n        region: this.params.region,\n        accelerate: this.params.accelerate,\n        fileKey: this.params.requestPath,\n        customId: this.params.customId,\n        delay: this.delay,\n        clsReporter: this.clsReporter\n      });\n      return new Tracker(subParams);\n    }\n  }]);\n  return Tracker;\n}();\nmodule.exports = Tracker;\n\n/***/ }),\n\n/***/ \"./src/util.js\":\n/*!*********************!*\\\n  !*** ./src/util.js ***!\n  \\*********************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(process) {\n\nvar _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ \"./node_modules/@babel/runtime/helpers/typeof.js\");\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nvar md5 = __webpack_require__(/*! ../lib/md5 */ \"./lib/md5.js\");\nvar CryptoJS = __webpack_require__(/*! ../lib/crypto */ \"./lib/crypto.js\");\nvar _require = __webpack_require__(/*! fast-xml-parser */ \"./node_modules/fast-xml-parser/src/fxp.js\"),\n  XMLParser = _require.XMLParser,\n  XMLBuilder = _require.XMLBuilder;\nvar xmlParser = new XMLParser({\n  ignoreDeclaration: true,\n  // 忽略 XML 声明\n  ignoreAttributes: true,\n  // 忽略属性\n  parseTagValue: false // 关闭自动解析\n});\nvar xmlBuilder = new XMLBuilder();\nvar base64 = __webpack_require__(/*! ../lib/base64 */ \"./lib/base64.js\");\nvar Tracker = __webpack_require__(/*! ./tracker */ \"./src/tracker.js\");\n\n// XML 对象转 JSON 对象\nvar xml2json = function xml2json(bodyStr) {\n  var d = xmlParser.parse(bodyStr);\n  return d;\n};\n\n// JSON 对象转 XML 对象\nvar json2xml = function json2xml(json) {\n  var xml = xmlBuilder.build(json);\n  return xml;\n};\nfunction camSafeUrlEncode(str) {\n  return encodeURIComponent(str).replace(/!/g, '%21').replace(/'/g, '%27').replace(/\\(/g, '%28').replace(/\\)/g, '%29').replace(/\\*/g, '%2A');\n}\nfunction getObjectKeys(obj, forKey) {\n  var list = [];\n  for (var key in obj) {\n    if (obj.hasOwnProperty(key)) {\n      list.push(forKey ? camSafeUrlEncode(key).toLowerCase() : key);\n    }\n  }\n  return list.sort(function (a, b) {\n    a = a.toLowerCase();\n    b = b.toLowerCase();\n    return a === b ? 0 : a > b ? 1 : -1;\n  });\n}\n\n/**\n * obj转为string\n * @param  {Object}  obj                需要转的对象，必须\n * @param  {Boolean} lowerCaseKey       key是否转为小写，默认false，非必须\n * @return {String}  data               返回字符串\n */\nvar obj2str = function obj2str(obj, lowerCaseKey) {\n  var i, key, val;\n  var list = [];\n  var keyList = getObjectKeys(obj);\n  for (i = 0; i < keyList.length; i++) {\n    key = keyList[i];\n    val = obj[key] === undefined || obj[key] === null ? '' : '' + obj[key];\n    key = lowerCaseKey ? camSafeUrlEncode(key).toLowerCase() : camSafeUrlEncode(key);\n    val = camSafeUrlEncode(val) || '';\n    list.push(key + '=' + val);\n  }\n  return list.join('&');\n};\n\n// 可以签入签名的headers\nvar signHeaders = ['cache-control', 'content-disposition', 'content-encoding', 'content-length', 'content-md5', 'expect', 'expires', 'host', 'if-match', 'if-modified-since', 'if-none-match', 'if-unmodified-since', 'origin', 'range', 'transfer-encoding', 'pic-operations'];\nvar getSignHeaderObj = function getSignHeaderObj(headers) {\n  var signHeaderObj = {};\n  for (var i in headers) {\n    var key = i.toLowerCase();\n    if (key.indexOf('x-cos-') > -1 || signHeaders.indexOf(key) > -1) {\n      signHeaderObj[i] = headers[i];\n    }\n  }\n  return signHeaderObj;\n};\n\n//测试用的key后面可以去掉\nvar getAuth = function getAuth(opt) {\n  opt = opt || {};\n  var SecretId = opt.SecretId;\n  var SecretKey = opt.SecretKey;\n  var KeyTime = opt.KeyTime;\n  var method = (opt.method || opt.Method || 'get').toLowerCase();\n  var queryParams = clone(opt.Query || opt.params || {});\n  var headers = getSignHeaderObj(clone(opt.Headers || opt.headers || {}));\n  var Key = opt.Key || '';\n  var pathname;\n  if (opt.UseRawKey) {\n    pathname = opt.Pathname || opt.pathname || '/' + Key;\n  } else {\n    pathname = opt.Pathname || opt.pathname || Key;\n    pathname.indexOf('/') !== 0 && (pathname = '/' + pathname);\n  }\n\n  // ForceSignHost明确传入false才不加入host签名\n  var forceSignHost = opt.ForceSignHost === false ? false : true;\n\n  // 如果有传入存储桶且需要强制签名，那么签名默认加 Host 参与计算，避免跨桶访问\n  if (!headers.Host && !headers.host && opt.Bucket && opt.Region && forceSignHost) headers.Host = opt.Bucket + '.cos.' + opt.Region + '.myqcloud.com';\n  if (!SecretId) throw new Error('missing param SecretId');\n  if (!SecretKey) throw new Error('missing param SecretKey');\n\n  // 签名有效起止时间\n  var now = Math.round(getSkewTime(opt.SystemClockOffset) / 1000) - 1;\n  var exp = now;\n  var Expires = opt.Expires || opt.expires;\n  if (Expires === undefined) {\n    exp += 900; // 签名过期时间为当前 + 900s\n  } else {\n    exp += Expires * 1 || 0;\n  }\n\n  // 要用到的 Authorization 参数列表\n  var qSignAlgorithm = 'sha1';\n  var qAk = SecretId;\n  var qSignTime = KeyTime || now + ';' + exp;\n  var qKeyTime = KeyTime || now + ';' + exp;\n  var qHeaderList = getObjectKeys(headers, true).join(';').toLowerCase();\n  var qUrlParamList = getObjectKeys(queryParams, true).join(';').toLowerCase();\n\n  // 签名算法说明文档：https://www.qcloud.com/document/product/436/7778\n  // 步骤一：计算 SignKey\n  var signKey = CryptoJS.HmacSHA1(qKeyTime, SecretKey).toString();\n\n  // 步骤二：构成 FormatString\n  var formatString = [method, pathname, util.obj2str(queryParams, true), util.obj2str(headers, true), ''].join('\\n');\n\n  // 步骤三：计算 StringToSign\n  var stringToSign = ['sha1', qSignTime, CryptoJS.SHA1(formatString).toString(), ''].join('\\n');\n\n  // 步骤四：计算 Signature\n  var qSignature = CryptoJS.HmacSHA1(stringToSign, signKey).toString();\n\n  // 步骤五：构造 Authorization\n  var authorization = ['q-sign-algorithm=' + qSignAlgorithm, 'q-ak=' + qAk, 'q-sign-time=' + qSignTime, 'q-key-time=' + qKeyTime, 'q-header-list=' + qHeaderList, 'q-url-param-list=' + qUrlParamList, 'q-signature=' + qSignature].join('&');\n  return authorization;\n};\nvar readIntBE = function readIntBE(chunk, size, offset) {\n  var bytes = size / 8;\n  var buf = chunk.slice(offset, offset + bytes);\n  new Uint8Array(buf).reverse();\n  return new {\n    8: Uint8Array,\n    16: Uint16Array,\n    32: Uint32Array\n  }[size](buf)[0];\n};\nvar buf2str = function buf2str(chunk, start, end, isUtf8) {\n  var buf = chunk.slice(start, end);\n  var str = '';\n  new Uint8Array(buf).forEach(function (charCode) {\n    str += String.fromCharCode(charCode);\n  });\n  if (isUtf8) str = decodeURIComponent(escape(str));\n  return str;\n};\nvar parseSelectPayload = function parseSelectPayload(chunk) {\n  var header = {};\n  var body = buf2str(chunk);\n  var result = {\n    records: []\n  };\n  while (chunk.byteLength) {\n    var totalLength = readIntBE(chunk, 32, 0);\n    var headerLength = readIntBE(chunk, 32, 4);\n    var payloadRestLength = totalLength - headerLength - 16;\n    var offset = 0;\n    var content;\n    chunk = chunk.slice(12);\n    // 获取 Message 的 header 信息\n    while (offset < headerLength) {\n      var headerNameLength = readIntBE(chunk, 8, offset);\n      var headerName = buf2str(chunk, offset + 1, offset + 1 + headerNameLength);\n      var headerValueLength = readIntBE(chunk, 16, offset + headerNameLength + 2);\n      var headerValue = buf2str(chunk, offset + headerNameLength + 4, offset + headerNameLength + 4 + headerValueLength);\n      header[headerName] = headerValue;\n      offset += headerNameLength + 4 + headerValueLength;\n    }\n    if (header[':event-type'] === 'Records') {\n      content = buf2str(chunk, offset, offset + payloadRestLength, true);\n      result.records.push(content);\n    } else if (header[':event-type'] === 'Stats') {\n      content = buf2str(chunk, offset, offset + payloadRestLength, true);\n      result.stats = util.xml2json(content).Stats;\n    } else if (header[':event-type'] === 'error') {\n      var errCode = header[':error-code'];\n      var errMessage = header[':error-message'];\n      var err = new Error(errMessage);\n      err.message = errMessage;\n      err.name = err.code = errCode;\n      result.error = err;\n    } else if (['Progress', 'Continuation', 'End'].includes(header[':event-type'])) {\n      // do nothing\n    }\n    chunk = chunk.slice(offset + payloadRestLength + 4);\n  }\n  return {\n    payload: result.records.join(''),\n    body: body\n  };\n};\nvar getSourceParams = function getSourceParams(source) {\n  var parser = this.options.CopySourceParser;\n  if (parser) return parser(source);\n  var m = source.match(/^([^.]+-\\d+)\\.cos(v6|-cdc|-cdz|-internal)?\\.([^.]+)\\.((myqcloud\\.com)|(tencentcos\\.cn))\\/(.+)$/);\n  if (!m) return null;\n  return {\n    Bucket: m[1],\n    Region: m[3],\n    Key: m[7]\n  };\n};\nvar noop = function noop() {};\n\n// 清除对象里值为的 undefined 或 null 的属性\nvar clearKey = function clearKey(obj) {\n  var retObj = {};\n  for (var key in obj) {\n    if (obj.hasOwnProperty(key) && obj[key] !== undefined && obj[key] !== null) {\n      retObj[key] = obj[key];\n    }\n  }\n  return retObj;\n};\nvar readAsBinaryString = function readAsBinaryString(blob, callback) {\n  var readFun;\n  var fr = new FileReader();\n  if (FileReader.prototype.readAsBinaryString) {\n    readFun = FileReader.prototype.readAsBinaryString;\n    fr.onload = function () {\n      callback(this.result);\n    };\n  } else if (FileReader.prototype.readAsArrayBuffer) {\n    // 在 ie11 添加 readAsBinaryString 兼容\n    readFun = function readFun(fileData) {\n      var binary = '';\n      var pt = this;\n      var reader = new FileReader();\n      reader.onload = function (e) {\n        var bytes = new Uint8Array(reader.result);\n        var length = bytes.byteLength;\n        for (var i = 0; i < length; i++) {\n          binary += String.fromCharCode(bytes[i]);\n        }\n        callback(binary);\n      };\n      reader.readAsArrayBuffer(fileData);\n    };\n  } else {\n    console.error('FileReader not support readAsBinaryString');\n  }\n  readFun.call(fr, blob);\n};\nvar fileSliceNeedCopy = function () {\n  var compareVersion = function compareVersion(a, b) {\n    a = a.split('.');\n    b = b.split('.');\n    for (var i = 0; i < b.length; i++) {\n      if (a[i] !== b[i]) {\n        return parseInt(a[i]) > parseInt(b[i]) ? 1 : -1;\n      }\n    }\n    return 0;\n  };\n  var check = function check(ua) {\n    if (!ua) return false;\n    var ChromeVersion = (ua.match(/Chrome\\/([.\\d]+)/) || [])[1];\n    var QBCoreVersion = (ua.match(/QBCore\\/([.\\d]+)/) || [])[1];\n    var QQBrowserVersion = (ua.match(/QQBrowser\\/([.\\d]+)/) || [])[1];\n    var need = ChromeVersion && compareVersion(ChromeVersion, '53.0.2785.116') < 0 && QBCoreVersion && compareVersion(QBCoreVersion, '3.53.991.400') < 0 && QQBrowserVersion && compareVersion(QQBrowserVersion, '9.0.2524.400') <= 0 || false;\n    return need;\n  };\n  return check(typeof navigator !== 'undefined' && navigator.userAgent);\n}();\n\n// 获取文件分片\nvar fileSlice = function fileSlice(file, start, end, isUseToUpload, callback) {\n  var blob;\n  if (file.slice) {\n    blob = file.slice(start, end);\n  } else if (file.mozSlice) {\n    blob = file.mozSlice(start, end);\n  } else if (file.webkitSlice) {\n    blob = file.webkitSlice(start, end);\n  }\n  if (isUseToUpload && fileSliceNeedCopy) {\n    var reader = new FileReader();\n    reader.onload = function (e) {\n      blob = null;\n      callback(new Blob([reader.result]));\n    };\n    reader.readAsArrayBuffer(blob);\n  } else {\n    callback(blob);\n  }\n};\n\n// 获取文件内容的 MD5\nvar getBodyMd5 = function getBodyMd5(UploadCheckContentMd5, Body, callback, onProgress) {\n  callback = callback || noop;\n  if (UploadCheckContentMd5) {\n    if (typeof Body === 'string') {\n      callback(util.md5(Body, true));\n    } else if (Blob && Body instanceof Blob) {\n      util.getFileMd5(Body, function (err, md5) {\n        callback(md5);\n      }, onProgress);\n    } else {\n      callback();\n    }\n  } else {\n    callback();\n  }\n};\n\n// 获取文件 md5 值\nvar md5ChunkSize = 1024 * 1024;\nvar getFileMd5 = function getFileMd5(blob, callback, onProgress) {\n  var size = blob.size;\n  var loaded = 0;\n  var md5ctx = md5.getCtx();\n  var next = function next(start) {\n    if (start >= size) {\n      var hash = md5ctx.digest('hex');\n      callback(null, hash);\n      return;\n    }\n    var end = Math.min(size, start + md5ChunkSize);\n    util.fileSlice(blob, start, end, false, function (chunk) {\n      readAsBinaryString(chunk, function (content) {\n        chunk = null;\n        md5ctx = md5ctx.update(content, true);\n        loaded += content.length;\n        content = null;\n        if (onProgress) onProgress({\n          loaded: loaded,\n          total: size,\n          percent: Math.round(loaded / size * 10000) / 10000\n        });\n        next(start + md5ChunkSize);\n      });\n    });\n  };\n  next(0);\n};\nfunction clone(obj) {\n  return map(obj, function (v) {\n    return _typeof(v) === 'object' && v !== null ? clone(v) : v;\n  });\n}\nfunction attr(obj, name, defaultValue) {\n  return obj && name in obj ? obj[name] : defaultValue;\n}\nfunction extend(target, source) {\n  each(source, function (val, key) {\n    target[key] = source[key];\n  });\n  return target;\n}\nfunction isArray(arr) {\n  return arr instanceof Array;\n}\nfunction isInArray(arr, item) {\n  var flag = false;\n  for (var i = 0; i < arr.length; i++) {\n    if (item === arr[i]) {\n      flag = true;\n      break;\n    }\n  }\n  return flag;\n}\nfunction makeArray(arr) {\n  return isArray(arr) ? arr : [arr];\n}\nfunction each(obj, fn) {\n  for (var i in obj) {\n    if (obj.hasOwnProperty(i)) {\n      fn(obj[i], i);\n    }\n  }\n}\nfunction map(obj, fn) {\n  var o = isArray(obj) ? [] : {};\n  for (var i in obj) {\n    if (obj.hasOwnProperty(i)) {\n      o[i] = fn(obj[i], i);\n    }\n  }\n  return o;\n}\nfunction filter(obj, fn) {\n  var iaArr = isArray(obj);\n  var o = iaArr ? [] : {};\n  for (var i in obj) {\n    if (obj.hasOwnProperty(i)) {\n      if (fn(obj[i], i)) {\n        if (iaArr) {\n          o.push(obj[i]);\n        } else {\n          o[i] = obj[i];\n        }\n      }\n    }\n  }\n  return o;\n}\nvar b64 = function b64(str) {\n  var i,\n    len,\n    char,\n    res = '';\n  for (i = 0, len = str.length / 2; i < len; i++) {\n    char = parseInt(str[i * 2] + str[i * 2 + 1], 16);\n    res += String.fromCharCode(char);\n  }\n  return btoa(res);\n};\nvar uuid = function uuid() {\n  var S4 = function S4() {\n    return ((1 + Math.random()) * 0x10000 | 0).toString(16).substring(1);\n  };\n  return S4() + S4() + '-' + S4() + '-' + S4() + '-' + S4() + '-' + S4() + S4() + S4();\n};\nvar hasMissingParams = function hasMissingParams(apiName, params) {\n  var Bucket = params.Bucket;\n  var Region = params.Region;\n  var Key = params.Key;\n  var Domain = this.options.Domain;\n  var checkBucket = !Domain || typeof Domain === 'string' && Domain.indexOf('{Bucket}') > -1;\n  var checkRegion = !Domain || typeof Domain === 'string' && Domain.indexOf('{Region}') > -1;\n  if (apiName.indexOf('Bucket') > -1 || apiName === 'deleteMultipleObject' || apiName === 'multipartList' || apiName === 'listObjectVersions') {\n    if (checkBucket && !Bucket) return 'Bucket';\n    if (checkRegion && !Region) return 'Region';\n  } else if (apiName.indexOf('Object') > -1 || apiName.indexOf('multipart') > -1 || apiName === 'sliceUploadFile' || apiName === 'abortUploadTask' || apiName === 'uploadFile') {\n    if (checkBucket && !Bucket) return 'Bucket';\n    if (checkRegion && !Region) return 'Region';\n    if (!Key) return 'Key';\n  }\n  return false;\n};\nvar formatParams = function formatParams(apiName, params) {\n  // 复制参数对象\n  params = extend({}, params);\n\n  // 统一处理 Headers\n  if (apiName !== 'getAuth' && apiName !== 'getV4Auth' && apiName !== 'getObjectUrl') {\n    var Headers = params.Headers || {};\n    if (params && _typeof(params) === 'object') {\n      (function () {\n        for (var key in params) {\n          if (params.hasOwnProperty(key) && key.indexOf('x-cos-') > -1) {\n            Headers[key] = params[key];\n          }\n        }\n      })();\n      var headerMap = {\n        // params headers\n        'x-cos-mfa': 'MFA',\n        'Content-MD5': 'ContentMD5',\n        'Content-Length': 'ContentLength',\n        'Content-Type': 'ContentType',\n        Expect: 'Expect',\n        Expires: 'Expires',\n        'Cache-Control': 'CacheControl',\n        'Content-Disposition': 'ContentDisposition',\n        'Content-Encoding': 'ContentEncoding',\n        Range: 'Range',\n        'If-Modified-Since': 'IfModifiedSince',\n        'If-Unmodified-Since': 'IfUnmodifiedSince',\n        'If-Match': 'IfMatch',\n        'If-None-Match': 'IfNoneMatch',\n        'x-cos-copy-source': 'CopySource',\n        'x-cos-copy-source-Range': 'CopySourceRange',\n        'x-cos-metadata-directive': 'MetadataDirective',\n        'x-cos-copy-source-If-Modified-Since': 'CopySourceIfModifiedSince',\n        'x-cos-copy-source-If-Unmodified-Since': 'CopySourceIfUnmodifiedSince',\n        'x-cos-copy-source-If-Match': 'CopySourceIfMatch',\n        'x-cos-copy-source-If-None-Match': 'CopySourceIfNoneMatch',\n        'x-cos-acl': 'ACL',\n        'x-cos-grant-read': 'GrantRead',\n        'x-cos-grant-write': 'GrantWrite',\n        'x-cos-grant-full-control': 'GrantFullControl',\n        'x-cos-grant-read-acp': 'GrantReadAcp',\n        'x-cos-grant-write-acp': 'GrantWriteAcp',\n        'x-cos-storage-class': 'StorageClass',\n        'x-cos-traffic-limit': 'TrafficLimit',\n        'x-cos-mime-limit': 'MimeLimit',\n        // SSE-C\n        'x-cos-server-side-encryption-customer-algorithm': 'SSECustomerAlgorithm',\n        'x-cos-server-side-encryption-customer-key': 'SSECustomerKey',\n        'x-cos-server-side-encryption-customer-key-MD5': 'SSECustomerKeyMD5',\n        // SSE-COS、SSE-KMS\n        'x-cos-server-side-encryption': 'ServerSideEncryption',\n        'x-cos-server-side-encryption-cos-kms-key-id': 'SSEKMSKeyId',\n        'x-cos-server-side-encryption-context': 'SSEContext',\n        // 上传时图片处理\n        'Pic-Operations': 'PicOperations',\n        'x-cos-callback': 'Callback',\n        'x-cos-callback-var': 'CallbackVar',\n        'x-cos-return-body': 'ReturnBody'\n      };\n      util.each(headerMap, function (paramKey, headerKey) {\n        if (params[paramKey] !== undefined) {\n          Headers[headerKey] = params[paramKey];\n        }\n      });\n      params.Headers = clearKey(Headers);\n    }\n  }\n  return params;\n};\nvar apiWrapper = function apiWrapper(apiName, apiFn) {\n  return function (params, callback) {\n    var self = this;\n\n    // 处理参数\n    if (typeof params === 'function') {\n      callback = params;\n      params = {};\n    }\n\n    // 整理参数格式\n    params = formatParams(apiName, params);\n\n    // tracker传递\n    var tracker;\n    if (self.options.EnableReporter) {\n      if (params.calledBySdk === 'sliceUploadFile' || params.calledBySdk === 'sliceCopyFile') {\n        // 分块上传内部方法使用sliceUploadFile的子链路\n        tracker = params.tracker && params.tracker.generateSubTracker({\n          apiName: apiName\n        });\n      } else if (['uploadFile', 'uploadFiles'].includes(apiName)) {\n        // uploadFile、uploadFiles方法在内部处理，此处不处理\n        tracker = null;\n      } else {\n        var fileSize = 0;\n        if (params.Body) {\n          fileSize = typeof params.Body === 'string' ? params.Body.length : params.Body.size || params.Body.byteLength || 0;\n        }\n        var accelerate = self.options.UseAccelerate || typeof self.options.Domain === 'string' && self.options.Domain.includes('accelerate.');\n        tracker = new Tracker({\n          Beacon: self.options.BeaconReporter,\n          clsReporter: self.options.ClsReporter,\n          bucket: params.Bucket,\n          region: params.Region,\n          apiName: apiName,\n          realApi: apiName,\n          accelerate: accelerate,\n          fileKey: params.Key,\n          fileSize: fileSize,\n          deepTracker: self.options.DeepTracker,\n          customId: self.options.CustomId,\n          delay: self.options.TrackerDelay\n        });\n      }\n    }\n    params.tracker = tracker;\n\n    // 代理回调函数\n    var formatResult = function formatResult(result) {\n      if (result && result.headers) {\n        result.headers['x-cos-request-id'] && (result.RequestId = result.headers['x-cos-request-id']);\n        result.headers['x-ci-request-id'] && (result.RequestId = result.headers['x-ci-request-id']);\n        result.headers['x-cos-version-id'] && (result.VersionId = result.headers['x-cos-version-id']);\n        result.headers['x-cos-delete-marker'] && (result.DeleteMarker = result.headers['x-cos-delete-marker']);\n      }\n      return result;\n    };\n    var _callback = function _callback(err, data) {\n      // 格式化上报参数并上报\n      tracker && tracker.report(err, data);\n      callback && callback(formatResult(err), formatResult(data));\n    };\n    var checkParams = function checkParams() {\n      if (apiName !== 'getService' && apiName !== 'abortUploadTask') {\n        // 判断参数是否完整\n        var missingResult = hasMissingParams.call(self, apiName, params);\n        if (missingResult) {\n          return 'missing param ' + missingResult;\n        }\n        // 判断 region 格式\n        if (params.Region) {\n          if (self.options.CompatibilityMode) {\n            if (!/^([a-z\\d-.]+)$/.test(params.Region)) {\n              return 'Region format error.';\n            }\n          } else {\n            if (params.Region.indexOf('cos.') > -1) {\n              return 'param Region should not be start with \"cos.\"';\n            } else if (!/^([a-z\\d-]+)$/.test(params.Region)) {\n              return 'Region format error.';\n            }\n          }\n          // 判断 region 格式\n          if (!self.options.CompatibilityMode && params.Region.indexOf('-') === -1 && params.Region !== 'yfb' && params.Region !== 'default' && params.Region !== 'accelerate') {\n            console.warn('warning: param Region format error, find help here: https://cloud.tencent.com/document/product/436/6224');\n          }\n        }\n        // 兼容不带 AppId 的 Bucket\n        if (params.Bucket) {\n          if (!/^([a-z\\d-]+)-(\\d+)$/.test(params.Bucket)) {\n            if (params.AppId) {\n              params.Bucket = params.Bucket + '-' + params.AppId;\n            } else if (self.options.AppId) {\n              params.Bucket = params.Bucket + '-' + self.options.AppId;\n            } else {\n              return 'Bucket should format as \"test-1250000000\".';\n            }\n          }\n          if (params.AppId) {\n            console.warn('warning: AppId has been deprecated, Please put it at the end of parameter Bucket(E.g Bucket:\"test-1250000000\" ).');\n            delete params.AppId;\n          }\n        }\n        // 如果 Key 是 / 开头，强制去掉第一个 /\n        if (!self.options.UseRawKey && params.Key && params.Key.substr(0, 1) === '/') {\n          params.Key = params.Key.substr(1);\n        }\n      }\n    };\n    var errMsg = checkParams();\n    var isSync = ['getAuth', 'getObjectUrl'].includes(apiName);\n    if (typeof Promise === 'function' && !isSync && !callback) {\n      return new Promise(function (resolve, reject) {\n        callback = function callback(err, data) {\n          err ? reject(err) : resolve(data);\n        };\n        if (errMsg) return _callback(util.error(new Error(errMsg)));\n        apiFn.call(self, params, _callback);\n      });\n    } else {\n      if (errMsg) return _callback(util.error(new Error(errMsg)));\n      var res = apiFn.call(self, params, _callback);\n      if (isSync) return res;\n    }\n  };\n};\nvar throttleOnProgress = function throttleOnProgress(total, onProgress) {\n  var self = this;\n  var size0 = 0;\n  var size1 = 0;\n  var time0 = Date.now();\n  var time1;\n  var timer;\n  function update() {\n    timer = 0;\n    if (onProgress && typeof onProgress === 'function') {\n      time1 = Date.now();\n      var speed = Math.max(0, Math.round((size1 - size0) / ((time1 - time0) / 1000) * 100) / 100) || 0;\n      var percent;\n      if (size1 === 0 && total === 0) {\n        percent = 1;\n      } else {\n        percent = Math.floor(size1 / total * 100) / 100 || 0;\n      }\n      time0 = time1;\n      size0 = size1;\n      try {\n        onProgress({\n          loaded: size1,\n          total: total,\n          speed: speed,\n          percent: percent\n        });\n      } catch (e) {}\n    }\n  }\n  return function (info, immediately) {\n    if (info) {\n      size1 = info.loaded;\n      total = info.total;\n    }\n    if (immediately) {\n      clearTimeout(timer);\n      update();\n    } else {\n      if (timer) return;\n      timer = setTimeout(update, self.options.ProgressInterval);\n    }\n  };\n};\nvar getFileSize = function getFileSize(api, params, callback) {\n  var size;\n  if (typeof params.Body === 'string') {\n    params.Body = new Blob([params.Body], {\n      type: 'text/plain'\n    });\n  } else if (params.Body instanceof ArrayBuffer) {\n    params.Body = new Blob([params.Body]);\n  }\n  if (params.Body && (params.Body instanceof Blob || params.Body.toString() === '[object File]' || params.Body.toString() === '[object Blob]')) {\n    size = params.Body.size;\n  } else {\n    callback(util.error(new Error('params body format error, Only allow File|Blob|String.')));\n    return;\n  }\n  params.ContentLength = size;\n  callback(null, size);\n};\n\n// 获取调正的时间戳\nvar getSkewTime = function getSkewTime(offset) {\n  return Date.now() + (offset || 0);\n};\nvar error = function error(err, opt) {\n  var sourceErr = err;\n  err.message = err.message || null;\n  if (typeof opt === 'string') {\n    err.error = opt;\n    err.message = opt;\n  } else if (_typeof(opt) === 'object' && opt !== null) {\n    extend(err, opt);\n    if (opt.code || opt.name) err.code = opt.code || opt.name;\n    if (opt.message) err.message = opt.message;\n    if (opt.stack) err.stack = opt.stack;\n  }\n  if (typeof Object.defineProperty === 'function') {\n    Object.defineProperty(err, 'name', {\n      writable: true,\n      enumerable: false\n    });\n    Object.defineProperty(err, 'message', {\n      enumerable: true\n    });\n  }\n  err.name = opt && opt.name || err.name || err.code || 'Error';\n  if (!err.code) err.code = err.name;\n  if (!err.error) err.error = clone(sourceErr); // 兼容老的错误格式\n\n  return err;\n};\nvar isWebWorker = function isWebWorker() {\n  // 有限判断 worker 环境的 constructor name 其次用 worker 独有的 FileReaderSync 兜底 详细参考 https://developer.mozilla.org/zh-CN/docs/Web/API/Web_Workers_API/Using_web_workers\n  return (typeof globalThis === \"undefined\" ? \"undefined\" : _typeof(globalThis)) === 'object' && (globalThis.constructor.name === 'DedicatedWorkerGlobalScope' || globalThis.FileReaderSync);\n};\nvar isNode = function isNode() {\n  // 得兜底 web worker 环境中 webpack 用了 process 插件之类的情况\n  return (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) !== 'object' && (typeof process === \"undefined\" ? \"undefined\" : _typeof(process)) === 'object' && \"function\" === 'function' && !isWebWorker();\n};\nvar isCIHost = function isCIHost(url) {\n  return /^https?:\\/\\/([^/]+\\.)?ci\\.[^/]+/.test(url);\n};\n\n//判断是否是ios\nvar isIOS = function () {\n  if ((typeof navigator === \"undefined\" ? \"undefined\" : _typeof(navigator)) !== 'object') {\n    return false;\n  }\n  var u = navigator.userAgent;\n  var isIOS = !!u.match(/\\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端\n  return isIOS;\n}();\n\n// 判断是qq内置浏览器\nvar isQQ = function () {\n  if ((typeof navigator === \"undefined\" ? \"undefined\" : _typeof(navigator)) !== 'object') {\n    return false;\n  }\n  return /\\sQQ/i.test(navigator.userAgent);\n}();\nvar encodeBase64 = function encodeBase64(str, safe) {\n  var base64Str = base64.encode(str);\n  // 万象使用的安全base64格式需要特殊处理\n  if (safe) {\n    base64Str = base64Str.replaceAll('+', '-').replaceAll('/', '_').replaceAll('=', '');\n  }\n  return base64Str;\n};\nvar decodeBase64 = function decodeBase64(base64Str) {\n  if (!base64Str) return '';\n  return base64.decode(base64Str);\n};\nvar simplifyPath = function simplifyPath(path) {\n  var names = path.split('/');\n  var stack = [];\n  var _iterator = _createForOfIteratorHelper(names),\n    _step;\n  try {\n    for (_iterator.s(); !(_step = _iterator.n()).done;) {\n      var name = _step.value;\n      if (name === '..') {\n        if (stack.length) {\n          stack.pop();\n        }\n      } else if (name.length && name !== '.') {\n        stack.push(name);\n      }\n    }\n  } catch (err) {\n    _iterator.e(err);\n  } finally {\n    _iterator.f();\n  }\n  return '/' + stack.join('/');\n};\n\n// 解析响应体，兼容 xml、json\nvar parseResBody = function parseResBody(responseBody) {\n  var json;\n  if (responseBody && typeof responseBody === 'string') {\n    var trimBody = responseBody.trim();\n    var isXml = trimBody.indexOf('<') === 0;\n    var isJson = trimBody.indexOf('{') === 0;\n    if (isXml) {\n      // xml 解析，解析失败返回{}\n      json = util.xml2json(responseBody) || {};\n    } else if (isJson) {\n      // json解析，解析失败返回原始 Body\n      try {\n        // 替换 json 中的换行符为空格，否则解析会出错\n        var formatBody = responseBody.replace(/\\n/g, ' ');\n        var parsedBody = JSON.parse(formatBody);\n        // 确保解析出 json 对象\n        if (Object.prototype.toString.call(parsedBody) === '[object Object]') {\n          json = parsedBody;\n        } else {\n          json = responseBody;\n        }\n      } catch (e) {\n        json = responseBody;\n      }\n    } else {\n      json = responseBody;\n    }\n  } else {\n    json = responseBody || {};\n  }\n  return json;\n};\nvar util = {\n  noop: noop,\n  formatParams: formatParams,\n  apiWrapper: apiWrapper,\n  xml2json: xml2json,\n  json2xml: json2xml,\n  md5: md5,\n  clearKey: clearKey,\n  fileSlice: fileSlice,\n  getBodyMd5: getBodyMd5,\n  getFileMd5: getFileMd5,\n  b64: b64,\n  extend: extend,\n  isArray: isArray,\n  isInArray: isInArray,\n  makeArray: makeArray,\n  each: each,\n  map: map,\n  filter: filter,\n  clone: clone,\n  attr: attr,\n  uuid: uuid,\n  camSafeUrlEncode: camSafeUrlEncode,\n  throttleOnProgress: throttleOnProgress,\n  getFileSize: getFileSize,\n  getSkewTime: getSkewTime,\n  error: error,\n  obj2str: obj2str,\n  getAuth: getAuth,\n  parseSelectPayload: parseSelectPayload,\n  getSourceParams: getSourceParams,\n  isBrowser: true,\n  isNode: isNode,\n  isCIHost: isCIHost,\n  isIOS_QQ: isIOS && isQQ,\n  encodeBase64: encodeBase64,\n  decodeBase64: decodeBase64,\n  simplifyPath: simplifyPath,\n  readAsBinaryString: readAsBinaryString,\n  parseResBody: parseResBody\n};\nmodule.exports = util;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../node_modules/process/browser.js */ \"./node_modules/process/browser.js\")))\n\n/***/ })\n\n/******/ });\n});","/**\n * @license React\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var b=Symbol.for(\"react.element\"),c=Symbol.for(\"react.portal\"),d=Symbol.for(\"react.fragment\"),e=Symbol.for(\"react.strict_mode\"),f=Symbol.for(\"react.profiler\"),g=Symbol.for(\"react.provider\"),h=Symbol.for(\"react.context\"),k=Symbol.for(\"react.server_context\"),l=Symbol.for(\"react.forward_ref\"),m=Symbol.for(\"react.suspense\"),n=Symbol.for(\"react.suspense_list\"),p=Symbol.for(\"react.memo\"),q=Symbol.for(\"react.lazy\"),t=Symbol.for(\"react.offscreen\"),u;u=Symbol.for(\"react.module.reference\");\nfunction v(a){if(\"object\"===typeof a&&null!==a){var r=a.$$typeof;switch(r){case b:switch(a=a.type,a){case d:case f:case e:case m:case n:return a;default:switch(a=a&&a.$$typeof,a){case k:case h:case l:case q:case p:case g:return a;default:return r}}case c:return r}}}exports.ContextConsumer=h;exports.ContextProvider=g;exports.Element=b;exports.ForwardRef=l;exports.Fragment=d;exports.Lazy=q;exports.Memo=p;exports.Portal=c;exports.Profiler=f;exports.StrictMode=e;exports.Suspense=m;\nexports.SuspenseList=n;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return v(a)===h};exports.isContextProvider=function(a){return v(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return v(a)===l};exports.isFragment=function(a){return v(a)===d};exports.isLazy=function(a){return v(a)===q};exports.isMemo=function(a){return v(a)===p};\nexports.isPortal=function(a){return v(a)===c};exports.isProfiler=function(a){return v(a)===f};exports.isStrictMode=function(a){return v(a)===e};exports.isSuspense=function(a){return v(a)===m};exports.isSuspenseList=function(a){return v(a)===n};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===e||a===m||a===n||a===t||\"object\"===typeof a&&null!==a&&(a.$$typeof===q||a.$$typeof===p||a.$$typeof===g||a.$$typeof===h||a.$$typeof===l||a.$$typeof===u||void 0!==a.getModuleId)?!0:!1};exports.typeOf=v;\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAABYlAAAWJQFJUiTwAAABaWlDQ1BEaXNwbGF5IFAzAAB4nHWQvUvDUBTFT6tS0DqIDh0cMolD1NIKdnFoKxRFMFQFq1OafgltfCQpUnETVyn4H1jBWXCwiFRwcXAQRAcR3Zw6KbhoeN6XVNoi3sfl/Ticc7lcwBtQGSv2AijplpFMxKS11Lrke4OHnlOqZrKooiwK/v276/PR9d5PiFlNu3YQ2U9cl84ul3aeAlN//V3Vn8maGv3f1EGNGRbgkYmVbYsJ3iUeMWgp4qrgvMvHgtMunzuelWSc+JZY0gpqhrhJLKc79HwHl4plrbWD2N6f1VeXxRzqUcxhEyYYilBRgQQF4X/8044/ji1yV2BQLo8CLMpESRETssTz0KFhEjJxCEHqkLhz634PrfvJbW3vFZhtcM4v2tpCAzidoZPV29p4BBgaAG7qTDVUR+qh9uZywPsJMJgChu8os2HmwiF3e38M6Hvh/GMM8B0CdpXzryPO7RqFn4Er/QcXKWq8MSlPPgAAA4lJREFUeAHVmj1zElEUht97VxAlzhALZ/KhA3UKSKOl+AN0ksY2ftROEiu7kD/ghLGPWFvE0R+QpLQKKaxBHchMCmVUJoRk7/HcTWCyQJZll8DuU4TdzV3mvHvO3XvuOQgMASqVEvVIbEGC0pBIEpAhQkIAifYggTKfl6FQVFD7hmHs3JiaKsMnAh7RRjdisWUiyrKxWXiCinx/3o+YgQW0DDcVrdiesG+oIKVcH1TIQAKODg7Whm+4HSlFjkWsux3vSgAbnlRKbfHwDEZDmYU8cuMN2W8AG7/ET31vhMZr+IHRXv1HdaHfQEcBdQ4Z/qLCVYaMAwkY2NJh6zTo0hDSxkNRDgHAaV70FGC5jtUjQLCIZyziQ+f1LgF6wuqYH1PYOFFjEfOdE7trDiii7QAar0mcvQnt2ARYcU9IIrCITL1SydmutA7O3vVUQvCpNZvHqclUqqZP2h5QCmsIB4loNLrSOrE8EKKn36LtBcsDpuk1mxwbbS9c038EaBk+EL8Ocf3jO4hKCaJR7zvenHuA5uMXoNt34BUhxEPr02/4aONjG69dGX4RuhFHY/mtLxEcRpPSb/hEv2wObLxGHNURZa/5IRKJ8C4Qpq8s0/j2FV6RVd/vjYzkJCONMaG94Ot+IZKS36NJhBaRlsFOHfqS6LsjCzihF2DlQjWEGMnLcJgFlKUgFBFSBJcrpSL1HT7QKcG44B3aPs8Bw5cH1HQKXjmduw+fFOXJSeMTfNB8+sqTF/Q9J09ewg+6KGxtaP5Vq9uCvCd14vchop83XeVF2nBirx1r4ZPeM1GmGJ+Znrf2A1zi3hUQWXhEG3K89AajhEjl9ae1kJ02mxsI2Xqgw0d/WgL03lKB8ggNVGgVuNqpRJi8oBsh7ePWQWi8oMjWxemqjdYrVe4FYJS9ANfoJuHNGfvC05WNcgF1EcEMpZrgrk3nxS4B2j1EYhVBw8TzXi2nnvuBidmpApdaXDfarhy2JX5vumfG4Njk+/uzkuOQGm/NVBt/dyZ32b/7din/cLfGMPAeo+8Z1Hi1XZ2YnS04DXLdZuV0Y5tGVADgUmdRSLnops06UKN7BCFV47mXv+UQMp0M/FMDq4dmUo53Q0sYHpbhE6fNDXHeuHCL5x97nAlBVgirsu1p4eOHsMMPY9eL4e3vwBBoiQFxndWQaavaZ58vtfPiQZFM3sIKoxjnjZRXoy/yH9zFhf5qzPwCAAAAAElFTkSuQmCC\"","/* istanbul ignore next */\nexport var ERROR_CODE = {\n    \"bridge-error\": 989,\n    \"bridge-failed\": 990,\n    \"http-parsererror\": 991,\n    // IE script readyState\n    uninitialized: 992,\n    loading: 993,\n    \"xhr-1.0-error\": 994,\n    parsererror: 995,\n    abort: 996,\n    onabort: 996,\n    timeout: 997,\n    error: 998,\n    onerror: 998,\n    unknown: 999\n};\n","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nvar _excluded = [\"show\"];\nimport * as React from 'react';\n/**\n * Cut `value` by the `count.max` prop.\n */\nexport function inCountRange(value, countConfig) {\n  if (!countConfig.max) {\n    return true;\n  }\n  var count = countConfig.strategy(value);\n  return count <= countConfig.max;\n}\nexport default function useCount(count, showCount) {\n  return React.useMemo(function () {\n    var mergedConfig = {};\n    if (showCount) {\n      mergedConfig.show = _typeof(showCount) === 'object' && showCount.formatter ? showCount.formatter : !!showCount;\n    }\n    mergedConfig = _objectSpread(_objectSpread({}, mergedConfig), count);\n    var _ref = mergedConfig,\n      show = _ref.show,\n      rest = _objectWithoutProperties(_ref, _excluded);\n    return _objectSpread(_objectSpread({}, rest), {}, {\n      show: !!show,\n      showFormatter: typeof show === 'function' ? show : undefined,\n      strategy: rest.strategy || function (value) {\n        return value.length;\n      }\n    });\n  }, [count, showCount]);\n}","export default !!(typeof window !== 'undefined' && window.document && window.document.createElement);","import { decode } from \"./escape\";\n/**\n * URL设置querystring，支持同时设置多个querystring\n * @param {string | object} key query name\n * @param {string} val query value\n * @param {string} [url] url\n * @returns {string}\n * @example\n * // returns https://kg.qq.com?frompage=live\n * import { setParameter } from \"@tencent/kg-base\";\n * setParameter('frompage','live', 'https://kg.qq.com');\n * @example\n * // 同时设置多个参数\n * // return https://kg.qq.com?frompage=live&abtest=1\n * setParameter({\n * frompage:'live',\n * abtest:'1'\n * },\"https://kg.qq.com\");\n * @category kg-base\n */\n// 没有则添加,有则替换,val为空则删除。可传obj: setParameter({k1:v1,k2:v2},url)\nexport function setParameter(key, val, _url) {\n    var url = _url;\n    if (typeof key === \"object\") {\n        url = val;\n        /* eslint-disable guard-for-in */\n        for (var i in key) {\n            url = setParameter(i, key[i], url);\n        }\n        return url;\n    }\n    var hash = \"\";\n    var reg = new RegExp(\"([?|&])(\" + key + \"=)([^&#?]*)([&]?)\");\n    url = url || window.location.href;\n    if (url.indexOf(\"#\") !== -1 && url.split(\"#\")[1].indexOf(\"?\") === -1) {\n        // 如果 url 中存在 hash 字符串，且 hash 字符串中不含有查询字符串，则对 url 进行拆分\n        hash = url.slice(url.indexOf(\"#\"), url.length);\n        url = url.split(\"#\")[0];\n    }\n    if (reg.test(url)) {\n        /* eslint-disable max-params */\n        url = url.replace(reg, function (match, s, k, v, e) {\n            return val ? s + k + encodeURIComponent(val) + e : e ? s : \"\";\n        });\n    }\n    else {\n        url = val\n            ? (url + \"&\" + key + \"=\" + encodeURIComponent(val)).replace(/(\\?|&)/, \"?\")\n            : url;\n    }\n    return hash ? url + hash : url;\n}\n/**\n * 获取querystring值\n * @param {string} name query name\n * @param {string} [url] 默认当前页面URL\n * @returns {string}\n * @example\n * // returns \"live\"\n * import { getParameter } from \"@tencent/kg-base\";\n * getParameter(\"frompage\",\"https://kg.qq.com?frompage=live&abtest=1\")\n * @category kg-base\n */\nexport function getParameter(name, url) {\n    var r = new RegExp(\"(\\x5c?|#|&)\" + name + \"=([^&#?]*)(&|#|\\x5c?|$)\");\n    var m = (url || window.location.href).match(r);\n    return decode(!m ? \"\" : m[2]);\n}\n/**\n * json转querystring\n * @param obj\n * @returns {string}\n * @example\n * // returns \"a=1&b=2\"\n * import { jsonToQuery } from \"@tencent/kg-base\"\n * jsonToQuery({a:1,b:2})\n * @category kg-base\n */\nexport function jsonToQuery(obj) {\n    var params = [];\n    for (var k in obj) {\n        if (obj.hasOwnProperty(k)) {\n            params.push(encodeURIComponent(k) + \"=\" + encodeURIComponent(obj[k]));\n        }\n    }\n    return params.join(\"&\");\n}\n/**\n * querystring转json\n * @param string\n * @returns {object}\n * @example\n * // returns {a:'1',b:'2'}\n * import {queryToJson} from \"@tencent/kg-base\"\n * queryToJson(\"a=1&b=2\")\n * @category kg-base\n */\nexport function queryToJson(string) {\n    var bak = {};\n    if (string) {\n        var lists = string.split(\"&\");\n        for (var i = 0; i < lists.length; i++) {\n            var v = lists[i].split(\"=\");\n            if (v && typeof v[1] !== \"undefined\") {\n                try {\n                    bak[decode(v[0])] = decode(v[1] || \"\");\n                }\n                catch (e) {\n                    bak[v[0]] = v[1] || \"\";\n                }\n            }\n        }\n    }\n    return bak;\n}\nvar parser;\nvar PARSER_REG = /^([a-z]+\\:)?\\/\\/([^\\/\\?#]+)?([^#\\?]+)?/i;\n/**\n * 将url字符串格式化为url对象\n * @param {string} url url字符串\n * @returns {ParseResult} url对象\n * @example\n * // returns { hash: \"#test\", hostname: \"kg.qq.com\", pathname: \"/activity/vip/index.html\", protocol: \"https:\", query: {hippy: \"vip\", abtest: \"1\"}, search: \"?hippy=vip&abtest=1\"}\n * import {parse} from \"@tencent/kg-base\"\n * parse(\"https://kg.qq.com/activity/vip/index.html?hippy=vip&abtest=1#test\")\n * @category kg-base\n */\nexport function parse(url) {\n    if (!parser) {\n        parser = document.createElement(\"a\");\n    }\n    parser.href = url;\n    var match = url.match(PARSER_REG);\n    // avoid //a.b.com/xxx\n    var protocol = match && match[1] ? match[1] : \"\";\n    // avoid jsbridge://karawebview/xxx\n    var hostname = match && match[2] ? match[2] : \"\";\n    var pathname = match && match[3] ? match[3] : \"/\";\n    var search = parser.search;\n    var hash = parser.hash;\n    var query = {};\n    search\n        .replace(/^\\?/, \"\")\n        .split(/&/)\n        .forEach(function (kv) {\n        if (kv) {\n            var q = kv.split(/\\=/);\n            try {\n                query[q[0]] = decodeURIComponent(q[1]);\n            }\n            catch (e) { }\n        }\n    });\n    return {\n        protocol: protocol,\n        hostname: hostname,\n        pathname: pathname,\n        search: search,\n        hash: hash,\n        query: query\n    };\n}\n/**\n * 将url对象格式化为url字符串\n * @param {object} params\n * @param {string} [params.protocol] protocol\n * @param { string } [params.hostname] domain\n * @param {string} [params.hash] hash\n * @param {object} [params.query] query\n * @param {string} [params.pathname] path\n * @returns {string} url字符串\n * @example\n * // returns \"https://kg.qq.com/activity/vip/index.html?hippy=vip&abtest=1#test\"\n * import { format } from \"@tencent/kg-base\";\n * format({protocol:\"https:\",hostname:\"kg.qq.com\",\"hash\":\"test\",\"query\":{hippy:vip,abtest:1},pathname:\"activity/vip/index.html\"});\n * @category kg-base\n */\nexport function format(_a) {\n    var _b = _a === void 0 ? {} : _a, protocol = _b.protocol, hostname = _b.hostname, hash = _b.hash, pathname = _b.pathname, query = _b.query;\n    var _protocol = protocol;\n    var _hostname = hostname;\n    var _hash = hash;\n    var _pathname = pathname;\n    if (!_protocol) {\n        _protocol = \"https:\";\n    }\n    if (!_hostname) {\n        _hostname = \"kg.qq.com\";\n    }\n    if (!_hash) {\n        _hash = \"\";\n    }\n    else if (_hash && !/^\\#/.test(_hash)) {\n        _hash = \"#\" + _hash;\n    }\n    if (!_pathname) {\n        _pathname = \"/\";\n    }\n    else if (!/^\\//.test(_pathname)) {\n        _pathname = \"/\" + _pathname;\n    }\n    var search = query ? jsonToQuery(query) : \"\";\n    return _protocol + \"//\" + _hostname + _pathname + (search ? \"?\" + search : \"\") + _hash;\n}\n","import type {\n  FormEncType,\n  HTMLFormMethod,\n  RelativeRoutingType,\n} from \"@remix-run/router\";\nimport { stripBasename, UNSAFE_warning as warning } from \"@remix-run/router\";\n\nexport const defaultMethod: HTMLFormMethod = \"get\";\nconst defaultEncType: FormEncType = \"application/x-www-form-urlencoded\";\n\nexport function isHtmlElement(object: any): object is HTMLElement {\n  return object != null && typeof object.tagName === \"string\";\n}\n\nexport function isButtonElement(object: any): object is HTMLButtonElement {\n  return isHtmlElement(object) && object.tagName.toLowerCase() === \"button\";\n}\n\nexport function isFormElement(object: any): object is HTMLFormElement {\n  return isHtmlElement(object) && object.tagName.toLowerCase() === \"form\";\n}\n\nexport function isInputElement(object: any): object is HTMLInputElement {\n  return isHtmlElement(object) && object.tagName.toLowerCase() === \"input\";\n}\n\ntype LimitedMouseEvent = Pick<\n  MouseEvent,\n  \"button\" | \"metaKey\" | \"altKey\" | \"ctrlKey\" | \"shiftKey\"\n>;\n\nfunction isModifiedEvent(event: LimitedMouseEvent) {\n  return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nexport function shouldProcessLinkClick(\n  event: LimitedMouseEvent,\n  target?: string\n) {\n  return (\n    event.button === 0 && // Ignore everything but left clicks\n    (!target || target === \"_self\") && // Let browser handle \"target=_blank\" etc.\n    !isModifiedEvent(event) // Ignore clicks with modifier keys\n  );\n}\n\nexport type ParamKeyValuePair = [string, string];\n\nexport type URLSearchParamsInit =\n  | string\n  | ParamKeyValuePair[]\n  | Record<string, string | string[]>\n  | URLSearchParams;\n\n/**\n * Creates a URLSearchParams object using the given initializer.\n *\n * This is identical to `new URLSearchParams(init)` except it also\n * supports arrays as values in the object form of the initializer\n * instead of just strings. This is convenient when you need multiple\n * values for a given key, but don't want to use an array initializer.\n *\n * For example, instead of:\n *\n *   let searchParams = new URLSearchParams([\n *     ['sort', 'name'],\n *     ['sort', 'price']\n *   ]);\n *\n * you can do:\n *\n *   let searchParams = createSearchParams({\n *     sort: ['name', 'price']\n *   });\n */\nexport function createSearchParams(\n  init: URLSearchParamsInit = \"\"\n): URLSearchParams {\n  return new URLSearchParams(\n    typeof init === \"string\" ||\n    Array.isArray(init) ||\n    init instanceof URLSearchParams\n      ? init\n      : Object.keys(init).reduce((memo, key) => {\n          let value = init[key];\n          return memo.concat(\n            Array.isArray(value) ? value.map((v) => [key, v]) : [[key, value]]\n          );\n        }, [] as ParamKeyValuePair[])\n  );\n}\n\nexport function getSearchParamsForLocation(\n  locationSearch: string,\n  defaultSearchParams: URLSearchParams | null\n) {\n  let searchParams = createSearchParams(locationSearch);\n\n  if (defaultSearchParams) {\n    for (let key of defaultSearchParams.keys()) {\n      if (!searchParams.has(key)) {\n        defaultSearchParams.getAll(key).forEach((value) => {\n          searchParams.append(key, value);\n        });\n      }\n    }\n  }\n\n  return searchParams;\n}\n\n// Thanks https://github.com/sindresorhus/type-fest!\ntype JsonObject = { [Key in string]: JsonValue } & {\n  [Key in string]?: JsonValue | undefined;\n};\ntype JsonArray = JsonValue[] | readonly JsonValue[];\ntype JsonPrimitive = string | number | boolean | null;\ntype JsonValue = JsonPrimitive | JsonObject | JsonArray;\n\nexport type SubmitTarget =\n  | HTMLFormElement\n  | HTMLButtonElement\n  | HTMLInputElement\n  | FormData\n  | URLSearchParams\n  | JsonValue\n  | null;\n\n// One-time check for submitter support\nlet _formDataSupportsSubmitter: boolean | null = null;\n\nfunction isFormDataSubmitterSupported() {\n  if (_formDataSupportsSubmitter === null) {\n    try {\n      new FormData(\n        document.createElement(\"form\"),\n        // @ts-expect-error if FormData supports the submitter parameter, this will throw\n        0\n      );\n      _formDataSupportsSubmitter = false;\n    } catch (e) {\n      _formDataSupportsSubmitter = true;\n    }\n  }\n  return _formDataSupportsSubmitter;\n}\n\nexport interface SubmitOptions {\n  /**\n   * The HTTP method used to submit the form. Overrides `<form method>`.\n   * Defaults to \"GET\".\n   */\n  method?: HTMLFormMethod;\n\n  /**\n   * The action URL path used to submit the form. Overrides `<form action>`.\n   * Defaults to the path of the current route.\n   */\n  action?: string;\n\n  /**\n   * The encoding used to submit the form. Overrides `<form encType>`.\n   * Defaults to \"application/x-www-form-urlencoded\".\n   */\n  encType?: FormEncType;\n\n  /**\n   * Set `true` to replace the current entry in the browser's history stack\n   * instead of creating a new one (i.e. stay on \"the same page\"). Defaults\n   * to `false`.\n   */\n  replace?: boolean;\n\n  /**\n   * State object to add to the history stack entry for this navigation\n   */\n  state?: any;\n\n  /**\n   * Determines whether the form action is relative to the route hierarchy or\n   * the pathname.  Use this if you want to opt out of navigating the route\n   * hierarchy and want to instead route based on /-delimited URL segments\n   */\n  relative?: RelativeRoutingType;\n\n  /**\n   * In browser-based environments, prevent resetting scroll after this\n   * navigation when using the <ScrollRestoration> component\n   */\n  preventScrollReset?: boolean;\n}\n\nconst supportedFormEncTypes: Set<FormEncType> = new Set([\n  \"application/x-www-form-urlencoded\",\n  \"multipart/form-data\",\n  \"text/plain\",\n]);\n\nfunction getFormEncType(encType: string | null) {\n  if (encType != null && !supportedFormEncTypes.has(encType as FormEncType)) {\n    warning(\n      false,\n      `\"${encType}\" is not a valid \\`encType\\` for \\`<Form>\\`/\\`<fetcher.Form>\\` ` +\n        `and will default to \"${defaultEncType}\"`\n    );\n\n    return null;\n  }\n  return encType;\n}\n\nexport function getFormSubmissionInfo(\n  target: SubmitTarget,\n  basename: string\n): {\n  action: string | null;\n  method: string;\n  encType: string;\n  formData: FormData | undefined;\n  body: any;\n} {\n  let method: string;\n  let action: string | null;\n  let encType: string;\n  let formData: FormData | undefined;\n  let body: any;\n\n  if (isFormElement(target)) {\n    // When grabbing the action from the element, it will have had the basename\n    // prefixed to ensure non-JS scenarios work, so strip it since we'll\n    // re-prefix in the router\n    let attr = target.getAttribute(\"action\");\n    action = attr ? stripBasename(attr, basename) : null;\n    method = target.getAttribute(\"method\") || defaultMethod;\n    encType = getFormEncType(target.getAttribute(\"enctype\")) || defaultEncType;\n\n    formData = new FormData(target);\n  } else if (\n    isButtonElement(target) ||\n    (isInputElement(target) &&\n      (target.type === \"submit\" || target.type === \"image\"))\n  ) {\n    let form = target.form;\n\n    if (form == null) {\n      throw new Error(\n        `Cannot submit a <button> or <input type=\"submit\"> without a <form>`\n      );\n    }\n\n    // <button>/<input type=\"submit\"> may override attributes of <form>\n\n    // When grabbing the action from the element, it will have had the basename\n    // prefixed to ensure non-JS scenarios work, so strip it since we'll\n    // re-prefix in the router\n    let attr = target.getAttribute(\"formaction\") || form.getAttribute(\"action\");\n    action = attr ? stripBasename(attr, basename) : null;\n\n    method =\n      target.getAttribute(\"formmethod\") ||\n      form.getAttribute(\"method\") ||\n      defaultMethod;\n    encType =\n      getFormEncType(target.getAttribute(\"formenctype\")) ||\n      getFormEncType(form.getAttribute(\"enctype\")) ||\n      defaultEncType;\n\n    // Build a FormData object populated from a form and submitter\n    formData = new FormData(form, target);\n\n    // If this browser doesn't support the `FormData(el, submitter)` format,\n    // then tack on the submitter value at the end.  This is a lightweight\n    // solution that is not 100% spec compliant.  For complete support in older\n    // browsers, consider using the `formdata-submitter-polyfill` package\n    if (!isFormDataSubmitterSupported()) {\n      let { name, type, value } = target;\n      if (type === \"image\") {\n        let prefix = name ? `${name}.` : \"\";\n        formData.append(`${prefix}x`, \"0\");\n        formData.append(`${prefix}y`, \"0\");\n      } else if (name) {\n        formData.append(name, value);\n      }\n    }\n  } else if (isHtmlElement(target)) {\n    throw new Error(\n      `Cannot submit element that is not <form>, <button>, or ` +\n        `<input type=\"submit|image\">`\n    );\n  } else {\n    method = defaultMethod;\n    action = null;\n    encType = defaultEncType;\n    body = target;\n  }\n\n  // Send body for <Form encType=\"text/plain\" so we encode it into text\n  if (formData && encType === \"text/plain\") {\n    body = formData;\n    formData = undefined;\n  }\n\n  return { action, method: method.toLowerCase(), encType, formData, body };\n}\n","/**\n * NOTE: If you refactor this to split up the modules into separate files,\n * you'll need to update the rollup config for react-router-dom-v5-compat.\n */\nimport * as React from \"react\";\nimport type {\n  FutureConfig,\n  Location,\n  NavigateOptions,\n  NavigationType,\n  RelativeRoutingType,\n  RouteObject,\n  To,\n} from \"react-router\";\nimport {\n  Router,\n  createPath,\n  useHref,\n  useLocation,\n  useMatches,\n  useNavigate,\n  useNavigation,\n  useResolvedPath,\n  unstable_useBlocker as useBlocker,\n  UNSAFE_DataRouterContext as DataRouterContext,\n  UNSAFE_DataRouterStateContext as DataRouterStateContext,\n  UNSAFE_NavigationContext as NavigationContext,\n  UNSAFE_RouteContext as RouteContext,\n  UNSAFE_mapRouteProperties as mapRouteProperties,\n  UNSAFE_useRouteId as useRouteId,\n} from \"react-router\";\nimport type {\n  BrowserHistory,\n  Fetcher,\n  FormEncType,\n  FormMethod,\n  FutureConfig as RouterFutureConfig,\n  GetScrollRestorationKeyFunction,\n  HashHistory,\n  History,\n  HTMLFormMethod,\n  HydrationState,\n  Router as RemixRouter,\n  V7_FormMethod,\n} from \"@remix-run/router\";\nimport {\n  createRouter,\n  createBrowserHistory,\n  createHashHistory,\n  joinPaths,\n  stripBasename,\n  ErrorResponse,\n  UNSAFE_invariant as invariant,\n  UNSAFE_warning as warning,\n} from \"@remix-run/router\";\n\nimport type {\n  SubmitOptions,\n  ParamKeyValuePair,\n  URLSearchParamsInit,\n  SubmitTarget,\n} from \"./dom\";\nimport {\n  createSearchParams,\n  defaultMethod,\n  getFormSubmissionInfo,\n  getSearchParamsForLocation,\n  shouldProcessLinkClick,\n} from \"./dom\";\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Re-exports\n////////////////////////////////////////////////////////////////////////////////\n\nexport type {\n  FormEncType,\n  FormMethod,\n  GetScrollRestorationKeyFunction,\n  ParamKeyValuePair,\n  SubmitOptions,\n  URLSearchParamsInit,\n  V7_FormMethod,\n};\nexport { createSearchParams };\n\n// Note: Keep in sync with react-router exports!\nexport type {\n  ActionFunction,\n  ActionFunctionArgs,\n  AwaitProps,\n  unstable_Blocker,\n  unstable_BlockerFunction,\n  DataRouteMatch,\n  DataRouteObject,\n  Fetcher,\n  Hash,\n  IndexRouteObject,\n  IndexRouteProps,\n  JsonFunction,\n  LazyRouteFunction,\n  LayoutRouteProps,\n  LoaderFunction,\n  LoaderFunctionArgs,\n  Location,\n  MemoryRouterProps,\n  NavigateFunction,\n  NavigateOptions,\n  NavigateProps,\n  Navigation,\n  Navigator,\n  NonIndexRouteObject,\n  OutletProps,\n  Params,\n  ParamParseKey,\n  Path,\n  PathMatch,\n  Pathname,\n  PathPattern,\n  PathRouteProps,\n  RedirectFunction,\n  RelativeRoutingType,\n  RouteMatch,\n  RouteObject,\n  RouteProps,\n  RouterProps,\n  RouterProviderProps,\n  RoutesProps,\n  Search,\n  ShouldRevalidateFunction,\n  To,\n} from \"react-router\";\nexport {\n  AbortedDeferredError,\n  Await,\n  MemoryRouter,\n  Navigate,\n  NavigationType,\n  Outlet,\n  Route,\n  Router,\n  RouterProvider,\n  Routes,\n  createMemoryRouter,\n  createPath,\n  createRoutesFromChildren,\n  createRoutesFromElements,\n  defer,\n  isRouteErrorResponse,\n  generatePath,\n  json,\n  matchPath,\n  matchRoutes,\n  parsePath,\n  redirect,\n  renderMatches,\n  resolvePath,\n  useActionData,\n  useAsyncError,\n  useAsyncValue,\n  unstable_useBlocker,\n  useHref,\n  useInRouterContext,\n  useLoaderData,\n  useLocation,\n  useMatch,\n  useMatches,\n  useNavigate,\n  useNavigation,\n  useNavigationType,\n  useOutlet,\n  useOutletContext,\n  useParams,\n  useResolvedPath,\n  useRevalidator,\n  useRouteError,\n  useRouteLoaderData,\n  useRoutes,\n} from \"react-router\";\n\n///////////////////////////////////////////////////////////////////////////////\n// DANGER! PLEASE READ ME!\n// We provide these exports as an escape hatch in the event that you need any\n// routing data that we don't provide an explicit API for. With that said, we\n// want to cover your use case if we can, so if you feel the need to use these\n// we want to hear from you. Let us know what you're building and we'll do our\n// best to make sure we can support you!\n//\n// We consider these exports an implementation detail and do not guarantee\n// against any breaking changes, regardless of the semver release. Use with\n// extreme caution and only if you understand the consequences. Godspeed.\n///////////////////////////////////////////////////////////////////////////////\n\n/** @internal */\nexport {\n  UNSAFE_DataRouterContext,\n  UNSAFE_DataRouterStateContext,\n  UNSAFE_NavigationContext,\n  UNSAFE_LocationContext,\n  UNSAFE_RouteContext,\n  UNSAFE_useRouteId,\n} from \"react-router\";\n//#endregion\n\ndeclare global {\n  var __staticRouterHydrationData: HydrationState | undefined;\n}\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Routers\n////////////////////////////////////////////////////////////////////////////////\n\ninterface DOMRouterOpts {\n  basename?: string;\n  future?: Partial<Omit<RouterFutureConfig, \"v7_prependBasename\">>;\n  hydrationData?: HydrationState;\n  window?: Window;\n}\n\nexport function createBrowserRouter(\n  routes: RouteObject[],\n  opts?: DOMRouterOpts\n): RemixRouter {\n  return createRouter({\n    basename: opts?.basename,\n    future: {\n      ...opts?.future,\n      v7_prependBasename: true,\n    },\n    history: createBrowserHistory({ window: opts?.window }),\n    hydrationData: opts?.hydrationData || parseHydrationData(),\n    routes,\n    mapRouteProperties,\n  }).initialize();\n}\n\nexport function createHashRouter(\n  routes: RouteObject[],\n  opts?: DOMRouterOpts\n): RemixRouter {\n  return createRouter({\n    basename: opts?.basename,\n    future: {\n      ...opts?.future,\n      v7_prependBasename: true,\n    },\n    history: createHashHistory({ window: opts?.window }),\n    hydrationData: opts?.hydrationData || parseHydrationData(),\n    routes,\n    mapRouteProperties,\n  }).initialize();\n}\n\nfunction parseHydrationData(): HydrationState | undefined {\n  let state = window?.__staticRouterHydrationData;\n  if (state && state.errors) {\n    state = {\n      ...state,\n      errors: deserializeErrors(state.errors),\n    };\n  }\n  return state;\n}\n\nfunction deserializeErrors(\n  errors: RemixRouter[\"state\"][\"errors\"]\n): RemixRouter[\"state\"][\"errors\"] {\n  if (!errors) return null;\n  let entries = Object.entries(errors);\n  let serialized: RemixRouter[\"state\"][\"errors\"] = {};\n  for (let [key, val] of entries) {\n    // Hey you!  If you change this, please change the corresponding logic in\n    // serializeErrors in react-router-dom/server.tsx :)\n    if (val && val.__type === \"RouteErrorResponse\") {\n      serialized[key] = new ErrorResponse(\n        val.status,\n        val.statusText,\n        val.data,\n        val.internal === true\n      );\n    } else if (val && val.__type === \"Error\") {\n      // Attempt to reconstruct the right type of Error (i.e., ReferenceError)\n      if (val.__subType) {\n        let ErrorConstructor = window[val.__subType];\n        if (typeof ErrorConstructor === \"function\") {\n          try {\n            // @ts-expect-error\n            let error = new ErrorConstructor(val.message);\n            // Wipe away the client-side stack trace.  Nothing to fill it in with\n            // because we don't serialize SSR stack traces for security reasons\n            error.stack = \"\";\n            serialized[key] = error;\n          } catch (e) {\n            // no-op - fall through and create a normal Error\n          }\n        }\n      }\n\n      if (serialized[key] == null) {\n        let error = new Error(val.message);\n        // Wipe away the client-side stack trace.  Nothing to fill it in with\n        // because we don't serialize SSR stack traces for security reasons\n        error.stack = \"\";\n        serialized[key] = error;\n      }\n    } else {\n      serialized[key] = val;\n    }\n  }\n  return serialized;\n}\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Components\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n  Webpack + React 17 fails to compile on any of the following because webpack\n  complains that `startTransition` doesn't exist in `React`:\n  * import { startTransition } from \"react\"\n  * import * as React from from \"react\";\n    \"startTransition\" in React ? React.startTransition(() => setState()) : setState()\n  * import * as React from from \"react\";\n    \"startTransition\" in React ? React[\"startTransition\"](() => setState()) : setState()\n\n  Moving it to a constant such as the following solves the Webpack/React 17 issue:\n  * import * as React from from \"react\";\n    const START_TRANSITION = \"startTransition\";\n    START_TRANSITION in React ? React[START_TRANSITION](() => setState()) : setState()\n\n  However, that introduces webpack/terser minification issues in production builds\n  in React 18 where minification/obfuscation ends up removing the call of\n  React.startTransition entirely from the first half of the ternary.  Grabbing\n  this exported reference once up front resolves that issue.\n\n  See https://github.com/remix-run/react-router/issues/10579\n*/\nconst START_TRANSITION = \"startTransition\";\nconst startTransitionImpl = React[START_TRANSITION];\n\nexport interface BrowserRouterProps {\n  basename?: string;\n  children?: React.ReactNode;\n  future?: FutureConfig;\n  window?: Window;\n}\n\n/**\n * A `<Router>` for use in web browsers. Provides the cleanest URLs.\n */\nexport function BrowserRouter({\n  basename,\n  children,\n  future,\n  window,\n}: BrowserRouterProps) {\n  let historyRef = React.useRef<BrowserHistory>();\n  if (historyRef.current == null) {\n    historyRef.current = createBrowserHistory({ window, v5Compat: true });\n  }\n\n  let history = historyRef.current;\n  let [state, setStateImpl] = React.useState({\n    action: history.action,\n    location: history.location,\n  });\n  let { v7_startTransition } = future || {};\n  let setState = React.useCallback(\n    (newState: { action: NavigationType; location: Location }) => {\n      v7_startTransition && startTransitionImpl\n        ? startTransitionImpl(() => setStateImpl(newState))\n        : setStateImpl(newState);\n    },\n    [setStateImpl, v7_startTransition]\n  );\n\n  React.useLayoutEffect(() => history.listen(setState), [history, setState]);\n\n  return (\n    <Router\n      basename={basename}\n      children={children}\n      location={state.location}\n      navigationType={state.action}\n      navigator={history}\n    />\n  );\n}\n\nexport interface HashRouterProps {\n  basename?: string;\n  children?: React.ReactNode;\n  future?: FutureConfig;\n  window?: Window;\n}\n\n/**\n * A `<Router>` for use in web browsers. Stores the location in the hash\n * portion of the URL so it is not sent to the server.\n */\nexport function HashRouter({\n  basename,\n  children,\n  future,\n  window,\n}: HashRouterProps) {\n  let historyRef = React.useRef<HashHistory>();\n  if (historyRef.current == null) {\n    historyRef.current = createHashHistory({ window, v5Compat: true });\n  }\n\n  let history = historyRef.current;\n  let [state, setStateImpl] = React.useState({\n    action: history.action,\n    location: history.location,\n  });\n  let { v7_startTransition } = future || {};\n  let setState = React.useCallback(\n    (newState: { action: NavigationType; location: Location }) => {\n      v7_startTransition && startTransitionImpl\n        ? startTransitionImpl(() => setStateImpl(newState))\n        : setStateImpl(newState);\n    },\n    [setStateImpl, v7_startTransition]\n  );\n\n  React.useLayoutEffect(() => history.listen(setState), [history, setState]);\n\n  return (\n    <Router\n      basename={basename}\n      children={children}\n      location={state.location}\n      navigationType={state.action}\n      navigator={history}\n    />\n  );\n}\n\nexport interface HistoryRouterProps {\n  basename?: string;\n  children?: React.ReactNode;\n  future?: FutureConfig;\n  history: History;\n}\n\n/**\n * A `<Router>` that accepts a pre-instantiated history object. It's important\n * to note that using your own history object is highly discouraged and may add\n * two versions of the history library to your bundles unless you use the same\n * version of the history library that React Router uses internally.\n */\nfunction HistoryRouter({\n  basename,\n  children,\n  future,\n  history,\n}: HistoryRouterProps) {\n  let [state, setStateImpl] = React.useState({\n    action: history.action,\n    location: history.location,\n  });\n  let { v7_startTransition } = future || {};\n  let setState = React.useCallback(\n    (newState: { action: NavigationType; location: Location }) => {\n      v7_startTransition && startTransitionImpl\n        ? startTransitionImpl(() => setStateImpl(newState))\n        : setStateImpl(newState);\n    },\n    [setStateImpl, v7_startTransition]\n  );\n\n  React.useLayoutEffect(() => history.listen(setState), [history, setState]);\n\n  return (\n    <Router\n      basename={basename}\n      children={children}\n      location={state.location}\n      navigationType={state.action}\n      navigator={history}\n    />\n  );\n}\n\nif (__DEV__) {\n  HistoryRouter.displayName = \"unstable_HistoryRouter\";\n}\n\nexport { HistoryRouter as unstable_HistoryRouter };\n\nexport interface LinkProps\n  extends Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, \"href\"> {\n  reloadDocument?: boolean;\n  replace?: boolean;\n  state?: any;\n  preventScrollReset?: boolean;\n  relative?: RelativeRoutingType;\n  to: To;\n}\n\nconst isBrowser =\n  typeof window !== \"undefined\" &&\n  typeof window.document !== \"undefined\" &&\n  typeof window.document.createElement !== \"undefined\";\n\nconst ABSOLUTE_URL_REGEX = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i;\n\n/**\n * The public API for rendering a history-aware <a>.\n */\nexport const Link = React.forwardRef<HTMLAnchorElement, LinkProps>(\n  function LinkWithRef(\n    {\n      onClick,\n      relative,\n      reloadDocument,\n      replace,\n      state,\n      target,\n      to,\n      preventScrollReset,\n      ...rest\n    },\n    ref\n  ) {\n    let { basename } = React.useContext(NavigationContext);\n\n    // Rendered into <a href> for absolute URLs\n    let absoluteHref;\n    let isExternal = false;\n\n    if (typeof to === \"string\" && ABSOLUTE_URL_REGEX.test(to)) {\n      // Render the absolute href server- and client-side\n      absoluteHref = to;\n\n      // Only check for external origins client-side\n      if (isBrowser) {\n        try {\n          let currentUrl = new URL(window.location.href);\n          let targetUrl = to.startsWith(\"//\")\n            ? new URL(currentUrl.protocol + to)\n            : new URL(to);\n          let path = stripBasename(targetUrl.pathname, basename);\n\n          if (targetUrl.origin === currentUrl.origin && path != null) {\n            // Strip the protocol/origin/basename for same-origin absolute URLs\n            to = path + targetUrl.search + targetUrl.hash;\n          } else {\n            isExternal = true;\n          }\n        } catch (e) {\n          // We can't do external URL detection without a valid URL\n          warning(\n            false,\n            `<Link to=\"${to}\"> contains an invalid URL which will probably break ` +\n              `when clicked - please update to a valid URL path.`\n          );\n        }\n      }\n    }\n\n    // Rendered into <a href> for relative URLs\n    let href = useHref(to, { relative });\n\n    let internalOnClick = useLinkClickHandler(to, {\n      replace,\n      state,\n      target,\n      preventScrollReset,\n      relative,\n    });\n    function handleClick(\n      event: React.MouseEvent<HTMLAnchorElement, MouseEvent>\n    ) {\n      if (onClick) onClick(event);\n      if (!event.defaultPrevented) {\n        internalOnClick(event);\n      }\n    }\n\n    return (\n      // eslint-disable-next-line jsx-a11y/anchor-has-content\n      <a\n        {...rest}\n        href={absoluteHref || href}\n        onClick={isExternal || reloadDocument ? onClick : handleClick}\n        ref={ref}\n        target={target}\n      />\n    );\n  }\n);\n\nif (__DEV__) {\n  Link.displayName = \"Link\";\n}\n\nexport interface NavLinkProps\n  extends Omit<LinkProps, \"className\" | \"style\" | \"children\"> {\n  children?:\n    | React.ReactNode\n    | ((props: { isActive: boolean; isPending: boolean }) => React.ReactNode);\n  caseSensitive?: boolean;\n  className?:\n    | string\n    | ((props: {\n        isActive: boolean;\n        isPending: boolean;\n      }) => string | undefined);\n  end?: boolean;\n  style?:\n    | React.CSSProperties\n    | ((props: {\n        isActive: boolean;\n        isPending: boolean;\n      }) => React.CSSProperties | undefined);\n}\n\n/**\n * A <Link> wrapper that knows if it's \"active\" or not.\n */\nexport const NavLink = React.forwardRef<HTMLAnchorElement, NavLinkProps>(\n  function NavLinkWithRef(\n    {\n      \"aria-current\": ariaCurrentProp = \"page\",\n      caseSensitive = false,\n      className: classNameProp = \"\",\n      end = false,\n      style: styleProp,\n      to,\n      children,\n      ...rest\n    },\n    ref\n  ) {\n    let path = useResolvedPath(to, { relative: rest.relative });\n    let location = useLocation();\n    let routerState = React.useContext(DataRouterStateContext);\n    let { navigator } = React.useContext(NavigationContext);\n\n    let toPathname = navigator.encodeLocation\n      ? navigator.encodeLocation(path).pathname\n      : path.pathname;\n    let locationPathname = location.pathname;\n    let nextLocationPathname =\n      routerState && routerState.navigation && routerState.navigation.location\n        ? routerState.navigation.location.pathname\n        : null;\n\n    if (!caseSensitive) {\n      locationPathname = locationPathname.toLowerCase();\n      nextLocationPathname = nextLocationPathname\n        ? nextLocationPathname.toLowerCase()\n        : null;\n      toPathname = toPathname.toLowerCase();\n    }\n\n    let isActive =\n      locationPathname === toPathname ||\n      (!end &&\n        locationPathname.startsWith(toPathname) &&\n        locationPathname.charAt(toPathname.length) === \"/\");\n\n    let isPending =\n      nextLocationPathname != null &&\n      (nextLocationPathname === toPathname ||\n        (!end &&\n          nextLocationPathname.startsWith(toPathname) &&\n          nextLocationPathname.charAt(toPathname.length) === \"/\"));\n\n    let ariaCurrent = isActive ? ariaCurrentProp : undefined;\n\n    let className: string | undefined;\n    if (typeof classNameProp === \"function\") {\n      className = classNameProp({ isActive, isPending });\n    } else {\n      // If the className prop is not a function, we use a default `active`\n      // class for <NavLink />s that are active. In v5 `active` was the default\n      // value for `activeClassName`, but we are removing that API and can still\n      // use the old default behavior for a cleaner upgrade path and keep the\n      // simple styling rules working as they currently do.\n      className = [\n        classNameProp,\n        isActive ? \"active\" : null,\n        isPending ? \"pending\" : null,\n      ]\n        .filter(Boolean)\n        .join(\" \");\n    }\n\n    let style =\n      typeof styleProp === \"function\"\n        ? styleProp({ isActive, isPending })\n        : styleProp;\n\n    return (\n      <Link\n        {...rest}\n        aria-current={ariaCurrent}\n        className={className}\n        ref={ref}\n        style={style}\n        to={to}\n      >\n        {typeof children === \"function\"\n          ? children({ isActive, isPending })\n          : children}\n      </Link>\n    );\n  }\n);\n\nif (__DEV__) {\n  NavLink.displayName = \"NavLink\";\n}\n\nexport interface FetcherFormProps\n  extends React.FormHTMLAttributes<HTMLFormElement> {\n  /**\n   * The HTTP verb to use when the form is submit. Supports \"get\", \"post\",\n   * \"put\", \"delete\", \"patch\".\n   */\n  method?: HTMLFormMethod;\n\n  /**\n   * `<form encType>` - enhancing beyond the normal string type and limiting\n   * to the built-in browser supported values\n   */\n  encType?:\n    | \"application/x-www-form-urlencoded\"\n    | \"multipart/form-data\"\n    | \"text/plain\";\n\n  /**\n   * Normal `<form action>` but supports React Router's relative paths.\n   */\n  action?: string;\n\n  /**\n   * Determines whether the form action is relative to the route hierarchy or\n   * the pathname.  Use this if you want to opt out of navigating the route\n   * hierarchy and want to instead route based on /-delimited URL segments\n   */\n  relative?: RelativeRoutingType;\n\n  /**\n   * Prevent the scroll position from resetting to the top of the viewport on\n   * completion of the navigation when using the <ScrollRestoration> component\n   */\n  preventScrollReset?: boolean;\n\n  /**\n   * A function to call when the form is submitted. If you call\n   * `event.preventDefault()` then this form will not do anything.\n   */\n  onSubmit?: React.FormEventHandler<HTMLFormElement>;\n}\n\nexport interface FormProps extends FetcherFormProps {\n  /**\n   * Forces a full document navigation instead of a fetch.\n   */\n  reloadDocument?: boolean;\n\n  /**\n   * Replaces the current entry in the browser history stack when the form\n   * navigates. Use this if you don't want the user to be able to click \"back\"\n   * to the page with the form on it.\n   */\n  replace?: boolean;\n\n  /**\n   * State object to add to the history stack entry for this navigation\n   */\n  state?: any;\n}\n\n/**\n * A `@remix-run/router`-aware `<form>`. It behaves like a normal form except\n * that the interaction with the server is with `fetch` instead of new document\n * requests, allowing components to add nicer UX to the page as the form is\n * submitted and returns with data.\n */\nexport const Form = React.forwardRef<HTMLFormElement, FormProps>(\n  (props, ref) => {\n    let submit = useSubmit();\n    return <FormImpl {...props} submit={submit} ref={ref} />;\n  }\n);\n\nif (__DEV__) {\n  Form.displayName = \"Form\";\n}\n\ntype HTMLSubmitEvent = React.BaseSyntheticEvent<\n  SubmitEvent,\n  Event,\n  HTMLFormElement\n>;\n\ntype HTMLFormSubmitter = HTMLButtonElement | HTMLInputElement;\n\ninterface FormImplProps extends FormProps {\n  submit: SubmitFunction | FetcherSubmitFunction;\n}\n\nconst FormImpl = React.forwardRef<HTMLFormElement, FormImplProps>(\n  (\n    {\n      reloadDocument,\n      replace,\n      state,\n      method = defaultMethod,\n      action,\n      onSubmit,\n      submit,\n      relative,\n      preventScrollReset,\n      ...props\n    },\n    forwardedRef\n  ) => {\n    let formMethod: HTMLFormMethod =\n      method.toLowerCase() === \"get\" ? \"get\" : \"post\";\n    let formAction = useFormAction(action, { relative });\n    let submitHandler: React.FormEventHandler<HTMLFormElement> = (event) => {\n      onSubmit && onSubmit(event);\n      if (event.defaultPrevented) return;\n      event.preventDefault();\n\n      let submitter = (event as unknown as HTMLSubmitEvent).nativeEvent\n        .submitter as HTMLFormSubmitter | null;\n\n      let submitMethod =\n        (submitter?.getAttribute(\"formmethod\") as HTMLFormMethod | undefined) ||\n        method;\n\n      submit(submitter || event.currentTarget, {\n        method: submitMethod,\n        replace,\n        state,\n        relative,\n        preventScrollReset,\n      });\n    };\n\n    return (\n      <form\n        ref={forwardedRef}\n        method={formMethod}\n        action={formAction}\n        onSubmit={reloadDocument ? onSubmit : submitHandler}\n        {...props}\n      />\n    );\n  }\n);\n\nif (__DEV__) {\n  FormImpl.displayName = \"FormImpl\";\n}\n\nexport interface ScrollRestorationProps {\n  getKey?: GetScrollRestorationKeyFunction;\n  storageKey?: string;\n}\n\n/**\n * This component will emulate the browser's scroll restoration on location\n * changes.\n */\nexport function ScrollRestoration({\n  getKey,\n  storageKey,\n}: ScrollRestorationProps) {\n  useScrollRestoration({ getKey, storageKey });\n  return null;\n}\n\nif (__DEV__) {\n  ScrollRestoration.displayName = \"ScrollRestoration\";\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Hooks\n////////////////////////////////////////////////////////////////////////////////\n\nenum DataRouterHook {\n  UseScrollRestoration = \"useScrollRestoration\",\n  UseSubmit = \"useSubmit\",\n  UseSubmitFetcher = \"useSubmitFetcher\",\n  UseFetcher = \"useFetcher\",\n}\n\nenum DataRouterStateHook {\n  UseFetchers = \"useFetchers\",\n  UseScrollRestoration = \"useScrollRestoration\",\n}\n\nfunction getDataRouterConsoleError(\n  hookName: DataRouterHook | DataRouterStateHook\n) {\n  return `${hookName} must be used within a data router.  See https://reactrouter.com/routers/picking-a-router.`;\n}\n\nfunction useDataRouterContext(hookName: DataRouterHook) {\n  let ctx = React.useContext(DataRouterContext);\n  invariant(ctx, getDataRouterConsoleError(hookName));\n  return ctx;\n}\n\nfunction useDataRouterState(hookName: DataRouterStateHook) {\n  let state = React.useContext(DataRouterStateContext);\n  invariant(state, getDataRouterConsoleError(hookName));\n  return state;\n}\n\n/**\n * Handles the click behavior for router `<Link>` components. This is useful if\n * you need to create custom `<Link>` components with the same click behavior we\n * use in our exported `<Link>`.\n */\nexport function useLinkClickHandler<E extends Element = HTMLAnchorElement>(\n  to: To,\n  {\n    target,\n    replace: replaceProp,\n    state,\n    preventScrollReset,\n    relative,\n  }: {\n    target?: React.HTMLAttributeAnchorTarget;\n    replace?: boolean;\n    state?: any;\n    preventScrollReset?: boolean;\n    relative?: RelativeRoutingType;\n  } = {}\n): (event: React.MouseEvent<E, MouseEvent>) => void {\n  let navigate = useNavigate();\n  let location = useLocation();\n  let path = useResolvedPath(to, { relative });\n\n  return React.useCallback(\n    (event: React.MouseEvent<E, MouseEvent>) => {\n      if (shouldProcessLinkClick(event, target)) {\n        event.preventDefault();\n\n        // If the URL hasn't changed, a regular <a> will do a replace instead of\n        // a push, so do the same here unless the replace prop is explicitly set\n        let replace =\n          replaceProp !== undefined\n            ? replaceProp\n            : createPath(location) === createPath(path);\n\n        navigate(to, { replace, state, preventScrollReset, relative });\n      }\n    },\n    [\n      location,\n      navigate,\n      path,\n      replaceProp,\n      state,\n      target,\n      to,\n      preventScrollReset,\n      relative,\n    ]\n  );\n}\n\n/**\n * A convenient wrapper for reading and writing search parameters via the\n * URLSearchParams interface.\n */\nexport function useSearchParams(\n  defaultInit?: URLSearchParamsInit\n): [URLSearchParams, SetURLSearchParams] {\n  warning(\n    typeof URLSearchParams !== \"undefined\",\n    `You cannot use the \\`useSearchParams\\` hook in a browser that does not ` +\n      `support the URLSearchParams API. If you need to support Internet ` +\n      `Explorer 11, we recommend you load a polyfill such as ` +\n      `https://github.com/ungap/url-search-params\\n\\n` +\n      `If you're unsure how to load polyfills, we recommend you check out ` +\n      `https://polyfill.io/v3/ which provides some recommendations about how ` +\n      `to load polyfills only for users that need them, instead of for every ` +\n      `user.`\n  );\n\n  let defaultSearchParamsRef = React.useRef(createSearchParams(defaultInit));\n  let hasSetSearchParamsRef = React.useRef(false);\n\n  let location = useLocation();\n  let searchParams = React.useMemo(\n    () =>\n      // Only merge in the defaults if we haven't yet called setSearchParams.\n      // Once we call that we want those to take precedence, otherwise you can't\n      // remove a param with setSearchParams({}) if it has an initial value\n      getSearchParamsForLocation(\n        location.search,\n        hasSetSearchParamsRef.current ? null : defaultSearchParamsRef.current\n      ),\n    [location.search]\n  );\n\n  let navigate = useNavigate();\n  let setSearchParams = React.useCallback<SetURLSearchParams>(\n    (nextInit, navigateOptions) => {\n      const newSearchParams = createSearchParams(\n        typeof nextInit === \"function\" ? nextInit(searchParams) : nextInit\n      );\n      hasSetSearchParamsRef.current = true;\n      navigate(\"?\" + newSearchParams, navigateOptions);\n    },\n    [navigate, searchParams]\n  );\n\n  return [searchParams, setSearchParams];\n}\n\nexport type SetURLSearchParams = (\n  nextInit?:\n    | URLSearchParamsInit\n    | ((prev: URLSearchParams) => URLSearchParamsInit),\n  navigateOpts?: NavigateOptions\n) => void;\n\n/**\n * Submits a HTML `<form>` to the server without reloading the page.\n */\nexport interface SubmitFunction {\n  (\n    /**\n     * Specifies the `<form>` to be submitted to the server, a specific\n     * `<button>` or `<input type=\"submit\">` to use to submit the form, or some\n     * arbitrary data to submit.\n     *\n     * Note: When using a `<button>` its `name` and `value` will also be\n     * included in the form data that is submitted.\n     */\n    target: SubmitTarget,\n\n    /**\n     * Options that override the `<form>`'s own attributes. Required when\n     * submitting arbitrary data without a backing `<form>`.\n     */\n    options?: SubmitOptions\n  ): void;\n}\n\n/**\n * Submits a fetcher `<form>` to the server without reloading the page.\n */\nexport interface FetcherSubmitFunction {\n  (\n    target: SubmitTarget,\n    // Fetchers cannot replace or set state because they are not navigation events\n    options?: Omit<SubmitOptions, \"replace\" | \"state\">\n  ): void;\n}\n\nfunction validateClientSideSubmission() {\n  if (typeof document === \"undefined\") {\n    throw new Error(\n      \"You are calling submit during the server render. \" +\n        \"Try calling submit within a `useEffect` or callback instead.\"\n    );\n  }\n}\n\n/**\n * Returns a function that may be used to programmatically submit a form (or\n * some arbitrary data) to the server.\n */\nexport function useSubmit(): SubmitFunction {\n  let { router } = useDataRouterContext(DataRouterHook.UseSubmit);\n  let { basename } = React.useContext(NavigationContext);\n  let currentRouteId = useRouteId();\n\n  return React.useCallback<SubmitFunction>(\n    (target, options = {}) => {\n      validateClientSideSubmission();\n\n      let { action, method, encType, formData, body } = getFormSubmissionInfo(\n        target,\n        basename\n      );\n\n      router.navigate(options.action || action, {\n        preventScrollReset: options.preventScrollReset,\n        formData,\n        body,\n        formMethod: options.method || (method as HTMLFormMethod),\n        formEncType: options.encType || (encType as FormEncType),\n        replace: options.replace,\n        state: options.state,\n        fromRouteId: currentRouteId,\n      });\n    },\n    [router, basename, currentRouteId]\n  );\n}\n\n/**\n * Returns the implementation for fetcher.submit\n */\nfunction useSubmitFetcher(\n  fetcherKey: string,\n  fetcherRouteId: string\n): FetcherSubmitFunction {\n  let { router } = useDataRouterContext(DataRouterHook.UseSubmitFetcher);\n  let { basename } = React.useContext(NavigationContext);\n\n  return React.useCallback<FetcherSubmitFunction>(\n    (target, options = {}) => {\n      validateClientSideSubmission();\n\n      let { action, method, encType, formData, body } = getFormSubmissionInfo(\n        target,\n        basename\n      );\n\n      invariant(\n        fetcherRouteId != null,\n        \"No routeId available for useFetcher()\"\n      );\n      router.fetch(fetcherKey, fetcherRouteId, options.action || action, {\n        preventScrollReset: options.preventScrollReset,\n        formData,\n        body,\n        formMethod: options.method || (method as HTMLFormMethod),\n        formEncType: options.encType || (encType as FormEncType),\n      });\n    },\n    [router, basename, fetcherKey, fetcherRouteId]\n  );\n}\n\n// v7: Eventually we should deprecate this entirely in favor of using the\n// router method directly?\nexport function useFormAction(\n  action?: string,\n  { relative }: { relative?: RelativeRoutingType } = {}\n): string {\n  let { basename } = React.useContext(NavigationContext);\n  let routeContext = React.useContext(RouteContext);\n  invariant(routeContext, \"useFormAction must be used inside a RouteContext\");\n\n  let [match] = routeContext.matches.slice(-1);\n  // Shallow clone path so we can modify it below, otherwise we modify the\n  // object referenced by useMemo inside useResolvedPath\n  let path = { ...useResolvedPath(action ? action : \".\", { relative }) };\n\n  // Previously we set the default action to \".\". The problem with this is that\n  // `useResolvedPath(\".\")` excludes search params and the hash of the resolved\n  // URL. This is the intended behavior of when \".\" is specifically provided as\n  // the form action, but inconsistent w/ browsers when the action is omitted.\n  // https://github.com/remix-run/remix/issues/927\n  let location = useLocation();\n  if (action == null) {\n    // Safe to write to these directly here since if action was undefined, we\n    // would have called useResolvedPath(\".\") which will never include a search\n    // or hash\n    path.search = location.search;\n    path.hash = location.hash;\n\n    // When grabbing search params from the URL, remove the automatically\n    // inserted ?index param so we match the useResolvedPath search behavior\n    // which would not include ?index\n    if (match.route.index) {\n      let params = new URLSearchParams(path.search);\n      params.delete(\"index\");\n      path.search = params.toString() ? `?${params.toString()}` : \"\";\n    }\n  }\n\n  if ((!action || action === \".\") && match.route.index) {\n    path.search = path.search\n      ? path.search.replace(/^\\?/, \"?index&\")\n      : \"?index\";\n  }\n\n  // If we're operating within a basename, prepend it to the pathname prior\n  // to creating the form action.  If this is a root navigation, then just use\n  // the raw basename which allows the basename to have full control over the\n  // presence of a trailing slash on root actions\n  if (basename !== \"/\") {\n    path.pathname =\n      path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n  }\n\n  return createPath(path);\n}\n\nfunction createFetcherForm(fetcherKey: string, routeId: string) {\n  let FetcherForm = React.forwardRef<HTMLFormElement, FetcherFormProps>(\n    (props, ref) => {\n      let submit = useSubmitFetcher(fetcherKey, routeId);\n      return <FormImpl {...props} ref={ref} submit={submit} />;\n    }\n  );\n  if (__DEV__) {\n    FetcherForm.displayName = \"fetcher.Form\";\n  }\n  return FetcherForm;\n}\n\nlet fetcherId = 0;\n\nexport type FetcherWithComponents<TData> = Fetcher<TData> & {\n  Form: ReturnType<typeof createFetcherForm>;\n  submit: FetcherSubmitFunction;\n  load: (href: string) => void;\n};\n\n/**\n * Interacts with route loaders and actions without causing a navigation. Great\n * for any interaction that stays on the same page.\n */\nexport function useFetcher<TData = any>(): FetcherWithComponents<TData> {\n  let { router } = useDataRouterContext(DataRouterHook.UseFetcher);\n\n  let route = React.useContext(RouteContext);\n  invariant(route, `useFetcher must be used inside a RouteContext`);\n\n  let routeId = route.matches[route.matches.length - 1]?.route.id;\n  invariant(\n    routeId != null,\n    `useFetcher can only be used on routes that contain a unique \"id\"`\n  );\n\n  let [fetcherKey] = React.useState(() => String(++fetcherId));\n  let [Form] = React.useState(() => {\n    invariant(routeId, `No routeId available for fetcher.Form()`);\n    return createFetcherForm(fetcherKey, routeId);\n  });\n  let [load] = React.useState(() => (href: string) => {\n    invariant(router, \"No router available for fetcher.load()\");\n    invariant(routeId, \"No routeId available for fetcher.load()\");\n    router.fetch(fetcherKey, routeId, href);\n  });\n  let submit = useSubmitFetcher(fetcherKey, routeId);\n\n  let fetcher = router.getFetcher<TData>(fetcherKey);\n\n  let fetcherWithComponents = React.useMemo(\n    () => ({\n      Form,\n      submit,\n      load,\n      ...fetcher,\n    }),\n    [fetcher, Form, submit, load]\n  );\n\n  React.useEffect(() => {\n    // Is this busted when the React team gets real weird and calls effects\n    // twice on mount?  We really just need to garbage collect here when this\n    // fetcher is no longer around.\n    return () => {\n      if (!router) {\n        console.warn(`No router available to clean up from useFetcher()`);\n        return;\n      }\n      router.deleteFetcher(fetcherKey);\n    };\n  }, [router, fetcherKey]);\n\n  return fetcherWithComponents;\n}\n\n/**\n * Provides all fetchers currently on the page. Useful for layouts and parent\n * routes that need to provide pending/optimistic UI regarding the fetch.\n */\nexport function useFetchers(): Fetcher[] {\n  let state = useDataRouterState(DataRouterStateHook.UseFetchers);\n  return [...state.fetchers.values()];\n}\n\nconst SCROLL_RESTORATION_STORAGE_KEY = \"react-router-scroll-positions\";\nlet savedScrollPositions: Record<string, number> = {};\n\n/**\n * When rendered inside a RouterProvider, will restore scroll positions on navigations\n */\nfunction useScrollRestoration({\n  getKey,\n  storageKey,\n}: {\n  getKey?: GetScrollRestorationKeyFunction;\n  storageKey?: string;\n} = {}) {\n  let { router } = useDataRouterContext(DataRouterHook.UseScrollRestoration);\n  let { restoreScrollPosition, preventScrollReset } = useDataRouterState(\n    DataRouterStateHook.UseScrollRestoration\n  );\n  let { basename } = React.useContext(NavigationContext);\n  let location = useLocation();\n  let matches = useMatches();\n  let navigation = useNavigation();\n\n  // Trigger manual scroll restoration while we're active\n  React.useEffect(() => {\n    window.history.scrollRestoration = \"manual\";\n    return () => {\n      window.history.scrollRestoration = \"auto\";\n    };\n  }, []);\n\n  // Save positions on pagehide\n  usePageHide(\n    React.useCallback(() => {\n      if (navigation.state === \"idle\") {\n        let key = (getKey ? getKey(location, matches) : null) || location.key;\n        savedScrollPositions[key] = window.scrollY;\n      }\n      sessionStorage.setItem(\n        storageKey || SCROLL_RESTORATION_STORAGE_KEY,\n        JSON.stringify(savedScrollPositions)\n      );\n      window.history.scrollRestoration = \"auto\";\n    }, [storageKey, getKey, navigation.state, location, matches])\n  );\n\n  // Read in any saved scroll locations\n  if (typeof document !== \"undefined\") {\n    // eslint-disable-next-line react-hooks/rules-of-hooks\n    React.useLayoutEffect(() => {\n      try {\n        let sessionPositions = sessionStorage.getItem(\n          storageKey || SCROLL_RESTORATION_STORAGE_KEY\n        );\n        if (sessionPositions) {\n          savedScrollPositions = JSON.parse(sessionPositions);\n        }\n      } catch (e) {\n        // no-op, use default empty object\n      }\n    }, [storageKey]);\n\n    // Enable scroll restoration in the router\n    // eslint-disable-next-line react-hooks/rules-of-hooks\n    React.useLayoutEffect(() => {\n      let getKeyWithoutBasename: GetScrollRestorationKeyFunction | undefined =\n        getKey && basename !== \"/\"\n          ? (location, matches) =>\n              getKey(\n                // Strip the basename to match useLocation()\n                {\n                  ...location,\n                  pathname:\n                    stripBasename(location.pathname, basename) ||\n                    location.pathname,\n                },\n                matches\n              )\n          : getKey;\n      let disableScrollRestoration = router?.enableScrollRestoration(\n        savedScrollPositions,\n        () => window.scrollY,\n        getKeyWithoutBasename\n      );\n      return () => disableScrollRestoration && disableScrollRestoration();\n    }, [router, basename, getKey]);\n\n    // Restore scrolling when state.restoreScrollPosition changes\n    // eslint-disable-next-line react-hooks/rules-of-hooks\n    React.useLayoutEffect(() => {\n      // Explicit false means don't do anything (used for submissions)\n      if (restoreScrollPosition === false) {\n        return;\n      }\n\n      // been here before, scroll to it\n      if (typeof restoreScrollPosition === \"number\") {\n        window.scrollTo(0, restoreScrollPosition);\n        return;\n      }\n\n      // try to scroll to the hash\n      if (location.hash) {\n        let el = document.getElementById(\n          decodeURIComponent(location.hash.slice(1))\n        );\n        if (el) {\n          el.scrollIntoView();\n          return;\n        }\n      }\n\n      // Don't reset if this navigation opted out\n      if (preventScrollReset === true) {\n        return;\n      }\n\n      // otherwise go to the top on new locations\n      window.scrollTo(0, 0);\n    }, [location, restoreScrollPosition, preventScrollReset]);\n  }\n}\n\nexport { useScrollRestoration as UNSAFE_useScrollRestoration };\n\n/**\n * Setup a callback to be fired on the window's `beforeunload` event. This is\n * useful for saving some data to `window.localStorage` just before the page\n * refreshes.\n *\n * Note: The `callback` argument should be a function created with\n * `React.useCallback()`.\n */\nexport function useBeforeUnload(\n  callback: (event: BeforeUnloadEvent) => any,\n  options?: { capture?: boolean }\n): void {\n  let { capture } = options || {};\n  React.useEffect(() => {\n    let opts = capture != null ? { capture } : undefined;\n    window.addEventListener(\"beforeunload\", callback, opts);\n    return () => {\n      window.removeEventListener(\"beforeunload\", callback, opts);\n    };\n  }, [callback, capture]);\n}\n\n/**\n * Setup a callback to be fired on the window's `pagehide` event. This is\n * useful for saving some data to `window.localStorage` just before the page\n * refreshes.  This event is better supported than beforeunload across browsers.\n *\n * Note: The `callback` argument should be a function created with\n * `React.useCallback()`.\n */\nfunction usePageHide(\n  callback: (event: PageTransitionEvent) => any,\n  options?: { capture?: boolean }\n): void {\n  let { capture } = options || {};\n  React.useEffect(() => {\n    let opts = capture != null ? { capture } : undefined;\n    window.addEventListener(\"pagehide\", callback, opts);\n    return () => {\n      window.removeEventListener(\"pagehide\", callback, opts);\n    };\n  }, [callback, capture]);\n}\n\n/**\n * Wrapper around useBlocker to show a window.confirm prompt to users instead\n * of building a custom UI with useBlocker.\n *\n * Warning: This has *a lot of rough edges* and behaves very differently (and\n * very incorrectly in some cases) across browsers if user click addition\n * back/forward navigations while the confirm is open.  Use at your own risk.\n */\nfunction usePrompt({ when, message }: { when: boolean; message: string }) {\n  let blocker = useBlocker(when);\n\n  React.useEffect(() => {\n    if (blocker.state === \"blocked\" && !when) {\n      blocker.reset();\n    }\n  }, [blocker, when]);\n\n  React.useEffect(() => {\n    if (blocker.state === \"blocked\") {\n      let proceed = window.confirm(message);\n      if (proceed) {\n        setTimeout(blocker.proceed, 0);\n      } else {\n        blocker.reset();\n      }\n    }\n  }, [blocker, message]);\n}\n\nexport { usePrompt as unstable_usePrompt };\n\n//#endregion\n","\"use client\";\n\nimport * as React from 'react';\nimport { devUseWarning } from '../_util/warning';\nimport { changeConfirmLocale } from '../modal/locale';\nimport LocaleContext from './context';\nexport { default as useLocale } from './useLocale';\nexport const ANT_MARK = 'internalMark';\nconst LocaleProvider = props => {\n  const {\n    locale = {},\n    children,\n    _ANT_MARK__\n  } = props;\n  if (process.env.NODE_ENV !== 'production') {\n    const warning = devUseWarning('LocaleProvider');\n    process.env.NODE_ENV !== \"production\" ? warning(_ANT_MARK__ === ANT_MARK, 'deprecated', '`LocaleProvider` is deprecated. Please use `locale` with `ConfigProvider` instead: http://u.ant.design/locale') : void 0;\n  }\n  React.useEffect(() => {\n    const clearLocale = changeConfirmLocale(locale === null || locale === void 0 ? void 0 : locale.Modal);\n    return clearLocale;\n  }, [locale]);\n  const getMemoizedContextValue = React.useMemo(() => Object.assign(Object.assign({}, locale), {\n    exist: true\n  }), [locale]);\n  return /*#__PURE__*/React.createElement(LocaleContext.Provider, {\n    value: getMemoizedContextValue\n  }, children);\n};\nif (process.env.NODE_ENV !== 'production') {\n  LocaleProvider.displayName = 'LocaleProvider';\n}\nexport default LocaleProvider;","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAABYlAAAWJQFJUiTwAAABaWlDQ1BEaXNwbGF5IFAzAAB4nHWQvUvDUBTFT6tS0DqIDh0cMolD1NIKdnFoKxRFMFQFq1OafgltfCQpUnETVyn4H1jBWXCwiFRwcXAQRAcR3Zw6KbhoeN6XVNoi3sfl/Ticc7lcwBtQGSv2AijplpFMxKS11Lrke4OHnlOqZrKooiwK/v276/PR9d5PiFlNu3YQ2U9cl84ul3aeAlN//V3Vn8maGv3f1EGNGRbgkYmVbYsJ3iUeMWgp4qrgvMvHgtMunzuelWSc+JZY0gpqhrhJLKc79HwHl4plrbWD2N6f1VeXxRzqUcxhEyYYilBRgQQF4X/8044/ji1yV2BQLo8CLMpESRETssTz0KFhEjJxCEHqkLhz634PrfvJbW3vFZhtcM4v2tpCAzidoZPV29p4BBgaAG7qTDVUR+qh9uZywPsJMJgChu8os2HmwiF3e38M6Hvh/GMM8B0CdpXzryPO7RqFn4Er/QcXKWq8MSlPPgAAAX1JREFUeAHtmI1tgzAQhV86Ad2AEToCbJAN8Eh0gnaTjNBuQDdIN7jaAqTi2vgMcY8o90mnJMg/7wMHgQFFUZQQRNTZutoa3HfcG1PwmSsKcUIhXOrFRBYU4Al3jgpIowLSqIA0KiCNCkjzWAL2+ayyZWzVuDF2zMbWucTY8wS194jcJdovSLTtfjV1c1S4NdPZ8elW2rMEvPAzBgUEGgrTRdonBSLhHTVKQOP6Z0mkBFbCG5SEK7EmIBY+RyImIB6eKxESOEx4jgTzmFx4hgQHgyOwUcLgSGRKGJSCdmwJMiVM5ph5eWjnlmBCwiCT7Dz+jNhARMJgA9l5sjvEx3EPf5epzthIKs8p1ME79Gz3Zb8hhJ/H3yQOvdB8eb9fIETgyn1yOvXeVRuoxAtGOkdFyz+w443TsaG/DHvWcQ5T8CYQ3lFzB+npePShrKfYWbAfFwiufw+39tvQzSS4KzE1bG29Qh6Xod18J6RxN+Ld1gf9HwONy7iBoiir/AD/d1/KJVAJXwAAAABJRU5ErkJggg==\"","import * as React from 'react';\nimport canUseDom from \"../Dom/canUseDom\";\n\n/**\n * Wrap `React.useLayoutEffect` which will not throw warning message in test env\n */\nvar useInternalLayoutEffect = process.env.NODE_ENV !== 'test' && canUseDom() ? React.useLayoutEffect : React.useEffect;\nvar useLayoutEffect = function useLayoutEffect(callback, deps) {\n  var firstMountRef = React.useRef(true);\n  useInternalLayoutEffect(function () {\n    return callback(firstMountRef.current);\n  }, deps);\n\n  // We tell react that first mount has passed\n  useInternalLayoutEffect(function () {\n    firstMountRef.current = false;\n    return function () {\n      firstMountRef.current = true;\n    };\n  }, []);\n};\nexport var useLayoutUpdateEffect = function useLayoutUpdateEffect(callback, deps) {\n  useLayoutEffect(function (firstMount) {\n    if (!firstMount) {\n      return callback();\n    }\n  }, deps);\n};\nexport default useLayoutEffect;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport clsx from 'classnames';\nimport React, { cloneElement, useRef } from 'react';\nimport { hasAddon, hasPrefixSuffix } from \"./utils/commonUtils\";\nvar BaseInput = /*#__PURE__*/React.forwardRef(function (props, ref) {\n  var _element$props, _element$props2;\n  var inputEl = props.inputElement,\n    children = props.children,\n    prefixCls = props.prefixCls,\n    prefix = props.prefix,\n    suffix = props.suffix,\n    addonBefore = props.addonBefore,\n    addonAfter = props.addonAfter,\n    className = props.className,\n    style = props.style,\n    disabled = props.disabled,\n    readOnly = props.readOnly,\n    focused = props.focused,\n    triggerFocus = props.triggerFocus,\n    allowClear = props.allowClear,\n    value = props.value,\n    handleReset = props.handleReset,\n    hidden = props.hidden,\n    classes = props.classes,\n    classNames = props.classNames,\n    dataAttrs = props.dataAttrs,\n    styles = props.styles,\n    components = props.components,\n    onClear = props.onClear;\n  var inputElement = children !== null && children !== void 0 ? children : inputEl;\n  var AffixWrapperComponent = (components === null || components === void 0 ? void 0 : components.affixWrapper) || 'span';\n  var GroupWrapperComponent = (components === null || components === void 0 ? void 0 : components.groupWrapper) || 'span';\n  var WrapperComponent = (components === null || components === void 0 ? void 0 : components.wrapper) || 'span';\n  var GroupAddonComponent = (components === null || components === void 0 ? void 0 : components.groupAddon) || 'span';\n  var containerRef = useRef(null);\n  var onInputClick = function onInputClick(e) {\n    var _containerRef$current;\n    if ((_containerRef$current = containerRef.current) !== null && _containerRef$current !== void 0 && _containerRef$current.contains(e.target)) {\n      triggerFocus === null || triggerFocus === void 0 || triggerFocus();\n    }\n  };\n  var hasAffix = hasPrefixSuffix(props);\n  var element = /*#__PURE__*/cloneElement(inputElement, {\n    value: value,\n    className: clsx(inputElement.props.className, !hasAffix && (classNames === null || classNames === void 0 ? void 0 : classNames.variant)) || null\n  });\n\n  // ======================== Ref ======================== //\n  var groupRef = useRef(null);\n  React.useImperativeHandle(ref, function () {\n    return {\n      nativeElement: groupRef.current || containerRef.current\n    };\n  });\n\n  // ================== Prefix & Suffix ================== //\n  if (hasAffix) {\n    // ================== Clear Icon ================== //\n    var clearIcon = null;\n    if (allowClear) {\n      var needClear = !disabled && !readOnly && value;\n      var clearIconCls = \"\".concat(prefixCls, \"-clear-icon\");\n      var iconNode = _typeof(allowClear) === 'object' && allowClear !== null && allowClear !== void 0 && allowClear.clearIcon ? allowClear.clearIcon : '✖';\n      clearIcon = /*#__PURE__*/React.createElement(\"span\", {\n        onClick: function onClick(event) {\n          handleReset === null || handleReset === void 0 || handleReset(event);\n          onClear === null || onClear === void 0 || onClear();\n        }\n        // Do not trigger onBlur when clear input\n        // https://github.com/ant-design/ant-design/issues/31200\n        ,\n        onMouseDown: function onMouseDown(e) {\n          return e.preventDefault();\n        },\n        className: clsx(clearIconCls, _defineProperty(_defineProperty({}, \"\".concat(clearIconCls, \"-hidden\"), !needClear), \"\".concat(clearIconCls, \"-has-suffix\"), !!suffix)),\n        role: \"button\",\n        tabIndex: -1\n      }, iconNode);\n    }\n    var affixWrapperPrefixCls = \"\".concat(prefixCls, \"-affix-wrapper\");\n    var affixWrapperCls = clsx(affixWrapperPrefixCls, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-disabled\"), disabled), \"\".concat(affixWrapperPrefixCls, \"-disabled\"), disabled), \"\".concat(affixWrapperPrefixCls, \"-focused\"), focused), \"\".concat(affixWrapperPrefixCls, \"-readonly\"), readOnly), \"\".concat(affixWrapperPrefixCls, \"-input-with-clear-btn\"), suffix && allowClear && value), classes === null || classes === void 0 ? void 0 : classes.affixWrapper, classNames === null || classNames === void 0 ? void 0 : classNames.affixWrapper, classNames === null || classNames === void 0 ? void 0 : classNames.variant);\n    var suffixNode = (suffix || allowClear) && /*#__PURE__*/React.createElement(\"span\", {\n      className: clsx(\"\".concat(prefixCls, \"-suffix\"), classNames === null || classNames === void 0 ? void 0 : classNames.suffix),\n      style: styles === null || styles === void 0 ? void 0 : styles.suffix\n    }, clearIcon, suffix);\n    element = /*#__PURE__*/React.createElement(AffixWrapperComponent, _extends({\n      className: affixWrapperCls,\n      style: styles === null || styles === void 0 ? void 0 : styles.affixWrapper,\n      onClick: onInputClick\n    }, dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.affixWrapper, {\n      ref: containerRef\n    }), prefix && /*#__PURE__*/React.createElement(\"span\", {\n      className: clsx(\"\".concat(prefixCls, \"-prefix\"), classNames === null || classNames === void 0 ? void 0 : classNames.prefix),\n      style: styles === null || styles === void 0 ? void 0 : styles.prefix\n    }, prefix), element, suffixNode);\n  }\n\n  // ================== Addon ================== //\n  if (hasAddon(props)) {\n    var wrapperCls = \"\".concat(prefixCls, \"-group\");\n    var addonCls = \"\".concat(wrapperCls, \"-addon\");\n    var groupWrapperCls = \"\".concat(wrapperCls, \"-wrapper\");\n    var mergedWrapperClassName = clsx(\"\".concat(prefixCls, \"-wrapper\"), wrapperCls, classes === null || classes === void 0 ? void 0 : classes.wrapper, classNames === null || classNames === void 0 ? void 0 : classNames.wrapper);\n    var mergedGroupClassName = clsx(groupWrapperCls, _defineProperty({}, \"\".concat(groupWrapperCls, \"-disabled\"), disabled), classes === null || classes === void 0 ? void 0 : classes.group, classNames === null || classNames === void 0 ? void 0 : classNames.groupWrapper);\n\n    // Need another wrapper for changing display:table to display:inline-block\n    // and put style prop in wrapper\n    element = /*#__PURE__*/React.createElement(GroupWrapperComponent, {\n      className: mergedGroupClassName,\n      ref: groupRef\n    }, /*#__PURE__*/React.createElement(WrapperComponent, {\n      className: mergedWrapperClassName\n    }, addonBefore && /*#__PURE__*/React.createElement(GroupAddonComponent, {\n      className: addonCls\n    }, addonBefore), element, addonAfter && /*#__PURE__*/React.createElement(GroupAddonComponent, {\n      className: addonCls\n    }, addonAfter)));\n  }\n\n  // `className` and `style` are always on the root element\n  return /*#__PURE__*/React.cloneElement(element, {\n    className: clsx((_element$props = element.props) === null || _element$props === void 0 ? void 0 : _element$props.className, className) || null,\n    style: _objectSpread(_objectSpread({}, (_element$props2 = element.props) === null || _element$props2 === void 0 ? void 0 : _element$props2.style), style),\n    hidden: hidden\n  });\n});\nexport default BaseInput;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"autoComplete\", \"onChange\", \"onFocus\", \"onBlur\", \"onPressEnter\", \"onKeyDown\", \"onKeyUp\", \"prefixCls\", \"disabled\", \"htmlSize\", \"className\", \"maxLength\", \"suffix\", \"showCount\", \"count\", \"type\", \"classes\", \"classNames\", \"styles\", \"onCompositionStart\", \"onCompositionEnd\"];\nimport clsx from 'classnames';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport omit from \"rc-util/es/omit\";\nimport React, { forwardRef, useEffect, useImperativeHandle, useRef, useState } from 'react';\nimport BaseInput from \"./BaseInput\";\nimport useCount from \"./hooks/useCount\";\nimport { resolveOnChange, triggerFocus } from \"./utils/commonUtils\";\nvar Input = /*#__PURE__*/forwardRef(function (props, ref) {\n  var autoComplete = props.autoComplete,\n    onChange = props.onChange,\n    onFocus = props.onFocus,\n    onBlur = props.onBlur,\n    onPressEnter = props.onPressEnter,\n    onKeyDown = props.onKeyDown,\n    onKeyUp = props.onKeyUp,\n    _props$prefixCls = props.prefixCls,\n    prefixCls = _props$prefixCls === void 0 ? 'rc-input' : _props$prefixCls,\n    disabled = props.disabled,\n    htmlSize = props.htmlSize,\n    className = props.className,\n    maxLength = props.maxLength,\n    suffix = props.suffix,\n    showCount = props.showCount,\n    count = props.count,\n    _props$type = props.type,\n    type = _props$type === void 0 ? 'text' : _props$type,\n    classes = props.classes,\n    classNames = props.classNames,\n    styles = props.styles,\n    _onCompositionStart = props.onCompositionStart,\n    onCompositionEnd = props.onCompositionEnd,\n    rest = _objectWithoutProperties(props, _excluded);\n  var _useState = useState(false),\n    _useState2 = _slicedToArray(_useState, 2),\n    focused = _useState2[0],\n    setFocused = _useState2[1];\n  var compositionRef = useRef(false);\n  var keyLockRef = useRef(false);\n  var inputRef = useRef(null);\n  var holderRef = useRef(null);\n  var focus = function focus(option) {\n    if (inputRef.current) {\n      triggerFocus(inputRef.current, option);\n    }\n  };\n\n  // ====================== Value =======================\n  var _useMergedState = useMergedState(props.defaultValue, {\n      value: props.value\n    }),\n    _useMergedState2 = _slicedToArray(_useMergedState, 2),\n    value = _useMergedState2[0],\n    setValue = _useMergedState2[1];\n  var formatValue = value === undefined || value === null ? '' : String(value);\n\n  // =================== Select Range ===================\n  var _useState3 = useState(null),\n    _useState4 = _slicedToArray(_useState3, 2),\n    selection = _useState4[0],\n    setSelection = _useState4[1];\n\n  // ====================== Count =======================\n  var countConfig = useCount(count, showCount);\n  var mergedMax = countConfig.max || maxLength;\n  var valueLength = countConfig.strategy(formatValue);\n  var isOutOfRange = !!mergedMax && valueLength > mergedMax;\n\n  // ======================= Ref ========================\n  useImperativeHandle(ref, function () {\n    var _holderRef$current;\n    return {\n      focus: focus,\n      blur: function blur() {\n        var _inputRef$current;\n        (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 || _inputRef$current.blur();\n      },\n      setSelectionRange: function setSelectionRange(start, end, direction) {\n        var _inputRef$current2;\n        (_inputRef$current2 = inputRef.current) === null || _inputRef$current2 === void 0 || _inputRef$current2.setSelectionRange(start, end, direction);\n      },\n      select: function select() {\n        var _inputRef$current3;\n        (_inputRef$current3 = inputRef.current) === null || _inputRef$current3 === void 0 || _inputRef$current3.select();\n      },\n      input: inputRef.current,\n      nativeElement: ((_holderRef$current = holderRef.current) === null || _holderRef$current === void 0 ? void 0 : _holderRef$current.nativeElement) || inputRef.current\n    };\n  });\n  useEffect(function () {\n    setFocused(function (prev) {\n      return prev && disabled ? false : prev;\n    });\n  }, [disabled]);\n  var triggerChange = function triggerChange(e, currentValue, info) {\n    var cutValue = currentValue;\n    if (!compositionRef.current && countConfig.exceedFormatter && countConfig.max && countConfig.strategy(currentValue) > countConfig.max) {\n      cutValue = countConfig.exceedFormatter(currentValue, {\n        max: countConfig.max\n      });\n      if (currentValue !== cutValue) {\n        var _inputRef$current4, _inputRef$current5;\n        setSelection([((_inputRef$current4 = inputRef.current) === null || _inputRef$current4 === void 0 ? void 0 : _inputRef$current4.selectionStart) || 0, ((_inputRef$current5 = inputRef.current) === null || _inputRef$current5 === void 0 ? void 0 : _inputRef$current5.selectionEnd) || 0]);\n      }\n    } else if (info.source === 'compositionEnd') {\n      // Avoid triggering twice\n      // https://github.com/ant-design/ant-design/issues/46587\n      return;\n    }\n    setValue(cutValue);\n    if (inputRef.current) {\n      resolveOnChange(inputRef.current, e, onChange, cutValue);\n    }\n  };\n  useEffect(function () {\n    if (selection) {\n      var _inputRef$current6;\n      (_inputRef$current6 = inputRef.current) === null || _inputRef$current6 === void 0 || _inputRef$current6.setSelectionRange.apply(_inputRef$current6, _toConsumableArray(selection));\n    }\n  }, [selection]);\n  var onInternalChange = function onInternalChange(e) {\n    triggerChange(e, e.target.value, {\n      source: 'change'\n    });\n  };\n  var onInternalCompositionEnd = function onInternalCompositionEnd(e) {\n    compositionRef.current = false;\n    triggerChange(e, e.currentTarget.value, {\n      source: 'compositionEnd'\n    });\n    onCompositionEnd === null || onCompositionEnd === void 0 || onCompositionEnd(e);\n  };\n  var handleKeyDown = function handleKeyDown(e) {\n    if (onPressEnter && e.key === 'Enter' && !keyLockRef.current) {\n      keyLockRef.current = true;\n      onPressEnter(e);\n    }\n    onKeyDown === null || onKeyDown === void 0 || onKeyDown(e);\n  };\n  var handleKeyUp = function handleKeyUp(e) {\n    if (e.key === 'Enter') {\n      keyLockRef.current = false;\n    }\n    onKeyUp === null || onKeyUp === void 0 || onKeyUp(e);\n  };\n  var handleFocus = function handleFocus(e) {\n    setFocused(true);\n    onFocus === null || onFocus === void 0 || onFocus(e);\n  };\n  var handleBlur = function handleBlur(e) {\n    setFocused(false);\n    onBlur === null || onBlur === void 0 || onBlur(e);\n  };\n  var handleReset = function handleReset(e) {\n    setValue('');\n    focus();\n    if (inputRef.current) {\n      resolveOnChange(inputRef.current, e, onChange);\n    }\n  };\n\n  // ====================== Input =======================\n  var outOfRangeCls = isOutOfRange && \"\".concat(prefixCls, \"-out-of-range\");\n  var getInputElement = function getInputElement() {\n    // Fix https://fb.me/react-unknown-prop\n    var otherProps = omit(props, ['prefixCls', 'onPressEnter', 'addonBefore', 'addonAfter', 'prefix', 'suffix', 'allowClear',\n    // Input elements must be either controlled or uncontrolled,\n    // specify either the value prop, or the defaultValue prop, but not both.\n    'defaultValue', 'showCount', 'count', 'classes', 'htmlSize', 'styles', 'classNames', 'onClear']);\n    return /*#__PURE__*/React.createElement(\"input\", _extends({\n      autoComplete: autoComplete\n    }, otherProps, {\n      onChange: onInternalChange,\n      onFocus: handleFocus,\n      onBlur: handleBlur,\n      onKeyDown: handleKeyDown,\n      onKeyUp: handleKeyUp,\n      className: clsx(prefixCls, _defineProperty({}, \"\".concat(prefixCls, \"-disabled\"), disabled), classNames === null || classNames === void 0 ? void 0 : classNames.input),\n      style: styles === null || styles === void 0 ? void 0 : styles.input,\n      ref: inputRef,\n      size: htmlSize,\n      type: type,\n      onCompositionStart: function onCompositionStart(e) {\n        compositionRef.current = true;\n        _onCompositionStart === null || _onCompositionStart === void 0 || _onCompositionStart(e);\n      },\n      onCompositionEnd: onInternalCompositionEnd\n    }));\n  };\n  var getSuffix = function getSuffix() {\n    // Max length value\n    var hasMaxLength = Number(mergedMax) > 0;\n    if (suffix || countConfig.show) {\n      var dataCount = countConfig.showFormatter ? countConfig.showFormatter({\n        value: formatValue,\n        count: valueLength,\n        maxLength: mergedMax\n      }) : \"\".concat(valueLength).concat(hasMaxLength ? \" / \".concat(mergedMax) : '');\n      return /*#__PURE__*/React.createElement(React.Fragment, null, countConfig.show && /*#__PURE__*/React.createElement(\"span\", {\n        className: clsx(\"\".concat(prefixCls, \"-show-count-suffix\"), _defineProperty({}, \"\".concat(prefixCls, \"-show-count-has-suffix\"), !!suffix), classNames === null || classNames === void 0 ? void 0 : classNames.count),\n        style: _objectSpread({}, styles === null || styles === void 0 ? void 0 : styles.count)\n      }, dataCount), suffix);\n    }\n    return null;\n  };\n\n  // ====================== Render ======================\n  return /*#__PURE__*/React.createElement(BaseInput, _extends({}, rest, {\n    prefixCls: prefixCls,\n    className: clsx(className, outOfRangeCls),\n    handleReset: handleReset,\n    value: formatValue,\n    focused: focused,\n    triggerFocus: focus,\n    suffix: getSuffix(),\n    disabled: disabled,\n    classes: classes,\n    classNames: classNames,\n    styles: styles\n  }), getInputElement());\n});\nexport default Input;","import BaseInput from \"./BaseInput\";\nimport Input from \"./Input\";\nexport { BaseInput };\nexport default Input;","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n  module.exports = require('./cjs/react-is.production.min.js');\n} else {\n  module.exports = require('./cjs/react-is.development.js');\n}\n","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","function _typeof(o) {\n  \"@babel/helpers - typeof\";\n\n  return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n    return typeof o;\n  } : function (o) {\n    return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n  }, _typeof(o);\n}\nexport { _typeof as default };","module.exports = \"data:image/png;base64,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\"","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nfunction getUseId() {\n  // We need fully clone React function here to avoid webpack warning React 17 do not export `useId`\n  var fullClone = _objectSpread({}, React);\n  return fullClone.useId;\n}\nvar uuid = 0;\n\n/** @private Note only worked in develop env. Not work in production. */\nexport function resetUuid() {\n  if (process.env.NODE_ENV !== 'production') {\n    uuid = 0;\n  }\n}\nvar useOriginId = getUseId();\nexport default useOriginId ?\n// Use React `useId`\nfunction useId(id) {\n  var reactId = useOriginId();\n\n  // Developer passed id is single source of truth\n  if (id) {\n    return id;\n  }\n\n  // Test env always return mock id\n  if (process.env.NODE_ENV === 'test') {\n    return 'test-id';\n  }\n  return reactId;\n} :\n// Use compatible of `useId`\nfunction useCompatId(id) {\n  // Inner id for accessibility usage. Only work in client side\n  var _React$useState = React.useState('ssr-id'),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    innerId = _React$useState2[0],\n    setInnerId = _React$useState2[1];\n  React.useEffect(function () {\n    var nextId = uuid;\n    uuid += 1;\n    setInnerId(\"rc_unique_\".concat(nextId));\n  }, []);\n\n  // Developer passed id is single source of truth\n  if (id) {\n    return id;\n  }\n\n  // Test env always return mock id\n  if (process.env.NODE_ENV === 'test') {\n    return 'test-id';\n  }\n\n  // Return react native id or inner id\n  return innerId;\n};","import * as React from \"react\";\nimport type {\n  AgnosticRouteMatch,\n  AgnosticIndexRouteObject,\n  AgnosticNonIndexRouteObject,\n  History,\n  Location,\n  RelativeRoutingType,\n  Router,\n  StaticHandlerContext,\n  To,\n  TrackedPromise,\n  LazyRouteFunction,\n} from \"@remix-run/router\";\nimport type { Action as NavigationType } from \"@remix-run/router\";\n\n// Create react-specific types from the agnostic types in @remix-run/router to\n// export from react-router\nexport interface IndexRouteObject {\n  caseSensitive?: AgnosticIndexRouteObject[\"caseSensitive\"];\n  path?: AgnosticIndexRouteObject[\"path\"];\n  id?: AgnosticIndexRouteObject[\"id\"];\n  loader?: AgnosticIndexRouteObject[\"loader\"];\n  action?: AgnosticIndexRouteObject[\"action\"];\n  hasErrorBoundary?: AgnosticIndexRouteObject[\"hasErrorBoundary\"];\n  shouldRevalidate?: AgnosticIndexRouteObject[\"shouldRevalidate\"];\n  handle?: AgnosticIndexRouteObject[\"handle\"];\n  index: true;\n  children?: undefined;\n  element?: React.ReactNode | null;\n  errorElement?: React.ReactNode | null;\n  Component?: React.ComponentType | null;\n  ErrorBoundary?: React.ComponentType | null;\n  lazy?: LazyRouteFunction<RouteObject>;\n}\n\nexport interface NonIndexRouteObject {\n  caseSensitive?: AgnosticNonIndexRouteObject[\"caseSensitive\"];\n  path?: AgnosticNonIndexRouteObject[\"path\"];\n  id?: AgnosticNonIndexRouteObject[\"id\"];\n  loader?: AgnosticNonIndexRouteObject[\"loader\"];\n  action?: AgnosticNonIndexRouteObject[\"action\"];\n  hasErrorBoundary?: AgnosticNonIndexRouteObject[\"hasErrorBoundary\"];\n  shouldRevalidate?: AgnosticNonIndexRouteObject[\"shouldRevalidate\"];\n  handle?: AgnosticNonIndexRouteObject[\"handle\"];\n  index?: false;\n  children?: RouteObject[];\n  element?: React.ReactNode | null;\n  errorElement?: React.ReactNode | null;\n  Component?: React.ComponentType | null;\n  ErrorBoundary?: React.ComponentType | null;\n  lazy?: LazyRouteFunction<RouteObject>;\n}\n\nexport type RouteObject = IndexRouteObject | NonIndexRouteObject;\n\nexport type DataRouteObject = RouteObject & {\n  children?: DataRouteObject[];\n  id: string;\n};\n\nexport interface RouteMatch<\n  ParamKey extends string = string,\n  RouteObjectType extends RouteObject = RouteObject\n> extends AgnosticRouteMatch<ParamKey, RouteObjectType> {}\n\nexport interface DataRouteMatch extends RouteMatch<string, DataRouteObject> {}\n\nexport interface DataRouterContextObject extends NavigationContextObject {\n  router: Router;\n  staticContext?: StaticHandlerContext;\n}\n\nexport const DataRouterContext =\n  React.createContext<DataRouterContextObject | null>(null);\nif (__DEV__) {\n  DataRouterContext.displayName = \"DataRouter\";\n}\n\nexport const DataRouterStateContext = React.createContext<\n  Router[\"state\"] | null\n>(null);\nif (__DEV__) {\n  DataRouterStateContext.displayName = \"DataRouterState\";\n}\n\nexport const AwaitContext = React.createContext<TrackedPromise | null>(null);\nif (__DEV__) {\n  AwaitContext.displayName = \"Await\";\n}\n\nexport interface NavigateOptions {\n  replace?: boolean;\n  state?: any;\n  preventScrollReset?: boolean;\n  relative?: RelativeRoutingType;\n}\n\n/**\n * A Navigator is a \"location changer\"; it's how you get to different locations.\n *\n * Every history instance conforms to the Navigator interface, but the\n * distinction is useful primarily when it comes to the low-level <Router> API\n * where both the location and a navigator must be provided separately in order\n * to avoid \"tearing\" that may occur in a suspense-enabled app if the action\n * and/or location were to be read directly from the history instance.\n */\nexport interface Navigator {\n  createHref: History[\"createHref\"];\n  // Optional for backwards-compat with Router/HistoryRouter usage (edge case)\n  encodeLocation?: History[\"encodeLocation\"];\n  go: History[\"go\"];\n  push(to: To, state?: any, opts?: NavigateOptions): void;\n  replace(to: To, state?: any, opts?: NavigateOptions): void;\n}\n\ninterface NavigationContextObject {\n  basename: string;\n  navigator: Navigator;\n  static: boolean;\n}\n\nexport const NavigationContext = React.createContext<NavigationContextObject>(\n  null!\n);\n\nif (__DEV__) {\n  NavigationContext.displayName = \"Navigation\";\n}\n\ninterface LocationContextObject {\n  location: Location;\n  navigationType: NavigationType;\n}\n\nexport const LocationContext = React.createContext<LocationContextObject>(\n  null!\n);\n\nif (__DEV__) {\n  LocationContext.displayName = \"Location\";\n}\n\nexport interface RouteContextObject {\n  outlet: React.ReactElement | null;\n  matches: RouteMatch[];\n  isDataRoute: boolean;\n}\n\nexport const RouteContext = React.createContext<RouteContextObject>({\n  outlet: null,\n  matches: [],\n  isDataRoute: false,\n});\n\nif (__DEV__) {\n  RouteContext.displayName = \"Route\";\n}\n\nexport const RouteErrorContext = React.createContext<any>(null);\n\nif (__DEV__) {\n  RouteErrorContext.displayName = \"RouteError\";\n}\n","import * as React from \"react\";\nimport type {\n  Blocker,\n  BlockerFunction,\n  Location,\n  ParamParseKey,\n  Params,\n  Path,\n  PathMatch,\n  PathPattern,\n  RelativeRoutingType,\n  Router as RemixRouter,\n  RevalidationState,\n  To,\n} from \"@remix-run/router\";\nimport {\n  Action as NavigationType,\n  UNSAFE_invariant as invariant,\n  isRouteErrorResponse,\n  joinPaths,\n  matchPath,\n  matchRoutes,\n  parsePath,\n  resolveTo,\n  stripBasename,\n  IDLE_BLOCKER,\n  UNSAFE_getPathContributingMatches as getPathContributingMatches,\n  UNSAFE_warning as warning,\n} from \"@remix-run/router\";\n\nimport type {\n  NavigateOptions,\n  RouteContextObject,\n  RouteMatch,\n  RouteObject,\n  DataRouteMatch,\n} from \"./context\";\nimport {\n  DataRouterContext,\n  DataRouterStateContext,\n  LocationContext,\n  NavigationContext,\n  RouteContext,\n  RouteErrorContext,\n  AwaitContext,\n} from \"./context\";\n\n/**\n * Returns the full href for the given \"to\" value. This is useful for building\n * custom links that are also accessible and preserve right-click behavior.\n *\n * @see https://reactrouter.com/hooks/use-href\n */\nexport function useHref(\n  to: To,\n  { relative }: { relative?: RelativeRoutingType } = {}\n): string {\n  invariant(\n    useInRouterContext(),\n    // TODO: This error is probably because they somehow have 2 versions of the\n    // router loaded. We can help them understand how to avoid that.\n    `useHref() may be used only in the context of a <Router> component.`\n  );\n\n  let { basename, navigator } = React.useContext(NavigationContext);\n  let { hash, pathname, search } = useResolvedPath(to, { relative });\n\n  let joinedPathname = pathname;\n\n  // If we're operating within a basename, prepend it to the pathname prior\n  // to creating the href.  If this is a root navigation, then just use the raw\n  // basename which allows the basename to have full control over the presence\n  // of a trailing slash on root links\n  if (basename !== \"/\") {\n    joinedPathname =\n      pathname === \"/\" ? basename : joinPaths([basename, pathname]);\n  }\n\n  return navigator.createHref({ pathname: joinedPathname, search, hash });\n}\n\n/**\n * Returns true if this component is a descendant of a <Router>.\n *\n * @see https://reactrouter.com/hooks/use-in-router-context\n */\nexport function useInRouterContext(): boolean {\n  return React.useContext(LocationContext) != null;\n}\n\n/**\n * Returns the current location object, which represents the current URL in web\n * browsers.\n *\n * Note: If you're using this it may mean you're doing some of your own\n * \"routing\" in your app, and we'd like to know what your use case is. We may\n * be able to provide something higher-level to better suit your needs.\n *\n * @see https://reactrouter.com/hooks/use-location\n */\nexport function useLocation(): Location {\n  invariant(\n    useInRouterContext(),\n    // TODO: This error is probably because they somehow have 2 versions of the\n    // router loaded. We can help them understand how to avoid that.\n    `useLocation() may be used only in the context of a <Router> component.`\n  );\n\n  return React.useContext(LocationContext).location;\n}\n\n/**\n * Returns the current navigation action which describes how the router came to\n * the current location, either by a pop, push, or replace on the history stack.\n *\n * @see https://reactrouter.com/hooks/use-navigation-type\n */\nexport function useNavigationType(): NavigationType {\n  return React.useContext(LocationContext).navigationType;\n}\n\n/**\n * Returns a PathMatch object if the given pattern matches the current URL.\n * This is useful for components that need to know \"active\" state, e.g.\n * <NavLink>.\n *\n * @see https://reactrouter.com/hooks/use-match\n */\nexport function useMatch<\n  ParamKey extends ParamParseKey<Path>,\n  Path extends string\n>(pattern: PathPattern<Path> | Path): PathMatch<ParamKey> | null {\n  invariant(\n    useInRouterContext(),\n    // TODO: This error is probably because they somehow have 2 versions of the\n    // router loaded. We can help them understand how to avoid that.\n    `useMatch() may be used only in the context of a <Router> component.`\n  );\n\n  let { pathname } = useLocation();\n  return React.useMemo(\n    () => matchPath<ParamKey, Path>(pattern, pathname),\n    [pathname, pattern]\n  );\n}\n\n/**\n * The interface for the navigate() function returned from useNavigate().\n */\nexport interface NavigateFunction {\n  (to: To, options?: NavigateOptions): void;\n  (delta: number): void;\n}\n\nconst navigateEffectWarning =\n  `You should call navigate() in a React.useEffect(), not when ` +\n  `your component is first rendered.`;\n\n// Mute warnings for calls to useNavigate in SSR environments\nfunction useIsomorphicLayoutEffect(\n  cb: Parameters<typeof React.useLayoutEffect>[0]\n) {\n  let isStatic = React.useContext(NavigationContext).static;\n  if (!isStatic) {\n    // We should be able to get rid of this once react 18.3 is released\n    // See: https://github.com/facebook/react/pull/26395\n    // eslint-disable-next-line react-hooks/rules-of-hooks\n    React.useLayoutEffect(cb);\n  }\n}\n\n/**\n * Returns an imperative method for changing the location. Used by <Link>s, but\n * may also be used by other elements to change the location.\n *\n * @see https://reactrouter.com/hooks/use-navigate\n */\nexport function useNavigate(): NavigateFunction {\n  let { isDataRoute } = React.useContext(RouteContext);\n  // Conditional usage is OK here because the usage of a data router is static\n  // eslint-disable-next-line react-hooks/rules-of-hooks\n  return isDataRoute ? useNavigateStable() : useNavigateUnstable();\n}\n\nfunction useNavigateUnstable(): NavigateFunction {\n  invariant(\n    useInRouterContext(),\n    // TODO: This error is probably because they somehow have 2 versions of the\n    // router loaded. We can help them understand how to avoid that.\n    `useNavigate() may be used only in the context of a <Router> component.`\n  );\n\n  let dataRouterContext = React.useContext(DataRouterContext);\n  let { basename, navigator } = React.useContext(NavigationContext);\n  let { matches } = React.useContext(RouteContext);\n  let { pathname: locationPathname } = useLocation();\n\n  let routePathnamesJson = JSON.stringify(\n    getPathContributingMatches(matches).map((match) => match.pathnameBase)\n  );\n\n  let activeRef = React.useRef(false);\n  useIsomorphicLayoutEffect(() => {\n    activeRef.current = true;\n  });\n\n  let navigate: NavigateFunction = React.useCallback(\n    (to: To | number, options: NavigateOptions = {}) => {\n      warning(activeRef.current, navigateEffectWarning);\n\n      // Short circuit here since if this happens on first render the navigate\n      // is useless because we haven't wired up our history listener yet\n      if (!activeRef.current) return;\n\n      if (typeof to === \"number\") {\n        navigator.go(to);\n        return;\n      }\n\n      let path = resolveTo(\n        to,\n        JSON.parse(routePathnamesJson),\n        locationPathname,\n        options.relative === \"path\"\n      );\n\n      // If we're operating within a basename, prepend it to the pathname prior\n      // to handing off to history (but only if we're not in a data router,\n      // otherwise it'll prepend the basename inside of the router).\n      // If this is a root navigation, then we navigate to the raw basename\n      // which allows the basename to have full control over the presence of a\n      // trailing slash on root links\n      if (dataRouterContext == null && basename !== \"/\") {\n        path.pathname =\n          path.pathname === \"/\"\n            ? basename\n            : joinPaths([basename, path.pathname]);\n      }\n\n      (!!options.replace ? navigator.replace : navigator.push)(\n        path,\n        options.state,\n        options\n      );\n    },\n    [\n      basename,\n      navigator,\n      routePathnamesJson,\n      locationPathname,\n      dataRouterContext,\n    ]\n  );\n\n  return navigate;\n}\n\nconst OutletContext = React.createContext<unknown>(null);\n\n/**\n * Returns the context (if provided) for the child route at this level of the route\n * hierarchy.\n * @see https://reactrouter.com/hooks/use-outlet-context\n */\nexport function useOutletContext<Context = unknown>(): Context {\n  return React.useContext(OutletContext) as Context;\n}\n\n/**\n * Returns the element for the child route at this level of the route\n * hierarchy. Used internally by <Outlet> to render child routes.\n *\n * @see https://reactrouter.com/hooks/use-outlet\n */\nexport function useOutlet(context?: unknown): React.ReactElement | null {\n  let outlet = React.useContext(RouteContext).outlet;\n  if (outlet) {\n    return (\n      <OutletContext.Provider value={context}>{outlet}</OutletContext.Provider>\n    );\n  }\n  return outlet;\n}\n\n/**\n * Returns an object of key/value pairs of the dynamic params from the current\n * URL that were matched by the route path.\n *\n * @see https://reactrouter.com/hooks/use-params\n */\nexport function useParams<\n  ParamsOrKey extends string | Record<string, string | undefined> = string\n>(): Readonly<\n  [ParamsOrKey] extends [string] ? Params<ParamsOrKey> : Partial<ParamsOrKey>\n> {\n  let { matches } = React.useContext(RouteContext);\n  let routeMatch = matches[matches.length - 1];\n  return routeMatch ? (routeMatch.params as any) : {};\n}\n\n/**\n * Resolves the pathname of the given `to` value against the current location.\n *\n * @see https://reactrouter.com/hooks/use-resolved-path\n */\nexport function useResolvedPath(\n  to: To,\n  { relative }: { relative?: RelativeRoutingType } = {}\n): Path {\n  let { matches } = React.useContext(RouteContext);\n  let { pathname: locationPathname } = useLocation();\n\n  let routePathnamesJson = JSON.stringify(\n    getPathContributingMatches(matches).map((match) => match.pathnameBase)\n  );\n\n  return React.useMemo(\n    () =>\n      resolveTo(\n        to,\n        JSON.parse(routePathnamesJson),\n        locationPathname,\n        relative === \"path\"\n      ),\n    [to, routePathnamesJson, locationPathname, relative]\n  );\n}\n\n/**\n * Returns the element of the route that matched the current location, prepared\n * with the correct context to render the remainder of the route tree. Route\n * elements in the tree must render an <Outlet> to render their child route's\n * element.\n *\n * @see https://reactrouter.com/hooks/use-routes\n */\nexport function useRoutes(\n  routes: RouteObject[],\n  locationArg?: Partial<Location> | string\n): React.ReactElement | null {\n  return useRoutesImpl(routes, locationArg);\n}\n\n// Internal implementation with accept optional param for RouterProvider usage\nexport function useRoutesImpl(\n  routes: RouteObject[],\n  locationArg?: Partial<Location> | string,\n  dataRouterState?: RemixRouter[\"state\"]\n): React.ReactElement | null {\n  invariant(\n    useInRouterContext(),\n    // TODO: This error is probably because they somehow have 2 versions of the\n    // router loaded. We can help them understand how to avoid that.\n    `useRoutes() may be used only in the context of a <Router> component.`\n  );\n\n  let { navigator } = React.useContext(NavigationContext);\n  let { matches: parentMatches } = React.useContext(RouteContext);\n  let routeMatch = parentMatches[parentMatches.length - 1];\n  let parentParams = routeMatch ? routeMatch.params : {};\n  let parentPathname = routeMatch ? routeMatch.pathname : \"/\";\n  let parentPathnameBase = routeMatch ? routeMatch.pathnameBase : \"/\";\n  let parentRoute = routeMatch && routeMatch.route;\n\n  if (__DEV__) {\n    // You won't get a warning about 2 different <Routes> under a <Route>\n    // without a trailing *, but this is a best-effort warning anyway since we\n    // cannot even give the warning unless they land at the parent route.\n    //\n    // Example:\n    //\n    // <Routes>\n    //   {/* This route path MUST end with /* because otherwise\n    //       it will never match /blog/post/123 */}\n    //   <Route path=\"blog\" element={<Blog />} />\n    //   <Route path=\"blog/feed\" element={<BlogFeed />} />\n    // </Routes>\n    //\n    // function Blog() {\n    //   return (\n    //     <Routes>\n    //       <Route path=\"post/:id\" element={<Post />} />\n    //     </Routes>\n    //   );\n    // }\n    let parentPath = (parentRoute && parentRoute.path) || \"\";\n    warningOnce(\n      parentPathname,\n      !parentRoute || parentPath.endsWith(\"*\"),\n      `You rendered descendant <Routes> (or called \\`useRoutes()\\`) at ` +\n        `\"${parentPathname}\" (under <Route path=\"${parentPath}\">) but the ` +\n        `parent route path has no trailing \"*\". This means if you navigate ` +\n        `deeper, the parent won't match anymore and therefore the child ` +\n        `routes will never render.\\n\\n` +\n        `Please change the parent <Route path=\"${parentPath}\"> to <Route ` +\n        `path=\"${parentPath === \"/\" ? \"*\" : `${parentPath}/*`}\">.`\n    );\n  }\n\n  let locationFromContext = useLocation();\n\n  let location;\n  if (locationArg) {\n    let parsedLocationArg =\n      typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n    invariant(\n      parentPathnameBase === \"/\" ||\n        parsedLocationArg.pathname?.startsWith(parentPathnameBase),\n      `When overriding the location using \\`<Routes location>\\` or \\`useRoutes(routes, location)\\`, ` +\n        `the location pathname must begin with the portion of the URL pathname that was ` +\n        `matched by all parent routes. The current pathname base is \"${parentPathnameBase}\" ` +\n        `but pathname \"${parsedLocationArg.pathname}\" was given in the \\`location\\` prop.`\n    );\n\n    location = parsedLocationArg;\n  } else {\n    location = locationFromContext;\n  }\n\n  let pathname = location.pathname || \"/\";\n  let remainingPathname =\n    parentPathnameBase === \"/\"\n      ? pathname\n      : pathname.slice(parentPathnameBase.length) || \"/\";\n\n  let matches = matchRoutes(routes, { pathname: remainingPathname });\n\n  if (__DEV__) {\n    warning(\n      parentRoute || matches != null,\n      `No routes matched location \"${location.pathname}${location.search}${location.hash}\" `\n    );\n\n    warning(\n      matches == null ||\n        matches[matches.length - 1].route.element !== undefined ||\n        matches[matches.length - 1].route.Component !== undefined,\n      `Matched leaf route at location \"${location.pathname}${location.search}${location.hash}\" ` +\n        `does not have an element or Component. This means it will render an <Outlet /> with a ` +\n        `null value by default resulting in an \"empty\" page.`\n    );\n  }\n\n  let renderedMatches = _renderMatches(\n    matches &&\n      matches.map((match) =>\n        Object.assign({}, match, {\n          params: Object.assign({}, parentParams, match.params),\n          pathname: joinPaths([\n            parentPathnameBase,\n            // Re-encode pathnames that were decoded inside matchRoutes\n            navigator.encodeLocation\n              ? navigator.encodeLocation(match.pathname).pathname\n              : match.pathname,\n          ]),\n          pathnameBase:\n            match.pathnameBase === \"/\"\n              ? parentPathnameBase\n              : joinPaths([\n                  parentPathnameBase,\n                  // Re-encode pathnames that were decoded inside matchRoutes\n                  navigator.encodeLocation\n                    ? navigator.encodeLocation(match.pathnameBase).pathname\n                    : match.pathnameBase,\n                ]),\n        })\n      ),\n    parentMatches,\n    dataRouterState\n  );\n\n  // When a user passes in a `locationArg`, the associated routes need to\n  // be wrapped in a new `LocationContext.Provider` in order for `useLocation`\n  // to use the scoped location instead of the global location.\n  if (locationArg && renderedMatches) {\n    return (\n      <LocationContext.Provider\n        value={{\n          location: {\n            pathname: \"/\",\n            search: \"\",\n            hash: \"\",\n            state: null,\n            key: \"default\",\n            ...location,\n          },\n          navigationType: NavigationType.Pop,\n        }}\n      >\n        {renderedMatches}\n      </LocationContext.Provider>\n    );\n  }\n\n  return renderedMatches;\n}\n\nfunction DefaultErrorComponent() {\n  let error = useRouteError();\n  let message = isRouteErrorResponse(error)\n    ? `${error.status} ${error.statusText}`\n    : error instanceof Error\n    ? error.message\n    : JSON.stringify(error);\n  let stack = error instanceof Error ? error.stack : null;\n  let lightgrey = \"rgba(200,200,200, 0.5)\";\n  let preStyles = { padding: \"0.5rem\", backgroundColor: lightgrey };\n  let codeStyles = { padding: \"2px 4px\", backgroundColor: lightgrey };\n\n  let devInfo = null;\n  if (__DEV__) {\n    console.error(\n      \"Error handled by React Router default ErrorBoundary:\",\n      error\n    );\n\n    devInfo = (\n      <>\n        <p>💿 Hey developer 👋</p>\n        <p>\n          You can provide a way better UX than this when your app throws errors\n          by providing your own <code style={codeStyles}>ErrorBoundary</code> or{\" \"}\n          <code style={codeStyles}>errorElement</code> prop on your route.\n        </p>\n      </>\n    );\n  }\n\n  return (\n    <>\n      <h2>Unexpected Application Error!</h2>\n      <h3 style={{ fontStyle: \"italic\" }}>{message}</h3>\n      {stack ? <pre style={preStyles}>{stack}</pre> : null}\n      {devInfo}\n    </>\n  );\n}\n\nconst defaultErrorElement = <DefaultErrorComponent />;\n\ntype RenderErrorBoundaryProps = React.PropsWithChildren<{\n  location: Location;\n  revalidation: RevalidationState;\n  error: any;\n  component: React.ReactNode;\n  routeContext: RouteContextObject;\n}>;\n\ntype RenderErrorBoundaryState = {\n  location: Location;\n  revalidation: RevalidationState;\n  error: any;\n};\n\nexport class RenderErrorBoundary extends React.Component<\n  RenderErrorBoundaryProps,\n  RenderErrorBoundaryState\n> {\n  constructor(props: RenderErrorBoundaryProps) {\n    super(props);\n    this.state = {\n      location: props.location,\n      revalidation: props.revalidation,\n      error: props.error,\n    };\n  }\n\n  static getDerivedStateFromError(error: any) {\n    return { error: error };\n  }\n\n  static getDerivedStateFromProps(\n    props: RenderErrorBoundaryProps,\n    state: RenderErrorBoundaryState\n  ) {\n    // When we get into an error state, the user will likely click \"back\" to the\n    // previous page that didn't have an error. Because this wraps the entire\n    // application, that will have no effect--the error page continues to display.\n    // This gives us a mechanism to recover from the error when the location changes.\n    //\n    // Whether we're in an error state or not, we update the location in state\n    // so that when we are in an error state, it gets reset when a new location\n    // comes in and the user recovers from the error.\n    if (\n      state.location !== props.location ||\n      (state.revalidation !== \"idle\" && props.revalidation === \"idle\")\n    ) {\n      return {\n        error: props.error,\n        location: props.location,\n        revalidation: props.revalidation,\n      };\n    }\n\n    // If we're not changing locations, preserve the location but still surface\n    // any new errors that may come through. We retain the existing error, we do\n    // this because the error provided from the app state may be cleared without\n    // the location changing.\n    return {\n      error: props.error || state.error,\n      location: state.location,\n      revalidation: props.revalidation || state.revalidation,\n    };\n  }\n\n  componentDidCatch(error: any, errorInfo: any) {\n    console.error(\n      \"React Router caught the following error during render\",\n      error,\n      errorInfo\n    );\n  }\n\n  render() {\n    return this.state.error ? (\n      <RouteContext.Provider value={this.props.routeContext}>\n        <RouteErrorContext.Provider\n          value={this.state.error}\n          children={this.props.component}\n        />\n      </RouteContext.Provider>\n    ) : (\n      this.props.children\n    );\n  }\n}\n\ninterface RenderedRouteProps {\n  routeContext: RouteContextObject;\n  match: RouteMatch<string, RouteObject>;\n  children: React.ReactNode | null;\n}\n\nfunction RenderedRoute({ routeContext, match, children }: RenderedRouteProps) {\n  let dataRouterContext = React.useContext(DataRouterContext);\n\n  // Track how deep we got in our render pass to emulate SSR componentDidCatch\n  // in a DataStaticRouter\n  if (\n    dataRouterContext &&\n    dataRouterContext.static &&\n    dataRouterContext.staticContext &&\n    (match.route.errorElement || match.route.ErrorBoundary)\n  ) {\n    dataRouterContext.staticContext._deepestRenderedBoundaryId = match.route.id;\n  }\n\n  return (\n    <RouteContext.Provider value={routeContext}>\n      {children}\n    </RouteContext.Provider>\n  );\n}\n\nexport function _renderMatches(\n  matches: RouteMatch[] | null,\n  parentMatches: RouteMatch[] = [],\n  dataRouterState: RemixRouter[\"state\"] | null = null\n): React.ReactElement | null {\n  if (matches == null) {\n    if (dataRouterState?.errors) {\n      // Don't bail if we have data router errors so we can render them in the\n      // boundary.  Use the pre-matched (or shimmed) matches\n      matches = dataRouterState.matches as DataRouteMatch[];\n    } else {\n      return null;\n    }\n  }\n\n  let renderedMatches = matches;\n\n  // If we have data errors, trim matches to the highest error boundary\n  let errors = dataRouterState?.errors;\n  if (errors != null) {\n    let errorIndex = renderedMatches.findIndex(\n      (m) => m.route.id && errors?.[m.route.id]\n    );\n    invariant(\n      errorIndex >= 0,\n      `Could not find a matching route for errors on route IDs: ${Object.keys(\n        errors\n      ).join(\",\")}`\n    );\n    renderedMatches = renderedMatches.slice(\n      0,\n      Math.min(renderedMatches.length, errorIndex + 1)\n    );\n  }\n\n  return renderedMatches.reduceRight((outlet, match, index) => {\n    let error = match.route.id ? errors?.[match.route.id] : null;\n    // Only data routers handle errors\n    let errorElement: React.ReactNode | null = null;\n    if (dataRouterState) {\n      errorElement = match.route.errorElement || defaultErrorElement;\n    }\n    let matches = parentMatches.concat(renderedMatches.slice(0, index + 1));\n    let getChildren = () => {\n      let children: React.ReactNode;\n      if (error) {\n        children = errorElement;\n      } else if (match.route.Component) {\n        // Note: This is a de-optimized path since React won't re-use the\n        // ReactElement since it's identity changes with each new\n        // React.createElement call.  We keep this so folks can use\n        // `<Route Component={...}>` in `<Routes>` but generally `Component`\n        // usage is only advised in `RouterProvider` when we can convert it to\n        // `element` ahead of time.\n        children = <match.route.Component />;\n      } else if (match.route.element) {\n        children = match.route.element;\n      } else {\n        children = outlet;\n      }\n      return (\n        <RenderedRoute\n          match={match}\n          routeContext={{\n            outlet,\n            matches,\n            isDataRoute: dataRouterState != null,\n          }}\n          children={children}\n        />\n      );\n    };\n    // Only wrap in an error boundary within data router usages when we have an\n    // ErrorBoundary/errorElement on this route.  Otherwise let it bubble up to\n    // an ancestor ErrorBoundary/errorElement\n    return dataRouterState &&\n      (match.route.ErrorBoundary || match.route.errorElement || index === 0) ? (\n      <RenderErrorBoundary\n        location={dataRouterState.location}\n        revalidation={dataRouterState.revalidation}\n        component={errorElement}\n        error={error}\n        children={getChildren()}\n        routeContext={{ outlet: null, matches, isDataRoute: true }}\n      />\n    ) : (\n      getChildren()\n    );\n  }, null as React.ReactElement | null);\n}\n\nenum DataRouterHook {\n  UseBlocker = \"useBlocker\",\n  UseRevalidator = \"useRevalidator\",\n  UseNavigateStable = \"useNavigate\",\n}\n\nenum DataRouterStateHook {\n  UseBlocker = \"useBlocker\",\n  UseLoaderData = \"useLoaderData\",\n  UseActionData = \"useActionData\",\n  UseRouteError = \"useRouteError\",\n  UseNavigation = \"useNavigation\",\n  UseRouteLoaderData = \"useRouteLoaderData\",\n  UseMatches = \"useMatches\",\n  UseRevalidator = \"useRevalidator\",\n  UseNavigateStable = \"useNavigate\",\n  UseRouteId = \"useRouteId\",\n}\n\nfunction getDataRouterConsoleError(\n  hookName: DataRouterHook | DataRouterStateHook\n) {\n  return `${hookName} must be used within a data router.  See https://reactrouter.com/routers/picking-a-router.`;\n}\n\nfunction useDataRouterContext(hookName: DataRouterHook) {\n  let ctx = React.useContext(DataRouterContext);\n  invariant(ctx, getDataRouterConsoleError(hookName));\n  return ctx;\n}\n\nfunction useDataRouterState(hookName: DataRouterStateHook) {\n  let state = React.useContext(DataRouterStateContext);\n  invariant(state, getDataRouterConsoleError(hookName));\n  return state;\n}\n\nfunction useRouteContext(hookName: DataRouterStateHook) {\n  let route = React.useContext(RouteContext);\n  invariant(route, getDataRouterConsoleError(hookName));\n  return route;\n}\n\n// Internal version with hookName-aware debugging\nfunction useCurrentRouteId(hookName: DataRouterStateHook) {\n  let route = useRouteContext(hookName);\n  let thisRoute = route.matches[route.matches.length - 1];\n  invariant(\n    thisRoute.route.id,\n    `${hookName} can only be used on routes that contain a unique \"id\"`\n  );\n  return thisRoute.route.id;\n}\n\n/**\n * Returns the ID for the nearest contextual route\n */\nexport function useRouteId() {\n  return useCurrentRouteId(DataRouterStateHook.UseRouteId);\n}\n\n/**\n * Returns the current navigation, defaulting to an \"idle\" navigation when\n * no navigation is in progress\n */\nexport function useNavigation() {\n  let state = useDataRouterState(DataRouterStateHook.UseNavigation);\n  return state.navigation;\n}\n\n/**\n * Returns a revalidate function for manually triggering revalidation, as well\n * as the current state of any manual revalidations\n */\nexport function useRevalidator() {\n  let dataRouterContext = useDataRouterContext(DataRouterHook.UseRevalidator);\n  let state = useDataRouterState(DataRouterStateHook.UseRevalidator);\n  return {\n    revalidate: dataRouterContext.router.revalidate,\n    state: state.revalidation,\n  };\n}\n\n/**\n * Returns the active route matches, useful for accessing loaderData for\n * parent/child routes or the route \"handle\" property\n */\nexport function useMatches() {\n  let { matches, loaderData } = useDataRouterState(\n    DataRouterStateHook.UseMatches\n  );\n  return React.useMemo(\n    () =>\n      matches.map((match) => {\n        let { pathname, params } = match;\n        // Note: This structure matches that created by createUseMatchesMatch\n        // in the @remix-run/router , so if you change this please also change\n        // that :)  Eventually we'll DRY this up\n        return {\n          id: match.route.id,\n          pathname,\n          params,\n          data: loaderData[match.route.id] as unknown,\n          handle: match.route.handle as unknown,\n        };\n      }),\n    [matches, loaderData]\n  );\n}\n\n/**\n * Returns the loader data for the nearest ancestor Route loader\n */\nexport function useLoaderData(): unknown {\n  let state = useDataRouterState(DataRouterStateHook.UseLoaderData);\n  let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n\n  if (state.errors && state.errors[routeId] != null) {\n    console.error(\n      `You cannot \\`useLoaderData\\` in an errorElement (routeId: ${routeId})`\n    );\n    return undefined;\n  }\n  return state.loaderData[routeId];\n}\n\n/**\n * Returns the loaderData for the given routeId\n */\nexport function useRouteLoaderData(routeId: string): unknown {\n  let state = useDataRouterState(DataRouterStateHook.UseRouteLoaderData);\n  return state.loaderData[routeId];\n}\n\n/**\n * Returns the action data for the nearest ancestor Route action\n */\nexport function useActionData(): unknown {\n  let state = useDataRouterState(DataRouterStateHook.UseActionData);\n\n  let route = React.useContext(RouteContext);\n  invariant(route, `useActionData must be used inside a RouteContext`);\n\n  return Object.values(state?.actionData || {})[0];\n}\n\n/**\n * Returns the nearest ancestor Route error, which could be a loader/action\n * error or a render error.  This is intended to be called from your\n * ErrorBoundary/errorElement to display a proper error message.\n */\nexport function useRouteError(): unknown {\n  let error = React.useContext(RouteErrorContext);\n  let state = useDataRouterState(DataRouterStateHook.UseRouteError);\n  let routeId = useCurrentRouteId(DataRouterStateHook.UseRouteError);\n\n  // If this was a render error, we put it in a RouteError context inside\n  // of RenderErrorBoundary\n  if (error) {\n    return error;\n  }\n\n  // Otherwise look for errors from our data router state\n  return state.errors?.[routeId];\n}\n\n/**\n * Returns the happy-path data from the nearest ancestor <Await /> value\n */\nexport function useAsyncValue(): unknown {\n  let value = React.useContext(AwaitContext);\n  return value?._data;\n}\n\n/**\n * Returns the error from the nearest ancestor <Await /> value\n */\nexport function useAsyncError(): unknown {\n  let value = React.useContext(AwaitContext);\n  return value?._error;\n}\n\nlet blockerId = 0;\n\n/**\n * Allow the application to block navigations within the SPA and present the\n * user a confirmation dialog to confirm the navigation.  Mostly used to avoid\n * using half-filled form data.  This does not handle hard-reloads or\n * cross-origin navigations.\n */\nexport function useBlocker(shouldBlock: boolean | BlockerFunction): Blocker {\n  let { router, basename } = useDataRouterContext(DataRouterHook.UseBlocker);\n  let state = useDataRouterState(DataRouterStateHook.UseBlocker);\n\n  let [blockerKey, setBlockerKey] = React.useState(\"\");\n  let blockerFunction = React.useCallback<BlockerFunction>(\n    (arg) => {\n      if (typeof shouldBlock !== \"function\") {\n        return !!shouldBlock;\n      }\n      if (basename === \"/\") {\n        return shouldBlock(arg);\n      }\n\n      // If they provided us a function and we've got an active basename, strip\n      // it from the locations we expose to the user to match the behavior of\n      // useLocation\n      let { currentLocation, nextLocation, historyAction } = arg;\n      return shouldBlock({\n        currentLocation: {\n          ...currentLocation,\n          pathname:\n            stripBasename(currentLocation.pathname, basename) ||\n            currentLocation.pathname,\n        },\n        nextLocation: {\n          ...nextLocation,\n          pathname:\n            stripBasename(nextLocation.pathname, basename) ||\n            nextLocation.pathname,\n        },\n        historyAction,\n      });\n    },\n    [basename, shouldBlock]\n  );\n\n  // This effect is in charge of blocker key assignment and deletion (which is\n  // tightly coupled to the key)\n  React.useEffect(() => {\n    let key = String(++blockerId);\n    setBlockerKey(key);\n    return () => router.deleteBlocker(key);\n  }, [router]);\n\n  // This effect handles assigning the blockerFunction.  This is to handle\n  // unstable blocker function identities, and happens only after the prior\n  // effect so we don't get an orphaned blockerFunction in the router with a\n  // key of \"\".  Until then we just have the IDLE_BLOCKER.\n  React.useEffect(() => {\n    if (blockerKey !== \"\") {\n      router.getBlocker(blockerKey, blockerFunction);\n    }\n  }, [router, blockerKey, blockerFunction]);\n\n  // Prefer the blocker from `state` not `router.state` since DataRouterContext\n  // is memoized so this ensures we update on blocker state updates\n  return blockerKey && state.blockers.has(blockerKey)\n    ? state.blockers.get(blockerKey)!\n    : IDLE_BLOCKER;\n}\n\n/**\n * Stable version of useNavigate that is used when we are in the context of\n * a RouterProvider.\n */\nfunction useNavigateStable(): NavigateFunction {\n  let { router } = useDataRouterContext(DataRouterHook.UseNavigateStable);\n  let id = useCurrentRouteId(DataRouterStateHook.UseNavigateStable);\n\n  let activeRef = React.useRef(false);\n  useIsomorphicLayoutEffect(() => {\n    activeRef.current = true;\n  });\n\n  let navigate: NavigateFunction = React.useCallback(\n    (to: To | number, options: NavigateOptions = {}) => {\n      warning(activeRef.current, navigateEffectWarning);\n\n      // Short circuit here since if this happens on first render the navigate\n      // is useless because we haven't wired up our router subscriber yet\n      if (!activeRef.current) return;\n\n      if (typeof to === \"number\") {\n        router.navigate(to);\n      } else {\n        router.navigate(to, { fromRouteId: id, ...options });\n      }\n    },\n    [router, id]\n  );\n\n  return navigate;\n}\n\nconst alreadyWarned: Record<string, boolean> = {};\n\nfunction warningOnce(key: string, cond: boolean, message: string) {\n  if (!cond && !alreadyWarned[key]) {\n    alreadyWarned[key] = true;\n    warning(false, message);\n  }\n}\n","import * as React from \"react\";\nimport type {\n  TrackedPromise,\n  InitialEntry,\n  Location,\n  MemoryHistory,\n  Router as RemixRouter,\n  To,\n  LazyRouteFunction,\n  RelativeRoutingType,\n  RouterState,\n} from \"@remix-run/router\";\nimport {\n  Action as NavigationType,\n  AbortedDeferredError,\n  createMemoryHistory,\n  UNSAFE_invariant as invariant,\n  parsePath,\n  resolveTo,\n  stripBasename,\n  UNSAFE_warning as warning,\n  UNSAFE_getPathContributingMatches as getPathContributingMatches,\n} from \"@remix-run/router\";\n\nimport type {\n  DataRouteObject,\n  IndexRouteObject,\n  RouteMatch,\n  RouteObject,\n  Navigator,\n  NonIndexRouteObject,\n} from \"./context\";\nimport {\n  LocationContext,\n  NavigationContext,\n  DataRouterContext,\n  DataRouterStateContext,\n  AwaitContext,\n  RouteContext,\n} from \"./context\";\nimport {\n  useAsyncValue,\n  useInRouterContext,\n  useNavigate,\n  useOutlet,\n  useRoutes,\n  _renderMatches,\n  useRoutesImpl,\n  useLocation,\n} from \"./hooks\";\n\nexport interface FutureConfig {\n  v7_startTransition: boolean;\n}\n\nexport interface RouterProviderProps {\n  fallbackElement?: React.ReactNode;\n  router: RemixRouter;\n  future?: FutureConfig;\n}\n\n/**\n  Webpack + React 17 fails to compile on any of the following because webpack\n  complains that `startTransition` doesn't exist in `React`:\n  * import { startTransition } from \"react\"\n  * import * as React from from \"react\";\n    \"startTransition\" in React ? React.startTransition(() => setState()) : setState()\n  * import * as React from from \"react\";\n    \"startTransition\" in React ? React[\"startTransition\"](() => setState()) : setState()\n\n  Moving it to a constant such as the following solves the Webpack/React 17 issue:\n  * import * as React from from \"react\";\n    const START_TRANSITION = \"startTransition\";\n    START_TRANSITION in React ? React[START_TRANSITION](() => setState()) : setState()\n\n  However, that introduces webpack/terser minification issues in production builds\n  in React 18 where minification/obfuscation ends up removing the call of\n  React.startTransition entirely from the first half of the ternary.  Grabbing\n  this exported reference once up front resolves that issue.\n\n  See https://github.com/remix-run/react-router/issues/10579\n*/\nconst START_TRANSITION = \"startTransition\";\nconst startTransitionImpl = React[START_TRANSITION];\n\n/**\n * Given a Remix Router instance, render the appropriate UI\n */\nexport function RouterProvider({\n  fallbackElement,\n  router,\n  future,\n}: RouterProviderProps): React.ReactElement {\n  // Need to use a layout effect here so we are subscribed early enough to\n  // pick up on any render-driven redirects/navigations (useEffect/<Navigate>)\n  let [state, setStateImpl] = React.useState(router.state);\n  let { v7_startTransition } = future || {};\n  let setState = React.useCallback(\n    (newState: RouterState) => {\n      v7_startTransition && startTransitionImpl\n        ? startTransitionImpl(() => setStateImpl(newState))\n        : setStateImpl(newState);\n    },\n    [setStateImpl, v7_startTransition]\n  );\n  React.useLayoutEffect(() => router.subscribe(setState), [router, setState]);\n\n  let navigator = React.useMemo((): Navigator => {\n    return {\n      createHref: router.createHref,\n      encodeLocation: router.encodeLocation,\n      go: (n) => router.navigate(n),\n      push: (to, state, opts) =>\n        router.navigate(to, {\n          state,\n          preventScrollReset: opts?.preventScrollReset,\n        }),\n      replace: (to, state, opts) =>\n        router.navigate(to, {\n          replace: true,\n          state,\n          preventScrollReset: opts?.preventScrollReset,\n        }),\n    };\n  }, [router]);\n\n  let basename = router.basename || \"/\";\n\n  let dataRouterContext = React.useMemo(\n    () => ({\n      router,\n      navigator,\n      static: false,\n      basename,\n    }),\n    [router, navigator, basename]\n  );\n\n  // The fragment and {null} here are important!  We need them to keep React 18's\n  // useId happy when we are server-rendering since we may have a <script> here\n  // containing the hydrated server-side staticContext (from StaticRouterProvider).\n  // useId relies on the component tree structure to generate deterministic id's\n  // so we need to ensure it remains the same on the client even though\n  // we don't need the <script> tag\n  return (\n    <>\n      <DataRouterContext.Provider value={dataRouterContext}>\n        <DataRouterStateContext.Provider value={state}>\n          <Router\n            basename={basename}\n            location={state.location}\n            navigationType={state.historyAction}\n            navigator={navigator}\n          >\n            {state.initialized ? (\n              <DataRoutes routes={router.routes} state={state} />\n            ) : (\n              fallbackElement\n            )}\n          </Router>\n        </DataRouterStateContext.Provider>\n      </DataRouterContext.Provider>\n      {null}\n    </>\n  );\n}\n\nfunction DataRoutes({\n  routes,\n  state,\n}: {\n  routes: DataRouteObject[];\n  state: RouterState;\n}): React.ReactElement | null {\n  return useRoutesImpl(routes, undefined, state);\n}\n\nexport interface MemoryRouterProps {\n  basename?: string;\n  children?: React.ReactNode;\n  initialEntries?: InitialEntry[];\n  initialIndex?: number;\n  future?: FutureConfig;\n}\n\n/**\n * A <Router> that stores all entries in memory.\n *\n * @see https://reactrouter.com/router-components/memory-router\n */\nexport function MemoryRouter({\n  basename,\n  children,\n  initialEntries,\n  initialIndex,\n  future,\n}: MemoryRouterProps): React.ReactElement {\n  let historyRef = React.useRef<MemoryHistory>();\n  if (historyRef.current == null) {\n    historyRef.current = createMemoryHistory({\n      initialEntries,\n      initialIndex,\n      v5Compat: true,\n    });\n  }\n\n  let history = historyRef.current;\n  let [state, setStateImpl] = React.useState({\n    action: history.action,\n    location: history.location,\n  });\n  let { v7_startTransition } = future || {};\n  let setState = React.useCallback(\n    (newState: { action: NavigationType; location: Location }) => {\n      v7_startTransition && startTransitionImpl\n        ? startTransitionImpl(() => setStateImpl(newState))\n        : setStateImpl(newState);\n    },\n    [setStateImpl, v7_startTransition]\n  );\n\n  React.useLayoutEffect(() => history.listen(setState), [history, setState]);\n\n  return (\n    <Router\n      basename={basename}\n      children={children}\n      location={state.location}\n      navigationType={state.action}\n      navigator={history}\n    />\n  );\n}\n\nexport interface NavigateProps {\n  to: To;\n  replace?: boolean;\n  state?: any;\n  relative?: RelativeRoutingType;\n}\n\n/**\n * Changes the current location.\n *\n * Note: This API is mostly useful in React.Component subclasses that are not\n * able to use hooks. In functional components, we recommend you use the\n * `useNavigate` hook instead.\n *\n * @see https://reactrouter.com/components/navigate\n */\nexport function Navigate({\n  to,\n  replace,\n  state,\n  relative,\n}: NavigateProps): null {\n  invariant(\n    useInRouterContext(),\n    // TODO: This error is probably because they somehow have 2 versions of\n    // the router loaded. We can help them understand how to avoid that.\n    `<Navigate> may be used only in the context of a <Router> component.`\n  );\n\n  warning(\n    !React.useContext(NavigationContext).static,\n    `<Navigate> must not be used on the initial render in a <StaticRouter>. ` +\n      `This is a no-op, but you should modify your code so the <Navigate> is ` +\n      `only ever rendered in response to some user interaction or state change.`\n  );\n\n  let { matches } = React.useContext(RouteContext);\n  let { pathname: locationPathname } = useLocation();\n  let navigate = useNavigate();\n\n  // Resolve the path outside of the effect so that when effects run twice in\n  // StrictMode they navigate to the same place\n  let path = resolveTo(\n    to,\n    getPathContributingMatches(matches).map((match) => match.pathnameBase),\n    locationPathname,\n    relative === \"path\"\n  );\n  let jsonPath = JSON.stringify(path);\n\n  React.useEffect(\n    () => navigate(JSON.parse(jsonPath), { replace, state, relative }),\n    [navigate, jsonPath, relative, replace, state]\n  );\n\n  return null;\n}\n\nexport interface OutletProps {\n  context?: unknown;\n}\n\n/**\n * Renders the child route's element, if there is one.\n *\n * @see https://reactrouter.com/components/outlet\n */\nexport function Outlet(props: OutletProps): React.ReactElement | null {\n  return useOutlet(props.context);\n}\n\nexport interface PathRouteProps {\n  caseSensitive?: NonIndexRouteObject[\"caseSensitive\"];\n  path?: NonIndexRouteObject[\"path\"];\n  id?: NonIndexRouteObject[\"id\"];\n  lazy?: LazyRouteFunction<NonIndexRouteObject>;\n  loader?: NonIndexRouteObject[\"loader\"];\n  action?: NonIndexRouteObject[\"action\"];\n  hasErrorBoundary?: NonIndexRouteObject[\"hasErrorBoundary\"];\n  shouldRevalidate?: NonIndexRouteObject[\"shouldRevalidate\"];\n  handle?: NonIndexRouteObject[\"handle\"];\n  index?: false;\n  children?: React.ReactNode;\n  element?: React.ReactNode | null;\n  errorElement?: React.ReactNode | null;\n  Component?: React.ComponentType | null;\n  ErrorBoundary?: React.ComponentType | null;\n}\n\nexport interface LayoutRouteProps extends PathRouteProps {}\n\nexport interface IndexRouteProps {\n  caseSensitive?: IndexRouteObject[\"caseSensitive\"];\n  path?: IndexRouteObject[\"path\"];\n  id?: IndexRouteObject[\"id\"];\n  lazy?: LazyRouteFunction<IndexRouteObject>;\n  loader?: IndexRouteObject[\"loader\"];\n  action?: IndexRouteObject[\"action\"];\n  hasErrorBoundary?: IndexRouteObject[\"hasErrorBoundary\"];\n  shouldRevalidate?: IndexRouteObject[\"shouldRevalidate\"];\n  handle?: IndexRouteObject[\"handle\"];\n  index: true;\n  children?: undefined;\n  element?: React.ReactNode | null;\n  errorElement?: React.ReactNode | null;\n  Component?: React.ComponentType | null;\n  ErrorBoundary?: React.ComponentType | null;\n}\n\nexport type RouteProps = PathRouteProps | LayoutRouteProps | IndexRouteProps;\n\n/**\n * Declares an element that should be rendered at a certain URL path.\n *\n * @see https://reactrouter.com/components/route\n */\nexport function Route(_props: RouteProps): React.ReactElement | null {\n  invariant(\n    false,\n    `A <Route> is only ever to be used as the child of <Routes> element, ` +\n      `never rendered directly. Please wrap your <Route> in a <Routes>.`\n  );\n}\n\nexport interface RouterProps {\n  basename?: string;\n  children?: React.ReactNode;\n  location: Partial<Location> | string;\n  navigationType?: NavigationType;\n  navigator: Navigator;\n  static?: boolean;\n}\n\n/**\n * Provides location context for the rest of the app.\n *\n * Note: You usually won't render a <Router> directly. Instead, you'll render a\n * router that is more specific to your environment such as a <BrowserRouter>\n * in web browsers or a <StaticRouter> for server rendering.\n *\n * @see https://reactrouter.com/router-components/router\n */\nexport function Router({\n  basename: basenameProp = \"/\",\n  children = null,\n  location: locationProp,\n  navigationType = NavigationType.Pop,\n  navigator,\n  static: staticProp = false,\n}: RouterProps): React.ReactElement | null {\n  invariant(\n    !useInRouterContext(),\n    `You cannot render a <Router> inside another <Router>.` +\n      ` You should never have more than one in your app.`\n  );\n\n  // Preserve trailing slashes on basename, so we can let the user control\n  // the enforcement of trailing slashes throughout the app\n  let basename = basenameProp.replace(/^\\/*/, \"/\");\n  let navigationContext = React.useMemo(\n    () => ({ basename, navigator, static: staticProp }),\n    [basename, navigator, staticProp]\n  );\n\n  if (typeof locationProp === \"string\") {\n    locationProp = parsePath(locationProp);\n  }\n\n  let {\n    pathname = \"/\",\n    search = \"\",\n    hash = \"\",\n    state = null,\n    key = \"default\",\n  } = locationProp;\n\n  let locationContext = React.useMemo(() => {\n    let trailingPathname = stripBasename(pathname, basename);\n\n    if (trailingPathname == null) {\n      return null;\n    }\n\n    return {\n      location: {\n        pathname: trailingPathname,\n        search,\n        hash,\n        state,\n        key,\n      },\n      navigationType,\n    };\n  }, [basename, pathname, search, hash, state, key, navigationType]);\n\n  warning(\n    locationContext != null,\n    `<Router basename=\"${basename}\"> is not able to match the URL ` +\n      `\"${pathname}${search}${hash}\" because it does not start with the ` +\n      `basename, so the <Router> won't render anything.`\n  );\n\n  if (locationContext == null) {\n    return null;\n  }\n\n  return (\n    <NavigationContext.Provider value={navigationContext}>\n      <LocationContext.Provider children={children} value={locationContext} />\n    </NavigationContext.Provider>\n  );\n}\n\nexport interface RoutesProps {\n  children?: React.ReactNode;\n  location?: Partial<Location> | string;\n}\n\n/**\n * A container for a nested tree of <Route> elements that renders the branch\n * that best matches the current location.\n *\n * @see https://reactrouter.com/components/routes\n */\nexport function Routes({\n  children,\n  location,\n}: RoutesProps): React.ReactElement | null {\n  return useRoutes(createRoutesFromChildren(children), location);\n}\n\nexport interface AwaitResolveRenderFunction {\n  (data: Awaited<any>): React.ReactNode;\n}\n\nexport interface AwaitProps {\n  children: React.ReactNode | AwaitResolveRenderFunction;\n  errorElement?: React.ReactNode;\n  resolve: TrackedPromise | any;\n}\n\n/**\n * Component to use for rendering lazily loaded data from returning defer()\n * in a loader function\n */\nexport function Await({ children, errorElement, resolve }: AwaitProps) {\n  return (\n    <AwaitErrorBoundary resolve={resolve} errorElement={errorElement}>\n      <ResolveAwait>{children}</ResolveAwait>\n    </AwaitErrorBoundary>\n  );\n}\n\ntype AwaitErrorBoundaryProps = React.PropsWithChildren<{\n  errorElement?: React.ReactNode;\n  resolve: TrackedPromise | any;\n}>;\n\ntype AwaitErrorBoundaryState = {\n  error: any;\n};\n\nenum AwaitRenderStatus {\n  pending,\n  success,\n  error,\n}\n\nconst neverSettledPromise = new Promise(() => {});\n\nclass AwaitErrorBoundary extends React.Component<\n  AwaitErrorBoundaryProps,\n  AwaitErrorBoundaryState\n> {\n  constructor(props: AwaitErrorBoundaryProps) {\n    super(props);\n    this.state = { error: null };\n  }\n\n  static getDerivedStateFromError(error: any) {\n    return { error };\n  }\n\n  componentDidCatch(error: any, errorInfo: any) {\n    console.error(\n      \"<Await> caught the following error during render\",\n      error,\n      errorInfo\n    );\n  }\n\n  render() {\n    let { children, errorElement, resolve } = this.props;\n\n    let promise: TrackedPromise | null = null;\n    let status: AwaitRenderStatus = AwaitRenderStatus.pending;\n\n    if (!(resolve instanceof Promise)) {\n      // Didn't get a promise - provide as a resolved promise\n      status = AwaitRenderStatus.success;\n      promise = Promise.resolve();\n      Object.defineProperty(promise, \"_tracked\", { get: () => true });\n      Object.defineProperty(promise, \"_data\", { get: () => resolve });\n    } else if (this.state.error) {\n      // Caught a render error, provide it as a rejected promise\n      status = AwaitRenderStatus.error;\n      let renderError = this.state.error;\n      promise = Promise.reject().catch(() => {}); // Avoid unhandled rejection warnings\n      Object.defineProperty(promise, \"_tracked\", { get: () => true });\n      Object.defineProperty(promise, \"_error\", { get: () => renderError });\n    } else if ((resolve as TrackedPromise)._tracked) {\n      // Already tracked promise - check contents\n      promise = resolve;\n      status =\n        promise._error !== undefined\n          ? AwaitRenderStatus.error\n          : promise._data !== undefined\n          ? AwaitRenderStatus.success\n          : AwaitRenderStatus.pending;\n    } else {\n      // Raw (untracked) promise - track it\n      status = AwaitRenderStatus.pending;\n      Object.defineProperty(resolve, \"_tracked\", { get: () => true });\n      promise = resolve.then(\n        (data: any) =>\n          Object.defineProperty(resolve, \"_data\", { get: () => data }),\n        (error: any) =>\n          Object.defineProperty(resolve, \"_error\", { get: () => error })\n      );\n    }\n\n    if (\n      status === AwaitRenderStatus.error &&\n      promise._error instanceof AbortedDeferredError\n    ) {\n      // Freeze the UI by throwing a never resolved promise\n      throw neverSettledPromise;\n    }\n\n    if (status === AwaitRenderStatus.error && !errorElement) {\n      // No errorElement, throw to the nearest route-level error boundary\n      throw promise._error;\n    }\n\n    if (status === AwaitRenderStatus.error) {\n      // Render via our errorElement\n      return <AwaitContext.Provider value={promise} children={errorElement} />;\n    }\n\n    if (status === AwaitRenderStatus.success) {\n      // Render children with resolved value\n      return <AwaitContext.Provider value={promise} children={children} />;\n    }\n\n    // Throw to the suspense boundary\n    throw promise;\n  }\n}\n\n/**\n * @private\n * Indirection to leverage useAsyncValue for a render-prop API on <Await>\n */\nfunction ResolveAwait({\n  children,\n}: {\n  children: React.ReactNode | AwaitResolveRenderFunction;\n}) {\n  let data = useAsyncValue();\n  let toRender = typeof children === \"function\" ? children(data) : children;\n  return <>{toRender}</>;\n}\n\n///////////////////////////////////////////////////////////////////////////////\n// UTILS\n///////////////////////////////////////////////////////////////////////////////\n\n/**\n * Creates a route config from a React \"children\" object, which is usually\n * either a `<Route>` element or an array of them. Used internally by\n * `<Routes>` to create a route config from its children.\n *\n * @see https://reactrouter.com/utils/create-routes-from-children\n */\nexport function createRoutesFromChildren(\n  children: React.ReactNode,\n  parentPath: number[] = []\n): RouteObject[] {\n  let routes: RouteObject[] = [];\n\n  React.Children.forEach(children, (element, index) => {\n    if (!React.isValidElement(element)) {\n      // Ignore non-elements. This allows people to more easily inline\n      // conditionals in their route config.\n      return;\n    }\n\n    let treePath = [...parentPath, index];\n\n    if (element.type === React.Fragment) {\n      // Transparently support React.Fragment and its children.\n      routes.push.apply(\n        routes,\n        createRoutesFromChildren(element.props.children, treePath)\n      );\n      return;\n    }\n\n    invariant(\n      element.type === Route,\n      `[${\n        typeof element.type === \"string\" ? element.type : element.type.name\n      }] is not a <Route> component. All component children of <Routes> must be a <Route> or <React.Fragment>`\n    );\n\n    invariant(\n      !element.props.index || !element.props.children,\n      \"An index route cannot have child routes.\"\n    );\n\n    let route: RouteObject = {\n      id: element.props.id || treePath.join(\"-\"),\n      caseSensitive: element.props.caseSensitive,\n      element: element.props.element,\n      Component: element.props.Component,\n      index: element.props.index,\n      path: element.props.path,\n      loader: element.props.loader,\n      action: element.props.action,\n      errorElement: element.props.errorElement,\n      ErrorBoundary: element.props.ErrorBoundary,\n      hasErrorBoundary:\n        element.props.ErrorBoundary != null ||\n        element.props.errorElement != null,\n      shouldRevalidate: element.props.shouldRevalidate,\n      handle: element.props.handle,\n      lazy: element.props.lazy,\n    };\n\n    if (element.props.children) {\n      route.children = createRoutesFromChildren(\n        element.props.children,\n        treePath\n      );\n    }\n\n    routes.push(route);\n  });\n\n  return routes;\n}\n\n/**\n * Renders the result of `matchRoutes()` into a React element.\n */\nexport function renderMatches(\n  matches: RouteMatch[] | null\n): React.ReactElement | null {\n  return _renderMatches(matches);\n}\n","import * as React from \"react\";\nimport type {\n  ActionFunction,\n  ActionFunctionArgs,\n  Blocker,\n  BlockerFunction,\n  Fetcher,\n  HydrationState,\n  JsonFunction,\n  LoaderFunction,\n  LoaderFunctionArgs,\n  Location,\n  Navigation,\n  Params,\n  ParamParseKey,\n  Path,\n  PathMatch,\n  PathPattern,\n  RedirectFunction,\n  RelativeRoutingType,\n  Router as RemixRouter,\n  ShouldRevalidateFunction,\n  To,\n  InitialEntry,\n  LazyRouteFunction,\n  FutureConfig as RouterFutureConfig,\n} from \"@remix-run/router\";\nimport {\n  AbortedDeferredError,\n  Action as NavigationType,\n  createMemoryHistory,\n  createPath,\n  createRouter,\n  defer,\n  generatePath,\n  isRouteErrorResponse,\n  json,\n  matchPath,\n  matchRoutes,\n  parsePath,\n  redirect,\n  resolvePath,\n  UNSAFE_warning as warning,\n} from \"@remix-run/router\";\n\nimport type {\n  AwaitProps,\n  MemoryRouterProps,\n  NavigateProps,\n  OutletProps,\n  RouteProps,\n  PathRouteProps,\n  LayoutRouteProps,\n  IndexRouteProps,\n  RouterProps,\n  RoutesProps,\n  RouterProviderProps,\n  FutureConfig,\n} from \"./lib/components\";\nimport {\n  createRoutesFromChildren,\n  renderMatches,\n  Await,\n  MemoryRouter,\n  Navigate,\n  Outlet,\n  Route,\n  Router,\n  RouterProvider,\n  Routes,\n} from \"./lib/components\";\nimport type {\n  DataRouteMatch,\n  DataRouteObject,\n  IndexRouteObject,\n  Navigator,\n  NavigateOptions,\n  NonIndexRouteObject,\n  RouteMatch,\n  RouteObject,\n} from \"./lib/context\";\nimport {\n  DataRouterContext,\n  DataRouterStateContext,\n  LocationContext,\n  NavigationContext,\n  RouteContext,\n} from \"./lib/context\";\nimport type { NavigateFunction } from \"./lib/hooks\";\nimport {\n  useBlocker,\n  useHref,\n  useInRouterContext,\n  useLocation,\n  useMatch,\n  useNavigationType,\n  useNavigate,\n  useOutlet,\n  useOutletContext,\n  useParams,\n  useResolvedPath,\n  useRoutes,\n  useActionData,\n  useAsyncError,\n  useAsyncValue,\n  useRouteId,\n  useLoaderData,\n  useMatches,\n  useNavigation,\n  useRevalidator,\n  useRouteError,\n  useRouteLoaderData,\n  useRoutesImpl,\n} from \"./lib/hooks\";\n\n// Exported for backwards compatibility, but not being used internally anymore\ntype Hash = string;\ntype Pathname = string;\ntype Search = string;\n\n// Expose react-router public API\nexport type {\n  ActionFunction,\n  ActionFunctionArgs,\n  AwaitProps,\n  Blocker as unstable_Blocker,\n  BlockerFunction as unstable_BlockerFunction,\n  DataRouteMatch,\n  DataRouteObject,\n  Fetcher,\n  FutureConfig,\n  Hash,\n  IndexRouteObject,\n  IndexRouteProps,\n  JsonFunction,\n  LazyRouteFunction,\n  LayoutRouteProps,\n  LoaderFunction,\n  LoaderFunctionArgs,\n  Location,\n  MemoryRouterProps,\n  NavigateFunction,\n  NavigateOptions,\n  NavigateProps,\n  Navigation,\n  Navigator,\n  NonIndexRouteObject,\n  OutletProps,\n  Params,\n  ParamParseKey,\n  Path,\n  PathMatch,\n  Pathname,\n  PathPattern,\n  PathRouteProps,\n  RedirectFunction,\n  RelativeRoutingType,\n  RouteMatch,\n  RouteObject,\n  RouteProps,\n  RouterProps,\n  RouterProviderProps,\n  RoutesProps,\n  Search,\n  ShouldRevalidateFunction,\n  To,\n};\nexport {\n  AbortedDeferredError,\n  Await,\n  MemoryRouter,\n  Navigate,\n  NavigationType,\n  Outlet,\n  Route,\n  Router,\n  RouterProvider,\n  Routes,\n  createPath,\n  createRoutesFromChildren,\n  createRoutesFromChildren as createRoutesFromElements,\n  defer,\n  isRouteErrorResponse,\n  generatePath,\n  json,\n  matchPath,\n  matchRoutes,\n  parsePath,\n  redirect,\n  renderMatches,\n  resolvePath,\n  useActionData,\n  useAsyncError,\n  useAsyncValue,\n  useBlocker as unstable_useBlocker,\n  useHref,\n  useInRouterContext,\n  useLoaderData,\n  useLocation,\n  useMatch,\n  useMatches,\n  useNavigate,\n  useNavigation,\n  useNavigationType,\n  useOutlet,\n  useOutletContext,\n  useParams,\n  useResolvedPath,\n  useRevalidator,\n  useRouteError,\n  useRouteLoaderData,\n  useRoutes,\n};\n\nfunction mapRouteProperties(route: RouteObject) {\n  let updates: Partial<RouteObject> & { hasErrorBoundary: boolean } = {\n    // Note: this check also occurs in createRoutesFromChildren so update\n    // there if you change this -- please and thank you!\n    hasErrorBoundary: route.ErrorBoundary != null || route.errorElement != null,\n  };\n\n  if (route.Component) {\n    if (__DEV__) {\n      if (route.element) {\n        warning(\n          false,\n          \"You should not include both `Component` and `element` on your route - \" +\n            \"`Component` will be used.\"\n        );\n      }\n    }\n    Object.assign(updates, {\n      element: React.createElement(route.Component),\n      Component: undefined,\n    });\n  }\n\n  if (route.ErrorBoundary) {\n    if (__DEV__) {\n      if (route.errorElement) {\n        warning(\n          false,\n          \"You should not include both `ErrorBoundary` and `errorElement` on your route - \" +\n            \"`ErrorBoundary` will be used.\"\n        );\n      }\n    }\n    Object.assign(updates, {\n      errorElement: React.createElement(route.ErrorBoundary),\n      ErrorBoundary: undefined,\n    });\n  }\n\n  return updates;\n}\n\nexport function createMemoryRouter(\n  routes: RouteObject[],\n  opts?: {\n    basename?: string;\n    future?: Partial<Omit<RouterFutureConfig, \"v7_prependBasename\">>;\n    hydrationData?: HydrationState;\n    initialEntries?: InitialEntry[];\n    initialIndex?: number;\n  }\n): RemixRouter {\n  return createRouter({\n    basename: opts?.basename,\n    future: {\n      ...opts?.future,\n      v7_prependBasename: true,\n    },\n    history: createMemoryHistory({\n      initialEntries: opts?.initialEntries,\n      initialIndex: opts?.initialIndex,\n    }),\n    hydrationData: opts?.hydrationData,\n    routes,\n    mapRouteProperties,\n  }).initialize();\n}\n\n///////////////////////////////////////////////////////////////////////////////\n// DANGER! PLEASE READ ME!\n// We provide these exports as an escape hatch in the event that you need any\n// routing data that we don't provide an explicit API for. With that said, we\n// want to cover your use case if we can, so if you feel the need to use these\n// we want to hear from you. Let us know what you're building and we'll do our\n// best to make sure we can support you!\n//\n// We consider these exports an implementation detail and do not guarantee\n// against any breaking changes, regardless of the semver release. Use with\n// extreme caution and only if you understand the consequences. Godspeed.\n///////////////////////////////////////////////////////////////////////////////\n\n/** @internal */\nexport {\n  NavigationContext as UNSAFE_NavigationContext,\n  LocationContext as UNSAFE_LocationContext,\n  RouteContext as UNSAFE_RouteContext,\n  DataRouterContext as UNSAFE_DataRouterContext,\n  DataRouterStateContext as UNSAFE_DataRouterStateContext,\n  mapRouteProperties as UNSAFE_mapRouteProperties,\n  useRouteId as UNSAFE_useRouteId,\n  useRoutesImpl as UNSAFE_useRoutesImpl,\n};\n","import { numberInputToObject, rgbaToHex, rgbToHex, rgbToHsl, rgbToHsv } from './conversion.js';\nimport { names } from './css-color-names.js';\nimport { inputToRGB } from './format-input';\nimport { bound01, boundAlpha, clamp01 } from './util.js';\nvar TinyColor = /** @class */ (function () {\n    function TinyColor(color, opts) {\n        if (color === void 0) { color = ''; }\n        if (opts === void 0) { opts = {}; }\n        var _a;\n        // If input is already a tinycolor, return itself\n        if (color instanceof TinyColor) {\n            // eslint-disable-next-line no-constructor-return\n            return color;\n        }\n        if (typeof color === 'number') {\n            color = numberInputToObject(color);\n        }\n        this.originalInput = color;\n        var rgb = inputToRGB(color);\n        this.originalInput = color;\n        this.r = rgb.r;\n        this.g = rgb.g;\n        this.b = rgb.b;\n        this.a = rgb.a;\n        this.roundA = Math.round(100 * this.a) / 100;\n        this.format = (_a = opts.format) !== null && _a !== void 0 ? _a : rgb.format;\n        this.gradientType = opts.gradientType;\n        // Don't let the range of [0,255] come back in [0,1].\n        // Potentially lose a little bit of precision here, but will fix issues where\n        // .5 gets interpreted as half of the total, instead of half of 1\n        // If it was supposed to be 128, this was already taken care of by `inputToRgb`\n        if (this.r < 1) {\n            this.r = Math.round(this.r);\n        }\n        if (this.g < 1) {\n            this.g = Math.round(this.g);\n        }\n        if (this.b < 1) {\n            this.b = Math.round(this.b);\n        }\n        this.isValid = rgb.ok;\n    }\n    TinyColor.prototype.isDark = function () {\n        return this.getBrightness() < 128;\n    };\n    TinyColor.prototype.isLight = function () {\n        return !this.isDark();\n    };\n    /**\n     * Returns the perceived brightness of the color, from 0-255.\n     */\n    TinyColor.prototype.getBrightness = function () {\n        // http://www.w3.org/TR/AERT#color-contrast\n        var rgb = this.toRgb();\n        return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000;\n    };\n    /**\n     * Returns the perceived luminance of a color, from 0-1.\n     */\n    TinyColor.prototype.getLuminance = function () {\n        // http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n        var rgb = this.toRgb();\n        var R;\n        var G;\n        var B;\n        var RsRGB = rgb.r / 255;\n        var GsRGB = rgb.g / 255;\n        var BsRGB = rgb.b / 255;\n        if (RsRGB <= 0.03928) {\n            R = RsRGB / 12.92;\n        }\n        else {\n            // eslint-disable-next-line prefer-exponentiation-operator\n            R = Math.pow((RsRGB + 0.055) / 1.055, 2.4);\n        }\n        if (GsRGB <= 0.03928) {\n            G = GsRGB / 12.92;\n        }\n        else {\n            // eslint-disable-next-line prefer-exponentiation-operator\n            G = Math.pow((GsRGB + 0.055) / 1.055, 2.4);\n        }\n        if (BsRGB <= 0.03928) {\n            B = BsRGB / 12.92;\n        }\n        else {\n            // eslint-disable-next-line prefer-exponentiation-operator\n            B = Math.pow((BsRGB + 0.055) / 1.055, 2.4);\n        }\n        return 0.2126 * R + 0.7152 * G + 0.0722 * B;\n    };\n    /**\n     * Returns the alpha value of a color, from 0-1.\n     */\n    TinyColor.prototype.getAlpha = function () {\n        return this.a;\n    };\n    /**\n     * Sets the alpha value on the current color.\n     *\n     * @param alpha - The new alpha value. The accepted range is 0-1.\n     */\n    TinyColor.prototype.setAlpha = function (alpha) {\n        this.a = boundAlpha(alpha);\n        this.roundA = Math.round(100 * this.a) / 100;\n        return this;\n    };\n    /**\n     * Returns whether the color is monochrome.\n     */\n    TinyColor.prototype.isMonochrome = function () {\n        var s = this.toHsl().s;\n        return s === 0;\n    };\n    /**\n     * Returns the object as a HSVA object.\n     */\n    TinyColor.prototype.toHsv = function () {\n        var hsv = rgbToHsv(this.r, this.g, this.b);\n        return { h: hsv.h * 360, s: hsv.s, v: hsv.v, a: this.a };\n    };\n    /**\n     * Returns the hsva values interpolated into a string with the following format:\n     * \"hsva(xxx, xxx, xxx, xx)\".\n     */\n    TinyColor.prototype.toHsvString = function () {\n        var hsv = rgbToHsv(this.r, this.g, this.b);\n        var h = Math.round(hsv.h * 360);\n        var s = Math.round(hsv.s * 100);\n        var v = Math.round(hsv.v * 100);\n        return this.a === 1 ? \"hsv(\".concat(h, \", \").concat(s, \"%, \").concat(v, \"%)\") : \"hsva(\".concat(h, \", \").concat(s, \"%, \").concat(v, \"%, \").concat(this.roundA, \")\");\n    };\n    /**\n     * Returns the object as a HSLA object.\n     */\n    TinyColor.prototype.toHsl = function () {\n        var hsl = rgbToHsl(this.r, this.g, this.b);\n        return { h: hsl.h * 360, s: hsl.s, l: hsl.l, a: this.a };\n    };\n    /**\n     * Returns the hsla values interpolated into a string with the following format:\n     * \"hsla(xxx, xxx, xxx, xx)\".\n     */\n    TinyColor.prototype.toHslString = function () {\n        var hsl = rgbToHsl(this.r, this.g, this.b);\n        var h = Math.round(hsl.h * 360);\n        var s = Math.round(hsl.s * 100);\n        var l = Math.round(hsl.l * 100);\n        return this.a === 1 ? \"hsl(\".concat(h, \", \").concat(s, \"%, \").concat(l, \"%)\") : \"hsla(\".concat(h, \", \").concat(s, \"%, \").concat(l, \"%, \").concat(this.roundA, \")\");\n    };\n    /**\n     * Returns the hex value of the color.\n     * @param allow3Char will shorten hex value to 3 char if possible\n     */\n    TinyColor.prototype.toHex = function (allow3Char) {\n        if (allow3Char === void 0) { allow3Char = false; }\n        return rgbToHex(this.r, this.g, this.b, allow3Char);\n    };\n    /**\n     * Returns the hex value of the color -with a # prefixed.\n     * @param allow3Char will shorten hex value to 3 char if possible\n     */\n    TinyColor.prototype.toHexString = function (allow3Char) {\n        if (allow3Char === void 0) { allow3Char = false; }\n        return '#' + this.toHex(allow3Char);\n    };\n    /**\n     * Returns the hex 8 value of the color.\n     * @param allow4Char will shorten hex value to 4 char if possible\n     */\n    TinyColor.prototype.toHex8 = function (allow4Char) {\n        if (allow4Char === void 0) { allow4Char = false; }\n        return rgbaToHex(this.r, this.g, this.b, this.a, allow4Char);\n    };\n    /**\n     * Returns the hex 8 value of the color -with a # prefixed.\n     * @param allow4Char will shorten hex value to 4 char if possible\n     */\n    TinyColor.prototype.toHex8String = function (allow4Char) {\n        if (allow4Char === void 0) { allow4Char = false; }\n        return '#' + this.toHex8(allow4Char);\n    };\n    /**\n     * Returns the shorter hex value of the color depends on its alpha -with a # prefixed.\n     * @param allowShortChar will shorten hex value to 3 or 4 char if possible\n     */\n    TinyColor.prototype.toHexShortString = function (allowShortChar) {\n        if (allowShortChar === void 0) { allowShortChar = false; }\n        return this.a === 1 ? this.toHexString(allowShortChar) : this.toHex8String(allowShortChar);\n    };\n    /**\n     * Returns the object as a RGBA object.\n     */\n    TinyColor.prototype.toRgb = function () {\n        return {\n            r: Math.round(this.r),\n            g: Math.round(this.g),\n            b: Math.round(this.b),\n            a: this.a,\n        };\n    };\n    /**\n     * Returns the RGBA values interpolated into a string with the following format:\n     * \"RGBA(xxx, xxx, xxx, xx)\".\n     */\n    TinyColor.prototype.toRgbString = function () {\n        var r = Math.round(this.r);\n        var g = Math.round(this.g);\n        var b = Math.round(this.b);\n        return this.a === 1 ? \"rgb(\".concat(r, \", \").concat(g, \", \").concat(b, \")\") : \"rgba(\".concat(r, \", \").concat(g, \", \").concat(b, \", \").concat(this.roundA, \")\");\n    };\n    /**\n     * Returns the object as a RGBA object.\n     */\n    TinyColor.prototype.toPercentageRgb = function () {\n        var fmt = function (x) { return \"\".concat(Math.round(bound01(x, 255) * 100), \"%\"); };\n        return {\n            r: fmt(this.r),\n            g: fmt(this.g),\n            b: fmt(this.b),\n            a: this.a,\n        };\n    };\n    /**\n     * Returns the RGBA relative values interpolated into a string\n     */\n    TinyColor.prototype.toPercentageRgbString = function () {\n        var rnd = function (x) { return Math.round(bound01(x, 255) * 100); };\n        return this.a === 1\n            ? \"rgb(\".concat(rnd(this.r), \"%, \").concat(rnd(this.g), \"%, \").concat(rnd(this.b), \"%)\")\n            : \"rgba(\".concat(rnd(this.r), \"%, \").concat(rnd(this.g), \"%, \").concat(rnd(this.b), \"%, \").concat(this.roundA, \")\");\n    };\n    /**\n     * The 'real' name of the color -if there is one.\n     */\n    TinyColor.prototype.toName = function () {\n        if (this.a === 0) {\n            return 'transparent';\n        }\n        if (this.a < 1) {\n            return false;\n        }\n        var hex = '#' + rgbToHex(this.r, this.g, this.b, false);\n        for (var _i = 0, _a = Object.entries(names); _i < _a.length; _i++) {\n            var _b = _a[_i], key = _b[0], value = _b[1];\n            if (hex === value) {\n                return key;\n            }\n        }\n        return false;\n    };\n    TinyColor.prototype.toString = function (format) {\n        var formatSet = Boolean(format);\n        format = format !== null && format !== void 0 ? format : this.format;\n        var formattedString = false;\n        var hasAlpha = this.a < 1 && this.a >= 0;\n        var needsAlphaFormat = !formatSet && hasAlpha && (format.startsWith('hex') || format === 'name');\n        if (needsAlphaFormat) {\n            // Special case for \"transparent\", all other non-alpha formats\n            // will return rgba when there is transparency.\n            if (format === 'name' && this.a === 0) {\n                return this.toName();\n            }\n            return this.toRgbString();\n        }\n        if (format === 'rgb') {\n            formattedString = this.toRgbString();\n        }\n        if (format === 'prgb') {\n            formattedString = this.toPercentageRgbString();\n        }\n        if (format === 'hex' || format === 'hex6') {\n            formattedString = this.toHexString();\n        }\n        if (format === 'hex3') {\n            formattedString = this.toHexString(true);\n        }\n        if (format === 'hex4') {\n            formattedString = this.toHex8String(true);\n        }\n        if (format === 'hex8') {\n            formattedString = this.toHex8String();\n        }\n        if (format === 'name') {\n            formattedString = this.toName();\n        }\n        if (format === 'hsl') {\n            formattedString = this.toHslString();\n        }\n        if (format === 'hsv') {\n            formattedString = this.toHsvString();\n        }\n        return formattedString || this.toHexString();\n    };\n    TinyColor.prototype.toNumber = function () {\n        return (Math.round(this.r) << 16) + (Math.round(this.g) << 8) + Math.round(this.b);\n    };\n    TinyColor.prototype.clone = function () {\n        return new TinyColor(this.toString());\n    };\n    /**\n     * Lighten the color a given amount. Providing 100 will always return white.\n     * @param amount - valid between 1-100\n     */\n    TinyColor.prototype.lighten = function (amount) {\n        if (amount === void 0) { amount = 10; }\n        var hsl = this.toHsl();\n        hsl.l += amount / 100;\n        hsl.l = clamp01(hsl.l);\n        return new TinyColor(hsl);\n    };\n    /**\n     * Brighten the color a given amount, from 0 to 100.\n     * @param amount - valid between 1-100\n     */\n    TinyColor.prototype.brighten = function (amount) {\n        if (amount === void 0) { amount = 10; }\n        var rgb = this.toRgb();\n        rgb.r = Math.max(0, Math.min(255, rgb.r - Math.round(255 * -(amount / 100))));\n        rgb.g = Math.max(0, Math.min(255, rgb.g - Math.round(255 * -(amount / 100))));\n        rgb.b = Math.max(0, Math.min(255, rgb.b - Math.round(255 * -(amount / 100))));\n        return new TinyColor(rgb);\n    };\n    /**\n     * Darken the color a given amount, from 0 to 100.\n     * Providing 100 will always return black.\n     * @param amount - valid between 1-100\n     */\n    TinyColor.prototype.darken = function (amount) {\n        if (amount === void 0) { amount = 10; }\n        var hsl = this.toHsl();\n        hsl.l -= amount / 100;\n        hsl.l = clamp01(hsl.l);\n        return new TinyColor(hsl);\n    };\n    /**\n     * Mix the color with pure white, from 0 to 100.\n     * Providing 0 will do nothing, providing 100 will always return white.\n     * @param amount - valid between 1-100\n     */\n    TinyColor.prototype.tint = function (amount) {\n        if (amount === void 0) { amount = 10; }\n        return this.mix('white', amount);\n    };\n    /**\n     * Mix the color with pure black, from 0 to 100.\n     * Providing 0 will do nothing, providing 100 will always return black.\n     * @param amount - valid between 1-100\n     */\n    TinyColor.prototype.shade = function (amount) {\n        if (amount === void 0) { amount = 10; }\n        return this.mix('black', amount);\n    };\n    /**\n     * Desaturate the color a given amount, from 0 to 100.\n     * Providing 100 will is the same as calling greyscale\n     * @param amount - valid between 1-100\n     */\n    TinyColor.prototype.desaturate = function (amount) {\n        if (amount === void 0) { amount = 10; }\n        var hsl = this.toHsl();\n        hsl.s -= amount / 100;\n        hsl.s = clamp01(hsl.s);\n        return new TinyColor(hsl);\n    };\n    /**\n     * Saturate the color a given amount, from 0 to 100.\n     * @param amount - valid between 1-100\n     */\n    TinyColor.prototype.saturate = function (amount) {\n        if (amount === void 0) { amount = 10; }\n        var hsl = this.toHsl();\n        hsl.s += amount / 100;\n        hsl.s = clamp01(hsl.s);\n        return new TinyColor(hsl);\n    };\n    /**\n     * Completely desaturates a color into greyscale.\n     * Same as calling `desaturate(100)`\n     */\n    TinyColor.prototype.greyscale = function () {\n        return this.desaturate(100);\n    };\n    /**\n     * Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.\n     * Values outside of this range will be wrapped into this range.\n     */\n    TinyColor.prototype.spin = function (amount) {\n        var hsl = this.toHsl();\n        var hue = (hsl.h + amount) % 360;\n        hsl.h = hue < 0 ? 360 + hue : hue;\n        return new TinyColor(hsl);\n    };\n    /**\n     * Mix the current color a given amount with another color, from 0 to 100.\n     * 0 means no mixing (return current color).\n     */\n    TinyColor.prototype.mix = function (color, amount) {\n        if (amount === void 0) { amount = 50; }\n        var rgb1 = this.toRgb();\n        var rgb2 = new TinyColor(color).toRgb();\n        var p = amount / 100;\n        var rgba = {\n            r: (rgb2.r - rgb1.r) * p + rgb1.r,\n            g: (rgb2.g - rgb1.g) * p + rgb1.g,\n            b: (rgb2.b - rgb1.b) * p + rgb1.b,\n            a: (rgb2.a - rgb1.a) * p + rgb1.a,\n        };\n        return new TinyColor(rgba);\n    };\n    TinyColor.prototype.analogous = function (results, slices) {\n        if (results === void 0) { results = 6; }\n        if (slices === void 0) { slices = 30; }\n        var hsl = this.toHsl();\n        var part = 360 / slices;\n        var ret = [this];\n        for (hsl.h = (hsl.h - ((part * results) >> 1) + 720) % 360; --results;) {\n            hsl.h = (hsl.h + part) % 360;\n            ret.push(new TinyColor(hsl));\n        }\n        return ret;\n    };\n    /**\n     * taken from https://github.com/infusion/jQuery-xcolor/blob/master/jquery.xcolor.js\n     */\n    TinyColor.prototype.complement = function () {\n        var hsl = this.toHsl();\n        hsl.h = (hsl.h + 180) % 360;\n        return new TinyColor(hsl);\n    };\n    TinyColor.prototype.monochromatic = function (results) {\n        if (results === void 0) { results = 6; }\n        var hsv = this.toHsv();\n        var h = hsv.h;\n        var s = hsv.s;\n        var v = hsv.v;\n        var res = [];\n        var modification = 1 / results;\n        while (results--) {\n            res.push(new TinyColor({ h: h, s: s, v: v }));\n            v = (v + modification) % 1;\n        }\n        return res;\n    };\n    TinyColor.prototype.splitcomplement = function () {\n        var hsl = this.toHsl();\n        var h = hsl.h;\n        return [\n            this,\n            new TinyColor({ h: (h + 72) % 360, s: hsl.s, l: hsl.l }),\n            new TinyColor({ h: (h + 216) % 360, s: hsl.s, l: hsl.l }),\n        ];\n    };\n    /**\n     * Compute how the color would appear on a background\n     */\n    TinyColor.prototype.onBackground = function (background) {\n        var fg = this.toRgb();\n        var bg = new TinyColor(background).toRgb();\n        var alpha = fg.a + bg.a * (1 - fg.a);\n        return new TinyColor({\n            r: (fg.r * fg.a + bg.r * bg.a * (1 - fg.a)) / alpha,\n            g: (fg.g * fg.a + bg.g * bg.a * (1 - fg.a)) / alpha,\n            b: (fg.b * fg.a + bg.b * bg.a * (1 - fg.a)) / alpha,\n            a: alpha,\n        });\n    };\n    /**\n     * Alias for `polyad(3)`\n     */\n    TinyColor.prototype.triad = function () {\n        return this.polyad(3);\n    };\n    /**\n     * Alias for `polyad(4)`\n     */\n    TinyColor.prototype.tetrad = function () {\n        return this.polyad(4);\n    };\n    /**\n     * Get polyad colors, like (for 1, 2, 3, 4, 5, 6, 7, 8, etc...)\n     * monad, dyad, triad, tetrad, pentad, hexad, heptad, octad, etc...\n     */\n    TinyColor.prototype.polyad = function (n) {\n        var hsl = this.toHsl();\n        var h = hsl.h;\n        var result = [this];\n        var increment = 360 / n;\n        for (var i = 1; i < n; i++) {\n            result.push(new TinyColor({ h: (h + i * increment) % 360, s: hsl.s, l: hsl.l }));\n        }\n        return result;\n    };\n    /**\n     * compare color vs current color\n     */\n    TinyColor.prototype.equals = function (color) {\n        return this.toRgbString() === new TinyColor(color).toRgbString();\n    };\n    return TinyColor;\n}());\nexport { TinyColor };\n// kept for backwards compatability with v1\nexport function tinycolor(color, opts) {\n    if (color === void 0) { color = ''; }\n    if (opts === void 0) { opts = {}; }\n    return new TinyColor(color, opts);\n}\n","import defineProperty from \"./defineProperty.js\";\nfunction ownKeys(e, r) {\n  var t = Object.keys(e);\n  if (Object.getOwnPropertySymbols) {\n    var o = Object.getOwnPropertySymbols(e);\n    r && (o = o.filter(function (r) {\n      return Object.getOwnPropertyDescriptor(e, r).enumerable;\n    })), t.push.apply(t, o);\n  }\n  return t;\n}\nfunction _objectSpread2(e) {\n  for (var r = 1; r < arguments.length; r++) {\n    var t = null != arguments[r] ? arguments[r] : {};\n    r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n      defineProperty(e, r, t[r]);\n    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n      Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n    });\n  }\n  return e;\n}\nexport { _objectSpread2 as default };","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAABYlAAAWJQFJUiTwAAABaWlDQ1BEaXNwbGF5IFAzAAB4nHWQvUvDUBTFT6tS0DqIDh0cMolD1NIKdnFoKxRFMFQFq1OafgltfCQpUnETVyn4H1jBWXCwiFRwcXAQRAcR3Zw6KbhoeN6XVNoi3sfl/Ticc7lcwBtQGSv2AijplpFMxKS11Lrke4OHnlOqZrKooiwK/v276/PR9d5PiFlNu3YQ2U9cl84ul3aeAlN//V3Vn8maGv3f1EGNGRbgkYmVbYsJ3iUeMWgp4qrgvMvHgtMunzuelWSc+JZY0gpqhrhJLKc79HwHl4plrbWD2N6f1VeXxRzqUcxhEyYYilBRgQQF4X/8044/ji1yV2BQLo8CLMpESRETssTz0KFhEjJxCEHqkLhz634PrfvJbW3vFZhtcM4v2tpCAzidoZPV29p4BBgaAG7qTDVUR+qh9uZywPsJMJgChu8os2HmwiF3e38M6Hvh/GMM8B0CdpXzryPO7RqFn4Er/QcXKWq8MSlPPgAABE1JREFUeAHtWc1x4zYUfgAUH3JyOtBWsNoKrK0g2QqyPmaykswKJFdAS0omR7sDOxWYrmCZCsJ0wJlscnBEIN8zSQmgKJqSaEqT+JvxmAQp8P3jwwPRK17x/4aghjGfz/vGmB6mPsv+n2L4NHsc4y8SgiJj6DcpKRgMBgHtgUYU8P3r007ny0hruqCVsHVFYIWCJFGXnvdDRFtiLwVYcKX+HBsjLqgBCCFutlVkZwUQKmzxCW1t8efAHtGXw+HwptbbtANms5m/2eomFkLdJUnyQKRCosfI8zyOfXjMh7InXaKkJ6Xo491vsxxZF0yIq+Hwk0dNKpCGzJdbJGB//amJ4JFLCHeXC1xvztlHJPMYonRLHodaL95XzdehLSDlX/cQvueOmlhribgdXNEO8LynULmBIhfwChRxQrKnVOcW/99v+n1tD5SHDVs9YQtF1AAQYl0p1X3RG1XhJKkGIPzHkpgPmxSewXPxnDy3PY715AIylObcsx7w/V9glQRWMV1ryqhp4d1vlnoCobp4U8yHZz2gVDIuCB+/pPAMyxO2sCggX42L71Z6ILX+4nd7TGuB+T/tlLDbIkts3/3+4hvbC5UeSK1vw0RtCc9Ahbrib9pjUnacXKhUoFjv0zrfLoSQ08LQyL7ZqACzSjf2Kc5qdqtIkn9uqJALvs+ypXhSgGN9NvvJ53KZP4C1+/ZEqMV3dABk8f6rPaaUWC6mkvkJl0mutaj116wIPwDFfWv/KEn0Ax0IQpjAvjdG9/NrmZKrVaiwIr7/cw/KdN1pVEgHAih24dtyaVzpeT+GxUxXSvuF+CdmlfkV58d0Op9w6FErWH07hVnypaccQG0/dx6n1cehuRyLaa7M75EfWCVpjDXicxtKlLBRVwEwyYC3dRVzxEzmeFErlFasjrpPB8SyjCbJ4rzivdPyDYyJk+QxoBdGuhFysL4SZ9xmSjWBshq8NCdagQuNgyi/cDY04BkTLNXfU+U+l5moOAelCKglgNJwVbRGzB/5lbMSc7JobTbsQ5mF0iWs/o5zhlqFPHPvxbKsrlEJpgsQ9MPqJcPxNoXg4OKDyTb73aaAtek7+x7yBfl14525ppHtBq9XIyYajYZv8rtaW8pDwhjpUHqw08C+P2oFuHlWZARgpw6lP9oQynaDn8mqiNx6RHfCWa+26gu1hVUjwS7nJsJiu7ahOroQyoS/LYYOl/CyRfOoPFDewnkSfrppN3g0OVDR7Q5Ho8G7Tb9rxAPpqYwABdEPddvijOx8AXVeQvji/iPlW6g6H6rm2NsDJb2jON0/6welVPj4+DVaMedxLvDJyd9dtN57TA+yFbaUd6VhM3j24GRvBdZXyn2Rd7vr9Z/2rkKwZkBu22NnsNVTzlW/edbQIR83YzsTWO9sw0FFBdjiAvuQxdUuRLHxKsRNJ5y49MFZ3iLGu7Brd3WMxMxWco6E6RGUCNun5q94xX8L/wIn6jMaUr6EugAAAABJRU5ErkJggg==\"","export const operationUnit = token => ({\n  // FIXME: This use link but is a operation unit. Seems should be a colorPrimary.\n  // And Typography use this to generate link style which should not do this.\n  color: token.colorLink,\n  textDecoration: 'none',\n  outline: 'none',\n  cursor: 'pointer',\n  transition: `color ${token.motionDurationSlow}`,\n  '&:focus, &:hover': {\n    color: token.colorLinkHover\n  },\n  '&:active': {\n    color: token.colorLinkActive\n  }\n});","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nvar Indent = function Indent(_ref) {\n  var prefixCls = _ref.prefixCls,\n    level = _ref.level,\n    isStart = _ref.isStart,\n    isEnd = _ref.isEnd;\n  var baseClassName = \"\".concat(prefixCls, \"-indent-unit\");\n  var list = [];\n  for (var i = 0; i < level; i += 1) {\n    list.push( /*#__PURE__*/React.createElement(\"span\", {\n      key: i,\n      className: classNames(baseClassName, _defineProperty(_defineProperty({}, \"\".concat(baseClassName, \"-start\"), isStart[i]), \"\".concat(baseClassName, \"-end\"), isEnd[i]))\n    }));\n  }\n  return /*#__PURE__*/React.createElement(\"span\", {\n    \"aria-hidden\": \"true\",\n    className: \"\".concat(prefixCls, \"-indent\")\n  }, list);\n};\nexport default /*#__PURE__*/React.memo(Indent);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar _excluded = [\"eventKey\", \"className\", \"style\", \"dragOver\", \"dragOverGapTop\", \"dragOverGapBottom\", \"isLeaf\", \"isStart\", \"isEnd\", \"expanded\", \"selected\", \"checked\", \"halfChecked\", \"loading\", \"domRef\", \"active\", \"data\", \"onMouseMove\", \"selectable\"];\nimport classNames from 'classnames';\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport * as React from 'react';\n// @ts-ignore\nimport { TreeContext } from \"./contextTypes\";\nimport Indent from \"./Indent\";\nimport getEntity from \"./utils/keyUtil\";\nimport { convertNodePropsToEventData } from \"./utils/treeUtil\";\nvar ICON_OPEN = 'open';\nvar ICON_CLOSE = 'close';\nvar defaultTitle = '---';\nvar InternalTreeNode = /*#__PURE__*/function (_React$Component) {\n  _inherits(InternalTreeNode, _React$Component);\n  var _super = _createSuper(InternalTreeNode);\n  function InternalTreeNode() {\n    var _this;\n    _classCallCheck(this, InternalTreeNode);\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n    _this = _super.call.apply(_super, [this].concat(args));\n    _defineProperty(_assertThisInitialized(_this), \"state\", {\n      dragNodeHighlight: false\n    });\n    _defineProperty(_assertThisInitialized(_this), \"selectHandle\", void 0);\n    _defineProperty(_assertThisInitialized(_this), \"cacheIndent\", void 0);\n    _defineProperty(_assertThisInitialized(_this), \"onSelectorClick\", function (e) {\n      // Click trigger before select/check operation\n      var onNodeClick = _this.props.context.onNodeClick;\n      onNodeClick(e, convertNodePropsToEventData(_this.props));\n      if (_this.isSelectable()) {\n        _this.onSelect(e);\n      } else {\n        _this.onCheck(e);\n      }\n    });\n    _defineProperty(_assertThisInitialized(_this), \"onSelectorDoubleClick\", function (e) {\n      var onNodeDoubleClick = _this.props.context.onNodeDoubleClick;\n      onNodeDoubleClick(e, convertNodePropsToEventData(_this.props));\n    });\n    _defineProperty(_assertThisInitialized(_this), \"onSelect\", function (e) {\n      if (_this.isDisabled()) return;\n      var onNodeSelect = _this.props.context.onNodeSelect;\n      onNodeSelect(e, convertNodePropsToEventData(_this.props));\n    });\n    _defineProperty(_assertThisInitialized(_this), \"onCheck\", function (e) {\n      if (_this.isDisabled()) return;\n      var _this$props = _this.props,\n        disableCheckbox = _this$props.disableCheckbox,\n        checked = _this$props.checked;\n      var onNodeCheck = _this.props.context.onNodeCheck;\n      if (!_this.isCheckable() || disableCheckbox) return;\n      var targetChecked = !checked;\n      onNodeCheck(e, convertNodePropsToEventData(_this.props), targetChecked);\n    });\n    _defineProperty(_assertThisInitialized(_this), \"onMouseEnter\", function (e) {\n      var onNodeMouseEnter = _this.props.context.onNodeMouseEnter;\n      onNodeMouseEnter(e, convertNodePropsToEventData(_this.props));\n    });\n    _defineProperty(_assertThisInitialized(_this), \"onMouseLeave\", function (e) {\n      var onNodeMouseLeave = _this.props.context.onNodeMouseLeave;\n      onNodeMouseLeave(e, convertNodePropsToEventData(_this.props));\n    });\n    _defineProperty(_assertThisInitialized(_this), \"onContextMenu\", function (e) {\n      var onNodeContextMenu = _this.props.context.onNodeContextMenu;\n      onNodeContextMenu(e, convertNodePropsToEventData(_this.props));\n    });\n    _defineProperty(_assertThisInitialized(_this), \"onDragStart\", function (e) {\n      var onNodeDragStart = _this.props.context.onNodeDragStart;\n      e.stopPropagation();\n      _this.setState({\n        dragNodeHighlight: true\n      });\n      onNodeDragStart(e, _assertThisInitialized(_this));\n      try {\n        // ie throw error\n        // firefox-need-it\n        e.dataTransfer.setData('text/plain', '');\n      } catch (error) {\n        // empty\n      }\n    });\n    _defineProperty(_assertThisInitialized(_this), \"onDragEnter\", function (e) {\n      var onNodeDragEnter = _this.props.context.onNodeDragEnter;\n      e.preventDefault();\n      e.stopPropagation();\n      onNodeDragEnter(e, _assertThisInitialized(_this));\n    });\n    _defineProperty(_assertThisInitialized(_this), \"onDragOver\", function (e) {\n      var onNodeDragOver = _this.props.context.onNodeDragOver;\n      e.preventDefault();\n      e.stopPropagation();\n      onNodeDragOver(e, _assertThisInitialized(_this));\n    });\n    _defineProperty(_assertThisInitialized(_this), \"onDragLeave\", function (e) {\n      var onNodeDragLeave = _this.props.context.onNodeDragLeave;\n      e.stopPropagation();\n      onNodeDragLeave(e, _assertThisInitialized(_this));\n    });\n    _defineProperty(_assertThisInitialized(_this), \"onDragEnd\", function (e) {\n      var onNodeDragEnd = _this.props.context.onNodeDragEnd;\n      e.stopPropagation();\n      _this.setState({\n        dragNodeHighlight: false\n      });\n      onNodeDragEnd(e, _assertThisInitialized(_this));\n    });\n    _defineProperty(_assertThisInitialized(_this), \"onDrop\", function (e) {\n      var onNodeDrop = _this.props.context.onNodeDrop;\n      e.preventDefault();\n      e.stopPropagation();\n      _this.setState({\n        dragNodeHighlight: false\n      });\n      onNodeDrop(e, _assertThisInitialized(_this));\n    });\n    // Disabled item still can be switch\n    _defineProperty(_assertThisInitialized(_this), \"onExpand\", function (e) {\n      var _this$props2 = _this.props,\n        loading = _this$props2.loading,\n        onNodeExpand = _this$props2.context.onNodeExpand;\n      if (loading) return;\n      onNodeExpand(e, convertNodePropsToEventData(_this.props));\n    });\n    // Drag usage\n    _defineProperty(_assertThisInitialized(_this), \"setSelectHandle\", function (node) {\n      _this.selectHandle = node;\n    });\n    _defineProperty(_assertThisInitialized(_this), \"getNodeState\", function () {\n      var expanded = _this.props.expanded;\n      if (_this.isLeaf()) {\n        return null;\n      }\n      return expanded ? ICON_OPEN : ICON_CLOSE;\n    });\n    _defineProperty(_assertThisInitialized(_this), \"hasChildren\", function () {\n      var eventKey = _this.props.eventKey;\n      var keyEntities = _this.props.context.keyEntities;\n      var _ref = getEntity(keyEntities, eventKey) || {},\n        children = _ref.children;\n      return !!(children || []).length;\n    });\n    _defineProperty(_assertThisInitialized(_this), \"isLeaf\", function () {\n      var _this$props3 = _this.props,\n        isLeaf = _this$props3.isLeaf,\n        loaded = _this$props3.loaded;\n      var loadData = _this.props.context.loadData;\n      var hasChildren = _this.hasChildren();\n      if (isLeaf === false) {\n        return false;\n      }\n      return isLeaf || !loadData && !hasChildren || loadData && loaded && !hasChildren;\n    });\n    _defineProperty(_assertThisInitialized(_this), \"isDisabled\", function () {\n      var disabled = _this.props.disabled;\n      var treeDisabled = _this.props.context.disabled;\n      return !!(treeDisabled || disabled);\n    });\n    _defineProperty(_assertThisInitialized(_this), \"isCheckable\", function () {\n      var checkable = _this.props.checkable;\n      var treeCheckable = _this.props.context.checkable;\n\n      // Return false if tree or treeNode is not checkable\n      if (!treeCheckable || checkable === false) return false;\n      return treeCheckable;\n    });\n    // Load data to avoid default expanded tree without data\n    _defineProperty(_assertThisInitialized(_this), \"syncLoadData\", function (props) {\n      var expanded = props.expanded,\n        loading = props.loading,\n        loaded = props.loaded;\n      var _this$props$context = _this.props.context,\n        loadData = _this$props$context.loadData,\n        onNodeLoad = _this$props$context.onNodeLoad;\n      if (loading) {\n        return;\n      }\n\n      // read from state to avoid loadData at same time\n      if (loadData && expanded && !_this.isLeaf() && !loaded) {\n        // We needn't reload data when has children in sync logic\n        // It's only needed in node expanded\n        onNodeLoad(convertNodePropsToEventData(_this.props));\n      }\n    });\n    _defineProperty(_assertThisInitialized(_this), \"isDraggable\", function () {\n      var _this$props4 = _this.props,\n        data = _this$props4.data,\n        draggable = _this$props4.context.draggable;\n      return !!(draggable && (!draggable.nodeDraggable || draggable.nodeDraggable(data)));\n    });\n    // ==================== Render: Drag Handler ====================\n    _defineProperty(_assertThisInitialized(_this), \"renderDragHandler\", function () {\n      var _this$props$context2 = _this.props.context,\n        draggable = _this$props$context2.draggable,\n        prefixCls = _this$props$context2.prefixCls;\n      return draggable !== null && draggable !== void 0 && draggable.icon ? /*#__PURE__*/React.createElement(\"span\", {\n        className: \"\".concat(prefixCls, \"-draggable-icon\")\n      }, draggable.icon) : null;\n    });\n    // ====================== Render: Switcher ======================\n    _defineProperty(_assertThisInitialized(_this), \"renderSwitcherIconDom\", function (isLeaf) {\n      var switcherIconFromProps = _this.props.switcherIcon;\n      var switcherIconFromCtx = _this.props.context.switcherIcon;\n      var switcherIcon = switcherIconFromProps || switcherIconFromCtx;\n      // if switcherIconDom is null, no render switcher span\n      if (typeof switcherIcon === 'function') {\n        return switcherIcon(_objectSpread(_objectSpread({}, _this.props), {}, {\n          isLeaf: isLeaf\n        }));\n      }\n      return switcherIcon;\n    });\n    // Switcher\n    _defineProperty(_assertThisInitialized(_this), \"renderSwitcher\", function () {\n      var expanded = _this.props.expanded;\n      var prefixCls = _this.props.context.prefixCls;\n      if (_this.isLeaf()) {\n        // if switcherIconDom is null, no render switcher span\n        var _switcherIconDom = _this.renderSwitcherIconDom(true);\n        return _switcherIconDom !== false ? /*#__PURE__*/React.createElement(\"span\", {\n          className: classNames(\"\".concat(prefixCls, \"-switcher\"), \"\".concat(prefixCls, \"-switcher-noop\"))\n        }, _switcherIconDom) : null;\n      }\n      var switcherCls = classNames(\"\".concat(prefixCls, \"-switcher\"), \"\".concat(prefixCls, \"-switcher_\").concat(expanded ? ICON_OPEN : ICON_CLOSE));\n      var switcherIconDom = _this.renderSwitcherIconDom(false);\n      return switcherIconDom !== false ? /*#__PURE__*/React.createElement(\"span\", {\n        onClick: _this.onExpand,\n        className: switcherCls\n      }, switcherIconDom) : null;\n    });\n    // ====================== Render: Checkbox ======================\n    // Checkbox\n    _defineProperty(_assertThisInitialized(_this), \"renderCheckbox\", function () {\n      var _this$props5 = _this.props,\n        checked = _this$props5.checked,\n        halfChecked = _this$props5.halfChecked,\n        disableCheckbox = _this$props5.disableCheckbox;\n      var prefixCls = _this.props.context.prefixCls;\n      var disabled = _this.isDisabled();\n      var checkable = _this.isCheckable();\n      if (!checkable) return null;\n\n      // [Legacy] Custom element should be separate with `checkable` in future\n      var $custom = typeof checkable !== 'boolean' ? checkable : null;\n      return /*#__PURE__*/React.createElement(\"span\", {\n        className: classNames(\"\".concat(prefixCls, \"-checkbox\"), checked && \"\".concat(prefixCls, \"-checkbox-checked\"), !checked && halfChecked && \"\".concat(prefixCls, \"-checkbox-indeterminate\"), (disabled || disableCheckbox) && \"\".concat(prefixCls, \"-checkbox-disabled\")),\n        onClick: _this.onCheck\n      }, $custom);\n    });\n    // ==================== Render: Title + Icon ====================\n    _defineProperty(_assertThisInitialized(_this), \"renderIcon\", function () {\n      var loading = _this.props.loading;\n      var prefixCls = _this.props.context.prefixCls;\n      return /*#__PURE__*/React.createElement(\"span\", {\n        className: classNames(\"\".concat(prefixCls, \"-iconEle\"), \"\".concat(prefixCls, \"-icon__\").concat(_this.getNodeState() || 'docu'), loading && \"\".concat(prefixCls, \"-icon_loading\"))\n      });\n    });\n    // Icon + Title\n    _defineProperty(_assertThisInitialized(_this), \"renderSelector\", function () {\n      var dragNodeHighlight = _this.state.dragNodeHighlight;\n      var _this$props6 = _this.props,\n        _this$props6$title = _this$props6.title,\n        title = _this$props6$title === void 0 ? defaultTitle : _this$props6$title,\n        selected = _this$props6.selected,\n        icon = _this$props6.icon,\n        loading = _this$props6.loading,\n        data = _this$props6.data;\n      var _this$props$context3 = _this.props.context,\n        prefixCls = _this$props$context3.prefixCls,\n        showIcon = _this$props$context3.showIcon,\n        treeIcon = _this$props$context3.icon,\n        loadData = _this$props$context3.loadData,\n        titleRender = _this$props$context3.titleRender;\n      var disabled = _this.isDisabled();\n      var wrapClass = \"\".concat(prefixCls, \"-node-content-wrapper\");\n\n      // Icon - Still show loading icon when loading without showIcon\n      var $icon;\n      if (showIcon) {\n        var currentIcon = icon || treeIcon;\n        $icon = currentIcon ? /*#__PURE__*/React.createElement(\"span\", {\n          className: classNames(\"\".concat(prefixCls, \"-iconEle\"), \"\".concat(prefixCls, \"-icon__customize\"))\n        }, typeof currentIcon === 'function' ? currentIcon(_this.props) : currentIcon) : _this.renderIcon();\n      } else if (loadData && loading) {\n        $icon = _this.renderIcon();\n      }\n\n      // Title\n      var titleNode;\n      if (typeof title === 'function') {\n        titleNode = title(data);\n      } else if (titleRender) {\n        titleNode = titleRender(data);\n      } else {\n        titleNode = title;\n      }\n      var $title = /*#__PURE__*/React.createElement(\"span\", {\n        className: \"\".concat(prefixCls, \"-title\")\n      }, titleNode);\n      return /*#__PURE__*/React.createElement(\"span\", {\n        ref: _this.setSelectHandle,\n        title: typeof title === 'string' ? title : '',\n        className: classNames(\"\".concat(wrapClass), \"\".concat(wrapClass, \"-\").concat(_this.getNodeState() || 'normal'), !disabled && (selected || dragNodeHighlight) && \"\".concat(prefixCls, \"-node-selected\")),\n        onMouseEnter: _this.onMouseEnter,\n        onMouseLeave: _this.onMouseLeave,\n        onContextMenu: _this.onContextMenu,\n        onClick: _this.onSelectorClick,\n        onDoubleClick: _this.onSelectorDoubleClick\n      }, $icon, $title, _this.renderDropIndicator());\n    });\n    // =================== Render: Drop Indicator ===================\n    _defineProperty(_assertThisInitialized(_this), \"renderDropIndicator\", function () {\n      var _this$props7 = _this.props,\n        disabled = _this$props7.disabled,\n        eventKey = _this$props7.eventKey;\n      var _this$props$context4 = _this.props.context,\n        draggable = _this$props$context4.draggable,\n        dropLevelOffset = _this$props$context4.dropLevelOffset,\n        dropPosition = _this$props$context4.dropPosition,\n        prefixCls = _this$props$context4.prefixCls,\n        indent = _this$props$context4.indent,\n        dropIndicatorRender = _this$props$context4.dropIndicatorRender,\n        dragOverNodeKey = _this$props$context4.dragOverNodeKey,\n        direction = _this$props$context4.direction;\n      var rootDraggable = !!draggable;\n      // allowDrop is calculated in Tree.tsx, there is no need for calc it here\n      var showIndicator = !disabled && rootDraggable && dragOverNodeKey === eventKey;\n\n      // This is a hot fix which is already fixed in\n      // https://github.com/react-component/tree/pull/743/files\n      // But some case need break point so we hack on this\n      // ref https://github.com/ant-design/ant-design/issues/43493\n      var mergedIndent = indent !== null && indent !== void 0 ? indent : _this.cacheIndent;\n      _this.cacheIndent = indent;\n      return showIndicator ? dropIndicatorRender({\n        dropPosition: dropPosition,\n        dropLevelOffset: dropLevelOffset,\n        indent: mergedIndent,\n        prefixCls: prefixCls,\n        direction: direction\n      }) : null;\n    });\n    return _this;\n  }\n  _createClass(InternalTreeNode, [{\n    key: \"componentDidMount\",\n    value:\n    // Isomorphic needn't load data in server side\n    function componentDidMount() {\n      this.syncLoadData(this.props);\n    }\n  }, {\n    key: \"componentDidUpdate\",\n    value: function componentDidUpdate() {\n      this.syncLoadData(this.props);\n    }\n  }, {\n    key: \"isSelectable\",\n    value: function isSelectable() {\n      var selectable = this.props.selectable;\n      var treeSelectable = this.props.context.selectable;\n\n      // Ignore when selectable is undefined or null\n      if (typeof selectable === 'boolean') {\n        return selectable;\n      }\n      return treeSelectable;\n    }\n  }, {\n    key: \"render\",\n    value:\n    // =========================== Render ===========================\n    function render() {\n      var _classNames;\n      var _this$props8 = this.props,\n        eventKey = _this$props8.eventKey,\n        className = _this$props8.className,\n        style = _this$props8.style,\n        dragOver = _this$props8.dragOver,\n        dragOverGapTop = _this$props8.dragOverGapTop,\n        dragOverGapBottom = _this$props8.dragOverGapBottom,\n        isLeaf = _this$props8.isLeaf,\n        isStart = _this$props8.isStart,\n        isEnd = _this$props8.isEnd,\n        expanded = _this$props8.expanded,\n        selected = _this$props8.selected,\n        checked = _this$props8.checked,\n        halfChecked = _this$props8.halfChecked,\n        loading = _this$props8.loading,\n        domRef = _this$props8.domRef,\n        active = _this$props8.active,\n        data = _this$props8.data,\n        onMouseMove = _this$props8.onMouseMove,\n        selectable = _this$props8.selectable,\n        otherProps = _objectWithoutProperties(_this$props8, _excluded);\n      var _this$props$context5 = this.props.context,\n        prefixCls = _this$props$context5.prefixCls,\n        filterTreeNode = _this$props$context5.filterTreeNode,\n        keyEntities = _this$props$context5.keyEntities,\n        dropContainerKey = _this$props$context5.dropContainerKey,\n        dropTargetKey = _this$props$context5.dropTargetKey,\n        draggingNodeKey = _this$props$context5.draggingNodeKey;\n      var disabled = this.isDisabled();\n      var dataOrAriaAttributeProps = pickAttrs(otherProps, {\n        aria: true,\n        data: true\n      });\n      var _ref2 = getEntity(keyEntities, eventKey) || {},\n        level = _ref2.level;\n      var isEndNode = isEnd[isEnd.length - 1];\n      var mergedDraggable = this.isDraggable();\n      var draggableWithoutDisabled = !disabled && mergedDraggable;\n      var dragging = draggingNodeKey === eventKey;\n      var ariaSelected = selectable !== undefined ? {\n        'aria-selected': !!selectable\n      } : undefined;\n      return /*#__PURE__*/React.createElement(\"div\", _extends({\n        ref: domRef,\n        className: classNames(className, \"\".concat(prefixCls, \"-treenode\"), (_classNames = {}, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_classNames, \"\".concat(prefixCls, \"-treenode-disabled\"), disabled), \"\".concat(prefixCls, \"-treenode-switcher-\").concat(expanded ? 'open' : 'close'), !isLeaf), \"\".concat(prefixCls, \"-treenode-checkbox-checked\"), checked), \"\".concat(prefixCls, \"-treenode-checkbox-indeterminate\"), halfChecked), \"\".concat(prefixCls, \"-treenode-selected\"), selected), \"\".concat(prefixCls, \"-treenode-loading\"), loading), \"\".concat(prefixCls, \"-treenode-active\"), active), \"\".concat(prefixCls, \"-treenode-leaf-last\"), isEndNode), \"\".concat(prefixCls, \"-treenode-draggable\"), mergedDraggable), \"dragging\", dragging), _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_classNames, 'drop-target', dropTargetKey === eventKey), 'drop-container', dropContainerKey === eventKey), 'drag-over', !disabled && dragOver), 'drag-over-gap-top', !disabled && dragOverGapTop), 'drag-over-gap-bottom', !disabled && dragOverGapBottom), 'filter-node', filterTreeNode && filterTreeNode(convertNodePropsToEventData(this.props))))),\n        style: style\n        // Draggable config\n        ,\n        draggable: draggableWithoutDisabled,\n        \"aria-grabbed\": dragging,\n        onDragStart: draggableWithoutDisabled ? this.onDragStart : undefined\n        // Drop config\n        ,\n        onDragEnter: mergedDraggable ? this.onDragEnter : undefined,\n        onDragOver: mergedDraggable ? this.onDragOver : undefined,\n        onDragLeave: mergedDraggable ? this.onDragLeave : undefined,\n        onDrop: mergedDraggable ? this.onDrop : undefined,\n        onDragEnd: mergedDraggable ? this.onDragEnd : undefined,\n        onMouseMove: onMouseMove\n      }, ariaSelected, dataOrAriaAttributeProps), /*#__PURE__*/React.createElement(Indent, {\n        prefixCls: prefixCls,\n        level: level,\n        isStart: isStart,\n        isEnd: isEnd\n      }), this.renderDragHandler(), this.renderSwitcher(), this.renderCheckbox(), this.renderSelector());\n    }\n  }]);\n  return InternalTreeNode;\n}(React.Component);\nvar ContextTreeNode = function ContextTreeNode(props) {\n  return /*#__PURE__*/React.createElement(TreeContext.Consumer, null, function (context) {\n    return /*#__PURE__*/React.createElement(InternalTreeNode, _extends({}, props, {\n      context: context\n    }));\n  });\n};\nContextTreeNode.displayName = 'TreeNode';\nContextTreeNode.isTreeNode = 1;\nexport default ContextTreeNode;","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport warning from \"./warning\";\n\n/**\n * Deeply compares two object literals.\n * @param obj1 object 1\n * @param obj2 object 2\n * @param shallow shallow compare\n * @returns\n */\nfunction isEqual(obj1, obj2) {\n  var shallow = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n  // https://github.com/mapbox/mapbox-gl-js/pull/5979/files#diff-fde7145050c47cc3a306856efd5f9c3016e86e859de9afbd02c879be5067e58f\n  var refSet = new Set();\n  function deepEqual(a, b) {\n    var level = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n    var circular = refSet.has(a);\n    warning(!circular, 'Warning: There may be circular references');\n    if (circular) {\n      return false;\n    }\n    if (a === b) {\n      return true;\n    }\n    if (shallow && level > 1) {\n      return false;\n    }\n    refSet.add(a);\n    var newLevel = level + 1;\n    if (Array.isArray(a)) {\n      if (!Array.isArray(b) || a.length !== b.length) {\n        return false;\n      }\n      for (var i = 0; i < a.length; i++) {\n        if (!deepEqual(a[i], b[i], newLevel)) {\n          return false;\n        }\n      }\n      return true;\n    }\n    if (a && b && _typeof(a) === 'object' && _typeof(b) === 'object') {\n      var keys = Object.keys(a);\n      if (keys.length !== Object.keys(b).length) {\n        return false;\n      }\n      return keys.every(function (key) {\n        return deepEqual(a[key], b[key], newLevel);\n      });\n    }\n    // other\n    return false;\n  }\n  return deepEqual(obj1, obj2);\n}\nexport default isEqual;","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAACXBIWXMAACxLAAAsSwGlPZapAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAFsSURBVHgB7dg9TsNAEAXgMTTIle0TwA1SchtCR0lJBzcATkC4AdwgJ7Lp7M7Mi4KEIP5b78w275MsW3K0u+8p6ygWISIiIiIiIiIiIiIionFVVT2WZdng0OtncRZr/nMJgAn7vn/Qy4vjcZ3n+WXbtp/iQOd/0/nv/8yf6fx7WSiTAGhdT8W/wbJsV9f1rRg6ht+euPXVNE0pC51JRFgYFihGRsIHCypAF/E6cs+khKnw+u17lwBBz4Cu6/a65670cjPwkU3MZ8Kc8Lr17iRAUAGg4T48SpgZfiuBggsA6xKsw8OqAsCqBI/wsLoAiF2CV3iIUgDEKsEzPEQrANaW4B0eohYAoSWkCA/RC4ClJaQKfxhbDGmwnQa7GbqP/w44pwp/GF+MTZUwxjo8mGyB32Zsh5M8woN5AbC0BK/w4FIAzC3BMzy4FQBTJXiHB9cCYKiEFOGT0l+Hl5+XmkVRPAkREREREREREfn4BjvzCZXLmJg2AAAAAElFTkSuQmCC\"","import { useRef, useEffect } from 'react';\n\n/**\n * Track whether a component is current mounted. Generally less preferable than\n * properlly canceling effects so they don't run after a component is unmounted,\n * but helpful in cases where that isn't feasible, such as a `Promise` resolution.\n *\n * @returns a function that returns the current isMounted state of the component\n *\n * ```ts\n * const [data, setData] = useState(null)\n * const isMounted = useMounted()\n *\n * useEffect(() => {\n *   fetchdata().then((newData) => {\n *      if (isMounted()) {\n *        setData(newData);\n *      }\n *   })\n * })\n * ```\n */\nexport default function useMounted() {\n  const mounted = useRef(true);\n  const isMounted = useRef(() => mounted.current);\n  useEffect(() => {\n    mounted.current = true;\n    return () => {\n      mounted.current = false;\n    };\n  }, []);\n  return isMounted.current;\n}","import { useEffect, useRef } from 'react';\n\n/**\n * Creates a `Ref` whose value is updated in an effect, ensuring the most recent\n * value is the one rendered with. Generally only required for Concurrent mode usage\n * where previous work in `render()` may be discarded before being used.\n *\n * This is safe to access in an event handler.\n *\n * @param value The `Ref` value\n */\nfunction useCommittedRef(value) {\n  const ref = useRef(value);\n  useEffect(() => {\n    ref.current = value;\n  }, [value]);\n  return ref;\n}\nexport default useCommittedRef;","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAYAAADimHc4AAAACXBIWXMAACxLAAAsSwGlPZapAAABaWlDQ1BEaXNwbGF5IFAzAAB4nHWQvUvDUBTFT6tS0DqIDh0cMolD1NIKdnFoKxRFMFQFq1OafgltfCQpUnETVyn4H1jBWXCwiFRwcXAQRAcR3Zw6KbhoeN6XVNoi3sfl/Ticc7lcwBtQGSv2AijplpFMxKS11Lrke4OHnlOqZrKooiwK/v276/PR9d5PiFlNu3YQ2U9cl84ul3aeAlN//V3Vn8maGv3f1EGNGRbgkYmVbYsJ3iUeMWgp4qrgvMvHgtMunzuelWSc+JZY0gpqhrhJLKc79HwHl4plrbWD2N6f1VeXxRzqUcxhEyYYilBRgQQF4X/8044/ji1yV2BQLo8CLMpESRETssTz0KFhEjJxCEHqkLhz634PrfvJbW3vFZhtcM4v2tpCAzidoZPV29p4BBgaAG7qTDVUR+qh9uZywPsJMJgChu8os2HmwiF3e38M6Hvh/GMM8B0CdpXzryPO7RqFn4Er/QcXKWq8MSlPPgAAA8hJREFUeAHtnY1R3DAQhfcyKQA6uFQQqICjhHRwVACpgEsFQAUkFYRUAB1AKjg6gA42u5Eyd8fgW8m2JEd634zGzJiz7PesX+uHCAAAQKvMKBHMvJDDkYQTfzzwoUbuJHydzWbPFMmoBojoKvC5hAuqV+wuXiUcx5owigFe+EtywrfMgxhwGvODwQaI+PrGr6i9N/49XsWAw5gfDDJAxL8ivPU7iAFRmn6kHvgs56eEBYFtflEkvVKAGPBIrmYDNvQqhD9QJD7bgfgbVPgH6iF+NCL+kuN4kbDSNoGEOYH+qIAS1oHCr31DDIyFCHobKP41u0IajIV/+0NYERifwLf/mkAa2M7718h2EsGuBmOxJJAGdtXIvW8/gd6ENMROjPPRzW+wIcQAK2+/I5AOdq3ZfaDwHYDZGacK771AZPcr2CW6Mw6MCwwoDAwoDAwoDAwwkDrIOW+6YvR4STkxqqBMFaNidzz2Y7bqd6sGsN0FP4oJyIK6OQo4fz/UBBjQTYiwo5iwl4azoAMOJ12ZYMVMFcN2V3x6E6xYqXKKm2DFSA1Q1AQrNmqEYiZYMVFDFDHBioUaI7sJVgzUIFlNsK5OjZLNBOvK1DBZTLCuSo0z1ITJf5RnNwlQ56HNqQ52ZlJOujOO3ccPHfQ7p3pY8NYo8smmAHYzamod9qjTmj6JdK9TTgE1z0PTcmCuf0zZgNpH3P19vilnQXqDL1Qvh5POgvTm5PCN6uTGP99/UQ1dkluBpZYy4UkkOw7+b6tlQY3D3UNXghpiIRHAgA6Si+8jgQHvkEV8HxEMeEM28X1kMGCLrOL7CGGAJ7v4PlIYQIXE9xE3b0Ax8X3kTRtQVHx/A80aUFx8fxNNGsDhS/QMEh/D07sJ7Xt6knD6r3MtFhjQTcgbPUj8IKy0R5XC9vyAPPPEWjVA4e4hJ/dZxPc30awBCrulOh/946555HXxsFhHYVAIFwYGFAYGFAYGFCbEgL2NDMai3IMYbADVNXA2OyEGPBnnFwR6E2LAb+P8OYHehBjwYJzXPpMFgXSwvXboOlvfSGWEVkNvjPNzchu5gRRw+NItMCEV7LYmCeEK2VECfCqwyoLtMmFJYFxE1AuOY+1TxAKp4n2i+/LZ7RWDuv8ud5RzP2Ex4Z7QAn5Lnq0MPV/I7qJoDc1ibymSXgboMAw/z8lqH7RG9Dy2Qd8DxARdw+FMwjMBJbqiMfiDjJjwXQ66+MQPAnn2E+6C3ceZFbmdl+bUFr0K4WRDStj1kGr4TM4MDTW2BVR4rZCcJd9PGAAAQFX8AQg2aMyy0eAlAAAAAElFTkSuQmCC\"","// Thanks to https://github.com/andreypopp/react-textarea-autosize/\n\n/**\n * calculateNodeHeight(uiTextNode, useCache = false)\n */\n\nvar HIDDEN_TEXTAREA_STYLE = \"\\n  min-height:0 !important;\\n  max-height:none !important;\\n  height:0 !important;\\n  visibility:hidden !important;\\n  overflow:hidden !important;\\n  position:absolute !important;\\n  z-index:-1000 !important;\\n  top:0 !important;\\n  right:0 !important;\\n  pointer-events: none !important;\\n\";\nvar SIZING_STYLE = ['letter-spacing', 'line-height', 'padding-top', 'padding-bottom', 'font-family', 'font-weight', 'font-size', 'font-variant', 'text-rendering', 'text-transform', 'width', 'text-indent', 'padding-left', 'padding-right', 'border-width', 'box-sizing', 'word-break', 'white-space'];\nvar computedStyleCache = {};\nvar hiddenTextarea;\nexport function calculateNodeStyling(node) {\n  var useCache = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n  var nodeRef = node.getAttribute('id') || node.getAttribute('data-reactid') || node.getAttribute('name');\n  if (useCache && computedStyleCache[nodeRef]) {\n    return computedStyleCache[nodeRef];\n  }\n  var style = window.getComputedStyle(node);\n  var boxSizing = style.getPropertyValue('box-sizing') || style.getPropertyValue('-moz-box-sizing') || style.getPropertyValue('-webkit-box-sizing');\n  var paddingSize = parseFloat(style.getPropertyValue('padding-bottom')) + parseFloat(style.getPropertyValue('padding-top'));\n  var borderSize = parseFloat(style.getPropertyValue('border-bottom-width')) + parseFloat(style.getPropertyValue('border-top-width'));\n  var sizingStyle = SIZING_STYLE.map(function (name) {\n    return \"\".concat(name, \":\").concat(style.getPropertyValue(name));\n  }).join(';');\n  var nodeInfo = {\n    sizingStyle: sizingStyle,\n    paddingSize: paddingSize,\n    borderSize: borderSize,\n    boxSizing: boxSizing\n  };\n  if (useCache && nodeRef) {\n    computedStyleCache[nodeRef] = nodeInfo;\n  }\n  return nodeInfo;\n}\nexport default function calculateAutoSizeStyle(uiTextNode) {\n  var useCache = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n  var minRows = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n  var maxRows = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n  if (!hiddenTextarea) {\n    hiddenTextarea = document.createElement('textarea');\n    hiddenTextarea.setAttribute('tab-index', '-1');\n    hiddenTextarea.setAttribute('aria-hidden', 'true');\n    // fix: A form field element should have an id or name attribute\n    // A form field element has neither an id nor a name attribute. This might prevent the browser from correctly autofilling the form.\n    // https://developer.mozilla.org/en-US/docs/Web/HTML/Element/textarea\n    hiddenTextarea.setAttribute('name', 'hiddenTextarea');\n    document.body.appendChild(hiddenTextarea);\n  }\n\n  // Fix wrap=\"off\" issue\n  // https://github.com/ant-design/ant-design/issues/6577\n  if (uiTextNode.getAttribute('wrap')) {\n    hiddenTextarea.setAttribute('wrap', uiTextNode.getAttribute('wrap'));\n  } else {\n    hiddenTextarea.removeAttribute('wrap');\n  }\n\n  // Copy all CSS properties that have an impact on the height of the content in\n  // the textbox\n  var _calculateNodeStyling = calculateNodeStyling(uiTextNode, useCache),\n    paddingSize = _calculateNodeStyling.paddingSize,\n    borderSize = _calculateNodeStyling.borderSize,\n    boxSizing = _calculateNodeStyling.boxSizing,\n    sizingStyle = _calculateNodeStyling.sizingStyle;\n\n  // Need to have the overflow attribute to hide the scrollbar otherwise\n  // text-lines will not calculated properly as the shadow will technically be\n  // narrower for content\n  hiddenTextarea.setAttribute('style', \"\".concat(sizingStyle, \";\").concat(HIDDEN_TEXTAREA_STYLE));\n  hiddenTextarea.value = uiTextNode.value || uiTextNode.placeholder || '';\n  var minHeight = undefined;\n  var maxHeight = undefined;\n  var overflowY;\n  var height = hiddenTextarea.scrollHeight;\n  if (boxSizing === 'border-box') {\n    // border-box: add border, since height = content + padding + border\n    height += borderSize;\n  } else if (boxSizing === 'content-box') {\n    // remove padding, since height = content\n    height -= paddingSize;\n  }\n  if (minRows !== null || maxRows !== null) {\n    // measure height of a textarea with a single row\n    hiddenTextarea.value = ' ';\n    var singleRowHeight = hiddenTextarea.scrollHeight - paddingSize;\n    if (minRows !== null) {\n      minHeight = singleRowHeight * minRows;\n      if (boxSizing === 'border-box') {\n        minHeight = minHeight + paddingSize + borderSize;\n      }\n      height = Math.max(minHeight, height);\n    }\n    if (maxRows !== null) {\n      maxHeight = singleRowHeight * maxRows;\n      if (boxSizing === 'border-box') {\n        maxHeight = maxHeight + paddingSize + borderSize;\n      }\n      overflowY = height > maxHeight ? '' : 'hidden';\n      height = Math.min(maxHeight, height);\n    }\n  }\n  var style = {\n    height: height,\n    overflowY: overflowY,\n    resize: 'none'\n  };\n  if (minHeight) {\n    style.minHeight = minHeight;\n  }\n  if (maxHeight) {\n    style.maxHeight = maxHeight;\n  }\n  return style;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"defaultValue\", \"value\", \"autoSize\", \"onResize\", \"className\", \"style\", \"disabled\", \"onChange\", \"onInternalAutoSize\"];\nimport classNames from 'classnames';\nimport ResizeObserver from 'rc-resize-observer';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport raf from \"rc-util/es/raf\";\nimport * as React from 'react';\nimport calculateAutoSizeStyle from \"./calculateNodeHeight\";\nvar RESIZE_START = 0;\nvar RESIZE_MEASURING = 1;\nvar RESIZE_STABLE = 2;\nvar ResizableTextArea = /*#__PURE__*/React.forwardRef(function (props, ref) {\n  var _ref = props,\n    prefixCls = _ref.prefixCls,\n    defaultValue = _ref.defaultValue,\n    value = _ref.value,\n    autoSize = _ref.autoSize,\n    onResize = _ref.onResize,\n    className = _ref.className,\n    style = _ref.style,\n    disabled = _ref.disabled,\n    onChange = _ref.onChange,\n    onInternalAutoSize = _ref.onInternalAutoSize,\n    restProps = _objectWithoutProperties(_ref, _excluded);\n\n  // =============================== Value ================================\n  var _useMergedState = useMergedState(defaultValue, {\n      value: value,\n      postState: function postState(val) {\n        return val !== null && val !== void 0 ? val : '';\n      }\n    }),\n    _useMergedState2 = _slicedToArray(_useMergedState, 2),\n    mergedValue = _useMergedState2[0],\n    setMergedValue = _useMergedState2[1];\n  var onInternalChange = function onInternalChange(event) {\n    setMergedValue(event.target.value);\n    onChange === null || onChange === void 0 || onChange(event);\n  };\n\n  // ================================ Ref =================================\n  var textareaRef = React.useRef();\n  React.useImperativeHandle(ref, function () {\n    return {\n      textArea: textareaRef.current\n    };\n  });\n\n  // ============================== AutoSize ==============================\n  var _React$useMemo = React.useMemo(function () {\n      if (autoSize && _typeof(autoSize) === 'object') {\n        return [autoSize.minRows, autoSize.maxRows];\n      }\n      return [];\n    }, [autoSize]),\n    _React$useMemo2 = _slicedToArray(_React$useMemo, 2),\n    minRows = _React$useMemo2[0],\n    maxRows = _React$useMemo2[1];\n  var needAutoSize = !!autoSize;\n\n  // =============================== Scroll ===============================\n  // https://github.com/ant-design/ant-design/issues/21870\n  var fixFirefoxAutoScroll = function fixFirefoxAutoScroll() {\n    try {\n      // FF has bug with jump of scroll to top. We force back here.\n      if (document.activeElement === textareaRef.current) {\n        var _textareaRef$current = textareaRef.current,\n          selectionStart = _textareaRef$current.selectionStart,\n          selectionEnd = _textareaRef$current.selectionEnd,\n          scrollTop = _textareaRef$current.scrollTop;\n\n        // Fix Safari bug which not rollback when break line\n        // This makes Chinese IME can't input. Do not fix this\n        // const { value: tmpValue } = textareaRef.current;\n        // textareaRef.current.value = '';\n        // textareaRef.current.value = tmpValue;\n\n        textareaRef.current.setSelectionRange(selectionStart, selectionEnd);\n        textareaRef.current.scrollTop = scrollTop;\n      }\n    } catch (e) {\n      // Fix error in Chrome:\n      // Failed to read the 'selectionStart' property from 'HTMLInputElement'\n      // http://stackoverflow.com/q/21177489/3040605\n    }\n  };\n\n  // =============================== Resize ===============================\n  var _React$useState = React.useState(RESIZE_STABLE),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    resizeState = _React$useState2[0],\n    setResizeState = _React$useState2[1];\n  var _React$useState3 = React.useState(),\n    _React$useState4 = _slicedToArray(_React$useState3, 2),\n    autoSizeStyle = _React$useState4[0],\n    setAutoSizeStyle = _React$useState4[1];\n  var startResize = function startResize() {\n    setResizeState(RESIZE_START);\n    if (process.env.NODE_ENV === 'test') {\n      onInternalAutoSize === null || onInternalAutoSize === void 0 || onInternalAutoSize();\n    }\n  };\n\n  // Change to trigger resize measure\n  useLayoutEffect(function () {\n    if (needAutoSize) {\n      startResize();\n    }\n  }, [value, minRows, maxRows, needAutoSize]);\n  useLayoutEffect(function () {\n    if (resizeState === RESIZE_START) {\n      setResizeState(RESIZE_MEASURING);\n    } else if (resizeState === RESIZE_MEASURING) {\n      var textareaStyles = calculateAutoSizeStyle(textareaRef.current, false, minRows, maxRows);\n\n      // Safari has bug that text will keep break line on text cut when it's prev is break line.\n      // ZombieJ: This not often happen. So we just skip it.\n      // const { selectionStart, selectionEnd, scrollTop } = textareaRef.current;\n      // const { value: tmpValue } = textareaRef.current;\n      // textareaRef.current.value = '';\n      // textareaRef.current.value = tmpValue;\n\n      // if (document.activeElement === textareaRef.current) {\n      //   textareaRef.current.scrollTop = scrollTop;\n      //   textareaRef.current.setSelectionRange(selectionStart, selectionEnd);\n      // }\n\n      setResizeState(RESIZE_STABLE);\n      setAutoSizeStyle(textareaStyles);\n    } else {\n      fixFirefoxAutoScroll();\n    }\n  }, [resizeState]);\n\n  // We lock resize trigger by raf to avoid Safari warning\n  var resizeRafRef = React.useRef();\n  var cleanRaf = function cleanRaf() {\n    raf.cancel(resizeRafRef.current);\n  };\n  var onInternalResize = function onInternalResize(size) {\n    if (resizeState === RESIZE_STABLE) {\n      onResize === null || onResize === void 0 || onResize(size);\n      if (autoSize) {\n        cleanRaf();\n        resizeRafRef.current = raf(function () {\n          startResize();\n        });\n      }\n    }\n  };\n  React.useEffect(function () {\n    return cleanRaf;\n  }, []);\n\n  // =============================== Render ===============================\n  var mergedAutoSizeStyle = needAutoSize ? autoSizeStyle : null;\n  var mergedStyle = _objectSpread(_objectSpread({}, style), mergedAutoSizeStyle);\n  if (resizeState === RESIZE_START || resizeState === RESIZE_MEASURING) {\n    mergedStyle.overflowY = 'hidden';\n    mergedStyle.overflowX = 'hidden';\n  }\n  return /*#__PURE__*/React.createElement(ResizeObserver, {\n    onResize: onInternalResize,\n    disabled: !(autoSize || onResize)\n  }, /*#__PURE__*/React.createElement(\"textarea\", _extends({}, restProps, {\n    ref: textareaRef,\n    style: mergedStyle,\n    className: classNames(prefixCls, className, _defineProperty({}, \"\".concat(prefixCls, \"-disabled\"), disabled)),\n    disabled: disabled,\n    value: mergedValue,\n    onChange: onInternalChange\n  })));\n});\nexport default ResizableTextArea;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"defaultValue\", \"value\", \"onFocus\", \"onBlur\", \"onChange\", \"allowClear\", \"maxLength\", \"onCompositionStart\", \"onCompositionEnd\", \"suffix\", \"prefixCls\", \"showCount\", \"count\", \"className\", \"style\", \"disabled\", \"hidden\", \"classNames\", \"styles\", \"onResize\", \"onClear\", \"onPressEnter\", \"readOnly\", \"autoSize\", \"onKeyDown\"];\nimport clsx from 'classnames';\nimport { BaseInput } from 'rc-input';\nimport useCount from \"rc-input/es/hooks/useCount\";\nimport { resolveOnChange } from \"rc-input/es/utils/commonUtils\";\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport React, { useEffect, useImperativeHandle, useRef } from 'react';\nimport ResizableTextArea from \"./ResizableTextArea\";\nvar TextArea = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n  var _countConfig$max;\n  var defaultValue = _ref.defaultValue,\n    customValue = _ref.value,\n    onFocus = _ref.onFocus,\n    onBlur = _ref.onBlur,\n    onChange = _ref.onChange,\n    allowClear = _ref.allowClear,\n    maxLength = _ref.maxLength,\n    onCompositionStart = _ref.onCompositionStart,\n    onCompositionEnd = _ref.onCompositionEnd,\n    suffix = _ref.suffix,\n    _ref$prefixCls = _ref.prefixCls,\n    prefixCls = _ref$prefixCls === void 0 ? 'rc-textarea' : _ref$prefixCls,\n    showCount = _ref.showCount,\n    count = _ref.count,\n    className = _ref.className,\n    style = _ref.style,\n    disabled = _ref.disabled,\n    hidden = _ref.hidden,\n    classNames = _ref.classNames,\n    styles = _ref.styles,\n    onResize = _ref.onResize,\n    onClear = _ref.onClear,\n    onPressEnter = _ref.onPressEnter,\n    readOnly = _ref.readOnly,\n    autoSize = _ref.autoSize,\n    onKeyDown = _ref.onKeyDown,\n    rest = _objectWithoutProperties(_ref, _excluded);\n  var _useMergedState = useMergedState(defaultValue, {\n      value: customValue,\n      defaultValue: defaultValue\n    }),\n    _useMergedState2 = _slicedToArray(_useMergedState, 2),\n    value = _useMergedState2[0],\n    setValue = _useMergedState2[1];\n  var formatValue = value === undefined || value === null ? '' : String(value);\n  var _React$useState = React.useState(false),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    focused = _React$useState2[0],\n    setFocused = _React$useState2[1];\n  var compositionRef = React.useRef(false);\n  var _React$useState3 = React.useState(null),\n    _React$useState4 = _slicedToArray(_React$useState3, 2),\n    textareaResized = _React$useState4[0],\n    setTextareaResized = _React$useState4[1];\n\n  // =============================== Ref ================================\n  var holderRef = useRef(null);\n  var resizableTextAreaRef = useRef(null);\n  var getTextArea = function getTextArea() {\n    var _resizableTextAreaRef;\n    return (_resizableTextAreaRef = resizableTextAreaRef.current) === null || _resizableTextAreaRef === void 0 ? void 0 : _resizableTextAreaRef.textArea;\n  };\n  var focus = function focus() {\n    getTextArea().focus();\n  };\n  useImperativeHandle(ref, function () {\n    var _holderRef$current;\n    return {\n      resizableTextArea: resizableTextAreaRef.current,\n      focus: focus,\n      blur: function blur() {\n        getTextArea().blur();\n      },\n      nativeElement: ((_holderRef$current = holderRef.current) === null || _holderRef$current === void 0 ? void 0 : _holderRef$current.nativeElement) || getTextArea()\n    };\n  });\n  useEffect(function () {\n    setFocused(function (prev) {\n      return !disabled && prev;\n    });\n  }, [disabled]);\n\n  // =========================== Select Range ===========================\n  var _React$useState5 = React.useState(null),\n    _React$useState6 = _slicedToArray(_React$useState5, 2),\n    selection = _React$useState6[0],\n    setSelection = _React$useState6[1];\n  React.useEffect(function () {\n    if (selection) {\n      var _getTextArea;\n      (_getTextArea = getTextArea()).setSelectionRange.apply(_getTextArea, _toConsumableArray(selection));\n    }\n  }, [selection]);\n\n  // ============================== Count ===============================\n  var countConfig = useCount(count, showCount);\n  var mergedMax = (_countConfig$max = countConfig.max) !== null && _countConfig$max !== void 0 ? _countConfig$max : maxLength;\n\n  // Max length value\n  var hasMaxLength = Number(mergedMax) > 0;\n  var valueLength = countConfig.strategy(formatValue);\n  var isOutOfRange = !!mergedMax && valueLength > mergedMax;\n\n  // ============================== Change ==============================\n  var triggerChange = function triggerChange(e, currentValue) {\n    var cutValue = currentValue;\n    if (!compositionRef.current && countConfig.exceedFormatter && countConfig.max && countConfig.strategy(currentValue) > countConfig.max) {\n      cutValue = countConfig.exceedFormatter(currentValue, {\n        max: countConfig.max\n      });\n      if (currentValue !== cutValue) {\n        setSelection([getTextArea().selectionStart || 0, getTextArea().selectionEnd || 0]);\n      }\n    }\n    setValue(cutValue);\n    resolveOnChange(e.currentTarget, e, onChange, cutValue);\n  };\n\n  // =========================== Value Update ===========================\n  var onInternalCompositionStart = function onInternalCompositionStart(e) {\n    compositionRef.current = true;\n    onCompositionStart === null || onCompositionStart === void 0 || onCompositionStart(e);\n  };\n  var onInternalCompositionEnd = function onInternalCompositionEnd(e) {\n    compositionRef.current = false;\n    triggerChange(e, e.currentTarget.value);\n    onCompositionEnd === null || onCompositionEnd === void 0 || onCompositionEnd(e);\n  };\n  var onInternalChange = function onInternalChange(e) {\n    triggerChange(e, e.target.value);\n  };\n  var handleKeyDown = function handleKeyDown(e) {\n    if (e.key === 'Enter' && onPressEnter) {\n      onPressEnter(e);\n    }\n    onKeyDown === null || onKeyDown === void 0 || onKeyDown(e);\n  };\n  var handleFocus = function handleFocus(e) {\n    setFocused(true);\n    onFocus === null || onFocus === void 0 || onFocus(e);\n  };\n  var handleBlur = function handleBlur(e) {\n    setFocused(false);\n    onBlur === null || onBlur === void 0 || onBlur(e);\n  };\n\n  // ============================== Reset ===============================\n  var handleReset = function handleReset(e) {\n    setValue('');\n    focus();\n    resolveOnChange(getTextArea(), e, onChange);\n  };\n  var suffixNode = suffix;\n  var dataCount;\n  if (countConfig.show) {\n    if (countConfig.showFormatter) {\n      dataCount = countConfig.showFormatter({\n        value: formatValue,\n        count: valueLength,\n        maxLength: mergedMax\n      });\n    } else {\n      dataCount = \"\".concat(valueLength).concat(hasMaxLength ? \" / \".concat(mergedMax) : '');\n    }\n    suffixNode = /*#__PURE__*/React.createElement(React.Fragment, null, suffixNode, /*#__PURE__*/React.createElement(\"span\", {\n      className: clsx(\"\".concat(prefixCls, \"-data-count\"), classNames === null || classNames === void 0 ? void 0 : classNames.count),\n      style: styles === null || styles === void 0 ? void 0 : styles.count\n    }, dataCount));\n  }\n  var handleResize = function handleResize(size) {\n    var _getTextArea2;\n    onResize === null || onResize === void 0 || onResize(size);\n    if ((_getTextArea2 = getTextArea()) !== null && _getTextArea2 !== void 0 && _getTextArea2.style.height) {\n      setTextareaResized(true);\n    }\n  };\n  var isPureTextArea = !autoSize && !showCount && !allowClear;\n  return /*#__PURE__*/React.createElement(BaseInput, {\n    ref: holderRef,\n    value: formatValue,\n    allowClear: allowClear,\n    handleReset: handleReset,\n    suffix: suffixNode,\n    prefixCls: prefixCls,\n    classNames: _objectSpread(_objectSpread({}, classNames), {}, {\n      affixWrapper: clsx(classNames === null || classNames === void 0 ? void 0 : classNames.affixWrapper, _defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-show-count\"), showCount), \"\".concat(prefixCls, \"-textarea-allow-clear\"), allowClear))\n    }),\n    disabled: disabled,\n    focused: focused,\n    className: clsx(className, isOutOfRange && \"\".concat(prefixCls, \"-out-of-range\")),\n    style: _objectSpread(_objectSpread({}, style), textareaResized && !isPureTextArea ? {\n      height: 'auto'\n    } : {}),\n    dataAttrs: {\n      affixWrapper: {\n        'data-count': typeof dataCount === 'string' ? dataCount : undefined\n      }\n    },\n    hidden: hidden,\n    readOnly: readOnly,\n    onClear: onClear\n  }, /*#__PURE__*/React.createElement(ResizableTextArea, _extends({}, rest, {\n    autoSize: autoSize,\n    maxLength: maxLength,\n    onKeyDown: handleKeyDown,\n    onChange: onInternalChange,\n    onFocus: handleFocus,\n    onBlur: handleBlur,\n    onCompositionStart: onInternalCompositionStart,\n    onCompositionEnd: onInternalCompositionEnd,\n    className: clsx(classNames === null || classNames === void 0 ? void 0 : classNames.textarea),\n    style: _objectSpread(_objectSpread({}, styles === null || styles === void 0 ? void 0 : styles.textarea), {}, {\n      resize: style === null || style === void 0 ? void 0 : style.resize\n    }),\n    disabled: disabled,\n    prefixCls: prefixCls,\n    onResize: handleResize,\n    ref: resizableTextAreaRef,\n    readOnly: readOnly\n  })));\n});\nexport default TextArea;","import TextArea from \"./TextArea\";\nexport { default as ResizableTextArea } from \"./ResizableTextArea\";\nexport default TextArea;","function getIgnoreAttributesFn(ignoreAttributes) {\n    if (typeof ignoreAttributes === 'function') {\n        return ignoreAttributes\n    }\n    if (Array.isArray(ignoreAttributes)) {\n        return (attrName) => {\n            for (const pattern of ignoreAttributes) {\n                if (typeof pattern === 'string' && attrName === pattern) {\n                    return true\n                }\n                if (pattern instanceof RegExp && pattern.test(attrName)) {\n                    return true\n                }\n            }\n        }\n    }\n    return () => false\n}\n\nmodule.exports = getIgnoreAttributesFn","import * as React from 'react';\nexport default function useMemo(getValue, condition, shouldUpdate) {\n  var cacheRef = React.useRef({});\n  if (!('value' in cacheRef.current) || shouldUpdate(cacheRef.current.condition, condition)) {\n    cacheRef.current.value = getValue();\n    cacheRef.current.condition = condition;\n  }\n  return cacheRef.current.value;\n}","import { useCallback } from 'react';\nimport useCommittedRef from './useCommittedRef';\nexport default function useEventCallback(fn) {\n  const ref = useCommittedRef(fn);\n  return useCallback(function (...args) {\n    return ref.current && ref.current(...args);\n  }, [ref]);\n}","import { useContext } from 'react';\nimport { genStyleUtils } from '@ant-design/cssinjs-utils';\nimport { ConfigContext } from '../../config-provider/context';\nimport { genCommonStyle, genLinkStyle } from '../../style';\nimport useLocalToken, { unitless } from '../useToken';\nimport useResetIconStyle from './useResetIconStyle';\nexport const {\n  genStyleHooks,\n  genComponentStyleHook,\n  genSubStyleComponent\n} = genStyleUtils({\n  usePrefix: () => {\n    const {\n      getPrefixCls,\n      iconPrefixCls\n    } = useContext(ConfigContext);\n    const rootPrefixCls = getPrefixCls();\n    return {\n      rootPrefixCls,\n      iconPrefixCls\n    };\n  },\n  useToken: () => {\n    const [theme, realToken, hashId, token, cssVar] = useLocalToken();\n    return {\n      theme,\n      realToken,\n      hashId,\n      token,\n      cssVar\n    };\n  },\n  useCSP: () => {\n    const {\n      csp,\n      iconPrefixCls\n    } = useContext(ConfigContext);\n    // Generate style for icons\n    useResetIconStyle(iconPrefixCls, csp);\n    return csp !== null && csp !== void 0 ? csp : {};\n  },\n  getResetStyles: token => [{\n    '&': genLinkStyle(token)\n  }],\n  getCommonStyle: genCommonStyle,\n  getCompUnitless: () => unitless\n});","import React from 'react';\nimport { isFragment } from 'react-is';\nexport default function toArray(children) {\n  var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n  var ret = [];\n  React.Children.forEach(children, function (child) {\n    if ((child === undefined || child === null) && !option.keepEmpty) {\n      return;\n    }\n    if (Array.isArray(child)) {\n      ret = ret.concat(toArray(child));\n    } else if (isFragment(child) && child.props) {\n      ret = ret.concat(toArray(child.props.children, option));\n    } else {\n      ret.push(child);\n    }\n  });\n  return ret;\n}","function _arrayLikeToArray(r, a) {\n  (null == a || a > r.length) && (a = r.length);\n  for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n  return n;\n}\nexport { _arrayLikeToArray as default };","\"use client\";\n\n/* eslint import/no-unresolved: 0 */\n// @ts-ignore\nimport version from './version';\nexport default version;","export default '5.21.1';","import { TinyColor } from '@ctrl/tinycolor';\nfunction isStableColor(color) {\n  return color >= 0 && color <= 255;\n}\nfunction getAlphaColor(frontColor, backgroundColor) {\n  const {\n    r: fR,\n    g: fG,\n    b: fB,\n    a: originAlpha\n  } = new TinyColor(frontColor).toRgb();\n  if (originAlpha < 1) {\n    return frontColor;\n  }\n  const {\n    r: bR,\n    g: bG,\n    b: bB\n  } = new TinyColor(backgroundColor).toRgb();\n  for (let fA = 0.01; fA <= 1; fA += 0.01) {\n    const r = Math.round((fR - bR * (1 - fA)) / fA);\n    const g = Math.round((fG - bG * (1 - fA)) / fA);\n    const b = Math.round((fB - bB * (1 - fA)) / fA);\n    if (isStableColor(r) && isStableColor(g) && isStableColor(b)) {\n      return new TinyColor({\n        r,\n        g,\n        b,\n        a: Math.round(fA * 100) / 100\n      }).toRgbString();\n    }\n  }\n  // fallback\n  /* istanbul ignore next */\n  return new TinyColor({\n    r: fR,\n    g: fG,\n    b: fB,\n    a: 1\n  }).toRgbString();\n}\nexport default getAlphaColor;","var __rest = this && this.__rest || function (s, e) {\n  var t = {};\n  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n  }\n  return t;\n};\nimport { TinyColor } from '@ctrl/tinycolor';\nimport seedToken from '../themes/seed';\nimport getAlphaColor from './getAlphaColor';\n/**\n * Seed (designer) > Derivative (designer) > Alias (developer).\n *\n * Merge seed & derivative & override token and generate alias token for developer.\n */\nexport default function formatToken(derivativeToken) {\n  const {\n      override\n    } = derivativeToken,\n    restToken = __rest(derivativeToken, [\"override\"]);\n  const overrideTokens = Object.assign({}, override);\n  Object.keys(seedToken).forEach(token => {\n    delete overrideTokens[token];\n  });\n  const mergedToken = Object.assign(Object.assign({}, restToken), overrideTokens);\n  const screenXS = 480;\n  const screenSM = 576;\n  const screenMD = 768;\n  const screenLG = 992;\n  const screenXL = 1200;\n  const screenXXL = 1600;\n  // Motion\n  if (mergedToken.motion === false) {\n    const fastDuration = '0s';\n    mergedToken.motionDurationFast = fastDuration;\n    mergedToken.motionDurationMid = fastDuration;\n    mergedToken.motionDurationSlow = fastDuration;\n  }\n  // Generate alias token\n  const aliasToken = Object.assign(Object.assign(Object.assign({}, mergedToken), {\n    // ============== Background ============== //\n    colorFillContent: mergedToken.colorFillSecondary,\n    colorFillContentHover: mergedToken.colorFill,\n    colorFillAlter: mergedToken.colorFillQuaternary,\n    colorBgContainerDisabled: mergedToken.colorFillTertiary,\n    // ============== Split ============== //\n    colorBorderBg: mergedToken.colorBgContainer,\n    colorSplit: getAlphaColor(mergedToken.colorBorderSecondary, mergedToken.colorBgContainer),\n    // ============== Text ============== //\n    colorTextPlaceholder: mergedToken.colorTextQuaternary,\n    colorTextDisabled: mergedToken.colorTextQuaternary,\n    colorTextHeading: mergedToken.colorText,\n    colorTextLabel: mergedToken.colorTextSecondary,\n    colorTextDescription: mergedToken.colorTextTertiary,\n    colorTextLightSolid: mergedToken.colorWhite,\n    colorHighlight: mergedToken.colorError,\n    colorBgTextHover: mergedToken.colorFillSecondary,\n    colorBgTextActive: mergedToken.colorFill,\n    colorIcon: mergedToken.colorTextTertiary,\n    colorIconHover: mergedToken.colorText,\n    colorErrorOutline: getAlphaColor(mergedToken.colorErrorBg, mergedToken.colorBgContainer),\n    colorWarningOutline: getAlphaColor(mergedToken.colorWarningBg, mergedToken.colorBgContainer),\n    // Font\n    fontSizeIcon: mergedToken.fontSizeSM,\n    // Line\n    lineWidthFocus: mergedToken.lineWidth * 4,\n    // Control\n    lineWidth: mergedToken.lineWidth,\n    controlOutlineWidth: mergedToken.lineWidth * 2,\n    // Checkbox size and expand icon size\n    controlInteractiveSize: mergedToken.controlHeight / 2,\n    controlItemBgHover: mergedToken.colorFillTertiary,\n    controlItemBgActive: mergedToken.colorPrimaryBg,\n    controlItemBgActiveHover: mergedToken.colorPrimaryBgHover,\n    controlItemBgActiveDisabled: mergedToken.colorFill,\n    controlTmpOutline: mergedToken.colorFillQuaternary,\n    controlOutline: getAlphaColor(mergedToken.colorPrimaryBg, mergedToken.colorBgContainer),\n    lineType: mergedToken.lineType,\n    borderRadius: mergedToken.borderRadius,\n    borderRadiusXS: mergedToken.borderRadiusXS,\n    borderRadiusSM: mergedToken.borderRadiusSM,\n    borderRadiusLG: mergedToken.borderRadiusLG,\n    fontWeightStrong: 600,\n    opacityLoading: 0.65,\n    linkDecoration: 'none',\n    linkHoverDecoration: 'none',\n    linkFocusDecoration: 'none',\n    controlPaddingHorizontal: 12,\n    controlPaddingHorizontalSM: 8,\n    paddingXXS: mergedToken.sizeXXS,\n    paddingXS: mergedToken.sizeXS,\n    paddingSM: mergedToken.sizeSM,\n    padding: mergedToken.size,\n    paddingMD: mergedToken.sizeMD,\n    paddingLG: mergedToken.sizeLG,\n    paddingXL: mergedToken.sizeXL,\n    paddingContentHorizontalLG: mergedToken.sizeLG,\n    paddingContentVerticalLG: mergedToken.sizeMS,\n    paddingContentHorizontal: mergedToken.sizeMS,\n    paddingContentVertical: mergedToken.sizeSM,\n    paddingContentHorizontalSM: mergedToken.size,\n    paddingContentVerticalSM: mergedToken.sizeXS,\n    marginXXS: mergedToken.sizeXXS,\n    marginXS: mergedToken.sizeXS,\n    marginSM: mergedToken.sizeSM,\n    margin: mergedToken.size,\n    marginMD: mergedToken.sizeMD,\n    marginLG: mergedToken.sizeLG,\n    marginXL: mergedToken.sizeXL,\n    marginXXL: mergedToken.sizeXXL,\n    boxShadow: `\n      0 6px 16px 0 rgba(0, 0, 0, 0.08),\n      0 3px 6px -4px rgba(0, 0, 0, 0.12),\n      0 9px 28px 8px rgba(0, 0, 0, 0.05)\n    `,\n    boxShadowSecondary: `\n      0 6px 16px 0 rgba(0, 0, 0, 0.08),\n      0 3px 6px -4px rgba(0, 0, 0, 0.12),\n      0 9px 28px 8px rgba(0, 0, 0, 0.05)\n    `,\n    boxShadowTertiary: `\n      0 1px 2px 0 rgba(0, 0, 0, 0.03),\n      0 1px 6px -1px rgba(0, 0, 0, 0.02),\n      0 2px 4px 0 rgba(0, 0, 0, 0.02)\n    `,\n    screenXS,\n    screenXSMin: screenXS,\n    screenXSMax: screenSM - 1,\n    screenSM,\n    screenSMMin: screenSM,\n    screenSMMax: screenMD - 1,\n    screenMD,\n    screenMDMin: screenMD,\n    screenMDMax: screenLG - 1,\n    screenLG,\n    screenLGMin: screenLG,\n    screenLGMax: screenXL - 1,\n    screenXL,\n    screenXLMin: screenXL,\n    screenXLMax: screenXXL - 1,\n    screenXXL,\n    screenXXLMin: screenXXL,\n    boxShadowPopoverArrow: '2px 2px 5px rgba(0, 0, 0, 0.05)',\n    boxShadowCard: `\n      0 1px 2px -2px ${new TinyColor('rgba(0, 0, 0, 0.16)').toRgbString()},\n      0 3px 6px 0 ${new TinyColor('rgba(0, 0, 0, 0.12)').toRgbString()},\n      0 5px 12px 4px ${new TinyColor('rgba(0, 0, 0, 0.09)').toRgbString()}\n    `,\n    boxShadowDrawerRight: `\n      -6px 0 16px 0 rgba(0, 0, 0, 0.08),\n      -3px 0 6px -4px rgba(0, 0, 0, 0.12),\n      -9px 0 28px 8px rgba(0, 0, 0, 0.05)\n    `,\n    boxShadowDrawerLeft: `\n      6px 0 16px 0 rgba(0, 0, 0, 0.08),\n      3px 0 6px -4px rgba(0, 0, 0, 0.12),\n      9px 0 28px 8px rgba(0, 0, 0, 0.05)\n    `,\n    boxShadowDrawerUp: `\n      0 6px 16px 0 rgba(0, 0, 0, 0.08),\n      0 3px 6px -4px rgba(0, 0, 0, 0.12),\n      0 9px 28px 8px rgba(0, 0, 0, 0.05)\n    `,\n    boxShadowDrawerDown: `\n      0 -6px 16px 0 rgba(0, 0, 0, 0.08),\n      0 -3px 6px -4px rgba(0, 0, 0, 0.12),\n      0 -9px 28px 8px rgba(0, 0, 0, 0.05)\n    `,\n    boxShadowTabsOverflowLeft: 'inset 10px 0 8px -8px rgba(0, 0, 0, 0.08)',\n    boxShadowTabsOverflowRight: 'inset -10px 0 8px -8px rgba(0, 0, 0, 0.08)',\n    boxShadowTabsOverflowTop: 'inset 0 10px 8px -8px rgba(0, 0, 0, 0.08)',\n    boxShadowTabsOverflowBottom: 'inset 0 -10px 8px -8px rgba(0, 0, 0, 0.08)'\n  }), overrideTokens);\n  return aliasToken;\n}","var __rest = this && this.__rest || function (s, e) {\n  var t = {};\n  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n  }\n  return t;\n};\nimport React from 'react';\nimport { useCacheToken } from '@ant-design/cssinjs';\nimport version from '../version';\nimport { defaultTheme, DesignTokenContext } from './context';\nimport defaultSeedToken from './themes/seed';\nimport formatToken from './util/alias';\nexport const unitless = {\n  lineHeight: true,\n  lineHeightSM: true,\n  lineHeightLG: true,\n  lineHeightHeading1: true,\n  lineHeightHeading2: true,\n  lineHeightHeading3: true,\n  lineHeightHeading4: true,\n  lineHeightHeading5: true,\n  opacityLoading: true,\n  fontWeightStrong: true,\n  zIndexPopupBase: true,\n  zIndexBase: true,\n  opacityImage: true\n};\nexport const ignore = {\n  size: true,\n  sizeSM: true,\n  sizeLG: true,\n  sizeMD: true,\n  sizeXS: true,\n  sizeXXS: true,\n  sizeMS: true,\n  sizeXL: true,\n  sizeXXL: true,\n  sizeUnit: true,\n  sizeStep: true,\n  motionBase: true,\n  motionUnit: true\n};\nconst preserve = {\n  screenXS: true,\n  screenXSMin: true,\n  screenXSMax: true,\n  screenSM: true,\n  screenSMMin: true,\n  screenSMMax: true,\n  screenMD: true,\n  screenMDMin: true,\n  screenMDMax: true,\n  screenLG: true,\n  screenLGMin: true,\n  screenLGMax: true,\n  screenXL: true,\n  screenXLMin: true,\n  screenXLMax: true,\n  screenXXL: true,\n  screenXXLMin: true\n};\nexport const getComputedToken = (originToken, overrideToken, theme) => {\n  const derivativeToken = theme.getDerivativeToken(originToken);\n  const {\n      override\n    } = overrideToken,\n    components = __rest(overrideToken, [\"override\"]);\n  // Merge with override\n  let mergedDerivativeToken = Object.assign(Object.assign({}, derivativeToken), {\n    override\n  });\n  // Format if needed\n  mergedDerivativeToken = formatToken(mergedDerivativeToken);\n  if (components) {\n    Object.entries(components).forEach(_ref => {\n      let [key, value] = _ref;\n      const {\n          theme: componentTheme\n        } = value,\n        componentTokens = __rest(value, [\"theme\"]);\n      let mergedComponentToken = componentTokens;\n      if (componentTheme) {\n        mergedComponentToken = getComputedToken(Object.assign(Object.assign({}, mergedDerivativeToken), componentTokens), {\n          override: componentTokens\n        }, componentTheme);\n      }\n      mergedDerivativeToken[key] = mergedComponentToken;\n    });\n  }\n  return mergedDerivativeToken;\n};\n// ================================== Hook ==================================\nexport default function useToken() {\n  const {\n    token: rootDesignToken,\n    hashed,\n    theme,\n    override,\n    cssVar\n  } = React.useContext(DesignTokenContext);\n  const salt = `${version}-${hashed || ''}`;\n  const mergedTheme = theme || defaultTheme;\n  const [token, hashId, realToken] = useCacheToken(mergedTheme, [defaultSeedToken, rootDesignToken], {\n    salt,\n    override,\n    getComputedToken,\n    // formatToken will not be consumed after 1.15.0 with getComputedToken.\n    // But token will break if @ant-design/cssinjs is under 1.15.0 without it\n    formatToken,\n    cssVar: cssVar && {\n      prefix: cssVar.prefix,\n      key: cssVar.key,\n      unitless,\n      ignore,\n      preserve\n    }\n  });\n  return [mergedTheme, realToken, hashed ? hashId : '', token, cssVar];\n}","module.exports = \"data:image/png;base64,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\"","/**\n * Take input from [0, n] and return it as [0, 1]\n * @hidden\n */\nexport function bound01(n, max) {\n    if (isOnePointZero(n)) {\n        n = '100%';\n    }\n    var isPercent = isPercentage(n);\n    n = max === 360 ? n : Math.min(max, Math.max(0, parseFloat(n)));\n    // Automatically convert percentage into number\n    if (isPercent) {\n        n = parseInt(String(n * max), 10) / 100;\n    }\n    // Handle floating point rounding errors\n    if (Math.abs(n - max) < 0.000001) {\n        return 1;\n    }\n    // Convert into [0, 1] range if it isn't already\n    if (max === 360) {\n        // If n is a hue given in degrees,\n        // wrap around out-of-range values into [0, 360] range\n        // then convert into [0, 1].\n        n = (n < 0 ? (n % max) + max : n % max) / parseFloat(String(max));\n    }\n    else {\n        // If n not a hue given in degrees\n        // Convert into [0, 1] range if it isn't already.\n        n = (n % max) / parseFloat(String(max));\n    }\n    return n;\n}\n/**\n * Force a number between 0 and 1\n * @hidden\n */\nexport function clamp01(val) {\n    return Math.min(1, Math.max(0, val));\n}\n/**\n * Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n * <http://stackoverflow.com/questions/7422072/javascript-how-to-detect-number-as-a-decimal-including-1-0>\n * @hidden\n */\nexport function isOnePointZero(n) {\n    return typeof n === 'string' && n.indexOf('.') !== -1 && parseFloat(n) === 1;\n}\n/**\n * Check to see if string passed in is a percentage\n * @hidden\n */\nexport function isPercentage(n) {\n    return typeof n === 'string' && n.indexOf('%') !== -1;\n}\n/**\n * Return a valid alpha value [0,1] with all invalid values being set to 1\n * @hidden\n */\nexport function boundAlpha(a) {\n    a = parseFloat(a);\n    if (isNaN(a) || a < 0 || a > 1) {\n        a = 1;\n    }\n    return a;\n}\n/**\n * Replace a decimal with it's percentage value\n * @hidden\n */\nexport function convertToPercentage(n) {\n    if (n <= 1) {\n        return \"\".concat(Number(n) * 100, \"%\");\n    }\n    return n;\n}\n/**\n * Force a hex value to have 2 characters\n * @hidden\n */\nexport function pad2(c) {\n    return c.length === 1 ? '0' + c : String(c);\n}\n","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _toArray from \"@babel/runtime/helpers/esm/toArray\";\nimport get from \"./get\";\nfunction internalSet(entity, paths, value, removeIfUndefined) {\n  if (!paths.length) {\n    return value;\n  }\n  var _paths = _toArray(paths),\n    path = _paths[0],\n    restPath = _paths.slice(1);\n  var clone;\n  if (!entity && typeof path === 'number') {\n    clone = [];\n  } else if (Array.isArray(entity)) {\n    clone = _toConsumableArray(entity);\n  } else {\n    clone = _objectSpread({}, entity);\n  }\n\n  // Delete prop if `removeIfUndefined` and value is undefined\n  if (removeIfUndefined && value === undefined && restPath.length === 1) {\n    delete clone[path][restPath[0]];\n  } else {\n    clone[path] = internalSet(clone[path], restPath, value, removeIfUndefined);\n  }\n  return clone;\n}\nexport default function set(entity, paths, value) {\n  var removeIfUndefined = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n  // Do nothing if `removeIfUndefined` and parent object not exist\n  if (paths.length && removeIfUndefined && value === undefined && !get(entity, paths.slice(0, -1))) {\n    return entity;\n  }\n  return internalSet(entity, paths, value, removeIfUndefined);\n}\nfunction isObject(obj) {\n  return _typeof(obj) === 'object' && obj !== null && Object.getPrototypeOf(obj) === Object.prototype;\n}\nfunction createEmpty(source) {\n  return Array.isArray(source) ? [] : {};\n}\nvar keys = typeof Reflect === 'undefined' ? Object.keys : Reflect.ownKeys;\n\n/**\n * Merge objects which will create\n */\nexport function merge() {\n  for (var _len = arguments.length, sources = new Array(_len), _key = 0; _key < _len; _key++) {\n    sources[_key] = arguments[_key];\n  }\n  var clone = createEmpty(sources[0]);\n  sources.forEach(function (src) {\n    function internalMerge(path, parentLoopSet) {\n      var loopSet = new Set(parentLoopSet);\n      var value = get(src, path);\n      var isArr = Array.isArray(value);\n      if (isArr || isObject(value)) {\n        // Only add not loop obj\n        if (!loopSet.has(value)) {\n          loopSet.add(value);\n          var originValue = get(clone, path);\n          if (isArr) {\n            // Array will always be override\n            clone = set(clone, path, []);\n          } else if (!originValue || _typeof(originValue) !== 'object') {\n            // Init container if not exist\n            clone = set(clone, path, createEmpty(value));\n          }\n          keys(value).forEach(function (key) {\n            internalMerge([].concat(_toConsumableArray(path), [key]), loopSet);\n          });\n        }\n      } else {\n        clone = set(clone, path, value);\n      }\n    }\n    internalMerge([]);\n  });\n  return clone;\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _toArray(arr) {\n  return arrayWithHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableRest();\n}","import _typeof from \"./typeof.js\";\nexport default function _regeneratorRuntime() {\n  \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n  _regeneratorRuntime = function _regeneratorRuntime() {\n    return exports;\n  };\n  var exports = {},\n    Op = Object.prototype,\n    hasOwn = Op.hasOwnProperty,\n    defineProperty = Object.defineProperty || function (obj, key, desc) {\n      obj[key] = desc.value;\n    },\n    $Symbol = \"function\" == typeof Symbol ? Symbol : {},\n    iteratorSymbol = $Symbol.iterator || \"@@iterator\",\n    asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\",\n    toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n  function define(obj, key, value) {\n    return Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: !0,\n      configurable: !0,\n      writable: !0\n    }), obj[key];\n  }\n  try {\n    define({}, \"\");\n  } catch (err) {\n    define = function define(obj, key, value) {\n      return obj[key] = value;\n    };\n  }\n  function wrap(innerFn, outerFn, self, tryLocsList) {\n    var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator,\n      generator = Object.create(protoGenerator.prototype),\n      context = new Context(tryLocsList || []);\n    return defineProperty(generator, \"_invoke\", {\n      value: makeInvokeMethod(innerFn, self, context)\n    }), generator;\n  }\n  function tryCatch(fn, obj, arg) {\n    try {\n      return {\n        type: \"normal\",\n        arg: fn.call(obj, arg)\n      };\n    } catch (err) {\n      return {\n        type: \"throw\",\n        arg: err\n      };\n    }\n  }\n  exports.wrap = wrap;\n  var ContinueSentinel = {};\n  function Generator() {}\n  function GeneratorFunction() {}\n  function GeneratorFunctionPrototype() {}\n  var IteratorPrototype = {};\n  define(IteratorPrototype, iteratorSymbol, function () {\n    return this;\n  });\n  var getProto = Object.getPrototypeOf,\n    NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n  NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype);\n  var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);\n  function defineIteratorMethods(prototype) {\n    [\"next\", \"throw\", \"return\"].forEach(function (method) {\n      define(prototype, method, function (arg) {\n        return this._invoke(method, arg);\n      });\n    });\n  }\n  function AsyncIterator(generator, PromiseImpl) {\n    function invoke(method, arg, resolve, reject) {\n      var record = tryCatch(generator[method], generator, arg);\n      if (\"throw\" !== record.type) {\n        var result = record.arg,\n          value = result.value;\n        return value && \"object\" == _typeof(value) && hasOwn.call(value, \"__await\") ? PromiseImpl.resolve(value.__await).then(function (value) {\n          invoke(\"next\", value, resolve, reject);\n        }, function (err) {\n          invoke(\"throw\", err, resolve, reject);\n        }) : PromiseImpl.resolve(value).then(function (unwrapped) {\n          result.value = unwrapped, resolve(result);\n        }, function (error) {\n          return invoke(\"throw\", error, resolve, reject);\n        });\n      }\n      reject(record.arg);\n    }\n    var previousPromise;\n    defineProperty(this, \"_invoke\", {\n      value: function value(method, arg) {\n        function callInvokeWithMethodAndArg() {\n          return new PromiseImpl(function (resolve, reject) {\n            invoke(method, arg, resolve, reject);\n          });\n        }\n        return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n      }\n    });\n  }\n  function makeInvokeMethod(innerFn, self, context) {\n    var state = \"suspendedStart\";\n    return function (method, arg) {\n      if (\"executing\" === state) throw new Error(\"Generator is already running\");\n      if (\"completed\" === state) {\n        if (\"throw\" === method) throw arg;\n        return doneResult();\n      }\n      for (context.method = method, context.arg = arg;;) {\n        var delegate = context.delegate;\n        if (delegate) {\n          var delegateResult = maybeInvokeDelegate(delegate, context);\n          if (delegateResult) {\n            if (delegateResult === ContinueSentinel) continue;\n            return delegateResult;\n          }\n        }\n        if (\"next\" === context.method) context.sent = context._sent = context.arg;else if (\"throw\" === context.method) {\n          if (\"suspendedStart\" === state) throw state = \"completed\", context.arg;\n          context.dispatchException(context.arg);\n        } else \"return\" === context.method && context.abrupt(\"return\", context.arg);\n        state = \"executing\";\n        var record = tryCatch(innerFn, self, context);\n        if (\"normal\" === record.type) {\n          if (state = context.done ? \"completed\" : \"suspendedYield\", record.arg === ContinueSentinel) continue;\n          return {\n            value: record.arg,\n            done: context.done\n          };\n        }\n        \"throw\" === record.type && (state = \"completed\", context.method = \"throw\", context.arg = record.arg);\n      }\n    };\n  }\n  function maybeInvokeDelegate(delegate, context) {\n    var methodName = context.method,\n      method = delegate.iterator[methodName];\n    if (undefined === method) return context.delegate = null, \"throw\" === methodName && delegate.iterator[\"return\"] && (context.method = \"return\", context.arg = undefined, maybeInvokeDelegate(delegate, context), \"throw\" === context.method) || \"return\" !== methodName && (context.method = \"throw\", context.arg = new TypeError(\"The iterator does not provide a '\" + methodName + \"' method\")), ContinueSentinel;\n    var record = tryCatch(method, delegate.iterator, context.arg);\n    if (\"throw\" === record.type) return context.method = \"throw\", context.arg = record.arg, context.delegate = null, ContinueSentinel;\n    var info = record.arg;\n    return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, \"return\" !== context.method && (context.method = \"next\", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = \"throw\", context.arg = new TypeError(\"iterator result is not an object\"), context.delegate = null, ContinueSentinel);\n  }\n  function pushTryEntry(locs) {\n    var entry = {\n      tryLoc: locs[0]\n    };\n    1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry);\n  }\n  function resetTryEntry(entry) {\n    var record = entry.completion || {};\n    record.type = \"normal\", delete record.arg, entry.completion = record;\n  }\n  function Context(tryLocsList) {\n    this.tryEntries = [{\n      tryLoc: \"root\"\n    }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0);\n  }\n  function values(iterable) {\n    if (iterable) {\n      var iteratorMethod = iterable[iteratorSymbol];\n      if (iteratorMethod) return iteratorMethod.call(iterable);\n      if (\"function\" == typeof iterable.next) return iterable;\n      if (!isNaN(iterable.length)) {\n        var i = -1,\n          next = function next() {\n            for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next;\n            return next.value = undefined, next.done = !0, next;\n          };\n        return next.next = next;\n      }\n    }\n    return {\n      next: doneResult\n    };\n  }\n  function doneResult() {\n    return {\n      value: undefined,\n      done: !0\n    };\n  }\n  return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, \"constructor\", {\n    value: GeneratorFunctionPrototype,\n    configurable: !0\n  }), defineProperty(GeneratorFunctionPrototype, \"constructor\", {\n    value: GeneratorFunction,\n    configurable: !0\n  }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, \"GeneratorFunction\"), exports.isGeneratorFunction = function (genFun) {\n    var ctor = \"function\" == typeof genFun && genFun.constructor;\n    return !!ctor && (ctor === GeneratorFunction || \"GeneratorFunction\" === (ctor.displayName || ctor.name));\n  }, exports.mark = function (genFun) {\n    return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, \"GeneratorFunction\")), genFun.prototype = Object.create(Gp), genFun;\n  }, exports.awrap = function (arg) {\n    return {\n      __await: arg\n    };\n  }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n    return this;\n  }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n    void 0 === PromiseImpl && (PromiseImpl = Promise);\n    var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl);\n    return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) {\n      return result.done ? result.value : iter.next();\n    });\n  }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, \"Generator\"), define(Gp, iteratorSymbol, function () {\n    return this;\n  }), define(Gp, \"toString\", function () {\n    return \"[object Generator]\";\n  }), exports.keys = function (val) {\n    var object = Object(val),\n      keys = [];\n    for (var key in object) keys.push(key);\n    return keys.reverse(), function next() {\n      for (; keys.length;) {\n        var key = keys.pop();\n        if (key in object) return next.value = key, next.done = !1, next;\n      }\n      return next.done = !0, next;\n    };\n  }, exports.values = values, Context.prototype = {\n    constructor: Context,\n    reset: function reset(skipTempReset) {\n      if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) \"t\" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined);\n    },\n    stop: function stop() {\n      this.done = !0;\n      var rootRecord = this.tryEntries[0].completion;\n      if (\"throw\" === rootRecord.type) throw rootRecord.arg;\n      return this.rval;\n    },\n    dispatchException: function dispatchException(exception) {\n      if (this.done) throw exception;\n      var context = this;\n      function handle(loc, caught) {\n        return record.type = \"throw\", record.arg = exception, context.next = loc, caught && (context.method = \"next\", context.arg = undefined), !!caught;\n      }\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i],\n          record = entry.completion;\n        if (\"root\" === entry.tryLoc) return handle(\"end\");\n        if (entry.tryLoc <= this.prev) {\n          var hasCatch = hasOwn.call(entry, \"catchLoc\"),\n            hasFinally = hasOwn.call(entry, \"finallyLoc\");\n          if (hasCatch && hasFinally) {\n            if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n            if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n          } else if (hasCatch) {\n            if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n          } else {\n            if (!hasFinally) throw new Error(\"try statement without catch or finally\");\n            if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n          }\n        }\n      }\n    },\n    abrupt: function abrupt(type, arg) {\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) {\n          var finallyEntry = entry;\n          break;\n        }\n      }\n      finallyEntry && (\"break\" === type || \"continue\" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null);\n      var record = finallyEntry ? finallyEntry.completion : {};\n      return record.type = type, record.arg = arg, finallyEntry ? (this.method = \"next\", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record);\n    },\n    complete: function complete(record, afterLoc) {\n      if (\"throw\" === record.type) throw record.arg;\n      return \"break\" === record.type || \"continue\" === record.type ? this.next = record.arg : \"return\" === record.type ? (this.rval = this.arg = record.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel;\n    },\n    finish: function finish(finallyLoc) {\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel;\n      }\n    },\n    \"catch\": function _catch(tryLoc) {\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        if (entry.tryLoc === tryLoc) {\n          var record = entry.completion;\n          if (\"throw\" === record.type) {\n            var thrown = record.arg;\n            resetTryEntry(entry);\n          }\n          return thrown;\n        }\n      }\n      throw new Error(\"illegal catch attempt\");\n    },\n    delegateYield: function delegateYield(iterable, resultName, nextLoc) {\n      return this.delegate = {\n        iterator: values(iterable),\n        resultName: resultName,\n        nextLoc: nextLoc\n      }, \"next\" === this.method && (this.arg = undefined), ContinueSentinel;\n    }\n  }, exports;\n}","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n  try {\n    var info = gen[key](arg);\n    var value = info.value;\n  } catch (error) {\n    reject(error);\n    return;\n  }\n  if (info.done) {\n    resolve(value);\n  } else {\n    Promise.resolve(value).then(_next, _throw);\n  }\n}\nexport default function _asyncToGenerator(fn) {\n  return function () {\n    var self = this,\n      args = arguments;\n    return new Promise(function (resolve, reject) {\n      var gen = fn.apply(self, args);\n      function _next(value) {\n        asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n      }\n      function _throw(err) {\n        asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n      }\n      _next(undefined);\n    });\n  };\n}","import _regeneratorRuntime from \"@babel/runtime/helpers/esm/regeneratorRuntime\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/esm/asyncToGenerator\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as ReactDOM from 'react-dom';\n// Let compiler not to search module usage\nvar fullClone = _objectSpread({}, ReactDOM);\nvar version = fullClone.version,\n  reactRender = fullClone.render,\n  unmountComponentAtNode = fullClone.unmountComponentAtNode;\nvar createRoot;\ntry {\n  var mainVersion = Number((version || '').split('.')[0]);\n  if (mainVersion >= 18) {\n    createRoot = fullClone.createRoot;\n  }\n} catch (e) {\n  // Do nothing;\n}\nfunction toggleWarning(skip) {\n  var __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = fullClone.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n  if (__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED && _typeof(__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED) === 'object') {\n    __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.usingClientEntryPoint = skip;\n  }\n}\nvar MARK = '__rc_react_root__';\n\n// ========================== Render ==========================\n\nfunction modernRender(node, container) {\n  toggleWarning(true);\n  var root = container[MARK] || createRoot(container);\n  toggleWarning(false);\n  root.render(node);\n  container[MARK] = root;\n}\nfunction legacyRender(node, container) {\n  reactRender(node, container);\n}\n\n/** @private Test usage. Not work in prod */\nexport function _r(node, container) {\n  if (process.env.NODE_ENV !== 'production') {\n    return legacyRender(node, container);\n  }\n}\nexport function render(node, container) {\n  if (createRoot) {\n    modernRender(node, container);\n    return;\n  }\n  legacyRender(node, container);\n}\n\n// ========================= Unmount ==========================\nfunction modernUnmount(_x) {\n  return _modernUnmount.apply(this, arguments);\n}\nfunction _modernUnmount() {\n  _modernUnmount = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(container) {\n    return _regeneratorRuntime().wrap(function _callee$(_context) {\n      while (1) switch (_context.prev = _context.next) {\n        case 0:\n          return _context.abrupt(\"return\", Promise.resolve().then(function () {\n            var _container$MARK;\n            (_container$MARK = container[MARK]) === null || _container$MARK === void 0 || _container$MARK.unmount();\n            delete container[MARK];\n          }));\n        case 1:\n        case \"end\":\n          return _context.stop();\n      }\n    }, _callee);\n  }));\n  return _modernUnmount.apply(this, arguments);\n}\nfunction legacyUnmount(container) {\n  unmountComponentAtNode(container);\n}\n\n/** @private Test usage. Not work in prod */\nexport function _u(container) {\n  if (process.env.NODE_ENV !== 'production') {\n    return legacyUnmount(container);\n  }\n}\nexport function unmount(_x2) {\n  return _unmount.apply(this, arguments);\n}\nfunction _unmount() {\n  _unmount = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(container) {\n    return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n      while (1) switch (_context2.prev = _context2.next) {\n        case 0:\n          if (!(createRoot !== undefined)) {\n            _context2.next = 2;\n            break;\n          }\n          return _context2.abrupt(\"return\", modernUnmount(container));\n        case 2:\n          legacyUnmount(container);\n        case 3:\n        case \"end\":\n          return _context2.stop();\n      }\n    }, _callee2);\n  }));\n  return _unmount.apply(this, arguments);\n}","export default function omit(obj, fields) {\n  var clone = Object.assign({}, obj);\n  if (Array.isArray(fields)) {\n    fields.forEach(function (key) {\n      delete clone[key];\n    });\n  }\n  return clone;\n}","import * as React from 'react';\nvar OrderContext = /*#__PURE__*/React.createContext(null);\nexport default OrderContext;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport canUseDom from \"rc-util/es/Dom/canUseDom\";\nimport OrderContext from \"./Context\";\nvar EMPTY_LIST = [];\n\n/**\n * Will add `div` to document. Nest call will keep order\n * @param render Render DOM in document\n */\nexport default function useDom(render, debug) {\n  var _React$useState = React.useState(function () {\n      if (!canUseDom()) {\n        return null;\n      }\n      var defaultEle = document.createElement('div');\n      if (process.env.NODE_ENV !== 'production' && debug) {\n        defaultEle.setAttribute('data-debug', debug);\n      }\n      return defaultEle;\n    }),\n    _React$useState2 = _slicedToArray(_React$useState, 1),\n    ele = _React$useState2[0];\n\n  // ========================== Order ==========================\n  var appendedRef = React.useRef(false);\n  var queueCreate = React.useContext(OrderContext);\n  var _React$useState3 = React.useState(EMPTY_LIST),\n    _React$useState4 = _slicedToArray(_React$useState3, 2),\n    queue = _React$useState4[0],\n    setQueue = _React$useState4[1];\n  var mergedQueueCreate = queueCreate || (appendedRef.current ? undefined : function (appendFn) {\n    setQueue(function (origin) {\n      var newQueue = [appendFn].concat(_toConsumableArray(origin));\n      return newQueue;\n    });\n  });\n\n  // =========================== DOM ===========================\n  function append() {\n    if (!ele.parentElement) {\n      document.body.appendChild(ele);\n    }\n    appendedRef.current = true;\n  }\n  function cleanup() {\n    var _ele$parentElement;\n    (_ele$parentElement = ele.parentElement) === null || _ele$parentElement === void 0 ? void 0 : _ele$parentElement.removeChild(ele);\n    appendedRef.current = false;\n  }\n  useLayoutEffect(function () {\n    if (render) {\n      if (queueCreate) {\n        queueCreate(append);\n      } else {\n        append();\n      }\n    } else {\n      cleanup();\n    }\n    return cleanup;\n  }, [render]);\n  useLayoutEffect(function () {\n    if (queue.length) {\n      queue.forEach(function (appendFn) {\n        return appendFn();\n      });\n      setQueue(EMPTY_LIST);\n    }\n  }, [queue]);\n  return [ele, mergedQueueCreate];\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { updateCSS, removeCSS } from \"rc-util/es/Dom/dynamicCSS\";\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport { getTargetScrollBarSize } from \"rc-util/es/getScrollBarSize\";\nimport { isBodyOverflowing } from \"./util\";\nvar UNIQUE_ID = \"rc-util-locker-\".concat(Date.now());\nvar uuid = 0;\nexport default function useScrollLocker(lock) {\n  var mergedLock = !!lock;\n  var _React$useState = React.useState(function () {\n      uuid += 1;\n      return \"\".concat(UNIQUE_ID, \"_\").concat(uuid);\n    }),\n    _React$useState2 = _slicedToArray(_React$useState, 1),\n    id = _React$useState2[0];\n  useLayoutEffect(function () {\n    if (mergedLock) {\n      var scrollbarSize = getTargetScrollBarSize(document.body).width;\n      var isOverflow = isBodyOverflowing();\n      updateCSS(\"\\nhtml body {\\n  overflow-y: hidden;\\n  \".concat(isOverflow ? \"width: calc(100% - \".concat(scrollbarSize, \"px);\") : '', \"\\n}\"), id);\n    } else {\n      removeCSS(id);\n    }\n    return function () {\n      removeCSS(id);\n    };\n  }, [mergedLock, id]);\n}","/**\n * Test usage export. Do not use in your production\n */\nexport function isBodyOverflowing() {\n  return document.body.scrollHeight > (window.innerHeight || document.documentElement.clientHeight) && window.innerWidth > document.body.offsetWidth;\n}","export var inline = false;\nexport function inlineMock(nextInline) {\n  if (typeof nextInline === 'boolean') {\n    inline = nextInline;\n  }\n  return inline;\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { createPortal } from 'react-dom';\nimport canUseDom from \"rc-util/es/Dom/canUseDom\";\nimport warning from \"rc-util/es/warning\";\nimport { supportRef, useComposeRef } from \"rc-util/es/ref\";\nimport OrderContext from \"./Context\";\nimport useDom from \"./useDom\";\nimport useScrollLocker from \"./useScrollLocker\";\nimport { inlineMock } from \"./mock\";\nvar getPortalContainer = function getPortalContainer(getContainer) {\n  if (getContainer === false) {\n    return false;\n  }\n  if (!canUseDom() || !getContainer) {\n    return null;\n  }\n  if (typeof getContainer === 'string') {\n    return document.querySelector(getContainer);\n  }\n  if (typeof getContainer === 'function') {\n    return getContainer();\n  }\n  return getContainer;\n};\nvar Portal = /*#__PURE__*/React.forwardRef(function (props, ref) {\n  var open = props.open,\n    autoLock = props.autoLock,\n    getContainer = props.getContainer,\n    debug = props.debug,\n    _props$autoDestroy = props.autoDestroy,\n    autoDestroy = _props$autoDestroy === void 0 ? true : _props$autoDestroy,\n    children = props.children;\n  var _React$useState = React.useState(open),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    shouldRender = _React$useState2[0],\n    setShouldRender = _React$useState2[1];\n  var mergedRender = shouldRender || open;\n\n  // ========================= Warning =========================\n  if (process.env.NODE_ENV !== 'production') {\n    warning(canUseDom() || !open, \"Portal only work in client side. Please call 'useEffect' to show Portal instead default render in SSR.\");\n  }\n\n  // ====================== Should Render ======================\n  React.useEffect(function () {\n    if (autoDestroy || open) {\n      setShouldRender(open);\n    }\n  }, [open, autoDestroy]);\n\n  // ======================== Container ========================\n  var _React$useState3 = React.useState(function () {\n      return getPortalContainer(getContainer);\n    }),\n    _React$useState4 = _slicedToArray(_React$useState3, 2),\n    innerContainer = _React$useState4[0],\n    setInnerContainer = _React$useState4[1];\n  React.useEffect(function () {\n    var customizeContainer = getPortalContainer(getContainer);\n\n    // Tell component that we check this in effect which is safe to be `null`\n    setInnerContainer(customizeContainer !== null && customizeContainer !== void 0 ? customizeContainer : null);\n  });\n  var _useDom = useDom(mergedRender && !innerContainer, debug),\n    _useDom2 = _slicedToArray(_useDom, 2),\n    defaultContainer = _useDom2[0],\n    queueCreate = _useDom2[1];\n  var mergedContainer = innerContainer !== null && innerContainer !== void 0 ? innerContainer : defaultContainer;\n\n  // ========================= Locker ==========================\n  useScrollLocker(autoLock && open && canUseDom() && (mergedContainer === defaultContainer || mergedContainer === document.body));\n\n  // =========================== Ref ===========================\n  var childRef = null;\n  if (children && supportRef(children) && ref) {\n    var _ref = children;\n    childRef = _ref.ref;\n  }\n  var mergedRef = useComposeRef(childRef, ref);\n\n  // ========================= Render ==========================\n  // Do not render when nothing need render\n  // When innerContainer is `undefined`, it may not ready since user use ref in the same render\n  if (!mergedRender || !canUseDom() || innerContainer === undefined) {\n    return null;\n  }\n\n  // Render inline\n  var renderInline = mergedContainer === false || inlineMock();\n  var reffedChildren = children;\n  if (ref) {\n    reffedChildren = /*#__PURE__*/React.cloneElement(children, {\n      ref: mergedRef\n    });\n  }\n  return /*#__PURE__*/React.createElement(OrderContext.Provider, {\n    value: queueCreate\n  }, renderInline ? reffedChildren : /*#__PURE__*/createPortal(reffedChildren, mergedContainer));\n});\nif (process.env.NODE_ENV !== 'production') {\n  Portal.displayName = 'Portal';\n}\nexport default Portal;","import Portal from \"./Portal\";\nimport { inlineMock } from \"./mock\";\nexport { inlineMock };\nexport default Portal;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nvar attributes = \"accept acceptCharset accessKey action allowFullScreen allowTransparency\\n    alt async autoComplete autoFocus autoPlay capture cellPadding cellSpacing challenge\\n    charSet checked classID className colSpan cols content contentEditable contextMenu\\n    controls coords crossOrigin data dateTime default defer dir disabled download draggable\\n    encType form formAction formEncType formMethod formNoValidate formTarget frameBorder\\n    headers height hidden high href hrefLang htmlFor httpEquiv icon id inputMode integrity\\n    is keyParams keyType kind label lang list loop low manifest marginHeight marginWidth max maxLength media\\n    mediaGroup method min minLength multiple muted name noValidate nonce open\\n    optimum pattern placeholder poster preload radioGroup readOnly rel required\\n    reversed role rowSpan rows sandbox scope scoped scrolling seamless selected\\n    shape size sizes span spellCheck src srcDoc srcLang srcSet start step style\\n    summary tabIndex target title type useMap value width wmode wrap\";\nvar eventsName = \"onCopy onCut onPaste onCompositionEnd onCompositionStart onCompositionUpdate onKeyDown\\n    onKeyPress onKeyUp onFocus onBlur onChange onInput onSubmit onClick onContextMenu onDoubleClick\\n    onDrag onDragEnd onDragEnter onDragExit onDragLeave onDragOver onDragStart onDrop onMouseDown\\n    onMouseEnter onMouseLeave onMouseMove onMouseOut onMouseOver onMouseUp onSelect onTouchCancel\\n    onTouchEnd onTouchMove onTouchStart onScroll onWheel onAbort onCanPlay onCanPlayThrough\\n    onDurationChange onEmptied onEncrypted onEnded onError onLoadedData onLoadedMetadata\\n    onLoadStart onPause onPlay onPlaying onProgress onRateChange onSeeked onSeeking onStalled onSuspend onTimeUpdate onVolumeChange onWaiting onLoad onError\";\nvar propList = \"\".concat(attributes, \" \").concat(eventsName).split(/[\\s\\n]+/);\n\n/* eslint-enable max-len */\nvar ariaPrefix = 'aria-';\nvar dataPrefix = 'data-';\nfunction match(key, prefix) {\n  return key.indexOf(prefix) === 0;\n}\n/**\n * Picker props from exist props with filter\n * @param props Passed props\n * @param ariaOnly boolean | { aria?: boolean; data?: boolean; attr?: boolean; } filter config\n */\nexport default function pickAttrs(props) {\n  var ariaOnly = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n  var mergedConfig;\n  if (ariaOnly === false) {\n    mergedConfig = {\n      aria: true,\n      data: true,\n      attr: true\n    };\n  } else if (ariaOnly === true) {\n    mergedConfig = {\n      aria: true\n    };\n  } else {\n    mergedConfig = _objectSpread({}, ariaOnly);\n  }\n  var attrs = {};\n  Object.keys(props).forEach(function (key) {\n    if (\n    // Aria\n    mergedConfig.aria && (key === 'role' || match(key, ariaPrefix)) ||\n    // Data\n    mergedConfig.data && match(key, dataPrefix) ||\n    // Attr\n    mergedConfig.attr && propList.includes(key)) {\n      attrs[key] = props[key];\n    }\n  });\n  return attrs;\n}","/**\r\n * A collection of shims that provide minimal functionality of the ES6 collections.\r\n *\r\n * These implementations are not meant to be used outside of the ResizeObserver\r\n * modules as they cover only a limited range of use cases.\r\n */\r\n/* eslint-disable require-jsdoc, valid-jsdoc */\r\nvar MapShim = (function () {\r\n    if (typeof Map !== 'undefined') {\r\n        return Map;\r\n    }\r\n    /**\r\n     * Returns index in provided array that matches the specified key.\r\n     *\r\n     * @param {Array<Array>} arr\r\n     * @param {*} key\r\n     * @returns {number}\r\n     */\r\n    function getIndex(arr, key) {\r\n        var result = -1;\r\n        arr.some(function (entry, index) {\r\n            if (entry[0] === key) {\r\n                result = index;\r\n                return true;\r\n            }\r\n            return false;\r\n        });\r\n        return result;\r\n    }\r\n    return /** @class */ (function () {\r\n        function class_1() {\r\n            this.__entries__ = [];\r\n        }\r\n        Object.defineProperty(class_1.prototype, \"size\", {\r\n            /**\r\n             * @returns {boolean}\r\n             */\r\n            get: function () {\r\n                return this.__entries__.length;\r\n            },\r\n            enumerable: true,\r\n            configurable: true\r\n        });\r\n        /**\r\n         * @param {*} key\r\n         * @returns {*}\r\n         */\r\n        class_1.prototype.get = function (key) {\r\n            var index = getIndex(this.__entries__, key);\r\n            var entry = this.__entries__[index];\r\n            return entry && entry[1];\r\n        };\r\n        /**\r\n         * @param {*} key\r\n         * @param {*} value\r\n         * @returns {void}\r\n         */\r\n        class_1.prototype.set = function (key, value) {\r\n            var index = getIndex(this.__entries__, key);\r\n            if (~index) {\r\n                this.__entries__[index][1] = value;\r\n            }\r\n            else {\r\n                this.__entries__.push([key, value]);\r\n            }\r\n        };\r\n        /**\r\n         * @param {*} key\r\n         * @returns {void}\r\n         */\r\n        class_1.prototype.delete = function (key) {\r\n            var entries = this.__entries__;\r\n            var index = getIndex(entries, key);\r\n            if (~index) {\r\n                entries.splice(index, 1);\r\n            }\r\n        };\r\n        /**\r\n         * @param {*} key\r\n         * @returns {void}\r\n         */\r\n        class_1.prototype.has = function (key) {\r\n            return !!~getIndex(this.__entries__, key);\r\n        };\r\n        /**\r\n         * @returns {void}\r\n         */\r\n        class_1.prototype.clear = function () {\r\n            this.__entries__.splice(0);\r\n        };\r\n        /**\r\n         * @param {Function} callback\r\n         * @param {*} [ctx=null]\r\n         * @returns {void}\r\n         */\r\n        class_1.prototype.forEach = function (callback, ctx) {\r\n            if (ctx === void 0) { ctx = null; }\r\n            for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\r\n                var entry = _a[_i];\r\n                callback.call(ctx, entry[1], entry[0]);\r\n            }\r\n        };\r\n        return class_1;\r\n    }());\r\n})();\n\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\r\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;\n\n// Returns global object of a current environment.\r\nvar global$1 = (function () {\r\n    if (typeof global !== 'undefined' && global.Math === Math) {\r\n        return global;\r\n    }\r\n    if (typeof self !== 'undefined' && self.Math === Math) {\r\n        return self;\r\n    }\r\n    if (typeof window !== 'undefined' && window.Math === Math) {\r\n        return window;\r\n    }\r\n    // eslint-disable-next-line no-new-func\r\n    return Function('return this')();\r\n})();\n\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\r\nvar requestAnimationFrame$1 = (function () {\r\n    if (typeof requestAnimationFrame === 'function') {\r\n        // It's required to use a bounded function because IE sometimes throws\r\n        // an \"Invalid calling object\" error if rAF is invoked without the global\r\n        // object on the left hand side.\r\n        return requestAnimationFrame.bind(global$1);\r\n    }\r\n    return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };\r\n})();\n\n// Defines minimum timeout before adding a trailing call.\r\nvar trailingTimeout = 2;\r\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\r\nfunction throttle (callback, delay) {\r\n    var leadingCall = false, trailingCall = false, lastCallTime = 0;\r\n    /**\r\n     * Invokes the original callback function and schedules new invocation if\r\n     * the \"proxy\" was called during current request.\r\n     *\r\n     * @returns {void}\r\n     */\r\n    function resolvePending() {\r\n        if (leadingCall) {\r\n            leadingCall = false;\r\n            callback();\r\n        }\r\n        if (trailingCall) {\r\n            proxy();\r\n        }\r\n    }\r\n    /**\r\n     * Callback invoked after the specified delay. It will further postpone\r\n     * invocation of the original function delegating it to the\r\n     * requestAnimationFrame.\r\n     *\r\n     * @returns {void}\r\n     */\r\n    function timeoutCallback() {\r\n        requestAnimationFrame$1(resolvePending);\r\n    }\r\n    /**\r\n     * Schedules invocation of the original function.\r\n     *\r\n     * @returns {void}\r\n     */\r\n    function proxy() {\r\n        var timeStamp = Date.now();\r\n        if (leadingCall) {\r\n            // Reject immediately following calls.\r\n            if (timeStamp - lastCallTime < trailingTimeout) {\r\n                return;\r\n            }\r\n            // Schedule new call to be in invoked when the pending one is resolved.\r\n            // This is important for \"transitions\" which never actually start\r\n            // immediately so there is a chance that we might miss one if change\r\n            // happens amids the pending invocation.\r\n            trailingCall = true;\r\n        }\r\n        else {\r\n            leadingCall = true;\r\n            trailingCall = false;\r\n            setTimeout(timeoutCallback, delay);\r\n        }\r\n        lastCallTime = timeStamp;\r\n    }\r\n    return proxy;\r\n}\n\n// Minimum delay before invoking the update of observers.\r\nvar REFRESH_DELAY = 20;\r\n// A list of substrings of CSS properties used to find transition events that\r\n// might affect dimensions of observed elements.\r\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];\r\n// Check if MutationObserver is available.\r\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\r\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\r\nvar ResizeObserverController = /** @class */ (function () {\r\n    /**\r\n     * Creates a new instance of ResizeObserverController.\r\n     *\r\n     * @private\r\n     */\r\n    function ResizeObserverController() {\r\n        /**\r\n         * Indicates whether DOM listeners have been added.\r\n         *\r\n         * @private {boolean}\r\n         */\r\n        this.connected_ = false;\r\n        /**\r\n         * Tells that controller has subscribed for Mutation Events.\r\n         *\r\n         * @private {boolean}\r\n         */\r\n        this.mutationEventsAdded_ = false;\r\n        /**\r\n         * Keeps reference to the instance of MutationObserver.\r\n         *\r\n         * @private {MutationObserver}\r\n         */\r\n        this.mutationsObserver_ = null;\r\n        /**\r\n         * A list of connected observers.\r\n         *\r\n         * @private {Array<ResizeObserverSPI>}\r\n         */\r\n        this.observers_ = [];\r\n        this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\r\n        this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\r\n    }\r\n    /**\r\n     * Adds observer to observers list.\r\n     *\r\n     * @param {ResizeObserverSPI} observer - Observer to be added.\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverController.prototype.addObserver = function (observer) {\r\n        if (!~this.observers_.indexOf(observer)) {\r\n            this.observers_.push(observer);\r\n        }\r\n        // Add listeners if they haven't been added yet.\r\n        if (!this.connected_) {\r\n            this.connect_();\r\n        }\r\n    };\r\n    /**\r\n     * Removes observer from observers list.\r\n     *\r\n     * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverController.prototype.removeObserver = function (observer) {\r\n        var observers = this.observers_;\r\n        var index = observers.indexOf(observer);\r\n        // Remove observer if it's present in registry.\r\n        if (~index) {\r\n            observers.splice(index, 1);\r\n        }\r\n        // Remove listeners if controller has no connected observers.\r\n        if (!observers.length && this.connected_) {\r\n            this.disconnect_();\r\n        }\r\n    };\r\n    /**\r\n     * Invokes the update of observers. It will continue running updates insofar\r\n     * it detects changes.\r\n     *\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverController.prototype.refresh = function () {\r\n        var changesDetected = this.updateObservers_();\r\n        // Continue running updates if changes have been detected as there might\r\n        // be future ones caused by CSS transitions.\r\n        if (changesDetected) {\r\n            this.refresh();\r\n        }\r\n    };\r\n    /**\r\n     * Updates every observer from observers list and notifies them of queued\r\n     * entries.\r\n     *\r\n     * @private\r\n     * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n     *      dimensions of it's elements.\r\n     */\r\n    ResizeObserverController.prototype.updateObservers_ = function () {\r\n        // Collect observers that have active observations.\r\n        var activeObservers = this.observers_.filter(function (observer) {\r\n            return observer.gatherActive(), observer.hasActive();\r\n        });\r\n        // Deliver notifications in a separate cycle in order to avoid any\r\n        // collisions between observers, e.g. when multiple instances of\r\n        // ResizeObserver are tracking the same element and the callback of one\r\n        // of them changes content dimensions of the observed target. Sometimes\r\n        // this may result in notifications being blocked for the rest of observers.\r\n        activeObservers.forEach(function (observer) { return observer.broadcastActive(); });\r\n        return activeObservers.length > 0;\r\n    };\r\n    /**\r\n     * Initializes DOM listeners.\r\n     *\r\n     * @private\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverController.prototype.connect_ = function () {\r\n        // Do nothing if running in a non-browser environment or if listeners\r\n        // have been already added.\r\n        if (!isBrowser || this.connected_) {\r\n            return;\r\n        }\r\n        // Subscription to the \"Transitionend\" event is used as a workaround for\r\n        // delayed transitions. This way it's possible to capture at least the\r\n        // final state of an element.\r\n        document.addEventListener('transitionend', this.onTransitionEnd_);\r\n        window.addEventListener('resize', this.refresh);\r\n        if (mutationObserverSupported) {\r\n            this.mutationsObserver_ = new MutationObserver(this.refresh);\r\n            this.mutationsObserver_.observe(document, {\r\n                attributes: true,\r\n                childList: true,\r\n                characterData: true,\r\n                subtree: true\r\n            });\r\n        }\r\n        else {\r\n            document.addEventListener('DOMSubtreeModified', this.refresh);\r\n            this.mutationEventsAdded_ = true;\r\n        }\r\n        this.connected_ = true;\r\n    };\r\n    /**\r\n     * Removes DOM listeners.\r\n     *\r\n     * @private\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverController.prototype.disconnect_ = function () {\r\n        // Do nothing if running in a non-browser environment or if listeners\r\n        // have been already removed.\r\n        if (!isBrowser || !this.connected_) {\r\n            return;\r\n        }\r\n        document.removeEventListener('transitionend', this.onTransitionEnd_);\r\n        window.removeEventListener('resize', this.refresh);\r\n        if (this.mutationsObserver_) {\r\n            this.mutationsObserver_.disconnect();\r\n        }\r\n        if (this.mutationEventsAdded_) {\r\n            document.removeEventListener('DOMSubtreeModified', this.refresh);\r\n        }\r\n        this.mutationsObserver_ = null;\r\n        this.mutationEventsAdded_ = false;\r\n        this.connected_ = false;\r\n    };\r\n    /**\r\n     * \"Transitionend\" event handler.\r\n     *\r\n     * @private\r\n     * @param {TransitionEvent} event\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\r\n        var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;\r\n        // Detect whether transition may affect dimensions of an element.\r\n        var isReflowProperty = transitionKeys.some(function (key) {\r\n            return !!~propertyName.indexOf(key);\r\n        });\r\n        if (isReflowProperty) {\r\n            this.refresh();\r\n        }\r\n    };\r\n    /**\r\n     * Returns instance of the ResizeObserverController.\r\n     *\r\n     * @returns {ResizeObserverController}\r\n     */\r\n    ResizeObserverController.getInstance = function () {\r\n        if (!this.instance_) {\r\n            this.instance_ = new ResizeObserverController();\r\n        }\r\n        return this.instance_;\r\n    };\r\n    /**\r\n     * Holds reference to the controller's instance.\r\n     *\r\n     * @private {ResizeObserverController}\r\n     */\r\n    ResizeObserverController.instance_ = null;\r\n    return ResizeObserverController;\r\n}());\n\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\r\nvar defineConfigurable = (function (target, props) {\r\n    for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\r\n        var key = _a[_i];\r\n        Object.defineProperty(target, key, {\r\n            value: props[key],\r\n            enumerable: false,\r\n            writable: false,\r\n            configurable: true\r\n        });\r\n    }\r\n    return target;\r\n});\n\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\r\nvar getWindowOf = (function (target) {\r\n    // Assume that the element is an instance of Node, which means that it\r\n    // has the \"ownerDocument\" property from which we can retrieve a\r\n    // corresponding global object.\r\n    var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;\r\n    // Return the local global object if it's not possible extract one from\r\n    // provided element.\r\n    return ownerGlobal || global$1;\r\n});\n\n// Placeholder of an empty content rectangle.\r\nvar emptyRect = createRectInit(0, 0, 0, 0);\r\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\r\nfunction toFloat(value) {\r\n    return parseFloat(value) || 0;\r\n}\r\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\r\nfunction getBordersSize(styles) {\r\n    var positions = [];\r\n    for (var _i = 1; _i < arguments.length; _i++) {\r\n        positions[_i - 1] = arguments[_i];\r\n    }\r\n    return positions.reduce(function (size, position) {\r\n        var value = styles['border-' + position + '-width'];\r\n        return size + toFloat(value);\r\n    }, 0);\r\n}\r\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\r\nfunction getPaddings(styles) {\r\n    var positions = ['top', 'right', 'bottom', 'left'];\r\n    var paddings = {};\r\n    for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\r\n        var position = positions_1[_i];\r\n        var value = styles['padding-' + position];\r\n        paddings[position] = toFloat(value);\r\n    }\r\n    return paddings;\r\n}\r\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n *      to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getSVGContentRect(target) {\r\n    var bbox = target.getBBox();\r\n    return createRectInit(0, 0, bbox.width, bbox.height);\r\n}\r\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getHTMLElementContentRect(target) {\r\n    // Client width & height properties can't be\r\n    // used exclusively as they provide rounded values.\r\n    var clientWidth = target.clientWidth, clientHeight = target.clientHeight;\r\n    // By this condition we can catch all non-replaced inline, hidden and\r\n    // detached elements. Though elements with width & height properties less\r\n    // than 0.5 will be discarded as well.\r\n    //\r\n    // Without it we would need to implement separate methods for each of\r\n    // those cases and it's not possible to perform a precise and performance\r\n    // effective test for hidden elements. E.g. even jQuery's ':visible' filter\r\n    // gives wrong results for elements with width & height less than 0.5.\r\n    if (!clientWidth && !clientHeight) {\r\n        return emptyRect;\r\n    }\r\n    var styles = getWindowOf(target).getComputedStyle(target);\r\n    var paddings = getPaddings(styles);\r\n    var horizPad = paddings.left + paddings.right;\r\n    var vertPad = paddings.top + paddings.bottom;\r\n    // Computed styles of width & height are being used because they are the\r\n    // only dimensions available to JS that contain non-rounded values. It could\r\n    // be possible to utilize the getBoundingClientRect if only it's data wasn't\r\n    // affected by CSS transformations let alone paddings, borders and scroll bars.\r\n    var width = toFloat(styles.width), height = toFloat(styles.height);\r\n    // Width & height include paddings and borders when the 'border-box' box\r\n    // model is applied (except for IE).\r\n    if (styles.boxSizing === 'border-box') {\r\n        // Following conditions are required to handle Internet Explorer which\r\n        // doesn't include paddings and borders to computed CSS dimensions.\r\n        //\r\n        // We can say that if CSS dimensions + paddings are equal to the \"client\"\r\n        // properties then it's either IE, and thus we don't need to subtract\r\n        // anything, or an element merely doesn't have paddings/borders styles.\r\n        if (Math.round(width + horizPad) !== clientWidth) {\r\n            width -= getBordersSize(styles, 'left', 'right') + horizPad;\r\n        }\r\n        if (Math.round(height + vertPad) !== clientHeight) {\r\n            height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\r\n        }\r\n    }\r\n    // Following steps can't be applied to the document's root element as its\r\n    // client[Width/Height] properties represent viewport area of the window.\r\n    // Besides, it's as well not necessary as the <html> itself neither has\r\n    // rendered scroll bars nor it can be clipped.\r\n    if (!isDocumentElement(target)) {\r\n        // In some browsers (only in Firefox, actually) CSS width & height\r\n        // include scroll bars size which can be removed at this step as scroll\r\n        // bars are the only difference between rounded dimensions + paddings\r\n        // and \"client\" properties, though that is not always true in Chrome.\r\n        var vertScrollbar = Math.round(width + horizPad) - clientWidth;\r\n        var horizScrollbar = Math.round(height + vertPad) - clientHeight;\r\n        // Chrome has a rather weird rounding of \"client\" properties.\r\n        // E.g. for an element with content width of 314.2px it sometimes gives\r\n        // the client width of 315px and for the width of 314.7px it may give\r\n        // 314px. And it doesn't happen all the time. So just ignore this delta\r\n        // as a non-relevant.\r\n        if (Math.abs(vertScrollbar) !== 1) {\r\n            width -= vertScrollbar;\r\n        }\r\n        if (Math.abs(horizScrollbar) !== 1) {\r\n            height -= horizScrollbar;\r\n        }\r\n    }\r\n    return createRectInit(paddings.left, paddings.top, width, height);\r\n}\r\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nvar isSVGGraphicsElement = (function () {\r\n    // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\r\n    // interface.\r\n    if (typeof SVGGraphicsElement !== 'undefined') {\r\n        return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };\r\n    }\r\n    // If it's so, then check that element is at least an instance of the\r\n    // SVGElement and that it has the \"getBBox\" method.\r\n    // eslint-disable-next-line no-extra-parens\r\n    return function (target) { return (target instanceof getWindowOf(target).SVGElement &&\r\n        typeof target.getBBox === 'function'); };\r\n})();\r\n/**\r\n * Checks whether provided element is a document element (<html>).\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nfunction isDocumentElement(target) {\r\n    return target === getWindowOf(target).document.documentElement;\r\n}\r\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getContentRect(target) {\r\n    if (!isBrowser) {\r\n        return emptyRect;\r\n    }\r\n    if (isSVGGraphicsElement(target)) {\r\n        return getSVGContentRect(target);\r\n    }\r\n    return getHTMLElementContentRect(target);\r\n}\r\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\r\nfunction createReadOnlyRect(_a) {\r\n    var x = _a.x, y = _a.y, width = _a.width, height = _a.height;\r\n    // If DOMRectReadOnly is available use it as a prototype for the rectangle.\r\n    var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\r\n    var rect = Object.create(Constr.prototype);\r\n    // Rectangle's properties are not writable and non-enumerable.\r\n    defineConfigurable(rect, {\r\n        x: x, y: y, width: width, height: height,\r\n        top: y,\r\n        right: x + width,\r\n        bottom: height + y,\r\n        left: x\r\n    });\r\n    return rect;\r\n}\r\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction createRectInit(x, y, width, height) {\r\n    return { x: x, y: y, width: width, height: height };\r\n}\n\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\r\nvar ResizeObservation = /** @class */ (function () {\r\n    /**\r\n     * Creates an instance of ResizeObservation.\r\n     *\r\n     * @param {Element} target - Element to be observed.\r\n     */\r\n    function ResizeObservation(target) {\r\n        /**\r\n         * Broadcasted width of content rectangle.\r\n         *\r\n         * @type {number}\r\n         */\r\n        this.broadcastWidth = 0;\r\n        /**\r\n         * Broadcasted height of content rectangle.\r\n         *\r\n         * @type {number}\r\n         */\r\n        this.broadcastHeight = 0;\r\n        /**\r\n         * Reference to the last observed content rectangle.\r\n         *\r\n         * @private {DOMRectInit}\r\n         */\r\n        this.contentRect_ = createRectInit(0, 0, 0, 0);\r\n        this.target = target;\r\n    }\r\n    /**\r\n     * Updates content rectangle and tells whether it's width or height properties\r\n     * have changed since the last broadcast.\r\n     *\r\n     * @returns {boolean}\r\n     */\r\n    ResizeObservation.prototype.isActive = function () {\r\n        var rect = getContentRect(this.target);\r\n        this.contentRect_ = rect;\r\n        return (rect.width !== this.broadcastWidth ||\r\n            rect.height !== this.broadcastHeight);\r\n    };\r\n    /**\r\n     * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n     * from the corresponding properties of the last observed content rectangle.\r\n     *\r\n     * @returns {DOMRectInit} Last observed content rectangle.\r\n     */\r\n    ResizeObservation.prototype.broadcastRect = function () {\r\n        var rect = this.contentRect_;\r\n        this.broadcastWidth = rect.width;\r\n        this.broadcastHeight = rect.height;\r\n        return rect;\r\n    };\r\n    return ResizeObservation;\r\n}());\n\nvar ResizeObserverEntry = /** @class */ (function () {\r\n    /**\r\n     * Creates an instance of ResizeObserverEntry.\r\n     *\r\n     * @param {Element} target - Element that is being observed.\r\n     * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n     */\r\n    function ResizeObserverEntry(target, rectInit) {\r\n        var contentRect = createReadOnlyRect(rectInit);\r\n        // According to the specification following properties are not writable\r\n        // and are also not enumerable in the native implementation.\r\n        //\r\n        // Property accessors are not being used as they'd require to define a\r\n        // private WeakMap storage which may cause memory leaks in browsers that\r\n        // don't support this type of collections.\r\n        defineConfigurable(this, { target: target, contentRect: contentRect });\r\n    }\r\n    return ResizeObserverEntry;\r\n}());\n\nvar ResizeObserverSPI = /** @class */ (function () {\r\n    /**\r\n     * Creates a new instance of ResizeObserver.\r\n     *\r\n     * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n     *      when one of the observed elements changes it's content dimensions.\r\n     * @param {ResizeObserverController} controller - Controller instance which\r\n     *      is responsible for the updates of observer.\r\n     * @param {ResizeObserver} callbackCtx - Reference to the public\r\n     *      ResizeObserver instance which will be passed to callback function.\r\n     */\r\n    function ResizeObserverSPI(callback, controller, callbackCtx) {\r\n        /**\r\n         * Collection of resize observations that have detected changes in dimensions\r\n         * of elements.\r\n         *\r\n         * @private {Array<ResizeObservation>}\r\n         */\r\n        this.activeObservations_ = [];\r\n        /**\r\n         * Registry of the ResizeObservation instances.\r\n         *\r\n         * @private {Map<Element, ResizeObservation>}\r\n         */\r\n        this.observations_ = new MapShim();\r\n        if (typeof callback !== 'function') {\r\n            throw new TypeError('The callback provided as parameter 1 is not a function.');\r\n        }\r\n        this.callback_ = callback;\r\n        this.controller_ = controller;\r\n        this.callbackCtx_ = callbackCtx;\r\n    }\r\n    /**\r\n     * Starts observing provided element.\r\n     *\r\n     * @param {Element} target - Element to be observed.\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverSPI.prototype.observe = function (target) {\r\n        if (!arguments.length) {\r\n            throw new TypeError('1 argument required, but only 0 present.');\r\n        }\r\n        // Do nothing if current environment doesn't have the Element interface.\r\n        if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n            return;\r\n        }\r\n        if (!(target instanceof getWindowOf(target).Element)) {\r\n            throw new TypeError('parameter 1 is not of type \"Element\".');\r\n        }\r\n        var observations = this.observations_;\r\n        // Do nothing if element is already being observed.\r\n        if (observations.has(target)) {\r\n            return;\r\n        }\r\n        observations.set(target, new ResizeObservation(target));\r\n        this.controller_.addObserver(this);\r\n        // Force the update of observations.\r\n        this.controller_.refresh();\r\n    };\r\n    /**\r\n     * Stops observing provided element.\r\n     *\r\n     * @param {Element} target - Element to stop observing.\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverSPI.prototype.unobserve = function (target) {\r\n        if (!arguments.length) {\r\n            throw new TypeError('1 argument required, but only 0 present.');\r\n        }\r\n        // Do nothing if current environment doesn't have the Element interface.\r\n        if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n            return;\r\n        }\r\n        if (!(target instanceof getWindowOf(target).Element)) {\r\n            throw new TypeError('parameter 1 is not of type \"Element\".');\r\n        }\r\n        var observations = this.observations_;\r\n        // Do nothing if element is not being observed.\r\n        if (!observations.has(target)) {\r\n            return;\r\n        }\r\n        observations.delete(target);\r\n        if (!observations.size) {\r\n            this.controller_.removeObserver(this);\r\n        }\r\n    };\r\n    /**\r\n     * Stops observing all elements.\r\n     *\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverSPI.prototype.disconnect = function () {\r\n        this.clearActive();\r\n        this.observations_.clear();\r\n        this.controller_.removeObserver(this);\r\n    };\r\n    /**\r\n     * Collects observation instances the associated element of which has changed\r\n     * it's content rectangle.\r\n     *\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverSPI.prototype.gatherActive = function () {\r\n        var _this = this;\r\n        this.clearActive();\r\n        this.observations_.forEach(function (observation) {\r\n            if (observation.isActive()) {\r\n                _this.activeObservations_.push(observation);\r\n            }\r\n        });\r\n    };\r\n    /**\r\n     * Invokes initial callback function with a list of ResizeObserverEntry\r\n     * instances collected from active resize observations.\r\n     *\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverSPI.prototype.broadcastActive = function () {\r\n        // Do nothing if observer doesn't have active observations.\r\n        if (!this.hasActive()) {\r\n            return;\r\n        }\r\n        var ctx = this.callbackCtx_;\r\n        // Create ResizeObserverEntry instance for every active observation.\r\n        var entries = this.activeObservations_.map(function (observation) {\r\n            return new ResizeObserverEntry(observation.target, observation.broadcastRect());\r\n        });\r\n        this.callback_.call(ctx, entries, ctx);\r\n        this.clearActive();\r\n    };\r\n    /**\r\n     * Clears the collection of active observations.\r\n     *\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverSPI.prototype.clearActive = function () {\r\n        this.activeObservations_.splice(0);\r\n    };\r\n    /**\r\n     * Tells whether observer has active observations.\r\n     *\r\n     * @returns {boolean}\r\n     */\r\n    ResizeObserverSPI.prototype.hasActive = function () {\r\n        return this.activeObservations_.length > 0;\r\n    };\r\n    return ResizeObserverSPI;\r\n}());\n\n// Registry of internal observers. If WeakMap is not available use current shim\r\n// for the Map collection as it has all required methods and because WeakMap\r\n// can't be fully polyfilled anyway.\r\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\r\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\r\nvar ResizeObserver = /** @class */ (function () {\r\n    /**\r\n     * Creates a new instance of ResizeObserver.\r\n     *\r\n     * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n     *      dimensions of the observed elements change.\r\n     */\r\n    function ResizeObserver(callback) {\r\n        if (!(this instanceof ResizeObserver)) {\r\n            throw new TypeError('Cannot call a class as a function.');\r\n        }\r\n        if (!arguments.length) {\r\n            throw new TypeError('1 argument required, but only 0 present.');\r\n        }\r\n        var controller = ResizeObserverController.getInstance();\r\n        var observer = new ResizeObserverSPI(callback, controller, this);\r\n        observers.set(this, observer);\r\n    }\r\n    return ResizeObserver;\r\n}());\r\n// Expose public methods of ResizeObserver.\r\n[\r\n    'observe',\r\n    'unobserve',\r\n    'disconnect'\r\n].forEach(function (method) {\r\n    ResizeObserver.prototype[method] = function () {\r\n        var _a;\r\n        return (_a = observers.get(this))[method].apply(_a, arguments);\r\n    };\r\n});\n\nvar index = (function () {\r\n    // Export existing implementation if available.\r\n    if (typeof global$1.ResizeObserver !== 'undefined') {\r\n        return global$1.ResizeObserver;\r\n    }\r\n    return ResizeObserver;\r\n})();\n\nexport default index;\n","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport { isValidElement, version } from 'react';\nimport { ForwardRef, isFragment, isMemo } from 'react-is';\nimport useMemo from \"./hooks/useMemo\";\nexport var fillRef = function fillRef(ref, node) {\n  if (typeof ref === 'function') {\n    ref(node);\n  } else if (_typeof(ref) === 'object' && ref && 'current' in ref) {\n    ref.current = node;\n  }\n};\n\n/**\n * Merge refs into one ref function to support ref passing.\n */\nexport var composeRef = function composeRef() {\n  for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {\n    refs[_key] = arguments[_key];\n  }\n  var refList = refs.filter(Boolean);\n  if (refList.length <= 1) {\n    return refList[0];\n  }\n  return function (node) {\n    refs.forEach(function (ref) {\n      fillRef(ref, node);\n    });\n  };\n};\nexport var useComposeRef = function useComposeRef() {\n  for (var _len2 = arguments.length, refs = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n    refs[_key2] = arguments[_key2];\n  }\n  return useMemo(function () {\n    return composeRef.apply(void 0, refs);\n  }, refs, function (prev, next) {\n    return prev.length !== next.length || prev.every(function (ref, i) {\n      return ref !== next[i];\n    });\n  });\n};\nexport var supportRef = function supportRef(nodeOrComponent) {\n  var _type$prototype, _nodeOrComponent$prot;\n  var type = isMemo(nodeOrComponent) ? nodeOrComponent.type.type : nodeOrComponent.type;\n\n  // Function component node\n  if (typeof type === 'function' && !((_type$prototype = type.prototype) !== null && _type$prototype !== void 0 && _type$prototype.render) && type.$$typeof !== ForwardRef) {\n    return false;\n  }\n\n  // Class component\n  if (typeof nodeOrComponent === 'function' && !((_nodeOrComponent$prot = nodeOrComponent.prototype) !== null && _nodeOrComponent$prot !== void 0 && _nodeOrComponent$prot.render) && nodeOrComponent.$$typeof !== ForwardRef) {\n    return false;\n  }\n  return true;\n};\nfunction isReactElement(node) {\n  return /*#__PURE__*/isValidElement(node) && !isFragment(node);\n}\nexport var supportNodeRef = function supportNodeRef(node) {\n  return isReactElement(node) && supportRef(node);\n};\n\n/**\n * In React 19. `ref` is not a property from node.\n * But a property from `props.ref`.\n * To check if `props.ref` exist or fallback to `ref`.\n */\nexport var getNodeRef = Number(version.split('.')[0]) >= 19 ?\n// >= React 19\nfunction (node) {\n  if (isReactElement(node)) {\n    return node.props.ref;\n  }\n  return null;\n} :\n// < React 19\nfunction (node) {\n  if (isReactElement(node)) {\n    return node.ref;\n  }\n  return null;\n};","'use strict';\n\nconst util = require('./util');\n\nconst defaultOptions = {\n  allowBooleanAttributes: false, //A tag can have attributes without any value\n  unpairedTags: []\n};\n\n//const tagsPattern = new RegExp(\"<\\\\/?([\\\\w:\\\\-_\\.]+)\\\\s*\\/?>\",\"g\");\nexports.validate = function (xmlData, options) {\n  options = Object.assign({}, defaultOptions, options);\n\n  //xmlData = xmlData.replace(/(\\r\\n|\\n|\\r)/gm,\"\");//make it single line\n  //xmlData = xmlData.replace(/(^\\s*<\\?xml.*?\\?>)/g,\"\");//Remove XML starting tag\n  //xmlData = xmlData.replace(/(<!DOCTYPE[\\s\\w\\\"\\.\\/\\-\\:]+(\\[.*\\])*\\s*>)/g,\"\");//Remove DOCTYPE\n  const tags = [];\n  let tagFound = false;\n\n  //indicates that the root tag has been closed (aka. depth 0 has been reached)\n  let reachedRoot = false;\n\n  if (xmlData[0] === '\\ufeff') {\n    // check for byte order mark (BOM)\n    xmlData = xmlData.substr(1);\n  }\n  \n  for (let i = 0; i < xmlData.length; i++) {\n\n    if (xmlData[i] === '<' && xmlData[i+1] === '?') {\n      i+=2;\n      i = readPI(xmlData,i);\n      if (i.err) return i;\n    }else if (xmlData[i] === '<') {\n      //starting of tag\n      //read until you reach to '>' avoiding any '>' in attribute value\n      let tagStartPos = i;\n      i++;\n      \n      if (xmlData[i] === '!') {\n        i = readCommentAndCDATA(xmlData, i);\n        continue;\n      } else {\n        let closingTag = false;\n        if (xmlData[i] === '/') {\n          //closing tag\n          closingTag = true;\n          i++;\n        }\n        //read tagname\n        let tagName = '';\n        for (; i < xmlData.length &&\n          xmlData[i] !== '>' &&\n          xmlData[i] !== ' ' &&\n          xmlData[i] !== '\\t' &&\n          xmlData[i] !== '\\n' &&\n          xmlData[i] !== '\\r'; i++\n        ) {\n          tagName += xmlData[i];\n        }\n        tagName = tagName.trim();\n        //console.log(tagName);\n\n        if (tagName[tagName.length - 1] === '/') {\n          //self closing tag without attributes\n          tagName = tagName.substring(0, tagName.length - 1);\n          //continue;\n          i--;\n        }\n        if (!validateTagName(tagName)) {\n          let msg;\n          if (tagName.trim().length === 0) {\n            msg = \"Invalid space after '<'.\";\n          } else {\n            msg = \"Tag '\"+tagName+\"' is an invalid name.\";\n          }\n          return getErrorObject('InvalidTag', msg, getLineNumberForPosition(xmlData, i));\n        }\n\n        const result = readAttributeStr(xmlData, i);\n        if (result === false) {\n          return getErrorObject('InvalidAttr', \"Attributes for '\"+tagName+\"' have open quote.\", getLineNumberForPosition(xmlData, i));\n        }\n        let attrStr = result.value;\n        i = result.index;\n\n        if (attrStr[attrStr.length - 1] === '/') {\n          //self closing tag\n          const attrStrStart = i - attrStr.length;\n          attrStr = attrStr.substring(0, attrStr.length - 1);\n          const isValid = validateAttributeString(attrStr, options);\n          if (isValid === true) {\n            tagFound = true;\n            //continue; //text may presents after self closing tag\n          } else {\n            //the result from the nested function returns the position of the error within the attribute\n            //in order to get the 'true' error line, we need to calculate the position where the attribute begins (i - attrStr.length) and then add the position within the attribute\n            //this gives us the absolute index in the entire xml, which we can use to find the line at last\n            return getErrorObject(isValid.err.code, isValid.err.msg, getLineNumberForPosition(xmlData, attrStrStart + isValid.err.line));\n          }\n        } else if (closingTag) {\n          if (!result.tagClosed) {\n            return getErrorObject('InvalidTag', \"Closing tag '\"+tagName+\"' doesn't have proper closing.\", getLineNumberForPosition(xmlData, i));\n          } else if (attrStr.trim().length > 0) {\n            return getErrorObject('InvalidTag', \"Closing tag '\"+tagName+\"' can't have attributes or invalid starting.\", getLineNumberForPosition(xmlData, tagStartPos));\n          } else if (tags.length === 0) {\n            return getErrorObject('InvalidTag', \"Closing tag '\"+tagName+\"' has not been opened.\", getLineNumberForPosition(xmlData, tagStartPos));\n          } else {\n            const otg = tags.pop();\n            if (tagName !== otg.tagName) {\n              let openPos = getLineNumberForPosition(xmlData, otg.tagStartPos);\n              return getErrorObject('InvalidTag',\n                \"Expected closing tag '\"+otg.tagName+\"' (opened in line \"+openPos.line+\", col \"+openPos.col+\") instead of closing tag '\"+tagName+\"'.\",\n                getLineNumberForPosition(xmlData, tagStartPos));\n            }\n\n            //when there are no more tags, we reached the root level.\n            if (tags.length == 0) {\n              reachedRoot = true;\n            }\n          }\n        } else {\n          const isValid = validateAttributeString(attrStr, options);\n          if (isValid !== true) {\n            //the result from the nested function returns the position of the error within the attribute\n            //in order to get the 'true' error line, we need to calculate the position where the attribute begins (i - attrStr.length) and then add the position within the attribute\n            //this gives us the absolute index in the entire xml, which we can use to find the line at last\n            return getErrorObject(isValid.err.code, isValid.err.msg, getLineNumberForPosition(xmlData, i - attrStr.length + isValid.err.line));\n          }\n\n          //if the root level has been reached before ...\n          if (reachedRoot === true) {\n            return getErrorObject('InvalidXml', 'Multiple possible root nodes found.', getLineNumberForPosition(xmlData, i));\n          } else if(options.unpairedTags.indexOf(tagName) !== -1){\n            //don't push into stack\n          } else {\n            tags.push({tagName, tagStartPos});\n          }\n          tagFound = true;\n        }\n\n        //skip tag text value\n        //It may include comments and CDATA value\n        for (i++; i < xmlData.length; i++) {\n          if (xmlData[i] === '<') {\n            if (xmlData[i + 1] === '!') {\n              //comment or CADATA\n              i++;\n              i = readCommentAndCDATA(xmlData, i);\n              continue;\n            } else if (xmlData[i+1] === '?') {\n              i = readPI(xmlData, ++i);\n              if (i.err) return i;\n            } else{\n              break;\n            }\n          } else if (xmlData[i] === '&') {\n            const afterAmp = validateAmpersand(xmlData, i);\n            if (afterAmp == -1)\n              return getErrorObject('InvalidChar', \"char '&' is not expected.\", getLineNumberForPosition(xmlData, i));\n            i = afterAmp;\n          }else{\n            if (reachedRoot === true && !isWhiteSpace(xmlData[i])) {\n              return getErrorObject('InvalidXml', \"Extra text at the end\", getLineNumberForPosition(xmlData, i));\n            }\n          }\n        } //end of reading tag text value\n        if (xmlData[i] === '<') {\n          i--;\n        }\n      }\n    } else {\n      if ( isWhiteSpace(xmlData[i])) {\n        continue;\n      }\n      return getErrorObject('InvalidChar', \"char '\"+xmlData[i]+\"' is not expected.\", getLineNumberForPosition(xmlData, i));\n    }\n  }\n\n  if (!tagFound) {\n    return getErrorObject('InvalidXml', 'Start tag expected.', 1);\n  }else if (tags.length == 1) {\n      return getErrorObject('InvalidTag', \"Unclosed tag '\"+tags[0].tagName+\"'.\", getLineNumberForPosition(xmlData, tags[0].tagStartPos));\n  }else if (tags.length > 0) {\n      return getErrorObject('InvalidXml', \"Invalid '\"+\n          JSON.stringify(tags.map(t => t.tagName), null, 4).replace(/\\r?\\n/g, '')+\n          \"' found.\", {line: 1, col: 1});\n  }\n\n  return true;\n};\n\nfunction isWhiteSpace(char){\n  return char === ' ' || char === '\\t' || char === '\\n'  || char === '\\r';\n}\n/**\n * Read Processing insstructions and skip\n * @param {*} xmlData\n * @param {*} i\n */\nfunction readPI(xmlData, i) {\n  const start = i;\n  for (; i < xmlData.length; i++) {\n    if (xmlData[i] == '?' || xmlData[i] == ' ') {\n      //tagname\n      const tagname = xmlData.substr(start, i - start);\n      if (i > 5 && tagname === 'xml') {\n        return getErrorObject('InvalidXml', 'XML declaration allowed only at the start of the document.', getLineNumberForPosition(xmlData, i));\n      } else if (xmlData[i] == '?' && xmlData[i + 1] == '>') {\n        //check if valid attribut string\n        i++;\n        break;\n      } else {\n        continue;\n      }\n    }\n  }\n  return i;\n}\n\nfunction readCommentAndCDATA(xmlData, i) {\n  if (xmlData.length > i + 5 && xmlData[i + 1] === '-' && xmlData[i + 2] === '-') {\n    //comment\n    for (i += 3; i < xmlData.length; i++) {\n      if (xmlData[i] === '-' && xmlData[i + 1] === '-' && xmlData[i + 2] === '>') {\n        i += 2;\n        break;\n      }\n    }\n  } else if (\n    xmlData.length > i + 8 &&\n    xmlData[i + 1] === 'D' &&\n    xmlData[i + 2] === 'O' &&\n    xmlData[i + 3] === 'C' &&\n    xmlData[i + 4] === 'T' &&\n    xmlData[i + 5] === 'Y' &&\n    xmlData[i + 6] === 'P' &&\n    xmlData[i + 7] === 'E'\n  ) {\n    let angleBracketsCount = 1;\n    for (i += 8; i < xmlData.length; i++) {\n      if (xmlData[i] === '<') {\n        angleBracketsCount++;\n      } else if (xmlData[i] === '>') {\n        angleBracketsCount--;\n        if (angleBracketsCount === 0) {\n          break;\n        }\n      }\n    }\n  } else if (\n    xmlData.length > i + 9 &&\n    xmlData[i + 1] === '[' &&\n    xmlData[i + 2] === 'C' &&\n    xmlData[i + 3] === 'D' &&\n    xmlData[i + 4] === 'A' &&\n    xmlData[i + 5] === 'T' &&\n    xmlData[i + 6] === 'A' &&\n    xmlData[i + 7] === '['\n  ) {\n    for (i += 8; i < xmlData.length; i++) {\n      if (xmlData[i] === ']' && xmlData[i + 1] === ']' && xmlData[i + 2] === '>') {\n        i += 2;\n        break;\n      }\n    }\n  }\n\n  return i;\n}\n\nconst doubleQuote = '\"';\nconst singleQuote = \"'\";\n\n/**\n * Keep reading xmlData until '<' is found outside the attribute value.\n * @param {string} xmlData\n * @param {number} i\n */\nfunction readAttributeStr(xmlData, i) {\n  let attrStr = '';\n  let startChar = '';\n  let tagClosed = false;\n  for (; i < xmlData.length; i++) {\n    if (xmlData[i] === doubleQuote || xmlData[i] === singleQuote) {\n      if (startChar === '') {\n        startChar = xmlData[i];\n      } else if (startChar !== xmlData[i]) {\n        //if vaue is enclosed with double quote then single quotes are allowed inside the value and vice versa\n      } else {\n        startChar = '';\n      }\n    } else if (xmlData[i] === '>') {\n      if (startChar === '') {\n        tagClosed = true;\n        break;\n      }\n    }\n    attrStr += xmlData[i];\n  }\n  if (startChar !== '') {\n    return false;\n  }\n\n  return {\n    value: attrStr,\n    index: i,\n    tagClosed: tagClosed\n  };\n}\n\n/**\n * Select all the attributes whether valid or invalid.\n */\nconst validAttrStrRegxp = new RegExp('(\\\\s*)([^\\\\s=]+)(\\\\s*=)?(\\\\s*([\\'\"])(([\\\\s\\\\S])*?)\\\\5)?', 'g');\n\n//attr, =\"sd\", a=\"amit's\", a=\"sd\"b=\"saf\", ab  cd=\"\"\n\nfunction validateAttributeString(attrStr, options) {\n  //console.log(\"start:\"+attrStr+\":end\");\n\n  //if(attrStr.trim().length === 0) return true; //empty string\n\n  const matches = util.getAllMatches(attrStr, validAttrStrRegxp);\n  const attrNames = {};\n\n  for (let i = 0; i < matches.length; i++) {\n    if (matches[i][1].length === 0) {\n      //nospace before attribute name: a=\"sd\"b=\"saf\"\n      return getErrorObject('InvalidAttr', \"Attribute '\"+matches[i][2]+\"' has no space in starting.\", getPositionFromMatch(matches[i]))\n    } else if (matches[i][3] !== undefined && matches[i][4] === undefined) {\n      return getErrorObject('InvalidAttr', \"Attribute '\"+matches[i][2]+\"' is without value.\", getPositionFromMatch(matches[i]));\n    } else if (matches[i][3] === undefined && !options.allowBooleanAttributes) {\n      //independent attribute: ab\n      return getErrorObject('InvalidAttr', \"boolean attribute '\"+matches[i][2]+\"' is not allowed.\", getPositionFromMatch(matches[i]));\n    }\n    /* else if(matches[i][6] === undefined){//attribute without value: ab=\n                    return { err: { code:\"InvalidAttr\",msg:\"attribute \" + matches[i][2] + \" has no value assigned.\"}};\n                } */\n    const attrName = matches[i][2];\n    if (!validateAttrName(attrName)) {\n      return getErrorObject('InvalidAttr', \"Attribute '\"+attrName+\"' is an invalid name.\", getPositionFromMatch(matches[i]));\n    }\n    if (!attrNames.hasOwnProperty(attrName)) {\n      //check for duplicate attribute.\n      attrNames[attrName] = 1;\n    } else {\n      return getErrorObject('InvalidAttr', \"Attribute '\"+attrName+\"' is repeated.\", getPositionFromMatch(matches[i]));\n    }\n  }\n\n  return true;\n}\n\nfunction validateNumberAmpersand(xmlData, i) {\n  let re = /\\d/;\n  if (xmlData[i] === 'x') {\n    i++;\n    re = /[\\da-fA-F]/;\n  }\n  for (; i < xmlData.length; i++) {\n    if (xmlData[i] === ';')\n      return i;\n    if (!xmlData[i].match(re))\n      break;\n  }\n  return -1;\n}\n\nfunction validateAmpersand(xmlData, i) {\n  // https://www.w3.org/TR/xml/#dt-charref\n  i++;\n  if (xmlData[i] === ';')\n    return -1;\n  if (xmlData[i] === '#') {\n    i++;\n    return validateNumberAmpersand(xmlData, i);\n  }\n  let count = 0;\n  for (; i < xmlData.length; i++, count++) {\n    if (xmlData[i].match(/\\w/) && count < 20)\n      continue;\n    if (xmlData[i] === ';')\n      break;\n    return -1;\n  }\n  return i;\n}\n\nfunction getErrorObject(code, message, lineNumber) {\n  return {\n    err: {\n      code: code,\n      msg: message,\n      line: lineNumber.line || lineNumber,\n      col: lineNumber.col,\n    },\n  };\n}\n\nfunction validateAttrName(attrName) {\n  return util.isName(attrName);\n}\n\n// const startsWithXML = /^xml/i;\n\nfunction validateTagName(tagname) {\n  return util.isName(tagname) /* && !tagname.match(startsWithXML) */;\n}\n\n//this function returns the line number for the character at the given index\nfunction getLineNumberForPosition(xmlData, index) {\n  const lines = xmlData.substring(0, index).split(/\\r?\\n/);\n  return {\n    line: lines.length,\n\n    // column number is last line's length + 1, because column numbering starts at 1:\n    col: lines[lines.length - 1].length + 1\n  };\n}\n\n//this function returns the position of the first character of match within attrStr\nfunction getPositionFromMatch(match) {\n  return match.startIndex + match[1].length;\n}\n","var resMap = {\n    \"&\": \"&amp;\",\n    \"<\": \"&lt;\",\n    \">\": \"&gt;\",\n    \"\\x27\": \"&#39;\",\n    \"\\x22\": \"&quot;\",\n    \" \": \"&nbsp;\"\n};\nvar decodeMap = {\n    \"&amp;\": \"&\",\n    \"&lt;\": \"<\",\n    \"&gt;\": \">\",\n    \"&#39;\": \"\\x27\",\n    \"&quot;\": \"\\x22\",\n    \"&#47;\": \"/\",\n    \"<br/>\": \"\\n\",\n    \"&#047;\": \"/\",\n    \"&#039;\": \"\\x27\",\n    \"&apos;\": \"'\",\n    \"&bsol;\": \"\\\\\"\n};\n// emoji regx\nvar REG_REPLACE = /\\[em(?:2)?\\]e(\\d{1,8})(?:,\\d{1,3},\\d{1,3})?\\[\\/em(?:2)?\\]/gi;\nvar resReg = new RegExp(\"(\" + Object.keys(resMap).join(\"|\") + \")\", \"g\");\nvar decodeReg = new RegExp(\"(\" + Object.keys(decodeMap).join(\"|\") + \")\", \"g\");\n/**\n * 移除字符串中已废弃的空间表情\n * @param {string} [text=\"\"] 字符串\n * @returns {string}\n * @category kg-base\n * @example\n * // return '文本🌝'\n * import { removeEmoji } from '@tencent/kg-base';\n * removeEmoji('文本[em]e2252[/em]🌝');\n */\nexport function removeEmoji(text) {\n    if (text === void 0) { text = \"\"; }\n    return text.replace(REG_REPLACE, \"\");\n}\n/**\n * 编码&<>\\x27\\x22 字符\n * @param {string} [str=\"\"] 字符串\n * @returns {string}\n * @category kg-base\n * @example\n * return '&amp;&lt;&gt;&#39;&quot;&nbsp;'\n * import { escHTML } from '@tencent/kg-base';\n * escHTML('&<>\\x27\\x22 ');\n */\nexport function escHTML(str) {\n    if (str === void 0) { str = \"\"; }\n    return (str || \"\").toString().replace(resReg, function ($0) {\n        return resMap[$0];\n    });\n}\n/**\n * 解码&amp;&lt;&gt;&#39;&quot;&#47;<br/>&#047;&#039;&apos;&bsol;字符\n * @param {string} [str=\"\"] 字符串\n * @returns {string}\n * @category kg-base\n * @example\n * return '&<>\\x27\\x22/\\n/\\x27'\\\\'\n * import { escHTMLDecode } from '@tencent/kg-base';\n * escHTMLDecode('&amp;&lt;&gt;&#39;&quot;&#47;<br/>&#047;&#039;&apos;&bsol;');\n */\nexport function escHTMLDecode(str) {\n    if (str === void 0) { str = \"\"; }\n    return (str || \"\").toString().replace(decodeReg, function ($0) {\n        return decodeMap[$0];\n    });\n}\n/**\n * 使用decodeURIComponent解码字符串\n * @param {string} str 字符串\n * @returns {string}\n * @category kg-base\n * @example\n * return 'https://kg.qq.com'\n * import { decode } from '@tencent/kg-base';\n * decode('https%3A%2F%2Fkg.qq.com');\n */\nexport function decode(str) {\n    var res = \"\";\n    try {\n        res = decodeURIComponent(str);\n    }\n    catch (e) {\n        res = unescape(str);\n    }\n    return res;\n}\n/**\n * 截取字符串\n * @param {string} str 字符串\n * @param {number} num 截取的字符长度\n * @returns {string}\n * @category kg-base\n * @example\n * import { truncateStr } from '@tencent/kg-base';\n * const value = truncateStr(\"截取字符串😂截取字符串😂😂😂\", 12)\n * console.log(value) // \"截取字符串😂截取字符串😂\"\n */\nexport function truncateStr(str, num) {\n    var str_split = Array.from(str);\n    var res_arr = str_split.slice(0, num);\n    return res_arr.join(\"\");\n}\n/**\n * 截取昵称\n * @param {string} nick 昵称\n * @param {number} maxLength 昵称长度\n * @returns {string}\n * @category kg-base\n * @example\n * // return '截取字符串😂截取字符串😂...'\n * truncateNick(\"截取字符串😂截取字符串😂😂😂\", 12)\n */\nexport function truncateNick(nick, maxLength) {\n    var str = removeEmoji(nick);\n    var array = Array.from(str);\n    if (array.length > maxLength) {\n        return array.slice(0, maxLength).join(\"\") + \"...\";\n    }\n    else {\n        return str;\n    }\n}\n","\"use client\";\n\nimport * as React from 'react';\nconst DisabledContext = /*#__PURE__*/React.createContext(false);\nexport const DisabledContextProvider = _ref => {\n  let {\n    children,\n    disabled\n  } = _ref;\n  const originDisabled = React.useContext(DisabledContext);\n  return /*#__PURE__*/React.createElement(DisabledContext.Provider, {\n    value: disabled !== null && disabled !== void 0 ? disabled : originDisabled\n  }, children);\n};\nexport default DisabledContext;","import { useEffect, useLayoutEffect } from 'react';\nconst isReactNative = typeof global !== 'undefined' &&\n// @ts-ignore\nglobal.navigator &&\n// @ts-ignore\nglobal.navigator.product === 'ReactNative';\nconst isDOM = typeof document !== 'undefined';\n\n/**\n * Is `useLayoutEffect` in a DOM or React Native environment, otherwise resolves to useEffect\n * Only useful to avoid the console warning.\n *\n * PREFER `useEffect` UNLESS YOU KNOW WHAT YOU ARE DOING.\n *\n * @category effects\n */\nexport default isDOM || isReactNative ? useLayoutEffect : useEffect;","module.exports = \"data:image/png;base64,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\"","import setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _inheritsLoose(t, o) {\n  t.prototype = Object.create(o.prototype), t.prototype.constructor = t, setPrototypeOf(t, o);\n}\nexport { _inheritsLoose as default };","/* https://github.com/emn178/js-md5 */\n(function () {\n    'use strict';\n\n    var WINDOW = typeof window === 'object';\n    var root = WINDOW ? window : {};\n    if (root.JS_MD5_NO_WINDOW) {\n        WINDOW = false;\n    }\n    var WEB_WORKER = !WINDOW && typeof self === 'object';\n    if (WEB_WORKER) {\n        root = self;\n    }\n    var COMMON_JS = !root.JS_MD5_NO_COMMON_JS && typeof module === 'object' && module.exports;\n    var AMD = typeof define === 'function' && define.amd;\n    var ARRAY_BUFFER = !root.JS_MD5_NO_ARRAY_BUFFER && typeof ArrayBuffer !== 'undefined';\n    var HEX_CHARS = '0123456789abcdef'.split('');\n    var EXTRA = [128, 32768, 8388608, -2147483648];\n    var SHIFT = [0, 8, 16, 24];\n    var OUTPUT_TYPES = ['hex', 'array', 'digest', 'buffer', 'arrayBuffer', 'base64'];\n    var BASE64_ENCODE_CHAR = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split('');\n\n    var blocks = [], buffer8;\n    if (ARRAY_BUFFER) {\n        var buffer = new ArrayBuffer(68);\n        buffer8 = new Uint8Array(buffer);\n        blocks = new Uint32Array(buffer);\n    }\n\n    if (root.JS_MD5_NO_NODE_JS || !Array.isArray) {\n        Array.isArray = function (obj) {\n            return Object.prototype.toString.call(obj) === '[object Array]';\n        };\n    }\n\n    if (ARRAY_BUFFER && (root.JS_MD5_NO_ARRAY_BUFFER_IS_VIEW || !ArrayBuffer.isView)) {\n        ArrayBuffer.isView = function (obj) {\n            return typeof obj === 'object' && obj.buffer && obj.buffer.constructor === ArrayBuffer;\n        };\n    }\n\n    /**\n     * @method hex\n     * @memberof md5\n     * @description Output hash as hex string\n     * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash\n     * @returns {String} Hex string\n     * @example\n     * md5.hex('The quick brown fox jumps over the lazy dog');\n     * // equal to\n     * md5('The quick brown fox jumps over the lazy dog');\n     */\n    /**\n     * @method digest\n     * @memberof md5\n     * @description Output hash as bytes array\n     * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash\n     * @returns {Array} Bytes array\n     * @example\n     * md5.digest('The quick brown fox jumps over the lazy dog');\n     */\n    /**\n     * @method array\n     * @memberof md5\n     * @description Output hash as bytes array\n     * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash\n     * @returns {Array} Bytes array\n     * @example\n     * md5.array('The quick brown fox jumps over the lazy dog');\n     */\n    /**\n     * @method arrayBuffer\n     * @memberof md5\n     * @description Output hash as ArrayBuffer\n     * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash\n     * @returns {ArrayBuffer} ArrayBuffer\n     * @example\n     * md5.arrayBuffer('The quick brown fox jumps over the lazy dog');\n     */\n    /**\n     * @method buffer\n     * @deprecated This maybe confuse with Buffer in node.js. Please use arrayBuffer instead.\n     * @memberof md5\n     * @description Output hash as ArrayBuffer\n     * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash\n     * @returns {ArrayBuffer} ArrayBuffer\n     * @example\n     * md5.buffer('The quick brown fox jumps over the lazy dog');\n     */\n    /**\n     * @method base64\n     * @memberof md5\n     * @description Output hash as base64 string\n     * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash\n     * @returns {String} base64 string\n     * @example\n     * md5.base64('The quick brown fox jumps over the lazy dog');\n     */\n    var createOutputMethod = function (outputType) {\n        return function (message, isBinStr) {\n            return new Md5(true).update(message, isBinStr)[outputType]();\n        };\n    };\n\n    /**\n     * @method create\n     * @memberof md5\n     * @description Create Md5 object\n     * @returns {Md5} Md5 object.\n     * @example\n     * var hash = md5.create();\n     */\n    /**\n     * @method update\n     * @memberof md5\n     * @description Create and update Md5 object\n     * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash\n     * @returns {Md5} Md5 object.\n     * @example\n     * var hash = md5.update('The quick brown fox jumps over the lazy dog');\n     * // equal to\n     * var hash = md5.create();\n     * hash.update('The quick brown fox jumps over the lazy dog');\n     */\n    var createMethod = function () {\n        var method = createOutputMethod('hex');\n        method.getCtx = method.create = function () {\n            return new Md5();\n        };\n        method.update = function (message) {\n            return method.create().update(message);\n        };\n        for (var i = 0; i < OUTPUT_TYPES.length; ++i) {\n            var type = OUTPUT_TYPES[i];\n            method[type] = createOutputMethod(type);\n        }\n        return method;\n    };\n\n    /**\n     * Md5 class\n     * @class Md5\n     * @description This is internal class.\n     * @see {@link md5.create}\n     */\n    function Md5(sharedMemory) {\n        if (sharedMemory) {\n            blocks[0] = blocks[16] = blocks[1] = blocks[2] = blocks[3] =\n                blocks[4] = blocks[5] = blocks[6] = blocks[7] =\n                    blocks[8] = blocks[9] = blocks[10] = blocks[11] =\n                        blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;\n            this.blocks = blocks;\n            this.buffer8 = buffer8;\n        } else {\n            if (ARRAY_BUFFER) {\n                var buffer = new ArrayBuffer(68);\n                this.buffer8 = new Uint8Array(buffer);\n                this.blocks = new Uint32Array(buffer);\n            } else {\n                this.blocks = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n            }\n        }\n        this.h0 = this.h1 = this.h2 = this.h3 = this.start = this.bytes = this.hBytes = 0;\n        this.finalized = this.hashed = false;\n        this.first = true;\n    }\n\n    /**\n     * @method update\n     * @memberof Md5\n     * @instance\n     * @description Update hash\n     * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash\n     * @returns {Md5} Md5 object.\n     * @see {@link md5.update}\n     */\n    Md5.prototype.update = function (message, isBinStr) {\n        if (this.finalized) {\n            return;\n        }\n\n        var code, index = 0, i, length = message.length, blocks = this.blocks;\n        var buffer8 = this.buffer8;\n\n        while (index < length) {\n            if (this.hashed) {\n                this.hashed = false;\n                blocks[0] = blocks[16];\n                blocks[16] = blocks[1] = blocks[2] = blocks[3] =\n                    blocks[4] = blocks[5] = blocks[6] = blocks[7] =\n                        blocks[8] = blocks[9] = blocks[10] = blocks[11] =\n                            blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;\n            }\n\n            if (ARRAY_BUFFER) {\n                for (i = this.start; index < length && i < 64; ++index) {\n                    code = message.charCodeAt(index);\n                    if (isBinStr || code < 0x80) {\n                        buffer8[i++] = code;\n                    } else if (code < 0x800) {\n                        buffer8[i++] = 0xc0 | (code >> 6);\n                        buffer8[i++] = 0x80 | (code & 0x3f);\n                    } else if (code < 0xd800 || code >= 0xe000) {\n                        buffer8[i++] = 0xe0 | (code >> 12);\n                        buffer8[i++] = 0x80 | ((code >> 6) & 0x3f);\n                        buffer8[i++] = 0x80 | (code & 0x3f);\n                    } else {\n                        code = 0x10000 + (((code & 0x3ff) << 10) | (message.charCodeAt(++index) & 0x3ff));\n                        buffer8[i++] = 0xf0 | (code >> 18);\n                        buffer8[i++] = 0x80 | ((code >> 12) & 0x3f);\n                        buffer8[i++] = 0x80 | ((code >> 6) & 0x3f);\n                        buffer8[i++] = 0x80 | (code & 0x3f);\n                    }\n                }\n            } else {\n                for (i = this.start; index < length && i < 64; ++index) {\n                    code = message.charCodeAt(index);\n                    if (isBinStr || code < 0x80) {\n                        blocks[i >> 2] |= code << SHIFT[i++ & 3];\n                    } else if (code < 0x800) {\n                        blocks[i >> 2] |= (0xc0 | (code >> 6)) << SHIFT[i++ & 3];\n                        blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n                    } else if (code < 0xd800 || code >= 0xe000) {\n                        blocks[i >> 2] |= (0xe0 | (code >> 12)) << SHIFT[i++ & 3];\n                        blocks[i >> 2] |= (0x80 | ((code >> 6) & 0x3f)) << SHIFT[i++ & 3];\n                        blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n                    } else {\n                        code = 0x10000 + (((code & 0x3ff) << 10) | (message.charCodeAt(++index) & 0x3ff));\n                        blocks[i >> 2] |= (0xf0 | (code >> 18)) << SHIFT[i++ & 3];\n                        blocks[i >> 2] |= (0x80 | ((code >> 12) & 0x3f)) << SHIFT[i++ & 3];\n                        blocks[i >> 2] |= (0x80 | ((code >> 6) & 0x3f)) << SHIFT[i++ & 3];\n                        blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n                    }\n                }\n            }\n            this.lastByteIndex = i;\n            this.bytes += i - this.start;\n            if (i >= 64) {\n                this.start = i - 64;\n                this.hash();\n                this.hashed = true;\n            } else {\n                this.start = i;\n            }\n        }\n        if (this.bytes > 4294967295) {\n            this.hBytes += this.bytes / 4294967296 << 0;\n            this.bytes = this.bytes % 4294967296;\n        }\n        return this;\n    };\n\n    Md5.prototype.finalize = function () {\n        if (this.finalized) {\n            return;\n        }\n        this.finalized = true;\n        var blocks = this.blocks, i = this.lastByteIndex;\n        blocks[i >> 2] |= EXTRA[i & 3];\n        if (i >= 56) {\n            if (!this.hashed) {\n                this.hash();\n            }\n            blocks[0] = blocks[16];\n            blocks[16] = blocks[1] = blocks[2] = blocks[3] =\n                blocks[4] = blocks[5] = blocks[6] = blocks[7] =\n                    blocks[8] = blocks[9] = blocks[10] = blocks[11] =\n                        blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;\n        }\n        blocks[14] = this.bytes << 3;\n        blocks[15] = this.hBytes << 3 | this.bytes >>> 29;\n        this.hash();\n    };\n\n    Md5.prototype.hash = function () {\n        var a, b, c, d, bc, da, blocks = this.blocks;\n\n        if (this.first) {\n            a = blocks[0] - 680876937;\n            a = (a << 7 | a >>> 25) - 271733879 << 0;\n            d = (-1732584194 ^ a & 2004318071) + blocks[1] - 117830708;\n            d = (d << 12 | d >>> 20) + a << 0;\n            c = (-271733879 ^ (d & (a ^ -271733879))) + blocks[2] - 1126478375;\n            c = (c << 17 | c >>> 15) + d << 0;\n            b = (a ^ (c & (d ^ a))) + blocks[3] - 1316259209;\n            b = (b << 22 | b >>> 10) + c << 0;\n        } else {\n            a = this.h0;\n            b = this.h1;\n            c = this.h2;\n            d = this.h3;\n            a += (d ^ (b & (c ^ d))) + blocks[0] - 680876936;\n            a = (a << 7 | a >>> 25) + b << 0;\n            d += (c ^ (a & (b ^ c))) + blocks[1] - 389564586;\n            d = (d << 12 | d >>> 20) + a << 0;\n            c += (b ^ (d & (a ^ b))) + blocks[2] + 606105819;\n            c = (c << 17 | c >>> 15) + d << 0;\n            b += (a ^ (c & (d ^ a))) + blocks[3] - 1044525330;\n            b = (b << 22 | b >>> 10) + c << 0;\n        }\n\n        a += (d ^ (b & (c ^ d))) + blocks[4] - 176418897;\n        a = (a << 7 | a >>> 25) + b << 0;\n        d += (c ^ (a & (b ^ c))) + blocks[5] + 1200080426;\n        d = (d << 12 | d >>> 20) + a << 0;\n        c += (b ^ (d & (a ^ b))) + blocks[6] - 1473231341;\n        c = (c << 17 | c >>> 15) + d << 0;\n        b += (a ^ (c & (d ^ a))) + blocks[7] - 45705983;\n        b = (b << 22 | b >>> 10) + c << 0;\n        a += (d ^ (b & (c ^ d))) + blocks[8] + 1770035416;\n        a = (a << 7 | a >>> 25) + b << 0;\n        d += (c ^ (a & (b ^ c))) + blocks[9] - 1958414417;\n        d = (d << 12 | d >>> 20) + a << 0;\n        c += (b ^ (d & (a ^ b))) + blocks[10] - 42063;\n        c = (c << 17 | c >>> 15) + d << 0;\n        b += (a ^ (c & (d ^ a))) + blocks[11] - 1990404162;\n        b = (b << 22 | b >>> 10) + c << 0;\n        a += (d ^ (b & (c ^ d))) + blocks[12] + 1804603682;\n        a = (a << 7 | a >>> 25) + b << 0;\n        d += (c ^ (a & (b ^ c))) + blocks[13] - 40341101;\n        d = (d << 12 | d >>> 20) + a << 0;\n        c += (b ^ (d & (a ^ b))) + blocks[14] - 1502002290;\n        c = (c << 17 | c >>> 15) + d << 0;\n        b += (a ^ (c & (d ^ a))) + blocks[15] + 1236535329;\n        b = (b << 22 | b >>> 10) + c << 0;\n        a += (c ^ (d & (b ^ c))) + blocks[1] - 165796510;\n        a = (a << 5 | a >>> 27) + b << 0;\n        d += (b ^ (c & (a ^ b))) + blocks[6] - 1069501632;\n        d = (d << 9 | d >>> 23) + a << 0;\n        c += (a ^ (b & (d ^ a))) + blocks[11] + 643717713;\n        c = (c << 14 | c >>> 18) + d << 0;\n        b += (d ^ (a & (c ^ d))) + blocks[0] - 373897302;\n        b = (b << 20 | b >>> 12) + c << 0;\n        a += (c ^ (d & (b ^ c))) + blocks[5] - 701558691;\n        a = (a << 5 | a >>> 27) + b << 0;\n        d += (b ^ (c & (a ^ b))) + blocks[10] + 38016083;\n        d = (d << 9 | d >>> 23) + a << 0;\n        c += (a ^ (b & (d ^ a))) + blocks[15] - 660478335;\n        c = (c << 14 | c >>> 18) + d << 0;\n        b += (d ^ (a & (c ^ d))) + blocks[4] - 405537848;\n        b = (b << 20 | b >>> 12) + c << 0;\n        a += (c ^ (d & (b ^ c))) + blocks[9] + 568446438;\n        a = (a << 5 | a >>> 27) + b << 0;\n        d += (b ^ (c & (a ^ b))) + blocks[14] - 1019803690;\n        d = (d << 9 | d >>> 23) + a << 0;\n        c += (a ^ (b & (d ^ a))) + blocks[3] - 187363961;\n        c = (c << 14 | c >>> 18) + d << 0;\n        b += (d ^ (a & (c ^ d))) + blocks[8] + 1163531501;\n        b = (b << 20 | b >>> 12) + c << 0;\n        a += (c ^ (d & (b ^ c))) + blocks[13] - 1444681467;\n        a = (a << 5 | a >>> 27) + b << 0;\n        d += (b ^ (c & (a ^ b))) + blocks[2] - 51403784;\n        d = (d << 9 | d >>> 23) + a << 0;\n        c += (a ^ (b & (d ^ a))) + blocks[7] + 1735328473;\n        c = (c << 14 | c >>> 18) + d << 0;\n        b += (d ^ (a & (c ^ d))) + blocks[12] - 1926607734;\n        b = (b << 20 | b >>> 12) + c << 0;\n        bc = b ^ c;\n        a += (bc ^ d) + blocks[5] - 378558;\n        a = (a << 4 | a >>> 28) + b << 0;\n        d += (bc ^ a) + blocks[8] - 2022574463;\n        d = (d << 11 | d >>> 21) + a << 0;\n        da = d ^ a;\n        c += (da ^ b) + blocks[11] + 1839030562;\n        c = (c << 16 | c >>> 16) + d << 0;\n        b += (da ^ c) + blocks[14] - 35309556;\n        b = (b << 23 | b >>> 9) + c << 0;\n        bc = b ^ c;\n        a += (bc ^ d) + blocks[1] - 1530992060;\n        a = (a << 4 | a >>> 28) + b << 0;\n        d += (bc ^ a) + blocks[4] + 1272893353;\n        d = (d << 11 | d >>> 21) + a << 0;\n        da = d ^ a;\n        c += (da ^ b) + blocks[7] - 155497632;\n        c = (c << 16 | c >>> 16) + d << 0;\n        b += (da ^ c) + blocks[10] - 1094730640;\n        b = (b << 23 | b >>> 9) + c << 0;\n        bc = b ^ c;\n        a += (bc ^ d) + blocks[13] + 681279174;\n        a = (a << 4 | a >>> 28) + b << 0;\n        d += (bc ^ a) + blocks[0] - 358537222;\n        d = (d << 11 | d >>> 21) + a << 0;\n        da = d ^ a;\n        c += (da ^ b) + blocks[3] - 722521979;\n        c = (c << 16 | c >>> 16) + d << 0;\n        b += (da ^ c) + blocks[6] + 76029189;\n        b = (b << 23 | b >>> 9) + c << 0;\n        bc = b ^ c;\n        a += (bc ^ d) + blocks[9] - 640364487;\n        a = (a << 4 | a >>> 28) + b << 0;\n        d += (bc ^ a) + blocks[12] - 421815835;\n        d = (d << 11 | d >>> 21) + a << 0;\n        da = d ^ a;\n        c += (da ^ b) + blocks[15] + 530742520;\n        c = (c << 16 | c >>> 16) + d << 0;\n        b += (da ^ c) + blocks[2] - 995338651;\n        b = (b << 23 | b >>> 9) + c << 0;\n        a += (c ^ (b | ~d)) + blocks[0] - 198630844;\n        a = (a << 6 | a >>> 26) + b << 0;\n        d += (b ^ (a | ~c)) + blocks[7] + 1126891415;\n        d = (d << 10 | d >>> 22) + a << 0;\n        c += (a ^ (d | ~b)) + blocks[14] - 1416354905;\n        c = (c << 15 | c >>> 17) + d << 0;\n        b += (d ^ (c | ~a)) + blocks[5] - 57434055;\n        b = (b << 21 | b >>> 11) + c << 0;\n        a += (c ^ (b | ~d)) + blocks[12] + 1700485571;\n        a = (a << 6 | a >>> 26) + b << 0;\n        d += (b ^ (a | ~c)) + blocks[3] - 1894986606;\n        d = (d << 10 | d >>> 22) + a << 0;\n        c += (a ^ (d | ~b)) + blocks[10] - 1051523;\n        c = (c << 15 | c >>> 17) + d << 0;\n        b += (d ^ (c | ~a)) + blocks[1] - 2054922799;\n        b = (b << 21 | b >>> 11) + c << 0;\n        a += (c ^ (b | ~d)) + blocks[8] + 1873313359;\n        a = (a << 6 | a >>> 26) + b << 0;\n        d += (b ^ (a | ~c)) + blocks[15] - 30611744;\n        d = (d << 10 | d >>> 22) + a << 0;\n        c += (a ^ (d | ~b)) + blocks[6] - 1560198380;\n        c = (c << 15 | c >>> 17) + d << 0;\n        b += (d ^ (c | ~a)) + blocks[13] + 1309151649;\n        b = (b << 21 | b >>> 11) + c << 0;\n        a += (c ^ (b | ~d)) + blocks[4] - 145523070;\n        a = (a << 6 | a >>> 26) + b << 0;\n        d += (b ^ (a | ~c)) + blocks[11] - 1120210379;\n        d = (d << 10 | d >>> 22) + a << 0;\n        c += (a ^ (d | ~b)) + blocks[2] + 718787259;\n        c = (c << 15 | c >>> 17) + d << 0;\n        b += (d ^ (c | ~a)) + blocks[9] - 343485551;\n        b = (b << 21 | b >>> 11) + c << 0;\n\n        if (this.first) {\n            this.h0 = a + 1732584193 << 0;\n            this.h1 = b - 271733879 << 0;\n            this.h2 = c - 1732584194 << 0;\n            this.h3 = d + 271733878 << 0;\n            this.first = false;\n        } else {\n            this.h0 = this.h0 + a << 0;\n            this.h1 = this.h1 + b << 0;\n            this.h2 = this.h2 + c << 0;\n            this.h3 = this.h3 + d << 0;\n        }\n    };\n\n    /**\n     * @method hex\n     * @memberof Md5\n     * @instance\n     * @description Output hash as hex string\n     * @returns {String} Hex string\n     * @see {@link md5.hex}\n     * @example\n     * hash.hex();\n     */\n    Md5.prototype.hex = function () {\n        this.finalize();\n\n        var h0 = this.h0, h1 = this.h1, h2 = this.h2, h3 = this.h3;\n\n        return HEX_CHARS[(h0 >> 4) & 0x0F] + HEX_CHARS[h0 & 0x0F] +\n            HEX_CHARS[(h0 >> 12) & 0x0F] + HEX_CHARS[(h0 >> 8) & 0x0F] +\n            HEX_CHARS[(h0 >> 20) & 0x0F] + HEX_CHARS[(h0 >> 16) & 0x0F] +\n            HEX_CHARS[(h0 >> 28) & 0x0F] + HEX_CHARS[(h0 >> 24) & 0x0F] +\n            HEX_CHARS[(h1 >> 4) & 0x0F] + HEX_CHARS[h1 & 0x0F] +\n            HEX_CHARS[(h1 >> 12) & 0x0F] + HEX_CHARS[(h1 >> 8) & 0x0F] +\n            HEX_CHARS[(h1 >> 20) & 0x0F] + HEX_CHARS[(h1 >> 16) & 0x0F] +\n            HEX_CHARS[(h1 >> 28) & 0x0F] + HEX_CHARS[(h1 >> 24) & 0x0F] +\n            HEX_CHARS[(h2 >> 4) & 0x0F] + HEX_CHARS[h2 & 0x0F] +\n            HEX_CHARS[(h2 >> 12) & 0x0F] + HEX_CHARS[(h2 >> 8) & 0x0F] +\n            HEX_CHARS[(h2 >> 20) & 0x0F] + HEX_CHARS[(h2 >> 16) & 0x0F] +\n            HEX_CHARS[(h2 >> 28) & 0x0F] + HEX_CHARS[(h2 >> 24) & 0x0F] +\n            HEX_CHARS[(h3 >> 4) & 0x0F] + HEX_CHARS[h3 & 0x0F] +\n            HEX_CHARS[(h3 >> 12) & 0x0F] + HEX_CHARS[(h3 >> 8) & 0x0F] +\n            HEX_CHARS[(h3 >> 20) & 0x0F] + HEX_CHARS[(h3 >> 16) & 0x0F] +\n            HEX_CHARS[(h3 >> 28) & 0x0F] + HEX_CHARS[(h3 >> 24) & 0x0F];\n    };\n\n    /**\n     * @method toString\n     * @memberof Md5\n     * @instance\n     * @description Output hash as hex string\n     * @returns {String} Hex string\n     * @see {@link md5.hex}\n     * @example\n     * hash.toString();\n     */\n    Md5.prototype.toString = Md5.prototype.hex;\n\n    /**\n     * @method digest\n     * @memberof Md5\n     * @instance\n     * @description Output hash as bytes array\n     * @returns {Array} Bytes array\n     * @see {@link md5.digest}\n     * @example\n     * hash.digest();\n     */\n    Md5.prototype.digest = function (format) {\n        if (format === 'hex') return this.hex();\n        this.finalize();\n\n        var h0 = this.h0, h1 = this.h1, h2 = this.h2, h3 = this.h3;\n        var res = [\n            h0 & 0xFF, (h0 >> 8) & 0xFF, (h0 >> 16) & 0xFF, (h0 >> 24) & 0xFF,\n            h1 & 0xFF, (h1 >> 8) & 0xFF, (h1 >> 16) & 0xFF, (h1 >> 24) & 0xFF,\n            h2 & 0xFF, (h2 >> 8) & 0xFF, (h2 >> 16) & 0xFF, (h2 >> 24) & 0xFF,\n            h3 & 0xFF, (h3 >> 8) & 0xFF, (h3 >> 16) & 0xFF, (h3 >> 24) & 0xFF\n        ];\n        return res;\n    };\n\n    /**\n     * @method array\n     * @memberof Md5\n     * @instance\n     * @description Output hash as bytes array\n     * @returns {Array} Bytes array\n     * @see {@link md5.array}\n     * @example\n     * hash.array();\n     */\n    Md5.prototype.array = Md5.prototype.digest;\n\n    /**\n     * @method arrayBuffer\n     * @memberof Md5\n     * @instance\n     * @description Output hash as ArrayBuffer\n     * @returns {ArrayBuffer} ArrayBuffer\n     * @see {@link md5.arrayBuffer}\n     * @example\n     * hash.arrayBuffer();\n     */\n    Md5.prototype.arrayBuffer = function () {\n        this.finalize();\n\n        var buffer = new ArrayBuffer(16);\n        var blocks = new Uint32Array(buffer);\n        blocks[0] = this.h0;\n        blocks[1] = this.h1;\n        blocks[2] = this.h2;\n        blocks[3] = this.h3;\n        return buffer;\n    };\n\n    /**\n     * @method buffer\n     * @deprecated This maybe confuse with Buffer in node.js. Please use arrayBuffer instead.\n     * @memberof Md5\n     * @instance\n     * @description Output hash as ArrayBuffer\n     * @returns {ArrayBuffer} ArrayBuffer\n     * @see {@link md5.buffer}\n     * @example\n     * hash.buffer();\n     */\n    Md5.prototype.buffer = Md5.prototype.arrayBuffer;\n\n    /**\n     * @method base64\n     * @memberof Md5\n     * @instance\n     * @description Output hash as base64 string\n     * @returns {String} base64 string\n     * @see {@link md5.base64}\n     * @example\n     * hash.base64();\n     */\n    Md5.prototype.base64 = function () {\n        var v1, v2, v3, base64Str = '', bytes = this.array();\n        for (var i = 0; i < 15;) {\n            v1 = bytes[i++];\n            v2 = bytes[i++];\n            v3 = bytes[i++];\n            base64Str += BASE64_ENCODE_CHAR[v1 >>> 2] +\n                BASE64_ENCODE_CHAR[(v1 << 4 | v2 >>> 4) & 63] +\n                BASE64_ENCODE_CHAR[(v2 << 2 | v3 >>> 6) & 63] +\n                BASE64_ENCODE_CHAR[v3 & 63];\n        }\n        v1 = bytes[i];\n        base64Str += BASE64_ENCODE_CHAR[v1 >>> 2] +\n            BASE64_ENCODE_CHAR[(v1 << 4) & 63] +\n            '==';\n        return base64Str;\n    };\n\n    var exports = createMethod();\n\n    if (COMMON_JS) {\n        module.exports = exports;\n    } else {\n        /**\n         * @method md5\b\n         * @description Md5 hash function, export to global in browsers.\n         * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash\n         * @returns {String} md5 hashes\n         * @example\n         * md5(''); // d41d8cd98f00b204e9800998ecf8427e\n         * md5('The quick brown fox jumps over the lazy dog'); // 9e107d9d372bb6826bd81d3542a419d6\n         * md5('The quick brown fox jumps over the lazy dog.'); // e4d909c290d0fb1ca068ffaddf22cbd0\n         *\n         * // It also supports UTF-8 encoding\n         * md5('中文'); // a7bac2239fcdcb3a067903d8077c4a07\n         *\n         * // It also supports byte `Array`, `Uint8Array`, `ArrayBuffer`\n         * md5([]); // d41d8cd98f00b204e9800998ecf8427e\n         * md5(new Uint8Array([])); // d41d8cd98f00b204e9800998ecf8427e\n         */\n        root.md5 = exports;\n        if (AMD) {\n            define(function () {\n                return exports;\n            });\n        }\n    }\n})();\n","/**\n * Returns the owner document of a given element.\n * \n * @param node the element\n */\nexport default function ownerDocument(node) {\n  return node && node.ownerDocument || document;\n}","import { createContext } from 'react';\nconst LocaleContext = /*#__PURE__*/createContext(undefined);\nexport default LocaleContext;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\n/**\n * Same as React.useState but `setState` accept `ignoreDestroy` param to not to setState after destroyed.\n * We do not make this auto is to avoid real memory leak.\n * Developer should confirm it's safe to ignore themselves.\n */\nexport default function useSafeState(defaultValue) {\n  var destroyRef = React.useRef(false);\n  var _React$useState = React.useState(defaultValue),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    value = _React$useState2[0],\n    setValue = _React$useState2[1];\n  React.useEffect(function () {\n    destroyRef.current = false;\n    return function () {\n      destroyRef.current = true;\n    };\n  }, []);\n  function safeSetState(updater, ignoreDestroy) {\n    if (ignoreDestroy && destroyRef.current) {\n      return;\n    }\n    setValue(updater);\n  }\n  return [value, safeSetState];\n}","export default function _extends() {\n  _extends = Object.assign ? Object.assign.bind() : function (target) {\n    for (var i = 1; i < arguments.length; i++) {\n      var source = arguments[i];\n      for (var key in source) {\n        if (Object.prototype.hasOwnProperty.call(source, key)) {\n          target[key] = source[key];\n        }\n      }\n    }\n    return target;\n  };\n  return _extends.apply(this, arguments);\n}","export default function _typeof(obj) {\n  \"@babel/helpers - typeof\";\n\n  return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n    return typeof obj;\n  } : function (obj) {\n    return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n  }, _typeof(obj);\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function _toPropertyKey(arg) {\n  var key = toPrimitive(arg, \"string\");\n  return _typeof(key) === \"symbol\" ? key : String(key);\n}","import _typeof from \"./typeof.js\";\nexport default function _toPrimitive(input, hint) {\n  if (_typeof(input) !== \"object\" || input === null) return input;\n  var prim = input[Symbol.toPrimitive];\n  if (prim !== undefined) {\n    var res = prim.call(input, hint || \"default\");\n    if (_typeof(res) !== \"object\") return res;\n    throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n  }\n  return (hint === \"string\" ? String : Number)(input);\n}","export default function _arrayLikeToArray(arr, len) {\n  if (len == null || len > arr.length) len = arr.length;\n  for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n  return arr2;\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n  return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n  if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n  var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"];\n  if (null != _i) {\n    var _s,\n      _e,\n      _x,\n      _r,\n      _arr = [],\n      _n = !0,\n      _d = !1;\n    try {\n      if (_x = (_i = _i.call(arr)).next, 0 === i) {\n        if (Object(_i) !== _i) return;\n        _n = !1;\n      } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0);\n    } catch (err) {\n      _d = !0, _e = err;\n    } finally {\n      try {\n        if (!_n && null != _i[\"return\"] && (_r = _i[\"return\"](), Object(_r) !== _r)) return;\n      } finally {\n        if (_d) throw _e;\n      }\n    }\n    return _arr;\n  }\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n  if (!o) return;\n  if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n  var n = Object.prototype.toString.call(o).slice(8, -1);\n  if (n === \"Object\" && o.constructor) n = o.constructor.name;\n  if (n === \"Map\" || n === \"Set\") return Array.from(o);\n  if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function _nonIterableRest() {\n  throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n  if (source == null) return {};\n  var target = objectWithoutPropertiesLoose(source, excluded);\n  var key, i;\n  if (Object.getOwnPropertySymbols) {\n    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n    for (i = 0; i < sourceSymbolKeys.length; i++) {\n      key = sourceSymbolKeys[i];\n      if (excluded.indexOf(key) >= 0) continue;\n      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n      target[key] = source[key];\n    }\n  }\n  return target;\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n  if (source == null) return {};\n  var target = {};\n  var sourceKeys = Object.keys(source);\n  var key, i;\n  for (i = 0; i < sourceKeys.length; i++) {\n    key = sourceKeys[i];\n    if (excluded.indexOf(key) >= 0) continue;\n    target[key] = source[key];\n  }\n  return target;\n}","import KeyCode from \"rc-util/es/KeyCode\";\nimport raf from \"rc-util/es/raf\";\nimport * as React from \"react\";\nvar ESC = KeyCode.ESC,\n  TAB = KeyCode.TAB;\nexport default function useAccessibility(_ref) {\n  var visible = _ref.visible,\n    triggerRef = _ref.triggerRef,\n    onVisibleChange = _ref.onVisibleChange,\n    autoFocus = _ref.autoFocus,\n    overlayRef = _ref.overlayRef;\n  var focusMenuRef = React.useRef(false);\n  var handleCloseMenuAndReturnFocus = function handleCloseMenuAndReturnFocus() {\n    if (visible) {\n      var _triggerRef$current, _triggerRef$current$f;\n      (_triggerRef$current = triggerRef.current) === null || _triggerRef$current === void 0 || (_triggerRef$current$f = _triggerRef$current.focus) === null || _triggerRef$current$f === void 0 || _triggerRef$current$f.call(_triggerRef$current);\n      onVisibleChange === null || onVisibleChange === void 0 || onVisibleChange(false);\n    }\n  };\n  var focusMenu = function focusMenu() {\n    var _overlayRef$current;\n    if ((_overlayRef$current = overlayRef.current) !== null && _overlayRef$current !== void 0 && _overlayRef$current.focus) {\n      overlayRef.current.focus();\n      focusMenuRef.current = true;\n      return true;\n    }\n    return false;\n  };\n  var handleKeyDown = function handleKeyDown(event) {\n    switch (event.keyCode) {\n      case ESC:\n        handleCloseMenuAndReturnFocus();\n        break;\n      case TAB:\n        {\n          var focusResult = false;\n          if (!focusMenuRef.current) {\n            focusResult = focusMenu();\n          }\n          if (focusResult) {\n            event.preventDefault();\n          } else {\n            handleCloseMenuAndReturnFocus();\n          }\n          break;\n        }\n    }\n  };\n  React.useEffect(function () {\n    if (visible) {\n      window.addEventListener(\"keydown\", handleKeyDown);\n      if (autoFocus) {\n        // FIXME: hack with raf\n        raf(focusMenu, 3);\n      }\n      return function () {\n        window.removeEventListener(\"keydown\", handleKeyDown);\n        focusMenuRef.current = false;\n      };\n    }\n    return function () {\n      focusMenuRef.current = false;\n    };\n  }, [visible]); // eslint-disable-line react-hooks/exhaustive-deps\n}","import React, { forwardRef, useMemo } from 'react';\nimport { composeRef, supportRef } from \"rc-util/es/ref\";\nvar Overlay = /*#__PURE__*/forwardRef(function (props, ref) {\n  var overlay = props.overlay,\n    arrow = props.arrow,\n    prefixCls = props.prefixCls;\n  var overlayNode = useMemo(function () {\n    var overlayElement;\n    if (typeof overlay === 'function') {\n      overlayElement = overlay();\n    } else {\n      overlayElement = overlay;\n    }\n    return overlayElement;\n  }, [overlay]);\n  var composedRef = composeRef(ref, overlayNode === null || overlayNode === void 0 ? void 0 : overlayNode.ref);\n  return /*#__PURE__*/React.createElement(React.Fragment, null, arrow && /*#__PURE__*/React.createElement(\"div\", {\n    className: \"\".concat(prefixCls, \"-arrow\")\n  }), /*#__PURE__*/React.cloneElement(overlayNode, {\n    ref: supportRef(overlayNode) ? composedRef : undefined\n  }));\n});\nexport default Overlay;","var autoAdjustOverflow = {\n  adjustX: 1,\n  adjustY: 1\n};\nvar targetOffset = [0, 0];\nvar placements = {\n  topLeft: {\n    points: ['bl', 'tl'],\n    overflow: autoAdjustOverflow,\n    offset: [0, -4],\n    targetOffset: targetOffset\n  },\n  top: {\n    points: ['bc', 'tc'],\n    overflow: autoAdjustOverflow,\n    offset: [0, -4],\n    targetOffset: targetOffset\n  },\n  topRight: {\n    points: ['br', 'tr'],\n    overflow: autoAdjustOverflow,\n    offset: [0, -4],\n    targetOffset: targetOffset\n  },\n  bottomLeft: {\n    points: ['tl', 'bl'],\n    overflow: autoAdjustOverflow,\n    offset: [0, 4],\n    targetOffset: targetOffset\n  },\n  bottom: {\n    points: ['tc', 'bc'],\n    overflow: autoAdjustOverflow,\n    offset: [0, 4],\n    targetOffset: targetOffset\n  },\n  bottomRight: {\n    points: ['tr', 'br'],\n    overflow: autoAdjustOverflow,\n    offset: [0, 4],\n    targetOffset: targetOffset\n  }\n};\nexport default placements;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"arrow\", \"prefixCls\", \"transitionName\", \"animation\", \"align\", \"placement\", \"placements\", \"getPopupContainer\", \"showAction\", \"hideAction\", \"overlayClassName\", \"overlayStyle\", \"visible\", \"trigger\", \"autoFocus\", \"overlay\", \"children\", \"onVisibleChange\"];\nimport Trigger from '@rc-component/trigger';\nimport classNames from 'classnames';\nimport { composeRef, supportRef } from \"rc-util/es/ref\";\nimport React from 'react';\nimport useAccessibility from \"./hooks/useAccessibility\";\nimport Overlay from \"./Overlay\";\nimport Placements from \"./placements\";\nfunction Dropdown(props, ref) {\n  var _children$props;\n  var _props$arrow = props.arrow,\n    arrow = _props$arrow === void 0 ? false : _props$arrow,\n    _props$prefixCls = props.prefixCls,\n    prefixCls = _props$prefixCls === void 0 ? 'rc-dropdown' : _props$prefixCls,\n    transitionName = props.transitionName,\n    animation = props.animation,\n    align = props.align,\n    _props$placement = props.placement,\n    placement = _props$placement === void 0 ? 'bottomLeft' : _props$placement,\n    _props$placements = props.placements,\n    placements = _props$placements === void 0 ? Placements : _props$placements,\n    getPopupContainer = props.getPopupContainer,\n    showAction = props.showAction,\n    hideAction = props.hideAction,\n    overlayClassName = props.overlayClassName,\n    overlayStyle = props.overlayStyle,\n    visible = props.visible,\n    _props$trigger = props.trigger,\n    trigger = _props$trigger === void 0 ? ['hover'] : _props$trigger,\n    autoFocus = props.autoFocus,\n    overlay = props.overlay,\n    children = props.children,\n    onVisibleChange = props.onVisibleChange,\n    otherProps = _objectWithoutProperties(props, _excluded);\n  var _React$useState = React.useState(),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    triggerVisible = _React$useState2[0],\n    setTriggerVisible = _React$useState2[1];\n  var mergedVisible = 'visible' in props ? visible : triggerVisible;\n  var triggerRef = React.useRef(null);\n  var overlayRef = React.useRef(null);\n  var childRef = React.useRef(null);\n  React.useImperativeHandle(ref, function () {\n    return triggerRef.current;\n  });\n  var handleVisibleChange = function handleVisibleChange(newVisible) {\n    setTriggerVisible(newVisible);\n    onVisibleChange === null || onVisibleChange === void 0 || onVisibleChange(newVisible);\n  };\n  useAccessibility({\n    visible: mergedVisible,\n    triggerRef: childRef,\n    onVisibleChange: handleVisibleChange,\n    autoFocus: autoFocus,\n    overlayRef: overlayRef\n  });\n  var onClick = function onClick(e) {\n    var onOverlayClick = props.onOverlayClick;\n    setTriggerVisible(false);\n    if (onOverlayClick) {\n      onOverlayClick(e);\n    }\n  };\n  var getMenuElement = function getMenuElement() {\n    return /*#__PURE__*/React.createElement(Overlay, {\n      ref: overlayRef,\n      overlay: overlay,\n      prefixCls: prefixCls,\n      arrow: arrow\n    });\n  };\n  var getMenuElementOrLambda = function getMenuElementOrLambda() {\n    if (typeof overlay === 'function') {\n      return getMenuElement;\n    }\n    return getMenuElement();\n  };\n  var getMinOverlayWidthMatchTrigger = function getMinOverlayWidthMatchTrigger() {\n    var minOverlayWidthMatchTrigger = props.minOverlayWidthMatchTrigger,\n      alignPoint = props.alignPoint;\n    if ('minOverlayWidthMatchTrigger' in props) {\n      return minOverlayWidthMatchTrigger;\n    }\n    return !alignPoint;\n  };\n  var getOpenClassName = function getOpenClassName() {\n    var openClassName = props.openClassName;\n    if (openClassName !== undefined) {\n      return openClassName;\n    }\n    return \"\".concat(prefixCls, \"-open\");\n  };\n  var childrenNode = /*#__PURE__*/React.cloneElement(children, {\n    className: classNames((_children$props = children.props) === null || _children$props === void 0 ? void 0 : _children$props.className, mergedVisible && getOpenClassName()),\n    ref: supportRef(children) ? composeRef(childRef, children.ref) : undefined\n  });\n  var triggerHideAction = hideAction;\n  if (!triggerHideAction && trigger.indexOf('contextMenu') !== -1) {\n    triggerHideAction = ['click'];\n  }\n  return /*#__PURE__*/React.createElement(Trigger, _extends({\n    builtinPlacements: placements\n  }, otherProps, {\n    prefixCls: prefixCls,\n    ref: triggerRef,\n    popupClassName: classNames(overlayClassName, _defineProperty({}, \"\".concat(prefixCls, \"-show-arrow\"), arrow)),\n    popupStyle: overlayStyle,\n    action: trigger,\n    showAction: showAction,\n    hideAction: triggerHideAction,\n    popupPlacement: placement,\n    popupAlign: align,\n    popupTransitionName: transitionName,\n    popupAnimation: animation,\n    popupVisible: mergedVisible,\n    stretch: getMinOverlayWidthMatchTrigger() ? 'minWidth' : '',\n    popup: getMenuElementOrLambda(),\n    onPopupVisibleChange: handleVisibleChange,\n    onPopupClick: onClick,\n    getPopupContainer: getPopupContainer\n  }), childrenNode);\n}\nexport default /*#__PURE__*/React.forwardRef(Dropdown);","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n  key = toPropertyKey(key);\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n  return obj;\n}","import Dropdown from \"./Dropdown\";\nexport default Dropdown;","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAABYlAAAWJQFJUiTwAAABaWlDQ1BEaXNwbGF5IFAzAAB4nHWQvUvDUBTFT6tS0DqIDh0cMolD1NIKdnFoKxRFMFQFq1OafgltfCQpUnETVyn4H1jBWXCwiFRwcXAQRAcR3Zw6KbhoeN6XVNoi3sfl/Ticc7lcwBtQGSv2AijplpFMxKS11Lrke4OHnlOqZrKooiwK/v276/PR9d5PiFlNu3YQ2U9cl84ul3aeAlN//V3Vn8maGv3f1EGNGRbgkYmVbYsJ3iUeMWgp4qrgvMvHgtMunzuelWSc+JZY0gpqhrhJLKc79HwHl4plrbWD2N6f1VeXxRzqUcxhEyYYilBRgQQF4X/8044/ji1yV2BQLo8CLMpESRETssTz0KFhEjJxCEHqkLhz634PrfvJbW3vFZhtcM4v2tpCAzidoZPV29p4BBgaAG7qTDVUR+qh9uZywPsJMJgChu8os2HmwiF3e38M6Hvh/GMM8B0CdpXzryPO7RqFn4Er/QcXKWq8MSlPPgAAAjtJREFUeAHtmE9SwjAUxh/QGVi2wMJlbyBH0J1Lb6CeAI+gJ1BOQG+gnACW7uwNxAvQLruB+j0GZkpIadMmFGfym2HahObl+/KvSYksFotFhuu6D57nRfj98D0ZokWGYOG4+LtkHEWRRwZokzn8zL1LhjBp4CxYA01jDTSNNdA01kDTWANN8+8NOCoPY1vsdjqd+/V6vYjjeEkaGQ6HN2mauogdqsQu3QPQ7rdare/NZjPFVesen2NB+ByxPxB7zg1VtmxpA2j5EWW2yKgo0GGCY3CsTJbPvVy2fGkDaKFYzKtrQiJ+X9eCSlLaAMblAmP0ScyvaiJPPNdhZA4wCBzoMFEgPiAFlJfRuiZ0imcqvQeqmtAtnulQRZIkCXu93i8EHawYnEb+Uszf5QVinDrit/VRTdCqjxA2pQrUFc9U7oE9eT1RhA7xTG0DjKoJXeKZo0lc9ZNg3sQWURVfpOdoDtT9JHhqTlRp+SI9smXUz+ohRfJ6osaw8emEHqXtdFlYKHoiRk+MOQ3xE+R9kgFkQyjNplG5h8pjaghRD4bQgWbZEFpmE47jjKghBoOBuKqF4jNHBtDts2waW9upygFDF1wnDjhv2TxoKzaAQuJY3Z7EJK1hBBbOx0uukw4nMGt7FZ+XbiX6/f47xv6YLggYmqxWq2cxX/om7na7Xyhwh9srugxCXobxxk/EP6TbaV51UOCWXVPDsAbWkrcSFu5G+WtEu91+QZBrJM+1IvHWe8bzkY+yZLFYcvkDSz826uoF0pIAAAAASUVORK5CYII=\"","export const TTS_TEXTS = [\n  \"在那个风雨交加的夜晚，侦探李文斯顿站在荒废的庄园前，心中充满了不安。他知道，每一个角落都可能隐藏着不为人知的秘密。\",\n  \"信中的每一行字都充满了深情，仿佛能穿越时空，让她感受到写信人的温暖和爱意。\",\n  \"这是一个关于等待和重逢的故事，关于两颗心如何在时间的长河中找到彼此。\",\n  \"在这个充满未知科技和奇异生物的世界中，他必须依靠自己的智慧和勇气，揭开这个星球的秘密，并找到回家的路。\",\n  \"我最近发现了一家书店，里面有各种经典文学作品，我们可以一起去坐坐。\",\n  \"今天我们上了一节有趣的科学实验课，还模拟了火山爆发的实验，真是太神奇了！\",\n  \"我刚刚完成了这个季度的销售报告，有一些关键数据想和你讨论一下。\",\n  \"如果你对历史和文化感兴趣，我推荐你去北京。那里不仅有很多古建筑，博物馆里还有很多艺术作品。\",\n  \"你最近的生活压力大吗，或者有没有什么生活习惯的改变？\",\n];\n\nexport const CLONE_TEXTs: Record<string, string[]> = {\n  读书语境: [\n    \"她蹑手蹑脚地走到张伟的身后，突然伸出双手捂住了他的眼睛，嘴角挂着一抹俏皮的微笑。\",\n    \"走在回家的路上，我回头望去，那条小河在夕阳的映照下，显得格外美丽。\",\n    \"今天的故事叫小蜗牛的房子，从前有一只小蜗牛，它住在一个小小的壳里。\",\n    \"在一个遥远的国度，有一个被遗忘的图书馆，里面藏着无数的故事。\",\n  ],\n  聊天语境: [\n    \"你最近有看到什么有趣的电影吗？我最近在追一部新剧，推荐给你，主角特别帅！\",\n    \"工作忙吗？有没有什么困难或需求？我可以帮忙一起想想办法解决。\",\n    \"你今天穿的真好看，这个裙子是在哪里买的呀？好漂亮！上面还有蝴蝶花纹。\",\n    \"楼下昨天新开了一家湖南菜，听说很正宗呢，我们可以一起去尝鲜，体验下不同口味。\",\n  ],\n};\n","function _objectDestructuringEmpty(t) {\n  if (null == t) throw new TypeError(\"Cannot destructure \" + t);\n}\nexport { _objectDestructuringEmpty as default };","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectDestructuringEmpty from \"@babel/runtime/helpers/esm/objectDestructuringEmpty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"className\", \"style\", \"motion\", \"motionNodes\", \"motionType\", \"onMotionStart\", \"onMotionEnd\", \"active\", \"treeNodeRequiredProps\"];\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport * as React from 'react';\nimport { TreeContext } from \"./contextTypes\";\nimport TreeNode from \"./TreeNode\";\nimport useUnmount from \"./useUnmount\";\nimport { getTreeNodeProps } from \"./utils/treeUtil\";\nvar MotionTreeNode = function MotionTreeNode(_ref, ref) {\n  var className = _ref.className,\n    style = _ref.style,\n    motion = _ref.motion,\n    motionNodes = _ref.motionNodes,\n    motionType = _ref.motionType,\n    onOriginMotionStart = _ref.onMotionStart,\n    onOriginMotionEnd = _ref.onMotionEnd,\n    active = _ref.active,\n    treeNodeRequiredProps = _ref.treeNodeRequiredProps,\n    props = _objectWithoutProperties(_ref, _excluded);\n  var _React$useState = React.useState(true),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    visible = _React$useState2[0],\n    setVisible = _React$useState2[1];\n  var _React$useContext = React.useContext(TreeContext),\n    prefixCls = _React$useContext.prefixCls;\n\n  // Calculate target visible here.\n  // And apply in effect to make `leave` motion work.\n  var targetVisible = motionNodes && motionType !== 'hide';\n  useLayoutEffect(function () {\n    if (motionNodes) {\n      if (targetVisible !== visible) {\n        setVisible(targetVisible);\n      }\n    }\n  }, [motionNodes]);\n  var triggerMotionStart = function triggerMotionStart() {\n    if (motionNodes) {\n      onOriginMotionStart();\n    }\n  };\n\n  // Should only trigger once\n  var triggerMotionEndRef = React.useRef(false);\n  var triggerMotionEnd = function triggerMotionEnd() {\n    if (motionNodes && !triggerMotionEndRef.current) {\n      triggerMotionEndRef.current = true;\n      onOriginMotionEnd();\n    }\n  };\n\n  // Effect if unmount\n  useUnmount(triggerMotionStart, triggerMotionEnd);\n\n  // Motion end event\n  var onVisibleChanged = function onVisibleChanged(nextVisible) {\n    if (targetVisible === nextVisible) {\n      triggerMotionEnd();\n    }\n  };\n  if (motionNodes) {\n    return /*#__PURE__*/React.createElement(CSSMotion, _extends({\n      ref: ref,\n      visible: visible\n    }, motion, {\n      motionAppear: motionType === 'show',\n      onVisibleChanged: onVisibleChanged\n    }), function (_ref2, motionRef) {\n      var motionClassName = _ref2.className,\n        motionStyle = _ref2.style;\n      return /*#__PURE__*/React.createElement(\"div\", {\n        ref: motionRef,\n        className: classNames(\"\".concat(prefixCls, \"-treenode-motion\"), motionClassName),\n        style: motionStyle\n      }, motionNodes.map(function (treeNode) {\n        var restProps = Object.assign({}, (_objectDestructuringEmpty(treeNode.data), treeNode.data)),\n          title = treeNode.title,\n          key = treeNode.key,\n          isStart = treeNode.isStart,\n          isEnd = treeNode.isEnd;\n        delete restProps.children;\n        var treeNodeProps = getTreeNodeProps(key, treeNodeRequiredProps);\n        return /*#__PURE__*/React.createElement(TreeNode, _extends({}, restProps, treeNodeProps, {\n          title: title,\n          active: active,\n          data: treeNode.data,\n          key: key,\n          isStart: isStart,\n          isEnd: isEnd\n        }));\n      }));\n    });\n  }\n  return /*#__PURE__*/React.createElement(TreeNode, _extends({\n    domRef: ref,\n    className: className,\n    style: style\n  }, props, {\n    active: active\n  }));\n};\nMotionTreeNode.displayName = 'MotionTreeNode';\nvar RefMotionTreeNode = /*#__PURE__*/React.forwardRef(MotionTreeNode);\nexport default RefMotionTreeNode;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\n\n/**\n * Trigger only when component unmount\n */\nexport default function useUnmount(triggerStart, triggerEnd) {\n  var _React$useState = React.useState(false),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    firstMount = _React$useState2[0],\n    setFirstMount = _React$useState2[1];\n  useLayoutEffect(function () {\n    if (firstMount) {\n      triggerStart();\n      return function () {\n        triggerEnd();\n      };\n    }\n  }, [firstMount]);\n  useLayoutEffect(function () {\n    setFirstMount(true);\n    return function () {\n      setFirstMount(false);\n    };\n  }, []);\n}","export function findExpandedKeys() {\n  var prev = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n  var next = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n  var prevLen = prev.length;\n  var nextLen = next.length;\n  if (Math.abs(prevLen - nextLen) !== 1) {\n    return {\n      add: false,\n      key: null\n    };\n  }\n  function find(shorter, longer) {\n    var cache = new Map();\n    shorter.forEach(function (key) {\n      cache.set(key, true);\n    });\n    var keys = longer.filter(function (key) {\n      return !cache.has(key);\n    });\n    return keys.length === 1 ? keys[0] : null;\n  }\n  if (prevLen < nextLen) {\n    return {\n      add: true,\n      key: find(prev, next)\n    };\n  }\n  return {\n    add: false,\n    key: find(next, prev)\n  };\n}\nexport function getExpandRange(shorter, longer, key) {\n  var shorterStartIndex = shorter.findIndex(function (data) {\n    return data.key === key;\n  });\n  var shorterEndNode = shorter[shorterStartIndex + 1];\n  var longerStartIndex = longer.findIndex(function (data) {\n    return data.key === key;\n  });\n  if (shorterEndNode) {\n    var longerEndIndex = longer.findIndex(function (data) {\n      return data.key === shorterEndNode.key;\n    });\n    return longer.slice(longerStartIndex + 1, longerEndIndex);\n  }\n  return longer.slice(longerStartIndex + 1);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectDestructuringEmpty from \"@babel/runtime/helpers/esm/objectDestructuringEmpty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"data\", \"selectable\", \"checkable\", \"expandedKeys\", \"selectedKeys\", \"checkedKeys\", \"loadedKeys\", \"loadingKeys\", \"halfCheckedKeys\", \"keyEntities\", \"disabled\", \"dragging\", \"dragOverNodeKey\", \"dropPosition\", \"motion\", \"height\", \"itemHeight\", \"virtual\", \"focusable\", \"activeItem\", \"focused\", \"tabIndex\", \"onKeyDown\", \"onFocus\", \"onBlur\", \"onActiveChange\", \"onListChangeStart\", \"onListChangeEnd\"];\n/**\n * Handle virtual list of the TreeNodes.\n */\n\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport VirtualList from 'rc-virtual-list';\nimport * as React from 'react';\nimport MotionTreeNode from \"./MotionTreeNode\";\nimport { findExpandedKeys, getExpandRange } from \"./utils/diffUtil\";\nimport { getKey, getTreeNodeProps } from \"./utils/treeUtil\";\nvar HIDDEN_STYLE = {\n  width: 0,\n  height: 0,\n  display: 'flex',\n  overflow: 'hidden',\n  opacity: 0,\n  border: 0,\n  padding: 0,\n  margin: 0\n};\nvar noop = function noop() {};\nexport var MOTION_KEY = \"RC_TREE_MOTION_\".concat(Math.random());\nvar MotionNode = {\n  key: MOTION_KEY\n};\nexport var MotionEntity = {\n  key: MOTION_KEY,\n  level: 0,\n  index: 0,\n  pos: '0',\n  node: MotionNode,\n  nodes: [MotionNode]\n};\nvar MotionFlattenData = {\n  parent: null,\n  children: [],\n  pos: MotionEntity.pos,\n  data: MotionNode,\n  title: null,\n  key: MOTION_KEY,\n  /** Hold empty list here since we do not use it */\n  isStart: [],\n  isEnd: []\n};\n/**\n * We only need get visible content items to play the animation.\n */\nexport function getMinimumRangeTransitionRange(list, virtual, height, itemHeight) {\n  if (virtual === false || !height) {\n    return list;\n  }\n  return list.slice(0, Math.ceil(height / itemHeight) + 1);\n}\nfunction itemKey(item) {\n  var key = item.key,\n    pos = item.pos;\n  return getKey(key, pos);\n}\nfunction getAccessibilityPath(item) {\n  var path = String(item.data.key);\n  var current = item;\n  while (current.parent) {\n    current = current.parent;\n    path = \"\".concat(current.data.key, \" > \").concat(path);\n  }\n  return path;\n}\nvar NodeList = /*#__PURE__*/React.forwardRef(function (props, ref) {\n  var prefixCls = props.prefixCls,\n    data = props.data,\n    selectable = props.selectable,\n    checkable = props.checkable,\n    expandedKeys = props.expandedKeys,\n    selectedKeys = props.selectedKeys,\n    checkedKeys = props.checkedKeys,\n    loadedKeys = props.loadedKeys,\n    loadingKeys = props.loadingKeys,\n    halfCheckedKeys = props.halfCheckedKeys,\n    keyEntities = props.keyEntities,\n    disabled = props.disabled,\n    dragging = props.dragging,\n    dragOverNodeKey = props.dragOverNodeKey,\n    dropPosition = props.dropPosition,\n    motion = props.motion,\n    height = props.height,\n    itemHeight = props.itemHeight,\n    virtual = props.virtual,\n    focusable = props.focusable,\n    activeItem = props.activeItem,\n    focused = props.focused,\n    tabIndex = props.tabIndex,\n    onKeyDown = props.onKeyDown,\n    onFocus = props.onFocus,\n    onBlur = props.onBlur,\n    onActiveChange = props.onActiveChange,\n    onListChangeStart = props.onListChangeStart,\n    onListChangeEnd = props.onListChangeEnd,\n    domProps = _objectWithoutProperties(props, _excluded);\n\n  // =============================== Ref ================================\n  var listRef = React.useRef(null);\n  var indentMeasurerRef = React.useRef(null);\n  React.useImperativeHandle(ref, function () {\n    return {\n      scrollTo: function scrollTo(scroll) {\n        listRef.current.scrollTo(scroll);\n      },\n      getIndentWidth: function getIndentWidth() {\n        return indentMeasurerRef.current.offsetWidth;\n      }\n    };\n  });\n\n  // ============================== Motion ==============================\n  var _React$useState = React.useState(expandedKeys),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    prevExpandedKeys = _React$useState2[0],\n    setPrevExpandedKeys = _React$useState2[1];\n  var _React$useState3 = React.useState(data),\n    _React$useState4 = _slicedToArray(_React$useState3, 2),\n    prevData = _React$useState4[0],\n    setPrevData = _React$useState4[1];\n  var _React$useState5 = React.useState(data),\n    _React$useState6 = _slicedToArray(_React$useState5, 2),\n    transitionData = _React$useState6[0],\n    setTransitionData = _React$useState6[1];\n  var _React$useState7 = React.useState([]),\n    _React$useState8 = _slicedToArray(_React$useState7, 2),\n    transitionRange = _React$useState8[0],\n    setTransitionRange = _React$useState8[1];\n  var _React$useState9 = React.useState(null),\n    _React$useState10 = _slicedToArray(_React$useState9, 2),\n    motionType = _React$useState10[0],\n    setMotionType = _React$useState10[1];\n\n  // When motion end but data change, this will makes data back to previous one\n  var dataRef = React.useRef(data);\n  dataRef.current = data;\n  function onMotionEnd() {\n    var latestData = dataRef.current;\n    setPrevData(latestData);\n    setTransitionData(latestData);\n    setTransitionRange([]);\n    setMotionType(null);\n    onListChangeEnd();\n  }\n\n  // Do animation if expanded keys changed\n  // layoutEffect here to avoid blink of node removing\n  useLayoutEffect(function () {\n    setPrevExpandedKeys(expandedKeys);\n    var diffExpanded = findExpandedKeys(prevExpandedKeys, expandedKeys);\n    if (diffExpanded.key !== null) {\n      if (diffExpanded.add) {\n        var keyIndex = prevData.findIndex(function (_ref) {\n          var key = _ref.key;\n          return key === diffExpanded.key;\n        });\n        var rangeNodes = getMinimumRangeTransitionRange(getExpandRange(prevData, data, diffExpanded.key), virtual, height, itemHeight);\n        var newTransitionData = prevData.slice();\n        newTransitionData.splice(keyIndex + 1, 0, MotionFlattenData);\n        setTransitionData(newTransitionData);\n        setTransitionRange(rangeNodes);\n        setMotionType('show');\n      } else {\n        var _keyIndex = data.findIndex(function (_ref2) {\n          var key = _ref2.key;\n          return key === diffExpanded.key;\n        });\n        var _rangeNodes = getMinimumRangeTransitionRange(getExpandRange(data, prevData, diffExpanded.key), virtual, height, itemHeight);\n        var _newTransitionData = data.slice();\n        _newTransitionData.splice(_keyIndex + 1, 0, MotionFlattenData);\n        setTransitionData(_newTransitionData);\n        setTransitionRange(_rangeNodes);\n        setMotionType('hide');\n      }\n    } else if (prevData !== data) {\n      // If whole data changed, we just refresh the list\n      setPrevData(data);\n      setTransitionData(data);\n    }\n  }, [expandedKeys, data]);\n\n  // We should clean up motion if is changed by dragging\n  React.useEffect(function () {\n    if (!dragging) {\n      onMotionEnd();\n    }\n  }, [dragging]);\n  var mergedData = motion ? transitionData : data;\n  var treeNodeRequiredProps = {\n    expandedKeys: expandedKeys,\n    selectedKeys: selectedKeys,\n    loadedKeys: loadedKeys,\n    loadingKeys: loadingKeys,\n    checkedKeys: checkedKeys,\n    halfCheckedKeys: halfCheckedKeys,\n    dragOverNodeKey: dragOverNodeKey,\n    dropPosition: dropPosition,\n    keyEntities: keyEntities\n  };\n  return /*#__PURE__*/React.createElement(React.Fragment, null, focused && activeItem && /*#__PURE__*/React.createElement(\"span\", {\n    style: HIDDEN_STYLE,\n    \"aria-live\": \"assertive\"\n  }, getAccessibilityPath(activeItem)), /*#__PURE__*/React.createElement(\"div\", null, /*#__PURE__*/React.createElement(\"input\", {\n    style: HIDDEN_STYLE,\n    disabled: focusable === false || disabled,\n    tabIndex: focusable !== false ? tabIndex : null,\n    onKeyDown: onKeyDown,\n    onFocus: onFocus,\n    onBlur: onBlur,\n    value: \"\",\n    onChange: noop,\n    \"aria-label\": \"for screen reader\"\n  })), /*#__PURE__*/React.createElement(\"div\", {\n    className: \"\".concat(prefixCls, \"-treenode\"),\n    \"aria-hidden\": true,\n    style: {\n      position: 'absolute',\n      pointerEvents: 'none',\n      visibility: 'hidden',\n      height: 0,\n      overflow: 'hidden',\n      border: 0,\n      padding: 0\n    }\n  }, /*#__PURE__*/React.createElement(\"div\", {\n    className: \"\".concat(prefixCls, \"-indent\")\n  }, /*#__PURE__*/React.createElement(\"div\", {\n    ref: indentMeasurerRef,\n    className: \"\".concat(prefixCls, \"-indent-unit\")\n  }))), /*#__PURE__*/React.createElement(VirtualList, _extends({}, domProps, {\n    data: mergedData,\n    itemKey: itemKey,\n    height: height,\n    fullHeight: false,\n    virtual: virtual,\n    itemHeight: itemHeight,\n    prefixCls: \"\".concat(prefixCls, \"-list\"),\n    ref: listRef,\n    onVisibleChange: function onVisibleChange(originList) {\n      // The best match is using `fullList` - `originList` = `restList`\n      // and check the `restList` to see if has the MOTION_KEY node\n      // but this will cause performance issue for long list compare\n      // we just check `originList` and repeat trigger `onMotionEnd`\n      if (originList.every(function (item) {\n        return itemKey(item) !== MOTION_KEY;\n      })) {\n        onMotionEnd();\n      }\n    }\n  }), function (treeNode) {\n    var pos = treeNode.pos,\n      restProps = Object.assign({}, (_objectDestructuringEmpty(treeNode.data), treeNode.data)),\n      title = treeNode.title,\n      key = treeNode.key,\n      isStart = treeNode.isStart,\n      isEnd = treeNode.isEnd;\n    var mergedKey = getKey(key, pos);\n    delete restProps.key;\n    delete restProps.children;\n    var treeNodeProps = getTreeNodeProps(mergedKey, treeNodeRequiredProps);\n    return /*#__PURE__*/React.createElement(MotionTreeNode, _extends({}, restProps, treeNodeProps, {\n      title: title,\n      active: !!activeItem && key === activeItem.key,\n      pos: pos,\n      data: treeNode.data,\n      isStart: isStart,\n      isEnd: isEnd,\n      motion: motion,\n      motionNodes: key === MOTION_KEY ? transitionRange : null,\n      motionType: motionType,\n      onMotionStart: onListChangeStart,\n      onMotionEnd: onMotionEnd,\n      treeNodeRequiredProps: treeNodeRequiredProps,\n      onMouseMove: function onMouseMove() {\n        onActiveChange(null);\n      }\n    }));\n  }));\n});\nNodeList.displayName = 'NodeList';\nexport default NodeList;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n// TODO: https://www.w3.org/TR/2017/NOTE-wai-aria-practices-1.1-20171214/examples/treeview/treeview-2/treeview-2a.html\n// Fully accessibility support\n\nimport classNames from 'classnames';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport { TreeContext } from \"./contextTypes\";\nimport DropIndicator from \"./DropIndicator\";\nimport NodeList, { MOTION_KEY, MotionEntity } from \"./NodeList\";\nimport TreeNode from \"./TreeNode\";\nimport { arrAdd, arrDel, calcDropPosition, calcSelectedKeys, conductExpandParent, getDragChildrenKeys, parseCheckedKeys, posToArr } from \"./util\";\nimport { conductCheck } from \"./utils/conductUtil\";\nimport getEntity from \"./utils/keyUtil\";\nimport { convertDataToEntities, convertNodePropsToEventData, convertTreeToData, fillFieldNames, flattenTreeData, getTreeNodeProps, warningWithoutKey } from \"./utils/treeUtil\";\nvar MAX_RETRY_TIMES = 10;\nvar Tree = /*#__PURE__*/function (_React$Component) {\n  _inherits(Tree, _React$Component);\n  var _super = _createSuper(Tree);\n  function Tree() {\n    var _this;\n    _classCallCheck(this, Tree);\n    for (var _len = arguments.length, _args = new Array(_len), _key = 0; _key < _len; _key++) {\n      _args[_key] = arguments[_key];\n    }\n    _this = _super.call.apply(_super, [this].concat(_args));\n    _defineProperty(_assertThisInitialized(_this), \"destroyed\", false);\n    _defineProperty(_assertThisInitialized(_this), \"delayedDragEnterLogic\", void 0);\n    _defineProperty(_assertThisInitialized(_this), \"loadingRetryTimes\", {});\n    _defineProperty(_assertThisInitialized(_this), \"state\", {\n      keyEntities: {},\n      indent: null,\n      selectedKeys: [],\n      checkedKeys: [],\n      halfCheckedKeys: [],\n      loadedKeys: [],\n      loadingKeys: [],\n      expandedKeys: [],\n      draggingNodeKey: null,\n      dragChildrenKeys: [],\n      // dropTargetKey is the key of abstract-drop-node\n      // the abstract-drop-node is the real drop node when drag and drop\n      // not the DOM drag over node\n      dropTargetKey: null,\n      dropPosition: null,\n      // the drop position of abstract-drop-node, inside 0, top -1, bottom 1\n      dropContainerKey: null,\n      // the container key of abstract-drop-node if dropPosition is -1 or 1\n      dropLevelOffset: null,\n      // the drop level offset of abstract-drag-over-node\n      dropTargetPos: null,\n      // the pos of abstract-drop-node\n      dropAllowed: true,\n      // if drop to abstract-drop-node is allowed\n      // the abstract-drag-over-node\n      // if mouse is on the bottom of top dom node or no the top of the bottom dom node\n      // abstract-drag-over-node is the top node\n      dragOverNodeKey: null,\n      treeData: [],\n      flattenNodes: [],\n      focused: false,\n      activeKey: null,\n      listChanging: false,\n      prevProps: null,\n      fieldNames: fillFieldNames()\n    });\n    _defineProperty(_assertThisInitialized(_this), \"dragStartMousePosition\", null);\n    _defineProperty(_assertThisInitialized(_this), \"dragNode\", void 0);\n    _defineProperty(_assertThisInitialized(_this), \"currentMouseOverDroppableNodeKey\", null);\n    _defineProperty(_assertThisInitialized(_this), \"listRef\", /*#__PURE__*/React.createRef());\n    _defineProperty(_assertThisInitialized(_this), \"onNodeDragStart\", function (event, node) {\n      var _this$state = _this.state,\n        expandedKeys = _this$state.expandedKeys,\n        keyEntities = _this$state.keyEntities;\n      var onDragStart = _this.props.onDragStart;\n      var eventKey = node.props.eventKey;\n      _this.dragNode = node;\n      _this.dragStartMousePosition = {\n        x: event.clientX,\n        y: event.clientY\n      };\n      var newExpandedKeys = arrDel(expandedKeys, eventKey);\n      _this.setState({\n        draggingNodeKey: eventKey,\n        dragChildrenKeys: getDragChildrenKeys(eventKey, keyEntities),\n        indent: _this.listRef.current.getIndentWidth()\n      });\n      _this.setExpandedKeys(newExpandedKeys);\n      window.addEventListener('dragend', _this.onWindowDragEnd);\n      onDragStart === null || onDragStart === void 0 || onDragStart({\n        event: event,\n        node: convertNodePropsToEventData(node.props)\n      });\n    });\n    /**\n     * [Legacy] Select handler is smaller than node,\n     * so that this will trigger when drag enter node or select handler.\n     * This is a little tricky if customize css without padding.\n     * Better for use mouse move event to refresh drag state.\n     * But let's just keep it to avoid event trigger logic change.\n     */\n    _defineProperty(_assertThisInitialized(_this), \"onNodeDragEnter\", function (event, node) {\n      var _this$state2 = _this.state,\n        expandedKeys = _this$state2.expandedKeys,\n        keyEntities = _this$state2.keyEntities,\n        dragChildrenKeys = _this$state2.dragChildrenKeys,\n        flattenNodes = _this$state2.flattenNodes,\n        indent = _this$state2.indent;\n      var _this$props = _this.props,\n        onDragEnter = _this$props.onDragEnter,\n        onExpand = _this$props.onExpand,\n        allowDrop = _this$props.allowDrop,\n        direction = _this$props.direction;\n      var _node$props = node.props,\n        pos = _node$props.pos,\n        eventKey = _node$props.eventKey;\n      var _assertThisInitialize = _assertThisInitialized(_this),\n        dragNode = _assertThisInitialize.dragNode;\n\n      // record the key of node which is latest entered, used in dragleave event.\n      if (_this.currentMouseOverDroppableNodeKey !== eventKey) {\n        _this.currentMouseOverDroppableNodeKey = eventKey;\n      }\n      if (!dragNode) {\n        _this.resetDragState();\n        return;\n      }\n      var _calcDropPosition = calcDropPosition(event, dragNode, node, indent, _this.dragStartMousePosition, allowDrop, flattenNodes, keyEntities, expandedKeys, direction),\n        dropPosition = _calcDropPosition.dropPosition,\n        dropLevelOffset = _calcDropPosition.dropLevelOffset,\n        dropTargetKey = _calcDropPosition.dropTargetKey,\n        dropContainerKey = _calcDropPosition.dropContainerKey,\n        dropTargetPos = _calcDropPosition.dropTargetPos,\n        dropAllowed = _calcDropPosition.dropAllowed,\n        dragOverNodeKey = _calcDropPosition.dragOverNodeKey;\n      if (\n      // don't allow drop inside its children\n      dragChildrenKeys.indexOf(dropTargetKey) !== -1 ||\n      // don't allow drop when drop is not allowed caculated by calcDropPosition\n      !dropAllowed) {\n        _this.resetDragState();\n        return;\n      }\n\n      // Side effect for delay drag\n      if (!_this.delayedDragEnterLogic) {\n        _this.delayedDragEnterLogic = {};\n      }\n      Object.keys(_this.delayedDragEnterLogic).forEach(function (key) {\n        clearTimeout(_this.delayedDragEnterLogic[key]);\n      });\n      if (dragNode.props.eventKey !== node.props.eventKey) {\n        // hoist expand logic here\n        // since if logic is on the bottom\n        // it will be blocked by abstract dragover node check\n        //   => if you dragenter from top, you mouse will still be consider as in the top node\n        event.persist();\n        _this.delayedDragEnterLogic[pos] = window.setTimeout(function () {\n          if (_this.state.draggingNodeKey === null) return;\n          var newExpandedKeys = _toConsumableArray(expandedKeys);\n          var entity = getEntity(keyEntities, node.props.eventKey);\n          if (entity && (entity.children || []).length) {\n            newExpandedKeys = arrAdd(expandedKeys, node.props.eventKey);\n          }\n          if (!('expandedKeys' in _this.props)) {\n            _this.setExpandedKeys(newExpandedKeys);\n          }\n          onExpand === null || onExpand === void 0 || onExpand(newExpandedKeys, {\n            node: convertNodePropsToEventData(node.props),\n            expanded: true,\n            nativeEvent: event.nativeEvent\n          });\n        }, 800);\n      }\n\n      // Skip if drag node is self\n      if (dragNode.props.eventKey === dropTargetKey && dropLevelOffset === 0) {\n        _this.resetDragState();\n        return;\n      }\n\n      // Update drag over node and drag state\n      _this.setState({\n        dragOverNodeKey: dragOverNodeKey,\n        dropPosition: dropPosition,\n        dropLevelOffset: dropLevelOffset,\n        dropTargetKey: dropTargetKey,\n        dropContainerKey: dropContainerKey,\n        dropTargetPos: dropTargetPos,\n        dropAllowed: dropAllowed\n      });\n      onDragEnter === null || onDragEnter === void 0 || onDragEnter({\n        event: event,\n        node: convertNodePropsToEventData(node.props),\n        expandedKeys: expandedKeys\n      });\n    });\n    _defineProperty(_assertThisInitialized(_this), \"onNodeDragOver\", function (event, node) {\n      var _this$state3 = _this.state,\n        dragChildrenKeys = _this$state3.dragChildrenKeys,\n        flattenNodes = _this$state3.flattenNodes,\n        keyEntities = _this$state3.keyEntities,\n        expandedKeys = _this$state3.expandedKeys,\n        indent = _this$state3.indent;\n      var _this$props2 = _this.props,\n        onDragOver = _this$props2.onDragOver,\n        allowDrop = _this$props2.allowDrop,\n        direction = _this$props2.direction;\n      var _assertThisInitialize2 = _assertThisInitialized(_this),\n        dragNode = _assertThisInitialize2.dragNode;\n      if (!dragNode) {\n        return;\n      }\n      var _calcDropPosition2 = calcDropPosition(event, dragNode, node, indent, _this.dragStartMousePosition, allowDrop, flattenNodes, keyEntities, expandedKeys, direction),\n        dropPosition = _calcDropPosition2.dropPosition,\n        dropLevelOffset = _calcDropPosition2.dropLevelOffset,\n        dropTargetKey = _calcDropPosition2.dropTargetKey,\n        dropContainerKey = _calcDropPosition2.dropContainerKey,\n        dropAllowed = _calcDropPosition2.dropAllowed,\n        dropTargetPos = _calcDropPosition2.dropTargetPos,\n        dragOverNodeKey = _calcDropPosition2.dragOverNodeKey;\n      if (dragChildrenKeys.indexOf(dropTargetKey) !== -1 || !dropAllowed) {\n        // don't allow drop inside its children\n        // don't allow drop when drop is not allowed calculated by calcDropPosition\n        return;\n      }\n\n      // Update drag position\n\n      if (dragNode.props.eventKey === dropTargetKey && dropLevelOffset === 0) {\n        if (!(_this.state.dropPosition === null && _this.state.dropLevelOffset === null && _this.state.dropTargetKey === null && _this.state.dropContainerKey === null && _this.state.dropTargetPos === null && _this.state.dropAllowed === false && _this.state.dragOverNodeKey === null)) {\n          _this.resetDragState();\n        }\n      } else if (!(dropPosition === _this.state.dropPosition && dropLevelOffset === _this.state.dropLevelOffset && dropTargetKey === _this.state.dropTargetKey && dropContainerKey === _this.state.dropContainerKey && dropTargetPos === _this.state.dropTargetPos && dropAllowed === _this.state.dropAllowed && dragOverNodeKey === _this.state.dragOverNodeKey)) {\n        _this.setState({\n          dropPosition: dropPosition,\n          dropLevelOffset: dropLevelOffset,\n          dropTargetKey: dropTargetKey,\n          dropContainerKey: dropContainerKey,\n          dropTargetPos: dropTargetPos,\n          dropAllowed: dropAllowed,\n          dragOverNodeKey: dragOverNodeKey\n        });\n      }\n      onDragOver === null || onDragOver === void 0 || onDragOver({\n        event: event,\n        node: convertNodePropsToEventData(node.props)\n      });\n    });\n    _defineProperty(_assertThisInitialized(_this), \"onNodeDragLeave\", function (event, node) {\n      // if it is outside the droppable area\n      // currentMouseOverDroppableNodeKey will be updated in dragenter event when into another droppable receiver.\n      if (_this.currentMouseOverDroppableNodeKey === node.props.eventKey && !event.currentTarget.contains(event.relatedTarget)) {\n        _this.resetDragState();\n        _this.currentMouseOverDroppableNodeKey = null;\n      }\n      var onDragLeave = _this.props.onDragLeave;\n      onDragLeave === null || onDragLeave === void 0 || onDragLeave({\n        event: event,\n        node: convertNodePropsToEventData(node.props)\n      });\n    });\n    // since stopPropagation() is called in treeNode\n    // if onWindowDrag is called, whice means state is keeped, drag state should be cleared\n    _defineProperty(_assertThisInitialized(_this), \"onWindowDragEnd\", function (event) {\n      _this.onNodeDragEnd(event, null, true);\n      window.removeEventListener('dragend', _this.onWindowDragEnd);\n    });\n    // if onNodeDragEnd is called, onWindowDragEnd won't be called since stopPropagation() is called\n    _defineProperty(_assertThisInitialized(_this), \"onNodeDragEnd\", function (event, node) {\n      var onDragEnd = _this.props.onDragEnd;\n      _this.setState({\n        dragOverNodeKey: null\n      });\n      _this.cleanDragState();\n      onDragEnd === null || onDragEnd === void 0 || onDragEnd({\n        event: event,\n        node: convertNodePropsToEventData(node.props)\n      });\n      _this.dragNode = null;\n      window.removeEventListener('dragend', _this.onWindowDragEnd);\n    });\n    _defineProperty(_assertThisInitialized(_this), \"onNodeDrop\", function (event, node) {\n      var _this$getActiveItem;\n      var outsideTree = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n      var _this$state4 = _this.state,\n        dragChildrenKeys = _this$state4.dragChildrenKeys,\n        dropPosition = _this$state4.dropPosition,\n        dropTargetKey = _this$state4.dropTargetKey,\n        dropTargetPos = _this$state4.dropTargetPos,\n        dropAllowed = _this$state4.dropAllowed;\n      if (!dropAllowed) return;\n      var onDrop = _this.props.onDrop;\n      _this.setState({\n        dragOverNodeKey: null\n      });\n      _this.cleanDragState();\n      if (dropTargetKey === null) return;\n      var abstractDropNodeProps = _objectSpread(_objectSpread({}, getTreeNodeProps(dropTargetKey, _this.getTreeNodeRequiredProps())), {}, {\n        active: ((_this$getActiveItem = _this.getActiveItem()) === null || _this$getActiveItem === void 0 ? void 0 : _this$getActiveItem.key) === dropTargetKey,\n        data: getEntity(_this.state.keyEntities, dropTargetKey).node\n      });\n      var dropToChild = dragChildrenKeys.indexOf(dropTargetKey) !== -1;\n      warning(!dropToChild, \"Can not drop to dragNode's children node. This is a bug of rc-tree. Please report an issue.\");\n      var posArr = posToArr(dropTargetPos);\n      var dropResult = {\n        event: event,\n        node: convertNodePropsToEventData(abstractDropNodeProps),\n        dragNode: _this.dragNode ? convertNodePropsToEventData(_this.dragNode.props) : null,\n        dragNodesKeys: [_this.dragNode.props.eventKey].concat(dragChildrenKeys),\n        dropToGap: dropPosition !== 0,\n        dropPosition: dropPosition + Number(posArr[posArr.length - 1])\n      };\n      if (!outsideTree) {\n        onDrop === null || onDrop === void 0 || onDrop(dropResult);\n      }\n      _this.dragNode = null;\n    });\n    _defineProperty(_assertThisInitialized(_this), \"cleanDragState\", function () {\n      var draggingNodeKey = _this.state.draggingNodeKey;\n      if (draggingNodeKey !== null) {\n        _this.setState({\n          draggingNodeKey: null,\n          dropPosition: null,\n          dropContainerKey: null,\n          dropTargetKey: null,\n          dropLevelOffset: null,\n          dropAllowed: true,\n          dragOverNodeKey: null\n        });\n      }\n      _this.dragStartMousePosition = null;\n      _this.currentMouseOverDroppableNodeKey = null;\n    });\n    _defineProperty(_assertThisInitialized(_this), \"triggerExpandActionExpand\", function (e, treeNode) {\n      var _this$state5 = _this.state,\n        expandedKeys = _this$state5.expandedKeys,\n        flattenNodes = _this$state5.flattenNodes;\n      var expanded = treeNode.expanded,\n        key = treeNode.key,\n        isLeaf = treeNode.isLeaf;\n      if (isLeaf || e.shiftKey || e.metaKey || e.ctrlKey) {\n        return;\n      }\n      var node = flattenNodes.filter(function (nodeItem) {\n        return nodeItem.key === key;\n      })[0];\n      var eventNode = convertNodePropsToEventData(_objectSpread(_objectSpread({}, getTreeNodeProps(key, _this.getTreeNodeRequiredProps())), {}, {\n        data: node.data\n      }));\n      _this.setExpandedKeys(expanded ? arrDel(expandedKeys, key) : arrAdd(expandedKeys, key));\n      _this.onNodeExpand(e, eventNode);\n    });\n    _defineProperty(_assertThisInitialized(_this), \"onNodeClick\", function (e, treeNode) {\n      var _this$props3 = _this.props,\n        onClick = _this$props3.onClick,\n        expandAction = _this$props3.expandAction;\n      if (expandAction === 'click') {\n        _this.triggerExpandActionExpand(e, treeNode);\n      }\n      onClick === null || onClick === void 0 || onClick(e, treeNode);\n    });\n    _defineProperty(_assertThisInitialized(_this), \"onNodeDoubleClick\", function (e, treeNode) {\n      var _this$props4 = _this.props,\n        onDoubleClick = _this$props4.onDoubleClick,\n        expandAction = _this$props4.expandAction;\n      if (expandAction === 'doubleClick') {\n        _this.triggerExpandActionExpand(e, treeNode);\n      }\n      onDoubleClick === null || onDoubleClick === void 0 || onDoubleClick(e, treeNode);\n    });\n    _defineProperty(_assertThisInitialized(_this), \"onNodeSelect\", function (e, treeNode) {\n      var selectedKeys = _this.state.selectedKeys;\n      var _this$state6 = _this.state,\n        keyEntities = _this$state6.keyEntities,\n        fieldNames = _this$state6.fieldNames;\n      var _this$props5 = _this.props,\n        onSelect = _this$props5.onSelect,\n        multiple = _this$props5.multiple;\n      var selected = treeNode.selected;\n      var key = treeNode[fieldNames.key];\n      var targetSelected = !selected;\n\n      // Update selected keys\n      if (!targetSelected) {\n        selectedKeys = arrDel(selectedKeys, key);\n      } else if (!multiple) {\n        selectedKeys = [key];\n      } else {\n        selectedKeys = arrAdd(selectedKeys, key);\n      }\n\n      // [Legacy] Not found related usage in doc or upper libs\n      var selectedNodes = selectedKeys.map(function (selectedKey) {\n        var entity = getEntity(keyEntities, selectedKey);\n        if (!entity) return null;\n        return entity.node;\n      }).filter(function (node) {\n        return node;\n      });\n      _this.setUncontrolledState({\n        selectedKeys: selectedKeys\n      });\n      onSelect === null || onSelect === void 0 || onSelect(selectedKeys, {\n        event: 'select',\n        selected: targetSelected,\n        node: treeNode,\n        selectedNodes: selectedNodes,\n        nativeEvent: e.nativeEvent\n      });\n    });\n    _defineProperty(_assertThisInitialized(_this), \"onNodeCheck\", function (e, treeNode, checked) {\n      var _this$state7 = _this.state,\n        keyEntities = _this$state7.keyEntities,\n        oriCheckedKeys = _this$state7.checkedKeys,\n        oriHalfCheckedKeys = _this$state7.halfCheckedKeys;\n      var _this$props6 = _this.props,\n        checkStrictly = _this$props6.checkStrictly,\n        onCheck = _this$props6.onCheck;\n      var key = treeNode.key;\n\n      // Prepare trigger arguments\n      var checkedObj;\n      var eventObj = {\n        event: 'check',\n        node: treeNode,\n        checked: checked,\n        nativeEvent: e.nativeEvent\n      };\n      if (checkStrictly) {\n        var checkedKeys = checked ? arrAdd(oriCheckedKeys, key) : arrDel(oriCheckedKeys, key);\n        var halfCheckedKeys = arrDel(oriHalfCheckedKeys, key);\n        checkedObj = {\n          checked: checkedKeys,\n          halfChecked: halfCheckedKeys\n        };\n        eventObj.checkedNodes = checkedKeys.map(function (checkedKey) {\n          return getEntity(keyEntities, checkedKey);\n        }).filter(function (entity) {\n          return entity;\n        }).map(function (entity) {\n          return entity.node;\n        });\n        _this.setUncontrolledState({\n          checkedKeys: checkedKeys\n        });\n      } else {\n        // Always fill first\n        var _conductCheck = conductCheck([].concat(_toConsumableArray(oriCheckedKeys), [key]), true, keyEntities),\n          _checkedKeys = _conductCheck.checkedKeys,\n          _halfCheckedKeys = _conductCheck.halfCheckedKeys;\n\n        // If remove, we do it again to correction\n        if (!checked) {\n          var keySet = new Set(_checkedKeys);\n          keySet.delete(key);\n          var _conductCheck2 = conductCheck(Array.from(keySet), {\n            checked: false,\n            halfCheckedKeys: _halfCheckedKeys\n          }, keyEntities);\n          _checkedKeys = _conductCheck2.checkedKeys;\n          _halfCheckedKeys = _conductCheck2.halfCheckedKeys;\n        }\n        checkedObj = _checkedKeys;\n\n        // [Legacy] This is used for `rc-tree-select`\n        eventObj.checkedNodes = [];\n        eventObj.checkedNodesPositions = [];\n        eventObj.halfCheckedKeys = _halfCheckedKeys;\n        _checkedKeys.forEach(function (checkedKey) {\n          var entity = getEntity(keyEntities, checkedKey);\n          if (!entity) return;\n          var node = entity.node,\n            pos = entity.pos;\n          eventObj.checkedNodes.push(node);\n          eventObj.checkedNodesPositions.push({\n            node: node,\n            pos: pos\n          });\n        });\n        _this.setUncontrolledState({\n          checkedKeys: _checkedKeys\n        }, false, {\n          halfCheckedKeys: _halfCheckedKeys\n        });\n      }\n      onCheck === null || onCheck === void 0 || onCheck(checkedObj, eventObj);\n    });\n    _defineProperty(_assertThisInitialized(_this), \"onNodeLoad\", function (treeNode) {\n      var _entity$children;\n      var key = treeNode.key;\n      var keyEntities = _this.state.keyEntities;\n\n      // Skip if has children already\n      var entity = getEntity(keyEntities, key);\n      if (entity !== null && entity !== void 0 && (_entity$children = entity.children) !== null && _entity$children !== void 0 && _entity$children.length) {\n        return;\n      }\n      var loadPromise = new Promise(function (resolve, reject) {\n        // We need to get the latest state of loading/loaded keys\n        _this.setState(function (_ref) {\n          var _ref$loadedKeys = _ref.loadedKeys,\n            loadedKeys = _ref$loadedKeys === void 0 ? [] : _ref$loadedKeys,\n            _ref$loadingKeys = _ref.loadingKeys,\n            loadingKeys = _ref$loadingKeys === void 0 ? [] : _ref$loadingKeys;\n          var _this$props7 = _this.props,\n            loadData = _this$props7.loadData,\n            onLoad = _this$props7.onLoad;\n          if (!loadData || loadedKeys.indexOf(key) !== -1 || loadingKeys.indexOf(key) !== -1) {\n            return null;\n          }\n\n          // Process load data\n          var promise = loadData(treeNode);\n          promise.then(function () {\n            var currentLoadedKeys = _this.state.loadedKeys;\n            var newLoadedKeys = arrAdd(currentLoadedKeys, key);\n\n            // onLoad should trigger before internal setState to avoid `loadData` trigger twice.\n            // https://github.com/ant-design/ant-design/issues/12464\n            onLoad === null || onLoad === void 0 || onLoad(newLoadedKeys, {\n              event: 'load',\n              node: treeNode\n            });\n            _this.setUncontrolledState({\n              loadedKeys: newLoadedKeys\n            });\n            _this.setState(function (prevState) {\n              return {\n                loadingKeys: arrDel(prevState.loadingKeys, key)\n              };\n            });\n            resolve();\n          }).catch(function (e) {\n            _this.setState(function (prevState) {\n              return {\n                loadingKeys: arrDel(prevState.loadingKeys, key)\n              };\n            });\n\n            // If exceed max retry times, we give up retry\n            _this.loadingRetryTimes[key] = (_this.loadingRetryTimes[key] || 0) + 1;\n            if (_this.loadingRetryTimes[key] >= MAX_RETRY_TIMES) {\n              var currentLoadedKeys = _this.state.loadedKeys;\n              warning(false, 'Retry for `loadData` many times but still failed. No more retry.');\n              _this.setUncontrolledState({\n                loadedKeys: arrAdd(currentLoadedKeys, key)\n              });\n              resolve();\n            }\n            reject(e);\n          });\n          return {\n            loadingKeys: arrAdd(loadingKeys, key)\n          };\n        });\n      });\n\n      // Not care warning if we ignore this\n      loadPromise.catch(function () {});\n      return loadPromise;\n    });\n    _defineProperty(_assertThisInitialized(_this), \"onNodeMouseEnter\", function (event, node) {\n      var onMouseEnter = _this.props.onMouseEnter;\n      onMouseEnter === null || onMouseEnter === void 0 || onMouseEnter({\n        event: event,\n        node: node\n      });\n    });\n    _defineProperty(_assertThisInitialized(_this), \"onNodeMouseLeave\", function (event, node) {\n      var onMouseLeave = _this.props.onMouseLeave;\n      onMouseLeave === null || onMouseLeave === void 0 || onMouseLeave({\n        event: event,\n        node: node\n      });\n    });\n    _defineProperty(_assertThisInitialized(_this), \"onNodeContextMenu\", function (event, node) {\n      var onRightClick = _this.props.onRightClick;\n      if (onRightClick) {\n        event.preventDefault();\n        onRightClick({\n          event: event,\n          node: node\n        });\n      }\n    });\n    _defineProperty(_assertThisInitialized(_this), \"onFocus\", function () {\n      var onFocus = _this.props.onFocus;\n      _this.setState({\n        focused: true\n      });\n      for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n        args[_key2] = arguments[_key2];\n      }\n      onFocus === null || onFocus === void 0 || onFocus.apply(void 0, args);\n    });\n    _defineProperty(_assertThisInitialized(_this), \"onBlur\", function () {\n      var onBlur = _this.props.onBlur;\n      _this.setState({\n        focused: false\n      });\n      _this.onActiveChange(null);\n      for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n        args[_key3] = arguments[_key3];\n      }\n      onBlur === null || onBlur === void 0 || onBlur.apply(void 0, args);\n    });\n    _defineProperty(_assertThisInitialized(_this), \"getTreeNodeRequiredProps\", function () {\n      var _this$state8 = _this.state,\n        expandedKeys = _this$state8.expandedKeys,\n        selectedKeys = _this$state8.selectedKeys,\n        loadedKeys = _this$state8.loadedKeys,\n        loadingKeys = _this$state8.loadingKeys,\n        checkedKeys = _this$state8.checkedKeys,\n        halfCheckedKeys = _this$state8.halfCheckedKeys,\n        dragOverNodeKey = _this$state8.dragOverNodeKey,\n        dropPosition = _this$state8.dropPosition,\n        keyEntities = _this$state8.keyEntities;\n      return {\n        expandedKeys: expandedKeys || [],\n        selectedKeys: selectedKeys || [],\n        loadedKeys: loadedKeys || [],\n        loadingKeys: loadingKeys || [],\n        checkedKeys: checkedKeys || [],\n        halfCheckedKeys: halfCheckedKeys || [],\n        dragOverNodeKey: dragOverNodeKey,\n        dropPosition: dropPosition,\n        keyEntities: keyEntities\n      };\n    });\n    // =========================== Expanded ===========================\n    /** Set uncontrolled `expandedKeys`. This will also auto update `flattenNodes`. */\n    _defineProperty(_assertThisInitialized(_this), \"setExpandedKeys\", function (expandedKeys) {\n      var _this$state9 = _this.state,\n        treeData = _this$state9.treeData,\n        fieldNames = _this$state9.fieldNames;\n      var flattenNodes = flattenTreeData(treeData, expandedKeys, fieldNames);\n      _this.setUncontrolledState({\n        expandedKeys: expandedKeys,\n        flattenNodes: flattenNodes\n      }, true);\n    });\n    _defineProperty(_assertThisInitialized(_this), \"onNodeExpand\", function (e, treeNode) {\n      var expandedKeys = _this.state.expandedKeys;\n      var _this$state10 = _this.state,\n        listChanging = _this$state10.listChanging,\n        fieldNames = _this$state10.fieldNames;\n      var _this$props8 = _this.props,\n        onExpand = _this$props8.onExpand,\n        loadData = _this$props8.loadData;\n      var expanded = treeNode.expanded;\n      var key = treeNode[fieldNames.key];\n\n      // Do nothing when motion is in progress\n      if (listChanging) {\n        return;\n      }\n\n      // Update selected keys\n      var index = expandedKeys.indexOf(key);\n      var targetExpanded = !expanded;\n      warning(expanded && index !== -1 || !expanded && index === -1, 'Expand state not sync with index check');\n      if (targetExpanded) {\n        expandedKeys = arrAdd(expandedKeys, key);\n      } else {\n        expandedKeys = arrDel(expandedKeys, key);\n      }\n      _this.setExpandedKeys(expandedKeys);\n      onExpand === null || onExpand === void 0 || onExpand(expandedKeys, {\n        node: treeNode,\n        expanded: targetExpanded,\n        nativeEvent: e.nativeEvent\n      });\n\n      // Async Load data\n      if (targetExpanded && loadData) {\n        var loadPromise = _this.onNodeLoad(treeNode);\n        if (loadPromise) {\n          loadPromise.then(function () {\n            // [Legacy] Refresh logic\n            var newFlattenTreeData = flattenTreeData(_this.state.treeData, expandedKeys, fieldNames);\n            _this.setUncontrolledState({\n              flattenNodes: newFlattenTreeData\n            });\n          }).catch(function () {\n            var currentExpandedKeys = _this.state.expandedKeys;\n            var expandedKeysToRestore = arrDel(currentExpandedKeys, key);\n            _this.setExpandedKeys(expandedKeysToRestore);\n          });\n        }\n      }\n    });\n    _defineProperty(_assertThisInitialized(_this), \"onListChangeStart\", function () {\n      _this.setUncontrolledState({\n        listChanging: true\n      });\n    });\n    _defineProperty(_assertThisInitialized(_this), \"onListChangeEnd\", function () {\n      setTimeout(function () {\n        _this.setUncontrolledState({\n          listChanging: false\n        });\n      });\n    });\n    // =========================== Keyboard ===========================\n    _defineProperty(_assertThisInitialized(_this), \"onActiveChange\", function (newActiveKey) {\n      var activeKey = _this.state.activeKey;\n      var _this$props9 = _this.props,\n        onActiveChange = _this$props9.onActiveChange,\n        _this$props9$itemScro = _this$props9.itemScrollOffset,\n        itemScrollOffset = _this$props9$itemScro === void 0 ? 0 : _this$props9$itemScro;\n      if (activeKey === newActiveKey) {\n        return;\n      }\n      _this.setState({\n        activeKey: newActiveKey\n      });\n      if (newActiveKey !== null) {\n        _this.scrollTo({\n          key: newActiveKey,\n          offset: itemScrollOffset\n        });\n      }\n      onActiveChange === null || onActiveChange === void 0 || onActiveChange(newActiveKey);\n    });\n    _defineProperty(_assertThisInitialized(_this), \"getActiveItem\", function () {\n      var _this$state11 = _this.state,\n        activeKey = _this$state11.activeKey,\n        flattenNodes = _this$state11.flattenNodes;\n      if (activeKey === null) {\n        return null;\n      }\n      return flattenNodes.find(function (_ref2) {\n        var key = _ref2.key;\n        return key === activeKey;\n      }) || null;\n    });\n    _defineProperty(_assertThisInitialized(_this), \"offsetActiveKey\", function (offset) {\n      var _this$state12 = _this.state,\n        flattenNodes = _this$state12.flattenNodes,\n        activeKey = _this$state12.activeKey;\n      var index = flattenNodes.findIndex(function (_ref3) {\n        var key = _ref3.key;\n        return key === activeKey;\n      });\n\n      // Align with index\n      if (index === -1 && offset < 0) {\n        index = flattenNodes.length;\n      }\n      index = (index + offset + flattenNodes.length) % flattenNodes.length;\n      var item = flattenNodes[index];\n      if (item) {\n        var _key4 = item.key;\n        _this.onActiveChange(_key4);\n      } else {\n        _this.onActiveChange(null);\n      }\n    });\n    _defineProperty(_assertThisInitialized(_this), \"onKeyDown\", function (event) {\n      var _this$state13 = _this.state,\n        activeKey = _this$state13.activeKey,\n        expandedKeys = _this$state13.expandedKeys,\n        checkedKeys = _this$state13.checkedKeys,\n        fieldNames = _this$state13.fieldNames;\n      var _this$props10 = _this.props,\n        onKeyDown = _this$props10.onKeyDown,\n        checkable = _this$props10.checkable,\n        selectable = _this$props10.selectable;\n\n      // >>>>>>>>>> Direction\n      switch (event.which) {\n        case KeyCode.UP:\n          {\n            _this.offsetActiveKey(-1);\n            event.preventDefault();\n            break;\n          }\n        case KeyCode.DOWN:\n          {\n            _this.offsetActiveKey(1);\n            event.preventDefault();\n            break;\n          }\n      }\n\n      // >>>>>>>>>> Expand & Selection\n      var activeItem = _this.getActiveItem();\n      if (activeItem && activeItem.data) {\n        var treeNodeRequiredProps = _this.getTreeNodeRequiredProps();\n        var expandable = activeItem.data.isLeaf === false || !!(activeItem.data[fieldNames.children] || []).length;\n        var eventNode = convertNodePropsToEventData(_objectSpread(_objectSpread({}, getTreeNodeProps(activeKey, treeNodeRequiredProps)), {}, {\n          data: activeItem.data,\n          active: true\n        }));\n        switch (event.which) {\n          // >>> Expand\n          case KeyCode.LEFT:\n            {\n              // Collapse if possible\n              if (expandable && expandedKeys.includes(activeKey)) {\n                _this.onNodeExpand({}, eventNode);\n              } else if (activeItem.parent) {\n                _this.onActiveChange(activeItem.parent.key);\n              }\n              event.preventDefault();\n              break;\n            }\n          case KeyCode.RIGHT:\n            {\n              // Expand if possible\n              if (expandable && !expandedKeys.includes(activeKey)) {\n                _this.onNodeExpand({}, eventNode);\n              } else if (activeItem.children && activeItem.children.length) {\n                _this.onActiveChange(activeItem.children[0].key);\n              }\n              event.preventDefault();\n              break;\n            }\n\n          // Selection\n          case KeyCode.ENTER:\n          case KeyCode.SPACE:\n            {\n              if (checkable && !eventNode.disabled && eventNode.checkable !== false && !eventNode.disableCheckbox) {\n                _this.onNodeCheck({}, eventNode, !checkedKeys.includes(activeKey));\n              } else if (!checkable && selectable && !eventNode.disabled && eventNode.selectable !== false) {\n                _this.onNodeSelect({}, eventNode);\n              }\n              break;\n            }\n        }\n      }\n      onKeyDown === null || onKeyDown === void 0 || onKeyDown(event);\n    });\n    /**\n     * Only update the value which is not in props\n     */\n    _defineProperty(_assertThisInitialized(_this), \"setUncontrolledState\", function (state) {\n      var atomic = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n      var forceState = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n      if (!_this.destroyed) {\n        var needSync = false;\n        var allPassed = true;\n        var newState = {};\n        Object.keys(state).forEach(function (name) {\n          if (name in _this.props) {\n            allPassed = false;\n            return;\n          }\n          needSync = true;\n          newState[name] = state[name];\n        });\n        if (needSync && (!atomic || allPassed)) {\n          _this.setState(_objectSpread(_objectSpread({}, newState), forceState));\n        }\n      }\n    });\n    _defineProperty(_assertThisInitialized(_this), \"scrollTo\", function (scroll) {\n      _this.listRef.current.scrollTo(scroll);\n    });\n    return _this;\n  }\n  _createClass(Tree, [{\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      this.destroyed = false;\n      this.onUpdated();\n    }\n  }, {\n    key: \"componentDidUpdate\",\n    value: function componentDidUpdate() {\n      this.onUpdated();\n    }\n  }, {\n    key: \"onUpdated\",\n    value: function onUpdated() {\n      var _this$props11 = this.props,\n        activeKey = _this$props11.activeKey,\n        _this$props11$itemScr = _this$props11.itemScrollOffset,\n        itemScrollOffset = _this$props11$itemScr === void 0 ? 0 : _this$props11$itemScr;\n      if (activeKey !== undefined && activeKey !== this.state.activeKey) {\n        this.setState({\n          activeKey: activeKey\n        });\n        if (activeKey !== null) {\n          this.scrollTo({\n            key: activeKey,\n            offset: itemScrollOffset\n          });\n        }\n      }\n    }\n  }, {\n    key: \"componentWillUnmount\",\n    value: function componentWillUnmount() {\n      window.removeEventListener('dragend', this.onWindowDragEnd);\n      this.destroyed = true;\n    }\n  }, {\n    key: \"resetDragState\",\n    value: function resetDragState() {\n      this.setState({\n        dragOverNodeKey: null,\n        dropPosition: null,\n        dropLevelOffset: null,\n        dropTargetKey: null,\n        dropContainerKey: null,\n        dropTargetPos: null,\n        dropAllowed: false\n      });\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this$state14 = this.state,\n        focused = _this$state14.focused,\n        flattenNodes = _this$state14.flattenNodes,\n        keyEntities = _this$state14.keyEntities,\n        draggingNodeKey = _this$state14.draggingNodeKey,\n        activeKey = _this$state14.activeKey,\n        dropLevelOffset = _this$state14.dropLevelOffset,\n        dropContainerKey = _this$state14.dropContainerKey,\n        dropTargetKey = _this$state14.dropTargetKey,\n        dropPosition = _this$state14.dropPosition,\n        dragOverNodeKey = _this$state14.dragOverNodeKey,\n        indent = _this$state14.indent;\n      var _this$props12 = this.props,\n        prefixCls = _this$props12.prefixCls,\n        className = _this$props12.className,\n        style = _this$props12.style,\n        showLine = _this$props12.showLine,\n        focusable = _this$props12.focusable,\n        _this$props12$tabInde = _this$props12.tabIndex,\n        tabIndex = _this$props12$tabInde === void 0 ? 0 : _this$props12$tabInde,\n        selectable = _this$props12.selectable,\n        showIcon = _this$props12.showIcon,\n        icon = _this$props12.icon,\n        switcherIcon = _this$props12.switcherIcon,\n        draggable = _this$props12.draggable,\n        checkable = _this$props12.checkable,\n        checkStrictly = _this$props12.checkStrictly,\n        disabled = _this$props12.disabled,\n        motion = _this$props12.motion,\n        loadData = _this$props12.loadData,\n        filterTreeNode = _this$props12.filterTreeNode,\n        height = _this$props12.height,\n        itemHeight = _this$props12.itemHeight,\n        virtual = _this$props12.virtual,\n        titleRender = _this$props12.titleRender,\n        dropIndicatorRender = _this$props12.dropIndicatorRender,\n        onContextMenu = _this$props12.onContextMenu,\n        onScroll = _this$props12.onScroll,\n        direction = _this$props12.direction,\n        rootClassName = _this$props12.rootClassName,\n        rootStyle = _this$props12.rootStyle;\n      var domProps = pickAttrs(this.props, {\n        aria: true,\n        data: true\n      });\n\n      // It's better move to hooks but we just simply keep here\n      var draggableConfig;\n      if (draggable) {\n        if (_typeof(draggable) === 'object') {\n          draggableConfig = draggable;\n        } else if (typeof draggable === 'function') {\n          draggableConfig = {\n            nodeDraggable: draggable\n          };\n        } else {\n          draggableConfig = {};\n        }\n      }\n      return /*#__PURE__*/React.createElement(TreeContext.Provider, {\n        value: {\n          prefixCls: prefixCls,\n          selectable: selectable,\n          showIcon: showIcon,\n          icon: icon,\n          switcherIcon: switcherIcon,\n          draggable: draggableConfig,\n          draggingNodeKey: draggingNodeKey,\n          checkable: checkable,\n          checkStrictly: checkStrictly,\n          disabled: disabled,\n          keyEntities: keyEntities,\n          dropLevelOffset: dropLevelOffset,\n          dropContainerKey: dropContainerKey,\n          dropTargetKey: dropTargetKey,\n          dropPosition: dropPosition,\n          dragOverNodeKey: dragOverNodeKey,\n          indent: indent,\n          direction: direction,\n          dropIndicatorRender: dropIndicatorRender,\n          loadData: loadData,\n          filterTreeNode: filterTreeNode,\n          titleRender: titleRender,\n          onNodeClick: this.onNodeClick,\n          onNodeDoubleClick: this.onNodeDoubleClick,\n          onNodeExpand: this.onNodeExpand,\n          onNodeSelect: this.onNodeSelect,\n          onNodeCheck: this.onNodeCheck,\n          onNodeLoad: this.onNodeLoad,\n          onNodeMouseEnter: this.onNodeMouseEnter,\n          onNodeMouseLeave: this.onNodeMouseLeave,\n          onNodeContextMenu: this.onNodeContextMenu,\n          onNodeDragStart: this.onNodeDragStart,\n          onNodeDragEnter: this.onNodeDragEnter,\n          onNodeDragOver: this.onNodeDragOver,\n          onNodeDragLeave: this.onNodeDragLeave,\n          onNodeDragEnd: this.onNodeDragEnd,\n          onNodeDrop: this.onNodeDrop\n        }\n      }, /*#__PURE__*/React.createElement(\"div\", {\n        role: \"tree\",\n        className: classNames(prefixCls, className, rootClassName, _defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-show-line\"), showLine), \"\".concat(prefixCls, \"-focused\"), focused), \"\".concat(prefixCls, \"-active-focused\"), activeKey !== null)),\n        style: rootStyle\n      }, /*#__PURE__*/React.createElement(NodeList, _extends({\n        ref: this.listRef,\n        prefixCls: prefixCls,\n        style: style,\n        data: flattenNodes,\n        disabled: disabled,\n        selectable: selectable,\n        checkable: !!checkable,\n        motion: motion,\n        dragging: draggingNodeKey !== null,\n        height: height,\n        itemHeight: itemHeight,\n        virtual: virtual,\n        focusable: focusable,\n        focused: focused,\n        tabIndex: tabIndex,\n        activeItem: this.getActiveItem(),\n        onFocus: this.onFocus,\n        onBlur: this.onBlur,\n        onKeyDown: this.onKeyDown,\n        onActiveChange: this.onActiveChange,\n        onListChangeStart: this.onListChangeStart,\n        onListChangeEnd: this.onListChangeEnd,\n        onContextMenu: onContextMenu,\n        onScroll: onScroll\n      }, this.getTreeNodeRequiredProps(), domProps))));\n    }\n  }], [{\n    key: \"getDerivedStateFromProps\",\n    value: function getDerivedStateFromProps(props, prevState) {\n      var prevProps = prevState.prevProps;\n      var newState = {\n        prevProps: props\n      };\n      function needSync(name) {\n        return !prevProps && name in props || prevProps && prevProps[name] !== props[name];\n      }\n\n      // ================== Tree Node ==================\n      var treeData;\n\n      // fieldNames\n      var fieldNames = prevState.fieldNames;\n      if (needSync('fieldNames')) {\n        fieldNames = fillFieldNames(props.fieldNames);\n        newState.fieldNames = fieldNames;\n      }\n\n      // Check if `treeData` or `children` changed and save into the state.\n      if (needSync('treeData')) {\n        treeData = props.treeData;\n      } else if (needSync('children')) {\n        warning(false, '`children` of Tree is deprecated. Please use `treeData` instead.');\n        treeData = convertTreeToData(props.children);\n      }\n\n      // Save flatten nodes info and convert `treeData` into keyEntities\n      if (treeData) {\n        newState.treeData = treeData;\n        var entitiesMap = convertDataToEntities(treeData, {\n          fieldNames: fieldNames\n        });\n        newState.keyEntities = _objectSpread(_defineProperty({}, MOTION_KEY, MotionEntity), entitiesMap.keyEntities);\n\n        // Warning if treeNode not provide key\n        if (process.env.NODE_ENV !== 'production') {\n          warningWithoutKey(treeData, fieldNames);\n        }\n      }\n      var keyEntities = newState.keyEntities || prevState.keyEntities;\n\n      // ================ expandedKeys =================\n      if (needSync('expandedKeys') || prevProps && needSync('autoExpandParent')) {\n        newState.expandedKeys = props.autoExpandParent || !prevProps && props.defaultExpandParent ? conductExpandParent(props.expandedKeys, keyEntities) : props.expandedKeys;\n      } else if (!prevProps && props.defaultExpandAll) {\n        var cloneKeyEntities = _objectSpread({}, keyEntities);\n        delete cloneKeyEntities[MOTION_KEY];\n\n        // Only take the key who has the children to enhance the performance\n        var nextExpandedKeys = [];\n        Object.keys(cloneKeyEntities).forEach(function (key) {\n          var entity = cloneKeyEntities[key];\n          if (entity.children && entity.children.length) {\n            nextExpandedKeys.push(entity.key);\n          }\n        });\n        newState.expandedKeys = nextExpandedKeys;\n      } else if (!prevProps && props.defaultExpandedKeys) {\n        newState.expandedKeys = props.autoExpandParent || props.defaultExpandParent ? conductExpandParent(props.defaultExpandedKeys, keyEntities) : props.defaultExpandedKeys;\n      }\n      if (!newState.expandedKeys) {\n        delete newState.expandedKeys;\n      }\n\n      // ================ flattenNodes =================\n      if (treeData || newState.expandedKeys) {\n        var flattenNodes = flattenTreeData(treeData || prevState.treeData, newState.expandedKeys || prevState.expandedKeys, fieldNames);\n        newState.flattenNodes = flattenNodes;\n      }\n\n      // ================ selectedKeys =================\n      if (props.selectable) {\n        if (needSync('selectedKeys')) {\n          newState.selectedKeys = calcSelectedKeys(props.selectedKeys, props);\n        } else if (!prevProps && props.defaultSelectedKeys) {\n          newState.selectedKeys = calcSelectedKeys(props.defaultSelectedKeys, props);\n        }\n      }\n\n      // ================= checkedKeys =================\n      if (props.checkable) {\n        var checkedKeyEntity;\n        if (needSync('checkedKeys')) {\n          checkedKeyEntity = parseCheckedKeys(props.checkedKeys) || {};\n        } else if (!prevProps && props.defaultCheckedKeys) {\n          checkedKeyEntity = parseCheckedKeys(props.defaultCheckedKeys) || {};\n        } else if (treeData) {\n          // If `treeData` changed, we also need check it\n          checkedKeyEntity = parseCheckedKeys(props.checkedKeys) || {\n            checkedKeys: prevState.checkedKeys,\n            halfCheckedKeys: prevState.halfCheckedKeys\n          };\n        }\n        if (checkedKeyEntity) {\n          var _checkedKeyEntity = checkedKeyEntity,\n            _checkedKeyEntity$che = _checkedKeyEntity.checkedKeys,\n            checkedKeys = _checkedKeyEntity$che === void 0 ? [] : _checkedKeyEntity$che,\n            _checkedKeyEntity$hal = _checkedKeyEntity.halfCheckedKeys,\n            halfCheckedKeys = _checkedKeyEntity$hal === void 0 ? [] : _checkedKeyEntity$hal;\n          if (!props.checkStrictly) {\n            var conductKeys = conductCheck(checkedKeys, true, keyEntities);\n            checkedKeys = conductKeys.checkedKeys;\n            halfCheckedKeys = conductKeys.halfCheckedKeys;\n          }\n          newState.checkedKeys = checkedKeys;\n          newState.halfCheckedKeys = halfCheckedKeys;\n        }\n      }\n\n      // ================= loadedKeys ==================\n      if (needSync('loadedKeys')) {\n        newState.loadedKeys = props.loadedKeys;\n      }\n      return newState;\n    }\n  }]);\n  return Tree;\n}(React.Component);\n_defineProperty(Tree, \"defaultProps\", {\n  prefixCls: 'rc-tree',\n  showLine: false,\n  showIcon: true,\n  selectable: true,\n  multiple: false,\n  checkable: false,\n  disabled: false,\n  checkStrictly: false,\n  draggable: false,\n  defaultExpandParent: true,\n  autoExpandParent: false,\n  defaultExpandAll: false,\n  defaultExpandedKeys: [],\n  defaultCheckedKeys: [],\n  defaultSelectedKeys: [],\n  dropIndicatorRender: DropIndicator,\n  allowDrop: function allowDrop() {\n    return true;\n  },\n  expandAction: false\n});\n_defineProperty(Tree, \"TreeNode\", TreeNode);\nexport default Tree;","import * as React from 'react';\nexport default function DropIndicator(_ref) {\n  var dropPosition = _ref.dropPosition,\n    dropLevelOffset = _ref.dropLevelOffset,\n    indent = _ref.indent;\n  var style = {\n    pointerEvents: 'none',\n    position: 'absolute',\n    right: 0,\n    backgroundColor: 'red',\n    height: 2\n  };\n  switch (dropPosition) {\n    case -1:\n      style.top = 0;\n      style.left = -dropLevelOffset * indent;\n      break;\n    case 1:\n      style.bottom = 0;\n      style.left = -dropLevelOffset * indent;\n      break;\n    case 0:\n      style.bottom = 0;\n      style.left = indent;\n      break;\n  }\n  return /*#__PURE__*/React.createElement(\"div\", {\n    style: style\n  });\n}","import Tree from \"./Tree\";\nimport TreeNode from \"./TreeNode\";\nexport { TreeNode };\nexport default Tree;","import React from 'react';\nimport useToken from '../../theme/useToken';\nimport { devUseWarning } from '../warning';\nimport zIndexContext from '../zindexContext';\n// Z-Index control range\n// Container: 1000 + offset 100 (max base + 10 * offset = 2000)\n// Popover: offset 50\n// Notification: Container Max zIndex + componentOffset\nconst CONTAINER_OFFSET = 100;\nconst CONTAINER_OFFSET_MAX_COUNT = 10;\nexport const CONTAINER_MAX_OFFSET = CONTAINER_OFFSET * CONTAINER_OFFSET_MAX_COUNT;\n/**\n * Static function will default be the `CONTAINER_MAX_OFFSET`.\n * But it still may have children component like Select, Dropdown.\n * So the warning zIndex should exceed the `CONTAINER_MAX_OFFSET`.\n */\nconst CONTAINER_MAX_OFFSET_WITH_CHILDREN = CONTAINER_MAX_OFFSET + CONTAINER_OFFSET;\nexport const containerBaseZIndexOffset = {\n  Modal: CONTAINER_OFFSET,\n  Drawer: CONTAINER_OFFSET,\n  Popover: CONTAINER_OFFSET,\n  Popconfirm: CONTAINER_OFFSET,\n  Tooltip: CONTAINER_OFFSET,\n  Tour: CONTAINER_OFFSET,\n  FloatButton: CONTAINER_OFFSET\n};\nexport const consumerBaseZIndexOffset = {\n  SelectLike: 50,\n  Dropdown: 50,\n  DatePicker: 50,\n  Menu: 50,\n  ImagePreview: 1\n};\nfunction isContainerType(type) {\n  return type in containerBaseZIndexOffset;\n}\nexport const useZIndex = (componentType, customZIndex) => {\n  const [, token] = useToken();\n  const parentZIndex = React.useContext(zIndexContext);\n  const isContainer = isContainerType(componentType);\n  let result;\n  if (customZIndex !== undefined) {\n    result = [customZIndex, customZIndex];\n  } else {\n    let zIndex = parentZIndex !== null && parentZIndex !== void 0 ? parentZIndex : 0;\n    if (isContainer) {\n      zIndex +=\n      // Use preset token zIndex by default but not stack when has parent container\n      (parentZIndex ? 0 : token.zIndexPopupBase) +\n      // Container offset\n      containerBaseZIndexOffset[componentType];\n    } else {\n      zIndex += consumerBaseZIndexOffset[componentType];\n    }\n    result = [parentZIndex === undefined ? customZIndex : zIndex, zIndex];\n  }\n  if (process.env.NODE_ENV !== 'production') {\n    const warning = devUseWarning(componentType);\n    const maxZIndex = token.zIndexPopupBase + CONTAINER_MAX_OFFSET_WITH_CHILDREN;\n    const currentZIndex = result[0] || 0;\n    process.env.NODE_ENV !== \"production\" ? warning(customZIndex !== undefined || currentZIndex <= maxZIndex, 'usage', '`zIndex` is over design token `zIndexPopupBase` too much. It may cause unexpected override.') : void 0;\n  }\n  return result;\n};","import { PayloadAction, createAsyncThunk, createSlice } from \"@reduxjs/toolkit\";\nimport { getCookie, getParameter } from \"@tencent/kg-base\";\nimport { RootStore } from \".\";\nimport {\n  AudioMerge,\n  GetLoginUserInfo,\n  GetMyTasks,\n  GetMyTimbres,\n  GetTTSTimbreListWithGroup,\n  GetTimbreGroups,\n  SercurityCheck,\n  TextToSound,\n  reqLogin,\n} from \"../api/main-land\";\nimport {\n  $AudioMergeReq,\n  $GetMyTaskReq,\n  $GetMyTimbresReq,\n  $GetTTSTimbreListReq,\n  $GetTimbreGroupsReq,\n  $SercurityCheckReq,\n  $TTSTask,\n  $TextToSoundReq,\n  $TimbreGroupItem,\n  TTS_Webapp,\n} from \"jce/qqmusic/tianqin_tts/TTS_Webapp.jce?emit=module\";\n\nexport const devopsId = 115052;\ntype FileStatus = \"Fail\" | \"Success\" | \"Init\";\ntype ArrayItem<T> = T extends Array<infer R> ? R : any;\n\ninterface HomeStore {\n  subAudioList: { subContent: string; url: string }[];\n  dlCursor: number;\n  playCursor: number;\n  ttsTimbrelist: TTS_Webapp.$TTSTimbre[];\n  selectedSound: Partial<TTS_Webapp.$TTSTimbre>;\n  myTimbres: TTS_Webapp.$TTSTimbre[];\n  myTaskList: $TTSTask[];\n  userInfo: { nick?: string; logo?: string };\n  timbreGroup: $TimbreGroupItem[];\n}\n\nconst initialState: HomeStore = {\n  subAudioList: [],\n  dlCursor: 0,\n  playCursor: -1,\n  ttsTimbrelist: [],\n  selectedSound: {},\n  myTimbres: [],\n  myTaskList: [],\n  userInfo: {},\n  timbreGroup: [],\n};\n\nexport const sercurityCheck = createAsyncThunk(\"home/SercurityCheck\", async (params: Partial<$SercurityCheckReq>) => {\n  try {\n    const res = await SercurityCheck(params);\n    console.log(\"=====>res:\", res);\n    return res;\n  } catch (e) {\n    return e;\n  }\n});\n\nexport const textToSound = createAsyncThunk(\"home/TextToSound\", async (params: Partial<$TextToSoundReq>) => {\n  try {\n    const res = await TextToSound(params);\n    console.log(\"=====>res:\", res);\n    return res;\n  } catch (e) {\n    return e;\n  }\n});\n\nexport const audioMerge = createAsyncThunk(\"home/AudioMerge\", async (params: Partial<$AudioMergeReq>) => {\n  try {\n    const res = await AudioMerge(params);\n    console.log(\"=====>AudioMerge res:\", res);\n    return res;\n  } catch (e) {\n    return e;\n  }\n});\n\nexport const getMyTasks = createAsyncThunk(\"home/GetMyTasks\", async (params: Partial<$GetMyTaskReq>) => {\n  try {\n    const res = await GetMyTasks(params);\n    console.log(\"=====>GetMyTasks res:\", res);\n    return res;\n  } catch (e) {\n    return e;\n  }\n});\n\nexport const getMyTimbres = createAsyncThunk(\"home/GetMyTimbres\", async (params: Partial<$GetMyTimbresReq>) => {\n  try {\n    const res = await GetMyTimbres(params);\n    console.log(\"=====>GetMyTimbres res:\", res);\n    return res;\n  } catch (e) {\n    return e;\n  }\n});\n\nexport const getTTSTimbreListWithGroup = createAsyncThunk(\n  \"home/GetTTSTimbreListWithGroup\",\n  async (params: Partial<$GetTTSTimbreListReq>) => {\n    try {\n      const res = await GetTTSTimbreListWithGroup(params);\n      console.log(\"=====>getTTSTimbreListWithGroup res:\", res);\n      return res;\n    } catch (e) {\n      return e;\n    }\n  },\n);\n\nexport const getUserInfo = createAsyncThunk(\"home/GetLoginUserInfo\", async (params: Partial<$GetTTSTimbreListReq>) => {\n  try {\n    const res = await GetLoginUserInfo(params);\n    console.log(\"=====>GetLoginUserInfo res:\", res);\n    return res;\n  } catch (e) {\n    return e;\n  }\n});\n\nexport const getTimbreGroups = createAsyncThunk(\n  \"home/GetTimbreGroups\",\n  async (params: Partial<$GetTimbreGroupsReq>) => {\n    try {\n      const res = await GetTimbreGroups(params);\n      console.log(\"=====>GetTimbreGroups res:\", res);\n      return res;\n    } catch (e) {\n      return e;\n    }\n  },\n);\n\nconst homeSlice = createSlice({\n  name: \"home\",\n  initialState: initialState,\n  reducers: {\n    // 选中音色，记录\n    selectSound(state, action: PayloadAction<any>) {\n      state.selectedSound = action.payload;\n    },\n  },\n  extraReducers: (builder) => {\n    builder.addCase(sercurityCheck.fulfilled, (state, action) => {\n      console.log(\"=== sercurityCheck res:\", action.payload);\n      // if ((action.payload as any).code === 0) {\n      // }\n    });\n    builder.addCase(sercurityCheck.rejected, (state, action) => {\n      console.log(\"=== sercurityCheck err:\", action);\n    });\n    builder.addCase(textToSound.fulfilled, (state, action) => {\n      console.log(\"=== textToSound res:\", action.payload);\n      // if ((action.payload as any).code === 0) {\n      // }\n    });\n    builder.addCase(textToSound.rejected, (state, action) => {\n      console.log(\"=== textToSound err:\", action);\n    });\n    builder.addCase(audioMerge.fulfilled, (state, action) => {\n      console.log(\"=== audioMerge res:\", action.payload);\n      // if ((action.payload as any).code === 0) {\n      // }\n    });\n    builder.addCase(audioMerge.rejected, (state, action) => {\n      console.log(\"=== audioMerge err:\", action);\n    });\n    builder.addCase(getTTSTimbreListWithGroup.fulfilled, (state, action) => {\n      console.log(\"=== getTTSTimbreListWithGroup res:\", action.payload);\n      if (action.payload.code === 0 && action.payload?.data?.code === 0) {\n        state.ttsTimbrelist = action.payload?.data?.data?.timbre_list;\n      }\n    });\n    builder.addCase(getTTSTimbreListWithGroup.rejected, (state, action) => {\n      console.log(\"=== getTTSTimbreListWithGroup err:\", action);\n    });\n    builder.addCase(getMyTasks.fulfilled, (state, action) => {\n      console.log(\"=== getMyTasks res:\", action.payload);\n      if (action.payload.code === 0 && action.payload?.data?.code === 0) {\n        state.myTaskList = action.payload?.data?.data?.task_list;\n      }\n    });\n    builder.addCase(getMyTasks.rejected, (state, action) => {\n      console.log(\"=== getMyTasks err:\", action);\n    });\n    builder.addCase(getMyTimbres.fulfilled, (state, action) => {\n      console.log(\"=== getMyTimbres res:\", action.payload);\n      if (action.payload.code === 0 && action.payload?.data?.code === 0) {\n        state.myTimbres = action.payload?.data?.data?.timbre_list;\n      }\n    });\n    builder.addCase(getMyTimbres.rejected, (state, action) => {\n      console.log(\"=== getMyTimbres err:\", action);\n    });\n    builder.addCase(getUserInfo.fulfilled, (state, action) => {\n      console.log(\"=== getUserInfo res:\", action.payload);\n      if (action.payload.code === 0 && action.payload?.data?.code === 0) {\n        state.userInfo = action.payload?.data?.data?.info;\n      }\n    });\n    builder.addCase(getUserInfo.rejected, (state, action) => {\n      console.log(\"=== getUserInfo err:\", action);\n    });\n    builder.addCase(getTimbreGroups.fulfilled, (state, action) => {\n      console.log(\"=== getTimbreGroups res:\", action.payload);\n      if (action.payload.code === 0 && action.payload?.data?.code === 0) {\n        state.timbreGroup = action.payload?.data?.data?.timbreGroups;\n      }\n    });\n    builder.addCase(getTimbreGroups.rejected, (state, action) => {\n      console.log(\"=== getTimbreGroups err:\", action);\n    });\n  },\n});\n\nexport const homeActions = homeSlice.actions;\n\nexport const homeStore = homeSlice;\n\nexport default homeSlice.reducer;\n","function _getPrototypeOf(t) {\n  return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {\n    return t.__proto__ || Object.getPrototypeOf(t);\n  }, _getPrototypeOf(t);\n}\nexport { _getPrototypeOf as default };","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAACXBIWXMAABYlAAAWJQFJUiTwAAABaWlDQ1BEaXNwbGF5IFAzAAB4nHWQvUvDUBTFT6tS0DqIDh0cMolD1NIKdnFoKxRFMFQFq1OafgltfCQpUnETVyn4H1jBWXCwiFRwcXAQRAcR3Zw6KbhoeN6XVNoi3sfl/Ticc7lcwBtQGSv2AijplpFMxKS11Lrke4OHnlOqZrKooiwK/v276/PR9d5PiFlNu3YQ2U9cl84ul3aeAlN//V3Vn8maGv3f1EGNGRbgkYmVbYsJ3iUeMWgp4qrgvMvHgtMunzuelWSc+JZY0gpqhrhJLKc79HwHl4plrbWD2N6f1VeXxRzqUcxhEyYYilBRgQQF4X/8044/ji1yV2BQLo8CLMpESRETssTz0KFhEjJxCEHqkLhz634PrfvJbW3vFZhtcM4v2tpCAzidoZPV29p4BBgaAG7qTDVUR+qh9uZywPsJMJgChu8os2HmwiF3e38M6Hvh/GMM8B0CdpXzryPO7RqFn4Er/QcXKWq8MSlPPgAAATFJREFUeAHt2YFpAjEUxvHvSgdwhIzgBnWEjuAGthMUN2gnqKt0g27gbaCdIH3BFMp5YPSiEd7/Bw8hmAv3cfcOEgkAAAAAAOBGYowrq12uN3liN7yMx5Zq4EFtLEbGntRAqwDuhvsAHlVBfn/TI7y3+ui6rtcV2Doz+1lZBasvW2ej1lIHHzSzbcGczUgT/CyYtx3MeVFr+TM2tDgx5+wA0jVH5uw0UY0eMBsZC6ovqGzts/AVkHMEIOcIQM4RgJwjADlHAHKOAOQcAcg5ApBzNQL4Lhy7xjq9JqoRwKsO2+F/1rZdXT2AfM31v6F9Xrs9250NVs9W88L/X7QtnufO4+FscfKGaFLlYCQfhPS6gfwkVHvCaIK6Hz/yIr/HQ0Ge5Mb5nprfqaM0AAAAAEBlv89PD8et8blbAAAAAElFTkSuQmCC\"","'use strict';\n\nconst validator = require('./validator');\nconst XMLParser = require('./xmlparser/XMLParser');\nconst XMLBuilder = require('./xmlbuilder/json2xml');\n\nmodule.exports = {\n  XMLParser: XMLParser,\n  XMLValidator: validator,\n  XMLBuilder: XMLBuilder\n}","import React, { useState, useEffect, useRef, useCallback } from \"react\";\nimport \"./Toast.less\";\nimport { event } from \"@tencent/kg-base\";\n\ninterface EventData {\n  show: boolean;\n  text: string;\n  duration?: number;\n  isBottom?: boolean;\n  callback?: () => void;\n}\n\nexport function Toast() {\n  const [show, setShow] = useState<boolean>(false);\n  const [text, setText] = useState<string>(\"\");\n  const [isBottom, setBottom] = useState(false);\n  const timeoutId = useRef<any>();\n\n  const eventHandle = useCallback((option: EventData) => {\n    const { show, text, duration, callback, isBottom } = option;\n    setText(text);\n    setShow(show);\n    if (isBottom) setBottom(true);\n    timeoutId.current && clearTimeout(timeoutId.current);\n    if (show) {\n      if (duration === 0) {\n        return;\n      }\n\n      timeoutId.current = setTimeout(() => {\n        callback?.();\n        clearTimeout(timeoutId.current);\n        setShow(false);\n        setBottom(false);\n      }, duration);\n    }\n  }, []);\n\n  useEffect(() => {\n    event.on(\"toast.action\", eventHandle);\n\n    return () => {\n      timeoutId.current && clearTimeout(timeoutId.current);\n      event.off(\"toast.action\", eventHandle);\n    };\n  }, []);\n\n  return show ? (\n    <div className=\"library-toast\" style={{ alignItems: isBottom ? \"flex-end\" : \"center\" }}>\n      <p className=\"toast-content\">{text}</p>\n    </div>\n  ) : null;\n}\n\nToast.show = function (text: string, duration = 1500, callback?: () => void, isBottom?: boolean) {\n  Toast.hide();\n\n  event.emit(\"toast.action\", { show: true, text, duration, callback, isBottom });\n};\n\nToast.hide = function () {\n  event.emit(\"toast.action\", { show: false, text: \"\" });\n};\n\nexport default Toast;\n","import React, { useState, useRef, useEffect } from \"react\";\nimport { getMMSS } from \"../../../utils\";\nimport { useAudio } from \"../../../contexts/AudioContext\";\n\nconst MiniBar = () => {\n  // 使用全局音频上下文\n  const { audioState, audioControls } = useAudio();\n\n  // 本地状态\n  const [showVolumeBar, setShowVolumeBar] = useState(false);\n  const [isDragging, setIsDragging] = useState(false);\n  const [dragPercent, setDragPercent] = useState(0);\n  const [hasDragged, setHasDragged] = useState(false);\n\n  // Refs\n  const progressRef = useRef<HTMLDivElement>(null);\n  const progressBarRef = useRef<HTMLDivElement>(null);\n  const volumeBarRef = useRef<HTMLDivElement>(null);\n  const volumePresentRef = useRef<HTMLDivElement>(null);\n  const currentDragPercent = useRef(0);\n  const hasDraggedRef = useRef(false);\n\n  // 拖拽相关状态\n  const startX = useRef(0);\n  const startY = useRef(0);\n  const volumeBarHeight = useRef(0);\n  const volumePresentHeight = useRef(0);\n\n  // 点击外部区域隐藏音量条\n  useEffect(() => {\n    if (showVolumeBar) {\n      const handleClickOutside = (e: MouseEvent) => {\n        const target = e.target as HTMLElement;\n        if (!target.closest(\".volume-control\")) {\n          setShowVolumeBar(false);\n        }\n      };\n\n      setTimeout(() => {\n        document.addEventListener(\"mousedown\", handleClickOutside);\n      }, 0);\n\n      return () => {\n        document.removeEventListener(\"mousedown\", handleClickOutside);\n      };\n    }\n  }, [showVolumeBar]);\n\n  // 播放/暂停控制\n  const togglePlay = () => {\n    audioControls.togglePlay();\n  };\n\n  // 设置播放进度\n  const setProgress = (percent: number) => {\n    audioControls.setProgress(percent);\n  };\n\n  // 进度条点击事件\n  const handleProgressClick = (e: React.MouseEvent) => {\n    // 如果刚刚进行了拖拽，忽略点击事件\n    if (isDragging || hasDragged || hasDraggedRef.current) {\n      setHasDragged(false); // 重置标志\n      hasDraggedRef.current = false; // 重置ref标志\n      return;\n    }\n\n    const rect = progressBarRef.current?.getBoundingClientRect();\n    if (rect) {\n      const percent = ((e.pageX - rect.left) / rect.width) * 100;\n      const clampedPercent = Math.max(0, Math.min(100, percent));\n      setProgress(clampedPercent);\n    }\n  };\n\n  // 进度条拖拽开始\n  const handleProgressMouseDown = (e: React.MouseEvent) => {\n    e.preventDefault();\n    e.stopPropagation();\n\n    setHasDragged(false); // 重置拖拽标志\n    hasDraggedRef.current = false; // 重置ref标志\n\n    // 记录初始鼠标位置\n    const startMouseX = e.pageX;\n\n    // 计算初始百分比 - 基于实际进度条\n    const rect = progressBarRef.current?.getBoundingClientRect();\n    if (rect) {\n      const percent = ((e.pageX - rect.left) / rect.width) * 100;\n      const clampedPercent = Math.max(0, Math.min(100, percent));\n\n      setIsDragging(true);\n      setDragPercent(clampedPercent);\n      currentDragPercent.current = clampedPercent;\n      startX.current = e.pageX;\n    }\n\n    // 添加全局事件监听器\n    const handleMouseMove = (e: MouseEvent) => {\n      // 只要鼠标移动了就认为是拖拽\n      const mouseMovement = Math.abs(e.pageX - startMouseX);\n      if (mouseMovement > 0) {\n        setHasDragged(true);\n        hasDraggedRef.current = true;\n      }\n\n      const rect = progressBarRef.current?.getBoundingClientRect();\n      if (rect) {\n        const percent = ((e.pageX - rect.left) / rect.width) * 100;\n        const clampedPercent = Math.max(0, Math.min(100, percent));\n        setDragPercent(clampedPercent);\n        currentDragPercent.current = clampedPercent;\n      }\n    };\n\n    const handleMouseUp = () => {\n      // 移除事件监听器\n      window.removeEventListener(\"mousemove\", handleMouseMove);\n      window.removeEventListener(\"mouseup\", handleMouseUp);\n\n      // 检查是否真的拖拽了\n      const isDragOperation = hasDraggedRef.current;\n\n      if (isDragOperation) {\n        setProgress(currentDragPercent.current);\n        // 标记拖拽完成，防止点击事件触发\n        setHasDragged(true);\n      }\n\n      // 重置拖拽状态\n      setIsDragging(false);\n      setDragPercent(0);\n      currentDragPercent.current = 0;\n      hasDraggedRef.current = false;\n    };\n\n    window.addEventListener(\"mousemove\", handleMouseMove);\n    window.addEventListener(\"mouseup\", handleMouseUp);\n  };\n\n  // 音量条拖拽开始\n  const handleVolumeMouseDown = (e: React.MouseEvent) => {\n    e.stopPropagation();\n    startY.current = e.pageY;\n    if (volumeBarRef.current && volumePresentRef.current) {\n      volumeBarHeight.current = volumeBarRef.current.clientHeight;\n      volumePresentHeight.current = volumePresentRef.current.clientHeight;\n    }\n\n    window.addEventListener(\"mousemove\", handleVolumeMouseMove);\n    window.addEventListener(\"mouseup\", handleVolumeMouseUp);\n  };\n\n  // 音量条拖拽移动\n  const handleVolumeMouseMove = (e: MouseEvent) => {\n    const deltaY = e.pageY - startY.current;\n    let presentHeight = volumePresentHeight.current - deltaY;\n    if (presentHeight < 0) presentHeight = 0;\n    if (presentHeight > volumeBarHeight.current) presentHeight = volumeBarHeight.current;\n\n    const newVolume = presentHeight / volumeBarHeight.current;\n    audioControls.setVolume(newVolume);\n  };\n\n  // 音量条拖拽结束\n  const handleVolumeMouseUp = () => {\n    window.removeEventListener(\"mousemove\", handleVolumeMouseMove);\n    window.removeEventListener(\"mouseup\", handleVolumeMouseUp);\n  };\n\n  // 切换音量条显示\n  const toggleVolumeBar = () => {\n    setShowVolumeBar(!showVolumeBar);\n  };\n\n  // 计算进度百分比\n  const getProgressPercent = () => {\n    if (isDragging) {\n      return dragPercent;\n    }\n\n    return audioState.duration > 0 ? (audioState.currentTime / audioState.duration) * 100 : 0;\n  };\n\n  // 格式化时间显示\n  const formatTime = (time: number) => {\n    return getMMSS(Math.floor(time));\n  };\n\n  // 如果没有音频URL，不显示MiniBar\n  if (!audioState.audioUrl) {\n    return null;\n  }\n\n  return (\n    <div className=\"mini-bar\">\n      {/* 播放按钮 */}\n      <div className=\"mini-bar-btn\" onClick={togglePlay}>\n        <img\n          src={require(\n            audioState.isPlaying ? \"../../../assets/img/minibar-pause.png\" : \"../../../assets/img/minibar-play.png\",\n          )}\n        />\n      </div>\n\n      {/* 进度条区域 */}\n      <div className=\"mini-bar-slider\">\n        <div className=\"play_info\">\n          <p>{audioState.title || \"学霸秘籍：音乐里的学习之道\"}</p>\n          <p>\n            {formatTime(audioState.currentTime)}/{audioState.duration ? formatTime(audioState.duration) : \"--:--\"}\n          </p>\n        </div>\n        <div className=\"mini-bar-slider-progress-container\">\n          {/* 扩大的点击区域 */}\n          <div\n            className=\"mini-bar-slider-progress-clickable\"\n            ref={progressRef}\n            onClick={handleProgressClick}\n            onMouseDown={handleProgressMouseDown}\n            style={{\n              position: \"relative\",\n              height: \"24px\", // 扩大点击高度\n              display: \"flex\",\n              alignItems: \"center\",\n              cursor: \"pointer\",\n              padding: \"0 8px\", // 左右增加一些padding，扩大点击范围\n              margin: \"0 -8px\", // 负margin抵消padding，不影响布局\n            }}\n          >\n            {/* 实际的进度条样式 */}\n            <div\n              className=\"mini-bar-slider-progress\"\n              ref={progressBarRef}\n              style={{\n                width: \"100%\",\n                height: \"4px\", // 保持原有的细线样式\n                backgroundColor: \"#E5E5E5\",\n                borderRadius: \"2px\",\n                position: \"relative\",\n              }}\n            >\n              {/* 缓存进度条 */}\n              <div\n                className=\"mini-bar-slider-progress-buffered\"\n                style={{\n                  width: `${audioState.bufferedPercent}%`,\n                  height: \"100%\",\n                  backgroundColor: \"#C0C0C0\",\n                  borderRadius: \"2px\",\n                  position: \"absolute\",\n                  top: 0,\n                  left: 0,\n                  opacity: 0.6,\n                }}\n              />\n\n              {/* 播放进度条 */}\n              <div\n                className=\"mini-bar-slider-progress-bar\"\n                style={{\n                  width: `${getProgressPercent()}%`,\n                  height: \"100%\",\n                  backgroundColor: \"#2A00FF\",\n                  borderRadius: \"2px\",\n                  position: \"relative\",\n                  zIndex: 1,\n                }}\n              />\n            </div>\n          </div>\n        </div>\n      </div>\n\n      {/* 音量控制区域 */}\n      {/* <div className=\"volume-control\">\n        <img className=\"volume-btn\" src={require(\"../../../assets/img/volume.png\")} onClick={toggleVolumeBar} />\n\n        {showVolumeBar && (\n          <div className=\"volume-bar-container\">\n            <div className=\"volume-bar\" ref={volumeBarRef}>\n              <div\n                className=\"volume-present\"\n                ref={volumePresentRef}\n                style={{ height: `${audioState.volume * 100}%` }}\n                onMouseDown={handleVolumeMouseDown}\n              >\n                <div className=\"volume-handle\" />\n              </div>\n            </div>\n          </div>\n        )}\n      </div> */}\n    </div>\n  );\n};\n\nexport default MiniBar;\n","import React, { useCallback, useEffect } from \"react\";\nimport { HashRouter, Routes, Route, useLocation } from \"react-router-dom\";\nimport { Provider } from \"react-redux\";\nimport routes from \"./routes\";\n// import \"styles/kg/event/20230323_virtual/css/base.css\";\n// import \"styles/kg/event/20230323_virtual/css/asset.css\";\nimport store from \"./slices\";\nimport Toast from \"library/components/Toast\";\nimport Sidebar from \"./components/common/sidebar\";\nimport { getParameter } from \"@tencent/kg-base\";\nimport { reqLogin } from \"./api/main-land\";\nimport { setCookie } from \"./utils\";\nimport { AudioProvider, useAudio } from \"./contexts/AudioContext\";\nimport MiniBar from \"./components/common/MiniBar\";\n\nconst Login = async (code: string) => {\n  const res = await reqLogin(code);\n  console.log(\"reqLogin res: \", res);\n  if (res?.code === 0 && res?.data?.code === 0) {\n    const data = res?.data?.data;\n    setCookie(\"musicid\", data?.musicid);\n    setCookie(\"musickey\", data?.musickey);\n    setCookie(\"loginType\", data?.loginType);\n    window.location.replace(location.href?.split?.(\"?\")?.[0]);\n  }\n};\nconst code = getParameter(\"code\");\nconsole.log(\"code:===>\", code);\nif (code) {\n  Login(code).then((res) => {\n    console.log(\"===== login res: \", res);\n  });\n}\n\nconst AppContent = () => {\n  const { audioState } = useAudio();\n  const location = useLocation();\n\n  // 根据当前路由动态设置 music-bg 类\n  useEffect(() => {\n    const appElement = document.getElementById(\"app\");\n    if (appElement) {\n      // 只有文本转语音（/）和声音克隆（/clone）页面使用 music-bg 背景\n      const shouldUseMusicBg = location.pathname === \"/\" || location.pathname === \"/clone\";\n\n      if (shouldUseMusicBg) {\n        appElement.classList.add(\"music-bg\");\n      } else {\n        appElement.classList.remove(\"music-bg\");\n      }\n    }\n  }, [location.pathname]);\n\n  return (\n    <>\n      <Sidebar />\n      <Routes>\n        {routes.map(({ name, path, component }) => {\n          return <Route path={path} Component={component} key={name} />;\n        })}\n      </Routes>\n      {audioState.audioUrl && <MiniBar />}\n    </>\n  );\n};\n\nexport const App = () => {\n  return (\n    <Provider store={store}>\n      <AudioProvider>\n        <HashRouter>\n          <AppContent />\n        </HashRouter>\n        <Toast />\n      </AudioProvider>\n    </Provider>\n  );\n};\n","export function poll(fn: () => Promise<boolean | number>) {\n  let timerHelper = {\n    timer: null as any,\n    hasRetryTimes: 0,\n  };\n  const maxRetry = 3;\n  const timeoutInterval = 2000;\n  async function execute() {\n    return fn()\n      .then((ret) => {\n        if (typeof ret === \"number\" && ret) {\n          timerHelper.timer = setTimeout(execute, typeof ret === \"number\" ? ret : 1000);\n        }\n      })\n      .catch((err) => {\n        if (err.code === \"ECONNABORTED\" || err.error_code) {\n          console.log(\"请求超时--->\", err);\n          if (timerHelper.hasRetryTimes < maxRetry) {\n            timerHelper.hasRetryTimes++;\n            timerHelper.timer = setTimeout(execute, timeoutInterval);\n          }\n        }\n      });\n  }\n  execute();\n  return timerHelper;\n}\n\nexport function tryJson(str: string) {\n  let ret = null;\n  try {\n    ret = JSON.parse(str);\n  } catch (err) {}\n  return ret;\n}\n\nexport function getCutUrl(url: string, width: number, height: number) {\n  const cutUrl = url + \"?imageMogr2/cut/\" + width + \"x\" + height + \"x100x0\";\n  return cutUrl;\n}\n\nexport function loadScript(url: string, callback?: () => void) {\n  let script = document.createElement(\"script\");\n  script.type = \"text/javascript\";\n  script.async = false;\n  script.onload = function () {\n    callback?.();\n  };\n  script.src = url;\n  document.getElementsByTagName(\"head\")[0].appendChild(script);\n}\n\nexport async function sleep(time: number): Promise<void> {\n  return new Promise((resolve) => {\n    setTimeout(resolve, time);\n  });\n}\n\nexport const Last_Drawing_Localkey = \"Last_Drawing_Localkey\";\n\nexport function rememberDrawing(strOrderId: string) {\n  localStorage.setItem(Last_Drawing_Localkey, strOrderId);\n}\nexport function getRememberDrawing() {\n  const val = localStorage.getItem(Last_Drawing_Localkey);\n  return val ? val : \"\";\n}\n\nexport function uiHomeInit() {\n  (window as any).fixTopBar([\n    {\n      className: \".mod_nav\",\n      baseHeight: 0,\n    },\n  ]);\n  (window as any).fixTopBar([\n    {\n      className: \".creat_avatar_home\",\n      baseHeight: 0,\n    },\n  ]);\n}\nexport function uiStepInit() {\n  (window as any).fixTopBar([\n    {\n      className: \".mod_nav\",\n      baseHeight: 0,\n    },\n  ]);\n  (window as any).fixTopBar([\n    {\n      className: \".creat_avatar_step\",\n      baseHeight: 0,\n    },\n  ]);\n}\n\nexport function getParameterByName(name: string, url?: string) {\n  // eslint-disable-next-line no-param-reassign\n  if (!url) url = window.location.href;\n  // eslint-disable-next-line no-param-reassign\n  name = name.replace(/[\\[\\]]/g, \"\\\\$&\");\n  let regex = new RegExp(\"[?&]\" + name + \"(=([^&#]*)|&|#|$)\");\n  let results = regex.exec(url);\n  if (!results) return \"\";\n  if (!results[2]) return \"\";\n  return decodeURIComponent(results[2].replace(/\\+/g, \" \"));\n}\n\nexport function convertTimeStampToDate(time: number) {\n  const date = new Date(time * 1000); // 参数需要毫秒数，所以这里将秒数乘于 1000\n  const Y = date.getFullYear() + \".\";\n  const M = (date.getMonth() + 1 < 10 ? \"0\" + (date.getMonth() + 1) : date.getMonth() + 1) + \".\";\n  const D = date.getDate() < 10 ? \"0\" + date.getDate() + \" \" : date.getDate() + \" \";\n  const h = date.getHours() + \":\";\n  const m = date.getMinutes() < 10 ? \"0\" + date.getMinutes() + \":\" : date.getMinutes() + \":\";\n  const s = date.getSeconds();\n  return `${Y}${M}${D} ${h}${m}${s}`;\n}\nfunction fileToDataUrl(file: any) {\n  return new Promise((resolve) => {\n    const reader = new FileReader();\n    reader.readAsDataURL(file);\n    reader.onload = function () {\n      const dataUrl = reader.result as string;\n      resolve(dataUrl);\n    };\n  });\n}\n\nfunction dataUrlToImage(dataUrl: string) {\n  return new Promise((resolve) => {\n    const img = new Image();\n    img.onload = function () {\n      resolve(img);\n    };\n    img.src = dataUrl;\n  });\n}\n\nconst canvasToFile = (canvas: HTMLCanvasElement, type: string, quality: number): Promise<Blob | null> => {\n  return new Promise((resolve) => {\n    canvas.toBlob(\n      (blob) => {\n        resolve(blob);\n      },\n      type,\n      quality\n    );\n  });\n};\n\nexport async function compressImg(file: any) {\n  const fileName = file.name;\n  const dataUrl = (await fileToDataUrl(file)) as string;\n  const img = (await dataUrlToImage(dataUrl)) as HTMLImageElement;\n  const canvas = document.createElement(\"canvas\");\n  canvas.width = img.width;\n  canvas.height = img.height;\n  const ctx = canvas.getContext(\"2d\");\n  ctx?.clearRect(0, 0, canvas.width, canvas.height);\n  ctx?.drawImage(img, 0, 0, canvas.width, canvas.height);\n  const bolbFile = await canvasToFile(canvas, \"image/jpeg\", 0.8);\n  let newFile: File;\n  if (bolbFile) {\n    newFile = await new File([bolbFile], fileName, { type: \"image/jpeg\" });\n  } else {\n    newFile = file;\n  }\n  return newFile;\n}\n\nexport const getCropImageRet = (image: any, ret: { url: string; key: string }) => {\n  if (image.width > 1024 || image.height > 1024) {\n    const resizedWidth = image.width >= image.height ? 1024 : Math.round((1024 * image.width) / image.height);\n    const resizedHeight = image.width < image.height ? 1024 : Math.round((1024 * image.height) / image.width);\n    ret.url = ret.url + \"?imageMogr2/crop/\" + resizedWidth + \"x\" + resizedHeight;\n  }\n  return ret;\n};\n","export const isExp = location.href.includes(\"fastest.kg.qq.com\");\nexport const isTest = isExp || __DEV__;\n\nexport let isQQMusic: boolean = navigator.userAgent.includes(\"QQMusic\") || location.search.includes(\"QQMusic\");\n\nexport const isWeChatMP =\n  navigator.userAgent.match(\"/miniprogram/i\") || (window as any)?.__wxjs_environment === \"miniprogram\";\n\nexport let isApp =\n  navigator.userAgent.includes(\"QQMusic\") ||\n  navigator.userAgent.includes(\"qmkege\") ||\n  navigator.userAgent.includes(\"weiban\") ||\n  navigator.userAgent.includes(\"weband\") ||\n  isWeChatMP;\n\nexport let isKg: boolean =\n  navigator.userAgent.includes(\"qmkege\") ||\n  location.search.replace(/imgUrl=[^&]+&?/, \"\").includes(\"qmkege\") || // TODO: 暂时特殊处理，不应该判断 search 作为应用标识\n  location.search.replace(/imgUrl=[^&]+&?/, \"\").includes(\"kg\");\nexport let isWeiban =\n  navigator.userAgent.includes(\"weiban\") ||\n  navigator.userAgent.includes(\"weband\") ||\n  location.search.includes(\"weiban\");\nexport const isAndroid = /(Android)(?:\\s+|\\/)(?:[A-z-]*)([\\d.]+)/.test(navigator.userAgent || \"\");\nexport const isIos =\n  /(iPhone\\sOS)\\s([\\d_]+)/.test(navigator.userAgent || \"\") || /(iPad).*OS\\s([\\d_]+)/.test(navigator.userAgent || \"\");\n","import type Music from \"@tencent/qmfe-mobile-music-browser\";\nimport { loadScript } from \".\";\nimport { isQQMusic } from \"library/h5/env\";\nimport type { CommonApi } from \"@tencent/tme-interface-qmkege\";\nimport type { bridge } from \"@tencent/qmkege-bridge\";\nimport type { isLogin, login } from \"@tencent/kg-login/lib/index.web\";\nimport type kgBase from \"@tencent/kg-base\";\nimport type { PosidReport } from \"@tencent/kg-report\";\nimport type qmkege from \"@tencent/qmkege-bridge\";\n\ninterface kgSdkType {\n  CommonApi: typeof CommonApi;\n  PosidReport: typeof PosidReport;\n  bridge: typeof bridge;\n  base: typeof kgBase;\n  qmkege: typeof qmkege;\n  login: typeof login;\n  isLogin: typeof isLogin;\n}\nexport let qqMusicSdk: typeof Music;\n\n// @ts-ignore\nexport let kgSdk: kgSdkType = {};\n\nexport async function sleep(time: number): Promise<void> {\n  return new Promise((resolve) => {\n    setTimeout(resolve, time);\n  });\n}\n\nexport async function initSdk() {\n  if (isQQMusic) {\n    loadScript(\"//y.qq.com/lib/commercial/h5/react-16.8.6.min.js?max_age=2592000\");\n    loadScript(\"//y.qq.com/lib/commercial/h5/react-dom-16.8.6.min.js?max_age=2592000\");\n    await new Promise<void>((r, j) => {\n      let hasReturn = false;\n      loadScript(\"//y.qq.com/lib/commercial/h5/music-react-2.3.0.min.js?max_age=604800&app=qqmusic\", () => {\n        qqMusicSdk = window.Music;\n        if (!hasReturn) {\n          hasReturn = true;\n          r();\n        }\n      });\n      loadScript(\"//y.qq.com/lib/commercial/pay/music-pay-ark-1.0.3.min.js?max_age=604800&v=20220613\");\n      loadScript(\"https://y.qq.com/component/m/qmfe-mobile-react-music/ui-QMPayPopup-1.0.0.react.min.js\");\n      setTimeout(() => {\n        if (!hasReturn) {\n          hasReturn = true;\n          r();\n        }\n      }, 3000);\n    });\n\n    // loadScript(\"//y.qq.com/lib/commercial/h5/polyfill.min.js?max_age=2592000\");\n\n    // // <script src=\"//y.qq.com/lib/commercial/h5/react-16.8.6.min.js?max_age=2592000\"></script>\n    // // <script src=\"//y.qq.com/lib/commercial/h5/react-dom-16.8.6.min.js?max_age=2592000\"></script>\n    // loadScript(\"//y.qq.com/lib/commercial/h5/music-react-2.4.0.min.js?max_age=604800\");\n    // loadScript(\"//y.qq.com/lib/commercial/pay/music-pay-ark-1.0.5.min.js?max_age=604800&v=20221226\");\n  } else {\n    const res = await Promise.all([\n      import(\"@tencent/tme-interface-qmkege\"),\n      import(\"@tencent/qmkege-bridge\"),\n      import(\"@tencent/kg-login/lib/index.web\"),\n      import(\"@tencent/kg-base\"),\n      import(\"@tencent/kg-report\"),\n    ]);\n    kgSdk.CommonApi = res[0].CommonApi;\n    kgSdk.bridge = res[1].bridge;\n    kgSdk.isLogin = res[2].isLogin;\n    kgSdk.login = res[2].login;\n    console.log(\"kgSdk\", kgSdk);\n    kgSdk.base = res[3];\n    kgSdk.PosidReport = res[4].PosidReport;\n    kgSdk.qmkege = res[1];\n  }\n}\n","import React from \"react\";\nimport ReactDom from \"react-dom\";\nimport { App } from \"./app\";\nimport { initSdk } from \"projects/aiAvatar/utils/sdk\";\nimport \"bootstrap/dist/css/bootstrap.min.css\";\nimport \"./assets/style/index.less\";\nimport \"./assets/style/bootstrap-adapt.less\";\nimport \"./assets/style/robot-create.less\";\n\nasync function run() {\n  await initSdk(); // reportKey等后续一些调用需要初始化\n  ReactDom.render(<App />, document.querySelector(\"#app\"));\n}\n\nrun();\n","////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Actions represent the type of change to a location value.\n */\nexport enum Action {\n  /**\n   * A POP indicates a change to an arbitrary index in the history stack, such\n   * as a back or forward navigation. It does not describe the direction of the\n   * navigation, only that the current index changed.\n   *\n   * Note: This is the default action for newly created history objects.\n   */\n  Pop = \"POP\",\n\n  /**\n   * A PUSH indicates a new entry being added to the history stack, such as when\n   * a link is clicked and a new page loads. When this happens, all subsequent\n   * entries in the stack are lost.\n   */\n  Push = \"PUSH\",\n\n  /**\n   * A REPLACE indicates the entry at the current index in the history stack\n   * being replaced by a new one.\n   */\n  Replace = \"REPLACE\",\n}\n\n/**\n * The pathname, search, and hash values of a URL.\n */\nexport interface Path {\n  /**\n   * A URL pathname, beginning with a /.\n   */\n  pathname: string;\n\n  /**\n   * A URL search string, beginning with a ?.\n   */\n  search: string;\n\n  /**\n   * A URL fragment identifier, beginning with a #.\n   */\n  hash: string;\n}\n\n/**\n * An entry in a history stack. A location contains information about the\n * URL path, as well as possibly some arbitrary state and a key.\n */\nexport interface Location extends Path {\n  /**\n   * A value of arbitrary data associated with this location.\n   */\n  state: any;\n\n  /**\n   * A unique string associated with this location. May be used to safely store\n   * and retrieve data in some other storage API, like `localStorage`.\n   *\n   * Note: This value is always \"default\" on the initial location.\n   */\n  key: string;\n}\n\n/**\n * A change to the current location.\n */\nexport interface Update {\n  /**\n   * The action that triggered the change.\n   */\n  action: Action;\n\n  /**\n   * The new location.\n   */\n  location: Location;\n\n  /**\n   * The delta between this location and the former location in the history stack\n   */\n  delta: number | null;\n}\n\n/**\n * A function that receives notifications about location changes.\n */\nexport interface Listener {\n  (update: Update): void;\n}\n\n/**\n * Describes a location that is the destination of some navigation, either via\n * `history.push` or `history.replace`. May be either a URL or the pieces of a\n * URL path.\n */\nexport type To = string | Partial<Path>;\n\n/**\n * A history is an interface to the navigation stack. The history serves as the\n * source of truth for the current location, as well as provides a set of\n * methods that may be used to change it.\n *\n * It is similar to the DOM's `window.history` object, but with a smaller, more\n * focused API.\n */\nexport interface History {\n  /**\n   * The last action that modified the current location. This will always be\n   * Action.Pop when a history instance is first created. This value is mutable.\n   */\n  readonly action: Action;\n\n  /**\n   * The current location. This value is mutable.\n   */\n  readonly location: Location;\n\n  /**\n   * Returns a valid href for the given `to` value that may be used as\n   * the value of an <a href> attribute.\n   *\n   * @param to - The destination URL\n   */\n  createHref(to: To): string;\n\n  /**\n   * Returns a URL for the given `to` value\n   *\n   * @param to - The destination URL\n   */\n  createURL(to: To): URL;\n\n  /**\n   * Encode a location the same way window.history would do (no-op for memory\n   * history) so we ensure our PUSH/REPLACE navigations for data routers\n   * behave the same as POP\n   *\n   * @param to Unencoded path\n   */\n  encodeLocation(to: To): Path;\n\n  /**\n   * Pushes a new location onto the history stack, increasing its length by one.\n   * If there were any entries in the stack after the current one, they are\n   * lost.\n   *\n   * @param to - The new URL\n   * @param state - Data to associate with the new location\n   */\n  push(to: To, state?: any): void;\n\n  /**\n   * Replaces the current location in the history stack with a new one.  The\n   * location that was replaced will no longer be available.\n   *\n   * @param to - The new URL\n   * @param state - Data to associate with the new location\n   */\n  replace(to: To, state?: any): void;\n\n  /**\n   * Navigates `n` entries backward/forward in the history stack relative to the\n   * current index. For example, a \"back\" navigation would use go(-1).\n   *\n   * @param delta - The delta in the stack index\n   */\n  go(delta: number): void;\n\n  /**\n   * Sets up a listener that will be called whenever the current location\n   * changes.\n   *\n   * @param listener - A function that will be called when the location changes\n   * @returns unlisten - A function that may be used to stop listening\n   */\n  listen(listener: Listener): () => void;\n}\n\ntype HistoryState = {\n  usr: any;\n  key?: string;\n  idx: number;\n};\n\nconst PopStateEventType = \"popstate\";\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Memory History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A user-supplied object that describes a location. Used when providing\n * entries to `createMemoryHistory` via its `initialEntries` option.\n */\nexport type InitialEntry = string | Partial<Location>;\n\nexport type MemoryHistoryOptions = {\n  initialEntries?: InitialEntry[];\n  initialIndex?: number;\n  v5Compat?: boolean;\n};\n\n/**\n * A memory history stores locations in memory. This is useful in stateful\n * environments where there is no web browser, such as node tests or React\n * Native.\n */\nexport interface MemoryHistory extends History {\n  /**\n   * The current index in the history stack.\n   */\n  readonly index: number;\n}\n\n/**\n * Memory history stores the current location in memory. It is designed for use\n * in stateful non-browser environments like tests and React Native.\n */\nexport function createMemoryHistory(\n  options: MemoryHistoryOptions = {}\n): MemoryHistory {\n  let { initialEntries = [\"/\"], initialIndex, v5Compat = false } = options;\n  let entries: Location[]; // Declare so we can access from createMemoryLocation\n  entries = initialEntries.map((entry, index) =>\n    createMemoryLocation(\n      entry,\n      typeof entry === \"string\" ? null : entry.state,\n      index === 0 ? \"default\" : undefined\n    )\n  );\n  let index = clampIndex(\n    initialIndex == null ? entries.length - 1 : initialIndex\n  );\n  let action = Action.Pop;\n  let listener: Listener | null = null;\n\n  function clampIndex(n: number): number {\n    return Math.min(Math.max(n, 0), entries.length - 1);\n  }\n  function getCurrentLocation(): Location {\n    return entries[index];\n  }\n  function createMemoryLocation(\n    to: To,\n    state: any = null,\n    key?: string\n  ): Location {\n    let location = createLocation(\n      entries ? getCurrentLocation().pathname : \"/\",\n      to,\n      state,\n      key\n    );\n    warning(\n      location.pathname.charAt(0) === \"/\",\n      `relative pathnames are not supported in memory history: ${JSON.stringify(\n        to\n      )}`\n    );\n    return location;\n  }\n\n  function createHref(to: To) {\n    return typeof to === \"string\" ? to : createPath(to);\n  }\n\n  let history: MemoryHistory = {\n    get index() {\n      return index;\n    },\n    get action() {\n      return action;\n    },\n    get location() {\n      return getCurrentLocation();\n    },\n    createHref,\n    createURL(to) {\n      return new URL(createHref(to), \"http://localhost\");\n    },\n    encodeLocation(to: To) {\n      let path = typeof to === \"string\" ? parsePath(to) : to;\n      return {\n        pathname: path.pathname || \"\",\n        search: path.search || \"\",\n        hash: path.hash || \"\",\n      };\n    },\n    push(to, state) {\n      action = Action.Push;\n      let nextLocation = createMemoryLocation(to, state);\n      index += 1;\n      entries.splice(index, entries.length, nextLocation);\n      if (v5Compat && listener) {\n        listener({ action, location: nextLocation, delta: 1 });\n      }\n    },\n    replace(to, state) {\n      action = Action.Replace;\n      let nextLocation = createMemoryLocation(to, state);\n      entries[index] = nextLocation;\n      if (v5Compat && listener) {\n        listener({ action, location: nextLocation, delta: 0 });\n      }\n    },\n    go(delta) {\n      action = Action.Pop;\n      let nextIndex = clampIndex(index + delta);\n      let nextLocation = entries[nextIndex];\n      index = nextIndex;\n      if (listener) {\n        listener({ action, location: nextLocation, delta });\n      }\n    },\n    listen(fn: Listener) {\n      listener = fn;\n      return () => {\n        listener = null;\n      };\n    },\n  };\n\n  return history;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Browser History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A browser history stores the current location in regular URLs in a web\n * browser environment. This is the standard for most web apps and provides the\n * cleanest URLs the browser's address bar.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#browserhistory\n */\nexport interface BrowserHistory extends UrlHistory {}\n\nexport type BrowserHistoryOptions = UrlHistoryOptions;\n\n/**\n * Browser history stores the location in regular URLs. This is the standard for\n * most web apps, but it requires some configuration on the server to ensure you\n * serve the same app at multiple URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createbrowserhistory\n */\nexport function createBrowserHistory(\n  options: BrowserHistoryOptions = {}\n): BrowserHistory {\n  function createBrowserLocation(\n    window: Window,\n    globalHistory: Window[\"history\"]\n  ) {\n    let { pathname, search, hash } = window.location;\n    return createLocation(\n      \"\",\n      { pathname, search, hash },\n      // state defaults to `null` because `window.history.state` does\n      (globalHistory.state && globalHistory.state.usr) || null,\n      (globalHistory.state && globalHistory.state.key) || \"default\"\n    );\n  }\n\n  function createBrowserHref(window: Window, to: To) {\n    return typeof to === \"string\" ? to : createPath(to);\n  }\n\n  return getUrlBasedHistory(\n    createBrowserLocation,\n    createBrowserHref,\n    null,\n    options\n  );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Hash History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A hash history stores the current location in the fragment identifier portion\n * of the URL in a web browser environment.\n *\n * This is ideal for apps that do not control the server for some reason\n * (because the fragment identifier is never sent to the server), including some\n * shared hosting environments that do not provide fine-grained controls over\n * which pages are served at which URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#hashhistory\n */\nexport interface HashHistory extends UrlHistory {}\n\nexport type HashHistoryOptions = UrlHistoryOptions;\n\n/**\n * Hash history stores the location in window.location.hash. This makes it ideal\n * for situations where you don't want to send the location to the server for\n * some reason, either because you do cannot configure it or the URL space is\n * reserved for something else.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createhashhistory\n */\nexport function createHashHistory(\n  options: HashHistoryOptions = {}\n): HashHistory {\n  function createHashLocation(\n    window: Window,\n    globalHistory: Window[\"history\"]\n  ) {\n    let {\n      pathname = \"/\",\n      search = \"\",\n      hash = \"\",\n    } = parsePath(window.location.hash.substr(1));\n    return createLocation(\n      \"\",\n      { pathname, search, hash },\n      // state defaults to `null` because `window.history.state` does\n      (globalHistory.state && globalHistory.state.usr) || null,\n      (globalHistory.state && globalHistory.state.key) || \"default\"\n    );\n  }\n\n  function createHashHref(window: Window, to: To) {\n    let base = window.document.querySelector(\"base\");\n    let href = \"\";\n\n    if (base && base.getAttribute(\"href\")) {\n      let url = window.location.href;\n      let hashIndex = url.indexOf(\"#\");\n      href = hashIndex === -1 ? url : url.slice(0, hashIndex);\n    }\n\n    return href + \"#\" + (typeof to === \"string\" ? to : createPath(to));\n  }\n\n  function validateHashLocation(location: Location, to: To) {\n    warning(\n      location.pathname.charAt(0) === \"/\",\n      `relative pathnames are not supported in hash history.push(${JSON.stringify(\n        to\n      )})`\n    );\n  }\n\n  return getUrlBasedHistory(\n    createHashLocation,\n    createHashHref,\n    validateHashLocation,\n    options\n  );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region UTILS\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * @private\n */\nexport function invariant(value: boolean, message?: string): asserts value;\nexport function invariant<T>(\n  value: T | null | undefined,\n  message?: string\n): asserts value is T;\nexport function invariant(value: any, message?: string) {\n  if (value === false || value === null || typeof value === \"undefined\") {\n    throw new Error(message);\n  }\n}\n\nexport function warning(cond: any, message: string) {\n  if (!cond) {\n    // eslint-disable-next-line no-console\n    if (typeof console !== \"undefined\") console.warn(message);\n\n    try {\n      // Welcome to debugging history!\n      //\n      // This error is thrown as a convenience so you can more easily\n      // find the source for a warning that appears in the console by\n      // enabling \"pause on exceptions\" in your JavaScript debugger.\n      throw new Error(message);\n      // eslint-disable-next-line no-empty\n    } catch (e) {}\n  }\n}\n\nfunction createKey() {\n  return Math.random().toString(36).substr(2, 8);\n}\n\n/**\n * For browser-based histories, we combine the state and key into an object\n */\nfunction getHistoryState(location: Location, index: number): HistoryState {\n  return {\n    usr: location.state,\n    key: location.key,\n    idx: index,\n  };\n}\n\n/**\n * Creates a Location object with a unique key from the given Path\n */\nexport function createLocation(\n  current: string | Location,\n  to: To,\n  state: any = null,\n  key?: string\n): Readonly<Location> {\n  let location: Readonly<Location> = {\n    pathname: typeof current === \"string\" ? current : current.pathname,\n    search: \"\",\n    hash: \"\",\n    ...(typeof to === \"string\" ? parsePath(to) : to),\n    state,\n    // TODO: This could be cleaned up.  push/replace should probably just take\n    // full Locations now and avoid the need to run through this flow at all\n    // But that's a pretty big refactor to the current test suite so going to\n    // keep as is for the time being and just let any incoming keys take precedence\n    key: (to && (to as Location).key) || key || createKey(),\n  };\n  return location;\n}\n\n/**\n * Creates a string URL path from the given pathname, search, and hash components.\n */\nexport function createPath({\n  pathname = \"/\",\n  search = \"\",\n  hash = \"\",\n}: Partial<Path>) {\n  if (search && search !== \"?\")\n    pathname += search.charAt(0) === \"?\" ? search : \"?\" + search;\n  if (hash && hash !== \"#\")\n    pathname += hash.charAt(0) === \"#\" ? hash : \"#\" + hash;\n  return pathname;\n}\n\n/**\n * Parses a string URL path into its separate pathname, search, and hash components.\n */\nexport function parsePath(path: string): Partial<Path> {\n  let parsedPath: Partial<Path> = {};\n\n  if (path) {\n    let hashIndex = path.indexOf(\"#\");\n    if (hashIndex >= 0) {\n      parsedPath.hash = path.substr(hashIndex);\n      path = path.substr(0, hashIndex);\n    }\n\n    let searchIndex = path.indexOf(\"?\");\n    if (searchIndex >= 0) {\n      parsedPath.search = path.substr(searchIndex);\n      path = path.substr(0, searchIndex);\n    }\n\n    if (path) {\n      parsedPath.pathname = path;\n    }\n  }\n\n  return parsedPath;\n}\n\nexport interface UrlHistory extends History {}\n\nexport type UrlHistoryOptions = {\n  window?: Window;\n  v5Compat?: boolean;\n};\n\nfunction getUrlBasedHistory(\n  getLocation: (window: Window, globalHistory: Window[\"history\"]) => Location,\n  createHref: (window: Window, to: To) => string,\n  validateLocation: ((location: Location, to: To) => void) | null,\n  options: UrlHistoryOptions = {}\n): UrlHistory {\n  let { window = document.defaultView!, v5Compat = false } = options;\n  let globalHistory = window.history;\n  let action = Action.Pop;\n  let listener: Listener | null = null;\n\n  let index = getIndex()!;\n  // Index should only be null when we initialize. If not, it's because the\n  // user called history.pushState or history.replaceState directly, in which\n  // case we should log a warning as it will result in bugs.\n  if (index == null) {\n    index = 0;\n    globalHistory.replaceState({ ...globalHistory.state, idx: index }, \"\");\n  }\n\n  function getIndex(): number {\n    let state = globalHistory.state || { idx: null };\n    return state.idx;\n  }\n\n  function handlePop() {\n    action = Action.Pop;\n    let nextIndex = getIndex();\n    let delta = nextIndex == null ? null : nextIndex - index;\n    index = nextIndex;\n    if (listener) {\n      listener({ action, location: history.location, delta });\n    }\n  }\n\n  function push(to: To, state?: any) {\n    action = Action.Push;\n    let location = createLocation(history.location, to, state);\n    if (validateLocation) validateLocation(location, to);\n\n    index = getIndex() + 1;\n    let historyState = getHistoryState(location, index);\n    let url = history.createHref(location);\n\n    // try...catch because iOS limits us to 100 pushState calls :/\n    try {\n      globalHistory.pushState(historyState, \"\", url);\n    } catch (error) {\n      // If the exception is because `state` can't be serialized, let that throw\n      // outwards just like a replace call would so the dev knows the cause\n      // https://html.spec.whatwg.org/multipage/nav-history-apis.html#shared-history-push/replace-state-steps\n      // https://html.spec.whatwg.org/multipage/structured-data.html#structuredserializeinternal\n      if (error instanceof DOMException && error.name === \"DataCloneError\") {\n        throw error;\n      }\n      // They are going to lose state here, but there is no real\n      // way to warn them about it since the page will refresh...\n      window.location.assign(url);\n    }\n\n    if (v5Compat && listener) {\n      listener({ action, location: history.location, delta: 1 });\n    }\n  }\n\n  function replace(to: To, state?: any) {\n    action = Action.Replace;\n    let location = createLocation(history.location, to, state);\n    if (validateLocation) validateLocation(location, to);\n\n    index = getIndex();\n    let historyState = getHistoryState(location, index);\n    let url = history.createHref(location);\n    globalHistory.replaceState(historyState, \"\", url);\n\n    if (v5Compat && listener) {\n      listener({ action, location: history.location, delta: 0 });\n    }\n  }\n\n  function createURL(to: To): URL {\n    // window.location.origin is \"null\" (the literal string value) in Firefox\n    // under certain conditions, notably when serving from a local HTML file\n    // See https://bugzilla.mozilla.org/show_bug.cgi?id=878297\n    let base =\n      window.location.origin !== \"null\"\n        ? window.location.origin\n        : window.location.href;\n\n    let href = typeof to === \"string\" ? to : createPath(to);\n    invariant(\n      base,\n      `No window.location.(origin|href) available to create URL for href: ${href}`\n    );\n    return new URL(href, base);\n  }\n\n  let history: History = {\n    get action() {\n      return action;\n    },\n    get location() {\n      return getLocation(window, globalHistory);\n    },\n    listen(fn: Listener) {\n      if (listener) {\n        throw new Error(\"A history only accepts one active listener\");\n      }\n      window.addEventListener(PopStateEventType, handlePop);\n      listener = fn;\n\n      return () => {\n        window.removeEventListener(PopStateEventType, handlePop);\n        listener = null;\n      };\n    },\n    createHref(to) {\n      return createHref(window, to);\n    },\n    createURL,\n    encodeLocation(to) {\n      // Encode a Location the same way window.location would\n      let url = createURL(to);\n      return {\n        pathname: url.pathname,\n        search: url.search,\n        hash: url.hash,\n      };\n    },\n    push,\n    replace,\n    go(n) {\n      return globalHistory.go(n);\n    },\n  };\n\n  return history;\n}\n\n//#endregion\n","import type { Location, Path, To } from \"./history\";\nimport { warning, invariant, parsePath } from \"./history\";\n\n/**\n * Map of routeId -> data returned from a loader/action/error\n */\nexport interface RouteData {\n  [routeId: string]: any;\n}\n\nexport enum ResultType {\n  data = \"data\",\n  deferred = \"deferred\",\n  redirect = \"redirect\",\n  error = \"error\",\n}\n\n/**\n * Successful result from a loader or action\n */\nexport interface SuccessResult {\n  type: ResultType.data;\n  data: any;\n  statusCode?: number;\n  headers?: Headers;\n}\n\n/**\n * Successful defer() result from a loader or action\n */\nexport interface DeferredResult {\n  type: ResultType.deferred;\n  deferredData: DeferredData;\n  statusCode?: number;\n  headers?: Headers;\n}\n\n/**\n * Redirect result from a loader or action\n */\nexport interface RedirectResult {\n  type: ResultType.redirect;\n  status: number;\n  location: string;\n  revalidate: boolean;\n}\n\n/**\n * Unsuccessful result from a loader or action\n */\nexport interface ErrorResult {\n  type: ResultType.error;\n  error: any;\n  headers?: Headers;\n}\n\n/**\n * Result from a loader or action - potentially successful or unsuccessful\n */\nexport type DataResult =\n  | SuccessResult\n  | DeferredResult\n  | RedirectResult\n  | ErrorResult;\n\ntype LowerCaseFormMethod = \"get\" | \"post\" | \"put\" | \"patch\" | \"delete\";\ntype UpperCaseFormMethod = Uppercase<LowerCaseFormMethod>;\n\n/**\n * Users can specify either lowercase or uppercase form methods on <Form>,\n * useSubmit(), <fetcher.Form>, etc.\n */\nexport type HTMLFormMethod = LowerCaseFormMethod | UpperCaseFormMethod;\n\n/**\n * Active navigation/fetcher form methods are exposed in lowercase on the\n * RouterState\n */\nexport type FormMethod = LowerCaseFormMethod;\nexport type MutationFormMethod = Exclude<FormMethod, \"get\">;\n\n/**\n * In v7, active navigation/fetcher form methods are exposed in uppercase on the\n * RouterState.  This is to align with the normalization done via fetch().\n */\nexport type V7_FormMethod = UpperCaseFormMethod;\nexport type V7_MutationFormMethod = Exclude<V7_FormMethod, \"GET\">;\n\nexport type FormEncType =\n  | \"application/x-www-form-urlencoded\"\n  | \"multipart/form-data\"\n  | \"application/json\"\n  | \"text/plain\";\n\n// Thanks https://github.com/sindresorhus/type-fest!\ntype JsonObject = { [Key in string]: JsonValue } & {\n  [Key in string]?: JsonValue | undefined;\n};\ntype JsonArray = JsonValue[] | readonly JsonValue[];\ntype JsonPrimitive = string | number | boolean | null;\ntype JsonValue = JsonPrimitive | JsonObject | JsonArray;\n\n/**\n * @private\n * Internal interface to pass around for action submissions, not intended for\n * external consumption\n */\nexport type Submission =\n  | {\n      formMethod: FormMethod | V7_FormMethod;\n      formAction: string;\n      formEncType: FormEncType;\n      formData: FormData;\n      json: undefined;\n      text: undefined;\n    }\n  | {\n      formMethod: FormMethod | V7_FormMethod;\n      formAction: string;\n      formEncType: FormEncType;\n      formData: undefined;\n      json: JsonValue;\n      text: undefined;\n    }\n  | {\n      formMethod: FormMethod | V7_FormMethod;\n      formAction: string;\n      formEncType: FormEncType;\n      formData: undefined;\n      json: undefined;\n      text: string;\n    };\n\n/**\n * @private\n * Arguments passed to route loader/action functions.  Same for now but we keep\n * this as a private implementation detail in case they diverge in the future.\n */\ninterface DataFunctionArgs {\n  request: Request;\n  params: Params;\n  context?: any;\n}\n\n/**\n * Arguments passed to loader functions\n */\nexport interface LoaderFunctionArgs extends DataFunctionArgs {}\n\n/**\n * Arguments passed to action functions\n */\nexport interface ActionFunctionArgs extends DataFunctionArgs {}\n\n/**\n * Loaders and actions can return anything except `undefined` (`null` is a\n * valid return value if there is no data to return).  Responses are preferred\n * and will ease any future migration to Remix\n */\ntype DataFunctionValue = Response | NonNullable<unknown> | null;\n\n/**\n * Route loader function signature\n */\nexport interface LoaderFunction {\n  (args: LoaderFunctionArgs): Promise<DataFunctionValue> | DataFunctionValue;\n}\n\n/**\n * Route action function signature\n */\nexport interface ActionFunction {\n  (args: ActionFunctionArgs): Promise<DataFunctionValue> | DataFunctionValue;\n}\n\n/**\n * Route shouldRevalidate function signature.  This runs after any submission\n * (navigation or fetcher), so we flatten the navigation/fetcher submission\n * onto the arguments.  It shouldn't matter whether it came from a navigation\n * or a fetcher, what really matters is the URLs and the formData since loaders\n * have to re-run based on the data models that were potentially mutated.\n */\nexport interface ShouldRevalidateFunction {\n  (args: {\n    currentUrl: URL;\n    currentParams: AgnosticDataRouteMatch[\"params\"];\n    nextUrl: URL;\n    nextParams: AgnosticDataRouteMatch[\"params\"];\n    formMethod?: Submission[\"formMethod\"];\n    formAction?: Submission[\"formAction\"];\n    formEncType?: Submission[\"formEncType\"];\n    text?: Submission[\"text\"];\n    formData?: Submission[\"formData\"];\n    json?: Submission[\"json\"];\n    actionResult?: DataResult;\n    defaultShouldRevalidate: boolean;\n  }): boolean;\n}\n\n/**\n * Function provided by the framework-aware layers to set `hasErrorBoundary`\n * from the framework-aware `errorElement` prop\n *\n * @deprecated Use `mapRouteProperties` instead\n */\nexport interface DetectErrorBoundaryFunction {\n  (route: AgnosticRouteObject): boolean;\n}\n\n/**\n * Function provided by the framework-aware layers to set any framework-specific\n * properties from framework-agnostic properties\n */\nexport interface MapRoutePropertiesFunction {\n  (route: AgnosticRouteObject): {\n    hasErrorBoundary: boolean;\n  } & Record<string, any>;\n}\n\n/**\n * Keys we cannot change from within a lazy() function. We spread all other keys\n * onto the route. Either they're meaningful to the router, or they'll get\n * ignored.\n */\nexport type ImmutableRouteKey =\n  | \"lazy\"\n  | \"caseSensitive\"\n  | \"path\"\n  | \"id\"\n  | \"index\"\n  | \"children\";\n\nexport const immutableRouteKeys = new Set<ImmutableRouteKey>([\n  \"lazy\",\n  \"caseSensitive\",\n  \"path\",\n  \"id\",\n  \"index\",\n  \"children\",\n]);\n\ntype RequireOne<T, Key = keyof T> = Exclude<\n  {\n    [K in keyof T]: K extends Key ? Omit<T, K> & Required<Pick<T, K>> : never;\n  }[keyof T],\n  undefined\n>;\n\n/**\n * lazy() function to load a route definition, which can add non-matching\n * related properties to a route\n */\nexport interface LazyRouteFunction<R extends AgnosticRouteObject> {\n  (): Promise<RequireOne<Omit<R, ImmutableRouteKey>>>;\n}\n\n/**\n * Base RouteObject with common props shared by all types of routes\n */\ntype AgnosticBaseRouteObject = {\n  caseSensitive?: boolean;\n  path?: string;\n  id?: string;\n  loader?: LoaderFunction;\n  action?: ActionFunction;\n  hasErrorBoundary?: boolean;\n  shouldRevalidate?: ShouldRevalidateFunction;\n  handle?: any;\n  lazy?: LazyRouteFunction<AgnosticBaseRouteObject>;\n};\n\n/**\n * Index routes must not have children\n */\nexport type AgnosticIndexRouteObject = AgnosticBaseRouteObject & {\n  children?: undefined;\n  index: true;\n};\n\n/**\n * Non-index routes may have children, but cannot have index\n */\nexport type AgnosticNonIndexRouteObject = AgnosticBaseRouteObject & {\n  children?: AgnosticRouteObject[];\n  index?: false;\n};\n\n/**\n * A route object represents a logical route, with (optionally) its child\n * routes organized in a tree-like structure.\n */\nexport type AgnosticRouteObject =\n  | AgnosticIndexRouteObject\n  | AgnosticNonIndexRouteObject;\n\nexport type AgnosticDataIndexRouteObject = AgnosticIndexRouteObject & {\n  id: string;\n};\n\nexport type AgnosticDataNonIndexRouteObject = AgnosticNonIndexRouteObject & {\n  children?: AgnosticDataRouteObject[];\n  id: string;\n};\n\n/**\n * A data route object, which is just a RouteObject with a required unique ID\n */\nexport type AgnosticDataRouteObject =\n  | AgnosticDataIndexRouteObject\n  | AgnosticDataNonIndexRouteObject;\n\nexport type RouteManifest = Record<string, AgnosticDataRouteObject | undefined>;\n\n// Recursive helper for finding path parameters in the absence of wildcards\ntype _PathParam<Path extends string> =\n  // split path into individual path segments\n  Path extends `${infer L}/${infer R}`\n    ? _PathParam<L> | _PathParam<R>\n    : // find params after `:`\n    Path extends `:${infer Param}`\n    ? Param extends `${infer Optional}?`\n      ? Optional\n      : Param\n    : // otherwise, there aren't any params present\n      never;\n\n/**\n * Examples:\n * \"/a/b/*\" -> \"*\"\n * \":a\" -> \"a\"\n * \"/a/:b\" -> \"b\"\n * \"/a/blahblahblah:b\" -> \"b\"\n * \"/:a/:b\" -> \"a\" | \"b\"\n * \"/:a/b/:c/*\" -> \"a\" | \"c\" | \"*\"\n */\ntype PathParam<Path extends string> =\n  // check if path is just a wildcard\n  Path extends \"*\" | \"/*\"\n    ? \"*\"\n    : // look for wildcard at the end of the path\n    Path extends `${infer Rest}/*`\n    ? \"*\" | _PathParam<Rest>\n    : // look for params in the absence of wildcards\n      _PathParam<Path>;\n\n// Attempt to parse the given string segment. If it fails, then just return the\n// plain string type as a default fallback. Otherwise return the union of the\n// parsed string literals that were referenced as dynamic segments in the route.\nexport type ParamParseKey<Segment extends string> =\n  // if could not find path params, fallback to `string`\n  [PathParam<Segment>] extends [never] ? string : PathParam<Segment>;\n\n/**\n * The parameters that were parsed from the URL path.\n */\nexport type Params<Key extends string = string> = {\n  readonly [key in Key]: string | undefined;\n};\n\n/**\n * A RouteMatch contains info about how a route matched a URL.\n */\nexport interface AgnosticRouteMatch<\n  ParamKey extends string = string,\n  RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n  /**\n   * The names and values of dynamic parameters in the URL.\n   */\n  params: Params<ParamKey>;\n  /**\n   * The portion of the URL pathname that was matched.\n   */\n  pathname: string;\n  /**\n   * The portion of the URL pathname that was matched before child routes.\n   */\n  pathnameBase: string;\n  /**\n   * The route object that was used to match.\n   */\n  route: RouteObjectType;\n}\n\nexport interface AgnosticDataRouteMatch\n  extends AgnosticRouteMatch<string, AgnosticDataRouteObject> {}\n\nfunction isIndexRoute(\n  route: AgnosticRouteObject\n): route is AgnosticIndexRouteObject {\n  return route.index === true;\n}\n\n// Walk the route tree generating unique IDs where necessary so we are working\n// solely with AgnosticDataRouteObject's within the Router\nexport function convertRoutesToDataRoutes(\n  routes: AgnosticRouteObject[],\n  mapRouteProperties: MapRoutePropertiesFunction,\n  parentPath: number[] = [],\n  manifest: RouteManifest = {}\n): AgnosticDataRouteObject[] {\n  return routes.map((route, index) => {\n    let treePath = [...parentPath, index];\n    let id = typeof route.id === \"string\" ? route.id : treePath.join(\"-\");\n    invariant(\n      route.index !== true || !route.children,\n      `Cannot specify children on an index route`\n    );\n    invariant(\n      !manifest[id],\n      `Found a route id collision on id \"${id}\".  Route ` +\n        \"id's must be globally unique within Data Router usages\"\n    );\n\n    if (isIndexRoute(route)) {\n      let indexRoute: AgnosticDataIndexRouteObject = {\n        ...route,\n        ...mapRouteProperties(route),\n        id,\n      };\n      manifest[id] = indexRoute;\n      return indexRoute;\n    } else {\n      let pathOrLayoutRoute: AgnosticDataNonIndexRouteObject = {\n        ...route,\n        ...mapRouteProperties(route),\n        id,\n        children: undefined,\n      };\n      manifest[id] = pathOrLayoutRoute;\n\n      if (route.children) {\n        pathOrLayoutRoute.children = convertRoutesToDataRoutes(\n          route.children,\n          mapRouteProperties,\n          treePath,\n          manifest\n        );\n      }\n\n      return pathOrLayoutRoute;\n    }\n  });\n}\n\n/**\n * Matches the given routes to a location and returns the match data.\n *\n * @see https://reactrouter.com/utils/match-routes\n */\nexport function matchRoutes<\n  RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n  routes: RouteObjectType[],\n  locationArg: Partial<Location> | string,\n  basename = \"/\"\n): AgnosticRouteMatch<string, RouteObjectType>[] | null {\n  let location =\n    typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n  let pathname = stripBasename(location.pathname || \"/\", basename);\n\n  if (pathname == null) {\n    return null;\n  }\n\n  let branches = flattenRoutes(routes);\n  rankRouteBranches(branches);\n\n  let matches = null;\n  for (let i = 0; matches == null && i < branches.length; ++i) {\n    matches = matchRouteBranch<string, RouteObjectType>(\n      branches[i],\n      // Incoming pathnames are generally encoded from either window.location\n      // or from router.navigate, but we want to match against the unencoded\n      // paths in the route definitions.  Memory router locations won't be\n      // encoded here but there also shouldn't be anything to decode so this\n      // should be a safe operation.  This avoids needing matchRoutes to be\n      // history-aware.\n      safelyDecodeURI(pathname)\n    );\n  }\n\n  return matches;\n}\n\ninterface RouteMeta<\n  RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n  relativePath: string;\n  caseSensitive: boolean;\n  childrenIndex: number;\n  route: RouteObjectType;\n}\n\ninterface RouteBranch<\n  RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n  path: string;\n  score: number;\n  routesMeta: RouteMeta<RouteObjectType>[];\n}\n\nfunction flattenRoutes<\n  RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n  routes: RouteObjectType[],\n  branches: RouteBranch<RouteObjectType>[] = [],\n  parentsMeta: RouteMeta<RouteObjectType>[] = [],\n  parentPath = \"\"\n): RouteBranch<RouteObjectType>[] {\n  let flattenRoute = (\n    route: RouteObjectType,\n    index: number,\n    relativePath?: string\n  ) => {\n    let meta: RouteMeta<RouteObjectType> = {\n      relativePath:\n        relativePath === undefined ? route.path || \"\" : relativePath,\n      caseSensitive: route.caseSensitive === true,\n      childrenIndex: index,\n      route,\n    };\n\n    if (meta.relativePath.startsWith(\"/\")) {\n      invariant(\n        meta.relativePath.startsWith(parentPath),\n        `Absolute route path \"${meta.relativePath}\" nested under path ` +\n          `\"${parentPath}\" is not valid. An absolute child route path ` +\n          `must start with the combined path of all its parent routes.`\n      );\n\n      meta.relativePath = meta.relativePath.slice(parentPath.length);\n    }\n\n    let path = joinPaths([parentPath, meta.relativePath]);\n    let routesMeta = parentsMeta.concat(meta);\n\n    // Add the children before adding this route to the array so we traverse the\n    // route tree depth-first and child routes appear before their parents in\n    // the \"flattened\" version.\n    if (route.children && route.children.length > 0) {\n      invariant(\n        // Our types know better, but runtime JS may not!\n        // @ts-expect-error\n        route.index !== true,\n        `Index routes must not have child routes. Please remove ` +\n          `all child routes from route path \"${path}\".`\n      );\n\n      flattenRoutes(route.children, branches, routesMeta, path);\n    }\n\n    // Routes without a path shouldn't ever match by themselves unless they are\n    // index routes, so don't add them to the list of possible branches.\n    if (route.path == null && !route.index) {\n      return;\n    }\n\n    branches.push({\n      path,\n      score: computeScore(path, route.index),\n      routesMeta,\n    });\n  };\n  routes.forEach((route, index) => {\n    // coarse-grain check for optional params\n    if (route.path === \"\" || !route.path?.includes(\"?\")) {\n      flattenRoute(route, index);\n    } else {\n      for (let exploded of explodeOptionalSegments(route.path)) {\n        flattenRoute(route, index, exploded);\n      }\n    }\n  });\n\n  return branches;\n}\n\n/**\n * Computes all combinations of optional path segments for a given path,\n * excluding combinations that are ambiguous and of lower priority.\n *\n * For example, `/one/:two?/three/:four?/:five?` explodes to:\n * - `/one/three`\n * - `/one/:two/three`\n * - `/one/three/:four`\n * - `/one/three/:five`\n * - `/one/:two/three/:four`\n * - `/one/:two/three/:five`\n * - `/one/three/:four/:five`\n * - `/one/:two/three/:four/:five`\n */\nfunction explodeOptionalSegments(path: string): string[] {\n  let segments = path.split(\"/\");\n  if (segments.length === 0) return [];\n\n  let [first, ...rest] = segments;\n\n  // Optional path segments are denoted by a trailing `?`\n  let isOptional = first.endsWith(\"?\");\n  // Compute the corresponding required segment: `foo?` -> `foo`\n  let required = first.replace(/\\?$/, \"\");\n\n  if (rest.length === 0) {\n    // Intepret empty string as omitting an optional segment\n    // `[\"one\", \"\", \"three\"]` corresponds to omitting `:two` from `/one/:two?/three` -> `/one/three`\n    return isOptional ? [required, \"\"] : [required];\n  }\n\n  let restExploded = explodeOptionalSegments(rest.join(\"/\"));\n\n  let result: string[] = [];\n\n  // All child paths with the prefix.  Do this for all children before the\n  // optional version for all children so we get consistent ordering where the\n  // parent optional aspect is preferred as required.  Otherwise, we can get\n  // child sections interspersed where deeper optional segments are higher than\n  // parent optional segments, where for example, /:two would explodes _earlier_\n  // then /:one.  By always including the parent as required _for all children_\n  // first, we avoid this issue\n  result.push(\n    ...restExploded.map((subpath) =>\n      subpath === \"\" ? required : [required, subpath].join(\"/\")\n    )\n  );\n\n  // Then if this is an optional value, add all child versions without\n  if (isOptional) {\n    result.push(...restExploded);\n  }\n\n  // for absolute paths, ensure `/` instead of empty segment\n  return result.map((exploded) =>\n    path.startsWith(\"/\") && exploded === \"\" ? \"/\" : exploded\n  );\n}\n\nfunction rankRouteBranches(branches: RouteBranch[]): void {\n  branches.sort((a, b) =>\n    a.score !== b.score\n      ? b.score - a.score // Higher score first\n      : compareIndexes(\n          a.routesMeta.map((meta) => meta.childrenIndex),\n          b.routesMeta.map((meta) => meta.childrenIndex)\n        )\n  );\n}\n\nconst paramRe = /^:\\w+$/;\nconst dynamicSegmentValue = 3;\nconst indexRouteValue = 2;\nconst emptySegmentValue = 1;\nconst staticSegmentValue = 10;\nconst splatPenalty = -2;\nconst isSplat = (s: string) => s === \"*\";\n\nfunction computeScore(path: string, index: boolean | undefined): number {\n  let segments = path.split(\"/\");\n  let initialScore = segments.length;\n  if (segments.some(isSplat)) {\n    initialScore += splatPenalty;\n  }\n\n  if (index) {\n    initialScore += indexRouteValue;\n  }\n\n  return segments\n    .filter((s) => !isSplat(s))\n    .reduce(\n      (score, segment) =>\n        score +\n        (paramRe.test(segment)\n          ? dynamicSegmentValue\n          : segment === \"\"\n          ? emptySegmentValue\n          : staticSegmentValue),\n      initialScore\n    );\n}\n\nfunction compareIndexes(a: number[], b: number[]): number {\n  let siblings =\n    a.length === b.length && a.slice(0, -1).every((n, i) => n === b[i]);\n\n  return siblings\n    ? // If two routes are siblings, we should try to match the earlier sibling\n      // first. This allows people to have fine-grained control over the matching\n      // behavior by simply putting routes with identical paths in the order they\n      // want them tried.\n      a[a.length - 1] - b[b.length - 1]\n    : // Otherwise, it doesn't really make sense to rank non-siblings by index,\n      // so they sort equally.\n      0;\n}\n\nfunction matchRouteBranch<\n  ParamKey extends string = string,\n  RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n  branch: RouteBranch<RouteObjectType>,\n  pathname: string\n): AgnosticRouteMatch<ParamKey, RouteObjectType>[] | null {\n  let { routesMeta } = branch;\n\n  let matchedParams = {};\n  let matchedPathname = \"/\";\n  let matches: AgnosticRouteMatch<ParamKey, RouteObjectType>[] = [];\n  for (let i = 0; i < routesMeta.length; ++i) {\n    let meta = routesMeta[i];\n    let end = i === routesMeta.length - 1;\n    let remainingPathname =\n      matchedPathname === \"/\"\n        ? pathname\n        : pathname.slice(matchedPathname.length) || \"/\";\n    let match = matchPath(\n      { path: meta.relativePath, caseSensitive: meta.caseSensitive, end },\n      remainingPathname\n    );\n\n    if (!match) return null;\n\n    Object.assign(matchedParams, match.params);\n\n    let route = meta.route;\n\n    matches.push({\n      // TODO: Can this as be avoided?\n      params: matchedParams as Params<ParamKey>,\n      pathname: joinPaths([matchedPathname, match.pathname]),\n      pathnameBase: normalizePathname(\n        joinPaths([matchedPathname, match.pathnameBase])\n      ),\n      route,\n    });\n\n    if (match.pathnameBase !== \"/\") {\n      matchedPathname = joinPaths([matchedPathname, match.pathnameBase]);\n    }\n  }\n\n  return matches;\n}\n\n/**\n * Returns a path with params interpolated.\n *\n * @see https://reactrouter.com/utils/generate-path\n */\nexport function generatePath<Path extends string>(\n  originalPath: Path,\n  params: {\n    [key in PathParam<Path>]: string | null;\n  } = {} as any\n): string {\n  let path: string = originalPath;\n  if (path.endsWith(\"*\") && path !== \"*\" && !path.endsWith(\"/*\")) {\n    warning(\n      false,\n      `Route path \"${path}\" will be treated as if it were ` +\n        `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n        `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n        `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n    );\n    path = path.replace(/\\*$/, \"/*\") as Path;\n  }\n\n  // ensure `/` is added at the beginning if the path is absolute\n  const prefix = path.startsWith(\"/\") ? \"/\" : \"\";\n\n  const stringify = (p: any) =>\n    p == null ? \"\" : typeof p === \"string\" ? p : String(p);\n\n  const segments = path\n    .split(/\\/+/)\n    .map((segment, index, array) => {\n      const isLastSegment = index === array.length - 1;\n\n      // only apply the splat if it's the last segment\n      if (isLastSegment && segment === \"*\") {\n        const star = \"*\" as PathParam<Path>;\n        // Apply the splat\n        return stringify(params[star]);\n      }\n\n      const keyMatch = segment.match(/^:(\\w+)(\\??)$/);\n      if (keyMatch) {\n        const [, key, optional] = keyMatch;\n        let param = params[key as PathParam<Path>];\n        invariant(optional === \"?\" || param != null, `Missing \":${key}\" param`);\n        return stringify(param);\n      }\n\n      // Remove any optional markers from optional static segments\n      return segment.replace(/\\?$/g, \"\");\n    })\n    // Remove empty segments\n    .filter((segment) => !!segment);\n\n  return prefix + segments.join(\"/\");\n}\n\n/**\n * A PathPattern is used to match on some portion of a URL pathname.\n */\nexport interface PathPattern<Path extends string = string> {\n  /**\n   * A string to match against a URL pathname. May contain `:id`-style segments\n   * to indicate placeholders for dynamic parameters. May also end with `/*` to\n   * indicate matching the rest of the URL pathname.\n   */\n  path: Path;\n  /**\n   * Should be `true` if the static portions of the `path` should be matched in\n   * the same case.\n   */\n  caseSensitive?: boolean;\n  /**\n   * Should be `true` if this pattern should match the entire URL pathname.\n   */\n  end?: boolean;\n}\n\n/**\n * A PathMatch contains info about how a PathPattern matched on a URL pathname.\n */\nexport interface PathMatch<ParamKey extends string = string> {\n  /**\n   * The names and values of dynamic parameters in the URL.\n   */\n  params: Params<ParamKey>;\n  /**\n   * The portion of the URL pathname that was matched.\n   */\n  pathname: string;\n  /**\n   * The portion of the URL pathname that was matched before child routes.\n   */\n  pathnameBase: string;\n  /**\n   * The pattern that was used to match.\n   */\n  pattern: PathPattern;\n}\n\ntype Mutable<T> = {\n  -readonly [P in keyof T]: T[P];\n};\n\n/**\n * Performs pattern matching on a URL pathname and returns information about\n * the match.\n *\n * @see https://reactrouter.com/utils/match-path\n */\nexport function matchPath<\n  ParamKey extends ParamParseKey<Path>,\n  Path extends string\n>(\n  pattern: PathPattern<Path> | Path,\n  pathname: string\n): PathMatch<ParamKey> | null {\n  if (typeof pattern === \"string\") {\n    pattern = { path: pattern, caseSensitive: false, end: true };\n  }\n\n  let [matcher, paramNames] = compilePath(\n    pattern.path,\n    pattern.caseSensitive,\n    pattern.end\n  );\n\n  let match = pathname.match(matcher);\n  if (!match) return null;\n\n  let matchedPathname = match[0];\n  let pathnameBase = matchedPathname.replace(/(.)\\/+$/, \"$1\");\n  let captureGroups = match.slice(1);\n  let params: Params = paramNames.reduce<Mutable<Params>>(\n    (memo, paramName, index) => {\n      // We need to compute the pathnameBase here using the raw splat value\n      // instead of using params[\"*\"] later because it will be decoded then\n      if (paramName === \"*\") {\n        let splatValue = captureGroups[index] || \"\";\n        pathnameBase = matchedPathname\n          .slice(0, matchedPathname.length - splatValue.length)\n          .replace(/(.)\\/+$/, \"$1\");\n      }\n\n      memo[paramName] = safelyDecodeURIComponent(\n        captureGroups[index] || \"\",\n        paramName\n      );\n      return memo;\n    },\n    {}\n  );\n\n  return {\n    params,\n    pathname: matchedPathname,\n    pathnameBase,\n    pattern,\n  };\n}\n\nfunction compilePath(\n  path: string,\n  caseSensitive = false,\n  end = true\n): [RegExp, string[]] {\n  warning(\n    path === \"*\" || !path.endsWith(\"*\") || path.endsWith(\"/*\"),\n    `Route path \"${path}\" will be treated as if it were ` +\n      `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n      `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n      `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n  );\n\n  let paramNames: string[] = [];\n  let regexpSource =\n    \"^\" +\n    path\n      .replace(/\\/*\\*?$/, \"\") // Ignore trailing / and /*, we'll handle it below\n      .replace(/^\\/*/, \"/\") // Make sure it has a leading /\n      .replace(/[\\\\.*+^$?{}|()[\\]]/g, \"\\\\$&\") // Escape special regex chars\n      .replace(/\\/:(\\w+)/g, (_: string, paramName: string) => {\n        paramNames.push(paramName);\n        return \"/([^\\\\/]+)\";\n      });\n\n  if (path.endsWith(\"*\")) {\n    paramNames.push(\"*\");\n    regexpSource +=\n      path === \"*\" || path === \"/*\"\n        ? \"(.*)$\" // Already matched the initial /, just match the rest\n        : \"(?:\\\\/(.+)|\\\\/*)$\"; // Don't include the / in params[\"*\"]\n  } else if (end) {\n    // When matching to the end, ignore trailing slashes\n    regexpSource += \"\\\\/*$\";\n  } else if (path !== \"\" && path !== \"/\") {\n    // If our path is non-empty and contains anything beyond an initial slash,\n    // then we have _some_ form of path in our regex so we should expect to\n    // match only if we find the end of this path segment.  Look for an optional\n    // non-captured trailing slash (to match a portion of the URL) or the end\n    // of the path (if we've matched to the end).  We used to do this with a\n    // word boundary but that gives false positives on routes like\n    // /user-preferences since `-` counts as a word boundary.\n    regexpSource += \"(?:(?=\\\\/|$))\";\n  } else {\n    // Nothing to match for \"\" or \"/\"\n  }\n\n  let matcher = new RegExp(regexpSource, caseSensitive ? undefined : \"i\");\n\n  return [matcher, paramNames];\n}\n\nfunction safelyDecodeURI(value: string) {\n  try {\n    return decodeURI(value);\n  } catch (error) {\n    warning(\n      false,\n      `The URL path \"${value}\" could not be decoded because it is is a ` +\n        `malformed URL segment. This is probably due to a bad percent ` +\n        `encoding (${error}).`\n    );\n\n    return value;\n  }\n}\n\nfunction safelyDecodeURIComponent(value: string, paramName: string) {\n  try {\n    return decodeURIComponent(value);\n  } catch (error) {\n    warning(\n      false,\n      `The value for the URL param \"${paramName}\" will not be decoded because` +\n        ` the string \"${value}\" is a malformed URL segment. This is probably` +\n        ` due to a bad percent encoding (${error}).`\n    );\n\n    return value;\n  }\n}\n\n/**\n * @private\n */\nexport function stripBasename(\n  pathname: string,\n  basename: string\n): string | null {\n  if (basename === \"/\") return pathname;\n\n  if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n    return null;\n  }\n\n  // We want to leave trailing slash behavior in the user's control, so if they\n  // specify a basename with a trailing slash, we should support it\n  let startIndex = basename.endsWith(\"/\")\n    ? basename.length - 1\n    : basename.length;\n  let nextChar = pathname.charAt(startIndex);\n  if (nextChar && nextChar !== \"/\") {\n    // pathname does not start with basename/\n    return null;\n  }\n\n  return pathname.slice(startIndex) || \"/\";\n}\n\n/**\n * Returns a resolved path object relative to the given pathname.\n *\n * @see https://reactrouter.com/utils/resolve-path\n */\nexport function resolvePath(to: To, fromPathname = \"/\"): Path {\n  let {\n    pathname: toPathname,\n    search = \"\",\n    hash = \"\",\n  } = typeof to === \"string\" ? parsePath(to) : to;\n\n  let pathname = toPathname\n    ? toPathname.startsWith(\"/\")\n      ? toPathname\n      : resolvePathname(toPathname, fromPathname)\n    : fromPathname;\n\n  return {\n    pathname,\n    search: normalizeSearch(search),\n    hash: normalizeHash(hash),\n  };\n}\n\nfunction resolvePathname(relativePath: string, fromPathname: string): string {\n  let segments = fromPathname.replace(/\\/+$/, \"\").split(\"/\");\n  let relativeSegments = relativePath.split(\"/\");\n\n  relativeSegments.forEach((segment) => {\n    if (segment === \"..\") {\n      // Keep the root \"\" segment so the pathname starts at /\n      if (segments.length > 1) segments.pop();\n    } else if (segment !== \".\") {\n      segments.push(segment);\n    }\n  });\n\n  return segments.length > 1 ? segments.join(\"/\") : \"/\";\n}\n\nfunction getInvalidPathError(\n  char: string,\n  field: string,\n  dest: string,\n  path: Partial<Path>\n) {\n  return (\n    `Cannot include a '${char}' character in a manually specified ` +\n    `\\`to.${field}\\` field [${JSON.stringify(\n      path\n    )}].  Please separate it out to the ` +\n    `\\`to.${dest}\\` field. Alternatively you may provide the full path as ` +\n    `a string in <Link to=\"...\"> and the router will parse it for you.`\n  );\n}\n\n/**\n * @private\n *\n * When processing relative navigation we want to ignore ancestor routes that\n * do not contribute to the path, such that index/pathless layout routes don't\n * interfere.\n *\n * For example, when moving a route element into an index route and/or a\n * pathless layout route, relative link behavior contained within should stay\n * the same.  Both of the following examples should link back to the root:\n *\n *   <Route path=\"/\">\n *     <Route path=\"accounts\" element={<Link to=\"..\"}>\n *   </Route>\n *\n *   <Route path=\"/\">\n *     <Route path=\"accounts\">\n *       <Route element={<AccountsLayout />}>       // <-- Does not contribute\n *         <Route index element={<Link to=\"..\"} />  // <-- Does not contribute\n *       </Route\n *     </Route>\n *   </Route>\n */\nexport function getPathContributingMatches<\n  T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[]) {\n  return matches.filter(\n    (match, index) =>\n      index === 0 || (match.route.path && match.route.path.length > 0)\n  );\n}\n\n/**\n * @private\n */\nexport function resolveTo(\n  toArg: To,\n  routePathnames: string[],\n  locationPathname: string,\n  isPathRelative = false\n): Path {\n  let to: Partial<Path>;\n  if (typeof toArg === \"string\") {\n    to = parsePath(toArg);\n  } else {\n    to = { ...toArg };\n\n    invariant(\n      !to.pathname || !to.pathname.includes(\"?\"),\n      getInvalidPathError(\"?\", \"pathname\", \"search\", to)\n    );\n    invariant(\n      !to.pathname || !to.pathname.includes(\"#\"),\n      getInvalidPathError(\"#\", \"pathname\", \"hash\", to)\n    );\n    invariant(\n      !to.search || !to.search.includes(\"#\"),\n      getInvalidPathError(\"#\", \"search\", \"hash\", to)\n    );\n  }\n\n  let isEmptyPath = toArg === \"\" || to.pathname === \"\";\n  let toPathname = isEmptyPath ? \"/\" : to.pathname;\n\n  let from: string;\n\n  // Routing is relative to the current pathname if explicitly requested.\n  //\n  // If a pathname is explicitly provided in `to`, it should be relative to the\n  // route context. This is explained in `Note on `<Link to>` values` in our\n  // migration guide from v5 as a means of disambiguation between `to` values\n  // that begin with `/` and those that do not. However, this is problematic for\n  // `to` values that do not provide a pathname. `to` can simply be a search or\n  // hash string, in which case we should assume that the navigation is relative\n  // to the current location's pathname and *not* the route pathname.\n  if (isPathRelative || toPathname == null) {\n    from = locationPathname;\n  } else {\n    let routePathnameIndex = routePathnames.length - 1;\n\n    if (toPathname.startsWith(\"..\")) {\n      let toSegments = toPathname.split(\"/\");\n\n      // Each leading .. segment means \"go up one route\" instead of \"go up one\n      // URL segment\".  This is a key difference from how <a href> works and a\n      // major reason we call this a \"to\" value instead of a \"href\".\n      while (toSegments[0] === \"..\") {\n        toSegments.shift();\n        routePathnameIndex -= 1;\n      }\n\n      to.pathname = toSegments.join(\"/\");\n    }\n\n    // If there are more \"..\" segments than parent routes, resolve relative to\n    // the root / URL.\n    from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n  }\n\n  let path = resolvePath(to, from);\n\n  // Ensure the pathname has a trailing slash if the original \"to\" had one\n  let hasExplicitTrailingSlash =\n    toPathname && toPathname !== \"/\" && toPathname.endsWith(\"/\");\n  // Or if this was a link to the current path which has a trailing slash\n  let hasCurrentTrailingSlash =\n    (isEmptyPath || toPathname === \".\") && locationPathname.endsWith(\"/\");\n  if (\n    !path.pathname.endsWith(\"/\") &&\n    (hasExplicitTrailingSlash || hasCurrentTrailingSlash)\n  ) {\n    path.pathname += \"/\";\n  }\n\n  return path;\n}\n\n/**\n * @private\n */\nexport function getToPathname(to: To): string | undefined {\n  // Empty strings should be treated the same as / paths\n  return to === \"\" || (to as Path).pathname === \"\"\n    ? \"/\"\n    : typeof to === \"string\"\n    ? parsePath(to).pathname\n    : to.pathname;\n}\n\n/**\n * @private\n */\nexport const joinPaths = (paths: string[]): string =>\n  paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n\n/**\n * @private\n */\nexport const normalizePathname = (pathname: string): string =>\n  pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n\n/**\n * @private\n */\nexport const normalizeSearch = (search: string): string =>\n  !search || search === \"?\"\n    ? \"\"\n    : search.startsWith(\"?\")\n    ? search\n    : \"?\" + search;\n\n/**\n * @private\n */\nexport const normalizeHash = (hash: string): string =>\n  !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n\nexport type JsonFunction = <Data>(\n  data: Data,\n  init?: number | ResponseInit\n) => Response;\n\n/**\n * This is a shortcut for creating `application/json` responses. Converts `data`\n * to JSON and sets the `Content-Type` header.\n */\nexport const json: JsonFunction = (data, init = {}) => {\n  let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n  let headers = new Headers(responseInit.headers);\n  if (!headers.has(\"Content-Type\")) {\n    headers.set(\"Content-Type\", \"application/json; charset=utf-8\");\n  }\n\n  return new Response(JSON.stringify(data), {\n    ...responseInit,\n    headers,\n  });\n};\n\nexport interface TrackedPromise extends Promise<any> {\n  _tracked?: boolean;\n  _data?: any;\n  _error?: any;\n}\n\nexport class AbortedDeferredError extends Error {}\n\nexport class DeferredData {\n  private pendingKeysSet: Set<string> = new Set<string>();\n  private controller: AbortController;\n  private abortPromise: Promise<void>;\n  private unlistenAbortSignal: () => void;\n  private subscribers: Set<(aborted: boolean, settledKey?: string) => void> =\n    new Set();\n  data: Record<string, unknown>;\n  init?: ResponseInit;\n  deferredKeys: string[] = [];\n\n  constructor(data: Record<string, unknown>, responseInit?: ResponseInit) {\n    invariant(\n      data && typeof data === \"object\" && !Array.isArray(data),\n      \"defer() only accepts plain objects\"\n    );\n\n    // Set up an AbortController + Promise we can race against to exit early\n    // cancellation\n    let reject: (e: AbortedDeferredError) => void;\n    this.abortPromise = new Promise((_, r) => (reject = r));\n    this.controller = new AbortController();\n    let onAbort = () =>\n      reject(new AbortedDeferredError(\"Deferred data aborted\"));\n    this.unlistenAbortSignal = () =>\n      this.controller.signal.removeEventListener(\"abort\", onAbort);\n    this.controller.signal.addEventListener(\"abort\", onAbort);\n\n    this.data = Object.entries(data).reduce(\n      (acc, [key, value]) =>\n        Object.assign(acc, {\n          [key]: this.trackPromise(key, value),\n        }),\n      {}\n    );\n\n    if (this.done) {\n      // All incoming values were resolved\n      this.unlistenAbortSignal();\n    }\n\n    this.init = responseInit;\n  }\n\n  private trackPromise(\n    key: string,\n    value: Promise<unknown> | unknown\n  ): TrackedPromise | unknown {\n    if (!(value instanceof Promise)) {\n      return value;\n    }\n\n    this.deferredKeys.push(key);\n    this.pendingKeysSet.add(key);\n\n    // We store a little wrapper promise that will be extended with\n    // _data/_error props upon resolve/reject\n    let promise: TrackedPromise = Promise.race([value, this.abortPromise]).then(\n      (data) => this.onSettle(promise, key, undefined, data as unknown),\n      (error) => this.onSettle(promise, key, error as unknown)\n    );\n\n    // Register rejection listeners to avoid uncaught promise rejections on\n    // errors or aborted deferred values\n    promise.catch(() => {});\n\n    Object.defineProperty(promise, \"_tracked\", { get: () => true });\n    return promise;\n  }\n\n  private onSettle(\n    promise: TrackedPromise,\n    key: string,\n    error: unknown,\n    data?: unknown\n  ): unknown {\n    if (\n      this.controller.signal.aborted &&\n      error instanceof AbortedDeferredError\n    ) {\n      this.unlistenAbortSignal();\n      Object.defineProperty(promise, \"_error\", { get: () => error });\n      return Promise.reject(error);\n    }\n\n    this.pendingKeysSet.delete(key);\n\n    if (this.done) {\n      // Nothing left to abort!\n      this.unlistenAbortSignal();\n    }\n\n    // If the promise was resolved/rejected with undefined, we'll throw an error as you\n    // should always resolve with a value or null\n    if (error === undefined && data === undefined) {\n      let undefinedError = new Error(\n        `Deferred data for key \"${key}\" resolved/rejected with \\`undefined\\`, ` +\n          `you must resolve/reject with a value or \\`null\\`.`\n      );\n      Object.defineProperty(promise, \"_error\", { get: () => undefinedError });\n      this.emit(false, key);\n      return Promise.reject(undefinedError);\n    }\n\n    if (data === undefined) {\n      Object.defineProperty(promise, \"_error\", { get: () => error });\n      this.emit(false, key);\n      return Promise.reject(error);\n    }\n\n    Object.defineProperty(promise, \"_data\", { get: () => data });\n    this.emit(false, key);\n    return data;\n  }\n\n  private emit(aborted: boolean, settledKey?: string) {\n    this.subscribers.forEach((subscriber) => subscriber(aborted, settledKey));\n  }\n\n  subscribe(fn: (aborted: boolean, settledKey?: string) => void) {\n    this.subscribers.add(fn);\n    return () => this.subscribers.delete(fn);\n  }\n\n  cancel() {\n    this.controller.abort();\n    this.pendingKeysSet.forEach((v, k) => this.pendingKeysSet.delete(k));\n    this.emit(true);\n  }\n\n  async resolveData(signal: AbortSignal) {\n    let aborted = false;\n    if (!this.done) {\n      let onAbort = () => this.cancel();\n      signal.addEventListener(\"abort\", onAbort);\n      aborted = await new Promise((resolve) => {\n        this.subscribe((aborted) => {\n          signal.removeEventListener(\"abort\", onAbort);\n          if (aborted || this.done) {\n            resolve(aborted);\n          }\n        });\n      });\n    }\n    return aborted;\n  }\n\n  get done() {\n    return this.pendingKeysSet.size === 0;\n  }\n\n  get unwrappedData() {\n    invariant(\n      this.data !== null && this.done,\n      \"Can only unwrap data on initialized and settled deferreds\"\n    );\n\n    return Object.entries(this.data).reduce(\n      (acc, [key, value]) =>\n        Object.assign(acc, {\n          [key]: unwrapTrackedPromise(value),\n        }),\n      {}\n    );\n  }\n\n  get pendingKeys() {\n    return Array.from(this.pendingKeysSet);\n  }\n}\n\nfunction isTrackedPromise(value: any): value is TrackedPromise {\n  return (\n    value instanceof Promise && (value as TrackedPromise)._tracked === true\n  );\n}\n\nfunction unwrapTrackedPromise(value: any) {\n  if (!isTrackedPromise(value)) {\n    return value;\n  }\n\n  if (value._error) {\n    throw value._error;\n  }\n  return value._data;\n}\n\nexport type DeferFunction = (\n  data: Record<string, unknown>,\n  init?: number | ResponseInit\n) => DeferredData;\n\nexport const defer: DeferFunction = (data, init = {}) => {\n  let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n  return new DeferredData(data, responseInit);\n};\n\nexport type RedirectFunction = (\n  url: string,\n  init?: number | ResponseInit\n) => Response;\n\n/**\n * A redirect response. Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirect: RedirectFunction = (url, init = 302) => {\n  let responseInit = init;\n  if (typeof responseInit === \"number\") {\n    responseInit = { status: responseInit };\n  } else if (typeof responseInit.status === \"undefined\") {\n    responseInit.status = 302;\n  }\n\n  let headers = new Headers(responseInit.headers);\n  headers.set(\"Location\", url);\n\n  return new Response(null, {\n    ...responseInit,\n    headers,\n  });\n};\n\n/**\n * @private\n * Utility class we use to hold auto-unwrapped 4xx/5xx Response bodies\n */\nexport class ErrorResponse {\n  status: number;\n  statusText: string;\n  data: any;\n  error?: Error;\n  internal: boolean;\n\n  constructor(\n    status: number,\n    statusText: string | undefined,\n    data: any,\n    internal = false\n  ) {\n    this.status = status;\n    this.statusText = statusText || \"\";\n    this.internal = internal;\n    if (data instanceof Error) {\n      this.data = data.toString();\n      this.error = data;\n    } else {\n      this.data = data;\n    }\n  }\n}\n\n/**\n * Check if the given error is an ErrorResponse generated from a 4xx/5xx\n * Response thrown from an action/loader\n */\nexport function isRouteErrorResponse(error: any): error is ErrorResponse {\n  return (\n    error != null &&\n    typeof error.status === \"number\" &&\n    typeof error.statusText === \"string\" &&\n    typeof error.internal === \"boolean\" &&\n    \"data\" in error\n  );\n}\n","import type { History, Location, Path, To } from \"./history\";\nimport {\n  Action as HistoryAction,\n  createLocation,\n  createPath,\n  invariant,\n  parsePath,\n  warning,\n} from \"./history\";\nimport type {\n  DataResult,\n  DeferredData,\n  AgnosticDataRouteMatch,\n  AgnosticDataRouteObject,\n  DeferredResult,\n  ErrorResult,\n  FormEncType,\n  FormMethod,\n  DetectErrorBoundaryFunction,\n  RedirectResult,\n  RouteData,\n  AgnosticRouteObject,\n  Submission,\n  SuccessResult,\n  AgnosticRouteMatch,\n  ShouldRevalidateFunction,\n  RouteManifest,\n  ImmutableRouteKey,\n  ActionFunction,\n  LoaderFunction,\n  V7_MutationFormMethod,\n  V7_FormMethod,\n  HTMLFormMethod,\n  MutationFormMethod,\n  MapRoutePropertiesFunction,\n} from \"./utils\";\nimport {\n  ErrorResponse,\n  ResultType,\n  convertRoutesToDataRoutes,\n  getPathContributingMatches,\n  immutableRouteKeys,\n  isRouteErrorResponse,\n  joinPaths,\n  matchRoutes,\n  resolveTo,\n  stripBasename,\n} from \"./utils\";\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A Router instance manages all navigation and data loading/mutations\n */\nexport interface Router {\n  /**\n   * @internal\n   * PRIVATE - DO NOT USE\n   *\n   * Return the basename for the router\n   */\n  get basename(): RouterInit[\"basename\"];\n\n  /**\n   * @internal\n   * PRIVATE - DO NOT USE\n   *\n   * Return the current state of the router\n   */\n  get state(): RouterState;\n\n  /**\n   * @internal\n   * PRIVATE - DO NOT USE\n   *\n   * Return the routes for this router instance\n   */\n  get routes(): AgnosticDataRouteObject[];\n\n  /**\n   * @internal\n   * PRIVATE - DO NOT USE\n   *\n   * Initialize the router, including adding history listeners and kicking off\n   * initial data fetches.  Returns a function to cleanup listeners and abort\n   * any in-progress loads\n   */\n  initialize(): Router;\n\n  /**\n   * @internal\n   * PRIVATE - DO NOT USE\n   *\n   * Subscribe to router.state updates\n   *\n   * @param fn function to call with the new state\n   */\n  subscribe(fn: RouterSubscriber): () => void;\n\n  /**\n   * @internal\n   * PRIVATE - DO NOT USE\n   *\n   * Enable scroll restoration behavior in the router\n   *\n   * @param savedScrollPositions Object that will manage positions, in case\n   *                             it's being restored from sessionStorage\n   * @param getScrollPosition    Function to get the active Y scroll position\n   * @param getKey               Function to get the key to use for restoration\n   */\n  enableScrollRestoration(\n    savedScrollPositions: Record<string, number>,\n    getScrollPosition: GetScrollPositionFunction,\n    getKey?: GetScrollRestorationKeyFunction\n  ): () => void;\n\n  /**\n   * @internal\n   * PRIVATE - DO NOT USE\n   *\n   * Navigate forward/backward in the history stack\n   * @param to Delta to move in the history stack\n   */\n  navigate(to: number): Promise<void>;\n\n  /**\n   * Navigate to the given path\n   * @param to Path to navigate to\n   * @param opts Navigation options (method, submission, etc.)\n   */\n  navigate(to: To | null, opts?: RouterNavigateOptions): Promise<void>;\n\n  /**\n   * @internal\n   * PRIVATE - DO NOT USE\n   *\n   * Trigger a fetcher load/submission\n   *\n   * @param key     Fetcher key\n   * @param routeId Route that owns the fetcher\n   * @param href    href to fetch\n   * @param opts    Fetcher options, (method, submission, etc.)\n   */\n  fetch(\n    key: string,\n    routeId: string,\n    href: string | null,\n    opts?: RouterFetchOptions\n  ): void;\n\n  /**\n   * @internal\n   * PRIVATE - DO NOT USE\n   *\n   * Trigger a revalidation of all current route loaders and fetcher loads\n   */\n  revalidate(): void;\n\n  /**\n   * @internal\n   * PRIVATE - DO NOT USE\n   *\n   * Utility function to create an href for the given location\n   * @param location\n   */\n  createHref(location: Location | URL): string;\n\n  /**\n   * @internal\n   * PRIVATE - DO NOT USE\n   *\n   * Utility function to URL encode a destination path according to the internal\n   * history implementation\n   * @param to\n   */\n  encodeLocation(to: To): Path;\n\n  /**\n   * @internal\n   * PRIVATE - DO NOT USE\n   *\n   * Get/create a fetcher for the given key\n   * @param key\n   */\n  getFetcher<TData = any>(key?: string): Fetcher<TData>;\n\n  /**\n   * @internal\n   * PRIVATE - DO NOT USE\n   *\n   * Delete the fetcher for a given key\n   * @param key\n   */\n  deleteFetcher(key?: string): void;\n\n  /**\n   * @internal\n   * PRIVATE - DO NOT USE\n   *\n   * Cleanup listeners and abort any in-progress loads\n   */\n  dispose(): void;\n\n  /**\n   * @internal\n   * PRIVATE - DO NOT USE\n   *\n   * Get a navigation blocker\n   * @param key The identifier for the blocker\n   * @param fn The blocker function implementation\n   */\n  getBlocker(key: string, fn: BlockerFunction): Blocker;\n\n  /**\n   * @internal\n   * PRIVATE - DO NOT USE\n   *\n   * Delete a navigation blocker\n   * @param key The identifier for the blocker\n   */\n  deleteBlocker(key: string): void;\n\n  /**\n   * @internal\n   * PRIVATE - DO NOT USE\n   *\n   * HMR needs to pass in-flight route updates to React Router\n   * TODO: Replace this with granular route update APIs (addRoute, updateRoute, deleteRoute)\n   */\n  _internalSetRoutes(routes: AgnosticRouteObject[]): void;\n\n  /**\n   * @internal\n   * PRIVATE - DO NOT USE\n   *\n   * Internal fetch AbortControllers accessed by unit tests\n   */\n  _internalFetchControllers: Map<string, AbortController>;\n\n  /**\n   * @internal\n   * PRIVATE - DO NOT USE\n   *\n   * Internal pending DeferredData instances accessed by unit tests\n   */\n  _internalActiveDeferreds: Map<string, DeferredData>;\n}\n\n/**\n * State maintained internally by the router.  During a navigation, all states\n * reflect the the \"old\" location unless otherwise noted.\n */\nexport interface RouterState {\n  /**\n   * The action of the most recent navigation\n   */\n  historyAction: HistoryAction;\n\n  /**\n   * The current location reflected by the router\n   */\n  location: Location;\n\n  /**\n   * The current set of route matches\n   */\n  matches: AgnosticDataRouteMatch[];\n\n  /**\n   * Tracks whether we've completed our initial data load\n   */\n  initialized: boolean;\n\n  /**\n   * Current scroll position we should start at for a new view\n   *  - number -> scroll position to restore to\n   *  - false -> do not restore scroll at all (used during submissions)\n   *  - null -> don't have a saved position, scroll to hash or top of page\n   */\n  restoreScrollPosition: number | false | null;\n\n  /**\n   * Indicate whether this navigation should skip resetting the scroll position\n   * if we are unable to restore the scroll position\n   */\n  preventScrollReset: boolean;\n\n  /**\n   * Tracks the state of the current navigation\n   */\n  navigation: Navigation;\n\n  /**\n   * Tracks any in-progress revalidations\n   */\n  revalidation: RevalidationState;\n\n  /**\n   * Data from the loaders for the current matches\n   */\n  loaderData: RouteData;\n\n  /**\n   * Data from the action for the current matches\n   */\n  actionData: RouteData | null;\n\n  /**\n   * Errors caught from loaders for the current matches\n   */\n  errors: RouteData | null;\n\n  /**\n   * Map of current fetchers\n   */\n  fetchers: Map<string, Fetcher>;\n\n  /**\n   * Map of current blockers\n   */\n  blockers: Map<string, Blocker>;\n}\n\n/**\n * Data that can be passed into hydrate a Router from SSR\n */\nexport type HydrationState = Partial<\n  Pick<RouterState, \"loaderData\" | \"actionData\" | \"errors\">\n>;\n\n/**\n * Future flags to toggle new feature behavior\n */\nexport interface FutureConfig {\n  v7_normalizeFormMethod: boolean;\n  v7_prependBasename: boolean;\n}\n\n/**\n * Initialization options for createRouter\n */\nexport interface RouterInit {\n  routes: AgnosticRouteObject[];\n  history: History;\n  basename?: string;\n  /**\n   * @deprecated Use `mapRouteProperties` instead\n   */\n  detectErrorBoundary?: DetectErrorBoundaryFunction;\n  mapRouteProperties?: MapRoutePropertiesFunction;\n  future?: Partial<FutureConfig>;\n  hydrationData?: HydrationState;\n  window?: Window;\n}\n\n/**\n * State returned from a server-side query() call\n */\nexport interface StaticHandlerContext {\n  basename: Router[\"basename\"];\n  location: RouterState[\"location\"];\n  matches: RouterState[\"matches\"];\n  loaderData: RouterState[\"loaderData\"];\n  actionData: RouterState[\"actionData\"];\n  errors: RouterState[\"errors\"];\n  statusCode: number;\n  loaderHeaders: Record<string, Headers>;\n  actionHeaders: Record<string, Headers>;\n  activeDeferreds: Record<string, DeferredData> | null;\n  _deepestRenderedBoundaryId?: string | null;\n}\n\n/**\n * A StaticHandler instance manages a singular SSR navigation/fetch event\n */\nexport interface StaticHandler {\n  dataRoutes: AgnosticDataRouteObject[];\n  query(\n    request: Request,\n    opts?: { requestContext?: unknown }\n  ): Promise<StaticHandlerContext | Response>;\n  queryRoute(\n    request: Request,\n    opts?: { routeId?: string; requestContext?: unknown }\n  ): Promise<any>;\n}\n\n/**\n * Subscriber function signature for changes to router state\n */\nexport interface RouterSubscriber {\n  (state: RouterState): void;\n}\n\ninterface UseMatchesMatch {\n  id: string;\n  pathname: string;\n  params: AgnosticRouteMatch[\"params\"];\n  data: unknown;\n  handle: unknown;\n}\n\n/**\n * Function signature for determining the key to be used in scroll restoration\n * for a given location\n */\nexport interface GetScrollRestorationKeyFunction {\n  (location: Location, matches: UseMatchesMatch[]): string | null;\n}\n\n/**\n * Function signature for determining the current scroll position\n */\nexport interface GetScrollPositionFunction {\n  (): number;\n}\n\nexport type RelativeRoutingType = \"route\" | \"path\";\n\n// Allowed for any navigation or fetch\ntype BaseNavigateOrFetchOptions = {\n  preventScrollReset?: boolean;\n  relative?: RelativeRoutingType;\n};\n\n// Only allowed for navigations\ntype BaseNavigateOptions = BaseNavigateOrFetchOptions & {\n  replace?: boolean;\n  state?: any;\n  fromRouteId?: string;\n};\n\n// Only allowed for submission navigations\ntype BaseSubmissionOptions = {\n  formMethod?: HTMLFormMethod;\n  formEncType?: FormEncType;\n} & (\n  | { formData: FormData; body?: undefined }\n  | { formData?: undefined; body: any }\n);\n\n/**\n * Options for a navigate() call for a normal (non-submission) navigation\n */\ntype LinkNavigateOptions = BaseNavigateOptions;\n\n/**\n * Options for a navigate() call for a submission navigation\n */\ntype SubmissionNavigateOptions = BaseNavigateOptions & BaseSubmissionOptions;\n\n/**\n * Options to pass to navigate() for a navigation\n */\nexport type RouterNavigateOptions =\n  | LinkNavigateOptions\n  | SubmissionNavigateOptions;\n\n/**\n * Options for a fetch() load\n */\ntype LoadFetchOptions = BaseNavigateOrFetchOptions;\n\n/**\n * Options for a fetch() submission\n */\ntype SubmitFetchOptions = BaseNavigateOrFetchOptions & BaseSubmissionOptions;\n\n/**\n * Options to pass to fetch()\n */\nexport type RouterFetchOptions = LoadFetchOptions | SubmitFetchOptions;\n\n/**\n * Potential states for state.navigation\n */\nexport type NavigationStates = {\n  Idle: {\n    state: \"idle\";\n    location: undefined;\n    formMethod: undefined;\n    formAction: undefined;\n    formEncType: undefined;\n    formData: undefined;\n    json: undefined;\n    text: undefined;\n  };\n  Loading: {\n    state: \"loading\";\n    location: Location;\n    formMethod: Submission[\"formMethod\"] | undefined;\n    formAction: Submission[\"formAction\"] | undefined;\n    formEncType: Submission[\"formEncType\"] | undefined;\n    formData: Submission[\"formData\"] | undefined;\n    json: Submission[\"json\"] | undefined;\n    text: Submission[\"text\"] | undefined;\n  };\n  Submitting: {\n    state: \"submitting\";\n    location: Location;\n    formMethod: Submission[\"formMethod\"];\n    formAction: Submission[\"formAction\"];\n    formEncType: Submission[\"formEncType\"];\n    formData: Submission[\"formData\"];\n    json: Submission[\"json\"];\n    text: Submission[\"text\"];\n  };\n};\n\nexport type Navigation = NavigationStates[keyof NavigationStates];\n\nexport type RevalidationState = \"idle\" | \"loading\";\n\n/**\n * Potential states for fetchers\n */\ntype FetcherStates<TData = any> = {\n  Idle: {\n    state: \"idle\";\n    formMethod: undefined;\n    formAction: undefined;\n    formEncType: undefined;\n    text: undefined;\n    formData: undefined;\n    json: undefined;\n    data: TData | undefined;\n    \" _hasFetcherDoneAnything \"?: boolean;\n  };\n  Loading: {\n    state: \"loading\";\n    formMethod: Submission[\"formMethod\"] | undefined;\n    formAction: Submission[\"formAction\"] | undefined;\n    formEncType: Submission[\"formEncType\"] | undefined;\n    text: Submission[\"text\"] | undefined;\n    formData: Submission[\"formData\"] | undefined;\n    json: Submission[\"json\"] | undefined;\n    data: TData | undefined;\n    \" _hasFetcherDoneAnything \"?: boolean;\n  };\n  Submitting: {\n    state: \"submitting\";\n    formMethod: Submission[\"formMethod\"];\n    formAction: Submission[\"formAction\"];\n    formEncType: Submission[\"formEncType\"];\n    text: Submission[\"text\"];\n    formData: Submission[\"formData\"];\n    json: Submission[\"json\"];\n    data: TData | undefined;\n    \" _hasFetcherDoneAnything \"?: boolean;\n  };\n};\n\nexport type Fetcher<TData = any> =\n  FetcherStates<TData>[keyof FetcherStates<TData>];\n\ninterface BlockerBlocked {\n  state: \"blocked\";\n  reset(): void;\n  proceed(): void;\n  location: Location;\n}\n\ninterface BlockerUnblocked {\n  state: \"unblocked\";\n  reset: undefined;\n  proceed: undefined;\n  location: undefined;\n}\n\ninterface BlockerProceeding {\n  state: \"proceeding\";\n  reset: undefined;\n  proceed: undefined;\n  location: Location;\n}\n\nexport type Blocker = BlockerUnblocked | BlockerBlocked | BlockerProceeding;\n\nexport type BlockerFunction = (args: {\n  currentLocation: Location;\n  nextLocation: Location;\n  historyAction: HistoryAction;\n}) => boolean;\n\ninterface ShortCircuitable {\n  /**\n   * startNavigation does not need to complete the navigation because we\n   * redirected or got interrupted\n   */\n  shortCircuited?: boolean;\n}\n\ninterface HandleActionResult extends ShortCircuitable {\n  /**\n   * Error thrown from the current action, keyed by the route containing the\n   * error boundary to render the error.  To be committed to the state after\n   * loaders have completed\n   */\n  pendingActionError?: RouteData;\n  /**\n   * Data returned from the current action, keyed by the route owning the action.\n   * To be committed to the state after loaders have completed\n   */\n  pendingActionData?: RouteData;\n}\n\ninterface HandleLoadersResult extends ShortCircuitable {\n  /**\n   * loaderData returned from the current set of loaders\n   */\n  loaderData?: RouterState[\"loaderData\"];\n  /**\n   * errors thrown from the current set of loaders\n   */\n  errors?: RouterState[\"errors\"];\n}\n\n/**\n * Cached info for active fetcher.load() instances so they can participate\n * in revalidation\n */\ninterface FetchLoadMatch {\n  routeId: string;\n  path: string;\n}\n\n/**\n * Identified fetcher.load() calls that need to be revalidated\n */\ninterface RevalidatingFetcher extends FetchLoadMatch {\n  key: string;\n  match: AgnosticDataRouteMatch | null;\n  matches: AgnosticDataRouteMatch[] | null;\n  controller: AbortController | null;\n}\n\n/**\n * Wrapper object to allow us to throw any response out from callLoaderOrAction\n * for queryRouter while preserving whether or not it was thrown or returned\n * from the loader/action\n */\ninterface QueryRouteResponse {\n  type: ResultType.data | ResultType.error;\n  response: Response;\n}\n\nconst validMutationMethodsArr: MutationFormMethod[] = [\n  \"post\",\n  \"put\",\n  \"patch\",\n  \"delete\",\n];\nconst validMutationMethods = new Set<MutationFormMethod>(\n  validMutationMethodsArr\n);\n\nconst validRequestMethodsArr: FormMethod[] = [\n  \"get\",\n  ...validMutationMethodsArr,\n];\nconst validRequestMethods = new Set<FormMethod>(validRequestMethodsArr);\n\nconst redirectStatusCodes = new Set([301, 302, 303, 307, 308]);\nconst redirectPreserveMethodStatusCodes = new Set([307, 308]);\n\nexport const IDLE_NAVIGATION: NavigationStates[\"Idle\"] = {\n  state: \"idle\",\n  location: undefined,\n  formMethod: undefined,\n  formAction: undefined,\n  formEncType: undefined,\n  formData: undefined,\n  json: undefined,\n  text: undefined,\n};\n\nexport const IDLE_FETCHER: FetcherStates[\"Idle\"] = {\n  state: \"idle\",\n  data: undefined,\n  formMethod: undefined,\n  formAction: undefined,\n  formEncType: undefined,\n  formData: undefined,\n  json: undefined,\n  text: undefined,\n};\n\nexport const IDLE_BLOCKER: BlockerUnblocked = {\n  state: \"unblocked\",\n  proceed: undefined,\n  reset: undefined,\n  location: undefined,\n};\n\nconst ABSOLUTE_URL_REGEX = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i;\n\nconst defaultMapRouteProperties: MapRoutePropertiesFunction = (route) => ({\n  hasErrorBoundary: Boolean(route.hasErrorBoundary),\n});\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createRouter\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Create a router and listen to history POP navigations\n */\nexport function createRouter(init: RouterInit): Router {\n  const routerWindow = init.window\n    ? init.window\n    : typeof window !== \"undefined\"\n    ? window\n    : undefined;\n  const isBrowser =\n    typeof routerWindow !== \"undefined\" &&\n    typeof routerWindow.document !== \"undefined\" &&\n    typeof routerWindow.document.createElement !== \"undefined\";\n  const isServer = !isBrowser;\n\n  invariant(\n    init.routes.length > 0,\n    \"You must provide a non-empty routes array to createRouter\"\n  );\n\n  let mapRouteProperties: MapRoutePropertiesFunction;\n  if (init.mapRouteProperties) {\n    mapRouteProperties = init.mapRouteProperties;\n  } else if (init.detectErrorBoundary) {\n    // If they are still using the deprecated version, wrap it with the new API\n    let detectErrorBoundary = init.detectErrorBoundary;\n    mapRouteProperties = (route) => ({\n      hasErrorBoundary: detectErrorBoundary(route),\n    });\n  } else {\n    mapRouteProperties = defaultMapRouteProperties;\n  }\n\n  // Routes keyed by ID\n  let manifest: RouteManifest = {};\n  // Routes in tree format for matching\n  let dataRoutes = convertRoutesToDataRoutes(\n    init.routes,\n    mapRouteProperties,\n    undefined,\n    manifest\n  );\n  let inFlightDataRoutes: AgnosticDataRouteObject[] | undefined;\n  let basename = init.basename || \"/\";\n  // Config driven behavior flags\n  let future: FutureConfig = {\n    v7_normalizeFormMethod: false,\n    v7_prependBasename: false,\n    ...init.future,\n  };\n  // Cleanup function for history\n  let unlistenHistory: (() => void) | null = null;\n  // Externally-provided functions to call on all state changes\n  let subscribers = new Set<RouterSubscriber>();\n  // Externally-provided object to hold scroll restoration locations during routing\n  let savedScrollPositions: Record<string, number> | null = null;\n  // Externally-provided function to get scroll restoration keys\n  let getScrollRestorationKey: GetScrollRestorationKeyFunction | null = null;\n  // Externally-provided function to get current scroll position\n  let getScrollPosition: GetScrollPositionFunction | null = null;\n  // One-time flag to control the initial hydration scroll restoration.  Because\n  // we don't get the saved positions from <ScrollRestoration /> until _after_\n  // the initial render, we need to manually trigger a separate updateState to\n  // send along the restoreScrollPosition\n  // Set to true if we have `hydrationData` since we assume we were SSR'd and that\n  // SSR did the initial scroll restoration.\n  let initialScrollRestored = init.hydrationData != null;\n\n  let initialMatches = matchRoutes(dataRoutes, init.history.location, basename);\n  let initialErrors: RouteData | null = null;\n\n  if (initialMatches == null) {\n    // If we do not match a user-provided-route, fall back to the root\n    // to allow the error boundary to take over\n    let error = getInternalRouterError(404, {\n      pathname: init.history.location.pathname,\n    });\n    let { matches, route } = getShortCircuitMatches(dataRoutes);\n    initialMatches = matches;\n    initialErrors = { [route.id]: error };\n  }\n\n  let initialized =\n    // All initialMatches need to be loaded before we're ready.  If we have lazy\n    // functions around still then we'll need to run them in initialize()\n    !initialMatches.some((m) => m.route.lazy) &&\n    // And we have to either have no loaders or have been provided hydrationData\n    (!initialMatches.some((m) => m.route.loader) || init.hydrationData != null);\n\n  let router: Router;\n  let state: RouterState = {\n    historyAction: init.history.action,\n    location: init.history.location,\n    matches: initialMatches,\n    initialized,\n    navigation: IDLE_NAVIGATION,\n    // Don't restore on initial updateState() if we were SSR'd\n    restoreScrollPosition: init.hydrationData != null ? false : null,\n    preventScrollReset: false,\n    revalidation: \"idle\",\n    loaderData: (init.hydrationData && init.hydrationData.loaderData) || {},\n    actionData: (init.hydrationData && init.hydrationData.actionData) || null,\n    errors: (init.hydrationData && init.hydrationData.errors) || initialErrors,\n    fetchers: new Map(),\n    blockers: new Map(),\n  };\n\n  // -- Stateful internal variables to manage navigations --\n  // Current navigation in progress (to be committed in completeNavigation)\n  let pendingAction: HistoryAction = HistoryAction.Pop;\n\n  // Should the current navigation prevent the scroll reset if scroll cannot\n  // be restored?\n  let pendingPreventScrollReset = false;\n\n  // AbortController for the active navigation\n  let pendingNavigationController: AbortController | null;\n\n  // We use this to avoid touching history in completeNavigation if a\n  // revalidation is entirely uninterrupted\n  let isUninterruptedRevalidation = false;\n\n  // Use this internal flag to force revalidation of all loaders:\n  //  - submissions (completed or interrupted)\n  //  - useRevalidator()\n  //  - X-Remix-Revalidate (from redirect)\n  let isRevalidationRequired = false;\n\n  // Use this internal array to capture routes that require revalidation due\n  // to a cancelled deferred on action submission\n  let cancelledDeferredRoutes: string[] = [];\n\n  // Use this internal array to capture fetcher loads that were cancelled by an\n  // action navigation and require revalidation\n  let cancelledFetcherLoads: string[] = [];\n\n  // AbortControllers for any in-flight fetchers\n  let fetchControllers = new Map<string, AbortController>();\n\n  // Track loads based on the order in which they started\n  let incrementingLoadId = 0;\n\n  // Track the outstanding pending navigation data load to be compared against\n  // the globally incrementing load when a fetcher load lands after a completed\n  // navigation\n  let pendingNavigationLoadId = -1;\n\n  // Fetchers that triggered data reloads as a result of their actions\n  let fetchReloadIds = new Map<string, number>();\n\n  // Fetchers that triggered redirect navigations\n  let fetchRedirectIds = new Set<string>();\n\n  // Most recent href/match for fetcher.load calls for fetchers\n  let fetchLoadMatches = new Map<string, FetchLoadMatch>();\n\n  // Store DeferredData instances for active route matches.  When a\n  // route loader returns defer() we stick one in here.  Then, when a nested\n  // promise resolves we update loaderData.  If a new navigation starts we\n  // cancel active deferreds for eliminated routes.\n  let activeDeferreds = new Map<string, DeferredData>();\n\n  // Store blocker functions in a separate Map outside of router state since\n  // we don't need to update UI state if they change\n  let blockerFunctions = new Map<string, BlockerFunction>();\n\n  // Flag to ignore the next history update, so we can revert the URL change on\n  // a POP navigation that was blocked by the user without touching router state\n  let ignoreNextHistoryUpdate = false;\n\n  // Initialize the router, all side effects should be kicked off from here.\n  // Implemented as a Fluent API for ease of:\n  //   let router = createRouter(init).initialize();\n  function initialize() {\n    // If history informs us of a POP navigation, start the navigation but do not update\n    // state.  We'll update our own state once the navigation completes\n    unlistenHistory = init.history.listen(\n      ({ action: historyAction, location, delta }) => {\n        // Ignore this event if it was just us resetting the URL from a\n        // blocked POP navigation\n        if (ignoreNextHistoryUpdate) {\n          ignoreNextHistoryUpdate = false;\n          return;\n        }\n\n        warning(\n          blockerFunctions.size === 0 || delta != null,\n          \"You are trying to use a blocker on a POP navigation to a location \" +\n            \"that was not created by @remix-run/router. This will fail silently in \" +\n            \"production. This can happen if you are navigating outside the router \" +\n            \"via `window.history.pushState`/`window.location.hash` instead of using \" +\n            \"router navigation APIs.  This can also happen if you are using \" +\n            \"createHashRouter and the user manually changes the URL.\"\n        );\n\n        let blockerKey = shouldBlockNavigation({\n          currentLocation: state.location,\n          nextLocation: location,\n          historyAction,\n        });\n\n        if (blockerKey && delta != null) {\n          // Restore the URL to match the current UI, but don't update router state\n          ignoreNextHistoryUpdate = true;\n          init.history.go(delta * -1);\n\n          // Put the blocker into a blocked state\n          updateBlocker(blockerKey, {\n            state: \"blocked\",\n            location,\n            proceed() {\n              updateBlocker(blockerKey!, {\n                state: \"proceeding\",\n                proceed: undefined,\n                reset: undefined,\n                location,\n              });\n              // Re-do the same POP navigation we just blocked\n              init.history.go(delta);\n            },\n            reset() {\n              let blockers = new Map(state.blockers);\n              blockers.set(blockerKey!, IDLE_BLOCKER);\n              updateState({ blockers });\n            },\n          });\n          return;\n        }\n\n        return startNavigation(historyAction, location);\n      }\n    );\n\n    // Kick off initial data load if needed.  Use Pop to avoid modifying history\n    // Note we don't do any handling of lazy here.  For SPA's it'll get handled\n    // in the normal navigation flow.  For SSR it's expected that lazy modules are\n    // resolved prior to router creation since we can't go into a fallbackElement\n    // UI for SSR'd apps\n    if (!state.initialized) {\n      startNavigation(HistoryAction.Pop, state.location);\n    }\n\n    return router;\n  }\n\n  // Clean up a router and it's side effects\n  function dispose() {\n    if (unlistenHistory) {\n      unlistenHistory();\n    }\n    subscribers.clear();\n    pendingNavigationController && pendingNavigationController.abort();\n    state.fetchers.forEach((_, key) => deleteFetcher(key));\n    state.blockers.forEach((_, key) => deleteBlocker(key));\n  }\n\n  // Subscribe to state updates for the router\n  function subscribe(fn: RouterSubscriber) {\n    subscribers.add(fn);\n    return () => subscribers.delete(fn);\n  }\n\n  // Update our state and notify the calling context of the change\n  function updateState(newState: Partial<RouterState>): void {\n    state = {\n      ...state,\n      ...newState,\n    };\n    subscribers.forEach((subscriber) => subscriber(state));\n  }\n\n  // Complete a navigation returning the state.navigation back to the IDLE_NAVIGATION\n  // and setting state.[historyAction/location/matches] to the new route.\n  // - Location is a required param\n  // - Navigation will always be set to IDLE_NAVIGATION\n  // - Can pass any other state in newState\n  function completeNavigation(\n    location: Location,\n    newState: Partial<Omit<RouterState, \"action\" | \"location\" | \"navigation\">>\n  ): void {\n    // Deduce if we're in a loading/actionReload state:\n    // - We have committed actionData in the store\n    // - The current navigation was a mutation submission\n    // - We're past the submitting state and into the loading state\n    // - The location being loaded is not the result of a redirect\n    let isActionReload =\n      state.actionData != null &&\n      state.navigation.formMethod != null &&\n      isMutationMethod(state.navigation.formMethod) &&\n      state.navigation.state === \"loading\" &&\n      location.state?._isRedirect !== true;\n\n    let actionData: RouteData | null;\n    if (newState.actionData) {\n      if (Object.keys(newState.actionData).length > 0) {\n        actionData = newState.actionData;\n      } else {\n        // Empty actionData -> clear prior actionData due to an action error\n        actionData = null;\n      }\n    } else if (isActionReload) {\n      // Keep the current data if we're wrapping up the action reload\n      actionData = state.actionData;\n    } else {\n      // Clear actionData on any other completed navigations\n      actionData = null;\n    }\n\n    // Always preserve any existing loaderData from re-used routes\n    let loaderData = newState.loaderData\n      ? mergeLoaderData(\n          state.loaderData,\n          newState.loaderData,\n          newState.matches || [],\n          newState.errors\n        )\n      : state.loaderData;\n\n    // On a successful navigation we can assume we got through all blockers\n    // so we can start fresh\n    let blockers = state.blockers;\n    if (blockers.size > 0) {\n      blockers = new Map(blockers);\n      blockers.forEach((_, k) => blockers.set(k, IDLE_BLOCKER));\n    }\n\n    // Always respect the user flag.  Otherwise don't reset on mutation\n    // submission navigations unless they redirect\n    let preventScrollReset =\n      pendingPreventScrollReset === true ||\n      (state.navigation.formMethod != null &&\n        isMutationMethod(state.navigation.formMethod) &&\n        location.state?._isRedirect !== true);\n\n    if (inFlightDataRoutes) {\n      dataRoutes = inFlightDataRoutes;\n      inFlightDataRoutes = undefined;\n    }\n\n    if (isUninterruptedRevalidation) {\n      // If this was an uninterrupted revalidation then do not touch history\n    } else if (pendingAction === HistoryAction.Pop) {\n      // Do nothing for POP - URL has already been updated\n    } else if (pendingAction === HistoryAction.Push) {\n      init.history.push(location, location.state);\n    } else if (pendingAction === HistoryAction.Replace) {\n      init.history.replace(location, location.state);\n    }\n\n    updateState({\n      ...newState, // matches, errors, fetchers go through as-is\n      actionData,\n      loaderData,\n      historyAction: pendingAction,\n      location,\n      initialized: true,\n      navigation: IDLE_NAVIGATION,\n      revalidation: \"idle\",\n      restoreScrollPosition: getSavedScrollPosition(\n        location,\n        newState.matches || state.matches\n      ),\n      preventScrollReset,\n      blockers,\n    });\n\n    // Reset stateful navigation vars\n    pendingAction = HistoryAction.Pop;\n    pendingPreventScrollReset = false;\n    isUninterruptedRevalidation = false;\n    isRevalidationRequired = false;\n    cancelledDeferredRoutes = [];\n    cancelledFetcherLoads = [];\n  }\n\n  // Trigger a navigation event, which can either be a numerical POP or a PUSH\n  // replace with an optional submission\n  async function navigate(\n    to: number | To | null,\n    opts?: RouterNavigateOptions\n  ): Promise<void> {\n    if (typeof to === \"number\") {\n      init.history.go(to);\n      return;\n    }\n\n    let normalizedPath = normalizeTo(\n      state.location,\n      state.matches,\n      basename,\n      future.v7_prependBasename,\n      to,\n      opts?.fromRouteId,\n      opts?.relative\n    );\n    let { path, submission, error } = normalizeNavigateOptions(\n      future.v7_normalizeFormMethod,\n      false,\n      normalizedPath,\n      opts\n    );\n\n    let currentLocation = state.location;\n    let nextLocation = createLocation(state.location, path, opts && opts.state);\n\n    // When using navigate as a PUSH/REPLACE we aren't reading an already-encoded\n    // URL from window.location, so we need to encode it here so the behavior\n    // remains the same as POP and non-data-router usages.  new URL() does all\n    // the same encoding we'd get from a history.pushState/window.location read\n    // without having to touch history\n    nextLocation = {\n      ...nextLocation,\n      ...init.history.encodeLocation(nextLocation),\n    };\n\n    let userReplace = opts && opts.replace != null ? opts.replace : undefined;\n\n    let historyAction = HistoryAction.Push;\n\n    if (userReplace === true) {\n      historyAction = HistoryAction.Replace;\n    } else if (userReplace === false) {\n      // no-op\n    } else if (\n      submission != null &&\n      isMutationMethod(submission.formMethod) &&\n      submission.formAction === state.location.pathname + state.location.search\n    ) {\n      // By default on submissions to the current location we REPLACE so that\n      // users don't have to double-click the back button to get to the prior\n      // location.  If the user redirects to a different location from the\n      // action/loader this will be ignored and the redirect will be a PUSH\n      historyAction = HistoryAction.Replace;\n    }\n\n    let preventScrollReset =\n      opts && \"preventScrollReset\" in opts\n        ? opts.preventScrollReset === true\n        : undefined;\n\n    let blockerKey = shouldBlockNavigation({\n      currentLocation,\n      nextLocation,\n      historyAction,\n    });\n\n    if (blockerKey) {\n      // Put the blocker into a blocked state\n      updateBlocker(blockerKey, {\n        state: \"blocked\",\n        location: nextLocation,\n        proceed() {\n          updateBlocker(blockerKey!, {\n            state: \"proceeding\",\n            proceed: undefined,\n            reset: undefined,\n            location: nextLocation,\n          });\n          // Send the same navigation through\n          navigate(to, opts);\n        },\n        reset() {\n          let blockers = new Map(state.blockers);\n          blockers.set(blockerKey!, IDLE_BLOCKER);\n          updateState({ blockers });\n        },\n      });\n      return;\n    }\n\n    return await startNavigation(historyAction, nextLocation, {\n      submission,\n      // Send through the formData serialization error if we have one so we can\n      // render at the right error boundary after we match routes\n      pendingError: error,\n      preventScrollReset,\n      replace: opts && opts.replace,\n    });\n  }\n\n  // Revalidate all current loaders.  If a navigation is in progress or if this\n  // is interrupted by a navigation, allow this to \"succeed\" by calling all\n  // loaders during the next loader round\n  function revalidate() {\n    interruptActiveLoads();\n    updateState({ revalidation: \"loading\" });\n\n    // If we're currently submitting an action, we don't need to start a new\n    // navigation, we'll just let the follow up loader execution call all loaders\n    if (state.navigation.state === \"submitting\") {\n      return;\n    }\n\n    // If we're currently in an idle state, start a new navigation for the current\n    // action/location and mark it as uninterrupted, which will skip the history\n    // update in completeNavigation\n    if (state.navigation.state === \"idle\") {\n      startNavigation(state.historyAction, state.location, {\n        startUninterruptedRevalidation: true,\n      });\n      return;\n    }\n\n    // Otherwise, if we're currently in a loading state, just start a new\n    // navigation to the navigation.location but do not trigger an uninterrupted\n    // revalidation so that history correctly updates once the navigation completes\n    startNavigation(\n      pendingAction || state.historyAction,\n      state.navigation.location,\n      { overrideNavigation: state.navigation }\n    );\n  }\n\n  // Start a navigation to the given action/location.  Can optionally provide a\n  // overrideNavigation which will override the normalLoad in the case of a redirect\n  // navigation\n  async function startNavigation(\n    historyAction: HistoryAction,\n    location: Location,\n    opts?: {\n      submission?: Submission;\n      fetcherSubmission?: Submission;\n      overrideNavigation?: Navigation;\n      pendingError?: ErrorResponse;\n      startUninterruptedRevalidation?: boolean;\n      preventScrollReset?: boolean;\n      replace?: boolean;\n    }\n  ): Promise<void> {\n    // Abort any in-progress navigations and start a new one. Unset any ongoing\n    // uninterrupted revalidations unless told otherwise, since we want this\n    // new navigation to update history normally\n    pendingNavigationController && pendingNavigationController.abort();\n    pendingNavigationController = null;\n    pendingAction = historyAction;\n    isUninterruptedRevalidation =\n      (opts && opts.startUninterruptedRevalidation) === true;\n\n    // Save the current scroll position every time we start a new navigation,\n    // and track whether we should reset scroll on completion\n    saveScrollPosition(state.location, state.matches);\n    pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n    let routesToUse = inFlightDataRoutes || dataRoutes;\n    let loadingNavigation = opts && opts.overrideNavigation;\n    let matches = matchRoutes(routesToUse, location, basename);\n\n    // Short circuit with a 404 on the root error boundary if we match nothing\n    if (!matches) {\n      let error = getInternalRouterError(404, { pathname: location.pathname });\n      let { matches: notFoundMatches, route } =\n        getShortCircuitMatches(routesToUse);\n      // Cancel all pending deferred on 404s since we don't keep any routes\n      cancelActiveDeferreds();\n      completeNavigation(location, {\n        matches: notFoundMatches,\n        loaderData: {},\n        errors: {\n          [route.id]: error,\n        },\n      });\n      return;\n    }\n\n    // Short circuit if it's only a hash change and not a revalidation or\n    // mutation submission.\n    //\n    // Ignore on initial page loads because since the initial load will always\n    // be \"same hash\".  For example, on /page#hash and submit a <Form method=\"post\">\n    // which will default to a navigation to /page\n    if (\n      state.initialized &&\n      !isRevalidationRequired &&\n      isHashChangeOnly(state.location, location) &&\n      !(opts && opts.submission && isMutationMethod(opts.submission.formMethod))\n    ) {\n      completeNavigation(location, { matches });\n      return;\n    }\n\n    // Create a controller/Request for this navigation\n    pendingNavigationController = new AbortController();\n    let request = createClientSideRequest(\n      init.history,\n      location,\n      pendingNavigationController.signal,\n      opts && opts.submission\n    );\n    let pendingActionData: RouteData | undefined;\n    let pendingError: RouteData | undefined;\n\n    if (opts && opts.pendingError) {\n      // If we have a pendingError, it means the user attempted a GET submission\n      // with binary FormData so assign here and skip to handleLoaders.  That\n      // way we handle calling loaders above the boundary etc.  It's not really\n      // different from an actionError in that sense.\n      pendingError = {\n        [findNearestBoundary(matches).route.id]: opts.pendingError,\n      };\n    } else if (\n      opts &&\n      opts.submission &&\n      isMutationMethod(opts.submission.formMethod)\n    ) {\n      // Call action if we received an action submission\n      let actionOutput = await handleAction(\n        request,\n        location,\n        opts.submission,\n        matches,\n        { replace: opts.replace }\n      );\n\n      if (actionOutput.shortCircuited) {\n        return;\n      }\n\n      pendingActionData = actionOutput.pendingActionData;\n      pendingError = actionOutput.pendingActionError;\n      loadingNavigation = getLoadingNavigation(location, opts.submission);\n\n      // Create a GET request for the loaders\n      request = new Request(request.url, { signal: request.signal });\n    }\n\n    // Call loaders\n    let { shortCircuited, loaderData, errors } = await handleLoaders(\n      request,\n      location,\n      matches,\n      loadingNavigation,\n      opts && opts.submission,\n      opts && opts.fetcherSubmission,\n      opts && opts.replace,\n      pendingActionData,\n      pendingError\n    );\n\n    if (shortCircuited) {\n      return;\n    }\n\n    // Clean up now that the action/loaders have completed.  Don't clean up if\n    // we short circuited because pendingNavigationController will have already\n    // been assigned to a new controller for the next navigation\n    pendingNavigationController = null;\n\n    completeNavigation(location, {\n      matches,\n      ...(pendingActionData ? { actionData: pendingActionData } : {}),\n      loaderData,\n      errors,\n    });\n  }\n\n  // Call the action matched by the leaf route for this navigation and handle\n  // redirects/errors\n  async function handleAction(\n    request: Request,\n    location: Location,\n    submission: Submission,\n    matches: AgnosticDataRouteMatch[],\n    opts: { replace?: boolean } = {}\n  ): Promise<HandleActionResult> {\n    interruptActiveLoads();\n\n    // Put us in a submitting state\n    let navigation = getSubmittingNavigation(location, submission);\n    updateState({ navigation });\n\n    // Call our action and get the result\n    let result: DataResult;\n    let actionMatch = getTargetMatch(matches, location);\n\n    if (!actionMatch.route.action && !actionMatch.route.lazy) {\n      result = {\n        type: ResultType.error,\n        error: getInternalRouterError(405, {\n          method: request.method,\n          pathname: location.pathname,\n          routeId: actionMatch.route.id,\n        }),\n      };\n    } else {\n      result = await callLoaderOrAction(\n        \"action\",\n        request,\n        actionMatch,\n        matches,\n        manifest,\n        mapRouteProperties,\n        basename\n      );\n\n      if (request.signal.aborted) {\n        return { shortCircuited: true };\n      }\n    }\n\n    if (isRedirectResult(result)) {\n      let replace: boolean;\n      if (opts && opts.replace != null) {\n        replace = opts.replace;\n      } else {\n        // If the user didn't explicity indicate replace behavior, replace if\n        // we redirected to the exact same location we're currently at to avoid\n        // double back-buttons\n        replace =\n          result.location === state.location.pathname + state.location.search;\n      }\n      await startRedirectNavigation(state, result, { submission, replace });\n      return { shortCircuited: true };\n    }\n\n    if (isErrorResult(result)) {\n      // Store off the pending error - we use it to determine which loaders\n      // to call and will commit it when we complete the navigation\n      let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n\n      // By default, all submissions are REPLACE navigations, but if the\n      // action threw an error that'll be rendered in an errorElement, we fall\n      // back to PUSH so that the user can use the back button to get back to\n      // the pre-submission form location to try again\n      if ((opts && opts.replace) !== true) {\n        pendingAction = HistoryAction.Push;\n      }\n\n      return {\n        // Send back an empty object we can use to clear out any prior actionData\n        pendingActionData: {},\n        pendingActionError: { [boundaryMatch.route.id]: result.error },\n      };\n    }\n\n    if (isDeferredResult(result)) {\n      throw getInternalRouterError(400, { type: \"defer-action\" });\n    }\n\n    return {\n      pendingActionData: { [actionMatch.route.id]: result.data },\n    };\n  }\n\n  // Call all applicable loaders for the given matches, handling redirects,\n  // errors, etc.\n  async function handleLoaders(\n    request: Request,\n    location: Location,\n    matches: AgnosticDataRouteMatch[],\n    overrideNavigation?: Navigation,\n    submission?: Submission,\n    fetcherSubmission?: Submission,\n    replace?: boolean,\n    pendingActionData?: RouteData,\n    pendingError?: RouteData\n  ): Promise<HandleLoadersResult> {\n    // Figure out the right navigation we want to use for data loading\n    let loadingNavigation =\n      overrideNavigation || getLoadingNavigation(location, submission);\n\n    // If this was a redirect from an action we don't have a \"submission\" but\n    // we have it on the loading navigation so use that if available\n    let activeSubmission =\n      submission ||\n      fetcherSubmission ||\n      getSubmissionFromNavigation(loadingNavigation);\n\n    let routesToUse = inFlightDataRoutes || dataRoutes;\n    let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n      init.history,\n      state,\n      matches,\n      activeSubmission,\n      location,\n      isRevalidationRequired,\n      cancelledDeferredRoutes,\n      cancelledFetcherLoads,\n      fetchLoadMatches,\n      fetchRedirectIds,\n      routesToUse,\n      basename,\n      pendingActionData,\n      pendingError\n    );\n\n    // Cancel pending deferreds for no-longer-matched routes or routes we're\n    // about to reload.  Note that if this is an action reload we would have\n    // already cancelled all pending deferreds so this would be a no-op\n    cancelActiveDeferreds(\n      (routeId) =>\n        !(matches && matches.some((m) => m.route.id === routeId)) ||\n        (matchesToLoad && matchesToLoad.some((m) => m.route.id === routeId))\n    );\n\n    pendingNavigationLoadId = ++incrementingLoadId;\n\n    // Short circuit if we have no loaders to run\n    if (matchesToLoad.length === 0 && revalidatingFetchers.length === 0) {\n      let updatedFetchers = markFetchRedirectsDone();\n      completeNavigation(location, {\n        matches,\n        loaderData: {},\n        // Commit pending error if we're short circuiting\n        errors: pendingError || null,\n        ...(pendingActionData ? { actionData: pendingActionData } : {}),\n        ...(updatedFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n      });\n      return { shortCircuited: true };\n    }\n\n    // If this is an uninterrupted revalidation, we remain in our current idle\n    // state.  If not, we need to switch to our loading state and load data,\n    // preserving any new action data or existing action data (in the case of\n    // a revalidation interrupting an actionReload)\n    if (!isUninterruptedRevalidation) {\n      revalidatingFetchers.forEach((rf) => {\n        let fetcher = state.fetchers.get(rf.key);\n        let revalidatingFetcher = getLoadingFetcher(\n          undefined,\n          fetcher ? fetcher.data : undefined\n        );\n        state.fetchers.set(rf.key, revalidatingFetcher);\n      });\n      let actionData = pendingActionData || state.actionData;\n      updateState({\n        navigation: loadingNavigation,\n        ...(actionData\n          ? Object.keys(actionData).length === 0\n            ? { actionData: null }\n            : { actionData }\n          : {}),\n        ...(revalidatingFetchers.length > 0\n          ? { fetchers: new Map(state.fetchers) }\n          : {}),\n      });\n    }\n\n    revalidatingFetchers.forEach((rf) => {\n      if (fetchControllers.has(rf.key)) {\n        abortFetcher(rf.key);\n      }\n      if (rf.controller) {\n        // Fetchers use an independent AbortController so that aborting a fetcher\n        // (via deleteFetcher) does not abort the triggering navigation that\n        // triggered the revalidation\n        fetchControllers.set(rf.key, rf.controller);\n      }\n    });\n\n    // Proxy navigation abort through to revalidation fetchers\n    let abortPendingFetchRevalidations = () =>\n      revalidatingFetchers.forEach((f) => abortFetcher(f.key));\n    if (pendingNavigationController) {\n      pendingNavigationController.signal.addEventListener(\n        \"abort\",\n        abortPendingFetchRevalidations\n      );\n    }\n\n    let { results, loaderResults, fetcherResults } =\n      await callLoadersAndMaybeResolveData(\n        state.matches,\n        matches,\n        matchesToLoad,\n        revalidatingFetchers,\n        request\n      );\n\n    if (request.signal.aborted) {\n      return { shortCircuited: true };\n    }\n\n    // Clean up _after_ loaders have completed.  Don't clean up if we short\n    // circuited because fetchControllers would have been aborted and\n    // reassigned to new controllers for the next navigation\n    if (pendingNavigationController) {\n      pendingNavigationController.signal.removeEventListener(\n        \"abort\",\n        abortPendingFetchRevalidations\n      );\n    }\n    revalidatingFetchers.forEach((rf) => fetchControllers.delete(rf.key));\n\n    // If any loaders returned a redirect Response, start a new REPLACE navigation\n    let redirect = findRedirect(results);\n    if (redirect) {\n      if (redirect.idx >= matchesToLoad.length) {\n        // If this redirect came from a fetcher make sure we mark it in\n        // fetchRedirectIds so it doesn't get revalidated on the next set of\n        // loader executions\n        let fetcherKey =\n          revalidatingFetchers[redirect.idx - matchesToLoad.length].key;\n        fetchRedirectIds.add(fetcherKey);\n      }\n      await startRedirectNavigation(state, redirect.result, { replace });\n      return { shortCircuited: true };\n    }\n\n    // Process and commit output from loaders\n    let { loaderData, errors } = processLoaderData(\n      state,\n      matches,\n      matchesToLoad,\n      loaderResults,\n      pendingError,\n      revalidatingFetchers,\n      fetcherResults,\n      activeDeferreds\n    );\n\n    // Wire up subscribers to update loaderData as promises settle\n    activeDeferreds.forEach((deferredData, routeId) => {\n      deferredData.subscribe((aborted) => {\n        // Note: No need to updateState here since the TrackedPromise on\n        // loaderData is stable across resolve/reject\n        // Remove this instance if we were aborted or if promises have settled\n        if (aborted || deferredData.done) {\n          activeDeferreds.delete(routeId);\n        }\n      });\n    });\n\n    let updatedFetchers = markFetchRedirectsDone();\n    let didAbortFetchLoads = abortStaleFetchLoads(pendingNavigationLoadId);\n    let shouldUpdateFetchers =\n      updatedFetchers || didAbortFetchLoads || revalidatingFetchers.length > 0;\n\n    return {\n      loaderData,\n      errors,\n      ...(shouldUpdateFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n    };\n  }\n\n  function getFetcher<TData = any>(key: string): Fetcher<TData> {\n    return state.fetchers.get(key) || IDLE_FETCHER;\n  }\n\n  // Trigger a fetcher load/submit for the given fetcher key\n  function fetch(\n    key: string,\n    routeId: string,\n    href: string | null,\n    opts?: RouterFetchOptions\n  ) {\n    if (isServer) {\n      throw new Error(\n        \"router.fetch() was called during the server render, but it shouldn't be. \" +\n          \"You are likely calling a useFetcher() method in the body of your component. \" +\n          \"Try moving it to a useEffect or a callback.\"\n      );\n    }\n\n    if (fetchControllers.has(key)) abortFetcher(key);\n\n    let routesToUse = inFlightDataRoutes || dataRoutes;\n    let normalizedPath = normalizeTo(\n      state.location,\n      state.matches,\n      basename,\n      future.v7_prependBasename,\n      href,\n      routeId,\n      opts?.relative\n    );\n    let matches = matchRoutes(routesToUse, normalizedPath, basename);\n\n    if (!matches) {\n      setFetcherError(\n        key,\n        routeId,\n        getInternalRouterError(404, { pathname: normalizedPath })\n      );\n      return;\n    }\n\n    let { path, submission, error } = normalizeNavigateOptions(\n      future.v7_normalizeFormMethod,\n      true,\n      normalizedPath,\n      opts\n    );\n\n    if (error) {\n      setFetcherError(key, routeId, error);\n      return;\n    }\n\n    let match = getTargetMatch(matches, path);\n\n    pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n    if (submission && isMutationMethod(submission.formMethod)) {\n      handleFetcherAction(key, routeId, path, match, matches, submission);\n      return;\n    }\n\n    // Store off the match so we can call it's shouldRevalidate on subsequent\n    // revalidations\n    fetchLoadMatches.set(key, { routeId, path });\n    handleFetcherLoader(key, routeId, path, match, matches, submission);\n  }\n\n  // Call the action for the matched fetcher.submit(), and then handle redirects,\n  // errors, and revalidation\n  async function handleFetcherAction(\n    key: string,\n    routeId: string,\n    path: string,\n    match: AgnosticDataRouteMatch,\n    requestMatches: AgnosticDataRouteMatch[],\n    submission: Submission\n  ) {\n    interruptActiveLoads();\n    fetchLoadMatches.delete(key);\n\n    if (!match.route.action && !match.route.lazy) {\n      let error = getInternalRouterError(405, {\n        method: submission.formMethod,\n        pathname: path,\n        routeId: routeId,\n      });\n      setFetcherError(key, routeId, error);\n      return;\n    }\n\n    // Put this fetcher into it's submitting state\n    let existingFetcher = state.fetchers.get(key);\n    let fetcher = getSubmittingFetcher(submission, existingFetcher);\n    state.fetchers.set(key, fetcher);\n    updateState({ fetchers: new Map(state.fetchers) });\n\n    // Call the action for the fetcher\n    let abortController = new AbortController();\n    let fetchRequest = createClientSideRequest(\n      init.history,\n      path,\n      abortController.signal,\n      submission\n    );\n    fetchControllers.set(key, abortController);\n\n    let originatingLoadId = incrementingLoadId;\n    let actionResult = await callLoaderOrAction(\n      \"action\",\n      fetchRequest,\n      match,\n      requestMatches,\n      manifest,\n      mapRouteProperties,\n      basename\n    );\n\n    if (fetchRequest.signal.aborted) {\n      // We can delete this so long as we weren't aborted by ou our own fetcher\n      // re-submit which would have put _new_ controller is in fetchControllers\n      if (fetchControllers.get(key) === abortController) {\n        fetchControllers.delete(key);\n      }\n      return;\n    }\n\n    if (isRedirectResult(actionResult)) {\n      fetchControllers.delete(key);\n      if (pendingNavigationLoadId > originatingLoadId) {\n        // A new navigation was kicked off after our action started, so that\n        // should take precedence over this redirect navigation.  We already\n        // set isRevalidationRequired so all loaders for the new route should\n        // fire unless opted out via shouldRevalidate\n        let doneFetcher = getDoneFetcher(undefined);\n        state.fetchers.set(key, doneFetcher);\n        updateState({ fetchers: new Map(state.fetchers) });\n        return;\n      } else {\n        fetchRedirectIds.add(key);\n        let loadingFetcher = getLoadingFetcher(submission);\n        state.fetchers.set(key, loadingFetcher);\n        updateState({ fetchers: new Map(state.fetchers) });\n\n        return startRedirectNavigation(state, actionResult, {\n          submission,\n          isFetchActionRedirect: true,\n        });\n      }\n    }\n\n    // Process any non-redirect errors thrown\n    if (isErrorResult(actionResult)) {\n      setFetcherError(key, routeId, actionResult.error);\n      return;\n    }\n\n    if (isDeferredResult(actionResult)) {\n      throw getInternalRouterError(400, { type: \"defer-action\" });\n    }\n\n    // Start the data load for current matches, or the next location if we're\n    // in the middle of a navigation\n    let nextLocation = state.navigation.location || state.location;\n    let revalidationRequest = createClientSideRequest(\n      init.history,\n      nextLocation,\n      abortController.signal\n    );\n    let routesToUse = inFlightDataRoutes || dataRoutes;\n    let matches =\n      state.navigation.state !== \"idle\"\n        ? matchRoutes(routesToUse, state.navigation.location, basename)\n        : state.matches;\n\n    invariant(matches, \"Didn't find any matches after fetcher action\");\n\n    let loadId = ++incrementingLoadId;\n    fetchReloadIds.set(key, loadId);\n\n    let loadFetcher = getLoadingFetcher(submission, actionResult.data);\n    state.fetchers.set(key, loadFetcher);\n\n    let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n      init.history,\n      state,\n      matches,\n      submission,\n      nextLocation,\n      isRevalidationRequired,\n      cancelledDeferredRoutes,\n      cancelledFetcherLoads,\n      fetchLoadMatches,\n      fetchRedirectIds,\n      routesToUse,\n      basename,\n      { [match.route.id]: actionResult.data },\n      undefined // No need to send through errors since we short circuit above\n    );\n\n    // Put all revalidating fetchers into the loading state, except for the\n    // current fetcher which we want to keep in it's current loading state which\n    // contains it's action submission info + action data\n    revalidatingFetchers\n      .filter((rf) => rf.key !== key)\n      .forEach((rf) => {\n        let staleKey = rf.key;\n        let existingFetcher = state.fetchers.get(staleKey);\n        let revalidatingFetcher = getLoadingFetcher(\n          undefined,\n          existingFetcher ? existingFetcher.data : undefined\n        );\n        state.fetchers.set(staleKey, revalidatingFetcher);\n        if (fetchControllers.has(staleKey)) {\n          abortFetcher(staleKey);\n        }\n        if (rf.controller) {\n          fetchControllers.set(staleKey, rf.controller);\n        }\n      });\n\n    updateState({ fetchers: new Map(state.fetchers) });\n\n    let abortPendingFetchRevalidations = () =>\n      revalidatingFetchers.forEach((rf) => abortFetcher(rf.key));\n\n    abortController.signal.addEventListener(\n      \"abort\",\n      abortPendingFetchRevalidations\n    );\n\n    let { results, loaderResults, fetcherResults } =\n      await callLoadersAndMaybeResolveData(\n        state.matches,\n        matches,\n        matchesToLoad,\n        revalidatingFetchers,\n        revalidationRequest\n      );\n\n    if (abortController.signal.aborted) {\n      return;\n    }\n\n    abortController.signal.removeEventListener(\n      \"abort\",\n      abortPendingFetchRevalidations\n    );\n\n    fetchReloadIds.delete(key);\n    fetchControllers.delete(key);\n    revalidatingFetchers.forEach((r) => fetchControllers.delete(r.key));\n\n    let redirect = findRedirect(results);\n    if (redirect) {\n      if (redirect.idx >= matchesToLoad.length) {\n        // If this redirect came from a fetcher make sure we mark it in\n        // fetchRedirectIds so it doesn't get revalidated on the next set of\n        // loader executions\n        let fetcherKey =\n          revalidatingFetchers[redirect.idx - matchesToLoad.length].key;\n        fetchRedirectIds.add(fetcherKey);\n      }\n      return startRedirectNavigation(state, redirect.result);\n    }\n\n    // Process and commit output from loaders\n    let { loaderData, errors } = processLoaderData(\n      state,\n      state.matches,\n      matchesToLoad,\n      loaderResults,\n      undefined,\n      revalidatingFetchers,\n      fetcherResults,\n      activeDeferreds\n    );\n\n    // Since we let revalidations complete even if the submitting fetcher was\n    // deleted, only put it back to idle if it hasn't been deleted\n    if (state.fetchers.has(key)) {\n      let doneFetcher = getDoneFetcher(actionResult.data);\n      state.fetchers.set(key, doneFetcher);\n    }\n\n    let didAbortFetchLoads = abortStaleFetchLoads(loadId);\n\n    // If we are currently in a navigation loading state and this fetcher is\n    // more recent than the navigation, we want the newer data so abort the\n    // navigation and complete it with the fetcher data\n    if (\n      state.navigation.state === \"loading\" &&\n      loadId > pendingNavigationLoadId\n    ) {\n      invariant(pendingAction, \"Expected pending action\");\n      pendingNavigationController && pendingNavigationController.abort();\n\n      completeNavigation(state.navigation.location, {\n        matches,\n        loaderData,\n        errors,\n        fetchers: new Map(state.fetchers),\n      });\n    } else {\n      // otherwise just update with the fetcher data, preserving any existing\n      // loaderData for loaders that did not need to reload.  We have to\n      // manually merge here since we aren't going through completeNavigation\n      updateState({\n        errors,\n        loaderData: mergeLoaderData(\n          state.loaderData,\n          loaderData,\n          matches,\n          errors\n        ),\n        ...(didAbortFetchLoads || revalidatingFetchers.length > 0\n          ? { fetchers: new Map(state.fetchers) }\n          : {}),\n      });\n      isRevalidationRequired = false;\n    }\n  }\n\n  // Call the matched loader for fetcher.load(), handling redirects, errors, etc.\n  async function handleFetcherLoader(\n    key: string,\n    routeId: string,\n    path: string,\n    match: AgnosticDataRouteMatch,\n    matches: AgnosticDataRouteMatch[],\n    submission?: Submission\n  ) {\n    let existingFetcher = state.fetchers.get(key);\n    // Put this fetcher into it's loading state\n    let loadingFetcher = getLoadingFetcher(\n      submission,\n      existingFetcher ? existingFetcher.data : undefined\n    );\n    state.fetchers.set(key, loadingFetcher);\n    updateState({ fetchers: new Map(state.fetchers) });\n\n    // Call the loader for this fetcher route match\n    let abortController = new AbortController();\n    let fetchRequest = createClientSideRequest(\n      init.history,\n      path,\n      abortController.signal\n    );\n    fetchControllers.set(key, abortController);\n\n    let originatingLoadId = incrementingLoadId;\n    let result: DataResult = await callLoaderOrAction(\n      \"loader\",\n      fetchRequest,\n      match,\n      matches,\n      manifest,\n      mapRouteProperties,\n      basename\n    );\n\n    // Deferred isn't supported for fetcher loads, await everything and treat it\n    // as a normal load.  resolveDeferredData will return undefined if this\n    // fetcher gets aborted, so we just leave result untouched and short circuit\n    // below if that happens\n    if (isDeferredResult(result)) {\n      result =\n        (await resolveDeferredData(result, fetchRequest.signal, true)) ||\n        result;\n    }\n\n    // We can delete this so long as we weren't aborted by our our own fetcher\n    // re-load which would have put _new_ controller is in fetchControllers\n    if (fetchControllers.get(key) === abortController) {\n      fetchControllers.delete(key);\n    }\n\n    if (fetchRequest.signal.aborted) {\n      return;\n    }\n\n    // If the loader threw a redirect Response, start a new REPLACE navigation\n    if (isRedirectResult(result)) {\n      if (pendingNavigationLoadId > originatingLoadId) {\n        // A new navigation was kicked off after our loader started, so that\n        // should take precedence over this redirect navigation\n        let doneFetcher = getDoneFetcher(undefined);\n        state.fetchers.set(key, doneFetcher);\n        updateState({ fetchers: new Map(state.fetchers) });\n        return;\n      } else {\n        fetchRedirectIds.add(key);\n        await startRedirectNavigation(state, result);\n        return;\n      }\n    }\n\n    // Process any non-redirect errors thrown\n    if (isErrorResult(result)) {\n      let boundaryMatch = findNearestBoundary(state.matches, routeId);\n      state.fetchers.delete(key);\n      // TODO: In remix, this would reset to IDLE_NAVIGATION if it was a catch -\n      // do we need to behave any differently with our non-redirect errors?\n      // What if it was a non-redirect Response?\n      updateState({\n        fetchers: new Map(state.fetchers),\n        errors: {\n          [boundaryMatch.route.id]: result.error,\n        },\n      });\n      return;\n    }\n\n    invariant(!isDeferredResult(result), \"Unhandled fetcher deferred data\");\n\n    // Put the fetcher back into an idle state\n    let doneFetcher = getDoneFetcher(result.data);\n    state.fetchers.set(key, doneFetcher);\n    updateState({ fetchers: new Map(state.fetchers) });\n  }\n\n  /**\n   * Utility function to handle redirects returned from an action or loader.\n   * Normally, a redirect \"replaces\" the navigation that triggered it.  So, for\n   * example:\n   *\n   *  - user is on /a\n   *  - user clicks a link to /b\n   *  - loader for /b redirects to /c\n   *\n   * In a non-JS app the browser would track the in-flight navigation to /b and\n   * then replace it with /c when it encountered the redirect response.  In\n   * the end it would only ever update the URL bar with /c.\n   *\n   * In client-side routing using pushState/replaceState, we aim to emulate\n   * this behavior and we also do not update history until the end of the\n   * navigation (including processed redirects).  This means that we never\n   * actually touch history until we've processed redirects, so we just use\n   * the history action from the original navigation (PUSH or REPLACE).\n   */\n  async function startRedirectNavigation(\n    state: RouterState,\n    redirect: RedirectResult,\n    {\n      submission,\n      replace,\n      isFetchActionRedirect,\n    }: {\n      submission?: Submission;\n      replace?: boolean;\n      isFetchActionRedirect?: boolean;\n    } = {}\n  ) {\n    if (redirect.revalidate) {\n      isRevalidationRequired = true;\n    }\n\n    let redirectLocation = createLocation(\n      state.location,\n      redirect.location,\n      // TODO: This can be removed once we get rid of useTransition in Remix v2\n      {\n        _isRedirect: true,\n        ...(isFetchActionRedirect ? { _isFetchActionRedirect: true } : {}),\n      }\n    );\n    invariant(\n      redirectLocation,\n      \"Expected a location on the redirect navigation\"\n    );\n    // Check if this an absolute external redirect that goes to a new origin\n    if (ABSOLUTE_URL_REGEX.test(redirect.location) && isBrowser) {\n      let url = init.history.createURL(redirect.location);\n      let isDifferentBasename = stripBasename(url.pathname, basename) == null;\n\n      if (routerWindow.location.origin !== url.origin || isDifferentBasename) {\n        if (replace) {\n          routerWindow.location.replace(redirect.location);\n        } else {\n          routerWindow.location.assign(redirect.location);\n        }\n        return;\n      }\n    }\n\n    // There's no need to abort on redirects, since we don't detect the\n    // redirect until the action/loaders have settled\n    pendingNavigationController = null;\n\n    let redirectHistoryAction =\n      replace === true ? HistoryAction.Replace : HistoryAction.Push;\n\n    // Use the incoming submission if provided, fallback on the active one in\n    // state.navigation\n    let activeSubmission =\n      submission || getSubmissionFromNavigation(state.navigation);\n\n    // If this was a 307/308 submission we want to preserve the HTTP method and\n    // re-submit the GET/POST/PUT/PATCH/DELETE as a submission navigation to the\n    // redirected location\n    if (\n      redirectPreserveMethodStatusCodes.has(redirect.status) &&\n      activeSubmission &&\n      isMutationMethod(activeSubmission.formMethod)\n    ) {\n      await startNavigation(redirectHistoryAction, redirectLocation, {\n        submission: {\n          ...activeSubmission,\n          formAction: redirect.location,\n        },\n        // Preserve this flag across redirects\n        preventScrollReset: pendingPreventScrollReset,\n      });\n    } else if (isFetchActionRedirect) {\n      // For a fetch action redirect, we kick off a new loading navigation\n      // without the fetcher submission, but we send it along for shouldRevalidate\n      await startNavigation(redirectHistoryAction, redirectLocation, {\n        overrideNavigation: getLoadingNavigation(redirectLocation),\n        fetcherSubmission: activeSubmission,\n        // Preserve this flag across redirects\n        preventScrollReset: pendingPreventScrollReset,\n      });\n    } else {\n      // If we have a submission, we will preserve it through the redirect navigation\n      let overrideNavigation = getLoadingNavigation(\n        redirectLocation,\n        activeSubmission\n      );\n      await startNavigation(redirectHistoryAction, redirectLocation, {\n        overrideNavigation,\n        // Preserve this flag across redirects\n        preventScrollReset: pendingPreventScrollReset,\n      });\n    }\n  }\n\n  async function callLoadersAndMaybeResolveData(\n    currentMatches: AgnosticDataRouteMatch[],\n    matches: AgnosticDataRouteMatch[],\n    matchesToLoad: AgnosticDataRouteMatch[],\n    fetchersToLoad: RevalidatingFetcher[],\n    request: Request\n  ) {\n    // Call all navigation loaders and revalidating fetcher loaders in parallel,\n    // then slice off the results into separate arrays so we can handle them\n    // accordingly\n    let results = await Promise.all([\n      ...matchesToLoad.map((match) =>\n        callLoaderOrAction(\n          \"loader\",\n          request,\n          match,\n          matches,\n          manifest,\n          mapRouteProperties,\n          basename\n        )\n      ),\n      ...fetchersToLoad.map((f) => {\n        if (f.matches && f.match && f.controller) {\n          return callLoaderOrAction(\n            \"loader\",\n            createClientSideRequest(init.history, f.path, f.controller.signal),\n            f.match,\n            f.matches,\n            manifest,\n            mapRouteProperties,\n            basename\n          );\n        } else {\n          let error: ErrorResult = {\n            type: ResultType.error,\n            error: getInternalRouterError(404, { pathname: f.path }),\n          };\n          return error;\n        }\n      }),\n    ]);\n    let loaderResults = results.slice(0, matchesToLoad.length);\n    let fetcherResults = results.slice(matchesToLoad.length);\n\n    await Promise.all([\n      resolveDeferredResults(\n        currentMatches,\n        matchesToLoad,\n        loaderResults,\n        loaderResults.map(() => request.signal),\n        false,\n        state.loaderData\n      ),\n      resolveDeferredResults(\n        currentMatches,\n        fetchersToLoad.map((f) => f.match),\n        fetcherResults,\n        fetchersToLoad.map((f) => (f.controller ? f.controller.signal : null)),\n        true\n      ),\n    ]);\n\n    return { results, loaderResults, fetcherResults };\n  }\n\n  function interruptActiveLoads() {\n    // Every interruption triggers a revalidation\n    isRevalidationRequired = true;\n\n    // Cancel pending route-level deferreds and mark cancelled routes for\n    // revalidation\n    cancelledDeferredRoutes.push(...cancelActiveDeferreds());\n\n    // Abort in-flight fetcher loads\n    fetchLoadMatches.forEach((_, key) => {\n      if (fetchControllers.has(key)) {\n        cancelledFetcherLoads.push(key);\n        abortFetcher(key);\n      }\n    });\n  }\n\n  function setFetcherError(key: string, routeId: string, error: any) {\n    let boundaryMatch = findNearestBoundary(state.matches, routeId);\n    deleteFetcher(key);\n    updateState({\n      errors: {\n        [boundaryMatch.route.id]: error,\n      },\n      fetchers: new Map(state.fetchers),\n    });\n  }\n\n  function deleteFetcher(key: string): void {\n    let fetcher = state.fetchers.get(key);\n    // Don't abort the controller if this is a deletion of a fetcher.submit()\n    // in it's loading phase since - we don't want to abort the corresponding\n    // revalidation and want them to complete and land\n    if (\n      fetchControllers.has(key) &&\n      !(fetcher && fetcher.state === \"loading\" && fetchReloadIds.has(key))\n    ) {\n      abortFetcher(key);\n    }\n    fetchLoadMatches.delete(key);\n    fetchReloadIds.delete(key);\n    fetchRedirectIds.delete(key);\n    state.fetchers.delete(key);\n  }\n\n  function abortFetcher(key: string) {\n    let controller = fetchControllers.get(key);\n    invariant(controller, `Expected fetch controller: ${key}`);\n    controller.abort();\n    fetchControllers.delete(key);\n  }\n\n  function markFetchersDone(keys: string[]) {\n    for (let key of keys) {\n      let fetcher = getFetcher(key);\n      let doneFetcher = getDoneFetcher(fetcher.data);\n      state.fetchers.set(key, doneFetcher);\n    }\n  }\n\n  function markFetchRedirectsDone(): boolean {\n    let doneKeys = [];\n    let updatedFetchers = false;\n    for (let key of fetchRedirectIds) {\n      let fetcher = state.fetchers.get(key);\n      invariant(fetcher, `Expected fetcher: ${key}`);\n      if (fetcher.state === \"loading\") {\n        fetchRedirectIds.delete(key);\n        doneKeys.push(key);\n        updatedFetchers = true;\n      }\n    }\n    markFetchersDone(doneKeys);\n    return updatedFetchers;\n  }\n\n  function abortStaleFetchLoads(landedId: number): boolean {\n    let yeetedKeys = [];\n    for (let [key, id] of fetchReloadIds) {\n      if (id < landedId) {\n        let fetcher = state.fetchers.get(key);\n        invariant(fetcher, `Expected fetcher: ${key}`);\n        if (fetcher.state === \"loading\") {\n          abortFetcher(key);\n          fetchReloadIds.delete(key);\n          yeetedKeys.push(key);\n        }\n      }\n    }\n    markFetchersDone(yeetedKeys);\n    return yeetedKeys.length > 0;\n  }\n\n  function getBlocker(key: string, fn: BlockerFunction) {\n    let blocker: Blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n    if (blockerFunctions.get(key) !== fn) {\n      blockerFunctions.set(key, fn);\n    }\n\n    return blocker;\n  }\n\n  function deleteBlocker(key: string) {\n    state.blockers.delete(key);\n    blockerFunctions.delete(key);\n  }\n\n  // Utility function to update blockers, ensuring valid state transitions\n  function updateBlocker(key: string, newBlocker: Blocker) {\n    let blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n    // Poor mans state machine :)\n    // https://mermaid.live/edit#pako:eNqVkc9OwzAMxl8l8nnjAYrEtDIOHEBIgwvKJTReGy3_lDpIqO27k6awMG0XcrLlnz87nwdonESogKXXBuE79rq75XZO3-yHds0RJVuv70YrPlUrCEe2HfrORS3rubqZfuhtpg5C9wk5tZ4VKcRUq88q9Z8RS0-48cE1iHJkL0ugbHuFLus9L6spZy8nX9MP2CNdomVaposqu3fGayT8T8-jJQwhepo_UtpgBQaDEUom04dZhAN1aJBDlUKJBxE1ceB2Smj0Mln-IBW5AFU2dwUiktt_2Qaq2dBfaKdEup85UV7Yd-dKjlnkabl2Pvr0DTkTreM\n    invariant(\n      (blocker.state === \"unblocked\" && newBlocker.state === \"blocked\") ||\n        (blocker.state === \"blocked\" && newBlocker.state === \"blocked\") ||\n        (blocker.state === \"blocked\" && newBlocker.state === \"proceeding\") ||\n        (blocker.state === \"blocked\" && newBlocker.state === \"unblocked\") ||\n        (blocker.state === \"proceeding\" && newBlocker.state === \"unblocked\"),\n      `Invalid blocker state transition: ${blocker.state} -> ${newBlocker.state}`\n    );\n\n    let blockers = new Map(state.blockers);\n    blockers.set(key, newBlocker);\n    updateState({ blockers });\n  }\n\n  function shouldBlockNavigation({\n    currentLocation,\n    nextLocation,\n    historyAction,\n  }: {\n    currentLocation: Location;\n    nextLocation: Location;\n    historyAction: HistoryAction;\n  }): string | undefined {\n    if (blockerFunctions.size === 0) {\n      return;\n    }\n\n    // We ony support a single active blocker at the moment since we don't have\n    // any compelling use cases for multi-blocker yet\n    if (blockerFunctions.size > 1) {\n      warning(false, \"A router only supports one blocker at a time\");\n    }\n\n    let entries = Array.from(blockerFunctions.entries());\n    let [blockerKey, blockerFunction] = entries[entries.length - 1];\n    let blocker = state.blockers.get(blockerKey);\n\n    if (blocker && blocker.state === \"proceeding\") {\n      // If the blocker is currently proceeding, we don't need to re-check\n      // it and can let this navigation continue\n      return;\n    }\n\n    // At this point, we know we're unblocked/blocked so we need to check the\n    // user-provided blocker function\n    if (blockerFunction({ currentLocation, nextLocation, historyAction })) {\n      return blockerKey;\n    }\n  }\n\n  function cancelActiveDeferreds(\n    predicate?: (routeId: string) => boolean\n  ): string[] {\n    let cancelledRouteIds: string[] = [];\n    activeDeferreds.forEach((dfd, routeId) => {\n      if (!predicate || predicate(routeId)) {\n        // Cancel the deferred - but do not remove from activeDeferreds here -\n        // we rely on the subscribers to do that so our tests can assert proper\n        // cleanup via _internalActiveDeferreds\n        dfd.cancel();\n        cancelledRouteIds.push(routeId);\n        activeDeferreds.delete(routeId);\n      }\n    });\n    return cancelledRouteIds;\n  }\n\n  // Opt in to capturing and reporting scroll positions during navigations,\n  // used by the <ScrollRestoration> component\n  function enableScrollRestoration(\n    positions: Record<string, number>,\n    getPosition: GetScrollPositionFunction,\n    getKey?: GetScrollRestorationKeyFunction\n  ) {\n    savedScrollPositions = positions;\n    getScrollPosition = getPosition;\n    getScrollRestorationKey = getKey || null;\n\n    // Perform initial hydration scroll restoration, since we miss the boat on\n    // the initial updateState() because we've not yet rendered <ScrollRestoration/>\n    // and therefore have no savedScrollPositions available\n    if (!initialScrollRestored && state.navigation === IDLE_NAVIGATION) {\n      initialScrollRestored = true;\n      let y = getSavedScrollPosition(state.location, state.matches);\n      if (y != null) {\n        updateState({ restoreScrollPosition: y });\n      }\n    }\n\n    return () => {\n      savedScrollPositions = null;\n      getScrollPosition = null;\n      getScrollRestorationKey = null;\n    };\n  }\n\n  function getScrollKey(location: Location, matches: AgnosticDataRouteMatch[]) {\n    if (getScrollRestorationKey) {\n      let key = getScrollRestorationKey(\n        location,\n        matches.map((m) => createUseMatchesMatch(m, state.loaderData))\n      );\n      return key || location.key;\n    }\n    return location.key;\n  }\n\n  function saveScrollPosition(\n    location: Location,\n    matches: AgnosticDataRouteMatch[]\n  ): void {\n    if (savedScrollPositions && getScrollPosition) {\n      let key = getScrollKey(location, matches);\n      savedScrollPositions[key] = getScrollPosition();\n    }\n  }\n\n  function getSavedScrollPosition(\n    location: Location,\n    matches: AgnosticDataRouteMatch[]\n  ): number | null {\n    if (savedScrollPositions) {\n      let key = getScrollKey(location, matches);\n      let y = savedScrollPositions[key];\n      if (typeof y === \"number\") {\n        return y;\n      }\n    }\n    return null;\n  }\n\n  function _internalSetRoutes(newRoutes: AgnosticDataRouteObject[]) {\n    manifest = {};\n    inFlightDataRoutes = convertRoutesToDataRoutes(\n      newRoutes,\n      mapRouteProperties,\n      undefined,\n      manifest\n    );\n  }\n\n  router = {\n    get basename() {\n      return basename;\n    },\n    get state() {\n      return state;\n    },\n    get routes() {\n      return dataRoutes;\n    },\n    initialize,\n    subscribe,\n    enableScrollRestoration,\n    navigate,\n    fetch,\n    revalidate,\n    // Passthrough to history-aware createHref used by useHref so we get proper\n    // hash-aware URLs in DOM paths\n    createHref: (to: To) => init.history.createHref(to),\n    encodeLocation: (to: To) => init.history.encodeLocation(to),\n    getFetcher,\n    deleteFetcher,\n    dispose,\n    getBlocker,\n    deleteBlocker,\n    _internalFetchControllers: fetchControllers,\n    _internalActiveDeferreds: activeDeferreds,\n    // TODO: Remove setRoutes, it's temporary to avoid dealing with\n    // updating the tree while validating the update algorithm.\n    _internalSetRoutes,\n  };\n\n  return router;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createStaticHandler\n////////////////////////////////////////////////////////////////////////////////\n\nexport const UNSAFE_DEFERRED_SYMBOL = Symbol(\"deferred\");\n\nexport interface CreateStaticHandlerOptions {\n  basename?: string;\n  /**\n   * @deprecated Use `mapRouteProperties` instead\n   */\n  detectErrorBoundary?: DetectErrorBoundaryFunction;\n  mapRouteProperties?: MapRoutePropertiesFunction;\n}\n\nexport function createStaticHandler(\n  routes: AgnosticRouteObject[],\n  opts?: CreateStaticHandlerOptions\n): StaticHandler {\n  invariant(\n    routes.length > 0,\n    \"You must provide a non-empty routes array to createStaticHandler\"\n  );\n\n  let manifest: RouteManifest = {};\n  let basename = (opts ? opts.basename : null) || \"/\";\n  let mapRouteProperties: MapRoutePropertiesFunction;\n  if (opts?.mapRouteProperties) {\n    mapRouteProperties = opts.mapRouteProperties;\n  } else if (opts?.detectErrorBoundary) {\n    // If they are still using the deprecated version, wrap it with the new API\n    let detectErrorBoundary = opts.detectErrorBoundary;\n    mapRouteProperties = (route) => ({\n      hasErrorBoundary: detectErrorBoundary(route),\n    });\n  } else {\n    mapRouteProperties = defaultMapRouteProperties;\n  }\n\n  let dataRoutes = convertRoutesToDataRoutes(\n    routes,\n    mapRouteProperties,\n    undefined,\n    manifest\n  );\n\n  /**\n   * The query() method is intended for document requests, in which we want to\n   * call an optional action and potentially multiple loaders for all nested\n   * routes.  It returns a StaticHandlerContext object, which is very similar\n   * to the router state (location, loaderData, actionData, errors, etc.) and\n   * also adds SSR-specific information such as the statusCode and headers\n   * from action/loaders Responses.\n   *\n   * It _should_ never throw and should report all errors through the\n   * returned context.errors object, properly associating errors to their error\n   * boundary.  Additionally, it tracks _deepestRenderedBoundaryId which can be\n   * used to emulate React error boundaries during SSr by performing a second\n   * pass only down to the boundaryId.\n   *\n   * The one exception where we do not return a StaticHandlerContext is when a\n   * redirect response is returned or thrown from any action/loader.  We\n   * propagate that out and return the raw Response so the HTTP server can\n   * return it directly.\n   */\n  async function query(\n    request: Request,\n    { requestContext }: { requestContext?: unknown } = {}\n  ): Promise<StaticHandlerContext | Response> {\n    let url = new URL(request.url);\n    let method = request.method;\n    let location = createLocation(\"\", createPath(url), null, \"default\");\n    let matches = matchRoutes(dataRoutes, location, basename);\n\n    // SSR supports HEAD requests while SPA doesn't\n    if (!isValidMethod(method) && method !== \"HEAD\") {\n      let error = getInternalRouterError(405, { method });\n      let { matches: methodNotAllowedMatches, route } =\n        getShortCircuitMatches(dataRoutes);\n      return {\n        basename,\n        location,\n        matches: methodNotAllowedMatches,\n        loaderData: {},\n        actionData: null,\n        errors: {\n          [route.id]: error,\n        },\n        statusCode: error.status,\n        loaderHeaders: {},\n        actionHeaders: {},\n        activeDeferreds: null,\n      };\n    } else if (!matches) {\n      let error = getInternalRouterError(404, { pathname: location.pathname });\n      let { matches: notFoundMatches, route } =\n        getShortCircuitMatches(dataRoutes);\n      return {\n        basename,\n        location,\n        matches: notFoundMatches,\n        loaderData: {},\n        actionData: null,\n        errors: {\n          [route.id]: error,\n        },\n        statusCode: error.status,\n        loaderHeaders: {},\n        actionHeaders: {},\n        activeDeferreds: null,\n      };\n    }\n\n    let result = await queryImpl(request, location, matches, requestContext);\n    if (isResponse(result)) {\n      return result;\n    }\n\n    // When returning StaticHandlerContext, we patch back in the location here\n    // since we need it for React Context.  But this helps keep our submit and\n    // loadRouteData operating on a Request instead of a Location\n    return { location, basename, ...result };\n  }\n\n  /**\n   * The queryRoute() method is intended for targeted route requests, either\n   * for fetch ?_data requests or resource route requests.  In this case, we\n   * are only ever calling a single action or loader, and we are returning the\n   * returned value directly.  In most cases, this will be a Response returned\n   * from the action/loader, but it may be a primitive or other value as well -\n   * and in such cases the calling context should handle that accordingly.\n   *\n   * We do respect the throw/return differentiation, so if an action/loader\n   * throws, then this method will throw the value.  This is important so we\n   * can do proper boundary identification in Remix where a thrown Response\n   * must go to the Catch Boundary but a returned Response is happy-path.\n   *\n   * One thing to note is that any Router-initiated Errors that make sense\n   * to associate with a status code will be thrown as an ErrorResponse\n   * instance which include the raw Error, such that the calling context can\n   * serialize the error as they see fit while including the proper response\n   * code.  Examples here are 404 and 405 errors that occur prior to reaching\n   * any user-defined loaders.\n   */\n  async function queryRoute(\n    request: Request,\n    {\n      routeId,\n      requestContext,\n    }: { requestContext?: unknown; routeId?: string } = {}\n  ): Promise<any> {\n    let url = new URL(request.url);\n    let method = request.method;\n    let location = createLocation(\"\", createPath(url), null, \"default\");\n    let matches = matchRoutes(dataRoutes, location, basename);\n\n    // SSR supports HEAD requests while SPA doesn't\n    if (!isValidMethod(method) && method !== \"HEAD\" && method !== \"OPTIONS\") {\n      throw getInternalRouterError(405, { method });\n    } else if (!matches) {\n      throw getInternalRouterError(404, { pathname: location.pathname });\n    }\n\n    let match = routeId\n      ? matches.find((m) => m.route.id === routeId)\n      : getTargetMatch(matches, location);\n\n    if (routeId && !match) {\n      throw getInternalRouterError(403, {\n        pathname: location.pathname,\n        routeId,\n      });\n    } else if (!match) {\n      // This should never hit I don't think?\n      throw getInternalRouterError(404, { pathname: location.pathname });\n    }\n\n    let result = await queryImpl(\n      request,\n      location,\n      matches,\n      requestContext,\n      match\n    );\n    if (isResponse(result)) {\n      return result;\n    }\n\n    let error = result.errors ? Object.values(result.errors)[0] : undefined;\n    if (error !== undefined) {\n      // If we got back result.errors, that means the loader/action threw\n      // _something_ that wasn't a Response, but it's not guaranteed/required\n      // to be an `instanceof Error` either, so we have to use throw here to\n      // preserve the \"error\" state outside of queryImpl.\n      throw error;\n    }\n\n    // Pick off the right state value to return\n    if (result.actionData) {\n      return Object.values(result.actionData)[0];\n    }\n\n    if (result.loaderData) {\n      let data = Object.values(result.loaderData)[0];\n      if (result.activeDeferreds?.[match.route.id]) {\n        data[UNSAFE_DEFERRED_SYMBOL] = result.activeDeferreds[match.route.id];\n      }\n      return data;\n    }\n\n    return undefined;\n  }\n\n  async function queryImpl(\n    request: Request,\n    location: Location,\n    matches: AgnosticDataRouteMatch[],\n    requestContext: unknown,\n    routeMatch?: AgnosticDataRouteMatch\n  ): Promise<Omit<StaticHandlerContext, \"location\" | \"basename\"> | Response> {\n    invariant(\n      request.signal,\n      \"query()/queryRoute() requests must contain an AbortController signal\"\n    );\n\n    try {\n      if (isMutationMethod(request.method.toLowerCase())) {\n        let result = await submit(\n          request,\n          matches,\n          routeMatch || getTargetMatch(matches, location),\n          requestContext,\n          routeMatch != null\n        );\n        return result;\n      }\n\n      let result = await loadRouteData(\n        request,\n        matches,\n        requestContext,\n        routeMatch\n      );\n      return isResponse(result)\n        ? result\n        : {\n            ...result,\n            actionData: null,\n            actionHeaders: {},\n          };\n    } catch (e) {\n      // If the user threw/returned a Response in callLoaderOrAction, we throw\n      // it to bail out and then return or throw here based on whether the user\n      // returned or threw\n      if (isQueryRouteResponse(e)) {\n        if (e.type === ResultType.error && !isRedirectResponse(e.response)) {\n          throw e.response;\n        }\n        return e.response;\n      }\n      // Redirects are always returned since they don't propagate to catch\n      // boundaries\n      if (isRedirectResponse(e)) {\n        return e;\n      }\n      throw e;\n    }\n  }\n\n  async function submit(\n    request: Request,\n    matches: AgnosticDataRouteMatch[],\n    actionMatch: AgnosticDataRouteMatch,\n    requestContext: unknown,\n    isRouteRequest: boolean\n  ): Promise<Omit<StaticHandlerContext, \"location\" | \"basename\"> | Response> {\n    let result: DataResult;\n\n    if (!actionMatch.route.action && !actionMatch.route.lazy) {\n      let error = getInternalRouterError(405, {\n        method: request.method,\n        pathname: new URL(request.url).pathname,\n        routeId: actionMatch.route.id,\n      });\n      if (isRouteRequest) {\n        throw error;\n      }\n      result = {\n        type: ResultType.error,\n        error,\n      };\n    } else {\n      result = await callLoaderOrAction(\n        \"action\",\n        request,\n        actionMatch,\n        matches,\n        manifest,\n        mapRouteProperties,\n        basename,\n        { isStaticRequest: true, isRouteRequest, requestContext }\n      );\n\n      if (request.signal.aborted) {\n        let method = isRouteRequest ? \"queryRoute\" : \"query\";\n        throw new Error(`${method}() call aborted`);\n      }\n    }\n\n    if (isRedirectResult(result)) {\n      // Uhhhh - this should never happen, we should always throw these from\n      // callLoaderOrAction, but the type narrowing here keeps TS happy and we\n      // can get back on the \"throw all redirect responses\" train here should\n      // this ever happen :/\n      throw new Response(null, {\n        status: result.status,\n        headers: {\n          Location: result.location,\n        },\n      });\n    }\n\n    if (isDeferredResult(result)) {\n      let error = getInternalRouterError(400, { type: \"defer-action\" });\n      if (isRouteRequest) {\n        throw error;\n      }\n      result = {\n        type: ResultType.error,\n        error,\n      };\n    }\n\n    if (isRouteRequest) {\n      // Note: This should only be non-Response values if we get here, since\n      // isRouteRequest should throw any Response received in callLoaderOrAction\n      if (isErrorResult(result)) {\n        throw result.error;\n      }\n\n      return {\n        matches: [actionMatch],\n        loaderData: {},\n        actionData: { [actionMatch.route.id]: result.data },\n        errors: null,\n        // Note: statusCode + headers are unused here since queryRoute will\n        // return the raw Response or value\n        statusCode: 200,\n        loaderHeaders: {},\n        actionHeaders: {},\n        activeDeferreds: null,\n      };\n    }\n\n    if (isErrorResult(result)) {\n      // Store off the pending error - we use it to determine which loaders\n      // to call and will commit it when we complete the navigation\n      let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n      let context = await loadRouteData(\n        request,\n        matches,\n        requestContext,\n        undefined,\n        {\n          [boundaryMatch.route.id]: result.error,\n        }\n      );\n\n      // action status codes take precedence over loader status codes\n      return {\n        ...context,\n        statusCode: isRouteErrorResponse(result.error)\n          ? result.error.status\n          : 500,\n        actionData: null,\n        actionHeaders: {\n          ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n        },\n      };\n    }\n\n    // Create a GET request for the loaders\n    let loaderRequest = new Request(request.url, {\n      headers: request.headers,\n      redirect: request.redirect,\n      signal: request.signal,\n    });\n    let context = await loadRouteData(loaderRequest, matches, requestContext);\n\n    return {\n      ...context,\n      // action status codes take precedence over loader status codes\n      ...(result.statusCode ? { statusCode: result.statusCode } : {}),\n      actionData: {\n        [actionMatch.route.id]: result.data,\n      },\n      actionHeaders: {\n        ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n      },\n    };\n  }\n\n  async function loadRouteData(\n    request: Request,\n    matches: AgnosticDataRouteMatch[],\n    requestContext: unknown,\n    routeMatch?: AgnosticDataRouteMatch,\n    pendingActionError?: RouteData\n  ): Promise<\n    | Omit<\n        StaticHandlerContext,\n        \"location\" | \"basename\" | \"actionData\" | \"actionHeaders\"\n      >\n    | Response\n  > {\n    let isRouteRequest = routeMatch != null;\n\n    // Short circuit if we have no loaders to run (queryRoute())\n    if (\n      isRouteRequest &&\n      !routeMatch?.route.loader &&\n      !routeMatch?.route.lazy\n    ) {\n      throw getInternalRouterError(400, {\n        method: request.method,\n        pathname: new URL(request.url).pathname,\n        routeId: routeMatch?.route.id,\n      });\n    }\n\n    let requestMatches = routeMatch\n      ? [routeMatch]\n      : getLoaderMatchesUntilBoundary(\n          matches,\n          Object.keys(pendingActionError || {})[0]\n        );\n    let matchesToLoad = requestMatches.filter(\n      (m) => m.route.loader || m.route.lazy\n    );\n\n    // Short circuit if we have no loaders to run (query())\n    if (matchesToLoad.length === 0) {\n      return {\n        matches,\n        // Add a null for all matched routes for proper revalidation on the client\n        loaderData: matches.reduce(\n          (acc, m) => Object.assign(acc, { [m.route.id]: null }),\n          {}\n        ),\n        errors: pendingActionError || null,\n        statusCode: 200,\n        loaderHeaders: {},\n        activeDeferreds: null,\n      };\n    }\n\n    let results = await Promise.all([\n      ...matchesToLoad.map((match) =>\n        callLoaderOrAction(\n          \"loader\",\n          request,\n          match,\n          matches,\n          manifest,\n          mapRouteProperties,\n          basename,\n          { isStaticRequest: true, isRouteRequest, requestContext }\n        )\n      ),\n    ]);\n\n    if (request.signal.aborted) {\n      let method = isRouteRequest ? \"queryRoute\" : \"query\";\n      throw new Error(`${method}() call aborted`);\n    }\n\n    // Process and commit output from loaders\n    let activeDeferreds = new Map<string, DeferredData>();\n    let context = processRouteLoaderData(\n      matches,\n      matchesToLoad,\n      results,\n      pendingActionError,\n      activeDeferreds\n    );\n\n    // Add a null for any non-loader matches for proper revalidation on the client\n    let executedLoaders = new Set<string>(\n      matchesToLoad.map((match) => match.route.id)\n    );\n    matches.forEach((match) => {\n      if (!executedLoaders.has(match.route.id)) {\n        context.loaderData[match.route.id] = null;\n      }\n    });\n\n    return {\n      ...context,\n      matches,\n      activeDeferreds:\n        activeDeferreds.size > 0\n          ? Object.fromEntries(activeDeferreds.entries())\n          : null,\n    };\n  }\n\n  return {\n    dataRoutes,\n    query,\n    queryRoute,\n  };\n}\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Helpers\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Given an existing StaticHandlerContext and an error thrown at render time,\n * provide an updated StaticHandlerContext suitable for a second SSR render\n */\nexport function getStaticContextFromError(\n  routes: AgnosticDataRouteObject[],\n  context: StaticHandlerContext,\n  error: any\n) {\n  let newContext: StaticHandlerContext = {\n    ...context,\n    statusCode: 500,\n    errors: {\n      [context._deepestRenderedBoundaryId || routes[0].id]: error,\n    },\n  };\n  return newContext;\n}\n\nfunction isSubmissionNavigation(\n  opts: RouterNavigateOptions\n): opts is SubmissionNavigateOptions {\n  return (\n    opts != null &&\n    ((\"formData\" in opts && opts.formData != null) ||\n      (\"body\" in opts && opts.body !== undefined))\n  );\n}\n\nfunction normalizeTo(\n  location: Path,\n  matches: AgnosticDataRouteMatch[],\n  basename: string,\n  prependBasename: boolean,\n  to: To | null,\n  fromRouteId?: string,\n  relative?: RelativeRoutingType\n) {\n  let contextualMatches: AgnosticDataRouteMatch[];\n  let activeRouteMatch: AgnosticDataRouteMatch | undefined;\n  if (fromRouteId != null && relative !== \"path\") {\n    // Grab matches up to the calling route so our route-relative logic is\n    // relative to the correct source route.  When using relative:path,\n    // fromRouteId is ignored since that is always relative to the current\n    // location path\n    contextualMatches = [];\n    for (let match of matches) {\n      contextualMatches.push(match);\n      if (match.route.id === fromRouteId) {\n        activeRouteMatch = match;\n        break;\n      }\n    }\n  } else {\n    contextualMatches = matches;\n    activeRouteMatch = matches[matches.length - 1];\n  }\n\n  // Resolve the relative path\n  let path = resolveTo(\n    to ? to : \".\",\n    getPathContributingMatches(contextualMatches).map((m) => m.pathnameBase),\n    stripBasename(location.pathname, basename) || location.pathname,\n    relative === \"path\"\n  );\n\n  // When `to` is not specified we inherit search/hash from the current\n  // location, unlike when to=\".\" and we just inherit the path.\n  // See https://github.com/remix-run/remix/issues/927\n  if (to == null) {\n    path.search = location.search;\n    path.hash = location.hash;\n  }\n\n  // Add an ?index param for matched index routes if we don't already have one\n  if (\n    (to == null || to === \"\" || to === \".\") &&\n    activeRouteMatch &&\n    activeRouteMatch.route.index &&\n    !hasNakedIndexQuery(path.search)\n  ) {\n    path.search = path.search\n      ? path.search.replace(/^\\?/, \"?index&\")\n      : \"?index\";\n  }\n\n  // If we're operating within a basename, prepend it to the pathname.  If\n  // this is a root navigation, then just use the raw basename which allows\n  // the basename to have full control over the presence of a trailing slash\n  // on root actions\n  if (prependBasename && basename !== \"/\") {\n    path.pathname =\n      path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n  }\n\n  return createPath(path);\n}\n\n// Normalize navigation options by converting formMethod=GET formData objects to\n// URLSearchParams so they behave identically to links with query params\nfunction normalizeNavigateOptions(\n  normalizeFormMethod: boolean,\n  isFetcher: boolean,\n  path: string,\n  opts?: RouterNavigateOptions\n): {\n  path: string;\n  submission?: Submission;\n  error?: ErrorResponse;\n} {\n  // Return location verbatim on non-submission navigations\n  if (!opts || !isSubmissionNavigation(opts)) {\n    return { path };\n  }\n\n  if (opts.formMethod && !isValidMethod(opts.formMethod)) {\n    return {\n      path,\n      error: getInternalRouterError(405, { method: opts.formMethod }),\n    };\n  }\n\n  let getInvalidBodyError = () => ({\n    path,\n    error: getInternalRouterError(400, { type: \"invalid-body\" }),\n  });\n\n  // Create a Submission on non-GET navigations\n  let rawFormMethod = opts.formMethod || \"get\";\n  let formMethod = normalizeFormMethod\n    ? (rawFormMethod.toUpperCase() as V7_FormMethod)\n    : (rawFormMethod.toLowerCase() as FormMethod);\n  let formAction = stripHashFromPath(path);\n\n  if (opts.body !== undefined) {\n    if (opts.formEncType === \"text/plain\") {\n      // text only support POST/PUT/PATCH/DELETE submissions\n      if (!isMutationMethod(formMethod)) {\n        return getInvalidBodyError();\n      }\n\n      let text =\n        typeof opts.body === \"string\"\n          ? opts.body\n          : opts.body instanceof FormData ||\n            opts.body instanceof URLSearchParams\n          ? // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#plain-text-form-data\n            Array.from(opts.body.entries()).reduce(\n              (acc, [name, value]) => `${acc}${name}=${value}\\n`,\n              \"\"\n            )\n          : String(opts.body);\n\n      return {\n        path,\n        submission: {\n          formMethod,\n          formAction,\n          formEncType: opts.formEncType,\n          formData: undefined,\n          json: undefined,\n          text,\n        },\n      };\n    } else if (opts.formEncType === \"application/json\") {\n      // json only supports POST/PUT/PATCH/DELETE submissions\n      if (!isMutationMethod(formMethod)) {\n        return getInvalidBodyError();\n      }\n\n      try {\n        let json =\n          typeof opts.body === \"string\" ? JSON.parse(opts.body) : opts.body;\n\n        return {\n          path,\n          submission: {\n            formMethod,\n            formAction,\n            formEncType: opts.formEncType,\n            formData: undefined,\n            json,\n            text: undefined,\n          },\n        };\n      } catch (e) {\n        return getInvalidBodyError();\n      }\n    }\n  }\n\n  invariant(\n    typeof FormData === \"function\",\n    \"FormData is not available in this environment\"\n  );\n\n  let searchParams: URLSearchParams;\n  let formData: FormData;\n\n  if (opts.formData) {\n    searchParams = convertFormDataToSearchParams(opts.formData);\n    formData = opts.formData;\n  } else if (opts.body instanceof FormData) {\n    searchParams = convertFormDataToSearchParams(opts.body);\n    formData = opts.body;\n  } else if (opts.body instanceof URLSearchParams) {\n    searchParams = opts.body;\n    formData = convertSearchParamsToFormData(searchParams);\n  } else if (opts.body == null) {\n    searchParams = new URLSearchParams();\n    formData = new FormData();\n  } else {\n    try {\n      searchParams = new URLSearchParams(opts.body);\n      formData = convertSearchParamsToFormData(searchParams);\n    } catch (e) {\n      return getInvalidBodyError();\n    }\n  }\n\n  let submission: Submission = {\n    formMethod,\n    formAction,\n    formEncType:\n      (opts && opts.formEncType) || \"application/x-www-form-urlencoded\",\n    formData,\n    json: undefined,\n    text: undefined,\n  };\n\n  if (isMutationMethod(submission.formMethod)) {\n    return { path, submission };\n  }\n\n  // Flatten submission onto URLSearchParams for GET submissions\n  let parsedPath = parsePath(path);\n  // On GET navigation submissions we can drop the ?index param from the\n  // resulting location since all loaders will run.  But fetcher GET submissions\n  // only run a single loader so we need to preserve any incoming ?index params\n  if (isFetcher && parsedPath.search && hasNakedIndexQuery(parsedPath.search)) {\n    searchParams.append(\"index\", \"\");\n  }\n  parsedPath.search = `?${searchParams}`;\n\n  return { path: createPath(parsedPath), submission };\n}\n\n// Filter out all routes below any caught error as they aren't going to\n// render so we don't need to load them\nfunction getLoaderMatchesUntilBoundary(\n  matches: AgnosticDataRouteMatch[],\n  boundaryId?: string\n) {\n  let boundaryMatches = matches;\n  if (boundaryId) {\n    let index = matches.findIndex((m) => m.route.id === boundaryId);\n    if (index >= 0) {\n      boundaryMatches = matches.slice(0, index);\n    }\n  }\n  return boundaryMatches;\n}\n\nfunction getMatchesToLoad(\n  history: History,\n  state: RouterState,\n  matches: AgnosticDataRouteMatch[],\n  submission: Submission | undefined,\n  location: Location,\n  isRevalidationRequired: boolean,\n  cancelledDeferredRoutes: string[],\n  cancelledFetcherLoads: string[],\n  fetchLoadMatches: Map<string, FetchLoadMatch>,\n  fetchRedirectIds: Set<string>,\n  routesToUse: AgnosticDataRouteObject[],\n  basename: string | undefined,\n  pendingActionData?: RouteData,\n  pendingError?: RouteData\n): [AgnosticDataRouteMatch[], RevalidatingFetcher[]] {\n  let actionResult = pendingError\n    ? Object.values(pendingError)[0]\n    : pendingActionData\n    ? Object.values(pendingActionData)[0]\n    : undefined;\n\n  let currentUrl = history.createURL(state.location);\n  let nextUrl = history.createURL(location);\n\n  // Pick navigation matches that are net-new or qualify for revalidation\n  let boundaryId = pendingError ? Object.keys(pendingError)[0] : undefined;\n  let boundaryMatches = getLoaderMatchesUntilBoundary(matches, boundaryId);\n\n  let navigationMatches = boundaryMatches.filter((match, index) => {\n    if (match.route.lazy) {\n      // We haven't loaded this route yet so we don't know if it's got a loader!\n      return true;\n    }\n    if (match.route.loader == null) {\n      return false;\n    }\n\n    // Always call the loader on new route instances and pending defer cancellations\n    if (\n      isNewLoader(state.loaderData, state.matches[index], match) ||\n      cancelledDeferredRoutes.some((id) => id === match.route.id)\n    ) {\n      return true;\n    }\n\n    // This is the default implementation for when we revalidate.  If the route\n    // provides it's own implementation, then we give them full control but\n    // provide this value so they can leverage it if needed after they check\n    // their own specific use cases\n    let currentRouteMatch = state.matches[index];\n    let nextRouteMatch = match;\n\n    return shouldRevalidateLoader(match, {\n      currentUrl,\n      currentParams: currentRouteMatch.params,\n      nextUrl,\n      nextParams: nextRouteMatch.params,\n      ...submission,\n      actionResult,\n      defaultShouldRevalidate:\n        // Forced revalidation due to submission, useRevalidator, or X-Remix-Revalidate\n        isRevalidationRequired ||\n        // Clicked the same link, resubmitted a GET form\n        currentUrl.pathname + currentUrl.search ===\n          nextUrl.pathname + nextUrl.search ||\n        // Search params affect all loaders\n        currentUrl.search !== nextUrl.search ||\n        isNewRouteInstance(currentRouteMatch, nextRouteMatch),\n    });\n  });\n\n  // Pick fetcher.loads that need to be revalidated\n  let revalidatingFetchers: RevalidatingFetcher[] = [];\n  fetchLoadMatches.forEach((f, key) => {\n    // Don't revalidate if fetcher won't be present in the subsequent render\n    if (!matches.some((m) => m.route.id === f.routeId)) {\n      return;\n    }\n\n    let fetcherMatches = matchRoutes(routesToUse, f.path, basename);\n\n    // If the fetcher path no longer matches, push it in with null matches so\n    // we can trigger a 404 in callLoadersAndMaybeResolveData.  Note this is\n    // currently only a use-case for Remix HMR where the route tree can change\n    // at runtime and remove a route previously loaded via a fetcher\n    if (!fetcherMatches) {\n      revalidatingFetchers.push({\n        key,\n        routeId: f.routeId,\n        path: f.path,\n        matches: null,\n        match: null,\n        controller: null,\n      });\n      return;\n    }\n\n    // Revalidating fetchers are decoupled from the route matches since they\n    // load from a static href.  They revalidate based on explicit revalidation\n    // (submission, useRevalidator, or X-Remix-Revalidate)\n    let fetcher = state.fetchers.get(key);\n    let fetcherMatch = getTargetMatch(fetcherMatches, f.path);\n\n    let shouldRevalidate = false;\n    if (fetchRedirectIds.has(key)) {\n      // Never trigger a revalidation of an actively redirecting fetcher\n      shouldRevalidate = false;\n    } else if (cancelledFetcherLoads.includes(key)) {\n      // Always revalidate if the fetcher was cancelled\n      shouldRevalidate = true;\n    } else if (\n      fetcher &&\n      fetcher.state !== \"idle\" &&\n      fetcher.data === undefined\n    ) {\n      // If the fetcher hasn't ever completed loading yet, then this isn't a\n      // revalidation, it would just be a brand new load if an explicit\n      // revalidation is required\n      shouldRevalidate = isRevalidationRequired;\n    } else {\n      // Otherwise fall back on any user-defined shouldRevalidate, defaulting\n      // to explicit revalidations only\n      shouldRevalidate = shouldRevalidateLoader(fetcherMatch, {\n        currentUrl,\n        currentParams: state.matches[state.matches.length - 1].params,\n        nextUrl,\n        nextParams: matches[matches.length - 1].params,\n        ...submission,\n        actionResult,\n        defaultShouldRevalidate: isRevalidationRequired,\n      });\n    }\n\n    if (shouldRevalidate) {\n      revalidatingFetchers.push({\n        key,\n        routeId: f.routeId,\n        path: f.path,\n        matches: fetcherMatches,\n        match: fetcherMatch,\n        controller: new AbortController(),\n      });\n    }\n  });\n\n  return [navigationMatches, revalidatingFetchers];\n}\n\nfunction isNewLoader(\n  currentLoaderData: RouteData,\n  currentMatch: AgnosticDataRouteMatch,\n  match: AgnosticDataRouteMatch\n) {\n  let isNew =\n    // [a] -> [a, b]\n    !currentMatch ||\n    // [a, b] -> [a, c]\n    match.route.id !== currentMatch.route.id;\n\n  // Handle the case that we don't have data for a re-used route, potentially\n  // from a prior error or from a cancelled pending deferred\n  let isMissingData = currentLoaderData[match.route.id] === undefined;\n\n  // Always load if this is a net-new route or we don't yet have data\n  return isNew || isMissingData;\n}\n\nfunction isNewRouteInstance(\n  currentMatch: AgnosticDataRouteMatch,\n  match: AgnosticDataRouteMatch\n) {\n  let currentPath = currentMatch.route.path;\n  return (\n    // param change for this match, /users/123 -> /users/456\n    currentMatch.pathname !== match.pathname ||\n    // splat param changed, which is not present in match.path\n    // e.g. /files/images/avatar.jpg -> files/finances.xls\n    (currentPath != null &&\n      currentPath.endsWith(\"*\") &&\n      currentMatch.params[\"*\"] !== match.params[\"*\"])\n  );\n}\n\nfunction shouldRevalidateLoader(\n  loaderMatch: AgnosticDataRouteMatch,\n  arg: Parameters<ShouldRevalidateFunction>[0]\n) {\n  if (loaderMatch.route.shouldRevalidate) {\n    let routeChoice = loaderMatch.route.shouldRevalidate(arg);\n    if (typeof routeChoice === \"boolean\") {\n      return routeChoice;\n    }\n  }\n\n  return arg.defaultShouldRevalidate;\n}\n\n/**\n * Execute route.lazy() methods to lazily load route modules (loader, action,\n * shouldRevalidate) and update the routeManifest in place which shares objects\n * with dataRoutes so those get updated as well.\n */\nasync function loadLazyRouteModule(\n  route: AgnosticDataRouteObject,\n  mapRouteProperties: MapRoutePropertiesFunction,\n  manifest: RouteManifest\n) {\n  if (!route.lazy) {\n    return;\n  }\n\n  let lazyRoute = await route.lazy();\n\n  // If the lazy route function was executed and removed by another parallel\n  // call then we can return - first lazy() to finish wins because the return\n  // value of lazy is expected to be static\n  if (!route.lazy) {\n    return;\n  }\n\n  let routeToUpdate = manifest[route.id];\n  invariant(routeToUpdate, \"No route found in manifest\");\n\n  // Update the route in place.  This should be safe because there's no way\n  // we could yet be sitting on this route as we can't get there without\n  // resolving lazy() first.\n  //\n  // This is different than the HMR \"update\" use-case where we may actively be\n  // on the route being updated.  The main concern boils down to \"does this\n  // mutation affect any ongoing navigations or any current state.matches\n  // values?\".  If not, it should be safe to update in place.\n  let routeUpdates: Record<string, any> = {};\n  for (let lazyRouteProperty in lazyRoute) {\n    let staticRouteValue =\n      routeToUpdate[lazyRouteProperty as keyof typeof routeToUpdate];\n\n    let isPropertyStaticallyDefined =\n      staticRouteValue !== undefined &&\n      // This property isn't static since it should always be updated based\n      // on the route updates\n      lazyRouteProperty !== \"hasErrorBoundary\";\n\n    warning(\n      !isPropertyStaticallyDefined,\n      `Route \"${routeToUpdate.id}\" has a static property \"${lazyRouteProperty}\" ` +\n        `defined but its lazy function is also returning a value for this property. ` +\n        `The lazy route property \"${lazyRouteProperty}\" will be ignored.`\n    );\n\n    if (\n      !isPropertyStaticallyDefined &&\n      !immutableRouteKeys.has(lazyRouteProperty as ImmutableRouteKey)\n    ) {\n      routeUpdates[lazyRouteProperty] =\n        lazyRoute[lazyRouteProperty as keyof typeof lazyRoute];\n    }\n  }\n\n  // Mutate the route with the provided updates.  Do this first so we pass\n  // the updated version to mapRouteProperties\n  Object.assign(routeToUpdate, routeUpdates);\n\n  // Mutate the `hasErrorBoundary` property on the route based on the route\n  // updates and remove the `lazy` function so we don't resolve the lazy\n  // route again.\n  Object.assign(routeToUpdate, {\n    // To keep things framework agnostic, we use the provided\n    // `mapRouteProperties` (or wrapped `detectErrorBoundary`) function to\n    // set the framework-aware properties (`element`/`hasErrorBoundary`) since\n    // the logic will differ between frameworks.\n    ...mapRouteProperties(routeToUpdate),\n    lazy: undefined,\n  });\n}\n\nasync function callLoaderOrAction(\n  type: \"loader\" | \"action\",\n  request: Request,\n  match: AgnosticDataRouteMatch,\n  matches: AgnosticDataRouteMatch[],\n  manifest: RouteManifest,\n  mapRouteProperties: MapRoutePropertiesFunction,\n  basename: string,\n  opts: {\n    isStaticRequest?: boolean;\n    isRouteRequest?: boolean;\n    requestContext?: unknown;\n  } = {}\n): Promise<DataResult> {\n  let resultType;\n  let result;\n  let onReject: (() => void) | undefined;\n\n  let runHandler = (handler: ActionFunction | LoaderFunction) => {\n    // Setup a promise we can race against so that abort signals short circuit\n    let reject: () => void;\n    let abortPromise = new Promise((_, r) => (reject = r));\n    onReject = () => reject();\n    request.signal.addEventListener(\"abort\", onReject);\n    return Promise.race([\n      handler({\n        request,\n        params: match.params,\n        context: opts.requestContext,\n      }),\n      abortPromise,\n    ]);\n  };\n\n  try {\n    let handler = match.route[type];\n\n    if (match.route.lazy) {\n      if (handler) {\n        // Run statically defined handler in parallel with lazy()\n        let values = await Promise.all([\n          runHandler(handler),\n          loadLazyRouteModule(match.route, mapRouteProperties, manifest),\n        ]);\n        result = values[0];\n      } else {\n        // Load lazy route module, then run any returned handler\n        await loadLazyRouteModule(match.route, mapRouteProperties, manifest);\n\n        handler = match.route[type];\n        if (handler) {\n          // Handler still run even if we got interrupted to maintain consistency\n          // with un-abortable behavior of handler execution on non-lazy or\n          // previously-lazy-loaded routes\n          result = await runHandler(handler);\n        } else if (type === \"action\") {\n          let url = new URL(request.url);\n          let pathname = url.pathname + url.search;\n          throw getInternalRouterError(405, {\n            method: request.method,\n            pathname,\n            routeId: match.route.id,\n          });\n        } else {\n          // lazy() route has no loader to run.  Short circuit here so we don't\n          // hit the invariant below that errors on returning undefined.\n          return { type: ResultType.data, data: undefined };\n        }\n      }\n    } else if (!handler) {\n      let url = new URL(request.url);\n      let pathname = url.pathname + url.search;\n      throw getInternalRouterError(404, {\n        pathname,\n      });\n    } else {\n      result = await runHandler(handler);\n    }\n\n    invariant(\n      result !== undefined,\n      `You defined ${type === \"action\" ? \"an action\" : \"a loader\"} for route ` +\n        `\"${match.route.id}\" but didn't return anything from your \\`${type}\\` ` +\n        `function. Please return a value or \\`null\\`.`\n    );\n  } catch (e) {\n    resultType = ResultType.error;\n    result = e;\n  } finally {\n    if (onReject) {\n      request.signal.removeEventListener(\"abort\", onReject);\n    }\n  }\n\n  if (isResponse(result)) {\n    let status = result.status;\n\n    // Process redirects\n    if (redirectStatusCodes.has(status)) {\n      let location = result.headers.get(\"Location\");\n      invariant(\n        location,\n        \"Redirects returned/thrown from loaders/actions must have a Location header\"\n      );\n\n      // Support relative routing in internal redirects\n      if (!ABSOLUTE_URL_REGEX.test(location)) {\n        location = normalizeTo(\n          new URL(request.url),\n          matches.slice(0, matches.indexOf(match) + 1),\n          basename,\n          true,\n          location\n        );\n      } else if (!opts.isStaticRequest) {\n        // Strip off the protocol+origin for same-origin + same-basename absolute\n        // redirects. If this is a static request, we can let it go back to the\n        // browser as-is\n        let currentUrl = new URL(request.url);\n        let url = location.startsWith(\"//\")\n          ? new URL(currentUrl.protocol + location)\n          : new URL(location);\n        let isSameBasename = stripBasename(url.pathname, basename) != null;\n        if (url.origin === currentUrl.origin && isSameBasename) {\n          location = url.pathname + url.search + url.hash;\n        }\n      }\n\n      // Don't process redirects in the router during static requests requests.\n      // Instead, throw the Response and let the server handle it with an HTTP\n      // redirect.  We also update the Location header in place in this flow so\n      // basename and relative routing is taken into account\n      if (opts.isStaticRequest) {\n        result.headers.set(\"Location\", location);\n        throw result;\n      }\n\n      return {\n        type: ResultType.redirect,\n        status,\n        location,\n        revalidate: result.headers.get(\"X-Remix-Revalidate\") !== null,\n      };\n    }\n\n    // For SSR single-route requests, we want to hand Responses back directly\n    // without unwrapping.  We do this with the QueryRouteResponse wrapper\n    // interface so we can know whether it was returned or thrown\n    if (opts.isRouteRequest) {\n      // eslint-disable-next-line no-throw-literal\n      throw {\n        type: resultType || ResultType.data,\n        response: result,\n      };\n    }\n\n    let data: any;\n    let contentType = result.headers.get(\"Content-Type\");\n    // Check between word boundaries instead of startsWith() due to the last\n    // paragraph of https://httpwg.org/specs/rfc9110.html#field.content-type\n    if (contentType && /\\bapplication\\/json\\b/.test(contentType)) {\n      data = await result.json();\n    } else {\n      data = await result.text();\n    }\n\n    if (resultType === ResultType.error) {\n      return {\n        type: resultType,\n        error: new ErrorResponse(status, result.statusText, data),\n        headers: result.headers,\n      };\n    }\n\n    return {\n      type: ResultType.data,\n      data,\n      statusCode: result.status,\n      headers: result.headers,\n    };\n  }\n\n  if (resultType === ResultType.error) {\n    return { type: resultType, error: result };\n  }\n\n  if (isDeferredData(result)) {\n    return {\n      type: ResultType.deferred,\n      deferredData: result,\n      statusCode: result.init?.status,\n      headers: result.init?.headers && new Headers(result.init.headers),\n    };\n  }\n\n  return { type: ResultType.data, data: result };\n}\n\n// Utility method for creating the Request instances for loaders/actions during\n// client-side navigations and fetches.  During SSR we will always have a\n// Request instance from the static handler (query/queryRoute)\nfunction createClientSideRequest(\n  history: History,\n  location: string | Location,\n  signal: AbortSignal,\n  submission?: Submission\n): Request {\n  let url = history.createURL(stripHashFromPath(location)).toString();\n  let init: RequestInit = { signal };\n\n  if (submission && isMutationMethod(submission.formMethod)) {\n    let { formMethod, formEncType } = submission;\n    // Didn't think we needed this but it turns out unlike other methods, patch\n    // won't be properly normalized to uppercase and results in a 405 error.\n    // See: https://fetch.spec.whatwg.org/#concept-method\n    init.method = formMethod.toUpperCase();\n\n    if (formEncType === \"application/json\") {\n      init.headers = new Headers({ \"Content-Type\": formEncType });\n      init.body = JSON.stringify(submission.json);\n    } else if (formEncType === \"text/plain\") {\n      // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n      init.body = submission.text;\n    } else if (\n      formEncType === \"application/x-www-form-urlencoded\" &&\n      submission.formData\n    ) {\n      // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n      init.body = convertFormDataToSearchParams(submission.formData);\n    } else {\n      // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n      init.body = submission.formData;\n    }\n  }\n\n  return new Request(url, init);\n}\n\nfunction convertFormDataToSearchParams(formData: FormData): URLSearchParams {\n  let searchParams = new URLSearchParams();\n\n  for (let [key, value] of formData.entries()) {\n    // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#converting-an-entry-list-to-a-list-of-name-value-pairs\n    searchParams.append(key, typeof value === \"string\" ? value : value.name);\n  }\n\n  return searchParams;\n}\n\nfunction convertSearchParamsToFormData(\n  searchParams: URLSearchParams\n): FormData {\n  let formData = new FormData();\n  for (let [key, value] of searchParams.entries()) {\n    formData.append(key, value);\n  }\n  return formData;\n}\n\nfunction processRouteLoaderData(\n  matches: AgnosticDataRouteMatch[],\n  matchesToLoad: AgnosticDataRouteMatch[],\n  results: DataResult[],\n  pendingError: RouteData | undefined,\n  activeDeferreds: Map<string, DeferredData>\n): {\n  loaderData: RouterState[\"loaderData\"];\n  errors: RouterState[\"errors\"] | null;\n  statusCode: number;\n  loaderHeaders: Record<string, Headers>;\n} {\n  // Fill in loaderData/errors from our loaders\n  let loaderData: RouterState[\"loaderData\"] = {};\n  let errors: RouterState[\"errors\"] | null = null;\n  let statusCode: number | undefined;\n  let foundError = false;\n  let loaderHeaders: Record<string, Headers> = {};\n\n  // Process loader results into state.loaderData/state.errors\n  results.forEach((result, index) => {\n    let id = matchesToLoad[index].route.id;\n    invariant(\n      !isRedirectResult(result),\n      \"Cannot handle redirect results in processLoaderData\"\n    );\n    if (isErrorResult(result)) {\n      // Look upwards from the matched route for the closest ancestor\n      // error boundary, defaulting to the root match\n      let boundaryMatch = findNearestBoundary(matches, id);\n      let error = result.error;\n      // If we have a pending action error, we report it at the highest-route\n      // that throws a loader error, and then clear it out to indicate that\n      // it was consumed\n      if (pendingError) {\n        error = Object.values(pendingError)[0];\n        pendingError = undefined;\n      }\n\n      errors = errors || {};\n\n      // Prefer higher error values if lower errors bubble to the same boundary\n      if (errors[boundaryMatch.route.id] == null) {\n        errors[boundaryMatch.route.id] = error;\n      }\n\n      // Clear our any prior loaderData for the throwing route\n      loaderData[id] = undefined;\n\n      // Once we find our first (highest) error, we set the status code and\n      // prevent deeper status codes from overriding\n      if (!foundError) {\n        foundError = true;\n        statusCode = isRouteErrorResponse(result.error)\n          ? result.error.status\n          : 500;\n      }\n      if (result.headers) {\n        loaderHeaders[id] = result.headers;\n      }\n    } else {\n      if (isDeferredResult(result)) {\n        activeDeferreds.set(id, result.deferredData);\n        loaderData[id] = result.deferredData.data;\n      } else {\n        loaderData[id] = result.data;\n      }\n\n      // Error status codes always override success status codes, but if all\n      // loaders are successful we take the deepest status code.\n      if (\n        result.statusCode != null &&\n        result.statusCode !== 200 &&\n        !foundError\n      ) {\n        statusCode = result.statusCode;\n      }\n      if (result.headers) {\n        loaderHeaders[id] = result.headers;\n      }\n    }\n  });\n\n  // If we didn't consume the pending action error (i.e., all loaders\n  // resolved), then consume it here.  Also clear out any loaderData for the\n  // throwing route\n  if (pendingError) {\n    errors = pendingError;\n    loaderData[Object.keys(pendingError)[0]] = undefined;\n  }\n\n  return {\n    loaderData,\n    errors,\n    statusCode: statusCode || 200,\n    loaderHeaders,\n  };\n}\n\nfunction processLoaderData(\n  state: RouterState,\n  matches: AgnosticDataRouteMatch[],\n  matchesToLoad: AgnosticDataRouteMatch[],\n  results: DataResult[],\n  pendingError: RouteData | undefined,\n  revalidatingFetchers: RevalidatingFetcher[],\n  fetcherResults: DataResult[],\n  activeDeferreds: Map<string, DeferredData>\n): {\n  loaderData: RouterState[\"loaderData\"];\n  errors?: RouterState[\"errors\"];\n} {\n  let { loaderData, errors } = processRouteLoaderData(\n    matches,\n    matchesToLoad,\n    results,\n    pendingError,\n    activeDeferreds\n  );\n\n  // Process results from our revalidating fetchers\n  for (let index = 0; index < revalidatingFetchers.length; index++) {\n    let { key, match, controller } = revalidatingFetchers[index];\n    invariant(\n      fetcherResults !== undefined && fetcherResults[index] !== undefined,\n      \"Did not find corresponding fetcher result\"\n    );\n    let result = fetcherResults[index];\n\n    // Process fetcher non-redirect errors\n    if (controller && controller.signal.aborted) {\n      // Nothing to do for aborted fetchers\n      continue;\n    } else if (isErrorResult(result)) {\n      let boundaryMatch = findNearestBoundary(state.matches, match?.route.id);\n      if (!(errors && errors[boundaryMatch.route.id])) {\n        errors = {\n          ...errors,\n          [boundaryMatch.route.id]: result.error,\n        };\n      }\n      state.fetchers.delete(key);\n    } else if (isRedirectResult(result)) {\n      // Should never get here, redirects should get processed above, but we\n      // keep this to type narrow to a success result in the else\n      invariant(false, \"Unhandled fetcher revalidation redirect\");\n    } else if (isDeferredResult(result)) {\n      // Should never get here, deferred data should be awaited for fetchers\n      // in resolveDeferredResults\n      invariant(false, \"Unhandled fetcher deferred data\");\n    } else {\n      let doneFetcher = getDoneFetcher(result.data);\n      state.fetchers.set(key, doneFetcher);\n    }\n  }\n\n  return { loaderData, errors };\n}\n\nfunction mergeLoaderData(\n  loaderData: RouteData,\n  newLoaderData: RouteData,\n  matches: AgnosticDataRouteMatch[],\n  errors: RouteData | null | undefined\n): RouteData {\n  let mergedLoaderData = { ...newLoaderData };\n  for (let match of matches) {\n    let id = match.route.id;\n    if (newLoaderData.hasOwnProperty(id)) {\n      if (newLoaderData[id] !== undefined) {\n        mergedLoaderData[id] = newLoaderData[id];\n      } else {\n        // No-op - this is so we ignore existing data if we have a key in the\n        // incoming object with an undefined value, which is how we unset a prior\n        // loaderData if we encounter a loader error\n      }\n    } else if (loaderData[id] !== undefined && match.route.loader) {\n      // Preserve existing keys not included in newLoaderData and where a loader\n      // wasn't removed by HMR\n      mergedLoaderData[id] = loaderData[id];\n    }\n\n    if (errors && errors.hasOwnProperty(id)) {\n      // Don't keep any loader data below the boundary\n      break;\n    }\n  }\n  return mergedLoaderData;\n}\n\n// Find the nearest error boundary, looking upwards from the leaf route (or the\n// route specified by routeId) for the closest ancestor error boundary,\n// defaulting to the root match\nfunction findNearestBoundary(\n  matches: AgnosticDataRouteMatch[],\n  routeId?: string\n): AgnosticDataRouteMatch {\n  let eligibleMatches = routeId\n    ? matches.slice(0, matches.findIndex((m) => m.route.id === routeId) + 1)\n    : [...matches];\n  return (\n    eligibleMatches.reverse().find((m) => m.route.hasErrorBoundary === true) ||\n    matches[0]\n  );\n}\n\nfunction getShortCircuitMatches(routes: AgnosticDataRouteObject[]): {\n  matches: AgnosticDataRouteMatch[];\n  route: AgnosticDataRouteObject;\n} {\n  // Prefer a root layout route if present, otherwise shim in a route object\n  let route = routes.find((r) => r.index || !r.path || r.path === \"/\") || {\n    id: `__shim-error-route__`,\n  };\n\n  return {\n    matches: [\n      {\n        params: {},\n        pathname: \"\",\n        pathnameBase: \"\",\n        route,\n      },\n    ],\n    route,\n  };\n}\n\nfunction getInternalRouterError(\n  status: number,\n  {\n    pathname,\n    routeId,\n    method,\n    type,\n  }: {\n    pathname?: string;\n    routeId?: string;\n    method?: string;\n    type?: \"defer-action\" | \"invalid-body\";\n  } = {}\n) {\n  let statusText = \"Unknown Server Error\";\n  let errorMessage = \"Unknown @remix-run/router error\";\n\n  if (status === 400) {\n    statusText = \"Bad Request\";\n    if (method && pathname && routeId) {\n      errorMessage =\n        `You made a ${method} request to \"${pathname}\" but ` +\n        `did not provide a \\`loader\\` for route \"${routeId}\", ` +\n        `so there is no way to handle the request.`;\n    } else if (type === \"defer-action\") {\n      errorMessage = \"defer() is not supported in actions\";\n    } else if (type === \"invalid-body\") {\n      errorMessage = \"Unable to encode submission body\";\n    }\n  } else if (status === 403) {\n    statusText = \"Forbidden\";\n    errorMessage = `Route \"${routeId}\" does not match URL \"${pathname}\"`;\n  } else if (status === 404) {\n    statusText = \"Not Found\";\n    errorMessage = `No route matches URL \"${pathname}\"`;\n  } else if (status === 405) {\n    statusText = \"Method Not Allowed\";\n    if (method && pathname && routeId) {\n      errorMessage =\n        `You made a ${method.toUpperCase()} request to \"${pathname}\" but ` +\n        `did not provide an \\`action\\` for route \"${routeId}\", ` +\n        `so there is no way to handle the request.`;\n    } else if (method) {\n      errorMessage = `Invalid request method \"${method.toUpperCase()}\"`;\n    }\n  }\n\n  return new ErrorResponse(\n    status || 500,\n    statusText,\n    new Error(errorMessage),\n    true\n  );\n}\n\n// Find any returned redirect errors, starting from the lowest match\nfunction findRedirect(\n  results: DataResult[]\n): { result: RedirectResult; idx: number } | undefined {\n  for (let i = results.length - 1; i >= 0; i--) {\n    let result = results[i];\n    if (isRedirectResult(result)) {\n      return { result, idx: i };\n    }\n  }\n}\n\nfunction stripHashFromPath(path: To) {\n  let parsedPath = typeof path === \"string\" ? parsePath(path) : path;\n  return createPath({ ...parsedPath, hash: \"\" });\n}\n\nfunction isHashChangeOnly(a: Location, b: Location): boolean {\n  if (a.pathname !== b.pathname || a.search !== b.search) {\n    return false;\n  }\n\n  if (a.hash === \"\") {\n    // /page -> /page#hash\n    return b.hash !== \"\";\n  } else if (a.hash === b.hash) {\n    // /page#hash -> /page#hash\n    return true;\n  } else if (b.hash !== \"\") {\n    // /page#hash -> /page#other\n    return true;\n  }\n\n  // If the hash is removed the browser will re-perform a request to the server\n  // /page#hash -> /page\n  return false;\n}\n\nfunction isDeferredResult(result: DataResult): result is DeferredResult {\n  return result.type === ResultType.deferred;\n}\n\nfunction isErrorResult(result: DataResult): result is ErrorResult {\n  return result.type === ResultType.error;\n}\n\nfunction isRedirectResult(result?: DataResult): result is RedirectResult {\n  return (result && result.type) === ResultType.redirect;\n}\n\nexport function isDeferredData(value: any): value is DeferredData {\n  let deferred: DeferredData = value;\n  return (\n    deferred &&\n    typeof deferred === \"object\" &&\n    typeof deferred.data === \"object\" &&\n    typeof deferred.subscribe === \"function\" &&\n    typeof deferred.cancel === \"function\" &&\n    typeof deferred.resolveData === \"function\"\n  );\n}\n\nfunction isResponse(value: any): value is Response {\n  return (\n    value != null &&\n    typeof value.status === \"number\" &&\n    typeof value.statusText === \"string\" &&\n    typeof value.headers === \"object\" &&\n    typeof value.body !== \"undefined\"\n  );\n}\n\nfunction isRedirectResponse(result: any): result is Response {\n  if (!isResponse(result)) {\n    return false;\n  }\n\n  let status = result.status;\n  let location = result.headers.get(\"Location\");\n  return status >= 300 && status <= 399 && location != null;\n}\n\nfunction isQueryRouteResponse(obj: any): obj is QueryRouteResponse {\n  return (\n    obj &&\n    isResponse(obj.response) &&\n    (obj.type === ResultType.data || ResultType.error)\n  );\n}\n\nfunction isValidMethod(method: string): method is FormMethod | V7_FormMethod {\n  return validRequestMethods.has(method.toLowerCase() as FormMethod);\n}\n\nfunction isMutationMethod(\n  method: string\n): method is MutationFormMethod | V7_MutationFormMethod {\n  return validMutationMethods.has(method.toLowerCase() as MutationFormMethod);\n}\n\nasync function resolveDeferredResults(\n  currentMatches: AgnosticDataRouteMatch[],\n  matchesToLoad: (AgnosticDataRouteMatch | null)[],\n  results: DataResult[],\n  signals: (AbortSignal | null)[],\n  isFetcher: boolean,\n  currentLoaderData?: RouteData\n) {\n  for (let index = 0; index < results.length; index++) {\n    let result = results[index];\n    let match = matchesToLoad[index];\n    // If we don't have a match, then we can have a deferred result to do\n    // anything with.  This is for revalidating fetchers where the route was\n    // removed during HMR\n    if (!match) {\n      continue;\n    }\n\n    let currentMatch = currentMatches.find(\n      (m) => m.route.id === match!.route.id\n    );\n    let isRevalidatingLoader =\n      currentMatch != null &&\n      !isNewRouteInstance(currentMatch, match) &&\n      (currentLoaderData && currentLoaderData[match.route.id]) !== undefined;\n\n    if (isDeferredResult(result) && (isFetcher || isRevalidatingLoader)) {\n      // Note: we do not have to touch activeDeferreds here since we race them\n      // against the signal in resolveDeferredData and they'll get aborted\n      // there if needed\n      let signal = signals[index];\n      invariant(\n        signal,\n        \"Expected an AbortSignal for revalidating fetcher deferred result\"\n      );\n      await resolveDeferredData(result, signal, isFetcher).then((result) => {\n        if (result) {\n          results[index] = result || results[index];\n        }\n      });\n    }\n  }\n}\n\nasync function resolveDeferredData(\n  result: DeferredResult,\n  signal: AbortSignal,\n  unwrap = false\n): Promise<SuccessResult | ErrorResult | undefined> {\n  let aborted = await result.deferredData.resolveData(signal);\n  if (aborted) {\n    return;\n  }\n\n  if (unwrap) {\n    try {\n      return {\n        type: ResultType.data,\n        data: result.deferredData.unwrappedData,\n      };\n    } catch (e) {\n      // Handle any TrackedPromise._error values encountered while unwrapping\n      return {\n        type: ResultType.error,\n        error: e,\n      };\n    }\n  }\n\n  return {\n    type: ResultType.data,\n    data: result.deferredData.data,\n  };\n}\n\nfunction hasNakedIndexQuery(search: string): boolean {\n  return new URLSearchParams(search).getAll(\"index\").some((v) => v === \"\");\n}\n\n// Note: This should match the format exported by useMatches, so if you change\n// this please also change that :)  Eventually we'll DRY this up\nfunction createUseMatchesMatch(\n  match: AgnosticDataRouteMatch,\n  loaderData: RouteData\n): UseMatchesMatch {\n  let { route, pathname, params } = match;\n  return {\n    id: route.id,\n    pathname,\n    params,\n    data: loaderData[route.id] as unknown,\n    handle: route.handle as unknown,\n  };\n}\n\nfunction getTargetMatch(\n  matches: AgnosticDataRouteMatch[],\n  location: Location | string\n) {\n  let search =\n    typeof location === \"string\" ? parsePath(location).search : location.search;\n  if (\n    matches[matches.length - 1].route.index &&\n    hasNakedIndexQuery(search || \"\")\n  ) {\n    // Return the leaf index route when index is present\n    return matches[matches.length - 1];\n  }\n  // Otherwise grab the deepest \"path contributing\" match (ignoring index and\n  // pathless layout routes)\n  let pathMatches = getPathContributingMatches(matches);\n  return pathMatches[pathMatches.length - 1];\n}\n\nfunction getSubmissionFromNavigation(\n  navigation: Navigation\n): Submission | undefined {\n  let { formMethod, formAction, formEncType, text, formData, json } =\n    navigation;\n  if (!formMethod || !formAction || !formEncType) {\n    return;\n  }\n\n  if (text != null) {\n    return {\n      formMethod,\n      formAction,\n      formEncType,\n      formData: undefined,\n      json: undefined,\n      text,\n    };\n  } else if (formData != null) {\n    return {\n      formMethod,\n      formAction,\n      formEncType,\n      formData,\n      json: undefined,\n      text: undefined,\n    };\n  } else if (json !== undefined) {\n    return {\n      formMethod,\n      formAction,\n      formEncType,\n      formData: undefined,\n      json,\n      text: undefined,\n    };\n  }\n}\n\nfunction getLoadingNavigation(\n  location: Location,\n  submission?: Submission\n): NavigationStates[\"Loading\"] {\n  if (submission) {\n    let navigation: NavigationStates[\"Loading\"] = {\n      state: \"loading\",\n      location,\n      formMethod: submission.formMethod,\n      formAction: submission.formAction,\n      formEncType: submission.formEncType,\n      formData: submission.formData,\n      json: submission.json,\n      text: submission.text,\n    };\n    return navigation;\n  } else {\n    let navigation: NavigationStates[\"Loading\"] = {\n      state: \"loading\",\n      location,\n      formMethod: undefined,\n      formAction: undefined,\n      formEncType: undefined,\n      formData: undefined,\n      json: undefined,\n      text: undefined,\n    };\n    return navigation;\n  }\n}\n\nfunction getSubmittingNavigation(\n  location: Location,\n  submission: Submission\n): NavigationStates[\"Submitting\"] {\n  let navigation: NavigationStates[\"Submitting\"] = {\n    state: \"submitting\",\n    location,\n    formMethod: submission.formMethod,\n    formAction: submission.formAction,\n    formEncType: submission.formEncType,\n    formData: submission.formData,\n    json: submission.json,\n    text: submission.text,\n  };\n  return navigation;\n}\n\nfunction getLoadingFetcher(\n  submission?: Submission,\n  data?: Fetcher[\"data\"]\n): FetcherStates[\"Loading\"] {\n  if (submission) {\n    let fetcher: FetcherStates[\"Loading\"] = {\n      state: \"loading\",\n      formMethod: submission.formMethod,\n      formAction: submission.formAction,\n      formEncType: submission.formEncType,\n      formData: submission.formData,\n      json: submission.json,\n      text: submission.text,\n      data,\n      \" _hasFetcherDoneAnything \": true,\n    };\n    return fetcher;\n  } else {\n    let fetcher: FetcherStates[\"Loading\"] = {\n      state: \"loading\",\n      formMethod: undefined,\n      formAction: undefined,\n      formEncType: undefined,\n      formData: undefined,\n      json: undefined,\n      text: undefined,\n      data,\n      \" _hasFetcherDoneAnything \": true,\n    };\n    return fetcher;\n  }\n}\n\nfunction getSubmittingFetcher(\n  submission: Submission,\n  existingFetcher?: Fetcher\n): FetcherStates[\"Submitting\"] {\n  let fetcher: FetcherStates[\"Submitting\"] = {\n    state: \"submitting\",\n    formMethod: submission.formMethod,\n    formAction: submission.formAction,\n    formEncType: submission.formEncType,\n    formData: submission.formData,\n    json: submission.json,\n    text: submission.text,\n    data: existingFetcher ? existingFetcher.data : undefined,\n    \" _hasFetcherDoneAnything \": true,\n  };\n  return fetcher;\n}\n\nfunction getDoneFetcher(data: Fetcher[\"data\"]): FetcherStates[\"Idle\"] {\n  let fetcher: FetcherStates[\"Idle\"] = {\n    state: \"idle\",\n    formMethod: undefined,\n    formAction: undefined,\n    formEncType: undefined,\n    formData: undefined,\n    json: undefined,\n    text: undefined,\n    data,\n    \" _hasFetcherDoneAnything \": true,\n  };\n  return fetcher;\n}\n//#endregion\n","import * as React from 'react';\nexport var RefContext = /*#__PURE__*/React.createContext({});","// =============================== Motion ===============================\nexport function getMotionName(prefixCls, transitionName, animationName) {\n  var motionName = transitionName;\n  if (!motionName && animationName) {\n    motionName = \"\".concat(prefixCls, \"-\").concat(animationName);\n  }\n  return motionName;\n}\n\n// =============================== Offset ===============================\nfunction getScroll(w, top) {\n  var ret = w[\"page\".concat(top ? 'Y' : 'X', \"Offset\")];\n  var method = \"scroll\".concat(top ? 'Top' : 'Left');\n  if (typeof ret !== 'number') {\n    var d = w.document;\n    ret = d.documentElement[method];\n    if (typeof ret !== 'number') {\n      ret = d.body[method];\n    }\n  }\n  return ret;\n}\nexport function offset(el) {\n  var rect = el.getBoundingClientRect();\n  var pos = {\n    left: rect.left,\n    top: rect.top\n  };\n  var doc = el.ownerDocument;\n  var w = doc.defaultView || doc.parentWindow;\n  pos.left += getScroll(w);\n  pos.top += getScroll(w, true);\n  return pos;\n}","import * as React from 'react';\nexport default /*#__PURE__*/React.memo(function (_ref) {\n  var children = _ref.children;\n  return children;\n}, function (_, _ref2) {\n  var shouldUpdate = _ref2.shouldUpdate;\n  return !shouldUpdate;\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport classNames from 'classnames';\nimport { useComposeRef } from \"rc-util/es/ref\";\nimport React, { useMemo, useRef } from 'react';\nimport { RefContext } from \"../../context\";\nimport MemoChildren from \"./MemoChildren\";\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nvar sentinelStyle = {\n  width: 0,\n  height: 0,\n  overflow: 'hidden',\n  outline: 'none'\n};\nvar entityStyle = {\n  outline: 'none'\n};\nvar Panel = /*#__PURE__*/React.forwardRef(function (props, ref) {\n  var prefixCls = props.prefixCls,\n    className = props.className,\n    style = props.style,\n    title = props.title,\n    ariaId = props.ariaId,\n    footer = props.footer,\n    closable = props.closable,\n    closeIcon = props.closeIcon,\n    onClose = props.onClose,\n    children = props.children,\n    bodyStyle = props.bodyStyle,\n    bodyProps = props.bodyProps,\n    modalRender = props.modalRender,\n    onMouseDown = props.onMouseDown,\n    onMouseUp = props.onMouseUp,\n    holderRef = props.holderRef,\n    visible = props.visible,\n    forceRender = props.forceRender,\n    width = props.width,\n    height = props.height,\n    modalClassNames = props.classNames,\n    modalStyles = props.styles;\n\n  // ================================= Refs =================================\n  var _React$useContext = React.useContext(RefContext),\n    panelRef = _React$useContext.panel;\n  var mergedRef = useComposeRef(holderRef, panelRef);\n  var sentinelStartRef = useRef();\n  var sentinelEndRef = useRef();\n  React.useImperativeHandle(ref, function () {\n    return {\n      focus: function focus() {\n        var _sentinelStartRef$cur;\n        (_sentinelStartRef$cur = sentinelStartRef.current) === null || _sentinelStartRef$cur === void 0 || _sentinelStartRef$cur.focus({\n          preventScroll: true\n        });\n      },\n      changeActive: function changeActive(next) {\n        var _document = document,\n          activeElement = _document.activeElement;\n        if (next && activeElement === sentinelEndRef.current) {\n          sentinelStartRef.current.focus({\n            preventScroll: true\n          });\n        } else if (!next && activeElement === sentinelStartRef.current) {\n          sentinelEndRef.current.focus({\n            preventScroll: true\n          });\n        }\n      }\n    };\n  });\n\n  // ================================ Style =================================\n  var contentStyle = {};\n  if (width !== undefined) {\n    contentStyle.width = width;\n  }\n  if (height !== undefined) {\n    contentStyle.height = height;\n  }\n  // ================================ Render ================================\n  var footerNode = footer ? /*#__PURE__*/React.createElement(\"div\", {\n    className: classNames(\"\".concat(prefixCls, \"-footer\"), modalClassNames === null || modalClassNames === void 0 ? void 0 : modalClassNames.footer),\n    style: _objectSpread({}, modalStyles === null || modalStyles === void 0 ? void 0 : modalStyles.footer)\n  }, footer) : null;\n  var headerNode = title ? /*#__PURE__*/React.createElement(\"div\", {\n    className: classNames(\"\".concat(prefixCls, \"-header\"), modalClassNames === null || modalClassNames === void 0 ? void 0 : modalClassNames.header),\n    style: _objectSpread({}, modalStyles === null || modalStyles === void 0 ? void 0 : modalStyles.header)\n  }, /*#__PURE__*/React.createElement(\"div\", {\n    className: \"\".concat(prefixCls, \"-title\"),\n    id: ariaId\n  }, title)) : null;\n  var closableObj = useMemo(function () {\n    if (_typeof(closable) === 'object' && closable !== null) {\n      return closable;\n    }\n    if (closable) {\n      return {\n        closeIcon: closeIcon !== null && closeIcon !== void 0 ? closeIcon : /*#__PURE__*/React.createElement(\"span\", {\n          className: \"\".concat(prefixCls, \"-close-x\")\n        })\n      };\n    }\n    return {};\n  }, [closable, closeIcon, prefixCls]);\n  var ariaProps = pickAttrs(closableObj, true);\n  var closeBtnIsDisabled = _typeof(closable) === 'object' && closable.disabled;\n  var closerNode = closable ? /*#__PURE__*/React.createElement(\"button\", _extends({\n    type: \"button\",\n    onClick: onClose,\n    \"aria-label\": \"Close\"\n  }, ariaProps, {\n    className: \"\".concat(prefixCls, \"-close\"),\n    disabled: closeBtnIsDisabled\n  }), closableObj.closeIcon) : null;\n  var content = /*#__PURE__*/React.createElement(\"div\", {\n    className: classNames(\"\".concat(prefixCls, \"-content\"), modalClassNames === null || modalClassNames === void 0 ? void 0 : modalClassNames.content),\n    style: modalStyles === null || modalStyles === void 0 ? void 0 : modalStyles.content\n  }, closerNode, headerNode, /*#__PURE__*/React.createElement(\"div\", _extends({\n    className: classNames(\"\".concat(prefixCls, \"-body\"), modalClassNames === null || modalClassNames === void 0 ? void 0 : modalClassNames.body),\n    style: _objectSpread(_objectSpread({}, bodyStyle), modalStyles === null || modalStyles === void 0 ? void 0 : modalStyles.body)\n  }, bodyProps), children), footerNode);\n  return /*#__PURE__*/React.createElement(\"div\", {\n    key: \"dialog-element\",\n    role: \"dialog\",\n    \"aria-labelledby\": title ? ariaId : null,\n    \"aria-modal\": \"true\",\n    ref: mergedRef,\n    style: _objectSpread(_objectSpread({}, style), contentStyle),\n    className: classNames(prefixCls, className),\n    onMouseDown: onMouseDown,\n    onMouseUp: onMouseUp\n  }, /*#__PURE__*/React.createElement(\"div\", {\n    ref: sentinelStartRef,\n    tabIndex: 0,\n    style: entityStyle\n  }, /*#__PURE__*/React.createElement(MemoChildren, {\n    shouldUpdate: visible || forceRender\n  }, modalRender ? modalRender(content) : content)), /*#__PURE__*/React.createElement(\"div\", {\n    tabIndex: 0,\n    ref: sentinelEndRef,\n    style: sentinelStyle\n  }));\n});\nif (process.env.NODE_ENV !== 'production') {\n  Panel.displayName = 'Panel';\n}\nexport default Panel;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { useRef } from 'react';\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport { offset } from \"../../util\";\nimport Panel from \"./Panel\";\nvar Content = /*#__PURE__*/React.forwardRef(function (props, ref) {\n  var prefixCls = props.prefixCls,\n    title = props.title,\n    style = props.style,\n    className = props.className,\n    visible = props.visible,\n    forceRender = props.forceRender,\n    destroyOnClose = props.destroyOnClose,\n    motionName = props.motionName,\n    ariaId = props.ariaId,\n    onVisibleChanged = props.onVisibleChanged,\n    mousePosition = props.mousePosition;\n  var dialogRef = useRef();\n\n  // ============================= Style ==============================\n  var _React$useState = React.useState(),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    transformOrigin = _React$useState2[0],\n    setTransformOrigin = _React$useState2[1];\n  var contentStyle = {};\n  if (transformOrigin) {\n    contentStyle.transformOrigin = transformOrigin;\n  }\n  function onPrepare() {\n    var elementOffset = offset(dialogRef.current);\n    setTransformOrigin(mousePosition && (mousePosition.x || mousePosition.y) ? \"\".concat(mousePosition.x - elementOffset.left, \"px \").concat(mousePosition.y - elementOffset.top, \"px\") : '');\n  }\n\n  // ============================= Render =============================\n  return /*#__PURE__*/React.createElement(CSSMotion, {\n    visible: visible,\n    onVisibleChanged: onVisibleChanged,\n    onAppearPrepare: onPrepare,\n    onEnterPrepare: onPrepare,\n    forceRender: forceRender,\n    motionName: motionName,\n    removeOnLeave: destroyOnClose,\n    ref: dialogRef\n  }, function (_ref, motionRef) {\n    var motionClassName = _ref.className,\n      motionStyle = _ref.style;\n    return /*#__PURE__*/React.createElement(Panel, _extends({}, props, {\n      ref: ref,\n      title: title,\n      ariaId: ariaId,\n      prefixCls: prefixCls,\n      holderRef: motionRef,\n      style: _objectSpread(_objectSpread(_objectSpread({}, motionStyle), style), contentStyle),\n      className: classNames(className, motionClassName)\n    }));\n  });\n});\nContent.displayName = 'Content';\nexport default Content;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nvar Mask = function Mask(props) {\n  var prefixCls = props.prefixCls,\n    style = props.style,\n    visible = props.visible,\n    maskProps = props.maskProps,\n    motionName = props.motionName,\n    className = props.className;\n  return /*#__PURE__*/React.createElement(CSSMotion, {\n    key: \"mask\",\n    visible: visible,\n    motionName: motionName,\n    leavedClassName: \"\".concat(prefixCls, \"-mask-hidden\")\n  }, function (_ref, ref) {\n    var motionClassName = _ref.className,\n      motionStyle = _ref.style;\n    return /*#__PURE__*/React.createElement(\"div\", _extends({\n      ref: ref,\n      style: _objectSpread(_objectSpread({}, motionStyle), style),\n      className: classNames(\"\".concat(prefixCls, \"-mask\"), motionClassName, className)\n    }, maskProps));\n  });\n};\nexport default Mask;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport classNames from 'classnames';\nimport contains from \"rc-util/es/Dom/contains\";\nimport useId from \"rc-util/es/hooks/useId\";\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport * as React from 'react';\nimport { useEffect, useRef } from 'react';\nimport { getMotionName } from \"../util\";\nimport Content from \"./Content\";\nimport Mask from \"./Mask\";\nimport { warning } from \"rc-util/es/warning\";\nvar Dialog = function Dialog(props) {\n  var _props$prefixCls = props.prefixCls,\n    prefixCls = _props$prefixCls === void 0 ? 'rc-dialog' : _props$prefixCls,\n    zIndex = props.zIndex,\n    _props$visible = props.visible,\n    visible = _props$visible === void 0 ? false : _props$visible,\n    _props$keyboard = props.keyboard,\n    keyboard = _props$keyboard === void 0 ? true : _props$keyboard,\n    _props$focusTriggerAf = props.focusTriggerAfterClose,\n    focusTriggerAfterClose = _props$focusTriggerAf === void 0 ? true : _props$focusTriggerAf,\n    wrapStyle = props.wrapStyle,\n    wrapClassName = props.wrapClassName,\n    wrapProps = props.wrapProps,\n    onClose = props.onClose,\n    afterOpenChange = props.afterOpenChange,\n    afterClose = props.afterClose,\n    transitionName = props.transitionName,\n    animation = props.animation,\n    _props$closable = props.closable,\n    closable = _props$closable === void 0 ? true : _props$closable,\n    _props$mask = props.mask,\n    mask = _props$mask === void 0 ? true : _props$mask,\n    maskTransitionName = props.maskTransitionName,\n    maskAnimation = props.maskAnimation,\n    _props$maskClosable = props.maskClosable,\n    maskClosable = _props$maskClosable === void 0 ? true : _props$maskClosable,\n    maskStyle = props.maskStyle,\n    maskProps = props.maskProps,\n    rootClassName = props.rootClassName,\n    modalClassNames = props.classNames,\n    modalStyles = props.styles;\n  if (process.env.NODE_ENV !== 'production') {\n    ['wrapStyle', 'bodyStyle', 'maskStyle'].forEach(function (prop) {\n      // (prop in props) && console.error(`Warning: ${prop} is deprecated, please use styles instead.`)\n      warning(!(prop in props), \"\".concat(prop, \" is deprecated, please use styles instead.\"));\n    });\n    if ('wrapClassName' in props) {\n      warning(false, \"wrapClassName is deprecated, please use classNames instead.\");\n    }\n  }\n  var lastOutSideActiveElementRef = useRef();\n  var wrapperRef = useRef();\n  var contentRef = useRef();\n  var _React$useState = React.useState(visible),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    animatedVisible = _React$useState2[0],\n    setAnimatedVisible = _React$useState2[1];\n\n  // ========================== Init ==========================\n  var ariaId = useId();\n  function saveLastOutSideActiveElementRef() {\n    if (!contains(wrapperRef.current, document.activeElement)) {\n      lastOutSideActiveElementRef.current = document.activeElement;\n    }\n  }\n  function focusDialogContent() {\n    if (!contains(wrapperRef.current, document.activeElement)) {\n      var _contentRef$current;\n      (_contentRef$current = contentRef.current) === null || _contentRef$current === void 0 || _contentRef$current.focus();\n    }\n  }\n\n  // ========================= Events =========================\n  function onDialogVisibleChanged(newVisible) {\n    // Try to focus\n    if (newVisible) {\n      focusDialogContent();\n    } else {\n      // Clean up scroll bar & focus back\n      setAnimatedVisible(false);\n      if (mask && lastOutSideActiveElementRef.current && focusTriggerAfterClose) {\n        try {\n          lastOutSideActiveElementRef.current.focus({\n            preventScroll: true\n          });\n        } catch (e) {\n          // Do nothing\n        }\n        lastOutSideActiveElementRef.current = null;\n      }\n\n      // Trigger afterClose only when change visible from true to false\n      if (animatedVisible) {\n        afterClose === null || afterClose === void 0 || afterClose();\n      }\n    }\n    afterOpenChange === null || afterOpenChange === void 0 || afterOpenChange(newVisible);\n  }\n  function onInternalClose(e) {\n    onClose === null || onClose === void 0 || onClose(e);\n  }\n\n  // >>> Content\n  var contentClickRef = useRef(false);\n  var contentTimeoutRef = useRef();\n\n  // We need record content click incase content popup out of dialog\n  var onContentMouseDown = function onContentMouseDown() {\n    clearTimeout(contentTimeoutRef.current);\n    contentClickRef.current = true;\n  };\n  var onContentMouseUp = function onContentMouseUp() {\n    contentTimeoutRef.current = setTimeout(function () {\n      contentClickRef.current = false;\n    });\n  };\n\n  // >>> Wrapper\n  // Close only when element not on dialog\n  var onWrapperClick = null;\n  if (maskClosable) {\n    onWrapperClick = function onWrapperClick(e) {\n      if (contentClickRef.current) {\n        contentClickRef.current = false;\n      } else if (wrapperRef.current === e.target) {\n        onInternalClose(e);\n      }\n    };\n  }\n  function onWrapperKeyDown(e) {\n    if (keyboard && e.keyCode === KeyCode.ESC) {\n      e.stopPropagation();\n      onInternalClose(e);\n      return;\n    }\n\n    // keep focus inside dialog\n    if (visible && e.keyCode === KeyCode.TAB) {\n      contentRef.current.changeActive(!e.shiftKey);\n    }\n  }\n\n  // ========================= Effect =========================\n  useEffect(function () {\n    if (visible) {\n      setAnimatedVisible(true);\n      saveLastOutSideActiveElementRef();\n    }\n  }, [visible]);\n\n  // Remove direct should also check the scroll bar update\n  useEffect(function () {\n    return function () {\n      clearTimeout(contentTimeoutRef.current);\n    };\n  }, []);\n  var mergedStyle = _objectSpread(_objectSpread(_objectSpread({\n    zIndex: zIndex\n  }, wrapStyle), modalStyles === null || modalStyles === void 0 ? void 0 : modalStyles.wrapper), {}, {\n    display: !animatedVisible ? 'none' : null\n  });\n\n  // ========================= Render =========================\n  return /*#__PURE__*/React.createElement(\"div\", _extends({\n    className: classNames(\"\".concat(prefixCls, \"-root\"), rootClassName)\n  }, pickAttrs(props, {\n    data: true\n  })), /*#__PURE__*/React.createElement(Mask, {\n    prefixCls: prefixCls,\n    visible: mask && visible,\n    motionName: getMotionName(prefixCls, maskTransitionName, maskAnimation),\n    style: _objectSpread(_objectSpread({\n      zIndex: zIndex\n    }, maskStyle), modalStyles === null || modalStyles === void 0 ? void 0 : modalStyles.mask),\n    maskProps: maskProps,\n    className: modalClassNames === null || modalClassNames === void 0 ? void 0 : modalClassNames.mask\n  }), /*#__PURE__*/React.createElement(\"div\", _extends({\n    tabIndex: -1,\n    onKeyDown: onWrapperKeyDown,\n    className: classNames(\"\".concat(prefixCls, \"-wrap\"), wrapClassName, modalClassNames === null || modalClassNames === void 0 ? void 0 : modalClassNames.wrapper),\n    ref: wrapperRef,\n    onClick: onWrapperClick,\n    style: mergedStyle\n  }, wrapProps), /*#__PURE__*/React.createElement(Content, _extends({}, props, {\n    onMouseDown: onContentMouseDown,\n    onMouseUp: onContentMouseUp,\n    ref: contentRef,\n    closable: closable,\n    ariaId: ariaId,\n    prefixCls: prefixCls,\n    visible: visible && animatedVisible,\n    onClose: onInternalClose,\n    onVisibleChanged: onDialogVisibleChanged,\n    motionName: getMotionName(prefixCls, transitionName, animation)\n  }))));\n};\nexport default Dialog;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport Portal from '@rc-component/portal';\nimport * as React from 'react';\nimport { RefContext } from \"./context\";\nimport Dialog from \"./Dialog\";\n// fix issue #10656\n/*\n * getContainer remarks\n * Custom container should not be return, because in the Portal component, it will remove the\n * return container element here, if the custom container is the only child of it's component,\n * like issue #10656, It will has a conflict with removeChild method in react-dom.\n * So here should add a child (div element) to custom container.\n * */\n\nvar DialogWrap = function DialogWrap(props) {\n  var visible = props.visible,\n    getContainer = props.getContainer,\n    forceRender = props.forceRender,\n    _props$destroyOnClose = props.destroyOnClose,\n    destroyOnClose = _props$destroyOnClose === void 0 ? false : _props$destroyOnClose,\n    _afterClose = props.afterClose,\n    panelRef = props.panelRef;\n  var _React$useState = React.useState(visible),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    animatedVisible = _React$useState2[0],\n    setAnimatedVisible = _React$useState2[1];\n  var refContext = React.useMemo(function () {\n    return {\n      panel: panelRef\n    };\n  }, [panelRef]);\n  React.useEffect(function () {\n    if (visible) {\n      setAnimatedVisible(true);\n    }\n  }, [visible]);\n\n  // Destroy on close will remove wrapped div\n  if (!forceRender && destroyOnClose && !animatedVisible) {\n    return null;\n  }\n  return /*#__PURE__*/React.createElement(RefContext.Provider, {\n    value: refContext\n  }, /*#__PURE__*/React.createElement(Portal, {\n    open: visible || forceRender || animatedVisible,\n    autoDestroy: false,\n    getContainer: getContainer,\n    autoLock: visible || animatedVisible\n  }, /*#__PURE__*/React.createElement(Dialog, _extends({}, props, {\n    destroyOnClose: destroyOnClose,\n    afterClose: function afterClose() {\n      _afterClose === null || _afterClose === void 0 || _afterClose();\n      setAnimatedVisible(false);\n    }\n  }))));\n};\nDialogWrap.displayName = 'Dialog';\nexport default DialogWrap;","import DialogWrap from \"./DialogWrap\";\nimport Panel from \"./Dialog/Content/Panel\";\nexport { Panel };\nexport default DialogWrap;","import type { Action, ActionCreator, StoreEnhancer } from 'redux'\r\nimport { compose } from 'redux'\r\n\r\n/**\r\n * @public\r\n */\r\nexport interface DevToolsEnhancerOptions {\r\n  /**\r\n   * the instance name to be showed on the monitor page. Default value is `document.title`.\r\n   * If not specified and there's no document title, it will consist of `tabId` and `instanceId`.\r\n   */\r\n  name?: string\r\n  /**\r\n   * action creators functions to be available in the Dispatcher.\r\n   */\r\n  actionCreators?: ActionCreator<any>[] | { [key: string]: ActionCreator<any> }\r\n  /**\r\n   * if more than one action is dispatched in the indicated interval, all new actions will be collected and sent at once.\r\n   * It is the joint between performance and speed. When set to `0`, all actions will be sent instantly.\r\n   * Set it to a higher value when experiencing perf issues (also `maxAge` to a lower value).\r\n   *\r\n   * @default 500 ms.\r\n   */\r\n  latency?: number\r\n  /**\r\n   * (> 1) - maximum allowed actions to be stored in the history tree. The oldest actions are removed once maxAge is reached. It's critical for performance.\r\n   *\r\n   * @default 50\r\n   */\r\n  maxAge?: number\r\n  /**\r\n   * Customizes how actions and state are serialized and deserialized. Can be a boolean or object. If given a boolean, the behavior is the same as if you\r\n   * were to pass an object and specify `options` as a boolean. Giving an object allows fine-grained customization using the `replacer` and `reviver`\r\n   * functions.\r\n   */\r\n  serialize?:\r\n    | boolean\r\n    | {\r\n        /**\r\n         * - `undefined` - will use regular `JSON.stringify` to send data (it's the fast mode).\r\n         * - `false` - will handle also circular references.\r\n         * - `true` - will handle also date, regex, undefined, error objects, symbols, maps, sets and functions.\r\n         * - object, which contains `date`, `regex`, `undefined`, `error`, `symbol`, `map`, `set` and `function` keys.\r\n         *   For each of them you can indicate if to include (by setting as `true`).\r\n         *   For `function` key you can also specify a custom function which handles serialization.\r\n         *   See [`jsan`](https://github.com/kolodny/jsan) for more details.\r\n         */\r\n        options?:\r\n          | undefined\r\n          | boolean\r\n          | {\r\n              date?: true\r\n              regex?: true\r\n              undefined?: true\r\n              error?: true\r\n              symbol?: true\r\n              map?: true\r\n              set?: true\r\n              function?: true | ((fn: (...args: any[]) => any) => string)\r\n            }\r\n        /**\r\n         * [JSON replacer function](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify#The_replacer_parameter) used for both actions and states stringify.\r\n         * In addition, you can specify a data type by adding a [`__serializedType__`](https://github.com/zalmoxisus/remotedev-serialize/blob/master/helpers/index.js#L4)\r\n         * key. So you can deserialize it back while importing or persisting data.\r\n         * Moreover, it will also [show a nice preview showing the provided custom type](https://cloud.githubusercontent.com/assets/7957859/21814330/a17d556a-d761-11e6-85ef-159dd12f36c5.png):\r\n         */\r\n        replacer?: (key: string, value: unknown) => any\r\n        /**\r\n         * [JSON `reviver` function](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse#Using_the_reviver_parameter)\r\n         * used for parsing the imported actions and states. See [`remotedev-serialize`](https://github.com/zalmoxisus/remotedev-serialize/blob/master/immutable/serialize.js#L8-L41)\r\n         * as an example on how to serialize special data types and get them back.\r\n         */\r\n        reviver?: (key: string, value: unknown) => any\r\n        /**\r\n         * Automatically serialize/deserialize immutablejs via [remotedev-serialize](https://github.com/zalmoxisus/remotedev-serialize).\r\n         * Just pass the Immutable library. It will support all ImmutableJS structures. You can even export them into a file and get them back.\r\n         * The only exception is `Record` class, for which you should pass this in addition the references to your classes in `refs`.\r\n         */\r\n        immutable?: any\r\n        /**\r\n         * ImmutableJS `Record` classes used to make possible restore its instances back when importing, persisting...\r\n         */\r\n        refs?: any\r\n      }\r\n  /**\r\n   * function which takes `action` object and id number as arguments, and should return `action` object back.\r\n   */\r\n  actionSanitizer?: <A extends Action>(action: A, id: number) => A\r\n  /**\r\n   * function which takes `state` object and index as arguments, and should return `state` object back.\r\n   */\r\n  stateSanitizer?: <S>(state: S, index: number) => S\r\n  /**\r\n   * *string or array of strings as regex* - actions types to be hidden / shown in the monitors (while passed to the reducers).\r\n   * If `actionsWhitelist` specified, `actionsBlacklist` is ignored.\r\n   * @deprecated Use actionsDenylist instead.\r\n   */\r\n  actionsBlacklist?: string | string[]\r\n  /**\r\n   * *string or array of strings as regex* - actions types to be hidden / shown in the monitors (while passed to the reducers).\r\n   * If `actionsWhitelist` specified, `actionsBlacklist` is ignored.\r\n   * @deprecated Use actionsAllowlist instead.\r\n   */\r\n  actionsWhitelist?: string | string[]\r\n  /**\r\n   * *string or array of strings as regex* - actions types to be hidden / shown in the monitors (while passed to the reducers).\r\n   * If `actionsAllowlist` specified, `actionsDenylist` is ignored.\r\n   */\r\n  actionsDenylist?: string | string[]\r\n  /**\r\n   * *string or array of strings as regex* - actions types to be hidden / shown in the monitors (while passed to the reducers).\r\n   * If `actionsAllowlist` specified, `actionsDenylist` is ignored.\r\n   */\r\n  actionsAllowlist?: string | string[]\r\n  /**\r\n   * called for every action before sending, takes `state` and `action` object, and returns `true` in case it allows sending the current data to the monitor.\r\n   * Use it as a more advanced version of `actionsDenylist`/`actionsAllowlist` parameters.\r\n   */\r\n  predicate?: <S, A extends Action>(state: S, action: A) => boolean\r\n  /**\r\n   * if specified as `false`, it will not record the changes till clicking on `Start recording` button.\r\n   * Available only for Redux enhancer, for others use `autoPause`.\r\n   *\r\n   * @default true\r\n   */\r\n  shouldRecordChanges?: boolean\r\n  /**\r\n   * if specified, whenever clicking on `Pause recording` button and there are actions in the history log, will add this action type.\r\n   * If not specified, will commit when paused. Available only for Redux enhancer.\r\n   *\r\n   * @default \"@@PAUSED\"\"\r\n   */\r\n  pauseActionType?: string\r\n  /**\r\n   * auto pauses when the extension’s window is not opened, and so has zero impact on your app when not in use.\r\n   * Not available for Redux enhancer (as it already does it but storing the data to be sent).\r\n   *\r\n   * @default false\r\n   */\r\n  autoPause?: boolean\r\n  /**\r\n   * if specified as `true`, it will not allow any non-monitor actions to be dispatched till clicking on `Unlock changes` button.\r\n   * Available only for Redux enhancer.\r\n   *\r\n   * @default false\r\n   */\r\n  shouldStartLocked?: boolean\r\n  /**\r\n   * if set to `false`, will not recompute the states on hot reloading (or on replacing the reducers). Available only for Redux enhancer.\r\n   *\r\n   * @default true\r\n   */\r\n  shouldHotReload?: boolean\r\n  /**\r\n   * if specified as `true`, whenever there's an exception in reducers, the monitors will show the error message, and next actions will not be dispatched.\r\n   *\r\n   * @default false\r\n   */\r\n  shouldCatchErrors?: boolean\r\n  /**\r\n   * If you want to restrict the extension, specify the features you allow.\r\n   * If not specified, all of the features are enabled. When set as an object, only those included as `true` will be allowed.\r\n   * Note that except `true`/`false`, `import` and `export` can be set as `custom` (which is by default for Redux enhancer), meaning that the importing/exporting occurs on the client side.\r\n   * Otherwise, you'll get/set the data right from the monitor part.\r\n   */\r\n  features?: {\r\n    /**\r\n     * start/pause recording of dispatched actions\r\n     */\r\n    pause?: boolean\r\n    /**\r\n     * lock/unlock dispatching actions and side effects\r\n     */\r\n    lock?: boolean\r\n    /**\r\n     * persist states on page reloading\r\n     */\r\n    persist?: boolean\r\n    /**\r\n     * export history of actions in a file\r\n     */\r\n    export?: boolean | 'custom'\r\n    /**\r\n     * import history of actions from a file\r\n     */\r\n    import?: boolean | 'custom'\r\n    /**\r\n     * jump back and forth (time travelling)\r\n     */\r\n    jump?: boolean\r\n    /**\r\n     * skip (cancel) actions\r\n     */\r\n    skip?: boolean\r\n    /**\r\n     * drag and drop actions in the history list\r\n     */\r\n    reorder?: boolean\r\n    /**\r\n     * dispatch custom actions or action creators\r\n     */\r\n    dispatch?: boolean\r\n    /**\r\n     * generate tests for the selected actions\r\n     */\r\n    test?: boolean\r\n  }\r\n  /**\r\n   * Set to true or a stacktrace-returning function to record call stack traces for dispatched actions.\r\n   * Defaults to false.\r\n   */\r\n  trace?: boolean | (<A extends Action>(action: A) => string)\r\n  /**\r\n   * The maximum number of stack trace entries to record per action. Defaults to 10.\r\n   */\r\n  traceLimit?: number\r\n}\r\n\r\ntype Compose = typeof compose\r\n\r\ninterface ComposeWithDevTools {\r\n  (options: DevToolsEnhancerOptions): Compose\r\n  <StoreExt>(...funcs: StoreEnhancer<StoreExt>[]): StoreEnhancer<StoreExt>\r\n}\r\n\r\n/**\r\n * @public\r\n */\r\nexport const composeWithDevTools: ComposeWithDevTools =\r\n  typeof window !== 'undefined' &&\r\n  (window as any).__REDUX_DEVTOOLS_EXTENSION_COMPOSE__\r\n    ? (window as any).__REDUX_DEVTOOLS_EXTENSION_COMPOSE__\r\n    : function () {\r\n        if (arguments.length === 0) return undefined\r\n        if (typeof arguments[0] === 'object') return compose\r\n        return compose.apply(null, arguments as any as Function[])\r\n      }\r\n\r\n/**\r\n * @public\r\n */\r\nexport const devToolsEnhancer: {\r\n  (options: DevToolsEnhancerOptions): StoreEnhancer<any>\r\n} =\r\n  typeof window !== 'undefined' && (window as any).__REDUX_DEVTOOLS_EXTENSION__\r\n    ? (window as any).__REDUX_DEVTOOLS_EXTENSION__\r\n    : function () {\r\n        return function (noop) {\r\n          return noop\r\n        }\r\n      }\r\n","/**\r\n * Returns true if the passed value is \"plain\" object, i.e. an object whose\r\n * prototype is the root `Object.prototype`. This includes objects created\r\n * using object literals, but not for instance for class instances.\r\n *\r\n * @param {any} value The value to inspect.\r\n * @returns {boolean} True if the argument appears to be a plain object.\r\n *\r\n * @public\r\n */\r\nexport default function isPlainObject(value: unknown): value is object {\r\n  if (typeof value !== 'object' || value === null) return false\r\n\r\n  let proto = Object.getPrototypeOf(value)\r\n  if (proto === null) return true\r\n\r\n  let baseProto = proto\r\n  while (Object.getPrototypeOf(baseProto) !== null) {\r\n    baseProto = Object.getPrototypeOf(baseProto)\r\n  }\r\n\r\n  return proto === baseProto\r\n}\r\n","import createNextState, { isDraftable } from 'immer'\r\nimport type { Middleware, StoreEnhancer } from 'redux'\r\n\r\nexport function getTimeMeasureUtils(maxDelay: number, fnName: string) {\r\n  let elapsed = 0\r\n  return {\r\n    measureTime<T>(fn: () => T): T {\r\n      const started = Date.now()\r\n      try {\r\n        return fn()\r\n      } finally {\r\n        const finished = Date.now()\r\n        elapsed += finished - started\r\n      }\r\n    },\r\n    warnIfExceeded() {\r\n      if (elapsed > maxDelay) {\r\n        console.warn(`${fnName} took ${elapsed}ms, which is more than the warning threshold of ${maxDelay}ms. \r\nIf your state or actions are very large, you may want to disable the middleware as it might cause too much of a slowdown in development mode. See https://redux-toolkit.js.org/api/getDefaultMiddleware for instructions.\r\nIt is disabled in production builds, so you don't need to worry about that.`)\r\n      }\r\n    },\r\n  }\r\n}\r\n\r\nexport function delay(ms: number) {\r\n  return new Promise((resolve) => setTimeout(resolve, ms))\r\n}\r\n\r\n/**\r\n * @public\r\n */\r\nexport class MiddlewareArray<\r\n  Middlewares extends Middleware<any, any>[]\r\n> extends Array<Middlewares[number]> {\r\n  constructor(...items: Middlewares)\r\n  constructor(...args: any[]) {\r\n    super(...args)\r\n    Object.setPrototypeOf(this, MiddlewareArray.prototype)\r\n  }\r\n\r\n  static get [Symbol.species]() {\r\n    return MiddlewareArray as any\r\n  }\r\n\r\n  concat<AdditionalMiddlewares extends ReadonlyArray<Middleware<any, any>>>(\r\n    items: AdditionalMiddlewares\r\n  ): MiddlewareArray<[...Middlewares, ...AdditionalMiddlewares]>\r\n\r\n  concat<AdditionalMiddlewares extends ReadonlyArray<Middleware<any, any>>>(\r\n    ...items: AdditionalMiddlewares\r\n  ): MiddlewareArray<[...Middlewares, ...AdditionalMiddlewares]>\r\n  concat(...arr: any[]) {\r\n    return super.concat.apply(this, arr)\r\n  }\r\n\r\n  prepend<AdditionalMiddlewares extends ReadonlyArray<Middleware<any, any>>>(\r\n    items: AdditionalMiddlewares\r\n  ): MiddlewareArray<[...AdditionalMiddlewares, ...Middlewares]>\r\n\r\n  prepend<AdditionalMiddlewares extends ReadonlyArray<Middleware<any, any>>>(\r\n    ...items: AdditionalMiddlewares\r\n  ): MiddlewareArray<[...AdditionalMiddlewares, ...Middlewares]>\r\n\r\n  prepend(...arr: any[]) {\r\n    if (arr.length === 1 && Array.isArray(arr[0])) {\r\n      return new MiddlewareArray(...arr[0].concat(this))\r\n    }\r\n    return new MiddlewareArray(...arr.concat(this))\r\n  }\r\n}\r\n\r\n/**\r\n * @public\r\n */\r\nexport class EnhancerArray<\r\n  Enhancers extends StoreEnhancer<any, any>[]\r\n> extends Array<Enhancers[number]> {\r\n  constructor(...items: Enhancers)\r\n  constructor(...args: any[]) {\r\n    super(...args)\r\n    Object.setPrototypeOf(this, EnhancerArray.prototype)\r\n  }\r\n\r\n  static get [Symbol.species]() {\r\n    return EnhancerArray as any\r\n  }\r\n\r\n  concat<AdditionalEnhancers extends ReadonlyArray<StoreEnhancer<any, any>>>(\r\n    items: AdditionalEnhancers\r\n  ): EnhancerArray<[...Enhancers, ...AdditionalEnhancers]>\r\n\r\n  concat<AdditionalEnhancers extends ReadonlyArray<StoreEnhancer<any, any>>>(\r\n    ...items: AdditionalEnhancers\r\n  ): EnhancerArray<[...Enhancers, ...AdditionalEnhancers]>\r\n  concat(...arr: any[]) {\r\n    return super.concat.apply(this, arr)\r\n  }\r\n\r\n  prepend<AdditionalEnhancers extends ReadonlyArray<StoreEnhancer<any, any>>>(\r\n    items: AdditionalEnhancers\r\n  ): EnhancerArray<[...AdditionalEnhancers, ...Enhancers]>\r\n\r\n  prepend<AdditionalEnhancers extends ReadonlyArray<StoreEnhancer<any, any>>>(\r\n    ...items: AdditionalEnhancers\r\n  ): EnhancerArray<[...AdditionalEnhancers, ...Enhancers]>\r\n\r\n  prepend(...arr: any[]) {\r\n    if (arr.length === 1 && Array.isArray(arr[0])) {\r\n      return new EnhancerArray(...arr[0].concat(this))\r\n    }\r\n    return new EnhancerArray(...arr.concat(this))\r\n  }\r\n}\r\n\r\nexport function freezeDraftable<T>(val: T) {\r\n  return isDraftable(val) ? createNextState(val, () => {}) : val\r\n}\r\n","import type { Middleware, AnyAction } from 'redux'\r\nimport type { ThunkMiddleware } from 'redux-thunk'\r\nimport thunkMiddleware from 'redux-thunk'\r\nimport type { ImmutableStateInvariantMiddlewareOptions } from './immutableStateInvariantMiddleware'\r\n/* PROD_START_REMOVE_UMD */\r\nimport { createImmutableStateInvariantMiddleware } from './immutableStateInvariantMiddleware'\r\n/* PROD_STOP_REMOVE_UMD */\r\n\r\nimport type { SerializableStateInvariantMiddlewareOptions } from './serializableStateInvariantMiddleware'\r\nimport { createSerializableStateInvariantMiddleware } from './serializableStateInvariantMiddleware'\r\nimport type { ExcludeFromTuple } from './tsHelpers'\r\nimport { MiddlewareArray } from './utils'\r\n\r\nfunction isBoolean(x: any): x is boolean {\r\n  return typeof x === 'boolean'\r\n}\r\n\r\ninterface ThunkOptions<E = any> {\r\n  extraArgument: E\r\n}\r\n\r\ninterface GetDefaultMiddlewareOptions {\r\n  thunk?: boolean | ThunkOptions\r\n  immutableCheck?: boolean | ImmutableStateInvariantMiddlewareOptions\r\n  serializableCheck?: boolean | SerializableStateInvariantMiddlewareOptions\r\n}\r\n\r\nexport type ThunkMiddlewareFor<\r\n  S,\r\n  O extends GetDefaultMiddlewareOptions = {}\r\n> = O extends {\r\n  thunk: false\r\n}\r\n  ? never\r\n  : O extends { thunk: { extraArgument: infer E } }\r\n  ? ThunkMiddleware<S, AnyAction, E>\r\n  : ThunkMiddleware<S, AnyAction>\r\n\r\nexport type CurriedGetDefaultMiddleware<S = any> = <\r\n  O extends Partial<GetDefaultMiddlewareOptions> = {\r\n    thunk: true\r\n    immutableCheck: true\r\n    serializableCheck: true\r\n  }\r\n>(\r\n  options?: O\r\n) => MiddlewareArray<ExcludeFromTuple<[ThunkMiddlewareFor<S, O>], never>>\r\n\r\nexport function curryGetDefaultMiddleware<\r\n  S = any\r\n>(): CurriedGetDefaultMiddleware<S> {\r\n  return function curriedGetDefaultMiddleware(options) {\r\n    return getDefaultMiddleware(options)\r\n  }\r\n}\r\n\r\n/**\r\n * Returns any array containing the default middleware installed by\r\n * `configureStore()`. Useful if you want to configure your store with a custom\r\n * `middleware` array but still keep the default set.\r\n *\r\n * @return The default middleware used by `configureStore()`.\r\n *\r\n * @public\r\n *\r\n * @deprecated Prefer to use the callback notation for the `middleware` option in `configureStore`\r\n * to access a pre-typed `getDefaultMiddleware` instead.\r\n */\r\nexport function getDefaultMiddleware<\r\n  S = any,\r\n  O extends Partial<GetDefaultMiddlewareOptions> = {\r\n    thunk: true\r\n    immutableCheck: true\r\n    serializableCheck: true\r\n  }\r\n>(\r\n  options: O = {} as O\r\n): MiddlewareArray<ExcludeFromTuple<[ThunkMiddlewareFor<S, O>], never>> {\r\n  const {\r\n    thunk = true,\r\n    immutableCheck = true,\r\n    serializableCheck = true,\r\n  } = options\r\n\r\n  let middlewareArray = new MiddlewareArray<Middleware[]>()\r\n\r\n  if (thunk) {\r\n    if (isBoolean(thunk)) {\r\n      middlewareArray.push(thunkMiddleware)\r\n    } else {\r\n      middlewareArray.push(\r\n        thunkMiddleware.withExtraArgument(thunk.extraArgument)\r\n      )\r\n    }\r\n  }\r\n\r\n  if (process.env.NODE_ENV !== 'production') {\r\n    if (immutableCheck) {\r\n      /* PROD_START_REMOVE_UMD */\r\n      let immutableOptions: ImmutableStateInvariantMiddlewareOptions = {}\r\n\r\n      if (!isBoolean(immutableCheck)) {\r\n        immutableOptions = immutableCheck\r\n      }\r\n\r\n      middlewareArray.unshift(\r\n        createImmutableStateInvariantMiddleware(immutableOptions)\r\n      )\r\n      /* PROD_STOP_REMOVE_UMD */\r\n    }\r\n\r\n    if (serializableCheck) {\r\n      let serializableOptions: SerializableStateInvariantMiddlewareOptions = {}\r\n\r\n      if (!isBoolean(serializableCheck)) {\r\n        serializableOptions = serializableCheck\r\n      }\r\n\r\n      middlewareArray.push(\r\n        createSerializableStateInvariantMiddleware(serializableOptions)\r\n      )\r\n    }\r\n  }\r\n\r\n  return middlewareArray as any\r\n}\r\n","import type {\r\n  Reducer,\r\n  ReducersMapObject,\r\n  Middleware,\r\n  Action,\r\n  AnyAction,\r\n  StoreEnhancer,\r\n  Store,\r\n  Dispatch,\r\n  PreloadedState,\r\n  CombinedState,\r\n} from 'redux'\r\nimport { createStore, compose, applyMiddleware, combineReducers } from 'redux'\r\nimport type { DevToolsEnhancerOptions as DevToolsOptions } from './devtoolsExtension'\r\nimport { composeWithDevTools } from './devtoolsExtension'\r\n\r\nimport isPlainObject from './isPlainObject'\r\nimport type {\r\n  ThunkMiddlewareFor,\r\n  CurriedGetDefaultMiddleware,\r\n} from './getDefaultMiddleware'\r\nimport { curryGetDefaultMiddleware } from './getDefaultMiddleware'\r\nimport type {\r\n  NoInfer,\r\n  ExtractDispatchExtensions,\r\n  ExtractStoreExtensions,\r\n  ExtractStateExtensions,\r\n} from './tsHelpers'\r\nimport { EnhancerArray } from './utils'\r\n\r\nconst IS_PRODUCTION = process.env.NODE_ENV === 'production'\r\n\r\n/**\r\n * Callback function type, to be used in `ConfigureStoreOptions.enhancers`\r\n *\r\n * @public\r\n */\r\nexport type ConfigureEnhancersCallback<E extends Enhancers = Enhancers> = (\r\n  defaultEnhancers: EnhancerArray<[StoreEnhancer<{}, {}>]>\r\n) => E\r\n\r\n/**\r\n * Options for `configureStore()`.\r\n *\r\n * @public\r\n */\r\nexport interface ConfigureStoreOptions<\r\n  S = any,\r\n  A extends Action = AnyAction,\r\n  M extends Middlewares<S> = Middlewares<S>,\r\n  E extends Enhancers = Enhancers\r\n> {\r\n  /**\r\n   * A single reducer function that will be used as the root reducer, or an\r\n   * object of slice reducers that will be passed to `combineReducers()`.\r\n   */\r\n  reducer: Reducer<S, A> | ReducersMapObject<S, A>\r\n\r\n  /**\r\n   * An array of Redux middleware to install. If not supplied, defaults to\r\n   * the set of middleware returned by `getDefaultMiddleware()`.\r\n   *\r\n   * @example `middleware: (gDM) => gDM().concat(logger, apiMiddleware, yourCustomMiddleware)`\r\n   * @see https://redux-toolkit.js.org/api/getDefaultMiddleware#intended-usage\r\n   */\r\n  middleware?: ((getDefaultMiddleware: CurriedGetDefaultMiddleware<S>) => M) | M\r\n\r\n  /**\r\n   * Whether to enable Redux DevTools integration. Defaults to `true`.\r\n   *\r\n   * Additional configuration can be done by passing Redux DevTools options\r\n   */\r\n  devTools?: boolean | DevToolsOptions\r\n\r\n  /**\r\n   * The initial state, same as Redux's createStore.\r\n   * You may optionally specify it to hydrate the state\r\n   * from the server in universal apps, or to restore a previously serialized\r\n   * user session. If you use `combineReducers()` to produce the root reducer\r\n   * function (either directly or indirectly by passing an object as `reducer`),\r\n   * this must be an object with the same shape as the reducer map keys.\r\n   */\r\n  /*\r\n  Not 100% correct but the best approximation we can get:\r\n  - if S is a `CombinedState` applying a second `CombinedState` on it does not change anything.\r\n  - if it is not, there could be two cases:\r\n    - `ReducersMapObject<S, A>` is being passed in. In this case, we will call `combineReducers` on it and `CombinedState<S>` is correct\r\n    - `Reducer<S, A>` is being passed in. In this case, actually `CombinedState<S>` is wrong and `S` would be correct.\r\n    As we cannot distinguish between those two cases without adding another generic parameter,\r\n    we just make the pragmatic assumption that the latter almost never happens.\r\n  */\r\n  preloadedState?: PreloadedState<CombinedState<NoInfer<S>>>\r\n\r\n  /**\r\n   * The store enhancers to apply. See Redux's `createStore()`.\r\n   * All enhancers will be included before the DevTools Extension enhancer.\r\n   * If you need to customize the order of enhancers, supply a callback\r\n   * function that will receive the original array (ie, `[applyMiddleware]`),\r\n   * and should return a new array (such as `[applyMiddleware, offline]`).\r\n   * If you only need to add middleware, you can use the `middleware` parameter instead.\r\n   */\r\n  enhancers?: E | ConfigureEnhancersCallback<E>\r\n}\r\n\r\ntype Middlewares<S> = ReadonlyArray<Middleware<{}, S>>\r\n\r\ntype Enhancers = ReadonlyArray<StoreEnhancer>\r\n\r\nexport interface ToolkitStore<\r\n  S = any,\r\n  A extends Action = AnyAction,\r\n  M extends Middlewares<S> = Middlewares<S>\r\n> extends Store<S, A> {\r\n  /**\r\n   * The `dispatch` method of your store, enhanced by all its middlewares.\r\n   *\r\n   * @inheritdoc\r\n   */\r\n  dispatch: ExtractDispatchExtensions<M> & Dispatch<A>\r\n}\r\n\r\n/**\r\n * A Redux store returned by `configureStore()`. Supports dispatching\r\n * side-effectful _thunks_ in addition to plain actions.\r\n *\r\n * @public\r\n */\r\nexport type EnhancedStore<\r\n  S = any,\r\n  A extends Action = AnyAction,\r\n  M extends Middlewares<S> = Middlewares<S>,\r\n  E extends Enhancers = Enhancers\r\n> = ToolkitStore<S & ExtractStateExtensions<E>, A, M> &\r\n  ExtractStoreExtensions<E>\r\n\r\n/**\r\n * A friendly abstraction over the standard Redux `createStore()` function.\r\n *\r\n * @param options The store configuration.\r\n * @returns A configured Redux store.\r\n *\r\n * @public\r\n */\r\nexport function configureStore<\r\n  S = any,\r\n  A extends Action = AnyAction,\r\n  M extends Middlewares<S> = [ThunkMiddlewareFor<S>],\r\n  E extends Enhancers = [StoreEnhancer]\r\n>(options: ConfigureStoreOptions<S, A, M, E>): EnhancedStore<S, A, M, E> {\r\n  const curriedGetDefaultMiddleware = curryGetDefaultMiddleware<S>()\r\n\r\n  const {\r\n    reducer = undefined,\r\n    middleware = curriedGetDefaultMiddleware(),\r\n    devTools = true,\r\n    preloadedState = undefined,\r\n    enhancers = undefined,\r\n  } = options || {}\r\n\r\n  let rootReducer: Reducer<S, A>\r\n\r\n  if (typeof reducer === 'function') {\r\n    rootReducer = reducer\r\n  } else if (isPlainObject(reducer)) {\r\n    rootReducer = combineReducers(reducer) as unknown as Reducer<S, A>\r\n  } else {\r\n    throw new Error(\r\n      '\"reducer\" is a required argument, and must be a function or an object of functions that can be passed to combineReducers'\r\n    )\r\n  }\r\n\r\n  let finalMiddleware = middleware\r\n  if (typeof finalMiddleware === 'function') {\r\n    finalMiddleware = finalMiddleware(curriedGetDefaultMiddleware)\r\n\r\n    if (!IS_PRODUCTION && !Array.isArray(finalMiddleware)) {\r\n      throw new Error(\r\n        'when using a middleware builder function, an array of middleware must be returned'\r\n      )\r\n    }\r\n  }\r\n  if (\r\n    !IS_PRODUCTION &&\r\n    finalMiddleware.some((item: any) => typeof item !== 'function')\r\n  ) {\r\n    throw new Error(\r\n      'each middleware provided to configureStore must be a function'\r\n    )\r\n  }\r\n\r\n  const middlewareEnhancer: StoreEnhancer = applyMiddleware(...finalMiddleware)\r\n\r\n  let finalCompose = compose\r\n\r\n  if (devTools) {\r\n    finalCompose = composeWithDevTools({\r\n      // Enable capture of stack traces for dispatched Redux actions\r\n      trace: !IS_PRODUCTION,\r\n      ...(typeof devTools === 'object' && devTools),\r\n    })\r\n  }\r\n\r\n  const defaultEnhancers = new EnhancerArray(middlewareEnhancer)\r\n  let storeEnhancers: Enhancers = defaultEnhancers\r\n\r\n  if (Array.isArray(enhancers)) {\r\n    storeEnhancers = [middlewareEnhancer, ...enhancers]\r\n  } else if (typeof enhancers === 'function') {\r\n    storeEnhancers = enhancers(defaultEnhancers)\r\n  }\r\n\r\n  const composedEnhancer = finalCompose(...storeEnhancers) as StoreEnhancer<any>\r\n\r\n  return createStore(rootReducer, preloadedState, composedEnhancer)\r\n}\r\n","import type { Action } from 'redux'\r\nimport type {\r\n  IsUnknownOrNonInferrable,\r\n  IfMaybeUndefined,\r\n  IfVoid,\r\n  IsAny,\r\n} from './tsHelpers'\r\nimport isPlainObject from './isPlainObject'\r\n\r\n/**\r\n * An action with a string type and an associated payload. This is the\r\n * type of action returned by `createAction()` action creators.\r\n *\r\n * @template P The type of the action's payload.\r\n * @template T the type used for the action type.\r\n * @template M The type of the action's meta (optional)\r\n * @template E The type of the action's error (optional)\r\n *\r\n * @public\r\n */\r\nexport type PayloadAction<\r\n  P = void,\r\n  T extends string = string,\r\n  M = never,\r\n  E = never\r\n> = {\r\n  payload: P\r\n  type: T\r\n} & ([M] extends [never]\r\n  ? {}\r\n  : {\r\n      meta: M\r\n    }) &\r\n  ([E] extends [never]\r\n    ? {}\r\n    : {\r\n        error: E\r\n      })\r\n\r\n/**\r\n * A \"prepare\" method to be used as the second parameter of `createAction`.\r\n * Takes any number of arguments and returns a Flux Standard Action without\r\n * type (will be added later) that *must* contain a payload (might be undefined).\r\n *\r\n * @public\r\n */\r\nexport type PrepareAction<P> =\r\n  | ((...args: any[]) => { payload: P })\r\n  | ((...args: any[]) => { payload: P; meta: any })\r\n  | ((...args: any[]) => { payload: P; error: any })\r\n  | ((...args: any[]) => { payload: P; meta: any; error: any })\r\n\r\n/**\r\n * Internal version of `ActionCreatorWithPreparedPayload`. Not to be used externally.\r\n *\r\n * @internal\r\n */\r\nexport type _ActionCreatorWithPreparedPayload<\r\n  PA extends PrepareAction<any> | void,\r\n  T extends string = string\r\n> = PA extends PrepareAction<infer P>\r\n  ? ActionCreatorWithPreparedPayload<\r\n      Parameters<PA>,\r\n      P,\r\n      T,\r\n      ReturnType<PA> extends {\r\n        error: infer E\r\n      }\r\n        ? E\r\n        : never,\r\n      ReturnType<PA> extends {\r\n        meta: infer M\r\n      }\r\n        ? M\r\n        : never\r\n    >\r\n  : void\r\n\r\n/**\r\n * Basic type for all action creators.\r\n *\r\n * @inheritdoc {redux#ActionCreator}\r\n */\r\nexport interface BaseActionCreator<P, T extends string, M = never, E = never> {\r\n  type: T\r\n  match: (action: Action<unknown>) => action is PayloadAction<P, T, M, E>\r\n}\r\n\r\n/**\r\n * An action creator that takes multiple arguments that are passed\r\n * to a `PrepareAction` method to create the final Action.\r\n * @typeParam Args arguments for the action creator function\r\n * @typeParam P `payload` type\r\n * @typeParam T `type` name\r\n * @typeParam E optional `error` type\r\n * @typeParam M optional `meta` type\r\n *\r\n * @inheritdoc {redux#ActionCreator}\r\n *\r\n * @public\r\n */\r\nexport interface ActionCreatorWithPreparedPayload<\r\n  Args extends unknown[],\r\n  P,\r\n  T extends string = string,\r\n  E = never,\r\n  M = never\r\n> extends BaseActionCreator<P, T, M, E> {\r\n  /**\r\n   * Calling this {@link redux#ActionCreator} with `Args` will return\r\n   * an Action with a payload of type `P` and (depending on the `PrepareAction`\r\n   * method used) a `meta`- and `error` property of types `M` and `E` respectively.\r\n   */\r\n  (...args: Args): PayloadAction<P, T, M, E>\r\n}\r\n\r\n/**\r\n * An action creator of type `T` that takes an optional payload of type `P`.\r\n *\r\n * @inheritdoc {redux#ActionCreator}\r\n *\r\n * @public\r\n */\r\nexport interface ActionCreatorWithOptionalPayload<P, T extends string = string>\r\n  extends BaseActionCreator<P, T> {\r\n  /**\r\n   * Calling this {@link redux#ActionCreator} with an argument will\r\n   * return a {@link PayloadAction} of type `T` with a payload of `P`.\r\n   * Calling it without an argument will return a PayloadAction with a payload of `undefined`.\r\n   */\r\n  (payload?: P): PayloadAction<P, T>\r\n}\r\n\r\n/**\r\n * An action creator of type `T` that takes no payload.\r\n *\r\n * @inheritdoc {redux#ActionCreator}\r\n *\r\n * @public\r\n */\r\nexport interface ActionCreatorWithoutPayload<T extends string = string>\r\n  extends BaseActionCreator<undefined, T> {\r\n  /**\r\n   * Calling this {@link redux#ActionCreator} will\r\n   * return a {@link PayloadAction} of type `T` with a payload of `undefined`\r\n   */\r\n  (noArgument: void): PayloadAction<undefined, T>\r\n}\r\n\r\n/**\r\n * An action creator of type `T` that requires a payload of type P.\r\n *\r\n * @inheritdoc {redux#ActionCreator}\r\n *\r\n * @public\r\n */\r\nexport interface ActionCreatorWithPayload<P, T extends string = string>\r\n  extends BaseActionCreator<P, T> {\r\n  /**\r\n   * Calling this {@link redux#ActionCreator} with an argument will\r\n   * return a {@link PayloadAction} of type `T` with a payload of `P`\r\n   */\r\n  (payload: P): PayloadAction<P, T>\r\n}\r\n\r\n/**\r\n * An action creator of type `T` whose `payload` type could not be inferred. Accepts everything as `payload`.\r\n *\r\n * @inheritdoc {redux#ActionCreator}\r\n *\r\n * @public\r\n */\r\nexport interface ActionCreatorWithNonInferrablePayload<\r\n  T extends string = string\r\n> extends BaseActionCreator<unknown, T> {\r\n  /**\r\n   * Calling this {@link redux#ActionCreator} with an argument will\r\n   * return a {@link PayloadAction} of type `T` with a payload\r\n   * of exactly the type of the argument.\r\n   */\r\n  <PT extends unknown>(payload: PT): PayloadAction<PT, T>\r\n}\r\n\r\n/**\r\n * An action creator that produces actions with a `payload` attribute.\r\n *\r\n * @typeParam P the `payload` type\r\n * @typeParam T the `type` of the resulting action\r\n * @typeParam PA if the resulting action is preprocessed by a `prepare` method, the signature of said method.\r\n *\r\n * @public\r\n */\r\nexport type PayloadActionCreator<\r\n  P = void,\r\n  T extends string = string,\r\n  PA extends PrepareAction<P> | void = void\r\n> = IfPrepareActionMethodProvided<\r\n  PA,\r\n  _ActionCreatorWithPreparedPayload<PA, T>,\r\n  // else\r\n  IsAny<\r\n    P,\r\n    ActionCreatorWithPayload<any, T>,\r\n    IsUnknownOrNonInferrable<\r\n      P,\r\n      ActionCreatorWithNonInferrablePayload<T>,\r\n      // else\r\n      IfVoid<\r\n        P,\r\n        ActionCreatorWithoutPayload<T>,\r\n        // else\r\n        IfMaybeUndefined<\r\n          P,\r\n          ActionCreatorWithOptionalPayload<P, T>,\r\n          // else\r\n          ActionCreatorWithPayload<P, T>\r\n        >\r\n      >\r\n    >\r\n  >\r\n>\r\n\r\n/**\r\n * A utility function to create an action creator for the given action type\r\n * string. The action creator accepts a single argument, which will be included\r\n * in the action object as a field called payload. The action creator function\r\n * will also have its toString() overridden so that it returns the action type,\r\n * allowing it to be used in reducer logic that is looking for that action type.\r\n *\r\n * @param type The action type to use for created actions.\r\n * @param prepare (optional) a method that takes any number of arguments and returns { payload } or { payload, meta }.\r\n *                If this is given, the resulting action creator will pass its arguments to this method to calculate payload & meta.\r\n *\r\n * @public\r\n */\r\nexport function createAction<P = void, T extends string = string>(\r\n  type: T\r\n): PayloadActionCreator<P, T>\r\n\r\n/**\r\n * A utility function to create an action creator for the given action type\r\n * string. The action creator accepts a single argument, which will be included\r\n * in the action object as a field called payload. The action creator function\r\n * will also have its toString() overridden so that it returns the action type,\r\n * allowing it to be used in reducer logic that is looking for that action type.\r\n *\r\n * @param type The action type to use for created actions.\r\n * @param prepare (optional) a method that takes any number of arguments and returns { payload } or { payload, meta }.\r\n *                If this is given, the resulting action creator will pass its arguments to this method to calculate payload & meta.\r\n *\r\n * @public\r\n */\r\nexport function createAction<\r\n  PA extends PrepareAction<any>,\r\n  T extends string = string\r\n>(\r\n  type: T,\r\n  prepareAction: PA\r\n): PayloadActionCreator<ReturnType<PA>['payload'], T, PA>\r\n\r\nexport function createAction(type: string, prepareAction?: Function): any {\r\n  function actionCreator(...args: any[]) {\r\n    if (prepareAction) {\r\n      let prepared = prepareAction(...args)\r\n      if (!prepared) {\r\n        throw new Error('prepareAction did not return an object')\r\n      }\r\n\r\n      return {\r\n        type,\r\n        payload: prepared.payload,\r\n        ...('meta' in prepared && { meta: prepared.meta }),\r\n        ...('error' in prepared && { error: prepared.error }),\r\n      }\r\n    }\r\n    return { type, payload: args[0] }\r\n  }\r\n\r\n  actionCreator.toString = () => `${type}`\r\n\r\n  actionCreator.type = type\r\n\r\n  actionCreator.match = (action: Action<unknown>): action is PayloadAction =>\r\n    action.type === type\r\n\r\n  return actionCreator\r\n}\r\n\r\n/**\r\n * Returns true if value is a plain object with a `type` property.\r\n */\r\nexport function isAction(action: unknown): action is Action<unknown> {\r\n  return isPlainObject(action) && 'type' in action\r\n}\r\n\r\n/**\r\n * Returns true if value is an action with a string type and valid Flux Standard Action keys.\r\n */\r\nexport function isFSA(action: unknown): action is {\r\n  type: string\r\n  payload?: unknown\r\n  error?: unknown\r\n  meta?: unknown\r\n} {\r\n  return (\r\n    isAction(action) &&\r\n    typeof action.type === 'string' &&\r\n    Object.keys(action).every(isValidKey)\r\n  )\r\n}\r\n\r\nfunction isValidKey(key: string) {\r\n  return ['type', 'payload', 'error', 'meta'].indexOf(key) > -1\r\n}\r\n\r\n/**\r\n * Returns the action type of the actions created by the passed\r\n * `createAction()`-generated action creator (arbitrary action creators\r\n * are not supported).\r\n *\r\n * @param action The action creator whose action type to get.\r\n * @returns The action type used by the action creator.\r\n *\r\n * @public\r\n */\r\nexport function getType<T extends string>(\r\n  actionCreator: PayloadActionCreator<any, T>\r\n): T {\r\n  return `${actionCreator}` as T\r\n}\r\n\r\n// helper types for more readable typings\r\n\r\ntype IfPrepareActionMethodProvided<\r\n  PA extends PrepareAction<any> | void,\r\n  True,\r\n  False\r\n> = PA extends (...args: any[]) => any ? True : False\r\n","import type { Action, AnyAction } from 'redux'\r\nimport type {\r\n  CaseReducer,\r\n  CaseReducers,\r\n  ActionMatcherDescriptionCollection,\r\n} from './createReducer'\r\nimport type { TypeGuard } from './tsHelpers'\r\n\r\nexport interface TypedActionCreator<Type extends string> {\r\n  (...args: any[]): Action<Type>\r\n  type: Type\r\n}\r\n\r\n/**\r\n * A builder for an action <-> reducer map.\r\n *\r\n * @public\r\n */\r\nexport interface ActionReducerMapBuilder<State> {\r\n  /**\r\n   * Adds a case reducer to handle a single exact action type.\r\n   * @remarks\r\n   * All calls to `builder.addCase` must come before any calls to `builder.addMatcher` or `builder.addDefaultCase`.\r\n   * @param actionCreator - Either a plain action type string, or an action creator generated by [`createAction`](./createAction) that can be used to determine the action type.\r\n   * @param reducer - The actual case reducer function.\r\n   */\r\n  addCase<ActionCreator extends TypedActionCreator<string>>(\r\n    actionCreator: ActionCreator,\r\n    reducer: CaseReducer<State, ReturnType<ActionCreator>>\r\n  ): ActionReducerMapBuilder<State>\r\n  /**\r\n   * Adds a case reducer to handle a single exact action type.\r\n   * @remarks\r\n   * All calls to `builder.addCase` must come before any calls to `builder.addMatcher` or `builder.addDefaultCase`.\r\n   * @param actionCreator - Either a plain action type string, or an action creator generated by [`createAction`](./createAction) that can be used to determine the action type.\r\n   * @param reducer - The actual case reducer function.\r\n   */\r\n  addCase<Type extends string, A extends Action<Type>>(\r\n    type: Type,\r\n    reducer: CaseReducer<State, A>\r\n  ): ActionReducerMapBuilder<State>\r\n\r\n  /**\r\n   * Allows you to match your incoming actions against your own filter function instead of only the `action.type` property.\r\n   * @remarks\r\n   * If multiple matcher reducers match, all of them will be executed in the order\r\n   * they were defined in - even if a case reducer already matched.\r\n   * All calls to `builder.addMatcher` must come after any calls to `builder.addCase` and before any calls to `builder.addDefaultCase`.\r\n   * @param matcher - A matcher function. In TypeScript, this should be a [type predicate](https://www.typescriptlang.org/docs/handbook/advanced-types.html#using-type-predicates)\r\n   *   function\r\n   * @param reducer - The actual case reducer function.\r\n   *\r\n   * @example\r\n```ts\r\nimport {\r\n  createAction,\r\n  createReducer,\r\n  AsyncThunk,\r\n  AnyAction,\r\n} from \"@reduxjs/toolkit\";\r\n\r\ntype GenericAsyncThunk = AsyncThunk<unknown, unknown, any>;\r\n\r\ntype PendingAction = ReturnType<GenericAsyncThunk[\"pending\"]>;\r\ntype RejectedAction = ReturnType<GenericAsyncThunk[\"rejected\"]>;\r\ntype FulfilledAction = ReturnType<GenericAsyncThunk[\"fulfilled\"]>;\r\n\r\nconst initialState: Record<string, string> = {};\r\nconst resetAction = createAction(\"reset-tracked-loading-state\");\r\n\r\nfunction isPendingAction(action: AnyAction): action is PendingAction {\r\n  return action.type.endsWith(\"/pending\");\r\n}\r\n\r\nconst reducer = createReducer(initialState, (builder) => {\r\n  builder\r\n    .addCase(resetAction, () => initialState)\r\n    // matcher can be defined outside as a type predicate function\r\n    .addMatcher(isPendingAction, (state, action) => {\r\n      state[action.meta.requestId] = \"pending\";\r\n    })\r\n    .addMatcher(\r\n      // matcher can be defined inline as a type predicate function\r\n      (action): action is RejectedAction => action.type.endsWith(\"/rejected\"),\r\n      (state, action) => {\r\n        state[action.meta.requestId] = \"rejected\";\r\n      }\r\n    )\r\n    // matcher can just return boolean and the matcher can receive a generic argument\r\n    .addMatcher<FulfilledAction>(\r\n      (action) => action.type.endsWith(\"/fulfilled\"),\r\n      (state, action) => {\r\n        state[action.meta.requestId] = \"fulfilled\";\r\n      }\r\n    );\r\n});\r\n```\r\n   */\r\n  addMatcher<A>(\r\n    matcher: TypeGuard<A> | ((action: any) => boolean),\r\n    reducer: CaseReducer<State, A extends AnyAction ? A : A & AnyAction>\r\n  ): Omit<ActionReducerMapBuilder<State>, 'addCase'>\r\n\r\n  /**\r\n   * Adds a \"default case\" reducer that is executed if no case reducer and no matcher\r\n   * reducer was executed for this action.\r\n   * @param reducer - The fallback \"default case\" reducer function.\r\n   *\r\n   * @example\r\n```ts\r\nimport { createReducer } from '@reduxjs/toolkit'\r\nconst initialState = { otherActions: 0 }\r\nconst reducer = createReducer(initialState, builder => {\r\n  builder\r\n    // .addCase(...)\r\n    // .addMatcher(...)\r\n    .addDefaultCase((state, action) => {\r\n      state.otherActions++\r\n    })\r\n})\r\n```\r\n   */\r\n  addDefaultCase(reducer: CaseReducer<State, AnyAction>): {}\r\n}\r\n\r\nexport function executeReducerBuilderCallback<S>(\r\n  builderCallback: (builder: ActionReducerMapBuilder<S>) => void\r\n): [\r\n  CaseReducers<S, any>,\r\n  ActionMatcherDescriptionCollection<S>,\r\n  CaseReducer<S, AnyAction> | undefined\r\n] {\r\n  const actionsMap: CaseReducers<S, any> = {}\r\n  const actionMatchers: ActionMatcherDescriptionCollection<S> = []\r\n  let defaultCaseReducer: CaseReducer<S, AnyAction> | undefined\r\n  const builder = {\r\n    addCase(\r\n      typeOrActionCreator: string | TypedActionCreator<any>,\r\n      reducer: CaseReducer<S>\r\n    ) {\r\n      if (process.env.NODE_ENV !== 'production') {\r\n        /*\r\n         to keep the definition by the user in line with actual behavior, \r\n         we enforce `addCase` to always be called before calling `addMatcher`\r\n         as matching cases take precedence over matchers\r\n         */\r\n        if (actionMatchers.length > 0) {\r\n          throw new Error(\r\n            '`builder.addCase` should only be called before calling `builder.addMatcher`'\r\n          )\r\n        }\r\n        if (defaultCaseReducer) {\r\n          throw new Error(\r\n            '`builder.addCase` should only be called before calling `builder.addDefaultCase`'\r\n          )\r\n        }\r\n      }\r\n      const type =\r\n        typeof typeOrActionCreator === 'string'\r\n          ? typeOrActionCreator\r\n          : typeOrActionCreator.type\r\n      if (type in actionsMap) {\r\n        throw new Error(\r\n          'addCase cannot be called with two reducers for the same action type'\r\n        )\r\n      }\r\n      actionsMap[type] = reducer\r\n      return builder\r\n    },\r\n    addMatcher<A>(\r\n      matcher: TypeGuard<A>,\r\n      reducer: CaseReducer<S, A extends AnyAction ? A : A & AnyAction>\r\n    ) {\r\n      if (process.env.NODE_ENV !== 'production') {\r\n        if (defaultCaseReducer) {\r\n          throw new Error(\r\n            '`builder.addMatcher` should only be called before calling `builder.addDefaultCase`'\r\n          )\r\n        }\r\n      }\r\n      actionMatchers.push({ matcher, reducer })\r\n      return builder\r\n    },\r\n    addDefaultCase(reducer: CaseReducer<S, AnyAction>) {\r\n      if (process.env.NODE_ENV !== 'production') {\r\n        if (defaultCaseReducer) {\r\n          throw new Error('`builder.addDefaultCase` can only be called once')\r\n        }\r\n      }\r\n      defaultCaseReducer = reducer\r\n      return builder\r\n    },\r\n  }\r\n  builderCallback(builder)\r\n  return [actionsMap, actionMatchers, defaultCaseReducer]\r\n}\r\n","import type { AnyAction, Reducer } from 'redux'\r\nimport { createNextState } from '.'\r\nimport type {\r\n  ActionCreatorWithoutPayload,\r\n  PayloadAction,\r\n  PayloadActionCreator,\r\n  PrepareAction,\r\n  _ActionCreatorWithPreparedPayload,\r\n} from './createAction'\r\nimport { createAction } from './createAction'\r\nimport type {\r\n  CaseReducer,\r\n  CaseReducers,\r\n  ReducerWithInitialState,\r\n} from './createReducer'\r\nimport { createReducer, NotFunction } from './createReducer'\r\nimport type { ActionReducerMapBuilder } from './mapBuilders'\r\nimport { executeReducerBuilderCallback } from './mapBuilders'\r\nimport type { NoInfer } from './tsHelpers'\r\nimport { freezeDraftable } from './utils'\r\n\r\nlet hasWarnedAboutObjectNotation = false\r\n\r\n/**\r\n * An action creator attached to a slice.\r\n *\r\n * @deprecated please use PayloadActionCreator directly\r\n *\r\n * @public\r\n */\r\nexport type SliceActionCreator<P> = PayloadActionCreator<P>\r\n\r\n/**\r\n * The return value of `createSlice`\r\n *\r\n * @public\r\n */\r\nexport interface Slice<\r\n  State = any,\r\n  CaseReducers extends SliceCaseReducers<State> = SliceCaseReducers<State>,\r\n  Name extends string = string\r\n> {\r\n  /**\r\n   * The slice name.\r\n   */\r\n  name: Name\r\n\r\n  /**\r\n   * The slice's reducer.\r\n   */\r\n  reducer: Reducer<State>\r\n\r\n  /**\r\n   * Action creators for the types of actions that are handled by the slice\r\n   * reducer.\r\n   */\r\n  actions: CaseReducerActions<CaseReducers, Name>\r\n\r\n  /**\r\n   * The individual case reducer functions that were passed in the `reducers` parameter.\r\n   * This enables reuse and testing if they were defined inline when calling `createSlice`.\r\n   */\r\n  caseReducers: SliceDefinedCaseReducers<CaseReducers>\r\n\r\n  /**\r\n   * Provides access to the initial state value given to the slice.\r\n   * If a lazy state initializer was provided, it will be called and a fresh value returned.\r\n   */\r\n  getInitialState: () => State\r\n}\r\n\r\n/**\r\n * Options for `createSlice()`.\r\n *\r\n * @public\r\n */\r\nexport interface CreateSliceOptions<\r\n  State = any,\r\n  CR extends SliceCaseReducers<State> = SliceCaseReducers<State>,\r\n  Name extends string = string\r\n> {\r\n  /**\r\n   * The slice's name. Used to namespace the generated action types.\r\n   */\r\n  name: Name\r\n\r\n  /**\r\n   * The initial state that should be used when the reducer is called the first time. This may also be a \"lazy initializer\" function, which should return an initial state value when called. This will be used whenever the reducer is called with `undefined` as its state value, and is primarily useful for cases like reading initial state from `localStorage`.\r\n   */\r\n  initialState: State | (() => State)\r\n\r\n  /**\r\n   * A mapping from action types to action-type-specific *case reducer*\r\n   * functions. For every action type, a matching action creator will be\r\n   * generated using `createAction()`.\r\n   */\r\n  reducers: ValidateSliceCaseReducers<State, CR>\r\n\r\n  /**\r\n   * A callback that receives a *builder* object to define\r\n   * case reducers via calls to `builder.addCase(actionCreatorOrType, reducer)`.\r\n   * \r\n   * Alternatively, a mapping from action types to action-type-specific *case reducer*\r\n   * functions. These reducers should have existing action types used\r\n   * as the keys, and action creators will _not_ be generated.\r\n   * \r\n   * @example\r\n```ts\r\nimport { createAction, createSlice, Action, AnyAction } from '@reduxjs/toolkit'\r\nconst incrementBy = createAction<number>('incrementBy')\r\nconst decrement = createAction('decrement')\r\n\r\ninterface RejectedAction extends Action {\r\n  error: Error\r\n}\r\n\r\nfunction isRejectedAction(action: AnyAction): action is RejectedAction {\r\n  return action.type.endsWith('rejected')\r\n}\r\n\r\ncreateSlice({\r\n  name: 'counter',\r\n  initialState: 0,\r\n  reducers: {},\r\n  extraReducers: builder => {\r\n    builder\r\n      .addCase(incrementBy, (state, action) => {\r\n        // action is inferred correctly here if using TS\r\n      })\r\n      // You can chain calls, or have separate `builder.addCase()` lines each time\r\n      .addCase(decrement, (state, action) => {})\r\n      // You can match a range of action types\r\n      .addMatcher(\r\n        isRejectedAction,\r\n        // `action` will be inferred as a RejectedAction due to isRejectedAction being defined as a type guard\r\n        (state, action) => {}\r\n      )\r\n      // and provide a default case if no other handlers matched\r\n      .addDefaultCase((state, action) => {})\r\n    }\r\n})\r\n```\r\n   */\r\n  extraReducers?:\r\n    | CaseReducers<NoInfer<State>, any>\r\n    | ((builder: ActionReducerMapBuilder<NoInfer<State>>) => void)\r\n}\r\n\r\n/**\r\n * A CaseReducer with a `prepare` method.\r\n *\r\n * @public\r\n */\r\nexport type CaseReducerWithPrepare<State, Action extends PayloadAction> = {\r\n  reducer: CaseReducer<State, Action>\r\n  prepare: PrepareAction<Action['payload']>\r\n}\r\n\r\n/**\r\n * The type describing a slice's `reducers` option.\r\n *\r\n * @public\r\n */\r\nexport type SliceCaseReducers<State> = {\r\n  [K: string]:\r\n    | CaseReducer<State, PayloadAction<any>>\r\n    | CaseReducerWithPrepare<State, PayloadAction<any, string, any, any>>\r\n}\r\n\r\ntype SliceActionType<\r\n  SliceName extends string,\r\n  ActionName extends keyof any\r\n> = ActionName extends string | number ? `${SliceName}/${ActionName}` : string\r\n\r\n/**\r\n * Derives the slice's `actions` property from the `reducers` options\r\n *\r\n * @public\r\n */\r\nexport type CaseReducerActions<\r\n  CaseReducers extends SliceCaseReducers<any>,\r\n  SliceName extends string\r\n> = {\r\n  [Type in keyof CaseReducers]: CaseReducers[Type] extends { prepare: any }\r\n    ? ActionCreatorForCaseReducerWithPrepare<\r\n        CaseReducers[Type],\r\n        SliceActionType<SliceName, Type>\r\n      >\r\n    : ActionCreatorForCaseReducer<\r\n        CaseReducers[Type],\r\n        SliceActionType<SliceName, Type>\r\n      >\r\n}\r\n\r\n/**\r\n * Get a `PayloadActionCreator` type for a passed `CaseReducerWithPrepare`\r\n *\r\n * @internal\r\n */\r\ntype ActionCreatorForCaseReducerWithPrepare<\r\n  CR extends { prepare: any },\r\n  Type extends string\r\n> = _ActionCreatorWithPreparedPayload<CR['prepare'], Type>\r\n\r\n/**\r\n * Get a `PayloadActionCreator` type for a passed `CaseReducer`\r\n *\r\n * @internal\r\n */\r\ntype ActionCreatorForCaseReducer<CR, Type extends string> = CR extends (\r\n  state: any,\r\n  action: infer Action\r\n) => any\r\n  ? Action extends { payload: infer P }\r\n    ? PayloadActionCreator<P, Type>\r\n    : ActionCreatorWithoutPayload<Type>\r\n  : ActionCreatorWithoutPayload<Type>\r\n\r\n/**\r\n * Extracts the CaseReducers out of a `reducers` object, even if they are\r\n * tested into a `CaseReducerWithPrepare`.\r\n *\r\n * @internal\r\n */\r\ntype SliceDefinedCaseReducers<CaseReducers extends SliceCaseReducers<any>> = {\r\n  [Type in keyof CaseReducers]: CaseReducers[Type] extends {\r\n    reducer: infer Reducer\r\n  }\r\n    ? Reducer\r\n    : CaseReducers[Type]\r\n}\r\n\r\n/**\r\n * Used on a SliceCaseReducers object.\r\n * Ensures that if a CaseReducer is a `CaseReducerWithPrepare`, that\r\n * the `reducer` and the `prepare` function use the same type of `payload`.\r\n *\r\n * Might do additional such checks in the future.\r\n *\r\n * This type is only ever useful if you want to write your own wrapper around\r\n * `createSlice`. Please don't use it otherwise!\r\n *\r\n * @public\r\n */\r\nexport type ValidateSliceCaseReducers<\r\n  S,\r\n  ACR extends SliceCaseReducers<S>\r\n> = ACR &\r\n  {\r\n    [T in keyof ACR]: ACR[T] extends {\r\n      reducer(s: S, action?: infer A): any\r\n    }\r\n      ? {\r\n          prepare(...a: never[]): Omit<A, 'type'>\r\n        }\r\n      : {}\r\n  }\r\n\r\nfunction getType(slice: string, actionKey: string): string {\r\n  return `${slice}/${actionKey}`\r\n}\r\n\r\n/**\r\n * A function that accepts an initial state, an object full of reducer\r\n * functions, and a \"slice name\", and automatically generates\r\n * action creators and action types that correspond to the\r\n * reducers and state.\r\n *\r\n * The `reducer` argument is passed to `createReducer()`.\r\n *\r\n * @public\r\n */\r\nexport function createSlice<\r\n  State,\r\n  CaseReducers extends SliceCaseReducers<State>,\r\n  Name extends string = string\r\n>(\r\n  options: CreateSliceOptions<State, CaseReducers, Name>\r\n): Slice<State, CaseReducers, Name> {\r\n  const { name } = options\r\n  if (!name) {\r\n    throw new Error('`name` is a required option for createSlice')\r\n  }\r\n\r\n  if (\r\n    typeof process !== 'undefined' &&\r\n    process.env.NODE_ENV === 'development'\r\n  ) {\r\n    if (options.initialState === undefined) {\r\n      console.error(\r\n        'You must provide an `initialState` value that is not `undefined`. You may have misspelled `initialState`'\r\n      )\r\n    }\r\n  }\r\n\r\n  const initialState =\r\n    typeof options.initialState == 'function'\r\n      ? options.initialState\r\n      : freezeDraftable(options.initialState)\r\n\r\n  const reducers = options.reducers || {}\r\n\r\n  const reducerNames = Object.keys(reducers)\r\n\r\n  const sliceCaseReducersByName: Record<string, CaseReducer> = {}\r\n  const sliceCaseReducersByType: Record<string, CaseReducer> = {}\r\n  const actionCreators: Record<string, Function> = {}\r\n\r\n  reducerNames.forEach((reducerName) => {\r\n    const maybeReducerWithPrepare = reducers[reducerName]\r\n    const type = getType(name, reducerName)\r\n\r\n    let caseReducer: CaseReducer<State, any>\r\n    let prepareCallback: PrepareAction<any> | undefined\r\n\r\n    if ('reducer' in maybeReducerWithPrepare) {\r\n      caseReducer = maybeReducerWithPrepare.reducer\r\n      prepareCallback = maybeReducerWithPrepare.prepare\r\n    } else {\r\n      caseReducer = maybeReducerWithPrepare\r\n    }\r\n\r\n    sliceCaseReducersByName[reducerName] = caseReducer\r\n    sliceCaseReducersByType[type] = caseReducer\r\n    actionCreators[reducerName] = prepareCallback\r\n      ? createAction(type, prepareCallback)\r\n      : createAction(type)\r\n  })\r\n\r\n  function buildReducer() {\r\n    if (process.env.NODE_ENV !== 'production') {\r\n      if (typeof options.extraReducers === 'object') {\r\n        if (!hasWarnedAboutObjectNotation) {\r\n          hasWarnedAboutObjectNotation = true\r\n          console.warn(\r\n            \"The object notation for `createSlice.extraReducers` is deprecated, and will be removed in RTK 2.0. Please use the 'builder callback' notation instead: https://redux-toolkit.js.org/api/createSlice\"\r\n          )\r\n        }\r\n      }\r\n    }\r\n    const [\r\n      extraReducers = {},\r\n      actionMatchers = [],\r\n      defaultCaseReducer = undefined,\r\n    ] =\r\n      typeof options.extraReducers === 'function'\r\n        ? executeReducerBuilderCallback(options.extraReducers)\r\n        : [options.extraReducers]\r\n\r\n    const finalCaseReducers = { ...extraReducers, ...sliceCaseReducersByType }\r\n\r\n    return createReducer(initialState, (builder) => {\r\n      for (let key in finalCaseReducers) {\r\n        builder.addCase(key, finalCaseReducers[key] as CaseReducer<any>)\r\n      }\r\n      for (let m of actionMatchers) {\r\n        builder.addMatcher(m.matcher, m.reducer)\r\n      }\r\n      if (defaultCaseReducer) {\r\n        builder.addDefaultCase(defaultCaseReducer)\r\n      }\r\n    })\r\n  }\r\n\r\n  let _reducer: ReducerWithInitialState<State>\r\n\r\n  return {\r\n    name,\r\n    reducer(state, action) {\r\n      if (!_reducer) _reducer = buildReducer()\r\n\r\n      return _reducer(state, action)\r\n    },\r\n    actions: actionCreators as any,\r\n    caseReducers: sliceCaseReducersByName as any,\r\n    getInitialState() {\r\n      if (!_reducer) _reducer = buildReducer()\r\n\r\n      return _reducer.getInitialState()\r\n    },\r\n  }\r\n}\r\n","import type { Draft } from 'immer'\r\nimport createNextState, { isDraft, isDraftable } from 'immer'\r\nimport type { AnyAction, Action, Reducer } from 'redux'\r\nimport type { ActionReducerMapBuilder } from './mapBuilders'\r\nimport { executeReducerBuilderCallback } from './mapBuilders'\r\nimport type { NoInfer } from './tsHelpers'\r\nimport { freezeDraftable } from './utils'\r\n\r\n/**\r\n * Defines a mapping from action types to corresponding action object shapes.\r\n *\r\n * @deprecated This should not be used manually - it is only used for internal\r\n *             inference purposes and should not have any further value.\r\n *             It might be removed in the future.\r\n * @public\r\n */\r\nexport type Actions<T extends keyof any = string> = Record<T, Action>\r\n\r\n/**\r\n * @deprecated use `TypeGuard` instead\r\n */\r\nexport interface ActionMatcher<A extends AnyAction> {\r\n  (action: AnyAction): action is A\r\n}\r\n\r\nexport type ActionMatcherDescription<S, A extends AnyAction> = {\r\n  matcher: ActionMatcher<A>\r\n  reducer: CaseReducer<S, NoInfer<A>>\r\n}\r\n\r\nexport type ReadonlyActionMatcherDescriptionCollection<S> = ReadonlyArray<\r\n  ActionMatcherDescription<S, any>\r\n>\r\n\r\nexport type ActionMatcherDescriptionCollection<S> = Array<\r\n  ActionMatcherDescription<S, any>\r\n>\r\n\r\n/**\r\n * A *case reducer* is a reducer function for a specific action type. Case\r\n * reducers can be composed to full reducers using `createReducer()`.\r\n *\r\n * Unlike a normal Redux reducer, a case reducer is never called with an\r\n * `undefined` state to determine the initial state. Instead, the initial\r\n * state is explicitly specified as an argument to `createReducer()`.\r\n *\r\n * In addition, a case reducer can choose to mutate the passed-in `state`\r\n * value directly instead of returning a new state. This does not actually\r\n * cause the store state to be mutated directly; instead, thanks to\r\n * [immer](https://github.com/mweststrate/immer), the mutations are\r\n * translated to copy operations that result in a new state.\r\n *\r\n * @public\r\n */\r\nexport type CaseReducer<S = any, A extends Action = AnyAction> = (\r\n  state: Draft<S>,\r\n  action: A\r\n) => NoInfer<S> | void | Draft<NoInfer<S>>\r\n\r\n/**\r\n * A mapping from action types to case reducers for `createReducer()`.\r\n *\r\n * @deprecated This should not be used manually - it is only used\r\n *             for internal inference purposes and using it manually\r\n *             would lead to type erasure.\r\n *             It might be removed in the future.\r\n * @public\r\n */\r\nexport type CaseReducers<S, AS extends Actions> = {\r\n  [T in keyof AS]: AS[T] extends Action ? CaseReducer<S, AS[T]> : void\r\n}\r\n\r\nexport type NotFunction<T> = T extends Function ? never : T\r\n\r\nfunction isStateFunction<S>(x: unknown): x is () => S {\r\n  return typeof x === 'function'\r\n}\r\n\r\nexport type ReducerWithInitialState<S extends NotFunction<any>> = Reducer<S> & {\r\n  getInitialState: () => S\r\n}\r\n\r\nlet hasWarnedAboutObjectNotation = false\r\n\r\n/**\r\n * A utility function that allows defining a reducer as a mapping from action\r\n * type to *case reducer* functions that handle these action types. The\r\n * reducer's initial state is passed as the first argument.\r\n *\r\n * @remarks\r\n * The body of every case reducer is implicitly wrapped with a call to\r\n * `produce()` from the [immer](https://github.com/mweststrate/immer) library.\r\n * This means that rather than returning a new state object, you can also\r\n * mutate the passed-in state object directly; these mutations will then be\r\n * automatically and efficiently translated into copies, giving you both\r\n * convenience and immutability.\r\n *\r\n * @overloadSummary\r\n * This overload accepts a callback function that receives a `builder` object as its argument.\r\n * That builder provides `addCase`, `addMatcher` and `addDefaultCase` functions that may be\r\n * called to define what actions this reducer will handle.\r\n *\r\n * @param initialState - `State | (() => State)`: The initial state that should be used when the reducer is called the first time. This may also be a \"lazy initializer\" function, which should return an initial state value when called. This will be used whenever the reducer is called with `undefined` as its state value, and is primarily useful for cases like reading initial state from `localStorage`.\r\n * @param builderCallback - `(builder: Builder) => void` A callback that receives a *builder* object to define\r\n *   case reducers via calls to `builder.addCase(actionCreatorOrType, reducer)`.\r\n * @example\r\n```ts\r\nimport {\r\n  createAction,\r\n  createReducer,\r\n  AnyAction,\r\n  PayloadAction,\r\n} from \"@reduxjs/toolkit\";\r\n\r\nconst increment = createAction<number>(\"increment\");\r\nconst decrement = createAction<number>(\"decrement\");\r\n\r\nfunction isActionWithNumberPayload(\r\n  action: AnyAction\r\n): action is PayloadAction<number> {\r\n  return typeof action.payload === \"number\";\r\n}\r\n\r\nconst reducer = createReducer(\r\n  {\r\n    counter: 0,\r\n    sumOfNumberPayloads: 0,\r\n    unhandledActions: 0,\r\n  },\r\n  (builder) => {\r\n    builder\r\n      .addCase(increment, (state, action) => {\r\n        // action is inferred correctly here\r\n        state.counter += action.payload;\r\n      })\r\n      // You can chain calls, or have separate `builder.addCase()` lines each time\r\n      .addCase(decrement, (state, action) => {\r\n        state.counter -= action.payload;\r\n      })\r\n      // You can apply a \"matcher function\" to incoming actions\r\n      .addMatcher(isActionWithNumberPayload, (state, action) => {})\r\n      // and provide a default case if no other handlers matched\r\n      .addDefaultCase((state, action) => {});\r\n  }\r\n);\r\n```\r\n * @public\r\n */\r\nexport function createReducer<S extends NotFunction<any>>(\r\n  initialState: S | (() => S),\r\n  builderCallback: (builder: ActionReducerMapBuilder<S>) => void\r\n): ReducerWithInitialState<S>\r\n\r\n/**\r\n * A utility function that allows defining a reducer as a mapping from action\r\n * type to *case reducer* functions that handle these action types. The\r\n * reducer's initial state is passed as the first argument.\r\n *\r\n * The body of every case reducer is implicitly wrapped with a call to\r\n * `produce()` from the [immer](https://github.com/mweststrate/immer) library.\r\n * This means that rather than returning a new state object, you can also\r\n * mutate the passed-in state object directly; these mutations will then be\r\n * automatically and efficiently translated into copies, giving you both\r\n * convenience and immutability.\r\n * \r\n * @overloadSummary\r\n * This overload accepts an object where the keys are string action types, and the values\r\n * are case reducer functions to handle those action types.\r\n *\r\n * @param initialState - `State | (() => State)`: The initial state that should be used when the reducer is called the first time. This may also be a \"lazy initializer\" function, which should return an initial state value when called. This will be used whenever the reducer is called with `undefined` as its state value, and is primarily useful for cases like reading initial state from `localStorage`.\r\n * @param actionsMap - An object mapping from action types to _case reducers_, each of which handles one specific action type.\r\n * @param actionMatchers - An array of matcher definitions in the form `{matcher, reducer}`.\r\n *   All matching reducers will be executed in order, independently if a case reducer matched or not.\r\n * @param defaultCaseReducer - A \"default case\" reducer that is executed if no case reducer and no matcher\r\n *   reducer was executed for this action.\r\n *\r\n * @example\r\n```js\r\nconst counterReducer = createReducer(0, {\r\n  increment: (state, action) => state + action.payload,\r\n  decrement: (state, action) => state - action.payload\r\n})\r\n\r\n// Alternately, use a \"lazy initializer\" to provide the initial state\r\n// (works with either form of createReducer)\r\nconst initialState = () => 0\r\nconst counterReducer = createReducer(initialState, {\r\n  increment: (state, action) => state + action.payload,\r\n  decrement: (state, action) => state - action.payload\r\n})\r\n```\r\n \r\n * Action creators that were generated using [`createAction`](./createAction) may be used directly as the keys here, using computed property syntax:\r\n\r\n```js\r\nconst increment = createAction('increment')\r\nconst decrement = createAction('decrement')\r\n\r\nconst counterReducer = createReducer(0, {\r\n  [increment]: (state, action) => state + action.payload,\r\n  [decrement.type]: (state, action) => state - action.payload\r\n})\r\n```\r\n * @public\r\n */\r\nexport function createReducer<\r\n  S extends NotFunction<any>,\r\n  CR extends CaseReducers<S, any> = CaseReducers<S, any>\r\n>(\r\n  initialState: S | (() => S),\r\n  actionsMap: CR,\r\n  actionMatchers?: ActionMatcherDescriptionCollection<S>,\r\n  defaultCaseReducer?: CaseReducer<S>\r\n): ReducerWithInitialState<S>\r\n\r\nexport function createReducer<S extends NotFunction<any>>(\r\n  initialState: S | (() => S),\r\n  mapOrBuilderCallback:\r\n    | CaseReducers<S, any>\r\n    | ((builder: ActionReducerMapBuilder<S>) => void),\r\n  actionMatchers: ReadonlyActionMatcherDescriptionCollection<S> = [],\r\n  defaultCaseReducer?: CaseReducer<S>\r\n): ReducerWithInitialState<S> {\r\n  if (process.env.NODE_ENV !== 'production') {\r\n    if (typeof mapOrBuilderCallback === 'object') {\r\n      if (!hasWarnedAboutObjectNotation) {\r\n        hasWarnedAboutObjectNotation = true\r\n        console.warn(\r\n          \"The object notation for `createReducer` is deprecated, and will be removed in RTK 2.0. Please use the 'builder callback' notation instead: https://redux-toolkit.js.org/api/createReducer\"\r\n        )\r\n      }\r\n    }\r\n  }\r\n\r\n  let [actionsMap, finalActionMatchers, finalDefaultCaseReducer] =\r\n    typeof mapOrBuilderCallback === 'function'\r\n      ? executeReducerBuilderCallback(mapOrBuilderCallback)\r\n      : [mapOrBuilderCallback, actionMatchers, defaultCaseReducer]\r\n\r\n  // Ensure the initial state gets frozen either way (if draftable)\r\n  let getInitialState: () => S\r\n  if (isStateFunction(initialState)) {\r\n    getInitialState = () => freezeDraftable(initialState())\r\n  } else {\r\n    const frozenInitialState = freezeDraftable(initialState)\r\n    getInitialState = () => frozenInitialState\r\n  }\r\n\r\n  function reducer(state = getInitialState(), action: any): S {\r\n    let caseReducers = [\r\n      actionsMap[action.type],\r\n      ...finalActionMatchers\r\n        .filter(({ matcher }) => matcher(action))\r\n        .map(({ reducer }) => reducer),\r\n    ]\r\n    if (caseReducers.filter((cr) => !!cr).length === 0) {\r\n      caseReducers = [finalDefaultCaseReducer]\r\n    }\r\n\r\n    return caseReducers.reduce((previousState, caseReducer): S => {\r\n      if (caseReducer) {\r\n        if (isDraft(previousState)) {\r\n          // If it's already a draft, we must already be inside a `createNextState` call,\r\n          // likely because this is being wrapped in `createReducer`, `createSlice`, or nested\r\n          // inside an existing draft. It's safe to just pass the draft to the mutator.\r\n          const draft = previousState as Draft<S> // We can assume this is already a draft\r\n          const result = caseReducer(draft, action)\r\n\r\n          if (result === undefined) {\r\n            return previousState\r\n          }\r\n\r\n          return result as S\r\n        } else if (!isDraftable(previousState)) {\r\n          // If state is not draftable (ex: a primitive, such as 0), we want to directly\r\n          // return the caseReducer func and not wrap it with produce.\r\n          const result = caseReducer(previousState as any, action)\r\n\r\n          if (result === undefined) {\r\n            if (previousState === null) {\r\n              return previousState\r\n            }\r\n            throw Error(\r\n              'A case reducer on a non-draftable value must not return undefined'\r\n            )\r\n          }\r\n\r\n          return result as S\r\n        } else {\r\n          // @ts-ignore createNextState() produces an Immutable<Draft<S>> rather\r\n          // than an Immutable<S>, and TypeScript cannot find out how to reconcile\r\n          // these two types.\r\n          return createNextState(previousState, (draft: Draft<S>) => {\r\n            return caseReducer(draft, action)\r\n          })\r\n        }\r\n      }\r\n\r\n      return previousState\r\n    }, state)\r\n  }\r\n\r\n  reducer.getInitialState = getInitialState\r\n\r\n  return reducer as ReducerWithInitialState<S>\r\n}\r\n","// Borrowed from https://github.com/ai/nanoid/blob/3.0.2/non-secure/index.js\r\n// This alphabet uses `A-Za-z0-9_-` symbols. A genetic algorithm helped\r\n// optimize the gzip compression for this alphabet.\r\nlet urlAlphabet =\r\n  'ModuleSymbhasOwnPr-0123456789ABCDEFGHNRVfgctiUvz_KqYTJkLxpZXIjQW'\r\n\r\n/**\r\n *\r\n * @public\r\n */\r\nexport let nanoid = (size = 21) => {\r\n  let id = ''\r\n  // A compact alternative for `for (var i = 0; i < step; i++)`.\r\n  let i = size\r\n  while (i--) {\r\n    // `| 0` is more compact and faster than `Math.floor()`.\r\n    id += urlAlphabet[(Math.random() * 64) | 0]\r\n  }\r\n  return id\r\n}\r\n","import type { Dispatch, AnyAction } from 'redux'\r\nimport type {\r\n  PayloadAction,\r\n  ActionCreatorWithPreparedPayload,\r\n} from './createAction'\r\nimport { createAction } from './createAction'\r\nimport type { ThunkDispatch } from 'redux-thunk'\r\nimport type { FallbackIfUnknown, Id, IsAny, IsUnknown } from './tsHelpers'\r\nimport { nanoid } from './nanoid'\r\n\r\n// @ts-ignore we need the import of these types due to a bundling issue.\r\ntype _Keep = PayloadAction | ActionCreatorWithPreparedPayload<any, unknown>\r\n\r\nexport type BaseThunkAPI<\r\n  S,\r\n  E,\r\n  D extends Dispatch = Dispatch,\r\n  RejectedValue = undefined,\r\n  RejectedMeta = unknown,\r\n  FulfilledMeta = unknown\r\n> = {\r\n  dispatch: D\r\n  getState: () => S\r\n  extra: E\r\n  requestId: string\r\n  signal: AbortSignal\r\n  abort: (reason?: string) => void\r\n  rejectWithValue: IsUnknown<\r\n    RejectedMeta,\r\n    (value: RejectedValue) => RejectWithValue<RejectedValue, RejectedMeta>,\r\n    (\r\n      value: RejectedValue,\r\n      meta: RejectedMeta\r\n    ) => RejectWithValue<RejectedValue, RejectedMeta>\r\n  >\r\n  fulfillWithValue: IsUnknown<\r\n    FulfilledMeta,\r\n    <FulfilledValue>(value: FulfilledValue) => FulfilledValue,\r\n    <FulfilledValue>(\r\n      value: FulfilledValue,\r\n      meta: FulfilledMeta\r\n    ) => FulfillWithMeta<FulfilledValue, FulfilledMeta>\r\n  >\r\n}\r\n\r\n/**\r\n * @public\r\n */\r\nexport interface SerializedError {\r\n  name?: string\r\n  message?: string\r\n  stack?: string\r\n  code?: string\r\n}\r\n\r\nconst commonProperties: Array<keyof SerializedError> = [\r\n  'name',\r\n  'message',\r\n  'stack',\r\n  'code',\r\n]\r\n\r\nclass RejectWithValue<Payload, RejectedMeta> {\r\n  /*\r\n  type-only property to distinguish between RejectWithValue and FulfillWithMeta\r\n  does not exist at runtime\r\n  */\r\n  private readonly _type!: 'RejectWithValue'\r\n  constructor(\r\n    public readonly payload: Payload,\r\n    public readonly meta: RejectedMeta\r\n  ) {}\r\n}\r\n\r\nclass FulfillWithMeta<Payload, FulfilledMeta> {\r\n  /*\r\n  type-only property to distinguish between RejectWithValue and FulfillWithMeta\r\n  does not exist at runtime\r\n  */\r\n  private readonly _type!: 'FulfillWithMeta'\r\n  constructor(\r\n    public readonly payload: Payload,\r\n    public readonly meta: FulfilledMeta\r\n  ) {}\r\n}\r\n\r\n/**\r\n * Serializes an error into a plain object.\r\n * Reworked from https://github.com/sindresorhus/serialize-error\r\n *\r\n * @public\r\n */\r\nexport const miniSerializeError = (value: any): SerializedError => {\r\n  if (typeof value === 'object' && value !== null) {\r\n    const simpleError: SerializedError = {}\r\n    for (const property of commonProperties) {\r\n      if (typeof value[property] === 'string') {\r\n        simpleError[property] = value[property]\r\n      }\r\n    }\r\n\r\n    return simpleError\r\n  }\r\n\r\n  return { message: String(value) }\r\n}\r\n\r\ntype AsyncThunkConfig = {\r\n  state?: unknown\r\n  dispatch?: Dispatch\r\n  extra?: unknown\r\n  rejectValue?: unknown\r\n  serializedErrorType?: unknown\r\n  pendingMeta?: unknown\r\n  fulfilledMeta?: unknown\r\n  rejectedMeta?: unknown\r\n}\r\n\r\ntype GetState<ThunkApiConfig> = ThunkApiConfig extends {\r\n  state: infer State\r\n}\r\n  ? State\r\n  : unknown\r\ntype GetExtra<ThunkApiConfig> = ThunkApiConfig extends { extra: infer Extra }\r\n  ? Extra\r\n  : unknown\r\ntype GetDispatch<ThunkApiConfig> = ThunkApiConfig extends {\r\n  dispatch: infer Dispatch\r\n}\r\n  ? FallbackIfUnknown<\r\n      Dispatch,\r\n      ThunkDispatch<\r\n        GetState<ThunkApiConfig>,\r\n        GetExtra<ThunkApiConfig>,\r\n        AnyAction\r\n      >\r\n    >\r\n  : ThunkDispatch<GetState<ThunkApiConfig>, GetExtra<ThunkApiConfig>, AnyAction>\r\n\r\ntype GetThunkAPI<ThunkApiConfig> = BaseThunkAPI<\r\n  GetState<ThunkApiConfig>,\r\n  GetExtra<ThunkApiConfig>,\r\n  GetDispatch<ThunkApiConfig>,\r\n  GetRejectValue<ThunkApiConfig>,\r\n  GetRejectedMeta<ThunkApiConfig>,\r\n  GetFulfilledMeta<ThunkApiConfig>\r\n>\r\n\r\ntype GetRejectValue<ThunkApiConfig> = ThunkApiConfig extends {\r\n  rejectValue: infer RejectValue\r\n}\r\n  ? RejectValue\r\n  : unknown\r\n\r\ntype GetPendingMeta<ThunkApiConfig> = ThunkApiConfig extends {\r\n  pendingMeta: infer PendingMeta\r\n}\r\n  ? PendingMeta\r\n  : unknown\r\n\r\ntype GetFulfilledMeta<ThunkApiConfig> = ThunkApiConfig extends {\r\n  fulfilledMeta: infer FulfilledMeta\r\n}\r\n  ? FulfilledMeta\r\n  : unknown\r\n\r\ntype GetRejectedMeta<ThunkApiConfig> = ThunkApiConfig extends {\r\n  rejectedMeta: infer RejectedMeta\r\n}\r\n  ? RejectedMeta\r\n  : unknown\r\n\r\ntype GetSerializedErrorType<ThunkApiConfig> = ThunkApiConfig extends {\r\n  serializedErrorType: infer GetSerializedErrorType\r\n}\r\n  ? GetSerializedErrorType\r\n  : SerializedError\r\n\r\ntype MaybePromise<T> = T | Promise<T> | (T extends any ? Promise<T> : never)\r\n\r\n/**\r\n * A type describing the return value of the `payloadCreator` argument to `createAsyncThunk`.\r\n * Might be useful for wrapping `createAsyncThunk` in custom abstractions.\r\n *\r\n * @public\r\n */\r\nexport type AsyncThunkPayloadCreatorReturnValue<\r\n  Returned,\r\n  ThunkApiConfig extends AsyncThunkConfig\r\n> = MaybePromise<\r\n  | IsUnknown<\r\n      GetFulfilledMeta<ThunkApiConfig>,\r\n      Returned,\r\n      FulfillWithMeta<Returned, GetFulfilledMeta<ThunkApiConfig>>\r\n    >\r\n  | RejectWithValue<\r\n      GetRejectValue<ThunkApiConfig>,\r\n      GetRejectedMeta<ThunkApiConfig>\r\n    >\r\n>\r\n/**\r\n * A type describing the `payloadCreator` argument to `createAsyncThunk`.\r\n * Might be useful for wrapping `createAsyncThunk` in custom abstractions.\r\n *\r\n * @public\r\n */\r\nexport type AsyncThunkPayloadCreator<\r\n  Returned,\r\n  ThunkArg = void,\r\n  ThunkApiConfig extends AsyncThunkConfig = {}\r\n> = (\r\n  arg: ThunkArg,\r\n  thunkAPI: GetThunkAPI<ThunkApiConfig>\r\n) => AsyncThunkPayloadCreatorReturnValue<Returned, ThunkApiConfig>\r\n\r\n/**\r\n * A ThunkAction created by `createAsyncThunk`.\r\n * Dispatching it returns a Promise for either a\r\n * fulfilled or rejected action.\r\n * Also, the returned value contains an `abort()` method\r\n * that allows the asyncAction to be cancelled from the outside.\r\n *\r\n * @public\r\n */\r\nexport type AsyncThunkAction<\r\n  Returned,\r\n  ThunkArg,\r\n  ThunkApiConfig extends AsyncThunkConfig\r\n> = (\r\n  dispatch: GetDispatch<ThunkApiConfig>,\r\n  getState: () => GetState<ThunkApiConfig>,\r\n  extra: GetExtra<ThunkApiConfig>\r\n) => Promise<\r\n  | ReturnType<AsyncThunkFulfilledActionCreator<Returned, ThunkArg>>\r\n  | ReturnType<AsyncThunkRejectedActionCreator<ThunkArg, ThunkApiConfig>>\r\n> & {\r\n  abort: (reason?: string) => void\r\n  requestId: string\r\n  arg: ThunkArg\r\n  unwrap: () => Promise<Returned>\r\n}\r\n\r\ntype AsyncThunkActionCreator<\r\n  Returned,\r\n  ThunkArg,\r\n  ThunkApiConfig extends AsyncThunkConfig\r\n> = IsAny<\r\n  ThunkArg,\r\n  // any handling\r\n  (arg: ThunkArg) => AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig>,\r\n  // unknown handling\r\n  unknown extends ThunkArg\r\n    ? (arg: ThunkArg) => AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig> // argument not specified or specified as void or undefined\r\n    : [ThunkArg] extends [void] | [undefined]\r\n    ? () => AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig> // argument contains void\r\n    : [void] extends [ThunkArg] // make optional\r\n    ? (arg?: ThunkArg) => AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig> // argument contains undefined\r\n    : [undefined] extends [ThunkArg]\r\n    ? WithStrictNullChecks<\r\n        // with strict nullChecks: make optional\r\n        (\r\n          arg?: ThunkArg\r\n        ) => AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig>,\r\n        // without strict null checks this will match everything, so don't make it optional\r\n        (arg: ThunkArg) => AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig>\r\n      > // default case: normal argument\r\n    : (arg: ThunkArg) => AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig>\r\n>\r\n\r\n/**\r\n * Options object for `createAsyncThunk`.\r\n *\r\n * @public\r\n */\r\nexport type AsyncThunkOptions<\r\n  ThunkArg = void,\r\n  ThunkApiConfig extends AsyncThunkConfig = {}\r\n> = {\r\n  /**\r\n   * A method to control whether the asyncThunk should be executed. Has access to the\r\n   * `arg`, `api.getState()` and `api.extra` arguments.\r\n   *\r\n   * @returns `false` if it should be skipped\r\n   */\r\n  condition?(\r\n    arg: ThunkArg,\r\n    api: Pick<GetThunkAPI<ThunkApiConfig>, 'getState' | 'extra'>\r\n  ): MaybePromise<boolean | undefined>\r\n  /**\r\n   * If `condition` returns `false`, the asyncThunk will be skipped.\r\n   * This option allows you to control whether a `rejected` action with `meta.condition == false`\r\n   * will be dispatched or not.\r\n   *\r\n   * @default `false`\r\n   */\r\n  dispatchConditionRejection?: boolean\r\n\r\n  serializeError?: (x: unknown) => GetSerializedErrorType<ThunkApiConfig>\r\n\r\n  /**\r\n   * A function to use when generating the `requestId` for the request sequence.\r\n   *\r\n   * @default `nanoid`\r\n   */\r\n  idGenerator?: (arg: ThunkArg) => string\r\n} & IsUnknown<\r\n  GetPendingMeta<ThunkApiConfig>,\r\n  {\r\n    /**\r\n     * A method to generate additional properties to be added to `meta` of the pending action.\r\n     *\r\n     * Using this optional overload will not modify the types correctly, this overload is only in place to support JavaScript users.\r\n     * Please use the `ThunkApiConfig` parameter `pendingMeta` to get access to a correctly typed overload\r\n     */\r\n    getPendingMeta?(\r\n      base: {\r\n        arg: ThunkArg\r\n        requestId: string\r\n      },\r\n      api: Pick<GetThunkAPI<ThunkApiConfig>, 'getState' | 'extra'>\r\n    ): GetPendingMeta<ThunkApiConfig>\r\n  },\r\n  {\r\n    /**\r\n     * A method to generate additional properties to be added to `meta` of the pending action.\r\n     */\r\n    getPendingMeta(\r\n      base: {\r\n        arg: ThunkArg\r\n        requestId: string\r\n      },\r\n      api: Pick<GetThunkAPI<ThunkApiConfig>, 'getState' | 'extra'>\r\n    ): GetPendingMeta<ThunkApiConfig>\r\n  }\r\n>\r\n\r\nexport type AsyncThunkPendingActionCreator<\r\n  ThunkArg,\r\n  ThunkApiConfig = {}\r\n> = ActionCreatorWithPreparedPayload<\r\n  [string, ThunkArg, GetPendingMeta<ThunkApiConfig>?],\r\n  undefined,\r\n  string,\r\n  never,\r\n  {\r\n    arg: ThunkArg\r\n    requestId: string\r\n    requestStatus: 'pending'\r\n  } & GetPendingMeta<ThunkApiConfig>\r\n>\r\n\r\nexport type AsyncThunkRejectedActionCreator<\r\n  ThunkArg,\r\n  ThunkApiConfig = {}\r\n> = ActionCreatorWithPreparedPayload<\r\n  [\r\n    Error | null,\r\n    string,\r\n    ThunkArg,\r\n    GetRejectValue<ThunkApiConfig>?,\r\n    GetRejectedMeta<ThunkApiConfig>?\r\n  ],\r\n  GetRejectValue<ThunkApiConfig> | undefined,\r\n  string,\r\n  GetSerializedErrorType<ThunkApiConfig>,\r\n  {\r\n    arg: ThunkArg\r\n    requestId: string\r\n    requestStatus: 'rejected'\r\n    aborted: boolean\r\n    condition: boolean\r\n  } & (\r\n    | ({ rejectedWithValue: false } & {\r\n        [K in keyof GetRejectedMeta<ThunkApiConfig>]?: undefined\r\n      })\r\n    | ({ rejectedWithValue: true } & GetRejectedMeta<ThunkApiConfig>)\r\n  )\r\n>\r\n\r\nexport type AsyncThunkFulfilledActionCreator<\r\n  Returned,\r\n  ThunkArg,\r\n  ThunkApiConfig = {}\r\n> = ActionCreatorWithPreparedPayload<\r\n  [Returned, string, ThunkArg, GetFulfilledMeta<ThunkApiConfig>?],\r\n  Returned,\r\n  string,\r\n  never,\r\n  {\r\n    arg: ThunkArg\r\n    requestId: string\r\n    requestStatus: 'fulfilled'\r\n  } & GetFulfilledMeta<ThunkApiConfig>\r\n>\r\n\r\n/**\r\n * A type describing the return value of `createAsyncThunk`.\r\n * Might be useful for wrapping `createAsyncThunk` in custom abstractions.\r\n *\r\n * @public\r\n */\r\nexport type AsyncThunk<\r\n  Returned,\r\n  ThunkArg,\r\n  ThunkApiConfig extends AsyncThunkConfig\r\n> = AsyncThunkActionCreator<Returned, ThunkArg, ThunkApiConfig> & {\r\n  pending: AsyncThunkPendingActionCreator<ThunkArg, ThunkApiConfig>\r\n  rejected: AsyncThunkRejectedActionCreator<ThunkArg, ThunkApiConfig>\r\n  fulfilled: AsyncThunkFulfilledActionCreator<\r\n    Returned,\r\n    ThunkArg,\r\n    ThunkApiConfig\r\n  >\r\n  typePrefix: string\r\n}\r\n\r\ntype OverrideThunkApiConfigs<OldConfig, NewConfig> = Id<\r\n  NewConfig & Omit<OldConfig, keyof NewConfig>\r\n>\r\n\r\ntype CreateAsyncThunk<CurriedThunkApiConfig extends AsyncThunkConfig> = {\r\n  /**\r\n   *\r\n   * @param typePrefix\r\n   * @param payloadCreator\r\n   * @param options\r\n   *\r\n   * @public\r\n   */\r\n  // separate signature without `AsyncThunkConfig` for better inference\r\n  <Returned, ThunkArg = void>(\r\n    typePrefix: string,\r\n    payloadCreator: AsyncThunkPayloadCreator<\r\n      Returned,\r\n      ThunkArg,\r\n      CurriedThunkApiConfig\r\n    >,\r\n    options?: AsyncThunkOptions<ThunkArg, CurriedThunkApiConfig>\r\n  ): AsyncThunk<Returned, ThunkArg, CurriedThunkApiConfig>\r\n\r\n  /**\r\n   *\r\n   * @param typePrefix\r\n   * @param payloadCreator\r\n   * @param options\r\n   *\r\n   * @public\r\n   */\r\n  <Returned, ThunkArg, ThunkApiConfig extends AsyncThunkConfig>(\r\n    typePrefix: string,\r\n    payloadCreator: AsyncThunkPayloadCreator<\r\n      Returned,\r\n      ThunkArg,\r\n      OverrideThunkApiConfigs<CurriedThunkApiConfig, ThunkApiConfig>\r\n    >,\r\n    options?: AsyncThunkOptions<\r\n      ThunkArg,\r\n      OverrideThunkApiConfigs<CurriedThunkApiConfig, ThunkApiConfig>\r\n    >\r\n  ): AsyncThunk<\r\n    Returned,\r\n    ThunkArg,\r\n    OverrideThunkApiConfigs<CurriedThunkApiConfig, ThunkApiConfig>\r\n  >\r\n\r\n  withTypes<ThunkApiConfig extends AsyncThunkConfig>(): CreateAsyncThunk<\r\n    OverrideThunkApiConfigs<CurriedThunkApiConfig, ThunkApiConfig>\r\n  >\r\n}\r\n\r\nexport const createAsyncThunk = (() => {\r\n  function createAsyncThunk<\r\n    Returned,\r\n    ThunkArg,\r\n    ThunkApiConfig extends AsyncThunkConfig\r\n  >(\r\n    typePrefix: string,\r\n    payloadCreator: AsyncThunkPayloadCreator<\r\n      Returned,\r\n      ThunkArg,\r\n      ThunkApiConfig\r\n    >,\r\n    options?: AsyncThunkOptions<ThunkArg, ThunkApiConfig>\r\n  ): AsyncThunk<Returned, ThunkArg, ThunkApiConfig> {\r\n    type RejectedValue = GetRejectValue<ThunkApiConfig>\r\n    type PendingMeta = GetPendingMeta<ThunkApiConfig>\r\n    type FulfilledMeta = GetFulfilledMeta<ThunkApiConfig>\r\n    type RejectedMeta = GetRejectedMeta<ThunkApiConfig>\r\n\r\n    const fulfilled: AsyncThunkFulfilledActionCreator<\r\n      Returned,\r\n      ThunkArg,\r\n      ThunkApiConfig\r\n    > = createAction(\r\n      typePrefix + '/fulfilled',\r\n      (\r\n        payload: Returned,\r\n        requestId: string,\r\n        arg: ThunkArg,\r\n        meta?: FulfilledMeta\r\n      ) => ({\r\n        payload,\r\n        meta: {\r\n          ...((meta as any) || {}),\r\n          arg,\r\n          requestId,\r\n          requestStatus: 'fulfilled' as const,\r\n        },\r\n      })\r\n    )\r\n\r\n    const pending: AsyncThunkPendingActionCreator<ThunkArg, ThunkApiConfig> =\r\n      createAction(\r\n        typePrefix + '/pending',\r\n        (requestId: string, arg: ThunkArg, meta?: PendingMeta) => ({\r\n          payload: undefined,\r\n          meta: {\r\n            ...((meta as any) || {}),\r\n            arg,\r\n            requestId,\r\n            requestStatus: 'pending' as const,\r\n          },\r\n        })\r\n      )\r\n\r\n    const rejected: AsyncThunkRejectedActionCreator<ThunkArg, ThunkApiConfig> =\r\n      createAction(\r\n        typePrefix + '/rejected',\r\n        (\r\n          error: Error | null,\r\n          requestId: string,\r\n          arg: ThunkArg,\r\n          payload?: RejectedValue,\r\n          meta?: RejectedMeta\r\n        ) => ({\r\n          payload,\r\n          error: ((options && options.serializeError) || miniSerializeError)(\r\n            error || 'Rejected'\r\n          ) as GetSerializedErrorType<ThunkApiConfig>,\r\n          meta: {\r\n            ...((meta as any) || {}),\r\n            arg,\r\n            requestId,\r\n            rejectedWithValue: !!payload,\r\n            requestStatus: 'rejected' as const,\r\n            aborted: error?.name === 'AbortError',\r\n            condition: error?.name === 'ConditionError',\r\n          },\r\n        })\r\n      )\r\n\r\n    let displayedWarning = false\r\n\r\n    const AC =\r\n      typeof AbortController !== 'undefined'\r\n        ? AbortController\r\n        : class implements AbortController {\r\n            signal = {\r\n              aborted: false,\r\n              addEventListener() {},\r\n              dispatchEvent() {\r\n                return false\r\n              },\r\n              onabort() {},\r\n              removeEventListener() {},\r\n              reason: undefined,\r\n              throwIfAborted() {},\r\n            }\r\n            abort() {\r\n              if (process.env.NODE_ENV !== 'production') {\r\n                if (!displayedWarning) {\r\n                  displayedWarning = true\r\n                  console.info(\r\n                    `This platform does not implement AbortController. \r\nIf you want to use the AbortController to react to \\`abort\\` events, please consider importing a polyfill like 'abortcontroller-polyfill/dist/abortcontroller-polyfill-only'.`\r\n                  )\r\n                }\r\n              }\r\n            }\r\n          }\r\n\r\n    function actionCreator(\r\n      arg: ThunkArg\r\n    ): AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig> {\r\n      return (dispatch, getState, extra) => {\r\n        const requestId = options?.idGenerator\r\n          ? options.idGenerator(arg)\r\n          : nanoid()\r\n\r\n        const abortController = new AC()\r\n        let abortReason: string | undefined\r\n\r\n        let started = false\r\n        function abort(reason?: string) {\r\n          abortReason = reason\r\n          abortController.abort()\r\n        }\r\n\r\n        const promise = (async function () {\r\n          let finalAction: ReturnType<typeof fulfilled | typeof rejected>\r\n          try {\r\n            let conditionResult = options?.condition?.(arg, { getState, extra })\r\n            if (isThenable(conditionResult)) {\r\n              conditionResult = await conditionResult\r\n            }\r\n\r\n            if (conditionResult === false || abortController.signal.aborted) {\r\n              // eslint-disable-next-line no-throw-literal\r\n              throw {\r\n                name: 'ConditionError',\r\n                message: 'Aborted due to condition callback returning false.',\r\n              }\r\n            }\r\n            started = true\r\n\r\n            const abortedPromise = new Promise<never>((_, reject) =>\r\n              abortController.signal.addEventListener('abort', () =>\r\n                reject({\r\n                  name: 'AbortError',\r\n                  message: abortReason || 'Aborted',\r\n                })\r\n              )\r\n            )\r\n            dispatch(\r\n              pending(\r\n                requestId,\r\n                arg,\r\n                options?.getPendingMeta?.(\r\n                  { requestId, arg },\r\n                  { getState, extra }\r\n                )\r\n              )\r\n            )\r\n            finalAction = await Promise.race([\r\n              abortedPromise,\r\n              Promise.resolve(\r\n                payloadCreator(arg, {\r\n                  dispatch,\r\n                  getState,\r\n                  extra,\r\n                  requestId,\r\n                  signal: abortController.signal,\r\n                  abort,\r\n                  rejectWithValue: ((\r\n                    value: RejectedValue,\r\n                    meta?: RejectedMeta\r\n                  ) => {\r\n                    return new RejectWithValue(value, meta)\r\n                  }) as any,\r\n                  fulfillWithValue: ((value: unknown, meta?: FulfilledMeta) => {\r\n                    return new FulfillWithMeta(value, meta)\r\n                  }) as any,\r\n                })\r\n              ).then((result) => {\r\n                if (result instanceof RejectWithValue) {\r\n                  throw result\r\n                }\r\n                if (result instanceof FulfillWithMeta) {\r\n                  return fulfilled(result.payload, requestId, arg, result.meta)\r\n                }\r\n                return fulfilled(result as any, requestId, arg)\r\n              }),\r\n            ])\r\n          } catch (err) {\r\n            finalAction =\r\n              err instanceof RejectWithValue\r\n                ? rejected(null, requestId, arg, err.payload, err.meta)\r\n                : rejected(err as any, requestId, arg)\r\n          }\r\n          // We dispatch the result action _after_ the catch, to avoid having any errors\r\n          // here get swallowed by the try/catch block,\r\n          // per https://twitter.com/dan_abramov/status/770914221638942720\r\n          // and https://github.com/reduxjs/redux-toolkit/blob/e85eb17b39a2118d859f7b7746e0f3fee523e089/docs/tutorials/advanced-tutorial.md#async-error-handling-logic-in-thunks\r\n\r\n          const skipDispatch =\r\n            options &&\r\n            !options.dispatchConditionRejection &&\r\n            rejected.match(finalAction) &&\r\n            (finalAction as any).meta.condition\r\n\r\n          if (!skipDispatch) {\r\n            dispatch(finalAction)\r\n          }\r\n          return finalAction\r\n        })()\r\n        return Object.assign(promise as Promise<any>, {\r\n          abort,\r\n          requestId,\r\n          arg,\r\n          unwrap() {\r\n            return promise.then<any>(unwrapResult)\r\n          },\r\n        })\r\n      }\r\n    }\r\n\r\n    return Object.assign(\r\n      actionCreator as AsyncThunkActionCreator<\r\n        Returned,\r\n        ThunkArg,\r\n        ThunkApiConfig\r\n      >,\r\n      {\r\n        pending,\r\n        rejected,\r\n        fulfilled,\r\n        typePrefix,\r\n      }\r\n    )\r\n  }\r\n  createAsyncThunk.withTypes = () => createAsyncThunk\r\n\r\n  return createAsyncThunk as CreateAsyncThunk<AsyncThunkConfig>\r\n})()\r\n\r\ninterface UnwrappableAction {\r\n  payload: any\r\n  meta?: any\r\n  error?: any\r\n}\r\n\r\ntype UnwrappedActionPayload<T extends UnwrappableAction> = Exclude<\r\n  T,\r\n  { error: any }\r\n>['payload']\r\n\r\n/**\r\n * @public\r\n */\r\nexport function unwrapResult<R extends UnwrappableAction>(\r\n  action: R\r\n): UnwrappedActionPayload<R> {\r\n  if (action.meta && action.meta.rejectedWithValue) {\r\n    throw action.payload\r\n  }\r\n  if (action.error) {\r\n    throw action.error\r\n  }\r\n  return action.payload\r\n}\r\n\r\ntype WithStrictNullChecks<True, False> = undefined extends boolean\r\n  ? False\r\n  : True\r\n\r\nfunction isThenable(value: any): value is PromiseLike<any> {\r\n  return (\r\n    value !== null &&\r\n    typeof value === 'object' &&\r\n    typeof value.then === 'function'\r\n  )\r\n}\r\n","import type { Dispatch, AnyAction, MiddlewareAPI } from 'redux'\r\nimport type { ThunkDispatch } from 'redux-thunk'\r\nimport { createAction, isAction } from '../createAction'\r\nimport { nanoid } from '../nanoid'\r\n\r\nimport type {\r\n  ListenerMiddleware,\r\n  ListenerMiddlewareInstance,\r\n  AddListenerOverloads,\r\n  AnyListenerPredicate,\r\n  CreateListenerMiddlewareOptions,\r\n  TypedAddListener,\r\n  TypedCreateListenerEntry,\r\n  FallbackAddListenerOptions,\r\n  ListenerEntry,\r\n  ListenerErrorHandler,\r\n  UnsubscribeListener,\r\n  TakePattern,\r\n  ListenerErrorInfo,\r\n  ForkedTaskExecutor,\r\n  ForkedTask,\r\n  TypedRemoveListener,\r\n  TaskResult,\r\n  AbortSignalWithReason,\r\n  UnsubscribeListenerOptions,\r\n} from './types'\r\nimport {\r\n  abortControllerWithReason,\r\n  addAbortSignalListener,\r\n  assertFunction,\r\n  catchRejection,\r\n} from './utils'\r\nimport {\r\n  listenerCancelled,\r\n  listenerCompleted,\r\n  TaskAbortError,\r\n  taskCancelled,\r\n  taskCompleted,\r\n} from './exceptions'\r\nimport {\r\n  runTask,\r\n  validateActive,\r\n  createPause,\r\n  createDelay,\r\n  raceWithSignal,\r\n} from './task'\r\nexport { TaskAbortError } from './exceptions'\r\nexport type {\r\n  ListenerEffect,\r\n  ListenerMiddleware,\r\n  ListenerEffectAPI,\r\n  ListenerMiddlewareInstance,\r\n  CreateListenerMiddlewareOptions,\r\n  ListenerErrorHandler,\r\n  TypedStartListening,\r\n  TypedAddListener,\r\n  TypedStopListening,\r\n  TypedRemoveListener,\r\n  UnsubscribeListener,\r\n  UnsubscribeListenerOptions,\r\n  ForkedTaskExecutor,\r\n  ForkedTask,\r\n  ForkedTaskAPI,\r\n  AsyncTaskExecutor,\r\n  SyncTaskExecutor,\r\n  TaskCancelled,\r\n  TaskRejected,\r\n  TaskResolved,\r\n  TaskResult,\r\n} from './types'\r\n\r\n//Overly-aggressive byte-shaving\r\nconst { assign } = Object\r\n/**\r\n * @internal\r\n */\r\nconst INTERNAL_NIL_TOKEN = {} as const\r\n\r\nconst alm = 'listenerMiddleware' as const\r\n\r\nconst createFork = (parentAbortSignal: AbortSignalWithReason<unknown>) => {\r\n  const linkControllers = (controller: AbortController) =>\r\n    addAbortSignalListener(parentAbortSignal, () =>\r\n      abortControllerWithReason(controller, parentAbortSignal.reason)\r\n    )\r\n\r\n  return <T>(taskExecutor: ForkedTaskExecutor<T>): ForkedTask<T> => {\r\n    assertFunction(taskExecutor, 'taskExecutor')\r\n    const childAbortController = new AbortController()\r\n\r\n    linkControllers(childAbortController)\r\n\r\n    const result = runTask<T>(\r\n      async (): Promise<T> => {\r\n        validateActive(parentAbortSignal)\r\n        validateActive(childAbortController.signal)\r\n        const result = (await taskExecutor({\r\n          pause: createPause(childAbortController.signal),\r\n          delay: createDelay(childAbortController.signal),\r\n          signal: childAbortController.signal,\r\n        })) as T\r\n        validateActive(childAbortController.signal)\r\n        return result\r\n      },\r\n      () => abortControllerWithReason(childAbortController, taskCompleted)\r\n    )\r\n\r\n    return {\r\n      result: createPause<TaskResult<T>>(parentAbortSignal)(result),\r\n      cancel() {\r\n        abortControllerWithReason(childAbortController, taskCancelled)\r\n      },\r\n    }\r\n  }\r\n}\r\n\r\nconst createTakePattern = <S>(\r\n  startListening: AddListenerOverloads<\r\n    UnsubscribeListener,\r\n    S,\r\n    Dispatch<AnyAction>\r\n  >,\r\n  signal: AbortSignal\r\n): TakePattern<S> => {\r\n  /**\r\n   * A function that takes a ListenerPredicate and an optional timeout,\r\n   * and resolves when either the predicate returns `true` based on an action\r\n   * state combination or when the timeout expires.\r\n   * If the parent listener is canceled while waiting, this will throw a\r\n   * TaskAbortError.\r\n   */\r\n  const take = async <P extends AnyListenerPredicate<S>>(\r\n    predicate: P,\r\n    timeout: number | undefined\r\n  ) => {\r\n    validateActive(signal)\r\n\r\n    // Placeholder unsubscribe function until the listener is added\r\n    let unsubscribe: UnsubscribeListener = () => {}\r\n\r\n    const tuplePromise = new Promise<[AnyAction, S, S]>((resolve, reject) => {\r\n      // Inside the Promise, we synchronously add the listener.\r\n      let stopListening = startListening({\r\n        predicate: predicate as any,\r\n        effect: (action, listenerApi): void => {\r\n          // One-shot listener that cleans up as soon as the predicate passes\r\n          listenerApi.unsubscribe()\r\n          // Resolve the promise with the same arguments the predicate saw\r\n          resolve([\r\n            action,\r\n            listenerApi.getState(),\r\n            listenerApi.getOriginalState(),\r\n          ])\r\n        },\r\n      })\r\n      unsubscribe = () => {\r\n        stopListening()\r\n        reject()\r\n      }\r\n    })\r\n\r\n    const promises: (Promise<null> | Promise<[AnyAction, S, S]>)[] = [\r\n      tuplePromise,\r\n    ]\r\n\r\n    if (timeout != null) {\r\n      promises.push(\r\n        new Promise<null>((resolve) => setTimeout(resolve, timeout, null))\r\n      )\r\n    }\r\n\r\n    try {\r\n      const output = await raceWithSignal(signal, Promise.race(promises))\r\n\r\n      validateActive(signal)\r\n      return output\r\n    } finally {\r\n      // Always clean up the listener\r\n      unsubscribe()\r\n    }\r\n  }\r\n\r\n  return ((predicate: AnyListenerPredicate<S>, timeout: number | undefined) =>\r\n    catchRejection(take(predicate, timeout))) as TakePattern<S>\r\n}\r\n\r\nconst getListenerEntryPropsFrom = (options: FallbackAddListenerOptions) => {\r\n  let { type, actionCreator, matcher, predicate, effect } = options\r\n\r\n  if (type) {\r\n    predicate = createAction(type).match\r\n  } else if (actionCreator) {\r\n    type = actionCreator!.type\r\n    predicate = actionCreator.match\r\n  } else if (matcher) {\r\n    predicate = matcher\r\n  } else if (predicate) {\r\n    // pass\r\n  } else {\r\n    throw new Error(\r\n      'Creating or removing a listener requires one of the known fields for matching an action'\r\n    )\r\n  }\r\n\r\n  assertFunction(effect, 'options.listener')\r\n\r\n  return { predicate, type, effect }\r\n}\r\n\r\n/** Accepts the possible options for creating a listener, and returns a formatted listener entry */\r\nexport const createListenerEntry: TypedCreateListenerEntry<unknown> = (\r\n  options: FallbackAddListenerOptions\r\n) => {\r\n  const { type, predicate, effect } = getListenerEntryPropsFrom(options)\r\n\r\n  const id = nanoid()\r\n  const entry: ListenerEntry<unknown> = {\r\n    id,\r\n    effect,\r\n    type,\r\n    predicate,\r\n    pending: new Set<AbortController>(),\r\n    unsubscribe: () => {\r\n      throw new Error('Unsubscribe not initialized')\r\n    },\r\n  }\r\n\r\n  return entry\r\n}\r\n\r\nconst cancelActiveListeners = (\r\n  entry: ListenerEntry<unknown, Dispatch<AnyAction>>\r\n) => {\r\n  entry.pending.forEach((controller) => {\r\n    abortControllerWithReason(controller, listenerCancelled)\r\n  })\r\n}\r\n\r\nconst createClearListenerMiddleware = (\r\n  listenerMap: Map<string, ListenerEntry>\r\n) => {\r\n  return () => {\r\n    listenerMap.forEach(cancelActiveListeners)\r\n\r\n    listenerMap.clear()\r\n  }\r\n}\r\n\r\n/**\r\n * Safely reports errors to the `errorHandler` provided.\r\n * Errors that occur inside `errorHandler` are notified in a new task.\r\n * Inspired by [rxjs reportUnhandledError](https://github.com/ReactiveX/rxjs/blob/6fafcf53dc9e557439b25debaeadfd224b245a66/src/internal/util/reportUnhandledError.ts)\r\n * @param errorHandler\r\n * @param errorToNotify\r\n */\r\nconst safelyNotifyError = (\r\n  errorHandler: ListenerErrorHandler,\r\n  errorToNotify: unknown,\r\n  errorInfo: ListenerErrorInfo\r\n): void => {\r\n  try {\r\n    errorHandler(errorToNotify, errorInfo)\r\n  } catch (errorHandlerError) {\r\n    // We cannot let an error raised here block the listener queue.\r\n    // The error raised here will be picked up by `window.onerror`, `process.on('error')` etc...\r\n    setTimeout(() => {\r\n      throw errorHandlerError\r\n    }, 0)\r\n  }\r\n}\r\n\r\n/**\r\n * @public\r\n */\r\nexport const addListener = createAction(\r\n  `${alm}/add`\r\n) as TypedAddListener<unknown>\r\n\r\n/**\r\n * @public\r\n */\r\nexport const clearAllListeners = createAction(`${alm}/removeAll`)\r\n\r\n/**\r\n * @public\r\n */\r\nexport const removeListener = createAction(\r\n  `${alm}/remove`\r\n) as TypedRemoveListener<unknown>\r\n\r\nconst defaultErrorHandler: ListenerErrorHandler = (...args: unknown[]) => {\r\n  console.error(`${alm}/error`, ...args)\r\n}\r\n\r\n/**\r\n * @public\r\n */\r\nexport function createListenerMiddleware<\r\n  S = unknown,\r\n  D extends Dispatch<AnyAction> = ThunkDispatch<S, unknown, AnyAction>,\r\n  ExtraArgument = unknown\r\n>(middlewareOptions: CreateListenerMiddlewareOptions<ExtraArgument> = {}) {\r\n  const listenerMap = new Map<string, ListenerEntry>()\r\n  const { extra, onError = defaultErrorHandler } = middlewareOptions\r\n\r\n  assertFunction(onError, 'onError')\r\n\r\n  const insertEntry = (entry: ListenerEntry) => {\r\n    entry.unsubscribe = () => listenerMap.delete(entry!.id)\r\n\r\n    listenerMap.set(entry.id, entry)\r\n    return (cancelOptions?: UnsubscribeListenerOptions) => {\r\n      entry.unsubscribe()\r\n      if (cancelOptions?.cancelActive) {\r\n        cancelActiveListeners(entry)\r\n      }\r\n    }\r\n  }\r\n\r\n  const findListenerEntry = (\r\n    comparator: (entry: ListenerEntry) => boolean\r\n  ): ListenerEntry | undefined => {\r\n    for (const entry of Array.from(listenerMap.values())) {\r\n      if (comparator(entry)) {\r\n        return entry\r\n      }\r\n    }\r\n\r\n    return undefined\r\n  }\r\n\r\n  const startListening = (options: FallbackAddListenerOptions) => {\r\n    let entry = findListenerEntry(\r\n      (existingEntry) => existingEntry.effect === options.effect\r\n    )\r\n\r\n    if (!entry) {\r\n      entry = createListenerEntry(options as any)\r\n    }\r\n\r\n    return insertEntry(entry)\r\n  }\r\n\r\n  const stopListening = (\r\n    options: FallbackAddListenerOptions & UnsubscribeListenerOptions\r\n  ): boolean => {\r\n    const { type, effect, predicate } = getListenerEntryPropsFrom(options)\r\n\r\n    const entry = findListenerEntry((entry) => {\r\n      const matchPredicateOrType =\r\n        typeof type === 'string'\r\n          ? entry.type === type\r\n          : entry.predicate === predicate\r\n\r\n      return matchPredicateOrType && entry.effect === effect\r\n    })\r\n\r\n    if (entry) {\r\n      entry.unsubscribe()\r\n      if (options.cancelActive) {\r\n        cancelActiveListeners(entry)\r\n      }\r\n    }\r\n\r\n    return !!entry\r\n  }\r\n\r\n  const notifyListener = async (\r\n    entry: ListenerEntry<unknown, Dispatch<AnyAction>>,\r\n    action: AnyAction,\r\n    api: MiddlewareAPI,\r\n    getOriginalState: () => S\r\n  ) => {\r\n    const internalTaskController = new AbortController()\r\n    const take = createTakePattern(\r\n      startListening,\r\n      internalTaskController.signal\r\n    )\r\n\r\n    try {\r\n      entry.pending.add(internalTaskController)\r\n      await Promise.resolve(\r\n        entry.effect(\r\n          action,\r\n          // Use assign() rather than ... to avoid extra helper functions added to bundle\r\n          assign({}, api, {\r\n            getOriginalState,\r\n            condition: (\r\n              predicate: AnyListenerPredicate<any>,\r\n              timeout?: number\r\n            ) => take(predicate, timeout).then(Boolean),\r\n            take,\r\n            delay: createDelay(internalTaskController.signal),\r\n            pause: createPause<any>(internalTaskController.signal),\r\n            extra,\r\n            signal: internalTaskController.signal,\r\n            fork: createFork(internalTaskController.signal),\r\n            unsubscribe: entry.unsubscribe,\r\n            subscribe: () => {\r\n              listenerMap.set(entry.id, entry)\r\n            },\r\n            cancelActiveListeners: () => {\r\n              entry.pending.forEach((controller, _, set) => {\r\n                if (controller !== internalTaskController) {\r\n                  abortControllerWithReason(controller, listenerCancelled)\r\n                  set.delete(controller)\r\n                }\r\n              })\r\n            },\r\n          })\r\n        )\r\n      )\r\n    } catch (listenerError) {\r\n      if (!(listenerError instanceof TaskAbortError)) {\r\n        safelyNotifyError(onError, listenerError, {\r\n          raisedBy: 'effect',\r\n        })\r\n      }\r\n    } finally {\r\n      abortControllerWithReason(internalTaskController, listenerCompleted) // Notify that the task has completed\r\n      entry.pending.delete(internalTaskController)\r\n    }\r\n  }\r\n\r\n  const clearListenerMiddleware = createClearListenerMiddleware(listenerMap)\r\n\r\n  const middleware: ListenerMiddleware<S, D, ExtraArgument> =\r\n    (api) => (next) => (action) => {\r\n      if (!isAction(action)) {\r\n        // we only want to notify listeners for action objects\r\n        return next(action)\r\n      }\r\n\r\n      if (addListener.match(action)) {\r\n        return startListening(action.payload)\r\n      }\r\n\r\n      if (clearAllListeners.match(action)) {\r\n        clearListenerMiddleware()\r\n        return\r\n      }\r\n\r\n      if (removeListener.match(action)) {\r\n        return stopListening(action.payload)\r\n      }\r\n\r\n      // Need to get this state _before_ the reducer processes the action\r\n      let originalState: S | typeof INTERNAL_NIL_TOKEN = api.getState()\r\n\r\n      // `getOriginalState` can only be called synchronously.\r\n      // @see https://github.com/reduxjs/redux-toolkit/discussions/1648#discussioncomment-1932820\r\n      const getOriginalState = (): S => {\r\n        if (originalState === INTERNAL_NIL_TOKEN) {\r\n          throw new Error(\r\n            `${alm}: getOriginalState can only be called synchronously`\r\n          )\r\n        }\r\n\r\n        return originalState as S\r\n      }\r\n\r\n      let result: unknown\r\n\r\n      try {\r\n        // Actually forward the action to the reducer before we handle listeners\r\n        result = next(action)\r\n\r\n        if (listenerMap.size > 0) {\r\n          let currentState = api.getState()\r\n          // Work around ESBuild+TS transpilation issue\r\n          const listenerEntries = Array.from(listenerMap.values())\r\n          for (let entry of listenerEntries) {\r\n            let runListener = false\r\n\r\n            try {\r\n              runListener = entry.predicate(action, currentState, originalState)\r\n            } catch (predicateError) {\r\n              runListener = false\r\n\r\n              safelyNotifyError(onError, predicateError, {\r\n                raisedBy: 'predicate',\r\n              })\r\n            }\r\n\r\n            if (!runListener) {\r\n              continue\r\n            }\r\n\r\n            notifyListener(entry, action, api, getOriginalState)\r\n          }\r\n        }\r\n      } finally {\r\n        // Remove `originalState` store from this scope.\r\n        originalState = INTERNAL_NIL_TOKEN\r\n      }\r\n\r\n      return result\r\n    }\r\n\r\n  return {\r\n    middleware,\r\n    startListening,\r\n    stopListening,\r\n    clearListeners: clearListenerMiddleware,\r\n  } as ListenerMiddlewareInstance<S, D, ExtraArgument>\r\n}\r\n","import { TaskAbortError } from './exceptions'\r\nimport type { AbortSignalWithReason, TaskResult } from './types'\r\nimport { addAbortSignalListener, catchRejection, noop } from './utils'\r\n\r\n/**\r\n * Synchronously raises {@link TaskAbortError} if the task tied to the input `signal` has been cancelled.\r\n * @param signal\r\n * @param reason\r\n * @see {TaskAbortError}\r\n */\r\nexport const validateActive = (signal: AbortSignal): void => {\r\n  if (signal.aborted) {\r\n    throw new TaskAbortError((signal as AbortSignalWithReason<string>).reason)\r\n  }\r\n}\r\n\r\n/**\r\n * Generates a race between the promise(s) and the AbortSignal\r\n * This avoids `Promise.race()`-related memory leaks:\r\n * https://github.com/nodejs/node/issues/17469#issuecomment-349794909\r\n */\r\nexport function raceWithSignal<T>(\r\n  signal: AbortSignalWithReason<string>,\r\n  promise: Promise<T>\r\n): Promise<T> {\r\n  let cleanup = noop\r\n  return new Promise<T>((resolve, reject) => {\r\n    const notifyRejection = () => reject(new TaskAbortError(signal.reason))\r\n\r\n    if (signal.aborted) {\r\n      notifyRejection()\r\n      return\r\n    }\r\n\r\n    cleanup = addAbortSignalListener(signal, notifyRejection)\r\n    promise.finally(() => cleanup()).then(resolve, reject)\r\n  }).finally(() => {\r\n    // after this point, replace `cleanup` with a noop, so there is no reference to `signal` any more\r\n    cleanup = noop\r\n  })\r\n}\r\n\r\n/**\r\n * Runs a task and returns promise that resolves to {@link TaskResult}.\r\n * Second argument is an optional `cleanUp` function that always runs after task.\r\n *\r\n * **Note:** `runTask` runs the executor in the next microtask.\r\n * @returns\r\n */\r\nexport const runTask = async <T>(\r\n  task: () => Promise<T>,\r\n  cleanUp?: () => void\r\n): Promise<TaskResult<T>> => {\r\n  try {\r\n    await Promise.resolve()\r\n    const value = await task()\r\n    return {\r\n      status: 'ok',\r\n      value,\r\n    }\r\n  } catch (error: any) {\r\n    return {\r\n      status: error instanceof TaskAbortError ? 'cancelled' : 'rejected',\r\n      error,\r\n    }\r\n  } finally {\r\n    cleanUp?.()\r\n  }\r\n}\r\n\r\n/**\r\n * Given an input `AbortSignal` and a promise returns another promise that resolves\r\n * as soon the input promise is provided or rejects as soon as\r\n * `AbortSignal.abort` is `true`.\r\n * @param signal\r\n * @returns\r\n */\r\nexport const createPause = <T>(signal: AbortSignal) => {\r\n  return (promise: Promise<T>): Promise<T> => {\r\n    return catchRejection(\r\n      raceWithSignal(signal, promise).then((output) => {\r\n        validateActive(signal)\r\n        return output\r\n      })\r\n    )\r\n  }\r\n}\r\n\r\n/**\r\n * Given an input `AbortSignal` and `timeoutMs` returns a promise that resolves\r\n * after `timeoutMs` or rejects as soon as `AbortSignal.abort` is `true`.\r\n * @param signal\r\n * @returns\r\n */\r\nexport const createDelay = (signal: AbortSignal) => {\r\n  const pause = createPause<void>(signal)\r\n  return (timeoutMs: number): Promise<void> => {\r\n    return pause(new Promise<void>((resolve) => setTimeout(resolve, timeoutMs)))\r\n  }\r\n}\r\n","import type { StoreEnhancer } from 'redux'\r\n\r\nexport const SHOULD_AUTOBATCH = 'RTK_autoBatch'\r\n\r\nexport const prepareAutoBatched =\r\n  <T>() =>\r\n  (payload: T): { payload: T; meta: unknown } => ({\r\n    payload,\r\n    meta: { [SHOULD_AUTOBATCH]: true },\r\n  })\r\n\r\n// TODO Remove this in 2.0\r\n// Copied from https://github.com/feross/queue-microtask\r\nlet promise: Promise<any>\r\nconst queueMicrotaskShim =\r\n  typeof queueMicrotask === 'function'\r\n    ? queueMicrotask.bind(\r\n        typeof window !== 'undefined'\r\n          ? window\r\n          : typeof global !== 'undefined'\r\n          ? global\r\n          : globalThis\r\n      )\r\n    : // reuse resolved promise, and allocate it lazily\r\n      (cb: () => void) =>\r\n        (promise || (promise = Promise.resolve())).then(cb).catch((err: any) =>\r\n          setTimeout(() => {\r\n            throw err\r\n          }, 0)\r\n        )\r\n\r\nconst createQueueWithTimer = (timeout: number) => {\r\n  return (notify: () => void) => {\r\n    setTimeout(notify, timeout)\r\n  }\r\n}\r\n\r\n// requestAnimationFrame won't exist in SSR environments.\r\n// Fall back to a vague approximation just to keep from erroring.\r\nconst rAF =\r\n  typeof window !== 'undefined' && window.requestAnimationFrame\r\n    ? window.requestAnimationFrame\r\n    : createQueueWithTimer(10)\r\n\r\nexport type AutoBatchOptions =\r\n  | { type: 'tick' }\r\n  | { type: 'timer'; timeout: number }\r\n  | { type: 'raf' }\r\n  | { type: 'callback'; queueNotification: (notify: () => void) => void }\r\n\r\n/**\r\n * A Redux store enhancer that watches for \"low-priority\" actions, and delays\r\n * notifying subscribers until either the queued callback executes or the\r\n * next \"standard-priority\" action is dispatched.\r\n *\r\n * This allows dispatching multiple \"low-priority\" actions in a row with only\r\n * a single subscriber notification to the UI after the sequence of actions\r\n * is finished, thus improving UI re-render performance.\r\n *\r\n * Watches for actions with the `action.meta[SHOULD_AUTOBATCH]` attribute.\r\n * This can be added to `action.meta` manually, or by using the\r\n * `prepareAutoBatched` helper.\r\n *\r\n * By default, it will queue a notification for the end of the event loop tick.\r\n * However, you can pass several other options to configure the behavior:\r\n * - `{type: 'tick'}: queues using `queueMicrotask` (default)\r\n * - `{type: 'timer, timeout: number}`: queues using `setTimeout`\r\n * - `{type: 'raf'}`: queues using `requestAnimationFrame`\r\n * - `{type: 'callback', queueNotification: (notify: () => void) => void}: lets you provide your own callback\r\n *\r\n *\r\n */\r\nexport const autoBatchEnhancer =\r\n  (options: AutoBatchOptions = { type: 'raf' }): StoreEnhancer =>\r\n  (next) =>\r\n  (...args) => {\r\n    const store = next(...args)\r\n\r\n    let notifying = true\r\n    let shouldNotifyAtEndOfTick = false\r\n    let notificationQueued = false\r\n\r\n    const listeners = new Set<() => void>()\r\n\r\n    const queueCallback =\r\n      options.type === 'tick'\r\n        ? queueMicrotaskShim\r\n        : options.type === 'raf'\r\n        ? rAF\r\n        : options.type === 'callback'\r\n        ? options.queueNotification\r\n        : createQueueWithTimer(options.timeout)\r\n\r\n    const notifyListeners = () => {\r\n      // We're running at the end of the event loop tick.\r\n      // Run the real listener callbacks to actually update the UI.\r\n      notificationQueued = false\r\n      if (shouldNotifyAtEndOfTick) {\r\n        shouldNotifyAtEndOfTick = false\r\n        listeners.forEach((l) => l())\r\n      }\r\n    }\r\n\r\n    return Object.assign({}, store, {\r\n      // Override the base `store.subscribe` method to keep original listeners\r\n      // from running if we're delaying notifications\r\n      subscribe(listener: () => void) {\r\n        // Each wrapped listener will only call the real listener if\r\n        // the `notifying` flag is currently active when it's called.\r\n        // This lets the base store work as normal, while the actual UI\r\n        // update becomes controlled by this enhancer.\r\n        const wrappedListener: typeof listener = () => notifying && listener()\r\n        const unsubscribe = store.subscribe(wrappedListener)\r\n        listeners.add(listener)\r\n        return () => {\r\n          unsubscribe()\r\n          listeners.delete(listener)\r\n        }\r\n      },\r\n      // Override the base `store.dispatch` method so that we can check actions\r\n      // for the `shouldAutoBatch` flag and determine if batching is active\r\n      dispatch(action: any) {\r\n        try {\r\n          // If the action does _not_ have the `shouldAutoBatch` flag,\r\n          // we resume/continue normal notify-after-each-dispatch behavior\r\n          notifying = !action?.meta?.[SHOULD_AUTOBATCH]\r\n          // If a `notifyListeners` microtask was queued, you can't cancel it.\r\n          // Instead, we set a flag so that it's a no-op when it does run\r\n          shouldNotifyAtEndOfTick = !notifying\r\n          if (shouldNotifyAtEndOfTick) {\r\n            // We've seen at least 1 action with `SHOULD_AUTOBATCH`. Try to queue\r\n            // a microtask to notify listeners at the end of the event loop tick.\r\n            // Make sure we only enqueue this _once_ per tick.\r\n            if (!notificationQueued) {\r\n              notificationQueued = true\r\n              queueCallback(notifyListeners)\r\n            }\r\n          }\r\n          // Go ahead and process the action as usual, including reducers.\r\n          // If normal notification behavior is enabled, the store will notify\r\n          // all of its own listeners, and the wrapper callbacks above will\r\n          // see `notifying` is true and pass on to the real listener callbacks.\r\n          // If we're \"batching\" behavior, then the wrapped callbacks will\r\n          // bail out, causing the base store notification behavior to be no-ops.\r\n          return store.dispatch(action)\r\n        } finally {\r\n          // Assume we're back to normal behavior after each action\r\n          notifying = true\r\n        }\r\n      },\r\n    })\r\n  }\r\n","import { enableES5 } from 'immer'\r\nexport * from 'redux'\r\nexport {\r\n  default as createNextState,\r\n  current,\r\n  freeze,\r\n  original,\r\n  isDraft,\r\n} from 'immer'\r\nexport type { Draft } from 'immer'\r\nexport { createSelector } from 'reselect'\r\nexport type {\r\n  Selector,\r\n  OutputParametricSelector,\r\n  OutputSelector,\r\n  ParametricSelector,\r\n} from 'reselect'\r\nexport { createDraftSafeSelector } from './createDraftSafeSelector'\r\nexport type { ThunkAction, ThunkDispatch, ThunkMiddleware } from 'redux-thunk'\r\n\r\n// We deliberately enable Immer's ES5 support, on the grounds that\r\n// we assume RTK will be used with React Native and other Proxy-less\r\n// environments.  In addition, that's how Immer 4 behaved, and since\r\n// we want to ship this in an RTK minor, we should keep the same behavior.\r\nenableES5()\r\n\r\nexport {\r\n  // js\r\n  configureStore,\r\n} from './configureStore'\r\nexport type {\r\n  // types\r\n  ConfigureEnhancersCallback,\r\n  ConfigureStoreOptions,\r\n  EnhancedStore,\r\n} from './configureStore'\r\nexport type { DevToolsEnhancerOptions } from './devtoolsExtension'\r\nexport {\r\n  // js\r\n  createAction,\r\n  getType,\r\n  isAction,\r\n  isFSA as isFluxStandardAction,\r\n} from './createAction'\r\nexport type {\r\n  // types\r\n  PayloadAction,\r\n  PayloadActionCreator,\r\n  ActionCreatorWithNonInferrablePayload,\r\n  ActionCreatorWithOptionalPayload,\r\n  ActionCreatorWithPayload,\r\n  ActionCreatorWithoutPayload,\r\n  ActionCreatorWithPreparedPayload,\r\n  PrepareAction,\r\n} from './createAction'\r\nexport {\r\n  // js\r\n  createReducer,\r\n} from './createReducer'\r\nexport type {\r\n  // types\r\n  Actions,\r\n  CaseReducer,\r\n  CaseReducers,\r\n} from './createReducer'\r\nexport {\r\n  // js\r\n  createSlice,\r\n} from './createSlice'\r\n\r\nexport type {\r\n  // types\r\n  CreateSliceOptions,\r\n  Slice,\r\n  CaseReducerActions,\r\n  SliceCaseReducers,\r\n  ValidateSliceCaseReducers,\r\n  CaseReducerWithPrepare,\r\n  SliceActionCreator,\r\n} from './createSlice'\r\nexport {\r\n  // js\r\n  createImmutableStateInvariantMiddleware,\r\n  isImmutableDefault,\r\n} from './immutableStateInvariantMiddleware'\r\nexport type {\r\n  // types\r\n  ImmutableStateInvariantMiddlewareOptions,\r\n} from './immutableStateInvariantMiddleware'\r\nexport {\r\n  // js\r\n  createSerializableStateInvariantMiddleware,\r\n  findNonSerializableValue,\r\n  isPlain,\r\n} from './serializableStateInvariantMiddleware'\r\nexport type {\r\n  // types\r\n  SerializableStateInvariantMiddlewareOptions,\r\n} from './serializableStateInvariantMiddleware'\r\nexport {\r\n  // js\r\n  getDefaultMiddleware,\r\n} from './getDefaultMiddleware'\r\nexport type {\r\n  // types\r\n  ActionReducerMapBuilder,\r\n} from './mapBuilders'\r\nexport { MiddlewareArray, EnhancerArray } from './utils'\r\n\r\nexport { createEntityAdapter } from './entities/create_adapter'\r\nexport type {\r\n  Dictionary,\r\n  EntityState,\r\n  EntityAdapter,\r\n  EntitySelectors,\r\n  EntityStateAdapter,\r\n  EntityId,\r\n  Update,\r\n  IdSelector,\r\n  Comparer,\r\n} from './entities/models'\r\n\r\nexport {\r\n  createAsyncThunk,\r\n  unwrapResult,\r\n  miniSerializeError,\r\n} from './createAsyncThunk'\r\nexport type {\r\n  AsyncThunk,\r\n  AsyncThunkOptions,\r\n  AsyncThunkAction,\r\n  AsyncThunkPayloadCreatorReturnValue,\r\n  AsyncThunkPayloadCreator,\r\n  SerializedError,\r\n} from './createAsyncThunk'\r\n\r\nexport {\r\n  // js\r\n  isAllOf,\r\n  isAnyOf,\r\n  isPending,\r\n  isRejected,\r\n  isFulfilled,\r\n  isAsyncThunkAction,\r\n  isRejectedWithValue,\r\n} from './matchers'\r\nexport type {\r\n  // types\r\n  ActionMatchingAllOf,\r\n  ActionMatchingAnyOf,\r\n} from './matchers'\r\n\r\nexport { nanoid } from './nanoid'\r\n\r\nexport { default as isPlainObject } from './isPlainObject'\r\n\r\nexport type {\r\n  ListenerEffect,\r\n  ListenerMiddleware,\r\n  ListenerEffectAPI,\r\n  ListenerMiddlewareInstance,\r\n  CreateListenerMiddlewareOptions,\r\n  ListenerErrorHandler,\r\n  TypedStartListening,\r\n  TypedAddListener,\r\n  TypedStopListening,\r\n  TypedRemoveListener,\r\n  UnsubscribeListener,\r\n  UnsubscribeListenerOptions,\r\n  ForkedTaskExecutor,\r\n  ForkedTask,\r\n  ForkedTaskAPI,\r\n  AsyncTaskExecutor,\r\n  SyncTaskExecutor,\r\n  TaskCancelled,\r\n  TaskRejected,\r\n  TaskResolved,\r\n  TaskResult,\r\n} from './listenerMiddleware/index'\r\nexport type { AnyListenerPredicate } from './listenerMiddleware/types'\r\n\r\nexport {\r\n  createListenerMiddleware,\r\n  addListener,\r\n  removeListener,\r\n  clearAllListeners,\r\n  TaskAbortError,\r\n} from './listenerMiddleware/index'\r\n\r\nexport {\r\n  SHOULD_AUTOBATCH,\r\n  prepareAutoBatched,\r\n  autoBatchEnhancer,\r\n} from './autoBatchEnhancer'\r\nexport type { AutoBatchOptions } from './autoBatchEnhancer'\r\n","'use strict';\n\nfunction checkDCE() {\n  /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n  if (\n    typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n    typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n  ) {\n    return;\n  }\n  if (process.env.NODE_ENV !== 'production') {\n    // This branch is unreachable because this function is only called\n    // in production, but the condition is true only in development.\n    // Therefore if the branch is still here, dead code elimination wasn't\n    // properly applied.\n    // Don't change the message. React DevTools relies on it. Also make sure\n    // this message doesn't occur elsewhere in this function, or it will cause\n    // a false positive.\n    throw new Error('^_^');\n  }\n  try {\n    // Verify that the code above has been dead code eliminated (DCE'd).\n    __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n  } catch (err) {\n    // DevTools shouldn't crash React, no matter what.\n    // We should still report in case we break this code.\n    console.error(err);\n  }\n}\n\nif (process.env.NODE_ENV === 'production') {\n  // DCE check should happen before ReactDOM bundle executes so that\n  // DevTools can report bad minification during injection.\n  checkDCE();\n  module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n  module.exports = require('./cjs/react-dom.development.js');\n}\n","// https://github.com/bahamas10/css-color-names/blob/master/css-color-names.json\n/**\n * @hidden\n */\nexport var names = {\n    aliceblue: '#f0f8ff',\n    antiquewhite: '#faebd7',\n    aqua: '#00ffff',\n    aquamarine: '#7fffd4',\n    azure: '#f0ffff',\n    beige: '#f5f5dc',\n    bisque: '#ffe4c4',\n    black: '#000000',\n    blanchedalmond: '#ffebcd',\n    blue: '#0000ff',\n    blueviolet: '#8a2be2',\n    brown: '#a52a2a',\n    burlywood: '#deb887',\n    cadetblue: '#5f9ea0',\n    chartreuse: '#7fff00',\n    chocolate: '#d2691e',\n    coral: '#ff7f50',\n    cornflowerblue: '#6495ed',\n    cornsilk: '#fff8dc',\n    crimson: '#dc143c',\n    cyan: '#00ffff',\n    darkblue: '#00008b',\n    darkcyan: '#008b8b',\n    darkgoldenrod: '#b8860b',\n    darkgray: '#a9a9a9',\n    darkgreen: '#006400',\n    darkgrey: '#a9a9a9',\n    darkkhaki: '#bdb76b',\n    darkmagenta: '#8b008b',\n    darkolivegreen: '#556b2f',\n    darkorange: '#ff8c00',\n    darkorchid: '#9932cc',\n    darkred: '#8b0000',\n    darksalmon: '#e9967a',\n    darkseagreen: '#8fbc8f',\n    darkslateblue: '#483d8b',\n    darkslategray: '#2f4f4f',\n    darkslategrey: '#2f4f4f',\n    darkturquoise: '#00ced1',\n    darkviolet: '#9400d3',\n    deeppink: '#ff1493',\n    deepskyblue: '#00bfff',\n    dimgray: '#696969',\n    dimgrey: '#696969',\n    dodgerblue: '#1e90ff',\n    firebrick: '#b22222',\n    floralwhite: '#fffaf0',\n    forestgreen: '#228b22',\n    fuchsia: '#ff00ff',\n    gainsboro: '#dcdcdc',\n    ghostwhite: '#f8f8ff',\n    goldenrod: '#daa520',\n    gold: '#ffd700',\n    gray: '#808080',\n    green: '#008000',\n    greenyellow: '#adff2f',\n    grey: '#808080',\n    honeydew: '#f0fff0',\n    hotpink: '#ff69b4',\n    indianred: '#cd5c5c',\n    indigo: '#4b0082',\n    ivory: '#fffff0',\n    khaki: '#f0e68c',\n    lavenderblush: '#fff0f5',\n    lavender: '#e6e6fa',\n    lawngreen: '#7cfc00',\n    lemonchiffon: '#fffacd',\n    lightblue: '#add8e6',\n    lightcoral: '#f08080',\n    lightcyan: '#e0ffff',\n    lightgoldenrodyellow: '#fafad2',\n    lightgray: '#d3d3d3',\n    lightgreen: '#90ee90',\n    lightgrey: '#d3d3d3',\n    lightpink: '#ffb6c1',\n    lightsalmon: '#ffa07a',\n    lightseagreen: '#20b2aa',\n    lightskyblue: '#87cefa',\n    lightslategray: '#778899',\n    lightslategrey: '#778899',\n    lightsteelblue: '#b0c4de',\n    lightyellow: '#ffffe0',\n    lime: '#00ff00',\n    limegreen: '#32cd32',\n    linen: '#faf0e6',\n    magenta: '#ff00ff',\n    maroon: '#800000',\n    mediumaquamarine: '#66cdaa',\n    mediumblue: '#0000cd',\n    mediumorchid: '#ba55d3',\n    mediumpurple: '#9370db',\n    mediumseagreen: '#3cb371',\n    mediumslateblue: '#7b68ee',\n    mediumspringgreen: '#00fa9a',\n    mediumturquoise: '#48d1cc',\n    mediumvioletred: '#c71585',\n    midnightblue: '#191970',\n    mintcream: '#f5fffa',\n    mistyrose: '#ffe4e1',\n    moccasin: '#ffe4b5',\n    navajowhite: '#ffdead',\n    navy: '#000080',\n    oldlace: '#fdf5e6',\n    olive: '#808000',\n    olivedrab: '#6b8e23',\n    orange: '#ffa500',\n    orangered: '#ff4500',\n    orchid: '#da70d6',\n    palegoldenrod: '#eee8aa',\n    palegreen: '#98fb98',\n    paleturquoise: '#afeeee',\n    palevioletred: '#db7093',\n    papayawhip: '#ffefd5',\n    peachpuff: '#ffdab9',\n    peru: '#cd853f',\n    pink: '#ffc0cb',\n    plum: '#dda0dd',\n    powderblue: '#b0e0e6',\n    purple: '#800080',\n    rebeccapurple: '#663399',\n    red: '#ff0000',\n    rosybrown: '#bc8f8f',\n    royalblue: '#4169e1',\n    saddlebrown: '#8b4513',\n    salmon: '#fa8072',\n    sandybrown: '#f4a460',\n    seagreen: '#2e8b57',\n    seashell: '#fff5ee',\n    sienna: '#a0522d',\n    silver: '#c0c0c0',\n    skyblue: '#87ceeb',\n    slateblue: '#6a5acd',\n    slategray: '#708090',\n    slategrey: '#708090',\n    snow: '#fffafa',\n    springgreen: '#00ff7f',\n    steelblue: '#4682b4',\n    tan: '#d2b48c',\n    teal: '#008080',\n    thistle: '#d8bfd8',\n    tomato: '#ff6347',\n    turquoise: '#40e0d0',\n    violet: '#ee82ee',\n    wheat: '#f5deb3',\n    white: '#ffffff',\n    whitesmoke: '#f5f5f5',\n    yellow: '#ffff00',\n    yellowgreen: '#9acd32',\n};\n","export function poll(fn: () => Promise<boolean | number>) {\n  let timerHelper = {\n    timer: null as any,\n    hasRetryTimes: 0,\n  };\n  const maxRetry = 3;\n  const timeoutInterval = 2000;\n  async function execute() {\n    return fn()\n      .then((ret) => {\n        if (typeof ret === \"number\" && ret) {\n          timerHelper.timer = setTimeout(execute, typeof ret === \"number\" ? ret : 1000);\n        }\n      })\n      .catch((err) => {\n        if (err.code === \"ECONNABORTED\" || err.error_code) {\n          console.log(\"请求超时--->\", err);\n          if (timerHelper.hasRetryTimes < maxRetry) {\n            timerHelper.hasRetryTimes++;\n            timerHelper.timer = setTimeout(execute, timeoutInterval);\n          }\n        }\n      });\n  }\n  execute();\n  return timerHelper;\n}\n\nexport function tryJson(str: string) {\n  let ret = null;\n  try {\n    ret = JSON.parse(str);\n  } catch (err) {}\n  return ret;\n}\n\nexport function getCutUrl(url: string, width: number, height: number) {\n  const cutUrl = url + \"?imageMogr2/cut/\" + width + \"x\" + height + \"x100x0\";\n  return cutUrl;\n}\n\nexport function loadScript(url: string, callback?: () => void) {\n  console.log(\"loadScript\");\n  let script = document.createElement(\"script\");\n  script.type = \"text/javascript\";\n  script.async = false;\n  script.onload = function () {\n    callback?.();\n  };\n  script.src = url;\n  document.getElementsByTagName(\"head\")[0].appendChild(script);\n  script.onerror = function (error) {\n    console.log(\"error\", error);\n  };\n}\n\nexport async function sleep(time: number): Promise<void> {\n  return new Promise((resolve) => {\n    setTimeout(resolve, time);\n  });\n}\n\nexport const Last_Drawing_Localkey = \"Last_Drawing_Localkey\";\n\nexport function rememberDrawing(strOrderId: string) {\n  localStorage.setItem(Last_Drawing_Localkey, strOrderId);\n}\nexport function getRememberDrawing() {\n  const val = localStorage.getItem(Last_Drawing_Localkey);\n  return val ? val : \"\";\n}\n\nexport function uiHomeInit() {\n  (window as any).fixTopBar([\n    {\n      className: \".mod_nav\",\n      baseHeight: 0,\n    },\n  ]);\n  (window as any).fixTopBar([\n    {\n      className: \".creat_avatar_home\",\n      baseHeight: 0,\n    },\n  ]);\n}\nexport function uiStepInit() {\n  (window as any).fixTopBar([\n    {\n      className: \".mod_nav\",\n      baseHeight: 0,\n    },\n  ]);\n  (window as any).fixTopBar([\n    {\n      className: \".creat_avatar_step\",\n      baseHeight: 0,\n    },\n  ]);\n}\n\nexport function getParameterByName(name: string, url?: string) {\n  // eslint-disable-next-line no-param-reassign\n  if (!url) url = window.location.href;\n  // eslint-disable-next-line no-param-reassign\n  name = name.replace(/[\\[\\]]/g, \"\\\\$&\");\n  let regex = new RegExp(\"[?&]\" + name + \"(=([^&#]*)|&|#|$)\");\n  let results = regex.exec(url);\n  if (!results) return \"\";\n  if (!results[2]) return \"\";\n  return decodeURIComponent(results[2].replace(/\\+/g, \" \"));\n}\n\nexport function convertTimeStampToDate(time: number) {\n  const date = new Date(time * 1000); // 参数需要毫秒数，所以这里将秒数乘于 1000\n  const Y = date.getFullYear() + \".\";\n  const M = (date.getMonth() + 1 < 10 ? \"0\" + (date.getMonth() + 1) : date.getMonth() + 1) + \".\";\n  const D = date.getDate() < 10 ? \"0\" + date.getDate() + \" \" : date.getDate() + \" \";\n  const h = date.getHours() + \":\";\n  const m = date.getMinutes() < 10 ? \"0\" + date.getMinutes() + \":\" : date.getMinutes() + \":\";\n  const s = date.getSeconds();\n  return `${Y}${M}${D} ${h}${m}${s}`;\n}\nfunction fileToDataUrl(file: any) {\n  return new Promise((resolve) => {\n    const reader = new FileReader();\n    reader.readAsDataURL(file);\n    reader.onload = function () {\n      const dataUrl = reader.result as string;\n      resolve(dataUrl);\n    };\n  });\n}\n\nfunction dataUrlToImage(dataUrl: string) {\n  return new Promise((resolve) => {\n    const img = new Image();\n    img.onload = function () {\n      resolve(img);\n    };\n    img.src = dataUrl;\n  });\n}\n\nconst canvasToFile = (canvas: HTMLCanvasElement, type: string, quality: number): Promise<Blob | null> => {\n  return new Promise((resolve) => {\n    canvas.toBlob(\n      (blob) => {\n        resolve(blob);\n      },\n      type,\n      quality\n    );\n  });\n};\n\nexport async function compressImg(file: any) {\n  const fileName = file.name;\n  const dataUrl = (await fileToDataUrl(file)) as string;\n  const img = (await dataUrlToImage(dataUrl)) as HTMLImageElement;\n  const canvas = document.createElement(\"canvas\");\n  canvas.width = img.width;\n  canvas.height = img.height;\n  const ctx = canvas.getContext(\"2d\");\n  ctx?.clearRect(0, 0, canvas.width, canvas.height);\n  ctx?.drawImage(img, 0, 0, canvas.width, canvas.height);\n  const bolbFile = await canvasToFile(canvas, \"image/jpeg\", 0.8);\n  let newFile: File;\n  if (bolbFile) {\n    newFile = await new File([bolbFile], fileName, { type: \"image/jpeg\" });\n  } else {\n    newFile = file;\n  }\n  return newFile;\n}\n\nexport const getCropImageRet = (image: any, ret: { url: string; key: string }) => {\n  if (image.width > 1024 || image.height > 1024) {\n    const resizedWidth = image.width >= image.height ? 1024 : Math.round((1024 * image.width) / image.height);\n    const resizedHeight = image.width < image.height ? 1024 : Math.round((1024 * image.height) / image.width);\n    ret.url = ret.url + \"?imageMogr2/crop/\" + resizedWidth + \"x\" + resizedHeight;\n  }\n  return ret;\n};\n\nexport const isAndroid = navigator.userAgent.indexOf(\"Android\") > -1 || navigator.userAgent.indexOf(\"Adr\") > -1;\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAABYlAAAWJQFJUiTwAAABaWlDQ1BEaXNwbGF5IFAzAAB4nHWQvUvDUBTFT6tS0DqIDh0cMolD1NIKdnFoKxRFMFQFq1OafgltfCQpUnETVyn4H1jBWXCwiFRwcXAQRAcR3Zw6KbhoeN6XVNoi3sfl/Ticc7lcwBtQGSv2AijplpFMxKS11Lrke4OHnlOqZrKooiwK/v276/PR9d5PiFlNu3YQ2U9cl84ul3aeAlN//V3Vn8maGv3f1EGNGRbgkYmVbYsJ3iUeMWgp4qrgvMvHgtMunzuelWSc+JZY0gpqhrhJLKc79HwHl4plrbWD2N6f1VeXxRzqUcxhEyYYilBRgQQF4X/8044/ji1yV2BQLo8CLMpESRETssTz0KFhEjJxCEHqkLhz634PrfvJbW3vFZhtcM4v2tpCAzidoZPV29p4BBgaAG7qTDVUR+qh9uZywPsJMJgChu8os2HmwiF3e38M6Hvh/GMM8B0CdpXzryPO7RqFn4Er/QcXKWq8MSlPPgAAAvNJREFUeAHtmu914jAMwAUTZATfBMdNcLkNGCEblJsANoCbgNuAbhA6Ae0EaSdIN1ClRG5UEyB2nIQP/b2n5wf+J8u2YisB+GZaZhABREwoSUl+kxiSBUkiwryTvEr6TPJEcpzNZu8wJaR4SpKTlBjGgWQJY8OdkhSOMjnJTvKMzIotn5AsJG8jZTXcVgZDI4rpzktRKAlsK3MMceL/YQio4QdslgqnK4iEM5CobdsO1spKuxCLd+iDZ+S/6mcNMXCUj2uZ9v5W0QahlOdpTWEkZMOXvQYha96ygJHB2kWHzbysxzKockTUciq9vJO4M2YPEyNOg8m7VsikQoFD+WQPsH4I2tVw+6mNjT/O4E5QS6m4VXDZqeAEqFlIrxU6hFpfpnolS9BAZLA+slzeC6KAxYAnavB2/2QQEaUfz0TSVmB5dYS3O2ijwIgPQGwOkp+bea7yU0mfIB6GhDvdR1pWL5Km9g89gJ+SPkN8MhKejTX2OwgeJTVnOdg8vIKODdidInR/YH1CqNpoy7RuKshC6E/hu6xQbeSLCkAgGIa3w3D1nMO09D7l6gFUIQ4c4LZ1hX8+hZVun+GYswFAE8sZEvZ0fygutAE/jKSv9o+50ygz5OWFjfSXFP9FcgR/jGqnQg/gTdIUhoGXyw9SfAfhWOO+nOXgMEeJqj2MdLjDlqOEztQXh5BAlRteLDDuOciotpNLhewIN+AJNuHGMqR+h/btTfHxWqFUCpVwZ2BzU1x2LThZNMJFWf/2TRGbzdx+cRgZWfvWqFnXSrlU2MLEYH2XYE4+le4lsPWgVoPxqesGWVMYGazjo9jLiNhEAtgCo8VHxRuWoS7dbWzT2xJ+/emg8gZi4Axij8PEffgksI2uvOpgpaa1wIhxHxzw9ZXbEXunk7JSNRAMC4Sxxdf49QyV4xgBZTx/u2g756XGD0L2IO5rViN5W2x/zTrZ++IDhlHKQFLoQexPDVg4QMa/DXz91MB+ZsAXpyPcw6cG30TgA+xM4c4Flw4dAAAAAElFTkSuQmCC\"","import React, { createContext, useContext, useState, useRef, useEffect, ReactNode } from \"react\";\n\n// 全局音频管理器 - 用于跨页面音频互斥\nclass GlobalAudioManager {\n  private static instance: GlobalAudioManager;\n\n  static getInstance(): GlobalAudioManager {\n    if (!GlobalAudioManager.instance) {\n      GlobalAudioManager.instance = new GlobalAudioManager();\n    }\n    return GlobalAudioManager.instance;\n  }\n\n  private pageId: string;\n\n  constructor() {\n    this.pageId = this.generatePageId();\n    this.listenToStorageEvents();\n\n    // 页面卸载时清理\n    window.addEventListener(\"beforeunload\", () => {\n      this.releaseAudioLock();\n    });\n  }\n\n  // 获取音频播放锁 - 后到先得策略\n  acquireAudioLock(): void {\n    const lockData = {\n      pageId: this.pageId,\n      timestamp: Date.now(),\n    };\n    localStorage.setItem(\"tts_audio_lock\", JSON.stringify(lockData));\n  }\n\n  // 释放音频播放锁\n  releaseAudioLock(): void {\n    const currentLock = localStorage.getItem(\"tts_audio_lock\");\n    if (currentLock) {\n      const lockData = JSON.parse(currentLock);\n      if (lockData.pageId === this.pageId) {\n        localStorage.removeItem(\"tts_audio_lock\");\n      }\n    }\n  }\n\n  private generatePageId(): string {\n    return `tts_page_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;\n  }\n\n  private listenToStorageEvents(): void {\n    window.addEventListener(\"storage\", (e) => {\n      if (e.key === \"tts_audio_lock\") {\n        const data = e.newValue ? JSON.parse(e.newValue) : null;\n        if (data && data.pageId !== this.pageId) {\n          // 其他页面开始播放音频，通知当前页面停止播放\n          window.dispatchEvent(\n            new CustomEvent(\"tts_audio_interrupted\", {\n              detail: { interruptingPageId: data.pageId },\n            }),\n          );\n        }\n      }\n    });\n  }\n}\n\n// 音频播放状态接口\ninterface AudioState {\n  isPlaying: boolean;\n  currentTime: number;\n  duration: number;\n  volume: number;\n  audioUrl: string;\n  title: string;\n  audioLoaded: boolean;\n  bufferedPercent: number;\n  isInterrupted: boolean;\n}\n\n// 音频控制接口\ninterface AudioControls {\n  play: (url: string, title: string) => void;\n  pause: () => void;\n  togglePlay: () => void;\n  setProgress: (percent: number) => void;\n  setVolume: (volume: number) => void;\n  stop: () => void;\n  reset: () => void;\n}\n\n// 上下文接口\ninterface AudioContextType {\n  audioState: AudioState;\n  audioControls: AudioControls;\n}\n\n// 创建上下文\nconst AudioContext = createContext<AudioContextType | undefined>(undefined);\n\n// 音频上下文提供者组件\nexport const AudioProvider: React.FC<{ children: ReactNode }> = ({ children }) => {\n  const [audioState, setAudioState] = useState<AudioState>({\n    isPlaying: false,\n    currentTime: 0,\n    duration: 0,\n    volume: 1,\n    audioUrl: \"\",\n    title: \"\",\n    audioLoaded: false,\n    bufferedPercent: 0,\n    isInterrupted: false,\n  });\n\n  const audioRef = useRef<HTMLAudioElement | null>(null);\n  const globalAudioManager = useRef<GlobalAudioManager>(GlobalAudioManager.getInstance());\n\n  // 初始化音频元素\n  useEffect(() => {\n    if (!audioRef.current) {\n      const audio = new Audio();\n      audio.preload = \"metadata\";\n      audio.crossOrigin = \"anonymous\";\n      audioRef.current = audio;\n    }\n\n    const audio = audioRef.current;\n\n    // 音频事件监听\n    const handleLoadedMetadata = () => {\n      setAudioState((prev) => ({\n        ...prev,\n        duration: audio.duration,\n        audioLoaded: true,\n      }));\n    };\n\n    const handleCanPlay = () => {\n      setAudioState((prev) => ({\n        ...prev,\n        audioLoaded: true,\n      }));\n    };\n\n    const handleTimeUpdate = () => {\n      setAudioState((prev) => ({\n        ...prev,\n        currentTime: audio.currentTime,\n      }));\n    };\n\n    const handlePlay = () => {\n      setAudioState((prev) => ({\n        ...prev,\n        isPlaying: true,\n        isInterrupted: false,\n      }));\n    };\n\n    const handlePause = () => {\n      setAudioState((prev) => ({\n        ...prev,\n        isPlaying: false,\n      }));\n    };\n\n    const handleEnded = () => {\n      setAudioState((prev) => ({\n        ...prev,\n        isPlaying: false,\n        currentTime: 0,\n        isInterrupted: false,\n      }));\n      if (audio) {\n        audio.currentTime = 0;\n      }\n      globalAudioManager.current.releaseAudioLock();\n    };\n\n    const handleError = (e: any) => {\n      setAudioState((prev) => ({\n        ...prev,\n        isPlaying: false,\n        audioLoaded: false,\n        isInterrupted: false,\n      }));\n      globalAudioManager.current.releaseAudioLock();\n    };\n\n    const handleProgress = () => {\n      const buffered = audio.buffered;\n      if (buffered.length > 0 && audio.duration > 0) {\n        const bufferedEnd = buffered.end(buffered.length - 1);\n        const bufferedPercent = (bufferedEnd / audio.duration) * 100;\n        setAudioState((prev) => ({\n          ...prev,\n          bufferedPercent: Math.min(100, bufferedPercent),\n        }));\n      }\n    };\n\n    audio.addEventListener(\"loadedmetadata\", handleLoadedMetadata);\n    audio.addEventListener(\"canplay\", handleCanPlay);\n    audio.addEventListener(\"timeupdate\", handleTimeUpdate);\n    audio.addEventListener(\"play\", handlePlay);\n    audio.addEventListener(\"pause\", handlePause);\n    audio.addEventListener(\"ended\", handleEnded);\n    audio.addEventListener(\"error\", handleError);\n    audio.addEventListener(\"progress\", handleProgress);\n\n    return () => {\n      audio.removeEventListener(\"loadedmetadata\", handleLoadedMetadata);\n      audio.removeEventListener(\"canplay\", handleCanPlay);\n      audio.removeEventListener(\"timeupdate\", handleTimeUpdate);\n      audio.removeEventListener(\"play\", handlePlay);\n      audio.removeEventListener(\"pause\", handlePause);\n      audio.removeEventListener(\"ended\", handleEnded);\n      audio.removeEventListener(\"error\", handleError);\n      audio.removeEventListener(\"progress\", handleProgress);\n    };\n  }, []);\n\n  // 监听其他页面的音频中断事件\n  useEffect(() => {\n    const handleAudioInterrupted = (event: CustomEvent) => {\n      const { interruptingPageId } = event.detail;\n      console.log(`音频被页面 ${interruptingPageId} 中断`);\n\n      const audio = audioRef.current;\n      if (audio && audioState.isPlaying) {\n        audio.pause();\n        setAudioState((prev) => ({\n          ...prev,\n          isPlaying: false,\n          isInterrupted: true,\n        }));\n      }\n    };\n\n    window.addEventListener(\"tts_audio_interrupted\", handleAudioInterrupted as EventListener);\n\n    return () => {\n      window.removeEventListener(\"tts_audio_interrupted\", handleAudioInterrupted as EventListener);\n    };\n  }, [audioState.isPlaying]);\n\n  // 音频控制函数\n  const audioControls: AudioControls = {\n    // 播放指定音频\n    play: (url: string, title: string) => {\n      const audio = audioRef.current;\n      if (!audio) return;\n\n      // 获取音频播放锁（后到先得）\n      globalAudioManager.current.acquireAudioLock();\n\n      // 如果正在播放相同的音频，则暂停\n      if (audioState.audioUrl === url && audioState.isPlaying) {\n        audio.pause();\n        globalAudioManager.current.releaseAudioLock();\n        return;\n      }\n\n      // 如果是新的音频，设置新的音频源\n      if (audioState.audioUrl !== url) {\n        audio.src = url;\n        audio.volume = audioState.volume;\n        setAudioState((prev) => ({\n          ...prev,\n          audioUrl: url,\n          title: title,\n          currentTime: 0,\n          duration: 0,\n          audioLoaded: false,\n          isInterrupted: false,\n        }));\n      }\n\n      // 播放音频\n      audio.play().catch((err) => {\n        console.error(\"播放失败:\", err);\n        setAudioState((prev) => ({\n          ...prev,\n          isPlaying: false,\n        }));\n        globalAudioManager.current.releaseAudioLock();\n      });\n    },\n\n    // 暂停播放\n    pause: () => {\n      const audio = audioRef.current;\n      if (audio) {\n        audio.pause();\n        setAudioState((prev) => ({\n          ...prev,\n          isPlaying: false,\n        }));\n        globalAudioManager.current.releaseAudioLock();\n      }\n    },\n\n    // 切换播放/暂停状态\n    togglePlay: () => {\n      const audio = audioRef.current;\n      if (!audio || !audioState.audioLoaded) {\n        console.log(\"音频未加载完成\");\n        return;\n      }\n\n      if (audioState.isPlaying) {\n        audio.pause();\n        globalAudioManager.current.releaseAudioLock();\n      } else {\n        globalAudioManager.current.acquireAudioLock();\n        audio.play().catch((err) => {\n          console.error(\"播放失败:\", err);\n          setAudioState((prev) => ({\n            ...prev,\n            isPlaying: false,\n          }));\n          globalAudioManager.current.releaseAudioLock();\n        });\n      }\n    },\n\n    // 设置播放进度 - 智能处理缓存状态\n    setProgress: (percent: number) => {\n      const audio = audioRef.current;\n      if (!audio || !audioState.audioLoaded || audioState.duration <= 0) {\n        console.log(\"无法设置进度，音频未准备好\");\n        return;\n      }\n\n      const targetTime = (percent / 100) * audioState.duration;\n      const targetPercent = percent;\n\n      // 检查目标位置是否已经缓存\n      const getCurrentBufferedPercent = () => {\n        const buffered = audio.buffered;\n        if (buffered.length > 0 && audio.duration > 0) {\n          const bufferedEnd = buffered.end(buffered.length - 1);\n          return (bufferedEnd / audio.duration) * 100;\n        }\n        return 0;\n      };\n\n      const currentBuffered = getCurrentBufferedPercent();\n\n      if (currentBuffered >= targetPercent) {\n        // 已经缓存到目标位置，直接跳转\n        audio.currentTime = targetTime;\n        setAudioState((prevState) => ({\n          ...prevState,\n          currentTime: targetTime,\n        }));\n\n        if (!audioState.isPlaying) {\n          globalAudioManager.current.acquireAudioLock();\n\n          audio.play().catch((err) => {\n            console.error(\"播放失败:\", err);\n            globalAudioManager.current.releaseAudioLock();\n          });\n        }\n      } else {\n        // 从当前位置开始播放，让音频继续缓存\n        if (!audioState.isPlaying) {\n          globalAudioManager.current.acquireAudioLock();\n\n          audio.play().catch((err) => {\n            console.error(\"播放失败:\", err);\n            globalAudioManager.current.releaseAudioLock();\n          });\n        }\n      }\n    },\n\n    // 设置音量\n    setVolume: (volume: number) => {\n      const audio = audioRef.current;\n      if (audio) {\n        audio.volume = volume;\n        setAudioState((prev) => ({\n          ...prev,\n          volume: volume,\n        }));\n      }\n    },\n\n    // 停止播放\n    stop: () => {\n      const audio = audioRef.current;\n      if (audio) {\n        audio.pause();\n        audio.currentTime = 0;\n        setAudioState((prev) => ({\n          ...prev,\n          isPlaying: false,\n          currentTime: 0,\n        }));\n        globalAudioManager.current.releaseAudioLock();\n      }\n    },\n\n    // 重置音频状态\n    reset: () => {\n      const audio = audioRef.current;\n      if (audio) {\n        audio.pause();\n        audio.currentTime = 0;\n        setAudioState((prev) => ({\n          ...prev,\n          isPlaying: false,\n          currentTime: 0,\n          audioLoaded: false,\n          audioUrl: \"\",\n          title: \"\",\n          duration: 0,\n          bufferedPercent: 0,\n          isInterrupted: false,\n        }));\n        globalAudioManager.current.releaseAudioLock();\n      }\n    },\n  };\n\n  const contextValue: AudioContextType = {\n    audioState,\n    audioControls,\n  };\n\n  return <AudioContext.Provider value={contextValue}>{children}</AudioContext.Provider>;\n};\n\n// 自定义Hook，用于在组件中使用音频上下文\nexport const useAudio = (): AudioContextType => {\n  const context = useContext(AudioContext);\n  if (context === undefined) {\n    throw new Error(\"useAudio must be used within an AudioProvider\");\n  }\n  return context;\n};\n","// This icon file is generated automatically.\nvar CloseCircleFilled = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"fill-rule\": \"evenodd\", \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64c247.4 0 448 200.6 448 448S759.4 960 512 960 64 759.4 64 512 264.6 64 512 64zm127.98 274.82h-.04l-.08.06L512 466.75 384.14 338.88c-.04-.05-.06-.06-.08-.06a.12.12 0 00-.07 0c-.03 0-.05.01-.09.05l-45.02 45.02a.2.2 0 00-.05.09.12.12 0 000 .07v.02a.27.27 0 00.06.06L466.75 512 338.88 639.86c-.05.04-.06.06-.06.08a.12.12 0 000 .07c0 .03.01.05.05.09l45.02 45.02a.2.2 0 00.09.05.12.12 0 00.07 0c.02 0 .04-.01.08-.05L512 557.25l127.86 127.87c.04.04.06.05.08.05a.12.12 0 00.07 0c.03 0 .05-.01.09-.05l45.02-45.02a.2.2 0 00.05-.09.12.12 0 000-.07v-.02a.27.27 0 00-.05-.06L557.25 512l127.87-127.86c.04-.04.05-.06.05-.08a.12.12 0 000-.07c0-.03-.01-.05-.05-.09l-45.02-45.02a.2.2 0 00-.09-.05.12.12 0 00-.07 0z\" } }] }, \"name\": \"close-circle\", \"theme\": \"filled\" };\nexport default CloseCircleFilled;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport CloseCircleFilledSvg from \"@ant-design/icons-svg/es/asn/CloseCircleFilled\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar CloseCircleFilled = function CloseCircleFilled(props, ref) {\n  return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n    ref: ref,\n    icon: CloseCircleFilledSvg\n  }));\n};\n\n/**![close-circle](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIGZpbGwtcnVsZT0iZXZlbm9kZCIgdmlld0JveD0iNjQgNjQgODk2IDg5NiIgZm9jdXNhYmxlPSJmYWxzZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNNTEyIDY0YzI0Ny40IDAgNDQ4IDIwMC42IDQ0OCA0NDhTNzU5LjQgOTYwIDUxMiA5NjAgNjQgNzU5LjQgNjQgNTEyIDI2NC42IDY0IDUxMiA2NHptMTI3Ljk4IDI3NC44MmgtLjA0bC0uMDguMDZMNTEyIDQ2Ni43NSAzODQuMTQgMzM4Ljg4Yy0uMDQtLjA1LS4wNi0uMDYtLjA4LS4wNmEuMTIuMTIgMCAwMC0uMDcgMGMtLjAzIDAtLjA1LjAxLS4wOS4wNWwtNDUuMDIgNDUuMDJhLjIuMiAwIDAwLS4wNS4wOS4xMi4xMiAwIDAwMCAuMDd2LjAyYS4yNy4yNyAwIDAwLjA2LjA2TDQ2Ni43NSA1MTIgMzM4Ljg4IDYzOS44NmMtLjA1LjA0LS4wNi4wNi0uMDYuMDhhLjEyLjEyIDAgMDAwIC4wN2MwIC4wMy4wMS4wNS4wNS4wOWw0NS4wMiA0NS4wMmEuMi4yIDAgMDAuMDkuMDUuMTIuMTIgMCAwMC4wNyAwYy4wMiAwIC4wNC0uMDEuMDgtLjA1TDUxMiA1NTcuMjVsMTI3Ljg2IDEyNy44N2MuMDQuMDQuMDYuMDUuMDguMDVhLjEyLjEyIDAgMDAuMDcgMGMuMDMgMCAuMDUtLjAxLjA5LS4wNWw0NS4wMi00NS4wMmEuMi4yIDAgMDAuMDUtLjA5LjEyLjEyIDAgMDAwLS4wN3YtLjAyYS4yNy4yNyAwIDAwLS4wNS0uMDZMNTU3LjI1IDUxMmwxMjcuODctMTI3Ljg2Yy4wNC0uMDQuMDUtLjA2LjA1LS4wOGEuMTIuMTIgMCAwMDAtLjA3YzAtLjAzLS4wMS0uMDUtLjA1LS4wOWwtNDUuMDItNDUuMDJhLjIuMiAwIDAwLS4wOS0uMDUuMTIuMTIgMCAwMC0uMDcgMHoiIC8+PC9zdmc+) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(CloseCircleFilled);\nif (process.env.NODE_ENV !== 'production') {\n  RefIcon.displayName = 'CloseCircleFilled';\n}\nexport default RefIcon;","// This icon file is generated automatically.\nvar CheckCircleFilled = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm193.5 301.7l-210.6 292a31.8 31.8 0 01-51.7 0L318.5 484.9c-3.8-5.3 0-12.7 6.5-12.7h46.9c10.2 0 19.9 4.9 25.9 13.3l71.2 98.8 157.2-218c6-8.3 15.6-13.3 25.9-13.3H699c6.5 0 10.3 7.4 6.5 12.7z\" } }] }, \"name\": \"check-circle\", \"theme\": \"filled\" };\nexport default CheckCircleFilled;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport CheckCircleFilledSvg from \"@ant-design/icons-svg/es/asn/CheckCircleFilled\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar CheckCircleFilled = function CheckCircleFilled(props, ref) {\n  return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n    ref: ref,\n    icon: CheckCircleFilledSvg\n  }));\n};\n\n/**![check-circle](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0xOTMuNSAzMDEuN2wtMjEwLjYgMjkyYTMxLjggMzEuOCAwIDAxLTUxLjcgMEwzMTguNSA0ODQuOWMtMy44LTUuMyAwLTEyLjcgNi41LTEyLjdoNDYuOWMxMC4yIDAgMTkuOSA0LjkgMjUuOSAxMy4zbDcxLjIgOTguOCAxNTcuMi0yMThjNi04LjMgMTUuNi0xMy4zIDI1LjktMTMuM0g2OTljNi41IDAgMTAuMyA3LjQgNi41IDEyLjd6IiAvPjwvc3ZnPg==) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(CheckCircleFilled);\nif (process.env.NODE_ENV !== 'production') {\n  RefIcon.displayName = 'CheckCircleFilled';\n}\nexport default RefIcon;","'use strict';\n//parse Empty Node as self closing node\nconst buildFromOrderedJs = require('./orderedJs2Xml');\nconst getIgnoreAttributesFn = require('../ignoreAttributes')\n\nconst defaultOptions = {\n  attributeNamePrefix: '@_',\n  attributesGroupName: false,\n  textNodeName: '#text',\n  ignoreAttributes: true,\n  cdataPropName: false,\n  format: false,\n  indentBy: '  ',\n  suppressEmptyNode: false,\n  suppressUnpairedNode: true,\n  suppressBooleanAttributes: true,\n  tagValueProcessor: function(key, a) {\n    return a;\n  },\n  attributeValueProcessor: function(attrName, a) {\n    return a;\n  },\n  preserveOrder: false,\n  commentPropName: false,\n  unpairedTags: [],\n  entities: [\n    { regex: new RegExp(\"&\", \"g\"), val: \"&amp;\" },//it must be on top\n    { regex: new RegExp(\">\", \"g\"), val: \"&gt;\" },\n    { regex: new RegExp(\"<\", \"g\"), val: \"&lt;\" },\n    { regex: new RegExp(\"\\'\", \"g\"), val: \"&apos;\" },\n    { regex: new RegExp(\"\\\"\", \"g\"), val: \"&quot;\" }\n  ],\n  processEntities: true,\n  stopNodes: [],\n  // transformTagName: false,\n  // transformAttributeName: false,\n  oneListGroup: false\n};\n\nfunction Builder(options) {\n  this.options = Object.assign({}, defaultOptions, options);\n  if (this.options.ignoreAttributes === true || this.options.attributesGroupName) {\n    this.isAttribute = function(/*a*/) {\n      return false;\n    };\n  } else {\n    this.ignoreAttributesFn = getIgnoreAttributesFn(this.options.ignoreAttributes)\n    this.attrPrefixLen = this.options.attributeNamePrefix.length;\n    this.isAttribute = isAttribute;\n  }\n\n  this.processTextOrObjNode = processTextOrObjNode\n\n  if (this.options.format) {\n    this.indentate = indentate;\n    this.tagEndChar = '>\\n';\n    this.newLine = '\\n';\n  } else {\n    this.indentate = function() {\n      return '';\n    };\n    this.tagEndChar = '>';\n    this.newLine = '';\n  }\n}\n\nBuilder.prototype.build = function(jObj) {\n  if(this.options.preserveOrder){\n    return buildFromOrderedJs(jObj, this.options);\n  }else {\n    if(Array.isArray(jObj) && this.options.arrayNodeName && this.options.arrayNodeName.length > 1){\n      jObj = {\n        [this.options.arrayNodeName] : jObj\n      }\n    }\n    return this.j2x(jObj, 0, []).val;\n  }\n};\n\nBuilder.prototype.j2x = function(jObj, level, ajPath) {\n  let attrStr = '';\n  let val = '';\n  const jPath = ajPath.join('.')\n  for (let key in jObj) {\n    if(!Object.prototype.hasOwnProperty.call(jObj, key)) continue;\n    if (typeof jObj[key] === 'undefined') {\n      // supress undefined node only if it is not an attribute\n      if (this.isAttribute(key)) {\n        val += '';\n      }\n    } else if (jObj[key] === null) {\n      // null attribute should be ignored by the attribute list, but should not cause the tag closing\n      if (this.isAttribute(key)) {\n        val += '';\n      } else if (key[0] === '?') {\n        val += this.indentate(level) + '<' + key + '?' + this.tagEndChar;\n      } else {\n        val += this.indentate(level) + '<' + key + '/' + this.tagEndChar;\n      }\n      // val += this.indentate(level) + '<' + key + '/' + this.tagEndChar;\n    } else if (jObj[key] instanceof Date) {\n      val += this.buildTextValNode(jObj[key], key, '', level);\n    } else if (typeof jObj[key] !== 'object') {\n      //premitive type\n      const attr = this.isAttribute(key);\n      if (attr && !this.ignoreAttributesFn(attr, jPath)) {\n        attrStr += this.buildAttrPairStr(attr, '' + jObj[key]);\n      } else if (!attr) {\n        //tag value\n        if (key === this.options.textNodeName) {\n          let newval = this.options.tagValueProcessor(key, '' + jObj[key]);\n          val += this.replaceEntitiesValue(newval);\n        } else {\n          val += this.buildTextValNode(jObj[key], key, '', level);\n        }\n      }\n    } else if (Array.isArray(jObj[key])) {\n      //repeated nodes\n      const arrLen = jObj[key].length;\n      let listTagVal = \"\";\n      let listTagAttr = \"\";\n      for (let j = 0; j < arrLen; j++) {\n        const item = jObj[key][j];\n        if (typeof item === 'undefined') {\n          // supress undefined node\n        } else if (item === null) {\n          if(key[0] === \"?\") val += this.indentate(level) + '<' + key + '?' + this.tagEndChar;\n          else val += this.indentate(level) + '<' + key + '/' + this.tagEndChar;\n          // val += this.indentate(level) + '<' + key + '/' + this.tagEndChar;\n        } else if (typeof item === 'object') {\n          if(this.options.oneListGroup){\n            const result = this.j2x(item, level + 1, ajPath.concat(key));\n            listTagVal += result.val;\n            if (this.options.attributesGroupName && item.hasOwnProperty(this.options.attributesGroupName)) {\n              listTagAttr += result.attrStr\n            }\n          }else{\n            listTagVal += this.processTextOrObjNode(item, key, level, ajPath)\n          }\n        } else {\n          if (this.options.oneListGroup) {\n            let textValue = this.options.tagValueProcessor(key, item);\n            textValue = this.replaceEntitiesValue(textValue);\n            listTagVal += textValue;\n          } else {\n            listTagVal += this.buildTextValNode(item, key, '', level);\n          }\n        }\n      }\n      if(this.options.oneListGroup){\n        listTagVal = this.buildObjectNode(listTagVal, key, listTagAttr, level);\n      }\n      val += listTagVal;\n    } else {\n      //nested node\n      if (this.options.attributesGroupName && key === this.options.attributesGroupName) {\n        const Ks = Object.keys(jObj[key]);\n        const L = Ks.length;\n        for (let j = 0; j < L; j++) {\n          attrStr += this.buildAttrPairStr(Ks[j], '' + jObj[key][Ks[j]]);\n        }\n      } else {\n        val += this.processTextOrObjNode(jObj[key], key, level, ajPath)\n      }\n    }\n  }\n  return {attrStr: attrStr, val: val};\n};\n\nBuilder.prototype.buildAttrPairStr = function(attrName, val){\n  val = this.options.attributeValueProcessor(attrName, '' + val);\n  val = this.replaceEntitiesValue(val);\n  if (this.options.suppressBooleanAttributes && val === \"true\") {\n    return ' ' + attrName;\n  } else return ' ' + attrName + '=\"' + val + '\"';\n}\n\nfunction processTextOrObjNode (object, key, level, ajPath) {\n  const result = this.j2x(object, level + 1, ajPath.concat(key));\n  if (object[this.options.textNodeName] !== undefined && Object.keys(object).length === 1) {\n    return this.buildTextValNode(object[this.options.textNodeName], key, result.attrStr, level);\n  } else {\n    return this.buildObjectNode(result.val, key, result.attrStr, level);\n  }\n}\n\nBuilder.prototype.buildObjectNode = function(val, key, attrStr, level) {\n  if(val === \"\"){\n    if(key[0] === \"?\") return  this.indentate(level) + '<' + key + attrStr+ '?' + this.tagEndChar;\n    else {\n      return this.indentate(level) + '<' + key + attrStr + this.closeTag(key) + this.tagEndChar;\n    }\n  }else{\n\n    let tagEndExp = '</' + key + this.tagEndChar;\n    let piClosingChar = \"\";\n    \n    if(key[0] === \"?\") {\n      piClosingChar = \"?\";\n      tagEndExp = \"\";\n    }\n  \n    // attrStr is an empty string in case the attribute came as undefined or null\n    if ((attrStr || attrStr === '') && val.indexOf('<') === -1) {\n      return ( this.indentate(level) + '<' +  key + attrStr + piClosingChar + '>' + val + tagEndExp );\n    } else if (this.options.commentPropName !== false && key === this.options.commentPropName && piClosingChar.length === 0) {\n      return this.indentate(level) + `<!--${val}-->` + this.newLine;\n    }else {\n      return (\n        this.indentate(level) + '<' + key + attrStr + piClosingChar + this.tagEndChar +\n        val +\n        this.indentate(level) + tagEndExp    );\n    }\n  }\n}\n\nBuilder.prototype.closeTag = function(key){\n  let closeTag = \"\";\n  if(this.options.unpairedTags.indexOf(key) !== -1){ //unpaired\n    if(!this.options.suppressUnpairedNode) closeTag = \"/\"\n  }else if(this.options.suppressEmptyNode){ //empty\n    closeTag = \"/\";\n  }else{\n    closeTag = `></${key}`\n  }\n  return closeTag;\n}\n\nfunction buildEmptyObjNode(val, key, attrStr, level) {\n  if (val !== '') {\n    return this.buildObjectNode(val, key, attrStr, level);\n  } else {\n    if(key[0] === \"?\") return  this.indentate(level) + '<' + key + attrStr+ '?' + this.tagEndChar;\n    else {\n      return  this.indentate(level) + '<' + key + attrStr + '/' + this.tagEndChar;\n      // return this.buildTagStr(level,key, attrStr);\n    }\n  }\n}\n\nBuilder.prototype.buildTextValNode = function(val, key, attrStr, level) {\n  if (this.options.cdataPropName !== false && key === this.options.cdataPropName) {\n    return this.indentate(level) + `<![CDATA[${val}]]>` +  this.newLine;\n  }else if (this.options.commentPropName !== false && key === this.options.commentPropName) {\n    return this.indentate(level) + `<!--${val}-->` +  this.newLine;\n  }else if(key[0] === \"?\") {//PI tag\n    return  this.indentate(level) + '<' + key + attrStr+ '?' + this.tagEndChar; \n  }else{\n    let textValue = this.options.tagValueProcessor(key, val);\n    textValue = this.replaceEntitiesValue(textValue);\n  \n    if( textValue === ''){\n      return this.indentate(level) + '<' + key + attrStr + this.closeTag(key) + this.tagEndChar;\n    }else{\n      return this.indentate(level) + '<' + key + attrStr + '>' +\n         textValue +\n        '</' + key + this.tagEndChar;\n    }\n  }\n}\n\nBuilder.prototype.replaceEntitiesValue = function(textValue){\n  if(textValue && textValue.length > 0 && this.options.processEntities){\n    for (let i=0; i<this.options.entities.length; i++) {\n      const entity = this.options.entities[i];\n      textValue = textValue.replace(entity.regex, entity.val);\n    }\n  }\n  return textValue;\n}\n\nfunction indentate(level) {\n  return this.options.indentBy.repeat(level);\n}\n\nfunction isAttribute(name /*, options*/) {\n  if (name.startsWith(this.options.attributeNamePrefix) && name !== this.options.textNodeName) {\n    return name.substr(this.attrPrefixLen);\n  } else {\n    return false;\n  }\n}\n\nmodule.exports = Builder;\n","export { default as useEvent } from \"./hooks/useEvent\";\nexport { default as useMergedState } from \"./hooks/useMergedState\";\nexport { supportNodeRef, supportRef, useComposeRef } from \"./ref\";\nexport { default as get } from \"./utils/get\";\nexport { default as set } from \"./utils/set\";\nexport { default as warning } from \"./warning\";","import { webPlatform as P } from \"./Platform/web\";\n/**\n * [版本号判断]\n * @category kg-base\n * @param  {string} target  [目标版本]\n * @param  {string} [currentVersion] [当前版本]\n * @param  {isAfter | isBefore | isEqual} [_current]          [大于等于或小于等于或等于,默认大于等于,enum(\"isAfter\" | \"isBefore\" | \"isEqual\")]\n */\nexport function versionCompare(target, type, _current) {\n    if (type === void 0) { type = \"isAfter\"; }\n    var current = _current;\n    if (!current) {\n        if (P.platform.version) {\n            current = P.platform.version;\n        }\n        else {\n            // 不直接throw error，降级为false\n            console.warn(\"get current version failed\");\n            return false;\n        }\n    }\n    var targetArr = target.split(\".\");\n    var currentArr = (current || \"\").split(\".\");\n    for (var i = 0; i < targetArr.length; i++) {\n        if (Number(currentArr[i]) > Number(targetArr[i])) {\n            return type === \"isAfter\";\n        }\n        else if (Number(currentArr[i]) < Number(targetArr[i])) {\n            return type === \"isBefore\";\n        }\n    }\n    return true; // 等于的时候也返回true\n}\n","export const defaultPresetColors = {\n  blue: '#1677FF',\n  purple: '#722ED1',\n  cyan: '#13C2C2',\n  green: '#52C41A',\n  magenta: '#EB2F96',\n  /**\n   * @deprecated Use magenta instead\n   */\n  pink: '#EB2F96',\n  red: '#F5222D',\n  orange: '#FA8C16',\n  yellow: '#FADB14',\n  volcano: '#FA541C',\n  geekblue: '#2F54EB',\n  gold: '#FAAD14',\n  lime: '#A0D911'\n};\nconst seedToken = Object.assign(Object.assign({}, defaultPresetColors), {\n  // Color\n  colorPrimary: '#1677ff',\n  colorSuccess: '#52c41a',\n  colorWarning: '#faad14',\n  colorError: '#ff4d4f',\n  colorInfo: '#1677ff',\n  colorLink: '',\n  colorTextBase: '',\n  colorBgBase: '',\n  // Font\n  fontFamily: `-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial,\n'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol',\n'Noto Color Emoji'`,\n  fontFamilyCode: `'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, Courier, monospace`,\n  fontSize: 14,\n  // Line\n  lineWidth: 1,\n  lineType: 'solid',\n  // Motion\n  motionUnit: 0.1,\n  motionBase: 0,\n  motionEaseOutCirc: 'cubic-bezier(0.08, 0.82, 0.17, 1)',\n  motionEaseInOutCirc: 'cubic-bezier(0.78, 0.14, 0.15, 0.86)',\n  motionEaseOut: 'cubic-bezier(0.215, 0.61, 0.355, 1)',\n  motionEaseInOut: 'cubic-bezier(0.645, 0.045, 0.355, 1)',\n  motionEaseOutBack: 'cubic-bezier(0.12, 0.4, 0.29, 1.46)',\n  motionEaseInBack: 'cubic-bezier(0.71, -0.46, 0.88, 0.6)',\n  motionEaseInQuint: 'cubic-bezier(0.755, 0.05, 0.855, 0.06)',\n  motionEaseOutQuint: 'cubic-bezier(0.23, 1, 0.32, 1)',\n  // Radius\n  borderRadius: 6,\n  // Size\n  sizeUnit: 4,\n  sizeStep: 4,\n  sizePopupArrow: 16,\n  // Control Base\n  controlHeight: 32,\n  // zIndex\n  zIndexBase: 0,\n  zIndexPopupBase: 1000,\n  // Image\n  opacityImage: 1,\n  // Wireframe\n  wireframe: false,\n  // Motion\n  motion: true\n});\nexport default seedToken;","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nfunction _wrapNativeSuper(t) {\n  var r = \"function\" == typeof Map ? new Map() : void 0;\n  return _wrapNativeSuper = function _wrapNativeSuper(t) {\n    if (null === t || !isNativeFunction(t)) return t;\n    if (\"function\" != typeof t) throw new TypeError(\"Super expression must either be null or a function\");\n    if (void 0 !== r) {\n      if (r.has(t)) return r.get(t);\n      r.set(t, Wrapper);\n    }\n    function Wrapper() {\n      return construct(t, arguments, getPrototypeOf(this).constructor);\n    }\n    return Wrapper.prototype = Object.create(t.prototype, {\n      constructor: {\n        value: Wrapper,\n        enumerable: !1,\n        writable: !0,\n        configurable: !0\n      }\n    }), setPrototypeOf(Wrapper, t);\n  }, _wrapNativeSuper(t);\n}\nexport { _wrapNativeSuper as default };","function _isNativeFunction(t) {\n  try {\n    return -1 !== Function.toString.call(t).indexOf(\"[native code]\");\n  } catch (n) {\n    return \"function\" == typeof t;\n  }\n}\nexport { _isNativeFunction as default };","import isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _construct(t, e, r) {\n  if (isNativeReflectConstruct()) return Reflect.construct.apply(null, arguments);\n  var o = [null];\n  o.push.apply(o, e);\n  var p = new (t.bind.apply(t, o))();\n  return r && setPrototypeOf(p, r.prototype), p;\n}\nexport { _construct as default };","module.exports = \"data:image/png;base64,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\"","export default function contains(root, n) {\n  if (!root) {\n    return false;\n  }\n\n  // Use native if support\n  if (root.contains) {\n    return root.contains(n);\n  }\n\n  // `document.contains` not support with IE11\n  var node = n;\n  while (node) {\n    if (node === root) {\n      return true;\n    }\n    node = node.parentNode;\n  }\n  return false;\n}","export var extractOsVersion = function () {\n    try {\n        var matched = navigator.userAgent.match(/\\(([^()]*)\\)/);\n        if (matched) {\n            var info = matched[1];\n            var matchAndroid = info.match(/([Aa]ndroid([^;)]*))/);\n            if (matchAndroid) {\n                return matchAndroid[2].replace(/\\s/g, \"\");\n            }\n            var matchIos = info.match(/(iPhone OS[\\s]?([^;\\s)]*))/);\n            if (matchIos) {\n                return matchIos[2].replace(/\\s/g, \"\");\n            }\n            var matchMac = info.match(/(Mac OS X([^;)]*))/);\n            if (matchMac) {\n                return matchMac[2].replace(/\\s/g, \"\");\n            }\n        }\n        var isWin = navigator.platform === \"Win32\" || navigator.platform === \"Windows\";\n        if (isWin) {\n            var isWin2K = navigator.userAgent.indexOf(\"Windows NT 5.0\") > -1 ||\n                navigator.userAgent.indexOf(\"Windows 2000\") > -1;\n            if (isWin2K)\n                return \"2000\";\n            var isWinXP = navigator.userAgent.indexOf(\"Windows NT 5.1\") > -1 ||\n                navigator.userAgent.indexOf(\"Windows XP\") > -1;\n            if (isWinXP)\n                return \"XP\";\n            var isWin2003 = navigator.userAgent.indexOf(\"Windows NT 5.2\") > -1 ||\n                navigator.userAgent.indexOf(\"Windows 2003\") > -1;\n            if (isWin2003)\n                return \"2003\";\n            var isWinVista = navigator.userAgent.indexOf(\"Windows NT 6.0\") > -1 ||\n                navigator.userAgent.indexOf(\"Windows Vista\") > -1;\n            if (isWinVista)\n                return \"Vista\";\n            var isWin7 = navigator.userAgent.indexOf(\"Windows NT 6.1\") > -1 ||\n                navigator.userAgent.indexOf(\"Windows 7\") > -1;\n            if (isWin7)\n                return \"7\";\n            var isWin10 = navigator.userAgent.indexOf(\"Windows NT 10\") > -1 ||\n                navigator.userAgent.indexOf(\"Windows 10\") > -1;\n            if (isWin10)\n                return \"10\";\n        }\n        return \"Other\";\n    }\n    catch (err) {\n        return \"Other\";\n    }\n};\nvar h5Reg = /kg\\.qq\\.com\\/(activity\\/|minigame\\/|node\\/)?(([^/])+)/;\nvar hippyReg = /hippy=([^&]+)/;\nexport var extractProjectFromUrl = function (url) {\n    var _url = url || window.location.href;\n    var matches = _url.match(hippyReg);\n    if (matches && matches.length > 1) {\n        return matches[1];\n    }\n    matches = _url.match(h5Reg);\n    if (matches && matches.length > 0) {\n        return matches[2];\n    }\n    // return \"unknown\";\n    return getPagesPathName();\n};\nexport function getPagesPathName() {\n    return window.location.host + window.location.pathname;\n}\n","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nexport function isDOM(node) {\n  // https://developer.mozilla.org/en-US/docs/Web/API/Element\n  // Since XULElement is also subclass of Element, we only need HTMLElement and SVGElement\n  return node instanceof HTMLElement || node instanceof SVGElement;\n}\n\n/**\n * Retrieves a DOM node via a ref, and does not invoke `findDOMNode`.\n */\nexport function getDOM(node) {\n  if (node && _typeof(node) === 'object' && isDOM(node.nativeElement)) {\n    return node.nativeElement;\n  }\n  if (isDOM(node)) {\n    return node;\n  }\n  return null;\n}\n\n/**\n * Return if a node is a DOM node. Else will return by `findDOMNode`\n */\nexport default function findDOMNode(node) {\n  var domNode = getDOM(node);\n  if (domNode) {\n    return domNode;\n  }\n  if (node instanceof React.Component) {\n    var _ReactDOM$findDOMNode;\n    return (_ReactDOM$findDOMNode = ReactDOM.findDOMNode) === null || _ReactDOM$findDOMNode === void 0 ? void 0 : _ReactDOM$findDOMNode.call(ReactDOM, node);\n  }\n  return null;\n}","import * as React from 'react';\nexport default function useEvent(callback) {\n  var fnRef = React.useRef();\n  fnRef.current = callback;\n  var memoFn = React.useCallback(function () {\n    var _fnRef$current;\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n    return (_fnRef$current = fnRef.current) === null || _fnRef$current === void 0 ? void 0 : _fnRef$current.call.apply(_fnRef$current, [fnRef].concat(args));\n  }, []);\n  return memoFn;\n}","const { buildOptions} = require(\"./OptionsBuilder\");\nconst OrderedObjParser = require(\"./OrderedObjParser\");\nconst { prettify} = require(\"./node2json\");\nconst validator = require('../validator');\n\nclass XMLParser{\n    \n    constructor(options){\n        this.externalEntities = {};\n        this.options = buildOptions(options);\n        \n    }\n    /**\n     * Parse XML dats to JS object \n     * @param {string|Buffer} xmlData \n     * @param {boolean|Object} validationOption \n     */\n    parse(xmlData,validationOption){\n        if(typeof xmlData === \"string\"){\n        }else if( xmlData.toString){\n            xmlData = xmlData.toString();\n        }else{\n            throw new Error(\"XML data is accepted in String or Bytes[] form.\")\n        }\n        if( validationOption){\n            if(validationOption === true) validationOption = {}; //validate with default options\n            \n            const result = validator.validate(xmlData, validationOption);\n            if (result !== true) {\n              throw Error( `${result.err.msg}:${result.err.line}:${result.err.col}` )\n            }\n          }\n        const orderedObjParser = new OrderedObjParser(this.options);\n        orderedObjParser.addExternalEntities(this.externalEntities);\n        const orderedResult = orderedObjParser.parseXml(xmlData);\n        if(this.options.preserveOrder || orderedResult === undefined) return orderedResult;\n        else return prettify(orderedResult, this.options);\n    }\n\n    /**\n     * Add Entity which is not by default supported by this library\n     * @param {string} key \n     * @param {string} value \n     */\n    addEntity(key, value){\n        if(value.indexOf(\"&\") !== -1){\n            throw new Error(\"Entity value can't have '&'\")\n        }else if(key.indexOf(\"&\") !== -1 || key.indexOf(\";\") !== -1){\n            throw new Error(\"An entity must be set without '&' and ';'. Eg. use '#xD' for '&#xD;'\")\n        }else if(value === \"&\"){\n            throw new Error(\"An entity with value '&' is not permitted\");\n        }else{\n            this.externalEntities[key] = value;\n        }\n    }\n}\n\nmodule.exports = XMLParser;","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nfunction _possibleConstructorReturn(t, e) {\n  if (e && (\"object\" == _typeof(e) || \"function\" == typeof e)) return e;\n  if (void 0 !== e) throw new TypeError(\"Derived constructors may only return object or undefined\");\n  return assertThisInitialized(t);\n}\nexport { _possibleConstructorReturn as default };","/* eslint-disable no-invalid-this */\n// 覆盖了kg下的_events，过渡期间先加兼容\nwindow._events = window._events || {};\nexport function on(type, callback) {\n    window._events[type] || (window._events[type] = []);\n    window._events[type].push(callback);\n}\nexport function off(type, callback) {\n    var callbacks = window._events[type];\n    var index;\n    if (callbacks && callback) {\n        index = callbacks.indexOf(callback);\n        ~index && callbacks.splice(index, 1);\n    }\n    else {\n        window._events[type] = [];\n    }\n}\nexport function emit(type) {\n    var args = [];\n    for (var _i = 1; _i < arguments.length; _i++) {\n        args[_i - 1] = arguments[_i];\n    }\n    if (!window._events[type]) {\n        return false;\n    }\n    var callbacks = window._events[type].slice(0); // 多个one,splice时会删除,要拷贝一份\n    for (var i = 0; i < callbacks.length; i++) {\n        // @ts-ignore\n        callbacks[i] && callbacks[i].apply(this, args);\n    }\n}\nexport function one(type, callback) {\n    var proxy;\n    on(type, (proxy = function () {\n        var args = [];\n        for (var _i = 0; _i < arguments.length; _i++) {\n            args[_i] = arguments[_i];\n        }\n        // @ts-ignore\n        callback.apply(this, args);\n        off(type, proxy);\n    }));\n}\n","var __spreadArray = (this && this.__spreadArray) || function (to, from) {\n    for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n        to[j] = from[i];\n    return to;\n};\nimport { P, event } from \"@tencent/kg-base/lib/index.web\";\nvar CALLBACK_PREFIX = \"kgevt-\";\nexport var MESSAGE;\n(function (MESSAGE) {\n    MESSAGE[\"TIMEOUT\"] = \"timeout\";\n    MESSAGE[\"NO_SUCH_METHOD\"] = \"no such method\";\n})(MESSAGE || (MESSAGE = {}));\nvar CODE;\n(function (CODE) {\n    CODE[CODE[\"SUCCESS\"] = 0] = \"SUCCESS\";\n    CODE[CODE[\"ERROR\"] = -1001] = \"ERROR\";\n    CODE[CODE[\"TIME_OUT\"] = -1010] = \"TIME_OUT\";\n    CODE[CODE[\"NOT_IMP\"] = -1020] = \"NOT_IMP\";\n    CODE[CODE[\"TYPE_WRONG\"] = -1030] = \"TYPE_WRONG\";\n    CODE[CODE[\"VERSION_NOT_SUPPORT\"] = -1040] = \"VERSION_NOT_SUPPORT\";\n})(CODE || (CODE = {}));\nfunction log() {\n    var args = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        args[_i] = arguments[_i];\n    }\n    // if (typeof __DEV__ !== \"undefined\" && __DEV__) {\n    //     console.info(...args);\n    // new Image().src = \"/bridge?log=\" + args.join(\"&\");\n    // }\n    try {\n        console.info.apply(console, args);\n    }\n    catch (e) {\n        console.log('log err', e);\n    }\n}\nvar callbackCnt = 0;\nfunction invoke(_a) {\n    var action = _a.action, url = _a.url, callback = _a.callback, callbackname = _a.callbackname, type = _a.type;\n    var _callbackname = callbackname || action + \"__receivecallback_\" + callbackCnt++;\n    var _usePostMessgae = type === ActionType.POSTMESSAGE;\n    if (!url) {\n        return console.warn(\"invoke url is empty\");\n    }\n    callbackHandler({\n        callbackname: _callbackname,\n        callback: callback\n    });\n    if (_usePostMessgae && window.kg_postmessage_bridge) {\n        window.kg_postmessage_bridge.postMessage(url);\n        console.log(\"【usePostMessage】\");\n    }\n    else {\n        callNativeAction({\n            url: url,\n            callbackname: _callbackname\n        });\n    }\n}\nexport function callbackHandler(_a) {\n    var callbackname = _a.callbackname, callback = _a.callback;\n    var callbackName = CALLBACK_PREFIX + callbackname;\n    event.off(callbackName);\n    if (callback) {\n        event.on(callbackName, callback);\n    }\n}\n/*\n * 使用 iframe 发起伪协议请求给客户端\n */\nexport function callNativeAction(_a) {\n    var url = _a.url, callbackname = _a.callbackname;\n    if (/^jsbridge/.test(url)) {\n        if (window.CONSOLE_AVAILABLE) {\n            log(\"console.log-\" + url);\n            console.log(url);\n            return;\n        }\n        else if (window.PROMPT_AVAILABLE) {\n            log(\"prompt-\" + url);\n            // prompt(\"USE_PROMPT_CONNECT\", url);\n            console.log(\"prompt-\" + url); // 打日志\n            return;\n        }\n    }\n    var iframe = document.createElement(\"iframe\");\n    iframe.style.cssText = \"display:none;width:0px;height:0px;\";\n    var failCallback = function () {\n        /*\n          正常情况下是不会回调到这里的, 只有客户端没有捕获这个 url 请求,\n          浏览器才会发起 iframe 的加载, 但这个 url 实际上是不存在的,\n          会触发 404 页面的 onload 事件\n        */\n        callbackname &&\n            execEventCallback(callbackname, {\n                retcode: -201,\n                msg: \"error\"\n            });\n    };\n    if (P.os.ios) {\n        iframe.onload = failCallback;\n        iframe.src = url;\n    }\n    var container = document.body || document.documentElement;\n    container.appendChild(iframe);\n    /*\n    android 这里必须先添加到页面, 然后再绑定 onload 和设置 src\n    1. 先设置 src 再 append 到页面, 会导致在接口回调(callback)中嵌套调用 api会失败, iframe会直接当成普通url来解析\n    2. 先设置onload 在 append , 会导致 iframe 先触发一次 about:blank 的 onload 事件\n    */\n    if (P.os.android) {\n        // android 必须先append 然后赋值\n        iframe.onload = failCallback;\n        iframe.src = url;\n    }\n    // 调试\n    log('iframe-' + url);\n    // android 捕获了iframe的url之后, 也是中断 js 进程的, 所以这里可以用个 setTimeout 0 来删除 iframe\n    setTimeout(function () {\n        iframe.parentNode && iframe.parentNode.removeChild(iframe);\n    }, 0);\n    // return returnValue;\n    //\n    return null;\n}\n// 这个方法时客户端回调页面使用的, 当客户端要触发事件给页面时, 会调用这个方法\nexport function execEventCallback(eventName, data) {\n    var args = [];\n    for (var _i = 2; _i < arguments.length; _i++) {\n        args[_i - 2] = arguments[_i];\n    }\n    var _data = data;\n    log(\"execEventCallback\", \"event=\" + eventName, \"data=\" + JSON.stringify(data));\n    if (data && typeof data === \"string\" && /\\{/.test(data)) {\n        try {\n            _data = JSON.parse(data);\n        }\n        catch (e) { }\n    }\n    log(window);\n    log(JSON.stringify((window)[eventName]));\n    if ((window)[eventName] && typeof window[eventName] === \"function\") {\n        // @ts-ignore\n        window[eventName](_data);\n    }\n    else {\n        log(\"execEventCallback emnit\", \"kgevt-\" + eventName);\n        event.emit.apply(event, __spreadArray([\"kgevt-\" + eventName, _data], args));\n    }\n}\nexport var ActionType;\n(function (ActionType) {\n    ActionType[\"EVENT\"] = \"event\";\n    ActionType[\"POSTMESSAGE\"] = \"postMessage\";\n})(ActionType || (ActionType = {}));\nexport function qmkegeInvoke(_a) {\n    var action = _a.action, data = _a.data, callback = _a.callback, schemetype = _a.schemetype, type = _a.type;\n    var _callbackname = action + \"__receivecallback_\" + callbackCnt++;\n    var _data = Object.assign({}, data || {});\n    _data.callback = _callbackname;\n    if (type && type === \"event\") {\n        return callback ? extendObjectChain(window, action, callback) : null;\n    }\n    invoke({\n        action: action,\n        url: schemetype && schemetype === \"qmkege\"\n            ? \"qmkege://kege.com?action=\" + action + \"&\" + jsonToQueryString(_data)\n            : \"jsbridge://karawebview/\" + action + \"?p=\" + encodeURIComponent(JSON.stringify(_data)),\n        callback: callback,\n        callbackname: _callbackname // 保证callbackname统一，防止多次调用时name不一致\n    });\n}\nfunction extendObjectChain(obj, list, fun) {\n    var keys = list.split(\".\");\n    var newChain = {};\n    var points = newChain;\n    var parent;\n    for (var i = 0, key = void 0; (key = keys[i]); i++) {\n        points[key] = {};\n        parent = points;\n        points = points[key];\n    }\n    parent[keys[keys.length - 1]] = fun;\n    Object.assign(obj, newChain);\n}\nfunction jsonToQueryString(json) {\n    return Object.keys(json)\n        .map(function (key) {\n        return encodeURIComponent(key) + \"=\" + encodeURIComponent(json[key]);\n    })\n        .join(\"&\");\n}\nvar emptyFn = function () { };\nexport function unRegisterEvent(params) {\n    event.off(params.eventName, params.callback || emptyFn);\n    return new Promise(function (resolve) {\n        qmkegeInvoke({\n            action: params.methodName,\n            callback: params.callback\n        });\n        resolve({ code: CODE.SUCCESS, msg: 'register success', data: {} });\n    });\n}\nexport function registerEvent(params) {\n    qmkegeInvoke({\n        type: \"event\",\n        action: params.eventName,\n        callback: function (res) {\n            console.log('callNative web', res);\n            params.callback && params.callback(res);\n        }\n    });\n    return { code: CODE.SUCCESS, msg: 'register success', data: {} };\n}\nexport function callNative(params) {\n    return new Promise((function (resolve) {\n        qmkegeInvoke({\n            module: params.moduleName,\n            action: params.methodName,\n            data: params.arg,\n            schemetype: params.useScheme ? \"qmkege\" : \"\",\n            callback: function (res) {\n                console.log('callNative web', res);\n                resolve(res);\n            }\n        });\n        setTimeout(function () {\n            resolve({\n                code: CODE.TIME_OUT,\n                msg: \"timeout: \" + (params.timeout || 5000),\n                data: {}\n            });\n        }, params.timeout || 5000);\n    }));\n}\nexport function atLeast5000ms(time) {\n    if (time === void 0) { time = 5000; }\n    return new Promise(function (resolve) {\n        setTimeout(function () {\n            resolve({\n                code: CODE.TIME_OUT,\n                msg: MESSAGE.TIMEOUT + \": \" + time,\n                data: {}\n            });\n        }, time);\n    });\n}\nif (!window.kgbridge) {\n    window.kgbridge = {\n        execEventCallback: execEventCallback,\n    };\n}\nif (!window.wesingBridge) {\n    window.wesingBridge = {\n        execEventCallback: execEventCallback\n    };\n}\nif (window.wesingBridge && !window.wesingBridge.execEventCallback) {\n    window.wesingBridge.execEventCallback = execEventCallback;\n}\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n    return new (P || (P = Promise))(function (resolve, reject) {\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\n    });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n    return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n    function verb(n) { return function (v) { return step([n, v]); }; }\n    function step(op) {\n        if (f) throw new TypeError(\"Generator is already executing.\");\n        while (_) try {\n            if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n            if (y = 0, t) op = [op[0] & 2, t.value];\n            switch (op[0]) {\n                case 0: case 1: t = op; break;\n                case 4: _.label++; return { value: op[1], done: false };\n                case 5: _.label++; y = op[1]; op = [0]; continue;\n                case 7: op = _.ops.pop(); _.trys.pop(); continue;\n                default:\n                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n                    if (t[2]) _.ops.pop();\n                    _.trys.pop(); continue;\n            }\n            op = body.call(thisArg, _);\n        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n    }\n};\n// Autogenerated from kg-pigeon , do not edit directly.\nimport { callNative, registerEvent, unRegisterEvent } from \"../Base.web\";\nvar WebContain = /** @class */ (function () {\n    function WebContain() {\n    }\n    /**\n    * 关闭阻断设置(半屏h5)\n    */\n    WebContain.setCloseWebviewConfirm = function (arg) {\n        return __awaiter(this, void 0, void 0, function () {\n            var res;\n            return __generator(this, function (_a) {\n                switch (_a.label) {\n                    case 0: return [4 /*yield*/, callNative({ moduleName: \"WebContain\", methodName: \"setCloseWebviewConfirm\", timeout: arg.timeout, version: arg.version, arg: arg })];\n                    case 1:\n                        res = _a.sent();\n                        return [2 /*return*/, res];\n                }\n            });\n        });\n    };\n    /**\n    * 清除weview关闭阻断设置\n    */\n    WebContain.clearCloseWebviewConfirm = function (arg) {\n        return __awaiter(this, void 0, void 0, function () {\n            var res;\n            return __generator(this, function (_a) {\n                switch (_a.label) {\n                    case 0: return [4 /*yield*/, callNative({ moduleName: \"WebContain\", methodName: \"clearCloseWebviewConfirm\", timeout: arg.timeout, version: arg.version, arg: {} })];\n                    case 1:\n                        res = _a.sent();\n                        return [2 /*return*/, res];\n                }\n            });\n        });\n    };\n    /**\n    * 关闭webview\n    */\n    WebContain.closeWebview = function (arg) {\n        return __awaiter(this, void 0, void 0, function () {\n            var res;\n            return __generator(this, function (_a) {\n                switch (_a.label) {\n                    case 0: return [4 /*yield*/, callNative({ moduleName: \"WebContain\", methodName: \"closeWebview\", timeout: arg.timeout, version: arg.version, arg: {} })];\n                    case 1:\n                        res = _a.sent();\n                        return [2 /*return*/, res];\n                }\n            });\n        });\n    };\n    /**\n    * 设置webview高度\n    */\n    WebContain.setWebWindow = function (arg) {\n        return __awaiter(this, void 0, void 0, function () {\n            var res;\n            return __generator(this, function (_a) {\n                switch (_a.label) {\n                    case 0: return [4 /*yield*/, callNative({ moduleName: \"WebContain\", methodName: \"setWebWindow\", timeout: arg.timeout, version: arg.version, arg: arg })];\n                    case 1:\n                        res = _a.sent();\n                        return [2 /*return*/, res];\n                }\n            });\n        });\n    };\n    /**\n    * 禁止左侧整屏滑动关闭\n    */\n    WebContain.forbidSlip = function (arg) {\n        return __awaiter(this, void 0, void 0, function () {\n            var res;\n            return __generator(this, function (_a) {\n                switch (_a.label) {\n                    case 0: return [4 /*yield*/, callNative({ moduleName: \"WebContain\", methodName: \"forbidSlip\", timeout: arg.timeout, version: arg.version, arg: arg })];\n                    case 1:\n                        res = _a.sent();\n                        return [2 /*return*/, res];\n                }\n            });\n        });\n    };\n    /**\n    * 设置游戏悬浮窗\n    */\n    WebContain.setSuspensionWindow = function (arg) {\n        return __awaiter(this, void 0, void 0, function () {\n            var res;\n            return __generator(this, function (_a) {\n                switch (_a.label) {\n                    case 0: return [4 /*yield*/, callNative({ moduleName: \"WebContain\", methodName: \"setSuspensionWindow\", timeout: arg.timeout, version: arg.version, arg: arg })];\n                    case 1:\n                        res = _a.sent();\n                        return [2 /*return*/, res];\n                }\n            });\n        });\n    };\n    /**\n    * 取消游戏悬浮窗设置\n    */\n    WebContain.clearSuspensionWindow = function (arg) {\n        return __awaiter(this, void 0, void 0, function () {\n            var res;\n            return __generator(this, function (_a) {\n                switch (_a.label) {\n                    case 0: return [4 /*yield*/, callNative({ moduleName: \"WebContain\", methodName: \"clearSuspensionWindow\", timeout: arg.timeout, version: arg.version, arg: {} })];\n                    case 1:\n                        res = _a.sent();\n                        return [2 /*return*/, res];\n                }\n            });\n        });\n    };\n    /**\n    * 清除Loading展示(半屏h5)\n    */\n    WebContain.closeLoading = function (arg) {\n        return __awaiter(this, void 0, void 0, function () {\n            var res;\n            return __generator(this, function (_a) {\n                switch (_a.label) {\n                    case 0: return [4 /*yield*/, callNative({ moduleName: \"WebContain\", methodName: \"closeLoading\", timeout: arg.timeout, version: arg.version, arg: {} })];\n                    case 1:\n                        res = _a.sent();\n                        return [2 /*return*/, res];\n                }\n            });\n        });\n    };\n    /**\n    * webview离开后再返回\n    */\n    WebContain.pageShow = function (arg) {\n        return __awaiter(this, void 0, void 0, function () {\n            var res;\n            return __generator(this, function (_a) {\n                switch (_a.label) {\n                    case 0: return [4 /*yield*/, callNative({ moduleName: \"WebContain\", methodName: \"pageShow\", timeout: arg.timeout, version: arg.version, arg: {} })];\n                    case 1:\n                        res = _a.sent();\n                        return [2 /*return*/, res];\n                }\n            });\n        });\n    };\n    /**\n    * 发送消息给目标页面\n    */\n    WebContain.postMessageToWeb = function (arg) {\n        return __awaiter(this, void 0, void 0, function () {\n            var res;\n            return __generator(this, function (_a) {\n                switch (_a.label) {\n                    case 0: return [4 /*yield*/, callNative({ moduleName: \"WebContain\", methodName: \"postMessageToWeb\", timeout: arg.timeout, version: arg.version, arg: arg })];\n                    case 1:\n                        res = _a.sent();\n                        return [2 /*return*/, res];\n                }\n            });\n        });\n    };\n    /**\n    * 接收消息给目标页面\n    */\n    WebContain.receiveMessageToWeb = function (arg) {\n        return __awaiter(this, void 0, void 0, function () {\n            var res;\n            return __generator(this, function (_a) {\n                switch (_a.label) {\n                    case 0: return [4 /*yield*/, registerEvent({ eventName: \"receiveMessageToWeb\", callback: arg.callback })];\n                    case 1:\n                        res = _a.sent();\n                        return [2 /*return*/, res];\n                }\n            });\n        });\n    };\n    /**\n    * 呼起app并跳到H5页\n    */\n    WebContain.webview = function (arg) {\n        return __awaiter(this, void 0, void 0, function () {\n            var res;\n            return __generator(this, function (_a) {\n                switch (_a.label) {\n                    case 0: return [4 /*yield*/, callNative({ moduleName: \"WebContain\", methodName: \"webview\", timeout: arg.timeout, useScheme: true, version: arg.version, arg: arg })];\n                    case 1:\n                        res = _a.sent();\n                        return [2 /*return*/, res];\n                }\n            });\n        });\n    };\n    /**\n    * 自动锁屏设置\n    */\n    WebContain.lockScreen = function (arg) {\n        return __awaiter(this, void 0, void 0, function () {\n            var res;\n            return __generator(this, function (_a) {\n                switch (_a.label) {\n                    case 0: return [4 /*yield*/, callNative({ moduleName: \"WebContain\", methodName: \"lockScreen\", timeout: arg.timeout, version: arg.version, arg: arg })];\n                    case 1:\n                        res = _a.sent();\n                        return [2 /*return*/, res];\n                }\n            });\n        });\n    };\n    /**\n    * 呼起升级弹框；支持Hippy & web\n    */\n    WebContain.upgrade = function (arg) {\n        return __awaiter(this, void 0, void 0, function () {\n            var res;\n            return __generator(this, function (_a) {\n                switch (_a.label) {\n                    case 0: return [4 /*yield*/, callNative({ moduleName: \"WebContain\", methodName: \"upgrade\", timeout: arg.timeout, version: arg.version, arg: {} })];\n                    case 1:\n                        res = _a.sent();\n                        return [2 /*return*/, res];\n                }\n            });\n        });\n    };\n    /**\n    * 设置状态栏；支持Hippy & web\n    */\n    WebContain.setStatusBar = function (arg) {\n        return __awaiter(this, void 0, void 0, function () {\n            var res;\n            return __generator(this, function (_a) {\n                switch (_a.label) {\n                    case 0: return [4 /*yield*/, callNative({ moduleName: \"WebContain\", methodName: \"setStatusBar\", timeout: arg.timeout, version: arg.version, arg: arg })];\n                    case 1:\n                        res = _a.sent();\n                        return [2 /*return*/, res];\n                }\n            });\n        });\n    };\n    /**\n    * 分享到QQ；支持Hippy & web\n    */\n    WebContain.callShareQQ = function (arg) {\n        return __awaiter(this, void 0, void 0, function () {\n            var res;\n            return __generator(this, function (_a) {\n                switch (_a.label) {\n                    case 0: return [4 /*yield*/, callNative({ moduleName: \"WebContain\", methodName: \"callShareQQ\", timeout: arg.timeout, version: arg.version, arg: arg })];\n                    case 1:\n                        res = _a.sent();\n                        return [2 /*return*/, res];\n                }\n            });\n        });\n    };\n    /**\n    * 分享到微信；支持Hippy & web\n    */\n    WebContain.callShareWechat = function (arg) {\n        return __awaiter(this, void 0, void 0, function () {\n            var res;\n            return __generator(this, function (_a) {\n                switch (_a.label) {\n                    case 0: return [4 /*yield*/, callNative({ moduleName: \"WebContain\", methodName: \"callShareWechat\", timeout: arg.timeout, version: arg.version, arg: arg })];\n                    case 1:\n                        res = _a.sent();\n                        return [2 /*return*/, res];\n                }\n            });\n        });\n    };\n    /**\n    * 复制链接；支持Hippy & web\n    */\n    WebContain.callShareCopyLink = function (arg) {\n        return __awaiter(this, void 0, void 0, function () {\n            var res;\n            return __generator(this, function (_a) {\n                switch (_a.label) {\n                    case 0: return [4 /*yield*/, callNative({ moduleName: \"WebContain\", methodName: \"callShareCopyLink\", timeout: arg.timeout, version: arg.version, arg: arg })];\n                    case 1:\n                        res = _a.sent();\n                        return [2 /*return*/, res];\n                }\n            });\n        });\n    };\n    /**\n    * 分享图片；支持Hippy & web\n    */\n    WebContain.shareImage = function (arg) {\n        return __awaiter(this, void 0, void 0, function () {\n            var res;\n            return __generator(this, function (_a) {\n                switch (_a.label) {\n                    case 0: return [4 /*yield*/, callNative({ moduleName: \"WebContain\", methodName: \"shareImage\", timeout: arg.timeout, version: arg.version, arg: arg })];\n                    case 1:\n                        res = _a.sent();\n                        return [2 /*return*/, res];\n                }\n            });\n        });\n    };\n    /**\n    * 保存图片；支持Hippy & web\n    */\n    WebContain.saveImage = function (arg) {\n        return __awaiter(this, void 0, void 0, function () {\n            var res;\n            return __generator(this, function (_a) {\n                switch (_a.label) {\n                    case 0: return [4 /*yield*/, callNative({ moduleName: \"WebContain\", methodName: \"saveImage\", timeout: arg.timeout, version: arg.version, arg: arg })];\n                    case 1:\n                        res = _a.sent();\n                        return [2 /*return*/, res];\n                }\n            });\n        });\n    };\n    /**\n    * 页面重新show出来，触发时机包括从后台应用回到前台，上层页面关闭后返回到当前页面\n  web 事件名为： onKegeResume\n  hippy ios 事件名为：VCWillAppear_{项目名}\n  安卓 事件名为：@hippy:resumeInstance\n  现统一为onPageShow\n    */\n    WebContain.onKegeResume = function (arg) {\n        return __awaiter(this, void 0, void 0, function () {\n            var res;\n            return __generator(this, function (_a) {\n                switch (_a.label) {\n                    case 0: return [4 /*yield*/, registerEvent({ eventName: \"onKegeResume\", callback: arg.callback })];\n                    case 1:\n                        res = _a.sent();\n                        return [2 /*return*/, res];\n                }\n            });\n        });\n    };\n    /**\n    * 页面被隐藏出来，触发时机包括回到后台应用，以及打开其他页面\n  web 事件名为： onKegeHide\n  hippy ios 事件名为：VCWillDisappear\n  安卓 事件名为：@hippy:pauseInstance\n  现统一为onPageHide\n    */\n    WebContain.onKegeHide = function (arg) {\n        return __awaiter(this, void 0, void 0, function () {\n            var res;\n            return __generator(this, function (_a) {\n                switch (_a.label) {\n                    case 0: return [4 /*yield*/, registerEvent({ eventName: \"onKegeHide\", callback: arg.callback })];\n                    case 1:\n                        res = _a.sent();\n                        return [2 /*return*/, res];\n                }\n            });\n        });\n    };\n    /**\n    * 询问是否在前台\n    */\n    WebContain.isAppFront = function (arg) {\n        return __awaiter(this, void 0, void 0, function () {\n            var res;\n            return __generator(this, function (_a) {\n                switch (_a.label) {\n                    case 0: return [4 /*yield*/, callNative({ moduleName: \"WebContain\", methodName: \"isAppFront\", timeout: arg.timeout, version: arg.version, arg: {} })];\n                    case 1:\n                        res = _a.sent();\n                        return [2 /*return*/, res];\n                }\n            });\n        });\n    };\n    /**\n    * 打印web日志\n    */\n    WebContain.log = function (arg) {\n        return __awaiter(this, void 0, void 0, function () {\n            var res;\n            return __generator(this, function (_a) {\n                switch (_a.label) {\n                    case 0: return [4 /*yield*/, callNative({ moduleName: \"WebContain\", methodName: \"log\", timeout: arg.timeout, version: arg.version, arg: arg })];\n                    case 1:\n                        res = _a.sent();\n                        return [2 /*return*/, res];\n                }\n            });\n        });\n    };\n    /**\n    * scheme收归\n    */\n    WebContain.handleScheme = function (arg) {\n        return __awaiter(this, void 0, void 0, function () {\n            var res;\n            return __generator(this, function (_a) {\n                switch (_a.label) {\n                    case 0: return [4 /*yield*/, callNative({ moduleName: \"WebContain\", methodName: \"handleScheme\", timeout: arg.timeout, version: arg.version, arg: arg })];\n                    case 1:\n                        res = _a.sent();\n                        return [2 /*return*/, res];\n                }\n            });\n        });\n    };\n    /**\n    * 卸载所有的受控事件\n    */\n    WebContain.unRegisterEventAll = function (arg) {\n        return __awaiter(this, void 0, void 0, function () {\n            var res;\n            return __generator(this, function (_a) {\n                switch (_a.label) {\n                    case 0: return [4 /*yield*/, callNative({ moduleName: \"WebContain\", methodName: \"unRegisterEventAll\", timeout: arg.timeout, version: arg.version, arg: {} })];\n                    case 1:\n                        res = _a.sent();\n                        return [2 /*return*/, res];\n                }\n            });\n        });\n    };\n    /**\n    * 隐藏webview返回按钮\n    */\n    WebContain.hideViewBackBtn = function (arg) {\n        return __awaiter(this, void 0, void 0, function () {\n            var res;\n            return __generator(this, function (_a) {\n                switch (_a.label) {\n                    case 0: return [4 /*yield*/, callNative({ moduleName: \"WebContain\", methodName: \"hideViewBackBtn\", timeout: arg.timeout, version: arg.version, arg: {} })];\n                    case 1:\n                        res = _a.sent();\n                        return [2 /*return*/, res];\n                }\n            });\n        });\n    };\n    /**\n    * 配置titleBar\n    */\n    WebContain.setTitleBar = function (arg) {\n        return __awaiter(this, void 0, void 0, function () {\n            var res;\n            return __generator(this, function (_a) {\n                switch (_a.label) {\n                    case 0: return [4 /*yield*/, callNative({ moduleName: \"WebContain\", methodName: \"setTitleBar\", timeout: arg.timeout, version: arg.version, arg: arg })];\n                    case 1:\n                        res = _a.sent();\n                        return [2 /*return*/, res];\n                }\n            });\n        });\n    };\n    /**\n    * 触发导航栏Action的事件回调\n    */\n    WebContain.execTitleBarAction = function (arg) {\n        return __awaiter(this, void 0, void 0, function () {\n            var res;\n            return __generator(this, function (_a) {\n                switch (_a.label) {\n                    case 0: return [4 /*yield*/, registerEvent({ eventName: \"execTitleBarAction\", callback: arg.callback })];\n                    case 1:\n                        res = _a.sent();\n                        return [2 /*return*/, res];\n                }\n            });\n        });\n    };\n    /**\n    * ios 右滑返回事件回调\n    */\n    WebContain.iosSlideBack = function (arg) {\n        return __awaiter(this, void 0, void 0, function () {\n            var res;\n            return __generator(this, function (_a) {\n                switch (_a.label) {\n                    case 0: return [4 /*yield*/, registerEvent({ eventName: \"iosSlideBack\", callback: arg.callback })];\n                    case 1:\n                        res = _a.sent();\n                        return [2 /*return*/, res];\n                }\n            });\n        });\n    };\n    /**\n    * 设置客户端在webview关闭时需要上报的数据\n    */\n    WebContain.setCloseReportData = function (arg) {\n        return __awaiter(this, void 0, void 0, function () {\n            var res;\n            return __generator(this, function (_a) {\n                switch (_a.label) {\n                    case 0: return [4 /*yield*/, callNative({ moduleName: \"WebContain\", methodName: \"setCloseReportData\", timeout: arg.timeout, version: arg.version, arg: arg })];\n                    case 1:\n                        res = _a.sent();\n                        return [2 /*return*/, res];\n                }\n            });\n        });\n    };\n    /**\n    * 当前WebView是否处于前台（不要与“isAppFront”混用）\n    */\n    WebContain.isWebViewFront = function (arg) {\n        return __awaiter(this, void 0, void 0, function () {\n            var res;\n            return __generator(this, function (_a) {\n                switch (_a.label) {\n                    case 0: return [4 /*yield*/, callNative({ moduleName: \"WebContain\", methodName: \"isWebViewFront\", timeout: arg.timeout, version: arg.version, arg: {} })];\n                    case 1:\n                        res = _a.sent();\n                        return [2 /*return*/, res];\n                }\n            });\n        });\n    };\n    /**\n    * H5游戏告知客户端当前是否需要禁用Push信息\n    */\n    WebContain.disablePushMsg = function (arg) {\n        return __awaiter(this, void 0, void 0, function () {\n            var res;\n            return __generator(this, function (_a) {\n                switch (_a.label) {\n                    case 0: return [4 /*yield*/, callNative({ moduleName: \"WebContain\", methodName: \"disablePushMsg\", timeout: arg.timeout, version: arg.version, arg: arg })];\n                    case 1:\n                        res = _a.sent();\n                        return [2 /*return*/, res];\n                }\n            });\n        });\n    };\n    /**\n    * 统一分享接口\n    */\n    WebContain.callShare = function (arg) {\n        return __awaiter(this, void 0, void 0, function () {\n            var res;\n            return __generator(this, function (_a) {\n                switch (_a.label) {\n                    case 0: return [4 /*yield*/, callNative({ moduleName: \"WebContain\", methodName: \"callShare\", timeout: arg.timeout, version: arg.version, arg: arg })];\n                    case 1:\n                        res = _a.sent();\n                        return [2 /*return*/, res];\n                }\n            });\n        });\n    };\n    WebContain.registerreceiveMessageToWeb = function (arg) {\n        return __awaiter(this, void 0, void 0, function () {\n            var res;\n            return __generator(this, function (_a) {\n                switch (_a.label) {\n                    case 0: return [4 /*yield*/, callNative({ moduleName: \"WebContain\", methodName: \"registerreceiveMessageToWeb\", timeout: arg && arg.timeout, version: arg && arg.version, arg: arg ? arg : {} })];\n                    case 1:\n                        res = _a.sent();\n                        return [2 /*return*/, res];\n                }\n            });\n        });\n    };\n    WebContain.unregisterreceiveMessageToWeb = function (arg) {\n        return __awaiter(this, void 0, void 0, function () {\n            var res;\n            return __generator(this, function (_a) {\n                switch (_a.label) {\n                    case 0: return [4 /*yield*/, unRegisterEvent({ eventName: \"receiveMessageToWeb\", moduleName: \"WebContain\", methodName: \"unregisterreceiveMessageToWeb\", callback: arg.callback })];\n                    case 1:\n                        res = _a.sent();\n                        return [2 /*return*/, res];\n                }\n            });\n        });\n    };\n    WebContain.registeronKegeResume = function (arg) {\n        return __awaiter(this, void 0, void 0, function () {\n            var res;\n            return __generator(this, function (_a) {\n                switch (_a.label) {\n                    case 0: return [4 /*yield*/, callNative({ moduleName: \"WebContain\", methodName: \"registeronKegeResume\", timeout: arg && arg.timeout, version: arg && arg.version, arg: arg ? arg : {} })];\n                    case 1:\n                        res = _a.sent();\n                        return [2 /*return*/, res];\n                }\n            });\n        });\n    };\n    WebContain.unregisteronKegeResume = function (arg) {\n        return __awaiter(this, void 0, void 0, function () {\n            var res;\n            return __generator(this, function (_a) {\n                switch (_a.label) {\n                    case 0: return [4 /*yield*/, unRegisterEvent({ eventName: \"onKegeResume\", moduleName: \"WebContain\", methodName: \"unregisteronKegeResume\", callback: arg.callback })];\n                    case 1:\n                        res = _a.sent();\n                        return [2 /*return*/, res];\n                }\n            });\n        });\n    };\n    WebContain.registeronKegeHide = function (arg) {\n        return __awaiter(this, void 0, void 0, function () {\n            var res;\n            return __generator(this, function (_a) {\n                switch (_a.label) {\n                    case 0: return [4 /*yield*/, callNative({ moduleName: \"WebContain\", methodName: \"registeronKegeHide\", timeout: arg && arg.timeout, version: arg && arg.version, arg: arg ? arg : {} })];\n                    case 1:\n                        res = _a.sent();\n                        return [2 /*return*/, res];\n                }\n            });\n        });\n    };\n    WebContain.unregisteronKegeHide = function (arg) {\n        return __awaiter(this, void 0, void 0, function () {\n            var res;\n            return __generator(this, function (_a) {\n                switch (_a.label) {\n                    case 0: return [4 /*yield*/, unRegisterEvent({ eventName: \"onKegeHide\", moduleName: \"WebContain\", methodName: \"unregisteronKegeHide\", callback: arg.callback })];\n                    case 1:\n                        res = _a.sent();\n                        return [2 /*return*/, res];\n                }\n            });\n        });\n    };\n    WebContain.registerexecTitleBarAction = function (arg) {\n        return __awaiter(this, void 0, void 0, function () {\n            var res;\n            return __generator(this, function (_a) {\n                switch (_a.label) {\n                    case 0: return [4 /*yield*/, callNative({ moduleName: \"WebContain\", methodName: \"registerexecTitleBarAction\", timeout: arg && arg.timeout, version: arg && arg.version, arg: arg ? arg : {} })];\n                    case 1:\n                        res = _a.sent();\n                        return [2 /*return*/, res];\n                }\n            });\n        });\n    };\n    WebContain.unregisterexecTitleBarAction = function (arg) {\n        return __awaiter(this, void 0, void 0, function () {\n            var res;\n            return __generator(this, function (_a) {\n                switch (_a.label) {\n                    case 0: return [4 /*yield*/, unRegisterEvent({ eventName: \"execTitleBarAction\", moduleName: \"WebContain\", methodName: \"unregisterexecTitleBarAction\", callback: arg.callback })];\n                    case 1:\n                        res = _a.sent();\n                        return [2 /*return*/, res];\n                }\n            });\n        });\n    };\n    WebContain.registeriosSlideBack = function (arg) {\n        return __awaiter(this, void 0, void 0, function () {\n            var res;\n            return __generator(this, function (_a) {\n                switch (_a.label) {\n                    case 0: return [4 /*yield*/, callNative({ moduleName: \"WebContain\", methodName: \"registeriosSlideBack\", timeout: arg && arg.timeout, version: arg && arg.version, arg: arg ? arg : {} })];\n                    case 1:\n                        res = _a.sent();\n                        return [2 /*return*/, res];\n                }\n            });\n        });\n    };\n    WebContain.unregisteriosSlideBack = function (arg) {\n        return __awaiter(this, void 0, void 0, function () {\n            var res;\n            return __generator(this, function (_a) {\n                switch (_a.label) {\n                    case 0: return [4 /*yield*/, unRegisterEvent({ eventName: \"iosSlideBack\", moduleName: \"WebContain\", methodName: \"unregisteriosSlideBack\", callback: arg.callback })];\n                    case 1:\n                        res = _a.sent();\n                        return [2 /*return*/, res];\n                }\n            });\n        });\n    };\n    return WebContain;\n}());\nexport { WebContain };\nexport var LightModeType;\n(function (LightModeType) {\n    LightModeType[LightModeType[\"Light\"] = 0] = \"Light\";\n    LightModeType[LightModeType[\"Dark\"] = 1] = \"Dark\";\n})(LightModeType || (LightModeType = {}));\nexport var ChannelType;\n(function (ChannelType) {\n    ChannelType[ChannelType[\"QQ\"] = 1] = \"QQ\";\n    ChannelType[ChannelType[\"Wechat\"] = 2] = \"Wechat\";\n    ChannelType[ChannelType[\"WechatMoments\"] = 3] = \"WechatMoments\";\n    ChannelType[ChannelType[\"Weibo\"] = 4] = \"Weibo\";\n})(ChannelType || (ChannelType = {}));\nexport var ForbidSlipType;\n(function (ForbidSlipType) {\n    /**\n    * 恢复滑动\n    */\n    ForbidSlipType[ForbidSlipType[\"Resume\"] = 0] = \"Resume\";\n    /**\n    * 禁止滑动\n    */\n    ForbidSlipType[ForbidSlipType[\"Disable\"] = 1] = \"Disable\";\n})(ForbidSlipType || (ForbidSlipType = {}));\nexport var CallShareChannel;\n(function (CallShareChannel) {\n    CallShareChannel[CallShareChannel[\"wechat\"] = 1] = \"wechat\";\n    CallShareChannel[CallShareChannel[\"moment\"] = 2] = \"moment\";\n    CallShareChannel[CallShareChannel[\"qq\"] = 3] = \"qq\";\n    CallShareChannel[CallShareChannel[\"qzone\"] = 4] = \"qzone\";\n    CallShareChannel[CallShareChannel[\"weibo\"] = 5] = \"weibo\";\n    CallShareChannel[CallShareChannel[\"copylink\"] = 6] = \"copylink\";\n    CallShareChannel[CallShareChannel[\"message\"] = 7] = \"message\";\n    CallShareChannel[CallShareChannel[\"feeds\"] = 13] = \"feeds\";\n    CallShareChannel[CallShareChannel[\"wechatStatus\"] = 14] = \"wechatStatus\";\n})(CallShareChannel || (CallShareChannel = {}));\n","import { getParameter } from \"@tencent/kg-base\";\nimport { WebContain } from \"@tencent/tme-interface-tme\";\n\nimport { stringSimilarity } from \"string-similarity-js\";\n// 正则表达式匹配标点符号和空白字符\nconst punctuationRegex = /[\\s.,\\/#!$%\\^&\\*;:{}=\\-_`~()?、。，？！；：“”‘’（）《》【】「」『』〈〉…—]+/;\n\nexport function isHalfScreen() {\n  return !!getParameter(\"_hwv\");\n}\n\nexport const gotoPayOrder = async () => {\n  const scheme = `qmweiban://weiban.com/page/h5?url=${encodeURIComponent(\n    \"https://static.weiban.qq.com/html/payOrder/index.html?_hwv=1&_hwvbg=transparent&_hwvhg=100&_wv=5#/list\",\n  )}`;\n  return await WebContain.handleScheme({\n    scheme,\n  });\n};\n\nexport const getRtfConfig = () => {\n  return 0.7;\n};\n\nexport const cutsplitContent2 = ({\n  content,\n  upperLimit = 50,\n  lowerLimit = 20,\n}: {\n  content: string;\n  upperLimit?: number;\n  lowerLimit?: number;\n}) => {\n  const rtf = getRtfConfig();\n  const getDynamicUpperLimit = (prevSize?: number) => {\n    return upperLimit;\n    // 动态上限\n    // if (!prevSize) {\n    //   return upperLimit;\n    // }\n    // return Math.min(upperLimit, Math.round(prevSize / rtf));\n  };\n  const chineseRegex = /[\\u4e00-\\u9fa5]+/g; // 中文\n  const englishRegex = /[a-zA-Z]+/g; // 英文\n  let curRoundCount = 0; // 当前子句字数\n  const results = [];\n  let curRoundStr = \"\"; // 当前子句\n  let startIndex = 0;\n  let dynamicUpperLimit = getDynamicUpperLimit(0);\n  for (; startIndex < content.length; ) {\n    const c = content[startIndex];\n    if (curRoundCount >= dynamicUpperLimit) {\n      results.push(curRoundStr);\n      dynamicUpperLimit = getDynamicUpperLimit(curRoundCount);\n      console.log(`第${results.length}个文本动态上线上限：${dynamicUpperLimit}, curRoundCount:${curRoundCount}`);\n      curRoundCount = 0;\n      curRoundStr = \"\";\n    }\n    if (curRoundCount < dynamicUpperLimit) {\n      if (punctuationRegex.test(c)) {\n        // 标点符号\n        curRoundStr = `${curRoundStr}${c}`;\n        if (curRoundCount >= lowerLimit) {\n          // 超过最小字数\n          results.push(curRoundStr);\n          dynamicUpperLimit = getDynamicUpperLimit(curRoundCount);\n          console.log(`第${results.length}个文本动态上线上限：${dynamicUpperLimit}, curRoundCount:${curRoundCount}`);\n          curRoundCount = 0;\n          curRoundStr = \"\";\n        } else {\n          startIndex++;\n          continue;\n        }\n      } else {\n        if (englishRegex.test(c)) {\n          let engWord = c;\n          startIndex++;\n          while (content[startIndex] && englishRegex.test(content[startIndex])) {\n            // 连续的英文字母放一块作为一个词\n            engWord += content[startIndex];\n            startIndex++;\n          }\n          curRoundStr = `${curRoundStr}${engWord}`;\n          curRoundCount++;\n          continue;\n        } else {\n          curRoundStr = `${curRoundStr}${c}`;\n          curRoundCount++;\n        }\n      }\n    }\n    startIndex++;\n  }\n  if (curRoundStr) {\n    results.push(curRoundStr);\n  }\n  console.log(\"results:\", results, \" startIndex:\", startIndex);\n  return results;\n};\n\nexport const cutsplitContent = ({\n  content,\n  upperLimit = 70,\n  lowerLimit = 5,\n}: {\n  content: string;\n  upperLimit?: number;\n  lowerLimit?: number;\n}) => {\n  const rtf = getRtfConfig();\n  const getDynamicUpperLimit = (prevSize?: number) => {\n    return upperLimit;\n    // // 动态上限\n    // if (!prevSize) {\n    //   return upperLimit;\n    // }\n    // return Math.min(upperLimit, Math.round(prevSize / rtf));\n  };\n  const punctuationRegex = /[!?。？！]+/; // （）《》【】「」『』〈〉\n  const specialPuncRegex = /”/;\n  const secondLevelPunctuationRegex = /[\\s,;，；]+/; // 用于超长回溯\n  const thirdLevelPunctuationRegex = /[.、：:-]+/; // 用于超长回溯\n  const chineseRegex = /[\\u4e00-\\u9fa5]+/; // 中文\n  const englishRegex = /[a-zA-Z]+/; // 英文\n  let curRoundCount = 0; // 当前子句字数\n  const results = [];\n  let curRoundStr = \"\"; // 当前子句\n  let startIndex = 0;\n  let sentenceStartIndex = 0; // 当前句子位于全文本的位置\n  let lastBackwardIndex = 0; // 用于超长文本回溯到二级标点\n  let lastThirdLevelBackwardIndex = 0; // 用于回溯到三级标点\n  let dynamicUpperLimit = getDynamicUpperLimit(0);\n  let hardCutTime = 0; // 硬切统计\n  for (; startIndex < content.length; ) {\n    let c = content[startIndex];\n    if (curRoundCount >= dynamicUpperLimit) {\n      // 超过上限硬切\n      if (lastBackwardIndex >= lowerLimit) {\n        console.log(\"开始回溯 ==== lastBackwardIndex: \", lastBackwardIndex, \" sentenceStartIndex:\", sentenceStartIndex);\n        // 开始回溯\n        startIndex = lastBackwardIndex + 1;\n        curRoundStr = curRoundStr.substring(0, lastBackwardIndex - sentenceStartIndex + 1);\n        console.log(\"回溯二级 curRoundStr:\", curRoundStr);\n        curRoundCount = lastBackwardIndex - sentenceStartIndex + 1;\n        c = content[startIndex];\n      } else if (lastThirdLevelBackwardIndex >= lowerLimit) {\n        // 开始回溯三级标点\n        startIndex = lastThirdLevelBackwardIndex + 1;\n        curRoundStr = curRoundStr.substring(0, lastThirdLevelBackwardIndex - sentenceStartIndex + 1);\n        console.log(\"回溯三级 curRoundStr:\", curRoundStr);\n        curRoundCount = lastThirdLevelBackwardIndex - sentenceStartIndex + 1;\n        c = content[startIndex];\n      }\n      results.push(curRoundStr);\n      dynamicUpperLimit = getDynamicUpperLimit(curRoundCount);\n      console.log(`第${results.length}个文本动态上限：${dynamicUpperLimit}, curRoundCount:${curRoundCount}`);\n      curRoundCount = 0;\n      curRoundStr = \"\";\n      lastBackwardIndex = 0;\n      lastThirdLevelBackwardIndex = 0;\n      sentenceStartIndex = startIndex;\n    }\n    if (curRoundCount < dynamicUpperLimit) {\n      if (punctuationRegex.test(c)) {\n        // 大标点\n        // 标点符号\n        curRoundStr = `${curRoundStr}${c}`;\n        if (curRoundCount >= lowerLimit) {\n          // 超过最小字数\n          // 匹配引号后半部分\n          const tryNextIndex = startIndex + 1;\n          const newC = content[tryNextIndex];\n          if (specialPuncRegex.test(newC)) {\n            curRoundStr = `${curRoundStr}${newC}`;\n            startIndex = tryNextIndex;\n          }\n          // 匹配引号有半部分结束\n          results.push(curRoundStr);\n          dynamicUpperLimit = getDynamicUpperLimit(curRoundCount);\n          console.log(`第${results.length}个文本动态上线上限：${dynamicUpperLimit}, curRoundCount:${curRoundCount}`);\n          curRoundCount = 0;\n          curRoundStr = \"\";\n          sentenceStartIndex = startIndex + 1; // 下一个分段的开始下标\n        } else {\n          startIndex++;\n          continue;\n        }\n      } else if (secondLevelPunctuationRegex.test(c)) {\n        // 小标点\n        lastBackwardIndex = startIndex;\n        curRoundStr = `${curRoundStr}${c}`;\n        curRoundCount++;\n        console.log(\"==== lastBackwardIndex: \", lastBackwardIndex);\n      } else if (thirdLevelPunctuationRegex.test(c)) {\n        // 三级标点\n        lastThirdLevelBackwardIndex = startIndex;\n        curRoundStr = `${curRoundStr}${c}`;\n        curRoundCount++;\n        console.log(\"==== lastThirdLevelBackwardIndex: \", lastThirdLevelBackwardIndex);\n      } else {\n        if (englishRegex.test(c)) {\n          let engWord = c;\n          startIndex++;\n          console.log(\n            \"!!!! content[startIndex]:\",\n            content[startIndex],\n            content[startIndex].length,\n            \" test result:\",\n            englishRegex.test(`${content[startIndex]}`),\n          );\n          while (content[startIndex] && englishRegex.test(content[startIndex])) {\n            // 连续的英文字母放一块作为一个词\n            engWord += content[startIndex];\n            startIndex++;\n          }\n          curRoundStr = `${curRoundStr}${engWord}`;\n          curRoundCount++;\n          console.log(\"englist word:\", engWord, \" curRoundCount:\", curRoundCount);\n          continue;\n        } else {\n          curRoundStr = `${curRoundStr}${c}`;\n          curRoundCount++;\n        }\n      }\n    }\n    startIndex++;\n  }\n  if (curRoundStr) {\n    results.push(curRoundStr);\n  }\n  console.log(\"results:\", results, \" startIndex:\", startIndex);\n  return results;\n};\n\nexport const getMMSS = (duration: number) => {\n  let mm = duration ? Math.floor(duration / 60) : 0;\n  let ss = duration ? duration % 60 : 0;\n  const mmStr = mm >= 10 ? `${mm}` : `0${mm}`;\n  const ssStr = ss >= 10 ? `${ss}` : `0${ss}`;\n  return `${mmStr}:${ssStr}`;\n};\n\nexport function downloadFile(fileUrl: string) {\n  const urlSplitParts = fileUrl?.split(\".\");\n  const suffix = urlSplitParts[urlSplitParts.length - 1];\n  console.log(\"downloadFile suffix:\", suffix);\n  fetch(fileUrl)\n    .then((response) => response.blob())\n    .then((blob) => {\n      const url = window.URL.createObjectURL(blob);\n      const a = document.createElement(\"a\");\n      a.style.display = \"none\";\n      a.href = url;\n      a.download = `audiofile_${Date.now()}.${suffix}`;\n      document.body.appendChild(a);\n      a.click();\n      window.URL.revokeObjectURL(url);\n      document.body.removeChild(a);\n    })\n    .catch((e) => console.error(e));\n}\n\nexport const timing = (currentDuration: number, total: number) => {\n  setTimeout(() => {\n    console.log(\"===== currentDuration:\", currentDuration, total);\n    if (currentDuration < total) {\n      timing((currentDuration || 0) + 1, total);\n    }\n  }, 1000);\n};\n\nconst getContentWithoutPunc = (text: string) => {\n  let resultStr = \"\";\n  // eslint-disable-next-line @typescript-eslint/prefer-for-of\n  for (let i = 0; i < text.length; i++) {\n    if (punctuationRegex.test(text[i])) {\n      continue;\n    }\n    resultStr = `${resultStr}${text[i]}`;\n  }\n  return resultStr;\n};\n\n/**\n * asr 检测\n * @param originText\n * @param asrText\n * @returns\n */\nexport const asrCheck = (originText: string, asrText: string) => {\n  const originTextRes = getContentWithoutPunc(originText);\n  const asrTextRes = getContentWithoutPunc(asrText);\n  const result = originTextRes === asrTextRes;\n  if (!result) {\n    console.log(\"原文本：\", originTextRes, \"; 识别文本：\", asrTextRes);\n  }\n  return result;\n};\n\n/**\n * asr 检测\n * @param originText\n * @param asrText\n * @returns\n */\nexport const asrCheckSimilar = (originText: string, asrText: string) => {\n  const originTextRes = getContentWithoutPunc(originText);\n  const asrTextRes = getContentWithoutPunc(asrText);\n  const result = stringSimilarity(originTextRes, asrTextRes);\n  console.log(\"!!!!!! asrCheckSimilar:\", result);\n  return result > 0.8;\n};\n\nexport function deleteCookie(name: string) {\n  const cookie = name + \"=''; domain=.qq.com; expires=Thu, 01 Jan 1970 00:00:01 GMT; path=/\";\n  // console.log(\"!!!cookie del:\", cookie);\n  // 设置cookie过期时间为一个过去的时间\n  document.cookie = cookie;\n}\n\nexport const setCookie = (name: string, value: string) => {\n  const cookie = `${name}=${value}; domain=.qq.com; path=/`;\n  document.cookie = cookie;\n};\n\nexport const logout = () => {\n  [\"tts_authst\", \"tts_euin\", \"tts_tmeLoginType\", \"tts_uin\"].forEach((item) => {\n    deleteCookie(item);\n  });\n};\n","'use strict';\n\n/**\n * \n * @param {array} node \n * @param {any} options \n * @returns \n */\nfunction prettify(node, options){\n  return compress( node, options);\n}\n\n/**\n * \n * @param {array} arr \n * @param {object} options \n * @param {string} jPath \n * @returns object\n */\nfunction compress(arr, options, jPath){\n  let text;\n  const compressedObj = {};\n  for (let i = 0; i < arr.length; i++) {\n    const tagObj = arr[i];\n    const property = propName(tagObj);\n    let newJpath = \"\";\n    if(jPath === undefined) newJpath = property;\n    else newJpath = jPath + \".\" + property;\n\n    if(property === options.textNodeName){\n      if(text === undefined) text = tagObj[property];\n      else text += \"\" + tagObj[property];\n    }else if(property === undefined){\n      continue;\n    }else if(tagObj[property]){\n      \n      let val = compress(tagObj[property], options, newJpath);\n      const isLeaf = isLeafTag(val, options);\n\n      if(tagObj[\":@\"]){\n        assignAttributes( val, tagObj[\":@\"], newJpath, options);\n      }else if(Object.keys(val).length === 1 && val[options.textNodeName] !== undefined && !options.alwaysCreateTextNode){\n        val = val[options.textNodeName];\n      }else if(Object.keys(val).length === 0){\n        if(options.alwaysCreateTextNode) val[options.textNodeName] = \"\";\n        else val = \"\";\n      }\n\n      if(compressedObj[property] !== undefined && compressedObj.hasOwnProperty(property)) {\n        if(!Array.isArray(compressedObj[property])) {\n            compressedObj[property] = [ compressedObj[property] ];\n        }\n        compressedObj[property].push(val);\n      }else{\n        //TODO: if a node is not an array, then check if it should be an array\n        //also determine if it is a leaf node\n        if (options.isArray(property, newJpath, isLeaf )) {\n          compressedObj[property] = [val];\n        }else{\n          compressedObj[property] = val;\n        }\n      }\n    }\n    \n  }\n  // if(text && text.length > 0) compressedObj[options.textNodeName] = text;\n  if(typeof text === \"string\"){\n    if(text.length > 0) compressedObj[options.textNodeName] = text;\n  }else if(text !== undefined) compressedObj[options.textNodeName] = text;\n  return compressedObj;\n}\n\nfunction propName(obj){\n  const keys = Object.keys(obj);\n  for (let i = 0; i < keys.length; i++) {\n    const key = keys[i];\n    if(key !== \":@\") return key;\n  }\n}\n\nfunction assignAttributes(obj, attrMap, jpath, options){\n  if (attrMap) {\n    const keys = Object.keys(attrMap);\n    const len = keys.length; //don't make it inline\n    for (let i = 0; i < len; i++) {\n      const atrrName = keys[i];\n      if (options.isArray(atrrName, jpath + \".\" + atrrName, true, true)) {\n        obj[atrrName] = [ attrMap[atrrName] ];\n      } else {\n        obj[atrrName] = attrMap[atrrName];\n      }\n    }\n  }\n}\n\nfunction isLeafTag(obj, options){\n  const { textNodeName } = options;\n  const propCount = Object.keys(obj).length;\n  \n  if (propCount === 0) {\n    return true;\n  }\n\n  if (\n    propCount === 1 &&\n    (obj[textNodeName] || typeof obj[textNodeName] === \"boolean\" || obj[textNodeName] === 0)\n  ) {\n    return true;\n  }\n\n  return false;\n}\nexports.prettify = prettify;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n  module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n  module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","/* eslint-disable no-undefined */\n\nimport throttle from './throttle.js';\n\n/**\n * Debounce execution of a function. Debouncing, unlike throttling,\n * guarantees that a function is only executed a single time, either at the\n * very beginning of a series of calls, or at the very end.\n *\n * @param {number} delay -               A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher) are most useful.\n * @param {Function} callback -          A function to be executed after delay milliseconds. The `this` context and all arguments are passed through, as-is,\n *                                        to `callback` when the debounced-function is executed.\n * @param {object} [options] -           An object to configure options.\n * @param {boolean} [options.atBegin] -  Optional, defaults to false. If atBegin is false or unspecified, callback will only be executed `delay` milliseconds\n *                                        after the last debounced-function call. If atBegin is true, callback will be executed only at the first debounced-function call.\n *                                        (After the throttled-function has not been called for `delay` milliseconds, the internal counter is reset).\n *\n * @returns {Function} A new, debounced function.\n */\nexport default function (delay, callback, options) {\n\tconst { atBegin = false } = options || {};\n\treturn throttle(delay, callback, { debounceMode: atBegin !== false });\n}\n","/* eslint-disable no-undefined,no-param-reassign,no-shadow */\n\n/**\n * Throttle execution of a function. Especially useful for rate limiting\n * execution of handlers on events like resize and scroll.\n *\n * @param {number} delay -                  A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher)\n *                                            are most useful.\n * @param {Function} callback -               A function to be executed after delay milliseconds. The `this` context and all arguments are passed through,\n *                                            as-is, to `callback` when the throttled-function is executed.\n * @param {object} [options] -              An object to configure options.\n * @param {boolean} [options.noTrailing] -   Optional, defaults to false. If noTrailing is true, callback will only execute every `delay` milliseconds\n *                                            while the throttled-function is being called. If noTrailing is false or unspecified, callback will be executed\n *                                            one final time after the last throttled-function call. (After the throttled-function has not been called for\n *                                            `delay` milliseconds, the internal counter is reset).\n * @param {boolean} [options.noLeading] -   Optional, defaults to false. If noLeading is false, the first throttled-function call will execute callback\n *                                            immediately. If noLeading is true, the first the callback execution will be skipped. It should be noted that\n *                                            callback will never executed if both noLeading = true and noTrailing = true.\n * @param {boolean} [options.debounceMode] - If `debounceMode` is true (at begin), schedule `clear` to execute after `delay` ms. If `debounceMode` is\n *                                            false (at end), schedule `callback` to execute after `delay` ms.\n *\n * @returns {Function} A new, throttled, function.\n */\nexport default function (delay, callback, options) {\n\tconst {\n\t\tnoTrailing = false,\n\t\tnoLeading = false,\n\t\tdebounceMode = undefined\n\t} = options || {};\n\t/*\n\t * After wrapper has stopped being called, this timeout ensures that\n\t * `callback` is executed at the proper times in `throttle` and `end`\n\t * debounce modes.\n\t */\n\tlet timeoutID;\n\tlet cancelled = false;\n\n\t// Keep track of the last time `callback` was executed.\n\tlet lastExec = 0;\n\n\t// Function to clear existing timeout\n\tfunction clearExistingTimeout() {\n\t\tif (timeoutID) {\n\t\t\tclearTimeout(timeoutID);\n\t\t}\n\t}\n\n\t// Function to cancel next exec\n\tfunction cancel(options) {\n\t\tconst { upcomingOnly = false } = options || {};\n\t\tclearExistingTimeout();\n\t\tcancelled = !upcomingOnly;\n\t}\n\n\t/*\n\t * The `wrapper` function encapsulates all of the throttling / debouncing\n\t * functionality and when executed will limit the rate at which `callback`\n\t * is executed.\n\t */\n\tfunction wrapper(...arguments_) {\n\t\tlet self = this;\n\t\tlet elapsed = Date.now() - lastExec;\n\n\t\tif (cancelled) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Execute `callback` and update the `lastExec` timestamp.\n\t\tfunction exec() {\n\t\t\tlastExec = Date.now();\n\t\t\tcallback.apply(self, arguments_);\n\t\t}\n\n\t\t/*\n\t\t * If `debounceMode` is true (at begin) this is used to clear the flag\n\t\t * to allow future `callback` executions.\n\t\t */\n\t\tfunction clear() {\n\t\t\ttimeoutID = undefined;\n\t\t}\n\n\t\tif (!noLeading && debounceMode && !timeoutID) {\n\t\t\t/*\n\t\t\t * Since `wrapper` is being called for the first time and\n\t\t\t * `debounceMode` is true (at begin), execute `callback`\n\t\t\t * and noLeading != true.\n\t\t\t */\n\t\t\texec();\n\t\t}\n\n\t\tclearExistingTimeout();\n\n\t\tif (debounceMode === undefined && elapsed > delay) {\n\t\t\tif (noLeading) {\n\t\t\t\t/*\n\t\t\t\t * In throttle mode with noLeading, if `delay` time has\n\t\t\t\t * been exceeded, update `lastExec` and schedule `callback`\n\t\t\t\t * to execute after `delay` ms.\n\t\t\t\t */\n\t\t\t\tlastExec = Date.now();\n\t\t\t\tif (!noTrailing) {\n\t\t\t\t\ttimeoutID = setTimeout(debounceMode ? clear : exec, delay);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t/*\n\t\t\t\t * In throttle mode without noLeading, if `delay` time has been exceeded, execute\n\t\t\t\t * `callback`.\n\t\t\t\t */\n\t\t\t\texec();\n\t\t\t}\n\t\t} else if (noTrailing !== true) {\n\t\t\t/*\n\t\t\t * In trailing throttle mode, since `delay` time has not been\n\t\t\t * exceeded, schedule `callback` to execute `delay` ms after most\n\t\t\t * recent execution.\n\t\t\t *\n\t\t\t * If `debounceMode` is true (at begin), schedule `clear` to execute\n\t\t\t * after `delay` ms.\n\t\t\t *\n\t\t\t * If `debounceMode` is false (at end), schedule `callback` to\n\t\t\t * execute after `delay` ms.\n\t\t\t */\n\t\t\ttimeoutID = setTimeout(\n\t\t\t\tdebounceMode ? clear : exec,\n\t\t\t\tdebounceMode === undefined ? delay - elapsed : delay\n\t\t\t);\n\t\t}\n\t}\n\n\twrapper.cancel = cancel;\n\n\t// Return the wrapper function.\n\treturn wrapper;\n}\n","export default function _nonIterableRest() {\n  throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n  var i = toPrimitive(t, \"string\");\n  return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n  if (\"object\" != _typeof(t) || !t) return t;\n  var e = t[Symbol.toPrimitive];\n  if (void 0 !== e) {\n    var i = e.call(t, r || \"default\");\n    if (\"object\" != _typeof(i)) return i;\n    throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n  }\n  return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","module.exports = __webpack_public_path__ + \"web/ttsMake/statics/podcast-spectrum-bcbf9800.png\";","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n  module.exports = require('./cjs/react.production.min.js');\n} else {\n  module.exports = require('./cjs/react.development.js');\n}\n","\nvar content = require(\"!!../../../@tencent/universal-build/node_modules/css-loader/dist/cjs.js!./bootstrap.min.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../@tencent/universal-build/node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../@tencent/universal-build/node_modules/css-loader/dist/cjs.js!./bootstrap.min.css\", function() {\n\t\tvar newContent = require(\"!!../../../@tencent/universal-build/node_modules/css-loader/dist/cjs.js!./bootstrap.min.css\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","const EOL = \"\\n\";\n\n/**\n * \n * @param {array} jArray \n * @param {any} options \n * @returns \n */\nfunction toXml(jArray, options) {\n    let indentation = \"\";\n    if (options.format && options.indentBy.length > 0) {\n        indentation = EOL;\n    }\n    return arrToStr(jArray, options, \"\", indentation);\n}\n\nfunction arrToStr(arr, options, jPath, indentation) {\n    let xmlStr = \"\";\n    let isPreviousElementTag = false;\n\n    for (let i = 0; i < arr.length; i++) {\n        const tagObj = arr[i];\n        const tagName = propName(tagObj);\n        if(tagName === undefined) continue;\n\n        let newJPath = \"\";\n        if (jPath.length === 0) newJPath = tagName\n        else newJPath = `${jPath}.${tagName}`;\n\n        if (tagName === options.textNodeName) {\n            let tagText = tagObj[tagName];\n            if (!isStopNode(newJPath, options)) {\n                tagText = options.tagValueProcessor(tagName, tagText);\n                tagText = replaceEntitiesValue(tagText, options);\n            }\n            if (isPreviousElementTag) {\n                xmlStr += indentation;\n            }\n            xmlStr += tagText;\n            isPreviousElementTag = false;\n            continue;\n        } else if (tagName === options.cdataPropName) {\n            if (isPreviousElementTag) {\n                xmlStr += indentation;\n            }\n            xmlStr += `<![CDATA[${tagObj[tagName][0][options.textNodeName]}]]>`;\n            isPreviousElementTag = false;\n            continue;\n        } else if (tagName === options.commentPropName) {\n            xmlStr += indentation + `<!--${tagObj[tagName][0][options.textNodeName]}-->`;\n            isPreviousElementTag = true;\n            continue;\n        } else if (tagName[0] === \"?\") {\n            const attStr = attr_to_str(tagObj[\":@\"], options);\n            const tempInd = tagName === \"?xml\" ? \"\" : indentation;\n            let piTextNodeName = tagObj[tagName][0][options.textNodeName];\n            piTextNodeName = piTextNodeName.length !== 0 ? \" \" + piTextNodeName : \"\"; //remove extra spacing\n            xmlStr += tempInd + `<${tagName}${piTextNodeName}${attStr}?>`;\n            isPreviousElementTag = true;\n            continue;\n        }\n        let newIdentation = indentation;\n        if (newIdentation !== \"\") {\n            newIdentation += options.indentBy;\n        }\n        const attStr = attr_to_str(tagObj[\":@\"], options);\n        const tagStart = indentation + `<${tagName}${attStr}`;\n        const tagValue = arrToStr(tagObj[tagName], options, newJPath, newIdentation);\n        if (options.unpairedTags.indexOf(tagName) !== -1) {\n            if (options.suppressUnpairedNode) xmlStr += tagStart + \">\";\n            else xmlStr += tagStart + \"/>\";\n        } else if ((!tagValue || tagValue.length === 0) && options.suppressEmptyNode) {\n            xmlStr += tagStart + \"/>\";\n        } else if (tagValue && tagValue.endsWith(\">\")) {\n            xmlStr += tagStart + `>${tagValue}${indentation}</${tagName}>`;\n        } else {\n            xmlStr += tagStart + \">\";\n            if (tagValue && indentation !== \"\" && (tagValue.includes(\"/>\") || tagValue.includes(\"</\"))) {\n                xmlStr += indentation + options.indentBy + tagValue + indentation;\n            } else {\n                xmlStr += tagValue;\n            }\n            xmlStr += `</${tagName}>`;\n        }\n        isPreviousElementTag = true;\n    }\n\n    return xmlStr;\n}\n\nfunction propName(obj) {\n    const keys = Object.keys(obj);\n    for (let i = 0; i < keys.length; i++) {\n        const key = keys[i];\n        if(!obj.hasOwnProperty(key)) continue;\n        if (key !== \":@\") return key;\n    }\n}\n\nfunction attr_to_str(attrMap, options) {\n    let attrStr = \"\";\n    if (attrMap && !options.ignoreAttributes) {\n        for (let attr in attrMap) {\n            if(!attrMap.hasOwnProperty(attr)) continue;\n            let attrVal = options.attributeValueProcessor(attr, attrMap[attr]);\n            attrVal = replaceEntitiesValue(attrVal, options);\n            if (attrVal === true && options.suppressBooleanAttributes) {\n                attrStr += ` ${attr.substr(options.attributeNamePrefix.length)}`;\n            } else {\n                attrStr += ` ${attr.substr(options.attributeNamePrefix.length)}=\"${attrVal}\"`;\n            }\n        }\n    }\n    return attrStr;\n}\n\nfunction isStopNode(jPath, options) {\n    jPath = jPath.substr(0, jPath.length - options.textNodeName.length - 1);\n    let tagName = jPath.substr(jPath.lastIndexOf(\".\") + 1);\n    for (let index in options.stopNodes) {\n        if (options.stopNodes[index] === jPath || options.stopNodes[index] === \"*.\" + tagName) return true;\n    }\n    return false;\n}\n\nfunction replaceEntitiesValue(textValue, options) {\n    if (textValue && textValue.length > 0 && options.processEntities) {\n        for (let i = 0; i < options.entities.length; i++) {\n            const entity = options.entities[i];\n            textValue = textValue.replace(entity.regex, entity.val);\n        }\n    }\n    return textValue;\n}\nmodule.exports = toXml;\n","/* eslint-disable no-param-reassign */\nimport { removeCSS, updateCSS } from \"./Dom/dynamicCSS\";\nvar cached;\nfunction measureScrollbarSize(ele) {\n  var randomId = \"rc-scrollbar-measure-\".concat(Math.random().toString(36).substring(7));\n  var measureEle = document.createElement('div');\n  measureEle.id = randomId;\n\n  // Create Style\n  var measureStyle = measureEle.style;\n  measureStyle.position = 'absolute';\n  measureStyle.left = '0';\n  measureStyle.top = '0';\n  measureStyle.width = '100px';\n  measureStyle.height = '100px';\n  measureStyle.overflow = 'scroll';\n\n  // Clone Style if needed\n  var fallbackWidth;\n  var fallbackHeight;\n  if (ele) {\n    var targetStyle = getComputedStyle(ele);\n    measureStyle.scrollbarColor = targetStyle.scrollbarColor;\n    measureStyle.scrollbarWidth = targetStyle.scrollbarWidth;\n\n    // Set Webkit style\n    var webkitScrollbarStyle = getComputedStyle(ele, '::-webkit-scrollbar');\n    var width = parseInt(webkitScrollbarStyle.width, 10);\n    var height = parseInt(webkitScrollbarStyle.height, 10);\n\n    // Try wrap to handle CSP case\n    try {\n      var widthStyle = width ? \"width: \".concat(webkitScrollbarStyle.width, \";\") : '';\n      var heightStyle = height ? \"height: \".concat(webkitScrollbarStyle.height, \";\") : '';\n      updateCSS(\"\\n#\".concat(randomId, \"::-webkit-scrollbar {\\n\").concat(widthStyle, \"\\n\").concat(heightStyle, \"\\n}\"), randomId);\n    } catch (e) {\n      // Can't wrap, just log error\n      console.error(e);\n\n      // Get from style directly\n      fallbackWidth = width;\n      fallbackHeight = height;\n    }\n  }\n  document.body.appendChild(measureEle);\n\n  // Measure. Get fallback style if provided\n  var scrollWidth = ele && fallbackWidth && !isNaN(fallbackWidth) ? fallbackWidth : measureEle.offsetWidth - measureEle.clientWidth;\n  var scrollHeight = ele && fallbackHeight && !isNaN(fallbackHeight) ? fallbackHeight : measureEle.offsetHeight - measureEle.clientHeight;\n\n  // Clean up\n  document.body.removeChild(measureEle);\n  removeCSS(randomId);\n  return {\n    width: scrollWidth,\n    height: scrollHeight\n  };\n}\nexport default function getScrollBarSize(fresh) {\n  if (typeof document === 'undefined') {\n    return 0;\n  }\n  if (fresh || cached === undefined) {\n    cached = measureScrollbarSize();\n  }\n  return cached.width;\n}\nexport function getTargetScrollBarSize(target) {\n  if (typeof document === 'undefined' || !target || !(target instanceof Element)) {\n    return {\n      width: 0,\n      height: 0\n    };\n  }\n  return measureScrollbarSize(target);\n}","exports = module.exports = require(\"../../../@tencent/universal-build/node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \"@charset \\\"UTF-8\\\";/*!\\n * Bootstrap  v5.3.3 (https://getbootstrap.com/)\\n * Copyright 2011-2024 The Bootstrap Authors\\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\\n */:root,[data-bs-theme=light]{--bs-blue:#0d6efd;--bs-indigo:#6610f2;--bs-purple:#6f42c1;--bs-pink:#d63384;--bs-red:#dc3545;--bs-orange:#fd7e14;--bs-yellow:#ffc107;--bs-green:#198754;--bs-teal:#20c997;--bs-cyan:#0dcaf0;--bs-black:#000;--bs-white:#fff;--bs-gray:#6c757d;--bs-gray-dark:#343a40;--bs-gray-100:#f8f9fa;--bs-gray-200:#e9ecef;--bs-gray-300:#dee2e6;--bs-gray-400:#ced4da;--bs-gray-500:#adb5bd;--bs-gray-600:#6c757d;--bs-gray-700:#495057;--bs-gray-800:#343a40;--bs-gray-900:#212529;--bs-primary:#0d6efd;--bs-secondary:#6c757d;--bs-success:#198754;--bs-info:#0dcaf0;--bs-warning:#ffc107;--bs-danger:#dc3545;--bs-light:#f8f9fa;--bs-dark:#212529;--bs-primary-rgb:13,110,253;--bs-secondary-rgb:108,117,125;--bs-success-rgb:25,135,84;--bs-info-rgb:13,202,240;--bs-warning-rgb:255,193,7;--bs-danger-rgb:220,53,69;--bs-light-rgb:248,249,250;--bs-dark-rgb:33,37,41;--bs-primary-text-emphasis:#052c65;--bs-secondary-text-emphasis:#2b2f32;--bs-success-text-emphasis:#0a3622;--bs-info-text-emphasis:#055160;--bs-warning-text-emphasis:#664d03;--bs-danger-text-emphasis:#58151c;--bs-light-text-emphasis:#495057;--bs-dark-text-emphasis:#495057;--bs-primary-bg-subtle:#cfe2ff;--bs-secondary-bg-subtle:#e2e3e5;--bs-success-bg-subtle:#d1e7dd;--bs-info-bg-subtle:#cff4fc;--bs-warning-bg-subtle:#fff3cd;--bs-danger-bg-subtle:#f8d7da;--bs-light-bg-subtle:#fcfcfd;--bs-dark-bg-subtle:#ced4da;--bs-primary-border-subtle:#9ec5fe;--bs-secondary-border-subtle:#c4c8cb;--bs-success-border-subtle:#a3cfbb;--bs-info-border-subtle:#9eeaf9;--bs-warning-border-subtle:#ffe69c;--bs-danger-border-subtle:#f1aeb5;--bs-light-border-subtle:#e9ecef;--bs-dark-border-subtle:#adb5bd;--bs-white-rgb:255,255,255;--bs-black-rgb:0,0,0;--bs-font-sans-serif:system-ui,-apple-system,\\\"Segoe UI\\\",Roboto,\\\"Helvetica Neue\\\",\\\"Noto Sans\\\",\\\"Liberation Sans\\\",Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\",\\\"Segoe UI Symbol\\\",\\\"Noto Color Emoji\\\";--bs-font-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\\\"Liberation Mono\\\",\\\"Courier New\\\",monospace;--bs-gradient:linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));--bs-body-font-family:var(--bs-font-sans-serif);--bs-body-font-size:1rem;--bs-body-font-weight:400;--bs-body-line-height:1.5;--bs-body-color:#212529;--bs-body-color-rgb:33,37,41;--bs-body-bg:#fff;--bs-body-bg-rgb:255,255,255;--bs-emphasis-color:#000;--bs-emphasis-color-rgb:0,0,0;--bs-secondary-color:rgba(33, 37, 41, 0.75);--bs-secondary-color-rgb:33,37,41;--bs-secondary-bg:#e9ecef;--bs-secondary-bg-rgb:233,236,239;--bs-tertiary-color:rgba(33, 37, 41, 0.5);--bs-tertiary-color-rgb:33,37,41;--bs-tertiary-bg:#f8f9fa;--bs-tertiary-bg-rgb:248,249,250;--bs-heading-color:inherit;--bs-link-color:#0d6efd;--bs-link-color-rgb:13,110,253;--bs-link-decoration:underline;--bs-link-hover-color:#0a58ca;--bs-link-hover-color-rgb:10,88,202;--bs-code-color:#d63384;--bs-highlight-color:#212529;--bs-highlight-bg:#fff3cd;--bs-border-width:1px;--bs-border-style:solid;--bs-border-color:#dee2e6;--bs-border-color-translucent:rgba(0, 0, 0, 0.175);--bs-border-radius:0.375rem;--bs-border-radius-sm:0.25rem;--bs-border-radius-lg:0.5rem;--bs-border-radius-xl:1rem;--bs-border-radius-xxl:2rem;--bs-border-radius-2xl:var(--bs-border-radius-xxl);--bs-border-radius-pill:50rem;--bs-box-shadow:0 0.5rem 1rem rgba(0, 0, 0, 0.15);--bs-box-shadow-sm:0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);--bs-box-shadow-lg:0 1rem 3rem rgba(0, 0, 0, 0.175);--bs-box-shadow-inset:inset 0 1px 2px rgba(0, 0, 0, 0.075);--bs-focus-ring-width:0.25rem;--bs-focus-ring-opacity:0.25;--bs-focus-ring-color:rgba(13, 110, 253, 0.25);--bs-form-valid-color:#198754;--bs-form-valid-border-color:#198754;--bs-form-invalid-color:#dc3545;--bs-form-invalid-border-color:#dc3545}[data-bs-theme=dark]{color-scheme:dark;--bs-body-color:#dee2e6;--bs-body-color-rgb:222,226,230;--bs-body-bg:#212529;--bs-body-bg-rgb:33,37,41;--bs-emphasis-color:#fff;--bs-emphasis-color-rgb:255,255,255;--bs-secondary-color:rgba(222, 226, 230, 0.75);--bs-secondary-color-rgb:222,226,230;--bs-secondary-bg:#343a40;--bs-secondary-bg-rgb:52,58,64;--bs-tertiary-color:rgba(222, 226, 230, 0.5);--bs-tertiary-color-rgb:222,226,230;--bs-tertiary-bg:#2b3035;--bs-tertiary-bg-rgb:43,48,53;--bs-primary-text-emphasis:#6ea8fe;--bs-secondary-text-emphasis:#a7acb1;--bs-success-text-emphasis:#75b798;--bs-info-text-emphasis:#6edff6;--bs-warning-text-emphasis:#ffda6a;--bs-danger-text-emphasis:#ea868f;--bs-light-text-emphasis:#f8f9fa;--bs-dark-text-emphasis:#dee2e6;--bs-primary-bg-subtle:#031633;--bs-secondary-bg-subtle:#161719;--bs-success-bg-subtle:#051b11;--bs-info-bg-subtle:#032830;--bs-warning-bg-subtle:#332701;--bs-danger-bg-subtle:#2c0b0e;--bs-light-bg-subtle:#343a40;--bs-dark-bg-subtle:#1a1d20;--bs-primary-border-subtle:#084298;--bs-secondary-border-subtle:#41464b;--bs-success-border-subtle:#0f5132;--bs-info-border-subtle:#087990;--bs-warning-border-subtle:#997404;--bs-danger-border-subtle:#842029;--bs-light-border-subtle:#495057;--bs-dark-border-subtle:#343a40;--bs-heading-color:inherit;--bs-link-color:#6ea8fe;--bs-link-hover-color:#8bb9fe;--bs-link-color-rgb:110,168,254;--bs-link-hover-color-rgb:139,185,254;--bs-code-color:#e685b5;--bs-highlight-color:#dee2e6;--bs-highlight-bg:#664d03;--bs-border-color:#495057;--bs-border-color-translucent:rgba(255, 255, 255, 0.15);--bs-form-valid-color:#75b798;--bs-form-valid-border-color:#75b798;--bs-form-invalid-color:#ea868f;--bs-form-invalid-border-color:#ea868f}*,::after,::before{box-sizing:border-box}@media (prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:var(--bs-body-font-family);font-size:var(--bs-body-font-size);font-weight:var(--bs-body-font-weight);line-height:var(--bs-body-line-height);color:var(--bs-body-color);text-align:var(--bs-body-text-align);background-color:var(--bs-body-bg);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}hr{margin:1rem 0;color:inherit;border:0;border-top:var(--bs-border-width) solid;opacity:.25}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2;color:var(--bs-heading-color)}.h1,h1{font-size:calc(1.375rem + 1.5vw)}@media (min-width:1200px){.h1,h1{font-size:2.5rem}}.h2,h2{font-size:calc(1.325rem + .9vw)}@media (min-width:1200px){.h2,h2{font-size:2rem}}.h3,h3{font-size:calc(1.3rem + .6vw)}@media (min-width:1200px){.h3,h3{font-size:1.75rem}}.h4,h4{font-size:calc(1.275rem + .3vw)}@media (min-width:1200px){.h4,h4{font-size:1.5rem}}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}.small,small{font-size:.875em}.mark,mark{padding:.1875em;color:var(--bs-highlight-color);background-color:var(--bs-highlight-bg)}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:rgba(var(--bs-link-color-rgb),var(--bs-link-opacity,1));text-decoration:underline}a:hover{--bs-link-color-rgb:var(--bs-link-hover-color-rgb)}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:var(--bs-font-monospace);font-size:1em}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:.875em}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:.875em;color:var(--bs-code-color);word-wrap:break-word}a>code{color:inherit}kbd{padding:.1875rem .375rem;font-size:.875em;color:var(--bs-body-bg);background-color:var(--bs-body-color);border-radius:.25rem}kbd kbd{padding:0;font-size:1em}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:var(--bs-secondary-color);text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}tbody,td,tfoot,th,thead,tr{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator{display:none!important}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + .3vw);line-height:inherit}@media (min-width:1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-text,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}::file-selector-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none!important}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:calc(1.625rem + 4.5vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-1{font-size:5rem}}.display-2{font-size:calc(1.575rem + 3.9vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-2{font-size:4.5rem}}.display-3{font-size:calc(1.525rem + 3.3vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-3{font-size:4rem}}.display-4{font-size:calc(1.475rem + 2.7vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-4{font-size:3.5rem}}.display-5{font-size:calc(1.425rem + 2.1vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-5{font-size:3rem}}.display-6{font-size:calc(1.375rem + 1.5vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-6{font-size:2.5rem}}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:.875em;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote>:last-child{margin-bottom:0}.blockquote-footer{margin-top:-1rem;margin-bottom:1rem;font-size:.875em;color:#6c757d}.blockquote-footer::before{content:\\\"— \\\"}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:var(--bs-body-bg);border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:.875em;color:var(--bs-secondary-color)}.container,.container-fluid,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{--bs-gutter-x:1.5rem;--bs-gutter-y:0;width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}@media (min-width:1400px){.container,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{max-width:1320px}}:root{--bs-breakpoint-xs:0;--bs-breakpoint-sm:576px;--bs-breakpoint-md:768px;--bs-breakpoint-lg:992px;--bs-breakpoint-xl:1200px;--bs-breakpoint-xxl:1400px}.row{--bs-gutter-x:1.5rem;--bs-gutter-y:0;display:flex;flex-wrap:wrap;margin-top:calc(-1 * var(--bs-gutter-y));margin-right:calc(-.5 * var(--bs-gutter-x));margin-left:calc(-.5 * var(--bs-gutter-x))}.row>*{flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-top:var(--bs-gutter-y)}.col{flex:1 0 0%}.row-cols-auto>*{flex:0 0 auto;width:auto}.row-cols-1>*{flex:0 0 auto;width:100%}.row-cols-2>*{flex:0 0 auto;width:50%}.row-cols-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-4>*{flex:0 0 auto;width:25%}.row-cols-5>*{flex:0 0 auto;width:20%}.row-cols-6>*{flex:0 0 auto;width:16.66666667%}.col-auto{flex:0 0 auto;width:auto}.col-1{flex:0 0 auto;width:8.33333333%}.col-2{flex:0 0 auto;width:16.66666667%}.col-3{flex:0 0 auto;width:25%}.col-4{flex:0 0 auto;width:33.33333333%}.col-5{flex:0 0 auto;width:41.66666667%}.col-6{flex:0 0 auto;width:50%}.col-7{flex:0 0 auto;width:58.33333333%}.col-8{flex:0 0 auto;width:66.66666667%}.col-9{flex:0 0 auto;width:75%}.col-10{flex:0 0 auto;width:83.33333333%}.col-11{flex:0 0 auto;width:91.66666667%}.col-12{flex:0 0 auto;width:100%}.offset-1{margin-left:8.33333333%}.offset-2{margin-left:16.66666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333333%}.offset-5{margin-left:41.66666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333333%}.offset-8{margin-left:66.66666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333333%}.offset-11{margin-left:91.66666667%}.g-0,.gx-0{--bs-gutter-x:0}.g-0,.gy-0{--bs-gutter-y:0}.g-1,.gx-1{--bs-gutter-x:0.25rem}.g-1,.gy-1{--bs-gutter-y:0.25rem}.g-2,.gx-2{--bs-gutter-x:0.5rem}.g-2,.gy-2{--bs-gutter-y:0.5rem}.g-3,.gx-3{--bs-gutter-x:1rem}.g-3,.gy-3{--bs-gutter-y:1rem}.g-4,.gx-4{--bs-gutter-x:1.5rem}.g-4,.gy-4{--bs-gutter-y:1.5rem}.g-5,.gx-5{--bs-gutter-x:3rem}.g-5,.gy-5{--bs-gutter-y:3rem}@media (min-width:576px){.col-sm{flex:1 0 0%}.row-cols-sm-auto>*{flex:0 0 auto;width:auto}.row-cols-sm-1>*{flex:0 0 auto;width:100%}.row-cols-sm-2>*{flex:0 0 auto;width:50%}.row-cols-sm-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-sm-4>*{flex:0 0 auto;width:25%}.row-cols-sm-5>*{flex:0 0 auto;width:20%}.row-cols-sm-6>*{flex:0 0 auto;width:16.66666667%}.col-sm-auto{flex:0 0 auto;width:auto}.col-sm-1{flex:0 0 auto;width:8.33333333%}.col-sm-2{flex:0 0 auto;width:16.66666667%}.col-sm-3{flex:0 0 auto;width:25%}.col-sm-4{flex:0 0 auto;width:33.33333333%}.col-sm-5{flex:0 0 auto;width:41.66666667%}.col-sm-6{flex:0 0 auto;width:50%}.col-sm-7{flex:0 0 auto;width:58.33333333%}.col-sm-8{flex:0 0 auto;width:66.66666667%}.col-sm-9{flex:0 0 auto;width:75%}.col-sm-10{flex:0 0 auto;width:83.33333333%}.col-sm-11{flex:0 0 auto;width:91.66666667%}.col-sm-12{flex:0 0 auto;width:100%}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333333%}.offset-sm-2{margin-left:16.66666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333333%}.offset-sm-5{margin-left:41.66666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333333%}.offset-sm-8{margin-left:66.66666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333333%}.offset-sm-11{margin-left:91.66666667%}.g-sm-0,.gx-sm-0{--bs-gutter-x:0}.g-sm-0,.gy-sm-0{--bs-gutter-y:0}.g-sm-1,.gx-sm-1{--bs-gutter-x:0.25rem}.g-sm-1,.gy-sm-1{--bs-gutter-y:0.25rem}.g-sm-2,.gx-sm-2{--bs-gutter-x:0.5rem}.g-sm-2,.gy-sm-2{--bs-gutter-y:0.5rem}.g-sm-3,.gx-sm-3{--bs-gutter-x:1rem}.g-sm-3,.gy-sm-3{--bs-gutter-y:1rem}.g-sm-4,.gx-sm-4{--bs-gutter-x:1.5rem}.g-sm-4,.gy-sm-4{--bs-gutter-y:1.5rem}.g-sm-5,.gx-sm-5{--bs-gutter-x:3rem}.g-sm-5,.gy-sm-5{--bs-gutter-y:3rem}}@media (min-width:768px){.col-md{flex:1 0 0%}.row-cols-md-auto>*{flex:0 0 auto;width:auto}.row-cols-md-1>*{flex:0 0 auto;width:100%}.row-cols-md-2>*{flex:0 0 auto;width:50%}.row-cols-md-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-md-4>*{flex:0 0 auto;width:25%}.row-cols-md-5>*{flex:0 0 auto;width:20%}.row-cols-md-6>*{flex:0 0 auto;width:16.66666667%}.col-md-auto{flex:0 0 auto;width:auto}.col-md-1{flex:0 0 auto;width:8.33333333%}.col-md-2{flex:0 0 auto;width:16.66666667%}.col-md-3{flex:0 0 auto;width:25%}.col-md-4{flex:0 0 auto;width:33.33333333%}.col-md-5{flex:0 0 auto;width:41.66666667%}.col-md-6{flex:0 0 auto;width:50%}.col-md-7{flex:0 0 auto;width:58.33333333%}.col-md-8{flex:0 0 auto;width:66.66666667%}.col-md-9{flex:0 0 auto;width:75%}.col-md-10{flex:0 0 auto;width:83.33333333%}.col-md-11{flex:0 0 auto;width:91.66666667%}.col-md-12{flex:0 0 auto;width:100%}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333333%}.offset-md-2{margin-left:16.66666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333333%}.offset-md-5{margin-left:41.66666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333333%}.offset-md-8{margin-left:66.66666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333333%}.offset-md-11{margin-left:91.66666667%}.g-md-0,.gx-md-0{--bs-gutter-x:0}.g-md-0,.gy-md-0{--bs-gutter-y:0}.g-md-1,.gx-md-1{--bs-gutter-x:0.25rem}.g-md-1,.gy-md-1{--bs-gutter-y:0.25rem}.g-md-2,.gx-md-2{--bs-gutter-x:0.5rem}.g-md-2,.gy-md-2{--bs-gutter-y:0.5rem}.g-md-3,.gx-md-3{--bs-gutter-x:1rem}.g-md-3,.gy-md-3{--bs-gutter-y:1rem}.g-md-4,.gx-md-4{--bs-gutter-x:1.5rem}.g-md-4,.gy-md-4{--bs-gutter-y:1.5rem}.g-md-5,.gx-md-5{--bs-gutter-x:3rem}.g-md-5,.gy-md-5{--bs-gutter-y:3rem}}@media (min-width:992px){.col-lg{flex:1 0 0%}.row-cols-lg-auto>*{flex:0 0 auto;width:auto}.row-cols-lg-1>*{flex:0 0 auto;width:100%}.row-cols-lg-2>*{flex:0 0 auto;width:50%}.row-cols-lg-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-lg-4>*{flex:0 0 auto;width:25%}.row-cols-lg-5>*{flex:0 0 auto;width:20%}.row-cols-lg-6>*{flex:0 0 auto;width:16.66666667%}.col-lg-auto{flex:0 0 auto;width:auto}.col-lg-1{flex:0 0 auto;width:8.33333333%}.col-lg-2{flex:0 0 auto;width:16.66666667%}.col-lg-3{flex:0 0 auto;width:25%}.col-lg-4{flex:0 0 auto;width:33.33333333%}.col-lg-5{flex:0 0 auto;width:41.66666667%}.col-lg-6{flex:0 0 auto;width:50%}.col-lg-7{flex:0 0 auto;width:58.33333333%}.col-lg-8{flex:0 0 auto;width:66.66666667%}.col-lg-9{flex:0 0 auto;width:75%}.col-lg-10{flex:0 0 auto;width:83.33333333%}.col-lg-11{flex:0 0 auto;width:91.66666667%}.col-lg-12{flex:0 0 auto;width:100%}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333333%}.offset-lg-2{margin-left:16.66666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333333%}.offset-lg-5{margin-left:41.66666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333333%}.offset-lg-8{margin-left:66.66666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333333%}.offset-lg-11{margin-left:91.66666667%}.g-lg-0,.gx-lg-0{--bs-gutter-x:0}.g-lg-0,.gy-lg-0{--bs-gutter-y:0}.g-lg-1,.gx-lg-1{--bs-gutter-x:0.25rem}.g-lg-1,.gy-lg-1{--bs-gutter-y:0.25rem}.g-lg-2,.gx-lg-2{--bs-gutter-x:0.5rem}.g-lg-2,.gy-lg-2{--bs-gutter-y:0.5rem}.g-lg-3,.gx-lg-3{--bs-gutter-x:1rem}.g-lg-3,.gy-lg-3{--bs-gutter-y:1rem}.g-lg-4,.gx-lg-4{--bs-gutter-x:1.5rem}.g-lg-4,.gy-lg-4{--bs-gutter-y:1.5rem}.g-lg-5,.gx-lg-5{--bs-gutter-x:3rem}.g-lg-5,.gy-lg-5{--bs-gutter-y:3rem}}@media (min-width:1200px){.col-xl{flex:1 0 0%}.row-cols-xl-auto>*{flex:0 0 auto;width:auto}.row-cols-xl-1>*{flex:0 0 auto;width:100%}.row-cols-xl-2>*{flex:0 0 auto;width:50%}.row-cols-xl-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-xl-4>*{flex:0 0 auto;width:25%}.row-cols-xl-5>*{flex:0 0 auto;width:20%}.row-cols-xl-6>*{flex:0 0 auto;width:16.66666667%}.col-xl-auto{flex:0 0 auto;width:auto}.col-xl-1{flex:0 0 auto;width:8.33333333%}.col-xl-2{flex:0 0 auto;width:16.66666667%}.col-xl-3{flex:0 0 auto;width:25%}.col-xl-4{flex:0 0 auto;width:33.33333333%}.col-xl-5{flex:0 0 auto;width:41.66666667%}.col-xl-6{flex:0 0 auto;width:50%}.col-xl-7{flex:0 0 auto;width:58.33333333%}.col-xl-8{flex:0 0 auto;width:66.66666667%}.col-xl-9{flex:0 0 auto;width:75%}.col-xl-10{flex:0 0 auto;width:83.33333333%}.col-xl-11{flex:0 0 auto;width:91.66666667%}.col-xl-12{flex:0 0 auto;width:100%}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333333%}.offset-xl-2{margin-left:16.66666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333333%}.offset-xl-5{margin-left:41.66666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333333%}.offset-xl-8{margin-left:66.66666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333333%}.offset-xl-11{margin-left:91.66666667%}.g-xl-0,.gx-xl-0{--bs-gutter-x:0}.g-xl-0,.gy-xl-0{--bs-gutter-y:0}.g-xl-1,.gx-xl-1{--bs-gutter-x:0.25rem}.g-xl-1,.gy-xl-1{--bs-gutter-y:0.25rem}.g-xl-2,.gx-xl-2{--bs-gutter-x:0.5rem}.g-xl-2,.gy-xl-2{--bs-gutter-y:0.5rem}.g-xl-3,.gx-xl-3{--bs-gutter-x:1rem}.g-xl-3,.gy-xl-3{--bs-gutter-y:1rem}.g-xl-4,.gx-xl-4{--bs-gutter-x:1.5rem}.g-xl-4,.gy-xl-4{--bs-gutter-y:1.5rem}.g-xl-5,.gx-xl-5{--bs-gutter-x:3rem}.g-xl-5,.gy-xl-5{--bs-gutter-y:3rem}}@media (min-width:1400px){.col-xxl{flex:1 0 0%}.row-cols-xxl-auto>*{flex:0 0 auto;width:auto}.row-cols-xxl-1>*{flex:0 0 auto;width:100%}.row-cols-xxl-2>*{flex:0 0 auto;width:50%}.row-cols-xxl-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-xxl-4>*{flex:0 0 auto;width:25%}.row-cols-xxl-5>*{flex:0 0 auto;width:20%}.row-cols-xxl-6>*{flex:0 0 auto;width:16.66666667%}.col-xxl-auto{flex:0 0 auto;width:auto}.col-xxl-1{flex:0 0 auto;width:8.33333333%}.col-xxl-2{flex:0 0 auto;width:16.66666667%}.col-xxl-3{flex:0 0 auto;width:25%}.col-xxl-4{flex:0 0 auto;width:33.33333333%}.col-xxl-5{flex:0 0 auto;width:41.66666667%}.col-xxl-6{flex:0 0 auto;width:50%}.col-xxl-7{flex:0 0 auto;width:58.33333333%}.col-xxl-8{flex:0 0 auto;width:66.66666667%}.col-xxl-9{flex:0 0 auto;width:75%}.col-xxl-10{flex:0 0 auto;width:83.33333333%}.col-xxl-11{flex:0 0 auto;width:91.66666667%}.col-xxl-12{flex:0 0 auto;width:100%}.offset-xxl-0{margin-left:0}.offset-xxl-1{margin-left:8.33333333%}.offset-xxl-2{margin-left:16.66666667%}.offset-xxl-3{margin-left:25%}.offset-xxl-4{margin-left:33.33333333%}.offset-xxl-5{margin-left:41.66666667%}.offset-xxl-6{margin-left:50%}.offset-xxl-7{margin-left:58.33333333%}.offset-xxl-8{margin-left:66.66666667%}.offset-xxl-9{margin-left:75%}.offset-xxl-10{margin-left:83.33333333%}.offset-xxl-11{margin-left:91.66666667%}.g-xxl-0,.gx-xxl-0{--bs-gutter-x:0}.g-xxl-0,.gy-xxl-0{--bs-gutter-y:0}.g-xxl-1,.gx-xxl-1{--bs-gutter-x:0.25rem}.g-xxl-1,.gy-xxl-1{--bs-gutter-y:0.25rem}.g-xxl-2,.gx-xxl-2{--bs-gutter-x:0.5rem}.g-xxl-2,.gy-xxl-2{--bs-gutter-y:0.5rem}.g-xxl-3,.gx-xxl-3{--bs-gutter-x:1rem}.g-xxl-3,.gy-xxl-3{--bs-gutter-y:1rem}.g-xxl-4,.gx-xxl-4{--bs-gutter-x:1.5rem}.g-xxl-4,.gy-xxl-4{--bs-gutter-y:1.5rem}.g-xxl-5,.gx-xxl-5{--bs-gutter-x:3rem}.g-xxl-5,.gy-xxl-5{--bs-gutter-y:3rem}}.table{--bs-table-color-type:initial;--bs-table-bg-type:initial;--bs-table-color-state:initial;--bs-table-bg-state:initial;--bs-table-color:var(--bs-emphasis-color);--bs-table-bg:var(--bs-body-bg);--bs-table-border-color:var(--bs-border-color);--bs-table-accent-bg:transparent;--bs-table-striped-color:var(--bs-emphasis-color);--bs-table-striped-bg:rgba(var(--bs-emphasis-color-rgb), 0.05);--bs-table-active-color:var(--bs-emphasis-color);--bs-table-active-bg:rgba(var(--bs-emphasis-color-rgb), 0.1);--bs-table-hover-color:var(--bs-emphasis-color);--bs-table-hover-bg:rgba(var(--bs-emphasis-color-rgb), 0.075);width:100%;margin-bottom:1rem;vertical-align:top;border-color:var(--bs-table-border-color)}.table>:not(caption)>*>*{padding:.5rem .5rem;color:var(--bs-table-color-state,var(--bs-table-color-type,var(--bs-table-color)));background-color:var(--bs-table-bg);border-bottom-width:var(--bs-border-width);box-shadow:inset 0 0 0 9999px var(--bs-table-bg-state,var(--bs-table-bg-type,var(--bs-table-accent-bg)))}.table>tbody{vertical-align:inherit}.table>thead{vertical-align:bottom}.table-group-divider{border-top:calc(var(--bs-border-width) * 2) solid currentcolor}.caption-top{caption-side:top}.table-sm>:not(caption)>*>*{padding:.25rem .25rem}.table-bordered>:not(caption)>*{border-width:var(--bs-border-width) 0}.table-bordered>:not(caption)>*>*{border-width:0 var(--bs-border-width)}.table-borderless>:not(caption)>*>*{border-bottom-width:0}.table-borderless>:not(:first-child){border-top-width:0}.table-striped>tbody>tr:nth-of-type(odd)>*{--bs-table-color-type:var(--bs-table-striped-color);--bs-table-bg-type:var(--bs-table-striped-bg)}.table-striped-columns>:not(caption)>tr>:nth-child(2n){--bs-table-color-type:var(--bs-table-striped-color);--bs-table-bg-type:var(--bs-table-striped-bg)}.table-active{--bs-table-color-state:var(--bs-table-active-color);--bs-table-bg-state:var(--bs-table-active-bg)}.table-hover>tbody>tr:hover>*{--bs-table-color-state:var(--bs-table-hover-color);--bs-table-bg-state:var(--bs-table-hover-bg)}.table-primary{--bs-table-color:#000;--bs-table-bg:#cfe2ff;--bs-table-border-color:#a6b5cc;--bs-table-striped-bg:#c5d7f2;--bs-table-striped-color:#000;--bs-table-active-bg:#bacbe6;--bs-table-active-color:#000;--bs-table-hover-bg:#bfd1ec;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-secondary{--bs-table-color:#000;--bs-table-bg:#e2e3e5;--bs-table-border-color:#b5b6b7;--bs-table-striped-bg:#d7d8da;--bs-table-striped-color:#000;--bs-table-active-bg:#cbccce;--bs-table-active-color:#000;--bs-table-hover-bg:#d1d2d4;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-success{--bs-table-color:#000;--bs-table-bg:#d1e7dd;--bs-table-border-color:#a7b9b1;--bs-table-striped-bg:#c7dbd2;--bs-table-striped-color:#000;--bs-table-active-bg:#bcd0c7;--bs-table-active-color:#000;--bs-table-hover-bg:#c1d6cc;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-info{--bs-table-color:#000;--bs-table-bg:#cff4fc;--bs-table-border-color:#a6c3ca;--bs-table-striped-bg:#c5e8ef;--bs-table-striped-color:#000;--bs-table-active-bg:#badce3;--bs-table-active-color:#000;--bs-table-hover-bg:#bfe2e9;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-warning{--bs-table-color:#000;--bs-table-bg:#fff3cd;--bs-table-border-color:#ccc2a4;--bs-table-striped-bg:#f2e7c3;--bs-table-striped-color:#000;--bs-table-active-bg:#e6dbb9;--bs-table-active-color:#000;--bs-table-hover-bg:#ece1be;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-danger{--bs-table-color:#000;--bs-table-bg:#f8d7da;--bs-table-border-color:#c6acae;--bs-table-striped-bg:#eccccf;--bs-table-striped-color:#000;--bs-table-active-bg:#dfc2c4;--bs-table-active-color:#000;--bs-table-hover-bg:#e5c7ca;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-light{--bs-table-color:#000;--bs-table-bg:#f8f9fa;--bs-table-border-color:#c6c7c8;--bs-table-striped-bg:#ecedee;--bs-table-striped-color:#000;--bs-table-active-bg:#dfe0e1;--bs-table-active-color:#000;--bs-table-hover-bg:#e5e6e7;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-dark{--bs-table-color:#fff;--bs-table-bg:#212529;--bs-table-border-color:#4d5154;--bs-table-striped-bg:#2c3034;--bs-table-striped-color:#fff;--bs-table-active-bg:#373b3e;--bs-table-active-color:#fff;--bs-table-hover-bg:#323539;--bs-table-hover-color:#fff;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}@media (max-width:575.98px){.table-responsive-sm{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:767.98px){.table-responsive-md{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:991.98px){.table-responsive-lg{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:1199.98px){.table-responsive-xl{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:1399.98px){.table-responsive-xxl{overflow-x:auto;-webkit-overflow-scrolling:touch}}.form-label{margin-bottom:.5rem}.col-form-label{padding-top:calc(.375rem + var(--bs-border-width));padding-bottom:calc(.375rem + var(--bs-border-width));margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + var(--bs-border-width));padding-bottom:calc(.5rem + var(--bs-border-width));font-size:1.25rem}.col-form-label-sm{padding-top:calc(.25rem + var(--bs-border-width));padding-bottom:calc(.25rem + var(--bs-border-width));font-size:.875rem}.form-text{margin-top:.25rem;font-size:.875em;color:var(--bs-secondary-color)}.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--bs-body-bg);background-clip:padding-box;border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control[type=file]{overflow:hidden}.form-control[type=file]:not(:disabled):not([readonly]){cursor:pointer}.form-control:focus{color:var(--bs-body-color);background-color:var(--bs-body-bg);border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-control::-webkit-date-and-time-value{min-width:85px;height:1.5em;margin:0}.form-control::-webkit-datetime-edit{display:block;padding:0}.form-control::-moz-placeholder{color:var(--bs-secondary-color);opacity:1}.form-control::placeholder{color:var(--bs-secondary-color);opacity:1}.form-control:disabled{background-color:var(--bs-secondary-bg);opacity:1}.form-control::-webkit-file-upload-button{padding:.375rem .75rem;margin:-.375rem -.75rem;-webkit-margin-end:.75rem;margin-inline-end:.75rem;color:var(--bs-body-color);background-color:var(--bs-tertiary-bg);pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:var(--bs-border-width);border-radius:0;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}.form-control::file-selector-button{padding:.375rem .75rem;margin:-.375rem -.75rem;-webkit-margin-end:.75rem;margin-inline-end:.75rem;color:var(--bs-body-color);background-color:var(--bs-tertiary-bg);pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:var(--bs-border-width);border-radius:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control::-webkit-file-upload-button{-webkit-transition:none;transition:none}.form-control::file-selector-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button{background-color:var(--bs-secondary-bg)}.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color:var(--bs-secondary-bg)}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;line-height:1.5;color:var(--bs-body-color);background-color:transparent;border:solid transparent;border-width:var(--bs-border-width) 0}.form-control-plaintext:focus{outline:0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{min-height:calc(1.5em + .5rem + calc(var(--bs-border-width) * 2));padding:.25rem .5rem;font-size:.875rem;border-radius:var(--bs-border-radius-sm)}.form-control-sm::-webkit-file-upload-button{padding:.25rem .5rem;margin:-.25rem -.5rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem}.form-control-sm::file-selector-button{padding:.25rem .5rem;margin:-.25rem -.5rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem}.form-control-lg{min-height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2));padding:.5rem 1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}.form-control-lg::-webkit-file-upload-button{padding:.5rem 1rem;margin:-.5rem -1rem;-webkit-margin-end:1rem;margin-inline-end:1rem}.form-control-lg::file-selector-button{padding:.5rem 1rem;margin:-.5rem -1rem;-webkit-margin-end:1rem;margin-inline-end:1rem}textarea.form-control{min-height:calc(1.5em + .75rem + calc(var(--bs-border-width) * 2))}textarea.form-control-sm{min-height:calc(1.5em + .5rem + calc(var(--bs-border-width) * 2))}textarea.form-control-lg{min-height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2))}.form-control-color{width:3rem;height:calc(1.5em + .75rem + calc(var(--bs-border-width) * 2));padding:.375rem}.form-control-color:not(:disabled):not([readonly]){cursor:pointer}.form-control-color::-moz-color-swatch{border:0!important;border-radius:var(--bs-border-radius)}.form-control-color::-webkit-color-swatch{border:0!important;border-radius:var(--bs-border-radius)}.form-control-color.form-control-sm{height:calc(1.5em + .5rem + calc(var(--bs-border-width) * 2))}.form-control-color.form-control-lg{height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2))}.form-select{--bs-form-select-bg-img:url(\\\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\\\");display:block;width:100%;padding:.375rem 2.25rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--bs-body-bg);background-image:var(--bs-form-select-bg-img),var(--bs-form-select-bg-icon,none);background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px;border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-select{transition:none}}.form-select:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-select[multiple],.form-select[size]:not([size=\\\"1\\\"]){padding-right:.75rem;background-image:none}.form-select:disabled{background-color:var(--bs-secondary-bg)}.form-select:-moz-focusring{color:transparent;text-shadow:0 0 0 var(--bs-body-color)}.form-select-sm{padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem;border-radius:var(--bs-border-radius-sm)}.form-select-lg{padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}[data-bs-theme=dark] .form-select{--bs-form-select-bg-img:url(\\\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23dee2e6' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\\\")}.form-check{display:block;min-height:1.5rem;padding-left:1.5em;margin-bottom:.125rem}.form-check .form-check-input{float:left;margin-left:-1.5em}.form-check-reverse{padding-right:1.5em;padding-left:0;text-align:right}.form-check-reverse .form-check-input{float:right;margin-right:-1.5em;margin-left:0}.form-check-input{--bs-form-check-bg:var(--bs-body-bg);flex-shrink:0;width:1em;height:1em;margin-top:.25em;vertical-align:top;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--bs-form-check-bg);background-image:var(--bs-form-check-bg-image);background-repeat:no-repeat;background-position:center;background-size:contain;border:var(--bs-border-width) solid var(--bs-border-color);-webkit-print-color-adjust:exact;color-adjust:exact;print-color-adjust:exact}.form-check-input[type=checkbox]{border-radius:.25em}.form-check-input[type=radio]{border-radius:50%}.form-check-input:active{filter:brightness(90%)}.form-check-input:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-check-input:checked{background-color:#0d6efd;border-color:#0d6efd}.form-check-input:checked[type=checkbox]{--bs-form-check-bg-image:url(\\\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e\\\")}.form-check-input:checked[type=radio]{--bs-form-check-bg-image:url(\\\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e\\\")}.form-check-input[type=checkbox]:indeterminate{background-color:#0d6efd;border-color:#0d6efd;--bs-form-check-bg-image:url(\\\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e\\\")}.form-check-input:disabled{pointer-events:none;filter:none;opacity:.5}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{cursor:default;opacity:.5}.form-switch{padding-left:2.5em}.form-switch .form-check-input{--bs-form-switch-bg:url(\\\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e\\\");width:2em;margin-left:-2.5em;background-image:var(--bs-form-switch-bg);background-position:left center;border-radius:2em;transition:background-position .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-switch .form-check-input{transition:none}}.form-switch .form-check-input:focus{--bs-form-switch-bg:url(\\\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2386b7fe'/%3e%3c/svg%3e\\\")}.form-switch .form-check-input:checked{background-position:right center;--bs-form-switch-bg:url(\\\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e\\\")}.form-switch.form-check-reverse{padding-right:2.5em;padding-left:0}.form-switch.form-check-reverse .form-check-input{margin-right:-2.5em;margin-left:0}.form-check-inline{display:inline-block;margin-right:1rem}.btn-check{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.btn-check:disabled+.btn,.btn-check[disabled]+.btn{pointer-events:none;filter:none;opacity:.65}[data-bs-theme=dark] .form-switch .form-check-input:not(:checked):not(:focus){--bs-form-switch-bg:url(\\\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%28255, 255, 255, 0.25%29'/%3e%3c/svg%3e\\\")}.form-range{width:100%;height:1.5rem;padding:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent}.form-range:focus{outline:0}.form-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(13,110,253,.25)}.form-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(13,110,253,.25)}.form-range::-moz-focus-outer{border:0}.form-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;-webkit-appearance:none;appearance:none;background-color:#0d6efd;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.form-range::-webkit-slider-thumb:active{background-color:#b6d4fe}.form-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:var(--bs-secondary-bg);border-color:transparent;border-radius:1rem}.form-range::-moz-range-thumb{width:1rem;height:1rem;-moz-appearance:none;appearance:none;background-color:#0d6efd;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-range::-moz-range-thumb{-moz-transition:none;transition:none}}.form-range::-moz-range-thumb:active{background-color:#b6d4fe}.form-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:var(--bs-secondary-bg);border-color:transparent;border-radius:1rem}.form-range:disabled{pointer-events:none}.form-range:disabled::-webkit-slider-thumb{background-color:var(--bs-secondary-color)}.form-range:disabled::-moz-range-thumb{background-color:var(--bs-secondary-color)}.form-floating{position:relative}.form-floating>.form-control,.form-floating>.form-control-plaintext,.form-floating>.form-select{height:calc(3.5rem + calc(var(--bs-border-width) * 2));min-height:calc(3.5rem + calc(var(--bs-border-width) * 2));line-height:1.25}.form-floating>label{position:absolute;top:0;left:0;z-index:2;height:100%;padding:1rem .75rem;overflow:hidden;text-align:start;text-overflow:ellipsis;white-space:nowrap;pointer-events:none;border:var(--bs-border-width) solid transparent;transform-origin:0 0;transition:opacity .1s ease-in-out,transform .1s ease-in-out}@media (prefers-reduced-motion:reduce){.form-floating>label{transition:none}}.form-floating>.form-control,.form-floating>.form-control-plaintext{padding:1rem .75rem}.form-floating>.form-control-plaintext::-moz-placeholder,.form-floating>.form-control::-moz-placeholder{color:transparent}.form-floating>.form-control-plaintext::placeholder,.form-floating>.form-control::placeholder{color:transparent}.form-floating>.form-control-plaintext:not(:-moz-placeholder-shown),.form-floating>.form-control:not(:-moz-placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control-plaintext:focus,.form-floating>.form-control-plaintext:not(:placeholder-shown),.form-floating>.form-control:focus,.form-floating>.form-control:not(:placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control-plaintext:-webkit-autofill,.form-floating>.form-control:-webkit-autofill{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-select{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:not(:-moz-placeholder-shown)~label{color:rgba(var(--bs-body-color-rgb),.65);transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control-plaintext~label,.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>.form-select~label{color:rgba(var(--bs-body-color-rgb),.65);transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control:not(:-moz-placeholder-shown)~label::after{position:absolute;inset:1rem 0.375rem;z-index:-1;height:1.5em;content:\\\"\\\";background-color:var(--bs-body-bg);border-radius:var(--bs-border-radius)}.form-floating>.form-control-plaintext~label::after,.form-floating>.form-control:focus~label::after,.form-floating>.form-control:not(:placeholder-shown)~label::after,.form-floating>.form-select~label::after{position:absolute;inset:1rem 0.375rem;z-index:-1;height:1.5em;content:\\\"\\\";background-color:var(--bs-body-bg);border-radius:var(--bs-border-radius)}.form-floating>.form-control:-webkit-autofill~label{color:rgba(var(--bs-body-color-rgb),.65);transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control-plaintext~label{border-width:var(--bs-border-width) 0}.form-floating>.form-control:disabled~label,.form-floating>:disabled~label{color:#6c757d}.form-floating>.form-control:disabled~label::after,.form-floating>:disabled~label::after{background-color:var(--bs-secondary-bg)}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.form-control,.input-group>.form-floating,.input-group>.form-select{position:relative;flex:1 1 auto;width:1%;min-width:0}.input-group>.form-control:focus,.input-group>.form-floating:focus-within,.input-group>.form-select:focus{z-index:5}.input-group .btn{position:relative;z-index:2}.input-group .btn:focus{z-index:5}.input-group-text{display:flex;align-items:center;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);text-align:center;white-space:nowrap;background-color:var(--bs-tertiary-bg);border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius)}.input-group-lg>.btn,.input-group-lg>.form-control,.input-group-lg>.form-select,.input-group-lg>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}.input-group-sm>.btn,.input-group-sm>.form-control,.input-group-sm>.form-select,.input-group-sm>.input-group-text{padding:.25rem .5rem;font-size:.875rem;border-radius:var(--bs-border-radius-sm)}.input-group-lg>.form-select,.input-group-sm>.form-select{padding-right:3rem}.input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3),.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-control,.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-select,.input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating){border-top-right-radius:0;border-bottom-right-radius:0}.input-group.has-validation>.dropdown-toggle:nth-last-child(n+4),.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-control,.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-select,.input-group.has-validation>:nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-left:calc(var(--bs-border-width) * -1);border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.form-floating:not(:first-child)>.form-control,.input-group>.form-floating:not(:first-child)>.form-select{border-top-left-radius:0;border-bottom-left-radius:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:var(--bs-form-valid-color)}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:var(--bs-success);border-radius:var(--bs-border-radius)}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:var(--bs-form-valid-border-color);padding-right:calc(1.5em + .75rem);background-image:url(\\\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\\\");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:var(--bs-form-valid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-success-rgb),.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.form-select.is-valid,.was-validated .form-select:valid{border-color:var(--bs-form-valid-border-color)}.form-select.is-valid:not([multiple]):not([size]),.form-select.is-valid:not([multiple])[size=\\\"1\\\"],.was-validated .form-select:valid:not([multiple]):not([size]),.was-validated .form-select:valid:not([multiple])[size=\\\"1\\\"]{--bs-form-select-bg-icon:url(\\\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\\\");padding-right:4.125rem;background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.form-select.is-valid:focus,.was-validated .form-select:valid:focus{border-color:var(--bs-form-valid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-success-rgb),.25)}.form-control-color.is-valid,.was-validated .form-control-color:valid{width:calc(3rem + calc(1.5em + .75rem))}.form-check-input.is-valid,.was-validated .form-check-input:valid{border-color:var(--bs-form-valid-border-color)}.form-check-input.is-valid:checked,.was-validated .form-check-input:valid:checked{background-color:var(--bs-form-valid-color)}.form-check-input.is-valid:focus,.was-validated .form-check-input:valid:focus{box-shadow:0 0 0 .25rem rgba(var(--bs-success-rgb),.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:var(--bs-form-valid-color)}.form-check-inline .form-check-input~.valid-feedback{margin-left:.5em}.input-group>.form-control:not(:focus).is-valid,.input-group>.form-floating:not(:focus-within).is-valid,.input-group>.form-select:not(:focus).is-valid,.was-validated .input-group>.form-control:not(:focus):valid,.was-validated .input-group>.form-floating:not(:focus-within):valid,.was-validated .input-group>.form-select:not(:focus):valid{z-index:3}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:var(--bs-form-invalid-color)}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:var(--bs-danger);border-radius:var(--bs-border-radius)}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:var(--bs-form-invalid-border-color);padding-right:calc(1.5em + .75rem);background-image:url(\\\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\\\");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:var(--bs-form-invalid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb),.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.form-select.is-invalid,.was-validated .form-select:invalid{border-color:var(--bs-form-invalid-border-color)}.form-select.is-invalid:not([multiple]):not([size]),.form-select.is-invalid:not([multiple])[size=\\\"1\\\"],.was-validated .form-select:invalid:not([multiple]):not([size]),.was-validated .form-select:invalid:not([multiple])[size=\\\"1\\\"]{--bs-form-select-bg-icon:url(\\\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\\\");padding-right:4.125rem;background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.form-select.is-invalid:focus,.was-validated .form-select:invalid:focus{border-color:var(--bs-form-invalid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb),.25)}.form-control-color.is-invalid,.was-validated .form-control-color:invalid{width:calc(3rem + calc(1.5em + .75rem))}.form-check-input.is-invalid,.was-validated .form-check-input:invalid{border-color:var(--bs-form-invalid-border-color)}.form-check-input.is-invalid:checked,.was-validated .form-check-input:invalid:checked{background-color:var(--bs-form-invalid-color)}.form-check-input.is-invalid:focus,.was-validated .form-check-input:invalid:focus{box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb),.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:var(--bs-form-invalid-color)}.form-check-inline .form-check-input~.invalid-feedback{margin-left:.5em}.input-group>.form-control:not(:focus).is-invalid,.input-group>.form-floating:not(:focus-within).is-invalid,.input-group>.form-select:not(:focus).is-invalid,.was-validated .input-group>.form-control:not(:focus):invalid,.was-validated .input-group>.form-floating:not(:focus-within):invalid,.was-validated .input-group>.form-select:not(:focus):invalid{z-index:4}.btn{--bs-btn-padding-x:0.75rem;--bs-btn-padding-y:0.375rem;--bs-btn-font-family: ;--bs-btn-font-size:1rem;--bs-btn-font-weight:400;--bs-btn-line-height:1.5;--bs-btn-color:var(--bs-body-color);--bs-btn-bg:transparent;--bs-btn-border-width:var(--bs-border-width);--bs-btn-border-color:transparent;--bs-btn-border-radius:var(--bs-border-radius);--bs-btn-hover-border-color:transparent;--bs-btn-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.15),0 1px 1px rgba(0, 0, 0, 0.075);--bs-btn-disabled-opacity:0.65;--bs-btn-focus-box-shadow:0 0 0 0.25rem rgba(var(--bs-btn-focus-shadow-rgb), .5);display:inline-block;padding:var(--bs-btn-padding-y) var(--bs-btn-padding-x);font-family:var(--bs-btn-font-family);font-size:var(--bs-btn-font-size);font-weight:var(--bs-btn-font-weight);line-height:var(--bs-btn-line-height);color:var(--bs-btn-color);text-align:center;text-decoration:none;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;border:var(--bs-btn-border-width) solid var(--bs-btn-border-color);border-radius:var(--bs-btn-border-radius);background-color:var(--bs-btn-bg);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:var(--bs-btn-hover-color);background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color)}.btn-check+.btn:hover{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color)}.btn:focus-visible{color:var(--bs-btn-hover-color);background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color);outline:0;box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:focus-visible+.btn{border-color:var(--bs-btn-hover-border-color);outline:0;box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:checked+.btn,.btn.active,.btn.show,.btn:first-child:active,:not(.btn-check)+.btn:active{color:var(--bs-btn-active-color);background-color:var(--bs-btn-active-bg);border-color:var(--bs-btn-active-border-color)}.btn-check:checked+.btn:focus-visible,.btn.active:focus-visible,.btn.show:focus-visible,.btn:first-child:active:focus-visible,:not(.btn-check)+.btn:active:focus-visible{box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:checked:focus-visible+.btn{box-shadow:var(--bs-btn-focus-box-shadow)}.btn.disabled,.btn:disabled,fieldset:disabled .btn{color:var(--bs-btn-disabled-color);pointer-events:none;background-color:var(--bs-btn-disabled-bg);border-color:var(--bs-btn-disabled-border-color);opacity:var(--bs-btn-disabled-opacity)}.btn-primary{--bs-btn-color:#fff;--bs-btn-bg:#0d6efd;--bs-btn-border-color:#0d6efd;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#0b5ed7;--bs-btn-hover-border-color:#0a58ca;--bs-btn-focus-shadow-rgb:49,132,253;--bs-btn-active-color:#fff;--bs-btn-active-bg:#0a58ca;--bs-btn-active-border-color:#0a53be;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#0d6efd;--bs-btn-disabled-border-color:#0d6efd}.btn-secondary{--bs-btn-color:#fff;--bs-btn-bg:#6c757d;--bs-btn-border-color:#6c757d;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#5c636a;--bs-btn-hover-border-color:#565e64;--bs-btn-focus-shadow-rgb:130,138,145;--bs-btn-active-color:#fff;--bs-btn-active-bg:#565e64;--bs-btn-active-border-color:#51585e;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#6c757d;--bs-btn-disabled-border-color:#6c757d}.btn-success{--bs-btn-color:#fff;--bs-btn-bg:#198754;--bs-btn-border-color:#198754;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#157347;--bs-btn-hover-border-color:#146c43;--bs-btn-focus-shadow-rgb:60,153,110;--bs-btn-active-color:#fff;--bs-btn-active-bg:#146c43;--bs-btn-active-border-color:#13653f;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#198754;--bs-btn-disabled-border-color:#198754}.btn-info{--bs-btn-color:#000;--bs-btn-bg:#0dcaf0;--bs-btn-border-color:#0dcaf0;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#31d2f2;--bs-btn-hover-border-color:#25cff2;--bs-btn-focus-shadow-rgb:11,172,204;--bs-btn-active-color:#000;--bs-btn-active-bg:#3dd5f3;--bs-btn-active-border-color:#25cff2;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#000;--bs-btn-disabled-bg:#0dcaf0;--bs-btn-disabled-border-color:#0dcaf0}.btn-warning{--bs-btn-color:#000;--bs-btn-bg:#ffc107;--bs-btn-border-color:#ffc107;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#ffca2c;--bs-btn-hover-border-color:#ffc720;--bs-btn-focus-shadow-rgb:217,164,6;--bs-btn-active-color:#000;--bs-btn-active-bg:#ffcd39;--bs-btn-active-border-color:#ffc720;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#000;--bs-btn-disabled-bg:#ffc107;--bs-btn-disabled-border-color:#ffc107}.btn-danger{--bs-btn-color:#fff;--bs-btn-bg:#dc3545;--bs-btn-border-color:#dc3545;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#bb2d3b;--bs-btn-hover-border-color:#b02a37;--bs-btn-focus-shadow-rgb:225,83,97;--bs-btn-active-color:#fff;--bs-btn-active-bg:#b02a37;--bs-btn-active-border-color:#a52834;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#dc3545;--bs-btn-disabled-border-color:#dc3545}.btn-light{--bs-btn-color:#000;--bs-btn-bg:#f8f9fa;--bs-btn-border-color:#f8f9fa;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#d3d4d5;--bs-btn-hover-border-color:#c6c7c8;--bs-btn-focus-shadow-rgb:211,212,213;--bs-btn-active-color:#000;--bs-btn-active-bg:#c6c7c8;--bs-btn-active-border-color:#babbbc;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#000;--bs-btn-disabled-bg:#f8f9fa;--bs-btn-disabled-border-color:#f8f9fa}.btn-dark{--bs-btn-color:#fff;--bs-btn-bg:#212529;--bs-btn-border-color:#212529;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#424649;--bs-btn-hover-border-color:#373b3e;--bs-btn-focus-shadow-rgb:66,70,73;--bs-btn-active-color:#fff;--bs-btn-active-bg:#4d5154;--bs-btn-active-border-color:#373b3e;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#212529;--bs-btn-disabled-border-color:#212529}.btn-outline-primary{--bs-btn-color:#0d6efd;--bs-btn-border-color:#0d6efd;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#0d6efd;--bs-btn-hover-border-color:#0d6efd;--bs-btn-focus-shadow-rgb:13,110,253;--bs-btn-active-color:#fff;--bs-btn-active-bg:#0d6efd;--bs-btn-active-border-color:#0d6efd;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#0d6efd;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#0d6efd;--bs-gradient:none}.btn-outline-secondary{--bs-btn-color:#6c757d;--bs-btn-border-color:#6c757d;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#6c757d;--bs-btn-hover-border-color:#6c757d;--bs-btn-focus-shadow-rgb:108,117,125;--bs-btn-active-color:#fff;--bs-btn-active-bg:#6c757d;--bs-btn-active-border-color:#6c757d;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#6c757d;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#6c757d;--bs-gradient:none}.btn-outline-success{--bs-btn-color:#198754;--bs-btn-border-color:#198754;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#198754;--bs-btn-hover-border-color:#198754;--bs-btn-focus-shadow-rgb:25,135,84;--bs-btn-active-color:#fff;--bs-btn-active-bg:#198754;--bs-btn-active-border-color:#198754;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#198754;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#198754;--bs-gradient:none}.btn-outline-info{--bs-btn-color:#0dcaf0;--bs-btn-border-color:#0dcaf0;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#0dcaf0;--bs-btn-hover-border-color:#0dcaf0;--bs-btn-focus-shadow-rgb:13,202,240;--bs-btn-active-color:#000;--bs-btn-active-bg:#0dcaf0;--bs-btn-active-border-color:#0dcaf0;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#0dcaf0;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#0dcaf0;--bs-gradient:none}.btn-outline-warning{--bs-btn-color:#ffc107;--bs-btn-border-color:#ffc107;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#ffc107;--bs-btn-hover-border-color:#ffc107;--bs-btn-focus-shadow-rgb:255,193,7;--bs-btn-active-color:#000;--bs-btn-active-bg:#ffc107;--bs-btn-active-border-color:#ffc107;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#ffc107;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#ffc107;--bs-gradient:none}.btn-outline-danger{--bs-btn-color:#dc3545;--bs-btn-border-color:#dc3545;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#dc3545;--bs-btn-hover-border-color:#dc3545;--bs-btn-focus-shadow-rgb:220,53,69;--bs-btn-active-color:#fff;--bs-btn-active-bg:#dc3545;--bs-btn-active-border-color:#dc3545;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#dc3545;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#dc3545;--bs-gradient:none}.btn-outline-light{--bs-btn-color:#f8f9fa;--bs-btn-border-color:#f8f9fa;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#f8f9fa;--bs-btn-hover-border-color:#f8f9fa;--bs-btn-focus-shadow-rgb:248,249,250;--bs-btn-active-color:#000;--bs-btn-active-bg:#f8f9fa;--bs-btn-active-border-color:#f8f9fa;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#f8f9fa;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#f8f9fa;--bs-gradient:none}.btn-outline-dark{--bs-btn-color:#212529;--bs-btn-border-color:#212529;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#212529;--bs-btn-hover-border-color:#212529;--bs-btn-focus-shadow-rgb:33,37,41;--bs-btn-active-color:#fff;--bs-btn-active-bg:#212529;--bs-btn-active-border-color:#212529;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#212529;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#212529;--bs-gradient:none}.btn-link{--bs-btn-font-weight:400;--bs-btn-color:var(--bs-link-color);--bs-btn-bg:transparent;--bs-btn-border-color:transparent;--bs-btn-hover-color:var(--bs-link-hover-color);--bs-btn-hover-border-color:transparent;--bs-btn-active-color:var(--bs-link-hover-color);--bs-btn-active-border-color:transparent;--bs-btn-disabled-color:#6c757d;--bs-btn-disabled-border-color:transparent;--bs-btn-box-shadow:0 0 0 #000;--bs-btn-focus-shadow-rgb:49,132,253;text-decoration:underline}.btn-link:focus-visible{color:var(--bs-btn-color)}.btn-link:hover{color:var(--bs-btn-hover-color)}.btn-group-lg>.btn,.btn-lg{--bs-btn-padding-y:0.5rem;--bs-btn-padding-x:1rem;--bs-btn-font-size:1.25rem;--bs-btn-border-radius:var(--bs-border-radius-lg)}.btn-group-sm>.btn,.btn-sm{--bs-btn-padding-y:0.25rem;--bs-btn-padding-x:0.5rem;--bs-btn-font-size:0.875rem;--bs-btn-border-radius:var(--bs-border-radius-sm)}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.collapsing.collapse-horizontal{width:0;height:auto;transition:width .35s ease}@media (prefers-reduced-motion:reduce){.collapsing.collapse-horizontal{transition:none}}.dropdown,.dropdown-center,.dropend,.dropstart,.dropup,.dropup-center{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\\\"\\\";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{--bs-dropdown-zindex:1000;--bs-dropdown-min-width:10rem;--bs-dropdown-padding-x:0;--bs-dropdown-padding-y:0.5rem;--bs-dropdown-spacer:0.125rem;--bs-dropdown-font-size:1rem;--bs-dropdown-color:var(--bs-body-color);--bs-dropdown-bg:var(--bs-body-bg);--bs-dropdown-border-color:var(--bs-border-color-translucent);--bs-dropdown-border-radius:var(--bs-border-radius);--bs-dropdown-border-width:var(--bs-border-width);--bs-dropdown-inner-border-radius:calc(var(--bs-border-radius) - var(--bs-border-width));--bs-dropdown-divider-bg:var(--bs-border-color-translucent);--bs-dropdown-divider-margin-y:0.5rem;--bs-dropdown-box-shadow:var(--bs-box-shadow);--bs-dropdown-link-color:var(--bs-body-color);--bs-dropdown-link-hover-color:var(--bs-body-color);--bs-dropdown-link-hover-bg:var(--bs-tertiary-bg);--bs-dropdown-link-active-color:#fff;--bs-dropdown-link-active-bg:#0d6efd;--bs-dropdown-link-disabled-color:var(--bs-tertiary-color);--bs-dropdown-item-padding-x:1rem;--bs-dropdown-item-padding-y:0.25rem;--bs-dropdown-header-color:#6c757d;--bs-dropdown-header-padding-x:1rem;--bs-dropdown-header-padding-y:0.5rem;position:absolute;z-index:var(--bs-dropdown-zindex);display:none;min-width:var(--bs-dropdown-min-width);padding:var(--bs-dropdown-padding-y) var(--bs-dropdown-padding-x);margin:0;font-size:var(--bs-dropdown-font-size);color:var(--bs-dropdown-color);text-align:left;list-style:none;background-color:var(--bs-dropdown-bg);background-clip:padding-box;border:var(--bs-dropdown-border-width) solid var(--bs-dropdown-border-color);border-radius:var(--bs-dropdown-border-radius)}.dropdown-menu[data-bs-popper]{top:100%;left:0;margin-top:var(--bs-dropdown-spacer)}.dropdown-menu-start{--bs-position:start}.dropdown-menu-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-end{--bs-position:end}.dropdown-menu-end[data-bs-popper]{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-start{--bs-position:start}.dropdown-menu-sm-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-sm-end{--bs-position:end}.dropdown-menu-sm-end[data-bs-popper]{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-start{--bs-position:start}.dropdown-menu-md-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-md-end{--bs-position:end}.dropdown-menu-md-end[data-bs-popper]{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-start{--bs-position:start}.dropdown-menu-lg-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-lg-end{--bs-position:end}.dropdown-menu-lg-end[data-bs-popper]{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-start{--bs-position:start}.dropdown-menu-xl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xl-end{--bs-position:end}.dropdown-menu-xl-end[data-bs-popper]{right:0;left:auto}}@media (min-width:1400px){.dropdown-menu-xxl-start{--bs-position:start}.dropdown-menu-xxl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xxl-end{--bs-position:end}.dropdown-menu-xxl-end[data-bs-popper]{right:0;left:auto}}.dropup .dropdown-menu[data-bs-popper]{top:auto;bottom:100%;margin-top:0;margin-bottom:var(--bs-dropdown-spacer)}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\\\"\\\";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-menu[data-bs-popper]{top:0;right:auto;left:100%;margin-top:0;margin-left:var(--bs-dropdown-spacer)}.dropend .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\\\"\\\";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropend .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-toggle::after{vertical-align:0}.dropstart .dropdown-menu[data-bs-popper]{top:0;right:100%;left:auto;margin-top:0;margin-right:var(--bs-dropdown-spacer)}.dropstart .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\\\"\\\"}.dropstart .dropdown-toggle::after{display:none}.dropstart .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:\\\"\\\";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropstart .dropdown-toggle:empty::after{margin-left:0}.dropstart .dropdown-toggle::before{vertical-align:0}.dropdown-divider{height:0;margin:var(--bs-dropdown-divider-margin-y) 0;overflow:hidden;border-top:1px solid var(--bs-dropdown-divider-bg);opacity:1}.dropdown-item{display:block;width:100%;padding:var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);clear:both;font-weight:400;color:var(--bs-dropdown-link-color);text-align:inherit;text-decoration:none;white-space:nowrap;background-color:transparent;border:0;border-radius:var(--bs-dropdown-item-border-radius,0)}.dropdown-item:focus,.dropdown-item:hover{color:var(--bs-dropdown-link-hover-color);background-color:var(--bs-dropdown-link-hover-bg)}.dropdown-item.active,.dropdown-item:active{color:var(--bs-dropdown-link-active-color);text-decoration:none;background-color:var(--bs-dropdown-link-active-bg)}.dropdown-item.disabled,.dropdown-item:disabled{color:var(--bs-dropdown-link-disabled-color);pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:var(--bs-dropdown-header-padding-y) var(--bs-dropdown-header-padding-x);margin-bottom:0;font-size:.875rem;color:var(--bs-dropdown-header-color);white-space:nowrap}.dropdown-item-text{display:block;padding:var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);color:var(--bs-dropdown-link-color)}.dropdown-menu-dark{--bs-dropdown-color:#dee2e6;--bs-dropdown-bg:#343a40;--bs-dropdown-border-color:var(--bs-border-color-translucent);--bs-dropdown-box-shadow: ;--bs-dropdown-link-color:#dee2e6;--bs-dropdown-link-hover-color:#fff;--bs-dropdown-divider-bg:var(--bs-border-color-translucent);--bs-dropdown-link-hover-bg:rgba(255, 255, 255, 0.15);--bs-dropdown-link-active-color:#fff;--bs-dropdown-link-active-bg:#0d6efd;--bs-dropdown-link-disabled-color:#adb5bd;--bs-dropdown-header-color:#adb5bd}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;flex:1 1 auto}.btn-group-vertical>.btn-check:checked+.btn,.btn-group-vertical>.btn-check:focus+.btn,.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn-check:checked+.btn,.btn-group>.btn-check:focus+.btn,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group{border-radius:var(--bs-border-radius)}.btn-group>.btn-group:not(:first-child),.btn-group>:not(.btn-check:first-child)+.btn{margin-left:calc(var(--bs-border-width) * -1)}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn.dropdown-toggle-split:first-child,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:nth-child(n+3),.btn-group>:not(.btn-check)+.btn{border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropend .dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after{margin-left:0}.dropstart .dropdown-toggle-split::before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:calc(var(--bs-border-width) * -1)}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn~.btn{border-top-left-radius:0;border-top-right-radius:0}.nav{--bs-nav-link-padding-x:1rem;--bs-nav-link-padding-y:0.5rem;--bs-nav-link-font-weight: ;--bs-nav-link-color:var(--bs-link-color);--bs-nav-link-hover-color:var(--bs-link-hover-color);--bs-nav-link-disabled-color:var(--bs-secondary-color);display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:var(--bs-nav-link-padding-y) var(--bs-nav-link-padding-x);font-size:var(--bs-nav-link-font-size);font-weight:var(--bs-nav-link-font-weight);color:var(--bs-nav-link-color);text-decoration:none;background:0 0;border:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out}@media (prefers-reduced-motion:reduce){.nav-link{transition:none}}.nav-link:focus,.nav-link:hover{color:var(--bs-nav-link-hover-color)}.nav-link:focus-visible{outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.nav-link.disabled,.nav-link:disabled{color:var(--bs-nav-link-disabled-color);pointer-events:none;cursor:default}.nav-tabs{--bs-nav-tabs-border-width:var(--bs-border-width);--bs-nav-tabs-border-color:var(--bs-border-color);--bs-nav-tabs-border-radius:var(--bs-border-radius);--bs-nav-tabs-link-hover-border-color:var(--bs-secondary-bg) var(--bs-secondary-bg) var(--bs-border-color);--bs-nav-tabs-link-active-color:var(--bs-emphasis-color);--bs-nav-tabs-link-active-bg:var(--bs-body-bg);--bs-nav-tabs-link-active-border-color:var(--bs-border-color) var(--bs-border-color) var(--bs-body-bg);border-bottom:var(--bs-nav-tabs-border-width) solid var(--bs-nav-tabs-border-color)}.nav-tabs .nav-link{margin-bottom:calc(-1 * var(--bs-nav-tabs-border-width));border:var(--bs-nav-tabs-border-width) solid transparent;border-top-left-radius:var(--bs-nav-tabs-border-radius);border-top-right-radius:var(--bs-nav-tabs-border-radius)}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{isolation:isolate;border-color:var(--bs-nav-tabs-link-hover-border-color)}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:var(--bs-nav-tabs-link-active-color);background-color:var(--bs-nav-tabs-link-active-bg);border-color:var(--bs-nav-tabs-link-active-border-color)}.nav-tabs .dropdown-menu{margin-top:calc(-1 * var(--bs-nav-tabs-border-width));border-top-left-radius:0;border-top-right-radius:0}.nav-pills{--bs-nav-pills-border-radius:var(--bs-border-radius);--bs-nav-pills-link-active-color:#fff;--bs-nav-pills-link-active-bg:#0d6efd}.nav-pills .nav-link{border-radius:var(--bs-nav-pills-border-radius)}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:var(--bs-nav-pills-link-active-color);background-color:var(--bs-nav-pills-link-active-bg)}.nav-underline{--bs-nav-underline-gap:1rem;--bs-nav-underline-border-width:0.125rem;--bs-nav-underline-link-active-color:var(--bs-emphasis-color);gap:var(--bs-nav-underline-gap)}.nav-underline .nav-link{padding-right:0;padding-left:0;border-bottom:var(--bs-nav-underline-border-width) solid transparent}.nav-underline .nav-link:focus,.nav-underline .nav-link:hover{border-bottom-color:currentcolor}.nav-underline .nav-link.active,.nav-underline .show>.nav-link{font-weight:700;color:var(--bs-nav-underline-link-active-color);border-bottom-color:currentcolor}.nav-fill .nav-item,.nav-fill>.nav-link{flex:1 1 auto;text-align:center}.nav-justified .nav-item,.nav-justified>.nav-link{flex-basis:0;flex-grow:1;text-align:center}.nav-fill .nav-item .nav-link,.nav-justified .nav-item .nav-link{width:100%}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{--bs-navbar-padding-x:0;--bs-navbar-padding-y:0.5rem;--bs-navbar-color:rgba(var(--bs-emphasis-color-rgb), 0.65);--bs-navbar-hover-color:rgba(var(--bs-emphasis-color-rgb), 0.8);--bs-navbar-disabled-color:rgba(var(--bs-emphasis-color-rgb), 0.3);--bs-navbar-active-color:rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-brand-padding-y:0.3125rem;--bs-navbar-brand-margin-end:1rem;--bs-navbar-brand-font-size:1.25rem;--bs-navbar-brand-color:rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-brand-hover-color:rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-nav-link-padding-x:0.5rem;--bs-navbar-toggler-padding-y:0.25rem;--bs-navbar-toggler-padding-x:0.75rem;--bs-navbar-toggler-font-size:1.25rem;--bs-navbar-toggler-icon-bg:url(\\\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%2833, 37, 41, 0.75%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\\\");--bs-navbar-toggler-border-color:rgba(var(--bs-emphasis-color-rgb), 0.15);--bs-navbar-toggler-border-radius:var(--bs-border-radius);--bs-navbar-toggler-focus-width:0.25rem;--bs-navbar-toggler-transition:box-shadow 0.15s ease-in-out;position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding:var(--bs-navbar-padding-y) var(--bs-navbar-padding-x)}.navbar>.container,.navbar>.container-fluid,.navbar>.container-lg,.navbar>.container-md,.navbar>.container-sm,.navbar>.container-xl,.navbar>.container-xxl{display:flex;flex-wrap:inherit;align-items:center;justify-content:space-between}.navbar-brand{padding-top:var(--bs-navbar-brand-padding-y);padding-bottom:var(--bs-navbar-brand-padding-y);margin-right:var(--bs-navbar-brand-margin-end);font-size:var(--bs-navbar-brand-font-size);color:var(--bs-navbar-brand-color);text-decoration:none;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{color:var(--bs-navbar-brand-hover-color)}.navbar-nav{--bs-nav-link-padding-x:0;--bs-nav-link-padding-y:0.5rem;--bs-nav-link-font-weight: ;--bs-nav-link-color:var(--bs-navbar-color);--bs-nav-link-hover-color:var(--bs-navbar-hover-color);--bs-nav-link-disabled-color:var(--bs-navbar-disabled-color);display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link.active,.navbar-nav .nav-link.show{color:var(--bs-navbar-active-color)}.navbar-nav .dropdown-menu{position:static}.navbar-text{padding-top:.5rem;padding-bottom:.5rem;color:var(--bs-navbar-color)}.navbar-text a,.navbar-text a:focus,.navbar-text a:hover{color:var(--bs-navbar-active-color)}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:var(--bs-navbar-toggler-padding-y) var(--bs-navbar-toggler-padding-x);font-size:var(--bs-navbar-toggler-font-size);line-height:1;color:var(--bs-navbar-color);background-color:transparent;border:var(--bs-border-width) solid var(--bs-navbar-toggler-border-color);border-radius:var(--bs-navbar-toggler-border-radius);transition:var(--bs-navbar-toggler-transition)}@media (prefers-reduced-motion:reduce){.navbar-toggler{transition:none}}.navbar-toggler:hover{text-decoration:none}.navbar-toggler:focus{text-decoration:none;outline:0;box-shadow:0 0 0 var(--bs-navbar-toggler-focus-width)}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;background-image:var(--bs-navbar-toggler-icon-bg);background-repeat:no-repeat;background-position:center;background-size:100%}.navbar-nav-scroll{max-height:var(--bs-scroll-height,75vh);overflow-y:auto}@media (min-width:576px){.navbar-expand-sm{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}.navbar-expand-sm .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-sm .offcanvas .offcanvas-header{display:none}.navbar-expand-sm .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:768px){.navbar-expand-md{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}.navbar-expand-md .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-md .offcanvas .offcanvas-header{display:none}.navbar-expand-md .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:992px){.navbar-expand-lg{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}.navbar-expand-lg .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-lg .offcanvas .offcanvas-header{display:none}.navbar-expand-lg .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:1200px){.navbar-expand-xl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}.navbar-expand-xl .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-xl .offcanvas .offcanvas-header{display:none}.navbar-expand-xl .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:1400px){.navbar-expand-xxl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xxl .navbar-nav{flex-direction:row}.navbar-expand-xxl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xxl .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-xxl .navbar-nav-scroll{overflow:visible}.navbar-expand-xxl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xxl .navbar-toggler{display:none}.navbar-expand-xxl .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-xxl .offcanvas .offcanvas-header{display:none}.navbar-expand-xxl .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}.navbar-expand{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-expand .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand .offcanvas .offcanvas-header{display:none}.navbar-expand .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}.navbar-dark,.navbar[data-bs-theme=dark]{--bs-navbar-color:rgba(255, 255, 255, 0.55);--bs-navbar-hover-color:rgba(255, 255, 255, 0.75);--bs-navbar-disabled-color:rgba(255, 255, 255, 0.25);--bs-navbar-active-color:#fff;--bs-navbar-brand-color:#fff;--bs-navbar-brand-hover-color:#fff;--bs-navbar-toggler-border-color:rgba(255, 255, 255, 0.1);--bs-navbar-toggler-icon-bg:url(\\\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\\\")}[data-bs-theme=dark] .navbar-toggler-icon{--bs-navbar-toggler-icon-bg:url(\\\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\\\")}.card{--bs-card-spacer-y:1rem;--bs-card-spacer-x:1rem;--bs-card-title-spacer-y:0.5rem;--bs-card-title-color: ;--bs-card-subtitle-color: ;--bs-card-border-width:var(--bs-border-width);--bs-card-border-color:var(--bs-border-color-translucent);--bs-card-border-radius:var(--bs-border-radius);--bs-card-box-shadow: ;--bs-card-inner-border-radius:calc(var(--bs-border-radius) - (var(--bs-border-width)));--bs-card-cap-padding-y:0.5rem;--bs-card-cap-padding-x:1rem;--bs-card-cap-bg:rgba(var(--bs-body-color-rgb), 0.03);--bs-card-cap-color: ;--bs-card-height: ;--bs-card-color: ;--bs-card-bg:var(--bs-body-bg);--bs-card-img-overlay-padding:1rem;--bs-card-group-margin:0.75rem;position:relative;display:flex;flex-direction:column;min-width:0;height:var(--bs-card-height);color:var(--bs-body-color);word-wrap:break-word;background-color:var(--bs-card-bg);background-clip:border-box;border:var(--bs-card-border-width) solid var(--bs-card-border-color);border-radius:var(--bs-card-border-radius)}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:var(--bs-card-inner-border-radius);border-top-right-radius:var(--bs-card-inner-border-radius)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:var(--bs-card-inner-border-radius);border-bottom-left-radius:var(--bs-card-inner-border-radius)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{flex:1 1 auto;padding:var(--bs-card-spacer-y) var(--bs-card-spacer-x);color:var(--bs-card-color)}.card-title{margin-bottom:var(--bs-card-title-spacer-y);color:var(--bs-card-title-color)}.card-subtitle{margin-top:calc(-.5 * var(--bs-card-title-spacer-y));margin-bottom:0;color:var(--bs-card-subtitle-color)}.card-text:last-child{margin-bottom:0}.card-link+.card-link{margin-left:var(--bs-card-spacer-x)}.card-header{padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);margin-bottom:0;color:var(--bs-card-cap-color);background-color:var(--bs-card-cap-bg);border-bottom:var(--bs-card-border-width) solid var(--bs-card-border-color)}.card-header:first-child{border-radius:var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius) 0 0}.card-footer{padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);color:var(--bs-card-cap-color);background-color:var(--bs-card-cap-bg);border-top:var(--bs-card-border-width) solid var(--bs-card-border-color)}.card-footer:last-child{border-radius:0 0 var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius)}.card-header-tabs{margin-right:calc(-.5 * var(--bs-card-cap-padding-x));margin-bottom:calc(-1 * var(--bs-card-cap-padding-y));margin-left:calc(-.5 * var(--bs-card-cap-padding-x));border-bottom:0}.card-header-tabs .nav-link.active{background-color:var(--bs-card-bg);border-bottom-color:var(--bs-card-bg)}.card-header-pills{margin-right:calc(-.5 * var(--bs-card-cap-padding-x));margin-left:calc(-.5 * var(--bs-card-cap-padding-x))}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:var(--bs-card-img-overlay-padding);border-radius:var(--bs-card-inner-border-radius)}.card-img,.card-img-bottom,.card-img-top{width:100%}.card-img,.card-img-top{border-top-left-radius:var(--bs-card-inner-border-radius);border-top-right-radius:var(--bs-card-inner-border-radius)}.card-img,.card-img-bottom{border-bottom-right-radius:var(--bs-card-inner-border-radius);border-bottom-left-radius:var(--bs-card-inner-border-radius)}.card-group>.card{margin-bottom:var(--bs-card-group-margin)}@media (min-width:576px){.card-group{display:flex;flex-flow:row wrap}.card-group>.card{flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.accordion{--bs-accordion-color:var(--bs-body-color);--bs-accordion-bg:var(--bs-body-bg);--bs-accordion-transition:color 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out,border-radius 0.15s ease;--bs-accordion-border-color:var(--bs-border-color);--bs-accordion-border-width:var(--bs-border-width);--bs-accordion-border-radius:var(--bs-border-radius);--bs-accordion-inner-border-radius:calc(var(--bs-border-radius) - (var(--bs-border-width)));--bs-accordion-btn-padding-x:1.25rem;--bs-accordion-btn-padding-y:1rem;--bs-accordion-btn-color:var(--bs-body-color);--bs-accordion-btn-bg:var(--bs-accordion-bg);--bs-accordion-btn-icon:url(\\\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23212529' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='M2 5L8 11L14 5'/%3e%3c/svg%3e\\\");--bs-accordion-btn-icon-width:1.25rem;--bs-accordion-btn-icon-transform:rotate(-180deg);--bs-accordion-btn-icon-transition:transform 0.2s ease-in-out;--bs-accordion-btn-active-icon:url(\\\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23052c65' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='M2 5L8 11L14 5'/%3e%3c/svg%3e\\\");--bs-accordion-btn-focus-box-shadow:0 0 0 0.25rem rgba(13, 110, 253, 0.25);--bs-accordion-body-padding-x:1.25rem;--bs-accordion-body-padding-y:1rem;--bs-accordion-active-color:var(--bs-primary-text-emphasis);--bs-accordion-active-bg:var(--bs-primary-bg-subtle)}.accordion-button{position:relative;display:flex;align-items:center;width:100%;padding:var(--bs-accordion-btn-padding-y) var(--bs-accordion-btn-padding-x);font-size:1rem;color:var(--bs-accordion-btn-color);text-align:left;background-color:var(--bs-accordion-btn-bg);border:0;border-radius:0;overflow-anchor:none;transition:var(--bs-accordion-transition)}@media (prefers-reduced-motion:reduce){.accordion-button{transition:none}}.accordion-button:not(.collapsed){color:var(--bs-accordion-active-color);background-color:var(--bs-accordion-active-bg);box-shadow:inset 0 calc(-1 * var(--bs-accordion-border-width)) 0 var(--bs-accordion-border-color)}.accordion-button:not(.collapsed)::after{background-image:var(--bs-accordion-btn-active-icon);transform:var(--bs-accordion-btn-icon-transform)}.accordion-button::after{flex-shrink:0;width:var(--bs-accordion-btn-icon-width);height:var(--bs-accordion-btn-icon-width);margin-left:auto;content:\\\"\\\";background-image:var(--bs-accordion-btn-icon);background-repeat:no-repeat;background-size:var(--bs-accordion-btn-icon-width);transition:var(--bs-accordion-btn-icon-transition)}@media (prefers-reduced-motion:reduce){.accordion-button::after{transition:none}}.accordion-button:hover{z-index:2}.accordion-button:focus{z-index:3;outline:0;box-shadow:var(--bs-accordion-btn-focus-box-shadow)}.accordion-header{margin-bottom:0}.accordion-item{color:var(--bs-accordion-color);background-color:var(--bs-accordion-bg);border:var(--bs-accordion-border-width) solid var(--bs-accordion-border-color)}.accordion-item:first-of-type{border-top-left-radius:var(--bs-accordion-border-radius);border-top-right-radius:var(--bs-accordion-border-radius)}.accordion-item:first-of-type>.accordion-header .accordion-button{border-top-left-radius:var(--bs-accordion-inner-border-radius);border-top-right-radius:var(--bs-accordion-inner-border-radius)}.accordion-item:not(:first-of-type){border-top:0}.accordion-item:last-of-type{border-bottom-right-radius:var(--bs-accordion-border-radius);border-bottom-left-radius:var(--bs-accordion-border-radius)}.accordion-item:last-of-type>.accordion-header .accordion-button.collapsed{border-bottom-right-radius:var(--bs-accordion-inner-border-radius);border-bottom-left-radius:var(--bs-accordion-inner-border-radius)}.accordion-item:last-of-type>.accordion-collapse{border-bottom-right-radius:var(--bs-accordion-border-radius);border-bottom-left-radius:var(--bs-accordion-border-radius)}.accordion-body{padding:var(--bs-accordion-body-padding-y) var(--bs-accordion-body-padding-x)}.accordion-flush>.accordion-item{border-right:0;border-left:0;border-radius:0}.accordion-flush>.accordion-item:first-child{border-top:0}.accordion-flush>.accordion-item:last-child{border-bottom:0}.accordion-flush>.accordion-item>.accordion-header .accordion-button,.accordion-flush>.accordion-item>.accordion-header .accordion-button.collapsed{border-radius:0}.accordion-flush>.accordion-item>.accordion-collapse{border-radius:0}[data-bs-theme=dark] .accordion-button::after{--bs-accordion-btn-icon:url(\\\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236ea8fe'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e\\\");--bs-accordion-btn-active-icon:url(\\\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236ea8fe'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e\\\")}.breadcrumb{--bs-breadcrumb-padding-x:0;--bs-breadcrumb-padding-y:0;--bs-breadcrumb-margin-bottom:1rem;--bs-breadcrumb-bg: ;--bs-breadcrumb-border-radius: ;--bs-breadcrumb-divider-color:var(--bs-secondary-color);--bs-breadcrumb-item-padding-x:0.5rem;--bs-breadcrumb-item-active-color:var(--bs-secondary-color);display:flex;flex-wrap:wrap;padding:var(--bs-breadcrumb-padding-y) var(--bs-breadcrumb-padding-x);margin-bottom:var(--bs-breadcrumb-margin-bottom);font-size:var(--bs-breadcrumb-font-size);list-style:none;background-color:var(--bs-breadcrumb-bg);border-radius:var(--bs-breadcrumb-border-radius)}.breadcrumb-item+.breadcrumb-item{padding-left:var(--bs-breadcrumb-item-padding-x)}.breadcrumb-item+.breadcrumb-item::before{float:left;padding-right:var(--bs-breadcrumb-item-padding-x);color:var(--bs-breadcrumb-divider-color);content:var(--bs-breadcrumb-divider, \\\"/\\\")}.breadcrumb-item.active{color:var(--bs-breadcrumb-item-active-color)}.pagination{--bs-pagination-padding-x:0.75rem;--bs-pagination-padding-y:0.375rem;--bs-pagination-font-size:1rem;--bs-pagination-color:var(--bs-link-color);--bs-pagination-bg:var(--bs-body-bg);--bs-pagination-border-width:var(--bs-border-width);--bs-pagination-border-color:var(--bs-border-color);--bs-pagination-border-radius:var(--bs-border-radius);--bs-pagination-hover-color:var(--bs-link-hover-color);--bs-pagination-hover-bg:var(--bs-tertiary-bg);--bs-pagination-hover-border-color:var(--bs-border-color);--bs-pagination-focus-color:var(--bs-link-hover-color);--bs-pagination-focus-bg:var(--bs-secondary-bg);--bs-pagination-focus-box-shadow:0 0 0 0.25rem rgba(13, 110, 253, 0.25);--bs-pagination-active-color:#fff;--bs-pagination-active-bg:#0d6efd;--bs-pagination-active-border-color:#0d6efd;--bs-pagination-disabled-color:var(--bs-secondary-color);--bs-pagination-disabled-bg:var(--bs-secondary-bg);--bs-pagination-disabled-border-color:var(--bs-border-color);display:flex;padding-left:0;list-style:none}.page-link{position:relative;display:block;padding:var(--bs-pagination-padding-y) var(--bs-pagination-padding-x);font-size:var(--bs-pagination-font-size);color:var(--bs-pagination-color);text-decoration:none;background-color:var(--bs-pagination-bg);border:var(--bs-pagination-border-width) solid var(--bs-pagination-border-color);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.page-link{transition:none}}.page-link:hover{z-index:2;color:var(--bs-pagination-hover-color);background-color:var(--bs-pagination-hover-bg);border-color:var(--bs-pagination-hover-border-color)}.page-link:focus{z-index:3;color:var(--bs-pagination-focus-color);background-color:var(--bs-pagination-focus-bg);outline:0;box-shadow:var(--bs-pagination-focus-box-shadow)}.active>.page-link,.page-link.active{z-index:3;color:var(--bs-pagination-active-color);background-color:var(--bs-pagination-active-bg);border-color:var(--bs-pagination-active-border-color)}.disabled>.page-link,.page-link.disabled{color:var(--bs-pagination-disabled-color);pointer-events:none;background-color:var(--bs-pagination-disabled-bg);border-color:var(--bs-pagination-disabled-border-color)}.page-item:not(:first-child) .page-link{margin-left:calc(var(--bs-border-width) * -1)}.page-item:first-child .page-link{border-top-left-radius:var(--bs-pagination-border-radius);border-bottom-left-radius:var(--bs-pagination-border-radius)}.page-item:last-child .page-link{border-top-right-radius:var(--bs-pagination-border-radius);border-bottom-right-radius:var(--bs-pagination-border-radius)}.pagination-lg{--bs-pagination-padding-x:1.5rem;--bs-pagination-padding-y:0.75rem;--bs-pagination-font-size:1.25rem;--bs-pagination-border-radius:var(--bs-border-radius-lg)}.pagination-sm{--bs-pagination-padding-x:0.5rem;--bs-pagination-padding-y:0.25rem;--bs-pagination-font-size:0.875rem;--bs-pagination-border-radius:var(--bs-border-radius-sm)}.badge{--bs-badge-padding-x:0.65em;--bs-badge-padding-y:0.35em;--bs-badge-font-size:0.75em;--bs-badge-font-weight:700;--bs-badge-color:#fff;--bs-badge-border-radius:var(--bs-border-radius);display:inline-block;padding:var(--bs-badge-padding-y) var(--bs-badge-padding-x);font-size:var(--bs-badge-font-size);font-weight:var(--bs-badge-font-weight);line-height:1;color:var(--bs-badge-color);text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:var(--bs-badge-border-radius)}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.alert{--bs-alert-bg:transparent;--bs-alert-padding-x:1rem;--bs-alert-padding-y:1rem;--bs-alert-margin-bottom:1rem;--bs-alert-color:inherit;--bs-alert-border-color:transparent;--bs-alert-border:var(--bs-border-width) solid var(--bs-alert-border-color);--bs-alert-border-radius:var(--bs-border-radius);--bs-alert-link-color:inherit;position:relative;padding:var(--bs-alert-padding-y) var(--bs-alert-padding-x);margin-bottom:var(--bs-alert-margin-bottom);color:var(--bs-alert-color);background-color:var(--bs-alert-bg);border:var(--bs-alert-border);border-radius:var(--bs-alert-border-radius)}.alert-heading{color:inherit}.alert-link{font-weight:700;color:var(--bs-alert-link-color)}.alert-dismissible{padding-right:3rem}.alert-dismissible .btn-close{position:absolute;top:0;right:0;z-index:2;padding:1.25rem 1rem}.alert-primary{--bs-alert-color:var(--bs-primary-text-emphasis);--bs-alert-bg:var(--bs-primary-bg-subtle);--bs-alert-border-color:var(--bs-primary-border-subtle);--bs-alert-link-color:var(--bs-primary-text-emphasis)}.alert-secondary{--bs-alert-color:var(--bs-secondary-text-emphasis);--bs-alert-bg:var(--bs-secondary-bg-subtle);--bs-alert-border-color:var(--bs-secondary-border-subtle);--bs-alert-link-color:var(--bs-secondary-text-emphasis)}.alert-success{--bs-alert-color:var(--bs-success-text-emphasis);--bs-alert-bg:var(--bs-success-bg-subtle);--bs-alert-border-color:var(--bs-success-border-subtle);--bs-alert-link-color:var(--bs-success-text-emphasis)}.alert-info{--bs-alert-color:var(--bs-info-text-emphasis);--bs-alert-bg:var(--bs-info-bg-subtle);--bs-alert-border-color:var(--bs-info-border-subtle);--bs-alert-link-color:var(--bs-info-text-emphasis)}.alert-warning{--bs-alert-color:var(--bs-warning-text-emphasis);--bs-alert-bg:var(--bs-warning-bg-subtle);--bs-alert-border-color:var(--bs-warning-border-subtle);--bs-alert-link-color:var(--bs-warning-text-emphasis)}.alert-danger{--bs-alert-color:var(--bs-danger-text-emphasis);--bs-alert-bg:var(--bs-danger-bg-subtle);--bs-alert-border-color:var(--bs-danger-border-subtle);--bs-alert-link-color:var(--bs-danger-text-emphasis)}.alert-light{--bs-alert-color:var(--bs-light-text-emphasis);--bs-alert-bg:var(--bs-light-bg-subtle);--bs-alert-border-color:var(--bs-light-border-subtle);--bs-alert-link-color:var(--bs-light-text-emphasis)}.alert-dark{--bs-alert-color:var(--bs-dark-text-emphasis);--bs-alert-bg:var(--bs-dark-bg-subtle);--bs-alert-border-color:var(--bs-dark-border-subtle);--bs-alert-link-color:var(--bs-dark-text-emphasis)}@keyframes progress-bar-stripes{0%{background-position-x:1rem}}.progress,.progress-stacked{--bs-progress-height:1rem;--bs-progress-font-size:0.75rem;--bs-progress-bg:var(--bs-secondary-bg);--bs-progress-border-radius:var(--bs-border-radius);--bs-progress-box-shadow:var(--bs-box-shadow-inset);--bs-progress-bar-color:#fff;--bs-progress-bar-bg:#0d6efd;--bs-progress-bar-transition:width 0.6s ease;display:flex;height:var(--bs-progress-height);overflow:hidden;font-size:var(--bs-progress-font-size);background-color:var(--bs-progress-bg);border-radius:var(--bs-progress-border-radius)}.progress-bar{display:flex;flex-direction:column;justify-content:center;overflow:hidden;color:var(--bs-progress-bar-color);text-align:center;white-space:nowrap;background-color:var(--bs-progress-bar-bg);transition:var(--bs-progress-bar-transition)}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:var(--bs-progress-height) var(--bs-progress-height)}.progress-stacked>.progress{overflow:visible}.progress-stacked>.progress>.progress-bar{width:100%}.progress-bar-animated{animation:1s linear infinite progress-bar-stripes}@media (prefers-reduced-motion:reduce){.progress-bar-animated{animation:none}}.list-group{--bs-list-group-color:var(--bs-body-color);--bs-list-group-bg:var(--bs-body-bg);--bs-list-group-border-color:var(--bs-border-color);--bs-list-group-border-width:var(--bs-border-width);--bs-list-group-border-radius:var(--bs-border-radius);--bs-list-group-item-padding-x:1rem;--bs-list-group-item-padding-y:0.5rem;--bs-list-group-action-color:var(--bs-secondary-color);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-tertiary-bg);--bs-list-group-action-active-color:var(--bs-body-color);--bs-list-group-action-active-bg:var(--bs-secondary-bg);--bs-list-group-disabled-color:var(--bs-secondary-color);--bs-list-group-disabled-bg:var(--bs-body-bg);--bs-list-group-active-color:#fff;--bs-list-group-active-bg:#0d6efd;--bs-list-group-active-border-color:#0d6efd;display:flex;flex-direction:column;padding-left:0;margin-bottom:0;border-radius:var(--bs-list-group-border-radius)}.list-group-numbered{list-style-type:none;counter-reset:section}.list-group-numbered>.list-group-item::before{content:counters(section, \\\".\\\") \\\". \\\";counter-increment:section}.list-group-item-action{width:100%;color:var(--bs-list-group-action-color);text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:var(--bs-list-group-action-hover-color);text-decoration:none;background-color:var(--bs-list-group-action-hover-bg)}.list-group-item-action:active{color:var(--bs-list-group-action-active-color);background-color:var(--bs-list-group-action-active-bg)}.list-group-item{position:relative;display:block;padding:var(--bs-list-group-item-padding-y) var(--bs-list-group-item-padding-x);color:var(--bs-list-group-color);text-decoration:none;background-color:var(--bs-list-group-bg);border:var(--bs-list-group-border-width) solid var(--bs-list-group-border-color)}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:var(--bs-list-group-disabled-color);pointer-events:none;background-color:var(--bs-list-group-disabled-bg)}.list-group-item.active{z-index:2;color:var(--bs-list-group-active-color);background-color:var(--bs-list-group-active-bg);border-color:var(--bs-list-group-active-border-color)}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:calc(-1 * var(--bs-list-group-border-width));border-top-width:var(--bs-list-group-border-width)}.list-group-horizontal{flex-direction:row}.list-group-horizontal>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}@media (min-width:576px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width:768px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width:992px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width:1200px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width:1400px){.list-group-horizontal-xxl{flex-direction:row}.list-group-horizontal-xxl>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-xxl>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-xxl>.list-group-item.active{margin-top:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 var(--bs-list-group-border-width)}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{--bs-list-group-color:var(--bs-primary-text-emphasis);--bs-list-group-bg:var(--bs-primary-bg-subtle);--bs-list-group-border-color:var(--bs-primary-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-primary-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-primary-border-subtle);--bs-list-group-active-color:var(--bs-primary-bg-subtle);--bs-list-group-active-bg:var(--bs-primary-text-emphasis);--bs-list-group-active-border-color:var(--bs-primary-text-emphasis)}.list-group-item-secondary{--bs-list-group-color:var(--bs-secondary-text-emphasis);--bs-list-group-bg:var(--bs-secondary-bg-subtle);--bs-list-group-border-color:var(--bs-secondary-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-secondary-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-secondary-border-subtle);--bs-list-group-active-color:var(--bs-secondary-bg-subtle);--bs-list-group-active-bg:var(--bs-secondary-text-emphasis);--bs-list-group-active-border-color:var(--bs-secondary-text-emphasis)}.list-group-item-success{--bs-list-group-color:var(--bs-success-text-emphasis);--bs-list-group-bg:var(--bs-success-bg-subtle);--bs-list-group-border-color:var(--bs-success-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-success-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-success-border-subtle);--bs-list-group-active-color:var(--bs-success-bg-subtle);--bs-list-group-active-bg:var(--bs-success-text-emphasis);--bs-list-group-active-border-color:var(--bs-success-text-emphasis)}.list-group-item-info{--bs-list-group-color:var(--bs-info-text-emphasis);--bs-list-group-bg:var(--bs-info-bg-subtle);--bs-list-group-border-color:var(--bs-info-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-info-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-info-border-subtle);--bs-list-group-active-color:var(--bs-info-bg-subtle);--bs-list-group-active-bg:var(--bs-info-text-emphasis);--bs-list-group-active-border-color:var(--bs-info-text-emphasis)}.list-group-item-warning{--bs-list-group-color:var(--bs-warning-text-emphasis);--bs-list-group-bg:var(--bs-warning-bg-subtle);--bs-list-group-border-color:var(--bs-warning-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-warning-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-warning-border-subtle);--bs-list-group-active-color:var(--bs-warning-bg-subtle);--bs-list-group-active-bg:var(--bs-warning-text-emphasis);--bs-list-group-active-border-color:var(--bs-warning-text-emphasis)}.list-group-item-danger{--bs-list-group-color:var(--bs-danger-text-emphasis);--bs-list-group-bg:var(--bs-danger-bg-subtle);--bs-list-group-border-color:var(--bs-danger-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-danger-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-danger-border-subtle);--bs-list-group-active-color:var(--bs-danger-bg-subtle);--bs-list-group-active-bg:var(--bs-danger-text-emphasis);--bs-list-group-active-border-color:var(--bs-danger-text-emphasis)}.list-group-item-light{--bs-list-group-color:var(--bs-light-text-emphasis);--bs-list-group-bg:var(--bs-light-bg-subtle);--bs-list-group-border-color:var(--bs-light-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-light-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-light-border-subtle);--bs-list-group-active-color:var(--bs-light-bg-subtle);--bs-list-group-active-bg:var(--bs-light-text-emphasis);--bs-list-group-active-border-color:var(--bs-light-text-emphasis)}.list-group-item-dark{--bs-list-group-color:var(--bs-dark-text-emphasis);--bs-list-group-bg:var(--bs-dark-bg-subtle);--bs-list-group-border-color:var(--bs-dark-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-dark-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-dark-border-subtle);--bs-list-group-active-color:var(--bs-dark-bg-subtle);--bs-list-group-active-bg:var(--bs-dark-text-emphasis);--bs-list-group-active-border-color:var(--bs-dark-text-emphasis)}.btn-close{--bs-btn-close-color:#000;--bs-btn-close-bg:url(\\\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e\\\");--bs-btn-close-opacity:0.5;--bs-btn-close-hover-opacity:0.75;--bs-btn-close-focus-shadow:0 0 0 0.25rem rgba(13, 110, 253, 0.25);--bs-btn-close-focus-opacity:1;--bs-btn-close-disabled-opacity:0.25;--bs-btn-close-white-filter:invert(1) grayscale(100%) brightness(200%);box-sizing:content-box;width:1em;height:1em;padding:.25em .25em;color:var(--bs-btn-close-color);background:transparent var(--bs-btn-close-bg) center/1em auto no-repeat;border:0;border-radius:.375rem;opacity:var(--bs-btn-close-opacity)}.btn-close:hover{color:var(--bs-btn-close-color);text-decoration:none;opacity:var(--bs-btn-close-hover-opacity)}.btn-close:focus{outline:0;box-shadow:var(--bs-btn-close-focus-shadow);opacity:var(--bs-btn-close-focus-opacity)}.btn-close.disabled,.btn-close:disabled{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;opacity:var(--bs-btn-close-disabled-opacity)}.btn-close-white{filter:var(--bs-btn-close-white-filter)}[data-bs-theme=dark] .btn-close{filter:var(--bs-btn-close-white-filter)}.toast{--bs-toast-zindex:1090;--bs-toast-padding-x:0.75rem;--bs-toast-padding-y:0.5rem;--bs-toast-spacing:1.5rem;--bs-toast-max-width:350px;--bs-toast-font-size:0.875rem;--bs-toast-color: ;--bs-toast-bg:rgba(var(--bs-body-bg-rgb), 0.85);--bs-toast-border-width:var(--bs-border-width);--bs-toast-border-color:var(--bs-border-color-translucent);--bs-toast-border-radius:var(--bs-border-radius);--bs-toast-box-shadow:var(--bs-box-shadow);--bs-toast-header-color:var(--bs-secondary-color);--bs-toast-header-bg:rgba(var(--bs-body-bg-rgb), 0.85);--bs-toast-header-border-color:var(--bs-border-color-translucent);width:var(--bs-toast-max-width);max-width:100%;font-size:var(--bs-toast-font-size);color:var(--bs-toast-color);pointer-events:auto;background-color:var(--bs-toast-bg);background-clip:padding-box;border:var(--bs-toast-border-width) solid var(--bs-toast-border-color);box-shadow:var(--bs-toast-box-shadow);border-radius:var(--bs-toast-border-radius)}.toast.showing{opacity:0}.toast:not(.show){display:none}.toast-container{--bs-toast-zindex:1090;position:absolute;z-index:var(--bs-toast-zindex);width:-webkit-max-content;width:-moz-max-content;width:max-content;max-width:100%;pointer-events:none}.toast-container>:not(:last-child){margin-bottom:var(--bs-toast-spacing)}.toast-header{display:flex;align-items:center;padding:var(--bs-toast-padding-y) var(--bs-toast-padding-x);color:var(--bs-toast-header-color);background-color:var(--bs-toast-header-bg);background-clip:padding-box;border-bottom:var(--bs-toast-border-width) solid var(--bs-toast-header-border-color);border-top-left-radius:calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width));border-top-right-radius:calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width))}.toast-header .btn-close{margin-right:calc(-.5 * var(--bs-toast-padding-x));margin-left:var(--bs-toast-padding-x)}.toast-body{padding:var(--bs-toast-padding-x);word-wrap:break-word}.modal{--bs-modal-zindex:1055;--bs-modal-width:500px;--bs-modal-padding:1rem;--bs-modal-margin:0.5rem;--bs-modal-color: ;--bs-modal-bg:var(--bs-body-bg);--bs-modal-border-color:var(--bs-border-color-translucent);--bs-modal-border-width:var(--bs-border-width);--bs-modal-border-radius:var(--bs-border-radius-lg);--bs-modal-box-shadow:var(--bs-box-shadow-sm);--bs-modal-inner-border-radius:calc(var(--bs-border-radius-lg) - (var(--bs-border-width)));--bs-modal-header-padding-x:1rem;--bs-modal-header-padding-y:1rem;--bs-modal-header-padding:1rem 1rem;--bs-modal-header-border-color:var(--bs-border-color);--bs-modal-header-border-width:var(--bs-border-width);--bs-modal-title-line-height:1.5;--bs-modal-footer-gap:0.5rem;--bs-modal-footer-bg: ;--bs-modal-footer-border-color:var(--bs-border-color);--bs-modal-footer-border-width:var(--bs-border-width);position:fixed;top:0;left:0;z-index:var(--bs-modal-zindex);display:none;width:100%;height:100%;overflow-x:hidden;overflow-y:auto;outline:0}.modal-dialog{position:relative;width:auto;margin:var(--bs-modal-margin);pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translate(0,-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{height:calc(100% - var(--bs-modal-margin) * 2)}.modal-dialog-scrollable .modal-content{max-height:100%;overflow:hidden}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - var(--bs-modal-margin) * 2)}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;color:var(--bs-modal-color);pointer-events:auto;background-color:var(--bs-modal-bg);background-clip:padding-box;border:var(--bs-modal-border-width) solid var(--bs-modal-border-color);border-radius:var(--bs-modal-border-radius);outline:0}.modal-backdrop{--bs-backdrop-zindex:1050;--bs-backdrop-bg:#000;--bs-backdrop-opacity:0.5;position:fixed;top:0;left:0;z-index:var(--bs-backdrop-zindex);width:100vw;height:100vh;background-color:var(--bs-backdrop-bg)}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:var(--bs-backdrop-opacity)}.modal-header{display:flex;flex-shrink:0;align-items:center;padding:var(--bs-modal-header-padding);border-bottom:var(--bs-modal-header-border-width) solid var(--bs-modal-header-border-color);border-top-left-radius:var(--bs-modal-inner-border-radius);border-top-right-radius:var(--bs-modal-inner-border-radius)}.modal-header .btn-close{padding:calc(var(--bs-modal-header-padding-y) * .5) calc(var(--bs-modal-header-padding-x) * .5);margin:calc(-.5 * var(--bs-modal-header-padding-y)) calc(-.5 * var(--bs-modal-header-padding-x)) calc(-.5 * var(--bs-modal-header-padding-y)) auto}.modal-title{margin-bottom:0;line-height:var(--bs-modal-title-line-height)}.modal-body{position:relative;flex:1 1 auto;padding:var(--bs-modal-padding)}.modal-footer{display:flex;flex-shrink:0;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:calc(var(--bs-modal-padding) - var(--bs-modal-footer-gap) * .5);background-color:var(--bs-modal-footer-bg);border-top:var(--bs-modal-footer-border-width) solid var(--bs-modal-footer-border-color);border-bottom-right-radius:var(--bs-modal-inner-border-radius);border-bottom-left-radius:var(--bs-modal-inner-border-radius)}.modal-footer>*{margin:calc(var(--bs-modal-footer-gap) * .5)}@media (min-width:576px){.modal{--bs-modal-margin:1.75rem;--bs-modal-box-shadow:var(--bs-box-shadow)}.modal-dialog{max-width:var(--bs-modal-width);margin-right:auto;margin-left:auto}.modal-sm{--bs-modal-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{--bs-modal-width:800px}}@media (min-width:1200px){.modal-xl{--bs-modal-width:1140px}}.modal-fullscreen{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen .modal-footer,.modal-fullscreen .modal-header{border-radius:0}.modal-fullscreen .modal-body{overflow-y:auto}@media (max-width:575.98px){.modal-fullscreen-sm-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-sm-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-sm-down .modal-footer,.modal-fullscreen-sm-down .modal-header{border-radius:0}.modal-fullscreen-sm-down .modal-body{overflow-y:auto}}@media (max-width:767.98px){.modal-fullscreen-md-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-md-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-md-down .modal-footer,.modal-fullscreen-md-down .modal-header{border-radius:0}.modal-fullscreen-md-down .modal-body{overflow-y:auto}}@media (max-width:991.98px){.modal-fullscreen-lg-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-lg-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-lg-down .modal-footer,.modal-fullscreen-lg-down .modal-header{border-radius:0}.modal-fullscreen-lg-down .modal-body{overflow-y:auto}}@media (max-width:1199.98px){.modal-fullscreen-xl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xl-down .modal-footer,.modal-fullscreen-xl-down .modal-header{border-radius:0}.modal-fullscreen-xl-down .modal-body{overflow-y:auto}}@media (max-width:1399.98px){.modal-fullscreen-xxl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xxl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xxl-down .modal-footer,.modal-fullscreen-xxl-down .modal-header{border-radius:0}.modal-fullscreen-xxl-down .modal-body{overflow-y:auto}}.tooltip{--bs-tooltip-zindex:1080;--bs-tooltip-max-width:200px;--bs-tooltip-padding-x:0.5rem;--bs-tooltip-padding-y:0.25rem;--bs-tooltip-margin: ;--bs-tooltip-font-size:0.875rem;--bs-tooltip-color:var(--bs-body-bg);--bs-tooltip-bg:var(--bs-emphasis-color);--bs-tooltip-border-radius:var(--bs-border-radius);--bs-tooltip-opacity:0.9;--bs-tooltip-arrow-width:0.8rem;--bs-tooltip-arrow-height:0.4rem;z-index:var(--bs-tooltip-zindex);display:block;margin:var(--bs-tooltip-margin);font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--bs-tooltip-font-size);word-wrap:break-word;opacity:0}.tooltip.show{opacity:var(--bs-tooltip-opacity)}.tooltip .tooltip-arrow{display:block;width:var(--bs-tooltip-arrow-width);height:var(--bs-tooltip-arrow-height)}.tooltip .tooltip-arrow::before{position:absolute;content:\\\"\\\";border-color:transparent;border-style:solid}.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow,.bs-tooltip-top .tooltip-arrow{bottom:calc(-1 * var(--bs-tooltip-arrow-height))}.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before,.bs-tooltip-top .tooltip-arrow::before{top:-1px;border-width:var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * .5) 0;border-top-color:var(--bs-tooltip-bg)}.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow,.bs-tooltip-end .tooltip-arrow{left:calc(-1 * var(--bs-tooltip-arrow-height));width:var(--bs-tooltip-arrow-height);height:var(--bs-tooltip-arrow-width)}.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow::before,.bs-tooltip-end .tooltip-arrow::before{right:-1px;border-width:calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * .5) 0;border-right-color:var(--bs-tooltip-bg)}.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow,.bs-tooltip-bottom .tooltip-arrow{top:calc(-1 * var(--bs-tooltip-arrow-height))}.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before,.bs-tooltip-bottom .tooltip-arrow::before{bottom:-1px;border-width:0 calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height);border-bottom-color:var(--bs-tooltip-bg)}.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow,.bs-tooltip-start .tooltip-arrow{right:calc(-1 * var(--bs-tooltip-arrow-height));width:var(--bs-tooltip-arrow-height);height:var(--bs-tooltip-arrow-width)}.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow::before,.bs-tooltip-start .tooltip-arrow::before{left:-1px;border-width:calc(var(--bs-tooltip-arrow-width) * .5) 0 calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height);border-left-color:var(--bs-tooltip-bg)}.tooltip-inner{max-width:var(--bs-tooltip-max-width);padding:var(--bs-tooltip-padding-y) var(--bs-tooltip-padding-x);color:var(--bs-tooltip-color);text-align:center;background-color:var(--bs-tooltip-bg);border-radius:var(--bs-tooltip-border-radius)}.popover{--bs-popover-zindex:1070;--bs-popover-max-width:276px;--bs-popover-font-size:0.875rem;--bs-popover-bg:var(--bs-body-bg);--bs-popover-border-width:var(--bs-border-width);--bs-popover-border-color:var(--bs-border-color-translucent);--bs-popover-border-radius:var(--bs-border-radius-lg);--bs-popover-inner-border-radius:calc(var(--bs-border-radius-lg) - var(--bs-border-width));--bs-popover-box-shadow:var(--bs-box-shadow);--bs-popover-header-padding-x:1rem;--bs-popover-header-padding-y:0.5rem;--bs-popover-header-font-size:1rem;--bs-popover-header-color:inherit;--bs-popover-header-bg:var(--bs-secondary-bg);--bs-popover-body-padding-x:1rem;--bs-popover-body-padding-y:1rem;--bs-popover-body-color:var(--bs-body-color);--bs-popover-arrow-width:1rem;--bs-popover-arrow-height:0.5rem;--bs-popover-arrow-border:var(--bs-popover-border-color);z-index:var(--bs-popover-zindex);display:block;max-width:var(--bs-popover-max-width);font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--bs-popover-font-size);word-wrap:break-word;background-color:var(--bs-popover-bg);background-clip:padding-box;border:var(--bs-popover-border-width) solid var(--bs-popover-border-color);border-radius:var(--bs-popover-border-radius)}.popover .popover-arrow{display:block;width:var(--bs-popover-arrow-width);height:var(--bs-popover-arrow-height)}.popover .popover-arrow::after,.popover .popover-arrow::before{position:absolute;display:block;content:\\\"\\\";border-color:transparent;border-style:solid;border-width:0}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow,.bs-popover-top>.popover-arrow{bottom:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width))}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::before,.bs-popover-top>.popover-arrow::after,.bs-popover-top>.popover-arrow::before{border-width:var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * .5) 0}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::before,.bs-popover-top>.popover-arrow::before{bottom:0;border-top-color:var(--bs-popover-arrow-border)}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::after,.bs-popover-top>.popover-arrow::after{bottom:var(--bs-popover-border-width);border-top-color:var(--bs-popover-bg)}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow,.bs-popover-end>.popover-arrow{left:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height);height:var(--bs-popover-arrow-width)}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::before,.bs-popover-end>.popover-arrow::after,.bs-popover-end>.popover-arrow::before{border-width:calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * .5) 0}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::before,.bs-popover-end>.popover-arrow::before{left:0;border-right-color:var(--bs-popover-arrow-border)}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::after,.bs-popover-end>.popover-arrow::after{left:var(--bs-popover-border-width);border-right-color:var(--bs-popover-bg)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow,.bs-popover-bottom>.popover-arrow{top:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width))}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::before,.bs-popover-bottom>.popover-arrow::after,.bs-popover-bottom>.popover-arrow::before{border-width:0 calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::before,.bs-popover-bottom>.popover-arrow::before{top:0;border-bottom-color:var(--bs-popover-arrow-border)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::after,.bs-popover-bottom>.popover-arrow::after{top:var(--bs-popover-border-width);border-bottom-color:var(--bs-popover-bg)}.bs-popover-auto[data-popper-placement^=bottom] .popover-header::before,.bs-popover-bottom .popover-header::before{position:absolute;top:0;left:50%;display:block;width:var(--bs-popover-arrow-width);margin-left:calc(-.5 * var(--bs-popover-arrow-width));content:\\\"\\\";border-bottom:var(--bs-popover-border-width) solid var(--bs-popover-header-bg)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow,.bs-popover-start>.popover-arrow{right:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height);height:var(--bs-popover-arrow-width)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::before,.bs-popover-start>.popover-arrow::after,.bs-popover-start>.popover-arrow::before{border-width:calc(var(--bs-popover-arrow-width) * .5) 0 calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::before,.bs-popover-start>.popover-arrow::before{right:0;border-left-color:var(--bs-popover-arrow-border)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::after,.bs-popover-start>.popover-arrow::after{right:var(--bs-popover-border-width);border-left-color:var(--bs-popover-bg)}.popover-header{padding:var(--bs-popover-header-padding-y) var(--bs-popover-header-padding-x);margin-bottom:0;font-size:var(--bs-popover-header-font-size);color:var(--bs-popover-header-color);background-color:var(--bs-popover-header-bg);border-bottom:var(--bs-popover-border-width) solid var(--bs-popover-border-color);border-top-left-radius:var(--bs-popover-inner-border-radius);border-top-right-radius:var(--bs-popover-inner-border-radius)}.popover-header:empty{display:none}.popover-body{padding:var(--bs-popover-body-padding-y) var(--bs-popover-body-padding-x);color:var(--bs-popover-body-color)}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:\\\"\\\"}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-end,.carousel-item-next:not(.carousel-item-start){transform:translateX(100%)}.active.carousel-item-start,.carousel-item-prev:not(.carousel-item-end){transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item-next.carousel-item-start,.carousel-fade .carousel-item-prev.carousel-item-end,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-end,.carousel-fade .active.carousel-item-start{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-end,.carousel-fade .active.carousel-item-start{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;padding:0;color:#fff;text-align:center;background:0 0;border:0;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:2rem;height:2rem;background-repeat:no-repeat;background-position:50%;background-size:100% 100%}.carousel-control-prev-icon{background-image:url(\\\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e\\\")}.carousel-control-next-icon{background-image:url(\\\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e\\\")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:2;display:flex;justify-content:center;padding:0;margin-right:15%;margin-bottom:1rem;margin-left:15%}.carousel-indicators [data-bs-target]{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;padding:0;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border:0;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators [data-bs-target]{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:1.25rem;left:15%;padding-top:1.25rem;padding-bottom:1.25rem;color:#fff;text-align:center}.carousel-dark .carousel-control-next-icon,.carousel-dark .carousel-control-prev-icon{filter:invert(1) grayscale(100)}.carousel-dark .carousel-indicators [data-bs-target]{background-color:#000}.carousel-dark .carousel-caption{color:#000}[data-bs-theme=dark] .carousel .carousel-control-next-icon,[data-bs-theme=dark] .carousel .carousel-control-prev-icon,[data-bs-theme=dark].carousel .carousel-control-next-icon,[data-bs-theme=dark].carousel .carousel-control-prev-icon{filter:invert(1) grayscale(100)}[data-bs-theme=dark] .carousel .carousel-indicators [data-bs-target],[data-bs-theme=dark].carousel .carousel-indicators [data-bs-target]{background-color:#000}[data-bs-theme=dark] .carousel .carousel-caption,[data-bs-theme=dark].carousel .carousel-caption{color:#000}.spinner-border,.spinner-grow{display:inline-block;width:var(--bs-spinner-width);height:var(--bs-spinner-height);vertical-align:var(--bs-spinner-vertical-align);border-radius:50%;animation:var(--bs-spinner-animation-speed) linear infinite var(--bs-spinner-animation-name)}@keyframes spinner-border{to{transform:rotate(360deg)}}.spinner-border{--bs-spinner-width:2rem;--bs-spinner-height:2rem;--bs-spinner-vertical-align:-0.125em;--bs-spinner-border-width:0.25em;--bs-spinner-animation-speed:0.75s;--bs-spinner-animation-name:spinner-border;border:var(--bs-spinner-border-width) solid currentcolor;border-right-color:transparent}.spinner-border-sm{--bs-spinner-width:1rem;--bs-spinner-height:1rem;--bs-spinner-border-width:0.2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{--bs-spinner-width:2rem;--bs-spinner-height:2rem;--bs-spinner-vertical-align:-0.125em;--bs-spinner-animation-speed:0.75s;--bs-spinner-animation-name:spinner-grow;background-color:currentcolor;opacity:0}.spinner-grow-sm{--bs-spinner-width:1rem;--bs-spinner-height:1rem}@media (prefers-reduced-motion:reduce){.spinner-border,.spinner-grow{--bs-spinner-animation-speed:1.5s}}.offcanvas,.offcanvas-lg,.offcanvas-md,.offcanvas-sm,.offcanvas-xl,.offcanvas-xxl{--bs-offcanvas-zindex:1045;--bs-offcanvas-width:400px;--bs-offcanvas-height:30vh;--bs-offcanvas-padding-x:1rem;--bs-offcanvas-padding-y:1rem;--bs-offcanvas-color:var(--bs-body-color);--bs-offcanvas-bg:var(--bs-body-bg);--bs-offcanvas-border-width:var(--bs-border-width);--bs-offcanvas-border-color:var(--bs-border-color-translucent);--bs-offcanvas-box-shadow:var(--bs-box-shadow-sm);--bs-offcanvas-transition:transform 0.3s ease-in-out;--bs-offcanvas-title-line-height:1.5}@media (max-width:575.98px){.offcanvas-sm{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width:575.98px) and (prefers-reduced-motion:reduce){.offcanvas-sm{transition:none}}@media (max-width:575.98px){.offcanvas-sm.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-sm.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-sm.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-sm.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-sm.show:not(.hiding),.offcanvas-sm.showing{transform:none}.offcanvas-sm.hiding,.offcanvas-sm.show,.offcanvas-sm.showing{visibility:visible}}@media (min-width:576px){.offcanvas-sm{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-sm .offcanvas-header{display:none}.offcanvas-sm .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width:767.98px){.offcanvas-md{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width:767.98px) and (prefers-reduced-motion:reduce){.offcanvas-md{transition:none}}@media (max-width:767.98px){.offcanvas-md.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-md.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-md.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-md.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-md.show:not(.hiding),.offcanvas-md.showing{transform:none}.offcanvas-md.hiding,.offcanvas-md.show,.offcanvas-md.showing{visibility:visible}}@media (min-width:768px){.offcanvas-md{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-md .offcanvas-header{display:none}.offcanvas-md .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width:991.98px){.offcanvas-lg{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width:991.98px) and (prefers-reduced-motion:reduce){.offcanvas-lg{transition:none}}@media (max-width:991.98px){.offcanvas-lg.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-lg.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-lg.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-lg.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-lg.show:not(.hiding),.offcanvas-lg.showing{transform:none}.offcanvas-lg.hiding,.offcanvas-lg.show,.offcanvas-lg.showing{visibility:visible}}@media (min-width:992px){.offcanvas-lg{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-lg .offcanvas-header{display:none}.offcanvas-lg .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width:1199.98px){.offcanvas-xl{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width:1199.98px) and (prefers-reduced-motion:reduce){.offcanvas-xl{transition:none}}@media (max-width:1199.98px){.offcanvas-xl.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-xl.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-xl.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-xl.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-xl.show:not(.hiding),.offcanvas-xl.showing{transform:none}.offcanvas-xl.hiding,.offcanvas-xl.show,.offcanvas-xl.showing{visibility:visible}}@media (min-width:1200px){.offcanvas-xl{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-xl .offcanvas-header{display:none}.offcanvas-xl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width:1399.98px){.offcanvas-xxl{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width:1399.98px) and (prefers-reduced-motion:reduce){.offcanvas-xxl{transition:none}}@media (max-width:1399.98px){.offcanvas-xxl.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-xxl.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-xxl.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-xxl.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-xxl.show:not(.hiding),.offcanvas-xxl.showing{transform:none}.offcanvas-xxl.hiding,.offcanvas-xxl.show,.offcanvas-xxl.showing{visibility:visible}}@media (min-width:1400px){.offcanvas-xxl{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-xxl .offcanvas-header{display:none}.offcanvas-xxl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}.offcanvas{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}@media (prefers-reduced-motion:reduce){.offcanvas{transition:none}}.offcanvas.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas.show:not(.hiding),.offcanvas.showing{transform:none}.offcanvas.hiding,.offcanvas.show,.offcanvas.showing{visibility:visible}.offcanvas-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.offcanvas-backdrop.fade{opacity:0}.offcanvas-backdrop.show{opacity:.5}.offcanvas-header{display:flex;align-items:center;padding:var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x)}.offcanvas-header .btn-close{padding:calc(var(--bs-offcanvas-padding-y) * .5) calc(var(--bs-offcanvas-padding-x) * .5);margin:calc(-.5 * var(--bs-offcanvas-padding-y)) calc(-.5 * var(--bs-offcanvas-padding-x)) calc(-.5 * var(--bs-offcanvas-padding-y)) auto}.offcanvas-title{margin-bottom:0;line-height:var(--bs-offcanvas-title-line-height)}.offcanvas-body{flex-grow:1;padding:var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x);overflow-y:auto}.placeholder{display:inline-block;min-height:1em;vertical-align:middle;cursor:wait;background-color:currentcolor;opacity:.5}.placeholder.btn::before{display:inline-block;content:\\\"\\\"}.placeholder-xs{min-height:.6em}.placeholder-sm{min-height:.8em}.placeholder-lg{min-height:1.2em}.placeholder-glow .placeholder{animation:placeholder-glow 2s ease-in-out infinite}@keyframes placeholder-glow{50%{opacity:.2}}.placeholder-wave{-webkit-mask-image:linear-gradient(130deg,#000 55%,rgba(0,0,0,0.8) 75%,#000 95%);mask-image:linear-gradient(130deg,#000 55%,rgba(0,0,0,0.8) 75%,#000 95%);-webkit-mask-size:200% 100%;mask-size:200% 100%;animation:placeholder-wave 2s linear infinite}@keyframes placeholder-wave{100%{-webkit-mask-position:-200% 0%;mask-position:-200% 0%}}.clearfix::after{display:block;clear:both;content:\\\"\\\"}.text-bg-primary{color:#fff!important;background-color:RGBA(var(--bs-primary-rgb),var(--bs-bg-opacity,1))!important}.text-bg-secondary{color:#fff!important;background-color:RGBA(var(--bs-secondary-rgb),var(--bs-bg-opacity,1))!important}.text-bg-success{color:#fff!important;background-color:RGBA(var(--bs-success-rgb),var(--bs-bg-opacity,1))!important}.text-bg-info{color:#000!important;background-color:RGBA(var(--bs-info-rgb),var(--bs-bg-opacity,1))!important}.text-bg-warning{color:#000!important;background-color:RGBA(var(--bs-warning-rgb),var(--bs-bg-opacity,1))!important}.text-bg-danger{color:#fff!important;background-color:RGBA(var(--bs-danger-rgb),var(--bs-bg-opacity,1))!important}.text-bg-light{color:#000!important;background-color:RGBA(var(--bs-light-rgb),var(--bs-bg-opacity,1))!important}.text-bg-dark{color:#fff!important;background-color:RGBA(var(--bs-dark-rgb),var(--bs-bg-opacity,1))!important}.link-primary{color:RGBA(var(--bs-primary-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-primary-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-primary-rgb),var(--bs-link-underline-opacity,1))!important}.link-primary:focus,.link-primary:hover{color:RGBA(10,88,202,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(10,88,202,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(10,88,202,var(--bs-link-underline-opacity,1))!important}.link-secondary{color:RGBA(var(--bs-secondary-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-secondary-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-secondary-rgb),var(--bs-link-underline-opacity,1))!important}.link-secondary:focus,.link-secondary:hover{color:RGBA(86,94,100,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(86,94,100,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(86,94,100,var(--bs-link-underline-opacity,1))!important}.link-success{color:RGBA(var(--bs-success-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-success-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-success-rgb),var(--bs-link-underline-opacity,1))!important}.link-success:focus,.link-success:hover{color:RGBA(20,108,67,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(20,108,67,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(20,108,67,var(--bs-link-underline-opacity,1))!important}.link-info{color:RGBA(var(--bs-info-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-info-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-info-rgb),var(--bs-link-underline-opacity,1))!important}.link-info:focus,.link-info:hover{color:RGBA(61,213,243,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(61,213,243,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(61,213,243,var(--bs-link-underline-opacity,1))!important}.link-warning{color:RGBA(var(--bs-warning-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-warning-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-warning-rgb),var(--bs-link-underline-opacity,1))!important}.link-warning:focus,.link-warning:hover{color:RGBA(255,205,57,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(255,205,57,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(255,205,57,var(--bs-link-underline-opacity,1))!important}.link-danger{color:RGBA(var(--bs-danger-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-danger-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-danger-rgb),var(--bs-link-underline-opacity,1))!important}.link-danger:focus,.link-danger:hover{color:RGBA(176,42,55,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(176,42,55,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(176,42,55,var(--bs-link-underline-opacity,1))!important}.link-light{color:RGBA(var(--bs-light-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-light-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-light-rgb),var(--bs-link-underline-opacity,1))!important}.link-light:focus,.link-light:hover{color:RGBA(249,250,251,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(249,250,251,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(249,250,251,var(--bs-link-underline-opacity,1))!important}.link-dark{color:RGBA(var(--bs-dark-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-dark-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-dark-rgb),var(--bs-link-underline-opacity,1))!important}.link-dark:focus,.link-dark:hover{color:RGBA(26,30,33,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(26,30,33,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(26,30,33,var(--bs-link-underline-opacity,1))!important}.link-body-emphasis{color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-underline-opacity,1))!important}.link-body-emphasis:focus,.link-body-emphasis:hover{color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-opacity,.75))!important;-webkit-text-decoration-color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-underline-opacity,0.75))!important;text-decoration-color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-underline-opacity,0.75))!important}.focus-ring:focus{outline:0;box-shadow:var(--bs-focus-ring-x,0) var(--bs-focus-ring-y,0) var(--bs-focus-ring-blur,0) var(--bs-focus-ring-width) var(--bs-focus-ring-color)}.icon-link{display:inline-flex;gap:.375rem;align-items:center;-webkit-text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-opacity,0.5));text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-opacity,0.5));text-underline-offset:0.25em;-webkit-backface-visibility:hidden;backface-visibility:hidden}.icon-link>.bi{flex-shrink:0;width:1em;height:1em;fill:currentcolor;transition:.2s ease-in-out transform}@media (prefers-reduced-motion:reduce){.icon-link>.bi{transition:none}}.icon-link-hover:focus-visible>.bi,.icon-link-hover:hover>.bi{transform:var(--bs-icon-link-transform,translate3d(.25em,0,0))}.ratio{position:relative;width:100%}.ratio::before{display:block;padding-top:var(--bs-aspect-ratio);content:\\\"\\\"}.ratio>*{position:absolute;top:0;left:0;width:100%;height:100%}.ratio-1x1{--bs-aspect-ratio:100%}.ratio-4x3{--bs-aspect-ratio:75%}.ratio-16x9{--bs-aspect-ratio:56.25%}.ratio-21x9{--bs-aspect-ratio:42.8571428571%}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}@media (min-width:576px){.sticky-sm-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-sm-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}}@media (min-width:768px){.sticky-md-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-md-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}}@media (min-width:992px){.sticky-lg-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-lg-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}}@media (min-width:1200px){.sticky-xl-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-xl-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}}@media (min-width:1400px){.sticky-xxl-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-xxl-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}}.hstack{display:flex;flex-direction:row;align-items:center;align-self:stretch}.vstack{display:flex;flex:1 1 auto;flex-direction:column;align-self:stretch}.visually-hidden,.visually-hidden-focusable:not(:focus):not(:focus-within){width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.visually-hidden-focusable:not(:focus):not(:focus-within):not(caption),.visually-hidden:not(caption){position:absolute!important}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;content:\\\"\\\"}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vr{display:inline-block;align-self:stretch;width:var(--bs-border-width);min-height:1em;background-color:currentcolor;opacity:.25}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.float-start{float:left!important}.float-end{float:right!important}.float-none{float:none!important}.object-fit-contain{-o-object-fit:contain!important;object-fit:contain!important}.object-fit-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fit-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-fit-scale{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-fit-none{-o-object-fit:none!important;object-fit:none!important}.opacity-0{opacity:0!important}.opacity-25{opacity:.25!important}.opacity-50{opacity:.5!important}.opacity-75{opacity:.75!important}.opacity-100{opacity:1!important}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.overflow-visible{overflow:visible!important}.overflow-scroll{overflow:scroll!important}.overflow-x-auto{overflow-x:auto!important}.overflow-x-hidden{overflow-x:hidden!important}.overflow-x-visible{overflow-x:visible!important}.overflow-x-scroll{overflow-x:scroll!important}.overflow-y-auto{overflow-y:auto!important}.overflow-y-hidden{overflow-y:hidden!important}.overflow-y-visible{overflow-y:visible!important}.overflow-y-scroll{overflow-y:scroll!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-grid{display:grid!important}.d-inline-grid{display:inline-grid!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}.d-none{display:none!important}.shadow{box-shadow:var(--bs-box-shadow)!important}.shadow-sm{box-shadow:var(--bs-box-shadow-sm)!important}.shadow-lg{box-shadow:var(--bs-box-shadow-lg)!important}.shadow-none{box-shadow:none!important}.focus-ring-primary{--bs-focus-ring-color:rgba(var(--bs-primary-rgb), var(--bs-focus-ring-opacity))}.focus-ring-secondary{--bs-focus-ring-color:rgba(var(--bs-secondary-rgb), var(--bs-focus-ring-opacity))}.focus-ring-success{--bs-focus-ring-color:rgba(var(--bs-success-rgb), var(--bs-focus-ring-opacity))}.focus-ring-info{--bs-focus-ring-color:rgba(var(--bs-info-rgb), var(--bs-focus-ring-opacity))}.focus-ring-warning{--bs-focus-ring-color:rgba(var(--bs-warning-rgb), var(--bs-focus-ring-opacity))}.focus-ring-danger{--bs-focus-ring-color:rgba(var(--bs-danger-rgb), var(--bs-focus-ring-opacity))}.focus-ring-light{--bs-focus-ring-color:rgba(var(--bs-light-rgb), var(--bs-focus-ring-opacity))}.focus-ring-dark{--bs-focus-ring-color:rgba(var(--bs-dark-rgb), var(--bs-focus-ring-opacity))}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.top-0{top:0!important}.top-50{top:50%!important}.top-100{top:100%!important}.bottom-0{bottom:0!important}.bottom-50{bottom:50%!important}.bottom-100{bottom:100%!important}.start-0{left:0!important}.start-50{left:50%!important}.start-100{left:100%!important}.end-0{right:0!important}.end-50{right:50%!important}.end-100{right:100%!important}.translate-middle{transform:translate(-50%,-50%)!important}.translate-middle-x{transform:translateX(-50%)!important}.translate-middle-y{transform:translateY(-50%)!important}.border{border:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-0{border:0!important}.border-top{border-top:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-top-0{border-top:0!important}.border-end{border-right:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-end-0{border-right:0!important}.border-bottom{border-bottom:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-bottom-0{border-bottom:0!important}.border-start{border-left:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-start-0{border-left:0!important}.border-primary{--bs-border-opacity:1;border-color:rgba(var(--bs-primary-rgb),var(--bs-border-opacity))!important}.border-secondary{--bs-border-opacity:1;border-color:rgba(var(--bs-secondary-rgb),var(--bs-border-opacity))!important}.border-success{--bs-border-opacity:1;border-color:rgba(var(--bs-success-rgb),var(--bs-border-opacity))!important}.border-info{--bs-border-opacity:1;border-color:rgba(var(--bs-info-rgb),var(--bs-border-opacity))!important}.border-warning{--bs-border-opacity:1;border-color:rgba(var(--bs-warning-rgb),var(--bs-border-opacity))!important}.border-danger{--bs-border-opacity:1;border-color:rgba(var(--bs-danger-rgb),var(--bs-border-opacity))!important}.border-light{--bs-border-opacity:1;border-color:rgba(var(--bs-light-rgb),var(--bs-border-opacity))!important}.border-dark{--bs-border-opacity:1;border-color:rgba(var(--bs-dark-rgb),var(--bs-border-opacity))!important}.border-black{--bs-border-opacity:1;border-color:rgba(var(--bs-black-rgb),var(--bs-border-opacity))!important}.border-white{--bs-border-opacity:1;border-color:rgba(var(--bs-white-rgb),var(--bs-border-opacity))!important}.border-primary-subtle{border-color:var(--bs-primary-border-subtle)!important}.border-secondary-subtle{border-color:var(--bs-secondary-border-subtle)!important}.border-success-subtle{border-color:var(--bs-success-border-subtle)!important}.border-info-subtle{border-color:var(--bs-info-border-subtle)!important}.border-warning-subtle{border-color:var(--bs-warning-border-subtle)!important}.border-danger-subtle{border-color:var(--bs-danger-border-subtle)!important}.border-light-subtle{border-color:var(--bs-light-border-subtle)!important}.border-dark-subtle{border-color:var(--bs-dark-border-subtle)!important}.border-1{border-width:1px!important}.border-2{border-width:2px!important}.border-3{border-width:3px!important}.border-4{border-width:4px!important}.border-5{border-width:5px!important}.border-opacity-10{--bs-border-opacity:0.1}.border-opacity-25{--bs-border-opacity:0.25}.border-opacity-50{--bs-border-opacity:0.5}.border-opacity-75{--bs-border-opacity:0.75}.border-opacity-100{--bs-border-opacity:1}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.mw-100{max-width:100%!important}.vw-100{width:100vw!important}.min-vw-100{min-width:100vw!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mh-100{max-height:100%!important}.vh-100{height:100vh!important}.min-vh-100{min-height:100vh!important}.flex-fill{flex:1 1 auto!important}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.justify-content-evenly{justify-content:space-evenly!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}.order-first{order:-1!important}.order-0{order:0!important}.order-1{order:1!important}.order-2{order:2!important}.order-3{order:3!important}.order-4{order:4!important}.order-5{order:5!important}.order-last{order:6!important}.m-0{margin:0!important}.m-1{margin:.25rem!important}.m-2{margin:.5rem!important}.m-3{margin:1rem!important}.m-4{margin:1.5rem!important}.m-5{margin:3rem!important}.m-auto{margin:auto!important}.mx-0{margin-right:0!important;margin-left:0!important}.mx-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-3{margin-right:1rem!important;margin-left:1rem!important}.mx-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-5{margin-right:3rem!important;margin-left:3rem!important}.mx-auto{margin-right:auto!important;margin-left:auto!important}.my-0{margin-top:0!important;margin-bottom:0!important}.my-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-0{margin-top:0!important}.mt-1{margin-top:.25rem!important}.mt-2{margin-top:.5rem!important}.mt-3{margin-top:1rem!important}.mt-4{margin-top:1.5rem!important}.mt-5{margin-top:3rem!important}.mt-auto{margin-top:auto!important}.me-0{margin-right:0!important}.me-1{margin-right:.25rem!important}.me-2{margin-right:.5rem!important}.me-3{margin-right:1rem!important}.me-4{margin-right:1.5rem!important}.me-5{margin-right:3rem!important}.me-auto{margin-right:auto!important}.mb-0{margin-bottom:0!important}.mb-1{margin-bottom:.25rem!important}.mb-2{margin-bottom:.5rem!important}.mb-3{margin-bottom:1rem!important}.mb-4{margin-bottom:1.5rem!important}.mb-5{margin-bottom:3rem!important}.mb-auto{margin-bottom:auto!important}.ms-0{margin-left:0!important}.ms-1{margin-left:.25rem!important}.ms-2{margin-left:.5rem!important}.ms-3{margin-left:1rem!important}.ms-4{margin-left:1.5rem!important}.ms-5{margin-left:3rem!important}.ms-auto{margin-left:auto!important}.p-0{padding:0!important}.p-1{padding:.25rem!important}.p-2{padding:.5rem!important}.p-3{padding:1rem!important}.p-4{padding:1.5rem!important}.p-5{padding:3rem!important}.px-0{padding-right:0!important;padding-left:0!important}.px-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-3{padding-right:1rem!important;padding-left:1rem!important}.px-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-5{padding-right:3rem!important;padding-left:3rem!important}.py-0{padding-top:0!important;padding-bottom:0!important}.py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-0{padding-top:0!important}.pt-1{padding-top:.25rem!important}.pt-2{padding-top:.5rem!important}.pt-3{padding-top:1rem!important}.pt-4{padding-top:1.5rem!important}.pt-5{padding-top:3rem!important}.pe-0{padding-right:0!important}.pe-1{padding-right:.25rem!important}.pe-2{padding-right:.5rem!important}.pe-3{padding-right:1rem!important}.pe-4{padding-right:1.5rem!important}.pe-5{padding-right:3rem!important}.pb-0{padding-bottom:0!important}.pb-1{padding-bottom:.25rem!important}.pb-2{padding-bottom:.5rem!important}.pb-3{padding-bottom:1rem!important}.pb-4{padding-bottom:1.5rem!important}.pb-5{padding-bottom:3rem!important}.ps-0{padding-left:0!important}.ps-1{padding-left:.25rem!important}.ps-2{padding-left:.5rem!important}.ps-3{padding-left:1rem!important}.ps-4{padding-left:1.5rem!important}.ps-5{padding-left:3rem!important}.gap-0{gap:0!important}.gap-1{gap:.25rem!important}.gap-2{gap:.5rem!important}.gap-3{gap:1rem!important}.gap-4{gap:1.5rem!important}.gap-5{gap:3rem!important}.row-gap-0{row-gap:0!important}.row-gap-1{row-gap:.25rem!important}.row-gap-2{row-gap:.5rem!important}.row-gap-3{row-gap:1rem!important}.row-gap-4{row-gap:1.5rem!important}.row-gap-5{row-gap:3rem!important}.column-gap-0{-moz-column-gap:0!important;column-gap:0!important}.column-gap-1{-moz-column-gap:0.25rem!important;column-gap:.25rem!important}.column-gap-2{-moz-column-gap:0.5rem!important;column-gap:.5rem!important}.column-gap-3{-moz-column-gap:1rem!important;column-gap:1rem!important}.column-gap-4{-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.column-gap-5{-moz-column-gap:3rem!important;column-gap:3rem!important}.font-monospace{font-family:var(--bs-font-monospace)!important}.fs-1{font-size:calc(1.375rem + 1.5vw)!important}.fs-2{font-size:calc(1.325rem + .9vw)!important}.fs-3{font-size:calc(1.3rem + .6vw)!important}.fs-4{font-size:calc(1.275rem + .3vw)!important}.fs-5{font-size:1.25rem!important}.fs-6{font-size:1rem!important}.fst-italic{font-style:italic!important}.fst-normal{font-style:normal!important}.fw-lighter{font-weight:lighter!important}.fw-light{font-weight:300!important}.fw-normal{font-weight:400!important}.fw-medium{font-weight:500!important}.fw-semibold{font-weight:600!important}.fw-bold{font-weight:700!important}.fw-bolder{font-weight:bolder!important}.lh-1{line-height:1!important}.lh-sm{line-height:1.25!important}.lh-base{line-height:1.5!important}.lh-lg{line-height:2!important}.text-start{text-align:left!important}.text-end{text-align:right!important}.text-center{text-align:center!important}.text-decoration-none{text-decoration:none!important}.text-decoration-underline{text-decoration:underline!important}.text-decoration-line-through{text-decoration:line-through!important}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-break{word-wrap:break-word!important;word-break:break-word!important}.text-primary{--bs-text-opacity:1;color:rgba(var(--bs-primary-rgb),var(--bs-text-opacity))!important}.text-secondary{--bs-text-opacity:1;color:rgba(var(--bs-secondary-rgb),var(--bs-text-opacity))!important}.text-success{--bs-text-opacity:1;color:rgba(var(--bs-success-rgb),var(--bs-text-opacity))!important}.text-info{--bs-text-opacity:1;color:rgba(var(--bs-info-rgb),var(--bs-text-opacity))!important}.text-warning{--bs-text-opacity:1;color:rgba(var(--bs-warning-rgb),var(--bs-text-opacity))!important}.text-danger{--bs-text-opacity:1;color:rgba(var(--bs-danger-rgb),var(--bs-text-opacity))!important}.text-light{--bs-text-opacity:1;color:rgba(var(--bs-light-rgb),var(--bs-text-opacity))!important}.text-dark{--bs-text-opacity:1;color:rgba(var(--bs-dark-rgb),var(--bs-text-opacity))!important}.text-black{--bs-text-opacity:1;color:rgba(var(--bs-black-rgb),var(--bs-text-opacity))!important}.text-white{--bs-text-opacity:1;color:rgba(var(--bs-white-rgb),var(--bs-text-opacity))!important}.text-body{--bs-text-opacity:1;color:rgba(var(--bs-body-color-rgb),var(--bs-text-opacity))!important}.text-muted{--bs-text-opacity:1;color:var(--bs-secondary-color)!important}.text-black-50{--bs-text-opacity:1;color:rgba(0,0,0,.5)!important}.text-white-50{--bs-text-opacity:1;color:rgba(255,255,255,.5)!important}.text-body-secondary{--bs-text-opacity:1;color:var(--bs-secondary-color)!important}.text-body-tertiary{--bs-text-opacity:1;color:var(--bs-tertiary-color)!important}.text-body-emphasis{--bs-text-opacity:1;color:var(--bs-emphasis-color)!important}.text-reset{--bs-text-opacity:1;color:inherit!important}.text-opacity-25{--bs-text-opacity:0.25}.text-opacity-50{--bs-text-opacity:0.5}.text-opacity-75{--bs-text-opacity:0.75}.text-opacity-100{--bs-text-opacity:1}.text-primary-emphasis{color:var(--bs-primary-text-emphasis)!important}.text-secondary-emphasis{color:var(--bs-secondary-text-emphasis)!important}.text-success-emphasis{color:var(--bs-success-text-emphasis)!important}.text-info-emphasis{color:var(--bs-info-text-emphasis)!important}.text-warning-emphasis{color:var(--bs-warning-text-emphasis)!important}.text-danger-emphasis{color:var(--bs-danger-text-emphasis)!important}.text-light-emphasis{color:var(--bs-light-text-emphasis)!important}.text-dark-emphasis{color:var(--bs-dark-text-emphasis)!important}.link-opacity-10{--bs-link-opacity:0.1}.link-opacity-10-hover:hover{--bs-link-opacity:0.1}.link-opacity-25{--bs-link-opacity:0.25}.link-opacity-25-hover:hover{--bs-link-opacity:0.25}.link-opacity-50{--bs-link-opacity:0.5}.link-opacity-50-hover:hover{--bs-link-opacity:0.5}.link-opacity-75{--bs-link-opacity:0.75}.link-opacity-75-hover:hover{--bs-link-opacity:0.75}.link-opacity-100{--bs-link-opacity:1}.link-opacity-100-hover:hover{--bs-link-opacity:1}.link-offset-1{text-underline-offset:0.125em!important}.link-offset-1-hover:hover{text-underline-offset:0.125em!important}.link-offset-2{text-underline-offset:0.25em!important}.link-offset-2-hover:hover{text-underline-offset:0.25em!important}.link-offset-3{text-underline-offset:0.375em!important}.link-offset-3-hover:hover{text-underline-offset:0.375em!important}.link-underline-primary{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-primary-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-primary-rgb),var(--bs-link-underline-opacity))!important}.link-underline-secondary{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-secondary-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-secondary-rgb),var(--bs-link-underline-opacity))!important}.link-underline-success{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-success-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-success-rgb),var(--bs-link-underline-opacity))!important}.link-underline-info{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-info-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-info-rgb),var(--bs-link-underline-opacity))!important}.link-underline-warning{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-warning-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-warning-rgb),var(--bs-link-underline-opacity))!important}.link-underline-danger{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-danger-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-danger-rgb),var(--bs-link-underline-opacity))!important}.link-underline-light{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-light-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-light-rgb),var(--bs-link-underline-opacity))!important}.link-underline-dark{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-dark-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-dark-rgb),var(--bs-link-underline-opacity))!important}.link-underline{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-underline-opacity,1))!important}.link-underline-opacity-0{--bs-link-underline-opacity:0}.link-underline-opacity-0-hover:hover{--bs-link-underline-opacity:0}.link-underline-opacity-10{--bs-link-underline-opacity:0.1}.link-underline-opacity-10-hover:hover{--bs-link-underline-opacity:0.1}.link-underline-opacity-25{--bs-link-underline-opacity:0.25}.link-underline-opacity-25-hover:hover{--bs-link-underline-opacity:0.25}.link-underline-opacity-50{--bs-link-underline-opacity:0.5}.link-underline-opacity-50-hover:hover{--bs-link-underline-opacity:0.5}.link-underline-opacity-75{--bs-link-underline-opacity:0.75}.link-underline-opacity-75-hover:hover{--bs-link-underline-opacity:0.75}.link-underline-opacity-100{--bs-link-underline-opacity:1}.link-underline-opacity-100-hover:hover{--bs-link-underline-opacity:1}.bg-primary{--bs-bg-opacity:1;background-color:rgba(var(--bs-primary-rgb),var(--bs-bg-opacity))!important}.bg-secondary{--bs-bg-opacity:1;background-color:rgba(var(--bs-secondary-rgb),var(--bs-bg-opacity))!important}.bg-success{--bs-bg-opacity:1;background-color:rgba(var(--bs-success-rgb),var(--bs-bg-opacity))!important}.bg-info{--bs-bg-opacity:1;background-color:rgba(var(--bs-info-rgb),var(--bs-bg-opacity))!important}.bg-warning{--bs-bg-opacity:1;background-color:rgba(var(--bs-warning-rgb),var(--bs-bg-opacity))!important}.bg-danger{--bs-bg-opacity:1;background-color:rgba(var(--bs-danger-rgb),var(--bs-bg-opacity))!important}.bg-light{--bs-bg-opacity:1;background-color:rgba(var(--bs-light-rgb),var(--bs-bg-opacity))!important}.bg-dark{--bs-bg-opacity:1;background-color:rgba(var(--bs-dark-rgb),var(--bs-bg-opacity))!important}.bg-black{--bs-bg-opacity:1;background-color:rgba(var(--bs-black-rgb),var(--bs-bg-opacity))!important}.bg-white{--bs-bg-opacity:1;background-color:rgba(var(--bs-white-rgb),var(--bs-bg-opacity))!important}.bg-body{--bs-bg-opacity:1;background-color:rgba(var(--bs-body-bg-rgb),var(--bs-bg-opacity))!important}.bg-transparent{--bs-bg-opacity:1;background-color:transparent!important}.bg-body-secondary{--bs-bg-opacity:1;background-color:rgba(var(--bs-secondary-bg-rgb),var(--bs-bg-opacity))!important}.bg-body-tertiary{--bs-bg-opacity:1;background-color:rgba(var(--bs-tertiary-bg-rgb),var(--bs-bg-opacity))!important}.bg-opacity-10{--bs-bg-opacity:0.1}.bg-opacity-25{--bs-bg-opacity:0.25}.bg-opacity-50{--bs-bg-opacity:0.5}.bg-opacity-75{--bs-bg-opacity:0.75}.bg-opacity-100{--bs-bg-opacity:1}.bg-primary-subtle{background-color:var(--bs-primary-bg-subtle)!important}.bg-secondary-subtle{background-color:var(--bs-secondary-bg-subtle)!important}.bg-success-subtle{background-color:var(--bs-success-bg-subtle)!important}.bg-info-subtle{background-color:var(--bs-info-bg-subtle)!important}.bg-warning-subtle{background-color:var(--bs-warning-bg-subtle)!important}.bg-danger-subtle{background-color:var(--bs-danger-bg-subtle)!important}.bg-light-subtle{background-color:var(--bs-light-bg-subtle)!important}.bg-dark-subtle{background-color:var(--bs-dark-bg-subtle)!important}.bg-gradient{background-image:var(--bs-gradient)!important}.user-select-all{-webkit-user-select:all!important;-moz-user-select:all!important;user-select:all!important}.user-select-auto{-webkit-user-select:auto!important;-moz-user-select:auto!important;user-select:auto!important}.user-select-none{-webkit-user-select:none!important;-moz-user-select:none!important;user-select:none!important}.pe-none{pointer-events:none!important}.pe-auto{pointer-events:auto!important}.rounded{border-radius:var(--bs-border-radius)!important}.rounded-0{border-radius:0!important}.rounded-1{border-radius:var(--bs-border-radius-sm)!important}.rounded-2{border-radius:var(--bs-border-radius)!important}.rounded-3{border-radius:var(--bs-border-radius-lg)!important}.rounded-4{border-radius:var(--bs-border-radius-xl)!important}.rounded-5{border-radius:var(--bs-border-radius-xxl)!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:var(--bs-border-radius-pill)!important}.rounded-top{border-top-left-radius:var(--bs-border-radius)!important;border-top-right-radius:var(--bs-border-radius)!important}.rounded-top-0{border-top-left-radius:0!important;border-top-right-radius:0!important}.rounded-top-1{border-top-left-radius:var(--bs-border-radius-sm)!important;border-top-right-radius:var(--bs-border-radius-sm)!important}.rounded-top-2{border-top-left-radius:var(--bs-border-radius)!important;border-top-right-radius:var(--bs-border-radius)!important}.rounded-top-3{border-top-left-radius:var(--bs-border-radius-lg)!important;border-top-right-radius:var(--bs-border-radius-lg)!important}.rounded-top-4{border-top-left-radius:var(--bs-border-radius-xl)!important;border-top-right-radius:var(--bs-border-radius-xl)!important}.rounded-top-5{border-top-left-radius:var(--bs-border-radius-xxl)!important;border-top-right-radius:var(--bs-border-radius-xxl)!important}.rounded-top-circle{border-top-left-radius:50%!important;border-top-right-radius:50%!important}.rounded-top-pill{border-top-left-radius:var(--bs-border-radius-pill)!important;border-top-right-radius:var(--bs-border-radius-pill)!important}.rounded-end{border-top-right-radius:var(--bs-border-radius)!important;border-bottom-right-radius:var(--bs-border-radius)!important}.rounded-end-0{border-top-right-radius:0!important;border-bottom-right-radius:0!important}.rounded-end-1{border-top-right-radius:var(--bs-border-radius-sm)!important;border-bottom-right-radius:var(--bs-border-radius-sm)!important}.rounded-end-2{border-top-right-radius:var(--bs-border-radius)!important;border-bottom-right-radius:var(--bs-border-radius)!important}.rounded-end-3{border-top-right-radius:var(--bs-border-radius-lg)!important;border-bottom-right-radius:var(--bs-border-radius-lg)!important}.rounded-end-4{border-top-right-radius:var(--bs-border-radius-xl)!important;border-bottom-right-radius:var(--bs-border-radius-xl)!important}.rounded-end-5{border-top-right-radius:var(--bs-border-radius-xxl)!important;border-bottom-right-radius:var(--bs-border-radius-xxl)!important}.rounded-end-circle{border-top-right-radius:50%!important;border-bottom-right-radius:50%!important}.rounded-end-pill{border-top-right-radius:var(--bs-border-radius-pill)!important;border-bottom-right-radius:var(--bs-border-radius-pill)!important}.rounded-bottom{border-bottom-right-radius:var(--bs-border-radius)!important;border-bottom-left-radius:var(--bs-border-radius)!important}.rounded-bottom-0{border-bottom-right-radius:0!important;border-bottom-left-radius:0!important}.rounded-bottom-1{border-bottom-right-radius:var(--bs-border-radius-sm)!important;border-bottom-left-radius:var(--bs-border-radius-sm)!important}.rounded-bottom-2{border-bottom-right-radius:var(--bs-border-radius)!important;border-bottom-left-radius:var(--bs-border-radius)!important}.rounded-bottom-3{border-bottom-right-radius:var(--bs-border-radius-lg)!important;border-bottom-left-radius:var(--bs-border-radius-lg)!important}.rounded-bottom-4{border-bottom-right-radius:var(--bs-border-radius-xl)!important;border-bottom-left-radius:var(--bs-border-radius-xl)!important}.rounded-bottom-5{border-bottom-right-radius:var(--bs-border-radius-xxl)!important;border-bottom-left-radius:var(--bs-border-radius-xxl)!important}.rounded-bottom-circle{border-bottom-right-radius:50%!important;border-bottom-left-radius:50%!important}.rounded-bottom-pill{border-bottom-right-radius:var(--bs-border-radius-pill)!important;border-bottom-left-radius:var(--bs-border-radius-pill)!important}.rounded-start{border-bottom-left-radius:var(--bs-border-radius)!important;border-top-left-radius:var(--bs-border-radius)!important}.rounded-start-0{border-bottom-left-radius:0!important;border-top-left-radius:0!important}.rounded-start-1{border-bottom-left-radius:var(--bs-border-radius-sm)!important;border-top-left-radius:var(--bs-border-radius-sm)!important}.rounded-start-2{border-bottom-left-radius:var(--bs-border-radius)!important;border-top-left-radius:var(--bs-border-radius)!important}.rounded-start-3{border-bottom-left-radius:var(--bs-border-radius-lg)!important;border-top-left-radius:var(--bs-border-radius-lg)!important}.rounded-start-4{border-bottom-left-radius:var(--bs-border-radius-xl)!important;border-top-left-radius:var(--bs-border-radius-xl)!important}.rounded-start-5{border-bottom-left-radius:var(--bs-border-radius-xxl)!important;border-top-left-radius:var(--bs-border-radius-xxl)!important}.rounded-start-circle{border-bottom-left-radius:50%!important;border-top-left-radius:50%!important}.rounded-start-pill{border-bottom-left-radius:var(--bs-border-radius-pill)!important;border-top-left-radius:var(--bs-border-radius-pill)!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}.z-n1{z-index:-1!important}.z-0{z-index:0!important}.z-1{z-index:1!important}.z-2{z-index:2!important}.z-3{z-index:3!important}@media (min-width:576px){.float-sm-start{float:left!important}.float-sm-end{float:right!important}.float-sm-none{float:none!important}.object-fit-sm-contain{-o-object-fit:contain!important;object-fit:contain!important}.object-fit-sm-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fit-sm-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-fit-sm-scale{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-fit-sm-none{-o-object-fit:none!important;object-fit:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-grid{display:grid!important}.d-sm-inline-grid{display:inline-grid!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}.d-sm-none{display:none!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.justify-content-sm-evenly{justify-content:space-evenly!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}.order-sm-first{order:-1!important}.order-sm-0{order:0!important}.order-sm-1{order:1!important}.order-sm-2{order:2!important}.order-sm-3{order:3!important}.order-sm-4{order:4!important}.order-sm-5{order:5!important}.order-sm-last{order:6!important}.m-sm-0{margin:0!important}.m-sm-1{margin:.25rem!important}.m-sm-2{margin:.5rem!important}.m-sm-3{margin:1rem!important}.m-sm-4{margin:1.5rem!important}.m-sm-5{margin:3rem!important}.m-sm-auto{margin:auto!important}.mx-sm-0{margin-right:0!important;margin-left:0!important}.mx-sm-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-sm-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-sm-3{margin-right:1rem!important;margin-left:1rem!important}.mx-sm-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-sm-5{margin-right:3rem!important;margin-left:3rem!important}.mx-sm-auto{margin-right:auto!important;margin-left:auto!important}.my-sm-0{margin-top:0!important;margin-bottom:0!important}.my-sm-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-sm-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-sm-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-sm-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-sm-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-sm-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-sm-0{margin-top:0!important}.mt-sm-1{margin-top:.25rem!important}.mt-sm-2{margin-top:.5rem!important}.mt-sm-3{margin-top:1rem!important}.mt-sm-4{margin-top:1.5rem!important}.mt-sm-5{margin-top:3rem!important}.mt-sm-auto{margin-top:auto!important}.me-sm-0{margin-right:0!important}.me-sm-1{margin-right:.25rem!important}.me-sm-2{margin-right:.5rem!important}.me-sm-3{margin-right:1rem!important}.me-sm-4{margin-right:1.5rem!important}.me-sm-5{margin-right:3rem!important}.me-sm-auto{margin-right:auto!important}.mb-sm-0{margin-bottom:0!important}.mb-sm-1{margin-bottom:.25rem!important}.mb-sm-2{margin-bottom:.5rem!important}.mb-sm-3{margin-bottom:1rem!important}.mb-sm-4{margin-bottom:1.5rem!important}.mb-sm-5{margin-bottom:3rem!important}.mb-sm-auto{margin-bottom:auto!important}.ms-sm-0{margin-left:0!important}.ms-sm-1{margin-left:.25rem!important}.ms-sm-2{margin-left:.5rem!important}.ms-sm-3{margin-left:1rem!important}.ms-sm-4{margin-left:1.5rem!important}.ms-sm-5{margin-left:3rem!important}.ms-sm-auto{margin-left:auto!important}.p-sm-0{padding:0!important}.p-sm-1{padding:.25rem!important}.p-sm-2{padding:.5rem!important}.p-sm-3{padding:1rem!important}.p-sm-4{padding:1.5rem!important}.p-sm-5{padding:3rem!important}.px-sm-0{padding-right:0!important;padding-left:0!important}.px-sm-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-sm-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-sm-3{padding-right:1rem!important;padding-left:1rem!important}.px-sm-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-sm-5{padding-right:3rem!important;padding-left:3rem!important}.py-sm-0{padding-top:0!important;padding-bottom:0!important}.py-sm-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-sm-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-sm-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-sm-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-sm-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-sm-0{padding-top:0!important}.pt-sm-1{padding-top:.25rem!important}.pt-sm-2{padding-top:.5rem!important}.pt-sm-3{padding-top:1rem!important}.pt-sm-4{padding-top:1.5rem!important}.pt-sm-5{padding-top:3rem!important}.pe-sm-0{padding-right:0!important}.pe-sm-1{padding-right:.25rem!important}.pe-sm-2{padding-right:.5rem!important}.pe-sm-3{padding-right:1rem!important}.pe-sm-4{padding-right:1.5rem!important}.pe-sm-5{padding-right:3rem!important}.pb-sm-0{padding-bottom:0!important}.pb-sm-1{padding-bottom:.25rem!important}.pb-sm-2{padding-bottom:.5rem!important}.pb-sm-3{padding-bottom:1rem!important}.pb-sm-4{padding-bottom:1.5rem!important}.pb-sm-5{padding-bottom:3rem!important}.ps-sm-0{padding-left:0!important}.ps-sm-1{padding-left:.25rem!important}.ps-sm-2{padding-left:.5rem!important}.ps-sm-3{padding-left:1rem!important}.ps-sm-4{padding-left:1.5rem!important}.ps-sm-5{padding-left:3rem!important}.gap-sm-0{gap:0!important}.gap-sm-1{gap:.25rem!important}.gap-sm-2{gap:.5rem!important}.gap-sm-3{gap:1rem!important}.gap-sm-4{gap:1.5rem!important}.gap-sm-5{gap:3rem!important}.row-gap-sm-0{row-gap:0!important}.row-gap-sm-1{row-gap:.25rem!important}.row-gap-sm-2{row-gap:.5rem!important}.row-gap-sm-3{row-gap:1rem!important}.row-gap-sm-4{row-gap:1.5rem!important}.row-gap-sm-5{row-gap:3rem!important}.column-gap-sm-0{-moz-column-gap:0!important;column-gap:0!important}.column-gap-sm-1{-moz-column-gap:0.25rem!important;column-gap:.25rem!important}.column-gap-sm-2{-moz-column-gap:0.5rem!important;column-gap:.5rem!important}.column-gap-sm-3{-moz-column-gap:1rem!important;column-gap:1rem!important}.column-gap-sm-4{-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.column-gap-sm-5{-moz-column-gap:3rem!important;column-gap:3rem!important}.text-sm-start{text-align:left!important}.text-sm-end{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.float-md-start{float:left!important}.float-md-end{float:right!important}.float-md-none{float:none!important}.object-fit-md-contain{-o-object-fit:contain!important;object-fit:contain!important}.object-fit-md-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fit-md-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-fit-md-scale{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-fit-md-none{-o-object-fit:none!important;object-fit:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-grid{display:grid!important}.d-md-inline-grid{display:inline-grid!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}.d-md-none{display:none!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.justify-content-md-evenly{justify-content:space-evenly!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}.order-md-first{order:-1!important}.order-md-0{order:0!important}.order-md-1{order:1!important}.order-md-2{order:2!important}.order-md-3{order:3!important}.order-md-4{order:4!important}.order-md-5{order:5!important}.order-md-last{order:6!important}.m-md-0{margin:0!important}.m-md-1{margin:.25rem!important}.m-md-2{margin:.5rem!important}.m-md-3{margin:1rem!important}.m-md-4{margin:1.5rem!important}.m-md-5{margin:3rem!important}.m-md-auto{margin:auto!important}.mx-md-0{margin-right:0!important;margin-left:0!important}.mx-md-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-md-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-md-3{margin-right:1rem!important;margin-left:1rem!important}.mx-md-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-md-5{margin-right:3rem!important;margin-left:3rem!important}.mx-md-auto{margin-right:auto!important;margin-left:auto!important}.my-md-0{margin-top:0!important;margin-bottom:0!important}.my-md-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-md-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-md-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-md-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-md-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-md-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-md-0{margin-top:0!important}.mt-md-1{margin-top:.25rem!important}.mt-md-2{margin-top:.5rem!important}.mt-md-3{margin-top:1rem!important}.mt-md-4{margin-top:1.5rem!important}.mt-md-5{margin-top:3rem!important}.mt-md-auto{margin-top:auto!important}.me-md-0{margin-right:0!important}.me-md-1{margin-right:.25rem!important}.me-md-2{margin-right:.5rem!important}.me-md-3{margin-right:1rem!important}.me-md-4{margin-right:1.5rem!important}.me-md-5{margin-right:3rem!important}.me-md-auto{margin-right:auto!important}.mb-md-0{margin-bottom:0!important}.mb-md-1{margin-bottom:.25rem!important}.mb-md-2{margin-bottom:.5rem!important}.mb-md-3{margin-bottom:1rem!important}.mb-md-4{margin-bottom:1.5rem!important}.mb-md-5{margin-bottom:3rem!important}.mb-md-auto{margin-bottom:auto!important}.ms-md-0{margin-left:0!important}.ms-md-1{margin-left:.25rem!important}.ms-md-2{margin-left:.5rem!important}.ms-md-3{margin-left:1rem!important}.ms-md-4{margin-left:1.5rem!important}.ms-md-5{margin-left:3rem!important}.ms-md-auto{margin-left:auto!important}.p-md-0{padding:0!important}.p-md-1{padding:.25rem!important}.p-md-2{padding:.5rem!important}.p-md-3{padding:1rem!important}.p-md-4{padding:1.5rem!important}.p-md-5{padding:3rem!important}.px-md-0{padding-right:0!important;padding-left:0!important}.px-md-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-md-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-md-3{padding-right:1rem!important;padding-left:1rem!important}.px-md-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-md-5{padding-right:3rem!important;padding-left:3rem!important}.py-md-0{padding-top:0!important;padding-bottom:0!important}.py-md-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-md-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-md-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-md-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-md-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-md-0{padding-top:0!important}.pt-md-1{padding-top:.25rem!important}.pt-md-2{padding-top:.5rem!important}.pt-md-3{padding-top:1rem!important}.pt-md-4{padding-top:1.5rem!important}.pt-md-5{padding-top:3rem!important}.pe-md-0{padding-right:0!important}.pe-md-1{padding-right:.25rem!important}.pe-md-2{padding-right:.5rem!important}.pe-md-3{padding-right:1rem!important}.pe-md-4{padding-right:1.5rem!important}.pe-md-5{padding-right:3rem!important}.pb-md-0{padding-bottom:0!important}.pb-md-1{padding-bottom:.25rem!important}.pb-md-2{padding-bottom:.5rem!important}.pb-md-3{padding-bottom:1rem!important}.pb-md-4{padding-bottom:1.5rem!important}.pb-md-5{padding-bottom:3rem!important}.ps-md-0{padding-left:0!important}.ps-md-1{padding-left:.25rem!important}.ps-md-2{padding-left:.5rem!important}.ps-md-3{padding-left:1rem!important}.ps-md-4{padding-left:1.5rem!important}.ps-md-5{padding-left:3rem!important}.gap-md-0{gap:0!important}.gap-md-1{gap:.25rem!important}.gap-md-2{gap:.5rem!important}.gap-md-3{gap:1rem!important}.gap-md-4{gap:1.5rem!important}.gap-md-5{gap:3rem!important}.row-gap-md-0{row-gap:0!important}.row-gap-md-1{row-gap:.25rem!important}.row-gap-md-2{row-gap:.5rem!important}.row-gap-md-3{row-gap:1rem!important}.row-gap-md-4{row-gap:1.5rem!important}.row-gap-md-5{row-gap:3rem!important}.column-gap-md-0{-moz-column-gap:0!important;column-gap:0!important}.column-gap-md-1{-moz-column-gap:0.25rem!important;column-gap:.25rem!important}.column-gap-md-2{-moz-column-gap:0.5rem!important;column-gap:.5rem!important}.column-gap-md-3{-moz-column-gap:1rem!important;column-gap:1rem!important}.column-gap-md-4{-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.column-gap-md-5{-moz-column-gap:3rem!important;column-gap:3rem!important}.text-md-start{text-align:left!important}.text-md-end{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.float-lg-start{float:left!important}.float-lg-end{float:right!important}.float-lg-none{float:none!important}.object-fit-lg-contain{-o-object-fit:contain!important;object-fit:contain!important}.object-fit-lg-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fit-lg-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-fit-lg-scale{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-fit-lg-none{-o-object-fit:none!important;object-fit:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-grid{display:grid!important}.d-lg-inline-grid{display:inline-grid!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}.d-lg-none{display:none!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.justify-content-lg-evenly{justify-content:space-evenly!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}.order-lg-first{order:-1!important}.order-lg-0{order:0!important}.order-lg-1{order:1!important}.order-lg-2{order:2!important}.order-lg-3{order:3!important}.order-lg-4{order:4!important}.order-lg-5{order:5!important}.order-lg-last{order:6!important}.m-lg-0{margin:0!important}.m-lg-1{margin:.25rem!important}.m-lg-2{margin:.5rem!important}.m-lg-3{margin:1rem!important}.m-lg-4{margin:1.5rem!important}.m-lg-5{margin:3rem!important}.m-lg-auto{margin:auto!important}.mx-lg-0{margin-right:0!important;margin-left:0!important}.mx-lg-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-lg-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-lg-3{margin-right:1rem!important;margin-left:1rem!important}.mx-lg-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-lg-5{margin-right:3rem!important;margin-left:3rem!important}.mx-lg-auto{margin-right:auto!important;margin-left:auto!important}.my-lg-0{margin-top:0!important;margin-bottom:0!important}.my-lg-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-lg-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-lg-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-lg-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-lg-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-lg-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-lg-0{margin-top:0!important}.mt-lg-1{margin-top:.25rem!important}.mt-lg-2{margin-top:.5rem!important}.mt-lg-3{margin-top:1rem!important}.mt-lg-4{margin-top:1.5rem!important}.mt-lg-5{margin-top:3rem!important}.mt-lg-auto{margin-top:auto!important}.me-lg-0{margin-right:0!important}.me-lg-1{margin-right:.25rem!important}.me-lg-2{margin-right:.5rem!important}.me-lg-3{margin-right:1rem!important}.me-lg-4{margin-right:1.5rem!important}.me-lg-5{margin-right:3rem!important}.me-lg-auto{margin-right:auto!important}.mb-lg-0{margin-bottom:0!important}.mb-lg-1{margin-bottom:.25rem!important}.mb-lg-2{margin-bottom:.5rem!important}.mb-lg-3{margin-bottom:1rem!important}.mb-lg-4{margin-bottom:1.5rem!important}.mb-lg-5{margin-bottom:3rem!important}.mb-lg-auto{margin-bottom:auto!important}.ms-lg-0{margin-left:0!important}.ms-lg-1{margin-left:.25rem!important}.ms-lg-2{margin-left:.5rem!important}.ms-lg-3{margin-left:1rem!important}.ms-lg-4{margin-left:1.5rem!important}.ms-lg-5{margin-left:3rem!important}.ms-lg-auto{margin-left:auto!important}.p-lg-0{padding:0!important}.p-lg-1{padding:.25rem!important}.p-lg-2{padding:.5rem!important}.p-lg-3{padding:1rem!important}.p-lg-4{padding:1.5rem!important}.p-lg-5{padding:3rem!important}.px-lg-0{padding-right:0!important;padding-left:0!important}.px-lg-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-lg-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-lg-3{padding-right:1rem!important;padding-left:1rem!important}.px-lg-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-lg-5{padding-right:3rem!important;padding-left:3rem!important}.py-lg-0{padding-top:0!important;padding-bottom:0!important}.py-lg-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-lg-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-lg-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-lg-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-lg-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-lg-0{padding-top:0!important}.pt-lg-1{padding-top:.25rem!important}.pt-lg-2{padding-top:.5rem!important}.pt-lg-3{padding-top:1rem!important}.pt-lg-4{padding-top:1.5rem!important}.pt-lg-5{padding-top:3rem!important}.pe-lg-0{padding-right:0!important}.pe-lg-1{padding-right:.25rem!important}.pe-lg-2{padding-right:.5rem!important}.pe-lg-3{padding-right:1rem!important}.pe-lg-4{padding-right:1.5rem!important}.pe-lg-5{padding-right:3rem!important}.pb-lg-0{padding-bottom:0!important}.pb-lg-1{padding-bottom:.25rem!important}.pb-lg-2{padding-bottom:.5rem!important}.pb-lg-3{padding-bottom:1rem!important}.pb-lg-4{padding-bottom:1.5rem!important}.pb-lg-5{padding-bottom:3rem!important}.ps-lg-0{padding-left:0!important}.ps-lg-1{padding-left:.25rem!important}.ps-lg-2{padding-left:.5rem!important}.ps-lg-3{padding-left:1rem!important}.ps-lg-4{padding-left:1.5rem!important}.ps-lg-5{padding-left:3rem!important}.gap-lg-0{gap:0!important}.gap-lg-1{gap:.25rem!important}.gap-lg-2{gap:.5rem!important}.gap-lg-3{gap:1rem!important}.gap-lg-4{gap:1.5rem!important}.gap-lg-5{gap:3rem!important}.row-gap-lg-0{row-gap:0!important}.row-gap-lg-1{row-gap:.25rem!important}.row-gap-lg-2{row-gap:.5rem!important}.row-gap-lg-3{row-gap:1rem!important}.row-gap-lg-4{row-gap:1.5rem!important}.row-gap-lg-5{row-gap:3rem!important}.column-gap-lg-0{-moz-column-gap:0!important;column-gap:0!important}.column-gap-lg-1{-moz-column-gap:0.25rem!important;column-gap:.25rem!important}.column-gap-lg-2{-moz-column-gap:0.5rem!important;column-gap:.5rem!important}.column-gap-lg-3{-moz-column-gap:1rem!important;column-gap:1rem!important}.column-gap-lg-4{-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.column-gap-lg-5{-moz-column-gap:3rem!important;column-gap:3rem!important}.text-lg-start{text-align:left!important}.text-lg-end{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.float-xl-start{float:left!important}.float-xl-end{float:right!important}.float-xl-none{float:none!important}.object-fit-xl-contain{-o-object-fit:contain!important;object-fit:contain!important}.object-fit-xl-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fit-xl-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-fit-xl-scale{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-fit-xl-none{-o-object-fit:none!important;object-fit:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-grid{display:grid!important}.d-xl-inline-grid{display:inline-grid!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}.d-xl-none{display:none!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.justify-content-xl-evenly{justify-content:space-evenly!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}.order-xl-first{order:-1!important}.order-xl-0{order:0!important}.order-xl-1{order:1!important}.order-xl-2{order:2!important}.order-xl-3{order:3!important}.order-xl-4{order:4!important}.order-xl-5{order:5!important}.order-xl-last{order:6!important}.m-xl-0{margin:0!important}.m-xl-1{margin:.25rem!important}.m-xl-2{margin:.5rem!important}.m-xl-3{margin:1rem!important}.m-xl-4{margin:1.5rem!important}.m-xl-5{margin:3rem!important}.m-xl-auto{margin:auto!important}.mx-xl-0{margin-right:0!important;margin-left:0!important}.mx-xl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xl-auto{margin-right:auto!important;margin-left:auto!important}.my-xl-0{margin-top:0!important;margin-bottom:0!important}.my-xl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xl-0{margin-top:0!important}.mt-xl-1{margin-top:.25rem!important}.mt-xl-2{margin-top:.5rem!important}.mt-xl-3{margin-top:1rem!important}.mt-xl-4{margin-top:1.5rem!important}.mt-xl-5{margin-top:3rem!important}.mt-xl-auto{margin-top:auto!important}.me-xl-0{margin-right:0!important}.me-xl-1{margin-right:.25rem!important}.me-xl-2{margin-right:.5rem!important}.me-xl-3{margin-right:1rem!important}.me-xl-4{margin-right:1.5rem!important}.me-xl-5{margin-right:3rem!important}.me-xl-auto{margin-right:auto!important}.mb-xl-0{margin-bottom:0!important}.mb-xl-1{margin-bottom:.25rem!important}.mb-xl-2{margin-bottom:.5rem!important}.mb-xl-3{margin-bottom:1rem!important}.mb-xl-4{margin-bottom:1.5rem!important}.mb-xl-5{margin-bottom:3rem!important}.mb-xl-auto{margin-bottom:auto!important}.ms-xl-0{margin-left:0!important}.ms-xl-1{margin-left:.25rem!important}.ms-xl-2{margin-left:.5rem!important}.ms-xl-3{margin-left:1rem!important}.ms-xl-4{margin-left:1.5rem!important}.ms-xl-5{margin-left:3rem!important}.ms-xl-auto{margin-left:auto!important}.p-xl-0{padding:0!important}.p-xl-1{padding:.25rem!important}.p-xl-2{padding:.5rem!important}.p-xl-3{padding:1rem!important}.p-xl-4{padding:1.5rem!important}.p-xl-5{padding:3rem!important}.px-xl-0{padding-right:0!important;padding-left:0!important}.px-xl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xl-0{padding-top:0!important;padding-bottom:0!important}.py-xl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xl-0{padding-top:0!important}.pt-xl-1{padding-top:.25rem!important}.pt-xl-2{padding-top:.5rem!important}.pt-xl-3{padding-top:1rem!important}.pt-xl-4{padding-top:1.5rem!important}.pt-xl-5{padding-top:3rem!important}.pe-xl-0{padding-right:0!important}.pe-xl-1{padding-right:.25rem!important}.pe-xl-2{padding-right:.5rem!important}.pe-xl-3{padding-right:1rem!important}.pe-xl-4{padding-right:1.5rem!important}.pe-xl-5{padding-right:3rem!important}.pb-xl-0{padding-bottom:0!important}.pb-xl-1{padding-bottom:.25rem!important}.pb-xl-2{padding-bottom:.5rem!important}.pb-xl-3{padding-bottom:1rem!important}.pb-xl-4{padding-bottom:1.5rem!important}.pb-xl-5{padding-bottom:3rem!important}.ps-xl-0{padding-left:0!important}.ps-xl-1{padding-left:.25rem!important}.ps-xl-2{padding-left:.5rem!important}.ps-xl-3{padding-left:1rem!important}.ps-xl-4{padding-left:1.5rem!important}.ps-xl-5{padding-left:3rem!important}.gap-xl-0{gap:0!important}.gap-xl-1{gap:.25rem!important}.gap-xl-2{gap:.5rem!important}.gap-xl-3{gap:1rem!important}.gap-xl-4{gap:1.5rem!important}.gap-xl-5{gap:3rem!important}.row-gap-xl-0{row-gap:0!important}.row-gap-xl-1{row-gap:.25rem!important}.row-gap-xl-2{row-gap:.5rem!important}.row-gap-xl-3{row-gap:1rem!important}.row-gap-xl-4{row-gap:1.5rem!important}.row-gap-xl-5{row-gap:3rem!important}.column-gap-xl-0{-moz-column-gap:0!important;column-gap:0!important}.column-gap-xl-1{-moz-column-gap:0.25rem!important;column-gap:.25rem!important}.column-gap-xl-2{-moz-column-gap:0.5rem!important;column-gap:.5rem!important}.column-gap-xl-3{-moz-column-gap:1rem!important;column-gap:1rem!important}.column-gap-xl-4{-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.column-gap-xl-5{-moz-column-gap:3rem!important;column-gap:3rem!important}.text-xl-start{text-align:left!important}.text-xl-end{text-align:right!important}.text-xl-center{text-align:center!important}}@media (min-width:1400px){.float-xxl-start{float:left!important}.float-xxl-end{float:right!important}.float-xxl-none{float:none!important}.object-fit-xxl-contain{-o-object-fit:contain!important;object-fit:contain!important}.object-fit-xxl-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fit-xxl-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-fit-xxl-scale{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-fit-xxl-none{-o-object-fit:none!important;object-fit:none!important}.d-xxl-inline{display:inline!important}.d-xxl-inline-block{display:inline-block!important}.d-xxl-block{display:block!important}.d-xxl-grid{display:grid!important}.d-xxl-inline-grid{display:inline-grid!important}.d-xxl-table{display:table!important}.d-xxl-table-row{display:table-row!important}.d-xxl-table-cell{display:table-cell!important}.d-xxl-flex{display:flex!important}.d-xxl-inline-flex{display:inline-flex!important}.d-xxl-none{display:none!important}.flex-xxl-fill{flex:1 1 auto!important}.flex-xxl-row{flex-direction:row!important}.flex-xxl-column{flex-direction:column!important}.flex-xxl-row-reverse{flex-direction:row-reverse!important}.flex-xxl-column-reverse{flex-direction:column-reverse!important}.flex-xxl-grow-0{flex-grow:0!important}.flex-xxl-grow-1{flex-grow:1!important}.flex-xxl-shrink-0{flex-shrink:0!important}.flex-xxl-shrink-1{flex-shrink:1!important}.flex-xxl-wrap{flex-wrap:wrap!important}.flex-xxl-nowrap{flex-wrap:nowrap!important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-xxl-start{justify-content:flex-start!important}.justify-content-xxl-end{justify-content:flex-end!important}.justify-content-xxl-center{justify-content:center!important}.justify-content-xxl-between{justify-content:space-between!important}.justify-content-xxl-around{justify-content:space-around!important}.justify-content-xxl-evenly{justify-content:space-evenly!important}.align-items-xxl-start{align-items:flex-start!important}.align-items-xxl-end{align-items:flex-end!important}.align-items-xxl-center{align-items:center!important}.align-items-xxl-baseline{align-items:baseline!important}.align-items-xxl-stretch{align-items:stretch!important}.align-content-xxl-start{align-content:flex-start!important}.align-content-xxl-end{align-content:flex-end!important}.align-content-xxl-center{align-content:center!important}.align-content-xxl-between{align-content:space-between!important}.align-content-xxl-around{align-content:space-around!important}.align-content-xxl-stretch{align-content:stretch!important}.align-self-xxl-auto{align-self:auto!important}.align-self-xxl-start{align-self:flex-start!important}.align-self-xxl-end{align-self:flex-end!important}.align-self-xxl-center{align-self:center!important}.align-self-xxl-baseline{align-self:baseline!important}.align-self-xxl-stretch{align-self:stretch!important}.order-xxl-first{order:-1!important}.order-xxl-0{order:0!important}.order-xxl-1{order:1!important}.order-xxl-2{order:2!important}.order-xxl-3{order:3!important}.order-xxl-4{order:4!important}.order-xxl-5{order:5!important}.order-xxl-last{order:6!important}.m-xxl-0{margin:0!important}.m-xxl-1{margin:.25rem!important}.m-xxl-2{margin:.5rem!important}.m-xxl-3{margin:1rem!important}.m-xxl-4{margin:1.5rem!important}.m-xxl-5{margin:3rem!important}.m-xxl-auto{margin:auto!important}.mx-xxl-0{margin-right:0!important;margin-left:0!important}.mx-xxl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xxl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xxl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xxl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xxl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xxl-auto{margin-right:auto!important;margin-left:auto!important}.my-xxl-0{margin-top:0!important;margin-bottom:0!important}.my-xxl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xxl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xxl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xxl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xxl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xxl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xxl-0{margin-top:0!important}.mt-xxl-1{margin-top:.25rem!important}.mt-xxl-2{margin-top:.5rem!important}.mt-xxl-3{margin-top:1rem!important}.mt-xxl-4{margin-top:1.5rem!important}.mt-xxl-5{margin-top:3rem!important}.mt-xxl-auto{margin-top:auto!important}.me-xxl-0{margin-right:0!important}.me-xxl-1{margin-right:.25rem!important}.me-xxl-2{margin-right:.5rem!important}.me-xxl-3{margin-right:1rem!important}.me-xxl-4{margin-right:1.5rem!important}.me-xxl-5{margin-right:3rem!important}.me-xxl-auto{margin-right:auto!important}.mb-xxl-0{margin-bottom:0!important}.mb-xxl-1{margin-bottom:.25rem!important}.mb-xxl-2{margin-bottom:.5rem!important}.mb-xxl-3{margin-bottom:1rem!important}.mb-xxl-4{margin-bottom:1.5rem!important}.mb-xxl-5{margin-bottom:3rem!important}.mb-xxl-auto{margin-bottom:auto!important}.ms-xxl-0{margin-left:0!important}.ms-xxl-1{margin-left:.25rem!important}.ms-xxl-2{margin-left:.5rem!important}.ms-xxl-3{margin-left:1rem!important}.ms-xxl-4{margin-left:1.5rem!important}.ms-xxl-5{margin-left:3rem!important}.ms-xxl-auto{margin-left:auto!important}.p-xxl-0{padding:0!important}.p-xxl-1{padding:.25rem!important}.p-xxl-2{padding:.5rem!important}.p-xxl-3{padding:1rem!important}.p-xxl-4{padding:1.5rem!important}.p-xxl-5{padding:3rem!important}.px-xxl-0{padding-right:0!important;padding-left:0!important}.px-xxl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xxl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xxl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xxl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xxl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xxl-0{padding-top:0!important;padding-bottom:0!important}.py-xxl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xxl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xxl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xxl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xxl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xxl-0{padding-top:0!important}.pt-xxl-1{padding-top:.25rem!important}.pt-xxl-2{padding-top:.5rem!important}.pt-xxl-3{padding-top:1rem!important}.pt-xxl-4{padding-top:1.5rem!important}.pt-xxl-5{padding-top:3rem!important}.pe-xxl-0{padding-right:0!important}.pe-xxl-1{padding-right:.25rem!important}.pe-xxl-2{padding-right:.5rem!important}.pe-xxl-3{padding-right:1rem!important}.pe-xxl-4{padding-right:1.5rem!important}.pe-xxl-5{padding-right:3rem!important}.pb-xxl-0{padding-bottom:0!important}.pb-xxl-1{padding-bottom:.25rem!important}.pb-xxl-2{padding-bottom:.5rem!important}.pb-xxl-3{padding-bottom:1rem!important}.pb-xxl-4{padding-bottom:1.5rem!important}.pb-xxl-5{padding-bottom:3rem!important}.ps-xxl-0{padding-left:0!important}.ps-xxl-1{padding-left:.25rem!important}.ps-xxl-2{padding-left:.5rem!important}.ps-xxl-3{padding-left:1rem!important}.ps-xxl-4{padding-left:1.5rem!important}.ps-xxl-5{padding-left:3rem!important}.gap-xxl-0{gap:0!important}.gap-xxl-1{gap:.25rem!important}.gap-xxl-2{gap:.5rem!important}.gap-xxl-3{gap:1rem!important}.gap-xxl-4{gap:1.5rem!important}.gap-xxl-5{gap:3rem!important}.row-gap-xxl-0{row-gap:0!important}.row-gap-xxl-1{row-gap:.25rem!important}.row-gap-xxl-2{row-gap:.5rem!important}.row-gap-xxl-3{row-gap:1rem!important}.row-gap-xxl-4{row-gap:1.5rem!important}.row-gap-xxl-5{row-gap:3rem!important}.column-gap-xxl-0{-moz-column-gap:0!important;column-gap:0!important}.column-gap-xxl-1{-moz-column-gap:0.25rem!important;column-gap:.25rem!important}.column-gap-xxl-2{-moz-column-gap:0.5rem!important;column-gap:.5rem!important}.column-gap-xxl-3{-moz-column-gap:1rem!important;column-gap:1rem!important}.column-gap-xxl-4{-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.column-gap-xxl-5{-moz-column-gap:3rem!important;column-gap:3rem!important}.text-xxl-start{text-align:left!important}.text-xxl-end{text-align:right!important}.text-xxl-center{text-align:center!important}}@media (min-width:1200px){.fs-1{font-size:2.5rem!important}.fs-2{font-size:2rem!important}.fs-3{font-size:1.75rem!important}.fs-4{font-size:1.5rem!important}}@media print{.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-grid{display:grid!important}.d-print-inline-grid{display:inline-grid!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}.d-print-none{display:none!important}}\", \"\"]);\n\n","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n  return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n    value: t,\n    enumerable: !0,\n    configurable: !0,\n    writable: !0\n  }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","module.exports = \"data:image/png;base64,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\"","function _setPrototypeOf(t, e) {\n  return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n    return t.__proto__ = e, t;\n  }, _setPrototypeOf(t, e);\n}\nexport { _setPrototypeOf as default };","/**\n * Webpack has bug for import loop, which is not the same behavior as ES module.\n * When util.js imports the TreeNode for tree generate will cause treeContextTypes be empty.\n */\nimport * as React from 'react';\nexport var TreeContext = /*#__PURE__*/React.createContext(null);","export default function _iterableToArray(iter) {\n  if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","import _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nvar AbstractCalculator = /*#__PURE__*/_createClass(function AbstractCalculator() {\n  _classCallCheck(this, AbstractCalculator);\n});\nexport default AbstractCalculator;","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport AbstractCalculator from \"./calculator\";\nvar CALC_UNIT = 'CALC_UNIT';\nvar regexp = new RegExp(CALC_UNIT, 'g');\nfunction unit(value) {\n  if (typeof value === 'number') {\n    return \"\".concat(value).concat(CALC_UNIT);\n  }\n  return value;\n}\nvar CSSCalculator = /*#__PURE__*/function (_AbstractCalculator) {\n  _inherits(CSSCalculator, _AbstractCalculator);\n  var _super = _createSuper(CSSCalculator);\n  function CSSCalculator(num, unitlessCssVar) {\n    var _this;\n    _classCallCheck(this, CSSCalculator);\n    _this = _super.call(this);\n    _defineProperty(_assertThisInitialized(_this), \"result\", '');\n    _defineProperty(_assertThisInitialized(_this), \"unitlessCssVar\", void 0);\n    _defineProperty(_assertThisInitialized(_this), \"lowPriority\", void 0);\n    var numType = _typeof(num);\n    _this.unitlessCssVar = unitlessCssVar;\n    if (num instanceof CSSCalculator) {\n      _this.result = \"(\".concat(num.result, \")\");\n    } else if (numType === 'number') {\n      _this.result = unit(num);\n    } else if (numType === 'string') {\n      _this.result = num;\n    }\n    return _this;\n  }\n  _createClass(CSSCalculator, [{\n    key: \"add\",\n    value: function add(num) {\n      if (num instanceof CSSCalculator) {\n        this.result = \"\".concat(this.result, \" + \").concat(num.getResult());\n      } else if (typeof num === 'number' || typeof num === 'string') {\n        this.result = \"\".concat(this.result, \" + \").concat(unit(num));\n      }\n      this.lowPriority = true;\n      return this;\n    }\n  }, {\n    key: \"sub\",\n    value: function sub(num) {\n      if (num instanceof CSSCalculator) {\n        this.result = \"\".concat(this.result, \" - \").concat(num.getResult());\n      } else if (typeof num === 'number' || typeof num === 'string') {\n        this.result = \"\".concat(this.result, \" - \").concat(unit(num));\n      }\n      this.lowPriority = true;\n      return this;\n    }\n  }, {\n    key: \"mul\",\n    value: function mul(num) {\n      if (this.lowPriority) {\n        this.result = \"(\".concat(this.result, \")\");\n      }\n      if (num instanceof CSSCalculator) {\n        this.result = \"\".concat(this.result, \" * \").concat(num.getResult(true));\n      } else if (typeof num === 'number' || typeof num === 'string') {\n        this.result = \"\".concat(this.result, \" * \").concat(num);\n      }\n      this.lowPriority = false;\n      return this;\n    }\n  }, {\n    key: \"div\",\n    value: function div(num) {\n      if (this.lowPriority) {\n        this.result = \"(\".concat(this.result, \")\");\n      }\n      if (num instanceof CSSCalculator) {\n        this.result = \"\".concat(this.result, \" / \").concat(num.getResult(true));\n      } else if (typeof num === 'number' || typeof num === 'string') {\n        this.result = \"\".concat(this.result, \" / \").concat(num);\n      }\n      this.lowPriority = false;\n      return this;\n    }\n  }, {\n    key: \"getResult\",\n    value: function getResult(force) {\n      return this.lowPriority || force ? \"(\".concat(this.result, \")\") : this.result;\n    }\n  }, {\n    key: \"equal\",\n    value: function equal(options) {\n      var _this2 = this;\n      var _ref = options || {},\n        cssUnit = _ref.unit;\n      var mergedUnit = true;\n      if (typeof cssUnit === 'boolean') {\n        mergedUnit = cssUnit;\n      } else if (Array.from(this.unitlessCssVar).some(function (cssVar) {\n        return _this2.result.includes(cssVar);\n      })) {\n        mergedUnit = false;\n      }\n      this.result = this.result.replace(regexp, mergedUnit ? 'px' : '');\n      if (typeof this.lowPriority !== 'undefined') {\n        return \"calc(\".concat(this.result, \")\");\n      }\n      return this.result;\n    }\n  }]);\n  return CSSCalculator;\n}(AbstractCalculator);\nexport { CSSCalculator as default };","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport AbstractCalculator from \"./calculator\";\nvar NumCalculator = /*#__PURE__*/function (_AbstractCalculator) {\n  _inherits(NumCalculator, _AbstractCalculator);\n  var _super = _createSuper(NumCalculator);\n  function NumCalculator(num) {\n    var _this;\n    _classCallCheck(this, NumCalculator);\n    _this = _super.call(this);\n    _defineProperty(_assertThisInitialized(_this), \"result\", 0);\n    if (num instanceof NumCalculator) {\n      _this.result = num.result;\n    } else if (typeof num === 'number') {\n      _this.result = num;\n    }\n    return _this;\n  }\n  _createClass(NumCalculator, [{\n    key: \"add\",\n    value: function add(num) {\n      if (num instanceof NumCalculator) {\n        this.result += num.result;\n      } else if (typeof num === 'number') {\n        this.result += num;\n      }\n      return this;\n    }\n  }, {\n    key: \"sub\",\n    value: function sub(num) {\n      if (num instanceof NumCalculator) {\n        this.result -= num.result;\n      } else if (typeof num === 'number') {\n        this.result -= num;\n      }\n      return this;\n    }\n  }, {\n    key: \"mul\",\n    value: function mul(num) {\n      if (num instanceof NumCalculator) {\n        this.result *= num.result;\n      } else if (typeof num === 'number') {\n        this.result *= num;\n      }\n      return this;\n    }\n  }, {\n    key: \"div\",\n    value: function div(num) {\n      if (num instanceof NumCalculator) {\n        this.result /= num.result;\n      } else if (typeof num === 'number') {\n        this.result /= num;\n      }\n      return this;\n    }\n  }, {\n    key: \"equal\",\n    value: function equal() {\n      return this.result;\n    }\n  }]);\n  return NumCalculator;\n}(AbstractCalculator);\nexport default NumCalculator;","import CSSCalculator from \"./CSSCalculator\";\nimport NumCalculator from \"./NumCalculator\";\nvar genCalc = function genCalc(type, unitlessCssVar) {\n  var Calculator = type === 'css' ? CSSCalculator : NumCalculator;\n  return function (num) {\n    return new Calculator(num, unitlessCssVar);\n  };\n};\nexport default genCalc;","var getCompVarPrefix = function getCompVarPrefix(component, prefix) {\n  return \"\".concat([prefix, component.replace(/([A-Z]+)([A-Z][a-z]+)/g, '$1-$2').replace(/([a-z])([A-Z])/g, '$1-$2')].filter(Boolean).join('-'));\n};\nexport default getCompVarPrefix;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport { warning } from 'rc-util';\nfunction getComponentToken(component, token, defaultToken, options) {\n  var customToken = _objectSpread({}, token[component]);\n  if (options !== null && options !== void 0 && options.deprecatedTokens) {\n    var deprecatedTokens = options.deprecatedTokens;\n    deprecatedTokens.forEach(function (_ref) {\n      var _ref2 = _slicedToArray(_ref, 2),\n        oldTokenKey = _ref2[0],\n        newTokenKey = _ref2[1];\n      if (process.env.NODE_ENV !== 'production') {\n        warning(!(customToken !== null && customToken !== void 0 && customToken[oldTokenKey]), \"Component Token `\".concat(String(oldTokenKey), \"` of \").concat(String(component), \" is deprecated. Please use `\").concat(String(newTokenKey), \"` instead.\"));\n      }\n\n      // Should wrap with `if` clause, or there will be `undefined` in object.\n      if (customToken !== null && customToken !== void 0 && customToken[oldTokenKey] || customToken !== null && customToken !== void 0 && customToken[newTokenKey]) {\n        var _customToken$newToken;\n        (_customToken$newToken = customToken[newTokenKey]) !== null && _customToken$newToken !== void 0 ? _customToken$newToken : customToken[newTokenKey] = customToken === null || customToken === void 0 ? void 0 : customToken[oldTokenKey];\n      }\n    });\n  }\n  var mergedToken = _objectSpread(_objectSpread({}, defaultToken), customToken);\n\n  // Remove same value as global token to minimize size\n  Object.keys(mergedToken).forEach(function (key) {\n    if (mergedToken[key] === token[key]) {\n      delete mergedToken[key];\n    }\n  });\n  return mergedToken;\n}\nexport default getComponentToken;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nvar enableStatistic = process.env.NODE_ENV !== 'production' || typeof CSSINJS_STATISTIC !== 'undefined';\nvar recording = true;\n\n/**\n * This function will do as `Object.assign` in production. But will use Object.defineProperty:get to\n * pass all value access in development. To support statistic field usage with alias token.\n */\nexport function merge() {\n  for (var _len = arguments.length, objs = new Array(_len), _key = 0; _key < _len; _key++) {\n    objs[_key] = arguments[_key];\n  }\n  /* istanbul ignore next */\n  if (!enableStatistic) {\n    return Object.assign.apply(Object, [{}].concat(objs));\n  }\n  recording = false;\n  var ret = {};\n  objs.forEach(function (obj) {\n    if (_typeof(obj) !== 'object') {\n      return;\n    }\n    var keys = Object.keys(obj);\n    keys.forEach(function (key) {\n      Object.defineProperty(ret, key, {\n        configurable: true,\n        enumerable: true,\n        get: function get() {\n          return obj[key];\n        }\n      });\n    });\n  });\n  recording = true;\n  return ret;\n}\n\n/** @internal Internal Usage. Not use in your production. */\nexport var statistic = {};\n\n/** @internal Internal Usage. Not use in your production. */\nexport var _statistic_build_ = {};\n\n/* istanbul ignore next */\nfunction noop() {}\n\n/** Statistic token usage case. Should use `merge` function if you do not want spread record. */\nvar statisticToken = function statisticToken(token) {\n  var tokenKeys;\n  var proxy = token;\n  var flush = noop;\n  if (enableStatistic && typeof Proxy !== 'undefined') {\n    tokenKeys = new Set();\n    proxy = new Proxy(token, {\n      get: function get(obj, prop) {\n        if (recording) {\n          var _tokenKeys;\n          (_tokenKeys = tokenKeys) === null || _tokenKeys === void 0 || _tokenKeys.add(prop);\n        }\n        return obj[prop];\n      }\n    });\n    flush = function flush(componentName, componentToken) {\n      var _statistic$componentN;\n      statistic[componentName] = {\n        global: Array.from(tokenKeys),\n        component: _objectSpread(_objectSpread({}, (_statistic$componentN = statistic[componentName]) === null || _statistic$componentN === void 0 ? void 0 : _statistic$componentN.component), componentToken)\n      };\n    };\n  }\n  return {\n    token: proxy,\n    keys: tokenKeys,\n    flush: flush\n  };\n};\nexport default statisticToken;","import { merge as mergeToken } from \"./statistic\";\nfunction getDefaultComponentToken(component, token, getDefaultToken) {\n  if (typeof getDefaultToken === 'function') {\n    var _token$component;\n    return getDefaultToken(mergeToken(token, (_token$component = token[component]) !== null && _token$component !== void 0 ? _token$component : {}));\n  }\n  return getDefaultToken !== null && getDefaultToken !== void 0 ? getDefaultToken : {};\n}\nexport default getDefaultComponentToken;","import { unit } from '@ant-design/cssinjs';\nfunction genMaxMin(type) {\n  if (type === 'js') {\n    return {\n      max: Math.max,\n      min: Math.min\n    };\n  }\n  return {\n    max: function max() {\n      for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n        args[_key] = arguments[_key];\n      }\n      return \"max(\".concat(args.map(function (value) {\n        return unit(value);\n      }).join(','), \")\");\n    },\n    min: function min() {\n      for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n        args[_key2] = arguments[_key2];\n      }\n      return \"min(\".concat(args.map(function (value) {\n        return unit(value);\n      }).join(','), \")\");\n    }\n  };\n}\nexport default genMaxMin;","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport React from 'react';\nvar BEAT_LIMIT = 1000 * 60 * 10;\n\n/**\n * A helper class to map keys to values.\n * It supports both primitive keys and object keys.\n */\nvar ArrayKeyMap = /*#__PURE__*/function () {\n  function ArrayKeyMap() {\n    _classCallCheck(this, ArrayKeyMap);\n    _defineProperty(this, \"map\", new Map());\n    // Use WeakMap to avoid memory leak\n    _defineProperty(this, \"objectIDMap\", new WeakMap());\n    _defineProperty(this, \"nextID\", 0);\n    _defineProperty(this, \"lastAccessBeat\", new Map());\n    // We will clean up the cache when reach the limit\n    _defineProperty(this, \"accessBeat\", 0);\n  }\n  _createClass(ArrayKeyMap, [{\n    key: \"set\",\n    value: function set(keys, value) {\n      // New set will trigger clear\n      this.clear();\n\n      // Set logic\n      var compositeKey = this.getCompositeKey(keys);\n      this.map.set(compositeKey, value);\n      this.lastAccessBeat.set(compositeKey, Date.now());\n    }\n  }, {\n    key: \"get\",\n    value: function get(keys) {\n      var compositeKey = this.getCompositeKey(keys);\n      var cache = this.map.get(compositeKey);\n      this.lastAccessBeat.set(compositeKey, Date.now());\n      this.accessBeat += 1;\n      return cache;\n    }\n  }, {\n    key: \"getCompositeKey\",\n    value: function getCompositeKey(keys) {\n      var _this = this;\n      var ids = keys.map(function (key) {\n        if (key && _typeof(key) === 'object') {\n          return \"obj_\".concat(_this.getObjectID(key));\n        }\n        return \"\".concat(_typeof(key), \"_\").concat(key);\n      });\n      return ids.join('|');\n    }\n  }, {\n    key: \"getObjectID\",\n    value: function getObjectID(obj) {\n      if (this.objectIDMap.has(obj)) {\n        return this.objectIDMap.get(obj);\n      }\n      var id = this.nextID;\n      this.objectIDMap.set(obj, id);\n      this.nextID += 1;\n      return id;\n    }\n  }, {\n    key: \"clear\",\n    value: function clear() {\n      var _this2 = this;\n      if (this.accessBeat > 10000) {\n        var now = Date.now();\n        this.lastAccessBeat.forEach(function (beat, key) {\n          if (now - beat > BEAT_LIMIT) {\n            _this2.map.delete(key);\n            _this2.lastAccessBeat.delete(key);\n          }\n        });\n        this.accessBeat = 0;\n      }\n    }\n  }]);\n  return ArrayKeyMap;\n}();\nvar uniqueMap = new ArrayKeyMap();\n\n/**\n * Like `useMemo`, but this hook result will be shared across all instances.\n */\nfunction useUniqueMemo(memoFn, deps) {\n  return React.useMemo(function () {\n    var cachedValue = uniqueMap.get(deps);\n    if (cachedValue) {\n      return cachedValue;\n    }\n    var newValue = memoFn();\n    uniqueMap.set(deps, newValue);\n    return newValue;\n  }, deps);\n}\nexport default useUniqueMemo;","/**\n * Provide a default hook since not everyone need config this.\n */\nvar useDefaultCSP = function useDefaultCSP() {\n  return {};\n};\nexport default useDefaultCSP;","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport React from 'react';\nimport { token2CSSVar, useCSSVarRegister, useStyleRegister } from '@ant-design/cssinjs';\nimport genCalc from \"./calc\";\nimport getCompVarPrefix from \"./getCompVarPrefix\";\nimport getComponentToken from \"./getComponentToken\";\nimport getDefaultComponentToken from \"./getDefaultComponentToken\";\nimport genMaxMin from \"./maxmin\";\nimport statisticToken, { merge as mergeToken } from \"./statistic\";\nimport useUniqueMemo from \"../_util/hooks/useUniqueMemo\";\nimport useDefaultCSP from \"../hooks/useCSP\";\nfunction genStyleUtils(config) {\n  // Dependency inversion for preparing basic config.\n  var _config$useCSP = config.useCSP,\n    useCSP = _config$useCSP === void 0 ? useDefaultCSP : _config$useCSP,\n    useToken = config.useToken,\n    usePrefix = config.usePrefix,\n    getResetStyles = config.getResetStyles,\n    getCommonStyle = config.getCommonStyle,\n    getCompUnitless = config.getCompUnitless;\n  function genStyleHooks(component, styleFn, getDefaultToken, options) {\n    var componentName = Array.isArray(component) ? component[0] : component;\n    function prefixToken(key) {\n      return \"\".concat(String(componentName)).concat(key.slice(0, 1).toUpperCase()).concat(key.slice(1));\n    }\n\n    // Fill unitless\n    var originUnitless = (options === null || options === void 0 ? void 0 : options.unitless) || {};\n    var originCompUnitless = typeof getCompUnitless === 'function' ? getCompUnitless(component) : {};\n    var compUnitless = _objectSpread(_objectSpread({}, originCompUnitless), {}, _defineProperty({}, prefixToken('zIndexPopup'), true));\n    Object.keys(originUnitless).forEach(function (key) {\n      compUnitless[prefixToken(key)] = originUnitless[key];\n    });\n\n    // Options\n    var mergedOptions = _objectSpread(_objectSpread({}, options), {}, {\n      unitless: compUnitless,\n      prefixToken: prefixToken\n    });\n\n    // Hooks\n    var useStyle = genComponentStyleHook(component, styleFn, getDefaultToken, mergedOptions);\n    var useCSSVar = genCSSVarRegister(componentName, getDefaultToken, mergedOptions);\n    return function (prefixCls) {\n      var rootCls = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : prefixCls;\n      var _useStyle = useStyle(prefixCls, rootCls),\n        _useStyle2 = _slicedToArray(_useStyle, 2),\n        hashId = _useStyle2[1];\n      var _useCSSVar = useCSSVar(rootCls),\n        _useCSSVar2 = _slicedToArray(_useCSSVar, 2),\n        wrapCSSVar = _useCSSVar2[0],\n        cssVarCls = _useCSSVar2[1];\n      return [wrapCSSVar, hashId, cssVarCls];\n    };\n  }\n  function genCSSVarRegister(component, getDefaultToken, options) {\n    var compUnitless = options.unitless,\n      _options$injectStyle = options.injectStyle,\n      injectStyle = _options$injectStyle === void 0 ? true : _options$injectStyle,\n      prefixToken = options.prefixToken,\n      ignore = options.ignore;\n    var CSSVarRegister = function CSSVarRegister(_ref) {\n      var rootCls = _ref.rootCls,\n        _ref$cssVar = _ref.cssVar,\n        cssVar = _ref$cssVar === void 0 ? {} : _ref$cssVar;\n      var _useToken = useToken(),\n        realToken = _useToken.realToken;\n      useCSSVarRegister({\n        path: [component],\n        prefix: cssVar.prefix,\n        key: cssVar.key,\n        unitless: compUnitless,\n        ignore: ignore,\n        token: realToken,\n        scope: rootCls\n      }, function () {\n        var defaultToken = getDefaultComponentToken(component, realToken, getDefaultToken);\n        var componentToken = getComponentToken(component, realToken, defaultToken, {\n          deprecatedTokens: options === null || options === void 0 ? void 0 : options.deprecatedTokens\n        });\n        Object.keys(defaultToken).forEach(function (key) {\n          componentToken[prefixToken(key)] = componentToken[key];\n          delete componentToken[key];\n        });\n        return componentToken;\n      });\n      return null;\n    };\n    var useCSSVar = function useCSSVar(rootCls) {\n      var _useToken2 = useToken(),\n        cssVar = _useToken2.cssVar;\n      return [function (node) {\n        return injectStyle && cssVar ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(CSSVarRegister, {\n          rootCls: rootCls,\n          cssVar: cssVar,\n          component: component\n        }), node) : node;\n      }, cssVar === null || cssVar === void 0 ? void 0 : cssVar.key];\n    };\n    return useCSSVar;\n  }\n  function genComponentStyleHook(componentName, styleFn, getDefaultToken) {\n    var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n    var cells = Array.isArray(componentName) ? componentName : [componentName, componentName];\n    var _cells = _slicedToArray(cells, 1),\n      component = _cells[0];\n    var concatComponent = cells.join('-');\n    var mergedLayer = config.layer || {\n      name: 'antd'\n    };\n\n    // Return new style hook\n    return function (prefixCls) {\n      var rootCls = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : prefixCls;\n      var _useToken3 = useToken(),\n        theme = _useToken3.theme,\n        realToken = _useToken3.realToken,\n        hashId = _useToken3.hashId,\n        token = _useToken3.token,\n        cssVar = _useToken3.cssVar;\n      var _usePrefix = usePrefix(),\n        rootPrefixCls = _usePrefix.rootPrefixCls,\n        iconPrefixCls = _usePrefix.iconPrefixCls;\n      var csp = useCSP();\n      var type = cssVar ? 'css' : 'js';\n\n      // Use unique memo to share the result across all instances\n      var calc = useUniqueMemo(function () {\n        var unitlessCssVar = new Set();\n        if (cssVar) {\n          Object.keys(options.unitless || {}).forEach(function (key) {\n            // Some component proxy the AliasToken (e.g. Image) and some not (e.g. Modal)\n            // We should both pass in `unitlessCssVar` to make sure the CSSVar can be unitless.\n            unitlessCssVar.add(token2CSSVar(key, cssVar.prefix));\n            unitlessCssVar.add(token2CSSVar(key, getCompVarPrefix(component, cssVar.prefix)));\n          });\n        }\n        return genCalc(type, unitlessCssVar);\n      }, [type, component, cssVar === null || cssVar === void 0 ? void 0 : cssVar.prefix]);\n      var _genMaxMin = genMaxMin(type),\n        max = _genMaxMin.max,\n        min = _genMaxMin.min;\n\n      // Shared config\n      var sharedConfig = {\n        theme: theme,\n        token: token,\n        hashId: hashId,\n        nonce: function nonce() {\n          return csp.nonce;\n        },\n        clientOnly: options.clientOnly,\n        layer: mergedLayer,\n        // antd is always at top of styles\n        order: options.order || -999\n      };\n\n      // Generate style for all need reset tags.\n      useStyleRegister(_objectSpread(_objectSpread({}, sharedConfig), {}, {\n        clientOnly: false,\n        path: ['Shared', rootPrefixCls]\n      }), function () {\n        return typeof getResetStyles === 'function' ? getResetStyles(token) : [];\n      });\n      var wrapSSR = useStyleRegister(_objectSpread(_objectSpread({}, sharedConfig), {}, {\n        path: [concatComponent, prefixCls, iconPrefixCls]\n      }), function () {\n        if (options.injectStyle === false) {\n          return [];\n        }\n        var _statisticToken = statisticToken(token),\n          proxyToken = _statisticToken.token,\n          flush = _statisticToken.flush;\n        var defaultComponentToken = getDefaultComponentToken(component, realToken, getDefaultToken);\n        var componentCls = \".\".concat(prefixCls);\n        var componentToken = getComponentToken(component, realToken, defaultComponentToken, {\n          deprecatedTokens: options.deprecatedTokens\n        });\n        if (cssVar && defaultComponentToken && _typeof(defaultComponentToken) === 'object') {\n          Object.keys(defaultComponentToken).forEach(function (key) {\n            defaultComponentToken[key] = \"var(\".concat(token2CSSVar(key, getCompVarPrefix(component, cssVar.prefix)), \")\");\n          });\n        }\n        var mergedToken = mergeToken(proxyToken, {\n          componentCls: componentCls,\n          prefixCls: prefixCls,\n          iconCls: \".\".concat(iconPrefixCls),\n          antCls: \".\".concat(rootPrefixCls),\n          calc: calc,\n          // @ts-ignore\n          max: max,\n          // @ts-ignore\n          min: min\n        }, cssVar ? defaultComponentToken : componentToken);\n        var styleInterpolation = styleFn(mergedToken, {\n          hashId: hashId,\n          prefixCls: prefixCls,\n          rootPrefixCls: rootPrefixCls,\n          iconPrefixCls: iconPrefixCls\n        });\n        flush(component, componentToken);\n        var commonStyle = typeof getCommonStyle === 'function' ? getCommonStyle(mergedToken, prefixCls, rootCls, options.resetFont) : null;\n        return [options.resetStyle === false ? null : commonStyle, styleInterpolation];\n      });\n      return [wrapSSR, hashId];\n    };\n  }\n  function genSubStyleComponent(componentName, styleFn, getDefaultToken) {\n    var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n    var useStyle = genComponentStyleHook(componentName, styleFn, getDefaultToken, _objectSpread({\n      resetStyle: false,\n      // Sub Style should default after root one\n      order: -998\n    }, options));\n    var StyledComponent = function StyledComponent(_ref2) {\n      var prefixCls = _ref2.prefixCls,\n        _ref2$rootCls = _ref2.rootCls,\n        rootCls = _ref2$rootCls === void 0 ? prefixCls : _ref2$rootCls;\n      useStyle(prefixCls, rootCls);\n      return null;\n    };\n    if (process.env.NODE_ENV !== 'production') {\n      StyledComponent.displayName = \"SubStyle_\".concat(String(Array.isArray(componentName) ? componentName.join('.') : componentName));\n    }\n    return StyledComponent;\n  }\n  return {\n    genStyleHooks: genStyleHooks,\n    genSubStyleComponent: genSubStyleComponent,\n    genComponentStyleHook: genComponentStyleHook\n  };\n}\nexport default genStyleUtils;","import * as React from 'react';\nexport var CollectionContext = /*#__PURE__*/React.createContext(null);\n/**\n * Collect all the resize event from children ResizeObserver\n */\nexport function Collection(_ref) {\n  var children = _ref.children,\n    onBatchResize = _ref.onBatchResize;\n  var resizeIdRef = React.useRef(0);\n  var resizeInfosRef = React.useRef([]);\n  var onCollectionResize = React.useContext(CollectionContext);\n  var onResize = React.useCallback(function (size, element, data) {\n    resizeIdRef.current += 1;\n    var currentId = resizeIdRef.current;\n    resizeInfosRef.current.push({\n      size: size,\n      element: element,\n      data: data\n    });\n    Promise.resolve().then(function () {\n      if (currentId === resizeIdRef.current) {\n        onBatchResize === null || onBatchResize === void 0 || onBatchResize(resizeInfosRef.current);\n        resizeInfosRef.current = [];\n      }\n    });\n\n    // Continue bubbling if parent exist\n    onCollectionResize === null || onCollectionResize === void 0 || onCollectionResize(size, element, data);\n  }, [onBatchResize, onCollectionResize]);\n  return /*#__PURE__*/React.createElement(CollectionContext.Provider, {\n    value: onResize\n  }, children);\n}","import ResizeObserver from 'resize-observer-polyfill';\n// =============================== Const ===============================\nvar elementListeners = new Map();\nfunction onResize(entities) {\n  entities.forEach(function (entity) {\n    var _elementListeners$get;\n    var target = entity.target;\n    (_elementListeners$get = elementListeners.get(target)) === null || _elementListeners$get === void 0 || _elementListeners$get.forEach(function (listener) {\n      return listener(target);\n    });\n  });\n}\n\n// Note: ResizeObserver polyfill not support option to measure border-box resize\nvar resizeObserver = new ResizeObserver(onResize);\n\n// Dev env only\nexport var _el = process.env.NODE_ENV !== 'production' ? elementListeners : null; // eslint-disable-line\nexport var _rs = process.env.NODE_ENV !== 'production' ? onResize : null; // eslint-disable-line\n\n// ============================== Observe ==============================\nexport function observe(element, callback) {\n  if (!elementListeners.has(element)) {\n    elementListeners.set(element, new Set());\n    resizeObserver.observe(element);\n  }\n  elementListeners.get(element).add(callback);\n}\nexport function unobserve(element, callback) {\n  if (elementListeners.has(element)) {\n    elementListeners.get(element).delete(callback);\n    if (!elementListeners.get(element).size) {\n      resizeObserver.unobserve(element);\n      elementListeners.delete(element);\n    }\n  }\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport * as React from 'react';\n/**\n * Fallback to findDOMNode if origin ref do not provide any dom element\n */\nvar DomWrapper = /*#__PURE__*/function (_React$Component) {\n  _inherits(DomWrapper, _React$Component);\n  var _super = _createSuper(DomWrapper);\n  function DomWrapper() {\n    _classCallCheck(this, DomWrapper);\n    return _super.apply(this, arguments);\n  }\n  _createClass(DomWrapper, [{\n    key: \"render\",\n    value: function render() {\n      return this.props.children;\n    }\n  }]);\n  return DomWrapper;\n}(React.Component);\nexport { DomWrapper as default };","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport findDOMNode from \"rc-util/es/Dom/findDOMNode\";\nimport { supportRef, useComposeRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport { CollectionContext } from \"../Collection\";\nimport { observe, unobserve } from \"../utils/observerUtil\";\nimport DomWrapper from \"./DomWrapper\";\nfunction SingleObserver(props, ref) {\n  var children = props.children,\n    disabled = props.disabled;\n  var elementRef = React.useRef(null);\n  var wrapperRef = React.useRef(null);\n  var onCollectionResize = React.useContext(CollectionContext);\n\n  // =========================== Children ===========================\n  var isRenderProps = typeof children === 'function';\n  var mergedChildren = isRenderProps ? children(elementRef) : children;\n\n  // ============================= Size =============================\n  var sizeRef = React.useRef({\n    width: -1,\n    height: -1,\n    offsetWidth: -1,\n    offsetHeight: -1\n  });\n\n  // ============================= Ref ==============================\n  var canRef = !isRenderProps && /*#__PURE__*/React.isValidElement(mergedChildren) && supportRef(mergedChildren);\n  var originRef = canRef ? mergedChildren.ref : null;\n  var mergedRef = useComposeRef(originRef, elementRef);\n  var getDom = function getDom() {\n    var _elementRef$current;\n    return findDOMNode(elementRef.current) || (\n    // Support `nativeElement` format\n    elementRef.current && _typeof(elementRef.current) === 'object' ? findDOMNode((_elementRef$current = elementRef.current) === null || _elementRef$current === void 0 ? void 0 : _elementRef$current.nativeElement) : null) || findDOMNode(wrapperRef.current);\n  };\n  React.useImperativeHandle(ref, function () {\n    return getDom();\n  });\n\n  // =========================== Observe ============================\n  var propsRef = React.useRef(props);\n  propsRef.current = props;\n\n  // Handler\n  var onInternalResize = React.useCallback(function (target) {\n    var _propsRef$current = propsRef.current,\n      onResize = _propsRef$current.onResize,\n      data = _propsRef$current.data;\n    var _target$getBoundingCl = target.getBoundingClientRect(),\n      width = _target$getBoundingCl.width,\n      height = _target$getBoundingCl.height;\n    var offsetWidth = target.offsetWidth,\n      offsetHeight = target.offsetHeight;\n\n    /**\n     * Resize observer trigger when content size changed.\n     * In most case we just care about element size,\n     * let's use `boundary` instead of `contentRect` here to avoid shaking.\n     */\n    var fixedWidth = Math.floor(width);\n    var fixedHeight = Math.floor(height);\n    if (sizeRef.current.width !== fixedWidth || sizeRef.current.height !== fixedHeight || sizeRef.current.offsetWidth !== offsetWidth || sizeRef.current.offsetHeight !== offsetHeight) {\n      var size = {\n        width: fixedWidth,\n        height: fixedHeight,\n        offsetWidth: offsetWidth,\n        offsetHeight: offsetHeight\n      };\n      sizeRef.current = size;\n\n      // IE is strange, right?\n      var mergedOffsetWidth = offsetWidth === Math.round(width) ? width : offsetWidth;\n      var mergedOffsetHeight = offsetHeight === Math.round(height) ? height : offsetHeight;\n      var sizeInfo = _objectSpread(_objectSpread({}, size), {}, {\n        offsetWidth: mergedOffsetWidth,\n        offsetHeight: mergedOffsetHeight\n      });\n\n      // Let collection know what happened\n      onCollectionResize === null || onCollectionResize === void 0 || onCollectionResize(sizeInfo, target, data);\n      if (onResize) {\n        // defer the callback but not defer to next frame\n        Promise.resolve().then(function () {\n          onResize(sizeInfo, target);\n        });\n      }\n    }\n  }, []);\n\n  // Dynamic observe\n  React.useEffect(function () {\n    var currentElement = getDom();\n    if (currentElement && !disabled) {\n      observe(currentElement, onInternalResize);\n    }\n    return function () {\n      return unobserve(currentElement, onInternalResize);\n    };\n  }, [elementRef.current, disabled]);\n\n  // ============================ Render ============================\n  return /*#__PURE__*/React.createElement(DomWrapper, {\n    ref: wrapperRef\n  }, canRef ? /*#__PURE__*/React.cloneElement(mergedChildren, {\n    ref: mergedRef\n  }) : mergedChildren);\n}\nvar RefSingleObserver = /*#__PURE__*/React.forwardRef(SingleObserver);\nif (process.env.NODE_ENV !== 'production') {\n  RefSingleObserver.displayName = 'SingleObserver';\n}\nexport default RefSingleObserver;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport { warning } from \"rc-util/es/warning\";\nimport SingleObserver from \"./SingleObserver\";\nimport { Collection } from \"./Collection\";\nvar INTERNAL_PREFIX_KEY = 'rc-observer-key';\nimport { _rs } from \"./utils/observerUtil\";\nexport { /** @private Test only for mock trigger resize event */\n_rs };\nfunction ResizeObserver(props, ref) {\n  var children = props.children;\n  var childNodes = typeof children === 'function' ? [children] : toArray(children);\n  if (process.env.NODE_ENV !== 'production') {\n    if (childNodes.length > 1) {\n      warning(false, 'Find more than one child node with `children` in ResizeObserver. Please use ResizeObserver.Collection instead.');\n    } else if (childNodes.length === 0) {\n      warning(false, '`children` of ResizeObserver is empty. Nothing is in observe.');\n    }\n  }\n  return childNodes.map(function (child, index) {\n    var key = (child === null || child === void 0 ? void 0 : child.key) || \"\".concat(INTERNAL_PREFIX_KEY, \"-\").concat(index);\n    return /*#__PURE__*/React.createElement(SingleObserver, _extends({}, props, {\n      key: key,\n      ref: index === 0 ? ref : undefined\n    }), child);\n  });\n}\nvar RefResizeObserver = /*#__PURE__*/React.forwardRef(ResizeObserver);\nif (process.env.NODE_ENV !== 'production') {\n  RefResizeObserver.displayName = 'ResizeObserver';\n}\nRefResizeObserver.Collection = Collection;\nexport default RefResizeObserver;","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n  module.exports = require('./cjs/react-is.production.min.js');\n} else {\n  module.exports = require('./cjs/react-is.development.js');\n}\n","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n  if (!o) return;\n  if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n  var n = Object.prototype.toString.call(o).slice(8, -1);\n  if (n === \"Object\" && o.constructor) n = o.constructor.name;\n  if (n === \"Map\" || n === \"Set\") return Array.from(o);\n  if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","import React from 'react';\nexport const AppConfigContext = /*#__PURE__*/React.createContext({});\nconst AppContext = /*#__PURE__*/React.createContext({\n  message: {},\n  notification: {},\n  modal: {}\n});\nexport default AppContext;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport classNames from 'classnames';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport * as React from 'react';\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nvar Notify = /*#__PURE__*/React.forwardRef(function (props, ref) {\n  var prefixCls = props.prefixCls,\n    style = props.style,\n    className = props.className,\n    _props$duration = props.duration,\n    duration = _props$duration === void 0 ? 4.5 : _props$duration,\n    showProgress = props.showProgress,\n    _props$pauseOnHover = props.pauseOnHover,\n    pauseOnHover = _props$pauseOnHover === void 0 ? true : _props$pauseOnHover,\n    eventKey = props.eventKey,\n    content = props.content,\n    closable = props.closable,\n    _props$closeIcon = props.closeIcon,\n    closeIcon = _props$closeIcon === void 0 ? 'x' : _props$closeIcon,\n    divProps = props.props,\n    onClick = props.onClick,\n    onNoticeClose = props.onNoticeClose,\n    times = props.times,\n    forcedHovering = props.hovering;\n  var _React$useState = React.useState(false),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    hovering = _React$useState2[0],\n    setHovering = _React$useState2[1];\n  var _React$useState3 = React.useState(0),\n    _React$useState4 = _slicedToArray(_React$useState3, 2),\n    percent = _React$useState4[0],\n    setPercent = _React$useState4[1];\n  var _React$useState5 = React.useState(0),\n    _React$useState6 = _slicedToArray(_React$useState5, 2),\n    spentTime = _React$useState6[0],\n    setSpentTime = _React$useState6[1];\n  var mergedHovering = forcedHovering || hovering;\n  var mergedShowProgress = duration > 0 && showProgress;\n\n  // ======================== Close =========================\n  var onInternalClose = function onInternalClose() {\n    onNoticeClose(eventKey);\n  };\n  var onCloseKeyDown = function onCloseKeyDown(e) {\n    if (e.key === 'Enter' || e.code === 'Enter' || e.keyCode === KeyCode.ENTER) {\n      onInternalClose();\n    }\n  };\n\n  // ======================== Effect ========================\n  React.useEffect(function () {\n    if (!mergedHovering && duration > 0) {\n      var start = Date.now() - spentTime;\n      var timeout = setTimeout(function () {\n        onInternalClose();\n      }, duration * 1000 - spentTime);\n      return function () {\n        if (pauseOnHover) {\n          clearTimeout(timeout);\n        }\n        setSpentTime(Date.now() - start);\n      };\n    }\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n  }, [duration, mergedHovering, times]);\n  React.useEffect(function () {\n    if (!mergedHovering && mergedShowProgress && (pauseOnHover || spentTime === 0)) {\n      var start = performance.now();\n      var animationFrame;\n      var calculate = function calculate() {\n        cancelAnimationFrame(animationFrame);\n        animationFrame = requestAnimationFrame(function (timestamp) {\n          var runtime = timestamp + spentTime - start;\n          var progress = Math.min(runtime / (duration * 1000), 1);\n          setPercent(progress * 100);\n          if (progress < 1) {\n            calculate();\n          }\n        });\n      };\n      calculate();\n      return function () {\n        if (pauseOnHover) {\n          cancelAnimationFrame(animationFrame);\n        }\n      };\n    }\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n  }, [duration, spentTime, mergedHovering, mergedShowProgress, times]);\n\n  // ======================== Closable ========================\n  var closableObj = React.useMemo(function () {\n    if (_typeof(closable) === 'object' && closable !== null) {\n      return closable;\n    }\n    if (closable) {\n      return {\n        closeIcon: closeIcon\n      };\n    }\n    return {};\n  }, [closable, closeIcon]);\n  var ariaProps = pickAttrs(closableObj, true);\n\n  // ======================== Progress ========================\n  var validPercent = 100 - (!percent || percent < 0 ? 0 : percent > 100 ? 100 : percent);\n\n  // ======================== Render ========================\n  var noticePrefixCls = \"\".concat(prefixCls, \"-notice\");\n  return /*#__PURE__*/React.createElement(\"div\", _extends({}, divProps, {\n    ref: ref,\n    className: classNames(noticePrefixCls, className, _defineProperty({}, \"\".concat(noticePrefixCls, \"-closable\"), closable)),\n    style: style,\n    onMouseEnter: function onMouseEnter(e) {\n      var _divProps$onMouseEnte;\n      setHovering(true);\n      divProps === null || divProps === void 0 || (_divProps$onMouseEnte = divProps.onMouseEnter) === null || _divProps$onMouseEnte === void 0 || _divProps$onMouseEnte.call(divProps, e);\n    },\n    onMouseLeave: function onMouseLeave(e) {\n      var _divProps$onMouseLeav;\n      setHovering(false);\n      divProps === null || divProps === void 0 || (_divProps$onMouseLeav = divProps.onMouseLeave) === null || _divProps$onMouseLeav === void 0 || _divProps$onMouseLeav.call(divProps, e);\n    },\n    onClick: onClick\n  }), /*#__PURE__*/React.createElement(\"div\", {\n    className: \"\".concat(noticePrefixCls, \"-content\")\n  }, content), closable && /*#__PURE__*/React.createElement(\"a\", _extends({\n    tabIndex: 0,\n    className: \"\".concat(noticePrefixCls, \"-close\"),\n    onKeyDown: onCloseKeyDown,\n    \"aria-label\": \"Close\"\n  }, ariaProps, {\n    onClick: function onClick(e) {\n      e.preventDefault();\n      e.stopPropagation();\n      onInternalClose();\n    }\n  }), closableObj.closeIcon), mergedShowProgress && /*#__PURE__*/React.createElement(\"progress\", {\n    className: \"\".concat(noticePrefixCls, \"-progress\"),\n    max: \"100\",\n    value: validPercent\n  }, validPercent + '%'));\n});\nexport default Notify;","import React from 'react';\nexport var NotificationContext = /*#__PURE__*/React.createContext({});\nvar NotificationProvider = function NotificationProvider(_ref) {\n  var children = _ref.children,\n    classNames = _ref.classNames;\n  return /*#__PURE__*/React.createElement(NotificationContext.Provider, {\n    value: {\n      classNames: classNames\n    }\n  }, children);\n};\nexport default NotificationProvider;","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nvar DEFAULT_OFFSET = 8;\nvar DEFAULT_THRESHOLD = 3;\nvar DEFAULT_GAP = 16;\nvar useStack = function useStack(config) {\n  var result = {\n    offset: DEFAULT_OFFSET,\n    threshold: DEFAULT_THRESHOLD,\n    gap: DEFAULT_GAP\n  };\n  if (config && _typeof(config) === 'object') {\n    var _config$offset, _config$threshold, _config$gap;\n    result.offset = (_config$offset = config.offset) !== null && _config$offset !== void 0 ? _config$offset : DEFAULT_OFFSET;\n    result.threshold = (_config$threshold = config.threshold) !== null && _config$threshold !== void 0 ? _config$threshold : DEFAULT_THRESHOLD;\n    result.gap = (_config$gap = config.gap) !== null && _config$gap !== void 0 ? _config$gap : DEFAULT_GAP;\n  }\n  return [!!config, result];\n};\nexport default useStack;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nvar _excluded = [\"className\", \"style\", \"classNames\", \"styles\"];\nimport React, { useContext, useEffect, useRef, useState } from 'react';\nimport clsx from 'classnames';\nimport { CSSMotionList } from 'rc-motion';\nimport Notice from \"./Notice\";\nimport { NotificationContext } from \"./NotificationProvider\";\nimport useStack from \"./hooks/useStack\";\nvar NoticeList = function NoticeList(props) {\n  var configList = props.configList,\n    placement = props.placement,\n    prefixCls = props.prefixCls,\n    className = props.className,\n    style = props.style,\n    motion = props.motion,\n    onAllNoticeRemoved = props.onAllNoticeRemoved,\n    onNoticeClose = props.onNoticeClose,\n    stackConfig = props.stack;\n  var _useContext = useContext(NotificationContext),\n    ctxCls = _useContext.classNames;\n  var dictRef = useRef({});\n  var latestNoticeRef = useRef(null);\n  var _useState = useState([]),\n    _useState2 = _slicedToArray(_useState, 2),\n    hoverKeys = _useState2[0],\n    setHoverKeys = _useState2[1];\n  var keys = configList.map(function (config) {\n    return {\n      config: config,\n      key: String(config.key)\n    };\n  });\n  var _useStack = useStack(stackConfig),\n    _useStack2 = _slicedToArray(_useStack, 2),\n    stack = _useStack2[0],\n    _useStack2$ = _useStack2[1],\n    offset = _useStack2$.offset,\n    threshold = _useStack2$.threshold,\n    gap = _useStack2$.gap;\n  var expanded = stack && (hoverKeys.length > 0 || keys.length <= threshold);\n  var placementMotion = typeof motion === 'function' ? motion(placement) : motion;\n\n  // Clean hover key\n  useEffect(function () {\n    if (stack && hoverKeys.length > 1) {\n      setHoverKeys(function (prev) {\n        return prev.filter(function (key) {\n          return keys.some(function (_ref) {\n            var dataKey = _ref.key;\n            return key === dataKey;\n          });\n        });\n      });\n    }\n  }, [hoverKeys, keys, stack]);\n\n  // Force update latest notice\n  useEffect(function () {\n    var _keys;\n    if (stack && dictRef.current[(_keys = keys[keys.length - 1]) === null || _keys === void 0 ? void 0 : _keys.key]) {\n      var _keys2;\n      latestNoticeRef.current = dictRef.current[(_keys2 = keys[keys.length - 1]) === null || _keys2 === void 0 ? void 0 : _keys2.key];\n    }\n  }, [keys, stack]);\n  return /*#__PURE__*/React.createElement(CSSMotionList, _extends({\n    key: placement,\n    className: clsx(prefixCls, \"\".concat(prefixCls, \"-\").concat(placement), ctxCls === null || ctxCls === void 0 ? void 0 : ctxCls.list, className, _defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-stack\"), !!stack), \"\".concat(prefixCls, \"-stack-expanded\"), expanded)),\n    style: style,\n    keys: keys,\n    motionAppear: true\n  }, placementMotion, {\n    onAllRemoved: function onAllRemoved() {\n      onAllNoticeRemoved(placement);\n    }\n  }), function (_ref2, nodeRef) {\n    var config = _ref2.config,\n      motionClassName = _ref2.className,\n      motionStyle = _ref2.style,\n      motionIndex = _ref2.index;\n    var _ref3 = config,\n      key = _ref3.key,\n      times = _ref3.times;\n    var strKey = String(key);\n    var _ref4 = config,\n      configClassName = _ref4.className,\n      configStyle = _ref4.style,\n      configClassNames = _ref4.classNames,\n      configStyles = _ref4.styles,\n      restConfig = _objectWithoutProperties(_ref4, _excluded);\n    var dataIndex = keys.findIndex(function (item) {\n      return item.key === strKey;\n    });\n\n    // If dataIndex is -1, that means this notice has been removed in data, but still in dom\n    // Should minus (motionIndex - 1) to get the correct index because keys.length is not the same as dom length\n    var stackStyle = {};\n    if (stack) {\n      var index = keys.length - 1 - (dataIndex > -1 ? dataIndex : motionIndex - 1);\n      var transformX = placement === 'top' || placement === 'bottom' ? '-50%' : '0';\n      if (index > 0) {\n        var _dictRef$current$strK, _latestNoticeRef$curr, _latestNoticeRef$curr2, _dictRef$current$strK2, _latestNoticeRef$curr3, _dictRef$current$strK3;\n        stackStyle.height = expanded ? (_dictRef$current$strK = dictRef.current[strKey]) === null || _dictRef$current$strK === void 0 ? void 0 : _dictRef$current$strK.offsetHeight : (_latestNoticeRef$curr = latestNoticeRef.current) === null || _latestNoticeRef$curr === void 0 ? void 0 : _latestNoticeRef$curr.offsetHeight;\n\n        // Transform\n        var verticalOffset = 0;\n        for (var i = 0; i < index; i++) {\n          var _dictRef$current$keys;\n          verticalOffset += ((_dictRef$current$keys = dictRef.current[keys[keys.length - 1 - i].key]) === null || _dictRef$current$keys === void 0 ? void 0 : _dictRef$current$keys.offsetHeight) + gap;\n        }\n        var transformY = (expanded ? verticalOffset : index * offset) * (placement.startsWith('top') ? 1 : -1);\n        var scaleX = !expanded && (_latestNoticeRef$curr2 = latestNoticeRef.current) !== null && _latestNoticeRef$curr2 !== void 0 && _latestNoticeRef$curr2.offsetWidth && (_dictRef$current$strK2 = dictRef.current[strKey]) !== null && _dictRef$current$strK2 !== void 0 && _dictRef$current$strK2.offsetWidth ? (((_latestNoticeRef$curr3 = latestNoticeRef.current) === null || _latestNoticeRef$curr3 === void 0 ? void 0 : _latestNoticeRef$curr3.offsetWidth) - offset * 2 * (index < 3 ? index : 3)) / ((_dictRef$current$strK3 = dictRef.current[strKey]) === null || _dictRef$current$strK3 === void 0 ? void 0 : _dictRef$current$strK3.offsetWidth) : 1;\n        stackStyle.transform = \"translate3d(\".concat(transformX, \", \").concat(transformY, \"px, 0) scaleX(\").concat(scaleX, \")\");\n      } else {\n        stackStyle.transform = \"translate3d(\".concat(transformX, \", 0, 0)\");\n      }\n    }\n    return /*#__PURE__*/React.createElement(\"div\", {\n      ref: nodeRef,\n      className: clsx(\"\".concat(prefixCls, \"-notice-wrapper\"), motionClassName, configClassNames === null || configClassNames === void 0 ? void 0 : configClassNames.wrapper),\n      style: _objectSpread(_objectSpread(_objectSpread({}, motionStyle), stackStyle), configStyles === null || configStyles === void 0 ? void 0 : configStyles.wrapper),\n      onMouseEnter: function onMouseEnter() {\n        return setHoverKeys(function (prev) {\n          return prev.includes(strKey) ? prev : [].concat(_toConsumableArray(prev), [strKey]);\n        });\n      },\n      onMouseLeave: function onMouseLeave() {\n        return setHoverKeys(function (prev) {\n          return prev.filter(function (k) {\n            return k !== strKey;\n          });\n        });\n      }\n    }, /*#__PURE__*/React.createElement(Notice, _extends({}, restConfig, {\n      ref: function ref(node) {\n        if (dataIndex > -1) {\n          dictRef.current[strKey] = node;\n        } else {\n          delete dictRef.current[strKey];\n        }\n      },\n      prefixCls: prefixCls,\n      classNames: configClassNames,\n      styles: configStyles,\n      className: clsx(configClassName, ctxCls === null || ctxCls === void 0 ? void 0 : ctxCls.notice),\n      style: configStyle,\n      times: times,\n      key: key,\n      eventKey: key,\n      onNoticeClose: onNoticeClose,\n      hovering: stack && hoverKeys.length > 0\n    })));\n  });\n};\nif (process.env.NODE_ENV !== 'production') {\n  NoticeList.displayName = 'NoticeList';\n}\nexport default NoticeList;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { createPortal } from 'react-dom';\nimport NoticeList from \"./NoticeList\";\n// ant-notification ant-notification-topRight\nvar Notifications = /*#__PURE__*/React.forwardRef(function (props, ref) {\n  var _props$prefixCls = props.prefixCls,\n    prefixCls = _props$prefixCls === void 0 ? 'rc-notification' : _props$prefixCls,\n    container = props.container,\n    motion = props.motion,\n    maxCount = props.maxCount,\n    className = props.className,\n    style = props.style,\n    onAllRemoved = props.onAllRemoved,\n    stack = props.stack,\n    renderNotifications = props.renderNotifications;\n  var _React$useState = React.useState([]),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    configList = _React$useState2[0],\n    setConfigList = _React$useState2[1];\n\n  // ======================== Close =========================\n  var onNoticeClose = function onNoticeClose(key) {\n    var _config$onClose;\n    // Trigger close event\n    var config = configList.find(function (item) {\n      return item.key === key;\n    });\n    config === null || config === void 0 || (_config$onClose = config.onClose) === null || _config$onClose === void 0 || _config$onClose.call(config);\n    setConfigList(function (list) {\n      return list.filter(function (item) {\n        return item.key !== key;\n      });\n    });\n  };\n\n  // ========================= Refs =========================\n  React.useImperativeHandle(ref, function () {\n    return {\n      open: function open(config) {\n        setConfigList(function (list) {\n          var clone = _toConsumableArray(list);\n\n          // Replace if exist\n          var index = clone.findIndex(function (item) {\n            return item.key === config.key;\n          });\n          var innerConfig = _objectSpread({}, config);\n          if (index >= 0) {\n            var _list$index;\n            innerConfig.times = (((_list$index = list[index]) === null || _list$index === void 0 ? void 0 : _list$index.times) || 0) + 1;\n            clone[index] = innerConfig;\n          } else {\n            innerConfig.times = 0;\n            clone.push(innerConfig);\n          }\n          if (maxCount > 0 && clone.length > maxCount) {\n            clone = clone.slice(-maxCount);\n          }\n          return clone;\n        });\n      },\n      close: function close(key) {\n        onNoticeClose(key);\n      },\n      destroy: function destroy() {\n        setConfigList([]);\n      }\n    };\n  });\n\n  // ====================== Placements ======================\n  var _React$useState3 = React.useState({}),\n    _React$useState4 = _slicedToArray(_React$useState3, 2),\n    placements = _React$useState4[0],\n    setPlacements = _React$useState4[1];\n  React.useEffect(function () {\n    var nextPlacements = {};\n    configList.forEach(function (config) {\n      var _config$placement = config.placement,\n        placement = _config$placement === void 0 ? 'topRight' : _config$placement;\n      if (placement) {\n        nextPlacements[placement] = nextPlacements[placement] || [];\n        nextPlacements[placement].push(config);\n      }\n    });\n\n    // Fill exist placements to avoid empty list causing remove without motion\n    Object.keys(placements).forEach(function (placement) {\n      nextPlacements[placement] = nextPlacements[placement] || [];\n    });\n    setPlacements(nextPlacements);\n  }, [configList]);\n\n  // Clean up container if all notices fade out\n  var onAllNoticeRemoved = function onAllNoticeRemoved(placement) {\n    setPlacements(function (originPlacements) {\n      var clone = _objectSpread({}, originPlacements);\n      var list = clone[placement] || [];\n      if (!list.length) {\n        delete clone[placement];\n      }\n      return clone;\n    });\n  };\n\n  // Effect tell that placements is empty now\n  var emptyRef = React.useRef(false);\n  React.useEffect(function () {\n    if (Object.keys(placements).length > 0) {\n      emptyRef.current = true;\n    } else if (emptyRef.current) {\n      // Trigger only when from exist to empty\n      onAllRemoved === null || onAllRemoved === void 0 || onAllRemoved();\n      emptyRef.current = false;\n    }\n  }, [placements]);\n  // ======================== Render ========================\n  if (!container) {\n    return null;\n  }\n  var placementList = Object.keys(placements);\n  return /*#__PURE__*/createPortal( /*#__PURE__*/React.createElement(React.Fragment, null, placementList.map(function (placement) {\n    var placementConfigList = placements[placement];\n    var list = /*#__PURE__*/React.createElement(NoticeList, {\n      key: placement,\n      configList: placementConfigList,\n      placement: placement,\n      prefixCls: prefixCls,\n      className: className === null || className === void 0 ? void 0 : className(placement),\n      style: style === null || style === void 0 ? void 0 : style(placement),\n      motion: motion,\n      onNoticeClose: onNoticeClose,\n      onAllNoticeRemoved: onAllNoticeRemoved,\n      stack: stack\n    });\n    return renderNotifications ? renderNotifications(list, {\n      prefixCls: prefixCls,\n      key: placement\n    }) : list;\n  })), container);\n});\nif (process.env.NODE_ENV !== 'production') {\n  Notifications.displayName = 'Notifications';\n}\nexport default Notifications;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"getContainer\", \"motion\", \"prefixCls\", \"maxCount\", \"className\", \"style\", \"onAllRemoved\", \"stack\", \"renderNotifications\"];\nimport * as React from 'react';\nimport Notifications from \"../Notifications\";\nvar defaultGetContainer = function defaultGetContainer() {\n  return document.body;\n};\nvar uniqueKey = 0;\nfunction mergeConfig() {\n  var clone = {};\n  for (var _len = arguments.length, objList = new Array(_len), _key = 0; _key < _len; _key++) {\n    objList[_key] = arguments[_key];\n  }\n  objList.forEach(function (obj) {\n    if (obj) {\n      Object.keys(obj).forEach(function (key) {\n        var val = obj[key];\n        if (val !== undefined) {\n          clone[key] = val;\n        }\n      });\n    }\n  });\n  return clone;\n}\nexport default function useNotification() {\n  var rootConfig = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  var _rootConfig$getContai = rootConfig.getContainer,\n    getContainer = _rootConfig$getContai === void 0 ? defaultGetContainer : _rootConfig$getContai,\n    motion = rootConfig.motion,\n    prefixCls = rootConfig.prefixCls,\n    maxCount = rootConfig.maxCount,\n    className = rootConfig.className,\n    style = rootConfig.style,\n    onAllRemoved = rootConfig.onAllRemoved,\n    stack = rootConfig.stack,\n    renderNotifications = rootConfig.renderNotifications,\n    shareConfig = _objectWithoutProperties(rootConfig, _excluded);\n  var _React$useState = React.useState(),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    container = _React$useState2[0],\n    setContainer = _React$useState2[1];\n  var notificationsRef = React.useRef();\n  var contextHolder = /*#__PURE__*/React.createElement(Notifications, {\n    container: container,\n    ref: notificationsRef,\n    prefixCls: prefixCls,\n    motion: motion,\n    maxCount: maxCount,\n    className: className,\n    style: style,\n    onAllRemoved: onAllRemoved,\n    stack: stack,\n    renderNotifications: renderNotifications\n  });\n  var _React$useState3 = React.useState([]),\n    _React$useState4 = _slicedToArray(_React$useState3, 2),\n    taskQueue = _React$useState4[0],\n    setTaskQueue = _React$useState4[1];\n\n  // ========================= Refs =========================\n  var api = React.useMemo(function () {\n    return {\n      open: function open(config) {\n        var mergedConfig = mergeConfig(shareConfig, config);\n        if (mergedConfig.key === null || mergedConfig.key === undefined) {\n          mergedConfig.key = \"rc-notification-\".concat(uniqueKey);\n          uniqueKey += 1;\n        }\n        setTaskQueue(function (queue) {\n          return [].concat(_toConsumableArray(queue), [{\n            type: 'open',\n            config: mergedConfig\n          }]);\n        });\n      },\n      close: function close(key) {\n        setTaskQueue(function (queue) {\n          return [].concat(_toConsumableArray(queue), [{\n            type: 'close',\n            key: key\n          }]);\n        });\n      },\n      destroy: function destroy() {\n        setTaskQueue(function (queue) {\n          return [].concat(_toConsumableArray(queue), [{\n            type: 'destroy'\n          }]);\n        });\n      }\n    };\n  }, []);\n\n  // ======================= Container ======================\n  // React 18 should all in effect that we will check container in each render\n  // Which means getContainer should be stable.\n  React.useEffect(function () {\n    setContainer(getContainer());\n  });\n\n  // ======================== Effect ========================\n  React.useEffect(function () {\n    // Flush task when node ready\n    if (notificationsRef.current && taskQueue.length) {\n      taskQueue.forEach(function (task) {\n        switch (task.type) {\n          case 'open':\n            notificationsRef.current.open(task.config);\n            break;\n          case 'close':\n            notificationsRef.current.close(task.key);\n            break;\n          case 'destroy':\n            notificationsRef.current.destroy();\n            break;\n        }\n      });\n\n      // React 17 will mix order of effect & setState in async\n      // - open: setState[0]\n      // - effect[0]\n      // - open: setState[1]\n      // - effect setState([]) * here will clean up [0, 1] in React 17\n      setTaskQueue(function (oriQueue) {\n        return oriQueue.filter(function (task) {\n          return !taskQueue.includes(task);\n        });\n      });\n    }\n  }, [taskQueue]);\n\n  // ======================== Return ========================\n  return [api, contextHolder];\n}","import { Keyframes } from '@ant-design/cssinjs';\nimport { CONTAINER_MAX_OFFSET } from '../../_util/hooks/useZIndex';\nimport { resetComponent } from '../../style';\nimport { genStyleHooks, mergeToken } from '../../theme/internal';\nconst genMessageStyle = token => {\n  const {\n    componentCls,\n    iconCls,\n    boxShadow,\n    colorText,\n    colorSuccess,\n    colorError,\n    colorWarning,\n    colorInfo,\n    fontSizeLG,\n    motionEaseInOutCirc,\n    motionDurationSlow,\n    marginXS,\n    paddingXS,\n    borderRadiusLG,\n    zIndexPopup,\n    // Custom token\n    contentPadding,\n    contentBg\n  } = token;\n  const noticeCls = `${componentCls}-notice`;\n  const messageMoveIn = new Keyframes('MessageMoveIn', {\n    '0%': {\n      padding: 0,\n      transform: 'translateY(-100%)',\n      opacity: 0\n    },\n    '100%': {\n      padding: paddingXS,\n      transform: 'translateY(0)',\n      opacity: 1\n    }\n  });\n  const messageMoveOut = new Keyframes('MessageMoveOut', {\n    '0%': {\n      maxHeight: token.height,\n      padding: paddingXS,\n      opacity: 1\n    },\n    '100%': {\n      maxHeight: 0,\n      padding: 0,\n      opacity: 0\n    }\n  });\n  const noticeStyle = {\n    padding: paddingXS,\n    textAlign: 'center',\n    [`${componentCls}-custom-content`]: {\n      display: 'flex',\n      alignItems: 'center'\n    },\n    [`${componentCls}-custom-content > ${iconCls}`]: {\n      marginInlineEnd: marginXS,\n      // affected by ltr or rtl\n      fontSize: fontSizeLG\n    },\n    [`${noticeCls}-content`]: {\n      display: 'inline-block',\n      padding: contentPadding,\n      background: contentBg,\n      borderRadius: borderRadiusLG,\n      boxShadow,\n      pointerEvents: 'all'\n    },\n    [`${componentCls}-success > ${iconCls}`]: {\n      color: colorSuccess\n    },\n    [`${componentCls}-error > ${iconCls}`]: {\n      color: colorError\n    },\n    [`${componentCls}-warning > ${iconCls}`]: {\n      color: colorWarning\n    },\n    [`${componentCls}-info > ${iconCls},\n      ${componentCls}-loading > ${iconCls}`]: {\n      color: colorInfo\n    }\n  };\n  return [\n  // ============================ Holder ============================\n  {\n    [componentCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n      color: colorText,\n      position: 'fixed',\n      top: marginXS,\n      width: '100%',\n      pointerEvents: 'none',\n      zIndex: zIndexPopup,\n      [`${componentCls}-move-up`]: {\n        animationFillMode: 'forwards'\n      },\n      [`\n        ${componentCls}-move-up-appear,\n        ${componentCls}-move-up-enter\n      `]: {\n        animationName: messageMoveIn,\n        animationDuration: motionDurationSlow,\n        animationPlayState: 'paused',\n        animationTimingFunction: motionEaseInOutCirc\n      },\n      [`\n        ${componentCls}-move-up-appear${componentCls}-move-up-appear-active,\n        ${componentCls}-move-up-enter${componentCls}-move-up-enter-active\n      `]: {\n        animationPlayState: 'running'\n      },\n      [`${componentCls}-move-up-leave`]: {\n        animationName: messageMoveOut,\n        animationDuration: motionDurationSlow,\n        animationPlayState: 'paused',\n        animationTimingFunction: motionEaseInOutCirc\n      },\n      [`${componentCls}-move-up-leave${componentCls}-move-up-leave-active`]: {\n        animationPlayState: 'running'\n      },\n      '&-rtl': {\n        direction: 'rtl',\n        span: {\n          direction: 'rtl'\n        }\n      }\n    })\n  },\n  // ============================ Notice ============================\n  {\n    [componentCls]: {\n      [`${noticeCls}-wrapper`]: Object.assign({}, noticeStyle)\n    }\n  },\n  // ============================= Pure =============================\n  {\n    [`${componentCls}-notice-pure-panel`]: Object.assign(Object.assign({}, noticeStyle), {\n      padding: 0,\n      textAlign: 'start'\n    })\n  }];\n};\nexport const prepareComponentToken = token => ({\n  zIndexPopup: token.zIndexPopupBase + CONTAINER_MAX_OFFSET + 10,\n  contentBg: token.colorBgElevated,\n  contentPadding: `${(token.controlHeightLG - token.fontSize * token.lineHeight) / 2}px ${token.paddingSM}px`\n});\n// ============================== Export ==============================\nexport default genStyleHooks('Message', token => {\n  // Gen-style functions here\n  const combinedToken = mergeToken(token, {\n    height: 150\n  });\n  return [genMessageStyle(combinedToken)];\n}, prepareComponentToken);","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n  var t = {};\n  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n  }\n  return t;\n};\nimport * as React from 'react';\nimport CheckCircleFilled from \"@ant-design/icons/es/icons/CheckCircleFilled\";\nimport CloseCircleFilled from \"@ant-design/icons/es/icons/CloseCircleFilled\";\nimport ExclamationCircleFilled from \"@ant-design/icons/es/icons/ExclamationCircleFilled\";\nimport InfoCircleFilled from \"@ant-design/icons/es/icons/InfoCircleFilled\";\nimport LoadingOutlined from \"@ant-design/icons/es/icons/LoadingOutlined\";\nimport classNames from 'classnames';\nimport { Notice } from 'rc-notification';\nimport { ConfigContext } from '../config-provider';\nimport useCSSVarCls from '../config-provider/hooks/useCSSVarCls';\nimport useStyle from './style';\nexport const TypeIcon = {\n  info: /*#__PURE__*/React.createElement(InfoCircleFilled, null),\n  success: /*#__PURE__*/React.createElement(CheckCircleFilled, null),\n  error: /*#__PURE__*/React.createElement(CloseCircleFilled, null),\n  warning: /*#__PURE__*/React.createElement(ExclamationCircleFilled, null),\n  loading: /*#__PURE__*/React.createElement(LoadingOutlined, null)\n};\nexport const PureContent = _ref => {\n  let {\n    prefixCls,\n    type,\n    icon,\n    children\n  } = _ref;\n  return /*#__PURE__*/React.createElement(\"div\", {\n    className: classNames(`${prefixCls}-custom-content`, `${prefixCls}-${type}`)\n  }, icon || TypeIcon[type], /*#__PURE__*/React.createElement(\"span\", null, children));\n};\n/** @private Internal Component. Do not use in your production. */\nconst PurePanel = props => {\n  const {\n      prefixCls: staticPrefixCls,\n      className,\n      type,\n      icon,\n      content\n    } = props,\n    restProps = __rest(props, [\"prefixCls\", \"className\", \"type\", \"icon\", \"content\"]);\n  const {\n    getPrefixCls\n  } = React.useContext(ConfigContext);\n  const prefixCls = staticPrefixCls || getPrefixCls('message');\n  const rootCls = useCSSVarCls(prefixCls);\n  const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls, rootCls);\n  return wrapCSSVar(/*#__PURE__*/React.createElement(Notice, Object.assign({}, restProps, {\n    prefixCls: prefixCls,\n    className: classNames(className, hashId, `${prefixCls}-notice-pure-panel`, cssVarCls, rootCls),\n    eventKey: \"pure\",\n    duration: null,\n    content: /*#__PURE__*/React.createElement(PureContent, {\n      prefixCls: prefixCls,\n      type: type,\n      icon: icon\n    }, content)\n  })));\n};\nexport default PurePanel;","export function getMotion(prefixCls, transitionName) {\n  return {\n    motionName: transitionName !== null && transitionName !== void 0 ? transitionName : `${prefixCls}-move-up`\n  };\n}\n/** Wrap message open with promise like function */\nexport function wrapPromiseFn(openFn) {\n  let closeFn;\n  const closePromise = new Promise(resolve => {\n    closeFn = openFn(() => {\n      resolve(true);\n    });\n  });\n  const result = () => {\n    closeFn === null || closeFn === void 0 ? void 0 : closeFn();\n  };\n  result.then = (filled, rejected) => closePromise.then(filled, rejected);\n  result.promise = closePromise;\n  return result;\n}","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n  var t = {};\n  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n  }\n  return t;\n};\nimport * as React from 'react';\nimport CloseOutlined from \"@ant-design/icons/es/icons/CloseOutlined\";\nimport classNames from 'classnames';\nimport { NotificationProvider, useNotification as useRcNotification } from 'rc-notification';\nimport { devUseWarning } from '../_util/warning';\nimport { ConfigContext } from '../config-provider';\nimport useCSSVarCls from '../config-provider/hooks/useCSSVarCls';\nimport { PureContent } from './PurePanel';\nimport useStyle from './style';\nimport { getMotion, wrapPromiseFn } from './util';\nconst DEFAULT_OFFSET = 8;\nconst DEFAULT_DURATION = 3;\nconst Wrapper = _ref => {\n  let {\n    children,\n    prefixCls\n  } = _ref;\n  const rootCls = useCSSVarCls(prefixCls);\n  const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls, rootCls);\n  return wrapCSSVar(/*#__PURE__*/React.createElement(NotificationProvider, {\n    classNames: {\n      list: classNames(hashId, cssVarCls, rootCls)\n    }\n  }, children));\n};\nconst renderNotifications = (node, _ref2) => {\n  let {\n    prefixCls,\n    key\n  } = _ref2;\n  return /*#__PURE__*/React.createElement(Wrapper, {\n    prefixCls: prefixCls,\n    key: key\n  }, node);\n};\nconst Holder = /*#__PURE__*/React.forwardRef((props, ref) => {\n  const {\n    top,\n    prefixCls: staticPrefixCls,\n    getContainer: staticGetContainer,\n    maxCount,\n    duration = DEFAULT_DURATION,\n    rtl,\n    transitionName,\n    onAllRemoved\n  } = props;\n  const {\n    getPrefixCls,\n    getPopupContainer,\n    message,\n    direction\n  } = React.useContext(ConfigContext);\n  const prefixCls = staticPrefixCls || getPrefixCls('message');\n  // =============================== Style ===============================\n  const getStyle = () => ({\n    left: '50%',\n    transform: 'translateX(-50%)',\n    top: top !== null && top !== void 0 ? top : DEFAULT_OFFSET\n  });\n  const getClassName = () => classNames({\n    [`${prefixCls}-rtl`]: rtl !== null && rtl !== void 0 ? rtl : direction === 'rtl'\n  });\n  // ============================== Motion ===============================\n  const getNotificationMotion = () => getMotion(prefixCls, transitionName);\n  // ============================ Close Icon =============================\n  const mergedCloseIcon = /*#__PURE__*/React.createElement(\"span\", {\n    className: `${prefixCls}-close-x`\n  }, /*#__PURE__*/React.createElement(CloseOutlined, {\n    className: `${prefixCls}-close-icon`\n  }));\n  // ============================== Origin ===============================\n  const [api, holder] = useRcNotification({\n    prefixCls,\n    style: getStyle,\n    className: getClassName,\n    motion: getNotificationMotion,\n    closable: false,\n    closeIcon: mergedCloseIcon,\n    duration,\n    getContainer: () => (staticGetContainer === null || staticGetContainer === void 0 ? void 0 : staticGetContainer()) || (getPopupContainer === null || getPopupContainer === void 0 ? void 0 : getPopupContainer()) || document.body,\n    maxCount,\n    onAllRemoved,\n    renderNotifications\n  });\n  // ================================ Ref ================================\n  React.useImperativeHandle(ref, () => Object.assign(Object.assign({}, api), {\n    prefixCls,\n    message\n  }));\n  return holder;\n});\n// ==============================================================================\n// ==                                   Hook                                   ==\n// ==============================================================================\nlet keyIndex = 0;\nexport function useInternalMessage(messageConfig) {\n  const holderRef = React.useRef(null);\n  const warning = devUseWarning('Message');\n  // ================================ API ================================\n  const wrapAPI = React.useMemo(() => {\n    // Wrap with notification content\n    // >>> close\n    const close = key => {\n      var _a;\n      (_a = holderRef.current) === null || _a === void 0 ? void 0 : _a.close(key);\n    };\n    // >>> Open\n    const open = config => {\n      if (!holderRef.current) {\n        process.env.NODE_ENV !== \"production\" ? warning(false, 'usage', 'You are calling notice in render which will break in React 18 concurrent mode. Please trigger in effect instead.') : void 0;\n        const fakeResult = () => {};\n        fakeResult.then = () => {};\n        return fakeResult;\n      }\n      const {\n        open: originOpen,\n        prefixCls,\n        message\n      } = holderRef.current;\n      const noticePrefixCls = `${prefixCls}-notice`;\n      const {\n          content,\n          icon,\n          type,\n          key,\n          className,\n          style,\n          onClose\n        } = config,\n        restConfig = __rest(config, [\"content\", \"icon\", \"type\", \"key\", \"className\", \"style\", \"onClose\"]);\n      let mergedKey = key;\n      if (mergedKey === undefined || mergedKey === null) {\n        keyIndex += 1;\n        mergedKey = `antd-message-${keyIndex}`;\n      }\n      return wrapPromiseFn(resolve => {\n        originOpen(Object.assign(Object.assign({}, restConfig), {\n          key: mergedKey,\n          content: (/*#__PURE__*/React.createElement(PureContent, {\n            prefixCls: prefixCls,\n            type: type,\n            icon: icon\n          }, content)),\n          placement: 'top',\n          className: classNames(type && `${noticePrefixCls}-${type}`, className, message === null || message === void 0 ? void 0 : message.className),\n          style: Object.assign(Object.assign({}, message === null || message === void 0 ? void 0 : message.style), style),\n          onClose: () => {\n            onClose === null || onClose === void 0 ? void 0 : onClose();\n            resolve();\n          }\n        }));\n        // Return close function\n        return () => {\n          close(mergedKey);\n        };\n      });\n    };\n    // >>> destroy\n    const destroy = key => {\n      var _a;\n      if (key !== undefined) {\n        close(key);\n      } else {\n        (_a = holderRef.current) === null || _a === void 0 ? void 0 : _a.destroy();\n      }\n    };\n    const clone = {\n      open,\n      destroy\n    };\n    const keys = ['info', 'success', 'warning', 'error', 'loading'];\n    keys.forEach(type => {\n      const typeOpen = (jointContent, duration, onClose) => {\n        let config;\n        if (jointContent && typeof jointContent === 'object' && 'content' in jointContent) {\n          config = jointContent;\n        } else {\n          config = {\n            content: jointContent\n          };\n        }\n        // Params\n        let mergedDuration;\n        let mergedOnClose;\n        if (typeof duration === 'function') {\n          mergedOnClose = duration;\n        } else {\n          mergedDuration = duration;\n          mergedOnClose = onClose;\n        }\n        const mergedConfig = Object.assign(Object.assign({\n          onClose: mergedOnClose,\n          duration: mergedDuration\n        }, config), {\n          type\n        });\n        return open(mergedConfig);\n      };\n      clone[type] = typeOpen;\n    });\n    return clone;\n  }, []);\n  // ============================== Return ===============================\n  return [wrapAPI, /*#__PURE__*/React.createElement(Holder, Object.assign({\n    key: \"message-holder\"\n  }, messageConfig, {\n    ref: holderRef\n  }))];\n}\nexport default function useMessage(messageConfig) {\n  return useInternalMessage(messageConfig);\n}","\"use client\";\n\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport React, { useContext } from 'react';\nimport { render } from \"rc-util/es/React/render\";\nimport { AppConfigContext } from '../app/context';\nimport ConfigProvider, { ConfigContext, globalConfig, warnContext } from '../config-provider';\nimport PurePanel from './PurePanel';\nimport useMessage, { useInternalMessage } from './useMessage';\nimport { wrapPromiseFn } from './util';\nlet message = null;\nlet act = callback => callback();\nlet taskQueue = [];\nlet defaultGlobalConfig = {};\nfunction getGlobalContext() {\n  const {\n    getContainer,\n    duration,\n    rtl,\n    maxCount,\n    top\n  } = defaultGlobalConfig;\n  const mergedContainer = (getContainer === null || getContainer === void 0 ? void 0 : getContainer()) || document.body;\n  return {\n    getContainer: () => mergedContainer,\n    duration,\n    rtl,\n    maxCount,\n    top\n  };\n}\nconst GlobalHolder = /*#__PURE__*/React.forwardRef((props, ref) => {\n  const {\n    messageConfig,\n    sync\n  } = props;\n  const {\n    getPrefixCls\n  } = useContext(ConfigContext);\n  const prefixCls = defaultGlobalConfig.prefixCls || getPrefixCls('message');\n  const appConfig = useContext(AppConfigContext);\n  const [api, holder] = useInternalMessage(Object.assign(Object.assign(Object.assign({}, messageConfig), {\n    prefixCls\n  }), appConfig.message));\n  React.useImperativeHandle(ref, () => {\n    const instance = Object.assign({}, api);\n    Object.keys(instance).forEach(method => {\n      instance[method] = function () {\n        sync();\n        return api[method].apply(api, arguments);\n      };\n    });\n    return {\n      instance,\n      sync\n    };\n  });\n  return holder;\n});\nconst GlobalHolderWrapper = /*#__PURE__*/React.forwardRef((_, ref) => {\n  const [messageConfig, setMessageConfig] = React.useState(getGlobalContext);\n  const sync = () => {\n    setMessageConfig(getGlobalContext);\n  };\n  React.useEffect(sync, []);\n  const global = globalConfig();\n  const rootPrefixCls = global.getRootPrefixCls();\n  const rootIconPrefixCls = global.getIconPrefixCls();\n  const theme = global.getTheme();\n  const dom = /*#__PURE__*/React.createElement(GlobalHolder, {\n    ref: ref,\n    sync: sync,\n    messageConfig: messageConfig\n  });\n  return /*#__PURE__*/React.createElement(ConfigProvider, {\n    prefixCls: rootPrefixCls,\n    iconPrefixCls: rootIconPrefixCls,\n    theme: theme\n  }, global.holderRender ? global.holderRender(dom) : dom);\n});\nfunction flushNotice() {\n  if (!message) {\n    const holderFragment = document.createDocumentFragment();\n    const newMessage = {\n      fragment: holderFragment\n    };\n    message = newMessage;\n    // Delay render to avoid sync issue\n    act(() => {\n      render(/*#__PURE__*/React.createElement(GlobalHolderWrapper, {\n        ref: node => {\n          const {\n            instance,\n            sync\n          } = node || {};\n          // React 18 test env will throw if call immediately in ref\n          Promise.resolve().then(() => {\n            if (!newMessage.instance && instance) {\n              newMessage.instance = instance;\n              newMessage.sync = sync;\n              flushNotice();\n            }\n          });\n        }\n      }), holderFragment);\n    });\n    return;\n  }\n  // Notification not ready\n  if (!message.instance) {\n    return;\n  }\n  // >>> Execute task\n  taskQueue.forEach(task => {\n    const {\n      type,\n      skipped\n    } = task;\n    // Only `skipped` when user call notice but cancel it immediately\n    // and instance not ready\n    if (!skipped) {\n      switch (type) {\n        case 'open':\n          {\n            act(() => {\n              const closeFn = message.instance.open(Object.assign(Object.assign({}, defaultGlobalConfig), task.config));\n              closeFn === null || closeFn === void 0 ? void 0 : closeFn.then(task.resolve);\n              task.setCloseFn(closeFn);\n            });\n            break;\n          }\n        case 'destroy':\n          act(() => {\n            message === null || message === void 0 ? void 0 : message.instance.destroy(task.key);\n          });\n          break;\n        // Other type open\n        default:\n          {\n            act(() => {\n              var _message$instance;\n              const closeFn = (_message$instance = message.instance)[type].apply(_message$instance, _toConsumableArray(task.args));\n              closeFn === null || closeFn === void 0 ? void 0 : closeFn.then(task.resolve);\n              task.setCloseFn(closeFn);\n            });\n          }\n      }\n    }\n  });\n  // Clean up\n  taskQueue = [];\n}\n// ==============================================================================\n// ==                                  Export                                  ==\n// ==============================================================================\nfunction setMessageGlobalConfig(config) {\n  defaultGlobalConfig = Object.assign(Object.assign({}, defaultGlobalConfig), config);\n  // Trigger sync for it\n  act(() => {\n    var _a;\n    (_a = message === null || message === void 0 ? void 0 : message.sync) === null || _a === void 0 ? void 0 : _a.call(message);\n  });\n}\nfunction open(config) {\n  const result = wrapPromiseFn(resolve => {\n    let closeFn;\n    const task = {\n      type: 'open',\n      config,\n      resolve,\n      setCloseFn: fn => {\n        closeFn = fn;\n      }\n    };\n    taskQueue.push(task);\n    return () => {\n      if (closeFn) {\n        act(() => {\n          closeFn();\n        });\n      } else {\n        task.skipped = true;\n      }\n    };\n  });\n  flushNotice();\n  return result;\n}\nfunction typeOpen(type, args) {\n  const global = globalConfig();\n  if (process.env.NODE_ENV !== 'production' && !global.holderRender) {\n    warnContext('message');\n  }\n  const result = wrapPromiseFn(resolve => {\n    let closeFn;\n    const task = {\n      type,\n      args,\n      resolve,\n      setCloseFn: fn => {\n        closeFn = fn;\n      }\n    };\n    taskQueue.push(task);\n    return () => {\n      if (closeFn) {\n        act(() => {\n          closeFn();\n        });\n      } else {\n        task.skipped = true;\n      }\n    };\n  });\n  flushNotice();\n  return result;\n}\nconst destroy = key => {\n  taskQueue.push({\n    type: 'destroy',\n    key\n  });\n  flushNotice();\n};\nconst methods = ['success', 'info', 'warning', 'error', 'loading'];\nconst baseStaticMethods = {\n  open,\n  destroy,\n  config: setMessageGlobalConfig,\n  useMessage,\n  _InternalPanelDoNotUseOrYouWillBeFired: PurePanel\n};\nconst staticMethods = baseStaticMethods;\nmethods.forEach(type => {\n  staticMethods[type] = function () {\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n    return typeOpen(type, args);\n  };\n});\n// ==============================================================================\n// ==                                   Test                                   ==\n// ==============================================================================\nconst noop = () => {};\n/** @internal Only Work in test env */\n// eslint-disable-next-line import/no-mutable-exports\nexport let actWrapper = noop;\nif (process.env.NODE_ENV === 'test') {\n  actWrapper = wrapper => {\n    act = wrapper;\n  };\n}\n/** @internal Only Work in test env */\n// eslint-disable-next-line import/no-mutable-exports\nexport let actDestroy = noop;\nif (process.env.NODE_ENV === 'test') {\n  actDestroy = () => {\n    message = null;\n  };\n}\nexport default staticMethods;","module.exports = \"data:image/png;base64,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\"","export default function get(entity, path) {\n  var current = entity;\n  for (var i = 0; i < path.length; i += 1) {\n    if (current === null || current === undefined) {\n      return undefined;\n    }\n    current = current[path[i]];\n  }\n  return current;\n}","import defaultLocale from '../locale/en_US';\nlet runtimeLocale = Object.assign({}, defaultLocale.Modal);\nlet localeList = [];\nconst generateLocale = () => localeList.reduce((merged, locale) => Object.assign(Object.assign({}, merged), locale), defaultLocale.Modal);\nexport function changeConfirmLocale(newLocale) {\n  if (newLocale) {\n    const cloneLocale = Object.assign({}, newLocale);\n    localeList.push(cloneLocale);\n    runtimeLocale = generateLocale();\n    return () => {\n      localeList = localeList.filter(locale => locale !== cloneLocale);\n      runtimeLocale = generateLocale();\n    };\n  }\n  runtimeLocale = Object.assign({}, defaultLocale.Modal);\n}\nexport function getConfirmLocale() {\n  return runtimeLocale;\n}","const util = require('../util');\n\n//TODO: handle comments\nfunction readDocType(xmlData, i){\n    \n    const entities = {};\n    if( xmlData[i + 3] === 'O' &&\n         xmlData[i + 4] === 'C' &&\n         xmlData[i + 5] === 'T' &&\n         xmlData[i + 6] === 'Y' &&\n         xmlData[i + 7] === 'P' &&\n         xmlData[i + 8] === 'E')\n    {    \n        i = i+9;\n        let angleBracketsCount = 1;\n        let hasBody = false, comment = false;\n        let exp = \"\";\n        for(;i<xmlData.length;i++){\n            if (xmlData[i] === '<' && !comment) { //Determine the tag type\n                if( hasBody && isEntity(xmlData, i)){\n                    i += 7; \n                    [entityName, val,i] = readEntityExp(xmlData,i+1);\n                    if(val.indexOf(\"&\") === -1) //Parameter entities are not supported\n                        entities[ validateEntityName(entityName) ] = {\n                            regx : RegExp( `&${entityName};`,\"g\"),\n                            val: val\n                        };\n                }\n                else if( hasBody && isElement(xmlData, i))  i += 8;//Not supported\n                else if( hasBody && isAttlist(xmlData, i))  i += 8;//Not supported\n                else if( hasBody && isNotation(xmlData, i)) i += 9;//Not supported\n                else if( isComment)                         comment = true;\n                else                                        throw new Error(\"Invalid DOCTYPE\");\n\n                angleBracketsCount++;\n                exp = \"\";\n            } else if (xmlData[i] === '>') { //Read tag content\n                if(comment){\n                    if( xmlData[i - 1] === \"-\" && xmlData[i - 2] === \"-\"){\n                        comment = false;\n                        angleBracketsCount--;\n                    }\n                }else{\n                    angleBracketsCount--;\n                }\n                if (angleBracketsCount === 0) {\n                  break;\n                }\n            }else if( xmlData[i] === '['){\n                hasBody = true;\n            }else{\n                exp += xmlData[i];\n            }\n        }\n        if(angleBracketsCount !== 0){\n            throw new Error(`Unclosed DOCTYPE`);\n        }\n    }else{\n        throw new Error(`Invalid Tag instead of DOCTYPE`);\n    }\n    return {entities, i};\n}\n\nfunction readEntityExp(xmlData,i){\n    //External entities are not supported\n    //    <!ENTITY ext SYSTEM \"http://normal-website.com\" >\n\n    //Parameter entities are not supported\n    //    <!ENTITY entityname \"&anotherElement;\">\n\n    //Internal entities are supported\n    //    <!ENTITY entityname \"replacement text\">\n    \n    //read EntityName\n    let entityName = \"\";\n    for (; i < xmlData.length && (xmlData[i] !== \"'\" && xmlData[i] !== '\"' ); i++) {\n        // if(xmlData[i] === \" \") continue;\n        // else \n        entityName += xmlData[i];\n    }\n    entityName = entityName.trim();\n    if(entityName.indexOf(\" \") !== -1) throw new Error(\"External entites are not supported\");\n\n    //read Entity Value\n    const startChar = xmlData[i++];\n    let val = \"\"\n    for (; i < xmlData.length && xmlData[i] !== startChar ; i++) {\n        val += xmlData[i];\n    }\n    return [entityName, val, i];\n}\n\nfunction isComment(xmlData, i){\n    if(xmlData[i+1] === '!' &&\n    xmlData[i+2] === '-' &&\n    xmlData[i+3] === '-') return true\n    return false\n}\nfunction isEntity(xmlData, i){\n    if(xmlData[i+1] === '!' &&\n    xmlData[i+2] === 'E' &&\n    xmlData[i+3] === 'N' &&\n    xmlData[i+4] === 'T' &&\n    xmlData[i+5] === 'I' &&\n    xmlData[i+6] === 'T' &&\n    xmlData[i+7] === 'Y') return true\n    return false\n}\nfunction isElement(xmlData, i){\n    if(xmlData[i+1] === '!' &&\n    xmlData[i+2] === 'E' &&\n    xmlData[i+3] === 'L' &&\n    xmlData[i+4] === 'E' &&\n    xmlData[i+5] === 'M' &&\n    xmlData[i+6] === 'E' &&\n    xmlData[i+7] === 'N' &&\n    xmlData[i+8] === 'T') return true\n    return false\n}\n\nfunction isAttlist(xmlData, i){\n    if(xmlData[i+1] === '!' &&\n    xmlData[i+2] === 'A' &&\n    xmlData[i+3] === 'T' &&\n    xmlData[i+4] === 'T' &&\n    xmlData[i+5] === 'L' &&\n    xmlData[i+6] === 'I' &&\n    xmlData[i+7] === 'S' &&\n    xmlData[i+8] === 'T') return true\n    return false\n}\nfunction isNotation(xmlData, i){\n    if(xmlData[i+1] === '!' &&\n    xmlData[i+2] === 'N' &&\n    xmlData[i+3] === 'O' &&\n    xmlData[i+4] === 'T' &&\n    xmlData[i+5] === 'A' &&\n    xmlData[i+6] === 'T' &&\n    xmlData[i+7] === 'I' &&\n    xmlData[i+8] === 'O' &&\n    xmlData[i+9] === 'N') return true\n    return false\n}\n\nfunction validateEntityName(name){\n    if (util.isName(name))\n\treturn name;\n    else\n        throw new Error(`Invalid entity name ${name}`);\n}\n\nmodule.exports = readDocType;\n","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n\nvar stylesInDom = {};\n\nvar\tmemoize = function (fn) {\n\tvar memo;\n\n\treturn function () {\n\t\tif (typeof memo === \"undefined\") memo = fn.apply(this, arguments);\n\t\treturn memo;\n\t};\n};\n\nvar isOldIE = memoize(function () {\n\t// Test for IE <= 9 as proposed by Browserhacks\n\t// @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805\n\t// Tests for existence of standard globals is to allow style-loader\n\t// to operate correctly into non-standard environments\n\t// @see https://github.com/webpack-contrib/style-loader/issues/177\n\treturn window && document && document.all && !window.atob;\n});\n\nvar getTarget = function (target) {\n  return document.querySelector(target);\n};\n\nvar getElement = (function (fn) {\n\tvar memo = {};\n\n\treturn function(target) {\n                // If passing function in options, then use it for resolve \"head\" element.\n                // Useful for Shadow Root style i.e\n                // {\n                //   insertInto: function () { return document.querySelector(\"#foo\").shadowRoot }\n                // }\n                if (typeof target === 'function') {\n                        return target();\n                }\n                if (typeof memo[target] === \"undefined\") {\n\t\t\tvar styleTarget = getTarget.call(this, target);\n\t\t\t// Special case to return head of iframe instead of iframe itself\n\t\t\tif (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n\t\t\t\ttry {\n\t\t\t\t\t// This will throw an exception if access to iframe is blocked\n\t\t\t\t\t// due to cross-origin restrictions\n\t\t\t\t\tstyleTarget = styleTarget.contentDocument.head;\n\t\t\t\t} catch(e) {\n\t\t\t\t\tstyleTarget = null;\n\t\t\t\t}\n\t\t\t}\n\t\t\tmemo[target] = styleTarget;\n\t\t}\n\t\treturn memo[target]\n\t};\n})();\n\nvar singleton = null;\nvar\tsingletonCounter = 0;\nvar\tstylesInsertedAtTop = [];\n\nvar\tfixUrls = require(\"./urls\");\n\nmodule.exports = function(list, options) {\n\tif (typeof DEBUG !== \"undefined\" && DEBUG) {\n\t\tif (typeof document !== \"object\") throw new Error(\"The style-loader cannot be used in a non-browser environment\");\n\t}\n\n\toptions = options || {};\n\n\toptions.attrs = typeof options.attrs === \"object\" ? options.attrs : {};\n\n\t// Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n\t// tags it will allow on a page\n\tif (!options.singleton && typeof options.singleton !== \"boolean\") options.singleton = isOldIE();\n\n\t// By default, add <style> tags to the <head> element\n        if (!options.insertInto) options.insertInto = \"head\";\n\n\t// By default, add <style> tags to the bottom of the target\n\tif (!options.insertAt) options.insertAt = \"bottom\";\n\n\tvar styles = listToStyles(list, options);\n\n\taddStylesToDom(styles, options);\n\n\treturn function update (newList) {\n\t\tvar mayRemove = [];\n\n\t\tfor (var i = 0; i < styles.length; i++) {\n\t\t\tvar item = styles[i];\n\t\t\tvar domStyle = stylesInDom[item.id];\n\n\t\t\tdomStyle.refs--;\n\t\t\tmayRemove.push(domStyle);\n\t\t}\n\n\t\tif(newList) {\n\t\t\tvar newStyles = listToStyles(newList, options);\n\t\t\taddStylesToDom(newStyles, options);\n\t\t}\n\n\t\tfor (var i = 0; i < mayRemove.length; i++) {\n\t\t\tvar domStyle = mayRemove[i];\n\n\t\t\tif(domStyle.refs === 0) {\n\t\t\t\tfor (var j = 0; j < domStyle.parts.length; j++) domStyle.parts[j]();\n\n\t\t\t\tdelete stylesInDom[domStyle.id];\n\t\t\t}\n\t\t}\n\t};\n};\n\nfunction addStylesToDom (styles, options) {\n\tfor (var i = 0; i < styles.length; i++) {\n\t\tvar item = styles[i];\n\t\tvar domStyle = stylesInDom[item.id];\n\n\t\tif(domStyle) {\n\t\t\tdomStyle.refs++;\n\n\t\t\tfor(var j = 0; j < domStyle.parts.length; j++) {\n\t\t\t\tdomStyle.parts[j](item.parts[j]);\n\t\t\t}\n\n\t\t\tfor(; j < item.parts.length; j++) {\n\t\t\t\tdomStyle.parts.push(addStyle(item.parts[j], options));\n\t\t\t}\n\t\t} else {\n\t\t\tvar parts = [];\n\n\t\t\tfor(var j = 0; j < item.parts.length; j++) {\n\t\t\t\tparts.push(addStyle(item.parts[j], options));\n\t\t\t}\n\n\t\t\tstylesInDom[item.id] = {id: item.id, refs: 1, parts: parts};\n\t\t}\n\t}\n}\n\nfunction listToStyles (list, options) {\n\tvar styles = [];\n\tvar newStyles = {};\n\n\tfor (var i = 0; i < list.length; i++) {\n\t\tvar item = list[i];\n\t\tvar id = options.base ? item[0] + options.base : item[0];\n\t\tvar css = item[1];\n\t\tvar media = item[2];\n\t\tvar sourceMap = item[3];\n\t\tvar part = {css: css, media: media, sourceMap: sourceMap};\n\n\t\tif(!newStyles[id]) styles.push(newStyles[id] = {id: id, parts: [part]});\n\t\telse newStyles[id].parts.push(part);\n\t}\n\n\treturn styles;\n}\n\nfunction insertStyleElement (options, style) {\n\tvar target = getElement(options.insertInto)\n\n\tif (!target) {\n\t\tthrow new Error(\"Couldn't find a style target. This probably means that the value for the 'insertInto' parameter is invalid.\");\n\t}\n\n\tvar lastStyleElementInsertedAtTop = stylesInsertedAtTop[stylesInsertedAtTop.length - 1];\n\n\tif (options.insertAt === \"top\") {\n\t\tif (!lastStyleElementInsertedAtTop) {\n\t\t\ttarget.insertBefore(style, target.firstChild);\n\t\t} else if (lastStyleElementInsertedAtTop.nextSibling) {\n\t\t\ttarget.insertBefore(style, lastStyleElementInsertedAtTop.nextSibling);\n\t\t} else {\n\t\t\ttarget.appendChild(style);\n\t\t}\n\t\tstylesInsertedAtTop.push(style);\n\t} else if (options.insertAt === \"bottom\") {\n\t\ttarget.appendChild(style);\n\t} else if (typeof options.insertAt === \"object\" && options.insertAt.before) {\n\t\tvar nextSibling = getElement(options.insertInto + \" \" + options.insertAt.before);\n\t\ttarget.insertBefore(style, nextSibling);\n\t} else {\n\t\tthrow new Error(\"[Style Loader]\\n\\n Invalid value for parameter 'insertAt' ('options.insertAt') found.\\n Must be 'top', 'bottom', or Object.\\n (https://github.com/webpack-contrib/style-loader#insertat)\\n\");\n\t}\n}\n\nfunction removeStyleElement (style) {\n\tif (style.parentNode === null) return false;\n\tstyle.parentNode.removeChild(style);\n\n\tvar idx = stylesInsertedAtTop.indexOf(style);\n\tif(idx >= 0) {\n\t\tstylesInsertedAtTop.splice(idx, 1);\n\t}\n}\n\nfunction createStyleElement (options) {\n\tvar style = document.createElement(\"style\");\n\n\toptions.attrs.type = \"text/css\";\n\n\taddAttrs(style, options.attrs);\n\tinsertStyleElement(options, style);\n\n\treturn style;\n}\n\nfunction createLinkElement (options) {\n\tvar link = document.createElement(\"link\");\n\n\toptions.attrs.type = \"text/css\";\n\toptions.attrs.rel = \"stylesheet\";\n\n\taddAttrs(link, options.attrs);\n\tinsertStyleElement(options, link);\n\n\treturn link;\n}\n\nfunction addAttrs (el, attrs) {\n\tObject.keys(attrs).forEach(function (key) {\n\t\tel.setAttribute(key, attrs[key]);\n\t});\n}\n\nfunction addStyle (obj, options) {\n\tvar style, update, remove, result;\n\n\t// If a transform function was defined, run it on the css\n\tif (options.transform && obj.css) {\n\t    result = options.transform(obj.css);\n\n\t    if (result) {\n\t    \t// If transform returns a value, use that instead of the original css.\n\t    \t// This allows running runtime transformations on the css.\n\t    \tobj.css = result;\n\t    } else {\n\t    \t// If the transform function returns a falsy value, don't add this css.\n\t    \t// This allows conditional loading of css\n\t    \treturn function() {\n\t    \t\t// noop\n\t    \t};\n\t    }\n\t}\n\n\tif (options.singleton) {\n\t\tvar styleIndex = singletonCounter++;\n\n\t\tstyle = singleton || (singleton = createStyleElement(options));\n\n\t\tupdate = applyToSingletonTag.bind(null, style, styleIndex, false);\n\t\tremove = applyToSingletonTag.bind(null, style, styleIndex, true);\n\n\t} else if (\n\t\tobj.sourceMap &&\n\t\ttypeof URL === \"function\" &&\n\t\ttypeof URL.createObjectURL === \"function\" &&\n\t\ttypeof URL.revokeObjectURL === \"function\" &&\n\t\ttypeof Blob === \"function\" &&\n\t\ttypeof btoa === \"function\"\n\t) {\n\t\tstyle = createLinkElement(options);\n\t\tupdate = updateLink.bind(null, style, options);\n\t\tremove = function () {\n\t\t\tremoveStyleElement(style);\n\n\t\t\tif(style.href) URL.revokeObjectURL(style.href);\n\t\t};\n\t} else {\n\t\tstyle = createStyleElement(options);\n\t\tupdate = applyToTag.bind(null, style);\n\t\tremove = function () {\n\t\t\tremoveStyleElement(style);\n\t\t};\n\t}\n\n\tupdate(obj);\n\n\treturn function updateStyle (newObj) {\n\t\tif (newObj) {\n\t\t\tif (\n\t\t\t\tnewObj.css === obj.css &&\n\t\t\t\tnewObj.media === obj.media &&\n\t\t\t\tnewObj.sourceMap === obj.sourceMap\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tupdate(obj = newObj);\n\t\t} else {\n\t\t\tremove();\n\t\t}\n\t};\n}\n\nvar replaceText = (function () {\n\tvar textStore = [];\n\n\treturn function (index, replacement) {\n\t\ttextStore[index] = replacement;\n\n\t\treturn textStore.filter(Boolean).join('\\n');\n\t};\n})();\n\nfunction applyToSingletonTag (style, index, remove, obj) {\n\tvar css = remove ? \"\" : obj.css;\n\n\tif (style.styleSheet) {\n\t\tstyle.styleSheet.cssText = replaceText(index, css);\n\t} else {\n\t\tvar cssNode = document.createTextNode(css);\n\t\tvar childNodes = style.childNodes;\n\n\t\tif (childNodes[index]) style.removeChild(childNodes[index]);\n\n\t\tif (childNodes.length) {\n\t\t\tstyle.insertBefore(cssNode, childNodes[index]);\n\t\t} else {\n\t\t\tstyle.appendChild(cssNode);\n\t\t}\n\t}\n}\n\nfunction applyToTag (style, obj) {\n\tvar css = obj.css;\n\tvar media = obj.media;\n\n\tif(media) {\n\t\tstyle.setAttribute(\"media\", media)\n\t}\n\n\tif(style.styleSheet) {\n\t\tstyle.styleSheet.cssText = css;\n\t} else {\n\t\twhile(style.firstChild) {\n\t\t\tstyle.removeChild(style.firstChild);\n\t\t}\n\n\t\tstyle.appendChild(document.createTextNode(css));\n\t}\n}\n\nfunction updateLink (link, options, obj) {\n\tvar css = obj.css;\n\tvar sourceMap = obj.sourceMap;\n\n\t/*\n\t\tIf convertToAbsoluteUrls isn't defined, but sourcemaps are enabled\n\t\tand there is no publicPath defined then lets turn convertToAbsoluteUrls\n\t\ton by default.  Otherwise default to the convertToAbsoluteUrls option\n\t\tdirectly\n\t*/\n\tvar autoFixUrls = options.convertToAbsoluteUrls === undefined && sourceMap;\n\n\tif (options.convertToAbsoluteUrls || autoFixUrls) {\n\t\tcss = fixUrls(css);\n\t}\n\n\tif (sourceMap) {\n\t\t// http://stackoverflow.com/a/26603875\n\t\tcss += \"\\n/*# sourceMappingURL=data:application/json;base64,\" + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + \" */\";\n\t}\n\n\tvar blob = new Blob([css], { type: \"text/css\" });\n\n\tvar oldSrc = link.href;\n\n\tlink.href = URL.createObjectURL(blob);\n\n\tif(oldSrc) URL.revokeObjectURL(oldSrc);\n}\n","import classNames from 'classnames';\nimport * as React from 'react';\nexport default function Arrow(props) {\n  var prefixCls = props.prefixCls,\n    align = props.align,\n    arrow = props.arrow,\n    arrowPos = props.arrowPos;\n  var _ref = arrow || {},\n    className = _ref.className,\n    content = _ref.content;\n  var _arrowPos$x = arrowPos.x,\n    x = _arrowPos$x === void 0 ? 0 : _arrowPos$x,\n    _arrowPos$y = arrowPos.y,\n    y = _arrowPos$y === void 0 ? 0 : _arrowPos$y;\n  var arrowRef = React.useRef();\n\n  // Skip if no align\n  if (!align || !align.points) {\n    return null;\n  }\n  var alignStyle = {\n    position: 'absolute'\n  };\n\n  // Skip if no need to align\n  if (align.autoArrow !== false) {\n    var popupPoints = align.points[0];\n    var targetPoints = align.points[1];\n    var popupTB = popupPoints[0];\n    var popupLR = popupPoints[1];\n    var targetTB = targetPoints[0];\n    var targetLR = targetPoints[1];\n\n    // Top & Bottom\n    if (popupTB === targetTB || !['t', 'b'].includes(popupTB)) {\n      alignStyle.top = y;\n    } else if (popupTB === 't') {\n      alignStyle.top = 0;\n    } else {\n      alignStyle.bottom = 0;\n    }\n\n    // Left & Right\n    if (popupLR === targetLR || !['l', 'r'].includes(popupLR)) {\n      alignStyle.left = x;\n    } else if (popupLR === 'l') {\n      alignStyle.left = 0;\n    } else {\n      alignStyle.right = 0;\n    }\n  }\n  return /*#__PURE__*/React.createElement(\"div\", {\n    ref: arrowRef,\n    className: classNames(\"\".concat(prefixCls, \"-arrow\"), className),\n    style: alignStyle\n  }, content);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport * as React from 'react';\nexport default function Mask(props) {\n  var prefixCls = props.prefixCls,\n    open = props.open,\n    zIndex = props.zIndex,\n    mask = props.mask,\n    motion = props.motion;\n  if (!mask) {\n    return null;\n  }\n  return /*#__PURE__*/React.createElement(CSSMotion, _extends({}, motion, {\n    motionAppear: true,\n    visible: open,\n    removeOnLeave: true\n  }), function (_ref) {\n    var className = _ref.className;\n    return /*#__PURE__*/React.createElement(\"div\", {\n      style: {\n        zIndex: zIndex\n      },\n      className: classNames(\"\".concat(prefixCls, \"-mask\"), className)\n    });\n  });\n}","import * as React from 'react';\nvar PopupContent = /*#__PURE__*/React.memo(function (_ref) {\n  var children = _ref.children;\n  return children;\n}, function (_, next) {\n  return next.cache;\n});\nif (process.env.NODE_ENV !== 'production') {\n  PopupContent.displayName = 'PopupContent';\n}\nexport default PopupContent;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport ResizeObserver from 'rc-resize-observer';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport { composeRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport Arrow from \"./Arrow\";\nimport Mask from \"./Mask\";\nimport PopupContent from \"./PopupContent\";\nvar Popup = /*#__PURE__*/React.forwardRef(function (props, ref) {\n  var popup = props.popup,\n    className = props.className,\n    prefixCls = props.prefixCls,\n    style = props.style,\n    target = props.target,\n    _onVisibleChanged = props.onVisibleChanged,\n    open = props.open,\n    keepDom = props.keepDom,\n    fresh = props.fresh,\n    onClick = props.onClick,\n    mask = props.mask,\n    arrow = props.arrow,\n    arrowPos = props.arrowPos,\n    align = props.align,\n    motion = props.motion,\n    maskMotion = props.maskMotion,\n    forceRender = props.forceRender,\n    getPopupContainer = props.getPopupContainer,\n    autoDestroy = props.autoDestroy,\n    Portal = props.portal,\n    zIndex = props.zIndex,\n    onMouseEnter = props.onMouseEnter,\n    onMouseLeave = props.onMouseLeave,\n    onPointerEnter = props.onPointerEnter,\n    ready = props.ready,\n    offsetX = props.offsetX,\n    offsetY = props.offsetY,\n    offsetR = props.offsetR,\n    offsetB = props.offsetB,\n    onAlign = props.onAlign,\n    onPrepare = props.onPrepare,\n    stretch = props.stretch,\n    targetWidth = props.targetWidth,\n    targetHeight = props.targetHeight;\n  var childNode = typeof popup === 'function' ? popup() : popup;\n\n  // We can not remove holder only when motion finished.\n  var isNodeVisible = open || keepDom;\n\n  // ======================= Container ========================\n  var getPopupContainerNeedParams = (getPopupContainer === null || getPopupContainer === void 0 ? void 0 : getPopupContainer.length) > 0;\n  var _React$useState = React.useState(!getPopupContainer || !getPopupContainerNeedParams),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    show = _React$useState2[0],\n    setShow = _React$useState2[1];\n\n  // Delay to show since `getPopupContainer` need target element\n  useLayoutEffect(function () {\n    if (!show && getPopupContainerNeedParams && target) {\n      setShow(true);\n    }\n  }, [show, getPopupContainerNeedParams, target]);\n\n  // ========================= Render =========================\n  if (!show) {\n    return null;\n  }\n\n  // >>>>> Offset\n  var AUTO = 'auto';\n  var offsetStyle = {\n    left: '-1000vw',\n    top: '-1000vh',\n    right: AUTO,\n    bottom: AUTO\n  };\n\n  // Set align style\n  if (ready || !open) {\n    var _experimental;\n    var points = align.points;\n    var dynamicInset = align.dynamicInset || ((_experimental = align._experimental) === null || _experimental === void 0 ? void 0 : _experimental.dynamicInset);\n    var alignRight = dynamicInset && points[0][1] === 'r';\n    var alignBottom = dynamicInset && points[0][0] === 'b';\n    if (alignRight) {\n      offsetStyle.right = offsetR;\n      offsetStyle.left = AUTO;\n    } else {\n      offsetStyle.left = offsetX;\n      offsetStyle.right = AUTO;\n    }\n    if (alignBottom) {\n      offsetStyle.bottom = offsetB;\n      offsetStyle.top = AUTO;\n    } else {\n      offsetStyle.top = offsetY;\n      offsetStyle.bottom = AUTO;\n    }\n  }\n\n  // >>>>> Misc\n  var miscStyle = {};\n  if (stretch) {\n    if (stretch.includes('height') && targetHeight) {\n      miscStyle.height = targetHeight;\n    } else if (stretch.includes('minHeight') && targetHeight) {\n      miscStyle.minHeight = targetHeight;\n    }\n    if (stretch.includes('width') && targetWidth) {\n      miscStyle.width = targetWidth;\n    } else if (stretch.includes('minWidth') && targetWidth) {\n      miscStyle.minWidth = targetWidth;\n    }\n  }\n  if (!open) {\n    miscStyle.pointerEvents = 'none';\n  }\n  return /*#__PURE__*/React.createElement(Portal, {\n    open: forceRender || isNodeVisible,\n    getContainer: getPopupContainer && function () {\n      return getPopupContainer(target);\n    },\n    autoDestroy: autoDestroy\n  }, /*#__PURE__*/React.createElement(Mask, {\n    prefixCls: prefixCls,\n    open: open,\n    zIndex: zIndex,\n    mask: mask,\n    motion: maskMotion\n  }), /*#__PURE__*/React.createElement(ResizeObserver, {\n    onResize: onAlign,\n    disabled: !open\n  }, function (resizeObserverRef) {\n    return /*#__PURE__*/React.createElement(CSSMotion, _extends({\n      motionAppear: true,\n      motionEnter: true,\n      motionLeave: true,\n      removeOnLeave: false,\n      forceRender: forceRender,\n      leavedClassName: \"\".concat(prefixCls, \"-hidden\")\n    }, motion, {\n      onAppearPrepare: onPrepare,\n      onEnterPrepare: onPrepare,\n      visible: open,\n      onVisibleChanged: function onVisibleChanged(nextVisible) {\n        var _motion$onVisibleChan;\n        motion === null || motion === void 0 || (_motion$onVisibleChan = motion.onVisibleChanged) === null || _motion$onVisibleChan === void 0 || _motion$onVisibleChan.call(motion, nextVisible);\n        _onVisibleChanged(nextVisible);\n      }\n    }), function (_ref, motionRef) {\n      var motionClassName = _ref.className,\n        motionStyle = _ref.style;\n      var cls = classNames(prefixCls, motionClassName, className);\n      return /*#__PURE__*/React.createElement(\"div\", {\n        ref: composeRef(resizeObserverRef, ref, motionRef),\n        className: cls,\n        style: _objectSpread(_objectSpread(_objectSpread(_objectSpread({\n          '--arrow-x': \"\".concat(arrowPos.x || 0, \"px\"),\n          '--arrow-y': \"\".concat(arrowPos.y || 0, \"px\")\n        }, offsetStyle), miscStyle), motionStyle), {}, {\n          boxSizing: 'border-box',\n          zIndex: zIndex\n        }, style),\n        onMouseEnter: onMouseEnter,\n        onMouseLeave: onMouseLeave,\n        onPointerEnter: onPointerEnter,\n        onClick: onClick\n      }, arrow && /*#__PURE__*/React.createElement(Arrow, {\n        prefixCls: prefixCls,\n        arrow: arrow,\n        arrowPos: arrowPos,\n        align: align\n      }), /*#__PURE__*/React.createElement(PopupContent, {\n        cache: !open && !fresh\n      }, childNode));\n    });\n  }));\n});\nif (process.env.NODE_ENV !== 'production') {\n  Popup.displayName = 'Popup';\n}\nexport default Popup;","import { fillRef, supportRef, useComposeRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nvar TriggerWrapper = /*#__PURE__*/React.forwardRef(function (props, ref) {\n  var children = props.children,\n    getTriggerDOMNode = props.getTriggerDOMNode;\n  var canUseRef = supportRef(children);\n\n  // When use `getTriggerDOMNode`, we should do additional work to get the real dom\n  var setRef = React.useCallback(function (node) {\n    fillRef(ref, getTriggerDOMNode ? getTriggerDOMNode(node) : node);\n  }, [getTriggerDOMNode]);\n  var mergedRef = useComposeRef(setRef, children.ref);\n  return canUseRef ? /*#__PURE__*/React.cloneElement(children, {\n    ref: mergedRef\n  }) : children;\n});\nif (process.env.NODE_ENV !== 'production') {\n  TriggerWrapper.displayName = 'TriggerWrapper';\n}\nexport default TriggerWrapper;","import * as React from 'react';\nvar TriggerContext = /*#__PURE__*/React.createContext(null);\nexport default TriggerContext;","import * as React from 'react';\nfunction toArray(val) {\n  return val ? Array.isArray(val) ? val : [val] : [];\n}\nexport default function useAction(mobile, action, showAction, hideAction) {\n  return React.useMemo(function () {\n    var mergedShowAction = toArray(showAction !== null && showAction !== void 0 ? showAction : action);\n    var mergedHideAction = toArray(hideAction !== null && hideAction !== void 0 ? hideAction : action);\n    var showActionSet = new Set(mergedShowAction);\n    var hideActionSet = new Set(mergedHideAction);\n    if (mobile) {\n      if (showActionSet.has('hover')) {\n        showActionSet.delete('hover');\n        showActionSet.add('click');\n      }\n      if (hideActionSet.has('hover')) {\n        hideActionSet.delete('hover');\n        hideActionSet.add('click');\n      }\n    }\n    return [showActionSet, hideActionSet];\n  }, [mobile, action, showAction, hideAction]);\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nfunction isPointsEq() {\n  var a1 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n  var a2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n  var isAlignPoint = arguments.length > 2 ? arguments[2] : undefined;\n  if (isAlignPoint) {\n    return a1[0] === a2[0];\n  }\n  return a1[0] === a2[0] && a1[1] === a2[1];\n}\nexport function getAlignPopupClassName(builtinPlacements, prefixCls, align, isAlignPoint) {\n  var points = align.points;\n  var placements = Object.keys(builtinPlacements);\n  for (var i = 0; i < placements.length; i += 1) {\n    var _builtinPlacements$pl;\n    var placement = placements[i];\n    if (isPointsEq((_builtinPlacements$pl = builtinPlacements[placement]) === null || _builtinPlacements$pl === void 0 ? void 0 : _builtinPlacements$pl.points, points, isAlignPoint)) {\n      return \"\".concat(prefixCls, \"-placement-\").concat(placement);\n    }\n  }\n  return '';\n}\n\n/** @deprecated We should not use this if we can refactor all deps */\nexport function getMotion(prefixCls, motion, animation, transitionName) {\n  if (motion) {\n    return motion;\n  }\n  if (animation) {\n    return {\n      motionName: \"\".concat(prefixCls, \"-\").concat(animation)\n    };\n  }\n  if (transitionName) {\n    return {\n      motionName: transitionName\n    };\n  }\n  return null;\n}\nexport function getWin(ele) {\n  return ele.ownerDocument.defaultView;\n}\n\n/**\n * Get all the scrollable parent elements of the element\n * @param ele       The element to be detected\n * @param areaOnly  Only return the parent which will cut visible area\n */\nexport function collectScroller(ele) {\n  var scrollerList = [];\n  var current = ele === null || ele === void 0 ? void 0 : ele.parentElement;\n  var scrollStyle = ['hidden', 'scroll', 'clip', 'auto'];\n  while (current) {\n    var _getWin$getComputedSt = getWin(current).getComputedStyle(current),\n      overflowX = _getWin$getComputedSt.overflowX,\n      overflowY = _getWin$getComputedSt.overflowY,\n      overflow = _getWin$getComputedSt.overflow;\n    if ([overflowX, overflowY, overflow].some(function (o) {\n      return scrollStyle.includes(o);\n    })) {\n      scrollerList.push(current);\n    }\n    current = current.parentElement;\n  }\n  return scrollerList;\n}\nexport function toNum(num) {\n  var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n  return Number.isNaN(num) ? defaultValue : num;\n}\nfunction getPxValue(val) {\n  return toNum(parseFloat(val), 0);\n}\n/**\n *\n *\n *  **************************************\n *  *              Border                *\n *  *     **************************     *\n *  *     *                  *     *     *\n *  *  B  *                  *  S  *  B  *\n *  *  o  *                  *  c  *  o  *\n *  *  r  *      Content     *  r  *  r  *\n *  *  d  *                  *  o  *  d  *\n *  *  e  *                  *  l  *  e  *\n *  *  r  ********************  l  *  r  *\n *  *     *        Scroll          *     *\n *  *     **************************     *\n *  *              Border                *\n *  **************************************\n *\n */\n/**\n * Get visible area of element\n */\nexport function getVisibleArea(initArea, scrollerList) {\n  var visibleArea = _objectSpread({}, initArea);\n  (scrollerList || []).forEach(function (ele) {\n    if (ele instanceof HTMLBodyElement || ele instanceof HTMLHtmlElement) {\n      return;\n    }\n\n    // Skip if static position which will not affect visible area\n    var _getWin$getComputedSt2 = getWin(ele).getComputedStyle(ele),\n      overflow = _getWin$getComputedSt2.overflow,\n      overflowClipMargin = _getWin$getComputedSt2.overflowClipMargin,\n      borderTopWidth = _getWin$getComputedSt2.borderTopWidth,\n      borderBottomWidth = _getWin$getComputedSt2.borderBottomWidth,\n      borderLeftWidth = _getWin$getComputedSt2.borderLeftWidth,\n      borderRightWidth = _getWin$getComputedSt2.borderRightWidth;\n    var eleRect = ele.getBoundingClientRect();\n    var eleOutHeight = ele.offsetHeight,\n      eleInnerHeight = ele.clientHeight,\n      eleOutWidth = ele.offsetWidth,\n      eleInnerWidth = ele.clientWidth;\n    var borderTopNum = getPxValue(borderTopWidth);\n    var borderBottomNum = getPxValue(borderBottomWidth);\n    var borderLeftNum = getPxValue(borderLeftWidth);\n    var borderRightNum = getPxValue(borderRightWidth);\n    var scaleX = toNum(Math.round(eleRect.width / eleOutWidth * 1000) / 1000);\n    var scaleY = toNum(Math.round(eleRect.height / eleOutHeight * 1000) / 1000);\n\n    // Original visible area\n    var eleScrollWidth = (eleOutWidth - eleInnerWidth - borderLeftNum - borderRightNum) * scaleX;\n    var eleScrollHeight = (eleOutHeight - eleInnerHeight - borderTopNum - borderBottomNum) * scaleY;\n\n    // Cut border size\n    var scaledBorderTopWidth = borderTopNum * scaleY;\n    var scaledBorderBottomWidth = borderBottomNum * scaleY;\n    var scaledBorderLeftWidth = borderLeftNum * scaleX;\n    var scaledBorderRightWidth = borderRightNum * scaleX;\n\n    // Clip margin\n    var clipMarginWidth = 0;\n    var clipMarginHeight = 0;\n    if (overflow === 'clip') {\n      var clipNum = getPxValue(overflowClipMargin);\n      clipMarginWidth = clipNum * scaleX;\n      clipMarginHeight = clipNum * scaleY;\n    }\n\n    // Region\n    var eleLeft = eleRect.x + scaledBorderLeftWidth - clipMarginWidth;\n    var eleTop = eleRect.y + scaledBorderTopWidth - clipMarginHeight;\n    var eleRight = eleLeft + eleRect.width + 2 * clipMarginWidth - scaledBorderLeftWidth - scaledBorderRightWidth - eleScrollWidth;\n    var eleBottom = eleTop + eleRect.height + 2 * clipMarginHeight - scaledBorderTopWidth - scaledBorderBottomWidth - eleScrollHeight;\n    visibleArea.left = Math.max(visibleArea.left, eleLeft);\n    visibleArea.top = Math.max(visibleArea.top, eleTop);\n    visibleArea.right = Math.min(visibleArea.right, eleRight);\n    visibleArea.bottom = Math.min(visibleArea.bottom, eleBottom);\n  });\n  return visibleArea;\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { isDOM } from \"rc-util/es/Dom/findDOMNode\";\nimport isVisible from \"rc-util/es/Dom/isVisible\";\nimport useEvent from \"rc-util/es/hooks/useEvent\";\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport * as React from 'react';\nimport { collectScroller, getVisibleArea, getWin, toNum } from \"../util\";\nfunction getUnitOffset(size) {\n  var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n  var offsetStr = \"\".concat(offset);\n  var cells = offsetStr.match(/^(.*)\\%$/);\n  if (cells) {\n    return size * (parseFloat(cells[1]) / 100);\n  }\n  return parseFloat(offsetStr);\n}\nfunction getNumberOffset(rect, offset) {\n  var _ref = offset || [],\n    _ref2 = _slicedToArray(_ref, 2),\n    offsetX = _ref2[0],\n    offsetY = _ref2[1];\n  return [getUnitOffset(rect.width, offsetX), getUnitOffset(rect.height, offsetY)];\n}\nfunction splitPoints() {\n  var points = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n  return [points[0], points[1]];\n}\nfunction getAlignPoint(rect, points) {\n  var topBottom = points[0];\n  var leftRight = points[1];\n  var x;\n  var y;\n\n  // Top & Bottom\n  if (topBottom === 't') {\n    y = rect.y;\n  } else if (topBottom === 'b') {\n    y = rect.y + rect.height;\n  } else {\n    y = rect.y + rect.height / 2;\n  }\n\n  // Left & Right\n  if (leftRight === 'l') {\n    x = rect.x;\n  } else if (leftRight === 'r') {\n    x = rect.x + rect.width;\n  } else {\n    x = rect.x + rect.width / 2;\n  }\n  return {\n    x: x,\n    y: y\n  };\n}\nfunction reversePoints(points, index) {\n  var reverseMap = {\n    t: 'b',\n    b: 't',\n    l: 'r',\n    r: 'l'\n  };\n  return points.map(function (point, i) {\n    if (i === index) {\n      return reverseMap[point] || 'c';\n    }\n    return point;\n  }).join('');\n}\nexport default function useAlign(open, popupEle, target, placement, builtinPlacements, popupAlign, onPopupAlign) {\n  var _React$useState = React.useState({\n      ready: false,\n      offsetX: 0,\n      offsetY: 0,\n      offsetR: 0,\n      offsetB: 0,\n      arrowX: 0,\n      arrowY: 0,\n      scaleX: 1,\n      scaleY: 1,\n      align: builtinPlacements[placement] || {}\n    }),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    offsetInfo = _React$useState2[0],\n    setOffsetInfo = _React$useState2[1];\n  var alignCountRef = React.useRef(0);\n  var scrollerList = React.useMemo(function () {\n    if (!popupEle) {\n      return [];\n    }\n    return collectScroller(popupEle);\n  }, [popupEle]);\n\n  // ========================= Flip ==========================\n  // We will memo flip info.\n  // If size change to make flip, it will memo the flip info and use it in next align.\n  var prevFlipRef = React.useRef({});\n  var resetFlipCache = function resetFlipCache() {\n    prevFlipRef.current = {};\n  };\n  if (!open) {\n    resetFlipCache();\n  }\n\n  // ========================= Align =========================\n  var onAlign = useEvent(function () {\n    if (popupEle && target && open) {\n      var _popupElement$parentE, _popupRect$x, _popupRect$y, _popupElement$parentE2;\n      var popupElement = popupEle;\n      var doc = popupElement.ownerDocument;\n      var win = getWin(popupElement);\n      var _win$getComputedStyle = win.getComputedStyle(popupElement),\n        width = _win$getComputedStyle.width,\n        height = _win$getComputedStyle.height,\n        popupPosition = _win$getComputedStyle.position;\n      var originLeft = popupElement.style.left;\n      var originTop = popupElement.style.top;\n      var originRight = popupElement.style.right;\n      var originBottom = popupElement.style.bottom;\n      var originOverflow = popupElement.style.overflow;\n\n      // Placement\n      var placementInfo = _objectSpread(_objectSpread({}, builtinPlacements[placement]), popupAlign);\n\n      // placeholder element\n      var placeholderElement = doc.createElement('div');\n      (_popupElement$parentE = popupElement.parentElement) === null || _popupElement$parentE === void 0 || _popupElement$parentE.appendChild(placeholderElement);\n      placeholderElement.style.left = \"\".concat(popupElement.offsetLeft, \"px\");\n      placeholderElement.style.top = \"\".concat(popupElement.offsetTop, \"px\");\n      placeholderElement.style.position = popupPosition;\n      placeholderElement.style.height = \"\".concat(popupElement.offsetHeight, \"px\");\n      placeholderElement.style.width = \"\".concat(popupElement.offsetWidth, \"px\");\n\n      // Reset first\n      popupElement.style.left = '0';\n      popupElement.style.top = '0';\n      popupElement.style.right = 'auto';\n      popupElement.style.bottom = 'auto';\n      popupElement.style.overflow = 'hidden';\n\n      // Calculate align style, we should consider `transform` case\n      var targetRect;\n      if (Array.isArray(target)) {\n        targetRect = {\n          x: target[0],\n          y: target[1],\n          width: 0,\n          height: 0\n        };\n      } else {\n        var _rect$x, _rect$y;\n        var rect = target.getBoundingClientRect();\n        rect.x = (_rect$x = rect.x) !== null && _rect$x !== void 0 ? _rect$x : rect.left;\n        rect.y = (_rect$y = rect.y) !== null && _rect$y !== void 0 ? _rect$y : rect.top;\n        targetRect = {\n          x: rect.x,\n          y: rect.y,\n          width: rect.width,\n          height: rect.height\n        };\n      }\n      var popupRect = popupElement.getBoundingClientRect();\n      popupRect.x = (_popupRect$x = popupRect.x) !== null && _popupRect$x !== void 0 ? _popupRect$x : popupRect.left;\n      popupRect.y = (_popupRect$y = popupRect.y) !== null && _popupRect$y !== void 0 ? _popupRect$y : popupRect.top;\n      var _doc$documentElement = doc.documentElement,\n        clientWidth = _doc$documentElement.clientWidth,\n        clientHeight = _doc$documentElement.clientHeight,\n        scrollWidth = _doc$documentElement.scrollWidth,\n        scrollHeight = _doc$documentElement.scrollHeight,\n        scrollTop = _doc$documentElement.scrollTop,\n        scrollLeft = _doc$documentElement.scrollLeft;\n      var popupHeight = popupRect.height;\n      var popupWidth = popupRect.width;\n      var targetHeight = targetRect.height;\n      var targetWidth = targetRect.width;\n\n      // Get bounding of visible area\n      var visibleRegion = {\n        left: 0,\n        top: 0,\n        right: clientWidth,\n        bottom: clientHeight\n      };\n      var scrollRegion = {\n        left: -scrollLeft,\n        top: -scrollTop,\n        right: scrollWidth - scrollLeft,\n        bottom: scrollHeight - scrollTop\n      };\n      var htmlRegion = placementInfo.htmlRegion;\n      var VISIBLE = 'visible';\n      var VISIBLE_FIRST = 'visibleFirst';\n      if (htmlRegion !== 'scroll' && htmlRegion !== VISIBLE_FIRST) {\n        htmlRegion = VISIBLE;\n      }\n      var isVisibleFirst = htmlRegion === VISIBLE_FIRST;\n      var scrollRegionArea = getVisibleArea(scrollRegion, scrollerList);\n      var visibleRegionArea = getVisibleArea(visibleRegion, scrollerList);\n      var visibleArea = htmlRegion === VISIBLE ? visibleRegionArea : scrollRegionArea;\n\n      // When set to `visibleFirst`,\n      // the check `adjust` logic will use `visibleRegion` for check first.\n      var adjustCheckVisibleArea = isVisibleFirst ? visibleRegionArea : visibleArea;\n\n      // Record right & bottom align data\n      popupElement.style.left = 'auto';\n      popupElement.style.top = 'auto';\n      popupElement.style.right = '0';\n      popupElement.style.bottom = '0';\n      var popupMirrorRect = popupElement.getBoundingClientRect();\n\n      // Reset back\n      popupElement.style.left = originLeft;\n      popupElement.style.top = originTop;\n      popupElement.style.right = originRight;\n      popupElement.style.bottom = originBottom;\n      popupElement.style.overflow = originOverflow;\n      (_popupElement$parentE2 = popupElement.parentElement) === null || _popupElement$parentE2 === void 0 || _popupElement$parentE2.removeChild(placeholderElement);\n\n      // Calculate scale\n      var _scaleX = toNum(Math.round(popupWidth / parseFloat(width) * 1000) / 1000);\n      var _scaleY = toNum(Math.round(popupHeight / parseFloat(height) * 1000) / 1000);\n\n      // No need to align since it's not visible in view\n      if (_scaleX === 0 || _scaleY === 0 || isDOM(target) && !isVisible(target)) {\n        return;\n      }\n\n      // Offset\n      var offset = placementInfo.offset,\n        targetOffset = placementInfo.targetOffset;\n      var _getNumberOffset = getNumberOffset(popupRect, offset),\n        _getNumberOffset2 = _slicedToArray(_getNumberOffset, 2),\n        popupOffsetX = _getNumberOffset2[0],\n        popupOffsetY = _getNumberOffset2[1];\n      var _getNumberOffset3 = getNumberOffset(targetRect, targetOffset),\n        _getNumberOffset4 = _slicedToArray(_getNumberOffset3, 2),\n        targetOffsetX = _getNumberOffset4[0],\n        targetOffsetY = _getNumberOffset4[1];\n      targetRect.x -= targetOffsetX;\n      targetRect.y -= targetOffsetY;\n\n      // Points\n      var _ref3 = placementInfo.points || [],\n        _ref4 = _slicedToArray(_ref3, 2),\n        popupPoint = _ref4[0],\n        targetPoint = _ref4[1];\n      var targetPoints = splitPoints(targetPoint);\n      var popupPoints = splitPoints(popupPoint);\n      var targetAlignPoint = getAlignPoint(targetRect, targetPoints);\n      var popupAlignPoint = getAlignPoint(popupRect, popupPoints);\n\n      // Real align info may not same as origin one\n      var nextAlignInfo = _objectSpread({}, placementInfo);\n\n      // Next Offset\n      var nextOffsetX = targetAlignPoint.x - popupAlignPoint.x + popupOffsetX;\n      var nextOffsetY = targetAlignPoint.y - popupAlignPoint.y + popupOffsetY;\n\n      // ============== Intersection ===============\n      // Get area by position. Used for check if flip area is better\n      function getIntersectionVisibleArea(offsetX, offsetY) {\n        var area = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : visibleArea;\n        var l = popupRect.x + offsetX;\n        var t = popupRect.y + offsetY;\n        var r = l + popupWidth;\n        var b = t + popupHeight;\n        var visibleL = Math.max(l, area.left);\n        var visibleT = Math.max(t, area.top);\n        var visibleR = Math.min(r, area.right);\n        var visibleB = Math.min(b, area.bottom);\n        return Math.max(0, (visibleR - visibleL) * (visibleB - visibleT));\n      }\n      var originIntersectionVisibleArea = getIntersectionVisibleArea(nextOffsetX, nextOffsetY);\n\n      // As `visibleFirst`, we prepare this for check\n      var originIntersectionRecommendArea = getIntersectionVisibleArea(nextOffsetX, nextOffsetY, visibleRegionArea);\n\n      // ========================== Overflow ===========================\n      var targetAlignPointTL = getAlignPoint(targetRect, ['t', 'l']);\n      var popupAlignPointTL = getAlignPoint(popupRect, ['t', 'l']);\n      var targetAlignPointBR = getAlignPoint(targetRect, ['b', 'r']);\n      var popupAlignPointBR = getAlignPoint(popupRect, ['b', 'r']);\n      var overflow = placementInfo.overflow || {};\n      var adjustX = overflow.adjustX,\n        adjustY = overflow.adjustY,\n        shiftX = overflow.shiftX,\n        shiftY = overflow.shiftY;\n      var supportAdjust = function supportAdjust(val) {\n        if (typeof val === 'boolean') {\n          return val;\n        }\n        return val >= 0;\n      };\n\n      // Prepare position\n      var nextPopupY;\n      var nextPopupBottom;\n      var nextPopupX;\n      var nextPopupRight;\n      function syncNextPopupPosition() {\n        nextPopupY = popupRect.y + nextOffsetY;\n        nextPopupBottom = nextPopupY + popupHeight;\n        nextPopupX = popupRect.x + nextOffsetX;\n        nextPopupRight = nextPopupX + popupWidth;\n      }\n      syncNextPopupPosition();\n\n      // >>>>>>>>>> Top & Bottom\n      var needAdjustY = supportAdjust(adjustY);\n      var sameTB = popupPoints[0] === targetPoints[0];\n\n      // Bottom to Top\n      if (needAdjustY && popupPoints[0] === 't' && (nextPopupBottom > adjustCheckVisibleArea.bottom || prevFlipRef.current.bt)) {\n        var tmpNextOffsetY = nextOffsetY;\n        if (sameTB) {\n          tmpNextOffsetY -= popupHeight - targetHeight;\n        } else {\n          tmpNextOffsetY = targetAlignPointTL.y - popupAlignPointBR.y - popupOffsetY;\n        }\n        var newVisibleArea = getIntersectionVisibleArea(nextOffsetX, tmpNextOffsetY);\n        var newVisibleRecommendArea = getIntersectionVisibleArea(nextOffsetX, tmpNextOffsetY, visibleRegionArea);\n        if (\n        // Of course use larger one\n        newVisibleArea > originIntersectionVisibleArea || newVisibleArea === originIntersectionVisibleArea && (!isVisibleFirst ||\n        // Choose recommend one\n        newVisibleRecommendArea >= originIntersectionRecommendArea)) {\n          prevFlipRef.current.bt = true;\n          nextOffsetY = tmpNextOffsetY;\n          popupOffsetY = -popupOffsetY;\n          nextAlignInfo.points = [reversePoints(popupPoints, 0), reversePoints(targetPoints, 0)];\n        } else {\n          prevFlipRef.current.bt = false;\n        }\n      }\n\n      // Top to Bottom\n      if (needAdjustY && popupPoints[0] === 'b' && (nextPopupY < adjustCheckVisibleArea.top || prevFlipRef.current.tb)) {\n        var _tmpNextOffsetY = nextOffsetY;\n        if (sameTB) {\n          _tmpNextOffsetY += popupHeight - targetHeight;\n        } else {\n          _tmpNextOffsetY = targetAlignPointBR.y - popupAlignPointTL.y - popupOffsetY;\n        }\n        var _newVisibleArea = getIntersectionVisibleArea(nextOffsetX, _tmpNextOffsetY);\n        var _newVisibleRecommendArea = getIntersectionVisibleArea(nextOffsetX, _tmpNextOffsetY, visibleRegionArea);\n        if (\n        // Of course use larger one\n        _newVisibleArea > originIntersectionVisibleArea || _newVisibleArea === originIntersectionVisibleArea && (!isVisibleFirst ||\n        // Choose recommend one\n        _newVisibleRecommendArea >= originIntersectionRecommendArea)) {\n          prevFlipRef.current.tb = true;\n          nextOffsetY = _tmpNextOffsetY;\n          popupOffsetY = -popupOffsetY;\n          nextAlignInfo.points = [reversePoints(popupPoints, 0), reversePoints(targetPoints, 0)];\n        } else {\n          prevFlipRef.current.tb = false;\n        }\n      }\n\n      // >>>>>>>>>> Left & Right\n      var needAdjustX = supportAdjust(adjustX);\n\n      // >>>>> Flip\n      var sameLR = popupPoints[1] === targetPoints[1];\n\n      // Right to Left\n      if (needAdjustX && popupPoints[1] === 'l' && (nextPopupRight > adjustCheckVisibleArea.right || prevFlipRef.current.rl)) {\n        var tmpNextOffsetX = nextOffsetX;\n        if (sameLR) {\n          tmpNextOffsetX -= popupWidth - targetWidth;\n        } else {\n          tmpNextOffsetX = targetAlignPointTL.x - popupAlignPointBR.x - popupOffsetX;\n        }\n        var _newVisibleArea2 = getIntersectionVisibleArea(tmpNextOffsetX, nextOffsetY);\n        var _newVisibleRecommendArea2 = getIntersectionVisibleArea(tmpNextOffsetX, nextOffsetY, visibleRegionArea);\n        if (\n        // Of course use larger one\n        _newVisibleArea2 > originIntersectionVisibleArea || _newVisibleArea2 === originIntersectionVisibleArea && (!isVisibleFirst ||\n        // Choose recommend one\n        _newVisibleRecommendArea2 >= originIntersectionRecommendArea)) {\n          prevFlipRef.current.rl = true;\n          nextOffsetX = tmpNextOffsetX;\n          popupOffsetX = -popupOffsetX;\n          nextAlignInfo.points = [reversePoints(popupPoints, 1), reversePoints(targetPoints, 1)];\n        } else {\n          prevFlipRef.current.rl = false;\n        }\n      }\n\n      // Left to Right\n      if (needAdjustX && popupPoints[1] === 'r' && (nextPopupX < adjustCheckVisibleArea.left || prevFlipRef.current.lr)) {\n        var _tmpNextOffsetX = nextOffsetX;\n        if (sameLR) {\n          _tmpNextOffsetX += popupWidth - targetWidth;\n        } else {\n          _tmpNextOffsetX = targetAlignPointBR.x - popupAlignPointTL.x - popupOffsetX;\n        }\n        var _newVisibleArea3 = getIntersectionVisibleArea(_tmpNextOffsetX, nextOffsetY);\n        var _newVisibleRecommendArea3 = getIntersectionVisibleArea(_tmpNextOffsetX, nextOffsetY, visibleRegionArea);\n        if (\n        // Of course use larger one\n        _newVisibleArea3 > originIntersectionVisibleArea || _newVisibleArea3 === originIntersectionVisibleArea && (!isVisibleFirst ||\n        // Choose recommend one\n        _newVisibleRecommendArea3 >= originIntersectionRecommendArea)) {\n          prevFlipRef.current.lr = true;\n          nextOffsetX = _tmpNextOffsetX;\n          popupOffsetX = -popupOffsetX;\n          nextAlignInfo.points = [reversePoints(popupPoints, 1), reversePoints(targetPoints, 1)];\n        } else {\n          prevFlipRef.current.lr = false;\n        }\n      }\n\n      // ============================ Shift ============================\n      syncNextPopupPosition();\n      var numShiftX = shiftX === true ? 0 : shiftX;\n      if (typeof numShiftX === 'number') {\n        // Left\n        if (nextPopupX < visibleRegionArea.left) {\n          nextOffsetX -= nextPopupX - visibleRegionArea.left - popupOffsetX;\n          if (targetRect.x + targetWidth < visibleRegionArea.left + numShiftX) {\n            nextOffsetX += targetRect.x - visibleRegionArea.left + targetWidth - numShiftX;\n          }\n        }\n\n        // Right\n        if (nextPopupRight > visibleRegionArea.right) {\n          nextOffsetX -= nextPopupRight - visibleRegionArea.right - popupOffsetX;\n          if (targetRect.x > visibleRegionArea.right - numShiftX) {\n            nextOffsetX += targetRect.x - visibleRegionArea.right + numShiftX;\n          }\n        }\n      }\n      var numShiftY = shiftY === true ? 0 : shiftY;\n      if (typeof numShiftY === 'number') {\n        // Top\n        if (nextPopupY < visibleRegionArea.top) {\n          nextOffsetY -= nextPopupY - visibleRegionArea.top - popupOffsetY;\n\n          // When target if far away from visible area\n          // Stop shift\n          if (targetRect.y + targetHeight < visibleRegionArea.top + numShiftY) {\n            nextOffsetY += targetRect.y - visibleRegionArea.top + targetHeight - numShiftY;\n          }\n        }\n\n        // Bottom\n        if (nextPopupBottom > visibleRegionArea.bottom) {\n          nextOffsetY -= nextPopupBottom - visibleRegionArea.bottom - popupOffsetY;\n          if (targetRect.y > visibleRegionArea.bottom - numShiftY) {\n            nextOffsetY += targetRect.y - visibleRegionArea.bottom + numShiftY;\n          }\n        }\n      }\n\n      // ============================ Arrow ============================\n      // Arrow center align\n      var popupLeft = popupRect.x + nextOffsetX;\n      var popupRight = popupLeft + popupWidth;\n      var popupTop = popupRect.y + nextOffsetY;\n      var popupBottom = popupTop + popupHeight;\n      var targetLeft = targetRect.x;\n      var targetRight = targetLeft + targetWidth;\n      var targetTop = targetRect.y;\n      var targetBottom = targetTop + targetHeight;\n      var maxLeft = Math.max(popupLeft, targetLeft);\n      var minRight = Math.min(popupRight, targetRight);\n      var xCenter = (maxLeft + minRight) / 2;\n      var nextArrowX = xCenter - popupLeft;\n      var maxTop = Math.max(popupTop, targetTop);\n      var minBottom = Math.min(popupBottom, targetBottom);\n      var yCenter = (maxTop + minBottom) / 2;\n      var nextArrowY = yCenter - popupTop;\n      onPopupAlign === null || onPopupAlign === void 0 || onPopupAlign(popupEle, nextAlignInfo);\n\n      // Additional calculate right & bottom position\n      var offsetX4Right = popupMirrorRect.right - popupRect.x - (nextOffsetX + popupRect.width);\n      var offsetY4Bottom = popupMirrorRect.bottom - popupRect.y - (nextOffsetY + popupRect.height);\n      if (_scaleX === 1) {\n        nextOffsetX = Math.round(nextOffsetX);\n        offsetX4Right = Math.round(offsetX4Right);\n      }\n      if (_scaleY === 1) {\n        nextOffsetY = Math.round(nextOffsetY);\n        offsetY4Bottom = Math.round(offsetY4Bottom);\n      }\n      var nextOffsetInfo = {\n        ready: true,\n        offsetX: nextOffsetX / _scaleX,\n        offsetY: nextOffsetY / _scaleY,\n        offsetR: offsetX4Right / _scaleX,\n        offsetB: offsetY4Bottom / _scaleY,\n        arrowX: nextArrowX / _scaleX,\n        arrowY: nextArrowY / _scaleY,\n        scaleX: _scaleX,\n        scaleY: _scaleY,\n        align: nextAlignInfo\n      };\n      setOffsetInfo(nextOffsetInfo);\n    }\n  });\n  var triggerAlign = function triggerAlign() {\n    alignCountRef.current += 1;\n    var id = alignCountRef.current;\n\n    // Merge all align requirement into one frame\n    Promise.resolve().then(function () {\n      if (alignCountRef.current === id) {\n        onAlign();\n      }\n    });\n  };\n\n  // Reset ready status when placement & open changed\n  var resetReady = function resetReady() {\n    setOffsetInfo(function (ori) {\n      return _objectSpread(_objectSpread({}, ori), {}, {\n        ready: false\n      });\n    });\n  };\n  useLayoutEffect(resetReady, [placement]);\n  useLayoutEffect(function () {\n    if (!open) {\n      resetReady();\n    }\n  }, [open]);\n  return [offsetInfo.ready, offsetInfo.offsetX, offsetInfo.offsetY, offsetInfo.offsetR, offsetInfo.offsetB, offsetInfo.arrowX, offsetInfo.arrowY, offsetInfo.scaleX, offsetInfo.scaleY, offsetInfo.align, triggerAlign];\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"children\", \"action\", \"showAction\", \"hideAction\", \"popupVisible\", \"defaultPopupVisible\", \"onPopupVisibleChange\", \"afterPopupVisibleChange\", \"mouseEnterDelay\", \"mouseLeaveDelay\", \"focusDelay\", \"blurDelay\", \"mask\", \"maskClosable\", \"getPopupContainer\", \"forceRender\", \"autoDestroy\", \"destroyPopupOnHide\", \"popup\", \"popupClassName\", \"popupStyle\", \"popupPlacement\", \"builtinPlacements\", \"popupAlign\", \"zIndex\", \"stretch\", \"getPopupClassNameFromAlign\", \"fresh\", \"alignPoint\", \"onPopupClick\", \"onPopupAlign\", \"arrow\", \"popupMotion\", \"maskMotion\", \"popupTransitionName\", \"popupAnimation\", \"maskTransitionName\", \"maskAnimation\", \"className\", \"getTriggerDOMNode\"];\nimport Portal from '@rc-component/portal';\nimport classNames from 'classnames';\nimport ResizeObserver from 'rc-resize-observer';\nimport { isDOM } from \"rc-util/es/Dom/findDOMNode\";\nimport { getShadowRoot } from \"rc-util/es/Dom/shadow\";\nimport useEvent from \"rc-util/es/hooks/useEvent\";\nimport useId from \"rc-util/es/hooks/useId\";\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport isMobile from \"rc-util/es/isMobile\";\nimport * as React from 'react';\nimport Popup from \"./Popup\";\nimport TriggerWrapper from \"./TriggerWrapper\";\nimport TriggerContext from \"./context\";\nimport useAction from \"./hooks/useAction\";\nimport useAlign from \"./hooks/useAlign\";\nimport useWatch from \"./hooks/useWatch\";\nimport useWinClick from \"./hooks/useWinClick\";\nimport { getAlignPopupClassName, getMotion } from \"./util\";\n\n// Removed Props List\n// Seems this can be auto\n// getDocument?: (element?: HTMLElement) => Document;\n\n// New version will not wrap popup with `rc-trigger-popup-content` when multiple children\n\nexport function generateTrigger() {\n  var PortalComponent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : Portal;\n  var Trigger = /*#__PURE__*/React.forwardRef(function (props, ref) {\n    var _props$prefixCls = props.prefixCls,\n      prefixCls = _props$prefixCls === void 0 ? 'rc-trigger-popup' : _props$prefixCls,\n      children = props.children,\n      _props$action = props.action,\n      action = _props$action === void 0 ? 'hover' : _props$action,\n      showAction = props.showAction,\n      hideAction = props.hideAction,\n      popupVisible = props.popupVisible,\n      defaultPopupVisible = props.defaultPopupVisible,\n      onPopupVisibleChange = props.onPopupVisibleChange,\n      afterPopupVisibleChange = props.afterPopupVisibleChange,\n      mouseEnterDelay = props.mouseEnterDelay,\n      _props$mouseLeaveDela = props.mouseLeaveDelay,\n      mouseLeaveDelay = _props$mouseLeaveDela === void 0 ? 0.1 : _props$mouseLeaveDela,\n      focusDelay = props.focusDelay,\n      blurDelay = props.blurDelay,\n      mask = props.mask,\n      _props$maskClosable = props.maskClosable,\n      maskClosable = _props$maskClosable === void 0 ? true : _props$maskClosable,\n      getPopupContainer = props.getPopupContainer,\n      forceRender = props.forceRender,\n      autoDestroy = props.autoDestroy,\n      destroyPopupOnHide = props.destroyPopupOnHide,\n      popup = props.popup,\n      popupClassName = props.popupClassName,\n      popupStyle = props.popupStyle,\n      popupPlacement = props.popupPlacement,\n      _props$builtinPlaceme = props.builtinPlacements,\n      builtinPlacements = _props$builtinPlaceme === void 0 ? {} : _props$builtinPlaceme,\n      popupAlign = props.popupAlign,\n      zIndex = props.zIndex,\n      stretch = props.stretch,\n      getPopupClassNameFromAlign = props.getPopupClassNameFromAlign,\n      fresh = props.fresh,\n      alignPoint = props.alignPoint,\n      onPopupClick = props.onPopupClick,\n      onPopupAlign = props.onPopupAlign,\n      arrow = props.arrow,\n      popupMotion = props.popupMotion,\n      maskMotion = props.maskMotion,\n      popupTransitionName = props.popupTransitionName,\n      popupAnimation = props.popupAnimation,\n      maskTransitionName = props.maskTransitionName,\n      maskAnimation = props.maskAnimation,\n      className = props.className,\n      getTriggerDOMNode = props.getTriggerDOMNode,\n      restProps = _objectWithoutProperties(props, _excluded);\n    var mergedAutoDestroy = autoDestroy || destroyPopupOnHide || false;\n\n    // =========================== Mobile ===========================\n    var _React$useState = React.useState(false),\n      _React$useState2 = _slicedToArray(_React$useState, 2),\n      mobile = _React$useState2[0],\n      setMobile = _React$useState2[1];\n    useLayoutEffect(function () {\n      setMobile(isMobile());\n    }, []);\n\n    // ========================== Context ===========================\n    var subPopupElements = React.useRef({});\n    var parentContext = React.useContext(TriggerContext);\n    var context = React.useMemo(function () {\n      return {\n        registerSubPopup: function registerSubPopup(id, subPopupEle) {\n          subPopupElements.current[id] = subPopupEle;\n          parentContext === null || parentContext === void 0 || parentContext.registerSubPopup(id, subPopupEle);\n        }\n      };\n    }, [parentContext]);\n\n    // =========================== Popup ============================\n    var id = useId();\n    var _React$useState3 = React.useState(null),\n      _React$useState4 = _slicedToArray(_React$useState3, 2),\n      popupEle = _React$useState4[0],\n      setPopupEle = _React$useState4[1];\n\n    // Used for forwardRef popup. Not use internal\n    var externalPopupRef = React.useRef(null);\n    var setPopupRef = useEvent(function (node) {\n      externalPopupRef.current = node;\n      if (isDOM(node) && popupEle !== node) {\n        setPopupEle(node);\n      }\n      parentContext === null || parentContext === void 0 || parentContext.registerSubPopup(id, node);\n    });\n\n    // =========================== Target ===========================\n    // Use state to control here since `useRef` update not trigger render\n    var _React$useState5 = React.useState(null),\n      _React$useState6 = _slicedToArray(_React$useState5, 2),\n      targetEle = _React$useState6[0],\n      setTargetEle = _React$useState6[1];\n\n    // Used for forwardRef target. Not use internal\n    var externalForwardRef = React.useRef(null);\n    var setTargetRef = useEvent(function (node) {\n      if (isDOM(node) && targetEle !== node) {\n        setTargetEle(node);\n        externalForwardRef.current = node;\n      }\n    });\n\n    // ========================== Children ==========================\n    var child = React.Children.only(children);\n    var originChildProps = (child === null || child === void 0 ? void 0 : child.props) || {};\n    var cloneProps = {};\n    var inPopupOrChild = useEvent(function (ele) {\n      var _getShadowRoot, _getShadowRoot2;\n      var childDOM = targetEle;\n      return (childDOM === null || childDOM === void 0 ? void 0 : childDOM.contains(ele)) || ((_getShadowRoot = getShadowRoot(childDOM)) === null || _getShadowRoot === void 0 ? void 0 : _getShadowRoot.host) === ele || ele === childDOM || (popupEle === null || popupEle === void 0 ? void 0 : popupEle.contains(ele)) || ((_getShadowRoot2 = getShadowRoot(popupEle)) === null || _getShadowRoot2 === void 0 ? void 0 : _getShadowRoot2.host) === ele || ele === popupEle || Object.values(subPopupElements.current).some(function (subPopupEle) {\n        return (subPopupEle === null || subPopupEle === void 0 ? void 0 : subPopupEle.contains(ele)) || ele === subPopupEle;\n      });\n    });\n\n    // =========================== Motion ===========================\n    var mergePopupMotion = getMotion(prefixCls, popupMotion, popupAnimation, popupTransitionName);\n    var mergeMaskMotion = getMotion(prefixCls, maskMotion, maskAnimation, maskTransitionName);\n\n    // ============================ Open ============================\n    var _React$useState7 = React.useState(defaultPopupVisible || false),\n      _React$useState8 = _slicedToArray(_React$useState7, 2),\n      internalOpen = _React$useState8[0],\n      setInternalOpen = _React$useState8[1];\n\n    // Render still use props as first priority\n    var mergedOpen = popupVisible !== null && popupVisible !== void 0 ? popupVisible : internalOpen;\n\n    // We use effect sync here in case `popupVisible` back to `undefined`\n    var setMergedOpen = useEvent(function (nextOpen) {\n      if (popupVisible === undefined) {\n        setInternalOpen(nextOpen);\n      }\n    });\n    useLayoutEffect(function () {\n      setInternalOpen(popupVisible || false);\n    }, [popupVisible]);\n    var openRef = React.useRef(mergedOpen);\n    openRef.current = mergedOpen;\n    var lastTriggerRef = React.useRef([]);\n    lastTriggerRef.current = [];\n    var internalTriggerOpen = useEvent(function (nextOpen) {\n      var _lastTriggerRef$curre;\n      setMergedOpen(nextOpen);\n\n      // Enter or Pointer will both trigger open state change\n      // We only need take one to avoid duplicated change event trigger\n      // Use `lastTriggerRef` to record last open type\n      if (((_lastTriggerRef$curre = lastTriggerRef.current[lastTriggerRef.current.length - 1]) !== null && _lastTriggerRef$curre !== void 0 ? _lastTriggerRef$curre : mergedOpen) !== nextOpen) {\n        lastTriggerRef.current.push(nextOpen);\n        onPopupVisibleChange === null || onPopupVisibleChange === void 0 || onPopupVisibleChange(nextOpen);\n      }\n    });\n\n    // Trigger for delay\n    var delayRef = React.useRef();\n    var clearDelay = function clearDelay() {\n      clearTimeout(delayRef.current);\n    };\n    var triggerOpen = function triggerOpen(nextOpen) {\n      var delay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n      clearDelay();\n      if (delay === 0) {\n        internalTriggerOpen(nextOpen);\n      } else {\n        delayRef.current = setTimeout(function () {\n          internalTriggerOpen(nextOpen);\n        }, delay * 1000);\n      }\n    };\n    React.useEffect(function () {\n      return clearDelay;\n    }, []);\n\n    // ========================== Motion ============================\n    var _React$useState9 = React.useState(false),\n      _React$useState10 = _slicedToArray(_React$useState9, 2),\n      inMotion = _React$useState10[0],\n      setInMotion = _React$useState10[1];\n    useLayoutEffect(function (firstMount) {\n      if (!firstMount || mergedOpen) {\n        setInMotion(true);\n      }\n    }, [mergedOpen]);\n    var _React$useState11 = React.useState(null),\n      _React$useState12 = _slicedToArray(_React$useState11, 2),\n      motionPrepareResolve = _React$useState12[0],\n      setMotionPrepareResolve = _React$useState12[1];\n\n    // =========================== Align ============================\n    var _React$useState13 = React.useState(null),\n      _React$useState14 = _slicedToArray(_React$useState13, 2),\n      mousePos = _React$useState14[0],\n      setMousePos = _React$useState14[1];\n    var setMousePosByEvent = function setMousePosByEvent(event) {\n      setMousePos([event.clientX, event.clientY]);\n    };\n    var _useAlign = useAlign(mergedOpen, popupEle, alignPoint && mousePos !== null ? mousePos : targetEle, popupPlacement, builtinPlacements, popupAlign, onPopupAlign),\n      _useAlign2 = _slicedToArray(_useAlign, 11),\n      ready = _useAlign2[0],\n      offsetX = _useAlign2[1],\n      offsetY = _useAlign2[2],\n      offsetR = _useAlign2[3],\n      offsetB = _useAlign2[4],\n      arrowX = _useAlign2[5],\n      arrowY = _useAlign2[6],\n      scaleX = _useAlign2[7],\n      scaleY = _useAlign2[8],\n      alignInfo = _useAlign2[9],\n      onAlign = _useAlign2[10];\n    var _useAction = useAction(mobile, action, showAction, hideAction),\n      _useAction2 = _slicedToArray(_useAction, 2),\n      showActions = _useAction2[0],\n      hideActions = _useAction2[1];\n    var clickToShow = showActions.has('click');\n    var clickToHide = hideActions.has('click') || hideActions.has('contextMenu');\n    var triggerAlign = useEvent(function () {\n      if (!inMotion) {\n        onAlign();\n      }\n    });\n    var onScroll = function onScroll() {\n      if (openRef.current && alignPoint && clickToHide) {\n        triggerOpen(false);\n      }\n    };\n    useWatch(mergedOpen, targetEle, popupEle, triggerAlign, onScroll);\n    useLayoutEffect(function () {\n      triggerAlign();\n    }, [mousePos, popupPlacement]);\n\n    // When no builtinPlacements and popupAlign changed\n    useLayoutEffect(function () {\n      if (mergedOpen && !(builtinPlacements !== null && builtinPlacements !== void 0 && builtinPlacements[popupPlacement])) {\n        triggerAlign();\n      }\n    }, [JSON.stringify(popupAlign)]);\n    var alignedClassName = React.useMemo(function () {\n      var baseClassName = getAlignPopupClassName(builtinPlacements, prefixCls, alignInfo, alignPoint);\n      return classNames(baseClassName, getPopupClassNameFromAlign === null || getPopupClassNameFromAlign === void 0 ? void 0 : getPopupClassNameFromAlign(alignInfo));\n    }, [alignInfo, getPopupClassNameFromAlign, builtinPlacements, prefixCls, alignPoint]);\n\n    // ============================ Refs ============================\n    React.useImperativeHandle(ref, function () {\n      return {\n        nativeElement: externalForwardRef.current,\n        popupElement: externalPopupRef.current,\n        forceAlign: triggerAlign\n      };\n    });\n\n    // ========================== Stretch ===========================\n    var _React$useState15 = React.useState(0),\n      _React$useState16 = _slicedToArray(_React$useState15, 2),\n      targetWidth = _React$useState16[0],\n      setTargetWidth = _React$useState16[1];\n    var _React$useState17 = React.useState(0),\n      _React$useState18 = _slicedToArray(_React$useState17, 2),\n      targetHeight = _React$useState18[0],\n      setTargetHeight = _React$useState18[1];\n    var syncTargetSize = function syncTargetSize() {\n      if (stretch && targetEle) {\n        var rect = targetEle.getBoundingClientRect();\n        setTargetWidth(rect.width);\n        setTargetHeight(rect.height);\n      }\n    };\n    var onTargetResize = function onTargetResize() {\n      syncTargetSize();\n      triggerAlign();\n    };\n\n    // ========================== Motion ============================\n    var onVisibleChanged = function onVisibleChanged(visible) {\n      setInMotion(false);\n      onAlign();\n      afterPopupVisibleChange === null || afterPopupVisibleChange === void 0 || afterPopupVisibleChange(visible);\n    };\n\n    // We will trigger align when motion is in prepare\n    var onPrepare = function onPrepare() {\n      return new Promise(function (resolve) {\n        syncTargetSize();\n        setMotionPrepareResolve(function () {\n          return resolve;\n        });\n      });\n    };\n    useLayoutEffect(function () {\n      if (motionPrepareResolve) {\n        onAlign();\n        motionPrepareResolve();\n        setMotionPrepareResolve(null);\n      }\n    }, [motionPrepareResolve]);\n\n    // =========================== Action ===========================\n    /**\n     * Util wrapper for trigger action\n     */\n    function wrapperAction(eventName, nextOpen, delay, preEvent) {\n      cloneProps[eventName] = function (event) {\n        var _originChildProps$eve;\n        preEvent === null || preEvent === void 0 || preEvent(event);\n        triggerOpen(nextOpen, delay);\n\n        // Pass to origin\n        for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n          args[_key - 1] = arguments[_key];\n        }\n        (_originChildProps$eve = originChildProps[eventName]) === null || _originChildProps$eve === void 0 || _originChildProps$eve.call.apply(_originChildProps$eve, [originChildProps, event].concat(args));\n      };\n    }\n\n    // ======================= Action: Click ========================\n    if (clickToShow || clickToHide) {\n      cloneProps.onClick = function (event) {\n        var _originChildProps$onC;\n        if (openRef.current && clickToHide) {\n          triggerOpen(false);\n        } else if (!openRef.current && clickToShow) {\n          setMousePosByEvent(event);\n          triggerOpen(true);\n        }\n\n        // Pass to origin\n        for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n          args[_key2 - 1] = arguments[_key2];\n        }\n        (_originChildProps$onC = originChildProps.onClick) === null || _originChildProps$onC === void 0 || _originChildProps$onC.call.apply(_originChildProps$onC, [originChildProps, event].concat(args));\n      };\n    }\n\n    // Click to hide is special action since click popup element should not hide\n    useWinClick(mergedOpen, clickToHide, targetEle, popupEle, mask, maskClosable, inPopupOrChild, triggerOpen);\n\n    // ======================= Action: Hover ========================\n    var hoverToShow = showActions.has('hover');\n    var hoverToHide = hideActions.has('hover');\n    var onPopupMouseEnter;\n    var onPopupMouseLeave;\n    if (hoverToShow) {\n      // Compatible with old browser which not support pointer event\n      wrapperAction('onMouseEnter', true, mouseEnterDelay, function (event) {\n        setMousePosByEvent(event);\n      });\n      wrapperAction('onPointerEnter', true, mouseEnterDelay, function (event) {\n        setMousePosByEvent(event);\n      });\n      onPopupMouseEnter = function onPopupMouseEnter(event) {\n        // Only trigger re-open when popup is visible\n        if ((mergedOpen || inMotion) && popupEle !== null && popupEle !== void 0 && popupEle.contains(event.target)) {\n          triggerOpen(true, mouseEnterDelay);\n        }\n      };\n\n      // Align Point\n      if (alignPoint) {\n        cloneProps.onMouseMove = function (event) {\n          var _originChildProps$onM;\n          // setMousePosByEvent(event);\n          (_originChildProps$onM = originChildProps.onMouseMove) === null || _originChildProps$onM === void 0 || _originChildProps$onM.call(originChildProps, event);\n        };\n      }\n    }\n    if (hoverToHide) {\n      wrapperAction('onMouseLeave', false, mouseLeaveDelay);\n      wrapperAction('onPointerLeave', false, mouseLeaveDelay);\n      onPopupMouseLeave = function onPopupMouseLeave() {\n        triggerOpen(false, mouseLeaveDelay);\n      };\n    }\n\n    // ======================= Action: Focus ========================\n    if (showActions.has('focus')) {\n      wrapperAction('onFocus', true, focusDelay);\n    }\n    if (hideActions.has('focus')) {\n      wrapperAction('onBlur', false, blurDelay);\n    }\n\n    // ==================== Action: ContextMenu =====================\n    if (showActions.has('contextMenu')) {\n      cloneProps.onContextMenu = function (event) {\n        var _originChildProps$onC2;\n        if (openRef.current && hideActions.has('contextMenu')) {\n          triggerOpen(false);\n        } else {\n          setMousePosByEvent(event);\n          triggerOpen(true);\n        }\n        event.preventDefault();\n\n        // Pass to origin\n        for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n          args[_key3 - 1] = arguments[_key3];\n        }\n        (_originChildProps$onC2 = originChildProps.onContextMenu) === null || _originChildProps$onC2 === void 0 || _originChildProps$onC2.call.apply(_originChildProps$onC2, [originChildProps, event].concat(args));\n      };\n    }\n\n    // ========================= ClassName ==========================\n    if (className) {\n      cloneProps.className = classNames(originChildProps.className, className);\n    }\n\n    // =========================== Render ===========================\n    var mergedChildrenProps = _objectSpread(_objectSpread({}, originChildProps), cloneProps);\n\n    // Pass props into cloneProps for nest usage\n    var passedProps = {};\n    var passedEventList = ['onContextMenu', 'onClick', 'onMouseDown', 'onTouchStart', 'onMouseEnter', 'onMouseLeave', 'onFocus', 'onBlur'];\n    passedEventList.forEach(function (eventName) {\n      if (restProps[eventName]) {\n        passedProps[eventName] = function () {\n          var _mergedChildrenProps$;\n          for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n            args[_key4] = arguments[_key4];\n          }\n          (_mergedChildrenProps$ = mergedChildrenProps[eventName]) === null || _mergedChildrenProps$ === void 0 || _mergedChildrenProps$.call.apply(_mergedChildrenProps$, [mergedChildrenProps].concat(args));\n          restProps[eventName].apply(restProps, args);\n        };\n      }\n    });\n\n    // Child Node\n    var triggerNode = /*#__PURE__*/React.cloneElement(child, _objectSpread(_objectSpread({}, mergedChildrenProps), passedProps));\n    var arrowPos = {\n      x: arrowX,\n      y: arrowY\n    };\n    var innerArrow = arrow ? _objectSpread({}, arrow !== true ? arrow : {}) : null;\n\n    // Render\n    return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(ResizeObserver, {\n      disabled: !mergedOpen,\n      ref: setTargetRef,\n      onResize: onTargetResize\n    }, /*#__PURE__*/React.createElement(TriggerWrapper, {\n      getTriggerDOMNode: getTriggerDOMNode\n    }, triggerNode)), /*#__PURE__*/React.createElement(TriggerContext.Provider, {\n      value: context\n    }, /*#__PURE__*/React.createElement(Popup, {\n      portal: PortalComponent,\n      ref: setPopupRef,\n      prefixCls: prefixCls,\n      popup: popup,\n      className: classNames(popupClassName, alignedClassName),\n      style: popupStyle,\n      target: targetEle,\n      onMouseEnter: onPopupMouseEnter,\n      onMouseLeave: onPopupMouseLeave\n      // https://github.com/ant-design/ant-design/issues/43924\n      ,\n      onPointerEnter: onPopupMouseEnter,\n      zIndex: zIndex\n      // Open\n      ,\n      open: mergedOpen,\n      keepDom: inMotion,\n      fresh: fresh\n      // Click\n      ,\n      onClick: onPopupClick\n      // Mask\n      ,\n      mask: mask\n      // Motion\n      ,\n      motion: mergePopupMotion,\n      maskMotion: mergeMaskMotion,\n      onVisibleChanged: onVisibleChanged,\n      onPrepare: onPrepare\n      // Portal\n      ,\n      forceRender: forceRender,\n      autoDestroy: mergedAutoDestroy,\n      getPopupContainer: getPopupContainer\n      // Arrow\n      ,\n      align: alignInfo,\n      arrow: innerArrow,\n      arrowPos: arrowPos\n      // Align\n      ,\n      ready: ready,\n      offsetX: offsetX,\n      offsetY: offsetY,\n      offsetR: offsetR,\n      offsetB: offsetB,\n      onAlign: triggerAlign\n      // Stretch\n      ,\n      stretch: stretch,\n      targetWidth: targetWidth / scaleX,\n      targetHeight: targetHeight / scaleY\n    })));\n  });\n  if (process.env.NODE_ENV !== 'production') {\n    Trigger.displayName = 'Trigger';\n  }\n  return Trigger;\n}\nexport default generateTrigger(Portal);","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport { collectScroller, getWin } from \"../util\";\nexport default function useWatch(open, target, popup, onAlign, onScroll) {\n  useLayoutEffect(function () {\n    if (open && target && popup) {\n      var targetElement = target;\n      var popupElement = popup;\n      var targetScrollList = collectScroller(targetElement);\n      var popupScrollList = collectScroller(popupElement);\n      var win = getWin(popupElement);\n      var mergedList = new Set([win].concat(_toConsumableArray(targetScrollList), _toConsumableArray(popupScrollList)));\n      function notifyScroll() {\n        onAlign();\n        onScroll();\n      }\n      mergedList.forEach(function (scroller) {\n        scroller.addEventListener('scroll', notifyScroll, {\n          passive: true\n        });\n      });\n      win.addEventListener('resize', notifyScroll, {\n        passive: true\n      });\n\n      // First time always do align\n      onAlign();\n      return function () {\n        mergedList.forEach(function (scroller) {\n          scroller.removeEventListener('scroll', notifyScroll);\n          win.removeEventListener('resize', notifyScroll);\n        });\n      };\n    }\n  }, [open, target, popup]);\n}","import { getShadowRoot } from \"rc-util/es/Dom/shadow\";\nimport { warning } from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport { getWin } from \"../util\";\nexport default function useWinClick(open, clickToHide, targetEle, popupEle, mask, maskClosable, inPopupOrChild, triggerOpen) {\n  var openRef = React.useRef(open);\n  openRef.current = open;\n\n  // Click to hide is special action since click popup element should not hide\n  React.useEffect(function () {\n    if (clickToHide && popupEle && (!mask || maskClosable)) {\n      var onTriggerClose = function onTriggerClose(e) {\n        var _e$composedPath;\n        if (openRef.current && !inPopupOrChild(((_e$composedPath = e.composedPath) === null || _e$composedPath === void 0 || (_e$composedPath = _e$composedPath.call(e)) === null || _e$composedPath === void 0 ? void 0 : _e$composedPath[0]) || e.target)) {\n          triggerOpen(false);\n        }\n      };\n      var win = getWin(popupEle);\n      win.addEventListener('mousedown', onTriggerClose, true);\n      win.addEventListener('contextmenu', onTriggerClose, true);\n\n      // shadow root\n      var targetShadowRoot = getShadowRoot(targetEle);\n      if (targetShadowRoot) {\n        targetShadowRoot.addEventListener('mousedown', onTriggerClose, true);\n        targetShadowRoot.addEventListener('contextmenu', onTriggerClose, true);\n      }\n\n      // Warning if target and popup not in same root\n      if (process.env.NODE_ENV !== 'production') {\n        var _targetEle$getRootNod, _popupEle$getRootNode;\n        var targetRoot = targetEle === null || targetEle === void 0 || (_targetEle$getRootNod = targetEle.getRootNode) === null || _targetEle$getRootNod === void 0 ? void 0 : _targetEle$getRootNod.call(targetEle);\n        var popupRoot = (_popupEle$getRootNode = popupEle.getRootNode) === null || _popupEle$getRootNode === void 0 ? void 0 : _popupEle$getRootNode.call(popupEle);\n        warning(targetRoot === popupRoot, \"trigger element and popup element should in same shadow root.\");\n      }\n      return function () {\n        win.removeEventListener('mousedown', onTriggerClose, true);\n        win.removeEventListener('contextmenu', onTriggerClose, true);\n        if (targetShadowRoot) {\n          targetShadowRoot.removeEventListener('mousedown', onTriggerClose, true);\n          targetShadowRoot.removeEventListener('contextmenu', onTriggerClose, true);\n        }\n      };\n    }\n  }, [clickToHide, targetEle, popupEle, mask, maskClosable]);\n}","\"use client\";\n\nimport * as React from 'react';\nimport { useContext, useMemo } from 'react';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const DEFAULT_BREAKPOINTS = ['xxl', 'xl', 'lg', 'md', 'sm', 'xs'];\nexport const DEFAULT_MIN_BREAKPOINT = 'xs';\nconst ThemeContext = /*#__PURE__*/React.createContext({\n  prefixes: {},\n  breakpoints: DEFAULT_BREAKPOINTS,\n  minBreakpoint: DEFAULT_MIN_BREAKPOINT\n});\nconst {\n  Consumer,\n  Provider\n} = ThemeContext;\nfunction ThemeProvider({\n  prefixes = {},\n  breakpoints = DEFAULT_BREAKPOINTS,\n  minBreakpoint = DEFAULT_MIN_BREAKPOINT,\n  dir,\n  children\n}) {\n  const contextValue = useMemo(() => ({\n    prefixes: {\n      ...prefixes\n    },\n    breakpoints,\n    minBreakpoint,\n    dir\n  }), [prefixes, breakpoints, minBreakpoint, dir]);\n  return /*#__PURE__*/_jsx(Provider, {\n    value: contextValue,\n    children: children\n  });\n}\nexport function useBootstrapPrefix(prefix, defaultPrefix) {\n  const {\n    prefixes\n  } = useContext(ThemeContext);\n  return prefix || prefixes[defaultPrefix] || defaultPrefix;\n}\nexport function useBootstrapBreakpoints() {\n  const {\n    breakpoints\n  } = useContext(ThemeContext);\n  return breakpoints;\n}\nexport function useBootstrapMinBreakpoint() {\n  const {\n    minBreakpoint\n  } = useContext(ThemeContext);\n  return minBreakpoint;\n}\nexport function useIsRTL() {\n  const {\n    dir\n  } = useContext(ThemeContext);\n  return dir === 'rtl';\n}\nfunction createBootstrapComponent(Component, opts) {\n  if (typeof opts === 'string') opts = {\n    prefix: opts\n  };\n  const isClassy = Component.prototype && Component.prototype.isReactComponent;\n  // If it's a functional component make sure we don't break it with a ref\n  const {\n    prefix,\n    forwardRefAs = isClassy ? 'ref' : 'innerRef'\n  } = opts;\n  const Wrapped = /*#__PURE__*/React.forwardRef(({\n    ...props\n  }, ref) => {\n    props[forwardRefAs] = ref;\n    const bsPrefix = useBootstrapPrefix(props.bsPrefix, prefix);\n    return /*#__PURE__*/_jsx(Component, {\n      ...props,\n      bsPrefix: bsPrefix\n    });\n  });\n  Wrapped.displayName = `Bootstrap(${Component.displayName || Component.name})`;\n  return Wrapped;\n}\nexport { createBootstrapComponent, Consumer as ThemeConsumer };\nexport default ThemeProvider;","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function _toPropertyKey(arg) {\n  var key = toPrimitive(arg, \"string\");\n  return _typeof(key) === \"symbol\" ? key : String(key);\n}","import _typeof from \"./typeof.js\";\nexport default function _toPrimitive(input, hint) {\n  if (_typeof(input) !== \"object\" || input === null) return input;\n  var prim = input[Symbol.toPrimitive];\n  if (prim !== undefined) {\n    var res = prim.call(input, hint || \"default\");\n    if (_typeof(res) !== \"object\") return res;\n    throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n  }\n  return (hint === \"string\" ? String : Number)(input);\n}","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n  key = toPropertyKey(key);\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n  return obj;\n}","import defineProperty from \"./defineProperty.js\";\nfunction ownKeys(object, enumerableOnly) {\n  var keys = Object.keys(object);\n  if (Object.getOwnPropertySymbols) {\n    var symbols = Object.getOwnPropertySymbols(object);\n    enumerableOnly && (symbols = symbols.filter(function (sym) {\n      return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n    })), keys.push.apply(keys, symbols);\n  }\n  return keys;\n}\nexport default function _objectSpread2(target) {\n  for (var i = 1; i < arguments.length; i++) {\n    var source = null != arguments[i] ? arguments[i] : {};\n    i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n      defineProperty(target, key, source[key]);\n    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n      Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n    });\n  }\n  return target;\n}","/** @license React v17.0.2\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=require(\"object-assign\"),n=60103,p=60106;exports.Fragment=60107;exports.StrictMode=60108;exports.Profiler=60114;var q=60109,r=60110,t=60112;exports.Suspense=60113;var u=60115,v=60116;\nif(\"function\"===typeof Symbol&&Symbol.for){var w=Symbol.for;n=w(\"react.element\");p=w(\"react.portal\");exports.Fragment=w(\"react.fragment\");exports.StrictMode=w(\"react.strict_mode\");exports.Profiler=w(\"react.profiler\");q=w(\"react.provider\");r=w(\"react.context\");t=w(\"react.forward_ref\");exports.Suspense=w(\"react.suspense\");u=w(\"react.memo\");v=w(\"react.lazy\")}var x=\"function\"===typeof Symbol&&Symbol.iterator;\nfunction y(a){if(null===a||\"object\"!==typeof a)return null;a=x&&a[x]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}function z(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c<arguments.length;c++)b+=\"&args[]=\"+encodeURIComponent(arguments[c]);return\"Minified React error #\"+a+\"; visit \"+b+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}\nvar A={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},B={};function C(a,b,c){this.props=a;this.context=b;this.refs=B;this.updater=c||A}C.prototype.isReactComponent={};C.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(z(85));this.updater.enqueueSetState(this,a,b,\"setState\")};C.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};\nfunction D(){}D.prototype=C.prototype;function E(a,b,c){this.props=a;this.context=b;this.refs=B;this.updater=c||A}var F=E.prototype=new D;F.constructor=E;l(F,C.prototype);F.isPureReactComponent=!0;var G={current:null},H=Object.prototype.hasOwnProperty,I={key:!0,ref:!0,__self:!0,__source:!0};\nfunction J(a,b,c){var e,d={},k=null,h=null;if(null!=b)for(e in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)H.call(b,e)&&!I.hasOwnProperty(e)&&(d[e]=b[e]);var g=arguments.length-2;if(1===g)d.children=c;else if(1<g){for(var f=Array(g),m=0;m<g;m++)f[m]=arguments[m+2];d.children=f}if(a&&a.defaultProps)for(e in g=a.defaultProps,g)void 0===d[e]&&(d[e]=g[e]);return{$$typeof:n,type:a,key:k,ref:h,props:d,_owner:G.current}}\nfunction K(a,b){return{$$typeof:n,type:a.type,key:b,ref:a.ref,props:a.props,_owner:a._owner}}function L(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===n}function escape(a){var b={\"=\":\"=0\",\":\":\"=2\"};return\"$\"+a.replace(/[=:]/g,function(a){return b[a]})}var M=/\\/+/g;function N(a,b){return\"object\"===typeof a&&null!==a&&null!=a.key?escape(\"\"+a.key):b.toString(36)}\nfunction O(a,b,c,e,d){var k=typeof a;if(\"undefined\"===k||\"boolean\"===k)a=null;var h=!1;if(null===a)h=!0;else switch(k){case \"string\":case \"number\":h=!0;break;case \"object\":switch(a.$$typeof){case n:case p:h=!0}}if(h)return h=a,d=d(h),a=\"\"===e?\".\"+N(h,0):e,Array.isArray(d)?(c=\"\",null!=a&&(c=a.replace(M,\"$&/\")+\"/\"),O(d,b,c,\"\",function(a){return a})):null!=d&&(L(d)&&(d=K(d,c+(!d.key||h&&h.key===d.key?\"\":(\"\"+d.key).replace(M,\"$&/\")+\"/\")+a)),b.push(d)),1;h=0;e=\"\"===e?\".\":e+\":\";if(Array.isArray(a))for(var g=\n0;g<a.length;g++){k=a[g];var f=e+N(k,g);h+=O(k,b,c,f,d)}else if(f=y(a),\"function\"===typeof f)for(a=f.call(a),g=0;!(k=a.next()).done;)k=k.value,f=e+N(k,g++),h+=O(k,b,c,f,d);else if(\"object\"===k)throw b=\"\"+a,Error(z(31,\"[object Object]\"===b?\"object with keys {\"+Object.keys(a).join(\", \")+\"}\":b));return h}function P(a,b,c){if(null==a)return a;var e=[],d=0;O(a,e,\"\",\"\",function(a){return b.call(c,a,d++)});return e}\nfunction Q(a){if(-1===a._status){var b=a._result;b=b();a._status=0;a._result=b;b.then(function(b){0===a._status&&(b=b.default,a._status=1,a._result=b)},function(b){0===a._status&&(a._status=2,a._result=b)})}if(1===a._status)return a._result;throw a._result;}var R={current:null};function S(){var a=R.current;if(null===a)throw Error(z(321));return a}var T={ReactCurrentDispatcher:R,ReactCurrentBatchConfig:{transition:0},ReactCurrentOwner:G,IsSomeRendererActing:{current:!1},assign:l};\nexports.Children={map:P,forEach:function(a,b,c){P(a,function(){b.apply(this,arguments)},c)},count:function(a){var b=0;P(a,function(){b++});return b},toArray:function(a){return P(a,function(a){return a})||[]},only:function(a){if(!L(a))throw Error(z(143));return a}};exports.Component=C;exports.PureComponent=E;exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=T;\nexports.cloneElement=function(a,b,c){if(null===a||void 0===a)throw Error(z(267,a));var e=l({},a.props),d=a.key,k=a.ref,h=a._owner;if(null!=b){void 0!==b.ref&&(k=b.ref,h=G.current);void 0!==b.key&&(d=\"\"+b.key);if(a.type&&a.type.defaultProps)var g=a.type.defaultProps;for(f in b)H.call(b,f)&&!I.hasOwnProperty(f)&&(e[f]=void 0===b[f]&&void 0!==g?g[f]:b[f])}var f=arguments.length-2;if(1===f)e.children=c;else if(1<f){g=Array(f);for(var m=0;m<f;m++)g[m]=arguments[m+2];e.children=g}return{$$typeof:n,type:a.type,\nkey:d,ref:k,props:e,_owner:h}};exports.createContext=function(a,b){void 0===b&&(b=null);a={$$typeof:r,_calculateChangedBits:b,_currentValue:a,_currentValue2:a,_threadCount:0,Provider:null,Consumer:null};a.Provider={$$typeof:q,_context:a};return a.Consumer=a};exports.createElement=J;exports.createFactory=function(a){var b=J.bind(null,a);b.type=a;return b};exports.createRef=function(){return{current:null}};exports.forwardRef=function(a){return{$$typeof:t,render:a}};exports.isValidElement=L;\nexports.lazy=function(a){return{$$typeof:v,_payload:{_status:-1,_result:a},_init:Q}};exports.memo=function(a,b){return{$$typeof:u,type:a,compare:void 0===b?null:b}};exports.useCallback=function(a,b){return S().useCallback(a,b)};exports.useContext=function(a,b){return S().useContext(a,b)};exports.useDebugValue=function(){};exports.useEffect=function(a,b){return S().useEffect(a,b)};exports.useImperativeHandle=function(a,b,c){return S().useImperativeHandle(a,b,c)};\nexports.useLayoutEffect=function(a,b){return S().useLayoutEffect(a,b)};exports.useMemo=function(a,b){return S().useMemo(a,b)};exports.useReducer=function(a,b,c){return S().useReducer(a,b,c)};exports.useRef=function(a){return S().useRef(a)};exports.useState=function(a){return S().useState(a)};exports.version=\"17.0.2\";\n","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(e, r) {\n  for (var t = 0; t < r.length; t++) {\n    var o = r[t];\n    o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, toPropertyKey(o.key), o);\n  }\n}\nfunction _createClass(e, r, t) {\n  return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", {\n    writable: !1\n  }), e;\n}\nexport { _createClass as default };","\"use client\";\n\nimport { createContext } from 'react';\n// ZombieJ: We export single file here since\n// ConfigProvider use this which will make loop deps\n// to import whole `rc-field-form`\nexport default /*#__PURE__*/createContext(undefined);","import { generate } from '@ant-design/colors';\nimport { TinyColor } from '@ctrl/tinycolor';\nimport canUseDom from \"rc-util/es/Dom/canUseDom\";\nimport { updateCSS } from \"rc-util/es/Dom/dynamicCSS\";\nimport warning from '../_util/warning';\nconst dynamicStyleMark = `-ant-${Date.now()}-${Math.random()}`;\nexport function getStyle(globalPrefixCls, theme) {\n  const variables = {};\n  const formatColor = (color, updater) => {\n    let clone = color.clone();\n    clone = (updater === null || updater === void 0 ? void 0 : updater(clone)) || clone;\n    return clone.toRgbString();\n  };\n  const fillColor = (colorVal, type) => {\n    const baseColor = new TinyColor(colorVal);\n    const colorPalettes = generate(baseColor.toRgbString());\n    variables[`${type}-color`] = formatColor(baseColor);\n    variables[`${type}-color-disabled`] = colorPalettes[1];\n    variables[`${type}-color-hover`] = colorPalettes[4];\n    variables[`${type}-color-active`] = colorPalettes[6];\n    variables[`${type}-color-outline`] = baseColor.clone().setAlpha(0.2).toRgbString();\n    variables[`${type}-color-deprecated-bg`] = colorPalettes[0];\n    variables[`${type}-color-deprecated-border`] = colorPalettes[2];\n  };\n  // ================ Primary Color ================\n  if (theme.primaryColor) {\n    fillColor(theme.primaryColor, 'primary');\n    const primaryColor = new TinyColor(theme.primaryColor);\n    const primaryColors = generate(primaryColor.toRgbString());\n    // Legacy - We should use semantic naming standard\n    primaryColors.forEach((color, index) => {\n      variables[`primary-${index + 1}`] = color;\n    });\n    // Deprecated\n    variables['primary-color-deprecated-l-35'] = formatColor(primaryColor, c => c.lighten(35));\n    variables['primary-color-deprecated-l-20'] = formatColor(primaryColor, c => c.lighten(20));\n    variables['primary-color-deprecated-t-20'] = formatColor(primaryColor, c => c.tint(20));\n    variables['primary-color-deprecated-t-50'] = formatColor(primaryColor, c => c.tint(50));\n    variables['primary-color-deprecated-f-12'] = formatColor(primaryColor, c => c.setAlpha(c.getAlpha() * 0.12));\n    const primaryActiveColor = new TinyColor(primaryColors[0]);\n    variables['primary-color-active-deprecated-f-30'] = formatColor(primaryActiveColor, c => c.setAlpha(c.getAlpha() * 0.3));\n    variables['primary-color-active-deprecated-d-02'] = formatColor(primaryActiveColor, c => c.darken(2));\n  }\n  // ================ Success Color ================\n  if (theme.successColor) {\n    fillColor(theme.successColor, 'success');\n  }\n  // ================ Warning Color ================\n  if (theme.warningColor) {\n    fillColor(theme.warningColor, 'warning');\n  }\n  // ================= Error Color =================\n  if (theme.errorColor) {\n    fillColor(theme.errorColor, 'error');\n  }\n  // ================= Info Color ==================\n  if (theme.infoColor) {\n    fillColor(theme.infoColor, 'info');\n  }\n  // Convert to css variables\n  const cssList = Object.keys(variables).map(key => `--${globalPrefixCls}-${key}: ${variables[key]};`);\n  return `\n  :root {\n    ${cssList.join('\\n')}\n  }\n  `.trim();\n}\nexport function registerTheme(globalPrefixCls, theme) {\n  const style = getStyle(globalPrefixCls, theme);\n  if (canUseDom()) {\n    updateCSS(style, `${dynamicStyleMark}-dynamic-theme`);\n  } else {\n    process.env.NODE_ENV !== \"production\" ? warning(false, 'ConfigProvider', 'SSR do not support dynamic theme with css variables.') : void 0;\n  }\n}","import { useContext } from 'react';\nimport DisabledContext from '../DisabledContext';\nimport SizeContext from '../SizeContext';\nfunction useConfig() {\n  const componentDisabled = useContext(DisabledContext);\n  const componentSize = useContext(SizeContext);\n  return {\n    componentDisabled,\n    componentSize\n  };\n}\nexport default useConfig;","import * as React from 'react';\nconst fullClone = Object.assign({}, React);\nconst {\n  useId\n} = fullClone;\nconst useEmptyId = () => '';\nconst useThemeKey = typeof useId === 'undefined' ? useEmptyId : useId;\nexport default useThemeKey;","\"use client\";\n\nimport * as React from 'react';\nimport { Provider as MotionProvider } from 'rc-motion';\nimport { useToken } from '../theme/internal';\nexport default function MotionWrapper(props) {\n  const {\n    children\n  } = props;\n  const [, token] = useToken();\n  const {\n    motion\n  } = token;\n  const needWrapMotionProviderRef = React.useRef(false);\n  needWrapMotionProviderRef.current = needWrapMotionProviderRef.current || motion === false;\n  if (needWrapMotionProviderRef.current) {\n    return /*#__PURE__*/React.createElement(MotionProvider, {\n      motion: motion\n    }, children);\n  }\n  return children;\n}","\"use client\";\n\nimport * as React from 'react';\nimport { devUseWarning } from '../_util/warning';\n/**\n * Warning for ConfigProviderProps.\n * This will be empty function in production.\n */\nconst PropWarning = /*#__PURE__*/React.memo(_ref => {\n  let {\n    dropdownMatchSelectWidth\n  } = _ref;\n  const warning = devUseWarning('ConfigProvider');\n  warning.deprecated(dropdownMatchSelectWidth === undefined, 'dropdownMatchSelectWidth', 'popupMatchSelectWidth');\n  return null;\n});\nif (process.env.NODE_ENV !== 'production') {\n  PropWarning.displayName = 'PropWarning';\n}\nexport default process.env.NODE_ENV !== 'production' ? PropWarning : () => null;","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n  var t = {};\n  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n  }\n  return t;\n};\nimport * as React from 'react';\nimport { createTheme } from '@ant-design/cssinjs';\nimport IconContext from \"@ant-design/icons/es/components/Context\";\nimport useMemo from \"rc-util/es/hooks/useMemo\";\nimport { merge } from \"rc-util/es/utils/set\";\nimport warning, { devUseWarning, WarningContext } from '../_util/warning';\nimport ValidateMessagesContext from '../form/validateMessagesContext';\nimport LocaleProvider, { ANT_MARK } from '../locale';\nimport LocaleContext from '../locale/context';\nimport defaultLocale from '../locale/en_US';\nimport { defaultTheme, DesignTokenContext } from '../theme/context';\nimport defaultSeedToken from '../theme/themes/seed';\nimport { ConfigConsumer, ConfigContext, defaultIconPrefixCls, defaultPrefixCls, Variants } from './context';\nimport { registerTheme } from './cssVariables';\nimport { DisabledContextProvider } from './DisabledContext';\nimport useConfig from './hooks/useConfig';\nimport useTheme from './hooks/useTheme';\nimport MotionWrapper from './MotionWrapper';\nimport PropWarning from './PropWarning';\nimport SizeContext, { SizeContextProvider } from './SizeContext';\nimport useStyle from './style';\nexport { Variants };\n/**\n * Since too many feedback using static method like `Modal.confirm` not getting theme, we record the\n * theme register info here to help developer get warning info.\n */\nlet existThemeConfig = false;\nexport const warnContext = process.env.NODE_ENV !== 'production' ? componentName => {\n  process.env.NODE_ENV !== \"production\" ? warning(!existThemeConfig, componentName, `Static function can not consume context like dynamic theme. Please use 'App' component instead.`) : void 0;\n} : /* istanbul ignore next */\nnull;\nexport { ConfigConsumer, ConfigContext, defaultPrefixCls, defaultIconPrefixCls };\nexport const configConsumerProps = ['getTargetContainer', 'getPopupContainer', 'rootPrefixCls', 'getPrefixCls', 'renderEmpty', 'csp', 'autoInsertSpaceInButton', 'locale'];\n// These props is used by `useContext` directly in sub component\nconst PASSED_PROPS = ['getTargetContainer', 'getPopupContainer', 'renderEmpty', 'input', 'pagination', 'form', 'select', 'button'];\nlet globalPrefixCls;\nlet globalIconPrefixCls;\nlet globalTheme;\nlet globalHolderRender;\nfunction getGlobalPrefixCls() {\n  return globalPrefixCls || defaultPrefixCls;\n}\nfunction getGlobalIconPrefixCls() {\n  return globalIconPrefixCls || defaultIconPrefixCls;\n}\nfunction isLegacyTheme(theme) {\n  return Object.keys(theme).some(key => key.endsWith('Color'));\n}\nconst setGlobalConfig = props => {\n  const {\n    prefixCls,\n    iconPrefixCls,\n    theme,\n    holderRender\n  } = props;\n  if (prefixCls !== undefined) {\n    globalPrefixCls = prefixCls;\n  }\n  if (iconPrefixCls !== undefined) {\n    globalIconPrefixCls = iconPrefixCls;\n  }\n  if ('holderRender' in props) {\n    globalHolderRender = holderRender;\n  }\n  if (theme) {\n    if (isLegacyTheme(theme)) {\n      process.env.NODE_ENV !== \"production\" ? warning(false, 'ConfigProvider', '`config` of css variable theme is not work in v5. Please use new `theme` config instead.') : void 0;\n      registerTheme(getGlobalPrefixCls(), theme);\n    } else {\n      globalTheme = theme;\n    }\n  }\n};\nexport const globalConfig = () => ({\n  getPrefixCls: (suffixCls, customizePrefixCls) => {\n    if (customizePrefixCls) {\n      return customizePrefixCls;\n    }\n    return suffixCls ? `${getGlobalPrefixCls()}-${suffixCls}` : getGlobalPrefixCls();\n  },\n  getIconPrefixCls: getGlobalIconPrefixCls,\n  getRootPrefixCls: () => {\n    // If Global prefixCls provided, use this\n    if (globalPrefixCls) {\n      return globalPrefixCls;\n    }\n    // Fallback to default prefixCls\n    return getGlobalPrefixCls();\n  },\n  getTheme: () => globalTheme,\n  holderRender: globalHolderRender\n});\nconst ProviderChildren = props => {\n  const {\n    children,\n    csp: customCsp,\n    autoInsertSpaceInButton,\n    alert,\n    anchor,\n    form,\n    locale,\n    componentSize,\n    direction,\n    space,\n    splitter,\n    virtual,\n    dropdownMatchSelectWidth,\n    popupMatchSelectWidth,\n    popupOverflow,\n    legacyLocale,\n    parentContext,\n    iconPrefixCls: customIconPrefixCls,\n    theme,\n    componentDisabled,\n    segmented,\n    statistic,\n    spin,\n    calendar,\n    carousel,\n    cascader,\n    collapse,\n    typography,\n    checkbox,\n    descriptions,\n    divider,\n    drawer,\n    skeleton,\n    steps,\n    image,\n    layout,\n    list,\n    mentions,\n    modal,\n    progress,\n    result,\n    slider,\n    breadcrumb,\n    menu,\n    pagination,\n    input,\n    textArea,\n    empty,\n    badge,\n    radio,\n    rate,\n    switch: SWITCH,\n    transfer,\n    avatar,\n    message,\n    tag,\n    table,\n    card,\n    tabs,\n    timeline,\n    timePicker,\n    upload,\n    notification,\n    tree,\n    colorPicker,\n    datePicker,\n    rangePicker,\n    flex,\n    wave,\n    dropdown,\n    warning: warningConfig,\n    tour,\n    floatButtonGroup,\n    variant,\n    inputNumber,\n    treeSelect\n  } = props;\n  // =================================== Context ===================================\n  const getPrefixCls = React.useCallback((suffixCls, customizePrefixCls) => {\n    const {\n      prefixCls\n    } = props;\n    if (customizePrefixCls) {\n      return customizePrefixCls;\n    }\n    const mergedPrefixCls = prefixCls || parentContext.getPrefixCls('');\n    return suffixCls ? `${mergedPrefixCls}-${suffixCls}` : mergedPrefixCls;\n  }, [parentContext.getPrefixCls, props.prefixCls]);\n  const iconPrefixCls = customIconPrefixCls || parentContext.iconPrefixCls || defaultIconPrefixCls;\n  const csp = customCsp || parentContext.csp;\n  useStyle(iconPrefixCls, csp);\n  const mergedTheme = useTheme(theme, parentContext.theme, {\n    prefixCls: getPrefixCls('')\n  });\n  if (process.env.NODE_ENV !== 'production') {\n    existThemeConfig = existThemeConfig || !!mergedTheme;\n  }\n  const baseConfig = {\n    csp,\n    autoInsertSpaceInButton,\n    alert,\n    anchor,\n    locale: locale || legacyLocale,\n    direction,\n    space,\n    splitter,\n    virtual,\n    popupMatchSelectWidth: popupMatchSelectWidth !== null && popupMatchSelectWidth !== void 0 ? popupMatchSelectWidth : dropdownMatchSelectWidth,\n    popupOverflow,\n    getPrefixCls,\n    iconPrefixCls,\n    theme: mergedTheme,\n    segmented,\n    statistic,\n    spin,\n    calendar,\n    carousel,\n    cascader,\n    collapse,\n    typography,\n    checkbox,\n    descriptions,\n    divider,\n    drawer,\n    skeleton,\n    steps,\n    image,\n    input,\n    textArea,\n    layout,\n    list,\n    mentions,\n    modal,\n    progress,\n    result,\n    slider,\n    breadcrumb,\n    menu,\n    pagination,\n    empty,\n    badge,\n    radio,\n    rate,\n    switch: SWITCH,\n    transfer,\n    avatar,\n    message,\n    tag,\n    table,\n    card,\n    tabs,\n    timeline,\n    timePicker,\n    upload,\n    notification,\n    tree,\n    colorPicker,\n    datePicker,\n    rangePicker,\n    flex,\n    wave,\n    dropdown,\n    warning: warningConfig,\n    tour,\n    floatButtonGroup,\n    variant,\n    inputNumber,\n    treeSelect\n  };\n  if (process.env.NODE_ENV !== 'production') {\n    const warningFn = devUseWarning('ConfigProvider');\n    warningFn(!('autoInsertSpaceInButton' in props), 'deprecated', '`autoInsertSpaceInButton` is deprecated. Please use `{ button: { autoInsertSpace: boolean }}` instead.');\n  }\n  const config = Object.assign({}, parentContext);\n  Object.keys(baseConfig).forEach(key => {\n    if (baseConfig[key] !== undefined) {\n      config[key] = baseConfig[key];\n    }\n  });\n  // Pass the props used by `useContext` directly with child component.\n  // These props should merged into `config`.\n  PASSED_PROPS.forEach(propName => {\n    const propValue = props[propName];\n    if (propValue) {\n      config[propName] = propValue;\n    }\n  });\n  if (typeof autoInsertSpaceInButton !== 'undefined') {\n    // merge deprecated api\n    config.button = Object.assign({\n      autoInsertSpace: autoInsertSpaceInButton\n    }, config.button);\n  }\n  // https://github.com/ant-design/ant-design/issues/27617\n  const memoedConfig = useMemo(() => config, config, (prevConfig, currentConfig) => {\n    const prevKeys = Object.keys(prevConfig);\n    const currentKeys = Object.keys(currentConfig);\n    return prevKeys.length !== currentKeys.length || prevKeys.some(key => prevConfig[key] !== currentConfig[key]);\n  });\n  const memoIconContextValue = React.useMemo(() => ({\n    prefixCls: iconPrefixCls,\n    csp\n  }), [iconPrefixCls, csp]);\n  let childNode = /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(PropWarning, {\n    dropdownMatchSelectWidth: dropdownMatchSelectWidth\n  }), children);\n  const validateMessages = React.useMemo(() => {\n    var _a, _b, _c, _d;\n    return merge(((_a = defaultLocale.Form) === null || _a === void 0 ? void 0 : _a.defaultValidateMessages) || {}, ((_c = (_b = memoedConfig.locale) === null || _b === void 0 ? void 0 : _b.Form) === null || _c === void 0 ? void 0 : _c.defaultValidateMessages) || {}, ((_d = memoedConfig.form) === null || _d === void 0 ? void 0 : _d.validateMessages) || {}, (form === null || form === void 0 ? void 0 : form.validateMessages) || {});\n  }, [memoedConfig, form === null || form === void 0 ? void 0 : form.validateMessages]);\n  if (Object.keys(validateMessages).length > 0) {\n    childNode = /*#__PURE__*/React.createElement(ValidateMessagesContext.Provider, {\n      value: validateMessages\n    }, childNode);\n  }\n  if (locale) {\n    childNode = /*#__PURE__*/React.createElement(LocaleProvider, {\n      locale: locale,\n      _ANT_MARK__: ANT_MARK\n    }, childNode);\n  }\n  if (iconPrefixCls || csp) {\n    childNode = /*#__PURE__*/React.createElement(IconContext.Provider, {\n      value: memoIconContextValue\n    }, childNode);\n  }\n  if (componentSize) {\n    childNode = /*#__PURE__*/React.createElement(SizeContextProvider, {\n      size: componentSize\n    }, childNode);\n  }\n  // =================================== Motion ===================================\n  childNode = /*#__PURE__*/React.createElement(MotionWrapper, null, childNode);\n  // ================================ Dynamic theme ================================\n  const memoTheme = React.useMemo(() => {\n    const _a = mergedTheme || {},\n      {\n        algorithm,\n        token,\n        components,\n        cssVar\n      } = _a,\n      rest = __rest(_a, [\"algorithm\", \"token\", \"components\", \"cssVar\"]);\n    const themeObj = algorithm && (!Array.isArray(algorithm) || algorithm.length > 0) ? createTheme(algorithm) : defaultTheme;\n    const parsedComponents = {};\n    Object.entries(components || {}).forEach(_ref => {\n      let [componentName, componentToken] = _ref;\n      const parsedToken = Object.assign({}, componentToken);\n      if ('algorithm' in parsedToken) {\n        if (parsedToken.algorithm === true) {\n          parsedToken.theme = themeObj;\n        } else if (Array.isArray(parsedToken.algorithm) || typeof parsedToken.algorithm === 'function') {\n          parsedToken.theme = createTheme(parsedToken.algorithm);\n        }\n        delete parsedToken.algorithm;\n      }\n      parsedComponents[componentName] = parsedToken;\n    });\n    const mergedToken = Object.assign(Object.assign({}, defaultSeedToken), token);\n    return Object.assign(Object.assign({}, rest), {\n      theme: themeObj,\n      token: mergedToken,\n      components: parsedComponents,\n      override: Object.assign({\n        override: mergedToken\n      }, parsedComponents),\n      cssVar: cssVar\n    });\n  }, [mergedTheme]);\n  if (theme) {\n    childNode = /*#__PURE__*/React.createElement(DesignTokenContext.Provider, {\n      value: memoTheme\n    }, childNode);\n  }\n  // ================================== Warning ===================================\n  if (memoedConfig.warning) {\n    childNode = /*#__PURE__*/React.createElement(WarningContext.Provider, {\n      value: memoedConfig.warning\n    }, childNode);\n  }\n  // =================================== Render ===================================\n  if (componentDisabled !== undefined) {\n    childNode = /*#__PURE__*/React.createElement(DisabledContextProvider, {\n      disabled: componentDisabled\n    }, childNode);\n  }\n  return /*#__PURE__*/React.createElement(ConfigContext.Provider, {\n    value: memoedConfig\n  }, childNode);\n};\nconst ConfigProvider = props => {\n  const context = React.useContext(ConfigContext);\n  const antLocale = React.useContext(LocaleContext);\n  return /*#__PURE__*/React.createElement(ProviderChildren, Object.assign({\n    parentContext: context,\n    legacyLocale: antLocale\n  }, props));\n};\nConfigProvider.ConfigContext = ConfigContext;\nConfigProvider.SizeContext = SizeContext;\nConfigProvider.config = setGlobalConfig;\nConfigProvider.useConfig = useConfig;\nObject.defineProperty(ConfigProvider, 'SizeContext', {\n  get: () => {\n    process.env.NODE_ENV !== \"production\" ? warning(false, 'ConfigProvider', 'ConfigProvider.SizeContext is deprecated. Please use `ConfigProvider.useConfig().componentSize` instead.') : void 0;\n    return SizeContext;\n  }\n});\nif (process.env.NODE_ENV !== 'production') {\n  ConfigProvider.displayName = 'ConfigProvider';\n}\nexport default ConfigProvider;","import useMemo from \"rc-util/es/hooks/useMemo\";\nimport isEqual from \"rc-util/es/isEqual\";\nimport { devUseWarning } from '../../_util/warning';\nimport { defaultConfig } from '../../theme/internal';\nimport useThemeKey from './useThemeKey';\nexport default function useTheme(theme, parentTheme, config) {\n  var _a, _b;\n  const warning = devUseWarning('ConfigProvider');\n  const themeConfig = theme || {};\n  const parentThemeConfig = themeConfig.inherit === false || !parentTheme ? Object.assign(Object.assign({}, defaultConfig), {\n    hashed: (_a = parentTheme === null || parentTheme === void 0 ? void 0 : parentTheme.hashed) !== null && _a !== void 0 ? _a : defaultConfig.hashed,\n    cssVar: parentTheme === null || parentTheme === void 0 ? void 0 : parentTheme.cssVar\n  }) : parentTheme;\n  const themeKey = useThemeKey();\n  if (process.env.NODE_ENV !== 'production') {\n    const cssVarEnabled = themeConfig.cssVar || parentThemeConfig.cssVar;\n    const validKey = !!(typeof themeConfig.cssVar === 'object' && ((_b = themeConfig.cssVar) === null || _b === void 0 ? void 0 : _b.key) || themeKey);\n    process.env.NODE_ENV !== \"production\" ? warning(!cssVarEnabled || validKey, 'breaking', 'Missing key in `cssVar` config. Please upgrade to React 18 or set `cssVar.key` manually in each ConfigProvider inside `cssVar` enabled ConfigProvider.') : void 0;\n  }\n  return useMemo(() => {\n    var _a, _b;\n    if (!theme) {\n      return parentTheme;\n    }\n    // Override\n    const mergedComponents = Object.assign({}, parentThemeConfig.components);\n    Object.keys(theme.components || {}).forEach(componentName => {\n      mergedComponents[componentName] = Object.assign(Object.assign({}, mergedComponents[componentName]), theme.components[componentName]);\n    });\n    const cssVarKey = `css-var-${themeKey.replace(/:/g, '')}`;\n    const mergedCssVar = ((_a = themeConfig.cssVar) !== null && _a !== void 0 ? _a : parentThemeConfig.cssVar) && Object.assign(Object.assign(Object.assign({\n      prefix: config === null || config === void 0 ? void 0 : config.prefixCls\n    }, typeof parentThemeConfig.cssVar === 'object' ? parentThemeConfig.cssVar : {}), typeof themeConfig.cssVar === 'object' ? themeConfig.cssVar : {}), {\n      key: typeof themeConfig.cssVar === 'object' && ((_b = themeConfig.cssVar) === null || _b === void 0 ? void 0 : _b.key) || cssVarKey\n    });\n    // Base token\n    return Object.assign(Object.assign(Object.assign({}, parentThemeConfig), themeConfig), {\n      token: Object.assign(Object.assign({}, parentThemeConfig.token), themeConfig.token),\n      components: mergedComponents,\n      cssVar: mergedCssVar\n    });\n  }, [themeConfig, parentThemeConfig], (prev, next) => prev.some((prevTheme, index) => {\n    const nextTheme = next[index];\n    return !isEqual(prevTheme, nextTheme, true);\n  }));\n}","\"use strict\";\n\n/*\n  MIT License http://www.opensource.org/licenses/mit-license.php\n  Author Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\nmodule.exports = function (useSourceMap) {\n  var list = []; // return the list of modules as css string\n\n  list.toString = function toString() {\n    return this.map(function (item) {\n      var content = cssWithMappingToString(item, useSourceMap);\n\n      if (item[2]) {\n        return '@media ' + item[2] + '{' + content + '}';\n      } else {\n        return content;\n      }\n    }).join('');\n  }; // import a list of modules into the list\n\n\n  list.i = function (modules, mediaQuery) {\n    if (typeof modules === 'string') {\n      modules = [[null, modules, '']];\n    }\n\n    var alreadyImportedModules = {};\n\n    for (var i = 0; i < this.length; i++) {\n      var id = this[i][0];\n\n      if (id != null) {\n        alreadyImportedModules[id] = true;\n      }\n    }\n\n    for (i = 0; i < modules.length; i++) {\n      var item = modules[i]; // skip already imported module\n      // this implementation is not 100% perfect for weird media query combinations\n      // when a module is imported multiple times with different media queries.\n      // I hope this will never occur (Hey this way we have smaller bundles)\n\n      if (item[0] == null || !alreadyImportedModules[item[0]]) {\n        if (mediaQuery && !item[2]) {\n          item[2] = mediaQuery;\n        } else if (mediaQuery) {\n          item[2] = '(' + item[2] + ') and (' + mediaQuery + ')';\n        }\n\n        list.push(item);\n      }\n    }\n  };\n\n  return list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n  var content = item[1] || '';\n  var cssMapping = item[3];\n\n  if (!cssMapping) {\n    return content;\n  }\n\n  if (useSourceMap && typeof btoa === 'function') {\n    var sourceMapping = toComment(cssMapping);\n    var sourceURLs = cssMapping.sources.map(function (source) {\n      return '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */';\n    });\n    return [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n  }\n\n  return [content].join('\\n');\n} // Adapted from convert-source-map (MIT)\n\n\nfunction toComment(sourceMap) {\n  // eslint-disable-next-line no-undef\n  var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n  var data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64;\n  return '/*# ' + data + ' */';\n}","var raf = function raf(callback) {\n  return +setTimeout(callback, 16);\n};\nvar caf = function caf(num) {\n  return clearTimeout(num);\n};\nif (typeof window !== 'undefined' && 'requestAnimationFrame' in window) {\n  raf = function raf(callback) {\n    return window.requestAnimationFrame(callback);\n  };\n  caf = function caf(handle) {\n    return window.cancelAnimationFrame(handle);\n  };\n}\nvar rafUUID = 0;\nvar rafIds = new Map();\nfunction cleanup(id) {\n  rafIds.delete(id);\n}\nvar wrapperRaf = function wrapperRaf(callback) {\n  var times = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n  rafUUID += 1;\n  var id = rafUUID;\n  function callRef(leftTimes) {\n    if (leftTimes === 0) {\n      // Clean up\n      cleanup(id);\n\n      // Trigger\n      callback();\n    } else {\n      // Next raf\n      var realId = raf(function () {\n        callRef(leftTimes - 1);\n      });\n\n      // Bind real raf id\n      rafIds.set(id, realId);\n    }\n  }\n  callRef(times);\n  return id;\n};\nwrapperRaf.cancel = function (id) {\n  var realId = rafIds.get(id);\n  cleanup(id);\n  return caf(realId);\n};\nif (process.env.NODE_ENV !== 'production') {\n  wrapperRaf.ids = function () {\n    return rafIds;\n  };\n}\nexport default wrapperRaf;","module.exports = __webpack_public_path__ + \"web/ttsMake/statics/clone-issue-head-db2d7304.png\";","function _extends() {\n  return _extends = Object.assign ? Object.assign.bind() : function (n) {\n    for (var e = 1; e < arguments.length; e++) {\n      var t = arguments[e];\n      for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n    }\n    return n;\n  }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","export default (function (element) {\n  if (!element) {\n    return false;\n  }\n  if (element instanceof Element) {\n    if (element.offsetParent) {\n      return true;\n    }\n    if (element.getBBox) {\n      var _getBBox = element.getBBox(),\n        width = _getBBox.width,\n        height = _getBBox.height;\n      if (width || height) {\n        return true;\n      }\n    }\n    if (element.getBoundingClientRect) {\n      var _element$getBoundingC = element.getBoundingClientRect(),\n        _width = _element$getBoundingC.width,\n        _height = _element$getBoundingC.height;\n      if (_width || _height) {\n        return true;\n      }\n    }\n  }\n  return false;\n});","/* eslint-disable no-nested-ternary */\nvar PIXEL_PATTERN = /margin|padding|width|height|max|min|offset/;\nvar removePixel = {\n  left: true,\n  top: true\n};\nvar floatMap = {\n  cssFloat: 1,\n  styleFloat: 1,\n  float: 1\n};\nfunction getComputedStyle(node) {\n  return node.nodeType === 1 ? node.ownerDocument.defaultView.getComputedStyle(node, null) : {};\n}\nfunction getStyleValue(node, type, value) {\n  type = type.toLowerCase();\n  if (value === 'auto') {\n    if (type === 'height') {\n      return node.offsetHeight;\n    }\n    if (type === 'width') {\n      return node.offsetWidth;\n    }\n  }\n  if (!(type in removePixel)) {\n    removePixel[type] = PIXEL_PATTERN.test(type);\n  }\n  return removePixel[type] ? parseFloat(value) || 0 : value;\n}\nexport function get(node, name) {\n  var length = arguments.length;\n  var style = getComputedStyle(node);\n  name = floatMap[name] ? 'cssFloat' in node.style ? 'cssFloat' : 'styleFloat' : name;\n  return length === 1 ? style : getStyleValue(node, name, style[name] || node.style[name]);\n}\nexport function set(node, name, value) {\n  var length = arguments.length;\n  name = floatMap[name] ? 'cssFloat' in node.style ? 'cssFloat' : 'styleFloat' : name;\n  if (length === 3) {\n    if (typeof value === 'number' && PIXEL_PATTERN.test(name)) {\n      value = \"\".concat(value, \"px\");\n    }\n    node.style[name] = value; // Number\n    return value;\n  }\n  for (var x in name) {\n    if (name.hasOwnProperty(x)) {\n      set(node, x, name[x]);\n    }\n  }\n  return getComputedStyle(node);\n}\nexport function getOuterWidth(el) {\n  if (el === document.body) {\n    return document.documentElement.clientWidth;\n  }\n  return el.offsetWidth;\n}\nexport function getOuterHeight(el) {\n  if (el === document.body) {\n    return window.innerHeight || document.documentElement.clientHeight;\n  }\n  return el.offsetHeight;\n}\nexport function getDocSize() {\n  var width = Math.max(document.documentElement.scrollWidth, document.body.scrollWidth);\n  var height = Math.max(document.documentElement.scrollHeight, document.body.scrollHeight);\n  return {\n    width: width,\n    height: height\n  };\n}\nexport function getClientSize() {\n  var width = document.documentElement.clientWidth;\n  var height = window.innerHeight || document.documentElement.clientHeight;\n  return {\n    width: width,\n    height: height\n  };\n}\nexport function getScroll() {\n  return {\n    scrollLeft: Math.max(document.documentElement.scrollLeft, document.body.scrollLeft),\n    scrollTop: Math.max(document.documentElement.scrollTop, document.body.scrollTop)\n  };\n}\nexport function getOffset(node) {\n  var box = node.getBoundingClientRect();\n  var docElem = document.documentElement;\n\n  // < ie8 不支持 win.pageXOffset, 则使用 docElem.scrollLeft\n  return {\n    left: box.left + (window.pageXOffset || docElem.scrollLeft) - (docElem.clientLeft || document.body.clientLeft || 0),\n    top: box.top + (window.pageYOffset || docElem.scrollTop) - (docElem.clientTop || document.body.clientTop || 0)\n  };\n}","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","// This icon file is generated automatically.\nvar LoadingOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"0 0 1024 1024\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M988 548c-19.9 0-36-16.1-36-36 0-59.4-11.6-117-34.6-171.3a440.45 440.45 0 00-94.3-139.9 437.71 437.71 0 00-139.9-94.3C629 83.6 571.4 72 512 72c-19.9 0-36-16.1-36-36s16.1-36 36-36c69.1 0 136.2 13.5 199.3 40.3C772.3 66 827 103 874 150c47 47 83.9 101.8 109.7 162.7 26.7 63.1 40.2 130.2 40.2 199.3.1 19.9-16 36-35.9 36z\" } }] }, \"name\": \"loading\", \"theme\": \"outlined\" };\nexport default LoadingOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport LoadingOutlinedSvg from \"@ant-design/icons-svg/es/asn/LoadingOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar LoadingOutlined = function LoadingOutlined(props, ref) {\n  return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n    ref: ref,\n    icon: LoadingOutlinedSvg\n  }));\n};\n\n/**![loading](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjAgMCAxMDI0IDEwMjQiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTk4OCA1NDhjLTE5LjkgMC0zNi0xNi4xLTM2LTM2IDAtNTkuNC0xMS42LTExNy0zNC42LTE3MS4zYTQ0MC40NSA0NDAuNDUgMCAwMC05NC4zLTEzOS45IDQzNy43MSA0MzcuNzEgMCAwMC0xMzkuOS05NC4zQzYyOSA4My42IDU3MS40IDcyIDUxMiA3MmMtMTkuOSAwLTM2LTE2LjEtMzYtMzZzMTYuMS0zNiAzNi0zNmM2OS4xIDAgMTM2LjIgMTMuNSAxOTkuMyA0MC4zQzc3Mi4zIDY2IDgyNyAxMDMgODc0IDE1MGM0NyA0NyA4My45IDEwMS44IDEwOS43IDE2Mi43IDI2LjcgNjMuMSA0MC4yIDEzMC4yIDQwLjIgMTk5LjMuMSAxOS45LTE2IDM2LTM1LjkgMzZ6IiAvPjwvc3ZnPg==) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(LoadingOutlined);\nif (process.env.NODE_ENV !== 'production') {\n  RefIcon.displayName = 'LoadingOutlined';\n}\nexport default RefIcon;","/** @license React v17.0.2\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),m=require(\"object-assign\"),r=require(\"scheduler\");function y(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c<arguments.length;c++)b+=\"&args[]=\"+encodeURIComponent(arguments[c]);return\"Minified React error #\"+a+\"; visit \"+b+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}if(!aa)throw Error(y(227));var ba=new Set,ca={};function da(a,b){ea(a,b);ea(a+\"Capture\",b)}\nfunction ea(a,b){ca[a]=b;for(a=0;a<b.length;a++)ba.add(b[a])}\nvar fa=!(\"undefined\"===typeof window||\"undefined\"===typeof window.document||\"undefined\"===typeof window.document.createElement),ha=/^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$/,ia=Object.prototype.hasOwnProperty,\nja={},ka={};function la(a){if(ia.call(ka,a))return!0;if(ia.call(ja,a))return!1;if(ha.test(a))return ka[a]=!0;ja[a]=!0;return!1}function ma(a,b,c,d){if(null!==c&&0===c.type)return!1;switch(typeof b){case \"function\":case \"symbol\":return!0;case \"boolean\":if(d)return!1;if(null!==c)return!c.acceptsBooleans;a=a.toLowerCase().slice(0,5);return\"data-\"!==a&&\"aria-\"!==a;default:return!1}}\nfunction na(a,b,c,d){if(null===b||\"undefined\"===typeof b||ma(a,b,c,d))return!0;if(d)return!1;if(null!==c)switch(c.type){case 3:return!b;case 4:return!1===b;case 5:return isNaN(b);case 6:return isNaN(b)||1>b}return!1}function B(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var D={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){D[a]=new B(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];D[b]=new B(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){D[a]=new B(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){D[a]=new B(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){D[a]=new B(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){D[a]=new B(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){D[a]=new B(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){D[a]=new B(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){D[a]=new B(a,5,!1,a.toLowerCase(),null,!1,!1)});var oa=/[\\-:]([a-z])/g;function pa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(oa,\npa);D[b]=new B(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(oa,pa);D[b]=new B(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(oa,pa);D[b]=new B(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!1,!1)});\nD.xlinkHref=new B(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction qa(a,b,c,d){var e=D.hasOwnProperty(b)?D[b]:null;var f=null!==e?0===e.type:d?!1:!(2<b.length)||\"o\"!==b[0]&&\"O\"!==b[0]||\"n\"!==b[1]&&\"N\"!==b[1]?!1:!0;f||(na(b,c,e,d)&&(c=null),d||null===e?la(b)&&(null===c?a.removeAttribute(b):a.setAttribute(b,\"\"+c)):e.mustUseProperty?a[e.propertyName]=null===c?3===e.type?!1:\"\":c:(b=e.attributeName,d=e.attributeNamespace,null===c?a.removeAttribute(b):(e=e.type,c=3===e||4===e&&!0===c?\"\":\"\"+c,d?a.setAttributeNS(d,b,c):a.setAttribute(b,c))))}\nvar ra=aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,sa=60103,ta=60106,ua=60107,wa=60108,xa=60114,ya=60109,za=60110,Aa=60112,Ba=60113,Ca=60120,Da=60115,Ea=60116,Fa=60121,Ga=60128,Ha=60129,Ia=60130,Ja=60131;\nif(\"function\"===typeof Symbol&&Symbol.for){var E=Symbol.for;sa=E(\"react.element\");ta=E(\"react.portal\");ua=E(\"react.fragment\");wa=E(\"react.strict_mode\");xa=E(\"react.profiler\");ya=E(\"react.provider\");za=E(\"react.context\");Aa=E(\"react.forward_ref\");Ba=E(\"react.suspense\");Ca=E(\"react.suspense_list\");Da=E(\"react.memo\");Ea=E(\"react.lazy\");Fa=E(\"react.block\");E(\"react.scope\");Ga=E(\"react.opaque.id\");Ha=E(\"react.debug_trace_mode\");Ia=E(\"react.offscreen\");Ja=E(\"react.legacy_hidden\")}\nvar Ka=\"function\"===typeof Symbol&&Symbol.iterator;function La(a){if(null===a||\"object\"!==typeof a)return null;a=Ka&&a[Ka]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}var Ma;function Na(a){if(void 0===Ma)try{throw Error();}catch(c){var b=c.stack.trim().match(/\\n( *(at )?)/);Ma=b&&b[1]||\"\"}return\"\\n\"+Ma+a}var Oa=!1;\nfunction Pa(a,b){if(!a||Oa)return\"\";Oa=!0;var c=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(b)if(b=function(){throw Error();},Object.defineProperty(b.prototype,\"props\",{set:function(){throw Error();}}),\"object\"===typeof Reflect&&Reflect.construct){try{Reflect.construct(b,[])}catch(k){var d=k}Reflect.construct(a,[],b)}else{try{b.call()}catch(k){d=k}a.call(b.prototype)}else{try{throw Error();}catch(k){d=k}a()}}catch(k){if(k&&d&&\"string\"===typeof k.stack){for(var e=k.stack.split(\"\\n\"),\nf=d.stack.split(\"\\n\"),g=e.length-1,h=f.length-1;1<=g&&0<=h&&e[g]!==f[h];)h--;for(;1<=g&&0<=h;g--,h--)if(e[g]!==f[h]){if(1!==g||1!==h){do if(g--,h--,0>h||e[g]!==f[h])return\"\\n\"+e[g].replace(\" at new \",\" at \");while(1<=g&&0<=h)}break}}}finally{Oa=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Na(a):\"\"}\nfunction Qa(a){switch(a.tag){case 5:return Na(a.type);case 16:return Na(\"Lazy\");case 13:return Na(\"Suspense\");case 19:return Na(\"SuspenseList\");case 0:case 2:case 15:return a=Pa(a.type,!1),a;case 11:return a=Pa(a.type.render,!1),a;case 22:return a=Pa(a.type._render,!1),a;case 1:return a=Pa(a.type,!0),a;default:return\"\"}}\nfunction Ra(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ua:return\"Fragment\";case ta:return\"Portal\";case xa:return\"Profiler\";case wa:return\"StrictMode\";case Ba:return\"Suspense\";case Ca:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case za:return(a.displayName||\"Context\")+\".Consumer\";case ya:return(a._context.displayName||\"Context\")+\".Provider\";case Aa:var b=a.render;b=b.displayName||b.name||\"\";\nreturn a.displayName||(\"\"!==b?\"ForwardRef(\"+b+\")\":\"ForwardRef\");case Da:return Ra(a.type);case Fa:return Ra(a._render);case Ea:b=a._payload;a=a._init;try{return Ra(a(b))}catch(c){}}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"object\":case \"string\":case \"undefined\":return a;default:return\"\"}}function Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return m({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function $a(a,b){b=b.checked;null!=b&&qa(a,\"checked\",b,!1)}\nfunction ab(a,b){$a(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?bb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&bb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction cb(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction bb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}function db(a){var b=\"\";aa.Children.forEach(a,function(a){null!=a&&(b+=a)});return b}function eb(a,b){a=m({children:void 0},b);if(b=db(b.children))a.children=b;return a}\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e<c.length;e++)b[\"$\"+c[e]]=!0;for(c=0;c<a.length;c++)e=b.hasOwnProperty(\"$\"+a[c].value),a[c].selected!==e&&(a[c].selected=e),e&&d&&(a[c].defaultSelected=!0)}else{c=\"\"+Sa(c);b=null;for(e=0;e<a.length;e++){if(a[e].value===c){a[e].selected=!0;d&&(a[e].defaultSelected=!0);return}null!==b||a[e].disabled||(b=a[e])}null!==b&&(b.selected=!0)}}\nfunction gb(a,b){if(null!=b.dangerouslySetInnerHTML)throw Error(y(91));return m({},b,{value:void 0,defaultValue:void 0,children:\"\"+a._wrapperState.initialValue})}function hb(a,b){var c=b.value;if(null==c){c=b.children;b=b.defaultValue;if(null!=c){if(null!=b)throw Error(y(92));if(Array.isArray(c)){if(!(1>=c.length))throw Error(y(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:Sa(c)}}\nfunction ib(a,b){var c=Sa(b.value),d=Sa(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function jb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}var kb={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction lb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function mb(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?lb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar nb,ob=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(a.namespaceURI!==kb.svg||\"innerHTML\"in a)a.innerHTML=b;else{nb=nb||document.createElement(\"div\");nb.innerHTML=\"<svg>\"+b.valueOf().toString()+\"</svg>\";for(b=nb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction pb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar qb={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,\nfloodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},rb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(qb).forEach(function(a){rb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);qb[b]=qb[a]})});function sb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||qb.hasOwnProperty(a)&&qb[a]?(\"\"+b).trim():b+\"px\"}\nfunction tb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=sb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var ub=m({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction vb(a,b){if(b){if(ub[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(y(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(y(60));if(!(\"object\"===typeof b.dangerouslySetInnerHTML&&\"__html\"in b.dangerouslySetInnerHTML))throw Error(y(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(y(62));}}\nfunction wb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(y(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a<b.length;a++)Bb(b[a])}}function Gb(a,b){return a(b)}function Hb(a,b,c,d,e){return a(b,c,d,e)}function Ib(){}var Jb=Gb,Kb=!1,Lb=!1;function Mb(){if(null!==zb||null!==Ab)Ib(),Fb()}\nfunction Nb(a,b,c){if(Lb)return a(b,c);Lb=!0;try{return Jb(a,b,c)}finally{Lb=!1,Mb()}}\nfunction Ob(a,b){var c=a.stateNode;if(null===c)return null;var d=Db(c);if(null===d)return null;c=d[b];a:switch(b){case \"onClick\":case \"onClickCapture\":case \"onDoubleClick\":case \"onDoubleClickCapture\":case \"onMouseDown\":case \"onMouseDownCapture\":case \"onMouseMove\":case \"onMouseMoveCapture\":case \"onMouseUp\":case \"onMouseUpCapture\":case \"onMouseEnter\":(d=!d.disabled)||(a=a.type,d=!(\"button\"===a||\"input\"===a||\"select\"===a||\"textarea\"===a));a=!d;break a;default:a=!1}if(a)return null;if(c&&\"function\"!==\ntypeof c)throw Error(y(231,b,typeof c));return c}var Pb=!1;if(fa)try{var Qb={};Object.defineProperty(Qb,\"passive\",{get:function(){Pb=!0}});window.addEventListener(\"test\",Qb,Qb);window.removeEventListener(\"test\",Qb,Qb)}catch(a){Pb=!1}function Rb(a,b,c,d,e,f,g,h,k){var l=Array.prototype.slice.call(arguments,3);try{b.apply(c,l)}catch(n){this.onError(n)}}var Sb=!1,Tb=null,Ub=!1,Vb=null,Wb={onError:function(a){Sb=!0;Tb=a}};function Xb(a,b,c,d,e,f,g,h,k){Sb=!1;Tb=null;Rb.apply(Wb,arguments)}\nfunction Yb(a,b,c,d,e,f,g,h,k){Xb.apply(this,arguments);if(Sb){if(Sb){var l=Tb;Sb=!1;Tb=null}else throw Error(y(198));Ub||(Ub=!0,Vb=l)}}function Zb(a){var b=a,c=a;if(a.alternate)for(;b.return;)b=b.return;else{a=b;do b=a,0!==(b.flags&1026)&&(c=b.return),a=b.return;while(a)}return 3===b.tag?c:null}function $b(a){if(13===a.tag){var b=a.memoizedState;null===b&&(a=a.alternate,null!==a&&(b=a.memoizedState));if(null!==b)return b.dehydrated}return null}function ac(a){if(Zb(a)!==a)throw Error(y(188));}\nfunction bc(a){var b=a.alternate;if(!b){b=Zb(a);if(null===b)throw Error(y(188));return b!==a?null:a}for(var c=a,d=b;;){var e=c.return;if(null===e)break;var f=e.alternate;if(null===f){d=e.return;if(null!==d){c=d;continue}break}if(e.child===f.child){for(f=e.child;f;){if(f===c)return ac(e),a;if(f===d)return ac(e),b;f=f.sibling}throw Error(y(188));}if(c.return!==d.return)c=e,d=f;else{for(var g=!1,h=e.child;h;){if(h===c){g=!0;c=e;d=f;break}if(h===d){g=!0;d=e;c=f;break}h=h.sibling}if(!g){for(h=f.child;h;){if(h===\nc){g=!0;c=f;d=e;break}if(h===d){g=!0;d=f;c=e;break}h=h.sibling}if(!g)throw Error(y(189));}}if(c.alternate!==d)throw Error(y(190));}if(3!==c.tag)throw Error(y(188));return c.stateNode.current===c?a:b}function cc(a){a=bc(a);if(!a)return null;for(var b=a;;){if(5===b.tag||6===b.tag)return b;if(b.child)b.child.return=b,b=b.child;else{if(b===a)break;for(;!b.sibling;){if(!b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}}return null}\nfunction dc(a,b){for(var c=a.alternate;null!==b;){if(b===a||b===c)return!0;b=b.return}return!1}var ec,fc,gc,hc,ic=!1,jc=[],kc=null,lc=null,mc=null,nc=new Map,oc=new Map,pc=[],qc=\"mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit\".split(\" \");\nfunction rc(a,b,c,d,e){return{blockedOn:a,domEventName:b,eventSystemFlags:c|16,nativeEvent:e,targetContainers:[d]}}function sc(a,b){switch(a){case \"focusin\":case \"focusout\":kc=null;break;case \"dragenter\":case \"dragleave\":lc=null;break;case \"mouseover\":case \"mouseout\":mc=null;break;case \"pointerover\":case \"pointerout\":nc.delete(b.pointerId);break;case \"gotpointercapture\":case \"lostpointercapture\":oc.delete(b.pointerId)}}\nfunction tc(a,b,c,d,e,f){if(null===a||a.nativeEvent!==f)return a=rc(b,c,d,e,f),null!==b&&(b=Cb(b),null!==b&&fc(b)),a;a.eventSystemFlags|=d;b=a.targetContainers;null!==e&&-1===b.indexOf(e)&&b.push(e);return a}\nfunction uc(a,b,c,d,e){switch(b){case \"focusin\":return kc=tc(kc,a,b,c,d,e),!0;case \"dragenter\":return lc=tc(lc,a,b,c,d,e),!0;case \"mouseover\":return mc=tc(mc,a,b,c,d,e),!0;case \"pointerover\":var f=e.pointerId;nc.set(f,tc(nc.get(f)||null,a,b,c,d,e));return!0;case \"gotpointercapture\":return f=e.pointerId,oc.set(f,tc(oc.get(f)||null,a,b,c,d,e)),!0}return!1}\nfunction vc(a){var b=wc(a.target);if(null!==b){var c=Zb(b);if(null!==c)if(b=c.tag,13===b){if(b=$b(c),null!==b){a.blockedOn=b;hc(a.lanePriority,function(){r.unstable_runWithPriority(a.priority,function(){gc(c)})});return}}else if(3===b&&c.stateNode.hydrate){a.blockedOn=3===c.tag?c.stateNode.containerInfo:null;return}}a.blockedOn=null}\nfunction xc(a){if(null!==a.blockedOn)return!1;for(var b=a.targetContainers;0<b.length;){var c=yc(a.domEventName,a.eventSystemFlags,b[0],a.nativeEvent);if(null!==c)return b=Cb(c),null!==b&&fc(b),a.blockedOn=c,!1;b.shift()}return!0}function zc(a,b,c){xc(a)&&c.delete(b)}\nfunction Ac(){for(ic=!1;0<jc.length;){var a=jc[0];if(null!==a.blockedOn){a=Cb(a.blockedOn);null!==a&&ec(a);break}for(var b=a.targetContainers;0<b.length;){var c=yc(a.domEventName,a.eventSystemFlags,b[0],a.nativeEvent);if(null!==c){a.blockedOn=c;break}b.shift()}null===a.blockedOn&&jc.shift()}null!==kc&&xc(kc)&&(kc=null);null!==lc&&xc(lc)&&(lc=null);null!==mc&&xc(mc)&&(mc=null);nc.forEach(zc);oc.forEach(zc)}\nfunction Bc(a,b){a.blockedOn===b&&(a.blockedOn=null,ic||(ic=!0,r.unstable_scheduleCallback(r.unstable_NormalPriority,Ac)))}\nfunction Cc(a){function b(b){return Bc(b,a)}if(0<jc.length){Bc(jc[0],a);for(var c=1;c<jc.length;c++){var d=jc[c];d.blockedOn===a&&(d.blockedOn=null)}}null!==kc&&Bc(kc,a);null!==lc&&Bc(lc,a);null!==mc&&Bc(mc,a);nc.forEach(b);oc.forEach(b);for(c=0;c<pc.length;c++)d=pc[c],d.blockedOn===a&&(d.blockedOn=null);for(;0<pc.length&&(c=pc[0],null===c.blockedOn);)vc(c),null===c.blockedOn&&pc.shift()}\nfunction Dc(a,b){var c={};c[a.toLowerCase()]=b.toLowerCase();c[\"Webkit\"+a]=\"webkit\"+b;c[\"Moz\"+a]=\"moz\"+b;return c}var Ec={animationend:Dc(\"Animation\",\"AnimationEnd\"),animationiteration:Dc(\"Animation\",\"AnimationIteration\"),animationstart:Dc(\"Animation\",\"AnimationStart\"),transitionend:Dc(\"Transition\",\"TransitionEnd\")},Fc={},Gc={};\nfa&&(Gc=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete Ec.animationend.animation,delete Ec.animationiteration.animation,delete Ec.animationstart.animation),\"TransitionEvent\"in window||delete Ec.transitionend.transition);function Hc(a){if(Fc[a])return Fc[a];if(!Ec[a])return a;var b=Ec[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in Gc)return Fc[a]=b[c];return a}\nvar Ic=Hc(\"animationend\"),Jc=Hc(\"animationiteration\"),Kc=Hc(\"animationstart\"),Lc=Hc(\"transitionend\"),Mc=new Map,Nc=new Map,Oc=[\"abort\",\"abort\",Ic,\"animationEnd\",Jc,\"animationIteration\",Kc,\"animationStart\",\"canplay\",\"canPlay\",\"canplaythrough\",\"canPlayThrough\",\"durationchange\",\"durationChange\",\"emptied\",\"emptied\",\"encrypted\",\"encrypted\",\"ended\",\"ended\",\"error\",\"error\",\"gotpointercapture\",\"gotPointerCapture\",\"load\",\"load\",\"loadeddata\",\"loadedData\",\"loadedmetadata\",\"loadedMetadata\",\"loadstart\",\"loadStart\",\n\"lostpointercapture\",\"lostPointerCapture\",\"playing\",\"playing\",\"progress\",\"progress\",\"seeking\",\"seeking\",\"stalled\",\"stalled\",\"suspend\",\"suspend\",\"timeupdate\",\"timeUpdate\",Lc,\"transitionEnd\",\"waiting\",\"waiting\"];function Pc(a,b){for(var c=0;c<a.length;c+=2){var d=a[c],e=a[c+1];e=\"on\"+(e[0].toUpperCase()+e.slice(1));Nc.set(d,b);Mc.set(d,e);da(e,[d])}}var Qc=r.unstable_now;Qc();var F=8;\nfunction Rc(a){if(0!==(1&a))return F=15,1;if(0!==(2&a))return F=14,2;if(0!==(4&a))return F=13,4;var b=24&a;if(0!==b)return F=12,b;if(0!==(a&32))return F=11,32;b=192&a;if(0!==b)return F=10,b;if(0!==(a&256))return F=9,256;b=3584&a;if(0!==b)return F=8,b;if(0!==(a&4096))return F=7,4096;b=4186112&a;if(0!==b)return F=6,b;b=62914560&a;if(0!==b)return F=5,b;if(a&67108864)return F=4,67108864;if(0!==(a&134217728))return F=3,134217728;b=805306368&a;if(0!==b)return F=2,b;if(0!==(1073741824&a))return F=1,1073741824;\nF=8;return a}function Sc(a){switch(a){case 99:return 15;case 98:return 10;case 97:case 96:return 8;case 95:return 2;default:return 0}}function Tc(a){switch(a){case 15:case 14:return 99;case 13:case 12:case 11:case 10:return 98;case 9:case 8:case 7:case 6:case 4:case 5:return 97;case 3:case 2:case 1:return 95;case 0:return 90;default:throw Error(y(358,a));}}\nfunction Uc(a,b){var c=a.pendingLanes;if(0===c)return F=0;var d=0,e=0,f=a.expiredLanes,g=a.suspendedLanes,h=a.pingedLanes;if(0!==f)d=f,e=F=15;else if(f=c&134217727,0!==f){var k=f&~g;0!==k?(d=Rc(k),e=F):(h&=f,0!==h&&(d=Rc(h),e=F))}else f=c&~g,0!==f?(d=Rc(f),e=F):0!==h&&(d=Rc(h),e=F);if(0===d)return 0;d=31-Vc(d);d=c&((0>d?0:1<<d)<<1)-1;if(0!==b&&b!==d&&0===(b&g)){Rc(b);if(e<=F)return b;F=e}b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0<b;)c=31-Vc(b),e=1<<c,d|=a[c],b&=~e;return d}\nfunction Wc(a){a=a.pendingLanes&-1073741825;return 0!==a?a:a&1073741824?1073741824:0}function Xc(a,b){switch(a){case 15:return 1;case 14:return 2;case 12:return a=Yc(24&~b),0===a?Xc(10,b):a;case 10:return a=Yc(192&~b),0===a?Xc(8,b):a;case 8:return a=Yc(3584&~b),0===a&&(a=Yc(4186112&~b),0===a&&(a=512)),a;case 2:return b=Yc(805306368&~b),0===b&&(b=268435456),b}throw Error(y(358,a));}function Yc(a){return a&-a}function Zc(a){for(var b=[],c=0;31>c;c++)b.push(a);return b}\nfunction $c(a,b,c){a.pendingLanes|=b;var d=b-1;a.suspendedLanes&=d;a.pingedLanes&=d;a=a.eventTimes;b=31-Vc(b);a[b]=c}var Vc=Math.clz32?Math.clz32:ad,bd=Math.log,cd=Math.LN2;function ad(a){return 0===a?32:31-(bd(a)/cd|0)|0}var dd=r.unstable_UserBlockingPriority,ed=r.unstable_runWithPriority,fd=!0;function gd(a,b,c,d){Kb||Ib();var e=hd,f=Kb;Kb=!0;try{Hb(e,a,b,c,d)}finally{(Kb=f)||Mb()}}function id(a,b,c,d){ed(dd,hd.bind(null,a,b,c,d))}\nfunction hd(a,b,c,d){if(fd){var e;if((e=0===(b&4))&&0<jc.length&&-1<qc.indexOf(a))a=rc(null,a,b,c,d),jc.push(a);else{var f=yc(a,b,c,d);if(null===f)e&&sc(a,d);else{if(e){if(-1<qc.indexOf(a)){a=rc(f,a,b,c,d);jc.push(a);return}if(uc(f,a,b,c,d))return;sc(a,d)}jd(a,b,d,null,c)}}}}\nfunction yc(a,b,c,d){var e=xb(d);e=wc(e);if(null!==e){var f=Zb(e);if(null===f)e=null;else{var g=f.tag;if(13===g){e=$b(f);if(null!==e)return e;e=null}else if(3===g){if(f.stateNode.hydrate)return 3===f.tag?f.stateNode.containerInfo:null;e=null}else f!==e&&(e=null)}}jd(a,b,d,e,c);return null}var kd=null,ld=null,md=null;\nfunction nd(){if(md)return md;var a,b=ld,c=b.length,d,e=\"value\"in kd?kd.value:kd.textContent,f=e.length;for(a=0;a<c&&b[a]===e[a];a++);var g=c-a;for(d=1;d<=g&&b[c-d]===e[f-d];d++);return md=e.slice(a,1<d?1-d:void 0)}function od(a){var b=a.keyCode;\"charCode\"in a?(a=a.charCode,0===a&&13===b&&(a=13)):a=b;10===a&&(a=13);return 32<=a||13===a?a:0}function pd(){return!0}function qd(){return!1}\nfunction rd(a){function b(b,d,e,f,g){this._reactName=b;this._targetInst=e;this.type=d;this.nativeEvent=f;this.target=g;this.currentTarget=null;for(var c in a)a.hasOwnProperty(c)&&(b=a[c],this[c]=b?b(f):f[c]);this.isDefaultPrevented=(null!=f.defaultPrevented?f.defaultPrevented:!1===f.returnValue)?pd:qd;this.isPropagationStopped=qd;return this}m(b.prototype,{preventDefault:function(){this.defaultPrevented=!0;var a=this.nativeEvent;a&&(a.preventDefault?a.preventDefault():\"unknown\"!==typeof a.returnValue&&\n(a.returnValue=!1),this.isDefaultPrevented=pd)},stopPropagation:function(){var a=this.nativeEvent;a&&(a.stopPropagation?a.stopPropagation():\"unknown\"!==typeof a.cancelBubble&&(a.cancelBubble=!0),this.isPropagationStopped=pd)},persist:function(){},isPersistent:pd});return b}\nvar sd={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(a){return a.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},td=rd(sd),ud=m({},sd,{view:0,detail:0}),vd=rd(ud),wd,xd,yd,Ad=m({},ud,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:zd,button:0,buttons:0,relatedTarget:function(a){return void 0===a.relatedTarget?a.fromElement===a.srcElement?a.toElement:a.fromElement:a.relatedTarget},movementX:function(a){if(\"movementX\"in\na)return a.movementX;a!==yd&&(yd&&\"mousemove\"===a.type?(wd=a.screenX-yd.screenX,xd=a.screenY-yd.screenY):xd=wd=0,yd=a);return wd},movementY:function(a){return\"movementY\"in a?a.movementY:xd}}),Bd=rd(Ad),Cd=m({},Ad,{dataTransfer:0}),Dd=rd(Cd),Ed=m({},ud,{relatedTarget:0}),Fd=rd(Ed),Gd=m({},sd,{animationName:0,elapsedTime:0,pseudoElement:0}),Hd=rd(Gd),Id=m({},sd,{clipboardData:function(a){return\"clipboardData\"in a?a.clipboardData:window.clipboardData}}),Jd=rd(Id),Kd=m({},sd,{data:0}),Ld=rd(Kd),Md={Esc:\"Escape\",\nSpacebar:\" \",Left:\"ArrowLeft\",Up:\"ArrowUp\",Right:\"ArrowRight\",Down:\"ArrowDown\",Del:\"Delete\",Win:\"OS\",Menu:\"ContextMenu\",Apps:\"ContextMenu\",Scroll:\"ScrollLock\",MozPrintableKey:\"Unidentified\"},Nd={8:\"Backspace\",9:\"Tab\",12:\"Clear\",13:\"Enter\",16:\"Shift\",17:\"Control\",18:\"Alt\",19:\"Pause\",20:\"CapsLock\",27:\"Escape\",32:\" \",33:\"PageUp\",34:\"PageDown\",35:\"End\",36:\"Home\",37:\"ArrowLeft\",38:\"ArrowUp\",39:\"ArrowRight\",40:\"ArrowDown\",45:\"Insert\",46:\"Delete\",112:\"F1\",113:\"F2\",114:\"F3\",115:\"F4\",116:\"F5\",117:\"F6\",118:\"F7\",\n119:\"F8\",120:\"F9\",121:\"F10\",122:\"F11\",123:\"F12\",144:\"NumLock\",145:\"ScrollLock\",224:\"Meta\"},Od={Alt:\"altKey\",Control:\"ctrlKey\",Meta:\"metaKey\",Shift:\"shiftKey\"};function Pd(a){var b=this.nativeEvent;return b.getModifierState?b.getModifierState(a):(a=Od[a])?!!b[a]:!1}function zd(){return Pd}\nvar Qd=m({},ud,{key:function(a){if(a.key){var b=Md[a.key]||a.key;if(\"Unidentified\"!==b)return b}return\"keypress\"===a.type?(a=od(a),13===a?\"Enter\":String.fromCharCode(a)):\"keydown\"===a.type||\"keyup\"===a.type?Nd[a.keyCode]||\"Unidentified\":\"\"},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:zd,charCode:function(a){return\"keypress\"===a.type?od(a):0},keyCode:function(a){return\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0},which:function(a){return\"keypress\"===\na.type?od(a):\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0}}),Rd=rd(Qd),Sd=m({},Ad,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Td=rd(Sd),Ud=m({},ud,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:zd}),Vd=rd(Ud),Wd=m({},sd,{propertyName:0,elapsedTime:0,pseudoElement:0}),Xd=rd(Wd),Yd=m({},Ad,{deltaX:function(a){return\"deltaX\"in a?a.deltaX:\"wheelDeltaX\"in a?-a.wheelDeltaX:0},\ndeltaY:function(a){return\"deltaY\"in a?a.deltaY:\"wheelDeltaY\"in a?-a.wheelDeltaY:\"wheelDelta\"in a?-a.wheelDelta:0},deltaZ:0,deltaMode:0}),Zd=rd(Yd),$d=[9,13,27,32],ae=fa&&\"CompositionEvent\"in window,be=null;fa&&\"documentMode\"in document&&(be=document.documentMode);var ce=fa&&\"TextEvent\"in window&&!be,de=fa&&(!ae||be&&8<be&&11>=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1<b.char.length)return b.char;if(b.which)return String.fromCharCode(b.which)}return null;case \"compositionend\":return de&&\"ko\"!==b.locale?null:b.data;default:return null}}\nvar le={color:!0,date:!0,datetime:!0,\"datetime-local\":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function me(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return\"input\"===b?!!le[a.type]:\"textarea\"===b?!0:!1}function ne(a,b,c,d){Eb(d);b=oe(b,\"onChange\");0<b.length&&(c=new td(\"onChange\",\"change\",null,c,d),a.push({event:c,listeners:b}))}var pe=null,qe=null;function re(a){se(a,0)}function te(a){var b=ue(a);if(Wa(b))return a}\nfunction ve(a,b){if(\"change\"===a)return b}var we=!1;if(fa){var xe;if(fa){var ye=\"oninput\"in document;if(!ye){var ze=document.createElement(\"div\");ze.setAttribute(\"oninput\",\"return;\");ye=\"function\"===typeof ze.oninput}xe=ye}else xe=!1;we=xe&&(!document.documentMode||9<document.documentMode)}function Ae(){pe&&(pe.detachEvent(\"onpropertychange\",Be),qe=pe=null)}function Be(a){if(\"value\"===a.propertyName&&te(qe)){var b=[];ne(b,qe,a,xb(a));a=re;if(Kb)a(b);else{Kb=!0;try{Gb(a,b)}finally{Kb=!1,Mb()}}}}\nfunction Ce(a,b,c){\"focusin\"===a?(Ae(),pe=b,qe=c,pe.attachEvent(\"onpropertychange\",Be)):\"focusout\"===a&&Ae()}function De(a){if(\"selectionchange\"===a||\"keyup\"===a||\"keydown\"===a)return te(qe)}function Ee(a,b){if(\"click\"===a)return te(b)}function Fe(a,b){if(\"input\"===a||\"change\"===a)return te(b)}function Ge(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var He=\"function\"===typeof Object.is?Object.is:Ge,Ie=Object.prototype.hasOwnProperty;\nfunction Je(a,b){if(He(a,b))return!0;if(\"object\"!==typeof a||null===a||\"object\"!==typeof b||null===b)return!1;var c=Object.keys(a),d=Object.keys(b);if(c.length!==d.length)return!1;for(d=0;d<c.length;d++)if(!Ie.call(b,c[d])||!He(a[c[d]],b[c[d]]))return!1;return!0}function Ke(a){for(;a&&a.firstChild;)a=a.firstChild;return a}\nfunction Le(a,b){var c=Ke(a);a=0;for(var d;c;){if(3===c.nodeType){d=a+c.textContent.length;if(a<=b&&d>=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Ke(c)}}function Me(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Me(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Ne(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Oe(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nvar Pe=fa&&\"documentMode\"in document&&11>=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Oe(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Je(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0<d.length&&(b=new td(\"onSelect\",\"select\",null,b,c),a.push({event:b,listeners:d}),b.target=Qe)))}\nPc(\"cancel cancel click click close close contextmenu contextMenu copy copy cut cut auxclick auxClick dblclick doubleClick dragend dragEnd dragstart dragStart drop drop focusin focus focusout blur input input invalid invalid keydown keyDown keypress keyPress keyup keyUp mousedown mouseDown mouseup mouseUp paste paste pause pause play play pointercancel pointerCancel pointerdown pointerDown pointerup pointerUp ratechange rateChange reset reset seeked seeked submit submit touchcancel touchCancel touchend touchEnd touchstart touchStart volumechange volumeChange\".split(\" \"),\n0);Pc(\"drag drag dragenter dragEnter dragexit dragExit dragleave dragLeave dragover dragOver mousemove mouseMove mouseout mouseOut mouseover mouseOver pointermove pointerMove pointerout pointerOut pointerover pointerOver scroll scroll toggle toggle touchmove touchMove wheel wheel\".split(\" \"),1);Pc(Oc,2);for(var Ve=\"change selectionchange textInput compositionstart compositionend compositionupdate\".split(\" \"),We=0;We<Ve.length;We++)Nc.set(Ve[We],0);ea(\"onMouseEnter\",[\"mouseout\",\"mouseover\"]);\nea(\"onMouseLeave\",[\"mouseout\",\"mouseover\"]);ea(\"onPointerEnter\",[\"pointerout\",\"pointerover\"]);ea(\"onPointerLeave\",[\"pointerout\",\"pointerover\"]);da(\"onChange\",\"change click focusin focusout input keydown keyup selectionchange\".split(\" \"));da(\"onSelect\",\"focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange\".split(\" \"));da(\"onBeforeInput\",[\"compositionend\",\"keypress\",\"textInput\",\"paste\"]);da(\"onCompositionEnd\",\"compositionend focusout keydown keypress keyup mousedown\".split(\" \"));\nda(\"onCompositionStart\",\"compositionstart focusout keydown keypress keyup mousedown\".split(\" \"));da(\"onCompositionUpdate\",\"compositionupdate focusout keydown keypress keyup mousedown\".split(\" \"));var Xe=\"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting\".split(\" \"),Ye=new Set(\"cancel close invalid load scroll toggle\".split(\" \").concat(Xe));\nfunction Ze(a,b,c){var d=a.type||\"unknown-event\";a.currentTarget=c;Yb(d,b,void 0,a);a.currentTarget=null}\nfunction se(a,b){b=0!==(b&4);for(var c=0;c<a.length;c++){var d=a[c],e=d.event;d=d.listeners;a:{var f=void 0;if(b)for(var g=d.length-1;0<=g;g--){var h=d[g],k=h.instance,l=h.currentTarget;h=h.listener;if(k!==f&&e.isPropagationStopped())break a;Ze(e,h,l);f=k}else for(g=0;g<d.length;g++){h=d[g];k=h.instance;l=h.currentTarget;h=h.listener;if(k!==f&&e.isPropagationStopped())break a;Ze(e,h,l);f=k}}}if(Ub)throw a=Vb,Ub=!1,Vb=null,a;}\nfunction G(a,b){var c=$e(b),d=a+\"__bubble\";c.has(d)||(af(b,a,2,!1),c.add(d))}var bf=\"_reactListening\"+Math.random().toString(36).slice(2);function cf(a){a[bf]||(a[bf]=!0,ba.forEach(function(b){Ye.has(b)||df(b,!1,a,null);df(b,!0,a,null)}))}\nfunction df(a,b,c,d){var e=4<arguments.length&&void 0!==arguments[4]?arguments[4]:0,f=c;\"selectionchange\"===a&&9!==c.nodeType&&(f=c.ownerDocument);if(null!==d&&!b&&Ye.has(a)){if(\"scroll\"!==a)return;e|=2;f=d}var g=$e(f),h=a+\"__\"+(b?\"capture\":\"bubble\");g.has(h)||(b&&(e|=4),af(f,a,e,b),g.add(h))}\nfunction af(a,b,c,d){var e=Nc.get(b);switch(void 0===e?2:e){case 0:e=gd;break;case 1:e=id;break;default:e=hd}c=e.bind(null,b,c,a);e=void 0;!Pb||\"touchstart\"!==b&&\"touchmove\"!==b&&\"wheel\"!==b||(e=!0);d?void 0!==e?a.addEventListener(b,c,{capture:!0,passive:e}):a.addEventListener(b,c,!0):void 0!==e?a.addEventListener(b,c,{passive:e}):a.addEventListener(b,c,!1)}\nfunction jd(a,b,c,d,e){var f=d;if(0===(b&1)&&0===(b&2)&&null!==d)a:for(;;){if(null===d)return;var g=d.tag;if(3===g||4===g){var h=d.stateNode.containerInfo;if(h===e||8===h.nodeType&&h.parentNode===e)break;if(4===g)for(g=d.return;null!==g;){var k=g.tag;if(3===k||4===k)if(k=g.stateNode.containerInfo,k===e||8===k.nodeType&&k.parentNode===e)return;g=g.return}for(;null!==h;){g=wc(h);if(null===g)return;k=g.tag;if(5===k||6===k){d=f=g;continue a}h=h.parentNode}}d=d.return}Nb(function(){var d=f,e=xb(c),g=[];\na:{var h=Mc.get(a);if(void 0!==h){var k=td,x=a;switch(a){case \"keypress\":if(0===od(c))break a;case \"keydown\":case \"keyup\":k=Rd;break;case \"focusin\":x=\"focus\";k=Fd;break;case \"focusout\":x=\"blur\";k=Fd;break;case \"beforeblur\":case \"afterblur\":k=Fd;break;case \"click\":if(2===c.button)break a;case \"auxclick\":case \"dblclick\":case \"mousedown\":case \"mousemove\":case \"mouseup\":case \"mouseout\":case \"mouseover\":case \"contextmenu\":k=Bd;break;case \"drag\":case \"dragend\":case \"dragenter\":case \"dragexit\":case \"dragleave\":case \"dragover\":case \"dragstart\":case \"drop\":k=\nDd;break;case \"touchcancel\":case \"touchend\":case \"touchmove\":case \"touchstart\":k=Vd;break;case Ic:case Jc:case Kc:k=Hd;break;case Lc:k=Xd;break;case \"scroll\":k=vd;break;case \"wheel\":k=Zd;break;case \"copy\":case \"cut\":case \"paste\":k=Jd;break;case \"gotpointercapture\":case \"lostpointercapture\":case \"pointercancel\":case \"pointerdown\":case \"pointermove\":case \"pointerout\":case \"pointerover\":case \"pointerup\":k=Td}var w=0!==(b&4),z=!w&&\"scroll\"===a,u=w?null!==h?h+\"Capture\":null:h;w=[];for(var t=d,q;null!==\nt;){q=t;var v=q.stateNode;5===q.tag&&null!==v&&(q=v,null!==u&&(v=Ob(t,u),null!=v&&w.push(ef(t,v,q))));if(z)break;t=t.return}0<w.length&&(h=new k(h,x,null,c,e),g.push({event:h,listeners:w}))}}if(0===(b&7)){a:{h=\"mouseover\"===a||\"pointerover\"===a;k=\"mouseout\"===a||\"pointerout\"===a;if(h&&0===(b&16)&&(x=c.relatedTarget||c.fromElement)&&(wc(x)||x[ff]))break a;if(k||h){h=e.window===e?e:(h=e.ownerDocument)?h.defaultView||h.parentWindow:window;if(k){if(x=c.relatedTarget||c.toElement,k=d,x=x?wc(x):null,null!==\nx&&(z=Zb(x),x!==z||5!==x.tag&&6!==x.tag))x=null}else k=null,x=d;if(k!==x){w=Bd;v=\"onMouseLeave\";u=\"onMouseEnter\";t=\"mouse\";if(\"pointerout\"===a||\"pointerover\"===a)w=Td,v=\"onPointerLeave\",u=\"onPointerEnter\",t=\"pointer\";z=null==k?h:ue(k);q=null==x?h:ue(x);h=new w(v,t+\"leave\",k,c,e);h.target=z;h.relatedTarget=q;v=null;wc(e)===d&&(w=new w(u,t+\"enter\",x,c,e),w.target=q,w.relatedTarget=z,v=w);z=v;if(k&&x)b:{w=k;u=x;t=0;for(q=w;q;q=gf(q))t++;q=0;for(v=u;v;v=gf(v))q++;for(;0<t-q;)w=gf(w),t--;for(;0<q-t;)u=\ngf(u),q--;for(;t--;){if(w===u||null!==u&&w===u.alternate)break b;w=gf(w);u=gf(u)}w=null}else w=null;null!==k&&hf(g,h,k,w,!1);null!==x&&null!==z&&hf(g,z,x,w,!0)}}}a:{h=d?ue(d):window;k=h.nodeName&&h.nodeName.toLowerCase();if(\"select\"===k||\"input\"===k&&\"file\"===h.type)var J=ve;else if(me(h))if(we)J=Fe;else{J=De;var K=Ce}else(k=h.nodeName)&&\"input\"===k.toLowerCase()&&(\"checkbox\"===h.type||\"radio\"===h.type)&&(J=Ee);if(J&&(J=J(a,d))){ne(g,J,c,e);break a}K&&K(a,h,d);\"focusout\"===a&&(K=h._wrapperState)&&\nK.controlled&&\"number\"===h.type&&bb(h,\"number\",h.value)}K=d?ue(d):window;switch(a){case \"focusin\":if(me(K)||\"true\"===K.contentEditable)Qe=K,Re=d,Se=null;break;case \"focusout\":Se=Re=Qe=null;break;case \"mousedown\":Te=!0;break;case \"contextmenu\":case \"mouseup\":case \"dragend\":Te=!1;Ue(g,c,e);break;case \"selectionchange\":if(Pe)break;case \"keydown\":case \"keyup\":Ue(g,c,e)}var Q;if(ae)b:{switch(a){case \"compositionstart\":var L=\"onCompositionStart\";break b;case \"compositionend\":L=\"onCompositionEnd\";break b;\ncase \"compositionupdate\":L=\"onCompositionUpdate\";break b}L=void 0}else ie?ge(a,c)&&(L=\"onCompositionEnd\"):\"keydown\"===a&&229===c.keyCode&&(L=\"onCompositionStart\");L&&(de&&\"ko\"!==c.locale&&(ie||\"onCompositionStart\"!==L?\"onCompositionEnd\"===L&&ie&&(Q=nd()):(kd=e,ld=\"value\"in kd?kd.value:kd.textContent,ie=!0)),K=oe(d,L),0<K.length&&(L=new Ld(L,a,null,c,e),g.push({event:L,listeners:K}),Q?L.data=Q:(Q=he(c),null!==Q&&(L.data=Q))));if(Q=ce?je(a,c):ke(a,c))d=oe(d,\"onBeforeInput\"),0<d.length&&(e=new Ld(\"onBeforeInput\",\n\"beforeinput\",null,c,e),g.push({event:e,listeners:d}),e.data=Q)}se(g,b)})}function ef(a,b,c){return{instance:a,listener:b,currentTarget:c}}function oe(a,b){for(var c=b+\"Capture\",d=[];null!==a;){var e=a,f=e.stateNode;5===e.tag&&null!==f&&(e=f,f=Ob(a,c),null!=f&&d.unshift(ef(a,f,e)),f=Ob(a,b),null!=f&&d.push(ef(a,f,e)));a=a.return}return d}function gf(a){if(null===a)return null;do a=a.return;while(a&&5!==a.tag);return a?a:null}\nfunction hf(a,b,c,d,e){for(var f=b._reactName,g=[];null!==c&&c!==d;){var h=c,k=h.alternate,l=h.stateNode;if(null!==k&&k===d)break;5===h.tag&&null!==l&&(h=l,e?(k=Ob(c,f),null!=k&&g.unshift(ef(c,k,h))):e||(k=Ob(c,f),null!=k&&g.push(ef(c,k,h))));c=c.return}0!==g.length&&a.push({event:b,listeners:g})}function jf(){}var kf=null,lf=null;function mf(a,b){switch(a){case \"button\":case \"input\":case \"select\":case \"textarea\":return!!b.autoFocus}return!1}\nfunction nf(a,b){return\"textarea\"===a||\"option\"===a||\"noscript\"===a||\"string\"===typeof b.children||\"number\"===typeof b.children||\"object\"===typeof b.dangerouslySetInnerHTML&&null!==b.dangerouslySetInnerHTML&&null!=b.dangerouslySetInnerHTML.__html}var of=\"function\"===typeof setTimeout?setTimeout:void 0,pf=\"function\"===typeof clearTimeout?clearTimeout:void 0;function qf(a){1===a.nodeType?a.textContent=\"\":9===a.nodeType&&(a=a.body,null!=a&&(a.textContent=\"\"))}\nfunction rf(a){for(;null!=a;a=a.nextSibling){var b=a.nodeType;if(1===b||3===b)break}return a}function sf(a){a=a.previousSibling;for(var b=0;a;){if(8===a.nodeType){var c=a.data;if(\"$\"===c||\"$!\"===c||\"$?\"===c){if(0===b)return a;b--}else\"/$\"===c&&b++}a=a.previousSibling}return null}var tf=0;function uf(a){return{$$typeof:Ga,toString:a,valueOf:a}}var vf=Math.random().toString(36).slice(2),wf=\"__reactFiber$\"+vf,xf=\"__reactProps$\"+vf,ff=\"__reactContainer$\"+vf,yf=\"__reactEvents$\"+vf;\nfunction wc(a){var b=a[wf];if(b)return b;for(var c=a.parentNode;c;){if(b=c[ff]||c[wf]){c=b.alternate;if(null!==b.child||null!==c&&null!==c.child)for(a=sf(a);null!==a;){if(c=a[wf])return c;a=sf(a)}return b}a=c;c=a.parentNode}return null}function Cb(a){a=a[wf]||a[ff];return!a||5!==a.tag&&6!==a.tag&&13!==a.tag&&3!==a.tag?null:a}function ue(a){if(5===a.tag||6===a.tag)return a.stateNode;throw Error(y(33));}function Db(a){return a[xf]||null}\nfunction $e(a){var b=a[yf];void 0===b&&(b=a[yf]=new Set);return b}var zf=[],Af=-1;function Bf(a){return{current:a}}function H(a){0>Af||(a.current=zf[Af],zf[Af]=null,Af--)}function I(a,b){Af++;zf[Af]=a.current;a.current=b}var Cf={},M=Bf(Cf),N=Bf(!1),Df=Cf;\nfunction Ef(a,b){var c=a.type.contextTypes;if(!c)return Cf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}function Ff(a){a=a.childContextTypes;return null!==a&&void 0!==a}function Gf(){H(N);H(M)}function Hf(a,b,c){if(M.current!==Cf)throw Error(y(168));I(M,b);I(N,c)}\nfunction If(a,b,c){var d=a.stateNode;a=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in a))throw Error(y(108,Ra(b)||\"Unknown\",e));return m({},c,d)}function Jf(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Cf;Df=M.current;I(M,a);I(N,N.current);return!0}function Kf(a,b,c){var d=a.stateNode;if(!d)throw Error(y(169));c?(a=If(a,b,Df),d.__reactInternalMemoizedMergedChildContext=a,H(N),H(M),I(M,a)):H(N);I(N,c)}\nvar Lf=null,Mf=null,Nf=r.unstable_runWithPriority,Of=r.unstable_scheduleCallback,Pf=r.unstable_cancelCallback,Qf=r.unstable_shouldYield,Rf=r.unstable_requestPaint,Sf=r.unstable_now,Tf=r.unstable_getCurrentPriorityLevel,Uf=r.unstable_ImmediatePriority,Vf=r.unstable_UserBlockingPriority,Wf=r.unstable_NormalPriority,Xf=r.unstable_LowPriority,Yf=r.unstable_IdlePriority,Zf={},$f=void 0!==Rf?Rf:function(){},ag=null,bg=null,cg=!1,dg=Sf(),O=1E4>dg?Sf:function(){return Sf()-dg};\nfunction eg(){switch(Tf()){case Uf:return 99;case Vf:return 98;case Wf:return 97;case Xf:return 96;case Yf:return 95;default:throw Error(y(332));}}function fg(a){switch(a){case 99:return Uf;case 98:return Vf;case 97:return Wf;case 96:return Xf;case 95:return Yf;default:throw Error(y(332));}}function gg(a,b){a=fg(a);return Nf(a,b)}function hg(a,b,c){a=fg(a);return Of(a,b,c)}function ig(){if(null!==bg){var a=bg;bg=null;Pf(a)}jg()}\nfunction jg(){if(!cg&&null!==ag){cg=!0;var a=0;try{var b=ag;gg(99,function(){for(;a<b.length;a++){var c=b[a];do c=c(!0);while(null!==c)}});ag=null}catch(c){throw null!==ag&&(ag=ag.slice(a+1)),Of(Uf,ig),c;}finally{cg=!1}}}var kg=ra.ReactCurrentBatchConfig;function lg(a,b){if(a&&a.defaultProps){b=m({},b);a=a.defaultProps;for(var c in a)void 0===b[c]&&(b[c]=a[c]);return b}return b}var mg=Bf(null),ng=null,og=null,pg=null;function qg(){pg=og=ng=null}\nfunction rg(a){var b=mg.current;H(mg);a.type._context._currentValue=b}function sg(a,b){for(;null!==a;){var c=a.alternate;if((a.childLanes&b)===b)if(null===c||(c.childLanes&b)===b)break;else c.childLanes|=b;else a.childLanes|=b,null!==c&&(c.childLanes|=b);a=a.return}}function tg(a,b){ng=a;pg=og=null;a=a.dependencies;null!==a&&null!==a.firstContext&&(0!==(a.lanes&b)&&(ug=!0),a.firstContext=null)}\nfunction vg(a,b){if(pg!==a&&!1!==b&&0!==b){if(\"number\"!==typeof b||1073741823===b)pg=a,b=1073741823;b={context:a,observedBits:b,next:null};if(null===og){if(null===ng)throw Error(y(308));og=b;ng.dependencies={lanes:0,firstContext:b,responders:null}}else og=og.next=b}return a._currentValue}var wg=!1;function xg(a){a.updateQueue={baseState:a.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null},effects:null}}\nfunction yg(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,firstBaseUpdate:a.firstBaseUpdate,lastBaseUpdate:a.lastBaseUpdate,shared:a.shared,effects:a.effects})}function zg(a,b){return{eventTime:a,lane:b,tag:0,payload:null,callback:null,next:null}}function Ag(a,b){a=a.updateQueue;if(null!==a){a=a.shared;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}}\nfunction Bg(a,b){var c=a.updateQueue,d=a.alternate;if(null!==d&&(d=d.updateQueue,c===d)){var e=null,f=null;c=c.firstBaseUpdate;if(null!==c){do{var g={eventTime:c.eventTime,lane:c.lane,tag:c.tag,payload:c.payload,callback:c.callback,next:null};null===f?e=f=g:f=f.next=g;c=c.next}while(null!==c);null===f?e=f=b:f=f.next=b}else e=f=b;c={baseState:d.baseState,firstBaseUpdate:e,lastBaseUpdate:f,shared:d.shared,effects:d.effects};a.updateQueue=c;return}a=c.lastBaseUpdate;null===a?c.firstBaseUpdate=b:a.next=\nb;c.lastBaseUpdate=b}\nfunction Cg(a,b,c,d){var e=a.updateQueue;wg=!1;var f=e.firstBaseUpdate,g=e.lastBaseUpdate,h=e.shared.pending;if(null!==h){e.shared.pending=null;var k=h,l=k.next;k.next=null;null===g?f=l:g.next=l;g=k;var n=a.alternate;if(null!==n){n=n.updateQueue;var A=n.lastBaseUpdate;A!==g&&(null===A?n.firstBaseUpdate=l:A.next=l,n.lastBaseUpdate=k)}}if(null!==f){A=e.baseState;g=0;n=l=k=null;do{h=f.lane;var p=f.eventTime;if((d&h)===h){null!==n&&(n=n.next={eventTime:p,lane:0,tag:f.tag,payload:f.payload,callback:f.callback,\nnext:null});a:{var C=a,x=f;h=b;p=c;switch(x.tag){case 1:C=x.payload;if(\"function\"===typeof C){A=C.call(p,A,h);break a}A=C;break a;case 3:C.flags=C.flags&-4097|64;case 0:C=x.payload;h=\"function\"===typeof C?C.call(p,A,h):C;if(null===h||void 0===h)break a;A=m({},A,h);break a;case 2:wg=!0}}null!==f.callback&&(a.flags|=32,h=e.effects,null===h?e.effects=[f]:h.push(f))}else p={eventTime:p,lane:h,tag:f.tag,payload:f.payload,callback:f.callback,next:null},null===n?(l=n=p,k=A):n=n.next=p,g|=h;f=f.next;if(null===\nf)if(h=e.shared.pending,null===h)break;else f=h.next,h.next=null,e.lastBaseUpdate=h,e.shared.pending=null}while(1);null===n&&(k=A);e.baseState=k;e.firstBaseUpdate=l;e.lastBaseUpdate=n;Dg|=g;a.lanes=g;a.memoizedState=A}}function Eg(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;b<a.length;b++){var d=a[b],e=d.callback;if(null!==e){d.callback=null;d=c;if(\"function\"!==typeof e)throw Error(y(191,e));e.call(d)}}}var Fg=(new aa.Component).refs;\nfunction Gg(a,b,c,d){b=a.memoizedState;c=c(d,b);c=null===c||void 0===c?b:m({},b,c);a.memoizedState=c;0===a.lanes&&(a.updateQueue.baseState=c)}\nvar Kg={isMounted:function(a){return(a=a._reactInternals)?Zb(a)===a:!1},enqueueSetState:function(a,b,c){a=a._reactInternals;var d=Hg(),e=Ig(a),f=zg(d,e);f.payload=b;void 0!==c&&null!==c&&(f.callback=c);Ag(a,f);Jg(a,e,d)},enqueueReplaceState:function(a,b,c){a=a._reactInternals;var d=Hg(),e=Ig(a),f=zg(d,e);f.tag=1;f.payload=b;void 0!==c&&null!==c&&(f.callback=c);Ag(a,f);Jg(a,e,d)},enqueueForceUpdate:function(a,b){a=a._reactInternals;var c=Hg(),d=Ig(a),e=zg(c,d);e.tag=2;void 0!==b&&null!==b&&(e.callback=\nb);Ag(a,e);Jg(a,d,c)}};function Lg(a,b,c,d,e,f,g){a=a.stateNode;return\"function\"===typeof a.shouldComponentUpdate?a.shouldComponentUpdate(d,f,g):b.prototype&&b.prototype.isPureReactComponent?!Je(c,d)||!Je(e,f):!0}\nfunction Mg(a,b,c){var d=!1,e=Cf;var f=b.contextType;\"object\"===typeof f&&null!==f?f=vg(f):(e=Ff(b)?Df:M.current,d=b.contextTypes,f=(d=null!==d&&void 0!==d)?Ef(a,e):Cf);b=new b(c,f);a.memoizedState=null!==b.state&&void 0!==b.state?b.state:null;b.updater=Kg;a.stateNode=b;b._reactInternals=a;d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=e,a.__reactInternalMemoizedMaskedChildContext=f);return b}\nfunction Ng(a,b,c,d){a=b.state;\"function\"===typeof b.componentWillReceiveProps&&b.componentWillReceiveProps(c,d);\"function\"===typeof b.UNSAFE_componentWillReceiveProps&&b.UNSAFE_componentWillReceiveProps(c,d);b.state!==a&&Kg.enqueueReplaceState(b,b.state,null)}\nfunction Og(a,b,c,d){var e=a.stateNode;e.props=c;e.state=a.memoizedState;e.refs=Fg;xg(a);var f=b.contextType;\"object\"===typeof f&&null!==f?e.context=vg(f):(f=Ff(b)?Df:M.current,e.context=Ef(a,f));Cg(a,c,e,d);e.state=a.memoizedState;f=b.getDerivedStateFromProps;\"function\"===typeof f&&(Gg(a,b,f,c),e.state=a.memoizedState);\"function\"===typeof b.getDerivedStateFromProps||\"function\"===typeof e.getSnapshotBeforeUpdate||\"function\"!==typeof e.UNSAFE_componentWillMount&&\"function\"!==typeof e.componentWillMount||\n(b=e.state,\"function\"===typeof e.componentWillMount&&e.componentWillMount(),\"function\"===typeof e.UNSAFE_componentWillMount&&e.UNSAFE_componentWillMount(),b!==e.state&&Kg.enqueueReplaceState(e,e.state,null),Cg(a,c,e,d),e.state=a.memoizedState);\"function\"===typeof e.componentDidMount&&(a.flags|=4)}var Pg=Array.isArray;\nfunction Qg(a,b,c){a=c.ref;if(null!==a&&\"function\"!==typeof a&&\"object\"!==typeof a){if(c._owner){c=c._owner;if(c){if(1!==c.tag)throw Error(y(309));var d=c.stateNode}if(!d)throw Error(y(147,a));var e=\"\"+a;if(null!==b&&null!==b.ref&&\"function\"===typeof b.ref&&b.ref._stringRef===e)return b.ref;b=function(a){var b=d.refs;b===Fg&&(b=d.refs={});null===a?delete b[e]:b[e]=a};b._stringRef=e;return b}if(\"string\"!==typeof a)throw Error(y(284));if(!c._owner)throw Error(y(290,a));}return a}\nfunction Rg(a,b){if(\"textarea\"!==a.type)throw Error(y(31,\"[object Object]\"===Object.prototype.toString.call(b)?\"object with keys {\"+Object.keys(b).join(\", \")+\"}\":b));}\nfunction Sg(a){function b(b,c){if(a){var d=b.lastEffect;null!==d?(d.nextEffect=c,b.lastEffect=c):b.firstEffect=b.lastEffect=c;c.nextEffect=null;c.flags=8}}function c(c,d){if(!a)return null;for(;null!==d;)b(c,d),d=d.sibling;return null}function d(a,b){for(a=new Map;null!==b;)null!==b.key?a.set(b.key,b):a.set(b.index,b),b=b.sibling;return a}function e(a,b){a=Tg(a,b);a.index=0;a.sibling=null;return a}function f(b,c,d){b.index=d;if(!a)return c;d=b.alternate;if(null!==d)return d=d.index,d<c?(b.flags=2,\nc):d;b.flags=2;return c}function g(b){a&&null===b.alternate&&(b.flags=2);return b}function h(a,b,c,d){if(null===b||6!==b.tag)return b=Ug(c,a.mode,d),b.return=a,b;b=e(b,c);b.return=a;return b}function k(a,b,c,d){if(null!==b&&b.elementType===c.type)return d=e(b,c.props),d.ref=Qg(a,b,c),d.return=a,d;d=Vg(c.type,c.key,c.props,null,a.mode,d);d.ref=Qg(a,b,c);d.return=a;return d}function l(a,b,c,d){if(null===b||4!==b.tag||b.stateNode.containerInfo!==c.containerInfo||b.stateNode.implementation!==c.implementation)return b=\nWg(c,a.mode,d),b.return=a,b;b=e(b,c.children||[]);b.return=a;return b}function n(a,b,c,d,f){if(null===b||7!==b.tag)return b=Xg(c,a.mode,d,f),b.return=a,b;b=e(b,c);b.return=a;return b}function A(a,b,c){if(\"string\"===typeof b||\"number\"===typeof b)return b=Ug(\"\"+b,a.mode,c),b.return=a,b;if(\"object\"===typeof b&&null!==b){switch(b.$$typeof){case sa:return c=Vg(b.type,b.key,b.props,null,a.mode,c),c.ref=Qg(a,null,b),c.return=a,c;case ta:return b=Wg(b,a.mode,c),b.return=a,b}if(Pg(b)||La(b))return b=Xg(b,\na.mode,c,null),b.return=a,b;Rg(a,b)}return null}function p(a,b,c,d){var e=null!==b?b.key:null;if(\"string\"===typeof c||\"number\"===typeof c)return null!==e?null:h(a,b,\"\"+c,d);if(\"object\"===typeof c&&null!==c){switch(c.$$typeof){case sa:return c.key===e?c.type===ua?n(a,b,c.props.children,d,e):k(a,b,c,d):null;case ta:return c.key===e?l(a,b,c,d):null}if(Pg(c)||La(c))return null!==e?null:n(a,b,c,d,null);Rg(a,c)}return null}function C(a,b,c,d,e){if(\"string\"===typeof d||\"number\"===typeof d)return a=a.get(c)||\nnull,h(b,a,\"\"+d,e);if(\"object\"===typeof d&&null!==d){switch(d.$$typeof){case sa:return a=a.get(null===d.key?c:d.key)||null,d.type===ua?n(b,a,d.props.children,e,d.key):k(b,a,d,e);case ta:return a=a.get(null===d.key?c:d.key)||null,l(b,a,d,e)}if(Pg(d)||La(d))return a=a.get(c)||null,n(b,a,d,e,null);Rg(b,d)}return null}function x(e,g,h,k){for(var l=null,t=null,u=g,z=g=0,q=null;null!==u&&z<h.length;z++){u.index>z?(q=u,u=null):q=u.sibling;var n=p(e,u,h[z],k);if(null===n){null===u&&(u=q);break}a&&u&&null===\nn.alternate&&b(e,u);g=f(n,g,z);null===t?l=n:t.sibling=n;t=n;u=q}if(z===h.length)return c(e,u),l;if(null===u){for(;z<h.length;z++)u=A(e,h[z],k),null!==u&&(g=f(u,g,z),null===t?l=u:t.sibling=u,t=u);return l}for(u=d(e,u);z<h.length;z++)q=C(u,e,z,h[z],k),null!==q&&(a&&null!==q.alternate&&u.delete(null===q.key?z:q.key),g=f(q,g,z),null===t?l=q:t.sibling=q,t=q);a&&u.forEach(function(a){return b(e,a)});return l}function w(e,g,h,k){var l=La(h);if(\"function\"!==typeof l)throw Error(y(150));h=l.call(h);if(null==\nh)throw Error(y(151));for(var t=l=null,u=g,z=g=0,q=null,n=h.next();null!==u&&!n.done;z++,n=h.next()){u.index>z?(q=u,u=null):q=u.sibling;var w=p(e,u,n.value,k);if(null===w){null===u&&(u=q);break}a&&u&&null===w.alternate&&b(e,u);g=f(w,g,z);null===t?l=w:t.sibling=w;t=w;u=q}if(n.done)return c(e,u),l;if(null===u){for(;!n.done;z++,n=h.next())n=A(e,n.value,k),null!==n&&(g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);return l}for(u=d(e,u);!n.done;z++,n=h.next())n=C(u,e,z,n.value,k),null!==n&&(a&&null!==n.alternate&&\nu.delete(null===n.key?z:n.key),g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);a&&u.forEach(function(a){return b(e,a)});return l}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===ua&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case sa:a:{l=f.key;for(k=d;null!==k;){if(k.key===l){switch(k.tag){case 7:if(f.type===ua){c(a,k.sibling);d=e(k,f.props.children);d.return=a;a=d;break a}break;default:if(k.elementType===f.type){c(a,k.sibling);\nd=e(k,f.props);d.ref=Qg(a,k,f);d.return=a;a=d;break a}}c(a,k);break}else b(a,k);k=k.sibling}f.type===ua?(d=Xg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Vg(f.type,f.key,f.props,null,a.mode,h),h.ref=Qg(a,d,f),h.return=a,a=h)}return g(a);case ta:a:{for(k=f.key;null!==d;){if(d.key===k)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=\nWg(f,a.mode,h);d.return=a;a=d}return g(a)}if(\"string\"===typeof f||\"number\"===typeof f)return f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):(c(a,d),d=Ug(f,a.mode,h),d.return=a,a=d),g(a);if(Pg(f))return x(a,d,f,h);if(La(f))return w(a,d,f,h);l&&Rg(a,f);if(\"undefined\"===typeof f&&!k)switch(a.tag){case 1:case 22:case 0:case 11:case 15:throw Error(y(152,Ra(a.type)||\"Component\"));}return c(a,d)}}var Yg=Sg(!0),Zg=Sg(!1),$g={},ah=Bf($g),bh=Bf($g),ch=Bf($g);\nfunction dh(a){if(a===$g)throw Error(y(174));return a}function eh(a,b){I(ch,b);I(bh,a);I(ah,$g);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:mb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=mb(b,a)}H(ah);I(ah,b)}function fh(){H(ah);H(bh);H(ch)}function gh(a){dh(ch.current);var b=dh(ah.current);var c=mb(b,a.type);b!==c&&(I(bh,a),I(ah,c))}function hh(a){bh.current===a&&(H(ah),H(bh))}var P=Bf(0);\nfunction ih(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&64))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var jh=null,kh=null,lh=!1;\nfunction mh(a,b){var c=nh(5,null,null,0);c.elementType=\"DELETED\";c.type=\"DELETED\";c.stateNode=b;c.return=a;c.flags=8;null!==a.lastEffect?(a.lastEffect.nextEffect=c,a.lastEffect=c):a.firstEffect=a.lastEffect=c}function oh(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,!0):!1;case 13:return!1;default:return!1}}\nfunction ph(a){if(lh){var b=kh;if(b){var c=b;if(!oh(a,b)){b=rf(c.nextSibling);if(!b||!oh(a,b)){a.flags=a.flags&-1025|2;lh=!1;jh=a;return}mh(jh,c)}jh=a;kh=rf(b.firstChild)}else a.flags=a.flags&-1025|2,lh=!1,jh=a}}function qh(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;jh=a}\nfunction rh(a){if(a!==jh)return!1;if(!lh)return qh(a),lh=!0,!1;var b=a.type;if(5!==a.tag||\"head\"!==b&&\"body\"!==b&&!nf(b,a.memoizedProps))for(b=kh;b;)mh(a,b),b=rf(b.nextSibling);qh(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(y(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(\"/$\"===c){if(0===b){kh=rf(a.nextSibling);break a}b--}else\"$\"!==c&&\"$!\"!==c&&\"$?\"!==c||b++}a=a.nextSibling}kh=null}}else kh=jh?rf(a.stateNode.nextSibling):null;return!0}\nfunction sh(){kh=jh=null;lh=!1}var th=[];function uh(){for(var a=0;a<th.length;a++)th[a]._workInProgressVersionPrimary=null;th.length=0}var vh=ra.ReactCurrentDispatcher,wh=ra.ReactCurrentBatchConfig,xh=0,R=null,S=null,T=null,yh=!1,zh=!1;function Ah(){throw Error(y(321));}function Bh(a,b){if(null===b)return!1;for(var c=0;c<b.length&&c<a.length;c++)if(!He(a[c],b[c]))return!1;return!0}\nfunction Ch(a,b,c,d,e,f){xh=f;R=b;b.memoizedState=null;b.updateQueue=null;b.lanes=0;vh.current=null===a||null===a.memoizedState?Dh:Eh;a=c(d,e);if(zh){f=0;do{zh=!1;if(!(25>f))throw Error(y(301));f+=1;T=S=null;b.updateQueue=null;vh.current=Fh;a=c(d,e)}while(zh)}vh.current=Gh;b=null!==S&&null!==S.next;xh=0;T=S=R=null;yh=!1;if(b)throw Error(y(300));return a}function Hh(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===T?R.memoizedState=T=a:T=T.next=a;return T}\nfunction Ih(){if(null===S){var a=R.alternate;a=null!==a?a.memoizedState:null}else a=S.next;var b=null===T?R.memoizedState:T.next;if(null!==b)T=b,S=a;else{if(null===a)throw Error(y(310));S=a;a={memoizedState:S.memoizedState,baseState:S.baseState,baseQueue:S.baseQueue,queue:S.queue,next:null};null===T?R.memoizedState=T=a:T=T.next=a}return T}function Jh(a,b){return\"function\"===typeof b?b(a):b}\nfunction Kh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=S,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){e=e.next;d=d.baseState;var h=g=f=null,k=e;do{var l=k.lane;if((xh&l)===l)null!==h&&(h=h.next={lane:0,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null}),d=k.eagerReducer===a?k.eagerState:a(d,k.action);else{var n={lane:l,action:k.action,eagerReducer:k.eagerReducer,\neagerState:k.eagerState,next:null};null===h?(g=h=n,f=d):h=h.next=n;R.lanes|=l;Dg|=l}k=k.next}while(null!==k&&k!==e);null===h?f=d:h.next=g;He(d,b.memoizedState)||(ug=!0);b.memoizedState=d;b.baseState=f;b.baseQueue=h;c.lastRenderedState=d}return[b.memoizedState,c.dispatch]}\nfunction Lh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);He(f,b.memoizedState)||(ug=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}\nfunction Mh(a,b,c){var d=b._getVersion;d=d(b._source);var e=b._workInProgressVersionPrimary;if(null!==e)a=e===d;else if(a=a.mutableReadLanes,a=(xh&a)===a)b._workInProgressVersionPrimary=d,th.push(b);if(a)return c(b._source);th.push(b);throw Error(y(350));}\nfunction Nh(a,b,c,d){var e=U;if(null===e)throw Error(y(349));var f=b._getVersion,g=f(b._source),h=vh.current,k=h.useState(function(){return Mh(e,b,c)}),l=k[1],n=k[0];k=T;var A=a.memoizedState,p=A.refs,C=p.getSnapshot,x=A.source;A=A.subscribe;var w=R;a.memoizedState={refs:p,source:b,subscribe:d};h.useEffect(function(){p.getSnapshot=c;p.setSnapshot=l;var a=f(b._source);if(!He(g,a)){a=c(b._source);He(n,a)||(l(a),a=Ig(w),e.mutableReadLanes|=a&e.pendingLanes);a=e.mutableReadLanes;e.entangledLanes|=a;for(var d=\ne.entanglements,h=a;0<h;){var k=31-Vc(h),v=1<<k;d[k]|=a;h&=~v}}},[c,b,d]);h.useEffect(function(){return d(b._source,function(){var a=p.getSnapshot,c=p.setSnapshot;try{c(a(b._source));var d=Ig(w);e.mutableReadLanes|=d&e.pendingLanes}catch(q){c(function(){throw q;})}})},[b,d]);He(C,c)&&He(x,b)&&He(A,d)||(a={pending:null,dispatch:null,lastRenderedReducer:Jh,lastRenderedState:n},a.dispatch=l=Oh.bind(null,R,a),k.queue=a,k.baseQueue=null,n=Mh(e,b,c),k.memoizedState=k.baseState=n);return n}\nfunction Ph(a,b,c){var d=Ih();return Nh(d,a,b,c)}function Qh(a){var b=Hh();\"function\"===typeof a&&(a=a());b.memoizedState=b.baseState=a;a=b.queue={pending:null,dispatch:null,lastRenderedReducer:Jh,lastRenderedState:a};a=a.dispatch=Oh.bind(null,R,a);return[b.memoizedState,a]}\nfunction Rh(a,b,c,d){a={tag:a,create:b,destroy:c,deps:d,next:null};b=R.updateQueue;null===b?(b={lastEffect:null},R.updateQueue=b,b.lastEffect=a.next=a):(c=b.lastEffect,null===c?b.lastEffect=a.next=a:(d=c.next,c.next=a,a.next=d,b.lastEffect=a));return a}function Sh(a){var b=Hh();a={current:a};return b.memoizedState=a}function Th(){return Ih().memoizedState}function Uh(a,b,c,d){var e=Hh();R.flags|=a;e.memoizedState=Rh(1|b,c,void 0,void 0===d?null:d)}\nfunction Vh(a,b,c,d){var e=Ih();d=void 0===d?null:d;var f=void 0;if(null!==S){var g=S.memoizedState;f=g.destroy;if(null!==d&&Bh(d,g.deps)){Rh(b,c,f,d);return}}R.flags|=a;e.memoizedState=Rh(1|b,c,f,d)}function Wh(a,b){return Uh(516,4,a,b)}function Xh(a,b){return Vh(516,4,a,b)}function Yh(a,b){return Vh(4,2,a,b)}function Zh(a,b){if(\"function\"===typeof b)return a=a(),b(a),function(){b(null)};if(null!==b&&void 0!==b)return a=a(),b.current=a,function(){b.current=null}}\nfunction $h(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return Vh(4,2,Zh.bind(null,b,a),c)}function ai(){}function bi(a,b){var c=Ih();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Bh(b,d[1]))return d[0];c.memoizedState=[a,b];return a}function ci(a,b){var c=Ih();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Bh(b,d[1]))return d[0];a=a();c.memoizedState=[a,b];return a}\nfunction di(a,b){var c=eg();gg(98>c?98:c,function(){a(!0)});gg(97<c?97:c,function(){var c=wh.transition;wh.transition=1;try{a(!1),b()}finally{wh.transition=c}})}\nfunction Oh(a,b,c){var d=Hg(),e=Ig(a),f={lane:e,action:c,eagerReducer:null,eagerState:null,next:null},g=b.pending;null===g?f.next=f:(f.next=g.next,g.next=f);b.pending=f;g=a.alternate;if(a===R||null!==g&&g===R)zh=yh=!0;else{if(0===a.lanes&&(null===g||0===g.lanes)&&(g=b.lastRenderedReducer,null!==g))try{var h=b.lastRenderedState,k=g(h,c);f.eagerReducer=g;f.eagerState=k;if(He(k,h))return}catch(l){}finally{}Jg(a,e,d)}}\nvar Gh={readContext:vg,useCallback:Ah,useContext:Ah,useEffect:Ah,useImperativeHandle:Ah,useLayoutEffect:Ah,useMemo:Ah,useReducer:Ah,useRef:Ah,useState:Ah,useDebugValue:Ah,useDeferredValue:Ah,useTransition:Ah,useMutableSource:Ah,useOpaqueIdentifier:Ah,unstable_isNewReconciler:!1},Dh={readContext:vg,useCallback:function(a,b){Hh().memoizedState=[a,void 0===b?null:b];return a},useContext:vg,useEffect:Wh,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return Uh(4,2,Zh.bind(null,\nb,a),c)},useLayoutEffect:function(a,b){return Uh(4,2,a,b)},useMemo:function(a,b){var c=Hh();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=Hh();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a=d.queue={pending:null,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};a=a.dispatch=Oh.bind(null,R,a);return[d.memoizedState,a]},useRef:Sh,useState:Qh,useDebugValue:ai,useDeferredValue:function(a){var b=Qh(a),c=b[0],d=b[1];Wh(function(){var b=wh.transition;\nwh.transition=1;try{d(a)}finally{wh.transition=b}},[a]);return c},useTransition:function(){var a=Qh(!1),b=a[0];a=di.bind(null,a[1]);Sh(a);return[a,b]},useMutableSource:function(a,b,c){var d=Hh();d.memoizedState={refs:{getSnapshot:b,setSnapshot:null},source:a,subscribe:c};return Nh(d,a,b,c)},useOpaqueIdentifier:function(){if(lh){var a=!1,b=uf(function(){a||(a=!0,c(\"r:\"+(tf++).toString(36)));throw Error(y(355));}),c=Qh(b)[1];0===(R.mode&2)&&(R.flags|=516,Rh(5,function(){c(\"r:\"+(tf++).toString(36))},\nvoid 0,null));return b}b=\"r:\"+(tf++).toString(36);Qh(b);return b},unstable_isNewReconciler:!1},Eh={readContext:vg,useCallback:bi,useContext:vg,useEffect:Xh,useImperativeHandle:$h,useLayoutEffect:Yh,useMemo:ci,useReducer:Kh,useRef:Th,useState:function(){return Kh(Jh)},useDebugValue:ai,useDeferredValue:function(a){var b=Kh(Jh),c=b[0],d=b[1];Xh(function(){var b=wh.transition;wh.transition=1;try{d(a)}finally{wh.transition=b}},[a]);return c},useTransition:function(){var a=Kh(Jh)[0];return[Th().current,\na]},useMutableSource:Ph,useOpaqueIdentifier:function(){return Kh(Jh)[0]},unstable_isNewReconciler:!1},Fh={readContext:vg,useCallback:bi,useContext:vg,useEffect:Xh,useImperativeHandle:$h,useLayoutEffect:Yh,useMemo:ci,useReducer:Lh,useRef:Th,useState:function(){return Lh(Jh)},useDebugValue:ai,useDeferredValue:function(a){var b=Lh(Jh),c=b[0],d=b[1];Xh(function(){var b=wh.transition;wh.transition=1;try{d(a)}finally{wh.transition=b}},[a]);return c},useTransition:function(){var a=Lh(Jh)[0];return[Th().current,\na]},useMutableSource:Ph,useOpaqueIdentifier:function(){return Lh(Jh)[0]},unstable_isNewReconciler:!1},ei=ra.ReactCurrentOwner,ug=!1;function fi(a,b,c,d){b.child=null===a?Zg(b,null,c,d):Yg(b,a.child,c,d)}function gi(a,b,c,d,e){c=c.render;var f=b.ref;tg(b,e);d=Ch(a,b,c,d,f,e);if(null!==a&&!ug)return b.updateQueue=a.updateQueue,b.flags&=-517,a.lanes&=~e,hi(a,b,e);b.flags|=1;fi(a,b,d,e);return b.child}\nfunction ii(a,b,c,d,e,f){if(null===a){var g=c.type;if(\"function\"===typeof g&&!ji(g)&&void 0===g.defaultProps&&null===c.compare&&void 0===c.defaultProps)return b.tag=15,b.type=g,ki(a,b,g,d,e,f);a=Vg(c.type,null,d,b,b.mode,f);a.ref=b.ref;a.return=b;return b.child=a}g=a.child;if(0===(e&f)&&(e=g.memoizedProps,c=c.compare,c=null!==c?c:Je,c(e,d)&&a.ref===b.ref))return hi(a,b,f);b.flags|=1;a=Tg(g,d);a.ref=b.ref;a.return=b;return b.child=a}\nfunction ki(a,b,c,d,e,f){if(null!==a&&Je(a.memoizedProps,d)&&a.ref===b.ref)if(ug=!1,0!==(f&e))0!==(a.flags&16384)&&(ug=!0);else return b.lanes=a.lanes,hi(a,b,f);return li(a,b,c,d,f)}\nfunction mi(a,b,c){var d=b.pendingProps,e=d.children,f=null!==a?a.memoizedState:null;if(\"hidden\"===d.mode||\"unstable-defer-without-hiding\"===d.mode)if(0===(b.mode&4))b.memoizedState={baseLanes:0},ni(b,c);else if(0!==(c&1073741824))b.memoizedState={baseLanes:0},ni(b,null!==f?f.baseLanes:c);else return a=null!==f?f.baseLanes|c:c,b.lanes=b.childLanes=1073741824,b.memoizedState={baseLanes:a},ni(b,a),null;else null!==f?(d=f.baseLanes|c,b.memoizedState=null):d=c,ni(b,d);fi(a,b,e,c);return b.child}\nfunction oi(a,b){var c=b.ref;if(null===a&&null!==c||null!==a&&a.ref!==c)b.flags|=128}function li(a,b,c,d,e){var f=Ff(c)?Df:M.current;f=Ef(b,f);tg(b,e);c=Ch(a,b,c,d,f,e);if(null!==a&&!ug)return b.updateQueue=a.updateQueue,b.flags&=-517,a.lanes&=~e,hi(a,b,e);b.flags|=1;fi(a,b,c,e);return b.child}\nfunction pi(a,b,c,d,e){if(Ff(c)){var f=!0;Jf(b)}else f=!1;tg(b,e);if(null===b.stateNode)null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2),Mg(b,c,d),Og(b,c,d,e),d=!0;else if(null===a){var g=b.stateNode,h=b.memoizedProps;g.props=h;var k=g.context,l=c.contextType;\"object\"===typeof l&&null!==l?l=vg(l):(l=Ff(c)?Df:M.current,l=Ef(b,l));var n=c.getDerivedStateFromProps,A=\"function\"===typeof n||\"function\"===typeof g.getSnapshotBeforeUpdate;A||\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\n\"function\"!==typeof g.componentWillReceiveProps||(h!==d||k!==l)&&Ng(b,g,d,l);wg=!1;var p=b.memoizedState;g.state=p;Cg(b,d,g,e);k=b.memoizedState;h!==d||p!==k||N.current||wg?(\"function\"===typeof n&&(Gg(b,c,n,d),k=b.memoizedState),(h=wg||Lg(b,c,h,d,p,k,l))?(A||\"function\"!==typeof g.UNSAFE_componentWillMount&&\"function\"!==typeof g.componentWillMount||(\"function\"===typeof g.componentWillMount&&g.componentWillMount(),\"function\"===typeof g.UNSAFE_componentWillMount&&g.UNSAFE_componentWillMount()),\"function\"===\ntypeof g.componentDidMount&&(b.flags|=4)):(\"function\"===typeof g.componentDidMount&&(b.flags|=4),b.memoizedProps=d,b.memoizedState=k),g.props=d,g.state=k,g.context=l,d=h):(\"function\"===typeof g.componentDidMount&&(b.flags|=4),d=!1)}else{g=b.stateNode;yg(a,b);h=b.memoizedProps;l=b.type===b.elementType?h:lg(b.type,h);g.props=l;A=b.pendingProps;p=g.context;k=c.contextType;\"object\"===typeof k&&null!==k?k=vg(k):(k=Ff(c)?Df:M.current,k=Ef(b,k));var C=c.getDerivedStateFromProps;(n=\"function\"===typeof C||\n\"function\"===typeof g.getSnapshotBeforeUpdate)||\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\"function\"!==typeof g.componentWillReceiveProps||(h!==A||p!==k)&&Ng(b,g,d,k);wg=!1;p=b.memoizedState;g.state=p;Cg(b,d,g,e);var x=b.memoizedState;h!==A||p!==x||N.current||wg?(\"function\"===typeof C&&(Gg(b,c,C,d),x=b.memoizedState),(l=wg||Lg(b,c,l,d,p,x,k))?(n||\"function\"!==typeof g.UNSAFE_componentWillUpdate&&\"function\"!==typeof g.componentWillUpdate||(\"function\"===typeof g.componentWillUpdate&&g.componentWillUpdate(d,\nx,k),\"function\"===typeof g.UNSAFE_componentWillUpdate&&g.UNSAFE_componentWillUpdate(d,x,k)),\"function\"===typeof g.componentDidUpdate&&(b.flags|=4),\"function\"===typeof g.getSnapshotBeforeUpdate&&(b.flags|=256)):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&p===a.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&p===a.memoizedState||(b.flags|=256),b.memoizedProps=d,b.memoizedState=x),g.props=d,g.state=x,g.context=k,d=l):(\"function\"!==typeof g.componentDidUpdate||\nh===a.memoizedProps&&p===a.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&p===a.memoizedState||(b.flags|=256),d=!1)}return qi(a,b,c,d,f,e)}\nfunction qi(a,b,c,d,e,f){oi(a,b);var g=0!==(b.flags&64);if(!d&&!g)return e&&Kf(b,c,!1),hi(a,b,f);d=b.stateNode;ei.current=b;var h=g&&\"function\"!==typeof c.getDerivedStateFromError?null:d.render();b.flags|=1;null!==a&&g?(b.child=Yg(b,a.child,null,f),b.child=Yg(b,null,h,f)):fi(a,b,h,f);b.memoizedState=d.state;e&&Kf(b,c,!0);return b.child}function ri(a){var b=a.stateNode;b.pendingContext?Hf(a,b.pendingContext,b.pendingContext!==b.context):b.context&&Hf(a,b.context,!1);eh(a,b.containerInfo)}\nvar si={dehydrated:null,retryLane:0};\nfunction ti(a,b,c){var d=b.pendingProps,e=P.current,f=!1,g;(g=0!==(b.flags&64))||(g=null!==a&&null===a.memoizedState?!1:0!==(e&2));g?(f=!0,b.flags&=-65):null!==a&&null===a.memoizedState||void 0===d.fallback||!0===d.unstable_avoidThisFallback||(e|=1);I(P,e&1);if(null===a){void 0!==d.fallback&&ph(b);a=d.children;e=d.fallback;if(f)return a=ui(b,a,e,c),b.child.memoizedState={baseLanes:c},b.memoizedState=si,a;if(\"number\"===typeof d.unstable_expectedLoadTime)return a=ui(b,a,e,c),b.child.memoizedState={baseLanes:c},\nb.memoizedState=si,b.lanes=33554432,a;c=vi({mode:\"visible\",children:a},b.mode,c,null);c.return=b;return b.child=c}if(null!==a.memoizedState){if(f)return d=wi(a,b,d.children,d.fallback,c),f=b.child,e=a.child.memoizedState,f.memoizedState=null===e?{baseLanes:c}:{baseLanes:e.baseLanes|c},f.childLanes=a.childLanes&~c,b.memoizedState=si,d;c=xi(a,b,d.children,c);b.memoizedState=null;return c}if(f)return d=wi(a,b,d.children,d.fallback,c),f=b.child,e=a.child.memoizedState,f.memoizedState=null===e?{baseLanes:c}:\n{baseLanes:e.baseLanes|c},f.childLanes=a.childLanes&~c,b.memoizedState=si,d;c=xi(a,b,d.children,c);b.memoizedState=null;return c}function ui(a,b,c,d){var e=a.mode,f=a.child;b={mode:\"hidden\",children:b};0===(e&2)&&null!==f?(f.childLanes=0,f.pendingProps=b):f=vi(b,e,0,null);c=Xg(c,e,d,null);f.return=a;c.return=a;f.sibling=c;a.child=f;return c}\nfunction xi(a,b,c,d){var e=a.child;a=e.sibling;c=Tg(e,{mode:\"visible\",children:c});0===(b.mode&2)&&(c.lanes=d);c.return=b;c.sibling=null;null!==a&&(a.nextEffect=null,a.flags=8,b.firstEffect=b.lastEffect=a);return b.child=c}\nfunction wi(a,b,c,d,e){var f=b.mode,g=a.child;a=g.sibling;var h={mode:\"hidden\",children:c};0===(f&2)&&b.child!==g?(c=b.child,c.childLanes=0,c.pendingProps=h,g=c.lastEffect,null!==g?(b.firstEffect=c.firstEffect,b.lastEffect=g,g.nextEffect=null):b.firstEffect=b.lastEffect=null):c=Tg(g,h);null!==a?d=Tg(a,d):(d=Xg(d,f,e,null),d.flags|=2);d.return=b;c.return=b;c.sibling=d;b.child=c;return d}function yi(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);sg(a.return,b)}\nfunction zi(a,b,c,d,e,f){var g=a.memoizedState;null===g?a.memoizedState={isBackwards:b,rendering:null,renderingStartTime:0,last:d,tail:c,tailMode:e,lastEffect:f}:(g.isBackwards=b,g.rendering=null,g.renderingStartTime=0,g.last=d,g.tail=c,g.tailMode=e,g.lastEffect=f)}\nfunction Ai(a,b,c){var d=b.pendingProps,e=d.revealOrder,f=d.tail;fi(a,b,d.children,c);d=P.current;if(0!==(d&2))d=d&1|2,b.flags|=64;else{if(null!==a&&0!==(a.flags&64))a:for(a=b.child;null!==a;){if(13===a.tag)null!==a.memoizedState&&yi(a,c);else if(19===a.tag)yi(a,c);else if(null!==a.child){a.child.return=a;a=a.child;continue}if(a===b)break a;for(;null===a.sibling;){if(null===a.return||a.return===b)break a;a=a.return}a.sibling.return=a.return;a=a.sibling}d&=1}I(P,d);if(0===(b.mode&2))b.memoizedState=\nnull;else switch(e){case \"forwards\":c=b.child;for(e=null;null!==c;)a=c.alternate,null!==a&&null===ih(a)&&(e=c),c=c.sibling;c=e;null===c?(e=b.child,b.child=null):(e=c.sibling,c.sibling=null);zi(b,!1,e,c,f,b.lastEffect);break;case \"backwards\":c=null;e=b.child;for(b.child=null;null!==e;){a=e.alternate;if(null!==a&&null===ih(a)){b.child=e;break}a=e.sibling;e.sibling=c;c=e;e=a}zi(b,!0,c,null,f,b.lastEffect);break;case \"together\":zi(b,!1,null,null,void 0,b.lastEffect);break;default:b.memoizedState=null}return b.child}\nfunction hi(a,b,c){null!==a&&(b.dependencies=a.dependencies);Dg|=b.lanes;if(0!==(c&b.childLanes)){if(null!==a&&b.child!==a.child)throw Error(y(153));if(null!==b.child){a=b.child;c=Tg(a,a.pendingProps);b.child=c;for(c.return=b;null!==a.sibling;)a=a.sibling,c=c.sibling=Tg(a,a.pendingProps),c.return=b;c.sibling=null}return b.child}return null}var Bi,Ci,Di,Ei;\nBi=function(a,b){for(var c=b.child;null!==c;){if(5===c.tag||6===c.tag)a.appendChild(c.stateNode);else if(4!==c.tag&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return}c.sibling.return=c.return;c=c.sibling}};Ci=function(){};\nDi=function(a,b,c,d){var e=a.memoizedProps;if(e!==d){a=b.stateNode;dh(ah.current);var f=null;switch(c){case \"input\":e=Ya(a,e);d=Ya(a,d);f=[];break;case \"option\":e=eb(a,e);d=eb(a,d);f=[];break;case \"select\":e=m({},e,{value:void 0});d=m({},d,{value:void 0});f=[];break;case \"textarea\":e=gb(a,e);d=gb(a,d);f=[];break;default:\"function\"!==typeof e.onClick&&\"function\"===typeof d.onClick&&(a.onclick=jf)}vb(c,d);var g;c=null;for(l in e)if(!d.hasOwnProperty(l)&&e.hasOwnProperty(l)&&null!=e[l])if(\"style\"===\nl){var h=e[l];for(g in h)h.hasOwnProperty(g)&&(c||(c={}),c[g]=\"\")}else\"dangerouslySetInnerHTML\"!==l&&\"children\"!==l&&\"suppressContentEditableWarning\"!==l&&\"suppressHydrationWarning\"!==l&&\"autoFocus\"!==l&&(ca.hasOwnProperty(l)?f||(f=[]):(f=f||[]).push(l,null));for(l in d){var k=d[l];h=null!=e?e[l]:void 0;if(d.hasOwnProperty(l)&&k!==h&&(null!=k||null!=h))if(\"style\"===l)if(h){for(g in h)!h.hasOwnProperty(g)||k&&k.hasOwnProperty(g)||(c||(c={}),c[g]=\"\");for(g in k)k.hasOwnProperty(g)&&h[g]!==k[g]&&(c||\n(c={}),c[g]=k[g])}else c||(f||(f=[]),f.push(l,c)),c=k;else\"dangerouslySetInnerHTML\"===l?(k=k?k.__html:void 0,h=h?h.__html:void 0,null!=k&&h!==k&&(f=f||[]).push(l,k)):\"children\"===l?\"string\"!==typeof k&&\"number\"!==typeof k||(f=f||[]).push(l,\"\"+k):\"suppressContentEditableWarning\"!==l&&\"suppressHydrationWarning\"!==l&&(ca.hasOwnProperty(l)?(null!=k&&\"onScroll\"===l&&G(\"scroll\",a),f||h===k||(f=[])):\"object\"===typeof k&&null!==k&&k.$$typeof===Ga?k.toString():(f=f||[]).push(l,k))}c&&(f=f||[]).push(\"style\",\nc);var l=f;if(b.updateQueue=l)b.flags|=4}};Ei=function(a,b,c,d){c!==d&&(b.flags|=4)};function Fi(a,b){if(!lh)switch(a.tailMode){case \"hidden\":b=a.tail;for(var c=null;null!==b;)null!==b.alternate&&(c=b),b=b.sibling;null===c?a.tail=null:c.sibling=null;break;case \"collapsed\":c=a.tail;for(var d=null;null!==c;)null!==c.alternate&&(d=c),c=c.sibling;null===d?b||null===a.tail?a.tail=null:a.tail.sibling=null:d.sibling=null}}\nfunction Gi(a,b,c){var d=b.pendingProps;switch(b.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return null;case 1:return Ff(b.type)&&Gf(),null;case 3:fh();H(N);H(M);uh();d=b.stateNode;d.pendingContext&&(d.context=d.pendingContext,d.pendingContext=null);if(null===a||null===a.child)rh(b)?b.flags|=4:d.hydrate||(b.flags|=256);Ci(b);return null;case 5:hh(b);var e=dh(ch.current);c=b.type;if(null!==a&&null!=b.stateNode)Di(a,b,c,d,e),a.ref!==b.ref&&(b.flags|=128);else{if(!d){if(null===\nb.stateNode)throw Error(y(166));return null}a=dh(ah.current);if(rh(b)){d=b.stateNode;c=b.type;var f=b.memoizedProps;d[wf]=b;d[xf]=f;switch(c){case \"dialog\":G(\"cancel\",d);G(\"close\",d);break;case \"iframe\":case \"object\":case \"embed\":G(\"load\",d);break;case \"video\":case \"audio\":for(a=0;a<Xe.length;a++)G(Xe[a],d);break;case \"source\":G(\"error\",d);break;case \"img\":case \"image\":case \"link\":G(\"error\",d);G(\"load\",d);break;case \"details\":G(\"toggle\",d);break;case \"input\":Za(d,f);G(\"invalid\",d);break;case \"select\":d._wrapperState=\n{wasMultiple:!!f.multiple};G(\"invalid\",d);break;case \"textarea\":hb(d,f),G(\"invalid\",d)}vb(c,f);a=null;for(var g in f)f.hasOwnProperty(g)&&(e=f[g],\"children\"===g?\"string\"===typeof e?d.textContent!==e&&(a=[\"children\",e]):\"number\"===typeof e&&d.textContent!==\"\"+e&&(a=[\"children\",\"\"+e]):ca.hasOwnProperty(g)&&null!=e&&\"onScroll\"===g&&G(\"scroll\",d));switch(c){case \"input\":Va(d);cb(d,f,!0);break;case \"textarea\":Va(d);jb(d);break;case \"select\":case \"option\":break;default:\"function\"===typeof f.onClick&&(d.onclick=\njf)}d=a;b.updateQueue=d;null!==d&&(b.flags|=4)}else{g=9===e.nodeType?e:e.ownerDocument;a===kb.html&&(a=lb(c));a===kb.html?\"script\"===c?(a=g.createElement(\"div\"),a.innerHTML=\"<script>\\x3c/script>\",a=a.removeChild(a.firstChild)):\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[wf]=b;a[xf]=d;Bi(a,b,!1,!1);b.stateNode=a;g=wb(c,d);switch(c){case \"dialog\":G(\"cancel\",a);G(\"close\",a);\ne=d;break;case \"iframe\":case \"object\":case \"embed\":G(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;e<Xe.length;e++)G(Xe[e],a);e=d;break;case \"source\":G(\"error\",a);e=d;break;case \"img\":case \"image\":case \"link\":G(\"error\",a);G(\"load\",a);e=d;break;case \"details\":G(\"toggle\",a);e=d;break;case \"input\":Za(a,d);e=Ya(a,d);G(\"invalid\",a);break;case \"option\":e=eb(a,d);break;case \"select\":a._wrapperState={wasMultiple:!!d.multiple};e=m({},d,{value:void 0});G(\"invalid\",a);break;case \"textarea\":hb(a,d);e=\ngb(a,d);G(\"invalid\",a);break;default:e=d}vb(c,e);var h=e;for(f in h)if(h.hasOwnProperty(f)){var k=h[f];\"style\"===f?tb(a,k):\"dangerouslySetInnerHTML\"===f?(k=k?k.__html:void 0,null!=k&&ob(a,k)):\"children\"===f?\"string\"===typeof k?(\"textarea\"!==c||\"\"!==k)&&pb(a,k):\"number\"===typeof k&&pb(a,\"\"+k):\"suppressContentEditableWarning\"!==f&&\"suppressHydrationWarning\"!==f&&\"autoFocus\"!==f&&(ca.hasOwnProperty(f)?null!=k&&\"onScroll\"===f&&G(\"scroll\",a):null!=k&&qa(a,f,k,g))}switch(c){case \"input\":Va(a);cb(a,d,!1);\nbreak;case \"textarea\":Va(a);jb(a);break;case \"option\":null!=d.value&&a.setAttribute(\"value\",\"\"+Sa(d.value));break;case \"select\":a.multiple=!!d.multiple;f=d.value;null!=f?fb(a,!!d.multiple,f,!1):null!=d.defaultValue&&fb(a,!!d.multiple,d.defaultValue,!0);break;default:\"function\"===typeof e.onClick&&(a.onclick=jf)}mf(c,d)&&(b.flags|=4)}null!==b.ref&&(b.flags|=128)}return null;case 6:if(a&&null!=b.stateNode)Ei(a,b,a.memoizedProps,d);else{if(\"string\"!==typeof d&&null===b.stateNode)throw Error(y(166));\nc=dh(ch.current);dh(ah.current);rh(b)?(d=b.stateNode,c=b.memoizedProps,d[wf]=b,d.nodeValue!==c&&(b.flags|=4)):(d=(9===c.nodeType?c:c.ownerDocument).createTextNode(d),d[wf]=b,b.stateNode=d)}return null;case 13:H(P);d=b.memoizedState;if(0!==(b.flags&64))return b.lanes=c,b;d=null!==d;c=!1;null===a?void 0!==b.memoizedProps.fallback&&rh(b):c=null!==a.memoizedState;if(d&&!c&&0!==(b.mode&2))if(null===a&&!0!==b.memoizedProps.unstable_avoidThisFallback||0!==(P.current&1))0===V&&(V=3);else{if(0===V||3===V)V=\n4;null===U||0===(Dg&134217727)&&0===(Hi&134217727)||Ii(U,W)}if(d||c)b.flags|=4;return null;case 4:return fh(),Ci(b),null===a&&cf(b.stateNode.containerInfo),null;case 10:return rg(b),null;case 17:return Ff(b.type)&&Gf(),null;case 19:H(P);d=b.memoizedState;if(null===d)return null;f=0!==(b.flags&64);g=d.rendering;if(null===g)if(f)Fi(d,!1);else{if(0!==V||null!==a&&0!==(a.flags&64))for(a=b.child;null!==a;){g=ih(a);if(null!==g){b.flags|=64;Fi(d,!1);f=g.updateQueue;null!==f&&(b.updateQueue=f,b.flags|=4);\nnull===d.lastEffect&&(b.firstEffect=null);b.lastEffect=d.lastEffect;d=c;for(c=b.child;null!==c;)f=c,a=d,f.flags&=2,f.nextEffect=null,f.firstEffect=null,f.lastEffect=null,g=f.alternate,null===g?(f.childLanes=0,f.lanes=a,f.child=null,f.memoizedProps=null,f.memoizedState=null,f.updateQueue=null,f.dependencies=null,f.stateNode=null):(f.childLanes=g.childLanes,f.lanes=g.lanes,f.child=g.child,f.memoizedProps=g.memoizedProps,f.memoizedState=g.memoizedState,f.updateQueue=g.updateQueue,f.type=g.type,a=g.dependencies,\nf.dependencies=null===a?null:{lanes:a.lanes,firstContext:a.firstContext}),c=c.sibling;I(P,P.current&1|2);return b.child}a=a.sibling}null!==d.tail&&O()>Ji&&(b.flags|=64,f=!0,Fi(d,!1),b.lanes=33554432)}else{if(!f)if(a=ih(g),null!==a){if(b.flags|=64,f=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Fi(d,!0),null===d.tail&&\"hidden\"===d.tailMode&&!g.alternate&&!lh)return b=b.lastEffect=d.lastEffect,null!==b&&(b.nextEffect=null),null}else 2*O()-d.renderingStartTime>Ji&&1073741824!==c&&(b.flags|=\n64,f=!0,Fi(d,!1),b.lanes=33554432);d.isBackwards?(g.sibling=b.child,b.child=g):(c=d.last,null!==c?c.sibling=g:b.child=g,d.last=g)}return null!==d.tail?(c=d.tail,d.rendering=c,d.tail=c.sibling,d.lastEffect=b.lastEffect,d.renderingStartTime=O(),c.sibling=null,b=P.current,I(P,f?b&1|2:b&1),c):null;case 23:case 24:return Ki(),null!==a&&null!==a.memoizedState!==(null!==b.memoizedState)&&\"unstable-defer-without-hiding\"!==d.mode&&(b.flags|=4),null}throw Error(y(156,b.tag));}\nfunction Li(a){switch(a.tag){case 1:Ff(a.type)&&Gf();var b=a.flags;return b&4096?(a.flags=b&-4097|64,a):null;case 3:fh();H(N);H(M);uh();b=a.flags;if(0!==(b&64))throw Error(y(285));a.flags=b&-4097|64;return a;case 5:return hh(a),null;case 13:return H(P),b=a.flags,b&4096?(a.flags=b&-4097|64,a):null;case 19:return H(P),null;case 4:return fh(),null;case 10:return rg(a),null;case 23:case 24:return Ki(),null;default:return null}}\nfunction Mi(a,b){try{var c=\"\",d=b;do c+=Qa(d),d=d.return;while(d);var e=c}catch(f){e=\"\\nError generating stack: \"+f.message+\"\\n\"+f.stack}return{value:a,source:b,stack:e}}function Ni(a,b){try{console.error(b.value)}catch(c){setTimeout(function(){throw c;})}}var Oi=\"function\"===typeof WeakMap?WeakMap:Map;function Pi(a,b,c){c=zg(-1,c);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Qi||(Qi=!0,Ri=d);Ni(a,b)};return c}\nfunction Si(a,b,c){c=zg(-1,c);c.tag=3;var d=a.type.getDerivedStateFromError;if(\"function\"===typeof d){var e=b.value;c.payload=function(){Ni(a,b);return d(e)}}var f=a.stateNode;null!==f&&\"function\"===typeof f.componentDidCatch&&(c.callback=function(){\"function\"!==typeof d&&(null===Ti?Ti=new Set([this]):Ti.add(this),Ni(a,b));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:\"\"})});return c}var Ui=\"function\"===typeof WeakSet?WeakSet:Set;\nfunction Vi(a){var b=a.ref;if(null!==b)if(\"function\"===typeof b)try{b(null)}catch(c){Wi(a,c)}else b.current=null}function Xi(a,b){switch(b.tag){case 0:case 11:case 15:case 22:return;case 1:if(b.flags&256&&null!==a){var c=a.memoizedProps,d=a.memoizedState;a=b.stateNode;b=a.getSnapshotBeforeUpdate(b.elementType===b.type?c:lg(b.type,c),d);a.__reactInternalSnapshotBeforeUpdate=b}return;case 3:b.flags&256&&qf(b.stateNode.containerInfo);return;case 5:case 6:case 4:case 17:return}throw Error(y(163));}\nfunction Yi(a,b,c){switch(c.tag){case 0:case 11:case 15:case 22:b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{if(3===(a.tag&3)){var d=a.create;a.destroy=d()}a=a.next}while(a!==b)}b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{var e=a;d=e.next;e=e.tag;0!==(e&4)&&0!==(e&1)&&(Zi(c,a),$i(c,a));a=d}while(a!==b)}return;case 1:a=c.stateNode;c.flags&4&&(null===b?a.componentDidMount():(d=c.elementType===c.type?b.memoizedProps:lg(c.type,b.memoizedProps),a.componentDidUpdate(d,\nb.memoizedState,a.__reactInternalSnapshotBeforeUpdate)));b=c.updateQueue;null!==b&&Eg(c,b,a);return;case 3:b=c.updateQueue;if(null!==b){a=null;if(null!==c.child)switch(c.child.tag){case 5:a=c.child.stateNode;break;case 1:a=c.child.stateNode}Eg(c,b,a)}return;case 5:a=c.stateNode;null===b&&c.flags&4&&mf(c.type,c.memoizedProps)&&a.focus();return;case 6:return;case 4:return;case 12:return;case 13:null===c.memoizedState&&(c=c.alternate,null!==c&&(c=c.memoizedState,null!==c&&(c=c.dehydrated,null!==c&&Cc(c))));\nreturn;case 19:case 17:case 20:case 21:case 23:case 24:return}throw Error(y(163));}\nfunction aj(a,b){for(var c=a;;){if(5===c.tag){var d=c.stateNode;if(b)d=d.style,\"function\"===typeof d.setProperty?d.setProperty(\"display\",\"none\",\"important\"):d.display=\"none\";else{d=c.stateNode;var e=c.memoizedProps.style;e=void 0!==e&&null!==e&&e.hasOwnProperty(\"display\")?e.display:null;d.style.display=sb(\"display\",e)}}else if(6===c.tag)c.stateNode.nodeValue=b?\"\":c.memoizedProps;else if((23!==c.tag&&24!==c.tag||null===c.memoizedState||c===a)&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===\na)break;for(;null===c.sibling;){if(null===c.return||c.return===a)return;c=c.return}c.sibling.return=c.return;c=c.sibling}}\nfunction bj(a,b){if(Mf&&\"function\"===typeof Mf.onCommitFiberUnmount)try{Mf.onCommitFiberUnmount(Lf,b)}catch(f){}switch(b.tag){case 0:case 11:case 14:case 15:case 22:a=b.updateQueue;if(null!==a&&(a=a.lastEffect,null!==a)){var c=a=a.next;do{var d=c,e=d.destroy;d=d.tag;if(void 0!==e)if(0!==(d&4))Zi(b,c);else{d=b;try{e()}catch(f){Wi(d,f)}}c=c.next}while(c!==a)}break;case 1:Vi(b);a=b.stateNode;if(\"function\"===typeof a.componentWillUnmount)try{a.props=b.memoizedProps,a.state=b.memoizedState,a.componentWillUnmount()}catch(f){Wi(b,\nf)}break;case 5:Vi(b);break;case 4:cj(a,b)}}function dj(a){a.alternate=null;a.child=null;a.dependencies=null;a.firstEffect=null;a.lastEffect=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.return=null;a.updateQueue=null}function ej(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction fj(a){a:{for(var b=a.return;null!==b;){if(ej(b))break a;b=b.return}throw Error(y(160));}var c=b;b=c.stateNode;switch(c.tag){case 5:var d=!1;break;case 3:b=b.containerInfo;d=!0;break;case 4:b=b.containerInfo;d=!0;break;default:throw Error(y(161));}c.flags&16&&(pb(b,\"\"),c.flags&=-17);a:b:for(c=a;;){for(;null===c.sibling;){if(null===c.return||ej(c.return)){c=null;break a}c=c.return}c.sibling.return=c.return;for(c=c.sibling;5!==c.tag&&6!==c.tag&&18!==c.tag;){if(c.flags&2)continue b;if(null===\nc.child||4===c.tag)continue b;else c.child.return=c,c=c.child}if(!(c.flags&2)){c=c.stateNode;break a}}d?gj(a,c,b):hj(a,c,b)}\nfunction gj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=jf));else if(4!==d&&(a=a.child,null!==a))for(gj(a,b,c),a=a.sibling;null!==a;)gj(a,b,c),a=a.sibling}\nfunction hj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(hj(a,b,c),a=a.sibling;null!==a;)hj(a,b,c),a=a.sibling}\nfunction cj(a,b){for(var c=b,d=!1,e,f;;){if(!d){d=c.return;a:for(;;){if(null===d)throw Error(y(160));e=d.stateNode;switch(d.tag){case 5:f=!1;break a;case 3:e=e.containerInfo;f=!0;break a;case 4:e=e.containerInfo;f=!0;break a}d=d.return}d=!0}if(5===c.tag||6===c.tag){a:for(var g=a,h=c,k=h;;)if(bj(g,k),null!==k.child&&4!==k.tag)k.child.return=k,k=k.child;else{if(k===h)break a;for(;null===k.sibling;){if(null===k.return||k.return===h)break a;k=k.return}k.sibling.return=k.return;k=k.sibling}f?(g=e,h=c.stateNode,\n8===g.nodeType?g.parentNode.removeChild(h):g.removeChild(h)):e.removeChild(c.stateNode)}else if(4===c.tag){if(null!==c.child){e=c.stateNode.containerInfo;f=!0;c.child.return=c;c=c.child;continue}}else if(bj(a,c),null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return;4===c.tag&&(d=!1)}c.sibling.return=c.return;c=c.sibling}}\nfunction ij(a,b){switch(b.tag){case 0:case 11:case 14:case 15:case 22:var c=b.updateQueue;c=null!==c?c.lastEffect:null;if(null!==c){var d=c=c.next;do 3===(d.tag&3)&&(a=d.destroy,d.destroy=void 0,void 0!==a&&a()),d=d.next;while(d!==c)}return;case 1:return;case 5:c=b.stateNode;if(null!=c){d=b.memoizedProps;var e=null!==a?a.memoizedProps:d;a=b.type;var f=b.updateQueue;b.updateQueue=null;if(null!==f){c[xf]=d;\"input\"===a&&\"radio\"===d.type&&null!=d.name&&$a(c,d);wb(a,e);b=wb(a,d);for(e=0;e<f.length;e+=\n2){var g=f[e],h=f[e+1];\"style\"===g?tb(c,h):\"dangerouslySetInnerHTML\"===g?ob(c,h):\"children\"===g?pb(c,h):qa(c,g,h,b)}switch(a){case \"input\":ab(c,d);break;case \"textarea\":ib(c,d);break;case \"select\":a=c._wrapperState.wasMultiple,c._wrapperState.wasMultiple=!!d.multiple,f=d.value,null!=f?fb(c,!!d.multiple,f,!1):a!==!!d.multiple&&(null!=d.defaultValue?fb(c,!!d.multiple,d.defaultValue,!0):fb(c,!!d.multiple,d.multiple?[]:\"\",!1))}}}return;case 6:if(null===b.stateNode)throw Error(y(162));b.stateNode.nodeValue=\nb.memoizedProps;return;case 3:c=b.stateNode;c.hydrate&&(c.hydrate=!1,Cc(c.containerInfo));return;case 12:return;case 13:null!==b.memoizedState&&(jj=O(),aj(b.child,!0));kj(b);return;case 19:kj(b);return;case 17:return;case 23:case 24:aj(b,null!==b.memoizedState);return}throw Error(y(163));}function kj(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Ui);b.forEach(function(b){var d=lj.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction mj(a,b){return null!==a&&(a=a.memoizedState,null===a||null!==a.dehydrated)?(b=b.memoizedState,null!==b&&null===b.dehydrated):!1}var nj=Math.ceil,oj=ra.ReactCurrentDispatcher,pj=ra.ReactCurrentOwner,X=0,U=null,Y=null,W=0,qj=0,rj=Bf(0),V=0,sj=null,tj=0,Dg=0,Hi=0,uj=0,vj=null,jj=0,Ji=Infinity;function wj(){Ji=O()+500}var Z=null,Qi=!1,Ri=null,Ti=null,xj=!1,yj=null,zj=90,Aj=[],Bj=[],Cj=null,Dj=0,Ej=null,Fj=-1,Gj=0,Hj=0,Ij=null,Jj=!1;function Hg(){return 0!==(X&48)?O():-1!==Fj?Fj:Fj=O()}\nfunction Ig(a){a=a.mode;if(0===(a&2))return 1;if(0===(a&4))return 99===eg()?1:2;0===Gj&&(Gj=tj);if(0!==kg.transition){0!==Hj&&(Hj=null!==vj?vj.pendingLanes:0);a=Gj;var b=4186112&~Hj;b&=-b;0===b&&(a=4186112&~a,b=a&-a,0===b&&(b=8192));return b}a=eg();0!==(X&4)&&98===a?a=Xc(12,Gj):(a=Sc(a),a=Xc(a,Gj));return a}\nfunction Jg(a,b,c){if(50<Dj)throw Dj=0,Ej=null,Error(y(185));a=Kj(a,b);if(null===a)return null;$c(a,b,c);a===U&&(Hi|=b,4===V&&Ii(a,W));var d=eg();1===b?0!==(X&8)&&0===(X&48)?Lj(a):(Mj(a,c),0===X&&(wj(),ig())):(0===(X&4)||98!==d&&99!==d||(null===Cj?Cj=new Set([a]):Cj.add(a)),Mj(a,c));vj=a}function Kj(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);c=a;for(a=a.return;null!==a;)a.childLanes|=b,c=a.alternate,null!==c&&(c.childLanes|=b),c=a,a=a.return;return 3===c.tag?c.stateNode:null}\nfunction Mj(a,b){for(var c=a.callbackNode,d=a.suspendedLanes,e=a.pingedLanes,f=a.expirationTimes,g=a.pendingLanes;0<g;){var h=31-Vc(g),k=1<<h,l=f[h];if(-1===l){if(0===(k&d)||0!==(k&e)){l=b;Rc(k);var n=F;f[h]=10<=n?l+250:6<=n?l+5E3:-1}}else l<=b&&(a.expiredLanes|=k);g&=~k}d=Uc(a,a===U?W:0);b=F;if(0===d)null!==c&&(c!==Zf&&Pf(c),a.callbackNode=null,a.callbackPriority=0);else{if(null!==c){if(a.callbackPriority===b)return;c!==Zf&&Pf(c)}15===b?(c=Lj.bind(null,a),null===ag?(ag=[c],bg=Of(Uf,jg)):ag.push(c),\nc=Zf):14===b?c=hg(99,Lj.bind(null,a)):(c=Tc(b),c=hg(c,Nj.bind(null,a)));a.callbackPriority=b;a.callbackNode=c}}\nfunction Nj(a){Fj=-1;Hj=Gj=0;if(0!==(X&48))throw Error(y(327));var b=a.callbackNode;if(Oj()&&a.callbackNode!==b)return null;var c=Uc(a,a===U?W:0);if(0===c)return null;var d=c;var e=X;X|=16;var f=Pj();if(U!==a||W!==d)wj(),Qj(a,d);do try{Rj();break}catch(h){Sj(a,h)}while(1);qg();oj.current=f;X=e;null!==Y?d=0:(U=null,W=0,d=V);if(0!==(tj&Hi))Qj(a,0);else if(0!==d){2===d&&(X|=64,a.hydrate&&(a.hydrate=!1,qf(a.containerInfo)),c=Wc(a),0!==c&&(d=Tj(a,c)));if(1===d)throw b=sj,Qj(a,0),Ii(a,c),Mj(a,O()),b;a.finishedWork=\na.current.alternate;a.finishedLanes=c;switch(d){case 0:case 1:throw Error(y(345));case 2:Uj(a);break;case 3:Ii(a,c);if((c&62914560)===c&&(d=jj+500-O(),10<d)){if(0!==Uc(a,0))break;e=a.suspendedLanes;if((e&c)!==c){Hg();a.pingedLanes|=a.suspendedLanes&e;break}a.timeoutHandle=of(Uj.bind(null,a),d);break}Uj(a);break;case 4:Ii(a,c);if((c&4186112)===c)break;d=a.eventTimes;for(e=-1;0<c;){var g=31-Vc(c);f=1<<g;g=d[g];g>e&&(e=g);c&=~f}c=e;c=O()-c;c=(120>c?120:480>c?480:1080>c?1080:1920>c?1920:3E3>c?3E3:4320>\nc?4320:1960*nj(c/1960))-c;if(10<c){a.timeoutHandle=of(Uj.bind(null,a),c);break}Uj(a);break;case 5:Uj(a);break;default:throw Error(y(329));}}Mj(a,O());return a.callbackNode===b?Nj.bind(null,a):null}function Ii(a,b){b&=~uj;b&=~Hi;a.suspendedLanes|=b;a.pingedLanes&=~b;for(a=a.expirationTimes;0<b;){var c=31-Vc(b),d=1<<c;a[c]=-1;b&=~d}}\nfunction Lj(a){if(0!==(X&48))throw Error(y(327));Oj();if(a===U&&0!==(a.expiredLanes&W)){var b=W;var c=Tj(a,b);0!==(tj&Hi)&&(b=Uc(a,b),c=Tj(a,b))}else b=Uc(a,0),c=Tj(a,b);0!==a.tag&&2===c&&(X|=64,a.hydrate&&(a.hydrate=!1,qf(a.containerInfo)),b=Wc(a),0!==b&&(c=Tj(a,b)));if(1===c)throw c=sj,Qj(a,0),Ii(a,b),Mj(a,O()),c;a.finishedWork=a.current.alternate;a.finishedLanes=b;Uj(a);Mj(a,O());return null}\nfunction Vj(){if(null!==Cj){var a=Cj;Cj=null;a.forEach(function(a){a.expiredLanes|=24&a.pendingLanes;Mj(a,O())})}ig()}function Wj(a,b){var c=X;X|=1;try{return a(b)}finally{X=c,0===X&&(wj(),ig())}}function Xj(a,b){var c=X;X&=-2;X|=8;try{return a(b)}finally{X=c,0===X&&(wj(),ig())}}function ni(a,b){I(rj,qj);qj|=b;tj|=b}function Ki(){qj=rj.current;H(rj)}\nfunction Qj(a,b){a.finishedWork=null;a.finishedLanes=0;var c=a.timeoutHandle;-1!==c&&(a.timeoutHandle=-1,pf(c));if(null!==Y)for(c=Y.return;null!==c;){var d=c;switch(d.tag){case 1:d=d.type.childContextTypes;null!==d&&void 0!==d&&Gf();break;case 3:fh();H(N);H(M);uh();break;case 5:hh(d);break;case 4:fh();break;case 13:H(P);break;case 19:H(P);break;case 10:rg(d);break;case 23:case 24:Ki()}c=c.return}U=a;Y=Tg(a.current,null);W=qj=tj=b;V=0;sj=null;uj=Hi=Dg=0}\nfunction Sj(a,b){do{var c=Y;try{qg();vh.current=Gh;if(yh){for(var d=R.memoizedState;null!==d;){var e=d.queue;null!==e&&(e.pending=null);d=d.next}yh=!1}xh=0;T=S=R=null;zh=!1;pj.current=null;if(null===c||null===c.return){V=1;sj=b;Y=null;break}a:{var f=a,g=c.return,h=c,k=b;b=W;h.flags|=2048;h.firstEffect=h.lastEffect=null;if(null!==k&&\"object\"===typeof k&&\"function\"===typeof k.then){var l=k;if(0===(h.mode&2)){var n=h.alternate;n?(h.updateQueue=n.updateQueue,h.memoizedState=n.memoizedState,h.lanes=n.lanes):\n(h.updateQueue=null,h.memoizedState=null)}var A=0!==(P.current&1),p=g;do{var C;if(C=13===p.tag){var x=p.memoizedState;if(null!==x)C=null!==x.dehydrated?!0:!1;else{var w=p.memoizedProps;C=void 0===w.fallback?!1:!0!==w.unstable_avoidThisFallback?!0:A?!1:!0}}if(C){var z=p.updateQueue;if(null===z){var u=new Set;u.add(l);p.updateQueue=u}else z.add(l);if(0===(p.mode&2)){p.flags|=64;h.flags|=16384;h.flags&=-2981;if(1===h.tag)if(null===h.alternate)h.tag=17;else{var t=zg(-1,1);t.tag=2;Ag(h,t)}h.lanes|=1;break a}k=\nvoid 0;h=b;var q=f.pingCache;null===q?(q=f.pingCache=new Oi,k=new Set,q.set(l,k)):(k=q.get(l),void 0===k&&(k=new Set,q.set(l,k)));if(!k.has(h)){k.add(h);var v=Yj.bind(null,f,l,h);l.then(v,v)}p.flags|=4096;p.lanes=b;break a}p=p.return}while(null!==p);k=Error((Ra(h.type)||\"A React component\")+\" suspended while rendering, but no fallback UI was specified.\\n\\nAdd a <Suspense fallback=...> component higher in the tree to provide a loading indicator or placeholder to display.\")}5!==V&&(V=2);k=Mi(k,h);p=\ng;do{switch(p.tag){case 3:f=k;p.flags|=4096;b&=-b;p.lanes|=b;var J=Pi(p,f,b);Bg(p,J);break a;case 1:f=k;var K=p.type,Q=p.stateNode;if(0===(p.flags&64)&&(\"function\"===typeof K.getDerivedStateFromError||null!==Q&&\"function\"===typeof Q.componentDidCatch&&(null===Ti||!Ti.has(Q)))){p.flags|=4096;b&=-b;p.lanes|=b;var L=Si(p,f,b);Bg(p,L);break a}}p=p.return}while(null!==p)}Zj(c)}catch(va){b=va;Y===c&&null!==c&&(Y=c=c.return);continue}break}while(1)}\nfunction Pj(){var a=oj.current;oj.current=Gh;return null===a?Gh:a}function Tj(a,b){var c=X;X|=16;var d=Pj();U===a&&W===b||Qj(a,b);do try{ak();break}catch(e){Sj(a,e)}while(1);qg();X=c;oj.current=d;if(null!==Y)throw Error(y(261));U=null;W=0;return V}function ak(){for(;null!==Y;)bk(Y)}function Rj(){for(;null!==Y&&!Qf();)bk(Y)}function bk(a){var b=ck(a.alternate,a,qj);a.memoizedProps=a.pendingProps;null===b?Zj(a):Y=b;pj.current=null}\nfunction Zj(a){var b=a;do{var c=b.alternate;a=b.return;if(0===(b.flags&2048)){c=Gi(c,b,qj);if(null!==c){Y=c;return}c=b;if(24!==c.tag&&23!==c.tag||null===c.memoizedState||0!==(qj&1073741824)||0===(c.mode&4)){for(var d=0,e=c.child;null!==e;)d|=e.lanes|e.childLanes,e=e.sibling;c.childLanes=d}null!==a&&0===(a.flags&2048)&&(null===a.firstEffect&&(a.firstEffect=b.firstEffect),null!==b.lastEffect&&(null!==a.lastEffect&&(a.lastEffect.nextEffect=b.firstEffect),a.lastEffect=b.lastEffect),1<b.flags&&(null!==\na.lastEffect?a.lastEffect.nextEffect=b:a.firstEffect=b,a.lastEffect=b))}else{c=Li(b);if(null!==c){c.flags&=2047;Y=c;return}null!==a&&(a.firstEffect=a.lastEffect=null,a.flags|=2048)}b=b.sibling;if(null!==b){Y=b;return}Y=b=a}while(null!==b);0===V&&(V=5)}function Uj(a){var b=eg();gg(99,dk.bind(null,a,b));return null}\nfunction dk(a,b){do Oj();while(null!==yj);if(0!==(X&48))throw Error(y(327));var c=a.finishedWork;if(null===c)return null;a.finishedWork=null;a.finishedLanes=0;if(c===a.current)throw Error(y(177));a.callbackNode=null;var d=c.lanes|c.childLanes,e=d,f=a.pendingLanes&~e;a.pendingLanes=e;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=e;a.mutableReadLanes&=e;a.entangledLanes&=e;e=a.entanglements;for(var g=a.eventTimes,h=a.expirationTimes;0<f;){var k=31-Vc(f),l=1<<k;e[k]=0;g[k]=-1;h[k]=-1;f&=~l}null!==\nCj&&0===(d&24)&&Cj.has(a)&&Cj.delete(a);a===U&&(Y=U=null,W=0);1<c.flags?null!==c.lastEffect?(c.lastEffect.nextEffect=c,d=c.firstEffect):d=c:d=c.firstEffect;if(null!==d){e=X;X|=32;pj.current=null;kf=fd;g=Ne();if(Oe(g)){if(\"selectionStart\"in g)h={start:g.selectionStart,end:g.selectionEnd};else a:if(h=(h=g.ownerDocument)&&h.defaultView||window,(l=h.getSelection&&h.getSelection())&&0!==l.rangeCount){h=l.anchorNode;f=l.anchorOffset;k=l.focusNode;l=l.focusOffset;try{h.nodeType,k.nodeType}catch(va){h=null;\nbreak a}var n=0,A=-1,p=-1,C=0,x=0,w=g,z=null;b:for(;;){for(var u;;){w!==h||0!==f&&3!==w.nodeType||(A=n+f);w!==k||0!==l&&3!==w.nodeType||(p=n+l);3===w.nodeType&&(n+=w.nodeValue.length);if(null===(u=w.firstChild))break;z=w;w=u}for(;;){if(w===g)break b;z===h&&++C===f&&(A=n);z===k&&++x===l&&(p=n);if(null!==(u=w.nextSibling))break;w=z;z=w.parentNode}w=u}h=-1===A||-1===p?null:{start:A,end:p}}else h=null;h=h||{start:0,end:0}}else h=null;lf={focusedElem:g,selectionRange:h};fd=!1;Ij=null;Jj=!1;Z=d;do try{ek()}catch(va){if(null===\nZ)throw Error(y(330));Wi(Z,va);Z=Z.nextEffect}while(null!==Z);Ij=null;Z=d;do try{for(g=a;null!==Z;){var t=Z.flags;t&16&&pb(Z.stateNode,\"\");if(t&128){var q=Z.alternate;if(null!==q){var v=q.ref;null!==v&&(\"function\"===typeof v?v(null):v.current=null)}}switch(t&1038){case 2:fj(Z);Z.flags&=-3;break;case 6:fj(Z);Z.flags&=-3;ij(Z.alternate,Z);break;case 1024:Z.flags&=-1025;break;case 1028:Z.flags&=-1025;ij(Z.alternate,Z);break;case 4:ij(Z.alternate,Z);break;case 8:h=Z;cj(g,h);var J=h.alternate;dj(h);null!==\nJ&&dj(J)}Z=Z.nextEffect}}catch(va){if(null===Z)throw Error(y(330));Wi(Z,va);Z=Z.nextEffect}while(null!==Z);v=lf;q=Ne();t=v.focusedElem;g=v.selectionRange;if(q!==t&&t&&t.ownerDocument&&Me(t.ownerDocument.documentElement,t)){null!==g&&Oe(t)&&(q=g.start,v=g.end,void 0===v&&(v=q),\"selectionStart\"in t?(t.selectionStart=q,t.selectionEnd=Math.min(v,t.value.length)):(v=(q=t.ownerDocument||document)&&q.defaultView||window,v.getSelection&&(v=v.getSelection(),h=t.textContent.length,J=Math.min(g.start,h),g=void 0===\ng.end?J:Math.min(g.end,h),!v.extend&&J>g&&(h=g,g=J,J=h),h=Le(t,J),f=Le(t,g),h&&f&&(1!==v.rangeCount||v.anchorNode!==h.node||v.anchorOffset!==h.offset||v.focusNode!==f.node||v.focusOffset!==f.offset)&&(q=q.createRange(),q.setStart(h.node,h.offset),v.removeAllRanges(),J>g?(v.addRange(q),v.extend(f.node,f.offset)):(q.setEnd(f.node,f.offset),v.addRange(q))))));q=[];for(v=t;v=v.parentNode;)1===v.nodeType&&q.push({element:v,left:v.scrollLeft,top:v.scrollTop});\"function\"===typeof t.focus&&t.focus();for(t=\n0;t<q.length;t++)v=q[t],v.element.scrollLeft=v.left,v.element.scrollTop=v.top}fd=!!kf;lf=kf=null;a.current=c;Z=d;do try{for(t=a;null!==Z;){var K=Z.flags;K&36&&Yi(t,Z.alternate,Z);if(K&128){q=void 0;var Q=Z.ref;if(null!==Q){var L=Z.stateNode;switch(Z.tag){case 5:q=L;break;default:q=L}\"function\"===typeof Q?Q(q):Q.current=q}}Z=Z.nextEffect}}catch(va){if(null===Z)throw Error(y(330));Wi(Z,va);Z=Z.nextEffect}while(null!==Z);Z=null;$f();X=e}else a.current=c;if(xj)xj=!1,yj=a,zj=b;else for(Z=d;null!==Z;)b=\nZ.nextEffect,Z.nextEffect=null,Z.flags&8&&(K=Z,K.sibling=null,K.stateNode=null),Z=b;d=a.pendingLanes;0===d&&(Ti=null);1===d?a===Ej?Dj++:(Dj=0,Ej=a):Dj=0;c=c.stateNode;if(Mf&&\"function\"===typeof Mf.onCommitFiberRoot)try{Mf.onCommitFiberRoot(Lf,c,void 0,64===(c.current.flags&64))}catch(va){}Mj(a,O());if(Qi)throw Qi=!1,a=Ri,Ri=null,a;if(0!==(X&8))return null;ig();return null}\nfunction ek(){for(;null!==Z;){var a=Z.alternate;Jj||null===Ij||(0!==(Z.flags&8)?dc(Z,Ij)&&(Jj=!0):13===Z.tag&&mj(a,Z)&&dc(Z,Ij)&&(Jj=!0));var b=Z.flags;0!==(b&256)&&Xi(a,Z);0===(b&512)||xj||(xj=!0,hg(97,function(){Oj();return null}));Z=Z.nextEffect}}function Oj(){if(90!==zj){var a=97<zj?97:zj;zj=90;return gg(a,fk)}return!1}function $i(a,b){Aj.push(b,a);xj||(xj=!0,hg(97,function(){Oj();return null}))}function Zi(a,b){Bj.push(b,a);xj||(xj=!0,hg(97,function(){Oj();return null}))}\nfunction fk(){if(null===yj)return!1;var a=yj;yj=null;if(0!==(X&48))throw Error(y(331));var b=X;X|=32;var c=Bj;Bj=[];for(var d=0;d<c.length;d+=2){var e=c[d],f=c[d+1],g=e.destroy;e.destroy=void 0;if(\"function\"===typeof g)try{g()}catch(k){if(null===f)throw Error(y(330));Wi(f,k)}}c=Aj;Aj=[];for(d=0;d<c.length;d+=2){e=c[d];f=c[d+1];try{var h=e.create;e.destroy=h()}catch(k){if(null===f)throw Error(y(330));Wi(f,k)}}for(h=a.current.firstEffect;null!==h;)a=h.nextEffect,h.nextEffect=null,h.flags&8&&(h.sibling=\nnull,h.stateNode=null),h=a;X=b;ig();return!0}function gk(a,b,c){b=Mi(c,b);b=Pi(a,b,1);Ag(a,b);b=Hg();a=Kj(a,1);null!==a&&($c(a,1,b),Mj(a,b))}\nfunction Wi(a,b){if(3===a.tag)gk(a,a,b);else for(var c=a.return;null!==c;){if(3===c.tag){gk(c,a,b);break}else if(1===c.tag){var d=c.stateNode;if(\"function\"===typeof c.type.getDerivedStateFromError||\"function\"===typeof d.componentDidCatch&&(null===Ti||!Ti.has(d))){a=Mi(b,a);var e=Si(c,a,1);Ag(c,e);e=Hg();c=Kj(c,1);if(null!==c)$c(c,1,e),Mj(c,e);else if(\"function\"===typeof d.componentDidCatch&&(null===Ti||!Ti.has(d)))try{d.componentDidCatch(b,a)}catch(f){}break}}c=c.return}}\nfunction Yj(a,b,c){var d=a.pingCache;null!==d&&d.delete(b);b=Hg();a.pingedLanes|=a.suspendedLanes&c;U===a&&(W&c)===c&&(4===V||3===V&&(W&62914560)===W&&500>O()-jj?Qj(a,0):uj|=c);Mj(a,b)}function lj(a,b){var c=a.stateNode;null!==c&&c.delete(b);b=0;0===b&&(b=a.mode,0===(b&2)?b=1:0===(b&4)?b=99===eg()?1:2:(0===Gj&&(Gj=tj),b=Yc(62914560&~Gj),0===b&&(b=4194304)));c=Hg();a=Kj(a,b);null!==a&&($c(a,b,c),Mj(a,c))}var ck;\nck=function(a,b,c){var d=b.lanes;if(null!==a)if(a.memoizedProps!==b.pendingProps||N.current)ug=!0;else if(0!==(c&d))ug=0!==(a.flags&16384)?!0:!1;else{ug=!1;switch(b.tag){case 3:ri(b);sh();break;case 5:gh(b);break;case 1:Ff(b.type)&&Jf(b);break;case 4:eh(b,b.stateNode.containerInfo);break;case 10:d=b.memoizedProps.value;var e=b.type._context;I(mg,e._currentValue);e._currentValue=d;break;case 13:if(null!==b.memoizedState){if(0!==(c&b.child.childLanes))return ti(a,b,c);I(P,P.current&1);b=hi(a,b,c);return null!==\nb?b.sibling:null}I(P,P.current&1);break;case 19:d=0!==(c&b.childLanes);if(0!==(a.flags&64)){if(d)return Ai(a,b,c);b.flags|=64}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);I(P,P.current);if(d)break;else return null;case 23:case 24:return b.lanes=0,mi(a,b,c)}return hi(a,b,c)}else ug=!1;b.lanes=0;switch(b.tag){case 2:d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);a=b.pendingProps;e=Ef(b,M.current);tg(b,c);e=Ch(null,b,d,a,e,c);b.flags|=1;if(\"object\"===\ntypeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){b.tag=1;b.memoizedState=null;b.updateQueue=null;if(Ff(d)){var f=!0;Jf(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;xg(b);var g=d.getDerivedStateFromProps;\"function\"===typeof g&&Gg(b,d,g,a);e.updater=Kg;b.stateNode=e;e._reactInternals=b;Og(b,d,a,c);b=qi(null,b,d,!0,f,c)}else b.tag=0,fi(null,b,e,c),b=b.child;return b;case 16:e=b.elementType;a:{null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);\na=b.pendingProps;f=e._init;e=f(e._payload);b.type=e;f=b.tag=hk(e);a=lg(e,a);switch(f){case 0:b=li(null,b,e,a,c);break a;case 1:b=pi(null,b,e,a,c);break a;case 11:b=gi(null,b,e,a,c);break a;case 14:b=ii(null,b,e,lg(e.type,a),d,c);break a}throw Error(y(306,e,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),li(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),pi(a,b,d,e,c);case 3:ri(b);d=b.updateQueue;if(null===a||null===d)throw Error(y(282));\nd=b.pendingProps;e=b.memoizedState;e=null!==e?e.element:null;yg(a,b);Cg(b,d,null,c);d=b.memoizedState.element;if(d===e)sh(),b=hi(a,b,c);else{e=b.stateNode;if(f=e.hydrate)kh=rf(b.stateNode.containerInfo.firstChild),jh=b,f=lh=!0;if(f){a=e.mutableSourceEagerHydrationData;if(null!=a)for(e=0;e<a.length;e+=2)f=a[e],f._workInProgressVersionPrimary=a[e+1],th.push(f);c=Zg(b,null,d,c);for(b.child=c;c;)c.flags=c.flags&-3|1024,c=c.sibling}else fi(a,b,d,c),sh();b=b.child}return b;case 5:return gh(b),null===a&&\nph(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,nf(d,e)?g=null:null!==f&&nf(d,f)&&(b.flags|=16),oi(a,b),fi(a,b,g,c),b.child;case 6:return null===a&&ph(b),null;case 13:return ti(a,b,c);case 4:return eh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Yg(b,null,d,c):fi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),gi(a,b,d,e,c);case 7:return fi(a,b,b.pendingProps,c),b.child;case 8:return fi(a,b,b.pendingProps.children,\nc),b.child;case 12:return fi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;g=b.memoizedProps;f=e.value;var h=b.type._context;I(mg,h._currentValue);h._currentValue=f;if(null!==g)if(h=g.value,f=He(h,f)?0:(\"function\"===typeof d._calculateChangedBits?d._calculateChangedBits(h,f):1073741823)|0,0===f){if(g.children===e.children&&!N.current){b=hi(a,b,c);break a}}else for(h=b.child,null!==h&&(h.return=b);null!==h;){var k=h.dependencies;if(null!==k){g=h.child;for(var l=\nk.firstContext;null!==l;){if(l.context===d&&0!==(l.observedBits&f)){1===h.tag&&(l=zg(-1,c&-c),l.tag=2,Ag(h,l));h.lanes|=c;l=h.alternate;null!==l&&(l.lanes|=c);sg(h.return,c);k.lanes|=c;break}l=l.next}}else g=10===h.tag?h.type===b.type?null:h.child:h.child;if(null!==g)g.return=h;else for(g=h;null!==g;){if(g===b){g=null;break}h=g.sibling;if(null!==h){h.return=g.return;g=h;break}g=g.return}h=g}fi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,f=b.pendingProps,d=f.children,tg(b,c),e=vg(e,\nf.unstable_observedBits),d=d(e),b.flags|=1,fi(a,b,d,c),b.child;case 14:return e=b.type,f=lg(e,b.pendingProps),f=lg(e.type,f),ii(a,b,e,f,d,c);case 15:return ki(a,b,b.type,b.pendingProps,d,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2),b.tag=1,Ff(d)?(a=!0,Jf(b)):a=!1,tg(b,c),Mg(b,d,e),Og(b,d,e,c),qi(null,b,d,!0,a,c);case 19:return Ai(a,b,c);case 23:return mi(a,b,c);case 24:return mi(a,b,c)}throw Error(y(156,b.tag));\n};function ik(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.flags=0;this.lastEffect=this.firstEffect=this.nextEffect=null;this.childLanes=this.lanes=0;this.alternate=null}function nh(a,b,c,d){return new ik(a,b,c,d)}function ji(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction hk(a){if(\"function\"===typeof a)return ji(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Aa)return 11;if(a===Da)return 14}return 2}\nfunction Tg(a,b){var c=a.alternate;null===c?(c=nh(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.nextEffect=null,c.firstEffect=null,c.lastEffect=null);c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction Vg(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)ji(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ua:return Xg(c.children,e,f,b);case Ha:g=8;e|=16;break;case wa:g=8;e|=1;break;case xa:return a=nh(12,c,b,e|8),a.elementType=xa,a.type=xa,a.lanes=f,a;case Ba:return a=nh(13,c,b,e),a.type=Ba,a.elementType=Ba,a.lanes=f,a;case Ca:return a=nh(19,c,b,e),a.elementType=Ca,a.lanes=f,a;case Ia:return vi(c,e,f,b);case Ja:return a=nh(24,c,b,e),a.elementType=Ja,a.lanes=f,a;default:if(\"object\"===\ntypeof a&&null!==a)switch(a.$$typeof){case ya:g=10;break a;case za:g=9;break a;case Aa:g=11;break a;case Da:g=14;break a;case Ea:g=16;d=null;break a;case Fa:g=22;break a}throw Error(y(130,null==a?a:typeof a,\"\"));}b=nh(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Xg(a,b,c,d){a=nh(7,a,d,b);a.lanes=c;return a}function vi(a,b,c,d){a=nh(23,a,d,b);a.elementType=Ia;a.lanes=c;return a}function Ug(a,b,c){a=nh(6,a,null,b);a.lanes=c;return a}\nfunction Wg(a,b,c){b=nh(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction jk(a,b,c){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.pendingContext=this.context=null;this.hydrate=c;this.callbackNode=null;this.callbackPriority=0;this.eventTimes=Zc(0);this.expirationTimes=Zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=Zc(0);this.mutableSourceEagerHydrationData=null}\nfunction kk(a,b,c){var d=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:ta,key:null==d?null:\"\"+d,children:a,containerInfo:b,implementation:c}}\nfunction lk(a,b,c,d){var e=b.current,f=Hg(),g=Ig(e);a:if(c){c=c._reactInternals;b:{if(Zb(c)!==c||1!==c.tag)throw Error(y(170));var h=c;do{switch(h.tag){case 3:h=h.stateNode.context;break b;case 1:if(Ff(h.type)){h=h.stateNode.__reactInternalMemoizedMergedChildContext;break b}}h=h.return}while(null!==h);throw Error(y(171));}if(1===c.tag){var k=c.type;if(Ff(k)){c=If(c,k,h);break a}}c=h}else c=Cf;null===b.context?b.context=c:b.pendingContext=c;b=zg(f,g);b.payload={element:a};d=void 0===d?null:d;null!==\nd&&(b.callback=d);Ag(e,b);Jg(e,g,f);return g}function mk(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return a.child.stateNode;default:return a.child.stateNode}}function nk(a,b){a=a.memoizedState;if(null!==a&&null!==a.dehydrated){var c=a.retryLane;a.retryLane=0!==c&&c<b?c:b}}function ok(a,b){nk(a,b);(a=a.alternate)&&nk(a,b)}function pk(){return null}\nfunction qk(a,b,c){var d=null!=c&&null!=c.hydrationOptions&&c.hydrationOptions.mutableSources||null;c=new jk(a,b,null!=c&&!0===c.hydrate);b=nh(3,null,null,2===b?7:1===b?3:0);c.current=b;b.stateNode=c;xg(b);a[ff]=c.current;cf(8===a.nodeType?a.parentNode:a);if(d)for(a=0;a<d.length;a++){b=d[a];var e=b._getVersion;e=e(b._source);null==c.mutableSourceEagerHydrationData?c.mutableSourceEagerHydrationData=[b,e]:c.mutableSourceEagerHydrationData.push(b,e)}this._internalRoot=c}\nqk.prototype.render=function(a){lk(a,this._internalRoot,null,null)};qk.prototype.unmount=function(){var a=this._internalRoot,b=a.containerInfo;lk(null,a,null,function(){b[ff]=null})};function rk(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType&&(8!==a.nodeType||\" react-mount-point-unstable \"!==a.nodeValue))}\nfunction sk(a,b){b||(b=a?9===a.nodeType?a.documentElement:a.firstChild:null,b=!(!b||1!==b.nodeType||!b.hasAttribute(\"data-reactroot\")));if(!b)for(var c;c=a.lastChild;)a.removeChild(c);return new qk(a,0,b?{hydrate:!0}:void 0)}\nfunction tk(a,b,c,d,e){var f=c._reactRootContainer;if(f){var g=f._internalRoot;if(\"function\"===typeof e){var h=e;e=function(){var a=mk(g);h.call(a)}}lk(b,g,a,e)}else{f=c._reactRootContainer=sk(c,d);g=f._internalRoot;if(\"function\"===typeof e){var k=e;e=function(){var a=mk(g);k.call(a)}}Xj(function(){lk(b,g,a,e)})}return mk(g)}ec=function(a){if(13===a.tag){var b=Hg();Jg(a,4,b);ok(a,4)}};fc=function(a){if(13===a.tag){var b=Hg();Jg(a,67108864,b);ok(a,67108864)}};\ngc=function(a){if(13===a.tag){var b=Hg(),c=Ig(a);Jg(a,c,b);ok(a,c)}};hc=function(a,b){return b()};\nyb=function(a,b,c){switch(b){case \"input\":ab(a,c);b=c.name;if(\"radio\"===c.type&&null!=b){for(c=a;c.parentNode;)c=c.parentNode;c=c.querySelectorAll(\"input[name=\"+JSON.stringify(\"\"+b)+'][type=\"radio\"]');for(b=0;b<c.length;b++){var d=c[b];if(d!==a&&d.form===a.form){var e=Db(d);if(!e)throw Error(y(90));Wa(d);ab(d,e)}}}break;case \"textarea\":ib(a,c);break;case \"select\":b=c.value,null!=b&&fb(a,!!c.multiple,b,!1)}};Gb=Wj;\nHb=function(a,b,c,d,e){var f=X;X|=4;try{return gg(98,a.bind(null,b,c,d,e))}finally{X=f,0===X&&(wj(),ig())}};Ib=function(){0===(X&49)&&(Vj(),Oj())};Jb=function(a,b){var c=X;X|=2;try{return a(b)}finally{X=c,0===X&&(wj(),ig())}};function uk(a,b){var c=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!rk(b))throw Error(y(200));return kk(a,b,null,c)}var vk={Events:[Cb,ue,Db,Eb,Fb,Oj,{current:!1}]},wk={findFiberByHostInstance:wc,bundleType:0,version:\"17.0.2\",rendererPackageName:\"react-dom\"};\nvar xk={bundleType:wk.bundleType,version:wk.version,rendererPackageName:wk.rendererPackageName,rendererConfig:wk.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:ra.ReactCurrentDispatcher,findHostInstanceByFiber:function(a){a=cc(a);return null===a?null:a.stateNode},findFiberByHostInstance:wk.findFiberByHostInstance||\npk,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null};if(\"undefined\"!==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var yk=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!yk.isDisabled&&yk.supportsFiber)try{Lf=yk.inject(xk),Mf=yk}catch(a){}}exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=vk;exports.createPortal=uk;\nexports.findDOMNode=function(a){if(null==a)return null;if(1===a.nodeType)return a;var b=a._reactInternals;if(void 0===b){if(\"function\"===typeof a.render)throw Error(y(188));throw Error(y(268,Object.keys(a)));}a=cc(b);a=null===a?null:a.stateNode;return a};exports.flushSync=function(a,b){var c=X;if(0!==(c&48))return a(b);X|=1;try{if(a)return gg(99,a.bind(null,b))}finally{X=c,ig()}};exports.hydrate=function(a,b,c){if(!rk(b))throw Error(y(200));return tk(null,a,b,!0,c)};\nexports.render=function(a,b,c){if(!rk(b))throw Error(y(200));return tk(null,a,b,!1,c)};exports.unmountComponentAtNode=function(a){if(!rk(a))throw Error(y(40));return a._reactRootContainer?(Xj(function(){tk(null,null,a,!1,function(){a._reactRootContainer=null;a[ff]=null})}),!0):!1};exports.unstable_batchedUpdates=Wj;exports.unstable_createPortal=function(a,b){return uk(a,b,2<arguments.length&&void 0!==arguments[2]?arguments[2]:null)};\nexports.unstable_renderSubtreeIntoContainer=function(a,b,c,d){if(!rk(c))throw Error(y(200));if(null==a||void 0===a._reactInternals)throw Error(y(38));return tk(a,b,c,!1,d)};exports.version=\"17.0.2\";\n","function _objectWithoutPropertiesLoose(r, e) {\n  if (null == r) return {};\n  var t = {};\n  for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n    if (e.includes(n)) continue;\n    t[n] = r[n];\n  }\n  return t;\n}\nexport { _objectWithoutPropertiesLoose as default };","import ReactDOM from 'react-dom';\nexport default function addEventListenerWrap(target, eventType, cb, option) {\n  /* eslint camelcase: 2 */\n  var callback = ReactDOM.unstable_batchedUpdates ? function run(e) {\n    ReactDOM.unstable_batchedUpdates(cb, e);\n  } : cb;\n  if (target !== null && target !== void 0 && target.addEventListener) {\n    target.addEventListener(eventType, callback, option);\n  }\n  return {\n    remove: function remove() {\n      if (target !== null && target !== void 0 && target.removeEventListener) {\n        target.removeEventListener(eventType, callback, option);\n      }\n    }\n  };\n}","'use strict';\n///@ts-check\n\nconst util = require('../util');\nconst xmlNode = require('./xmlNode');\nconst readDocType = require(\"./DocTypeReader\");\nconst toNumber = require(\"strnum\");\nconst getIgnoreAttributesFn = require('../ignoreAttributes')\n\n// const regx =\n//   '<((!\\\\[CDATA\\\\[([\\\\s\\\\S]*?)(]]>))|((NAME:)?(NAME))([^>]*)>|((\\\\/)(NAME)\\\\s*>))([^<]*)'\n//   .replace(/NAME/g, util.nameRegexp);\n\n//const tagsRegx = new RegExp(\"<(\\\\/?[\\\\w:\\\\-\\._]+)([^>]*)>(\\\\s*\"+cdataRegx+\")*([^<]+)?\",\"g\");\n//const tagsRegx = new RegExp(\"<(\\\\/?)((\\\\w*:)?([\\\\w:\\\\-\\._]+))([^>]*)>([^<]*)(\"+cdataRegx+\"([^<]*))*([^<]+)?\",\"g\");\n\nclass OrderedObjParser{\n  constructor(options){\n    this.options = options;\n    this.currentNode = null;\n    this.tagsNodeStack = [];\n    this.docTypeEntities = {};\n    this.lastEntities = {\n      \"apos\" : { regex: /&(apos|#39|#x27);/g, val : \"'\"},\n      \"gt\" : { regex: /&(gt|#62|#x3E);/g, val : \">\"},\n      \"lt\" : { regex: /&(lt|#60|#x3C);/g, val : \"<\"},\n      \"quot\" : { regex: /&(quot|#34|#x22);/g, val : \"\\\"\"},\n    };\n    this.ampEntity = { regex: /&(amp|#38|#x26);/g, val : \"&\"};\n    this.htmlEntities = {\n      \"space\": { regex: /&(nbsp|#160);/g, val: \" \" },\n      // \"lt\" : { regex: /&(lt|#60);/g, val: \"<\" },\n      // \"gt\" : { regex: /&(gt|#62);/g, val: \">\" },\n      // \"amp\" : { regex: /&(amp|#38);/g, val: \"&\" },\n      // \"quot\" : { regex: /&(quot|#34);/g, val: \"\\\"\" },\n      // \"apos\" : { regex: /&(apos|#39);/g, val: \"'\" },\n      \"cent\" : { regex: /&(cent|#162);/g, val: \"¢\" },\n      \"pound\" : { regex: /&(pound|#163);/g, val: \"£\" },\n      \"yen\" : { regex: /&(yen|#165);/g, val: \"¥\" },\n      \"euro\" : { regex: /&(euro|#8364);/g, val: \"€\" },\n      \"copyright\" : { regex: /&(copy|#169);/g, val: \"©\" },\n      \"reg\" : { regex: /&(reg|#174);/g, val: \"®\" },\n      \"inr\" : { regex: /&(inr|#8377);/g, val: \"₹\" },\n      \"num_dec\": { regex: /&#([0-9]{1,7});/g, val : (_, str) => String.fromCharCode(Number.parseInt(str, 10)) },\n      \"num_hex\": { regex: /&#x([0-9a-fA-F]{1,6});/g, val : (_, str) => String.fromCharCode(Number.parseInt(str, 16)) },\n    };\n    this.addExternalEntities = addExternalEntities;\n    this.parseXml = parseXml;\n    this.parseTextData = parseTextData;\n    this.resolveNameSpace = resolveNameSpace;\n    this.buildAttributesMap = buildAttributesMap;\n    this.isItStopNode = isItStopNode;\n    this.replaceEntitiesValue = replaceEntitiesValue;\n    this.readStopNodeData = readStopNodeData;\n    this.saveTextToParentTag = saveTextToParentTag;\n    this.addChild = addChild;\n    this.ignoreAttributesFn = getIgnoreAttributesFn(this.options.ignoreAttributes)\n  }\n\n}\n\nfunction addExternalEntities(externalEntities){\n  const entKeys = Object.keys(externalEntities);\n  for (let i = 0; i < entKeys.length; i++) {\n    const ent = entKeys[i];\n    this.lastEntities[ent] = {\n       regex: new RegExp(\"&\"+ent+\";\",\"g\"),\n       val : externalEntities[ent]\n    }\n  }\n}\n\n/**\n * @param {string} val\n * @param {string} tagName\n * @param {string} jPath\n * @param {boolean} dontTrim\n * @param {boolean} hasAttributes\n * @param {boolean} isLeafNode\n * @param {boolean} escapeEntities\n */\nfunction parseTextData(val, tagName, jPath, dontTrim, hasAttributes, isLeafNode, escapeEntities) {\n  if (val !== undefined) {\n    if (this.options.trimValues && !dontTrim) {\n      val = val.trim();\n    }\n    if(val.length > 0){\n      if(!escapeEntities) val = this.replaceEntitiesValue(val);\n      \n      const newval = this.options.tagValueProcessor(tagName, val, jPath, hasAttributes, isLeafNode);\n      if(newval === null || newval === undefined){\n        //don't parse\n        return val;\n      }else if(typeof newval !== typeof val || newval !== val){\n        //overwrite\n        return newval;\n      }else if(this.options.trimValues){\n        return parseValue(val, this.options.parseTagValue, this.options.numberParseOptions);\n      }else{\n        const trimmedVal = val.trim();\n        if(trimmedVal === val){\n          return parseValue(val, this.options.parseTagValue, this.options.numberParseOptions);\n        }else{\n          return val;\n        }\n      }\n    }\n  }\n}\n\nfunction resolveNameSpace(tagname) {\n  if (this.options.removeNSPrefix) {\n    const tags = tagname.split(':');\n    const prefix = tagname.charAt(0) === '/' ? '/' : '';\n    if (tags[0] === 'xmlns') {\n      return '';\n    }\n    if (tags.length === 2) {\n      tagname = prefix + tags[1];\n    }\n  }\n  return tagname;\n}\n\n//TODO: change regex to capture NS\n//const attrsRegx = new RegExp(\"([\\\\w\\\\-\\\\.\\\\:]+)\\\\s*=\\\\s*(['\\\"])((.|\\n)*?)\\\\2\",\"gm\");\nconst attrsRegx = new RegExp('([^\\\\s=]+)\\\\s*(=\\\\s*([\\'\"])([\\\\s\\\\S]*?)\\\\3)?', 'gm');\n\nfunction buildAttributesMap(attrStr, jPath, tagName) {\n  if (this.options.ignoreAttributes !== true && typeof attrStr === 'string') {\n    // attrStr = attrStr.replace(/\\r?\\n/g, ' ');\n    //attrStr = attrStr || attrStr.trim();\n\n    const matches = util.getAllMatches(attrStr, attrsRegx);\n    const len = matches.length; //don't make it inline\n    const attrs = {};\n    for (let i = 0; i < len; i++) {\n      const attrName = this.resolveNameSpace(matches[i][1]);\n      if (this.ignoreAttributesFn(attrName, jPath)) {\n        continue\n      }\n      let oldVal = matches[i][4];\n      let aName = this.options.attributeNamePrefix + attrName;\n      if (attrName.length) {\n        if (this.options.transformAttributeName) {\n          aName = this.options.transformAttributeName(aName);\n        }\n        if(aName === \"__proto__\") aName  = \"#__proto__\";\n        if (oldVal !== undefined) {\n          if (this.options.trimValues) {\n            oldVal = oldVal.trim();\n          }\n          oldVal = this.replaceEntitiesValue(oldVal);\n          const newVal = this.options.attributeValueProcessor(attrName, oldVal, jPath);\n          if(newVal === null || newVal === undefined){\n            //don't parse\n            attrs[aName] = oldVal;\n          }else if(typeof newVal !== typeof oldVal || newVal !== oldVal){\n            //overwrite\n            attrs[aName] = newVal;\n          }else{\n            //parse\n            attrs[aName] = parseValue(\n              oldVal,\n              this.options.parseAttributeValue,\n              this.options.numberParseOptions\n            );\n          }\n        } else if (this.options.allowBooleanAttributes) {\n          attrs[aName] = true;\n        }\n      }\n    }\n    if (!Object.keys(attrs).length) {\n      return;\n    }\n    if (this.options.attributesGroupName) {\n      const attrCollection = {};\n      attrCollection[this.options.attributesGroupName] = attrs;\n      return attrCollection;\n    }\n    return attrs\n  }\n}\n\nconst parseXml = function(xmlData) {\n  xmlData = xmlData.replace(/\\r\\n?/g, \"\\n\"); //TODO: remove this line\n  const xmlObj = new xmlNode('!xml');\n  let currentNode = xmlObj;\n  let textData = \"\";\n  let jPath = \"\";\n  for(let i=0; i< xmlData.length; i++){//for each char in XML data\n    const ch = xmlData[i];\n    if(ch === '<'){\n      // const nextIndex = i+1;\n      // const _2ndChar = xmlData[nextIndex];\n      if( xmlData[i+1] === '/') {//Closing Tag\n        const closeIndex = findClosingIndex(xmlData, \">\", i, \"Closing Tag is not closed.\")\n        let tagName = xmlData.substring(i+2,closeIndex).trim();\n\n        if(this.options.removeNSPrefix){\n          const colonIndex = tagName.indexOf(\":\");\n          if(colonIndex !== -1){\n            tagName = tagName.substr(colonIndex+1);\n          }\n        }\n\n        if(this.options.transformTagName) {\n          tagName = this.options.transformTagName(tagName);\n        }\n\n        if(currentNode){\n          textData = this.saveTextToParentTag(textData, currentNode, jPath);\n        }\n\n        //check if last tag of nested tag was unpaired tag\n        const lastTagName = jPath.substring(jPath.lastIndexOf(\".\")+1);\n        if(tagName && this.options.unpairedTags.indexOf(tagName) !== -1 ){\n          throw new Error(`Unpaired tag can not be used as closing tag: </${tagName}>`);\n        }\n        let propIndex = 0\n        if(lastTagName && this.options.unpairedTags.indexOf(lastTagName) !== -1 ){\n          propIndex = jPath.lastIndexOf('.', jPath.lastIndexOf('.')-1)\n          this.tagsNodeStack.pop();\n        }else{\n          propIndex = jPath.lastIndexOf(\".\");\n        }\n        jPath = jPath.substring(0, propIndex);\n\n        currentNode = this.tagsNodeStack.pop();//avoid recursion, set the parent tag scope\n        textData = \"\";\n        i = closeIndex;\n      } else if( xmlData[i+1] === '?') {\n\n        let tagData = readTagExp(xmlData,i, false, \"?>\");\n        if(!tagData) throw new Error(\"Pi Tag is not closed.\");\n\n        textData = this.saveTextToParentTag(textData, currentNode, jPath);\n        if( (this.options.ignoreDeclaration && tagData.tagName === \"?xml\") || this.options.ignorePiTags){\n\n        }else{\n  \n          const childNode = new xmlNode(tagData.tagName);\n          childNode.add(this.options.textNodeName, \"\");\n          \n          if(tagData.tagName !== tagData.tagExp && tagData.attrExpPresent){\n            childNode[\":@\"] = this.buildAttributesMap(tagData.tagExp, jPath, tagData.tagName);\n          }\n          this.addChild(currentNode, childNode, jPath)\n\n        }\n\n\n        i = tagData.closeIndex + 1;\n      } else if(xmlData.substr(i + 1, 3) === '!--') {\n        const endIndex = findClosingIndex(xmlData, \"-->\", i+4, \"Comment is not closed.\")\n        if(this.options.commentPropName){\n          const comment = xmlData.substring(i + 4, endIndex - 2);\n\n          textData = this.saveTextToParentTag(textData, currentNode, jPath);\n\n          currentNode.add(this.options.commentPropName, [ { [this.options.textNodeName] : comment } ]);\n        }\n        i = endIndex;\n      } else if( xmlData.substr(i + 1, 2) === '!D') {\n        const result = readDocType(xmlData, i);\n        this.docTypeEntities = result.entities;\n        i = result.i;\n      }else if(xmlData.substr(i + 1, 2) === '![') {\n        const closeIndex = findClosingIndex(xmlData, \"]]>\", i, \"CDATA is not closed.\") - 2;\n        const tagExp = xmlData.substring(i + 9,closeIndex);\n\n        textData = this.saveTextToParentTag(textData, currentNode, jPath);\n\n        let val = this.parseTextData(tagExp, currentNode.tagname, jPath, true, false, true, true);\n        if(val == undefined) val = \"\";\n\n        //cdata should be set even if it is 0 length string\n        if(this.options.cdataPropName){\n          currentNode.add(this.options.cdataPropName, [ { [this.options.textNodeName] : tagExp } ]);\n        }else{\n          currentNode.add(this.options.textNodeName, val);\n        }\n        \n        i = closeIndex + 2;\n      }else {//Opening tag\n        let result = readTagExp(xmlData,i, this.options.removeNSPrefix);\n        let tagName= result.tagName;\n        const rawTagName = result.rawTagName;\n        let tagExp = result.tagExp;\n        let attrExpPresent = result.attrExpPresent;\n        let closeIndex = result.closeIndex;\n\n        if (this.options.transformTagName) {\n          tagName = this.options.transformTagName(tagName);\n        }\n        \n        //save text as child node\n        if (currentNode && textData) {\n          if(currentNode.tagname !== '!xml'){\n            //when nested tag is found\n            textData = this.saveTextToParentTag(textData, currentNode, jPath, false);\n          }\n        }\n\n        //check if last tag was unpaired tag\n        const lastTag = currentNode;\n        if(lastTag && this.options.unpairedTags.indexOf(lastTag.tagname) !== -1 ){\n          currentNode = this.tagsNodeStack.pop();\n          jPath = jPath.substring(0, jPath.lastIndexOf(\".\"));\n        }\n        if(tagName !== xmlObj.tagname){\n          jPath += jPath ? \".\" + tagName : tagName;\n        }\n        if (this.isItStopNode(this.options.stopNodes, jPath, tagName)) {\n          let tagContent = \"\";\n          //self-closing tag\n          if(tagExp.length > 0 && tagExp.lastIndexOf(\"/\") === tagExp.length - 1){\n            if(tagName[tagName.length - 1] === \"/\"){ //remove trailing '/'\n              tagName = tagName.substr(0, tagName.length - 1);\n              jPath = jPath.substr(0, jPath.length - 1);\n              tagExp = tagName;\n            }else{\n              tagExp = tagExp.substr(0, tagExp.length - 1);\n            }\n            i = result.closeIndex;\n          }\n          //unpaired tag\n          else if(this.options.unpairedTags.indexOf(tagName) !== -1){\n            \n            i = result.closeIndex;\n          }\n          //normal tag\n          else{\n            //read until closing tag is found\n            const result = this.readStopNodeData(xmlData, rawTagName, closeIndex + 1);\n            if(!result) throw new Error(`Unexpected end of ${rawTagName}`);\n            i = result.i;\n            tagContent = result.tagContent;\n          }\n\n          const childNode = new xmlNode(tagName);\n          if(tagName !== tagExp && attrExpPresent){\n            childNode[\":@\"] = this.buildAttributesMap(tagExp, jPath, tagName);\n          }\n          if(tagContent) {\n            tagContent = this.parseTextData(tagContent, tagName, jPath, true, attrExpPresent, true, true);\n          }\n          \n          jPath = jPath.substr(0, jPath.lastIndexOf(\".\"));\n          childNode.add(this.options.textNodeName, tagContent);\n          \n          this.addChild(currentNode, childNode, jPath)\n        }else{\n  //selfClosing tag\n          if(tagExp.length > 0 && tagExp.lastIndexOf(\"/\") === tagExp.length - 1){\n            if(tagName[tagName.length - 1] === \"/\"){ //remove trailing '/'\n              tagName = tagName.substr(0, tagName.length - 1);\n              jPath = jPath.substr(0, jPath.length - 1);\n              tagExp = tagName;\n            }else{\n              tagExp = tagExp.substr(0, tagExp.length - 1);\n            }\n            \n            if(this.options.transformTagName) {\n              tagName = this.options.transformTagName(tagName);\n            }\n\n            const childNode = new xmlNode(tagName);\n            if(tagName !== tagExp && attrExpPresent){\n              childNode[\":@\"] = this.buildAttributesMap(tagExp, jPath, tagName);\n            }\n            this.addChild(currentNode, childNode, jPath)\n            jPath = jPath.substr(0, jPath.lastIndexOf(\".\"));\n          }\n    //opening tag\n          else{\n            const childNode = new xmlNode( tagName);\n            this.tagsNodeStack.push(currentNode);\n            \n            if(tagName !== tagExp && attrExpPresent){\n              childNode[\":@\"] = this.buildAttributesMap(tagExp, jPath, tagName);\n            }\n            this.addChild(currentNode, childNode, jPath)\n            currentNode = childNode;\n          }\n          textData = \"\";\n          i = closeIndex;\n        }\n      }\n    }else{\n      textData += xmlData[i];\n    }\n  }\n  return xmlObj.child;\n}\n\nfunction addChild(currentNode, childNode, jPath){\n  const result = this.options.updateTag(childNode.tagname, jPath, childNode[\":@\"])\n  if(result === false){\n  }else if(typeof result === \"string\"){\n    childNode.tagname = result\n    currentNode.addChild(childNode);\n  }else{\n    currentNode.addChild(childNode);\n  }\n}\n\nconst replaceEntitiesValue = function(val){\n\n  if(this.options.processEntities){\n    for(let entityName in this.docTypeEntities){\n      const entity = this.docTypeEntities[entityName];\n      val = val.replace( entity.regx, entity.val);\n    }\n    for(let entityName in this.lastEntities){\n      const entity = this.lastEntities[entityName];\n      val = val.replace( entity.regex, entity.val);\n    }\n    if(this.options.htmlEntities){\n      for(let entityName in this.htmlEntities){\n        const entity = this.htmlEntities[entityName];\n        val = val.replace( entity.regex, entity.val);\n      }\n    }\n    val = val.replace( this.ampEntity.regex, this.ampEntity.val);\n  }\n  return val;\n}\nfunction saveTextToParentTag(textData, currentNode, jPath, isLeafNode) {\n  if (textData) { //store previously collected data as textNode\n    if(isLeafNode === undefined) isLeafNode = Object.keys(currentNode.child).length === 0\n    \n    textData = this.parseTextData(textData,\n      currentNode.tagname,\n      jPath,\n      false,\n      currentNode[\":@\"] ? Object.keys(currentNode[\":@\"]).length !== 0 : false,\n      isLeafNode);\n\n    if (textData !== undefined && textData !== \"\")\n      currentNode.add(this.options.textNodeName, textData);\n    textData = \"\";\n  }\n  return textData;\n}\n\n//TODO: use jPath to simplify the logic\n/**\n * \n * @param {string[]} stopNodes \n * @param {string} jPath\n * @param {string} currentTagName \n */\nfunction isItStopNode(stopNodes, jPath, currentTagName){\n  const allNodesExp = \"*.\" + currentTagName;\n  for (const stopNodePath in stopNodes) {\n    const stopNodeExp = stopNodes[stopNodePath];\n    if( allNodesExp === stopNodeExp || jPath === stopNodeExp  ) return true;\n  }\n  return false;\n}\n\n/**\n * Returns the tag Expression and where it is ending handling single-double quotes situation\n * @param {string} xmlData \n * @param {number} i starting index\n * @returns \n */\nfunction tagExpWithClosingIndex(xmlData, i, closingChar = \">\"){\n  let attrBoundary;\n  let tagExp = \"\";\n  for (let index = i; index < xmlData.length; index++) {\n    let ch = xmlData[index];\n    if (attrBoundary) {\n        if (ch === attrBoundary) attrBoundary = \"\";//reset\n    } else if (ch === '\"' || ch === \"'\") {\n        attrBoundary = ch;\n    } else if (ch === closingChar[0]) {\n      if(closingChar[1]){\n        if(xmlData[index + 1] === closingChar[1]){\n          return {\n            data: tagExp,\n            index: index\n          }\n        }\n      }else{\n        return {\n          data: tagExp,\n          index: index\n        }\n      }\n    } else if (ch === '\\t') {\n      ch = \" \"\n    }\n    tagExp += ch;\n  }\n}\n\nfunction findClosingIndex(xmlData, str, i, errMsg){\n  const closingIndex = xmlData.indexOf(str, i);\n  if(closingIndex === -1){\n    throw new Error(errMsg)\n  }else{\n    return closingIndex + str.length - 1;\n  }\n}\n\nfunction readTagExp(xmlData,i, removeNSPrefix, closingChar = \">\"){\n  const result = tagExpWithClosingIndex(xmlData, i+1, closingChar);\n  if(!result) return;\n  let tagExp = result.data;\n  const closeIndex = result.index;\n  const separatorIndex = tagExp.search(/\\s/);\n  let tagName = tagExp;\n  let attrExpPresent = true;\n  if(separatorIndex !== -1){//separate tag name and attributes expression\n    tagName = tagExp.substring(0, separatorIndex);\n    tagExp = tagExp.substring(separatorIndex + 1).trimStart();\n  }\n\n  const rawTagName = tagName;\n  if(removeNSPrefix){\n    const colonIndex = tagName.indexOf(\":\");\n    if(colonIndex !== -1){\n      tagName = tagName.substr(colonIndex+1);\n      attrExpPresent = tagName !== result.data.substr(colonIndex + 1);\n    }\n  }\n\n  return {\n    tagName: tagName,\n    tagExp: tagExp,\n    closeIndex: closeIndex,\n    attrExpPresent: attrExpPresent,\n    rawTagName: rawTagName,\n  }\n}\n/**\n * find paired tag for a stop node\n * @param {string} xmlData \n * @param {string} tagName \n * @param {number} i \n */\nfunction readStopNodeData(xmlData, tagName, i){\n  const startIndex = i;\n  // Starting at 1 since we already have an open tag\n  let openTagCount = 1;\n\n  for (; i < xmlData.length; i++) {\n    if( xmlData[i] === \"<\"){ \n      if (xmlData[i+1] === \"/\") {//close tag\n          const closeIndex = findClosingIndex(xmlData, \">\", i, `${tagName} is not closed`);\n          let closeTagName = xmlData.substring(i+2,closeIndex).trim();\n          if(closeTagName === tagName){\n            openTagCount--;\n            if (openTagCount === 0) {\n              return {\n                tagContent: xmlData.substring(startIndex, i),\n                i : closeIndex\n              }\n            }\n          }\n          i=closeIndex;\n        } else if(xmlData[i+1] === '?') { \n          const closeIndex = findClosingIndex(xmlData, \"?>\", i+1, \"StopNode is not closed.\")\n          i=closeIndex;\n        } else if(xmlData.substr(i + 1, 3) === '!--') { \n          const closeIndex = findClosingIndex(xmlData, \"-->\", i+3, \"StopNode is not closed.\")\n          i=closeIndex;\n        } else if(xmlData.substr(i + 1, 2) === '![') { \n          const closeIndex = findClosingIndex(xmlData, \"]]>\", i, \"StopNode is not closed.\") - 2;\n          i=closeIndex;\n        } else {\n          const tagData = readTagExp(xmlData, i, '>')\n\n          if (tagData) {\n            const openTagName = tagData && tagData.tagName;\n            if (openTagName === tagName && tagData.tagExp[tagData.tagExp.length-1] !== \"/\") {\n              openTagCount++;\n            }\n            i=tagData.closeIndex;\n          }\n        }\n      }\n  }//end for loop\n}\n\nfunction parseValue(val, shouldParse, options) {\n  if (shouldParse && typeof val === 'string') {\n    //console.log(options)\n    const newval = val.trim();\n    if(newval === 'true' ) return true;\n    else if(newval === 'false' ) return false;\n    else return toNumber(val, options);\n  } else {\n    if (util.isExist(val)) {\n      return val;\n    } else {\n      return '';\n    }\n  }\n}\n\n\nmodule.exports = OrderedObjParser;\n","// This icon file is generated automatically.\nvar InfoCircleFilled = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm32 664c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V456c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v272zm-32-344a48.01 48.01 0 010-96 48.01 48.01 0 010 96z\" } }] }, \"name\": \"info-circle\", \"theme\": \"filled\" };\nexport default InfoCircleFilled;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport InfoCircleFilledSvg from \"@ant-design/icons-svg/es/asn/InfoCircleFilled\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar InfoCircleFilled = function InfoCircleFilled(props, ref) {\n  return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n    ref: ref,\n    icon: InfoCircleFilledSvg\n  }));\n};\n\n/**![info-circle](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0zMiA2NjRjMCA0LjQtMy42IDgtOCA4aC00OGMtNC40IDAtOC0zLjYtOC04VjQ1NmMwLTQuNCAzLjYtOCA4LThoNDhjNC40IDAgOCAzLjYgOCA4djI3MnptLTMyLTM0NGE0OC4wMSA0OC4wMSAwIDAxMC05NiA0OC4wMSA0OC4wMSAwIDAxMCA5NnoiIC8+PC9zdmc+) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(InfoCircleFilled);\nif (process.env.NODE_ENV !== 'production') {\n  RefIcon.displayName = 'InfoCircleFilled';\n}\nexport default RefIcon;"],"sourceRoot":""}